Transcript câu lệnh 2
CHƯƠNG 3: CẤU TRÚC RẼ NHÁNH VÀ LẶP BÀI 9: CẤU TRÚC RẼ NHÁNH 1. Rẽ nhánh Nội dung: 2. Câu lệnh if-then 3. Câu lệnh ghép 4. Một số ví dụ Nếu em rẽ trái thì em sẽ đến Hải Phòng ? Hải Phòng Nếu em rẽ trái thì em Lai sẽ đến Khê Hải Phòng ngược lại em sẽ đi đến Hà Nội Hà Nội 1. Rẽ nhánh Nếu trời mưa thì Minh sẽ ở nhà xem ti vi. Nếu trời mưa thì Minh sẽ ở nhà xem ti vi, nếu trời không mưa (điều kiện ngược lại)thì Minh sẽ đi đá bóng với Hùng Dạng thiếu: Dạng đủ: Nếu … thì… Nếu … thì… nếu không thì… Ví dụ: Giải phương trình bậc hai: ax2 + bx +c =0 Giải thuật: Bước 1: tính delta D = b2 – 4ac Bước 2: kiểm tra D +Nếu D<0: Bước 3: Ta sẽ thông báo phương trình vô nghiệm. + Nếu D>0: Bước 4: Tính và đưa ra nghiệm của phương trình. Nhập a,b,c D = b2 – 4ac Đúng Sai D>=0 ? Thông báo vô nghiệm rồi kết thúc Tính và đưa ra nghiệm thực rồi kết thúc 2. Câu lệnh if-then Để mô tả cấu trúc rẽ nhánh, Pascal dùng câu lệnh if-then Dạng thiếu If <điều kiện> then <câu lệnh> ; 2 dạng: Dạng đủ If <điều kiện> then <câu lệnh 1> else <câu lệnh 2> ; Trong đó: - Điều kiện là một biểu thức logic (trả về kết quả đúng hoặc sai) - Câu lệnh, câu lệnh 1, câu lệnh 2 là một câu lệnh của Pascal SƠ ĐỒ HOẠT ĐỘNG CỦA CÂU LỆNH IF.. THEN Dạng thiếu If <điều kiện> then <câu lệnh>; <ĐK> Đ S Khi điều kiện không thỏa, câu lệnh có được thực hiện hay không? <Câu lệnh> Câu lệnh sẽ không được thực hiện, chương trình sẽ thoát Ví dụ: Bài toán: Giải phương trình bậc hai: ax2 + bx +c =0 Bước 1: tính delta D = b2 – 4ac Bước 2: kiểm tra D +Nếu D<0: Bước 3: Ta sẽ thông báo phương trình vô nghiệm If D<0 then writeln(‘ phuong trinh vo nghiem’); Dạng đủ If <điều kiện> then <câu lệnh 1> else <câu lệnh 2>; Đ <Câu lệnh 1> <ĐK> 2 câu lệnh có xảy ra đồng thời hay không? S <Câu lệnh 2> Ví dụ: Bài toán: Giải phương trình bậc hai: ax2 + bx +c =0 Bước 1: tính delta D = b2 – 4ac Bước 2: kiểm tra D +Nếu D<0: Bước 3: Ta sẽ thông báo phương trình vô nghiệm + Nếu D>=0: Bước 4: Tính và đưa ra màn hình nghiệm của phương trình. If D<0 then writeln(‘ phuong trinh vo nghiem’) Else begin x1 := (-b + sqrt (D) ) / (2*a); Trước else x2 := (-b + sqrt (D) ) / (2*a); không có dấu “ ; “ writeln (‘x1 = ‘,x1:5:2,’ x2 = ‘,x2:5:2); end; Tìm giống và khác nhau giữa 2 dạng ? Dạng thiếu Dạng đủ If <điều kiện> then <câu lệnh> ; If <điều kiện> then <câu lệnh 1> else <câu lệnh 2> ; Khác nhau: + Dạng thiếu: điều kiện sai sẽ bỏ qua câu lệnh. + Dạng đủ: điều kiện sai sẽ thực hiện câu lệnh 2. Giống nhau: là câu lệnh cấu trúc rẽ nhánh, khi gặp điều kiện sẽ thực hiện thao tác thích hợp. 3. CÂU LỆNH GHÉP: Trong Pascal cho phép gộp nhiều câu lệnh thành một câu lệnh, gọi là câu lệnh ghép, có dạng như sau: BEGIN < Các Câu lệnh >; END; VÝ dô: 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; 4. mét sè vÝ dô VÝ dô 1 : Program GPTB2; Emcrt; h·y hoµn thiÖn Uses ch¬ng tr×nh gi¶i phVar .¬ng . . ;tr×nh bËc 2 (a0) theo dµn ý BEGIN sau: . . . NhËp vµo 3 hÖ sè a,b,c .. . Delta :=. . .; NÕu Delta<0 th× Writeln(‘PTVN’) ngîc l¹i TÝnh vµ in nghiÖm; Readln; END. * Bài tập củng cố: 1. Nêu cú pháp của câu lệnh if-then ở hai dạng thiếu và đủ? 2. Bài tập trắc nghiệm: Câu 1: Hãy chọn phương án ghép đúng nhất. Trong câu lệnh IF – THEN, sau IF là <điều kiện>. Điều kiện là: A, Biểu thức logic. B. Biểu thức số học. C. Một câu lệnh. Câu 2: Hãy chọn phương án ghép đúng nhất. Trong câu lệnh IF <điều kiện> THEN <câu lệnh>. Câu lệnh đứng sau THEN được thực hiện khi? A. điều kiện cho giá trị sai. B. điều kiện cho giá trị đúng. C. Không cần xét điều kiện Câu 3: Với cấu trúc IF <điều kiện> THEN <câu lệnh 1> ELSE <câu lệnh 2>, câu lệnh 2 được thực hiện khi? A.biểu thức điều kiện đúng. B.biểu thức điều kiện sai C.câu lệnh 1 được thực hiện * Bài tập củng cố: Áp dụng: hãy nhập vào một số nguyên a,nếu a chia hết cho hai thì in ra màn hình “a la so chan”, ngược lại in ra “a la so le”. Program baitap1; Uses crt; Var a: integer; Begin Write(‘nhap so nguyen a ‘); readln(a); If (a mod 2 =0) then Writeln(a, ‘la so chan’); Else Writeln(a, ‘la so le’); Readln End. * Dặn dò: - Học cấu trúc và hoạt động của câu lệnh If…then dang đủ và dạng thiếu. - Đọc trước phần 3,4 SGK và trả lời câu hỏi: Nếu sau Then hoặc Else nhiều hơn 1 câu lệnh thì giải quyết như thế nào?