今回は,繰り返しのもう一つ,for 文の演習を行う.
(例)1から,入力した値 n までの和を求めるプログラムを作成せよ.
考え方:
この問題は,1 から n までの値を自動的に作るプログラムを土台にする.
#include <stdio.h>
void main()
{
    int i, n;
 
    printf("n=");
    scanf("%d", &n);
 
    i = 1;                   /* カウンターの値を1に */
 
    while(i <= n) {          /* カウンターの値が n 以下の場合,以下を繰り返す */
        printf("%d¥n", i);   /* 画面にカウンターの値を表示する */
        i++;                 /* カウンターの値に1加える */
    }
}
 
ここで,ループの回数を数えるカウンタは,1 から n まで変化する.
| i | 
| 1 | 
| 2 | 
| ... | 
| n | 
別の変数 wa を用意し,ループで作成したカウンタを順番に加えていく.
| i | wa | 
| 1 | 1 | 
| 2 | 1+2 | 
| ... | ... | 
| n | 1+2+...+n | 
#include <stdio.h>
void main()
{
    int i, n, wa;
 
    printf("n=");
    scanf("%d", &n);
 
    wa = 0;   /* 和をあらかじめ 0 に */ 
    i = 1;    /* カウンターの値を1に */
 
    while(i <= n) {      /* カウンターの値が n 以下の場合,以下を繰り返す */
        wa += i;         /* wa = wa + i */
        i++;             /* カウンターの値に1加える */
    }
    printf("和は %d です¥n", wa);     /* 結果を表示する */ 
}
同じプログラムを,for文を用いて作成すると,
#include <stdio.h>
void main()
{
    int i, n, wa;
 
    printf("n=");
    scanf("%d", &n);
 
    wa = 0;
 
    for(i=1; i<=n; i++) {
        wa += i;
    }
 
    printf("和は %d です.¥n", wa);
}
となる
while文と比較してみよう.
| while | for | 
|  |  | 
| 式1 | 初期値設定 | 繰り返し実行の直前に1度だけ実行される.カウンタの初期値設定などに使う. | 
| 式2 | 反復条件 | while分と同様,繰り返しを継続する条件を書く.この条件式が真の間は繰り返す | 
| 式3 | 付加実行式 | 繰り返しを1度行うごとに実行したいことを書く. | 
| 文1 | 実行文 | 繰り返し実行する文 | 

for 文は,あらかじめ繰り返しの回数がわかっているときに,利用する.
while 文は,ある条件になるまで繰り返すという場合に,利用する.
ただし,どちらも書き換えが可能なので,必ずというわけではない.
変数float :有効桁数6桁の実数
変数double:有効桁数8桁の実数
float型を使用したとき
	float n;
	printf("n=");
        scanf("%f", &n);
double型を使用したとき
	double n;
	printf("n=");
        scanf("%lf", &n);
scanf関数を使用する時、float型ならば%f,double型ならば%lfにすることに注意
(1) 1から入力した値nまでの和を求めるプログラムをfor文で作成せよ
(2) (1)を応用して,データ(例えば実験データなど)の件数 n 
を整数で入力し,続いてその件数分データを入力すると,
  データの合計と平均値と最大値を求め画面に表示するプログラムをfor文を用いて作成せよ.
データの例:5(データ件数,これは整数),続いて 10.2 9.8 3.3 8.4 11.9 と順に入力すると,合計は...
(3)1~100までの数字で奇数だけを表示するプログラムを作成せよ
(4)(3)の問題で,奇数の個数を数えその数を表示するプログラムを作成せよ
(5) つぎのような数列をフィボナッチ数列という
1 1 2 3 5 8 13 21 34 55 89
この数列は第n項は第n-1項と第n-2項を加えたものであり,第1項と第2項は1であるから次のように定義される

  
これを第20項まで計算するプログラムを作成しなさい
授業終了時までのプログラムと完成した提出用プログラムをoh-meijiシステムを使って提出すること
授業終了時に送るのは出席の確認用である.
完成した課題は提出用の回に送ること
(提出期限を厳守し,提出用の回に提出しないと採点を行わない)