next up previous
Next: 2 変数の型の定義について Up: c_lang Previous: c_lang

Subsections


1 C言語の学習

1.1 プログラミングからコンパイル実行までの流れ

プログラミング言語には、「コンパイラー」および「インタプリター」と呼ばれ る分類の仕方があります。 コンパイラーは、以下の3段階の手順でプログラムを実行します。
(1)エディターなどによりプログラムソースを書く(2)コンパイルする(3)実行する。 コンパイラーの代表的なものには、C言語,C++,Fortran,Pascal などがあります。 一方、インタプリター言語は、コンパイルする必要がなく、以下の2つの手順で 実行されます。
(1)エディターによりログラムソースを書く(2)実行 する

インタプリタの代表的な言語が Basic, Ruby, Octave などです。 それでは、実際にプログラムソースを書くところから実行までの流れをおってみ ます。

まず、プログラムリストを打ち込む前に作業用ディレクトリをつくりましょう。

[nisimiya@dhcp32 nisimiya]$ mkdir C_Exercise
[nisimiya@dhcp32 nisimiya]$ cd C_Exercise

まず、以下のリストを打ち込んで下さい。 ファイル名には、拡張子''c''を使います。 ここではファイル名を仮に ''ex706_1.c''とします。

---------- Program ----------------------
#include <stdio.h>

int main(void);

int main(void)
{
  printf("Hello, world. \n");
}

----------- Program END ------------------

コンパイルして実行します。

[nisimiya@dhcp32 C_Exercise]$  gcc ex706_1.c

もし何もエラーがなければ "a.out" というファイルがあるはずです。
このファイルが実行ファイルです。

[nisimiya@dhcp32 C_Exercise]$ ls
a.out*  ex706_1.c

実行してみます。

[nisimiya@dhcp32 C_Exercise]$ ./a.out 
Hello, world.
``Hello, world. `` と表示されましたでしょうか。 コンパイル時にオプションを指定しなければ、実行ファイル名は、``a.out''と なります。 ソースプログラムの各行の意味は、以下のようになります。
---------- Program ----------------------
#include <stdio.h>              ==>ここでは詳しい説明は省略。
                                   「必ず必要」とだけ覚える。

int main(void);                 ==>この意味は、後述。

int main(void)                  ==>必ず main関数があります。   
{                                  "{" と "}"で囲われた部分が
                                    main関数の実行の内容です。
  printf("Hello, world. \n");   ==> 画面に文字列を表示させる部分です。
                                    "\n" は改行を意味します。
}

----------- Program END ------------------
また、C言語は各行の区切りに セミコロン";"を書きます。 これがないとエラー表示されます。 慣れないうちは、セミコロンの書き忘れによるエラーがもっとも多い。 中括弧 { と } は、一種の関数となっています。 最後の } は必ずしも改行をする必要はないのですが、プログラムを見やすくす るために改行して一行に書いてあります。

1.1.1 練習

  1. それでは、以下のように表示するプログラムを作成せよ。
    Hello, World.
    Hello, Japan.
    My name is XXXXXX.

  2. 以下のように横一列で表示させよ。但し、``printf''を三つ使うこと。
    Hello, World. Hello, Japan. My name is XXXXXX.

1.2 ``printf''の書式について

1.2.1 書式 %dについて

数値を表示する方法を学びます。 習うより慣れろで、以下のプログラムを打ち込んで下さい。

---------- Program ----------------------
#include <stdio.h>

int main(void);

int main(void)
{
  printf(" 1 + 3 is %d. \n", 1+2);
  printf(" 8 minus  3 equals  %d. \n", 8-3);
  printf(" 10 divided by 2 equals %d. \n", 10/2);
  printf(" 3 multiplied by 9 equals %d. \n", 3*9); 
}

----------- Program END ------------------
少し説明します。 それぞれ、``printf''には、カンマで区切られて、2つの引数が渡されております。 一つが
``1 + 3 is %d. \n''
で、もう一つが
 ``1+2''
です。 とくに、%d と言うのは、その場所に整数値が配置されると言う事を表わ
します。

1.2.2 書式 %fについて

それでは、%d を以下のように変更してください。
---------- Program ----------------------
#include <stdio.h>

int main(void);

int main(void)
{
  printf("%f\n", 12.3456);
  printf("%7f\n", 12.3456);
  printf("%7.0f\n", 12.3456);
  printf("%7.1f\n", 12.3456);
  printf("%7.2f\n", 12.3456);
}

----------- Program END ------------------
コンパイルして、実行すると以下のようになります。 確かめてください。
---------- 実行例 ----------------------
[nisimiya@dhcp32 C_lang]$ gcc ex704_4.c.c
[nisimiya@dhcp32 C_lang]$ ./a.out 
12.345600
12.345600
     12
   12.3
  12.35
---------- 実行例ここまで---------------

``f''というのは、浮動小数点を表わします。英語で言うと ``floating point''です。 意味は想像つきますでしょうか? ``f7.2''と言うのは、「7桁のうち、2桁を小数点以下にする。」 と言う意味です。

1.2.3 練習

  1. 987.654321を少数以下2桁まで、表示せよ。
  2. 987.654321を少数以下3桁まで、表示せよ。
  3. $10/3$を少数以下3桁まで、表示せよ。

1.2.4 書式 変数の並列表記

以下のプログラムを入力してください。
---------- Program ----------------------
#include <stdio.h>

int main(void);

int main(void)
{
  printf("%d + %d = %d\n", 2, 5, 2+5);
  printf("%f times %f equal %f\n", 2.5, 5.0, 2.5*5.0);
  printf("%f waru %f ha %f\n", 32.5, 3.0, 32.5/3.0);
}

----------- Program END ------------------
%d などの書式は、printf分の最初の引数(ダブルクウォテーション''と'' で囲 まれた部分)に複数個書くことが来ます。 それぞれに対応した変数も必要です。

1.2.5 練習

以下の計算を行うプログラムを作れ。 $5.2 + 2.4$, $5.2 - 2.4$, $5.2\times 2.4$, $5.2\div 2.4$



Nobuo Nishimiya
平成21年6月23日