第2講 変数を理解しよう
第4話 整数型変数
第1話から第3話までは、文字を収納する変数
String^ a;
について学習してきましたが、この話では整数を収納する変数を勉強しましょう。
整数型変数は、
int a;
等と宣言します。
変数で力を発揮するのは、なんといって整数型や実数型等の数字を扱う変数です。
文字では足し算しかできませんでしたが、足し算・引き算・かけ算・割り算その他いろいろな計算ができるからです。
実例を作ってみていきましょう。
まず、Visual C++を起動して、新しいプロジェクトから次のようなForm1を作りましょう。
そして、実行をダブルクリックして次のようにコーティングしてしてください。
#pragma endregion
private: System::Void button1_Click(System::Object^ sender, System::EventArgs^ e) {
int a,b,c; //まとめて変数を宣言。整数型や実数型などではまとめて宣言できる。
//変数に整数を代入
a=6;
b=3;
//和を計算
c=a+b;
//和を表示
label1->Text=c.ToString();
//差を計算
c=a-b;
//差を表示
label2->Text=c.ToString();
//積を計算
c=a*b;
//和を表示
label3->Text=c.ToString();
//商を計算
c=a/b;
//商を表示
label4->Text=c.ToString();
}
};
}
Visual C++ではかけ算の記号×と割り算の記号÷がありませんので、
それぞれ*と/で代用します。
label1->Text=c.ToString();はlabel1->Text=c;
で良さそうに思いますが、これはエラーします。
プロパティのTextは文字のみしか記述できないからです。
Visual C++等のプログラム言語では、同じ1でも数量の1の場合と文字の1の場合があるのです。
文字の1は普通の文字と同じ扱いです。
整数型変数は扱うことができるのは、数量(数字)としての1です。
このへん?マークが浮かぶ方がいらっしゃるかと思いますが、
実はエクセルなんかもそうですね。
試しにエクセルを起動して、セルに2-3(入れている本人は2年3組のつもりです。)と入れてエンターしてみましょう。
すると、勝手に変わって
となってしまいます。
これは、エクセルが2-3を文字として受け取らないで数字として受け取っているためなのです。
文字としての2-3として認識させるには、
'2-3と打てばよいのです。
実際にそのように打つと2-3と表示されますね。
つまり、エクセルではただの2-3は数字として受け取り(2は2月の2、3は3日の3として受け取っている)、
'2-3は文字としての2-3として受け取ることになっているのです。
整数型整数が収納しているデータはもちろん数量としての整数です。
ですから、label1->Text=c;だとTextプロパティに数量としての整数値を書き込もうとしていることになります。
Textには文字しか入力できないという禁則に反してしまい、エラーしてしまうのです。
そこで、数量としての5を文字の5に変換しなければならないのです。
その変換を行うものがc.ToString()なのです。
整数を強制的に文字に変換しているのです。
.ToString()をつけると文字に強制的に変換できるのです。
これを是非覚えていただければと思います。
実行結果
確かに、6+3、6−3、6×3、6÷3となっています。
では皆さん、b=3;をb=5;と変更したらどうなるでしょうか。
6+5=11、6−5=1、6×5=30は確かに正しく計算できています。
ところが、6÷5=1となってしまっています。
これはどうしたことでしょうか。
正しくは、1.2のはずです。
おわかりですか。cは整数型の変数でした。
したがって、整数しか収納できません。
そこで、1.2は自動的に整数に丸められ(整数に四捨五入され)、1が収納されるのです。
この問題を解決するためには、実数型変数を導入する必要があります。
実数型変数を導入する前に、Form1を次のように改良して
(label2等はプロパティのTextを使って『と』などに変更できます。)
実行結果が
となるようにしてください。
vc++講義第1部へ
vb講義へ
VB講義基礎へ
初心者のための世界で一番わかりやすいVisual Basic入門基礎講座へ
数学研究室に戻る