- Mô hình Internet Mail: Là mô hình liên kết cách ộp thư lưu trên Internet, mỗi hộp thư
CHƯƠNG VI: GIẢI THUẬT 1 Khái niệm giải thuậ t (Algorithms)
- Khi cần giải quyết một bài toán trong thực tế với sự trợ giúp của máy tắnh ựiện tử ta thường phải biết dữ liệu vào của bài toán (Input) là gì? và bài toán yêu cầu dữ liệu ra (Output) là gì?. Bước tiếp theo ta phải thiết lập ựược các bước thao tác cụ thểựể từ Input ta có ựược Output. Công việc ựó trong tin học ựược gọi là xây dựng giải thuật.
- Giải thuật của 1 bài toán là một dãy các câu lệnh (Statements) chặt chẽ và rõ ràng xác ựịnh một trình tự các thao tác trên một số ựối tượng nào ựó sao cho sau một số bước hữu hạn thực hiện ta thu ựược kết quả mong muốn.
- Với ựịnh nghĩa như vậy ta thấy rằng ựối với một bài toán cụ thể có thể có nhiều giải thuật khác nhau nhưng tất nhiên là các giải thuật ựó phải cho cùng một kết quả theo ựúng yêu cầu của bài toán.
- Khi nghiên cứu về giải thuật thường ta phải biết ựược giải thuật ựó tác ựộng lên dữ
liệu nào. Việc lựa chọn cấu trúc dữ liệu (Data structures) phù hợp và việc thiết lập ựược các giải thuật ựúng ựắn có cấu trúc tốt và hiệu quả là những vấn ựề mấu chốt của công việc thiết lập phần mềm. Chắnh vì vậy mà Niklaus Wirth người sáng lập ra ngôn ngữ lập trình Pascal ựã tổng kết: Giải thuật+Cấu trúc dữ liệu= Chương trình
Vắ dụ: Xây dựng giải thuật tìm UCLN của 2 số nguyên dương a và b, ký hiệu (a,b) + đối với bài toán này ta có
Input: 2 số nguyên dương a, b Output: (a,b)
+ Giải thuật ựược xây dựng dựa trên tắnh chất Nếu a=b thì (a,b)=a
Nếu a>b thì (a,b)=(a-b,b) Nếu a<b thì (a,b)=(a,b-a)
+ Cụ thể giải thuật của bài toán như sau:
Bước 1: So sánh a và b, Nếu a=b thì dừng giải thuật và thông báo (a,b)=a. Nếu a≠b thì chuyển sang bước 2
Bước 2: Nếu a>b thì thay thế a bởi a-b, nếu a<b thì thay thế b bởi b-a. Quay lại thực hiện bước 1
Minh hoạ: a=20, b=32
Bước thực hiện a b Kiểm tra ựiều kiện a=b
Bước 1 20 32 Sai Bước 2 20 12 Bước 1 20 12 Sai Bước 2 8 12 Bước 1 8 12 Sai Bước 2 8 4 Bước 1 8 4 Sai Bước 2 4 4 Bước 1 4 4 đúng Kết quả là: (20,32)=4