Giải chuyên đề Tin 12 Cánh diều Bài 1: Kiểu dữ liệu hàng đợi có đáp án

31 người thi tuần này 4.6 155 lượt thi 5 câu hỏi

🔥 Đề thi HOT:

864 người thi tuần này

15 câu Trắc nghiệm Tin học 12 Kết nối tri thức Bài 19 có đáp án

5.6 K lượt thi 15 câu hỏi
575 người thi tuần này

15 câu Trắc nghiệm Tin học 12 Kết nối tri thức Bài 23 có đáp án

2.6 K lượt thi 15 câu hỏi
413 người thi tuần này

15 câu Trắc nghiệm Tin học 12 Kết nối tri thức Bài 24 có đáp án

1.9 K lượt thi 15 câu hỏi
401 người thi tuần này

15 câu Trắc nghiệm Tin học 12 Kết nối tri thức Bài 22 có đáp án

2.5 K lượt thi 15 câu hỏi
400 người thi tuần này

Trắc nghiệm tổng hợp Tin học năm 2023 có đáp án (Phần 4)

4.4 K lượt thi 217 câu hỏi
369 người thi tuần này

15 câu Trắc nghiệm Tin học 12 Kết nối tri thức Bài 25 có đáp án

1.4 K lượt thi 15 câu hỏi
318 người thi tuần này

15 câu Trắc nghiệm Tin học 12 Kết nối tri thức Bài 20 có đáp án

2.5 K lượt thi 15 câu hỏi
315 người thi tuần này

15 câu Trắc nghiệm Tin học 12 Kết nối tri thức Bài 16 có đáp án

2.9 K lượt thi 15 câu hỏi

Nội dung liên quan:

Danh sách câu hỏi:

Lời giải

Một phòng máy thực hành có 50 máy tính nối mạng với một máy in duy nhất (Hình 1). Có nhiều người dùng trong phòng đều có nhu cầu in tệp dữ liệu của họ. Theo em, các tệp dữ liệu đó sẽ được in theo thứ tự mà chúng được gửi đến hàng đợi của máy in và để làm được điều đó hệ thống phải sắp xếp các tệp dữ liệu này theo nguyên tắc FIFO, tức là tệp nào được gửi đến hàng đợi in trước thì sẽ in trước.

Lời giải

a) Những thao tác sau cần được thực hiện để có thể lấy số 6 ra khỏi hàng đợi ở Hình 4a và vẽ hàng đợi biểu diễn bởi mảng một chiều tại thời điểm lấy xong số 6. Giá trị biến Front thay đổi thế nào so với trạng thái ở Hình 4b.

- Thực hiện thao tác dequeue (lấy ra) cho đến khi gặp số 6.

- Cập nhật giá trị biến Front sau mỗi lần dequeue.

- Hàng đợi sau khi lấy xong số 6 sẽ có dạng: -7, 12, 4, 9 và các ô trống ở đầu hàng đợi.

- Biến Front sẽ trỏ đến vị trí của số -7.

b) Vẽ hàng đợi thu được khi tiếp tục thực hiện một thao tác thêm vào số 8. Giá trị biến Back thay đổi so với Hình 4b như sau:

- Thực hiện thao tác enqueue (thêm vào) số 8 vào cuối hàng đợi.

- Cập nhật giá trị biến Back sau khi thêm.

- Hàng đợi sau khi thêm số 8 sẽ có dạng: -7, 12, 4, 9, 8 và các ô trống ở đầu và cuối hàng đợi.

- Biến Back sẽ trỏ đến vị trí mới sau số 9.

c) Tiếp tục thực hiện các thao tác lấy ra cho đến khi hàng đợi rỗng, mối quan hệ giữa giá trị biến Front và Back khi hàng đợi rỗng như sau:

- Tiếp tục thực hiện thao tác dequeue cho đến khi hàng đợi không còn phần tử nào.

- Khi hàng đợi rỗng, biến Front và Back sẽ trỏ đến cùng một vị trí, thường là vị trí đầu tiên của mảng nếu hàng đợi được triển khai theo cách này.

Lời giải

a)  Dấu ‘?’ trong hàm dequeue(Q) cần được thay bằng 0 để lấy phần tử đầu tiên ra khỏi hàng đợi.

b) 

- Hàng đợi queue sẽ chứa các phần tử sau khi thực hiện các thao tác enqueue: 2, 4, 6.

- Kết quả in trên màn hình sau khi chạy chương trình sẽ là phần tử đầu tiên được lấy ra khỏi hàng đợi, tức là 2.

c) Kết quả in trên màn hình sẽ là các phần tử lần lượt được lấy ra khỏi hàng đợi: 2, 4, 6. Nếu thực hiện thêm lần nữa, sẽ in ra thông báo hàng đợi rỗng.

d) Viết hàm isEmptyQueue(Q) với tham số truyền vào là hàng đợi Q. Hàm trả về giá trị True nếu hàng đợi Q đang rỗng không chứa phần tử nào, ngược lại hàm trả về giá trị False:

Chương trình Python:

def isEmptyQueue(Q):

   return len(Q) == 0

e) Đoạn chương trình ở Hình 11 kiểm tra xem hàng đợi có rỗng trước khi thực hiện thao tác dequeue. Nếu hàng đợi không rỗng, sẽ in ra phần tử được lấy ra. Nếu hàng đợi rỗng, sẽ in ra thông báo “Hàng đợi rỗng, không thể thực hiện được thao tác dequeue”.

4.6

31 Đánh giá

50%

40%

0%

0%

0%