ThuậT ToáN

Post on 22-Jun-2015

14.004 views 1 download

description

thuật toán

Transcript of ThuậT ToáN

Giảng viên: Lê Quý LộcBlog: http://loclq.wordpress.com

Ngày: 23/09/2008

Nội Dung

• Giải phương trình bậc hai• Định nghĩa thuật toán• Tính chất thuật toán• Làm sao mô tả thuật toán ?• Giả lệnh• Sơ đồ khối• Ngôn ngữ lập trình

http://loclq.wordpress.com

Giải Phương Trình Bậc Hai

http://loclq.wordpress.com

02 CBxAx• Điều kiện: A ≠ 0• Tính Delta:

• Nếu ∆ = 0 thì

• Nếu ∆ ≠ 0 thì

A

ACB

2

42

A

Bxx

221

A

Bx

21

A

Bx

22

Định Nghĩa Thuật Toán

http://loclq.wordpress.com

• Thuật toán là một trình tự các công việc cần thực hiện để giải quyết một bài toán

• Tính hữu hạn: kết thúc sau một số bước• Tính hiệu quả: thuật toán tối ưu về mặt số bước thực

hiện và sử dụng bộ nhớ• Tính tổng quát: giải bài toán một cách tổng quát• Tính xác định: kết quả chỉ phụ thuộc vào dữ liệu đầu

vào của bài toán

Tính Chất Thuật Toán

http://loclq.wordpress.com

• Mô tả như trong ví dụ giải phương trình bậc hai gọi là mô tả bằng giả lệnh– Ưu điểm: mô tả bằng ngôn ngữ tự nhiên, dễ đọc

dễ hiểu– Nhược điểm: không có chuẩn nhất quán

• Mô tả bằng giả lệnh: là mô tả bài toán bằng ngôn ngữ tự nhiên

Làm Sao Mô Tả Thuật Toán ?

http://loclq.wordpress.com

Sơ Đồ Khối (4.1)

http://loclq.wordpress.com

02 CBxAx• Điều kiện: A ≠ 0• Tính Delta:

• Nếu ∆ = 0 thì

• Nếu ∆ ≠ 0 thì

A

ACB

2

42

A

Bxx

221

A

Bx

21

A

Bx

22

• Cần có một cách biểu diễn bài toán nhất quán

Sơ Đồ Khối (4.2)

http://loclq.wordpress.com

Bắt đầu

Nhập A, B, C

Tính ∆∆

Nếu ∆ ≠ 0

Tính x1, x2

Tính x1 = x2

Kết thúc

Sai

Đúng

• Các kí hiệu trong sơ đồ khối

http://loclq.wordpress.com

Sơ Đồ Khối (4.3)

Begin

Bắt đầu

End

Kết thúcNhập xuất dữ liệu

Thực hiện công việc

Sai

Đúng

Kiểm tra rẽ nhánh

http://loclq.wordpress.com

Sơ Đồ Khối (4.4)

Đúng

Begin

Nhập A, B, C

Tính ∆∆

Nếu ∆ ≠ 0

Tính x1, x2

Tính x1 = x2

End

Sai

In ra x1, x2

program HelloWorld;begin    writeln(Hello World');end.

http://loclq.wordpress.com

Ngôn Ngữ Lập Trình (4.1)

• Ngôn ngữ lập trình• Là một ngôn ngữ nhân tạo, dùng để viết chương

trình chạy trên máy tính• Gồm bộ từ vựng và các quy tắc cú pháp áp dụng

lên bộ từ vựng đó

http://loclq.wordpress.com

Ngôn Ngữ Lập Trình (4.2)

• Phân loại ngôn ngữ lập trình– Ngôn ngữ máy: là các chuỗi nhị phân được xử lí

trực tiếp bởi bộ vi xử lý– Ngôn ngữ bậc thấp: sử dụng một số từ dễ nhớ,

thay cho ngôn ngữ máy– Ngôn ngữ bậc cao: gần gũi với ngôn ngữ tự nhiên,

dễ sử dụng, như C, Pascal,…

http://loclq.wordpress.com

Ngôn Ngữ Lập Trình (4.3)

• Chương trình dịch– Máy tính chỉ hiểu được ngôn ngữ máy (các bit 0 và

1)– Chương trình dịch dịch chương trình viết bằng

ngôn ngữ bậc cao sang ngôn ngữ máy– Có 2 loại chương trình dịch

• Thông dịch: dịch và thực hiện từng lệnh một• Biên dịch: dịch toàn bộ chương trình rồi mới

thực thi

http://loclq.wordpress.com

Ngôn Ngữ Lập Trình (4.4)