四則演算


 前回までで、プログラムからデータの入力を受け付け、データの表示が出来るようになりました。このあたりから自分でアレンジしていろいろなバリエーションのプログラムを作れるようになります。積極的に改造してプログラムに慣れるようにしてください。ここの文章を読んでいるだけでは「自分の」プログラムを作れるようには決してなりません。

 それでは、とりあえず足し算をするプログラムを紹介します。
    #include
    main()
    {
      int a,b,c; /* 変数の宣言 */
      
      printf("足し算をします。2つの数字を入力してください。\n");
      printf("一番目>");
      scanf( "%d", &a );
      printf("二番目>");
      scanf( "%d", &b );
      c = a + b; /* 計算 */
      printf("結果は %d です。\n", c );
      return 1;
    }

 今回も変数の宣言をしているところを一行目とします。まず、一行目。同じ型の変数はカンマで区切って一行にいくつも書くことが出来ます。ただ、実際は長い変数名を使ってその変数が何をあわしているのかというコメントをいれるので、複数の変数を一行で宣言するのはまれだと思いますが。そして、コメントというのは後半の「/* */」で囲まれた部分をさします。コメントは覚え書きや、処理の説明をするために用います。はじめに「/*」をつけ、終わりに「*/」をつければ複数行にわたる長いものでも使用できます。会社などで複数の人か見てもわかるように、コメントを入れたりもします。個人で作っているときも、後で見るときにわかりにくそうなところはコメントとして、簡単な説明を入れておくと、バグを見つけたときに対処しやすかったりするのでお勧めします。コメント部分はプログラムとしてコンパイラに認識されることはありません。

 次の行は空白行になっていますが、プログラムの区切りで入れたりします。今の所では空白行より上が変数宣言、下が処理内容に分けることが出来るので入れましたが、このあたりもコメント同様、作る人の自由なので任意に入れてもらって結構です。もちろん、無くてもOK。

 あと説明が必要なのは「計算」というコメントの入っている八行目でしょう。プログラムを作るにあたり、四則演算はよく用いますが、イコールの右側半分の計算結果が左側の変数に代入されます。初心者の方には納得のいかない方もおられると思いますが、そういう決まりです。よって8行目に、「 a + b = c 」と書くのは間違いです。八行目以前で変数「c」に何らかの値が入っていても、八行目の処理を終えると上書きされて、「a + b」の計算結果が格納されることになります。御間違えなく。ここは大切ですよ。

 四則演算なので足し算の他に、引き算、掛け算、割り算がありますが、それぞれ、「+,-,*,/」という記号で計算を表します。これらの「記号」はプログラミング用語で「演算子」といい厳密には「=」も演算子の部類に入ります。(「代入演算子」という)これらの他に既に登場しているのが「&」記号でこちらはアドレス演算子といいます。「演算」と聞くと計算をするような錯覚を覚えられる方がおられるとは思いますが、プログラム一般では決してそうではなく、「何かの操作を行うもの」というぐらいにニュアンスを広めておいた方がいいでしょう。

 それでは次は割り算のサンプルを示します。引き算と掛け算は各自で確かめてください。
    #include
    main()
    {
      double a,b,c; /* 変数の宣言 */
      
      printf("割り算をします。2つの数字を入力してください。\n");
      printf("割られる数>");
      scanf( "%d", &a );
      printf("割る数>");
      scanf( "%d", &b );
      c = a / b; /* 計算 */
      printf("結果は %f です。\n", c );
      return 1;
    }

 割り算の結果は小数になることがほとんどなので、変数も double 型として宣言しました。更に、最後の計算結果を出す printf() 関数の第一引数も %f としてある事に注意してください。

 それでは応用編として、球の体積を求めるプログラムを下に示します。円の面積、円弧の長さ、球の表面積を求めるプログラムなども作ってみるといいでしょう。
    #include
    main()
    {
      double r,v; /* 半径、体積 */
      
      printf("球の体積を計算します。半径を入力してください。\n");
      printf("半径>");
      scanf("%f", &r );
      v = 4 / 3 * 3.14 * r * r * r; /* 計算 */
      printf("結果は %f です。\n", v );
      return 1;
    }

 「計算」のコメントのある行のように、複数個つなげることもOKです。加減乗除が混ざっているときは算数の法則と同じように、乗除から先に実行されて加減は後に計算されます。よって、先に計算させてたいところがある場合は「()」でくくってあげると、思い通りの順番に計算してくれます。
 3 + 3 * 3 → 答え、12
 (3 + 3) * 3 → 答え、18
「()」の中に更に「()」を入れても大丈夫です。ただし、たくさん入れた時は括弧の数に注意しましょう。また、あまりにもややこしくなった場合は計算を分割して、複数の行で計算を行って、最後に答えを出すようなやり方をした方がいい場合もあります。この辺は経験によります。


制御構文(if 文 その1)

C言語講座トップページ

TOP-PAGE

Web-Page制作者e-mailアドレス