Nhóm 2 Viết câu lệnh rẽ nhánh đưa ra câu thông báo số nguyên a là số dương hay số âm theo dạng thiếu và dạng đủ ?.. Viết câu lệnh rẽ nhánh đưa ra câu thông báo “Có nghiệm” hoặc “Vô nghiệ[r]
(1)BÀI (2) BÀI Chương III CẤU TRÚC RẼ NHÁNH VÀ LẶP (3) BÀI RÏ nh¸nh VÝ dô: Mêi c¸c em cïng xem vµ t×m hiÓu c¸c t×nh huèng sau nhÐ! (4) BÀI µ! NÕu ngµy mai NÕu ma th× tí ngµy nghØ, mai maõm, tí để tớ nÕu kh«ng mth× a th× nghØ nghÜ tớ đến nhà cậu đã häc nhÐ Nµy, ngµy mai cËu cã ®i häc nhãm kh«ng? (5) BÀI NÕu th× NÕu … th×…, nÕu kh«ng th× … CÊu CÊutróc trócdïng dùngđể đểmô m«t¶ t¶c¸c c¸cmÖnh mệnhđề đềcó cãd¹ng d¹ngnh nhtrªn trªn gäi gäilµ lµcÊu cÊutróc trócrÏ rÏnh¸nh nh¸nh (6) BÀI Cấu trúc rẽ nhánh là điều khiển chọn thực hay không thực công việc phù hợp điều kiện xảy (7) BÀI VÝ dô: Để gi¶i ph¬ng tr×nh bËc hai ax2+bx+c=0 (a0) Em h·y nªu c¸c bíc gi¶i ph¬ng tr×nh bËc hai? - NhËp hÖ sè a,b,c TÝnh Delta=b2 - 4ac NÕu Delta ©m th× th«ng b¸o PT v« nghiÖm, ngîc l¹i tÝnh vµ ®a nghiÖm (8) BÀI NhËp hÖ sè a,b,c Nhập a, b, c TÝnh Delta=b2 - 4ac D← b2-4ac S Ngượcưlạiưthôngưbáo Thông báo vô nghiệm Đ D≥ NÕu Delta>=0 th× tÝnh Tính và đưa nghiệm thực Kết thúc Mọi ngôn ngữ lập trình có các câu lệnh để mô t¶ cÊu tróc rÏ nh¸nh (9) BÀI a) Dạng thiếu : Cú pháp: IF <điều kiện> THEN <câu lệnh>; * Trong đó: - Điều kiện: là biểu thức quan hệ biểu thức logic - Câu lệnh: là câu lệnh Pascal Thế nào là biểu thức logic? Lưu đồ cú pháp dạng thiếu? Đúng Điều kiện Câu lệnh Sai a) Dạng NÕu thiếu <®iÒu VÝ dô 1: kiện> đúng thì <câu lệnh> đợc thực hiện, sai2=0 <c©u lÖnh>Writeln( bÞ bá qua IF a mod THEN ‘ a la so chan’); (10) BÀI b) Dạng đủ : Cú pháp: IF <điều kiện> THEN <câu lệnh 1> ELSE <câu lệnh 2>; Lưu đồ cú pháp dạng đủ? Sai Đúng Điều kiện Câu lệnh Câu lệnh a) Dạng thiếu b) Dạng đủ : Nếu <điều kiện> đúng thì <câu lệnh1> đợc thực hiện, ng ợc lại thì <câu lệnh 2> đợc thực (11) BÀI Ví dụ 2: Viết câu lệnh kiểm tra số nguyên a, xem a là số chẵn hay số lẻ? sử dụng dạng thiếu và dạng đầy đủ Dạng thiếu: If a mod = then writeln (‘ a la so chan ’); a mod <> then writeln If (‘ a la so le ’); Dạng đầy đủ: If a mod = then writeln (‘a la so chan’) Else writeln (‘a la so le’ ); a) Dạng thiếu b) Dạng đủ : Lưu ý: - Sau Then và sau Else có lệnh chương trình - Câu lệnh trước Else không có dấu chấm phẩy(;) (12) BÀI c) BÀI TẬP NHÓM Nhóm Viết câu lệnh rẽ nhánh tìm số lớn Max số nguyên a và b theo dạng thiếu và dạng đủ ? Nhóm Viết câu lệnh rẽ nhánh đưa câu thông báo số nguyên a là số dương hay số âm theo dạng thiếu và dạng đủ ? Nhóm a) Dạng thiếu b) Dạng đủ : Viết câu lệnh rẽ nhánh đưa câu thông báo “Có nghiệm” “Vô nghiệm” phương trình bậc tùy thuộc vào điều kiện Delta dạng thiếu và dạng đủ ? (13) BÀI c/ ĐÁP ÁN BÀI TẬP NHÓM N1 Dạng thieáu: N2 - Dạng thiếu Max:=a; If b > a then Max:=b; If a < then Writeln (‘a la so am’); Dạng đủ: If a > b Then Max:=a Else Max:=b; - Dạng đủ If a > then Writeln(‘ a la so duong’); If a < then Writeln (‘a la so am’) Else Writeln (‘ a la so duong’); N3 - Dạng thiếu If Delta < then Writeln (‘Phuong trinh vo nghiem’); If Delta >= then Writeln (‘Phuong trinh co nghiem’); - Dạng đủ a) Dạng thiếu b) Dạng đủ : If Delta < then Writeln (‘Phuong trinh vo nghiem’) Else Writeln ( ‘Phuong trinh co nghiem’); (14) BÀI C¸c em quan s¸t ®o¹n ch¬ng tr×nh vµ cho biÕt sau Else cã mÊy lÖnh ch¬ng tr×nh? IF Delta<0 THEN Writeln(‘Ph¬ng tr×nh v« nghiÖm’) ELSE X1:= (-B + SQRT(Delta))/(2*A); X2:= (-B - SQRT(Delta))/(2*A); Writeln(‘ Nghiem X1= ’, X1:5:1); Writeln(‘ Nghiem X2= ’, X2:5:1); (15) BÀI C©u lÖnh ghÐp: Ngôn ngữ lập trình cho phép gộp dãy câu lệnh thành câu lệnh gọi là câu lệnh ghép - C©u lÖnh ghÐp cña pascal cã d¹ng: BEGIN BEGIN << c¸c c¸c c©u c©u lÖnh>; lÖnh>; END; END; * Câu lệnh, câu lệnh 1, câu lệnh câu lệnh if –then mục trên có thể là câu lệnh ghép (16) BÀI VÝ dô: §o¹n ch¬ng tr×nh sau ng«n ng÷ pascal cã sö dông c©u lÖnh ghÐp IF Delta<0 THEN Writeln(‘Ph¬ng tr×nh v« nghiÖm’) ELSE BEGIN X1:= (-B + SQRT(Delta))/(2*A); X2:= (-B - SQRT(Delta))/(2*A); Writeln(‘ Nghiem X1= ’, X1:5:1); Writeln(‘ Nghiem X2= ’, X2:5:1); END; (17) BÀI Một số ví dụ Em h·y hoµn thiÖn ch Program GPTB2; ¬ng tr×nh gi¶i ph¬ng Uses crt; tr×nh bËc (a<>0) theo Var ; dµn ý sau: BEGIN NhËp vµo hÖ sè a,b,c Delta := ; If Delta<0 then Writeln(‘PTVN’) Else a) Dạng thiếu b) Dạng đủ : Readln; END (18) BÀI (19) BÀI Câu lệnh rẽ nhánh If – then dạng thiếu, dạng đủ và hoạt động câu lệnh If – then Câu lệnh ghép, cách dùng câu lệnh ghép lập trình Tìm hiểu các bước giải phương trình bậc có dạng: ax + b =0 (a<>0) Chuẩn bị nội dung bài thực hành số và làm bài tập 1,2, SGK trang 50, 51 a) Dạng thiếu b) Dạng đủ : (20) BÀI BÀI TẬP CỦNG CỐ: CHỌN ĐÁP ÁN ĐÚNG Câu 1: Câu lệnh nào sau đây viết đúng cú pháp? A If <điều kiện> then <lệnh 1> Else <lệnh 2>; B If <điều kiện> then <lệnh> ; Else C If <điều kiện> then <lệnh 1> Else <điều kiện>; D If <lệnh> then <điều kiện>; (21) BÀI BÀI TẬP CỦNG CỐ: CHỌN ĐÁP ÁN ĐÚNG Câu 2: Cho đoạn chương trình sau: a:=5; b:=10; x := a; If a < b Then x := b; Write(x); -Kết X bao nhiêu? A B 10 C 15 D 20 (22) BÀI BÀI TẬP CỦNG CỐ: CHỌN ĐÁP ÁN ĐÚNG Câu 3: Trong pascal cách viết câu lệnh ghép nào sau đây là đúng? A Begin a :=1; b :=2; End B Begin a ;=1, b :=2; End; C Begin a :=1; b :=2; End; D Begin a :=1; b :=2, End (23) BÀI BÀI TẬP CỦNG CỐ: CHỌN ĐÁP ÁN ĐÚNG Câu 4: Chọn câu lệnh sai các câu lệnh sau: A If a < b ; Then x := x + 1; B if a < b then x := b - a; C if a < b then x := a + b; D if a < b then x := a else x := b; (24) BÀI BÀI TẬP CỦNG CỐ: CHỌN ĐÁP ÁN ĐÚNG Câu 5: Sau thi hành đoạn chương trình sau , thì biến x viết mà hình có giá trị là bao nhiêu ? Begin a:= ; b: = 1; x:= ; If a + b > Then x := x + a + b; Write(x); End A B C D (25) BÀI Chóc c¸c ThÇy gi¸o, C« gi¸o m¹nh kháe; Chóc c¸c em häc sinh ch¨m ngoan, häc giái ! (26)