第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
© Copyright 2024 ExpyDoc