情報ラボ > プログラム表記を動かす
共通テスト「情報Ⅰ」と同じ書き方のプログラムを、その場で実行できます。1行ずつ進めて、変数の値の変わり方を確かめましょう。
プログラムは、問題文などからそのまま貼り付けても動きます。行の先頭の (1) や (01) の行番号は読み飛ばします。字下げは「|」「⎿」でも、空白でもかまいません。
入れた内容は「▶ 実行」「1行ずつ」に使われます。空欄は【ア】のように、【】の中にカタカナで書きます。
トレース表は、1行実行するごとの変数の値を記録した表です。値が変わったところは黄色になります。
ひし形は分岐(条件で道が分かれる)、上下が角を落とした形は繰り返しの始まりと終わり(ループ端)、平行四辺形は入力と表示です。
書き方が違っても、順次・分岐・反復の組み立ては同じです。行どうしを見比べてみましょう。
「試す」を押すと、その例が「プログラムを動かす」に入ります。問題文で別の決まりが示されたときは、問題文に従います。
| 変数 | 英字で始まる英数字と「_」の並び。例:kosu、kingaku_kei |
|---|---|
| 配列 | 名前の先頭は大文字。例:Tokuten[3]、Data[2,4]。特に説明がなければ、添字は 0 から始まる(問題文で 1 から始まると書かれていたら、上の「配列の添字を 1 から始める」にチェック) |
| 文字列 | ダブルクォーテーション(")で囲む。+ で連結できる |
| 代入 | kosu = 3 , kingaku = 300(1行に複数書ける)、Data = [10,20,30]、Tokutenのすべての値を0にする |
| 入力 | nyuryoku = 【外部からの入力】、n = 【整数を入力】、namae = 【文字列を入力】 |
| 算術演算 | + - * /、整数の割り算の商 ÷、余り %、べき乗 ** |
| 比較演算 | ==(等しい) !=(等しくない) > < >= <= |
| 論理演算 | and(論理積) or(論理和) not(否定) |
| 関数 | 要素数(Data)、整数(乱数()*6)+1、表示する(Kamoku[i],"の得点は",Tensu[i],"です")。表示する以外の関数は、ふつう問題文で説明される |
| コメント | # から行の終わりまでは実行されない |
| 字下げ | | と ⎿ で制御の範囲を表す。⎿ は制御文の終わりを示す |
x = 5
もし x >= 3 ならば:
| x = x - 1
そうでなくもし x < 0 ならば:
| x = x * 2
そうでなければ:
⎿ x = x * 2
表示する("x は ", x)
Data = [10, 20, 30, 40, 50, 60, 70, 80, 90, 100]
goukei = 0
x を 0 から 9 まで 1 ずつ増やしながら繰り返す:
⎿ goukei = goukei + Data[x]
表示する("合計 ", goukei)
k を 3 から 1 まで 1 ずつ減らしながら繰り返す:
⎿ 表示する(k)
goukei = 0 n = 1 n < 10 の間繰り返す: | goukei = goukei + n ⎿ n = n + 1 表示する(goukei)
| 増やす・減らす | kaisu を 1 増やす、nokori を 2 減らす |
|---|---|
| 関数 | 最大値(a, b) 最小値(a, b) 切り捨て(x) 四捨五入(x) 絶対値(x) 平方根(x) 二進(x)(2進数の文字列にする) |
| 空欄 | 【ア】 のように【】の中にカタカナを書くと、空欄として扱います。入れる内容は「空欄に入れて試す」で決めます |
| 字下げ | |⎿ の代わりに、空白で字下げしても動きます。行の先頭の (1) や (01) の行番号は読み飛ばします |
関数は問題ごとに説明が変わることがあります。問題文の説明と違うときは、問題文に合わせて考えてください。
高校の「情報Ⅰ」の授業では、Python、JavaScript、VBA など、学校によってさまざまなプログラミング言語が使われています。そのため大学入学共通テスト「情報Ⅰ」では、特定の言語ではなく、日本語を交えた共通テスト用プログラム表記でプログラムが出題されます。大学入試センターは、試作問題の公表にあわせて、この表記の基本を例示しています。
ただし、例示はあくまで基本です。センターも、問題文を簡潔にするなどの理由で、例示と違う形で出題することがあると説明しています。実際の試験では「配列の添字は 1 から始まる」「最大値(x, y) は大きいほうを返す」のように、問題文で決まりが追加されます。このページでは、例示の書き方に加えて、そうした問題文の決まりにも合わせられるようにしています。
どんなプログラムも、順次・分岐・反復の3つの組み合わせで書けることが知られています。
分岐や反復の中で実行する範囲は、行の先頭の「|」で表し、範囲の最後の行には「⎿」を付けます。分岐の中に反復があるように入れ子になると、| が重なります。最後の行で2つの範囲が同時に終わるときは「⎿ ⎿」のように重ねて書きます。「フローチャート」のタブで、範囲がどこからどこまでかを図で確かめられます。
変数は、値を入れておく名前つきの箱です。kosu = 3 は「kosu という箱に 3 を入れる」という意味で、数学の等式ではありません。だから n = n + 1 は「n の今の値に 1 を足して、n に入れ直す」ことになります。
配列は、同じ種類の値をまとめて並べたものです。名前の先頭を大文字にし、Tokuten[2] のように添字(番号)で1つ1つの値を指します。特に説明がなければ、添字は 0 から始まります。要素が6個の配列なら、添字は 0 から 5 までです。「まちがい探し」の見本では、添字を 1 から数えて範囲の外に出てしまう例を確かめられます。
一方、実際の共通テストでは「すべての配列の添字は 1 から始まる」と問題文で決めることもあります。そのときは「配列の添字を 1 から始める」にチェックを入れると、配列の最初の値を添字 1 で読み書きします。
| 書き方 | 意味 | 例 |
|---|---|---|
+ - * / | 四則演算 | 7 / 2 は 3.5 |
÷ | 整数の割り算の商 | 7 ÷ 2 は 3 |
% | 整数の割り算の余り | 7 % 2 は 1 |
** | べき乗 | 2 ** 10 は 1024 |
== != > < >= <= | 比較 | x != 0 |
and or not | 論理演算 | x >= 0 and x < 10 |
「÷」と「%」の組み合わせは、2進数への変換や、偶数・奇数の判定、桁の取り出しなどでよく使われます。見本「10進数を2進数に直す」で、余りを1つずつ並べていくようすをトレース表で追ってみましょう。
プログラムの問題では、変数の値が1行ごとにどう変わるかを追えるかどうかが大切です。紙の上で、行番号と変数の値を表に書き出していく方法をトレースといい、その表をトレース表といいます。
このページでは、実行すると自動でトレース表を作ります。値が変わったところは黄色になります。まず自分でトレース表を書き、そのあとで実行して答え合わせをすると、どこで考え違いをしたかが分かります。「1行ずつ」のボタンを使えば、次に実行する行を確かめながら1行ずつ進められます。
共通テストのプログラムの問題では、プログラムの一部が空欄になっていて、入る式や文を解答群から選ぶ形がよく出ます。プログラムの中に 【ア】 のように書くと、このページでは空欄として扱います。
「解答群で比べる」に候補を1行に1つずつ書き、「それぞれ実行して比べる」を押すと、それぞれを入れて実行した結果が表に並びます。正しい選択肢だけでなく、まちがった選択肢を入れると何が起きるかを確かめると、なぜその式でなければならないのかが分かります。見本「空欄のあるプログラム」で試してみてください。
共通テスト用プログラム表記で書いたプログラムは、ほかの言語にほぼそのまま書きかえられます。「Pythonと見比べる」のタブでは、同じ動きをする Python のプログラムを表示します。主なちがいは次のとおりです。
| 共通テスト用プログラム表記 | Python |
|---|---|
表示する(x, "円") | print(x, "円", sep='') |
要素数(Data) | len(Data) |
a ÷ b | a // b |
i を 0 から 9 まで 1 ずつ増やしながら繰り返す: | for i in range(10): |
x < 10 の間繰り返す: | while x < 10: |
| | と ⎿ で範囲を表す | 字下げ(空白)で範囲を表す |
Python の range(10) は 0 から 9 までで、10 を含みません。「9 まで」と「range(10)」のように、終わりの数の書き方が1つずれることに注意しましょう。
【整数を入力】 などがあると、実行がそこで止まり、入力欄が出ます。このページの処理系は、大学入試センターの例示をもとに情報ラボが独自に作ったものです。実際の試験問題では、問題文の説明が優先されます。
情報Ⅰ 授業の進め方ガイドでは、この教材を次の授業で使います。ねらい・導入の問い・50分の流れ・確認問題をまとめています。