Tải bản đầy đủ (.ppt) (86 trang)

slide bài giảng giải thuật mã giả lưu đồ mã giả

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (439.46 KB, 86 trang )

www.hoasen.edu.vn
Cùng Đại học Hoa Sen xây dựng tương lai

Nhập Môn Lập Trình
Giải Thuật – Mã Giả – Lưu Đồ Giải Thuật
Cấu trúc If … Else, Switch
www.hoasen.edu.vn
Cùng Đại học Hoa Sen xây dựng tương lai

Road Map

Giải thuật

Các bước lập trình giải quyết vấn đề

Giải thuật là gì?

Đặc tính của giải thuật

Phát triển giải thuật

Phát triển từ trên xuống (Top-down development)

Từng bước tinh chế (step-wise refinement)

Cấu trúc chương trình

Mã giả và lưu đồ

Mã giả (Pseudo Code)


Lưu đồ (Flowchart)
www.hoasen.edu.vn
Cùng Đại học Hoa Sen xây dựng tương lai

Road Map (tt)

Cấu trúc phân nhánh

IF

IF … ELSE

SWITCH … CASE
www.hoasen.edu.vn
Cùng Đại học Hoa Sen xây dựng tương lai

Các bước lập trình giải quyết vấn đề

Chúng ta thường gặp phải những bài toán cần giải quyết.

Để giải quyết những bài toán đó, chúng ta cần tìm hiểu chúng
trước rồi sau đó mới hoạch định các bước cần làm.

Giả sử chúng ta muốn đi từ phòng học F103 đến căn tin. Ðể
thực hiện việc này chúng ta cần hiểu nó rồi tìm ra các bước
giải quyết trước khi thực thi các bước đó:

BƯỚC 1 : Rời phòng

BƯỚC 2 : Ðến cầu thang


BƯỚC 3 : Xuống cầu thang

BƯỚC 4 : Ði tiếp đến căn tin
www.hoasen.edu.vn
Cùng Đại học Hoa Sen xây dựng tương lai

Các bước lập trình giải quyết vấn đề

Thủ tục trên liệt kê tập hợp các bước thực hiện được xác định
rõ ràng cho việc giải quyết vấn đề.

Một tập hợp các bước như vậy gọi là giải thuật
www.hoasen.edu.vn
Cùng Đại học Hoa Sen xây dựng tương lai

Giải thuật là gì?

Giải thuật hay thuật toán là một chuổi hữu hạn các bước cụ thể
rõ ràng cần thiết để giải quyết bài toán nhất định.

Một tập hợp có trình tự của các bước rõ ràng thực thi được
dùng diễn giải một quy trình có kết cục.

Trong ngữ cảnh lập trình, thuật toán là một chuỗi các câu lệnh
được thiết kế theo quy cách mà nếu các câu lệnh được thực hiện
theo một trình tự quy định, kết quả mong muốn sẽ đạt được.

Các câu lệnh cần phải được cụ thể và rõ ràng.


Kết quả phải được thu sau một số hữu hạn các bước thực thi.

Một thuật toán phải có kết cục và không có một hoặc nhiều
câu lệnh được lập lại một cách vô hạn.
www.hoasen.edu.vn
Cùng Đại học Hoa Sen xây dựng tương lai

Giải thuật là gì?
Ví dụ 1: giải thuật tính tổng hai số

Bước 1: Bắt đầu

Bước 2: Đọc hai số A và B

Bước 3: Cộng A và B, lưu kết quả vào C

Bước 4: Hiện thị kết quả C

Bước 5: Kết thúc
www.hoasen.edu.vn
Cùng Đại học Hoa Sen xây dựng tương lai

Giải thuật là gì?
Ví dụ 2: hướng dẫn làm bánh flan
Nguyên liệu: 05 hột gà, 01 hộp sữa đặc, 200gr đường cát, 01 ống
vani, 03 chén sữa tươi, 1,5 lon sữa bò nước đun sôi để nguội, 20
khuôn nhựa có nắp đậy
Cách làm:

Khuấy sữa đặc và 1,5 lon nước sôi để nguội, cho thêm 100gr

đường cát vào quậy cho tan đều.

Đập trứng vào tô lớn, dùng đũa đánh đều cho tan lòng trắng và
lòng đỏ.

Cho ống vani, trứng vào dung dịch sữa đánh đều.
www.hoasen.edu.vn
Cùng Đại học Hoa Sen xây dựng tương lai

Giải thuật là gì?

100gr đường còn lại cho vào nồi thắng hơi vàng. Cho vào 01
muỗng nước khuấy đều nhấc xuống để hơi nguội, chia đều nước
đường vừa thắng ra 20 khuôn nhựa đã chuẩn bị sẵn.

Cuối cùng cho hỗn hợp trứng sữa vào đều khuôn, đậy nắp lại

Cho bánh vào hấp cách thủy, đun lửa vừa để bánh mịn màng
không bị rỗ.

Trong lúc hấp bánh khoảng 10 phút mở nắp nồi hấp bánh 1 lần,
hấp khoảng 15 – 20 phút là chín bánh.

Đem ra để nguội, cho vào tủ lạnh hoặc ủ trong đá ăn mới ngon
www.hoasen.edu.vn
Cùng Đại học Hoa Sen xây dựng tương lai

Giải thuật là gì?
So sánh hai ví dụ:


Các câu lệnh trong ví dụ 1 cụ thể và rõ ràng → kết quả không
thay đổi cho tất cả lần thực thi

Một số bước hướng dẫn trong ví dụ 2 không cụ thể, còn mơ hồ
→ phụ thuộc vào người thực hiện kết quả đạt được có thể:

Không thành công

Thành công nhưng

bánh không ngon, nhìn không đẹp mắt

bánh ngon, nhìn rất đẹp mắt, v.v.

Các bước hướng dẫn trong ví dụ 2 cũng tương tự như một thuật
toán nhưng không đủ điều kiện kỹ thuật là một thuật toán
www.hoasen.edu.vn
Cùng Đại học Hoa Sen xây dựng tương lai

Đặc tính của giải thuật
Để hội đủ điều kiện là thuật toán, một chuỗi các câu lệnh cần có các đặc điểm
sau:

Các bước sử dụng trong thuật toán phải được rõ ràng và xác định chính xác

Mỗi câu lệnh được xây dựng sao cho nó có thể được thực hiện trong một
thời gian hữu hạn

Tránh trường hợp không chắc chắn thực thi câu lệnh nào kế tiếp


Số bước trong thuật toán nên hữu hạn và thuật toán cần phải được chấm dứt,
có nghĩa là, nó không được có kết thúc mở

Việc thi hành của thuật toán được kết thúc sau một số hữu hạn các bước

Sau khi thực hiện các câu lệnh, tức là sau khi kết thúc thuật toán, sẽ có được
kết quả mong muốn

Thuật toán cần được tổng quát đủ để đối phó với mọi tình huống
www.hoasen.edu.vn
Cùng Đại học Hoa Sen xây dựng tương lai

Road Map

Giải thuật

Các bước lập trình giải quyết vấn đề

Giải thuật là gì?

Đặc tính của giải thuật

Phát triển giải thuật

Phát triển Top-down

Step-wise refinement

Cấu trúc chương trình


Mã giả và lưu đồ

Mã giả (Pseudo Code)

Lưu đồ (Flowchart)
www.hoasen.edu.vn
Cùng Đại học Hoa Sen xây dựng tương lai

Phát triển top-down

Top-down là một phương pháp trong đó giải pháp cho một
vấn đề tính toán lớn được phát triển từ một lời giải tổng quát
mơ hồ đến một thuật toán xác định chính xác.

Phát triển bằng cách này đưa đến một phương pháp để xử lý
sự phức tạp của vấn đề bằng cách xé nhỏ chúng thành các mô-
đun dễ dàng và dễ hiểu hơn.

Quá trình liên tục xé nhỏ một nhiệm vụ xuống thành các
nhiệm vụ con sẽ được tiếp tục cho đến khi các nhiệm vụ con
này có thể dễ dàng thực hiện
www.hoasen.edu.vn
Cùng Đại học Hoa Sen xây dựng tương lai

Phát triển top-down (tt)
Main Program
Main Process Output functionsInput functions
Sub function 1 Sub function 2 Sub function 3
www.hoasen.edu.vn
Cùng Đại học Hoa Sen xây dựng tương lai


Phát triển top-down (tt)

Phương pháp topdown về bản chất là xé nhỏ một hệ thống để
có được cái nhìn sâu sắc về thành phần của tiểu hệ thống.

Trong phương pháp topdown, được hình thành trước nhất là
cái nhìn tổng quan của hệ thống. Nó được quy định cụ thể
nhưng không chứa bất kỳ chi tiết của hệ thống phụ cấp một.

Đôi lúc cần phần cấp xuống nhiều mức độ, cho đến khi toàn
bộ các chi tiết kỹ thuật (specification) được chi tiết hóa đến
mức cơ bản nhất.
.
www.hoasen.edu.vn
Cùng Đại học Hoa Sen xây dựng tương lai

Stepwise refinement

Là một kỹ thuật nhằm phân rã một hệ thống từ chi tiết kỹ thuật
mức độ cao thành các thành phần cơ bản.

Phân rã một vấn đề phức tạp thành một số bước đơn giản

Mỗi bước này có thể được giải quyết bằng một thuật toán nhỏ
hơn và đơn giản hơn so với bài toán tổng thể cần giải quyết

Dễ dàng xây dựng hơn và phác thảo chi tiết hơn

Thuật toán phụ có thể được chia thành nhiều phần nhỏ hơn


Thuật toán tiếp tục được cải tiến theo cách phân rã này này
cho đến khi mỗi bước có đầy đủ chi tiết

Cải tiến có nghĩa là thay thế các bước hiện tại / câu lệnh
với một phiên bản mới đầy chi tiết hơn
www.hoasen.edu.vn
Cùng Đại học Hoa Sen xây dựng tương lai

Stepwise refinement (tt)
Ví dụ: robot pha trà. Các bước (giải thuật) để thực hiện là:
1. Bỏ trà vào bình
2. Đun nước
3. Chế nước sôi vào bình
4. Chờ 5 phút (cho ra trà)
5. Rót trà vào tách
Các bước này chưa đủ chi tiết cho robot thực hiện, cần cải tiến
từng bước thành chuổi các bước nhỏ chi tiết hơn.
www.hoasen.edu.vn
Cùng Đại học Hoa Sen xây dựng tương lai

Stepwise refinement (tt)
Cải tiến lần 1:
1. Bỏ trà vào bình
1. Mở hộp trà
2. Xúc đầy 1 muỗng lá trà
3. Bỏ trà vào bình
4. Đóng nắp hộp trà
2. Đun nước
1. Đổ nước vào ấm nước điện

2. Bật công tắc ấm nước
3. Chờ nước sôi
4. Tắt công tắc ấm nước
www.hoasen.edu.vn
Cùng Đại học Hoa Sen xây dựng tương lai

Stepwise refinement (tt)
3. Chế nước sôi vào bình
4. Chờ 5 phút (cho ra trà)
5. Rót trà vào tách
1. Rót trà từ bình vào tách cho đến khi tách đầy

5 bước ban đầu đã được cải tiến thành chuổi các bước phụ chi
tiết hơn (bước 4 không cần thiết)

Một vài bước phụ có thể cải tiến thêm nữa. Ví dụ như:
www.hoasen.edu.vn
Cùng Đại học Hoa Sen xây dựng tương lai

Stepwise refinement (tt)
Cải tiến lần hai
2. Đun nước
1. Đổ nước vào ấm nước điện
1. Đặt ấm nước dưới vòi nước
2. Mở vòi nước
3. Chờ đến khi ấm nước đầy
4. Tắt vòi nước

Các bước phụ khác có thể cải tiến thêm nữa


Chương trình sẽ được xây dựng bằng cách thông dịch từng
bước (đã được cải tiến cuối cùng) sang câu lệnh của ngôn ngữ
lập trình
www.hoasen.edu.vn
Cùng Đại học Hoa Sen xây dựng tương lai

Stepwise refinement (tt)
Giải thuật ban đầu Cải tiến lần 1 Cải tiến lần 2
1. Bỏ trà vào bình 1.1 Mở hộp trà 1.1.1 Lấy hộp trà từ ngăn tủ
1.1.2 Tháo nắp hộp trà
1.2 Xúc đầy 1 muỗng lá trà
1.3 Bỏ trà vào bình
1.4 Đóng nắp hộp trà 1.4.1 Đặt nắp lên hộp trà
1.4.2 Đặt hộp trà về ngăn tủ
2. Đun nước 2.1 Đổ nước vào ấm nước điện 2.1.1 Đặt ấm nước dưới vòi
nước
2.1.2 Mở vòi nước
2.1.3 Chờ đến khi ấm nước
đầy
www.hoasen.edu.vn
Cùng Đại học Hoa Sen xây dựng tương lai

Stepwise refinement (tt)
Giải thuật ban đầu Cải tiến lần 1 Cải tiến lần 2
2.1.4 Tắt vòi nước
2.2 Bật công tắc ấm nước
2.3 Chờ nước sôi 2.3.1 Chờ đến khi ấm nước
kêu
2.4 Tắt công tắc ấm nước
3. Chế nước sôi

vào bình
3.1 Chế nước sôi từ ấm vào
bình đến khi bình đầy
4. Chờ 5 phút
5. Chế trà vào tách 5.1 Rót trà từ bình vào tách
cho đến khi tách đầy
www.hoasen.edu.vn
Cùng Đại học Hoa Sen xây dựng tương lai

Road Map

Giải thuật

Các bước lập trình giải quyết vấn đề

Giải thuật là gì?

Đặc tính của giải thuật

Phát triển giải thuật

Phát triển Top-down

Step-wise refinement

Cấu trúc chương trình

Mã giả và lưu đồ

Mã giả (Pseudo Code)


Lưu đồ (Flowchart)
www.hoasen.edu.vn
Cùng Đại học Hoa Sen xây dựng tương lai

Cấu trúc chương trình

Một chương trình như Microsoft Windows nhìn bề ngoài không
có gì chung với một video game như World of Warcraft.

Tuy nhiên, cho dù mục đích có khác nhau, mọi chương trình đều
bao gồm các câu lệnh (dòng mã) “biểu” các máy tính phải làm gì,
theo từng bước.

Trong mỗi chương trình, các câu lệnh tổ chức theo ba cách: tuần
tự, phân nhánh, hoặc vòng lặp.

Bằng cách kết hợp chúng với nhau, bạn có thể viết bất cứ loại
chương trình
www.hoasen.edu.vn
Cùng Đại học Hoa Sen xây dựng tương lai

Cấu trúc tuần tự

Các câu lệnh nối tiếp nhau, từ câu
lệnh đầu tiên ở trên cùng đến câu
lệnh cuối cùng ở phía dưới.

Mỗi chương trình tổ chức hầu hết các
câu lệnh của nó theo tuần tự.


Ít có chương trình tổ chức tất cả các
câu lệnh của chúng theo tuần tự.

Lý do là nếu một chương trình tổ
chức tất cả các câu lệnh của nó theo
tuần tự, chương trình có thể chạy qua
câu lệnh của nó đúng một lần trước
khi nó dừng lại.
Kết thúc
Bắt đầu
Câu lệnh 1
Câu lệnh 2
Câu lệnh 3
Câu lệnh 4

×