神戸プログラミングアカデミーのブログ

「未経験から」「スキルアップ」「起業を目指す」無料で学べる神戸のプログラミング学校&学習コミュニティ

2020-06-01から1ヶ月間の記事一覧

配列とオブジェクトを操る

オブジェクトにオブジェクトを追加する & そのオブジェクトに要素を追加する。 ※一行づつ書く 出力結果 { '兵庫': { '神戸': 'A', '明石': 'B', '西宮': 'C' } } 解答例 const obj = {} obj["兵庫"] = {} // ←これがないとobj["兵庫"]がundefinedになるから…

Userデータを集計する

https://github.com/prog-ac/sortable-table/blob/master/assets/users.json 準備 curl https://raw.githubusercontent.com/prog-ac/sortable-table/master/assets/users.json > users.json jsonの読み込み const users = require("./users.json") 1. スコア…

Array.find()を自作せよ

developer.mozilla.org 配列から条件を満たす最初の要素を返す関数find(array, callback)を作成せよ。条件に当てはまるものがなかったらundefinedを返す。 条件は 20以下 とする node main.js 34 27 94 12 30 14 25 12 解答例 function find(array, callback…

オリジナル1分タイマーを作ろう

指定したタイミングでコールバックを読んでくれる関数startMyTimer(list, callback)を作成せよ 尚、タイマー検知はsetTimeout()を使うこと nodejs.org setTimeout(コールバック, 経過時間, コールバックに渡す引数) Macのスピーチコマンド const { exec } = …

String.trimを自作せよ

developer.mozilla.org ただしあらゆるStringのメソッドを使用禁止 対象空白文字 文字コード タブ "\t" 復帰 "\r" 改行 "\n" 半角スペース " " 全角スペース " " node trim.js " Hello World " Hello World

String.splitを自作せよ

文字列を区切り文字で分割し配列で返す関数split(str, separator)を自作せよ function split(str, sepatator) { } console.log(split(process.argv[2], ",")) node main.js "aaa,bbb,444,555" [ 'aaa', 'bbb', '444', '555' ] 解答例 function split(str, se…

指定されたインデックスが先頭になるようにして返す関数を作成せよ

配列を指定されたインデックスが先頭になるようにして返す関数rotate(arr, index)を作成せよ docs.ruby-lang.org 作成する関数の第1引数は絞り込み前の配列、第2引数は先頭にするインデックスとする コマンドライン引数の1つ目をインデックス、それ以降を…

配列を受け取りコールバックで指定された条件のもの省いて返す関数を作成せよ

配列からコールバックで指定された条件を満たす要素を省いて返す関数 deleteIf(array, callback) を作成せよ 作成する関数の第1引数は絞り込み前の配列、第2引数は評価関数とし、返り値を省いた後の配列とする 使っていいメソッドはArray.pushのみとする …

再起を使って配列を回す

再起を使って配列の全ての要素をコールバックで呼び返す、関数 forEachRecursive() を作成せよ forやwhile文等のループ構文の使用を禁止する コールバック内ではconsole.log(item)を実行し全ての要素を出力する 解答例 // 再起関数 function f(arr, i, callb…

重複した値を省いて返すメソッド unique(array)を作成せよ

配列を受け取り、2つ目以降の重複した値を格納せずに返す関数 unique(array)を作成せよ node main.js a b c b d e a f c 出力結果 ['a', 'b', 'c', 'd', 'e', 'f'] 解答例 function unique(array) { const ret = [] for (let i = 0; i < array.length; i++)…

値が指定された範囲内にあるかどうかを判定する関数を作成せよ

numがmin以上, max以下の場合はtrueをそれ以外の場合はfalseを返す関数 isBetween(num, min, max) を作成せよ 実行例 4が0以上10以下かどうかを判定する node main.js 4 0 10 true 15が3以上7以下かどうかを判定する node main.js 15 3 7 false 解答例 funct…

Array.filter()関数を自作してみよう

配列から条件を満たす要素のみに絞り込んだ配列を返す関数 filter(array, callback) を作成せよ 作成する関数の第1引数は絞り込み前の配列、第2引数は評価関数とし、返り値を絞り込んだ後の配列とする 使っていいメソッドはArray.pushのみとする コールバ…

西暦を和暦に変換する関数を作成せよ

コマンドライン引数、西暦year month dayを入力し、 和暦の文字列を返す関数 toWareki(year, month, day)を作成せよ。 ただし1926年12月25日以前の入力値は入らないものとする 和暦 西暦 令和 2019/5/1〜 平成 1989/1/8〜 昭和 1926/12/25〜 node main.js 20…

覆面算を解くプログラム

以下の条件を満たすa,b,cを求めるプログラムを作成せよ。ただし各変数には1〜9の値が入るものとします a b + c a ----- b b c 出力結果 a:5, b:1, c:6 解答例 for (let a = 1; a <= 9; a++) { for (let b = 1; b <= 9; b++) { for (let c = 1; c <= 9; c++) …

最小値・最大値に丸める関数を作成せよ

与えられた値:numがminより小さい場合にはminの値に、numがmaxより大きい場合にはmaxの値に範囲内であればその間して返す関数 limited(num, min, max)を作成せよ。 関数に渡す値は、最小値は0、最大値は100、numはコマンドライン引数から受け取った値とする …

データを棒グラフで表現せよ

ただし最小値は-25, 最大値は25とする const data = [13, -5, 24, -12, 9, 18] 出力結果 |+++++++++++++ -----| |++++++++++++++++++++++++ ------------| |+++++++++ |++++++++++++++++++ 解答例 const data = [13, -5, 24, -12, 9, 18]; for (let i = 0; i …

数値検査

引数で受け取った文字列の中が、0〜9のみで構成されていた場合はtrueを、0〜9以外の文字が入っていた場合はfalseを返す関数 isNumber() を作成せよ。 ただしJavaScriptで用意されているあらゆるメソッドを使うこととNumber型にキャストすることを禁止する。 …

表の合計を計算する

const rect = [ [11, 1, 8], [7, 5, 10], [2, 9, 4], [3, 6, 12], ] 行の合計を一番右に追加 列の合計を一番下に追加 した配列を生成してください。 出力結果 [ [ 11, 1, 8, 20 ], [ 7, 5, 10, 22 ], [ 2, 9, 4, 15 ], [ 3, 6, 12, 21 ], [ 23, 21, 34, 78 ]…

出現回数を数えて出力せよ

以下の配列の各数の出現回数を数えて出力してください const list = [44, 38, 39, 44, 40, 45, 44, 34, 42, 30, 43, 37, 36, 43, 35, 30, 40, 43, 33, 31, 42, 32, 36, 49, 47, 30, 46, 33, 42, 41, 45, 38, 31, 32, 34, 33, 48, 31, 37, 42, 44, 46, 46, 42…

最高気温が30度を越えた連続日数を表示せよ

以下の配列は2019/7/1〜9/30までの最高気温の配列です。 最も長い、30度を越えた連続日数を求めるプログラムを作成せよ const temperatures = [25.7, 27.2, 26.3, 28.8, 30.5, 27.9, 29.5, 28.6, 28.5, 31.0, 24.8, 29.8, 26.3, 25.5, 29.2, 30.4, 30.3, 29.…

配列から最小の数を取得する関数を作成せよ(Math.min()を使わずに)

const argv = [] for (let i = 2; i < process.argv.length; i++) { argv.push(Number(process.argv[i])) } function min(array) { // ここを実装 } console.log(min(argv)) 実行例 node min.js 3 5 19 8 1 8 6 解答例 const argv = [] for (let i = 2; i < …

正方形を回転させて表示させよ

// 左に回転する関数 function rotate(arr) { //この中を実装する } const rect = [ [6, 1, 8], [7, 5, 3], [2, 9, 4], ] let r = rect for (let i = 0; i < 5; i++) { console.log("---") for (let j = 0; j < r.length; j++) { console.log(r[j]) } r = ro…

フィボナッチ数列を20個表示せよ

出力 1 1 2 3 5 8 13 21 34 55 89 144 233 377 610 987 1597 2584 4181 6765 解答例 let a = 0 let b = 1 for (let i = 0; i < 20; i++) { console.log(b) const t = b b = a + b a = t }

除算演算子/を使わずに整数を返す割り算関数を作成し、またその関数を使い剰余演算子%を使わずに剰余を求める関数を作成せよ

割り算関数 division()は整数を返すものとする const arg1 = Number(process.argv[2]) const arg2 = Number(process.argv[3]) // 整数を返す割り算関数 function division(num, div) { } // 剰余を返す関数 function remainder(num, div) { } console.log(`$…

GitHubでプロアカの課題をやっていく

Githubのアカウントを全員メンバーサイトに登録してください。 www.youtube.com www.youtube.com ステップ1新課題 github.com 初期設定 forkする コラボレーターを追加する Settings Manage Access Invite a collborator で、コラボレーターを招待する。 ma…

Ruby on Rails を触ってみる

techacademy.jp Web アプリケーションフレームワーク MVCとは www.geekly.co.jp 他のフレームワークとの比較 フレームワーク 言語 Laravel PHP Django Python note.com qiita.com Ruby On Railsハンズオン freesworder.net サーバー起動 rails s MVCを一括で…

RESTful API

qiita.com 例 メソッド URI 機能 GET /articles 一覧取得 GET /articles/3 idが3のリソース取得 POST /articles 新規作成 PUT /articles/3 idが3のリソースを更新 DELETE /articles/3 idが3のリソースを削除 RESTfulに対してGraphQLというのもある

Stateパターン

ja.wikipedia.org

画像データの仕組み

画像データの仕組み 画像データは以下のようなバイトの配列によって形成されています。 1バイトにはそれぞれ一つの色が格納されており、4つの色情報によって1ピクセルが形成されています。(→1ピクセルは4バイト) R:赤(RED) G:緑(GREEN) B:青(BLUE) A:アルフ…

Laravel ハンズオン

セットアップ PHPのバージョンアップ brew update brew install php@7.4 brew link php@7.4 composerのインストール brew install composer Laravelのインストール(時間かかる) composer global require laravel/installer PATHを通す echo "export PATH=~/.…