Tin học 11 Bài 20: Thực hành bài toán tìm kiếm

Tin học 11 Bài 20: Thực hành bài toán tìm kiếm

Giải bài tập SGK Tin học 11 trang 94→98 sách Kết nối tri thức với cuộc sống giúp các em học sinh lớp 11 xem gợi ý giải các câu hỏi Bài 20: Thực hành bài toán tìm kiếm thuộc Chủ đề 6: Kỹ thuật lập trình.

Bạn đang đọc: Tin học 11 Bài 20: Thực hành bài toán tìm kiếm

Soạn Tin học 11 Kết nối tri thức Bài 20 giúp các bạn học sinh nắm được kiến thức biết cách thực hành các dạng bài toán tìm kiếm. Đồng thời qua tài liệu này giúp giáo viên nhanh chóng xây dựng hoàn thiện giáo án dạy học của mình. Vậy sau đây là nội dung chi tiết tài liệu, mời các bạn cùng đón đọc.

Tin học 11 Bài 20: Thực hành bài toán tìm kiếm

    Luyện tập Tin học 11 Bài 20

    Câu hỏi 1. Chỉnh sửa lại chương trình của Nhiệm vụ 3 để cho phép chương trình có thể tìm kiếm điểm số trên danh sách điểm số được sắp xếp theo thứ tự giảm dần.

    Bài làm

    Def BinrySearch(A,K):

    left=0

    right=len(A)-1

         while left

    mid=(left+right)//2

    if A[mid]==K:

    return mid

    elif A[mid]

    left=mid-1

    else:

    right=mid+1

    return -1

    input_file=open(“diemthi_sx.inp”)

    ds_diem=[]

    for line in input_file.readlines():

    ds_diem.append(float(line))

    input_file.close():

    diem=float(input(‘nhập điểm số cần kiểm tra:’))

    vitri=BanirySearch(ds_diem,diem)

    if vitri==-1:

    print(‘không tồn tại điểm số cần tìm trong danh sách’)

    else:

    print(‘điểm cần tìm nằm ở hàng thứ’,vitri,’trong danh sách’)

    Vận dụng Tin học 11 Bài 20

    Câu hỏi: Viết chương trình tra cứu tên theo điểm thi của học sinh trong lớp. Chương trình cho phép người dùng nhập vào khoảng điểm số cần tìm kiếm (ví dụ từ 6 đến 8). Chương trình kiểm tra và thông báo tên của học sinh có điểm số nằm trong khoảng tương ứng. Giải bài toán trong hai trường hợp: điểm được sắp xếp theo thứ tự ngẫu nhiên như trong Nhiệm vụ 1 hoặc điểm được sắp xếp theo thứ tự tăng dẫn như sau:

    Sơn 5.6

    Huyền 7.4

    Nam 7.8

    Hùng 8.4

    Hương 8.9

    Hà 9.5

    Bài làm

    1.Điểm được sắp xếp theo thứ tự ngẫu nhiên:

    # Danh sách tên học sinh

    class_names = [“Sơn”, “Huyền”, “Nam”, “Hùng”, “Hương”, “Hà”]

    # Danh sách điểm thi tương ứng

    class_scores = [5.6, 7.4, 7.8, 8.4, 8.9, 9.5]

    # Nhập khoảng điểm cần tra cứu

    start_score = float(input(“Nhập điểm bắt đầu của khoảng điểm: “))

    end_score = float(input(“Nhập điểm kết thúc của khoảng điểm: “))

    # Kiểm tra và thông báo tên học sinh có điểm nằm trong khoảng tương ứng

    found = False

    for i in range(len(class_names)):

    if class_scores[i] >= start_score and class_scores[i]

    print(“Học sinh”, class_names[i], “có điểm là”, class_scores[i])

    found = True

    if not found:

    print(“Không tìm thấy học sinh nào có điểm trong khoảng điểm đã nhập.”)

    2.Điểm được sắp xếp theo thứ tự tăng dần:

    # Danh sách tên học sinh

    class_names = [“Sơn”, “Huyền”, “Nam”, “Hùng”, “Hương”, “Hà”]

    # Danh sách điểm thi tương ứng (đã được sắp xếp theo thứ tự tăng dần)

    class_scores = [5.6, 7.4, 7.8, 8.4, 8.9, 9.5]

    # Nhập khoảng điểm cần tra cứu

    start_score = float(input(“Nhập điểm bắt đầu của khoảng điểm: “))

    end_score = float(input(“Nhập điểm kết thúc của khoảng điểm: “))

    # Tìm kiếm nhị phân để tra cứu tên học sinh

    found = False

    low = 0

    high = len(class_names) – 1

    while low

    mid = (low + high) // 2

    if class_scores[mid] >= start_score and class_scores[mid]

    print(“Học sinh”, class_names[mid], “có điểm là”, class_scores[mid])

    found = True

    break

    elif class_scores[mid]

    low = mid + 1

    else:

    high = mid – 1

    if not found:

    print(“Không tìm thấy học sinh nào có điểm trong khoảng điểm đã nhập.”)

    Để lại một bình luận

    Email của bạn sẽ không được hiển thị công khai. Các trường bắt buộc được đánh dấu *