●例17で、FOR i=1 TO n とするところを FOR i=n TO 1 とすると、うまくいかなかったはずです。このままでは n が 1 よりも小さい時には FOR〜NEXT 内部を実行しますが、n が 1 より大きいとBASICはなにもしません。
●前回の例では FOR i=1 TO n にしても問題ないのですが、1,2,3,…10 でなく 10,9,8,…1 とやりたい場合もあるでしょう。その場合は、STEP -1 を書き加えます。
INPUT n
LET s=1
FOR i=n TO 1 STEP -1
LET s = s * i
NEXT i
PRINT n;"! = ";s
END
●入力されたnに対して、n, n-1, n-2,…3,2,1 と減らしながらn2を表示するプログラムをつくりなさい。
??
結果は、たとえば7を入力すると、
7 49 6 36 5 25 4 16 3 9 2 4 1 1
●STEP がない FOR 〜 NEXT では、STEP 1 が省略されているのです。
●FOR n=1 TO 10 とあると NEXT n で、n の値を1増やして n=2 としますが、この1増やすというのは STEP 1 から来ています。NEXT n のところで n の値に STEP の値を加えて、TOの値と比較するという仕組みになっています。
●次のようにすると奇数だけを書くことが出来ます。
FOR n=1 TO 20 STEP 2 PRINT n NEXT n END
このようになります。n に2を足していって、20より大きくなった21に来ると終わるので、19まで表示されます。
1 3 5 7 9 11 13 15 17 19
●次は2から始めて偶数だけを書くものですが、2つの方法を示します。。
偶数その1 FOR n=1 TO 20 STEP 2 PRINT n+1 NEXT n END
偶数その2 FOR n=2 TO 20 STEP 2 PRINT n NEXT n END
どちらも20まで表示されます。
●7から始まって50より少ない7の倍数を表示するプログラムをつくりなさい。
結果は、
7 14 21 28 35 42 49
●自然数nをキーボードから入力するとn!の計算方法を表示するプログラムをつくりなさい。たとえば、7 と入力すると、
7 ! = 7 × 6 × 5 × 4 × 3 × 2 × 1
と表示します。FOR ????の部分だけ書き換えると出来るはずです。
INPUT n
PRINT n; "! = ";
FOR ????
PRINT i;"×";
NEXT i
PRINT i
END