====== アルゴリズムの試験に関して ======
アルゴリズム 試験範囲
アルゴリズム
⇒アルゴリズムの表記法
・文章で書く
・疑似言語(またはフローチャート)
・プログラミング言語
⇒3つの基本構造
・( )構造
・( )構造
・( )構造
⇒アルゴリズムの評価法
(オーダ:O(N^2)のものと、O(nlogn) のもの平均なのか最良、最悪計算量なのか)
⇒疑似言語によるアルゴリズムの表現
かける?トレースできる?
⇒3つの基本ソート
⇒日本語と英語でソートの名前書ける?
⇒を疑似言語で書いて
⇒トレースできる?
⇒著名なソート(大体のアルゴリズムと計算量)
⇒クイックソート
⇒マージソート
⇒線系探索と番兵法
⇒超基本的なゲームの構成
⇒ゲームの基本ループ
⇒フレーム
⇒状態遷移
⇒コンピュータ関連の用語理解してるかな?(まだ習ってないのもあるよ)
・変数
・型
・コンパイラとインタープリタ(鈴木先生に習った?)
・A/D変換
・標本化
・量子化
・符号化
・算術シフト(鈴木先生に習った?)
・論理シフト(鈴木先生に習った?)
・補数(鈴木先生に習った?)
・ビット反転(鈴木先生に習った?)
・ビットフラグ(鈴木先生に習った?)
・フローチャート
・疑似言語
・スタック
・キュー
・グラフ
・配列
・レコード型
・木構造、二分木
・リスト構造
====== 擬似言語の記述形式(基本情報技術者試験用)から抜粋 ======
擬似言語を使用した問題では,各問題文中に注記がない限り,次の記述形式が適用されているものとする。
===== 擬似言語の記述形式 =====
|< 60% - >|
^ 記述形式 ^ 説明 ^
| ○手続名又は関数名 | 手続又は関数を宣言する。 |
| 型名: 変数名 | 変数を宣言する。 |
| %%/*%% 注釈 %%*/%% / %%//%% 注釈 | 注釈を記述する。 |
| 変数名 ← 式 | 変数に式の値を代入する。 |
| 手続名又は関数名(引数, …) | 手続又は関数を呼び出し,引数を受け渡す。 |
**選択処理**
if (条件式1)
処理1
elseif (条件式2)
処理2
elseif (条件式n)
処理n
else
処理n+1
endif
* 条件式を上から評価し,最初に真になった条件式に対応する処理を実行する。
* 以降の条件式は評価せず,処理も実行しない。
* どの条件式も真にならないときは,処理 n+1 を実行する。
* elseif, else の部分は省略可。
**繰返し処理**
while (条件式)
処理
endwhile
* 前判定繰返し処理。条件式が真の間,処理を繰返し実行する。
do
処理
while (条件式)
* 後判定繰返し処理。処理を実行後,条件式が真の間繰返す。
for (制御記述)
処理
endfor
* 制御記述に基づき繰返し処理を実行する。
===== 演算子と優先順位 =====
|< 40% >|
^ 演算子の種類 ^ 演算子 ^ 優先度 ^
| 式 | () . | 高 |
| 単項演算子 | not, +, - | ↑ |
| 二項演算子(乗除, mod) | ×, ÷ | %%|%% |
| 二項演算子(加減) | +, - | %%|%% |
| 関係 | ≠, ≦, ≧, <, =, > | %%|%% |
| 論理積 | and | ↓ |
| 論理和 | or | 低 |
* 演算子「.」はメンバ変数・メソッドのアクセスを表す。
* 演算子「mod」は剰余算を表す。
===== 論理型の定数 =====
* true
* false
===== 配列 =====
* 配列の要素は `[ ]` 内に要素番号を指定してアクセスする。
* 二次元配列は `[行番号,列番号]` で指定する。
* `{ }` は配列内容の始まりと終わりを表す。
* 二次元配列の `{ }` 内側は1行分の内容を表す。
===== 未定義,未定義の値 =====
* 変数に値が格納されていない状態を「未定義」という。
* 「未定義の値」を代入するとその変数は未定義になる。
=== ☑️サンプル ===
〔プログラム〕
〇文字列型: fizzBuzz(整数型: num)
文字列型: result
if (num が a で割り切れる)
result ←" a で割り切れる"
elseif (num が b で割り切れる)
result ←" b で割り切れる"
elseif (num が c で割り切れる)
result ←" c で割り切れる"
else
result ←"3 でも 5 でも割り切れない"
endif
return result