講義用スライド

情報処理技法
(Cプログラミング)I 第3回 ー 変数・標準入出力 ー 担当: 荻田 武史 本日の授業内容 •  C言語で体格指数(BMI: Body Mass Index)を計るプログラムを作成する •  実習を通じて、変数や標準入出力に
ついて学ぶ 2
BMIとは? •  身長と体重から肥満度を測定するための指数 BMI指数 = 体重(kg) ÷ 身長(m)2 BMI指数 18.5未満 18.5以上25未満 25以上30未満 30以上 判定 やせぎみ 標準体重 やや肥満 太り過ぎ 3
Cプログラムの基本形
#include <stdio.h> ヘッダファイルの宣言 int main(void) メイン関数の開始 { プログラム本体 return 0; } メイン関数の終了 4
変数: 整数型 int
#include <stdio.h> int main(void) { 整数型(int)の変数を宣言。 int seisu; intはinteger(整数)の略 seisu = 10; 変数に値を代入。 数学のイコールの意味ではない。 seisu ß 10 というイメージ 5
画面への出力: 関数 printf() seisu = 10; printf("seisu..%d\n", seisu); %dの部分にseisuの値が入る 6
$ cd work (自分で作ったworkディレクトリに移動) アプリケーションからEmacsを開き、variable.cを新規作成 #include <stdio.h> int main(void) { int seisu; seisu = 10; printf("seisu..%d\n", seisu); return 0; } $ gcc variable.c -o variable $ ./variable 実行ファイル名を自分で指定
(a.outは作成されない) 7
変数名のルール •  先頭の文字は、英文字またはアンダース
コア「 _ 」でなければならない。大文
字・小文字は区別される。 これ以外にもルールはいくつかあるが、詳
細は参考書等を参照のこと。 8
キーボードからの入力:
関数 scanf() int height; printf("Input height>"); scanf("%d", &height); キーボードからの入力を受け付けて、 整数を変数heightに格納する 9
bmi1.c #include <stdio.h> int main(void) { int height; int weight; printf("Input height>"); scanf("%d", &height); printf("Input weight>"); scanf("%d", &weight); printf("height..%d\n", height);
printf("weight..%d\n", weight); return 0; } 10
四則演算 (加減乗除) 演算 演算子 加算 + 減算 - 乗算 * 除算 / ※ 演算子の優先順位を見てくれる。 例) 1 + 2 * 3 → 1 + 6 → 7 11
失敗プログラム(1) bmi2-1.c #include <stdio.h> int main(void) { int height; int meter_height; printf("Input height>"); scanf("%d", &height); meter_height = height / 100; printf("height..%d(m)\n", meter_height); return 0; } 12
失敗の理由(1) •  変数meter_heightは整数型なので、小数
を含む値を扱えない? •  小数も扱える実数型(浮動小数点型)が必
要 13
変数: 実数型(浮動小数点型)
double <書き換え> int meter_height; ⇒ double meter_height; printf("height..%d(m)\n", meter_height); ⇒ printf("height..%f(m)\n", meter_height); ※ 他にfloatという実数型もあるが、ここでは
doubleを基本に考える。 14
失敗プログラム(2) bmi2-2.c #include <stdio.h> int main(void) { int height; double meter_height; printf("Input height>"); scanf("%d", &height); meter_height = height / 100; printf("height..%f(m)\n", meter_height); return 0; } 15
失敗の理由(2) •  int型同士の演算の結果はint型になる(除算の場
合は、通常は切り捨て)。 meter_height = height / 100; int型 •  int型とdouble型の演算はdoubleで行われる。 ⇒ heightをdouble型にするか、100を100.0に変え
る(両方やっても良い)。 16
成功プログラム bmi2-3.c #include <stdio.h> int main(void) { int height; double meter_height; printf("Input height>"); scanf("%d", &height); この演算はdoubleで実行
される meter_height = height / 100.0; printf("height..%f(m)\n", meter_height); return 0; } 17
BMI指数の計算プログラム bmi3.c #include <stdio.h> int main(void) { int height; int weight; double meter_height; double bmi; printf("Input height>"); scanf("%d", &height);
printf("Input weight>"); scanf("%d", &weight); meter_height = height / 100.0; bmi = weight / (meter_height * meter_height); printf("BMI..%f\n", bmi); return 0; }
18
次回の予定 •  条件分岐 19