===== 復習 =====
==== C++ソースコードの基本形 ====
とりあえず、これは絶対覚えたい。\\
C++のプログラミングはmain関数を書けないことには始まらない。\\
C++のエントリポイント=プログラムが開始されるプログラムのメインとなる部分=main関数\\
#include
using namespace std;
int main() {
//ここにやりたいことを書いていく。
return 0;
}
#include は、インクルード文と言って様々な便利な機能を呼び出すために書く!\\
はcoutやcinなど、基本的な入出力が詰まっている。\\
詳しくは[[https://cpprefjp.github.io/reference/iostream.html|ここ]]を参照\\
==== 変数と型 ====
プログラミングをするということは、様々な値をコンピュータ上で、演算(計算)して、結果を出すことです。\\
コンピュータは、メモリに値を記憶して、それを読んだり書いたりすることで、様々な処理をこなしていきます。\\
変数は、メモリ上に値を入れておくための規格を持った箱です。\\
箱の規格によって、どのような種類の値を入れておけるか、どのぐらいの大きさの値を入れておけるか決まります。\\
例えば、char型と呼ばれる規格の変数には、-128~127の整数を入れておくことができます。なので、300など大きな値を使うためにはchar型の変数は使えません。\\
|< 60% 14% 8% 4% 19% 15% >|
^ 種類 ^ 型名 | サイズ | 値の範囲 | 内部形式 |
| 整数 | 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;
===== 値の代入 =====
変数には代入演算子を用いて**適切な**値を代入できます。\\
代入演算子は数学でいう=(イコール)です。\\
後で出てくる比較の演算子とややこしいので注意してください。\\
代入の際には必ず、\\
* 変数名 = 値;
* 例: var1 = 2.0;
* 変数名 = 代入したい値を持った変数;
* 例: var1 = var2;
* 変数名 = 代入したい値を返す計算式;
* 例: var1 = (var1 * var 2)/2.0;
適切な値ではないときには、予期しないことが起こるので注意が必要です。\\
\\
== 演習1 ==
以下のプログラムを実行する前に、結果を予測して、実行してみて予測と結果を比べてみなさい。\\
#include
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;
}
[[http://www.yz-learning.com/yzwiki/doku.php?id=game-engineer:classes:game-programing-1:answers:answer-1&rev=1633482103#演習1|答え?参考]]\\
=== まとめ ===
C++ではいろいろな処理をするために必要な値を、**「変数」**に格納し、**変数**を操作することで目的の処理をおこないます。\\
変数に記憶できるのは型が用意された値のみです。\\
計算機は値をを__メモリーにビットのパターン(01の並び)として記憶__します。この「値の種類とビットパターンの対応」を定めた規格が**型**である、と言えます。\\
規格=型には、\\
* **何ビット使って値を表現するか**(値を表せるパターン数が決まる)
* **値とビットパターンをどう対応付けするか**(値の表現手法がきまる)
が定められています。\\
したがって、上で試してみたように、__型の表せる範囲外の値__を使ったり、__別の型の変数を1つの式で同時に扱う__と自分の予期しない結果になることがあります。\\
初めに書いたように、自分の目的に適切な型を選んで変数を作っていくことが大切です。\\
== 演習2 ==
1.C++で使える基本の型をすべて挙げなさい。\\
2.以下のような問題があった時、用意しなければならない変数を考えなさい。\\
* 1~100の和をカウンタ変数を1からカウントアップすることにより求める
* 底辺と高さを入力し、三角形の面積を計算する
* 座標P1(x1, y1)とP2(x2, y2)を入力して、その2点を通る直線の傾きを求める
* ax2+bx+c=0の解の個数を求める処理
[[http://www.yz-learning.com/yzwiki/doku.php?id=game-engineer:classes:game-programing-1:answers:answer-1&rev=1633482103#演習2|答え?参考]]\\