復習

C++ソースコードの基本形

とりあえず、これは絶対覚えたい。
C++のプログラミングはmain関数を書けないことには始まらない。
C++のエントリポイント=プログラムが開始されるプログラムのメインとなる部分=main関数

#include <iostream>
 
using namespace std;
 
int main() {
   //ここにやりたいことを書いていく。
   return 0;
}

#include は、インクルード文と言って様々な便利な機能を呼び出すために書く!
<iostream>はcoutやcinなど、基本的な入出力が詰まっている。
詳しくはここを参照

変数と型

プログラミングをするということは、様々な値をコンピュータ上で、演算(計算)して、結果を出すことです。
コンピュータは、メモリに値を記憶して、それを読んだり書いたりすることで、様々な処理をこなしていきます。
変数は、メモリ上に値を入れておくための規格を持った箱です。
箱の規格によって、どのような種類の値を入れておけるか、どのぐらいの大きさの値を入れておけるか決まります。
例えば、char型と呼ばれる規格の変数には、-128~127の整数を入れておくことができます。なので、300など大きな値を使うためにはchar型の変数は使えません。

種類 型名 サイズ 値の範囲 内部形式
整数 char 1byte -128 ~ 127 2進数+2の補数表現
符号なし整数(文字) unsigned char 1byte 0 ~ 255 2進数表現
整数 short 2byte -32768 ~ 32767 2進数+2の補数表現
符号なし整数 unsigned short 2byte 0 ~ 65535 2進数表現
整数 int 4byte -2147483648~2147483647 2進数+2の補数表現
符号なし整数 unsigned int 4byte 0~4294967295 2進数表現
整数 long 4byte 2進数+2の補数表現
符号なし整数 unsigned long 4byte 2進数表現
小数点数 float 4byte 1.175494e-38 ~ 3.402823e+38 IEEE754浮動小数点形式4byte
小数点数 double 8byte 2.225074e-308 ~ 1.797693e+308 IEEE754浮動小数点形式8byte
真偽値 bool 1byte true false 1, 0の整数

値の大きさはともかくとして、以下で分ければいいのでは。

整数なら ⇒ int
文字なら ⇒ char
小数点あるなら ⇒ float
論理式なら ⇒ bool

変数の例

変数の宣言は以下のように、型を書いて変数名を連ねて;セミコロンで終わる。
型 変数名;
型 変数名1, 変数名2, 変数名3…;

//整数型の変数var1を宣言
int var1;
 
//実数型の変数var2を宣言
float var2;
 
//8byte実数型の変数var3を宣言
double var3;
 
//文字型の変数var4を宣言
char var3;
 
//論理型の変数var4を宣言
bool var4;

変数は、宣言しただけでは、値が入ってないので表示したり、足したりかけたりとかの操作はできません。
中には何が入っているかわかりません(ほんとに変な値が入ってたりなんも入ってなかったりします)
なので、変数を利用するとき(=値を参照したり、足したり引いたり操作するとき)は必ず初期化(=最初の代入)を忘れないようにしましょう。
変数は初期化と同時に=(代入演算子)をつかって値を代入することで初期化できます。

//整数型の変数var1を宣言して 1 で初期化
int var1 = 1;
 
//実数型の変数var2を宣言して 2.5 で初期化
float var2 = 2.5;
 
//8byte実数型の変数var3を宣言して 3.14 で初期化
double var3 = 3.14;
 
//文字型の変数var4を宣言して文字 'g' で初期化
char var3 = 'g';
 
//文字型の変数var4を宣言して整数値 15 で初期化
char var3 = 15;
 
//論理型の変数var4を宣言してfalseで初期化
bool var4 = false;

値の代入

変数には代入演算子を用いて適切な値を代入できます。
代入演算子は数学でいう=(イコール)です。
後で出てくる比較の演算子とややこしいので注意してください。
代入の際には必ず、

適切な値ではないときには、予期しないことが起こるので注意が必要です。

演習1

以下のプログラムを実行する前に、結果を予測して、実行してみて予測と結果を比べてみなさい。

#include <iostream>
 
using namespace std;
 
int main() {
	//①値の範囲
	char cval = 0;
	//char型は8ビット整数:-128~127まで使える
	cval = 100;//きっと2進数だと 01100100
	//100に対応するASCIIコードの文字を
	//表示するのではなく、整数を表示したい。
	cout << (int)cval << endl;
	cval = 160;//きっと2進数だと 10100000
	cout << (int)cval << endl;
 
	//②別の型同士の代入
	int ival = 0;
	ival = 3;
	cout << ival << endl;
	ival = 3.14;
	// int ← float
	cout << ival << endl;
 
	//③型の混じった計算
	float fval = 0.0;
	float fval2 = 3.14;
	int ival2 = 3;
	cout << fval << endl;
	fval = fval2 / ival2;
	//float ← float/int
	cout << fval << endl;
 
	fval = 3/ival2;
	//float ← int / int
	cout << fval << endl;
}

答え?参考

まとめ

C++ではいろいろな処理をするために必要な値を、「変数」に格納し、変数を操作することで目的の処理をおこないます。
変数に記憶できるのは型が用意された値のみです。
計算機は値ををメモリーにビットのパターン(01の並び)として記憶します。この「値の種類とビットパターンの対応」を定めた規格がである、と言えます。
規格=型には、

が定められています。
したがって、上で試してみたように、型の表せる範囲外の値を使ったり、別の型の変数を1つの式で同時に扱うと自分の予期しない結果になることがあります。
初めに書いたように、自分の目的に適切な型を選んで変数を作っていくことが大切です。

演習2

1.C++で使える基本の型をすべて挙げなさい。
2.以下のような問題があった時、用意しなければならない変数を考えなさい。

答え?参考