IT1-CODE-POCKET

DNCL表記の読み方

DNCLは、共通テスト「情報Ⅰ」で使われる日本語寄りのプログラム表記です。実際のプログラミング言語とは少し違いますが、処理の考え方は同じです。

DNCLは「処理の流れ」を読むための表記

DNCLでは、特定のプログラミング言語に依存しすぎないように、「表示する」「もし」「繰り返す」など、日本語に近い表現が使われます。PythonやJavaScriptの文法を知らなくても、変数に値を入れる、条件を判定する、同じ処理を繰り返す、配列の値を取り出す、といった基本動作を読み取れることが大切です。

問題を解くときは、記号を暗記するよりも、各行が何をしているかを短い日本語に直してみましょう。「合計に加える」「条件を満たしたら個数を1増やす」「今までの最大値より大きければ更新する」と読めるようになると、長い問題でも落ち着いて対応できます。

配列と添字

DNCLでも、複数の値をまとめたものとして配列が出てきます。特に説明がない場合、IT1-CODE-POCKETでは添字を0から始める形で扱っています。例えば Nums[0] は最初の値、Nums[1] は2番目の値です。

添字を使う問題では、配列の中身と添字を書き出すことが効果的です。「iを0から要素数-1まで増やす」という繰り返しなら、配列の全要素を順に見ていると判断できます。「i+1」を使う場合は、最後の添字まで進めてよいかを必ず確認しましょう。

条件分岐と繰り返し

「もし 条件 ならば」は、条件を満たす場合だけ処理を実行します。条件には、等しいか、大きいか、小さいか、余りがいくつか、といった比較がよく使われます。例えば「n ÷ 2 の余りが0」は偶数判定です。

「繰り返す」は、同じ処理を何度も行うための表現です。回数が決まっている繰り返しでは、変数がどの値から始まり、どの値まで増えるのかを確認します。条件を満たす間だけ続く繰り返しでは、どの行で条件が変化するかを見ることが重要です。

よくある読み間違い

DNCLで多い読み間違いは、添字を1から数えてしまうこと、条件の「以上」「より大きい」を取り違えること、繰り返しの最後の値を含めるかどうかを見落とすことです。これらは、答えの選択肢を見る前に小さな表を作るだけでかなり防げます。

また、変数名には意味があります。count は個数、total は合計、maxbest は最大値や最良値を表すことが多いです。変数名から役割を推測し、更新されるタイミングを追うと、プログラム全体の目的が見えやすくなります。

記号の意味を一覧で覚える

DNCLで使われる記号は多くありません。この表の分だけ覚えれば、まず困りません。

記号 意味
| ⎿ 処理のまとまり(字下げの代わり) 繰り返しや条件の内側を示す
÷ 割り算(整数どうしは商だけ) 23 ÷ 4 は 5
割った余り 23 % 4 は 3
== != 等しい/等しくない score == 100
かつ または 2つの条件の組み合わせ a >= 15 かつ b >= 40
要素数( ) 配列の個数を返す 要素数(Nums) - 1 が最後の添字
最大値( ) 2つ以上の値のうち大きいほう 最大値(到着, 前の終了)
÷ と % はセットで覚えてください。 「23個のカードを4人で分ける」なら、1人あたりが 23 ÷ 4 = 5 枚、 余りが 23 % 4 = 3 枚です。偶数判定の n % 2 == 0 も、この余りの考え方です。

3つの表記の対応表

同じ処理を DNCL・Python・JavaScript でどう書くかを並べると、 違うのは書き方だけで、考え方は同じだとはっきりします。

やること DNCL Python JavaScript
表示 表示する(x) print(x) console.log(x)
要素数 要素数(Nums) len(nums) nums.length
条件分岐 もし 〜 ならば: if 〜: if (〜) { }
回数の繰り返し i を 0 から 3 まで for i in range(4) for (i = 0; i <= 3; i++)
条件の繰り返し 〜 の間繰り返す: while 〜: while (〜) { }
余り n % 2 n % 2 n % 2
まとまり | と ⎿ 字下げ 波かっこ { }

いちばん注意すべきは「回数の繰り返し」の行です。 DNCL の「0 から 3 まで」は両端を含んで4回、 Python の range(4) も4回ですが、書かれている数字の意味が違います (DNCLは「3まで」、Pythonは「4の手前まで」)。 数字をそのまま読み替えると1回ずれます。

1行ずつ日本語に直す練習

DNCLは日本語に近い表記なので、各行を短い日本語に言い換えるのが有効です。

Nums = [3, 8, 5]
count = 0

i を 0 から 要素数(Nums) - 1 まで 1 ずつ増やしながら繰り返す:
|もし Nums[i] > 4 ならば:
⎿⎿ count = count + 1

表示する(count)
日本語に直すと
Nums = [3, 8, 5] 3個の数を用意する
count = 0 数える箱を0にしておく
i を 0 から … 全部の要素を先頭から1つずつ見る
もし Nums[i] > 4 いま見ている値が4より大きければ
count = count + 1 箱を1増やす

通して読むと「4より大きい値が何個あるかを数えるプログラム」だと分かります(答えは2)。 プログラム全体の目的を言葉にできれば、選択肢の絞り込みが一気に楽になります。 テーマ別の練習はプログラムの読み方にまとめています。

次に読むページ