先頭位置iは1〜6です。各位置からkeyのa、b、cを順に比較し、不一致になった時点で内側のループを終了します。
| i | 比較の経過 | βが真になる回数 |
|---|---|---|
| 1 | a一致、b一致、3文字目a≠c | 2 |
| 2 | 先頭b≠a | 0 |
| 3 | a、b、cが全て一致 | 3 |
| 4 | 先頭b≠a | 0 |
| 5 | 先頭c≠a | 0 |
| 6 | a、b、cが全て一致 | 3 |
合計は2+0+3+0+0+3=8回なのでクです。一致する並びが見つかる回数の2回ではなく、1文字ごとの条件式βが真になる回数を数えます。
次の記述中の空欄に入れる正しい答えを、解答群の中から選べ。ここで、配列の要素番号は1から始まる。
関数searchは、二つの文字型の配列を、それぞれ引数data及びkeyで受け取り、dataから、keyの要素の並びと同じ並びを全て探し、その先頭の要素番号を全て格納した配列を返す。見つからなければ、要素数0の配列を返す。
関数searchをsearch({"a", "b", "a", "b", "c", "a", "b", "c"}, {"a", "b", "c"})として呼び出すと、/* β */の行の条件式が真となる回数は[空欄]回である。
〔プログラム〕
/* keyは,要素数1以上の配列である */
○整数型の配列: search(文字型の配列: data, 文字型の配列: key)
整数型: i, j, lenData, lenKey
整数型の配列: result ← {} // 要素数0の配列
lenData ← dataの要素数
lenKey ← keyの要素数
/* (lenData − lenKey + 1)が0以下のときは繰返し処理を実行しない */
for (iを1から(lenData − lenKey + 1)まで1ずつ増やす)
for (jを1からlenKeyまで1ずつ増やす) // α
if (data[i + j − 1]がkey[j]と等しい) /*** β ***/
if (jがlenKeyと等しい)
resultの末尾にiの値を追加する
endif
else
αの行から始まる繰返し処理を終了する
endif
endfor
endfor
return result結論 → 詳細 → 補足 の 3 層構成
先頭位置iは1〜6です。各位置からkeyのa、b、cを順に比較し、不一致になった時点で内側のループを終了します。
| i | 比較の経過 | βが真になる回数 |
|---|---|---|
| 1 | a一致、b一致、3文字目a≠c | 2 |
| 2 | 先頭b≠a | 0 |
| 3 | a、b、cが全て一致 | 3 |
| 4 | 先頭b≠a | 0 |
| 5 | 先頭c≠a | 0 |
| 6 | a、b、cが全て一致 | 3 |
合計は2+0+3+0+0+3=8回なのでクです。一致する並びが見つかる回数の2回ではなく、1文字ごとの条件式βが真になる回数を数えます。
この問題の理解を「分野全体の力」に広げるための足がかり
用語解説・選択肢分析・類題生成をその場で対話。クイズモードでは解答→解説がゼロ遷移。
アルゴリズムとプログラミング の他の問題
基本情報技術者 の同じ分野を年度をまたいで演習する
基本情報 科目B 木構造(二分木)のトレース練習|深さ優先と幅優先で全ノードをたどる
科目Bの頻出データ構造「木構造(二分木)」を、クラス・左右2本の参照・未定義の記法でトレース。深さ優先(行きがけ・通りがけ・帰りがけ)と幅優先(レベル順)の4つの巡回順を、小さな木で1ノードずつ手で追って攻略します。連結リスト・再帰・キューの集大成です。
基本情報 科目B 連結リスト(単方向リスト)のトレース練習|参照を1本ずつ付け替える
科目Bの頻出データ構造「連結リスト(単方向リスト)」を、クラス・メンバ変数(.)・参照・未定義の記法でトレース。先頭への追加・末尾までの走査・途中への挿入を、参照の付け替えを1本ずつ図と表で追って攻略します。配列との違い、付け替えの順序という最大の落とし穴を実演します。
基本情報 科目B スタックとキューのトレース練習|LIFOとFIFOを操作表で1つずつ追う
科目Bの頻出データ構造「スタック(後入れ先出し・LIFO)」と「キュー(先入れ先出し・FIFO)」を、プッシュ/ポップ・エンキュー/デキューの操作を表に書いて1つずつ追うトレースで攻略。同じ入力でも取り出す順番が逆になる理由、頂点・先頭・末尾ポインタの動き、つまずきを具体例で実演します。
基本情報技術者試験を取る意味はあるか|FEのメリットと「意味ない」と言われる理由を整理
基本情報技術者試験(FE)は「意味ない」と言われることがある資格です。取得メリットと「役に立たない」と言われる理由を、就職・実務・上位試験への接続の3観点で整理し、誰に向くのかを正直に解説します。