1. Trang chủ
  2. » Công Nghệ Thông Tin

Bài giảng Cơ sở lập trình: Chương 2 - Lê Viết Mẫn

47 9 0

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Tiêu đề Cơ sở lập trình: Chương 2
Tác giả Lê Viết Mẫn
Trường học Học viện Công nghệ Thông tin
Chuyên ngành Cơ sở lập trình
Thể loại bài giảng
Năm xuất bản 2012
Thành phố Hà Nội
Định dạng
Số trang 47
Dung lượng 232,94 KB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

Chương 2 cung cấp cho người học những kiến thức cơ bản liên quan đến thuật toán trong lập trình. Những nội dung chính được trình bày trong chương này gồm có: Khái niệm thuật toán, các tính chất của thuật toán, phát triển thuật toán, mô tả thuật toán, các dạng thuật toán cơ bản. Mời các bạn cùng tham khảo.

Trang 1

v 1.0 - 10/2012

Thuật toán

Trang 2

Lê Viết Mẫn - lvman@hce.edu.vn Thuật toán

Trang 3

Giải bài toán trên máy tính

1 Xác định bài toán

2 Thiết kế thuật toán

3 Phân tích thuật toán

4 Cài đặt thuật toán

5 Kiểm tra / Bắt lỗi

6 [ Sửa lỗi ]

Trang 4

Lê Viết Mẫn - lvman@hce.edu.vn Thuật toán

Nội dung

1 Thuật toán

1.1 Khái niệm

1.2 Các tính chất

1.3 Phát triển thuật toán

2 Mô tả thuật toán

3 Các dạng thuật toán cơ bản

4 Ví dụ

4

Trang 5

Thuật toán

Trang 6

Lê Viết Mẫn - lvman@hce.edu.vn Thuật toán

Thuật toán

• Một tập các chỉ thị / lệnh đơn giản được xác định rõ ràng để giải

quyết một bài toán nào đó

Nhận một tập các giá trị ở đầu vào (input )

Tính toán và trả ra một hoặc một tập các giá trị ở đầu ra (output )

gì ? Những yếu tố trong bài toán có quan hệ với nhau thế

nào ? ”

• Gồm các kiến thức chuyên môn mà bạn phải biết để có thể giải bài toán

• Để giải bài toán tính diện tích hình cầu, bạn phải biết công thức tính diện

tích hình cầu

6

Trang 7

• Cấu trúc dữ liệu - Phương pháp tổ chức dữ liệu

Trang 8

Lê Viết Mẫn - lvman@hce.edu.vn Thuật toán

Ví dụ - giải p.t bậc nhất

8

ax + b = 0

Trang 9

Ví dụ - giải p.t bậc nhất

Nếu a ≠ 0: x = -b/a

Ngược lại, a = 0:

Nếu b = 0: pt có vô số nghiệm

Nếu b ≠ 0: pt vô nghiệm

ax + b = 0

Trang 10

Lê Viết Mẫn - lvman@hce.edu.vn Thuật toán

Ví dụ - tìm số lớn nhất

10

Cho ba số a, b, c Tìm số lớn nhất trong ba số đó

Trang 11

Ví dụ - tìm số lớn nhất

Bước 1 : Cho Max = a

Bước 2 : So sánh b với Max Nếu b > Max thì cho Max = b

Bước 3 : So sánh c với Max Nếu c > Max thì cho Max = c

Bước 4 : Trả ra Max là giá trị lớn nhất

Bước 5 : Dừng

Cho ba số a, b, c Tìm số lớn nhất trong ba số đó

Trang 12

Lê Viết Mẫn - lvman@hce.edu.vn Thuật toán

Các câu hỏi về thuật toán

• Thuật toán đã giải quyết được bài toán được phát biểu ?

• Thuật toán đã được định nghĩa tốt ?

• Thuật toán đưa ra được một kết quả ?

• Thuật toán kết thúc sau thời gian tính toán hợp lý ?

12

Trang 13

Tính chất

Tính kết thúc (tính dừng)

• quá trình thực hiện thuật toán phải kết thúc sau khi thực hiện

một số hữu hạn các bước công việc

Bước 1 : Cho s = 0, i = 1

Bước 2 : Cộng thêm i vào s ( s = s + i )

Bước 3 : Tăng i thêm 1 ( i = i + 1 )

Bước 4 : Quay lại bước 2

Bước 5 : Nhận s là kết quả giải bài toán

Thuật toán tính tổng các số tự nhiên

Trang 14

Lê Viết Mẫn - lvman@hce.edu.vn Thuật toán

Tính chất

Tính xác định

• nếu trong những điều kiện như nhau thì kết quả thực hiện

không phụ thuộc vào đối tượng thực hiện thuật toán

• thuật toán phải rõ ràng, không nhập nhằng, không thể hiểu theo nhiều nghĩa

14

Thuật toán tìm giá trị lớn nhấtBước 1 : Cho Max = a

Bước 2 : So sánh b với Max Nếu b > Max thì cho Max = b

Bước 3 : So sánh c với Max Nếu c > Max thì cho Max = c

Bước 4 : Trả ra Max là giá trị lớn nhất

Bước 5 : Dừng

Trang 15

Tính chất

Tính tổng quát

• nếu thuật toán được dùng để giải cả một lớp bài toán cùng loại

Thuật toán tìm giá trị lớn nhấtBước 1 : Cho Max = a

Bước 2 : So sánh b với Max Nếu b > Max thì cho Max = b

Bước 3 : So sánh c với Max Nếu c > Max thì cho Max = c

Bước 4 : Trả ra Max là giá trị lớn nhất

Trang 16

Lê Viết Mẫn - lvman@hce.edu.vn Thuật toán

Tính chất

Tính xác định đầu vào - đầu ra

• nếu xác định rõ các dữ liệu đầu vào và các dữ liệu đầu ra

• đầu vào, đầu ra được xác định càng chính xác thì quá trình xây dựng thuật

toán càng thuận lợi và thuật toán càng có chất lượng cao hơn

16

Thuật toán tìm giá trị lớn nhấtBước 1 : Cho Max = a

Bước 2 : So sánh b với Max Nếu b > Max thì cho Max = b

Bước 3 : So sánh c với Max Nếu c > Max thì cho Max = c

Bước 4 : Trả ra Max là giá trị lớn nhất

Bước 5 : Dừng

Trang 17

Bước 2 : So sánh b với Max Nếu b > Max thì cho Max = b

Bước 3 : So sánh c với Max Nếu c > Max thì cho Max = c

Bước 4 : Trả ra Max là giá trị lớn nhất

Trang 18

Lê Viết Mẫn - lvman@hce.edu.vn Thuật toán

Phát triển thuật toán

• Xác định đầu vào (Input)

Trang 19

Xác định đầu vào

• Chúng ta cần dữ liệu gì ?

• Chúng ta lấy dữ liệu đó như thế nào ?

• Dữ liệu tồn tại ở dạng nào ?

Trang 20

Lê Viết Mẫn - lvman@hce.edu.vn Thuật toán

Trang 21

Xác định các bước xử lý

• Cách xử lý dữ liệu để đạt được kết quả có ý nghĩa ?

• Áp dụng công thức gì ?

Trang 22

Lê Viết Mẫn - lvman@hce.edu.vn Thuật toán

Vẽ biểu đồ HIPO

22

Hierarchy of Inputs Processes & Outputs

Bài toán

C.t con C.t con C.t con C.t con C.t con C.t con

Trang 23

Xác định các c.t con

• Cách nào để chia các vấn đề lớn thành các vấn đề nhỏ hơn, dễ

quản lý hơn ?

• Các chương trình con cần những đầu vào nào ?

• Các xử lý nào là cần thiết cho mỗi chương trình con ?

• Đầu ra nào là được chờ đợi tại mỗi chương trình con ?

Trang 24

Lê Viết Mẫn - lvman@hce.edu.vn Thuật toán

Mô tả thuật toán

24

Trang 25

Nếu a ≠ 0: x = -b/a

Ngược lại, a = 0:

Nếu b = 0: pt có vô số nghiệm

Nếu b ≠ 0: pt vô nghiệm

Trang 26

Lê Viết Mẫn - lvman@hce.edu.vn

If a ≠ 0 then x = -b/a

else a = 0:

If b = 0 then pt có vô số nghiệm

If b ≠ 0 then pt vô nghiệm

• Phụ thuộc vào ngôn ngữ lập trình

ax + b = 0

Trang 27

Lưu đồ

• Còn được gọi là sơ đồ khối

• Sử dụng các khối hình để thể hiện một bước công việc / thao

tác nào đó

• Thứ tự thực hiện các công việc được chỉ định bằng các cạnh có

và dễ thấy được tổng thể của thuật toán

Trang 28

Lê Viết Mẫn - lvman@hce.edu.vn Thuật toán

Ví dụ - lưu đồ p.t bậc nhất

28

Trang 29

Ngôn ngữ lưu đồ

Thực hiện công việc A Vào / ra dữ liệu

Một phép kiểm tra B, tùy thuộc vào trạng thái của B là đúng hay Bắt đầu hay kết thúc một thuật toán

Trang 30

Lê Viết Mẫn - lvman@hce.edu.vn Thuật toán

Các dạng thuật toán

cơ bản

30

Trang 31

Thuật toán tuần tự

statement 1 ;

entry

statement 2 statement 3

Trang 32

Lê Viết Mẫn - lvman@hce.edu.vn Thuật toán

Ví dụ 1

32

Tính tiền lương công nhân nếu biết lương căn bản và số ngày công

Trang 33

Ví dụ 1

Đầu vào : lương căn bản, số ngày công

Đầu ra : tiền lương công nhân

Xử lý : tính theo công thức Lương = Lương căn bản * Ngày công

Tính tiền lương công nhân nếu biết lương căn bản và số ngày công

Trang 34

Lê Viết Mẫn - lvman@hce.edu.vn Thuật toán

Trang 35

Thuật toán lựa chọn

statement expression true

exit

Trang 36

Lê Viết Mẫn - lvman@hce.edu.vn Thuật toán

Ví dụ 2

36

Bước 1 : Cho Max = a

Bước 2 : So sánh b với Max Nếu b > Max thì cho Max = b

Bước 3 : So sánh c với Max Nếu c > Max thì cho Max = c

Bước 4 : Trả ra Max là giá trị lớn nhất

Bước 5 : Dừng

Cho ba số a, b, c Tìm số lớn nhất trong ba số đó

Trang 37

Nhập a, b, c Begin

Trang 38

Lê Viết Mẫn - lvman@hce.edu.vn Thuật toán

Ví dụ 3

38

Nhập vào số nguyên n Kiểm tra nếu n > 0 thì tăng n lên 1 đơn vị

Xuất kết quả ra màn hình

Đầu vào : số nguyên n

Đầu ra : giá trị của n

Xử lý : kiểm tra n > 0, nếu đúng tăng n lên 1

Trang 39

Ví dụ 3

Nhập vào số nguyên n Kiểm tra nếu n > 0 thì tăng n lên 1 đơn vị

Xuất kết quả ra màn hình

Nhập n Begin

n > 0

n = n + 1

In n true

false

Trang 40

Lê Viết Mẫn - lvman@hce.edu.vn Thuật toán

Ví dụ 4

40

Nhập vào số nguyên n Kiểm tra nếu n chẵn xuất ra màn hình câu

“n chẵn”, ngược lại xuất “n lẻ”

Đầu vào : số nguyên n

Đầu ra : giá trị của n

Xử lý : kiểm tra n chẵn hoặc lẻ thì xuất ra dòng tương ứng

Trang 41

Ví dụ 4

Nhập vào số nguyên n Kiểm tra nếu n chẵn xuất ra màn hình câu

“n chẵn”, ngược lại xuất “n lẻ”

Nhập n Begin

n % 2 = 0

In “n chẵn”

In “n lẻ”

Trang 42

Lê Viết Mẫn - lvman@hce.edu.vn Thuật toán

Trang 43

Ví dụ 5

Nhập vào điểm thi ( ∈ [0 10]) Nếu nhập sai thì yêu cầu nhập lại

Đầu vào : số nguyên n ∈ [0 10]

Đầu ra :

Xử lý : nếu n ∉ [0 10] thì yêu cầu nhập lại

Trang 44

Lê Viết Mẫn - lvman@hce.edu.vn Thuật toán

Ví dụ 5

44

Nhập vào điểm thi ( ∈ [0 10]) Nếu nhập sai thì yêu cầu nhập lại

Nhập n Begin

n ∉ [0 10]

End true

false

Trang 46

Lê Viết Mẫn - lvman@hce.edu.vn 46 Thuật toán

Nhập n Begin

Trang 47

Cảm ơn sự chú ý

Câu hỏi ?

Ngày đăng: 21/05/2021, 12:38

TỪ KHÓA LIÊN QUAN

🧩 Sản phẩm bạn có thể quan tâm