Tài liệu Bài giảng Giải quyết bài toán bằng máy tính: CHƯƠNG III GIẢI QUYẾT BÀI TOÁN BẰNG MÁY TÍNH 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 3.1 Kỹ thuật lập trình 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. PROGRAMMING = ALGORITHMS + DATA STRUCTURE 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â...
42 trang |
Chia sẻ: hunglv | Lượt xem: 1522 | Lượt tải: 1
Bạn đang xem trước 20 trang mẫu tài liệu Bài giảng Giải quyết bài toán bằng máy tính, để tải tài liệu gốc về máy bạn click vào nút DOWNLOAD ở trên
CHƯƠNG III GIAÛI QUYEÁT BAØI TOAÙN BAÈNG MAÙY TÍNH CHƯƠNG III GIAÛI QUYEÁT BAØI TOAÙN BAÈNG MAÙY TÍNH 3.1 Kyõ thuaät laäp trình 3.2 Thuaät toaùn vaø Thuaät giaûi 3.3 Bieåu dieãn thuaät toaùn 3.4 Caùc böôùc giaûi quyeát baøi toaùn treân maùy 3.1 Kyõ thuaät laäp trình Khaùi quaùt Kyõ thuaät xaây döïng phaàn meàm chính laø kyõ thuaät laäp trình. Laäp trình vöøa laø moät kyõ thuaät vöøa laø moät ngheä thuaät. Laäp trình (Programming) thöïc chaát laø ñieàu khieån - baèng moät ngoân ngöõ laäp trình cuï theå - caùch xöû lyù thoâng tin treân maùy theo yeâu caàu cuûa baøi toaùn ñaët ra. Ñeå laäp trình, phaûi bieát caùch toå chöùc döõ lieäu (nguyeân lieäu ñeå maùy xöû lyù) vaø caùch thöùc xöû lí döõ lieäu (thuaät giaûi) ñeå cho ra keát quaû mong muoán. PROGRAMMING = ALGORITHMS + DATA STRUCTURE PHAÛI TOÅ CHÖÙC DÖÕ LIEÄU THEO CAÙCH TOÁT NHAÁT : Döõ lieäu trong tin hoïc phaûi ñöôïc phaân loaïi, xaùc ñònh moät caùch raïch roøi theo nhöõng quy ñònh chaët cheõ, chính xaùc ñeå maùy coù theå phaân bieät, nhaän bieát, löu tröõ vaø xöû lyù PHAÛI TÌM ÑÖÔÏC THUAÄT TOAÙN TOÁT NHAÁT, TOÁI ÖU NHAÁT 4 TIEÂU CHUAÅN ÑAÙNH GIAÙ MOÄT CHÖÔNG TRÌNH : ü Tính tin caäy ü Tính uyeån chuyeån ü Tính trong saùng ü Tính höõu hieäu LAÄP TRÌNH CAÁU TRUÙC ü Caáu truùc veà maët döõ lieäu ü Töø nhöõng leänh ñôn giaûn ñaõ coù hoaëc nhöõng leänh ñaõ coù caáu truùc, coù theå xaây döïng nhöõng leänh coù caáu truùc phöùc taïp hôn ü Caáu truùc veà maët chöông trình : Moät chöông trình lôùn coù theå chia thaønh nhieàu modun chöông trình con ñoäc laäp Moãi chöông trình con laïi coù theå phaân chia thaønh caùc chöông trình con khaùc. PASCAL laø moät trong caùc ngoân ngöõ tieâu bieåu veà coù caáu truùc 3.2 Thuaät toaùn vaø Giaûi thuaät KHAÙI NIEÂM THUAÄT TOAÙN 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 những ®èi tîng, sao cho sau mét sè hữu h¹n bíc thùc hiÖn c¸c thao t¸c ta ®¹t ®îc môc tiªu ®Þnh tríc. 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ả năng 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. 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. 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 Vaøi ví duï ThuËt to¸n giaûi ph¬ng trình bËc hai : A X2 + 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 : -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. ThuËt to¸n Hoocne tÝnh gi¸ trÞ cña ®a thøc : Cho Pn(X)=AnXn + An-1Xn-1 +........ +A1X1 +A0 TÝnh Pn(c) ? Pn(c)=(...((An.c +An-1).c + An-2 )...).c + A0 - Bíc 1 : Cho i = n ; Q = An - 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 Ai ; Quay trë l¹i bíc 2. 2-Trêng hîp i 0 vì m¸y kh«ng thÓ thùc hiÖn phÐp tÝnh khai căn DELTA. TÍNH KHAÛ THI ThuËt to¸n phải vÐt ®îc hÕt c¸c tình huèng, c¸c khả năng cã thÓ xẩy 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à Giải phương trình bậc 2 kh«ng cã tÝnh ®Çy ®ñ nÕu dữ liÖu nhËp tõ bµn phÝm TÍNH ÑAÀY ÑUÛ-VEÙT CAÏN TÍNH ÑUÙNG ÑAÉN ThuËt to¸n phải cho kÕt quả ®óng cña bµi to¸n nghÜa lµ phải ®î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 qủa ®óng, nhng víi a = 4, b = 2 thì sai. ThuËt to¸n này kh«ng cã tÝnh ®óng ®¾n trªn N MOÄT THUAÄT TOAÙN PHAÛI THOAÛ MAÕN ÑOÀNG THÔØI CAÙC TÍNH CHAÁT TREÂN CAÁU TRUÙC CÔ BAÛN CUÛA THUAÄT TOAÙN CAÁU TRUÙC TUAÀN TÖÏ THAO TÁC 2 THAO TÁC 3 THAO TÁC 1 CAÁU TRUÙC REÕ NHAÙNH ĐIỀU KIỆN THAO TÁC 1 THAO TÁC 2 CAÁU TRUÙC VOØNG LAËP ĐIỀU KIỆN THAO TÁC THAO TÁC CAÙC PHÖÔNG PHAÙP BIEÅU DIEÃN THUAÄT TOAÙN 1) Dïng ng«n ngữ mẹ đẻ hoặc ngôn ngữ mã giả 2) Ng«n ngữ lu ®å 3) Ng«n ngữ lËp trình BiÓu diÔn thuËt to¸n b»ng ng«n ngữ lËp trình chÝnh lµ thảo ch¬ng, môc tiªu quan träng trong Tin häc. Ngoân ngöõ maõ giaû ThuËtTo¸nPh¬ngTrinhBËcHai; BiÕn A,B,C,DELTA,X1,X2 : SèThùc ; B¾tĐÇu NhËp A,B,C; DELTA:=B*B-4*A*C; NÕu DELTA 0 THEN BEGIN Writeln('Phuong trinh coù 2 nghiem : '); X1 := (-b+sqrt(delta))/(2*a); X2 := (-b-sqrt(delta))/(2*a); Writeln(' X1 = ', X1: 9 : 2); Writeln(' X2 = ', X2: 9 : 2); END; Readln; END. Kh¸i niÖm thuËt to¸n đã trình bày chÝnh lµ c¸nh cöa khÐp kÝn cho viÖc gỉai c¸c bµi to¸n vì: -NhiÒu bµi to¸n kh«ng tháa c¸c ®Æc trng c¬ bản cña thuËt to¸n. -Cã nhiều bµi to¸n cha tìm ra thuËt to¸n hoÆc cha chøng minh ®îc lµ cã thuËt to¸n hay kh«ng. Cã những bµi to¸n cã thuËt to¸n nhng khã thùc hiÖn hoÆc kh«ng thùc hiÖn ®îc THUËT GI¶I · Cã những bµi to¸n ®îc giải tuy vi ph¹m c¸c quy ®Þnh cña thuËt to¸n nhng lêi giải vÉn ®îc thùc tiÔn chÊp nhËn THUẬT GIẢI CŨNG LÀ THUẬT TOÁN NHƯNG MỞ RỘNG CHO CÁC ĐIỀU KIỆN NHỮNG MỞ RỘNG CHO CÁC ĐIỀU KIỆN · Më réng tÝnh x¸c ®Þnh TÝnh x¸c ®Þnh thùc chÊt lµ tÝnh ®¬n trÞ cña c¸ch giải cña mét thuËt to¸n vµ sù râ rµng tèi ®a. Trong thùc tÕ cã nhiÒu bµi to¸n vi ph¹m tÝnh x¸c ®Þnh mµ vÉn cho kÕt qủa. Nh vËy thay cho viÖc x©y dùng toµn bé qu¸ trình giải chØ cÇn chØ ra c¸ch chuyÓn tõ bíc i sang bíc i+1. C¸ch gỉai ngÉu nhiªn, ®Ö quy lµ më réng tÝnh x¸c ®Þnh Më réng tÝnh ®óng ®¾n TÝnh ®óng ®¾n ®îc hiÓu lµ cho kÕt quả ®óng. Nhng trong thùc tÕ thì sè gÇn ®óng lµ cã thÓ chÊp nhËn. Ngoµi ra dïng c¸ch gỉai heuristic ®¬n giản, ®éc ®¸o vÉn cã thÓ cho kÕt qủa mét c¸ch s¸ng t¹o. NAÊM BÖÔÙC GIAÛI BAØI TOAÙN TREÂN MAÙY TÍNH a) Bíc 1 Nghiªn cøu kÜ néi dung, yªu cÇu cña bµi to¸n vµ tìm ph¬ng ph¸p, thuËt to¸n giải bµi to¸n Víi bµi to¸n lín, phøc t¹p viÖc tìm ph¬ng ph¸p vµ thuËt to¸n rÊt khã khăn. NhiÒu trêng hîp phải cã sù céng t¸c, gióp ®ì cña c¸c chuyªn gia vÒ ph¬ng ph¸p tÝnh to¸n vµ thuËt to¸n . b) Bíc 2 DiÔn tả thuËt to¸n b»ng lu ®å hoÆc b»ng ng«n ngữ Mô tả thuật toán. c) Bíc 3 DiÔn tả thuËt to¸n b»ng b»ng ng«n ngữ LËp trình Đ©y lµ c«ng viÖc chuyÓn lu ®å hoÆc ng«n ngữ Mô tả thuật toán thµnh ng«n ngữ lËp trình. Qu¸ trình nµy gäi lµ thảo ch¬ng . d) Bíc 4 Ch¹y thö vµ söa lçi. Bíc nµy cã thÓ thùc hiÖn xen kÏ trong bíc 3 vµ thùc hiÖn nhiÒu lÇn víi nhiÒu ngêi kh¸c nhau nh»m ph¸t hiÖn tèi ®a c¸c sai sãt . Phải söa hÕt tÊt cả c¸c lçi dï nhá nhÊt. e) Bíc 5 иnh gi¸ sù ®óng ®¾n vµ ®é tin cËy cña kÕt qña.ViÖc ®¸nh gi¸ nµy thêng dùa trªn : - ý nghÜa thùc tiÔn cña bµi to¸n - Kinh nghiÖm dù ®ãan kÕt qña cña ngêi giải - So s¸nh kÕt qña víi kÕt qña cña bµi to¸n ®· cã lêi giai ®óng - Giải bµi to¸n trong những trêng hîp ®Æc biÖt, trêng hîp thu gän dÔ thÊy kÕt qña lµ ®óng hay sai. NÕu kÕt quả sai phải rµ so¸t l¹i tõ bíc 1 và cã thÓ sai tõ thuËt to¸n. C«ng viÖc tìm lçi sai vµ söa lçi cña thuËt to¸n rÊt khã NÕu kÕt qủa tìm ®îc lµ ®óng ®¾n vµ tin cËy, ghi ch¬ng trình lªn ®Üa ®Ó lu . CAÙC PHÖÔNG PHAÙP THOÂNG DUÏNG PH¦¬ng ph¸p ®óng Ph¬ng ph¸p gÇn ®óng -ph¬ng ph¸p tÝnh Ph¬ng ph¸p ngÉu nhiªn Ph¬ng ph¸p kinh nghiÖm HEURISTIC
Các file đính kèm theo tài liệu này:
- Chuong3TinHocCanBan.ppt