PR

 仙台坂を登ったあたりにアバンティはある。「やあ,ジェイク」,「いらっさいませ。」――東京FM(TFM)で土曜17時にオン・エアされている番組「アバンティ」はいつもこのセリフで始まる。



コカコーラのペットボトルに付いてくるLEGO STUDIO(上の画像のライトやカメラ)で,かずが作ったスタジオセットを見て,こうしろうが「これ,アバンティか?」と言ったので,南さんやトリデ ゴウシュウが出入りする元麻布のウェイティング・バー 「アバンティ」を思い出した(トリデ ゴウシュウが取出 豪州と書くことをTFMのホームページで知った。)。 ちなみに南さんや取出 豪州,「いらっさいませ」というジェイクさん達が番組の出演者である。「アバンティ」はイタリア語で「お入りなさい」という意味だそうだ。

7月11日 こうしろうは日経ソフトウエア2000年7月号を取り出しC言語の勉強を始めた。Borland C++ Compilerを我が家の自作PCにインストールして,バッチファイルとcfgファイルを作成した。それから,お決まりのhello.cプログラムをエディタで入力しコンパイル,実行する。暗いDOS窓に「Hello,Hello This is the first program」と表示される。

hello.c
#include <stdio.h>
main()
{
 printf("Hello Hello,This is the first program.\n");
 return 0;
}

printf関数で画面で文字列を表示させるだけのプログラムである。標準入出力のヘッダーファイルであるstdio.hをincludeステートメントで取り込んでいる。

 7月号の『C言語に触れてみよう』を読み進めるこうしろうが「ねぇ,どうして関数に引数を渡すの?」と初歩的な質問,「NQCのインライン関数でやったでしょ」と小言を言いながら説明する。「MindStormsでモーターが2つ付いた車でさあ,どっちかに曲がる時,片方のモーターを反転させるやろ」と切り出す。この場合,回転角度を決めるのは反転させる時間である。ちょっと曲がる,ギュと曲がる,180度曲がるという関数を別々に作るのは非効率的である。「時間を引数として渡せば,1つの関数で済むだろう。」,「ああ,そうやった」とNQCとCが少しつながったこうしろうである。環境が変わるとゼロ・クリアされるのはビギナーの常である。

7月12日 この日は定番のprintfとscanfの勉強をする。printfは画面に文字を表示する。scanfはキーボードから入力された文字をメモリーに格納する。記事のプログラム・リストを一字一句間違いないように打ち込むこうしろう。

#include<stdio.h>
main()
{
 /*変数の宣言*/
 int kingaku,zeigaku,goukei;

 /*金額の入力*/
 printf("金額を入力してください:");
 scanf("%d",&kingaku);

 /*税額,合計の計算*/
 zeigaku = kingaku * 0.05;
 goukei = kingaku + zeigaku;

 /*結果の表示*/
 printf("金額は%d円,消費税%d円,合計%d円です。\n",
  kingaku,zeigaku,goukei);

 return 0;
}


 プログラムは正しく動いた。サンプルプログラムをそのまま入力しているのだから当然だが。彼が悩んだのは,printfには変数kingakuをそのまま渡すが,scanfには先頭に&をつけて,&kingakuのようにして引数を与えるところだ。本棚から黄色くなりかけたC言語のマニュアル本を取り出し,説明する。「scanfは引数としてポインタ,つまり変数のアドレスを要求するから,kingakuに&を付けてアドレスを取りだすんだ」,「どうして,そんなことせんといかんが?」と納得のいかないこうしろう。(富山弁解説:「どうして,そんなことしないといけないの?」の意)「scanfという関数を作った人が,そう決めたんだから仕方がないさ。」

 ここは初心者が必ず,はまるところである。気を取り直して丁寧に解説する。「変数を定義するということはメモリのどこかにその変数の型分の場所を確保することだね」,「うん」この辺は感覚的に理解できるようだ。「で,scanfはキーボードから入力された値をメモリの指定された場所,つまりkingakuのアドレスに入れるんだ。アドレスはメモリ上の住所,所番地のことだね。」

 ここまで説明するとすっきりした顔を見せたので,まずはメデタシ。でも,このC言語の勉強は続くのだろうか?何にでも興味を持つ分,移り気なところもある息子である。