我が青春のコンピュータ


19 プログラムの学習法1

1ヶ月が過ぎた。

この間、ヨシオの机の上にあったものは、PC-1211とそのマニュアルが2冊。  そして「コンピュータ用語辞典」と「やさしく解るBASIC入門」であった。

この間、ヨシオはこのBASICというプログラミング言語をどのようにマスターしたら良いのか、 それなりに試行錯誤を繰り返してみた。

地学概論の攻略本の様ににBASICのコマンドや関数を表に書いて、裏にその働きを書いてみたりもした。

PC-1211のBASICには数十種類のコマンドや関数がある。  単にそれらのコマンド(多くは簡単な英単語で表される)の 名前を覚えるのは簡単だが、その機能となると多くのものが全くもってチンプンカンプンだった。

マニュアルであるコマンドの働きを調べてみると、そこにはおびただしい数の専門用語が記述されている。  そこでコンピュータ用語辞典でその意味を調べるのだが、 そこにもまたその用語を説明するのに多くの専門用語が使われていた。

「...これでは何をやっているのか解らなくなる。何か良い手は無いものか...」

どうにもこうにも考えがまとまらないまま更に幾日かが経過した。

ある日曜日のことである。

ヨシオは何とは無しにPC-1211に付属していた「プログラム ライブラリ」という冊子に目を通した。

この冊子にはPC-1211に入力しさえすれば動作するプログラムが、 簡単なものから高度なものまで約50種類ほど紹介されていた。

簡単なものはこれまでのBASICのコマンドの知識で理解できたが、 プログラムが複雑になるにつれて意味の良くわからないコマンドが登場してくる。

その意味不明のプログラムのうちの1つに、意味の解らない行が1つだけあるものがあった。

「実際、どんなふうになるんだろう...」

こうなったら実際にプログラムを打ち込んで、動作を確認してみるしかない。

ついにヨシオは意を決して7行にわたるそのプログラムを入力してみることにした。

プログラム ライブラリに書かれていたプログラム

10:INPUT "A=",A
20:INPUT "N=",N
30:LET B=A
40:FOR I=1 TO N-1
50:B=B*B
60:NEXT I
70:LPRINT A;"^";N;"=";B

マニュアルによると、このプログラムはAのN乗を計算するプログラムだということである。

10行目と20行目はそれぞれ変数Aと変数Nに底数と指数を入力しているというのは理解できた。

30行目はLETコマンドで変数Bに変数Aの値を代入していることも解る。

そして70行目はおそらく計算結果をプリンタに印刷しているということも何となく解る。

40行目のFORはマニュアルを調べてみると繰り返して処理を行うコマンドと書いてある。

FORから始めて60行目のNEXTと書かれた行の間の処理を何回か繰り返して実行するようだが、 繰り返しの回数は、その後にある変数Iの値によって決まるらしい。

具体的には、I=1 to 10 と書けば、10回繰り返すのだという。

「ということは、このプログラムではN-1回繰り返すんだな...」

そしてヨシオが解らなかったのが50行目だ。

「びぃはびぃかけるびぃー??? ...こんなの数式じゃ無いじゃない。
B×BはBの2乗だろう? どうして...?」

ひょっとしたらマニュアルのミスプリント(誤植)かもしれない。  そのときはSHARPに抗議してやる...などと疑いながらも、何とか入力して実行してみることにした。

まず、2の4乗を入力してみる。答えは16になる筈だ。

変数Nに4を入力してENTERを入力すると、果たしてプリンタには正しい答えの2^4=16が印字された。

「ふーん...このプログラム合ってるのかな...? それじゃこれはどうだ...」

プリンタは今度も正しく4^3=64と吐き出した。