第2回 - 首都大学東京 システムデザイン学部

第2回
配列とfor文
条件分岐
(特にif文の使用方法)について
1
配列とは
棚のように連結した変数
 宣言の仕方: 型名 変数名[配列数]
 例 : int dt[10];
 注意点:添え字は、0から始まり、配列数ー1
までしか存在しない。(棚の数は10個)

2
1次元、2次元配列

1次元配列: int dt[10];

2次元配列: int matrix[4][3];
3
配列の初期型の仕方

1次元配列
– int dt[3] = {1,2,3};

2次元配列
– int matrx[2][2] = { {1, 2}, {3, 4} };
4
for文

(計算機が得意な)繰り返し作業を行わせるため
の文

文法: for( i=0;
i < 10;
i++ ){
実行文;
}
– 初期化; 終了条件; 増分
– 上記の例では、10回繰り返すことになる。

カウンタ変数(上記の場合はi)は、使用する前に
宣言しておく必要あり。
5
for 文を使うときの注意点
初期化は、ほとんどの場合 ゼロ(i=0)とす
る。(他の言語等では、i=1とすることが多
いが、C言語では、0を使う)
 終了条件は、ほとんどの場合、“< 回数”
とする。(これは、上記の0から始まること、
および配列の添え字が配列数ー1である
こととも関係あり)

6
for 文の使い方(変形バージョン)

for( i=0; i < 10; i+=2){ /* カウンタ変数を2個ず
つ増やす場合*/}

for( i=10; i > 0; i--){ /* カウンタ変数を10から一
つずつ減らす場合*/}


for( ; ; ){ /* 無限ループを作成する場合*/}
無限ループは通常困るので、実行文のところに
無限ループを抜ける条件判断と抜ける処理が書
かれる必要がある。
7
例題:配列を使ったプログラム
8
演習課題3:九九の表の作成
九九表を計算し、その結果を2次元配列に
格納、表示するプログラムを作成せよ。
 ファイル名は、Kadai3_uyyyy(学修番号相
当)

9
条件分岐とは

条件によって、異なる処理を実施すること
10
if文の文法(if else文)

if(条件){
/* 実行文*/
}
偽
条件式
真
if文に続く文{}内を実行する
if(条件式){}の外の文

if(条件){
/* 実行文1*/
}else{
/* 実行文2*/
}
偽
条件式
真
ifに続く文{}内を実行する
else{}内を実行する
if(条件式){}の外の文
11
for文との組み合わせ:
break文とcontinue文

break文
条件を満たしたとき、
for文から抜け出る
for文
if

continue文
条件を満たしたとき、
for文の先頭に戻る。
ただし、カウンタ変数は増える
break
continue
if
文
12
次の文へ
条件式の書き方

不等号関係

条件式の重ね合わせ(andとor)
13
例題:入力された数の偶奇判定
14
課題4:数当てゲーム
0~100の間の数字をランダムに発生させ、
その数を当てるゲームをプログラムせよ。
 ファイル名は、Kadai4_uyyyy(学修番号相
当)


プログラム仕様や補足説明は次のページを
参照
15
プログラム仕様






「予想した数を入力してください」と画面に表示する。
予想数が実際の数よりも大きければ、「大きいです」
と画面に表示する。
予想数が実際の数よりも小さければ、「小さいです」
と画面に表示する。
予想が外れた場合、再度、数の入力を促す。
予想が当たった場合、「当たりです」と表示し、プロ
グラムを終了する。
入力回数が6回を超えた場合、「ゲームオーバー」と
画面に表示し、プログラムを終了する。
16
0~100の間の数をランダムに
発生させるには

次のようにする
#include <stdlib.h>
#include <stdio.h>
#include <process.h>
void main(){
int randam_num; /* これがランダム数用の変数*/
srand((unsigned int)getpid());
randam_num = 100 * (double)rand()/32767.1;
/* ここから下の部分を作ってください */
}
17