Bài 9. Cấu trúc rẽ nhánh
Chia sẻ bởi Trịnh Văn Huy |
Ngày 10/05/2019 |
57
Chia sẻ tài liệu: Bài 9. Cấu trúc rẽ nhánh thuộc Tin học 11
Nội dung tài liệu:
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à đủ. }
Ví dụ 2: Để giải phươ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. }
Sơ đồ thể hiện cấu trúc rẽ nhánh của PTB2
≥0
Đúng
Sai
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
Tí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.
Sơ đồ 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
Sai
Câu lệnh 2
Hình 1
Hình 2
Dạng thiếu
Dạng đủ
{* ý 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`);
3. 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
;
end; }
Ví 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 ‘;’ ,trướ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. }
4. 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".
Program 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.
VD2: 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. }
C. 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
;
End;
D. Bài tập về nhà
Làm bài tập 1,2, 4 trong SGK- Trang 50, 51.
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à đủ. }
Ví dụ 2: Để giải phươ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. }
Sơ đồ thể hiện cấu trúc rẽ nhánh của PTB2
≥0
Đúng
Sai
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
Tí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.
Sơ đồ 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
Sai
Câu lệnh 2
Hình 1
Hình 2
Dạng thiếu
Dạng đủ
{* ý 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`);
3. 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
end; }
Ví 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 ‘;’ ,trướ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. }
4. 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".
Program 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.
VD2: 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. }
C. 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
End;
D. Bài tập về nhà
Làm bài tập 1,2, 4 trong SGK- Trang 50, 51.
* Một số tài liệu cũ có thể bị lỗi font khi hiển thị do dùng bộ mã không phải Unikey ...
Người chia sẻ: Trịnh Văn Huy
Dung lượng: |
Lượt tài: 0
Loại file:
Nguồn : Chưa rõ
(Tài liệu chưa được thẩm định)