試験の点数を入力し、条件によって「合格」「不合格」を表示する処理は、プログラミングの基本である「繰り返し処理」と「条件分岐」を理解するためによく使われる例題です。
この記事では、人数分の点数を入力して判定するプログラムを題材に、変数n(人数)、score(点数)、i(カウント変数)を使ったフローチャートの考え方と疑似言語の書き方をわかりやすく解説します。
点数判定プログラムで必要になる処理の考え方
今回の処理では、入力された人数分だけ同じ処理を繰り返す必要があります。そのため、まず何人分の処理を行うのかを変数nに保存します。
次に、1人分の点数を変数scoreへ代入し、その値が60点以上かどうかを条件分岐で確認します。
条件分岐では、scoreが60以上の場合は「合格」、60未満の場合は「不合格」と表示します。この処理を人数分繰り返すことで、全員分の結果を判定できます。
使用する変数の役割
| 変数 | 役割 |
|---|---|
| n | 試験を受けた人数 |
| score | 入力された試験の点数 |
| i | 現在何人目を処理しているか数えるカウンタ |
例えば、受験者が5人いる場合、nには5を代入します。そしてiを1から5まで変化させながら、5回点数入力と判定を行います。
このように、決まった回数だけ処理を繰り返す場合には、カウンタ変数を利用した繰り返し処理が基本になります。
点数判定処理のフローチャート
フローチャートでは、「繰り返し」と「条件分岐」を図で表現します。流れは以下のようになります。
開始
↓
人数nを入力
↓
iに1を代入
↓
iがn以下か確認
↓
点数scoreを入力
↓
scoreが60以上か判定
↓
60以上なら「合格」と表示
↓
60未満なら「不合格」と表示
↓
iを1増やす
↓
iがn以下なら繰り返す
↓
終了
フローチャートを作成するときは、処理の順番を「入力」「判断」「表示」「繰り返し」に分けて考えると整理しやすくなります。
疑似言語の例
今回の問題を疑似言語で表すと、以下のようになります。
“`
開始
nを入力する
i ← 1
while i ≦ n
scoreを入力する
if score ≧ 60 then
「合格」と表示する
else
「不合格」と表示する
endif
i ← i + 1
endwhile
終了
“`
ポイントは、while文などの繰り返し処理の中に、if文による条件判定を入れることです。
「人数分繰り返す処理」の中で「1人分の合否判定」を行う構造にすると、複雑にならず正しい流れを作ることができます。
よくある間違いと注意点
初心者が間違いやすい部分は、繰り返し回数の管理です。例えば、iの初期値を設定し忘れたり、iを増やす処理を書かなかったりすると、処理が正しく終了しません。
また、条件式では「60点以上」と「60点未満」を正しく区別する必要があります。「score > 60」と書くと60点の場合が判定されないため注意が必要です。
実際のプログラムでも、入力回数や条件の境界値を正しく設定することは非常に重要です。
まとめ
人数分の試験結果を判定するプログラムでは、「繰り返し処理」と「条件分岐」を組み合わせて考えることが基本です。
変数nで人数を管理し、変数iで何回目の処理かを数え、scoreの値によって合格・不合格を判断します。
フローチャートでは処理の流れを整理し、疑似言語では繰り返し処理の中に条件判定を書くことで、実際のプログラムに近い形で表現できます。この考え方は、成績判定だけでなく、さまざまなデータ処理プログラムにも応用できます。


コメント