この教材の学習目標

読み終えたら、できること。

  • 配列の添字と要素の値を区別できる
  • 要素の参照・交換・追加・削除の結果を追える

読む前に:変数と代入、処理を上から順に実行する考え方を使います。迷ったらフローチャートの教材を先に読みましょう。

この教材の目次

身近な「なぜ?」から。

クラス全員の点数をscore0、score1…と別々の名前で持つと、人数が増えるほど大変です。配列なら、ひとつの名前と添字で点数を指定できます。

アプリ収録の単元図解

まず、図で全体像をつかもう。

「情報1」アプリの「プログラミングの基礎」の図解。画像を加工せず、そのまま掲載しています。

図のリストの例は0始まりです。添字の開始位置は言語や問題の指定に従います。探索や誤差など、今回の配列入門より先の内容も含む全体図です。

01箱の番号と、中身を分ける。

配列は、複数の値をまとめて扱う仕組み。

添字は、どの要素かを指定する番号。

値は、その要素に入っているデータ。

02A[1]は「1」ではありません。

ここでは、添字が0から始まる配列 A = [12, 35, 8] を使います。

添字(場所を指定する番号)
012
135
28
A[1] の値は 35
2番目の要素を、添字1で指定する例。0から始まるため1つずれます。

添字1は箱の場所で、35は箱の中身です。配列の添字が0から始まるか、1から始まるかは、使う言語や問題の指定を確認します。

03代入したら、中身が変わる。

次の処理を上から順に実行します。

A ← [12, 35, 8]
A[0] ← A[2] + 5
A[2] ← A[0] + 1

最初:[12, 35, 8]

2行目:8 + 5 を A[0] に入れる → [13, 35, 8]

3行目:更新後の13 + 1を A[2] に入れる → [13, 35, 14]

重要語句を整理しよう。

この教材で使う言葉
配列複数の要素を、添字を使って扱うデータ構造。
要素配列に格納された個々のデータ。
添字(インデックス)要素を指定する番号。この教材の例では0から始める。
要素数配列に含まれる要素の数。最後の添字とは異なる。
参照添字などを使って、要素の値を読み取ること。

代表3問の前に / 一緒に解く例題

本文の内容で、ひとつ確かめよう。

本文と同じA=[12,35,8]で、A[1]の値と、最後の要素の添字は?

考える手順を見る
① 添字は0・1・2。A[1]は2番目なので35。
② 要素数は3。最後の添字は3−1=2。

添字の列と値の列を分けて書けば、要素数を使う式も同じ手順で読めます。

CHECK YOUR UNDERSTANDING

3問で、確かめよう。

基礎→標準→応用の代表3問。迷ったらヒントを開き、解いた後に図解で確かめましょう。

Q1 · 基礎あるリスト data が data = [15, 8, 32, 47, 60, 71, 23] と定義されている。このリストに対して、以下の処理を実行した際に出力される値として最も適当なものはどれか。なお、Pythonではリストの添字は 0 から始まるものとする。
print(data[2] + data[len(data)-2])

添字から値を読む

考え方のヒント

len(data)は要素数です。まず添字0〜6を書き、data[2]とdata[len(data)-2]を別々に探します。

▧ 図解で考え方を見る解答を含みます+

アプリ収録の解説図を加工せず掲載しています。文字が小さい場合はタップで拡大できます。

Q2 · 標準リスト A = [30, 20] の要素を入れ替えて [20, 30] にしたい。変数 temp を用いた処理として、正しい手順はどれか。

値を交換する

考え方のヒント

tempは一時的に値を保存する変数です。各代入の後に、2つの要素とtempを書き直します。

▧ 図解で考え方を見る解答を含みます+

アプリ収録の解説図を加工せず掲載しています。文字が小さい場合はタップで拡大できます。

Q3 · 応用空のリスト L に対して以下の操作を順番に行った。最終的な L の内容として正しいものはどれか。なお、Pythonの append は末尾追加、pop(0) は先頭要素の削除を意味するものとする。
1. L.append(10)
2. L.append(20)
3. L.pop(0)
4. L.append(30)

追加と削除を追う

考え方のヒント

append(x)は末尾への追加、pop(0)は先頭要素を取り出して削除する操作です。

▧ 図解で考え方を見る解答を含みます+

アプリ収録の解説図を加工せず掲載しています。文字が小さい場合はタップで拡大できます。

解答・解説だけ読む
問1:C

リスト data の要素数は 7 です。data[2] は 3 番目の要素である 32 を指します。次に len(data) は 7 なので、data[len(data)-2] すなわち data[5] は 6 番目の要素である 71 を指します。したがって、32 + 71 = 103 となります。添字が 0 から始まることと、len() 関数が要素の総数を返すという基本を正確に理解する必要があります。

問2:B

2つの変数の値を入れ替えるには、一方の値を一時的に退避させる変数(ここでは temp)が必要です。まず A[0] の値を temp に保存し、次に A[0] に A[1] の値を上書きします。最後に、保存しておいた temp の値を A[1] に戻すことで入れ替えが完了します。A[0] = A[1]; A[1] = A[0] の手順では最初に A[0] が上書きされるため、元の A[0] の値が消えて両方の要素が 20 になってしまいます。

問3:A

操作を追跡すると次のようになります。1. append(10) → L = [10] 2. append(20) → L = [10, 20] 3. pop(0) により先頭の 10 が削除される → L = [20] 4. append(30) により末尾に 30 が追加される → L = [20, 30]。リストの要素が操作によって動的に変化する様子を正確に捉える必要があります。

YOUR NEXT STEP

次は、条件の違う問題へ。

理解したことを、別の問題でも確かめてみましょう。「情報1」アプリでは、分野別の演習や間違えた問題の復習ができます。

全機能無料広告なし登録不要
App Storeで無料入手 ↗Android版はこちら ↗iPhone・iPad向けの掲載情報を基に紹介しています。Android版の機能は掲載ページをご確認ください。運営者が開発するアプリです。

説明できたら、この教材は完了。

  • 添字が0から始まるか、問題文を確認できる
  • 要素数nなら最後の添字がn−1になると説明できる
  • 今回の代入手順で、一時変数を使う理由を説明できる

説明できない項目は、要点や例題に戻って確認しましょう。

出典・教材について

文部科学省 高等学校学習指導要領解説 情報編 ↗

代表問題3問と対応する解説図は、運営者の「情報1」アプリ収録教材から選んで掲載しています。共通テストの実際の問題の転載ではありません。本文にはアプリの単元図解と、具体例を追うためのWeb補助図を掲載しています。