【基礎課題 3-9】を再利用して、
というように2つの数を入れて「平均」ボタンを押すと | |
平均値が求まる、というプログラムを作ります。ボタンの表示は「平均」に変更しておいてください。 |
次に、イベントハンドラを変更します。2つの数の平均は、合計を2で割って求めるのですね。プログラムを次のように書き換えてください。(書き換える部分は下線部です。)
procedure TForm1.ButtonAddClick(Sender: TObject); var a: Integer; b: Integer; c: Integer; begin a := StrToInt(Edit1.Text); b := StrToInt(Edit2.Text); c := (a + b) / 2; EditResult.Text := IntToStr(c); end;
実行してみましょう。エラーが出て止まってしまいましたね。
これは、割り算「(a + b) / 2」の結果は一般に小数になるのに、その小数の結果を c という整数型の変数に代入しようとしたことが原因です。
このエラーを回避するため、c を整数型の変数ではなく小数を受け付ける型の変数にしてしまいましょう。小数を受け付ける型は実数型と呼ばれ、「Real」と表します。プログラムを以下のように修正してください。
procedure TForm1.ButtonAddClick(Sender: TObject); var a: Integer; b: Integer; c: Real; begin a := StrToInt(Edit1.Text); b := StrToInt(Edit2.Text); c := (a + b) / 2; EditResult.Text := FloatToStr(c); end;
なお、FloatToStr() とは、実数型から文字列型への変換を行う命令です。
型変換の命令は、次のものがあります。必要になったらこのページを参照してください。
整数型から文字列型へ | IntToStr() |
文字列型から整数型へ | StrToInt() |
実数型から文字列型へ | FloatToStr() 又は FloatToStrF() (小数点以下の表示桁数を調整する場合) |
文字列型から実数型へ | StrToFloat() |
整数型から実数型へ | (命令がなくても自動的に変換される) |
実数型から整数型へ | Ceil(), Floor(), Round(), Trunc() (状況に応じて使い分ける。詳しくはヘルプを見ること。) |
以上の「変換命令」使用法の詳細については、Delphi の「ヘルプ」メニューを参照して下さい。
3つの数の平均を求めるプログラムを作ってください。
下のようなフォームをもつ、分数を小数にするプログラムを作ってください。
注意