116日文
令和4年（2022年）度版
1 1 6 日文

情Ⅰ 710

文部科学省検定済教科書

高等学校情報科用● 見やすく読みまちがえにくいユニバーサルデザ

インフォントを採用しています。
● カラーユニバーサルデザインに配慮しています。

また，植物油インキと再生紙を使用しています。

組

情報 Ⅰ

年

内容解説資料（別冊）

情 報Ⅰ

日本文教出版“Google Colaboratory” を使えば，ブラウザで手軽に Python の実習ができます！

高等学校情報科

黒上晴夫

堀田龍也

村井純

編

令和４年度 高等学校 「情報」 教科書のご案内

情報Ⅰ●“Colaboratory” を検索して追加

これで準備は完了です！
“新規” から “GoogleColaboratory” を選択すれば，すぐにPythonの実習を始めることができます。

問題解決を通じて「情報的な見方・考え方」を養い，大学入試，プログラミング，情報デザイン，

日本文教出版

Googleドライブの “新規” から“アプリを追加” を選択●“Google Colaboratory” が使えるようになりました●

データサイエンスなど，新しい学習内容にも，しっかりと応えることのできる教科書です。

日本文教出版

日本文教出版株式会社

情報教科書申請本【情報Ⅰ STANDARD】

表紙

第１章

2

1章3節

問題解決の考え方

問題解決の考え方を身につけよう

2問題を発見して解決策を考える際は，ゴール（理想の姿）を想定し，そこに到達するための方法を検

計画の実行

考え方
オレ，野球部だよとにかくいろいろやってみよう！

討しなければならない。どのような解決策をとるかによって，問題解決の結果は大きく異なる。次に解決策を十分に検討できているだろうか。
解決策を計画通りに実行できているだろうか。

吹奏楽部で
忙しいんだ

紹介する
「部員不足の解消」のための行動は，よい問題解決の方法といえるのか考えてみよう。

タを収録した「デジタルデータ編」で構成する予定です。

生徒用副教材

（解説）
問題解決の考え方を
身につけよう（第 1 章 3 節，p.20）



次はもっと
頑張ろー！

いろいろやった
のに……

20

21
15
1 0101

プログラミング

データ活用

教科書の理解を助ける生徒用の副教材です。授業プリントの代わりとし

２章３節

情報デザイン2

情報デザインのプロセスと問題の発見

STEP ❶－

文化祭に人があまり来ない問題

調査

現状分析～問題の発見のために
なぜ文化祭に人が来ない？

校内・校外でアンケート。

ブレーンストーミング

集計

STEP ❶－

問題
（テーマ）
の選択

分析

10

利用者の目線に立って現状の問題点や課題を洗い出していく中で，自分たちがデザインの力を用いて解決したい問題のテーマを選ぶ。
▼図 2 ブレーンストーミングから問題を発見，選択する調査の結果を集計する。

学校への興味・関心が薄いことがわかった。

手法

説明

質問紙法

調べたい内容に関する質問紙を用いて，利用者に回答してもらう調査方法。紙だけでなく，Web ページを利用することもある。

面接法

観察法

調べたい内容を対面で聞き取る調査方法。１対１，またはグループで行うインタビューなどがある。
利用者のようすを観察することで，調べたい内容を明らかにする調査方法。調査者が調査対象とともに活動しながら観察する場合や，第三方法。調査者が調査対象とともに活動しながら観察する参与観察と，者として外部から観察する場合などがある。
第三者として外部から観察する非参与観察がある。

140
8C
1000 1100▲情報デザインのプロセスと問題の発見（第 2 章 3 節，p.94）

group_num = [6, 7, 7] ①

4group_list_1 = []5group_list_2 = []グループの人数は「１」が６人 ，「２」および「３」が 7 人の計 20 人

6group_list_3 = []7

member = [] ②

8member_flag = [] ③

910 for i in range(20):を与え直すことにする。

11

1 import random ①
2
3 lot_num = [6, 7, 7] ②
4 group_list_1 = []5 group_list_2 = []③
6 group_list_3 = []78 i = 0 ④
9 while i < 20: ⑤
10
n = random.randint(1, 3) ⑥
11
if lot_num[n-1] > 0:12
if n == 1:
13group_list_1.append(i+1)
14elif n == 2:15group_list_2.append(i+1)
⑦
16
else:
話し合ってみよう
17
group_list_3.append(i+1)
lot_num[n-1] = lot_num[n-1] - 1
質 問 紙 法， 面 接 法，18
観
19i = i + 1
察 法 で 調 査 し た 場 合，
そ れ ぞ れ ど の よ う な20
メ
リ ッ ト と デ メ リ ッ ト21
が print('グループ1', group_list_1)
あ る か 話 し 合 っ て み22
よ print('グループ2', group_list_2) ⑧
23 print('グループ3', group_list_3)
う。

5E
101 111010

3き，与えた番号のグループの空きが０の場合は，再度１から３までの整数

94❶量的データ①各グループの人数を格納した配列 group_num を用意す
quantitative dataる。

import random2

１から 20 までの番号を持つ生徒１人１人に対して，順番に，１から３

保護者などにインタビュー。

1と決まっているため，それぞれのグループの残りの空き人数を記録しておmember_flag.append(0)❷質的データ②抽出した数を並べて格納するための配列 member
を用
4
意する。
qualitative data

③抽出した数がすでに並べられていないかをチェックする❸時系列
ための配列 member_flag を用意する。
ある現象の時間的な変化を，その時間に沿って連続的に（また④ 変 数 i を 0 か ら 19 ま で １ ず つ 変 化 さ せ な がら，は一定間隔で）観測して得られmember_flag に 初 期 値 と し て 20 個 の 0 を 格 納た一連の値のこと。
す る。
range 関数は一般に for 文とともに用いて，
 for変数inrange( 初期値 ,終了値 ,増分）: 実行内容のようにあらわし，初期値≦変数 < 終了値の範囲で増分ごとに変数値を増やしながら繰り返す。初期値と増分を1960 年 か ら ど
省略した場合は，初期値を 0，増分を 1 として動作する。
ちらも人口が増えているけど，⑤抽出した数がすでに並べられていないかを判定するため，日本は途中から
16 行目で member_flag の対応する要素を調べる。ま減少しつつある
ことがわかるね
だ並べられていない場合（member_flag の値が 0）は，④

12

グループに振り分ける方法①

p.48

グループに振り分ける方法②


グループに振り分ける方法①
までの整数を無作為に与えていくことにする。

「1」が6人，
「2」
が7人，
「3」 が
7人となるようにするんだねえ，ブレーンストーミングなどを用いてなるべく多く意見を出す。

テキスト

条件●できるだけ各グループの人数を均一にする。
●どのグループに入るかはランダムに決まるようにする。

2
3

13 i = 0①乱数（p.154 参照）を発生させるためのライブラリを読み込む。
②各グループの空き人数を格納した配列 lot_num を用意する。
③メンバーの番号を格納するための空の配列を設定する。

14 while i < 20:
15

n = random.randint(1, 20)

16

if member_flag[n-1] == 0:17member.append(n)18member_flag[n-1] = 1

19i = i + 1⑤

21 slice_start = 0 ⑥

22 for i in range(3): ⑦
23slice_end = slice_start + group_num[i] ⑧⑤iが20未満の間，10〜19行目のプログラムを繰り返す。

24

group_work = member[slice_start : slice_end] ⑨25

if i == 0:⑥ n に 1，2，3 い ず れ か の 数 値 を 代 入 す る。random.
randint(a,b) は a 〜 b の範囲の整数をランダムに返す関数。

26⑧それぞれのグループのメンバーを出力する。

27
28
29
30
31

group_list_2 = group_workelse:group_list_3 = group_work
slice_start = slice_end ⑪

32
33 print('グループ1', group_list_1)
34 print('グループ2', group_list_2)
35 print('グループ3', group_list_3)

95

⑩

箱ひげ図

⑨ 配 列 member か ら 添 字 slice_start 〜 slice_end−１ までの部分を抜き出し，配列 group_work に入れる。
⑩ 配 列 group_work に 格 納 し た 内 容 を group_list_1 〜group_list_3 までの各グループに格納する。

▲アプリケーションの開発①（第 3 章 2 節，p.140）

CHECK!!

分析する際には，データの種類を意識する必要がある。
2

5

50%

第1次産業

第2次産業

100%

3

第3次産業

5

2つのデータの関係性を分析する

時系列で分析する❺

ぞれの変数を縦軸と横軸にとり，各データをグラフ上に点として打つと図❸

一定時間ごとに変化するデータ（時系列）のようすを見るときは，折れ線

104 のようになる。

グラフを用いるとよい。2 つのデータを 1 つのグラフにあらわせば，変化▼図 4のようすの違いを比べるのにも役立つ。
▼図 1

図４は世界の国々のGNI（国民総所得）と幸福度の関係を示した散布図なんだ

折れ線グラフ
人口推移（千人）
140,000❹

2 つのデータの関係性を分析したいときは，散布図を使うとよい。それ

日本とぼくたちの姉妹校があるA国の人口をくらべているよ120,000
100,000
80,000

8.000
7.000
6.000
5.000

日本

4.000

1.000
0.000

40,000

1つ1つのデータを点で表現
し，縦軸横軸 2 つの要素の該当する位置に配置するグラフ。

調査結果を数値であらわしたも
の。

A国

2.000

60,000

❹散布図

❺変数

散布図

9.000

3.000

10,000.0

20,000.0

30,000.0

40,000.0

50,000.0

60,000.0

70,000.0

80,000.0

90,000.0

日本のほうがGNIの数値は高
いけど，幸福度は同じくらいだね

1人あたりのGNI（PPP International $）20,000
0
1960

1970

1980

1990

2000

2010

2020

A国

10

度数分布で分析する

見るときは，ヒストグラムや箱ひげ図を用いるとよい。
▼図 2 ヒストグラム（人口ピラミッド）

日本はやはり少子高齢化が進ん
でいるね

日本

90-94
85-89
80-84
75-79
70-74
65-69
60-64
55-59
50-54
45-49
40-44
35-39
30-34
25-29
20-24
15-19
10-14
5-9
0-4

A国

男性
女性

90-94
85-89
80-84
75-79
70-74
65-69
60-64
55-59
50-54
45-49
40-44
35-39
30-34
25-29
20-24
15-19
10-14
5-9
0-4

増加するにしたがってもう一方も増加する関係があるときには正の相関があるという。逆に一方が増加し，もう一方が減少するときは負の相関があ

データの特徴を把握するために，データがどのように分布しているかを
p.205

15

るという。
▼図 5

A国はまだまだはた
らき盛りの人がいる
けど，このままいくと高齢化しそうな感
じもするね

散布図の相関正の相関（相関が弱い）負の相関

R = 0.90

R = 0.02

R = －0.90

話し合ってみよう

図５の ʀ は相関係数をあらわす。相関係数は－ 1.0 ～ 1.0 の範囲に値をとり，絶対値が 1 に近いほど関係性が強く，0 に近いほど関係性が弱い。

実際にアンケートを作
成 し， デ ー タ を 集 め，
数値データの分析を行う過程で気づいた問題
点について話し合って
みよう。

141

195

8D
1000 1101

C3
1100 0011

では「情報Ⅰ」に関する気になる話題を動画で配信しています！

※Q R コードのリンク先コンテンツは予告なく変更または削除する場合があります。
※Q R コードは，株式会社デンソーウェーブの登録商標です。

0%

も，データの種類によって，分析に使える手法は変わってくる。データを▲数値データの分析（第 4 章 3 節，p.194）

日文チャンネル

第2次産業の割合は同じくらいね

産業別就業人口の割合

A国

https://www.nichibun-g.co.jp/
本資料は内容解説資料として，一般
社団法人教科書協会「教科書発行者
行動規範」に則っております。

帯グラフ

日本

また，数値であらわされたデータを数値データという。数値データの中で3⑪次のグループに移るため，slice_end を次の開始位置に
指定する。

C2
1100 0010

A国は第1次産業に従事する人が圧倒的に多いね❷

散布図では 2 つの変数の関係の強さ（相関）を見ることができる。一方が⑧切り分けるグループの最後を slice_end で定義する。

194

5F
101 1111❶

日本⑥配列 member に入れた 20 個の数を 3 つのグループに切り分けるため，各グループの先頭を示す値（配列の添字）を slice_start とし，初期値として 0 を代入する。
⑦変数 i が 0 から 2 までの間，繰り返す。

group_list_1 = group_work
elif i == 1:

数値データ

データ分析で扱うデータには，身長や点数など数値として意味のある量

17 行目で配列 member に抽出した数を追加し，さらに18 行目で配列 member_flag の値を並べたことを示す「1」に変える。

20④グループが決まった人数をカウントするための変数 i を設定し，0 を代入して初期化する。

⑦⑥で取得した数値に対応するグループに空きがあれば，append() によって配列 group_list_1 〜 group_list_3の各末尾にメンバーを追加する。さらに，そのグループの空き人数を1減らし，カウンタ変数iの値を1増やす。

1

的データと，性別や名前などデータをカテゴリで示した質的データがある。5

幸福度

自分たちの周囲にどのような問題・課題があるのかを利用者の立場で考前から順番に 6 人，7 人，7 人に分ける。

情報通信ネ�トワ�クとデ�タの活用

デザイン対象の発見

STEP ❶－

1

3

▼図 3

考えてみよう
学校や授業に関係する
データにはどのような2 考えても の が あ る か，
みよう。

節 デ�タの活用

解決すべき問題が明確になったら，その解決策を立案する作業に移行する。
▼図 3 情報の収集と問題点の分析

改善
運用

7人

をあらわす。

第

改善・運用

◀

7人

度抽出し直すことにする。

節 アルゴリズムとプログラム

試作
評価

6人

が重複していた場合は，再5割合で分析する

データの割合を見るときには，帯グラフや円グラフが適している。帯グ
ラフは全体を 100% として，帯を構成する四角形の長さで各要素の比率

数値データを分析するための手法について，どのようなものがあるか理解しよう。

章

2

◀

10

STEP ❹

試作・評価

デザインのための要件の定義
設計

ただし，同じ数が２回以上出てくることが考えられるため，並べた数を記録しておき，抽出した数20 人の生徒を 3 グループに分ける方法として，次の①と②を考えた。それぞれの方法を自動的に処理するプログラムを作成してみよう。

数値データの分析

2

第グループに振り分ける
方法①と方法②をフロー チ ャ ー ト で3表 現 し てみよう。

やってみよう方法①と方法②それぞれ の プ ロ グ ラ ム を， グ
ループの数や人数を変えて実行してみよう。

第

スライド

考えてみよう学級新聞を制作する場
合， 発 行 ま で に ど の よ
うな作業を予定すればよいか考えてみよう。

STEP ❸

解決策の立案くり，それぞれのメンバーを出力する。

例題 1

考えてみよう現実

情報デザイン

アニメー
ション

情報を集め，得られた結果を分析することで，問題点が明確になる。こる。望ましい状態と現状との間にあるギャップが，解決すべき問題という

節

テスト
問題集

STEP ❷◀

それぞれの生徒を示す１から 20 までの整数を無作為に抽出し１列に並べたうえで，先頭からグループの人数と等しい6，7，7で区切って組をつ

クラスを３つのグループに分けるプログラムを作成しよう。

4

４ 章 ３ 節 データの活用

グループに振り分ける方法②

アプリケーションの開発①報を集めていく。

ことになる。

デザイン対象の発見
現状分析
問題の選択
情報の収集
問題点の分析

6

5

こで改めて利用者の立場に立ち，どのような状態が望ましいのかを考察す5

情報デザインの作業手順

STEP ❶

文化祭に人がたくさん来る

第図版

情報Ⅰ サブノート （ 情Ⅰ 7 10準拠）
B5変型判，164ページ，定価660円（本体600円＋税10％）
ISBN978-4-536-25494-6

2

３ 章 ２ 節 アルゴリズムとプログラム

理想

章 コンピュータとプログラミング

デジタルデータ編

情報デザインの作業手順

情報デザインの考えに基づいて，ものやサービスなどをつくりあげてい
くためには，一般的に次のような手順に従う。
▼図 1

情報の収集・分析と解決すべき問題点の分析がある。調査方法は，表 1 のように複数あり，調査目的に沿った方法で情
5

1

/

問題
（テーマ）
を選択・設定したら，利用者がどのような点で困っているのか，満足していない点はどこかなど，より具体的な情報を収集する必要

情報デザインを形にするうえでのおおまかな工程（プロセス）を理解しよう。

本書の無断転載・複製を禁じます。
CD22304

CD22297

思い描いた通りの結果になっているだろうか。
次の問題解決につながる振り返りをしているだろうか。

14
1 0100

情報デザイン

第710

できる限り，たくさん集めたいな！

サブノート

まとめ• 学校自体を知らない• 学校への行き方がわからない• 行事の日程を知らない

情Ⅰ

10 人になれば，試合形式の練習ができるぞ！

第４章﹃文化祭に人が来 な い﹄ を 問 題のテーマにしよ
う！

情報Ⅰ

考え方
ま，いいんじゃ
ない？

2人……

第３章

章 コミュニケーションと情報デザイン

令和３年（2021 年）5 月 14 日発行

評価

第２章

令和4年（2022年）度版 高等学校情報科 内容解説資料（別冊）116
日文 教授用資料
教科書 記号・番号
日文

3
あと2人いれば，ほかのチームと試合ができるぞ！

▼表 1 調査方法の種類

令和４年度用 情報カタログ

やろう，やろう！

よし，部員集めをするぞ！

教科書完全準拠
生徒用副教材

第解説編

収録予定のおもな内容

PDF

勧誘する場所も大事だよね

現状を調査・分析し，どのような問題があるか発見できているだろうか。
現状の問題を検討し，解決すべき問題を定義できているだ
ろうか。

令和４年
３月
発売予定

してご活用ください。
朱書編

きます。

3年生は受験勉強があるからムリだよ

試合したいなー

みんなが同じ理想の姿を思い描いているかな？

て，また定期テスト前の学習教材と▲出題画面

290 問の用語問題にアクセスで

第 節 問題解決の考え方の指導に関する解説をまとめた「解説編」。教科書のデー

教科書QR
コンテンツ
サンプルは
こちら

情報社会の問題解決

教科書の縮刷にポイント解説を加えた「朱書編」。
「情報」

ことで 34 本のアニメーションといます。

もっと部員がいたら……

▲

令和４年
３月
発売予定

教師用指導書教科書内の QR コードを読み取る

部員が足りません。
私たちはあなたを待って

第１章での学びが，さまざまな問題を解決するための力になる

教授資料▲「数の表現方法の変換10 進法と２進法」

バスケット好き集まれ！

考え方

メディアの特性・個人情報・SNSの活用など
身近な8つのテーマでウォーミングアップ！

▲大学入試センター「サンプル問題」（第２問の図 9）をもとに編集部が作成

教師用指導書
用語問題集

3○○高等学校バスケットボール部

で身につける（実習）3

教科書周辺サポート，生徒用副教材のご案内

アニメーション教材

ヨロシク

問題の発見・問題の定義
さびしいなあ＆3 のエリアに処理結果が表示されます

教科書 QR コンテンツ

5

次の■
♳～■
♵それぞれの場面で，どこに改善点があるか考えてみよう。
1

ポスターにはどんなことが書かれているとよいだろう？

2 の実行ボタンを押せば※ Google Colaboratory を使用するには，
Google アカウントが必要になります。

問題解決の改善点を考えてみよう

1

章

1

1 のエリアにコードを書いて第問題解決の考え方を

チラシはどんな
人に配ればよいのかな？

オー！

実践的なプログラミング実習

実習が選択できる情報デザイン

問題解決の手段として，第２章では JavaScript，第３章では Python の２つの言語を採用し，実践的なプログラミング

情報デザインでは，生徒の特性に合わせた実習ができるように，「ポスターの制作」と「Web サイトの制作」を選択で実習ができるようにしています。

きる構成にしています。

JavaScriptとPythonによるプログラミング実習「文化祭」をテーマにしたポスターの制作とWebサイトの制作

２章では章末実習として「Web サイトの制作」を選

２章の章末実習では，生徒に身近な「文化祭」をテーマにポスターのフッタ部に日付と現在時刻が表示される。

2 章 コミュニケーションと情報デザイン

択することができます。同実習では，動的なコンテンツ

5

トップページ（index.html）に表示する画像を一定時間ごとに切り替えるJavaScriptの利用

1

var num = 0;
-1; ③

8

var now = new Date(); ②3function LoadClock() { ③
var target = document.
getElementById("DateTimeDisp"); ④
var month = now.getMonth() + 1; ⑥

7

var date = now.getDate(); ⑦8var hour = now.getHours(); ⑧9var min = now.getMinutes(); ⑨1</div>

112

めて経験する生徒にとって最適な言語だといえます。ま70
111 0000３ 章 ２ 節 アルゴリズムとプログラム



6

▲

アプリケーションの開発①
例題 1（第 3 章 2 節，p.140）

考えてみよう究心に応えることもできます。

④グループが決まった人数をカウントするための変数 i を設定し，0 を代入して初期化する。

print('グループ1', group_list_1)
print('グループ2', group_list_2)
print('グループ3', group_list_3)⑧それぞれのグループのメンバーを出力する。

⑤iが20未満の間，10〜19行目のプログラムを繰り返す。
⑥ n に 1，2，
3 い ず れ か の 数 値 を 代 入 す る。random.
randint(a,b) は a 〜 b の範囲の整数をランダムに返す関数。
⑦⑥で取得した数値に対応するグループに空きがあれば，append() によって配列 group_list_1 〜 group_list_3の各末尾にメンバーを追加する。さらに，そのグループの空き人数を1減らし，カウンタ変数iの値を1増やす。

健康で免疫のない人の数：ken
発病した人の数：hatsu● 病気は免疫がない人が多いほど，または現在潜伏期間の人が多いほど，クチン接種を奨励するために，病気の感染モデルを作成し，シミュレーションを

いつの時点かがわかるように，ここでは，たとえば「ken(今日)」や「ken（昨日）」などのようにかっこで補足して
いるよ

章末実習

感染して広がる病気が流行しているが，ワクチンの接種で防ぐことができる。ワ

全体の人数：zen
感染し潜伏期間の人の数：sen
回復し免疫がついた人の数：men

新たに感染する人が増えると予想できる。よって，感染する
（今日潜伏

5

感染モデルのシミュレーシ�ン

期間となる）
人は，昨日の免疫がない人の数と，昨日の潜伏期間の人の第章 コンピュータとプログラミング

3

手順1

モデルの構成要素を考え，文章であらわそう

数の両方の積に比例すると仮定する。比例定数を a とおくと，モデルの構成要素は次のように考える。

10

hatsu( 今日 ) ＝ sen( 昨日 )期間に移る。
● 潜伏期間の人……健康で免疫のない人に感染させるが，まだ発病● 免疫がついた人（今日までに回復した人の合計）
は，昨日免疫があった人10していない人。翌日に発病する。

と昨日発病した人の和になる。
15● 発病した人……感染し発病しているが，人前には出ず，他人に感染人，免疫のある人を除いた数である。

● 回復した人……感染力がなくなり，免疫がついて発病もしなくなる。

手順4

翌日
20

➡

手順5

➡

sen

hatsu

men

zen（今日）モデルを使ってシミュレーションをしてみよう

1日

発病

➡

手順4の初期値をいろいろと変えて，シミュレーションを繰り返してみると，さまざまなことが見えてくるよ

ミュレーションを再度行ってみよう。
手順6

回復
免疫あり

モデルを修正し，シミュレーションをしてみよう

400 人がワクチンを接種し，免疫ができていると仮定して，手順 4 のシ

15
25

1日

潜伏期間

ken

全体の数が 1000 人，初日に潜伏期間の人が２人，発病している人が０
レーションをしてみよう。

モデルの構成要素の関係を明らかにしよう

健康
免疫なし

hatsu men

人，比例定数 a を 0.002 として，プログラミングで 30 日後までのシミュ

感染の流れを図であらわす。

一定割合
で感染

sen

ken( 今日 ) ＝ zen －（sen( 今日 ) ＋ hatsu( 今日 ) + men( 今日 )）➡
手順2zen（昨日）ken

a×ken×senmen( 今日 ) ＝ men( 昨日 ) + hatsu( 昨日 )● 今日の，健康で免疫のない人は，全体から潜伏期間の人，発病している

させないものとする。翌日に回復し免疫をつける。

前日

sen( 今日 ) ＝ a × ken( 昨日 ) × sen( 昨日 )● 今日発病する人は，昨日潜伏期間の人になる。

● 健康で免疫のない人……一定の割合で潜伏期間の人から感染し潜伏シミュレーションを検証してみよう

このシミュレーションでは，初期値によっては免疫がついた人が全体の人数以上になってしまう場合がある。その原因を考え，プログラムを修正してみよう。

158
9E
1001 1110

159
9F
1001 1111▲感染モデルのシミュレーション（第 3 章章末実習， p.158）“第 3 章コンピュータとプログラミング” の章末実習⑤

18

member_flag[n-1] = 1

19i = i + 1

20
21 slice_start = 0 ⑥

22 for i in range(3): ⑦
23
24

slice_end = slice_start + group_num[i] ⑧

グループに振り分ける方法②
if i == 0:group_work = member[slice_start : slice_end] ⑨26
27

group_list_1 = group_work

28
29
30
31
32

group_list_2 = group_work

1

れの方法を自動的に処理するプログラムを作成してみよう。

2①領域内で右寄せに配置（p.111 の CSS の 9〜 11 行目参照 )。
②JavaScriptで設定したID “DateTimeDisp”を指定。

<div id="DateTimeDisp"></div> ②</div>⑪次のグループに移るため，slice_end を次の開始位置に
指定する。
112

ただし，同じ数が２回以上出てくることが考えられるため，並べた数を

35 print('グループ3', group_list_3)

5

⑦
⑧

6人

7 人 141⑦ 3000 ミリ秒（3 秒）ごとに関数を実行してイメージを切り替え②
pic_srcタグにという名前の配列をつくり，３つの画像ファイルを① <img>
top-pic という ID を設定し，1 枚目の画像を表
pic_src[0]，pic_src[1]，pic_src[2]に代入する
（配列は
示。

⑧
⑥ num
num の値を１増やす。
が 2 と等しいなら，num に 0 を代入。

p.138 参照）。

②表示を切り替える画像ファイルの名前を順番に pic_src に代③入する。
num に 0 を代入。

(+1) 番目に入っているファイル名を入れる。

やってみよう上記のプログラムを記述すると，次のように，一定時間ごとにトップページの画像が切り替わっていく。

方法①と方法②それぞれ の プ ロ グ ラ ム を， グ
ループの数や人数を変えて実行してみよう。
画像 1 枚目

画像 2 枚目

グループの人数は「１」が６人 ，「２」および「３」が 7 人の計 20 人と決まっているため，それぞれのグループの残りの空き人数を記録しておき，与えた番号のグループの空きが０の場合は，再度１から３までの整数

group_list_1 = []5group_list_2 = []6group_list_3 = []7

member = [] ②

8member_flag = [] ③

113
71
111 0001

11

member_flag.append(0)lot_num = [6, 7, 7] ②
group_list_1 = []group_list_2 = []③group_list_3 = []②各グループの空き人数を格納した配列 lot_num を用意する。
③メンバーの番号を格納するための空の配列を設定する。

i = 0 ④
while i < 20: ⑤
n = random.randint(1, 3) ⑥
if lot_num[n-1] > 0:
if n == 1:
group_list_1.append(i+1)
elif n == 2:group_list_2.append(i+1)⑦
else:group_list_3.append(i+1)
lot_num[n-1] = lot_num[n-1] - 1
i = i + 1⑧

④グループが決まった人数をカウントするための変数 i を設定し，0 を代入して初期化する。
⑤iが20未満の間，10〜19行目のプログラムを繰り返す。
⑥ n に 1，2，3 い ず れ か の 数 値 を 代 入 す る。random.
randint(a,b) は a 〜 b の範囲の整数をランダムに返す関数。

2⑦⑥で取得した数値に対応するグループに空きがあれば，append() によって配列 group_list_1 〜 group_list_3の各末尾にメンバーを追加する。さらに，そのグループの空き人数を1減らし，カウンタ変数iの値を1増やす。
⑧それぞれのグループのメンバーを出力する。

140

n = random.randint(1, 20)
if member_flag[n-1] == 0:17member.append(n)18member_flag[n-1] = 1

19i = i + 1

下旬までのそれぞれの都市における平均気温をあらわし，表２は各店舗の秋冬コートの売り上げをあらわしている。次の問いに答

25

if i == 0:group_list_3 = group_work
slice_start = slice_end ⑪

34 print('グループ2', group_list_2)
35 print('グループ3', group_list_3)

行目で何を行っているか説明しなさい。

107

if data[i] == atai:

8

print(" 見つかりました ")

9

break

表2

都市 X

都市 Y

26.3

20.7

各店舗の秋冬コートの売り上げ

各店舗の秋冬コートの売り上げ（万円）
9 月上旬

店舗 X ①

店舗 X ②

0

0

9 月中旬

22.0

19.1

9 月中旬

0

0

9 月下旬

20.2

16.8

9 月下旬

0

0

店舗 X ③

店舗 X ④00

店舗 Y ①
0

店舗 Y ②

店舗 Y ③

0

0

0

4

3

0

0

22

30

10 月上旬22.5

15.4

10 月上旬

0

0

0

0

64

44

10 月中旬18.1

12.3

10 月中旬

4

0

12

0

122

89

97

11.5

10 月下旬

20

31

8

8

203

188

163

10.0

11 月上旬

32

30

24

33

157

143

151

11 月中旬13.9

6.6

11 月中旬

98

59

64

49

74

39

42

11 月下旬11.8

2.5

11 月下旬

190

160

183

129

38

28

33

12 月上旬11.5

0.1

12 月上旬

135

140

108

161

16

22

19

12 月中旬6.6-1.4

12 月中旬

100

87

48

76

20

14

18

12 月下旬7.0-1.8

12 月下旬

92

88

65

41

37

21

22

から選びなさい。

表示するプログラムを作成した。次の問いに答えなさい。

（a） 店舗 X ①の売り上げの推移（b） 11 月下旬の各店舗の売り上げの割合
10 （c） 各店舗の売り上げの割合の変化

10 for i in range(0, 9, 1):
11

for j in range(i + 1, 10, 1):12

if data[i] > data[j]:13tmp = data[i]14data[i] = data[j]15data[j] = tmp（d） 平均気温と秋冬コートの売り上げの関係（e） 各店舗の売り上げの最大値，最小値，中央値の比較

20

［選択肢］
15

ア 円グラフイ 散布図

ウ 折れ線グラフ

エ 棒グラフオ 帯グラフカ 箱ひげ図（a） 12 ～ 15 行目で何を行っているか説明しなさい。
（b） i = 0 のとき，11 行目の j はどのような値をとりながら繰り返し処（２）平均気温と秋冬コートの売り上げの関係をグラフにあらわしなさい。

25

理を行うか，答えなさい。
10 次のページにある表１は，あるコンビニエンスストアでの 9 月 8 日（c） このプログラムでは，どのようなアルゴリズムで並べ替えを行っから 23 日までの来客数と弁当類の売上個数をあらわしたものであているか説明しなさい。
（４）配列の要素数を 100 個とし，各要素が１～ 999 までのランダムな⑥配列 member に入れた 20 個の数を 3 つのグループに切り分けるため，各グループの先頭を示す値（配列の添字）を slice_start とし，初期値として 0 を代入する。
⑦変数 i が 0 から 2 までの間，繰り返す。

⑩

る「テスト問題」を収録する予定です。
⑧切り分けるグループの最後を slice_end で定義する。

⑨ 配 列 member か ら 添 字 slice_start 〜 slice_end−１ までの部分を抜き出し，配列 group_work に入れる。

章末問題の QR コードからはスマートフォンやタブレット

整数になるように（１）のプログラムを修正しなさい。

20

く異なることから，平日と休日にデータを分けて，回帰分析を行い，来客数と弁当類の売上個数の関係を示す図１の結果を得た。

30

次の問いに答えなさい。
（５）配列dataの要素数は，len(data)で求めることができる。
（２）（３）（１）平日のデータについて回帰分析を行い，回帰直線の式を y=ax+b ののプログラムを配列の要素数がいくつになっても修正する必要が形であらわしなさい。ただし a，b の値は小数第２位を四捨五入し，ないように変更しなさい。
25

小数第１位まで求めなさい。

212
D4
1101 0100▲巻末問題（p.212）⑩ 配 列 group_work に 格 納 し た 内 容 を group_list_1 〜group_list_3 までの各グループに格納する。

から繰り返し解くことができる「用語問題集」にアクセスでき，楽しみながら「情報の語彙力」を高めることができます。
⑪次のグループに移るため，slice_end を次の開始位置に
指定する。

8D
1000 1101

大学入学共通テストのサンプル問題では，第 2 問の問 1，
はじめてプログラミングを学習する生徒のために，ソ

0
51

17.0
16.2

141

8C
1000 1100

3
12

10 月下旬11 月上旬（１）次の（a）～（e）を調べるのに適切なグラフを，下の選択肢のア～カ
15

16 print(data)

また，教師用指導書には，先生が編集してお使いいただけ

group_list_1 = group_workgroup_list_2 = group_work

9 月上旬

（２）
（１）のプログラムに続けて，下のプログラムを記述した。５～９

5 atai = 70

都市 X，Y の平均気温

各期の平均気温（℃）

data.append(random.randint(1, 99))

る。A さんは平日と休日（土日と祝日）で来客数や売上個数が大きgroup_work = member[slice_start : slice_end] ⑨

else:

5

（３）配列 data の中の数値を小さい順に並べ替え，最後に配列の中身をおり，定期テスト対策ほか入試対策にもご利用いただけます。

24

elif i == 1:

えなさい。
表１

6 for i in range(10):

各章末には「章末問題」，巻末には「巻末問題」を設けてslice_end = slice_start + group_num[i] ⑧33 print('グループ1', group_list_1)

break 文は，繰り返し処理
を途中で終了することがで
きる。

できます。

23

32

補足説明

⑤抽出した数がすでに並べられていないかを判定するため，
16 行目で member_flag の対応する要素を調べる。まだ並べられていない場合（member_flag の値が 0）は，
17 行目で配列 member に抽出した数を追加し，さらに18 行目で配列 member_flag の値を並べたことを示す「1」に変える。

22 for i in range(3): ⑦31

4

科書では，大学入学共通テストにもしっかりと備えることが21 slice_start = 0 ⑥

30

に３店舗
（Y ①〜 Y ③）を展開している。表１は９月上旬から 12 月

5ごとに変数値を増やしながら繰り返す。初期値と増分を省略した場合は，初期値を 0，増分を 1 として動作する。

⑤

あるアパレルメーカーでは，都市 X に４店舗（X ①〜 X ④），都市 Y

9か。また，要素として格納されるのはどのような値か答えなさい。

令和６年度以降の大学入学共通テストには「情報Ⅰ」が出

20

29

次の問いに答えなさい。

3 for i in range(10):

題教科・科目として追加される見通しです。
「情報Ⅰ」の教16288（１）下のプログラムを実行したときの配列 data の要素の個数はいくつ

2 data = []④ 変 数 i を 0 か ら 19 ま で １ ず つ 変 化 さ せ な が ら，member_flag に 初 期 値 と し て 20 個 の 0 を 格 納 す る。
range 関数は一般に for 文とともに用いて，
 for変数inrange( 初期値 ,終了値 ,増分）: 実行内容のようにあらわし，初期値≦変数 < 終了値の範囲で増分

④

15

27

巻末問題

1 import random

14 while i < 20:

26

105
69
110 1001

ザインの考え方をもとに，生徒が課題に応じて探究的な学習ができるよ③抽出した数がすでに並べられていないかをチェックする
ための配列 member_flag を用意する。

12①乱数（p.154 参照）を発生させるためのライブラリを読み込む。

印刷したポスターをもとに，微調整を繰り返して，完成度を高めていく。

う工夫しました。

②抽出した数を並べて格納するための配列 member を用意する。

9
10 for i in range(20):

CMYの色域x

人の可視領域を xy であらわしたグラフ（xy 色度図）「JavaScript の活用」まで段階的に実習を進めることができます。情報デ3

大学入学共通テストへの対応

13 i = 0

import random ①

print('グループ1', group_list_1)
print('グループ2', group_list_2)
print('グループ3', group_list_3)

group_num = [6, 7, 7] ①

4

修正

本ページの作成（HTML と CSS）」，
「メニューとコンテンツの作成」，

画像 3 枚目

3①各グループの人数を格納した配列 group_num を用意する。

import random

35

クリックするとト
リミングの画面にWeb サイトの制作では「Web サイトの構造とレイアウト」から，「基

JavaScriptを<head>タグ内と<body>タグ内に記述する方法をここでは紹介しているけれど，スタイルシート（CSS）と 同 様 に，HTML 文
書内に書かず，外部ファイ
ルにしておく方法もあるよ▲ JavaScript の活用（第 2 章技法 5，p.112）2

10図の色合いや明るさなどを調整できる⑧ top-pic と い う ID を 持 つ タ グ の src 属 性 に pic_src の num⑥
top-pic と い う ID関数を定義。
を 持 つ タ グ の src 属 性 に pic_src の num⑤ slideshow_timer
番目に入っているファイル名を入れる。

グループに振り分ける方法②

１から 20 までの番号を持つ生徒１人１人に対して，順番に，１から３クリックすると表示されるメニューから選ぶ⑨に０を代入する。
⑦ num
num の値が３なら，numが 2 と等しくないなら，num
を 1 増やす。

⑨ 3000 ミリ秒（3 秒）ごとに関数を実行してイメージを切り替える。

⑤
slideshow_timer
関数を定義。関数を実行。
④次に定義する
slideshow_timer

前から順番に 6 人，7 人，7 人に分ける。

1

RGBの色域y

使用するプリンタによって，画面は異なる。

る。

④次に定義する
slideshow_timer 関数を実行。
③ num に－ 1 を代入。

条件●できるだけ各グループの人数を均一にする。

グループに振り分ける方法①

25▲ポスターの制作（2 章技法 1，p.104）}① <img>
タグに top-pic という ID を設定し，1 枚目の画像を表
21</script>

度抽出し直すことにする。



色と，実際に印刷してみた色とが異なる場合がある。

104

}

7人

8D
1000 1101

グも「図の形式」タブを使う。

の再現領域
（色域）
が少し異なるため，画面上に表示されている

68
110 1000} document.getElementById("top-pic").src = pic_src[num]; ⑧70
111 0000が重複していた場合は，再5① HTML 読 み 込 み 完 了 時 に 上 で 定 義 し た
LoadClock 関数を呼び出す。

<body onload="LoadClock();"> ①

くり，それぞれのメンバーを出力する。
3

で，プリンタは CMY で色を表現する。RGB と CMY では，色プリンタの設定画面⑨示。

⑩ now から秒を取得し，sec に代入。

<body>タグ内，フッタ部への追記

num
num++;= 0;⑦

20⑨ now から分を取得し，min に代入。

⑩ 配 列 group_work に 格 納 し た 内 容 を group_list_1 〜
1 <div class="right"> ①
group_list_3 までの各グループに格納する。

if
else(num{ == 3){19⑧ now から時間を取得し，hour に代入。

⑨ 配 列 member か ら 添 字 slice_start 〜 slice_end−１ までの部分を抜き出し，配列 group_work に入れる。

slice_start = slice_end ⑪

num
} ++;

13
14

や明るさなどの調整，トリミン

印刷物の確認ら，ポスターのでき栄えを確認する。

の位置関係を選択する。色合い

18 </script>
setTimeout("slideshow_timer()", 3000); ⑨⑦ now から日にちを取得し，date に代入。

group_list_3 = group_work
べたうえで，先頭からグループの人数と等しい6，7，7で区切って組をつ
else:

一般に，ディスプレイは RGB

は図の近く，右下に配置

や色，印刷品質などを適切に設定する。印刷した15示されるメニューから文字列と17⑥ now から月を取得。getMonth() の値は実際より１少ない数になるため１を加え，month に代入。

⑧切り分けるグループの最後を
slice_end で定義する。
<body>タグへの追記

setTimeout(slideshow_timer,
num = 0;3000);⑥

12

16⑤ now から年を４桁の西暦で取得し，year というオブジ
ェクトに代入。

⑦変数 i が 0 から 2 までの間，繰り返す。

document.getElementById("top-pic").src
if (num == 2) {= pic_src[num]; ⑥1115target というオブジェクトを作成。

⑪ innerHTML はピリオドの前にある要素の中身を変更する。ここでは target にブラウザで表示する内容を指定している。＋は連結を意味し，半角ダブルクォーテーショ
ンマーク（"）で囲まれた文字は文字列としてそのまま表示されるため，結果は「○年○月○日○：○：○」となる。

function slideshow_timer() { ⑤10④ DateTimeDisp と い う ID で 指 定 さ れ た 場 所 に 入 れ る

それぞれの生徒を示す１から
20 までの整数を無作為に抽出し１列に並⑩

elif i == 1:

slideshow_timer(); ④9③ LoadClock という関数を定義。

JavaScript3の使用を宣言。
⑥配列 member に入れた 20①個の数をつのグループに切り分けるため，各グループの先頭を示す値（配列の添字）②現在の Date（日付・時刻）を取り出す now というオブジェクを slice_start とし，初期値として0 を代入する。
トを作成。

記録しておき，抽出した数

ソースコードが見やすく
理解しやすいレイアウト「1」が6人，
「2」
が7人，
「3」 が
7人となるようにするんだね

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23

member.append(n)var date = now.getDate(); ⑦var hour = now.getHours(); ⑧

９月 18 日（日）10：00 ～ 15：00

から，「プリンターのプロパティ」で用紙の種類「図の形式」タブ

折り返し」をクリックすると表

5

巻末問題

5

17

7
8

var num = 0;
-1; ③

8

Web ページのフッタ部に現在の日時を表示する⑤抽出した数がすでに並べられていないかを判定するため，
9
var min = now.getMinutes(); ⑨16 行目で member_flag の対応する要素を調べる。ま10
var sec = now.getSeconds(); ⑩11target.innerHTML= yearだ並べられていない場合（member_flagの値が 0）
は，+ "年" + month + "月"+ date + "日" + hour + ":" + min + ":" + sec; ⑪
17 行目で配列 member に抽出した数を追加し，さらに
12}
18 行目で配列 member_flag の値を並べたことを示す
13 </script>「1」に変える。

【一般公開】

９月 17 日（土）
10：00 ～ 16：00

巻末問題

章 コンピュータとプログラミング◇ テーマ

if member_flag[n-1] == 0:

33 print('グループ1', group_list_1)

140までの整数を無作為に与えていくことにする。



まず，モデルの構成要素を次のような変数であらわす。

章末実習 感染モデルのシミュレーション行うことで，ワクチンを接種する場合と接種しない場合の違いを明らかにする。

モデルの構成要素の関係を式であらわそう

n = random.randint(1, 20)

16

34 print('グループ2', group_list_2)

8C
1000 1100

グループに振り分ける方法①
手順3

113
71
111 0001

1525を与え直すことにする。
3 章 コンピュータとプログラミング

14 while i < 20:●どのグループに入るかはランダムに決まるようにする。
2④

var pic_src = new Array("images/top_school.jpg", "images/top_image1.jpg", "images/top_image2.jpg"); ②56③抽出した数がすでに並べられていないかをチェックする
ための配列 member_flag を用意する。

member_flag.append(0)47④ 変 数 i を 0 か ら 19 ま で<head>タグ内への追記
１ ず つ 変 化 さ せ な が ら，member_flag に 初 期 値 と1 し<script>て 20 個①の 0 を 格 納 す る。
range 関数は一般に for 文とともに用いて，
2
var now = new Date(); ②3 ,終了値
function
LoadClock(){③
 for変数inrange( 初期値
,増分）
:
4
var target = document.
 実行内容④のようにあらわし，初期値≦変数getElementById("DateTimeDisp");< 終了値の範囲で増分
5var year = now.getFullYear(); ⑤ごとに変数値を増やしながら繰り返す。初期値と増分を6
var month = now.getMonth() + 1; ⑥
省略した場合は，初期値を 0，増分を 1 として動作する。

画像のキャプション（説明）

日時 ＊駐車場はありませんので、公共の交通機関を利用してご来場ください。
【中学生・保護者の方のみ】印刷をする前に，「ファイル」タブの「印刷」「図の形式」タブの「文字列の<script>

節 アルゴリズムとプログラム

第身近なテーマで実感をもって取り組むことができる

member_flag = [] ③

12

②各グループの空き人数を格納した配列
lot_num を用意3する。

20 人の生徒を 3 グループに分ける方法として，次の①と②を考えた。それぞ

1

3

3

member = [] ②85きに用いる。

2◆ディスプレイとプリンタの色の違い

第グループに振り分ける
方法①と方法②をフローチャートで表現してみよう。

group_list_3 = []7❶

図の位置を調整したいときには，

2
3

4

20

ドラッグ

<img id="top-pic" src="images/top_school.jpg" width="400" height="300" alt="文化祭のようす"> ①

1

JavaScript は，Web ページ上で利用者の操作に合わせて表示を変えたり，現を加えることができる。

〇のマークをドラッグして縮小<body>タグ内，コンテンツ部への追記

ラムを記述することで，Web②抽出した数を並べて格納するための配列
member を用
ページに動きや対話性のある表
刻々と表示を変化させたりするような動的なコンテンツ表示を加えたいと意する。

13 i = 0③メンバーの番号を格納するための空の配列を設定する。

⑧

6

11

画像 3 枚目

i = 0 ④
while i < 20: ⑤
n = random.randint(1, 3) ⑥
if lot_num[n-1] > 0:
if n == 1:
group_list_1.append(i+1)
elif n == 2:group_list_2.append(i+1)⑦
else:group_list_3.append(i+1)
lot_num[n-1] = lot_num[n-1] - 1
i = i + 1

クラスを３つのグループに分けるプログラムを作成しよう。

group_list_2 = []さも含めて，用途に合った用紙を使う必要がある。

して図の右上に配置
大きなアーチがお出むかえ！

情報高等学校は、地域に開かれた学校を目指しています。地域のみなさんの、多数のご来場をお待ちしております。

図の大きさは図の周辺に表示されるハンドル（〇のマーク）をドラッグして調整する。

秒後などの豊富なライブラリに触れることができ，生徒の探3

5

マット紙などもある。用紙の厚

催し物が
いっぱい
！

を太くして強調

図は大きさや位置を調整後，色合いや明るさなどの秒後点が多いことも利点のひとつです。機械学習や統計処理

lot_num = [6, 7, 7] ②
group_list_1 = []group_list_2 = []③group_list_3 = []group_num = [6, 7, 7] ①
group_list_1 = []10 for i in range(20):①乱数（p.154 参照）を発生させるためのライブラリを読み込む。

アプリケーションの開発①▲ JavaScript の活用（第 2 章技法 5，p.112）

た，大学入学共通テストに用いられる疑似言語との共通

画像 2 枚目

import random ①

HTML内にJavaScriptのプログ

3

9

秒後

3

<div id="DateTimeDisp"></div> ②

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23

秒後

Python のコードはシンプルで，プログラミングをはじ2



①領域内で右寄せに配置（p.111 の CSS の 9〜 11 行目参照 )。
②JavaScriptで設定したID “DateTimeDisp”を指定。

<div class="right"> ①10⑥
top-pic と い う ID関数を定義。
を 持 つ タ グ の src 属 性 に pic_src の num⑤ slideshow_timer
グループの人数は「１」が６人 ，「２」および「３」がJavaScriptを<head>タグ内
7 人の計 20 人
番目に入っているファイル名を入れる。
「1」が6人，「2」と<body>タグ内に記述する
が7人，
「3」 が
と決まっているため，それぞれのグループの残りの空き人数を記録してお方法をここでは紹介してい7人となるようるけれど，スタイルシートにするんだね上記のプログラムを記述すると，次のように，一定時間ごとにトップき，与えた番号のグループの空きが０の場合は，再度１から３までの整数（CSS）と 同 様 に，HTML 文
書内に書かず，外部ファイ
ページの画像が切り替わっていく。
ルにしておく方法もあるよ
を与え直すことにする。
画像 1 枚目
グループに振り分ける方法①<body>タグ内，フッタ部への追記

プログラミング言語のひとつ。

4

を問わない普通紙（コピー用紙）や写真の出力に適した光沢紙，に配置

コンピュータや情報通信ネットワークを駆使してコンサートや映画上映、ダンスの発表会などもあります。

調整も行う。さらに，必要に応じてトリミングをする。

トップページ（index.html）に表示する画像を一定時間ごとに切り替える

Java Scrip tの活用て楽しみながら実践的な学習を進めることができます。

る。

までの整数を無作為に与えていくことにする。

5①各グループの人数を格納した配列 group_num を用意す JavaScriptの利用❶ JavaScript
る。
HTML では，基本的には静的な（動きのない）Web ページを記述する。

2⑨ 3000 ミリ秒（3 秒）ごとに関数を実行してイメージを切り替え
１から 20 までの番号を持つ生徒１人１人に対して，順番に，１から３⑤
slideshow_timer
関数を定義。関数を実行。
④次に定義する
slideshow_timer① HTML 読 み 込 み 完 了 時 に 上 で 定 義 し た
LoadClock 関数を呼び出す。

<body onload="LoadClock();"> ①

グループに振り分ける方法①④次に定義する
slideshow_timer 関数を実行。
③ num に－ 1 を代入。

3

第 20 回文化祭
制作した数々の展示物とデジタルコンテンツをお楽しみください。

ている。重要な部分は文字プリンタで印刷するための用紙

プリンタの種類に合わせたものがある。また，プリンタの種類
き く， 太 く し て 左 右 中 央

情報高等学校間を広げて読みやすくし◆印刷用紙の種類には，インクジェットプリンタ
用，レーザプリンタ用のようにタイトルなので文字を大15挿入した図の調整

フッタ部に日付と現在時刻が表示される。

JavaScriptの活用
2

技法

import random

行間を変更するときは，「行と段落の間隔」
ボタンをクリックする

仕上げに，画像と文字の配置などを調整する

ミ ン グ し て， タ イ ト ル の1

1

文字のフォントやサイズを変えられる

文 字 サ イ ズ を 調 整 後， 行

前から順番に 6 人，7 人，7 人に分ける。



選択する。

変えられる

7人

度抽出し直すことにする。

⑧ top-pic と い う ID を 持 つ タ グ の src 属 性 に pic_src の num(+1) 番目に入っているファイル名を入れる。

されるメニューから

文字の色を左から，太字，斜体，下線の設定

図は適度なサイズにトリ

2 章 コミュニケーションと情報デザイン

グループに振り分ける方法②

るメニューから色をサイズを選択する。

技法<body>タグへの追記

2

7人

ックすると表示されクリックする。表示10

キャッチコピーは斜めにが重複していた場合は，再●どのグループに入るかはランダムに決まるようにする。

②表示を切り替える画像ファイルの名前を順番に pic_src に代③入する。
num に 0 を代入。

6人

「ページの色」をクリ

タブの「サイズ」を「デザイン」タブの「ページの色」

下，左右中央に配置

章 コミュニケーションと情報デザイン②現在の Date（日付・時刻）を取り出す now というオブジェク
トを作成。

記録しておき，抽出した数

例題 1

第

⑪ innerHTML はピリオドの前にある要素の中身を変更する。ここでは target にブラウザで表示する内容を指定している。＋は連結を意味し，半角ダブルクォーテーショ
ンマーク（"）で囲まれた文字は文字列としてそのまま表示されるため，結果は「○年○月○日○：○：○」となる。

ただし，同じ数が２回以上出てくることが考えられるため，並べた数を5

pic_src[0]，pic_src[1]，pic_src[2]に代入する（配列は
条件●できるだけ各グループの人数を均一にする。
示。
p.138 参照）。
⑨に０を代入する。
⑦ num
num の値が３なら，numが 2 と等しくないなら，num
を 1 増やす。

1

章 コンピュータとプログラミング① JavaScript の使用を宣言。

くり，それぞれのメンバーを出力する。

背景色を決める「デザイン」タブのェアで「レイアウト」

プで行える。
「ホーム」タブポスターのサイズを決める
文書作成ソフトウ「レイアウト」タブの
「サイズ」

1

サイズ，装飾は「フォント」グループで，行や段落の編集は「段落」グルー
10

場合は，デジタル化されたもの（画像データ）を用意しておく。

方法①と方法②それぞれ の プ ロ グ ラ ム を， グ
ループの数や人数を変えて実行してみよう。

べたうえで，先頭からグループの人数と等しい6，7，7で区切って組をつ

タグに top-pic というID を設定し，1枚目の画像を表⑦ 3000 ミリ秒（3 秒）ごとに関数を実行してイメージを切り替え
20 人の生徒を
3 グループに分ける方法として，次の①と②を考えた。それぞ
21り<img></script>
グ ル ー プ に 振①
分
ける
示。
る。
5
方法①と方法②
をフロれの方法を自動的に処理するプログラムを作成してみよう。
ーチャートで表現して②
pic_srcタグにという名前の配列をつくり，３つの画像ファイルを⑧① <img>
top-pic という ID を設定し，1 枚目の画像を表⑥ num
num の値を１増やす。
が 2 と等しいなら，num に 0 を代入。
みよう。

3

⑩ now から秒を取得し，sec に代入。

⑨

文字のフォント，サイズ，装飾，行間を設定する
文字に対するさまざまな編集は，「ホーム」タブで行う。文字のフォント，

5

ポスターを文書作成ソフトウェアなどで制作する場合，ポスターのサ
イズや背景色などを最初に設定しておく。写真やグラフなどの図を使う

やってみようそれぞれの生徒を示す１から 20 までの整数を無作為に抽出し１列に並} document.getElementById("top-pic").src = pic_src[num]; ⑧20

第⑨ now から分を取得し，min に代入。

グループに振り分ける方法②

クラスを３つのグループに分けるプログラムを作成しよう。
}

19}
考えてみよう⑧ now から時間を取得し，hour に代入。

}

15

わせて，アレンジして活用いただくことができます。

節 アルゴリズムとプログラム

target.innerHTML = year + "年" + month + "月"

num++;= 0;⑦num

18 </script>
setTimeout("slideshow_timer()", 3000); ⑨⑦ now から日にちを取得し，date に代入。

var sec = now.getSeconds(); ⑩

11

14

17

⑥ now から月を取得。getMonth() の値は実際より１少ない数になるため１を加え，month に代入。

10

⑦
⑧

アプリケーションの開発①
num
} ++;

if
else(num{ == 3){

テキストボックスを回転

をドラッグすると回転する。

背景とイラストの編集

2

2

第

6

1

setTimeout(slideshow_timer,
num = 0;3000);
⑥

12
13

16

⑤ now から年を４桁の西暦で取得し，year というオブジ
ェクトに代入。

var year = now.getFullYear(); ⑤13 </script>

ます。同実習では，「アプリケーションの開発」を通し

6④ DateTimeDisp と い う ID で 指 定 さ れ た 場 所 に 入 れ る
target というオブジェクトを作成。

+ date + "日" + hour + ":" + min + ":" + sec; ⑪３章のプログラミング学習では Python を活用していdocument.getElementById("top-pic").src= pic_src[num]; ⑥if (num == 2) {

10
11

2

12

function slideshow_timer() { ⑤9③ LoadClock という関数を定義。

<script> ①

4slideshow_timer(); ④7を記載しています。汎用的な手順を示していますので，学校の環境に合5

３ 章 ２ 節 アルゴリズムとプログラム<head>タグ内への追記
1<script>

6

Web ページのフッタ部に現在の日時を表示する

5に，スムーズに接続することができます。

var pic_src = new Array("images/top_school.jpg", "images/top_image1.jpg", "images/top_image2.jpg"); ②5

きに用いる。

文字の向きを変更する
テキストボックスは， のマーク

5

ポスター全体の構成やイメージを，ラフスケッチとしてざっと紙に描

ポスターの制作

授業に取り入れることで，次章で学ぶプログラミング

4

3

5

Java Scrip tの活用

章 コミュニケーションと情報デザイン

ーディングによって理解することができます。同技法を2❶刻々と表示を変化させたりするような動的なコンテンツ表示を加えたいと

2<img id="top-pic" src="images/top_school.jpg" width="400" height="300" alt="文化祭のようす"> ①

1

HTML では，基本的には静的な（動きのない）Web ページを記述する。
JavaScript は，Web ページ上で利用者の操作に合わせて表示を変えたり，技法

第プログラムによってもたらされていることを，簡単なコ

プログラミング言語のひとつ。
HTML内にJavaScriptのプログ
ラムを記述することで，Webページに動きや対話性のある表
現を加えることができる。

を調整する。

いてあらわす。
第 章 コミュニケーションと情報デザイン❶ JavaScript

ポスターのタイトルやキャッチコピー，説明文などの見た目のバランス

ポスターの制作

1 ラフを描くポスターの制作では，文書作成ソフト（Word）を使用した制作手順<body>タグ内，コンテンツ部への追記ており，生徒にとって身近な Web サイトの利便性が，1

技法

を JavaScript によって作成する「技法」ページを用意し

技法

文字の調整

3

2 章 コミュニケーションと情報デザイン

制作あるいは Web サイトの制作に取り組みます。

JavaScriptの活用

技法

問 3 でプログラミングの問題が出題されています。
ここで使用されているプログラミング言語は，Python とでは，今日的な題材として “感染モデルのシミュレー

ースコードを見やすく表記しています。

ション” を取り扱っています。身近なテーマゆえに，また，ソースコードにはひとつひとつ丁寧に解説を加よく似ているため，教科書で Python に触れておくことは，実感をもってプログラミング学習に取り組むことがでえ，生徒がストレスなく学習できるように工夫してい大きなアドバンテージになるはずです。

きます。

ます。

▲大学入試センター「サンプル問題」（第２問の図３）をもとに編集部が作成

213
D51101 0101