Ý nghĩa: Tính và kiểm tra điều kiện, nếu điều kiện đúng, câu lệnh 1 được thực hiện, ngược lại câu lệnh 2 được thực hiện.... Trong đó: + Điều kiện là biểu thức mang giá trị Logic..[r]
(1)(2) (3) Khái niệm rẽ nhánh Ví dụ 1: Để giải phương trình bậc ta phải: Tính Δ = b2 – 4ac Trong thực tế: Nếu Δ < thì phương trình vô nghiệm Nếu Δ ≥ thì phương trình có nghiệm Có thể nói: Δ < thì phương trình vô nghiệm, ngược lại phương trình có nghiệm (4) Nhập a, b, c D b2 – 4ac Sai Thông báo vô nghiệm, kết thúc D≥0 Đúng Tính và đưa nghiệm Thực, kết thúc Sơ đồ thể cấu trúc rẽ nhánh (5) Câu lệnh if – then a.Dạng thiếu Cú pháp: if <điều kiện> then <câu lệnh>; Sơ đồ khối Điều kiện Đúng Câu lệnh Sai Ý nghĩa: Tính và kiểm tra điều kiện, điều kiện đúng, câu lệnh thực hiện, điều kiện sai câu lệnh bị bỏ qua (6) b Dạng đủ Cú pháp if <điều kiện> then <câu lệnh 1> else <câu lệnh 2>; Sơ đồ khối Câu lệnh Sai Điều kiện Đúng Câu lệnh Ý nghĩa: Tính và kiểm tra điều kiện, điều kiện đúng, câu lệnh thực hiện, ngược lại câu lệnh thực (7) Trong đó: + Điều kiện là biểu thức mang giá trị Logic + Câu lệnh , câu lệnh 1, câu lệnh là câu lệnh Pascal Lưu ý: Trong if – then dạng đủ: câu lệnh trước Else không có dấu “;” (8) Ví dụ 1: nhập a từ bàn phím, kiểm tra xem a có chia hết cho không? Thông báo màn hình kết If a mod = then writeln(‘ a chia het cho 5’) else writeln(‘ a khong chia het cho 5’); Ví dụ 2: Tìm giá trị nhỏ hai số nguyên a và b với a, b nhập từ bàn phím -C1: dùng if – then dạng thiếu min:=a; if b < a then min:=b; -C2: dùng if – then dạng đủ if a < b then := a else := b; (9) Câu lệnh ghép Câu lệnh ghép có dạng: begin <các câu lệnh>; end; Thuật ngữ câu lệnh hiểu chung cho câu lệnh đơn và câu lệnh ghép Lưu ý: câu lệnh ghép, sau end là dấu “;” (10) Program Giai_PTB2; Uses crt; Var a, b, c, D: real; x1, x2: real; Begin clrscr; write(‘a, b, c: ‘); readln(a,b,c); D:=b*b – 4*a*c; if D<0 then writeln('Phuong trinh vo nghiem.') Else begin x1:= (-b – sqrt(D))/(2*a); x2:=-b/a – x1; write(‘x1= ‘, x1:6:2, ‘ x2 = ‘,x2:6:2); end; Readln End (11) Ví dụ 1: nhập a từ bàn phím, kiểm tra xem a có chia hết cho không? Thông báo mànvidu1 hình; kết Program …………………… (1) Xác định bài toán: Input: + số a Output: Thông báo a chia hết cho thông báo a không chia hết cho Thuật toán: B1: nhập a B2: Nếu a chia hết cho thì thông báo a chia hết, ngược lại thông báo a không chia hết a: byte; Var …………………… (2) Begin ………………………… Write(‘ nhap a: ’) ;………… (3) Readln(a); ………………………… ………… If a mod = then ………………………… ………… writeln(a, ‘chia het cho …………………………………… 5’) else writeln(a, ‘khong ………………………… ………… chia het cho 5’); …………………………………… readln End (4) (12) Ví dụ 3: nhập a, b, c từ bàn phím, kiểm tra xem a, b, c có thể lập thành tam giác không? Nếu có tính chu vi và diện tích tam giác đó? Xác định bài toán: Input: + số a, b, c Output: Thông báo a, b, c không lập thành tam giác đưa chu vi và diện tích tam giác Thuật toán: B1: nhập a, b, c B2: Nếu (a+b>c) và (a+c>b) và (b+c>a) thì tính và đưa màn hình chu vi, diện tích tam giác, ngược lại thông báo a, b, c không lập thành tam giác (13) Ví dụ 3: Thuật toán: B1: nhập a, b, c B2: Nếu (a+b>c) và (a+c>b) và (b+c>a) thì tính và đưa màn hình chu vi, diện tích tam giác, ngược lại thông báo a, b, c không lập thành tam giác Công thức tính chu vi: cv a b c Nửa chu vi: cv p Công thức tính diện tích: s p( p a)( p b)( p c) (14) ; Program vidu3 …………………………… (1) a, b,c: byte; Var …………………………… s,cv,p: real; Begin (2) Write(‘ nhap a, b, c: ’) ; Readln(a,b,c);………………… (3) ………………………… …………………………………… If (a+b>c) and (a+c>b) and (b+c>a) then begin ………………………… ……………………………………………………… (4) cv:=a+b+c; p:=cv/2; s:=sqrt(p*(p-a)*(p-b)*(p-c)); Writeln(‘ chu vi tam giac la: ’,cv); Writeln(‘dien tich tam giac la: ’,s); End Else writeln( a, b, c, ‘ khong lap tam giac’); Readln End (15)