TopStudy

Tin học · Lớp 11

Giải SGK Tin học 11 Cánh diều Bài 5. Đánh giá thuật toán có đáp án

8 câu · 12 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
Theo em, một thuật toán như thế nào thì được xem là chạy nhanh/ chạy chậm?
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 ý

Thuật toán được coi là hiệu quả hơn nếu thời gian thực hiện chương trình và lượng bộ nhớ mà máy tính cần dùng là ít hơn.

Câu 2

1 điểm

Cho bài toán tính tổng dãy số : S=1+2+…+n. Hãy cho biết cách giải nào tốt hơn trong hai cách giải sau đây:

Cách thứ nhất: Tính cộng dồn từng số

Cách thứ hai: Vì dãy số là cấp số cộng nên ta có thể dùng công thức tính tổng cấp số cộ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 ý

Trong hai cách giải trên thì cách giải thứ 2 tốt hơn. Vì thời gian thực hiện thuật toán sẽ nhanh hơn cách thứ nhất, chỉ cần 3 phép toán để tính tổng S, T(n) =3.

Câu 3

1 điểm
Em hãy cho ví dụ một lời gọi hàm được tính là phep toán sơ cấp và một lời gọi hàm không được tính là phép toán sơ cấp.
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 ý

Phép toán sơ cấp

Ví dụ:

int number = 1990;

if ((number % 2) == 0)

Console.WriteLine($"{number} là số chẵn");

// In ra: 1990 là số chẵn

int a = 5;

int b = 10;

if (a >= b)

{

Console.WriteLine("Số a lớn hơn hoặc bằng số b");

}

else

{

Console.WriteLine("Số a nhỏ hơn số b");

}

//In ra: Số a nhỏ hơn số b

Sau else bạn có thể bắt đầu ngay một lệnh if khác để tạo ra cấu trúc if else, kiểm tra nhiều trường hợp

int a = 10;

int b = 10;

if (a > b)

{

Console.WriteLine("Số a lớn hơn hoặc bằng số b");

}

else if (a < b)

{

Console.WriteLine("Số a nhỏ hơn số b");

}

else

{

Console.WriteLine("Hai số a, b bằng nhau");

}

Câu 4

1 điểm
Xét bài toán sắp xếp dãy số. Hãy cho biết khi nào ta có trường hợp thuận lợi nhất, số phép toán cần làm là ít nhất?
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 ý

Trong bài toán sắp xếp dãy số, ta cần phải sắp xếp các số trong dãy theo một thứ tự tăng dần hoặc giảm dần. Để giảm số lần so sánh và hoán vị giữa các phần tử trong quá trình sắp xếp, ta cần chọn phương pháp sắp xếp phù hợp. Trường hợp thuận lợi nhất trong bài toán sắp xếp dãy số là khi dãy đã có thứ tự tăng dần hoặc giảm dần. Trong trường hợp này, ta không cần phải hoán vị các phần tử trong quá trình sắp xếp, do đó số phép toán cần làm là ít nhất.

Ngược lại, khi dãy số ban đầu là một dãy không có thứ tự, ta cần thực hiện một số lần hoán vị để sắp xếp dãy theo thứ tự mong muốn. Trong trường hợp này, số phép toán cần làm sẽ nhiều hơn so với trường hợp dãy đã có thứ tự. Do đó, để có trường hợp thuận lợi nhất và số phép toán cần làm ít nhất, ta nên sắp xếp dãy số theo thứ tự tăng dần hoặc giảm dần trước khi thực hiện các phép toán sắp xếp khác.

Câu 5

1 điểm

Ước lượng số phép toán sơ cấp cần thực hiện để tìm số lớn nhất trong dãy số:

a) Đâu vào là dãy ngẫu nhiên.

b) Đầu vào là dãy giảm dần.

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 ý

Ước lượng số phép toán sơ cấp cần thực hiện

Câu 6

1 điểm
Tại sao không thể đánh giá thuật toán qua chương trình cài đặt thuật toán?
Xem đáp án và lời giải

Câu 7

1 điểm
Khi nào thì áp dụng quy tắc lấy max?
Xem đáp án và lời giải

Câu 8

1 điểm
Quy tắc nhân áp dụng cho cấu trúc vòng lặp là gì?
Xem đáp án và lời giải

Đề cùng chủ đề

Tất cả đề Tin học 11 – Cánh diều · Các bộ sách Tin học Lớp 11