20250520基本情報技術者試験的な備忘録H28春午後問8アルゴリズム(簡易メモ帳)
(配列の0始まりは、全要素(len)、兼、次のポインター!?)
アルゴリズム素人です。
基本情報技術者試験素人です。
以下違いだらけです。自分用メモ
参考問題:
H28春午後問8「簡易メモ帳」
(今回、あんまり問題とは関係ない内容。この問題を解いていて、気づいたことです。)
以下は、問題の一部抜粋です。
感謝:基本情報技術者試験過去問道場様m(_ _)m
(著作権等問題ありましたら削除いたします。)
(実際の問題は、過去問道場様をご覧下さい。便利です。感謝)
今回、あんまり問題とは関係ない内容。この問題を解いていて、気づいたことです。
どの問題でも同じかもしれないが、「配列の始まりを0とするか、1とするか」について。
以下自分の考えメモです。
自分は、エクセルをよく使うので、表は1始まり。
配列0から始まるのは、結構苦手。
でも、この問題の場合、0始まりで、MemoとDataがある。
で、それぞれMemoCnt DataLenという使用している要素数(①)を表す変数がある。
で、これらの数字は、①だけでなく、次のポインター(空き番地)(②)を示していることに気づく。(恥)
自分は、「エクセル表の「1始まり」」に慣れていたので、
次のポインターが必要な場合は、いちいち「+1」をして変数を作っていた。
この0始まりだと、全要素数=次の(書き込める)ポインターだと考えられる。(恥)
************************************
区別 次のポインター 最終データ
0始まり 全要素数(len) 全要素-1
1始まり 全要素数-1 全要素(len)
************************************
で、もう少し言うと、上記のMemoCntを変数iなどと組み合わせて、使う場合、
MemoCntは、全要素(len)および次のポインターなので、
while i: 0 < memo_cntは、ありだが、
while i: 0 ≦ memo_cntだと、あふれてしまう。
(上記は、memo_cnt未満でループしたい場合。)
その他気づき
この問題は、実践的な解き方かは分からないが、
各表と各プログラムを列記して考える方がいい。
例:
addmemo図3(実行結果)
addmemoプログラム
上記に加え、実行前の図2も記載しておくとやりやすい。
その他気づき
プログラムの穴あき問題だが、変数が絡む場合、その変数の使いどころを見る。
穴あきと選択肢のにらめっこでは答え出ない・・・。
その他
IPAのサンプル問題だと配列は1始まりしかない気がする・・・。
素人ですみません。