Thuật giải (algorithm)

Một phần của tài liệu Tài liệu học tập môn tin cơ sở (Trang 48 - 49)

CHƯƠNG 1 : THUẬT GIẢI VÀ LƯU ĐỒ

1.1. Thuật giải (algorithm)

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ử,

người sử dụng thường phải biết dữ liệu vào của bài toán (input) và yêu cầu dữ liệu ra

(output) của bài toán. Bước tiếp theo, 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 thuật giải.

1.1.1. Khái niệm thuật giải

Thuật giải (algorithm) là một tập hữu hạn các thao tác (các công việc, các phép toán) có thể đặt tên được và chúng được thực hiện theo một trình tự thích hợp trên một số đối tượng để đạt được mục đích mong muốn. "Hữu hạn" ở đây được hiểu cả về mặt thời gian thực hiện lẫn công cụ thực hiện.

Cùng một bài toán có thể có nhiều thuật toán khác nhau. Trong đó thuật toán nào đơn giản, dễ hiểu, có độ chính xác cao, được bảo đảm về mặt toán học và dễ triển khai trên máy nhất được gọi là thuật toán tối ưu.

Nghiên cứu thuật toán là một trong những vấn đề quan trọng nhất của Tin học.

1.1.2. Chương trình

Chương trình là tập hợp dãy các lệnh điều khiển máy tính thực hiện. Như vậy, có thể nói một chương trình là một cách diễn tả thuật giải trong một ngôn ngữ chính xác để máy tính có thể hiểu được.

Chương trình cho máy tính chính là sự mô tả cụ thể các thuật toán và sự biểu diễn một cách rõ ràng chính xác các dữ liệu.

1.1.3. Các đặc trưng của thuật toán

Để phân biệt thuật toán với các thuật ngữ khác như phương pháp tiến hành, chương trình hành động... thuật toán trong tin học phải có các tính chất sau:

41 + Tính xác định: Các thao tác ở mỗi bước phải hết sức rõ ràng và chỉ được hiểu theo một nghĩa duy nhất. Trong cùng một điều kiện hai máy khác nhau hoặc hai lần thao tác khác nhau phải cho cùng một kết quả khi thực hiện cùng một thuật toán.

+ Tính hàng loạt: Thuật toán có hiệu lực như nhau đối với các bài toán cùng loại (có cùng miền áp dụng thuật toán).

+ Tính khả thi: Thuật toán phải bao gồm các thao tác mà máy có thể thực hiện được nghĩa là chỉ bao gồm những phép toán số học, các phép so sánh, các phép logic, các phép nhập xuất thông tin tiêu chuẩn.

+ Tính đầy đủ: Thuật toán phải vét được hết các tình huống, các khả năng có thể xảy ra, không bỏ sót bất kỳ một trường hợp nào.

1.1.4. Trình tự thực hiện các bước của thuật toán

Giải thuật được thiết kế theo ba cấu trúc suy luận cơ bản sau đây:

 Tuần tự (Sequential): Các công việc được thực hiện một cách tuần tự, công việc này nối tiếp công việc kia.

 Cấu trúc lựa chọn (Selection) : Lựa chọn một công việc để thực hiện căn cứ vào một điều kiện nào đó. Có một số dạng như sau:

- Cấu trúc 1: Nếu <điều kiện> (đúng) thì thực hiện <công việc>

- Cấu trúc 2: Nếu <điều kiện> (đúng) thì thực hiện <công việc 1>, ngược lại (điều kiện sai) thì thực hiện <công việc 2>.

- Cấu trúc 3: Trường hợp <i> thực hiện <công việc i>.

 Cấu trúc lặp (Repeating): Thực hiện lặp lại một công việc nhiều lần căn cứ vào một điều kiện nào đó. Có hai dạng như sau:

- Lặp xác định: là loại lặp mà khi viết chương trình, người lập trình đã xác định được công việc sẽ lặp bao nhiêu lần.

- Lặp không xác định: là loại lặp mà khi viết chương trình người lập trình chưa xác định được công việc sẽ lặp bao nhiêu lần. Số lần lặp sẽ được xác định khi chương trình thực thi.

Một phần của tài liệu Tài liệu học tập môn tin cơ sở (Trang 48 - 49)

Tải bản đầy đủ (PDF)

(180 trang)