課題作成へ向けて

まずは復習

今回は,皆さんがどれぐらいプログラムを書けるのかを見るために, 必要最小限の説明だけで,自由にプログラムを組んでもらおうと思います. 最小限の説明も(最小限の)関数の使い方だけですので, 頑張って課題を完成させてください.

画面に表示する:printf(教科書P.19,P.37)

画面に与えた文字列や変数の値などを表示するための関数が, printfです.

	  printf(const char *format,...)
	  
	  const char *format:文字列与えられた書式指定
	  ...:変数を複数.
	
printfの最初の引数は文字列の形で与えられた書式指定です. 普通の文字列はそのまま表示されますが, %+英字の指定でどのように数値などを出力するか指定します. 2つ目以降の引数には表示する変数が必要なだけ並びます. 書式指定で%で与えたものと数が一致しない場合, 実行時にSegmantation faultなどのエラーを出力する場合があります.

書式指定は基本的に表1-1のような構造をしています.

表 1-1. 代表的な書式指定

%代入抑止文字最大フィールド幅変換修飾子変換指定子
%*10進数字列hd,i,o,u,x,X
le,E,f,g,G
Ls
c,p,n
%   

%そのものを表示するためには %%を使います. 最大フィールド幅を指定することで,数字の表示幅などを指定することが できます. 例えば, %5dとすると,この整数は5桁で表示されます. 書式指定の代表的なものについて以下に表1-2にまとめておきます.

表 1-2. 代表的な書式指定子

変換指定子意味使用例
d符号あり10進数%10d, %05d
f浮動小数点数%f, %5.3f
s文字列%s
c文字(一文字)%c, %10c

実際にいくつかの表示の例を見てみましょう. cとsでは文字列を取るか,文字を取るかが異なりますので注意しましょう. %05dの様に0をいれると桁が足りない場合は0で埋めてくれます. 浮動小数点数を使っている場合は,小数点以下の桁数を %10.3f等のように ピリオドの後ろの桁で指定できます. 表1-3に実際の関数呼出と, その出力の例を示します.

表 1-3. Cの書式指定と実際の表示例

書式指定表示
printf("%d",123);123
printf("%5d",123);__123
printf("%05d",123);00123
printf("%f",123.45);123.450000
printf("%7.2f",123.45);_123.45
printf("%s","hogehoge");hogehoge
printf("%10s","hogehoge");__hogehoge
printf("%c",'h');h
printf("%3c",'h');__h

決まった回数の繰り返し:for文(教科書P.56)

1から10までの和を求めるなどの作業はプログラムを作る上で よく行われます. Cには,ループ文としてfor以外にもwhileやdo〜whileなどがありますが, 今回はforを使うことにしましょう.

forは以下のような書式になっています.

	  for(初期化式;ループ継続条件;各ループの最後で評価される式){
	    ループの本体
	  }
	
ここで,初期化式はループを実行する前に実行される式です. また,ループ継続条件は, この条件が満たされる間だけループが実行される条件式です. 最後の各ループの最後で評価される式は, ループの本体を実行した後に実行される式です.

例えば,1から10までの和を求めるプログラムは以下のようになります.

	  int sum=0;
	  for(i=1;i<=10;i++){
	    sum+=i;
	  }
	

また,正の偶数を100まで表示したければ,以下のようになるでしょう.

	
	  int i;
	  for(i=2;i<=100;i++){
	    printf("%d ",i);
	  }