課題の正答例

提出課題の解答例です。

わかなかったところや、間違ったところは復習をしましょう。

スライド5の解答例

最後の要素で探索値が見つかった場合の比較回数

1000回

最初の要素で探索値が見つかった場合の比較回数

1回

平均比較回数

500.5回

計算式

(1 + 1000) / 2 =500.5

スライド6の解答例

フローチャートの空欄(a)に入る条件式

found_flag != True and i < 配列の要素数

または

found_flag == False and i < 配列の要素数

フローチャートの空欄(b)に入る条件式

found_flag == True

スライド7の解答例

プログラム完成例

import random

# 配列をランダムに生成する関数
def generate_array(size=10, low=1, high=100):
    """
    ランダムな整数の配列を生成する
    size : 要素数
    low  : 最小値
    high : 最大値
    """
    return random.sample(range(low, high+1), size)  # 重複なし

# ===== メイン処理 =====

# ランダムに配列を作成
data = generate_array(20, 1, 100)
print("探索対象データ:", data)

# 探す値を入力
target = int(input("探す値を入力してください: "))

# フラグと位置変数
found_flag = False
i = 0

# フラグを条件に使った線形探索
while found_flag != True and i < len(data) :
    if data[i] == target:
        found_flag = True
    else:
        i = i + 1

# 結果表示
if found_flag == True:
    print("見つかりました。")
else:
    print("見つかりませんでした。")

スライド8の解答例

プログラム完成例

import random

# 配列をランダムに生成する関数
def generate_array(size=10, low=1, high=100):
    """
    ランダムな整数の配列を生成する
    size : 要素数
    low  : 最小値
    high : 最大値
    """
    return random.sample(range(low, high+1), size)  # 重複なし

# ===== メイン処理 =====

# ランダムに配列を作成
data = generate_array(20, 1, 100)
print("探索対象データ:", data)

# 探す値を入力
target = int(input("探す値を入力してください: "))

# 番兵の設定
data.append(target)

# フラグと位置変数
found_flag = False
i = 0

# フラグを条件に使った線形探索
while found_flag != True:
    if data[i] == target:
        found_flag = True
    else:
        i = i + 1

# 結果表示
if i < len(data) - 1:
    print("見つかりました。")
else:
    print("見つかりませんでした。")

Well done!

次のステップに進みましょう!

次のステップに進む

← 前のステップにもどる