Lựa chọn hoặc thiết kế thuật tốn

Một phần của tài liệu GA tin học 10 (Trang 26 - 28)

VI. RÚT KINH NGHIỆM CHO BÀI GIẢNG SAU

2.Lựa chọn hoặc thiết kế thuật tốn

Bước 3: Viết chương trình;

Bước 4: Hiệu chỉnh; Bước 5: Viết tài liệu.

1. Xác định bài tốn

- Mỗi bài tốn được đặc tả bởi hai thành phần: Input và Output. Việc xác định bài tốn chính là xác định rõ hai thành phần này và mối quan hệ giữa chúng. Các thơng tin đĩ cần được nghiên cứu cẩn thận để cĩ thể lựa chọn thuật tốn, cách thể hiện các đại lượng đã cho, các đại lượng phát sinh trong quá trình giải bài tốn và ngơn ngữ lập trình thích hợp.  lựa chọn cấu trúc dữ liệu và ngơn ngữ lập trình thực hiện

Ví dụ, trong một bài tốn Tin học khi đề cập đến một số nguyên dương N, là số ngày trong một tháng, cĩ thể chỉ rõ phạm vi giá trị của N từ 1 đến 31, để lựa chọn cách thể hiện N bằng kiểu dữ liệu thích hợp.

2. Lựa chọn hoặc thiết kế thuật tốn

a) Lựa chọn thuật tốn

Bước lựa chọn hoặc thiết kế thuật tốn là bước quan trọng nhất để giải một bài tốn.

Mỗi thuật tốn chỉ giải một bài tốn nào đĩ, nhưng cĩ thể cĩ nhiều thuật tốn khác nhau cùng giải một bài tốn. Cần thiết kế hoặc chọn một thuật tốn phù hợp đã cĩ để giải bài tốn cho trước.

GV: Đặt vấn đề vào bài mới: Em nào nhắc lại cho Thầy biết về khái niệm “Bài tốn”

HS: Trả lời câu hỏi

GV: Ta muốn máy tính làm việc cho ta thì cĩ cần phải học cách sử dụng máy tính khơng?

HS: Trả lời câu hỏi.

GV: Học cách sử dụng máy tính thực chất là sao? HS: Trả lời câu hỏi

GV: Kết luận: Khả năng khai thác máy tính phụ thuộc rất nhiều vào sự hiểu biết của người dùng

GV: Để phát biểu một bài tốn, chúng ta cần phải làm rõ điều gì?

HS: Trả lời câu hỏi.

GV: Chiếu Slide về nội dung các bước giải bài tốn.

GV: Bây giờ bài tốn đã được xác định, để giải bài tốn bước tiếp theo ta phải làm gì?

HS: Trả lời câu hỏi.

GV: Chiếu Slide, yêu cầu học sinh mở sách giáo khoa và giảng giải các thuật ngữ mới.

Nội dung bài giảng Hoạt động của thầy và trị

Khi thiết kế hoặc lựa chọn thuật tốn người ta thường quan tâm đến các tài nguyên như thời gian thực hiện, số lượng ơ nhớ,... Trong các loại tài nguyên, người ta quan tâm nhiều nhất đến thời gian vì đĩ là dạng tài nguyên khơng tái tạo được.

Ví dụ, với bài tốn tìm kiếm, nếu dãy đã cho là dãy đã sắp xếp thì dễ thấy thuật tốn tìm kiếm nhị phân cần ít thao tác so sánh hơn nhiều so với thuật tốn tìm kiếm tuần tự. Vì thế nĩ cần ít thời gian thực hiện hơn.

Một tiêu chí khác được rất nhiều người quan tâm là cần thiết kế hoặc lựa chọn thuật tốn sao cho việc viết chương trình cho thuật tốn đĩ ít phức tạp.  tiêu chí của thuật tốn là tính hiệu quả

Khi thiết kế hoặc lựa chọn thuật tốn để giải một bài tốn cụ thể cần căn cứ vào lượng tài nguyên mà thuật tốn địi hỏi và lượng tài nguyên thực tế cho phép.

b) Diễn tả thuật tốn

Việc diễn tả một thuật tốn đã được trình bày ở bài 4. Dưới đây ta xét thêm một ví dụ khác.

Ví dụ. Tìm ước chung lớn nhất (ƯCLN) của hai số nguyên dương M và N.

Xác định bài tốn

- Input: NhậpM, N; - Output: ƯCLN(M, N). (adsbygoogle = window.adsbygoogle || []).push({});

Ý tưởng: Sử dụng những điều đã biết sau: - Nếu M = N thì giá trị chung đĩ là ƯCLN của M và N; - Nếu M < N thì ƯCLN(M, N) = ƯCLN(N - M, M); - Nếu M > N thì ƯCLN(M, N) = ƯCLN(N, M - N). •Thuật tốn

a) Thuật tốn diễn tả bằng cách liệt kê

Bước 1: Nhập M, N;

Bước 2: Nếu M = N thì lấy giá trị chung này làm ƯCLN rồi chuyển đến bước 5; Bước 3: Nếu M > N thì M ơ M - N rồi quay lại bước 2;

Bước 4: NN - M rồi quay lại bước 2; Bước 5: Đưa ra kết quả ƯCLN; Kết thúc.

Nội dung bài giảng Hoạt động của thầy và trị

Sau đây là hai ví dụ mơ phỏng các bước thực hiện thuật tốn trên. 2 3 Lượt 1 2 3 4 5 5 M 17 4 4 4 4 10 5 N 13 13 9 5 1 a) ƯCLN(25,10) = 5 b) ƯCLN(17, 13) = 1 3. Viết chương trình

Việc viết chương trình là tổng hợp giữa việc lựa chọn cách tổ chức dữ liệu và sử dụng ngơn ngữ lập trình để diễn đạt đúng thuật tốn.

Khi viết chương trình ta nên chọnmột ngơn ngữ lập trình hoặc một phần mềm chuyên dụng thích hợp với thuật tốn. Viết chương trình trong ngơn ngữ nào thì cần phải tuân theo đúng quy định ngữ pháp của ngơn ngữ đĩ.

Chương trình dịch chỉ cĩ thể phát hiện và thơng báo các lỗi về mặt ngữ pháp.

Một phần của tài liệu GA tin học 10 (Trang 26 - 28)