200 likes | 288 Views
第 7 章 そろそろ int 以外も使ってみよう! ~ データ型 double , bool ~. 変数を宣言するときに書いていた int 型 今回 はそれ以外の基本的なデータ型をやって みよう. 前回やったこと. 配列 で繋がった変数を複数同時に宣言できた さらに 、 2 次元 的 に変数をとる 2次元配列. 1 次元配列. 2 次元配列. 今日 の予定. データ型とは int 型 double 型 bool 型 型変換 暗黙の型変換とキャスト コメントの書き方. 今日は割と軽めの話. データ型 (1). そもそもデータ型とは・・・
E N D
第7章そろそろint以外も使ってみよう!~データ型 double , bool~ 変数を宣言するときに書いていた int型 今回はそれ以外の基本的なデータ型をやってみよう 第7章 データ型
前回やったこと • 配列で繋がった変数を複数同時に宣言できた • さらに、2次元的に変数をとる2次元配列 1次元配列 2次元配列 第7章 データ型
今日の予定 • データ型とは • int型 • double 型 • bool型 • 型変換 • 暗黙の型変換とキャスト • コメントの書き方 今日は割と軽めの話 第7章 データ型
データ型(1) • そもそもデータ型とは・・・ • 変数宣言時に、「変数の大きさと入れるデータの種類を決めるもの」と説明しました • 今まではint型しか使ってこなかったが、今回はそれ以外も見て、使ってみる 厳密な定義はここ では省くよ intnum = 0; 第7章 データ型
データ型(2) • int型 • ひとまずint型から。最もポピュラー。整数値が扱える(小数点以下は切り捨て) • double 型 • 小数が扱える • 表示(出力)するときは『%d』ではなく、『%f』を使うので注意! • また『scanf』は『%d』ではなく『%lf』を使うよ • 読みは「だぶる」 doublenum = 0; scanf(“%lf”, num); printf(“%f\n”, num); 第7章 データ型
データ型(3) • では一度 double 型を使った次のプログラムを実行してみよう #include <stdio.h> void main(){ doublenum; printf(“数値を入力してね > ”); scanf(“%lf”,&num); printf(“%f\n”, num); } 第7章 データ型
データ型(4) • 実行結果例 • ちなみに『%f』ではなく『%.1f』とすると表示する小数の桁数を1桁にできる 『%.2f』なら2桁、『%.3f』なら3桁という具合 第7章 データ型
データ型(5) • bool型 • trueか falseのみ入れることができる(もしくは 1 か 0) • その性質から、if 文など真偽を問う文、関数と相性がいい • 読みは「ぶーる」でOK • 実はC言語でbool型を使うにはいくつか煩雑な準備がいるが、VC++はC++(プログラミング言語)の規格も使っているので、特に何か準備する必要もなく使えるようだ 第7章 データ型
データ型(6) • では今度はbool型を使ったプログラムを実行してみよう #include <stdio.h> void man(){ bool flag = true; intnum = 0; while(flag){ printf(“数値を入力してね > ”); scanf(“%d”,&num); if(num < 0) flag = false; } } 第7章 データ型
データ型(7) • 実行結果例はこちら • while 文を少しクドくしただけだね • 特に関係はないですが、false とは 0のことであり、true とはそれ以外(-1とかも true) boolは1と0しかないけど 第7章 データ型
データ型(8) • 話は変わるが、最初 double 型で作った変数を、後から int型に変える、ということができる • これが型変換 • 型変換の方法は主に2つ • 暗黙の型変換 と キャストを使った型変換 第7章 データ型
データ型(9) • 暗黙の型変換 • たとえば、double 型の 変数 numを int型の変数 a に代入すると、int型に つられて数値が整数値に変わる(小数点以下切捨て) • 右上図だと、『a = 3;』が最終的に求められる • 逆パターン(double 型につられる)もあるよ doublenum = 3.14; int a = 0; a = num; int x = 2; double y = 7.16; double z = x - y; 第7章 データ型
データ型(10) • キャスト(明示的型変換) • 上のように、『(int)』を変数の前につけることで、強制的に int型に変換している • しかしこの変換は 関数内などで扱う変数の型のみ適用なので、num自体はdouble 型のまま • 実行結果 → int以外も勿論可能 double num = 1.414 printf(“%d\n”, (int)num ); ptintf(“%f”, num); 第7章 データ型
練習問題1 • 商品の税抜き価格を入力させ、税込価格を表示するプログラムをつくってみよう • ただし、税込価格は必ず小数点以下を切り捨てしよう 消費税は8%(もう2ヶ月) 第7章 データ型
練習問題1 回答例 『tax』は「税」のこと • 今回はキャストを使ってみたけど、暗黙の型変換でも勿論できる #include <stdio.h> void main(){ intprice;double price2; double tax = 1.08; printf("税抜き価格を入力してください > "); scanf("%d",&price); price2 = price * tax; printf("税込価格は%d円です\n",(int)price2); } 第7章 データ型
練習問題2 相加平均(a + b + c) ÷ 3 • 3つの整数値を入力させて、以下の値を表示するプログラムを作ってみよう • 実行結果例は以下の通り • 3つの数の平均を小数第3位まで表示 • 同じく3つの数の平均を小数点以下切捨てで表示 ヒント: double d = a/b; だと小数点以下が切り捨て double d = (double)a/b; が必要 第7章 データ型
練習問題2 回答例 #include <stdio.h> void main(){ inta,b,c; printf("a >"); scanf("%d",&a); printf("b >"); scanf("%d",&b); printf("c >"); scanf("%d",&c); printf("%.3f\n", (double)(a + b + c) / 3); printf("%d\n",(a + b + c) / 3); } • int型同士の計算は小数点以下切捨てになるので、計算結果自体を double 型に変換しているんだ 第7章 データ型
コメントの挿入 //コメントはプログラムに影響しない scanf(“%d”,num); /*何を書いたか後から見やすくするために コメントを積極的に使っていこう!!*/ printf(“%d\n”, num * 12); • プログラムコード以外にコメントを挿入することができる • 『//』は一行分、『/* */』は間に入るすべての文字をコメントとすることができる ちなみに『//』の場合、『\』で改行することができる 第7章 データ型
次回予告 • 関数について • より詳しい説明 • 関数の自作 • main 関数とは 関数 をより詳しく見ていこう!! 第7章 データ型
テンプレ • テンプレ 第7章 データ型