何乗の値を計算したいか (ここでは 3 乗) を入力して「計算」ボタンを押すと | |
その値を計算してくれる、というプログラムを作りましょう。 |
まずはつぎのようにフォームを作ってください。
コンポーネント | Name |
---|---|
左のスピンエディット | SpinEditJo |
右のスピンエディット | SpinEditResult |
下のボタン | ButtonCalc |
注意 SpinEditResult.Value を 1 にしておくのを忘れないようにしましょう。
このプログラムでは、「何回2倍するか」はプログラム実行後にユーザが決めるので、今までのようにプログラム実行前に
procedure TForm1.ButtonDoubleClick(Sender: TObject); begin SpinEdit1.Value := SpinEdit1.Value * 2; SpinEdit1.Value := SpinEdit1.Value * 2; SpinEdit1.Value := SpinEdit1.Value * 2; 続く SpinEdit1.Value := SpinEdit1.Value * 2; end;
とあらかじめ決まった回数だけ書いておくことはできません。
そこで、同じ動作を繰り返させる 「for 文」という命令を使います。プログラムを次のように書いてください。
実行して動作を確認しましょう。この for 文は、下のような構造になっています。
for カウント用変数(ここでは i) := 初期値(ここでは 1) to 繰り返し回数 do begin 繰り返し処理1; 繰り返し処理2; ・ ・ end;
決まった回数の繰り返しにも使えます。下の2つのプログラムは全く同じ動作をします。
procedure TForm1.ButtonDoubleClick(Sender: TObject); begin SpinEdit1.Value := SpinEdit1.Value * 2; SpinEdit1.Value := SpinEdit1.Value * 2; SpinEdit1.Value := SpinEdit1.Value * 2; SpinEdit1.Value := SpinEdit1.Value * 2; SpinEdit1.Value := SpinEdit1.Value * 2; SpinEdit1.Value := SpinEdit1.Value * 2; SpinEdit1.Value := SpinEdit1.Value * 2; SpinEdit1.Value := SpinEdit1.Value * 2; SpinEdit1.Value := SpinEdit1.Value * 2; SpinEdit1.Value := SpinEdit1.Value * 2; SpinEdit1.Value := SpinEdit1.Value * 2; SpinEdit1.Value := SpinEdit1.Value * 2; SpinEdit1.Value := SpinEdit1.Value * 2; SpinEdit1.Value := SpinEdit1.Value * 2; SpinEdit1.Value := SpinEdit1.Value * 2; end;
procedure TForm1.ButtonDoubleClick(Sender: TObject); var i: Integer; begin for i := 1 to 15 do begin SpinEdit1.Value := SpinEdit1.Value * 2; end; end;
for カウント用変数 := 初期値 to 繰り返し回数 do begin 繰り返し処理; end;
というように、繰り返し処理が1つしかない for 文は、if 文の場合と同様に、begin と end を省略して次のように書くことが出来ます。
for カウント用変数 := 初期値 to 繰り返し回数 do 繰り返し処理;
しかし、この書き方は、後で繰り返し処理を増やしたくなった場合に begin と endを付け忘れる可能性があり、実際これまでもそのようなエラーは(本演習において)頻繁に見受けられました。そこで、たとえ処理が1つでも常に begin と end をつけることを勧めます。
先ほどのプログラムを改変して、
数値を入れたら (この例では 3) | |
3の累乗が求められるプログラムを作りなさい。 |
かけ算は、足し算の繰り返しと考えることができます。例えば、2×5は、「2を足す」ということを5回繰り返すことです。
このように考えると、かけ算の記号「*」を使わずに、for文を使ってかけ算の答を求めることができます。
前のページのプログラムを改変して
数値を入れたら (この場合は 6) | |
4+4+4+…+4 を求めるプログラムを、for 文を使って作って下さい (ただし、プログラムの中でかけ算「*」を使ってはいけません。)。 |
怒りの度合いを数値で入力し「怒る」ボタンを押すと | |
その度合いに応じて「こら! こら! …」と表示するプログラムを作りなさい。
|