Thuật toán để giải một bài 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 Outpu[r]
(1)TIẾT 10: Bài BÀI TOÁN VÀ THUẬT TOÁN Khái niệm bài toán Khái niệm: Bài toán là việc nào đó ta muốn máy tính thực Bài toán cấu tạo từ hai thành phần + Input: các thông tin đã có + Output: các thông tin cần tìm từ Input VÝ dô 1: Tìm ước số chung lớn hai số nguyên dương INPUT: Hai số nguyên dương M Và N OUTPUT: Ước số chung lớn M và N VÝ dô 2: Bµi to¸n xÕp lo¹i häc tËp cña mét líp INPUT: B¶ng ®iÓm cña häc sinh líp OUTPUT: B¶ng xÕp lo¹i häc lùc cña häc sinh (2) VÝ dô 3: Gi¶i ph¬ng tr×nh bËc nhÊt ax + b = Yªu Input: cÇu C¸c : hÖ sè a, b Hãy xác định thông tin đa vào (Input) Output: NghiÖm cña ph¬ng tr×nh vµ th«ng tin cÇn lÊy (Output) Víi a = 1, b = -5 Ph¬ng tr×nh cã nghiÖm x = (3) VÝ dô 4: Qu¶n lÝ ®iÓm mét k× thi b»ng m¸y tÝnh SBD Họ và tên Văn Toán Lý Hóa Tổng Kết Quả Vàng Mí Chiến 8.5 10.0 7.0 9.0 53 §ç Lù Mí Chính 6.0 8.5 8.5 5.0 42.5 §ç Thào Mí Chính 7.0 7.0 6.5 6.5 41 §ç Hầu Mí Dìn 4.5 5.0 7.0 7.5 33.5 §ç Hạng Mí De 5.0 2.0 3.5 4.5 Input: SBD, Hä vµ tªn, V¨n, To¸n, LÝ, Hóa Yªu cÇu : Output: ®iÓm, KÕt tin qu¶®thi cña(Input) häc sinh H·y Tæng xác định th«ng a vµo vµ th«ng tin cÇn lÊy (Output) 22 (4) Kh¸i niÖm thuËt to¸n C¸c em cÇn t×m c¸ch gi¶i cña bµi to¸n Tõ INPUT lµm nào để tìm OUTPUT ? (5) Thuật toán để giải bài toán là dãy hữu hạn các thao tác đợc xếp theo trình tự xác định cho sau thực dãy thao tác ấy, từ Input bài toán, ta nhận đợc Output cần tìm Cã hai c¸ch thÓ hiÖn mét thuËt to¸n: C¸ch 1: LiÖt kª c¸c bíc Cách 2: Vẽ sơ đồ khối (6) Ví dụ: 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 (7) 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 å!T×m Qu¶ra nµy qu¶lín lín nhÊt h¬n råi! (8) ThuËt to¸n t×m sè lín nhÊt mét d·y sè nguyªn Xác định bài toán: 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è (9) ý 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 > Max th× Max nhËn gi¸ trÞ míi lµ (10) C¸ch 1: LiÖt kª c¸c bíc B1: NhËp N vµ d·y a1,…, aN; B2: Max a1; i 2; B3: NÕu i > N th× ®a gi¸ trÞ Max råi kÕt thóc; B4: Bíc 4.1: NÕu > Max th× Max ai; Bíc 4.2: i i+1 råi quay l¹i B3 (11) Cách 2: Vẽ sơ đồ khối Quy ớc các khối sơ đồ thuật toán Thể các thao tác nhËp vµ xuÊt d÷ liÖu Thể các phép tính toán Thể thao tác so sánh Quy định trình tự thực các thao tác (12) Cách 2: Sơ đồ khối NhËp N vµ d·y a1,…,aN B1: NhËp N vµ d·y a1,…,aN; B2: Max a1; i 2; Max a1 ; i § i>N? §a Max råi kÕt thóc S S > Max ? B3: NÕu i > N th× ®a gi¸ trÞ Max råi kÕt thóc; § Max B4 : 4.1: NÕu > Max th× Max ai; 4.2: i i + råi quay l¹i B3 ii+1 (13) Víi i = NhËp ·y4a1,…,aN N=5 ;NAvµ [ 5d1 76] Max Max a1 ;;ii22 I >> N5 ? A i Max 5 § §a lín Sè Max nhÊtråi cña kÕtdthóc ·y lµ S S 1>>Max ??? ai7> 4> 57 § Max a 7i ii 3+1 5+1 2+1 i+1 4+1 M« pháng thuËt to¸n 7 (14) NhËp ·y4a1,…,aN N=5 ;NAvµ [ 5d1 76] Max Max a1 ;;ii22 I >> N5 ? S S 1>>Max ??? ai7> 4> 57 § Max a 7i ii 3+1 5+1 2+1 i+1 4+1 A i Max 5 § §a lín Sè Max nhÊtråi cña kÕtdthóc ·y lµ 7 7 (15) * Tính chất thuật toán Tính dừng Thuật toán phải dừng lại sau số hữu hạn bước thực Tính xác định Sau bước thực thuật toán dừng lại xác đinh bước Tính đúng đắn Sau thuật toán dừng lại thì phải nhận Out Put bài toán (16) Củng cố Kh¸i niÖm bµi to¸n Kh¸i niÖm thuËt to¸n ThuËt to¸n t×m Max cña mét d·y sè (17) Câu hỏi Khi dùng máy tính để giải bài toán A Ta cần xác định : Input, Output B Ta cần xác định Input C Ta cần xác định Output D Không cần xác định Input, Output (18) Câu hỏi Các tính chất thuật toán là: A B C D Tính xác định Tính đúng đắn Tính dừng Cả ý trên đúng (19) Câu hỏi Input bài toán giải phương trình bậc ax2 + bx + c = là A B C D a, b, x a, c, x a, b, c x, a, b, c (20)