Xác định bài toán là việc xác định các điều kiện ban ®Çu th«ng tin vµo-ra INPUT vµ c¸c kÕt qu¶ cÇn thu ® îc th«ng tin ra OUTPUT Gi¶i bµi to¸n trªn m¸y tÝnh nghÜa lµ híng dÉn cho m¸y[r]
(1)1 Bài toán và xác định bài toán là gì? Qu¸ tr×nh gi¶i bµi to¸n trªn m¸y tÝnh? ThuËt to¸n vµ m« t¶ thuËt to¸n Mét sè vÝ dô vÒ thuËt to¸n Huỳnh Thanh Phương (2) Bµi to¸n 1: TÝnh diÖn tÝch cña mét tam gi¸c biÕt mét cạnh và đờng cao tơng ứng với cạnh đó Bài toán và xác định bµi to¸n lµ g×? Bµi lµs¸t H·yto¸n quan g× nhØ c¸c bµi ?to¸n sau ! Bài toán 2: Lập bảng điểm để quản lí kết häc tËp cña häc sinh mét líp Bµi to¸n 3: T×m c¸c c¸ch kh¾c phôc t¾c nghÏn giao th«ng giê cao ®iÓm Bµi to¸n lµ mét c«ng viÖc hay mét nhiÖm vô cÇn ph¶i gi¶i quyÕt §Ó gi¶i quyÕt mét bµi to¸n cô thÓ , ta cần xác định bài toán §iÒu kiÖn cho tríc Kết thu đợc Huỳnh Thanh Phương (3) Bài toán và xác định bµi to¸n lµ g×? Bµi to¸n Điều kiện cho trớc: Một cạnh và đờng cao tơng ứng với cạnh đó Máy tính có thể Kết thu đợc: Diện tích hình tam giác å kh«ng! T«i chØ tù gi¶i c¸c bµiBµi to¸n lµmtintheo sù chØ to¸n kh«ng? §iÒu kiÖn cho tríc: Th«ng cña häc sinh líp (Hä tªn ®iÓm c¸c m«n ) dÉn th«i!!!! Kết thu đợc: KÕt qu¶ häc tËp cña häc sinh Xác định bài toán : là bớc đầu tiên và là bớc quan träng viÖc gi¶i bµi to¸n Huỳnh Thanh Phương (4) Bài toán và xác định Để máy tính có thể giải các bài toán, ta cần hớng dẫn máy tính thực dãy hữu hạn các thao tác để từ các bµi to¸n lµ g×? điều kiện cho trớc ta nhận đợc kết cần thu đợc Qu¸ tr×nh gi¶i bµi to¸n trªn m¸y tÝnh? Dãy hữu hạn các thao tác để giải bài toán thờng đợc gäi lµ thuËt to¸n H·y nhí! M¸y tÝnh kh«ng thÓ tù m×nh t×m lêi gi¶i cña c¸c bµi to¸n Lêi gi¶i cña mét bµi to¸n cô thÓ, tøc thuËt to¸n, lµ t s¸ng t¹o cña ngêi Huỳnh Thanh Phương (5) Bài toán và xác định bµi to¸n lµ g×? Qu¸ tr×nh gi¶i bµi to¸n trªn m¸y tÝnh? Qu¸ tr×nh gi¶i bµi to¸n trªn m¸y tÝnh Xác định bài toán: xác định điều kiện ban đầu (input) và kết cần xác định (output) X©y dùng thuËt to¸n: Lùa chän vµ m« t¶ c¸c thao t¸c sÏ thùc Viết chơng trình: Diễn đạt thuật toán ng«n ng÷ lËp tr×nh cho m¸y tÝnh cã thÓ hiÓu vµ thực đợc Huỳnh Thanh Phương (6) Bài toán và xác định bµi to¸n lµ g×? Qu¸ tr×nh gi¶i bµi to¸n trªn m¸y tÝnh? ThuËt to¸n vµ m« t¶ thuËt to¸n VD1 ThuËt to¸n pha trµ mêi kh¸ch Input: Trµ, níc s«i, Êm vµ chÐn Output: Chén trà đã pha để mời khách Bíc 1: Tr¸ng Êm chÐn b»ng níc s«i; Bíc 2: Cho mét nhóm trµ vµo Êm; C¸c bíc thùc hiÖn Bíc 3: Tr¸ng trµ; để pha trà mời kh¸ch ntn nhØ ? – phót; Bíc 4: Rãt níc s«i vµo Êm và đợi Bớc 5: Rót trà chén để mời khách; Huỳnh Thanh Phương (7) Bài toán và xác định bµi to¸n lµ g×? Qu¸ tr×nh gi¶i bµi to¸n trªn m¸y tÝnh? ThuËt to¸n vµ m« t¶ thuËt to¸n VÝ dô 2: ThuËt to¸n “Lµm mãn trøng tr¸ng” INPUT: Trøng, dÇu ¨n, muèi vµ hµnh OUTPUT: Trøng tr¸ng Bíc §Ëp trøng, t¸ch vá vµ cho trøng vµo b¸t Bíc Cho mét chót muèi vµ hµnh t¬i th¸i nhá vào bát trứng Dùng đũa quấy mạnh Bíc Cho mét th×a dÇu ¨n vµo ch¶o, ®un nãng đổ trứng vào Đun tiếp kho¶ng phót Bíc LËt mÆt trªn cña miÕng trøng óp xuèng díi §un tiÕp kho¶ng phót Bớc Lấy trứng đĩa Huỳnh Thanh Phương (8) Bài toán và xác định ThuËt to¸n gi¶i ph¬ng tr×nh bËc nhÊt VD3 bµi to¸n lµ g×? tæng qu¸t bx + c = Qu¸ tr×nh gi¶i bµi to¸n C¸c bíc cña ba trªn m¸y tÝnh? Bíc 1: NÕu b = chuyÓn tíi bíc 3; to¸n Btrªn ThuËt to¸nthuËt vµ m« t¶ íc 2:cã TÝnh nghiÖm cña ph¬ng tr×nh x = - c/b råi thuật toán thay đổi trình tự đ chuyÓn tíi bíc 4; îc kh«ng Bíc? 3: NÕu c th«ng b¸o ph¬ng tr×nh v« nghiÖm, ngîc l¹i (c = 0) th«ng b¸o ph¬ng tr×nh v« sè nghiÖm Bíc 4: KÕt thóc thuËt to¸n ThuËt to¸n lµ d·y c¸c thao t¸c cÇn thùc hiÖn theo trình tự xác định để thu đợc kết cần thiÕt tõ nh÷ng ®iÒu kiÖn cho tríc Huỳnh Thanh Phương (9) Bài toán và xác định Ví dụ Một hình A đợc ghép từ hình chữ bµi to¸n lµ g×? nhËt víi chiÒu réng 2a, chiÒu dµi b vµ mét Qu¸ tr×nh gi¶i bµi to¸n h×nh b¸n nguyÖt b¸n kÝnh a nh h×nh díi ®©y: trªn m¸y tÝnh? b ThuËt to¸n vµ m« t¶ a thuËt to¸n a Xác định Mét sèInput vÝ dô vÒvµthuËt to¸n Output cña h×nh A bµi to¸n - INPUT: Sè a lµ 1/2 chiÒu réng cña h×nh ch÷ nhËt vµ lµ b¸n kÝnh cña h×nh b¸n nguyÖt, b lµ chiÒu dµi cña h×nh ch÷ nhËt - OUTPUT : DiÖn tÝch cña h×nh A TÝnh S1 = 2a b {(TÝnh S h×nh CN)}; TÝnh S2 = a2/2 {(S h×nh b¸n nguyÖt)}; TÝnh S = S1 + S2 vµ kÕt thóc Lu ý: Trong biểu diễn thuật toán kí hiệu để phép gán Thanh Phương mét gi¸ Huỳnh trÞ cho biÕn VD S – g¸n gi¸ trÞ cho biÕn S (10) Bài toán và xác định Ví dụ 2: Tính tổng 100 số tự nhiên đầu tiên liªn tiÕp S = + + + + + 100 bµi to¸n lµ g×? - INPUT: D·y 100 sè tù nhiªn ®Çu tiªn: 1, 2, 100 Qu¸ tr×nh gi¶i bµi to¸n trªn m¸y tÝnh? - OUTPUT : Tæng cña d·y sè trªn ThuËt to¸n vµ m« t¶ S 0 100 thuËt to¸n Mét sè vÝ dô vÒ thuËt toán Xác định Input vµ Output cña bµi to¸n S=0 S1 = S + S2 = S1 + S3 = S2 + NhËn xÐt: Bắt đầu từ S1 việc tính S đợc lÆp ®i lÆp l¹i 100 lÇn theo quy luËt Ssau = Stríc+ i S100 = S99 + 100 Huỳnh Thanh Phương với i tăng lần lợt từ đến100 (11) Bài toán và xác định bµi to¸n lµ g×? Qu¸ tr×nh gi¶i bµi to¸n trªn m¸y tÝnh? ThuËt to¸n vµ m« t¶ thuËt to¸n Mét sè vÝ dô vÒ thuËt to¸n ThuËt to¸n tÝnh tæng Bíc 1: S 0; i 0; Bíc 2: i i + Bíc 3: NÕu i <= 100 th× S S + i; vµ quay l¹i bíc trêng hîp ngîc l¹i th«ng b¸o kÕt qu¶ råi kÕt thóc thuËt to¸n Bài toán đổi giá trị hai biến Cèc A Cèc B Cốc A chứa nớc màu đỏ, cốc B chứa nớc màu xanh Làm cách nào để tráo đổi cốc A có nớc màu xanh, cốc B có nớc màu đỏ?Huỳnh (Gi¶Thanh thiÕtPhương cèc A vµ cèc B cã thÓ tÝch nh nhau) (12) Huỳnh Thanh Phương (13) Bước 1: C A Huỳnh Thanh Phương (14) Bước 1: C A Bước 2: AB Huỳnh Thanh Phương (15) Bước 1: C A Bước 2: A B Bước 3: B C Huỳnh Thanh Phương (16) Bước 1: C A Bước 2: A B Bước 3: B C Huỳnh Thanh Phương (17) Bài toán và xác định Ví dụ 3: Đổi giá trị hai biến x và y bµi to¸n lµ g×? Input: Hai biÕn x vµ y cã gi¸ trÞ t¬ng øng lµ a, b Qu¸ tr×nh gi¶i bµi to¸n Output: Hai biÕn x vµ y cã gi¸ trÞ t¬ng øng lµ b, a trªn m¸y tÝnh? Bíc 1: z x {Sau bíc nµy gi¸ trÞ cña z sÏ b»ng a} ThuËt to¸n vµ m« t¶ Bíc 2: x y {Sau bíc nµy gi¸ trÞ cña x sÏ b»ng b} thuËt to¸n Mét sè vÝ dô vÒ thuËt Bíc 3: y z {Sau bíc nµy gi¸ trÞ cña y sÏ b»ng gi¸ trÞ cña z, chÝnh lµ gi¸ trÞ ban ®Çu a cña biÕn x} to¸n VÝ dô 4: Cho hai sè thùc a vµ b H·y cho biÕt kÕt qu¶ so sánh hai số đó dới dạng “a lớn b”, “a nhỏ h¬n b” hoÆc “a=b” Input: Hai sè thùc a vµ b Output: KÕt qu¶ so s¸nh Hãy tìm chỗ cha đúng thuật toán sau Bíc 1: So s¸nh a vµ b NÕu a>b, cho kÕt qu¶ “a lín h¬n b” Bíc 2: NÕu a<b, cho kÕt qu¶ “a nhá h¬n b”; ngîc l¹i, cho kÕt qu¶ “a = b” vµ kÕt thóc thuËt to¸n Huỳnh Thanh Phương (18) Bài toán và xác định bµi to¸n lµ g×? Qu¸ tr×nh gi¶i bµi to¸n trªn m¸y tÝnh? ThuËt to¸n vµ m« t¶ thuËt to¸n Mét sè vÝ dô vÒ thuËt to¸n Nhng bíc hai, kiÓm tra a<b th× kÕt qu¶ lµ Thö l¹i víi a=6 vµ b=5 a lín h¬n b a=b ThuËt to¸n so s¸nh sè thùc Bíc 1: So s¸nh a vµ b NÕu a>b, cho kÕt qu¶ “a lớn b” và chuyển đến bớc Bíc 2: NÕu a<b, cho kÕt qu¶ “a nhá h¬n b”; ngîc l¹i, cho kÕt qu¶ “a = b” Bíc 3: KÕt thóc thuËt to¸n Huỳnh Thanh Phương (19) Bài toán và xác định bµi to¸n lµ g×? Qu¸ tr×nh gi¶i bµi to¸n trªn m¸y tÝnh? ThuËt to¸n vµ m« t¶ thuËt to¸n Mét sè vÝ dô vÒ thuËt to¸n VÝ dô 5: T×m sè lín nhÊt d·y A c¸c sè a1, a2, , an INPUT: Sè nguyªn d¬ng N vµ d·y N sè nguyªn a1,a2,…aN (ai víi i: 1n) OUTPUT: Sè lín nhÊt (Max) cña d·y sè ThuËt to¸n t×m max Ngời ta đặt bóng có kích thớc khác hộp đã đợc đậy nắp nh hình bên.Chỉ dùng tay h·y t×m qu¶ bãng cã kÝch thíc lín nhÊt Huỳnh Thanh Phương (20) Cïng t×m thuËt to¸n Qu¶ nµy lín nhÊt MAX Qu¶ nµy míi lín nhÊt Huỳnh Thanh Phương å!T×m Qu¶ra nµy qu¶lín lín nhÊt h¬n råi! (21) Bài toán và xác định bµi to¸n lµ g×? Qu¸ tr×nh gi¶i bµi to¸n trªn m¸y tÝnh? ThuËt to¸n vµ m« t¶ thuËt to¸n Mét sè vÝ dô vÒ thuËt to¸n ý tëng: - §Æt gi¸ trÞ Max= a1 - Lần lợt cho i chạy từ đến N, so sánh giá trị víi gi¸ trÞ Max, nÕu ai> Max th× Max nhËn gi¸ trÞ míi lµ ThuËt to¸n t×m max Bíc 1: Max a1 ; i Bíc 2: i i +1 Bớc 3: Nếu i > N, chuyển đến bớc Bíc 4: NÕu > Max th× Max råi quay l¹i bíc 2, trêng hîp ngîc l¹i gi÷ nguyªn Max vµ quay l¹i bíc Bíc 5: KÕt thóc thuËt to¸n Huỳnh Thanh Phương (22) Bài toán và xác định bµi to¸n lµ g×? Qu¸ tr×nh gi¶i bµi to¸n trªn m¸y tÝnh? ThuËt to¸n vµ m« t¶ thuËt to¸n Mét sè vÝ dô vÒ thuËt to¸n Ghi nhí! Xác định bài toán là việc xác định các điều kiện ban ®Çu( th«ng tin vµo-ra INPUT) vµ c¸c kÕt qu¶ cÇn thu ® îc( th«ng tin ( OUTPUT) Gi¶i bµi to¸n trªn m¸y tÝnh nghÜa lµ híng dÉn cho m¸y tính dãy hữu hạn các thao tác đơn giản( thuật toán) mà nó có thể thực đợc ta kết Qu¸ tr×nh gi¶i mét bµi to¸n trªn m¸y tÝnh gåm c¸c b ớc: xác định bài toán; xây dựng thuật toán; lập chơng tr×nh ThuËt to¸n: lµ d·y h÷u h¹n c¸c thao t¸c cÇn thùc hiÖn theo trình tự xác định để thu đợc kết cần thiÕt tõ nh÷ng ®iÒu kiÖn cho tríc Huỳnh Thanh Phương (23)