基本情報技術者試験的な備忘録(アルゴリズム問題の比較)

20230517基本情報技術者試験的な備忘録(アルゴリズム問題の比較)

 

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

今回の参考問題
・サンプル問題 科目B(6問セットの問3)
・平成20年春午後 問4
過去問道場様とIPA様に感謝いたします。
著作権等問題があれば削除いたします。)

 


先日以前のブログで(アルゴリズム 単方向リストの問題)として、
サンプル問題 科目B(6問セットの問3)
<プログラム2>
〇append(文字型:qVal)
を取り上げた。

で、科目B対策として、過去問の「平成20年春午後 問4」を見ていて、少し思ったのでメモ。
(そんなことより問題解けという気もしますが・・・。)
********************************************
まず、サンプル問題 科目B(6問セットの問3)

次に、平成20年春午後 問4
少し長いですが、副プログラムMakeListの方を見る・・・。


(3)MakeListの説明を見ると、「引数の文字列を値とする要素を作成し、リストの最後に追加する」とある。
これは、サンプル問題のメソッド「append」と同じじゃないかと思う・・・。
それが早合点だった。


簡単に言うと、appendの方もMakeListの方も「〇〇.next」とか出てくるが、
MakeListの方は、ListSizeを定数として持っていたりしている。
appendの方は、whileで〇〇.nextが未定義かどうかで、最終を見つけたりしている。

ListHeadとFirstも使い方が違う(Firstは値はない)

だから、同じような働きでも、プログラムはかなり異なる。
注意しないと。

平成20年春午後の方が、問題が長いが、図が多いため、理解しやすい気がする。

問題後半の、OrganizingSeachも、短方向リストの順番の入れ替えで、アルゴリズムの基本的な問題の気がします。
(難しいけど理解はしやすいかな)


その他、大域が出たら、オブジェクト指向のクラスと考える。
「〇(マル)ほにゃらら」は、def メソッド。
メンバ変数は、ローカル(インスタンス変数)と異なる。
その他、プロパティも出るだろう。
具体的に置き換えた方が考えやすいか。