rẽ nhánh VD1: Châu và Ngọc thường cùng nhau chuẩn bị các bài thực hành môn Tin học - Một lần Châu hẹn với Ngọc: “ Chiều mai nếu trời không mưa thì Châu sẽ đến nhà Ngọc ”.. - Một lần khác[r]
Trang 1Chươg III: cấu trúc rẽ nhánh và lặp
$ 9: cấu trúc rẽ nhánh
1 rẽ nhánh
VD1: Châu và Ngọc thường cùng nhau chuẩn bị các bài thực hành
môn Tin học
- Một lần Châu hẹn với Ngọc: “ Chiều mai nếu trời không mưa thì
Châu sẽ đến nhà Ngọc ”.
- Một lần khác, Ngọc nói với Châu: “ Chiều mai nếu trời không mưa
thì Ngọc sẽ đến nhà Châu, nếu mưa thì sẽ gọi điện cho Châu để trao đổi”.
{Như vậy cách diễn đạt của Châu nói với Ngọc thuộc dạng thiếu:
Nếu thì
Như vậy cách diễn đạt của Ngọc nói với Châu thuộc dạng đủ :
Nếu thì , nếu không thì…
Khái niệm: Cấu trúc dùng để mô tả các mệnh đề có dạng như trên được
gọi là cấu trúc rẽ nhánh thiếu và đủ }
Trang 2Ví dụ 2: Để gi ải p hương trình giải ptb2:
ax2 + bx + c = 0 (a ≠ 0)
{ - Tính = b2- 4ac;
- Nếu <0 thì phương trình vô nghiệm.
- Nếu ≥0 thì phương trình có nghiệm.
Như vậy tuỳ thuộc vào giá trị của mà ta đưa ra nghiệm hay vô nghiệm }
Trang 3Sơ đồ thể hiện cấu trúc rẽ nhánh của PTB2
≥0
Đúng
Sa i
Nhập a,b,c
b2 – 4ac
Tính và đưa ra nghiệm thực,
rồi kết thúc Thông báo vô nghiệm,
rồi kết thúc
Trang 4Tớnh chất: Mọi ngụn ngữ lập trỡnh đều cú cỏc cõu lệnh để mụ
tả cấu trỳc rẽ nhỏnh.
{2 Câu lệnh If - Then
Trong Pascal dùng câu lệnh If - Then để mô tả việc rẽ nhánh t
ơng ứng với 2 loại mệnh đề rẽ nhánh nh sau:
a Dạng thiếu:
If < điều kiện> Then < câu lệnh>;
b Dạng đầy đủ:
If < điều kiện> Then < câu lệnh 1> Else < câu lệnh 2>;
Trong đó:
- Điều kiện: Là biểu thức logic.
- Câu lệnh, câu lệnh 1, câu lệnh 2 là 1 câu lệnh của Pascal.
Trang 5Sơ đồ cấu trúc thể hiện 2 dạng thiếu và đủ như sau:
Câu lệnh
IF
Điều kiện Đúng
Sai
Câu lệnh 1
IF
Điều kiện
Đúng
Sa i Câu lệnh 2
Hình 1
Hình 2
Dạng thiếu
Dạng đủ
Trang 6{ * ý nghĩa các câu lệnh:
- Dạng thiếu: Nếu điều kiện đúng thì câu lệnh đ ợc thực
hiện, nếu điều kiện sai thì không thực hiện gì.
- Dạng đủ: Nếu điều kiện đúng thì thực hiện câu lệnh 1,
nếu điều kiện sai thì thực hiện câu lệnh 2 }
Ví dụ1: If( X mod 2 = 0) then Write(x,' la so chan');
VD 2: If d < 0 then Write (' phuong trinh vo nghiem')
Else Write (' Phuong trinh co nghiem');
Trang 73 câu lệnh ghép
{- trong ngôn ngữ lập trình cho phép gộp một dãy câu lệnh thành một câu lệnh ghép có dạng:
begin
<các câu lệnh>;
end; }
Trang 8Ví dụ: Đoạn chương trình sau trong ngôn ngữ Pascal có sử
dụng câu lệnh ghép
If d < 0 then Writeln(' phuong trinh vo nghiem') Else
Begin
X1:= (-b-sqrt(d))/(2*a);
X2:= -b/a – x1; end;
{chú ý:
- sau end phải là dấu chấm phẩy ‘;’ , t rước else không chứa dấu chấm phẩy ‘;’
- từ nay nói đến câu lệnh thì đó có thể là câu lệnh đơn hoặc là câu lệnh ghép }
Trang 94 Một số ví dụ
{ Quan sát các chương trình sau trong ngôn ngữ lập trình Pascal.
VD1: Tìm nghiệm thực của phương trình bậc hai
ax2 + bx + c = 0 với a ≠ 0.
Input: Các hệ số a, b, c nhập từ bàn phím.
Output: Đưa ra màn hình các nghiệm thực hoặc
thông báo " Phương trình vô nghiệm".
Trang 10Program Giai_PTB2;
uses crt;
var a, b, c: real;
d, x1,x2: real;
Begin
clrscr;
write( 'nhap cac he so 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; Writeln(' X1=', X1:8:3,'X2=',X2:8:3);
end;
readln
end
Trang 11VD2: Tìm số ngày của một năm: năm nhuận là năm chia hết cho 400
hoặc chia hết cho 4 nhưng không chia hết cho 100
Input: N nhập từ bàn phím.
Output: Đưa số ngày của năm N ra màn hình.
Program nam_nhuan;
uses crt;
var N, SN: integer;
Begin
clrscr;
write( ' nam : '); readln( N);
if (N mod 400 = 0) or (( N mod 4 = 0) and ( N mod 100 <> 0)) then SN:= 366 else SN:= 365;
Writeln( ' so ngay cua nam ', n , ' la ' , SN );
readln
end }
Trang 12C củng cố
Các ngôn ngữ lập trình đều có câu lệnh thể hiện cấu trúc rẽ nhánh Câu lệnh rẽ nhánh có hai dạng:
- Dạng thiếu: If < điều kiện> Then < câu lệnh>;
- Dạng đủ: If < điều kiện> Then < câu lệnh 1> Else < câu lệnh 2>;
- Có thể gộp dãy câu lệnh thành câu lệnh ghép có dạng:
Begin
<các câu lệnh>;
End;
D Bài tập về nhà
Làm bài tập 1,2, 4 trong SGK- Trang 50, 51