情報Ⅰ · プログラムの実行

プログラムを、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行ずつ実行

値を変更する

初期値や条件を変えて、動きを比べてみましょう。
適用すると、出力と変数をリセットして最初から実行できます。

変更後のプログラム

外部からの入力

入力を確定すると、この行を実行します。キャンセルすると、その行の前で停止します。