Mỗi thuật toán chỉ giải được một bài toán nào đó, nhưng cũng có thể có nhiều thuật toán cùng giải một bài toán, vậy ta phải lựa chọn thuật toán phù hợp nhất để giải bài toán cho trước...[r]
Trang 1TR ƯỜ NG Đ I H C S PH M TP HCM Ạ Ọ Ư Ạ
KHOA CÔNG NGH THÔNG TIN Ệ
GVHD: Th.S LÊ Đ C LONG Ứ SVTH: NGUY N TH ANH TH Ễ Ị Ư
BÀI 6_TIN H C L P 10 Ọ Ớ
Trang 2Trong toán học trước khi
giải một bài toán việc đầu
tiên chúng ta cần phải làm
là gì?
Trang 3Xác định những điều
kiện gì nữa?
Xác định giả thiết và kết luận cần tìm
Trang 4GI I BÀI TOÁN TRÊN MÁY TÍNH Ả
Tương t nh gi i bài toán trong toán h c, ự ư ả ọ khi ta gi i toán trên máy tính thả ường ph i ả
ti n hành qua các bế ước
Vi c gi i toán trên máy thệ ả ường được ti n ế hành qua các bước:
B ướ c 1: Xác đ nh bài toán.ị
B ướ c 2: L a ch n thu t toán.ự ọ ậ
B ướ c 3: Vi t chế ương trình
B ướ c 4: Hi u ch nh.ệ ỉ
B ướ c 5: Vi t tài li u.ế ệ
Trang 5I XÁC Đ NH BÀI TOÁN Ị
Xác định bài toán cần những yếu tố nào?
Xác định Input và Output.
Xác định bài toán
- Là việc xác định Input/Output và mối quan hệ giữa chúng Từ
đó xác định ngôn ngữ lập trình và cấu trúc dữ liệu một cách thích hợp.
Trang 6I XÁC Đ NH BÀI TOÁN Ị
Vậy việc xác định bài toán
nhằm mục đích gì?
Nhằm lựa chọn thuật toán, thể hiện các đại lượng đã cho, các đại lượng phát sinh và ngôn ngữ lập trình thích hợp.
Ví dụ: Tìm UCLN của 2 số nguyên dương M,N
Input: M,N là 2 số nguyên dương Output: UCLN(M,N)
Input?
Output?
Trang 7II L A CH N HO C THI T K THU T TOÁN Ự Ọ Ặ Ế Ế Ậ
Thuật toán để giải một bài toán là gì?
Thuật toán là một dãy hữu hạn các thao tác được sắp xếp theo một trình tự xác định sao cho sau khi thực hiện dãy
thao tác ấy, từ input của bài toán, ta nhận được output cần tìm.
Với mỗi bài toán
có phải chỉ có một
thuật toán duy
nhất?
Mỗi thuật toán chỉ giải được một bài toán nào đó, nhưng cũng có thể có nhiều thuật toán cùng giải một bài toán, vậy ta phải lựa chọn thuật toán phù hợp nhất để giải bài toán cho trước.
Trang 8II.1 L A CH N THU T TOÁN Ự Ọ Ậ
Mỗi thuật toán chỉ giải 1 bài toán song 1 bài toán thì có nhiều thuật toán để giải Vậy ta phải chọn thuật toán tối
ưu nhất trong các thuật toán đưa ra.
Thuật toán tối ưu: Là thuật toán có các tiêu chí sau:
Dể hiểu.
Trình bày dể nhìn.
Thời gian chạy nhanh.
Tốn ít bộ nhớ.
Trang 9II.2 DI N T THU T TOÁN Ễ Ả Ậ
Sau khi chọn thuật toán thích hợp, ta đi tìm cách diễn tả thuật toán.
Ta có những cách nào
để diễn tả thuật toán
Bằng cách liệt kê Bằng sơ đồ khối
Trang 10II.2 DI N T THU T TOÁN Ễ Ả Ậ
Ví dụ: Tìm UCLN của 2 số nguyên dương M, N
+ Xác định bài toán
Input: M, N
Output: UCLN (M, N)
+ Ý tưởng:
Nếu M=N thì UCLN(M,N) =M hoặc N
Nếu M<N thì UCLN (M,N)=UCLN(M,N-M)
Nếu M>N thì UCLN (M,N)=UCLN(M-N,N)
Trang 11II.2 DI N T THU T TOÁN Ễ Ả Ậ
+ Thu t toán: ậ
· Cách li t kêệ
Bước 1: Nh p M, Nậ
Bước 2: N u M = N thì UCLN = Mế
Bước 3: N u M > N thì M ế M – N r i quay l i ồ ạ B2 đ ki m tra l i.ể ể ạ
Bước 4: N N – M r i quay lai B2 ồ
Bước 5: Đ a ra UCLN và k t thúc.ư ế
Trang 12II.2 DI N T THU T TOÁN Ễ Ả Ậ
S đ kh iơ ồ ố
Nh p M,N ậ
N N-M
M=N Đ a ra M vàư
KT
M>N S
Đ
S
M M-N Đ
Trang 13Khi có thuật toán rồi thì máy tính có thể hiểu
và thực hiện theo được hay chưa?
Chưa, việc tiếp theo là phải chuyển đổi thuật toán đó sang chương trình.
Thuật toán + Ngôn ngữ lập trình = chương trình
Trang 14III VI T CH Ế ƯƠ NG TRÌNH
Là vi c l a ch n cách t ch c d li u và s ệ ự ọ ổ ứ ữ ệ ử
d ng ngôn ng l p trình đ di n t đúng ụ ữ ậ ể ễ ả
thu t toán.ậ
Vi t chế ương trình trong ngôn ng nào thì ữ
ph i tuân theo quy đ nh ng pháp c a ngôn ả ị ữ ủ
ng đó.ữ
Trang 15IV HI U CH NH Ệ Ỉ
Khi ta giải một bài toán có phải lúc nào kết quả cũng đúng
không?
Chương trình được viết không phải lúc nào cũng đảm bảo hoàn toàn đúng đắn, do
đó chúng ta phải hiệu chỉnh chương trình
Trang 16IV HI U CH NH Ệ Ỉ
Vậy hiệu chỉnh
là gì?
Chương trình được kiểm tra bằng cách cho chạy thử trên những bộ Input mà người ta đã biết trước Output.
• Các bộ Input-Output này gọi là các Test
• Nếu có sai sót người lập trình phải sửa chương trình rồi thử lại
Quá trình này được gọi là hiệu chỉnh.
Trang 17V VI T TÀI LI U Ế Ệ
Vi t tài li u là mô t bài toán, thu t toán, ế ệ ả ậ thi t k chế ế ương trình, k t qu th nghi m ế ả ử ệ
và hướng d n s d ng.ẫ ử ụ
- Tài li u giúp ích cho ngệ ườ ử ụi s d ng chương trình và cho vi c đ xu t nh ng kh năng ệ ề ấ ữ ả hoàn thi n thêm.ệ
- Chú ý các bước trên có th l p l i nhi u l n ể ặ ạ ề ầ cho đ n khi ta cho r ng chế ằ ương trình đã làm
vi c đúng đ n và hi u qu ệ ắ ệ ả
Trang 18THE END.
TÂM THEO DÕI !