p.34 型と演算
・実数と整数を演算に用いた場合、自動的に整数を実数に変換してから用いられる ・例: 2 + 2.5 ⇒ 2.0 + 2.5 として実行される ・実数値や計算結果が実数になる式を整数変数に代入すると、エラーにはならず、小数点以下切り捨てが起こる
p.36 キャスト
・キャスト:型を強制的に変換すること。例えば、実数値を整数にすること ・書式: (型)値や式 ・例: (double)2 ⇒ 2.0になる、(int)3.6 ⇒ 3になる ・例: int a = 3, b = 2; double c = (double)a / 2; //cは3.0÷2=1.5
p.37 演習2-5
・自由参加課題とします
p.38 変換指定
・printfの「%d」や「%f」の「%」の後ろに「少なくとも●桁で表示」と指示できる
例:printf("「%5d」です", 123); //「 123」です
例:printf("「%5d」です", 1234); //「 1234」です
・表示する値の桁数が●を超える場合、指定は無視される(エラーにはならない)
例:printf("「%5d」です", 123456); //「123456」です
・printfの「%d」や「%f」の「%」の後ろに「少なくとも●桁で、小数点以下■桁まで表示」と「%●.■f」で指示できる
例:printf("「%5.1f」です", 3.14); //「 3.1」です
例:printf("「%5.2f」です", 3.14); //「 3.14」です
※ 小数点以下の表示できない桁があれば、そこで四捨五入される(切り捨てではない)
アレンジ演習:p.38 list0211.cpp
・平均は小数点以下1桁ではなく2桁を表示するように変更しよう
作成例
/*
アレンジ演習:p.38 list0211.cpp
*/
#include <stdio.h>
int main(void)
{
int a, b, c; //int型の3変数を宣言
puts("3つの整数を入力せよ。");
scanf("%d%d%d", &a, &b, &c); //キーボードから3整数値を連続入力
int sum = a + b + c; //合計を得る
double ave = (double)sum / 3; //合計を実数にキャストして平均を得る
printf("それらの合計は%5dです。\n", sum); //値を埋め込んで表示(改行)
printf("それらの平均は%5.2fです。\n", ave); //値を埋め込んで表示(改行)
return 0;
}
p.38 変換指定(続き)
・printfの「%d」や「%f」の「%」の後ろに「少なくとも●桁で表示」と指示するときに前に「0」を入れると、空きができたら「0」で埋めてくれる
例:printf("「%05d」です", 123); //「00123」です
例:printf("「%05.1f」です", 3.14); //「003.1」です
アレンジ演習:p.26 list2-2 その2
・西暦4桁を入力したら、下2桁を表示しよう(2002年なら02と表示しよう) 実行例: 西暦を入力せよ:2002 ←入力 下2桁は02
作成例
/*
アレンジ演習:p.26 list0202.cpp その2
*/
#include <stdio.h>
int main(void)
{
int year; //int型の変数(西暦)を宣言
printf("西暦を入力せよ:"); scanf("%d", &year); //入力案内を表示しキーボードから整数値を入力
printf("下2桁は%02d\n", year % 100); //計算値を2桁で埋め込んで表示(改行)
return 0;
}
p.39 演習2-6 ヒント ex0206.cpp
・int型の変数heightを宣言する ・「身長を入力せよ:」と表示する ・変数heightに整数値を入力する ・(height - 100) * 0.9 を実数として小数点以下1桁で表示する ⇒ 「%.1f」を用いると良い
作成例
/*
p.39 演習2-6
*/
#include <stdio.h>
int main(void)
{
int height; //int型の変数(身長)を宣言
printf("身長を入力せよ:"); scanf("%d", &height); //入力案内を表示しキーボードから整数値を入力
printf("標準体重は%.1fです。\n", (height - 100) * 0.9); //計算値を埋め込んで小数点以下1桁まで表示(改行)
return 0;
}
p.44 if文
・条件分岐ともいい、C言語では値が0か非0かで後続の処理の実行/非実行を変えられる仕掛け
・C/C++ではif文のカッコ内の値が非0であれば後続の処理を実行する
※ C#やJavaでは不可
例:
int a = 7;
if(a % 5)
puts("aは5で割り切れない");
例:
int a = 7;
if(a % 2)
puts("aは奇数");
p.45 else付きのif文
・if文には1つだけelseを付記でき、その後に「でなければ行う処理」を記述する
例:
int a = 7;
if(a % 5) //aを5で割った余りが非0ならば
puts("aは5で割り切れない");
else //でなければ(aを5で割った余りが0ならば)
puts("aは5で割り切れる");
例:
int a = 7;
if(a % 2) //aを2で割った余りが非0ならば
puts("aは奇数");
else //でなければ(aを2で割った余りが0ならば)
puts("aは偶数");
提出:p.47 演習3-1 ヒント ex0301.cpp
・int型の変数a、bを宣言する ・「二つの整数を入力せよ」と表示 ・「変数A:」と表示し、変数aに整数を入力する ・「変数B:」と表示し、変数bに整数を入力する ・(a % b)が非0ならば「BはAの約数ではありません」と表示し でなければ「BはAの約数です」と表示する
自由参加課題:アレンジ演習:p.47 演習3-1
・BがAの約数かどうかの判断の後に、AがBの約数かどうかの判断もしよう ・提出に盛り込むとさらによい 実行例: 二つの整数を入力せよ 変数A:15 変数B:5 BはAの約数です AはBの約数ではありません