前回の学習内容はこちら。
アルゴリズムは得意分野です。今日もはりきってまいりましょー!
ITパスポート学習記録~プログラムとアルゴリズム編その②~
疑似言語の順次・選択・繰返し・関数
順次処理
●文字列の変数を使ったプログラム
問題
次の処理の出力結果を書け。
1 文字列型:name1, name2
2 name1 ← "田中"
3 name2 ← "太郎"
4 "お名前は" + name1 + name2 + "さんです。" を出力する
解答
お名前は田中太郎さんです。
●数値の変数を使ったプログラム
問題
次の処理の出力結果を書け。
1 実数型:base, height, area
2 base ← 5.0
3 height ← 7.0
4 area ← base * height / 2.0
5 area を出力する
解答
17.5
●配列を使ったプログラム
問題
次の処理の出力結果を書け。
1 /* 配列の作成 */
2 文字列型の配列:fruits ← {"apple", "banana", "cherry", "orange", "kiwi"}
3
4 /* リストの要素数を表示 */
5 fruits を出力する
解答
apple
banana
cherry
orange
kiwi
●配列のインデックス
問題
次の処理の出力結果を書け。
1 文字列型の配列:fruits ← {"apple", "banana", "cherry", "orange", "kiwi"}
2
3 fruits[2] を出力する
解答
cherry
選択処理
●2つの値を比較する表現
問題
次の処理の出力結果を書け。
1 整数型:age ← 25
2 if (age >= 20)
3 "お酒のWebサイトです。" を出力する
4 else
5 "ジュースのWebサイトです。" を出力する
6 endif
解答
お酒のWebサイトです。
●3つ以上の条件で判断する表現
問題
次の処理の出力結果を書け。
1 文字列型:weather ← "晴れ"
2 if (weather = "晴れ")
3 "Tシャツとショートパンツを着て出かけましょう。" を出力する
4 elseif (weather = "曇り")
5 "長袖とジーンズを着て出かけましょう。" を出力する
6 elseif (weather = "雨")
7 "レインコートを着て、傘を持って出かけましょう。" を出力する
8 else
9 "該当する天気がありません。" を出力する
10 endif
解答
Tシャツとショートパンツを着て出かけましょう。
繰り返し処理
●for文
問題
次の処理の出力結果を書け。
1 文字列型の配列:fruits ← {"apple", "banana", "cherry", "orange", "kiwi"}
2 for (iを0から4まで1ずつ増やす)
3 fruits[i] を出力する
4 endfor
解答
apple
banana
cherry
orange
kiwi
●while文
問題
次の処理の出力結果を書け。
1 整数型:number ← 5
2 while (number > 0)
3 number を出力する
4 number ← number - 1
5 endwhile
解答
5
4
3
2
1
関数
●関数と引数
問題
次の処理の出力結果を書け。
1 ◯整数型:add_numbers (整数型: a, 整数型: b)
2 return a + b
3
4 result ← add_number(3, 4)
5 result を出力する
解答
7
プログラムとアルゴリズム
合計値を求めるアルゴリズム
問.これは何のアルゴリズムか?
1 ◯整数型:sigma (整数型:max)
2 整数型:calcX ← 0
3 整数型:n
4 for (nを1から maxまで1ずつ増やす)
5 calcX ← calcX + n
6 endfor
7 return calcX
正解.合計値を求めるアルゴリズム
最大値を求めるアルゴリズム
問.これは何のアルゴリズムか?
1 整数型の配列;numbers ← {15, 22, 84, 14, 23}
2 整数型:max ← numbers[0]
3 for (iを1から4まで1ずつ増やす)
4 if (numbers[i] > max)
5 max ← numbers[i]
6 endif
7 endfor
8 max を出力する
正解.最大値を求めるアルゴリズム
サーチアルゴリズム
線形探索法 | 線形探索法は、データの集合を最初から最後までひとつずつ順番に調べて、目的の要素を探し出す方法である。データの量が多いほど時間がかかるため、効率はあまり良くない。ただし、未ソートのデータであっても探索が可能。 |
二分探索法 | 二分探索法は、ソート済みのデータに対して使用される探索方法である。データの中央の値を見て、探している値が左右のどちらにあるかを判断し、不要な部分を捨てることで、探索範囲を半分に絞ることができる。探索範囲を半分に絞っていくため、線形探索法よりかは効率が良い。 |
ソートアルゴリズム
バブルソート | バブルソートでは、配列内の隣接する要素を比較して、順序が正しくない場合は入れ替えを行い、配列の最後の要素まで行うことで、最後の要素が確定する。次は最後の要素を除いた要素で同様のことを繰返し、次に最後にあたる要素を確定させる。これをソートが完了するまで繰り返す。 |
選択ソート | 選択ソートは、配列から最小値(または最大値)を繰り返し選択し、この値を配列の前方へ移動することでソートを行う。 |
クイックソート | クイックソートは、まず基準となる数(ピボット)を1つ選択する。ピボットの選択方法はアルゴリズムにより異なる。ピボット以外の数を「ピボットより小さい数群」と「ピボットより大きい数群」にグループ分けし、それぞれのグループごとにまたピボットを設定し、大小でグループ分けを繰り返してソートを行う。かなり高速でソートができる手法である。 |
Ankiアプリ用データ
以下のサイトより、Ankiアプリで活用できるITパスポートのストラテジ系+マネジメント系+テクノロジ系(ハードウェア+ソフトウェア+ネットワーク+コンピュータとデジタル情報+プログラムとアルゴリズム)の暗記データがダウンロードできます。
パスワードは半角で、「shirakawa」です。
ぜひ、学習にご活用ください。
Ankiアプリの使い方
Ankiアプリの簡単な使い方をご紹介しています。ぜひ、ご一読ください。
合わせて読みたい
参考文献
今回、学習用として参考にさせていただいているのがこちらの教本です。AmazonではPDF版もあるようです。セクションごとにQRコードを読み取って小テストを受けることができ、学習の確認もできて頼りがいのある一冊です。また、YouTubeでの解説動画もありますので、そちらも参考に学習を進めると良いでしょう。

コメント