Webで学ぶセンター試験数学−BASICプログラミング > FOR文

FOR文

FOR文

FOR 変数名 = 初めの値 TO 終わりの値 STEP 増分
      ・
      ・
      ・
NEXT 変数名

FOR文とNEXT文の間の命令を繰り返します。
ループが1周するたびに、(増分)だけ(変数)の値が増え、(変数) >(終わりの値)となったら繰り返しが終了します。
増分が1の場合、“STEP 1” は省略することができます。多くのプログラムでは(増分)が1なので省略されます。

【確認1】 次のプログラムを実行しなさい。

(1)

[プログラム]

    10  FOR K=1 TO 5
    20      PRINT "k=";K
    30  NEXT K
    40  END

[実行結果]

  k= 1 
  k= 2 
  k= 3 
  k= 4 
  k= 5 

(2)

[プログラム]

    10  FOR K=1 TO 5 STEP 2
    20      PRINT "k=";K;
    30  NEXT K
    40  END

[実行結果]

  k= 1 k= 3 k= 5

(3)

[プログラム]

    10  FOR I=0 TO 5 STEP 3
    20      PRINT "i=";I,
    30  NEXT I
    40  END

[実行結果]

  i= 0                    i= 3

[解説]

 i が初めの値0からスタートし、i が3増えて3になり、もう一度 i が3増えると6になってしまい、終わりの値5を超えてしまうので、i=3でループが終了します。

(4)

[プログラム]

    10  FOR J=10 TO 1 STEP -1
    20      PRINT "j=";J;
    30  NEXT J
    40  END

[実行結果]

  j= 10 j= 9 j= 8 j= 7 j= 6 j= 5 j= 4 j= 3 j= 2 j= 1

[解説]

 (増分)に負の整数を取ることもできます。その場合は、変数の値がだんだん減っていきます。

【問題1】1から10までの総和を計算するプログラム

[プログラム]

10  LET S=0
20  FOR K=1 TO _
30      LET S=S+K
40  NEXT _
50  PRINT "1+2+…+10=";_
60  END

[設問]

(a) 空欄を埋めてこのプログラムを完成させなさい。

(b) 画面にはどのような出力がされますか。

【問題2】問題1を参考にして、1から10までの2乗和(1^2+2^2+…+10^2)を計算するプログラムを作りなさい。

【問題3】キーボードから入力された値nの階乗n!を計算するプログラム

[プログラム]

    10  INPUT PROMPT "n=":N
    20  LET F=1
    30  FOR K=_ TO _
    40      LET F=___
    50  NEXT K
    60  PRINT "n!=";F
    70  END

[設問]

 空欄を埋めてプログラムを完成させなさい。

【問題4】キーボードから入力された2つの値n,rに対して、以下のプログラムを作りなさい。

(1) 順列nPrを計算するプログラム

(2) 組合せnCrを計算するプログラム

二重FOR文

FOR 変数1 = 初めの値1 TO 終わりの値1 STEP 増分1
            ・
            ・
      FOR 変数2 = 初めの値2 TO 終わりの値2 STEP 増分2
            ・
            ・
      NEXT 変数2
            ・
            ・
NEXT 変数1

FOR文の中にFOR文を入れることで二重ループを実現できます。

【確認2】次のプログラムを実行しなさい。

[プログラム]

  10  FOR I = 1  TO  3
  20      FOR J = 1  TO  3
  30          PRINT  "i="; I;
  40          PRINT  "j="; J
  50      NEXT J
  60  NEXT I
  70  END

[実行結果]

  i= 1 j= 1 
  i= 1 j= 2 
  i= 1 j= 3 
  i= 2 j= 1 
  i= 2 j= 2 
  i= 2 j= 3 
  i= 3 j= 1 
  i= 3 j= 2 
  i= 3 j= 3 

【問題4】空欄を埋めて、かけ算九九の表を作るプログラムを完成させなさい。

[プログラム]

  10  FOR I=1 TO 9
  20      FOR J=1 TO 9
  30          PRINT USING "###" ; I*J;
  40      NEXT _
  50          PRINT
  60  NEXT _
  70  END

[実行結果]

  1  2  3  4  5  6  7  8  9
  2  4  6  8 10 12 14 16 18
  3  6  9 12 15 18 21 24 27
  4  8 12 16 20 24 28 32 36
  5 10 15 20 25 30 35 40 45
  6 12 18 24 30 36 42 48 54
  7 14 21 28 35 42 49 56 63
  8 16 24 32 40 48 56 64 72
  9 18 27 36 45 54 63 72 81

[解説]

 30行目のPRINT USING文は出力結果を整列して表の形で表示するときなどに用います。"###"は表示のために3けたを取るように指定しています。
 50行目のPRINT文は何も出力しませんが、出力結果の改行するはたらきがあります。


<< 前のページトップページ次のページ >>
inserted by FC2 system