とりあえず、これは絶対覚えたい。
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;
変数には代入演算子を用いて適切な値を代入できます。
代入演算子は数学でいう=(イコール)です。
後で出てくる比較の演算子とややこしいので注意してください。
代入の際には必ず、
適切な値ではないときには、予期しないことが起こるので注意が必要です。
以下のプログラムを実行する前に、結果を予測して、実行してみて予測と結果を比べてみなさい。
#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つの式で同時に扱うと自分の予期しない結果になることがあります。
初めに書いたように、自分の目的に適切な型を選んで変数を作っていくことが大切です。
1.C++で使える基本の型をすべて挙げなさい。
2.以下のような問題があった時、用意しなければならない変数を考えなさい。