基本情報技術者試験午後問8的な備忘録 アルゴリズムの関数memo



20230503基本情報技術者試験午後問8 アルゴリズムの関数memo

アルゴリズム素人です。
基本情報技術者試験素人です。
以下違いだらけです。自分用メモです。(解説ではありません。)

 

参考問題:
基本情報技術者試験 2015年平成27年秋問8


アルゴリズムに使われる関数について

たまに、説明されない関数がある。(説明あるけど、見にくい・・・)

例:
Skip[Index(Pat[I])


上記の場合、
Skip

Pat

の2つの配列があって、
さらにIndex関数というのが、間に挟まっている。
このIndex関数はカッコが[ ]でなく、( )なので、配列ではないと推測できないといけない。多分見落としても気付く必要ありか。

(1)Pat[I]を引数にして、(この場合、I番目の値を引数)・・・これは、関数関係ない(例:Aという値(文字))
(2)Index関数で処理、(この場合、上記の値を使って処理)・・・これは、「関数」の処理。(Indexと書いてあるのでPat[I]は「添え字(数字)かな」と悩んだ。)
(3)上記の値をSkip関数で処理・・・これは、関数の処理。(これもSkip関数のプログラム自体載せていない・・・)


トレースを紙にしようとすると、「関数」部分は、細かくは追えない。
せっかく細かく見ようとしても関数で「ふわっ」となってしまう。
副プログラムはトレースで追でるが、関数処理は、割り切ろう。
(関数は関数メモ作るかな)

あと、変数や配列[]の中身に注意。配列があった場合、添え字または、最大の値を変数として使う。当たり前だけど。

PText ← PLast
PPat ← PatLen
とか変数の受け渡しが続くと中身が分からなくなる。
上も
下も、数字。(Textとか書いているけど。)

うーん。
プログラムの最初に、型の宣言で
〇整数型:Skip[26]、Ptext,Ppat,PLast,Iと並べて書いてあるから、全部整数型。

で、中身の比較のために、
Text[Ptext] = Pat[PPat]というのが出てくる。

 

思い込みはいけない・・・。