Có máy cách biểu diễn thuật toán

February 28, 2011 by huynhngocduc

1.1 Khái niệm thuật toán Thuật toán là một khái niệm cơ bản của Toán học và Tin học. Khi viết một chương trình máy tính, người ta thường cài đặt một phương pháp đã được nghĩ ra trước đó để giải quyết một vấn đề. Từ “thuật toán” được dùng trong khoa học máy tính để để chỉ sự mô tả một phương pháp giải bài toán thích hợp cho việc cài đặt thành các chương trình nhờ các ngôn ngữ lập trình. Một thuật toán thường được thể hiện bởi một thủ tục gồm một dãy hữu hạn bước mà theo đó ta sẽ đạt đến lời giải cho bài toán. Người ta có thể trình bày thuật toán bằng cách liệt kê ra các bước của thuật toán sử dụng ngôn ngữ tự nhiên hay một ngôn ngữ qui ước nào đó chẳng hạn sử dụng một ngôn ngữ lập trình nào đó gần với ngôn ngữ tự nhiên.

Ví dụ 1: thuật toán xác định số n là số chẵn hay lẻ

Trước tiên khi đọc đề thì chúng ta phải xác định đầu vào và đầu ra của bài toán Đầu vào [Input]: Số n Đầu ra [Output]: In ra màn hình dòng thông báo là số chẵn hay lẻ

Chúng ta thực hiện từng bước như sau:

B1: Bắt đầu B2: Nhập n B3. Nếu n chia hết cho 2 [n mod 2 = 0] Nếu đúng thì sang bước 4 Nếu sai thì sang bước 5 B4. In ra thông báo n là số chẵn. Sang bước 6 B5. In ra thông báo n là số lẻ Sang bước 6

B6. Kết thúc chương trình

Biểu diễn thuật toán xem a,b,c có thể tạo thành 3 cạnh của tam giác không? Nếu có thì tính thêm chu vi của tam giác đó Biểu diễn thuật toán tính tổng các số từ 1 đến n. Tổng bằng mấy, i bằng mấy Biểu diễn thuật toán tìm số lớn nhất [nhỏ nhất] trong 3 số a,b,c

Biểu diễn thuật toán tính tổng các số lẻ, chẵn

Bằng cách đăng ký, bạn đồng ý với Điều khoản sử dụng và Chính sách Bảo mật của chúng tôi.

Khi chứng minh hoặc giảimột bài toán trong toán học, ta thường dùng những ngôn từ toánhọc như : "ta có", "điều phải chứng minh", "giảthuyết", ... và sử dụng những phép suy luận toán học như phépsuy ra, tương đương, ...Thuật toán là một phương pháp thể hiện lờigiải bài toán nên cũng phải tuân theo một số quy tắc nhất định.Ðể có thể truyền đạt thuật toán cho người khác hay chuyển thuậttoán thành chương trình máy tính, ta phải có phương pháp biểu diễnthuật toán. Có 3 phương pháp biểu diễn thuật toán :

1. Dùng ngôn ngữ tự nhiên.

2. Dùng lưu đồ-sơ đồ khối [flowchart].

Bạn đang xem: Các cách biểu diễn thuật toán

3. Dùng mã giả [pseudocode].

2.1. Ngôn ngữtự nhiên

Trong cách biểu diễn thuật toán theo ngôn ngữtự nhiên, người ta sử dụng ngôn ngữ thường ngày để liệt kêcác bước của thuật toán [Các ví dụ về thuật toán trong mục 1của chương sử dụng ngôn ngữ tự nhiên]. Phương pháp biểu diễnnày không yêu cầu người viết thuật toán cũng như ngườiđọc thuật toán phải nắm các quy tắc. Tuy vậy, cách biểu diễn nàythường dài dòng, không thể hiện rõ cấu trúc của thuật toán,đôi lúc gây hiểu lầm hoặc khó hiểu cho người đọc. Gần nhưkhông có một quy tắc cố định nào trong việc thể hiện thuật toánbằng ngôn ngữ tự nhiên. Tuy vậy, để dễ đọc, ta nên viết cácbước con lùi vào bên phải và đánh số bước theo quy tắc phâncấp như 1, 1.1, 1.1.1, ... Bạn có thể tham khảo lại ba ví dụ trong mục 1của chương để hiểu cách biểu diễn thuật toán theo ngôn ngữ tựnhiên.

2.2. Lưu đồ - sơ đồkhối

Lưu đồ hay sơ đồkhối là một công cụ trực quan để diễn đạt các thuật toán.Biểu diễn thuật toán bằng lưu đồ sẽ giúp người đọc theo dõiđược sự phân cấp các trường hợp và quá trình xử lý củathuật toán. Phương pháp lưu đồ thường được dùng trong nhữngthuật toán có tính rắc rối, khó theo dõi được quá trình xử lý.

Xem thêm: Cách Làm Trò Chơi Lucky Number Trên Powerpoint 2010, Hướng Dẫn Làm Trò Chơi Lucky Number

Ðể biểu diễn thuật toán theo sơ đồ khối, taphải phân biệt hai loại thao tác. Một thao tác là thao tác chọn lựadựa theo một điều kiện nào đó. Chẳng hạn : thao tác "nếu a= b thì thực hiện thao tác B2, ngược lại thực hiện B4" làthao tác chọn lựa. Các thao tác còn lại không thuộc loại chọnlựa được xếp vào loại hành động. Chẳng hạn, "Chọnmột hộp bất kỳ và để lên dĩa cân còn trống." là mộtthao tác thuộc loại hành động.

2.2.1. Thao tác chọn lựa [decision]

Thao tác chọn lựa được biểu diễn bằng một hình thoi, bên trong chứa biểu thức điều kiện.

2.2.2. Thao tác xử lý [process]

Thao tác xử lý được biểu diễn bằng một hình chữ nhật, bên trong chứa nội dung xử lý.

2.2.3.Ðường đi [route]

Khi dùng ngôn ngữ tự nhiên, ta mặc định hiểu rằng quá trình thực hiện sẽ lần lượt đi từ bước trước đến bước sau [trừ khi có yêu cầu nhảy sang bước khác]. Trong ngôn ngữ lưu đồ, do thể hiện các bước bằng hình vẽ và có thể đặt các hình vẽ này ở vị trí bất kỳ nên ta phải có phương pháp để thể hiện trình tự thực hiện các thao tác.

Hai bước kế tiếp nhau được nối bằng một cung, trên cung có mũi tên để chỉ hướng thực hiện. Chẳng hạn trong hình dưới, trình tự thực hiện sẽ là B1, B2, B3.

Từ thao tác chọn lựa có thể có đến hai hướng đi, một hướng ứng với điều kiện thỏa và một hướng ứng với điều kiện không thỏa. Do vậy, ta dùng hai cung xuất phát từ các đỉnh hình thoi, trên mỗi cung có ký hiệu Ð/Ðúng/Y/Yes để chỉ hướng đi ứng với điều kiện thỏa và ký hiệu S/Sai/N/No để chỉ hướng đi ứng với điều kiện không thỏa.

2.2.4. Ðiểm cuối [terminator]

Ðiểm cuối là điểm khởi đầu và kết thúc của thuật toán, được biểu diễn bằng hình ovan, bên trong có ghi chữ bắt đầu/start/begin hoặc kết thúc/end. Ðiểm cuối chỉ có cung đi ra [điểm khởi đầu] hoặc cung đi vào [điểm kết thúc]. Xem lưu đồ thuật toán giải phương trình bậc hai ở trên để thấy cách sử dụng của điểm cuối.

2.2.5. Ðiểm nối [connector]

Ðiểm nối được dùng để nối các phần khác nhau của một lưu đồ lại với nhau. Bên trong điểm nối, ta đặt một ký hiệu để biết sự liên hệ giữa các điểm nối.

2.2.6. Ðiểm nối sang trang [off-page connector]

Tương tự như điểm nối, nhưng điểm nối sang trang được dùng khi lưu đồ quá lớn, phải vẽ trên nhiều trang. Bên trong điểm nối sang trang ta cũng đặt một ký hiệu để biết được sự liên hệ giữa điểm nối của các trang.

Ở trên chỉ là các ký hiệu cơ bản và thường được dùng nhất. Trong thực tế, lưu đồ còn có nhiều ký hiệu khác nhưng thường chỉ dùng trong những lưu đồ lớn và phức tạp. Ðối với các thuật toán trong cuốn sách này, ta chỉ cần sử dụng các ký hiệu trên là đủ.

2.3. Mã giả

Tuy sơ đồ khối thể hiện rõ quátrình xử lý và sự phân cấp các trường hợp của thuật toánnhưng lại cồng kềnh. Ðể mô tả một thuật toán nhỏ ta phải dùngmột không gian rất lớn. Hơn nữa, lưu đồ chỉ phân biệt hai thao táclà rẽ nhánh [chọn lựa có điều kiện] và xử lý mà trong thựctế, các thuật toán còn có thêm các thao tác lặp [Chúng ta sẽ tìmhiểu về thao tác lặp trong các bài sau].

Khi thể hiện thuật toán bằng mã giả, ta sẽ vaymượn các cú pháp của một ngôn ngữ lập trình nào đó đểthể hiện thuật toán. Tất nhiên, mọi ngôn ngữ lập trình đều cónhững thao tác cơ bản là xử lý, rẽ nhánh và lặp. Dùng mã giảvừa tận dụng được các khái niệm trong ngôn ngữ lập trình, vừagiúp người cài đặt dễ dàng nắm bắt nội dung thuật toán. Tấtnhiên là trong mã giả ta vẫn dùng một phần ngôn ngữ tự nhiên.Một khi đã vay mượn cú pháp và khái niệm của ngôn ngữ lậptrình thì chắc chắn mã giả sẽ bị phụ thuộc vào ngôn ngữ lậptrình đó. Chính vì lý do này, chúng ta chưa vội tìm hiểu về mã giảtrong bài này [vì chúng ta chưa biết gì về ngôn ngữ lập trình!]. Saukhi tìm hiểu xong bài về thủ tục - hàm bạn sẽ hiểu mã giả là gì!

Một đoạn mã giả của thuật toán giải phương trình bậc hai

if

Delta > 0 then begin

x1=[-b-sqrt[delta]]/[2*a]

x2=[-b+sqrt[delta]]/[2*a]

xuất kết quả : phương trình có hai nghiệm là x1 và x2

end

else

if delta = 0 then

xuất kết quả : phương trình có nghiệm kép là -b/[2*a]

else

{trường hợp delta

xuất kết quả : phương trình vô nghiệm

* Các từ in đậm là các từ khóa của ngôn ngữ Pascal

19/06/2021 1,349

CÂU HỎI HOT CÙNG CHỦ ĐỀ

Sản phẩm nào sau đây KHÔNG phải là ngôn ngữ lập trình?

Xem đáp án » 19/06/2021 1,458

Trong hệ điều hành Windows 7, thư mục có tên gọi là

Xem đáp án » 19/06/2021 906

chọn câu trả lời đúng 

Quá trình xử lý thông tin thực hiện theo quy trình nào:   

Xem đáp án » 19/06/2021 826

chọn câu trả lời đúng

 Mã nhị phân là:

Xem đáp án » 19/06/2021 737

Bộ phận nào sau đây KHÔNG có trong bộ xử lí trung tâm [CPU]?

Xem đáp án » 19/06/2021 723

Phần trắc nghiệm

Bộ mã Unicode có thể mã hóa được bao nhiêu kí tự?

Xem đáp án » 19/06/2021 672

Chọn câu SAI

Xem đáp án » 19/06/2021 505

Các số và kí tự thuộc hệ Hexa là:

Xem đáp án » 19/06/2021 311

Tệp nào sau đây là tệp dữ liệu ảnh?

Xem đáp án » 19/06/2021 305

Theo phân loại phần mềm, chương trình diệt virus Norton Antivirus là

Xem đáp án » 19/06/2021 260

Số thập phân 15 có biểu diễn trong hệ nhị phân là

Xem đáp án » 19/06/2021 247

Thiết bị trong hình bên có tên gọi là

Xem đáp án » 19/06/2021 220

Trong hệ nhị phân, tổng của hai số 101 và 11 là

Xem đáp án » 19/06/2021 216

Nội dung nào dưới đây KHÔNG có trong thông tin về một lệnh trong hoạt động của máy tính?

Xem đáp án » 19/06/2021 195

Mã ASCII của kí tự “A” là 01000001. Mã ASCII của kí tự “C” là

Xem đáp án » 19/06/2021 185

Video liên quan

Chủ Đề