#author("2018-02-09T17:26:08+09:00","","")
** FOR〜NEXT文 [#qa804a1a]
#author("2023-01-31T10:36:12+09:00","default:maa","maa")

次のプログラムは FOR〜NEXT に挟まれた PRINT 文を 4 回繰り返し実行する.10 行目の FOR で使用される変数Iは、繰り返し回数を数えるために使用される。30 行目の NEXT は 10 行目の FOR に対応する文で、プログラムが 30 行目を実行した際、実行を 10 行目に移し、変数Iの値を 1 だけ増加させる。I の値が 5 になった時点で NEXT 以下に実行を移す。

 10	FOR I=1 TO 4
 20		PRINT "Iの値は";I;"です。"
 30	NEXT I
 40	PRINT "おわりです。現在のIの値は";I;"です。"

次のプログラムは定期預金の複利計算を行うプログラムである。毎年の預金残高を表示するように下線部を補完し、プログラムを完成させよ。例えば、100 円を年利 2% で 5 年預ければ、5 年後の残高は 100×1.02 の 5 乗円になる。なお、残高計算で使用するべき乗計算の演算子は “^” を使用すること(例:2 の 3 乗は “2^3” と書ける)。

 10	INPUT "元  金(円)";G
 20	INPUT "利  率(%)";R
 30	INPUT "預金期間(年)";Y
 40	FOR I=_ TO _
 50		ZANDAKA=_____________
 60		PRINT ____________________
 70	NEXT I

:[課題3]|FOR〜NEXT を 2 回使用し、九九の一覧表を作成せよ。&br;ヒント:FOR〜NEXT の繰り返しの中に、さらに FOR〜NEXT の繰り返しを書くことになる。FOR〜NEXT で使用する変数は、それぞれ別の変数を使用すること。&br;
例えば A×B を考えると、A と B それぞれ 1〜9 までの組み合わせが九九になる。ゆえに、変数 A のための FOR〜NEXT と変数 B のための FOR〜NEXT が必要になる。

FOR〜NEXT で使用する変数は、STEP を記述することによって自由に増減できる。次のプログラムでは、I の初期値を 0 とし、0.5 ずつ減少させて -5 に達する。

 10	FOR I=0 TO -5 STEP -0.5
 20		PRINT I
 30	NEXT I

次のプログラムは、INPUT 文で正の数を入力してもらい、その最大値を変数 MAX に求めて表示するプログラムである。60 行目の下線部を補完せよ。

 10	MAX=0
 20	PRINT "これから5つの正の数を入力してもらいます。"
 30	FOR I=1 TO 5
 40		PRINT I;"つ目の";
 50		INPUT "数字を入力してください。";A
 60		IF ____________________
 70	NEXT I
 80	PRINT "最大値は";MAX;"でした。"

上の例では、入力される数を正の数に限定していた。そのため、10 行目で仮の最大値を 0 とし、最大値は必ず 0 よりも大きいと考えることができた。今度は、入力できる数に制限を設けず、負の数が入力されても動作するようにしたい。次のプログラムは、負の数を含む入力を可能としたものである。下線部を補完し、プログラムを完成させよ。

 10	PRINT "これから5つの数(負の数を含む)を入力してもらいます。"
 20	FOR I=1 TO 5
 30		PRINT I;"つ目の";
 40		INPUT "数字を入力してください。";A
 50		IF ___ THEN MAX=A ELSE IF _____ THEN _____
 60	NEXT I
 70	PRINT "最大値は";MAX;"でした。"

|SIZE(18):BGCOLOR(yellow):|c
|FOR ループ変数=初期値 TO 最終値 STEP きざみ値&br;  [繰り返されるプログラム]&br;NEXT ループ変数|

:[課題4]|先のプログラムを改良し、最大値と最小値を同時に求めて表示するようにせよ。&br;ヒント: 同時にといっても、MAX を求めるための部分(50 行目)と同じような行(最小値 MIN を求めるための行)を、次の行(または前の行)に並べておけばよいだけ。

:[課題5]|FOR〜NEXT を使って、“*” で次のような三角形を表示するプログラムを作成せよ。&br;
ヒント: * は 1〜5 行目まで表示されている。* の数は 1 行目は 1 個、2 行目は 2 個と、行の値と一致する。ゆえに、何行繰り返すかの FOR〜NEXT、* を横に何回表示する(表示を何回繰り返す)かの FOR〜NEXT が必要になる。
 *
 **
 ***
 ****
 *****

RIGHT:[[[BASIC言語の基本命令文と文法に戻る]>コンピュータ実習II#md798e85]]


トップ   編集 差分 履歴 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS