ITパスポート試験 / 令和7年度 ITパスポート試験 公開問題 / 問78
certification-simodake-work

令和7年度 ITパスポート試験 公開問題 問78 解説 プログラムの実行結果

手続 calcMod3を呼び出したときの出力はどれか。 〔プログラム〕 OcalcMod3() 整数型:totalValue,i totalValue ← 0 for (i を 1 から 7 まで 1 ずつ増やす) if (i ÷ 3 の余りが 0 と等しい) totalValue ← totalValue + i endif endfor totalValue を出力する

  1. ア 2
  2. イ 3
  3. ウ 7
  4. エ 9 ✓ 正答

解説

効率的な解き方:プログラムのトレース

この問題は、プログラムの動きを順を追って確認するトレース作業で解きます。ポイントは、変数 totalValuetotalValue の中身がループの繰り返しごとにどう変化するかを書き出すことです。

  1. ii が 1 から 7 まで変化する間、条件式「i÷3i \div 3 の余りが 0 と等しい」を満たすかどうかを判断します。
  2. 3で割って余りが0になるのは、3の倍数である i=3i = 3i=6i = 6 のときです。
  3. 条件を満たすときだけ、totalValuetotalValueii が加算されます。
  4. 初期値 totalValue=0totalValue = 0 から始まり、i=3i = 3 のときに 0+3=30 + 3 = 3 となり、i=6i = 6 のときに 3+6=93 + 6 = 9 となります。
  5. ループ終了後に totalValuetotalValue を出力するため、答えは 9 です。

アルゴリズムと条件分岐の基礎

この問題で問われているのは、プログラミングにおける「反復(ループ)」と「条件分岐(if文)」の組み合わせです。

プログラムは、命令を一つずつ上から順番に実行しますが、for文のようなループ処理を使うことで、同じような処理を効率的に繰り返せます。また、if文を使うことで、特定の条件を満たす場合だけ特定の処理を実行させる「制御」が可能になります。

今回のプログラムを日本語に訳すと、「1から7までの数字を順番に確認し、その数字が3で割り切れるものだけを合計する」という指示になります。論理的に手順を組み立てるこの考え方は、アルゴリズムの基礎そのものです。

アルゴリズム的思考の重要性

ITパスポート試験でこの手の問題が出題される背景には、コンピュータがどのように考えて動いているのかを理解してほしいという狙いがあります。

実際のシステム開発やデータ分析の現場では、膨大なデータの中から条件に合うものだけを取り出して計算したり、特定の項目を抽出したりする処理が頻繁に行われます。例えば、「売上データの中から、特定の日付のデータだけを合計する」「エラーコードが特定の値であるログだけを抽出する」といった作業は、このプログラムと同じロジックで成り立っています。

プログラミングコードを書く業務に就かない場合でも、Excelの「SUMIF関数」やデータベースの「SQL(抽出条件の指定)」を使う際に、この「条件を満たすものだけを扱う」という考え方が非常に役立ちます。コンピュータへの指示を論理的に組み立てる力は、デジタルスキルを向上させるための重要な基礎体力といえます。

参考リンク

学習の記録にははてなブックマーク!

気づいたこと・覚えたことをコメントにメモしよう