情報Ⅰ · プログラムの実行
プログラムを、1行ずつ。
「次へ」を押して、変数の変化を追いかけよう。
共通テスト「情報Ⅰ」の表記で、処理の流れを確かめられます。
01順次処理
2つの値の合計
値を入れて、計算して、表示する。基本の流れを確かめよう。
(1)
x = 3(2)
y = 4(3)
goukei = x + y(4)
表示する("合計は",goukei,"です。")1行ずつ実行
02順次処理
値の入れ替え
一時的な変数 tmp を使って、x と y の値を入れ替えよう。
(1)
x = 1(2)
y = 2(3)
tmp = x(4)
x = y(5)
y = tmp(6)
表示する("現在のxの値は", x, "です。")(7)
表示する("現在のyの値は", y, "です。")1行ずつ実行
03配列
配列の要素を入れ替える
Data[0] と Data[2] を交換。要素番号と値を見比べよう。
(1)
Data = [3, 5, 9](2)
tmp = Data[0](3)
Data[0] = Data[2](4)
Data[2] = tmp(5)
表示する("現在のDataは", Data)1行ずつ実行
04条件分岐・入力
年齢で分岐する
年齢を入力し、18歳以上かどうかで表示を変えよう。
(1)
age = 【外部からの入力】(2)
もし age >= 18 ならば:(3)
| 表示する("成人です。")(4)
そうでなければ:(5)
⎿ 表示する("未成年です。")1行ずつ実行
05条件分岐・入力
倍数を判定する
余りを調べて、6・2・3の倍数を順に判定しよう。
(1)
number = 【外部からの入力】(2)
もし number % 6 == 0 ならば:(3)
| 表示する("6の倍数")(4)
そうでなくもし number % 2 == 0 ならば:(5)
| 表示する("2の倍数だが3の倍数でない")(6)
そうでなくもし number % 3 == 0 ならば:(7)
| 表示する("3の倍数だが2の倍数でない")(8)
そうでなければ:(9)
⎿ 表示する("2の倍数でも3の倍数でもない")1行ずつ実行
06繰り返し
回数を決めた繰り返し
i を順に増やしながら、sum に値を足していこう。
(1)
sum = 0(2)
i を 1 から 5 まで 1 ずつ増やしながら繰り返す:(3)
| sum = sum + i(4)
⎿ 表示する("現在の合計は", sum)(5)
表示する("最終的な合計は", sum)1行ずつ実行
07配列・繰り返し
配列の平均点を求める
配列の要素をすべて足して、要素数で割ろう。
(1)
Tokuten = [5, 7, 8, 4](2)
sum = 0(3)
i を 0 から 要素数(Tokuten) - 1 まで 1 ずつ増やしながら繰り返す(4)
⎿ sum = sum + Tokuten[i](5)
average = sum / 要素数(Tokuten)(6)
表示する("平均点は", average, "点です")1行ずつ実行
08繰り返し・分岐
3の倍数を数える
繰り返しの中で条件を確かめ、該当する数だけ数えよう。
(1)
count = 0(2)
i を 1 から 10 まで 1 ずつ増やしながら繰り返す:(3)
| もし i % 3 == 0 ならば:(4)
⎿ ⎿ count = count + 1(5)
表示する("3の倍数の個数は", count)1行ずつ実行
09配列・分岐
配列の最大値を探す
要素を順に比べ、これまでの最大値を更新しよう。
(1)
Data = [54, 23, 34, 67, 49](2)
max_value = Data[0](3)
i を 1 から 要素数(Data) - 1 まで 1 ずつ増やしながら繰り返す:(4)
| もし Data[i] > max_value ならば:(5)
⎿ ⎿ max_value = Data[i](6)
表示する("配列Data内の最大の数は", max_value)1行ずつ実行
10二次元配列
二重ループで九九を作る
i と j の組み合わせを使い、表の各マスを埋めよう。
(1)
i を 1 から 5 まで 1 ずつ増やしながら繰り返す:(2)
| j を 1 から 3 まで 1 ずつ増やしながら繰り返す:(3)
⎿ ⎿ Kuku[i, j] = i * j(4)
表示する(Kuku)1行ずつ実行
11条件による繰り返し
合計が20以上になるまで
1、2、3…と足し、合計の条件を満たす間だけ繰り返そう。
(1)
sum = 0, i = 0(2)
sum < 20 の間繰り返す:(3)
| i = i + 1(4)
| sum = sum + i(5)
⎿ 表示する("現在のsumは", sum ,", iは", i)(6)
表示する("sumが20を超えるのはiが", i, "のときです")1行ずつ実行
12アルゴリズム・入力
バブルソート
隣り合う要素を比べて交換し、配列を小さい順に並べよう。
(1)
Array = 【外部からの入力】(2)
i を 0 から 要素数(Array) - 2 まで 1 ずつ増やしながら繰り返す:(3)
| j を 0 から 要素数(Array) - i - 2 まで 1 ずつ増やしながら繰り返す:(4)
| | もし Array[j] > Array[j + 1]ならば:(5)
| | | tmp = Array[j](6)
| | | Array[j] = Array[j + 1](7)
⎿ ⎿ ⎿ Array[j + 1] = tmp(8)
表示する("バブルソート後:", Array)1行ずつ実行
13アルゴリズム・入力
二分探索
昇順の配列から、探す範囲を半分ずつ絞り込もう。
(01)
Array = 【外部からの入力】(02)
target = 【外部からの入力】(03)
low = 0 , high = 要素数(Array) - 1(04)
found = 0(05)
low <= high の間繰り返す:(06)
| mid = (low + high) ÷ 2(07)
| もし Array[mid] == target ならば:(08)
| | found = 1(09)
| | low = high + 1(10)
| そうでなくもし Array[mid] < target ならば:(11)
| | low = mid + 1(12)
| そうでなければ:(13)
⎿ ⎿ high = mid - 1(14)
もし found == 1 ならば:(15)
| 表示する(target, "は配列の", mid, "番目の要素です")(16)
そうでなければ:(17)
⎿ 表示する(target, "は配列の中に存在しません")1行ずつ実行
14関数・再帰
再帰で階乗を求める
自分自身を呼び出す関数。呼び出しと戻り値の流れを追おう。
(1)
定義する factorial(n)(2)
| もし n == 0 ならば:(3)
| | 返す 1(4)
| そうでなければ:(5)
⎿ ⎿ 返す n * factorial(n - 1)(6)
表示する(factorial(5))1行ずつ実行
15乱数・シミュレーション
乱数で円周率を推定する
ランダムに点を打ち、円の内側に入った割合から円周率を求めよう。
(1)
kaisu = 1000(2)
kosu = 0(3)
i を 1 から kaisu まで 1 ずつ増やしながら繰り返す:(4)
| x = 乱数()(5)
| y = 乱数()(6)
| もし x ** 2 + y ** 2 <= 1 ならば:(7)
⎿ ⎿ kosu = kosu + 1(8)
表示する("円周率の推定値は", 4 * kosu / kaisu)1行ずつ実行
動画解説問題
準備できました
0 ステップSpace でも次へ
プログラム
解説
実行前
「次へ」で1行目を実行
1行目から順に実行します。変数の値と出力は、緑の行の結果を示します。
関数の呼び出し
変数の値
いまの状態変数現在の値このステップの変化
出力
0 件表示する() の結果が、
ここに順番にたまります。