===== 復習 ===== ==== 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|答え?参考]]\\