情報理論2 第3回 小林 学 湘南工科大学 2011年10月25日 〒251-8511 神奈川県藤沢市辻堂西海岸1-1-25 情報理論2 第3回 小林 学 〒251-8511 神奈川県藤沢市辻堂西海岸1-1-25 Tel. 0466-30-0232(直通) Fax. 0466-34-5932 kobayasi@info.shonan-it.ac.jp
データ構造1:スタック Data [0] [1] [2] [3] [4] DataNo 画面出力 Input(5) 5 1 Page 2 int DataNo=0; :データの数を表す int 型変数 int Data[5]; :データを格納する int 型配列 Data [0] [1] [2] [3] [4] DataNo 画面出力 Input(5) 5 1 Input(13) 5 13 2 Output 5 1 13
データ構造1:スタック Data [0] [1] [2] [3] [4] DataNo 画面出力 5 1 Input(9) 5 9 2 Page 3 Data [0] [1] [2] [3] [4] DataNo 画面出力 5 1 Input(9) 5 9 2 Input(22) 5 9 22 3 Output 5 9 2 22 Output 5 1 9
Page 4 [今回の課題1] int DataNo=0; :データの数を表す int 型変数 int Data[5]; :データを格納する int 型配列 上の定義に対して,以下の命令を実行したときの配列Data の内容と DataNo の変化,画面出力をメモ帳に記述しなさい Input(2) → Output → Input(4) → Input(7) → Output (1)と同様に,以下の結果をメモ帳に記述しなさい Input(4) → Input(12) → Input(22) → Output → Output → Output
Page 5 [前回の課題1] (1) double 型の変数 x を用意し,キーボードから数字を入力する. (2) double 型の変数 y を用意し,次式を計算. (3) 結果の y を表示するプログラム作成 (4) (1)~(3)を 4 回繰り返すプログラム作成 [参考] double x; double 型変数の定義 scanf(“%lf”, &x); double 型変数の入力 printf(“%f”, x); double 型変数の表示
Page 6 [前回の課題1実行例]
Page 7 [前回の課題1解答] #include<stdio.h> void main(void){ int i; double x, y; for(i=0 ; i<4 ; i++){ printf("x="); scanf("%lf", &x); y = 5*x*x*x+(2*x-3)*x+4; printf("y=%f\n\n", y); }
Page 8 [今回の課題2] (1) double 型の配列 x[5] を用意し,それぞれにキーボードから数字を入力する. (2) double 型の変数 sum を用意し,x[0]~x[4] の和を計算. (3) double 型の変数 ave を用意し, x[0]~x[4] の平均を計算. (4) double 型の変数 sig を用意し, x[0]~x[4] の分散を計算. (5) sum,ave,sig をそれぞれ表示するプログラム作成 [参考] 入力が 4 1 5 7 3 のとき sum = 4 + 1 + 5 + 7 + 3 = 20 ave = sum / 5 = 4 sig =( (4–ave)2+ (1–ave)2+ (5–ave)2+ (7–ave)2+ (3–ave)2 ) / 5 = 4
[今回の課題2の実行例] Page 9 #include<stdio.h> void main(void){ int i; double x[5], sum, ave, sig; printf("配列x:"); for(i=0;i<5;i++) scanf("%lf", &x[i]); sum = 0; for(i=0;i<5;i++) sum += x[i]; //和 ave = sum / 5; //平均 (ここにsig を求めるプログラムを作成しなさい) }
Page 10 [今回の課題3] 100項までのフィボナッチ数列を表示するプログラム作成 フィボナッチ数列とは以下のように続く数列 0 1 1 2 3 5 8 13 21 34 55 89 144 (2) 100項までのフィボナッチ数列の和を表示するプログラム作成 [参考] フィボナッチ数列は,前の2項の和 0 13 = 5 + 8 1 21 = 8 + 13 1 = 0 + 1 34 = 13 + 21 2 = 1 + 1 55 = 21 + 34 3 = 1 + 2 89 = 34 + 55 5 = 2 + 3 144 = 55 + 89 8 = 3 + 5 233 = 89 + 144
Page 11 [今回の課題3の実行例]
[今回の課題4] Page 12 スタック構造を実現するプログラムを作成しなさい [実行例]