1 / 13

湘南工科大学情報工学科 准教授 小林 学

湘南工科大学. 2013 年 10 月 29 日. 情報理論2. 湘南工科大学情報工学科 准教授 小林 学. [ 前回の課題1 ]. Page 2. (1) double 型の変数 x, y を用意する. (2) x を -2 から 2 まで 0.1 刻みで次式を計算. (3) 各 x, y の値を画面に表示するプログラム作成. [ 実行例 ]. Page 3. [ 課題1解答例 ]. #include<stdio.h> void main(void){ double x, y;

signa
Télécharger la présentation

湘南工科大学情報工学科 准教授 小林 学

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. 湘南工科大学 2013年10月29日 情報理論2 湘南工科大学情報工学科 准教授 小林 学

  2. [前回の課題1] Page 2 (1) double 型の変数 x, y を用意する. (2) xを -2 から 2 まで 0.1 刻みで次式を計算. (3) 各 x, y の値を画面に表示するプログラム作成 [実行例]

  3. Page 3 [課題1解答例] #include<stdio.h> void main(void){ double x, y; for(x=-2; x<=2; x=x+0.1){ y = 5*x*x*x + (2*x-3)*x + 4; printf("%f,%f\n",x, y); } } for(初期値; 繰り返し条件; 変数の更新 ){ 文; }

  4. Page 4 [前回の課題2] (1) double 型の配列 x[5]={2,4,6,8,10} を用意する. (2) double 型の変数 sum を用意し,x[0]~x[4] の和を計算. (3) double 型の変数 ave を用意し, x[0]~x[4] の平均を計算. (4) double 型の変数 var を用意し, x[0]~x[4] の分散を計算. (5) sum,ave,var をそれぞれ表示するプログラム作成 [参考] 計算方法 sum = x[0] + x[1] + x[2] + x[3] + x[4] ave = sum / 5 var =( (x[0]–ave)2+ (x[1]–ave)2+ (x[2]–ave)2 + (x[3]–ave)2+ (x[4]–ave)2 )/5

  5. Page 5 [課題2解答例] #include<stdio.h> void main(void){ int i; double x[5]={2,4,6,8,10} , sum, ave, var; sum = 0; for(i=0;i<5;i++) sum += x[i]; ave = sum / 5; var = 0; for(i=0;i<5;i++) var += (x[i]-ave)*(x[i]-ave); var /= 5; printf("sum=%f, ave=%f, var=%f\n", sum, ave, var); }

  6. Page 6 [前回の課題3] 40項までのフィボナッチ数列を表示するプログラム作成 フィボナッチ数列とは以下のように続く数列 0 1  1  2  3  5  8  13  21  34  55  89  144 [参考] フィボナッチ数列は,前の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 + 3144 = 55 +  89  8 = 3 + 5233 = 89 + 144

  7. Page 7 [課題3解答例] #include<stdio.h> void main(void){ int i, fibo[41]; fibo[0] = 0; fibo[1] = 1; printf("fibo[0]=0\nfibo[1]=1\n"); for(i=2 ; i<=40 ; i++){ fibo[i] = fibo[i-1] + fibo[i-2]; printf("fibo[%d]=%d\n", i, fibo[i]); } }

  8. Page 8 アルゴリズム:数を数える(カウント) [1] [4] Data [0] [3] [2] 実行結果 用意する変数: count(1の数を入れる) 初期値: count = 0

  9. Page 9 アルゴリズム:数を数える(カウント) i Data[i] count 初期値: 0 繰り返し: 0 10→1 1 0 1 2 0 1 3 1 1→2 4 1 2→3 if(Data[i]==1) count++;

  10. Page 10 [例題のプログラム] #include<stdio.h> void main(void){ int i, Data[5]={1, 0, 0, 1, 1}; //データの初期化 int count; count = 0; //カウントの初期化 for(i=0;i<5;i++){ if(Data[i]==1) count++; //Data[i]が1ならば //countを1増やす printf("%d, %d, %d\n", i, Data[i], count); } printf("Data中の1の数:%d\n",count); }

  11. Page 11 アルゴリズム:最大値・最小値 最大の位置 [1] [4] Data [0] [3] [2] void main(void){ int Data[5]={5, 3, 6, 8, 2};//配列Dataの初期化 実行結果 用意する変数: max(最大値の候補), position(最大の位置の候補) 初期値: max = Data[0] position = 0

  12. アルゴリズム:最大値・最小値 Page 12 i Data[i] max position 初期値: 5 0 繰り返し: (for文) 1 3 5 0 2 6 62 3 8 83 4 2 8 3 if(Data[i]>max){ max = Data[i]; position = i; }

  13. Page 13 [例題のプログラム] #include<stdio.h> void main(void){ int i, Data[5]={5, 3, 6, 8, 2}, max, position; max = Data[0]; // maxの初期化 position = 0; // positionの初期化 for(i=1; i<5; i++){ if(Data[i]>max){ // maxとpositionの更新 max = Data[i]; position = i; } printf("%d, %d, %d, %d\n", i, Data[i], max, position); } }

More Related