if-then diễn tả phát biểu thì thoát khỏi cấulệnh trúcgán rẽ nhánh, còn câu lệnh if-then dạng đủ Câu có0dạng: sau : Nếu D < thì xuất ra màn hình sau : Nếu a chia hết cho 3 thì xuất ra if [r]
(1)Chöông III • Cấu trúc rẽ nhánh và lặp chương trình; • Các câu lệnh thực rẽ nhánh và lặp Pascal Lop11.com (2) Baøi Nhu cầu cấu trúc rẽ nhánh biểu diễn thuật toán; Câu lệnh rẽ nhánh (dạng thiếu và dạng đủ); Câu lệnh ghép; Sử dụng cấu trúc rẽ nhánh để mô tả thuật toán; Viết lệnh rẽ nhánh dạng thiếu, rẽ nhánh dạng đầy đủ Lop11.com (3) Cấu trúc rẽ nhánh Rẽ nhánh • Dạng thiếu: Nếu thì • Dạng đủ: Nếu thì nói , Ở câu 1: không thì Châu đếnchuẩn nhà Ngọc VíThường dụ: Châu ngày, và Ngọc có thường nhiều việc hẹnchỉ thực bịhiện các bài thực thực hành điều kiện môn cụ Tinthể học nào đó đượcnhàthỏa mãn Ở câu nói 2: Châu đếnnào? NgọcChâu thực nào? Khi Một lần hẹn với Ngọc: nào thì Châu gọi điện thoại cho “ChiềuNgọc? mai, trời không mưa thì Châu đến nhà Ngọc” Một lần khác Ngọc hẹn với Châu: “Chiều mai, trời không mưa thì Ngọc đến nhà Châu, mưa thì gọi điện thoại cho Châu để trao đổi” Lop11.com (4) Cấu trúc rẽ nhánh Rẽ nhánh Thể thao • Dạng đủ: • Dạng thiếu: tác nhập, xuất liệu Thể cácthì Nếu thì Nếu thì , không • Ví dụ, để giải phương trình bậc hai: ax2 + bx + c phép = tính (a ≠toán 0) − Nhập a, b, c (a ≠ 0) − Tính: D b2 – 4ac − Kiểm tra D: Câu Hỏi È Nếu D ≥ thì đưa các nghiệm, kết thúc È Ngược lại ta phải thông báo là phương trình vô nghiệm, kết thúc Qua ví dụ hãy cho biết rẽ nhánh thực công đoạn nào? toán kêđủ? và thuộc Thuật dạng thiếu hayliệt dạng Nhập a, b,Thể c các thao tác so sánh D b2 - 4ac Sai D ≥ 0? Thông báo vô nghiệm, kết thúc Lop11.com Đúng Tính và đưa nghiệm thực kết thúc Thuật toán sơ đồ khối (5) Cấu trúc rẽ nhánh Rẽ nhánh Câu lệnh if-then • Dạng thiếu: Đúng đúng Sai sai • Dạngsai đủ: Kết thúc Đúng đúng sai Kết thúc • Trong đó: Điều kiện là biểu thức lôgic; Câu lệnh, câu lệnh 1, câu lệnh là câu lệnh Pascal Câu Hỏi Hãy nêu cách hoạt động câu lệnh rẽ nhánh dạng thiếu và câu lệnh rẽ nhánh dạng đủ? Lop11.com (6) Thảo luận nhóm write Gán Câu Hỏi Cấu trúc rẽ nhánh Rẽ nhánh Câu lệnh if-then điều kiện đúng câu lệnh câu lệnh đúng điều kiện sai câu lệnh sai biết1: sựcấu giống và khác Giống nhau: là trúcnhau rẽ nhánh, khinhau gặp 3’) điều kiện nào v Ví dụ vHãy Vícho dụ 2: Thảo luận nhóm (tg: haithực dạnghiện câuthao lệnhtác if-then đó thì thích hợp Viết câu lệnh if-then tìm số nhỏ Min hai Viết câu lệnh if-then diễn phát Khác nhau: Câu lệnh if-then dạng thiếu điềutả kiện khôngbiểu đúng Viết số a và b câu hai lệnh dạng if-then diễn tả phát biểu thì thoát khỏi cấulệnh trúcgán rẽ nhánh, còn câu lệnh if-then dạng đủ Câu có0dạng: sau : Nếu D < thì xuất màn hình sau : Nếu a chia hết cho thì xuất if D < then writeln (‘Phuong trinh vo nghiem’); điều kiện không đúng thì thực công việc <tên biến> := <biểu thức>; Dạng thiếu: ifthông ahình mod thông = then”Phuong writeln “a (‘a chia het cho 3’)cho else câu báo trinh vo màn báo chia het Câu lệnh đưa liệu màn hình có dạng: writeln (‘a khong chia het cho 3’); write/writeln sách kết ra>); if a>b(<danh then Min :=màn b; hình câu nghiem” 3” ngược lại xuất thông báo “a khong chia het cho 3” Dạng đủ: if a>b then Min := b else Min := a; Lop11.com (7) ứng Dụng Cấu trúc rẽ nhánh Rẽ nhánh Câu lệnh if-then Trong câu lệnh rẽ nhánh if-then ta có thể viết lồng gọi là “if lồng if” VÍ DỤ MINH HỌA Viết câu lệnh if-then xếp loại học sinh: Gioi DTB ≥ 8.0 Kha DTB < 8.0 và DTB ≥ 6.5 XL : TB DTB < 6.5 và DTB ≥ 5.0 Yeu DTB < 5.0 và DTB ≥ 3.5 Kem DTB < 3.5 if DTB >= 8.0 then writeln (‘XL:else Gioi’) if DTB >= 6.5 then writeln (‘XL:else Kha’) if DTB >= 5.0 then writeln (‘XL: TB’) else if DTB >= 3.5 then writeln (‘XL: Yeu’) else writeln Kem’); Lop11.com (‘XL: (8) Gán Cấu trúc rẽ nhánh Câu lệnh if-then Rẽ nhánh Câu lệnh ghép Sau số từ khóa (then else) có nhiều câu lệnh ngôn ngữ lập trình cho phép gộp các câu lệnh thành câu lệnh ghép Dạng câu lệnh gán <tên biến> := <biểu thức>; Có Ví dụ:dạng: kiểm tra Delta if D < writeln (‘Phuong trinh vo phương trình bậc hai then else nghiem’) begin x1 := (b-sqrt(D)/(2*a); x2 := (-b-sqrt(D))/(2*a); end; Lop11.com (9) Minh Họa Cấu trúc rẽ nhánh Câu lệnh if-then Rẽ nhánh Câu lệnh ghép Một lỗi thường gặp là sử dụng câu lệnh if không tạo câu lệnh ghép trường VÍ DỤ MINH HỌA hợp thật cần thiết Thành câu lệnh ghép Đoạn Đoạn1: 1: Đoạn 2: ifif<điều <điều kiện kiện 1> 1> then then begin <câu lệnh 1>; if <điều <câu kiệnlệnh 2> 1>; then <câu if <điều lệnh kiện 2> 2> then else <câu <câulệnh lệnh3>; 2> end; else <câu lệnh 3>; Lop11.com if <điều kiện 1> then <câu lệnh 1>; if <điều kiện 2> then <câu lệnh 2> else <câu lệnh 3>; (10) Progra uses Cấu trúc rẽ nhánh Rẽ nhánh Câu lệnh if-then Câu lệnh ghép Một số ví dụ Phần thân chương trình Khai1: Đặt báo liệu tên thư từ Khai chương viện bàn báo phím trình biến VíNhập dụ Tìm nghiệm thực program Giai_PTB2; begin uses var read/readln program <danh <tên <tên thư sách (<danh viện>; chương biến> : trình>; <kiểu biếndữ vào>); liệu>; phương trình bậc hai:sách uses crt; ax2 <dãy + bx lệnh> + c = , với a ≠ var a, b, c, D, x1, x2: real; end begin writeln(‘ Nhap a, b , c ’); Var Thân CT sai đúng read readln Lop11.com end 10 (11) Cấu trúc rẽ nhánh Câu lệnh if-then Câu lệnh ghép Rẽ nhánh Một số ví dụ Ví dụ 2: Tìm số ngày năm N Biết rằng: • Năm nhuận là năm chia hết cho 400 chia hết cho không HƯỚNG DẪN GiẢI chia hết − Nhập năm N cho 100; − Kiểm tra N: • Năm nhuận có 366 ngày, năm không • Nếu N năm nhuận thì đưa If (N mod 400 = 0) or ((N mod nhuận kết SN có 366365 kết ngày thúc • Ngược lại SN 365 kết thúc − Xuất SN =0) and (N mod 100 <>0)) then SN := 366 else SN := 365; Lop11.com 11 (12) Cấu trúc rẽ nhánh Rẽ nhánh Câu lệnh if-then Câu lệnh ghép Một số ví dụ CÂU HỎI TRẮC NGHIỆM Câu 1: Cho biết kết đoạn chương trình sau với a=5; b=8 if a > b then T := b+1 else T := a+1; Giải thích T=5; T=8; T=6; Vì a=5; b=8 nên điều kiện a > b sai vì câu lệnh thực Vậy T=a+1=5+1=6 T=9 Lop11.com 12 (13) Cấu trúc rẽ nhánh Câu lệnh if-then Câu lệnh ghép Một số ví dụ Rẽ nhánh CÂU HỎI TRẮC NGHIỆM Câu 2: Các thành phần nào sau đây thiết phải có câu lệnh rẽ nhánh if-then Giải thích Biểu thức số học; Biểu thức lôgic; if <điều kiện> then <câu lệnh>; Thủ tục vào/ra; Câu lệnh gán Biểu thức lôgic Lop11.com Câu lệnh đơn câu lệnh ghép 13 (14) Cấu trúc rẽ nhánh Rẽ nhánh Câu lệnh if-then Câu lệnh ghép Một số ví dụ BÀI VỀ NHÀ • • Học bài và trả lời câu hỏi 1, trang 50 SGK Làm bài tập số trang 51 SGK Lop11.com 14 (15) Lop11.com 15 (16)