配列から指定した並びを検索する処理(部分文字列の検索)【基本情報技術者試験 科目B 公開問題】

令和7年度 基本情報技術者試験 サンプル問題 科目B 問4のブログのアイキャッチ画像 科目B 公開問題
広告

← 科目Bの公開問題一覧へ戻る

 基本情報技術者試験の科目Bの公開問題を題材に,配列の中から指定した並びを探す処理について学習します。この問題では,2つの配列の要素を順番に比較し,指定した並びが現れる位置を求める処理を確認します。

広告

令和7年度 基本情報技術者試験 公開問題 科目B 問4

 次の記述中の       に入れる正しい答えを,解答群の中から選べ。ここで,配列の要素番号は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

解答群

ア 1イ 2ウ 3エ 4オ 5
カ 6キ 7ク 8ケ 9コ 10

【解答】

【解説】

data の中から,key と同じ並びが始まる位置を順番に調べる。data は {“a”,“b”,“a”,“b”,“c”,“a”,“b”,“c”},key は {“a”,“b”,“c”} なので,i は 1 から 6 まで変化する。i = 1 のときは,data[1] と key[1],data[2] と key[2] がそれぞれ一致するが,data[3] と key[3] は一致しない。そのため,βの条件式は2回真,1回偽となる。i = 2,4,5 のときは,最初の要素から一致しないため,βの条件式は真にならない。i = 3 と 6 のときは,data の並びが {“a”,“b”,“c”} と一致するため,βの条件式はそれぞれ3回真となる。したがって,βの行の条件式が真となる回数は,2 + 0 + 3 + 0 + 0 + 3 = 8回 となる。

「令和7年度 基本情報技術者試験 公開問題 科目B 問4」の解答_画像

この問題のポイント

 この問題から学べることは,

  • 配列の中から指定した並びを探す方法
  • 2つの配列の要素を順番に比較する方法
  • 一致しない場合に繰返し処理を終了する方法
  • 指定した並びが見つかった位置を記録する方法
  • 二重ループによる配列の検索処理

です。特に,配列の中から指定した並びを探すときは,調べる位置を1つずつずらしながら,配列の要素を順番に比較していく処理を理解しておきましょう。

基本情報技術者試験の学習におすすめの参考書

基本情報技術者試験の合格を目指す方におすすめの参考書です。

令和08年 イメージ&クレバー方式でよくわかる かやのき先生の基本情報技術者教室
基礎理論からコンピュータ・ネットワーク・データベースまで、基本情報技術者試験の全範囲をわかりやすく学べる定番テキストです。図解が豊富で、初学者にもおすすめです。

キタミ式イラストIT塾 基本情報技術者 令和08年
イラストを使った解説が特徴の人気参考書です。基礎理論の考え方や計算問題もイメージで理解しやすく、独学学習との相性が良い一冊です。

令和08年 基本情報技術者 合格教本
試験範囲を体系的に学習したい方におすすめの教科書です。基礎理論の各テーマも丁寧に解説されており、理解を深めながら学習を進められます。

学習のお役に立ちましたら

この記事が少しでも学習のお役に立ちましたら,今後も分かりやすい解説や学習コンテンツを継続してお届けする励みになります。

よろしければ、このサイトを応援いただけますと嬉しいです。

※OFUSEは,クリエイターやコンテンツ制作を直接支援できるサービスです。

広告