PowerPoint プレゼンテーション

2011年10月17日
湘南工科大学
情報理論2
第2回
小林 学
〒251-8511 神奈川県藤沢市辻堂西海岸1-1-25
Tel.
0466-30-0232(直通)
Fax.
0466-34-5932
[email protected]
[前回の課題2]
Page 2
(1) int 型の変数 a と b を用意し,キーボードからそれぞれに数
字を入力するプログラム作成.
(2) (1) の入力に対して,画面に a と b の和,差,積,商,余りを
表示するプログラム作成.
[実行例]
Page 3
[前回の課題2解答]
#include<stdio.h>
void main(void){
int a, b;
printf("変数a->");
scanf("%d", &a);
printf("変数b->");
scanf("%d", &b);
}
整数型の変数
変数の前に & をつける
printf(“和:%d\n差:%d\n積:%d\n", a+b, a-b, a*b);
printf("商:%d 余り:%d\n", a/b, a%b);
[前回の課題1]
Page 4
(1) 画面に 1 から 10 を表示するプログラムを作成しなさい.
(2) int 型の配列 a[10] を用意し,それぞれに 1 から 10 までの
数字を入れるプログラムを作成しなさい
(3) (2) の内容を画面に表示するプログラムを追加しなさい.
[実行例]
Page 5
[前回の課題1] (1)
#include<stdio.h>
void main(void){
int i;
}
制御変数
for(i=1 ; i<=10 ; i++)
printf("%d \n", i);
for(初期値 ; 繰り返し条件 ; 制御変数の更新 )
文;
意味:一つの「文」の繰り返し
(注:「文」とは,「;」までの命令のこと)
Page 6
[前回の課題1] (1)
#include<stdio.h>
void main(void){
int i;
}
制御変数
for(i=1 ; i<=10 ; i++){
printf("%d \n", i);
}
for(初期値 ; 繰り返し条件 ; 制御変数の更新 ){
文;
:
意味:複数の「文」を繰り返し
文;
}
Page 7
[前回の課題1解答] (3)
#include<stdio.h>
void main(void){
int i, a[10];
}
配列の定義
for(i=0 ; i<10 ; i++){
a[i] = i+1;
printf("%d \n", a[i]);
}
int a[10];
a[0] ~ a[9]
a[i]
で 10 個の変数を一度に定義
それぞれが変数として使える
i 個目の変数として使える
[前回の課題1解答] (3) 問題のように表示
#include<stdio.h>
void main(void){
int i, a[10];
}
配列の定義
for(i=0 ; i<10 ; i++){
a[i] = i+1;
printf("a[%d] = %d \n", i, a[i]);
}
Page 8
[前回の課題3]
Page 9
(1) int 型の配列 a[3] を用意し,キーボードからそれぞれに数
字を入力するプログラム作成.
(2) int 型の配列 b[3] を用意し,キーボードからそれぞれに数
字を入力するプログラム作成.
(3) ベクトル a とベクトル b の内積を計算するプログラム作成
[実行例]
内積の計算 = 1*4 + 2*5 + 3*6
Page 10
[前回の課題3解答]
#include<stdio.h>
void main(void){
int i, a[3], b[3], ans;
printf("配列a->");
for(i=0;i<3;i++) scanf(“%d”,&a[i]);
printf("配列b->");
for(i=0;i<3;i++) scanf("%d",&b[i]);
配列に値を入れる
ans = 0;
for(i=0;i<3;i++) ans += a[i]*b[i];
}
printf("内積:%d\n",ans);
ans = ans + a[i]*b[i]; と書いても同じ
Page 11
[課題1]
(1) double 型の変数 x を用意し,キーボードから数字を入力する.
(2) double 型の変数 y を用意し,次式を計算.
3
y  5 x  (2 x  3) x  4
(3) 結果の y を表示するプログラム作成
(4) (1)~(3)を 4 回繰り返すプログラム作成
[参考]
double x;
scanf(“%lf”, &x);
printf(“%f”, x);
double 型変数の定義
double 型変数の入力
double 型変数の表示
[課題1実行例]
Page 12
[課題2]
Page 13
(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 をそれぞれ表示するプログラム作成
[参考] 入力が 1 2 3 4 5 のとき
sum = 1 + 2 + 3 + 4 + 5 = 15
ave = sum / 5 = 3
sig =( (1–ave)2+ (2–ave)2+ (3–ave)2+ (4–ave)2+ (5–ave)2 ) / 5
=2
[課題2実行例]
Page 14
Page 15
[課題3]
(1) 40項までのフィボナッチ数列を表示するプログラム作成
フィボナッチ数列とは以下のように続く数列
0 1 1 2 3 5 8 13 21 34 55 89 144
(2) 40項までのフィボナッチ数列の和を表示するプログラム作成
[参考] フィボナッチ数列は,前の2項の和
0
13 = 5
1
21 = 8
1 = 0 + 1
34 = 13
2 = 1 + 1
55 = 21
3 = 1 + 2
89 = 34
5 = 2 + 3
144 = 55
8 = 3 + 5
233 = 89
+
8
+ 13
+ 21
+ 34
+ 55
+ 89
+ 144
[課題3実行例]
Page 16
Page 17
【ウサギの問題】
生まれたばかりの1つがいのウサギは,2か月目から毎月1つがい
のウサギを産むことにする。すべてのウサギがこの規則にしたがい,
死ぬことはないとするとき,1つがいのウサギは1年後に何つがい
になっているだろうか。