ルギア君の戯言

雑多な記事。

第3章 初めての魔法

リザード「初めての魔法には、うーむ、何がいいかな・・・?」


・・・


リザード「なるほど。わかった。」
ルギア君「?」
リザード「今、キノガッサから『アップルパイが食べたいから、りんごを取ってきてほしい』って連絡があった。君たちには、この任務を託そう。」
ルギア君「どうするの?」
リザード「まず、この魔法書を読んでほしい。」


難しかったが、何とか読めた。


ルギア君,    . (クンジェ、チークン スムセ ウェクネ スムセジェリク)」
メタグロスの声(?)「新しい魔法か? 続けてくれ。」
リザード「メタグロスが魔法を聞き取って、実際に作業してくれるんだ。彼は超能力の持ち主でもあるから、何でもできるよ。さあ、リンゴを入れる箱を用意しよう。そのための魔法はここに書いてある。読んでみてくれ。」
ルギア君,    . (クンジェ、ギクンメケボセ イェ ペアク ダガ)」


すると、目の前に「」とかかれた四角い木箱が現れた。


ルギア君「開けられないよ?」
リザード「リンゴを入れるときも、魔法が必要なんだ。ここに書いてある。」
ルギア君「えーっと、 −   . (ギクンメケボセ クセーガ ゲムセ ケ ギクンメ)」


いきなり、箱のふたが開いて、リンゴが 6 個入ったかと思うと、すぐに閉じた。


リザード「じゃあ、持っていきな。」
ルギア君「うん。」

まとめ

物語にもあったように、まず、魔法を言うための下準備が必要です。
C言語では次のように書きます。

int main(void) {


これが、「今から、魔法を言うから、メタグロス、聞いてくれ!」ということを示すことになります。
魔法は、これより後に書きます。


それで、リンゴの箱「apple_box」を用意するには、

    int apple_box;


と書きます。
この「apple_box」が物語の中の「」にあたるわけです。
箱には必ず名前が必要なのです。名前がないと、どの箱に入れればいいのかわかりません。
リンゴは数えることができるものなので、数えるものを入れるための箱が int だというわけです。
*1


この記述が箱を用意する記述です。必要なもの最低限しか書かれていないので多少わかりにくいですが。


次に、リンゴの箱にリンゴを入れます。

    apple_box = 6;


と書くと、リンゴの箱「apple_box」に 6 個のリンゴが入ります。
当然、8個のリンゴを入れるようにするには 6 の部分を 8 にすればいいのです。


ところで、紹介したC言語の最後には必ず セミコロン (;) がついています。
これは、日本語の 句点 (。) や、魔法における ピリオド(.) にあたる、文の終わりを示すものです。
C言語も「言語」なのですから、当然文の終わりが必要なのです。その記号が セミコロン(;) だというわけです。


最後に、どんなときでも(特殊な場合は除いて)、開いた括弧は閉じないと、文としておかしいですよね。
C言語でも同じです。
最初に開きっぱなしの { がありましたよね。
最後にそれを閉じてあげます。


以上のことをまとめると、今回できたプログラムは以下のようになります。


<Sample01-001.c>

int main(void) {
    int apple_box;
    apple_box = 6;
}


書くときは上と下に一行ずつ開けておきましょう。


さて、コンパイル(メタグロスが読めるようにすること)してみましょう。


作業分量は今度は逆転します。
待ちくたびれるなんてことはないですけどね。

Windows (VC++ 2005)の場合

まずは、「Visual C++ 2005 Express Edition」を起動しましょう。
初めての起動の場合は少し設定に時間をとられます。


まず、プロジェクトを作成します。
[ファイル]→[新規作成]→[プロジェクト] とクリックします。
選択すると、「新しいプロジェクト」というダイアログが出てきます。


次のように入力して、[OK]を押してください。
[プロジェクトの種類]→[Visual C++]または[Win32]
[テンプレート]→[Win32 コンソールアプリケーション]
[プロジェクト名]→[Sample01-001]
[ソリューション名]→[C_Study]
これ以外はそのままで OK です。


そうすると、「アプリケーションウィザード」がでてきます。
左側にある「アプリケーションの設定」をクリックします。
[コンソールアプリケーション]と[空のプロジェクト]にチェックをつけて[完了]をクリックしてください。


すると、左側の「ソリューションエクスプローラ」に[ソリューション 'C_Study']と[Sample01-001]ができます。


そしたら、[Sample01-001]中の[ソースファイル]を右クリックして
[追加]→[新しい項目]と選択します。


「新しい項目の追加」というダイアログが出てきますので、以下のように入力して、[追加]をクリックします。
[カテゴリ]→[Visual C++]または[コード]
[テンプレート]→[C++ ファイル (.cpp)]
[ファイル名]→[Sample01-001.c]


そうすると大きなエディタが出てきますのでそこに今回のソースコードを打ち込んでやります。


変更したら、[ファイル]→[上書き保存]または[Ctrl + S]で保存するのを忘れずに。


保存したら、ビルドです。
[ビルド]→[Sample01-001 のビルド]をクリックすると、「出力」のところになにやらメッセージが出てきて、
最後に、「1 正常終了、0 失敗、・・・」と出てくれば成功です。


ここで、成功しなかった場合は何かが間違っています*2
それでは、実行してみましょう。
実行するときは、[デバッグ]→[デバッグ開始]でプログラムを実行します。


一瞬黒い画面が出てきても、すぐに消えちゃうと思います。


これでは、ちゃんと「apple_box」に 6 が代入されたのかわかりません。
そこで、

}

のところの左の灰色の部分をクリックして赤い丸印をつけてください。
そうして、もう一回実行してみると、下の「自動変数」のところの[apple_box]に たしかに 6 が入っています。


再生ボタンのようなものを押すと、終了します。

Linux (gcc)の場合

残念ながら、Windows のように豪華なことはできませんが、(KDevelop とかを使えばできるが、今は省略)
Windows よりも作業ははるかに簡単です。


KWrite や Kate、EmacsVIM などのテキストエディタを起動して、今回のソースコードを打ち込んで
[Sample01-001.c]という名前で保存します。


Linux でコンパイルするときは、Konsole などのコンソールプログラムを起動して

$ gcc -o Sample01-001.out Sample01-001.c

と打ち込みます。

$ gcc -o [プログラムの名前] [ソースコードの名前]

です。

Not Found とか出た場合は、作業ディレクトリがあっているかどうか確認してください。


何かしらエラーが出たときはどこかが間違っていますので、見直してみてください。
*3


コンパイルしたファイルを実行する際は、

$ [コンパイルしたプログラム]

で実行できます。


この場合は、

$ Sample01-001.out

となります。


次回(予定): 第4章 メタグロスに怒られた!

*1:数えられないものを入れるときは → 第 未定 章

*2:今回作ったプログラムは実はあまりよくないものだったりするが、VC++ では何も出ずに正常終了にされる

*3:gcc でもこのプログラムはコンパイルされ、正常に終了する。