TopStudy

Tin học · Lớp 12

Giải chuyên đề Tin 12 Cánh diều Bài 3: Thực hành các thao tác đơn giản với đồ thị trên máy tính có đáp án

1 câu · 10 phút · Ngân hàng đề TopStudy. Đáp án và lời giải do TopStudy biên soạn, mở ngay dưới từng câu.

Làm bài

Nội dung đề

Phần I. Tự luận

Câu 1

1 điểm

Tìm hiểu chương trình giúp giải quyết các yêu cầu b), c), d) của bài toán Giao hữu bóng đá.

a) Tìm hiểu chương trình ở Hình 2, dữ liệu được nhập vào như sau:

- Nhập hai số nguyên dương n, m (trong đó n là số đội bóng tham gia, m là số trận đấu đã diễn ra).

- Nhập m cặp số in j (0 ≤i j n; i t j, với k = 1,2,..., m), trong đó mỗi cặp số tương ứng với một cạnh của đồ thị nối từ dinh ik_{k} đến đỉnh jk_{k}, Cho biết đội i, đã đấu với đội jk_{k} và đội ik_{k} giành chiến thắng.

Hình minh hoạ

Hình minh hoạ

Hình minh hoạ

b) Em hãy cho biết ? trong Hình 3 được thay bằng đại lượng thích hợp nào, sau đó ghép với đoạn chương trình ở Hình 2 để hiển thị ma trận kề của đồ thị.

c) Em hãy cho biết ? trong Hình 4 được thay bằng đại lượng thích hợp nào, sau đó ghép với đoạn chương trình ở Hình 2 để hiến thị bậc ra của các đinh 0, 1,..., n - 1.

d) Thử nghiệm với dữ liệu đã tạo ở yêu cầu a) trong bài toán Giao hữu bóng đá.

Xem đáp án và lời giải

Hướng dẫn chấm do TopStudy biên soạn, mang tính gợi ý

a) Thực hiện tìm hiểu chương trình ở Hình 2, nhập vào dữ liệu như sau:

- Nhập hai số nguyên dương n, m (trong đó n là số đội bóng tham gia, m là số trận đấu đã diễn ra).

- Nhập m cặp số in j (0 ≤i j n; i t j, với k = 1,2,..., m), trong đó mỗi cặp số tương ứng với một cạnh của đồ thị nối từ dinh ik_{k} đến đỉnh jk_{k}, Cho biết đội i, đã đấu với đội jk_{k} và đội ik_{k} giành chiến thắng.

Hình minh hoạ

b) Ma trận kề: Để hiển thị ma trận kề, bạn cần thay “?” trong Hình 3 bằng “j” để in ra giá trị của ma trận kề.

# Ghép với Hình 2

for i in range(n):

for j in range(n):

print(g[i][j], end=" ")

print()

c) Trong Hình 4 được thay bằng đại lượng thích hợp sau, sau đó ghép với đoạn chương trình ở Hình 2 để hiến thị bậc ra của các đinh 0, 1,..., n - 1.

Để tính bậc ra, “?” trong Hình 4 cần được thay bằng “1” để cập nhật biến đếm cnt khi có cạnh nối từ đỉnh i đến j.

# Ghép với Hình 2

for i in range(n):

cnt = 0

for j in range(n):

if g[i][j] == 1:

cnt += 1

print(i, ":", cnt)

d) Thử nghiệm với dữ liệu đã tạo ở yêu cầu a) trong bài toán Giao hữu bóng đá. Sử dụng dữ liệu bạn đã tạo từ yêu cầu a), bạn có thể thử nghiệm chương trình đã ghép để kiểm tra kết quả của ma trận kề và bậc ra của các đỉnh.

Đề cùng chủ đề

Tất cả đề Chuyên đề 3. Tìm hiểu kĩ thuật duyệt đồ thị và ứng dụng · Các bộ sách Tin học Lớp 12