DNCL と共通テスト用プログラム表記を Python で書いて動かす

DNCL は情報関係基礎で使われた旧い名前で、情報 I の共通テストは「共通テスト用プログラム表記」を使います。旧 DNCL、情報 I の表記、Python を 1 枚の表で並べ、大学入試センターの例示の二分探索を Python でその場で動かします。

文 ゆめさく公開 2026年11月4日更新 2026年11月4日

先に答え

  • DNCL は「共通テスト手順記述標準言語」で、科目「情報関係基礎」のための表記です。代入は ← で書きます。
  • 情報 I の共通テストが使うのは「共通テスト用プログラム表記」です。代入は =、演算子は and や ** のように Python に近い形です。
  • Python へは、ほぼ 1 行ずつ写せます。間違えやすいのは ÷ と %、「まで」が終わりを含むこと、添字の始まりです。

DNCL と共通テスト用プログラム表記

旧 DNCL

大学入試センターの「共通テスト手順記述標準言語 (DNCL) の説明」(2022 年 1 月版) が定める表記です。科目「情報関係基礎」の出題に使うと書かれています。代入は ←、かけ算は ×、比べる記号は = と ≠ です。

共通テスト用プログラム表記

「情報 I」の共通テストのための表記です。大学入試センターは「概要『情報』」の中に、その例示を載せています (PDF の更新日は 2022 年 11 月 9 日)。代入は =、比べる記号は == と != です。

検索では両方とも「DNCL」と呼ばれがちですが、別の物です。情報 I の対策で ← を使う書き方を覚えると、試験の問題と記号が合いません。どちらの説明書も、問題文を簡潔にするためなどで説明と違う形で出題することがあると断っていて、試験では問題文の説明や指示が優先します。

3 つの表記の対応表

旧 DNCL は 2022 年 1 月版の説明書、情報 I は 2022 年 11 月 9 日の例示から取りました。片方の説明書に載っていない物は「無い」と書いています。

旧 DNCL、情報 I の共通テスト用プログラム表記、Python の対応表
項目旧 DNCL情報 I の表記Python
代入旧 DNCL の矢印が、情報 I では = に変わった旧 DNCLkosu ← 3情報 I の表記kosu = 3Pythonkosu = 3
1 行に複数の代入旧 DNCLkosu ← 3,kingaku ← 300情報 I の表記kosu = 3 , kingaku = 300Pythonkosu = 3; kingaku = 300
1 増やす「増やす」の書き方は旧 DNCL だけにあり、情報 I の例示には無い旧 DNCLkosu を 1 増やす情報 I の表記kosu = kosu + 1Pythonkosu += 1
文字列旧 DNCL は「」も使える。情報 I はダブルクォーテーションで囲む旧 DNCL「見つかりました」情報 I の表記"I'll be back."Python"I'll be back."
配列を作る旧 DNCLTokuten ← {87, 45, 72, 100}情報 I の表記Data = [10,20,30,40,50,60]PythonData = [10, 20, 30, 40, 50, 60]
全部の要素を 0 に旧 DNCLTokuten のすべての要素に 0 を代入する情報 I の表記Tokutenのすべての値を0にするPythonTokuten = [0] * len(Tokuten)
入力Python の input() は文字列を返すので、数として使うなら int() で包む旧 DNCLx ←【外部からの入力】情報 I の表記nyuryoku =【外部からの入力】Pythonnyuryoku = int(input())
表示Python の print はカンマの所に空白を 1 つ入れる。令和 7 年度の本試験の表示例は値の間に空白が無かったので、空白は問題の表示例で確かめる旧 DNCLkosu と「個見つかった」を表示する情報 I の表記表示する(kosu,"個見つかった")Pythonprint(kosu, "個見つかった")
四則演算旧 DNCL のかけ算は ×旧 DNCL+ − × /情報 I の表記+ - * /Python+ - * /
整数の商と余りどれも 3 と 1 になる。7 / 2 は 3.5旧 DNCL7 ÷ 2 と 10 % 3情報 I の表記7 ÷ 2 と 10 % 3Python7 // 2 と 10 % 3
べき乗旧 DNCL演算子は無い (問題文で関数を用意する)情報 I の表記2 ** 10Python2 ** 10
比較旧 DNCL の = は比べる記号で、代入ではない旧 DNCL= ≠ > ≧ ≦ <情報 I の表記== != > >= <= <Python== != > >= <= <
論理旧 DNCLかつ または でない情報 I の表記and or notPythonand or not
条件分岐旧 DNCLもし x < 3 ならば x ← x + 1 を実行し,そうでなければ x ← x − 1 を実行する情報 I の表記もし x < 3 ならば: | x = x + 1 そうでなければ: ⎿ x = x - 1Pythonif x < 3: x = x + 1 else: x = x - 1
条件を足す旧 DNCLを実行し,そうでなくもし y > 2 ならば情報 I の表記そうでなくもし x < 0 ならば:Pythonelif x < 0:
条件の間くり返す旧 DNCLx < 10 の間, gokei ← gokei + x x ← x + 1 を繰り返す情報 I の表記n < 10 の間繰り返す: | goukei = goukei + n ⎿ n = n + 1Pythonwhile n < 10: goukei = goukei + n n = n + 1
なるまでくり返す後で判定するので、中身は少なくとも 1 回は動く。Python に専用の文は無い旧 DNCL繰り返し, gokei ← gokei + x x ← x + 1 を,x ≧ 10 になるまで実行する情報 I の表記例示に無いPythonwhile True: gokei = gokei + x x = x + 1 if x >= 10: break
数を増やしながらくり返す「9 まで」は 9 を含む。range の終わりは含まないので 1 足して 10 と書く旧 DNCLx を 1 から 10 まで 1 ずつ増やしながら, gokei ← gokei + x を繰り返す情報 I の表記x を 0 から 9 まで 1 ずつ増やしながら繰り返す: ⎿ goukei = goukei + Data[x]Pythonfor x in range(0, 10): goukei = goukei + Data[x]
数を減らしながらくり返す旧 DNCLx を 10 から 1 まで 1 ずつ減らしながら, gokei ← gokei + x を繰り返す情報 I の表記例示は「減らしながら」もあると書くだけPythonfor x in range(10, 0, -1): gokei = gokei + x
処理の範囲旧 DNCL「を実行する」「を繰り返す」で閉じる情報 I の表記行の頭の | で範囲を表し、⎿ で終わるPython字下げ (ふつうは空白 4 つ) で表す
添字の始まり旧 DNCL0 以上。問題によっては 1 以上だけを使う情報 I の表記特に説明が無ければ 0 からPythonいつも 0 から
2 次元の配列旧 DNCLGyoretu[3,2]情報 I の表記Data[2,4]PythonData[2][4]
要素の数旧 DNCL説明書に無い (関数は問題文で用意する)情報 I の表記kazu = 要素数(Data)Pythonkazu = len(Data)
関数の定義旧 DNCL関数 和を表示する(n) を … と定義する情報 I の表記例示に無い (呼び出しだけが載っている)Pythondef show_sum(n): ...
コメント# から行の終わりまでは動かない旧 DNCL説明書に無い情報 I の表記atai = 乱数() #0以上1未満Pythonatai = random.random() # 0 以上 1 未満

二分探索を Python で動かす

例示の二分探索 (20 行) と、同じ PDF にある Python3 の記述例を並べました。Python は、入力の行を「問いの文の表示」と「値 52」の 2 行に替え、空白と字下げ (空白 4 つ) を整えた物です。「実行」を押すとブラウザの中で Python が動きます。atai を 85 に替えると、見つからなかったときの道を通ります。

情報 I の表記
( 1 ) Data=[3,18,29,33,48,52,62,77,89,97]
( 2 ) kazu=要素数(Data)
( 3 ) 表示する("0~99の数字を入力してください")
( 4 ) atai=【外部からの入力】
( 5 ) hidari=0 , migi=kazu-1
( 6 ) owari=0
( 7 ) hidari <= migi and owari==0 の間繰り返す:
( 8 ) | aida=(hidari+migi)÷2   #演算子÷は商の整数値を返す
( 9 ) | もし Data[aida]==atai ならば:
(10) | |表示する(atai,"は",aida,"番目にありました")
(11) | |owari=1
(12) | そうでなくもし Data[aida]<atai ならば:
(13) | |hidari=aida+1
(14) | そうでなければ:
(15) ⎿ ⎿ migi=aida-1
(16) もし owari==0 ならば:
(17) ⎿ 表示する(atai,"は見つかりませんでした")
(18) 表示する("添字"," ","要素")
(19) iを0からkazu-1まで1ずつ増やしながら繰り返す:
(20) ⎿ 表示する(i,"        ",Data[i])

Python (実行できます)

python実行可能
出力

▶ 実行ボタンを押すと結果がここに表示されます

期待の出力 (python3 で走らせた結果)
0~99の数字を入力してください
52 は 5 番目にありました
添字   要素
0       3
1       18
2       29
3       33
4       48
5       52
6       62
7       77
8       89
9       97

例示の実行結果の表示例は「52 は 5 番目にありました」で、上の出力と同じです。表示例にある「←キーボードから入力」は説明のための書き込みで、プログラムが出す字ではありません。

割り算の 3 つとべき乗

7 / 2、7 ÷ 2、10 % 3 は、旧 DNCL の説明書が例に使っている数です。説明書の答えは 3.5、3、1 で、Python でも同じになります。

情報 I の表記
表示する(7 / 2)
表示する(7 ÷ 2)
表示する(10 % 3)
表示する(2 ** 10)

Python (実行できます)

python実行可能
出力

▶ 実行ボタンを押すと結果がここに表示されます

期待の出力 (python3 で走らせた結果)
3.5
3
1
1024

書き換えを自分で試す

情報 I の表記を読んで Python に書き換え、「実行」を押してください。出力が期待の出力と同じなら、欄の下に「一致しました」と出ます。行の終わりの空白は比べません。

1. 配列の合計

「0 から 3 まで」は 3 を含みます。range の終わりをいくつにするかが分かれ目です。

情報 I の表記
Data = [3, 5, 8, 2]
goukei = 0
x を 0 から 3 まで 1 ずつ増やしながら繰り返す:
⎿ goukei = goukei + Data[x]
表示する(goukei)
期待の出力
18

Python に書き換えて実行する

python実行可能
出力

▶ 実行ボタンを押すと結果がここに表示されます

答えの例を見る
Data = [3, 5, 8, 2]
goukei = 0
for x in range(0, 4):
    goukei = goukei + Data[x]
print(goukei)

2. 商と余りと条件分岐

÷ は //、% は半角の % に置き換えます。| と ⎿ は字下げにします。

情報 I の表記
n = 47
表示する(n ÷ 10)
表示する(n % 10)
もし n % 2 == 0 ならば:
| 表示する("偶数")
そうでなければ:
⎿ 表示する("奇数")
期待の出力
4
7
奇数

Python に書き換えて実行する

python実行可能
出力

▶ 実行ボタンを押すと結果がここに表示されます

答えの例を見る
n = 47
print(n // 10)
print(n % 10)
if n % 2 == 0:
    print("偶数")
else:
    print("奇数")

3. 添字が 1 から始まる配列

令和 7 年度と令和 8 年度の本試験と同じく、添字は 1 から始まると断ってあります。Python のリストは 0 から数えます。

情報 I の表記
# 配列 Ten の添字は 1 から始まる
Ten = [70, 85, 60]
i を 3 から 1 まで 1 ずつ減らしながら繰り返す:
⎿ 表示する(Ten[i])
期待の出力
60
85
70

Python に書き換えて実行する

python実行可能
出力

▶ 実行ボタンを押すと結果がここに表示されます

答えの例を見る
Ten = [70, 85, 60]
for i in range(3, 0, -1):
    print(Ten[i - 1])

書き間違いと読み間違い

添字が 0 からか 1 からか

例示は、特に説明が無ければ配列の添字は 0 から始まると書いています。ところが令和 7 年度と令和 8 年度の本試験の情報 I では、配列の添字は 1 から始まると問題文で断っていました。Python に写すときは、添字から 1 を引くか、先頭に使わない要素を 1 つ置きます。

間違った書き方
print(Ten[3])   # IndexError
直した書き方
print(Ten[3 - 1])

「まで」は終わりを含む

「x を 0 から 9 まで」は 9 も通ります。Python の range は終わりを含まないので、終わりに 1 を足します。減らしながらのときは 1 を引きます。

間違った書き方
for x in range(0, 9):
直した書き方
for x in range(0, 10):

÷ と / は別の割り算

÷ は整数の商で、Python の // にあたります。/ は小数まで出す割り算で、7 / 2 は 3.5 です。二分探索の真ん中の添字を / で出すと、添字に小数が入って止まります。

間違った書き方
aida = (hidari + migi) / 2
直した書き方
aida = (hidari + migi) // 2

% を全角のまま写す

問題文の余りの記号は全角の % です。そのまま Python に貼ると、文字が違うという SyntaxError で止まります。半角の % に打ち直します。

間違った書き方
amari = n % 10
直した書き方
amari = n % 10

旧 DNCL の = は比べる記号

旧 DNCL では代入が ← で、= は「等しいか」を比べる記号でした。情報 I の表記と Python では = が代入、== が比較です。古い問題集で覚えた人ほど取り違えます。

間違った書き方
if kosu = 3:
直した書き方
if kosu == 3:

| と ⎿ を字下げに直し忘れる

情報 I の表記は行の頭の | と ⎿ で処理の範囲を表します。Python では ならば の後ろのコロンを残し、中の行を空白 4 つ下げます。⎿ の次の行で字下げを戻します。

間違った書き方
if x < 3:
x = x + 1
直した書き方
if x < 3:
    x = x + 1

出典と確かめた日

この頁は、情報 I の表記を例示 (2022 年 11 月 9 日) に基づいて書いています。本試験は問題文の説明に従ってください。下の 4 つの PDF は 2026年11月4日 に大学入試センターから取り直し、表の 1 行ずつと照らしました。

令和 7 年度と令和 8 年度の本試験の情報 I のプログラムも、代入の =、表示する、「1 ずつ増やしながら繰り返す」、行の頭の線で範囲を表す書き方で、例示と同じ形でした。違ったのは添字で、どちらの年も問題文で、配列の添字は 1 から始まると断っていました。令和 8 年度の問題では、使う関数 (要素数、最大値) を問題文の【関数の説明】の枠で説明しています。