データ型

Download Report

Transcript データ型

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