プログラムにある命令を理解し、変数の値の変化を、順を追って計算する問題です。
プログラムの大まかな流れを確認し、次に、具体的な値を求めましょう。
落ち着いて、順を追って取り組むことがポイントです。
問題(令和7年 問78)
手続calcMod3を呼び出したときの出力はどれか。

ア 2
イ 3
ウ 7
エ 9
解き方(令和7年 問78)
手続 calcMod3 のイメージをつかむ
手続は、複数の処理を一つにまとめたものです。
自動販売機と対比すると、手続 calcMod3をイメージしやすいでしょう。

手続 calcMod3の構成、流れをチェック
プログラムの大まかな流れを確認しましょう。
プログラムは、次のような構成と流れになっています。
注)下の区分けは、擬似言語問題を解説するために、独自に付けたものです。

手続名 | 手続の名称が書かれています。 「〇」が目印です。 |
準備 | 変数の型や最初の値が書かれています。 「△△型:変数名」「変数名 ← 値」 が目印です。 |
処理 | データをどのように操作するか書かれています。 「if~endif」「for~endfor」が目印です。 |
出力 | 結果をどのように出すか書かれています。 「~を出力する」が目印です。 |
「繰返し処理」部分をチェック
繰返し処理について、少し詳しく確認しましょう。

変数iは繰り返しの回数を示します。
7回まで、「選択処理」を繰り返します。
選択処理の中身(青い背景の部分)の詳細は、次で確認します。
「選択処理」部分をチェック

変数iの値を3で割って余りを求めます。
余りが0と等しい場合、totalValueに変数iの値を加えます。
余りが0でない場合は、totalValueの値を変更しません。
具体的な値で、プログラムの動作をチェック
iが1の時から、順番に求めましょう。
表を意識して書くと、誤りにくくなります。
i | 選択処理 | totalValue |
1 | 1÷3 のあまりは 1 だから 何もしない | 0 |
2 | 2÷3 のあまりは 2 だから 何もしない | 0 |
3 | 3÷3 のあまりは 0 だから totalValueに i =3 を足す | 3 |
4 | 4÷3 のあまりは 1 だから 何もしない | 3 |
5 | 5÷3 のあまりは 2 だから 何もしない | 3 |
6 | 6÷3 のあまりは 0 だから totalValueに i=6 を足す | 9 |
7 | 7÷3 のあまりは 1 だから 何もしない | 9 |
終了 | 出力 | 9 |
よって、正解は エ です。
コメント