Bài 9. Cấu trúc rẽ nhánh

Chia sẻ bởi Hồ Đăng Quang | Ngày 10/05/2019 | 157

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:

TRU?NG THPT NGUYỄN BỈNH KHIÊM
SỞ GIÁO DỤC & ĐÀO TẠO DAKLAK
ĐắkLắk
BÀI 9 : CẤU TRÚC RẼ NHÁNH
BÀI 10: CẤU TRÚC LẶP
II. Caâu leänh IF…THEN…
IV. Moät soá ví duï
III.Caâu leänh gheùp
Hiểu nhu cầu của cấu trúc rẽ nhánh trong biểu diễn thuật toán.
-�Hiểu cađu lệnh rẽ nhánh dạng thiếu và đủ.
- Hiểu câu lệnh ghép.
Sử dụng cấu trúc rẽ nhánh trong mô tả thuật toán của một số bài toán đơn giản.
I. Khaùi nieäm reõ nhaùnh
MỤC ĐÍCH VÀ YÊU CẦU
I. Khaùi nieäm reõ nhaùnh:
Ví Dụ: Để viết chương trình giải phương trình bậc hai, ta phải: Tính Delta=b2-4ac
Sau đó tùy thuộc vào giá trị Delta mà ta tính nghiệm hay không. Như vậy sẽ có 3 trường hợp:
   - Neáu Delta <0 thì phöông trình voâ nghieäm
II. Caâu leänh IF…THEN…
III.Caâu leänh gheùp
IV. Moät soá ví duï
I. Khaùi nieäm reõ nhaùnh
   - Neáu Delta =0 thì phöông trình coù nghieäm keùp.
   - Neáu Delta >0 thì phöông trình coù 2 nghieäm phaân bieät.
  Hoaëc coù theå noùi neáu delta< 0 thì phöông trình voâ nghieäm, ngöôïc laïi thì phöông trình coù nghieäm.
  - Qua yù tröôûng ñeå giaûi quyeát baøi toaùn nhö treân, ta coù theå ruùt ra meänh ñeà sau:.
   -      Neáu . . . .thì. . . . .
- Nếu . . . . thì. . . . .,ngược lại thì
* Cấu trúc như mệnh đề trên đựơc gọi là cấ trúc rẽ nhánh
* Ngôn ngữ Pascal cho phép ta sử dụng câu lệnh IF - THEN hoặc IF - THEN - ELSE để mô tả cấu trúc rẽ nhánh trên!
* Vậy, ta làm thế nào để vận dụng cấu trúc rẽ nhanh trên vào Ngôn Ngữ Lập Trình, để viết chương trình cho một bài toán ?
II. Caâu leänh IF…THEN…
III.Caâu leänh gheùp
IV. Moät soá ví duï
I. Khaùi nieäm reõ nhaùnh
+ Mệnh đề 1: Dạng thiếu (khuyết else)
II. Caâu leänh IF…THEN…ELSE
- Pascal dùng câu lệnh If- Then - Else để mô tả việc rẽ nhánh tương ứng với 2 mệnh đề rẽ nhánh như sau:
If <Điều kiện> then ;
+ Mệnh đề 2: Dạng đủ
II. Caâu leänh IF…THEN…
III.Caâu leänh gheùp
IV. Moät soá ví duï
I. Khaùi nieäm reõ nhaùnh
If< Điều kiện > then < Lệnh1 > else < Lệnh 2 >;
Trong đó: + Điều kiện:là biểu thức quan hệ, hoặc logic
���� + Lệnh, Lệnh1, Lệnh2:Là các lệnh của Pascal
- Ý 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ệnh1, nếu điều kiện sai thì thực hiện câu lệnh2
* Ví duï: Vaän duïng caû 2 daïng cuûa caâu leänh if – then cho baøi toaùn tìm giaù trò lôùn nhaát cuûa hai soá a vaø b ?
Cách 1: dạng thiếu
if b>a then Max:=b;
Max:=a;
II. Caâu leänh IF…THEN…
III.Caâu leänh gheùp
IV. Moät soá ví duï
I. Khaùi nieäm reõ nhaùnh
Cách 2: dạng đủ
If a>b then Max:=a Else Max:=b;
* Sơ đồ khối của 2 dạng của câu lệnh rẻ nhánh
- Dạng thiếu:
Điều kiện
Câu lệnh
Đúng
Sai
- Dạng đủ:
Đúng
Sai
Điều kiện
Câu lệnh 2
Câu lệnh 1
II. Caâu leänh IF…THEN…
III.Caâu leänh gheùp
IV. Moät soá ví duï
I. Khaùi nieäm reõ nhaùnh
II. Caâu leänh IF…THEN…
III.Caâu leänh gheùp
IV. Moät soá ví duï
I. Khaùi nieäm reõ nhaùnh
* Qua sơ đồ trên, nế sau trừ khoá then và else có không phải là 1 lệnh mà 2 lệnh trở lênh thì ta phải làm như thế nào ?
* Xét đoạn chương trình pascal tìm min và max của 2 số a và b.
IF a BEGIN
Max:= b;
Min:= a;
END
ELSE
BEGIN
Max:= a;
Min:= b;
END;

* Nhận xét đoạn ct:
- Trước từ khoá ELSE mặc dù két thúc một câu lẹnh nhưng không bao giờ có dấu chấm phẩy (;).
- Trong pas cal cho phép ta sử dụng cặp từ khoá begin - end để ghép 2 câu lệnh trở lênh thành một câu lệnh,và được gọi là câu lệnh ghép.
- Trong Pascal câu lệnh ghép có dạng:
Begin
< Các câu lệnh >;
end;
- Caâu leänh gheùp: Laø caâu leänh chöùa töø 2 leänh trôû leân vaø ñöôïc ñaët trong caëp töø khoaù BEGIN vaø END.
II. Caâu leänh IF…THEN…
III.Caâu leänh gheùp
IV. Moät soá ví duï
I. Khaùi nieäm reõ nhaùnh
III. Caâu leänh gheùp
* Chú ý:
Sau END phải là dấu chấm phẩy (;) và trước ELSE không chứa dấu chấm phẩy (;)
II. Caâu leänh IF…THEN…
III.Caâu leänh gheùp
IV. Moät soá ví duï
I. Khaùi nieäm reõ nhaùnh
III. Moät soá ví duï
Ví dụ1:
Tìm nghiệm thực của phương trình bậc 2 : Ax2+Bx+C=0.
Xây dựng ý tưởng
Nhập 3 số a,b,c
Tính delta:=b*b-4*a*c
Nếu delta<0 thì pt vô nghiêm,ngược lại phương trình có nghiêm
Dùng câu lệnh if-then dạng đủ
Program giai_ptb2;
Var a,b,c,delta, x1,x2: real;
Begin
write(‘nhaäp a,b,c töø baøn phím:’);
readln(a,b,c);
delta:=b*b-4*a*c;
if delt a<0 then writeln(‘pt vo no’)
else
begin
x1:=(-b + sqrt(delta0)/2*a;
x2:= -b/a – x1;
writeln(‘x1=‘,x1’x2=‘,x2);
end;
readln
End.
* Lập trình cho dạng thiếu ?
II. Caâu leänh IF…THEN…
III.Caâu leänh gheùp
IV. Moät soá ví duï
I. Khaùi nieäm reõ nhaùnh
Ví dụ2:
Tìm số ngày của 1 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.
- Hướng dẫn: tromg biểu thức điều kiện ta sữ dụng cá phép toán lôgic như la or, and dể gộp các điều kiện lại với nhau.
Btđk =
((N mod 400 = 0) or (N mod 4 = 0) and (N mod 100<>0))
- Dùng cấu trúc dạng đủ để lập trình cho bài toán trên ?
KI?M TRA BĂI CU:

* Chương trình
Program so_ngay;
Var
N, S: integer;
Begin
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.

II. Caâu leänh IF…THEN…
III.Caâu leänh gheùp
IV. Moät soá ví duï
I. Khaùi nieäm reõ nhaùnh
* 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ẻ: Hồ Đăng Quang
Dung lượng: | Lượt tài: 1
Loại file:
Nguồn : Chưa rõ
(Tài liệu chưa được thẩm định)