基礎課題4-13

何乗の値を計算したいか (ここでは 3 乗) を入力して「計算」ボタンを押すと
その値を計算してくれる、というプログラムを作りましょう。

まずはつぎのようにフォームを作ってください。
コンポーネント Name
左のスピンエディット SpinEditJo
右のスピンエディット SpinEditResult
下のボタン ButtonCalc

注意 
SpinEditResult->Value1 にしておくのを忘れないようにしましょう。

このプログラムでは、「何回2倍するか」はプログラム実行後にユーザが決めるので、今までのようにプログラム実行前に

とあらかじめ決まった回数だけ書いておくことはできません。そこで、

指定した回数だけ繰り返し処理を実行するときは、forという命令を使います。
for (カウンタの初期設定; 条件式; カウンタの増分)
   {
     ・
     ・←繰り返し実行する処理;
     ・
   }

 カウンタとは、繰り返し実行する回数を数える変数ですforでは、このカウンタの値をチェックしながら、プログラムを制御します。

 forに続く()の中は、3つの命令文で構成されています。セミコロン(;)で区切って記述してください。ただし、3つ目の命令文の後ろには、セミコロンは付けません。
  • 1つ目の命令文は、カウンタの初期値を設定した。forを実行する前に、カウンタに使った変数に何らかの値が代入されている場合は、ここで初期化されます。
  • 2つ目の命令文は、ループ構造を終了するための条件式です。通常は、「カウンタの値が10以下」のように、カウンタの値を使った条件式を記述します。
  • 3つ目の命令文は、カウンタの増分です。処理を繰り返すたびに、ここで指定した値をカウンタに加算します。
              

例えば、上記のように2の15乗を求めるプログラムをforで作成するには、次のように記述します。

i++”は”i = i + 1”と同じ処理を行います。”i = i + 1”のように記述するよりも処理速度が速いので、for文の中でカウンタの増分を指定するときは、このように省略した形で書くのが一般的です。
カウンタの増分が+1のとき
(i が 1 から 15 になるまで)
for ( i = 1; i <= 15; i++ )
カウンタの増分が-1のとき
(i が10から1になるまで)
for ( i = 10; i < 0; i++ )
カウンタの増分が+5のとき
(i が0から50になるまで)
for ( i = 0; i <= 50; i+ = 5)
 forの終わりにはセミコロン(;)を付けません。繰り返し実行する処理が1文だけの場合は、処理のまとまりを{}で囲む必要はありません。いいかえると、繰り返し処理の中で複数の文を実行する場合は、必ず{}で囲まなければなりません。

 また、繰り返し実行する処理が上記のプログラムのように1行だけのときは「{ }」を省略することができますが、省略しなくてもエラーが出るわけではないので、残しておいた方が良いでしょう。
                              Delphiとの相違点                              
4-6 繰り返し処理(2)
-for文の導入―


☆ 総目次へ ★ 第4章目次へ ★ 前節へ ★ 次節へ ☆

☆ 『Delphi入門』 4−6繰り返し処理(2)-for文の導入- ☆

基礎課題4-16

怒りの度合いを数値で入力し「怒る」ボタンを押すと

その度合いに応じて「こら! こら! …」と表示するプログラムを作りなさい。
  • 度合いが1なら「こら」
  • 度合いが2なら「こら こら 」
  • 度合いが3なら「こら こら こら 」
    (以下同様)
私の体験談
この問題!CSpinEdit->Valueint型で、でも”こら”という文字列型を繰り返さなければならない??ということで、私は悩みました。しかし、for文の()の中の条件とその後の繰り返し処理は別と考えていいのです!CSpinEdit->Valueはあくまで、for文の中の条件に使われる型であって、繰り返し処理とは何の関わりもないと考えるとやりやすいですよね。

基礎課題4−16 解答
基礎課題4-15

かけ算は、足し算の繰り返しと考えることができます。例えば、2×5は、「2を足す」ということを5回繰り返すことです。このように考えると、かけ算の記号「*」を使わずに、forを使ってかけ算の答を求めることができます。
前のページのプログラムを改変して

数値を入れたら (この場合は 6)
4+4+4+…+4 を求めるプログラムを、for を使って作って下さい (ただし、プログラムの中でかけ算「*」を使ってはいけません。)。

基礎課題4−15 解答
基礎課題4-14

先ほどのプログラムを改変して、

数値を入れたら (この例では 3)
3の累乗が求められるプログラムを作りなさい。

基礎課題4−14 解答
基礎課題4-13 解答
☆ 『Delphi入門』 4−6繰り返し処理(2)-for文の導入- ☆

☆ 総目次へ ★ 第4章目次へ ★ 前節へ ★ 次節へ ☆