Tải bản đầy đủ (.pdf) (42 trang)

GIÁO TRÌNH TIN HỌC CĂN BẢN_CHƯƠNG 3: GIQI3 QUYẾT BÀI TOÁN BẰNG MÁY TÍNH pptx

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 (1.1 MB, 42 trang )

133
CHNG III
GIAI QUYET BAỉI TOAN BAẩNG
MAY TNH
134
CHƯƠNG III
GIẢI QUYẾT BÀI TOÁN BẰNG MÁY
TÍNH
3.1 Kỹ thuật lập trình
3.2 Thuật toán và Thuật giải
3.3 Biểu diễn thuật toán
3.4 Các bước giải quyết bài toán trên
máy
135
3.1 Kyõ thuaät laäp trình
136
Khái quát
• Kỹ thuật xây dựng phần mềm chính là kỹ thuật
lập trình. Lập trình vừa là một kỹ thuật vừa là
một nghệ thuật.
• Lập trình (Programming) thực chất là điều
khiển - bằng một ngôn ngữ lập trình cụ thể -
cách xử lý thông tin trên máy theo yêu cầu của
bài toán đặt ra.
• Để lập trình, phải biết cách tổ chức dữ liệu
(nguyên liệu để máy xử lý) và cách thức xử lí dữ
liệu (thuật giải) để cho ra kết quả mong muốn.
137
PROGRAMMING
=
ALGORITHMS


+
DATA STRUCTURE
138
• PHẢI TỔ CHỨC DỮ LIỆU THEO CÁCH
TỐT NHẤT :
Dữ liệu trong tin học phải được phân loại,
xác đònh một cách rạch ròi theo những quy
đònh chặt chẽ, chính xác để máy có thể
phân biệt, nhận biết, lưu trữ và xử lý
• PHẢI TÌM ĐƯC THUẬT TOÁN TỐT
NHẤT, TỐI ƯU NHẤT
139
• 4 TIÊU CHUẨN ĐÁNH GIÁ MỘT
CHƯƠNG TRÌNH :
 Tính tin cậy
 Tính uyển chuyển
 Tính trong sáng
 Tính hữu hiệu
140
LẬP TRÌNH CẤU TRÚC
 Cấu trúc về mặt dữ liệu
 Từ những lệnh đơn giản đã có hoặc những lệnh
đã có cấu trúc, có thể xây dựng những lệnh có cấu
trúc phức tạp hơn
 Cấu trúc về mặt chương trình :
Một chương trình lớn có thể chia thành nhiều
modun chương trình con độc lập
• Mỗi chương trình con lại có thể phân chia thành
các chương trình con khác.
PASCAL là một trong các ngôn ngữ tiêu biểu về

có cấu trúc
141
3.2 Thuaọt toaựn
vaứ
Giaỷi thuaọt
142
KHAI NIEM THUAT TOAN
Là khái niệm cơ sở của Toán học và
Tin học
Thuật toán (Algorithm) là một hệ
thống chặt chẽ và rõ ràng các quy tắc
nhằm xác định một dãy các thao tác trên
nhng đối t-ợng, sao cho sau một số hu
hạn b-ớc thực hiện các thao tác ta đạt
đ-ợc mục tiêu định tr-ớc.
143
Ng-ời hoặc máy thực hiện
một thuật toán đ-ợc gọi là một
bộ xử lý.
Nh- vậy một bộ xử lý của
một thuật toán T nào đó là một
cơ chế có kh nng thực hiện
các thao tác trên các đối t-ợng
theo một trỡnh tự do T quy định.
144
Cùng một bài toán có thể có
nhiều thuật toán khác nhau.
Thuật toán đơn giaỷn, dễ
hiểu, có độ chính xác cao, đ-ợc
baỷo đaỷm về mặt toán học, dễ

triển khai trên máy, thời gian
thao tác ngắn, đ-ợc gọi là thuật
toán tối -u.
145
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.
Lý thuyết về thuật toán phaỷi giaỷi
quyết các vấn đề sau :
-Nhửừng bài toán nào giaỷi đ-ợc bằng
thuật toán; bài toán nào không giaỷi đ-ợc
bằng thuật toán
-Tỡm thuật toán tốt nhất, tối -u của
một bài toán
-Triển khai thuật toán trên máy tính
146
Vaứi vớ duù
Thuật toán giaỷi ph-ơng trỡnh bậc hai :
A X
2
+ BX + C = 0 (A 0)
-B-ớc 1 : Tính DELTA = B*B-4*A*C
-B-ớc 2 : So sánh DELTA với số 0
-B-ớc 3 : Rẽ làm 3 tr-ờng hợp :
DELTA
DELTA
-Tr-ờng hợp DELTA < 0 :
thông báo ph-ơng trỡnh vô nghiệm ; kết thúc thuật toán.
-Tr-ờng hợp DELTA = 0 : tính nghiệm kép :
X1 = X2
thông báo nghiệm kép; kết thúc thuật toán.

-Tr-ờng hợp DELTA > 0 :tính hai nghiệm phân biệt:
X1, X2
thông báo nghiệm ; kết thúc thuật toán.
147
DELTA
DELTA
Thuật toán Hoocne tính giá trị của đa thức :
Cho P
n
(X)=A
n
X
n
+ A
n-1
X
n-1
+ +A
1
X
1
+A
0
Tính P
n
(c) ?
P
n
(c)=( ((A
n

.c +A
n-1
).c + A
n-2
) ).c + A
0
- B-ớc 1 : Cho i = n ; Q = A
n
- B-ớc 2 : Cho i nhận giá trị cũ của i trừ 1 : i = i - 1
So sánh i với 0.
- B-ớc 3 : Rẽ làm 2 tr-ờng hợp :
1-Tr-ờng hợp i >= 0 :
tính Q bằng giá trị cũ của Q nhân với c cộng với A
i
;
Quay trở lại b-ớc 2.
2-Tr-ờng hợp i < 0 :
thông báo kết quaỷ Q; Kết thúc thuật toán.
148
DELTA
DELTA
ý nghĩa của thuật toán hoocne
Cho P
n
(X)=A
n
X
n
+ A
n-1

X
n-1
+ +A
1
X
1
+A
0
Viết đa thức d-ới dạng :
P
n
(c)=( ((A
n
.c +A
n-1
).c + A
n-2
) ).c + A
0
Chỉ bao gồm các phép nhân, cộng liên tiếp
P
2
(c)=(A
2
.c +A
1
).c + A
0
P
3

(c)=((A
3
.c +A
2
).c + A
1
).c + A
0
149
6 TNH CHAT
CUA THUAT TOAN
1-tính dừng - kết thúc
2-tính xác định
3-tính hàng loạt
4-tính KH THI
5-tính đầy đủ-vét cạn
6-tính đúng đắn
150
TNH DệỉNG
Thuật toán phaỷi kết thúc sau một số hửừu
haùn b-ớc.
Ví dụ : Thuật toán không dừng
1) Xoá bng
2) Viết số 9
3) Thực hiện b-ớc 1
Ví dụ 7 : Thuật toán không dừng
ọc các số tự nhiên liên tiếp, bắt đầu từ 1
151
Các thao tác ở mỗi b-ớc phi 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 bộ xử lý
khác nhau hoặc hai lần thao tác khác nhau
phi cho cùng một kết qu khi thực hiện cùng
một thuật toán.
Các ng-ời khác nhau cùng sử dụng một
thuật toán, sẽ hành động giống nhau cho dù
họ không hiểu gỡ về bn chất và ý nghĩa của
vấn đề.
TNH XAC ẹềNH
152
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.
Thuật toán Hooc-ne có tính hàng loạt trên
tập s thc R v bất kỡ đa thức đại số bậc nào.
Thuật toán Gii phng trỡnh bc 2 khụng
có tính hàng loạt nếu số liệu gán cho a, b,c nhập
từ bàn phím.
Chẳng hạn khi nhập a=0 hoặc a không
phi là số .
TNH HAỉNG LOAẽT
153
Thuật toán phi bao gồm nhng thao
tác mà máy có thể thực hiện đ-ợc.
Mỏy tớnh chỉ có thể thực hiện đ-ợc
nhng 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.
Thuật toán Hooc-ne có tính kh thi.

Thuật toán Gii phng trỡnh bc 2
không có tính kh thi trong tr-ờng hợp
DELTA > 0 vỡ máy không thể thực hiện phép
tính khai cn DELTA.
TNH KHA THI
154
Thuật toán phi vét đ-ợc hết các
tỡnh huống, các kh nng có thể xy
ra, không bỏ sót bất k một tr-ờng
hợp nào trong miền áp dụng.
Thuật toán Hooc-ne v Gii
phng trỡnh bc 2 không có tính đầy
đủ nếu d liệu nhập từ bàn phím
TNH ẹAY ẹU-VET CAẽN
155
TNH ẹUNG ẹAẫN
Thuật toán phi cho kết qu đúng của bài
toán nghĩa là phi đ-ợc chứng minh về mặt
toán học .
Thuật toán tỡm bội số chung nhỏ nhất của
hai số nguyên d-ơng a,b ký hiệu c=BSCNN(a,b) :
-B1 : Nếu a = 1 thỡ c = b , dừng
Nếu b = 1 thỡ c = a , dừng
-B2 : Nếu a >1 và b >1 thỡ c = a*b , dừng
Có thể kiểm tra 100 tr-ờng hợp của a, b đều
cho kết qa đúng, nh-ng với a = 4, b = 2 thỡ sai.
Thuật toán ny không có tính đúng đắn trên N
156
MỘT THUẬT TOÁN PHẢI
THOẢ MÃN ĐỒNG THỜI

CÁC TÍNH CHẤT TRÊN
157
CẤU TRÚC CƠ BẢN CỦA
THUẬT TOÁN

×