かずきち。の日記

サーバサイドエンジニアのつぶやき

基本情報のアルゴリズム試験はアルゴリズムの試験じゃなくて、間違い探し試験だな

基本情報試験のアルゴリズムの穴埋め問題試験

[問題一部抜粋]
プログラムの説明
整数型の1次元配列の要素A[0],A[1],…A[N](N>0)を、挿入ソートで昇順に並べたい

みたいな文があり、

idx:「空欄」,idx≦N,1 でforループみたいな問題がある

空欄に入るのはなに?みたいな問題があって、
idxはにnやn-1やn+1みたいな問題を選ばせる問題。

f:id:kazukichi_0914:20220220145540g:plain
引用:
https://www.irasutoya.com/2018/07/blog-post_565.html

内心なんでもよくない?っていうのが本音。
だってパソコンでプログラムのトレーサーを使えば、1万行のプログラムでも中身追えます。

よく参考書見ていると「プログラムをトレースできることが大事です」みたいに書かれていて…

確かに試験問題は数十行のプログラムをとレスする問題
トレースっていうのはプログラムの1行1行でなにが行われているか追うことなんですけど…
現場のプログラマーでプログラムを1行1行追う人はいないです。

試験なのでしょうがないなってプログラムコード追いますけど…デバッガ使えよっていうのが本音です。

デバッガポインタを設定して変数の中身を追わないのがいわゆる情報系の試験らしい

f:id:kazukichi_0914:20220220150449g:plain

実際に仕事で使用されるプログラムはすごく長くて、1万行前に定義した変数に何が入っているかとかとか人間が記憶しておくのはほぼ無理で、そんなの機械に任せようっていうのが普通です。

デバッガでステップインしていけば…どのような変数が定義されいて今何が入っていますか?っていうのがわかります。
だいたいいつも自分は自分はデバッガ使っているので、変数の中身とか記憶していないんですけど…
どうやら試験はプログラム1行1行の処理を愚直に聞く試験のよう。
昔は自動車教習所で車の運転を練習したけど、一度免停になって、0から教習所で学ぶみたいな感じですね。