Tin học 11 Cánh diều bài 4: Làm mịn dần từng bước từ các thuật toán đến chương trình máy tính

Giải Tin học 11 Cánh diều bài 4: Làm mịn dần từng bước từ các thuật toán đến chương trình máy tính

Tin học 11 Cánh diều bài 4: Làm mịn dần từng bước từ các thuật toán đến chương trình máy tính được VnDoc.com sưu tầm và xin gửi tới bạn đọc cùng tham khảo và có thêm tài liệu giải SGK Tin học 11 Cánh diều nhé.

Khởi động

Câu hỏi: Khi lập trình giải bài toán theo một thuật toán đã cho, em sẽ bắt đầu như thế nào? Theo em cách làm như thế có đúng phương pháp không?

Bài làm

Cần nắm được các thuật toán

Hiểu được yêu cầu đề bài và chọn thuật toán phù hợp

Làm mịn các bước mô tả thuật toán

Câu hỏi. Mô tả thuật toán bằng liệt kê các bước còn chứa nhiều cụm từ của ngôn ngữ tự nhiên, mỗi cụm từ nêu một việc phải làm. Để lập trình thực hiện thuật toán, cần làm chi tiết dần từng bước. Theo em, đây có phải là “chia để trị” hay không? Vì sao?

Bài làm

Theo em, đây là “chia để trị” => Làm mịn dẫn các bước mô tả thuật toán là để tiến gắn hơn đến các câu lệnh của ngôn ngữ lập trinh. Ở đây lựa chọn sử dụng mã gia để trình bày vì nó ngắn gọn, dễ hiểu và không phụ thuộc vào ngôn ngữ lập trình.

Cách thức chung: Chuyển các cụm từ mô tả một "việc cần làm” thành các đoạn mã giá tiến gần hơn một bước đến các câu lệnh của chương trình chi tiết.

Vận dụng

Câu 1. Hãy nêu một điều kiện sàng khác cho bài toán sàng số: in ra danh sách các số nguyên dương nhỏ hơn n và thoả mãn điều kiện sàng mới. Gợi ý: Ví dụ "không là số chính phương”.

Bài làm

Khái niệm số chính phương trong python cũng giống như trên. Chúng ta coi một số là số chính phương trong Python nếu như nó bằng bình phương của một số tự nhiên. Đây là chìa khóa thứ nhất giúp chúng ta có thể tìm được số chính phương trong python.

Nói cách khác, căn bậc 2 của một số chính phương chính là một số tự nhiên. Đây là chìa khóa thứ 2 giúp chúng ta có thể tìm được số chính phương trong python.

Câu 2. Viết mô tả mã giả cho thuật toán tương ứng với Câu 1

Bài làm

def find_square_number(n):

#flag = 1 => số chính phương

#flag = 0 => không phải số chính phương

flag = 0;

#Tìm số bất kỳ nhỏ hơn hoặc bằng n mà bình phương bằng n

if any(i**2 == n for i in range(n+1)):

flag = 1

return flag

---------------------------------------

Bài tiếp theo: Tin học 11 Cánh diều bài 5: Đánh giá thuật toán

VnDoc.com vừa gửi tới bạn đọc bài viết Tin học 11 Cánh diều bài 4: Làm mịn dần từng bước từ các thuật toán đến chương trình máy tính. Mời các bạn cùng tham khảo thêm tại mục Tin học 11 Cánh diều.

Đánh giá bài viết
1 68
Sắp xếp theo

    Tin học 11 Cánh diều

    Xem thêm