プログラミングⅠ(1組) 第10回 http://www.fit.ac.jp/~matsuki/lecture.html オフィス・アワーのお知らせ • オフィス・アワーを以下の要領で開講 – 日時:毎週月曜日、5時限目(16:20~) – 場所:A棟 4階 41番教室 – 内容:プログラミング関連科目 タイピングソフト • 喰人王を使用して結果を記録する • ステージ:第一の店(中華) • Excelのシートにスコアを毎回記録していく – 残り時間 ⇒ FeedBackページで報告 – 総タイプ数 – ミスタイプ数 – 正確さ ⇒ FeedBackページで報告 – 喰いっぷり ⇒ FeedBackページで報告 • このシートは,途中で提出してもらいます 今日の内容 • 関数の復習 • 配列 – 宣言 – 初期化 – 参照 – プログラム例 – 関数への関数の受け渡し 関数の定義 • 関数とは? – プログラマが与えた値(材料)を, – 指示通りに処理し, – 結果を吐き出す 引数 処理の材料 addnum()関数: 2つの整数値の 和を得る 2 a 3 b addnum() 戻り値(返り値) 処理の結果 5 プログラム例 • 次の関数を作れ – 関数名:power – 戻り値の型:double – 引数:double型x,int型nの2つ – 機能:xのn乗を計算し,その結果を戻り値とする プロトタイプ宣言 double power(double x, int n); または double power(double , int); #include <stdio.h> double power(double, int); プロトタイプ宣言 main() { printf(“%f\n”, power(1.414213, 4) ); } double power(double x, int n) { double result = 1; int k; for (k=0; k<n; k++) { n回繰り返す result = result * x; (n回,変数xを掛け合わせる) } return result; } 配列 • 40人分の100メートル走のタイムを記録して, 平均値を求めるプログラムを作る double a, b, c, d, e, ・・・ ; 40個もの変数を定義するのは面倒 配列 • 配列(array):同じ型のデータの集合 大括弧 大括弧 • 宣言方法: データ型 配列名[ 配列の大きさ ]; 配列 • 宣言方法: int a[5]; double x[10]; //int型で要素数が5 //double型で要素数が10 配列名 int a[5]; データ型 要素数 (全部でいくつの器 を用意するか?) a[0] a[1] a[2] a[3] a[4] 添字 (そえじ) 配列 • 配列は,配列の大きさ(要素数)を指定する必 要がある. • 添字の範囲は,0から(要素数ー1)まで 要素数 int a[5]; 添字は,0から4までの5つ a[0] a[1] a[2] a[3] a[4] 配列の初期化 • 宣言と同時に,初期化することが可能 • 初期値を,中括弧の中に列挙する int a[4] = { 1, 2, 100, 50}; double data[] = {4, 3.14, 7, 8, 9, 12.3}; 要素数を省略すると,初期値 の個数が,要素数となる 配列の初期化 • 初期値の個数が要素数より少ない場合は, 空いている要素には自動的に「0」が入る int a[4] = { 1, 2}; 1 2 0 0 a[0] a[1] a[2] a[3] 配列の参照 • 配列名[添字]で,配列要素を参照することが できる int a[5] = { 1, 2}; //宣言初期化 a[2] = 100; a[3] = a[0] + a[1] + a[2]; scanf(“%d”,&a[4]); printf(“%d\n”, a[2]); printf(“%d\n”, a[3]); a[2]に100を代入 a[3]にa[0],a[1], a[2]の和を代入 a[4]にキーボードか ら値を入力させる プログラム例 #include <stdio.h> main() data[4] data[0] { int data[5] = {10, 20, 40, 80, 160}; kは0から4まで int k; for (k = 0; k < 5; k++) { printf(“data[%d] = %d\n”,k, data[k]); } } 配列の関数への受け渡し • 呼び出し側 – 配列名を引数の位置に書く int data[5] = {10, 20, 30, 40, 50}; func(data); • 関数側 – 引数位置には,配列の型,配列名,大括弧を記述 func(int x[]) xという配列名で配列 { dataを受け取っている printf(“data[0] は %d”, x[0]); } 配列の関数への受け渡し • 配列の要素すべてを表示する関数display() – 関数名:display – 戻り値の型:void型 – 引数:int型配列data,int型size – 機能:引数data配列の要素をすべて画面に表示 プロトタイプ宣言 void display(int data[], int size); または void display(int [] , int); #include <stdio.h> void display(int data[], int size); プロトタイプ宣言 main() { int point[5] = {75, 100, 85, 56, 68}; display(point, 5); } void display(int data[], int size) { int k; for (k=0; k<size; k++) { printf(“%2d ”,data[k]); } printf(“\n”); }
© Copyright 2024 ExpyDoc