先に答え
- 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 では = に変わった | 旧 DNCLkosu ← 3 | 情報 I の表記kosu = 3 | Pythonkosu = 3 |
| 1 行に複数の代入 | 旧 DNCLkosu ← 3,kingaku ← 300 | 情報 I の表記kosu = 3 , kingaku = 300 | Pythonkosu = 3; kingaku = 300 |
| 1 増やす「増やす」の書き方は旧 DNCL だけにあり、情報 I の例示には無い | 旧 DNCLkosu を 1 増やす | 情報 I の表記kosu = kosu + 1 | Pythonkosu += 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 % 3 | Python7 // 2 と 10 % 3 |
| べき乗 | 旧 DNCL演算子は無い (問題文で関数を用意する) | 情報 I の表記2 ** 10 | Python2 ** 10 |
| 比較旧 DNCL の = は比べる記号で、代入ではない | 旧 DNCL= ≠ > ≧ ≦ < | 情報 I の表記== != > >= <= < | Python== != > >= <= < |
| 論理 | 旧 DNCLかつ または でない | 情報 I の表記and or not | Pythonand or not |
| 条件分岐 | 旧 DNCLもし x < 3 ならば
x ← x + 1
を実行し,そうでなければ
x ← x − 1
を実行する | 情報 I の表記もし x < 3 ならば:
| x = x + 1
そうでなければ:
⎿ x = x - 1 | Pythonif 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 + 1 | Pythonwhile 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 に替えると、見つからなかったときの道を通ります。
( 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 (実行できます)
▶ 実行ボタンを押すと結果がここに表示されます
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 でも同じになります。
表示する(7 / 2)
表示する(7 ÷ 2)
表示する(10 % 3)
表示する(2 ** 10)Python (実行できます)
▶ 実行ボタンを押すと結果がここに表示されます
3.5
3
1
1024書き換えを自分で試す
情報 I の表記を読んで Python に書き換え、「実行」を押してください。出力が期待の出力と同じなら、欄の下に「一致しました」と出ます。行の終わりの空白は比べません。
1. 配列の合計
「0 から 3 まで」は 3 を含みます。range の終わりをいくつにするかが分かれ目です。
Data = [3, 5, 8, 2]
goukei = 0
x を 0 から 3 まで 1 ずつ増やしながら繰り返す:
⎿ goukei = goukei + Data[x]
表示する(goukei)18Python に書き換えて実行する
▶ 実行ボタンを押すと結果がここに表示されます
答えの例を見る
Data = [3, 5, 8, 2]
goukei = 0
for x in range(0, 4):
goukei = goukei + Data[x]
print(goukei)
2. 商と余りと条件分岐
÷ は //、% は半角の % に置き換えます。| と ⎿ は字下げにします。
n = 47
表示する(n ÷ 10)
表示する(n % 10)
もし n % 2 == 0 ならば:
| 表示する("偶数")
そうでなければ:
⎿ 表示する("奇数")4
7
奇数Python に書き換えて実行する
▶ 実行ボタンを押すと結果がここに表示されます
答えの例を見る
n = 47
print(n // 10)
print(n % 10)
if n % 2 == 0:
print("偶数")
else:
print("奇数")
3. 添字が 1 から始まる配列
令和 7 年度と令和 8 年度の本試験と同じく、添字は 1 から始まると断ってあります。Python のリストは 0 から数えます。
# 配列 Ten の添字は 1 から始まる
Ten = [70, 85, 60]
i を 3 から 1 まで 1 ずつ減らしながら繰り返す:
⎿ 表示する(Ten[i])60
85
70Python に書き換えて実行する
▶ 実行ボタンを押すと結果がここに表示されます
答えの例を見る
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]) # IndexErrorprint(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) / 2aida = (hidari + migi) // 2% を全角のまま写す
問題文の余りの記号は全角の % です。そのまま Python に貼ると、文字が違うという SyntaxError で止まります。半角の % に打ち直します。
amari = n % 10amari = n % 10旧 DNCL の = は比べる記号
旧 DNCL では代入が ← で、= は「等しいか」を比べる記号でした。情報 I の表記と Python では = が代入、== が比較です。古い問題集で覚えた人ほど取り違えます。
if kosu = 3:if kosu == 3:| と ⎿ を字下げに直し忘れる
情報 I の表記は行の頭の | と ⎿ で処理の範囲を表します。Python では ならば の後ろのコロンを残し、中の行を空白 4 つ下げます。⎿ の次の行で字下げを戻します。
if x < 3:
x = x + 1if x < 3:
x = x + 1出典と確かめた日
この頁は、情報 I の表記を例示 (2022 年 11 月 9 日) に基づいて書いています。本試験は問題文の説明に従ってください。下の 4 つの PDF は 2026年11月4日 に大学入試センターから取り直し、表の 1 行ずつと照らしました。
令和 7 年度と令和 8 年度の本試験の情報 I のプログラムも、代入の =、表示する、「1 ずつ増やしながら繰り返す」、行の頭の線で範囲を表す書き方で、例示と同じ形でした。違ったのは添字で、どちらの年も問題文で、配列の添字は 1 から始まると断っていました。令和 8 年度の問題では、使う関数 (要素数、最大値) を問題文の【関数の説明】の枠で説明しています。
- 大学入試センター「概要『情報』」の「5. 共通テスト用プログラム表記の例示」
PDF の 18〜21 頁 (例示、二分探索、Python との対比)。PDF の更新日は 2022-11-09。情報 I の表記の正本で、二分探索の例と Python の記述例を含む
https://www.dnc.ac.jp/albums/abm.php?d=744&f=abm00003141.pdf
- 大学入試センター「共通テスト手順記述標準言語 (DNCL) の説明」
2022 年 1 月版、11 頁。情報関係基礎のための旧 DNCL
https://www.dnc.ac.jp/albums/abm.php?d=666&f=abm00000819.pdf
- 令和 7 年度 大学入学共通テスト 本試験「情報 I」問題
第 3 問の問 2 (問題冊子の 24 頁)。配列 Akibi の添字は 1 から始まると問題文に書いてある
https://www.dnc.ac.jp/albums/abm.php?d=771&f=abm00005965.pdf&n=2025_op_43_joho1.pdf
- 令和 8 年度 大学入学共通テスト 本試験「情報 I」問題
第 3 問の問 2 (問題冊子の 26〜27 頁)。すべての配列の添字は 1 から始まると問題文に書いてあり、関数「要素数」と「最大値」は【関数の説明】の枠で説明される
https://www.dnc.ac.jp/albums/abm.php?d=2144&f=abm00017564.pdf&n=2026_ol_27_joho1.pdf
