情報理論2 第4回 小林 学 湘南工科大学 2011年11月1日 〒 神奈川県藤沢市辻堂西海岸1-1-25

Slides:



Advertisements
Similar presentations
第 2 章 数値の入力と変数 scanf と変数をやります 第 2 章 数値の入力と変数 1. 以下のプログラムを実行してみよう  C 言語では文の最後に「 ; 」(セミコロン)が付きます 第 2 章 数値の入力と変数 2 #include int main() { int x; x = 3; printf("x.
Advertisements

1 例題 ex3b ( 配列 ) 科学科プログラミング. 2 例題 : ex3b  以下の 3 つについて例題を進める ステップ 1 :配列 ステップ 2 :最小と最大 ステップ 3 :文字型の配列.
復習 配列変数の要素 5は配列の要素数 これらの変数をそれぞれ配列の要素と呼ぶ この数字を配列の添え字,またはインデックスと呼ぶ
復習 配列変数の要素 5は配列の要素数 これらの変数をそれぞれ配列の要素と呼ぶ この数字を配列の添え字,またはインデックスと呼ぶ
プログラミング入門2 第4回 配列 for文 変数宣言 初期化
情報理論2 注意!! 11月26日(火)は休講 (小林が学会出張のため) 湘南工科大学情報工学科 准教授 小林 学 湘南工科大学
情報基礎演習B 後半第5回 担当 岩村 TA 谷本君.
計算技術研究会 C言語講座 第3回 Loops (for文 while文).
プログラミング入門2 第10回 構造体 情報工学科 篠埜 功.
プログラミング入門2 第10回 構造体 情報工学科 篠埜 功.
プログラミング演習(2組) 第12回
基礎プログラミング (第五回) 担当者: 伊藤誠 (量子多体物理研究室) 内容: 1. 先週のおさらいと続き (実習)
問題 1 フィボナッチ数列 xn は次で定義される。
情報理論2 第6回 小林 学 湘南工科大学 2011年11月15日 〒 神奈川県藤沢市辻堂西海岸1-1-25
湘南工科大学 2013年4月23日 プロジェクト実習A アドベンチャーゲームを作ろう 第3回 湘南工科大学情報工学科 准教授 小林 学.
CG2 第5回 小林 学 湘南工科大学 2012年5月13日 〒 神奈川県藤沢市辻堂西海岸1-1-25
湘南工科大学 2013年12月10日 プログラミング基礎1 湘南工科大学情報工学科 准教授 小林 学.
第3回 配列,構造体,ポインタ ~ データ構造について学ぶための基礎~
第10章 char 文字列; 文字列を入力させるよ!.
C言語講座 第3回 ポインタ、配列.
プログラミング演習 バージョン1 担当教員:綴木 馴.
岩村雅一 知能情報工学演習I 第11回(後半第5回) 岩村雅一
関数の定義.
プログラミング序論 2. n人のインディアン.
高度プログラミング演習 (03).
前回の練習問題.
プログラミング入門2 第11回 情報工学科 篠埜 功.
岩村雅一 知能情報工学演習I 第10回(後半第4回) 岩村雅一
地域情報学 C言語プログラミング 第5回 ポインタ、関数、ファイル入出力 2017年11月17日
湘南工科大学 2013年10月22日 プログラミング基礎1 湘南工科大学情報工学科 准教授 小林 学.
CG2 第3回 小林 学 湘南工科大学 2013年4月22日 〒 神奈川県藤沢市辻堂西海岸1-1-25
プログラミング基礎a 第7回 C言語によるプログラミング入門 ファイル入出力
プログラミング基礎B 文字列の扱い.
プログラムの制御構造 配列・繰り返し.
岩村雅一 知能情報工学演習I 第11回(後半第5回) 岩村雅一
岩村雅一 知能情報工学演習I 第9回(後半第3回) 岩村雅一
情報理論2 第3回 小林 学 湘南工科大学 2011年10月25日 〒 神奈川県藤沢市辻堂西海岸1-1-25
プログラミング序論演習.
知能情報工学演習I 第11回( C言語第5回) 課題の回答
プログラミング入門2 第6回 関数 情報工学科 篠埜 功.
CG2 第4回 小林 学 湘南工科大学 2013年5月6日 〒 神奈川県藤沢市辻堂西海岸1-1-25
地域情報学 C言語プログラミング 第4回 while文、do~while文、switch文、 2次元配列、ポインタ 2017年11月10日
C言語講座 制御(選択) 2006年 計算技術研究会.
精密工学科プログラミング基礎 第7回資料 (11/27実施)
プログラミング入門2 第5回 配列 for文 変数宣言 初期化
地域情報学 C言語プログラミング 第3回 入力、if文、for文 2016年11月25日
ループだよ!難しいよ! 第5章 while(ループ);.
プログラミング基礎a 第7回 C言語によるプログラミング入門 ファイル入出力
ループだよ! 第7章 for(ループ応用);.
プログラミング入門2 第6回 関数 情報工学科 篠埜 功.
精密工学科プログラミング基礎Ⅱ 第2回資料 今回の授業で習得してほしいこと: 配列の使い方 (今回は1次元,次回は2次元をやります.)
岩村雅一 知能情報工学演習I 第10回(後半第4回) 岩村雅一
地域情報学 C言語プログラミング 第3回 入力、if文、for文 2017年11月1日
プログラミング1 プログラミング演習I 第2回.
湘南工科大学 2013年10月22日 情報理論2 湘南工科大学情報工学科 准教授 小林 学.
プログラミング序論演習.
コンピュータープログラミング (C言語)(10) 1.ファイル入出力
プログラミング入門2 第5回 配列 変数宣言、初期化について
printf・scanf・変数・四則演算
第2章 数値の入力と変数 scanfと変数をやります.
知能情報工学演習I 第11回(後半第5回) 課題の回答
知能情報工学演習I 第9回(後半第3回) 課題の回答
C言語講座第5回 2017 構造体.
計算技術研究会 C言語講座 第二回 制御構文 if , switch.
岩村雅一 知能情報工学演習I 第13回(後半第7回) 岩村雅一
分岐(If-Else, Else if, Switch) ループ(While, For, Do-while)
知能情報工学演習I 第10回( C言語第4回) 課題の回答
プログラミング演習I 補講用課題
= 55 課題6-1 #define _CRT_SECURE_NO_WARNINGS
プログラミング 2 静的変数.
Presentation transcript:

情報理論2 第4回 小林 学 湘南工科大学 2011年11月1日 〒251-8511 神奈川県藤沢市辻堂西海岸1-1-25 情報理論2 第4回 小林 学 〒251-8511 神奈川県藤沢市辻堂西海岸1-1-25 Tel. 0466-30-0232(直通) Fax. 0466-34-5932 kobayasi@info.shonan-it.ac.jp

Page 2 [前回の課題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 3 #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 = 0; for(i=0;i<5;i++) sig += (x[i]-ave)*(x[i]-ave); sig = sig / 5; printf("sum=%f, ave=%f, sig=%f\n", sum, ave, sig); }}

Page 4 [前回の課題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 5 [前回の課題3の実行例]

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

Page 7 [前回の課題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

Data [0] [1] [2] [3] [4] DataNo 画面出力 Input(2) 2 1 Output 2 Input(4) 4 Page 8 [前回の課題1の解答] (1) Data [0] [1] [2] [3] [4] DataNo 画面出力 Input(2) 2 1 Output 2 Input(4) 4 1

Data [0] [1] [2] [3] [4] DataNo 画面出力 4 1 Input(7) 4 7 2 Output 4 1 7 Page 9 Data [0] [1] [2] [3] [4] DataNo 画面出力 4 1 Input(7) 4 7 2 Output 4 1 7

Data [0] [1] [2] [3] [4] DataNo 画面出力 Input(4) 4 1 Input(12) 4 12 2 Page 10 [前回の課題1の解答] (2) Data [0] [1] [2] [3] [4] DataNo 画面出力 Input(4) 4 1 Input(12) 4 12 2 Input(22) 4 12 22 3 Output 4 12 2 22

Data [0] [1] [2] [3] [4] DataNo 画面出力 4 12 2 Output 4 1 12 Output 4 Page 11 Data [0] [1] [2] [3] [4] DataNo 画面出力 4 12 2 Output 4 1 12 Output 4

[前回の課題4] Page 12 スタック構造を実現するプログラムを作成しなさい [実行例]

Page 13 [前回の課題4の解答] #include<stdio.h> void main(void){ int select, i, DataNo=0, Data[5], input; while(1){ printf("\nInputならば0,Outputならば1を入力:"); scanf("%d",&select); if(select==0){ printf("入力データ:"); scanf("%d",&input); Data[DataNo] = input; DataNo++; }else{ DataNo--; printf("出力:%d\n",Data[DataNo]); } printf("Data="); for(i=0;i<DataNo;i++) printf(" %d",Data[i]);

[解答] 変数の値 画面出力 i siki 0 0 2 2 4 4 6 6 8 8 Page 14 [例題1] 次のプログラムの変数の値をトレースしなさい [解答] #include<stdio.h> void main(void){ int i, siki; for(i=0;i<5;i++){ siki = 2*i; printf("%d\n", siki); } 変数の値 画面出力 i siki 0 0 2 4 6 8 2 4 6 8

[解答] 変数の値 画面出力 i siki Page 15 [課題1] 次のプログラムの変数の値をトレースしなさい #include<stdio.h> void main(void){ int i, siki; for(i=0;i<5;i++){ siki = 2*i+1; printf("%d\n", siki); } 変数の値 画面出力 i siki          

[解答] 変数の値 画面出力 i data[i] 0 1 1 4 4 7 7 10 10 13 13 Page 16 [例題2] 次のプログラムの変数の値をトレースしなさい [解答] #include<stdio.h> void main(void){ int i, siki, data[5]; for(i=0;i<5;i++){ data[i] = 3*i+1; printf("%d\n", data[i]); } 変数の値 画面出力 i data[i] 0 1 4 7 10 13 1 4 7 10 13

[解答] 変数の値 画面出力 i data[i] Page 17 [課題2] 次のプログラムの変数の値をトレースしなさい #include<stdio.h> void main(void){ int i, siki, data[5]; for(i=0;i<5;i++){ data[i] = 2*i+2; printf("%d\n", data[i]); } 変数の値 画面出力 i data[i]

[解答] 変数の値 画面出力 i data[i] siki 0 7 8 9 10 11 0 0 2 4 7 9 Page 18 [例題3] 次のプログラムの変数の値をトレースしなさい [解答] #include<stdio.h> void main(void){ int i, siki, data[5]; for(i=0;i<5;i++) data[i] = i+7; for(i=0;i<3;i++){ siki = 2*i; printf(“%d\n”, data[siki]); } 変数の値 画面出力 i data[i] siki 0 7 8 9 10 11 0 0 2 4 7 9 11 (注意)変更のない変数は書かなくてよい

[解答] 変数の値 画面出力 i data[i] siki (注意)変更のない変数は書かなくてよい Page 19 [課題3] 次のプログラムの変数の値をトレースしなさい [解答] #include<stdio.h> void main(void){ int i, siki, data[5]; for(i=0;i<5;i++) data[i] = 3*i; for(i=0;i<3;i++){ siki = i+2; printf(“%d\n”, data[siki]); } 変数の値 画面出力 i data[i] siki (注意)変更のない変数は書かなくてよい

[解答] 変数の値 画面出力 i data[i] 0 7 8 9 10 11 0 8 8 (注意)変更のない変数は書かなくてよい 9 10 Page 20 [例題4] 次のプログラムの変数の値をトレースしなさい [解答] #include<stdio.h> void main(void){ int i, data[5]; for(i=0;i<5;i++) data[i] = i+7; for(i=0;i<4;i++){ data[i] = data[i+1]; printf(“%d\n”, data[i]); } 変数の値 画面出力 i data[i] 0 7 8 9 10 11 0 8 8 9 10 11 (注意)変更のない変数は書かなくてよい

[解答] 変数の値 画面出力 i data[i] (注意)変更のない変数は書かなくてよい Page 21 [課題4] 次のプログラムの変数の値をトレースしなさい [解答] #include<stdio.h> void main(void){ int i, data[5]; for(i=0;i<5;i++) data[i] = 3*i; for(i=0;i<3;i++){ data[i] = data[2*i]; printf(“%d\n”, data[i]); } 変数の値 画面出力 i data[i] (注意)変更のない変数は書かなくてよい