C言語を少し理解する
さて、前のページで書いたCプログラムを少しだけ理解してみよう。詳しくは別の文書で解説するので、ここでは"なんとなく"わかった気になれば充分。
一行ずつ理解する
以下では、Cのキーワードは太文字で表記することにする。
これは、決められた単語なので、勝手に変更することはできない。実際にプログラムを
書く場合には普通の文字で書けばよい。キーワード以外はプログラム作成者が自由に設定する
文字である。
この文は必ずつけなくてはならない。おまじないと思っておいてよい。
このあとの{と最後の}に囲まれた部分がプログラム本体(メインプログラム)である。
以下のプログラム中ではiという名前を持つ「整数型変数」を使う、という宣言。数学でいう"変数"とおおむね
同じ意味で、この場合iには整数だけを代入することができる。
変数には「型」があることだけ頭にいれておく必要がある。
以下のプログラム中でxという名前をもつ「実数型変数」を
使うという意味。平たくいえば、小数点を持つ数が実数。
変数xに0という値を代入した。これ以降、xは0という値を持つことになる。
ここで「イコール記号」が出てきたわけだが、C言語での「イコール記号」の役割は数学と
違うことを理解しておくこと。数学ではイコールとは「左右が等しい」ことであるが、
C(に限らず、多くのプログラム言語)の場合は「右辺の値を左辺に代入せよ」という命令である。したがって、
左右を取り替えて0=xなどと書いてしまうと全く違う意味になる。
この点は初心者が戸惑いやすいので注意。
ちなみに、”等しい”を表わす記号は"=="(イコールが2個)である。
いわゆる「forループ」の開始を表す。この{と次の}ではさまれた部分が「forループ」である。
ループとは、"繰り返し計算"のこと。スーパーコンピュータは繰り返し計算の性能に特化したコンピュータなので、ループをよく理解する必要がある。
forループでは「制御変数」を使う。このループでは先に宣言したiを制御変数に使っている。
for(i=1; i<=10; ++i)とは、「変数iの値を1から10まで1ずつ増やしながらループの中の計算を実行せよ」という意味。
つまり、まずi=1としてループ内の二行の計算を
実行。次にi=2として同じ二行を実行。iの値を3, 4, 5, 6と増やしながら
同じ計算を繰り返し実行して、iの値が10になるまで計算を実行し終わるとループを終了する。++iはiという変数の値を1だけ増やすという意味である。
これは変数xに変数iの値を足す、という意味。
x = x+iと書いてもよいが、これは初心者が戸惑いやすい表記なので、あまり使わないほうがいいかもしれない。
C言語ではイコールは"等しい"ではないのだから、数学の式のように
"両辺からxを消去して"とやってはいけない。
「イコールとは右辺を左辺に代入することだ」と理解していれば大丈夫。
つまり、まず右辺の式を計算する。この式は見た通りで変数xの値に変数
iの値を足すだけ。足した結果を最後に再びxに代入する。
両辺に同じxが出てくることにも戸惑うかもしれないが、代入によって
xの値は計算前と違う値になるのである。分からない人は、考えてみること。
printfまでで「値を出力せよ」という命令、
ここではxの値を画面に出力する。
"%f\n"はいわゆる「書式指定」で、出力の形式を指定する。
詳しくは書かないが、%fは浮動小数点数を出力すること、\nは出力の後に一行改行することを意味している。
forループの終わり。このプログラムでは、プログラムそのものがforループで
終了しているが、もしこのあとにまだプログラムが続いていれば、forループを実行した
のち、}の次の行を実行する。
プログラム全体の終了を宣言している。これは一番はじめのmain(){と対に
なってプログラム全体を挟んでいると思えばよい。
さて、ここでもう一度このプログラムを実行して、たしかに上の説明通りの
計算が実行されているか、よく確かめてみよう。
これで、ターミナルの使い方の基本は終了である。
前へ戻る