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.. Các NNLT thường cung cấp các câu lệnh để mô tả các cấu trúc rẽ nhánh, Pascal sử dụng câu lệnh nào để mô
Trang 1Chương 3:
Cấu trúc rẽ nhánh và lặp
Bài 9: CẤU TRÚC RẼ NHÁNH
Trang 2Baøi hóc hođm
nay caăn bieât
gì?
-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
MÚC ÑÍCH VAØ YEĐU CAĂU
Trang 3• Cách diễn đạt của A như vậy ta nói thuộc dạng mệnh đề thiếu:
Nếu … thì …
Trang 4• Cách diễn đạt của B như vậy ta nĩi thuộc dạng mệnh đề đủ:
Nếu … thì …, nếu khơng thì …
VD2: Một lần khác, B nĩi với A: “Chi u mai n u tr i ều mai nếu trời ếu trời ời
khơng m a thì B s n nhà A, n u m a thì s g i i n ưa thì B sẽ đến nhà A, nếu mưa thì sẽ gọi điện ẽ đến nhà A, nếu mưa thì sẽ gọi điện đếu trời ếu trời ưa thì B sẽ đến nhà A, nếu mưa thì sẽ gọi điện ẽ đến nhà A, nếu mưa thì sẽ gọi điện ọi điện đ ện cho A trao i để trao đổi đổi ”.
1.Rẽ nhánh:
Trang 5Để giải phương trình
trên, trước tiên
- Nếu < 0 thì phương trình vô nghiệm
- Nếu ≥ 0 ≥ 0 0 0 thì phương trình có nghiệm
1.Rẽ nhánh:
Trang 7Thuật toán trên
- Nếu thì , ngược lại thì
Các NNLT thường cung cấp các câu lệnh để mô tả các cấu trúc rẽ nhánh, Pascal sử dụng câu lệnh nào để mô tả?
Cấu trúc này được gọi là cấu trúc rẽ nhánh.
Trang 8Điều kiện là biểu thức quan hệ hoặc logic
Câu lệnh, câu lệnh 1, câu lệnh 2 là các câu lệnh của Pascal
Ý nghĩa: 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ì câu lệnh sẽ bỏ ỏ b
qua.
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.
Ý nghĩa của câu lệnh:
2 Caâu leänh If – Then:
Trang 9VD3: Tìm s l n nh t Max trong 2 s a,b có th thực ố lớn nhất Max trong 2 số a,b có thể thực ớn nhất Max trong 2 số a,b có thể thực ất Max trong 2 số a,b có thể thực ố lớn nhất Max trong 2 số a,b có thể thực ể thực
VD3: Tìm s l n nh t Max trong 2 s a,b có th thực ố lớn nhất Max trong 2 số a,b có thể thực ớn nhất Max trong 2 số a,b có thể thực ất Max trong 2 số a,b có thể thực ố lớn nhất Max trong 2 số a,b có thể thực ể thực
hi n bằng 2 cách sau: ện bằng 2 cách sau:
hi n bằng 2 cách sau: ện bằng 2 cách sau:
- Dạng thiếu: If If b>a then b>a then Max:=b;
Trang 10Điều kiện Điều kiện T Câu lệnh Câu lệnh
F
Điều kiện
Trang 11Điều kiện Câu lệnh 1
Trang 123 Câu lệnh ghép:
- Trong ngôn ngữ Pascal, câu lệnh ghép có dạng:
<Các câu lệnh>;
End;
Trong câu lệnh IF - THEN hoặc
IF – THEN – ELSSE muốn thực hiện nhiều lệnh sau Then hay nhiều lệnh sau Else làm thế nào?
Thuật ngữ câu lệnh ở đây được hiểu chung cho câu lệnh đơn và câu lệnh ghép
Trang 13Ví dụ: Ta có đoạn chương trình sau
Writeln(‘Phuong trinh vo nghiem’) Else
Begin x1:=(-b-SQRT(Delta))/(2*a);
Trang 144 Một số ví dụ
Ví dụ 1: Tìm nghiệm thực của phương trình bậc hai
Output: Đưa ra màn hình các
nghiệm thực hoặc thông báo
“Phuong trinh vo nghiệm”
Mô phỏng
Trang 154 Một số ví dụ
năm chia hết cho 400 hoặc chia hết cho 4 nhưng không chia hết cho 100
Ví dụ: các năm 2000, 2004 là năm nhuận, các năm 1900,1945 không phải là năm nhuận.
Xác định Input và Output của bài toán?
Input: N nguyên dương nhập từ bàn phím
Output: Đưa số ngày của năm
N ra màn hình
Trang 16Mô phỏng
Kiểm tra điều kiện:
Nếu (N chia hết cho 400) hoặc ((N chia hết cho 4) và (N khơng chia hết cho 100)) thì số ngày của năm N là 366 ngày Ngược lại số ngày của năm N
là 365 ngày.
Trang 17Hãy khoanh tròn vào câu đúng nhất
Câu 1: Trong ngôn ngữ lập trình Pascal, phát biểu nào sau đây là đúng với câu lệnh rẽ nhánh if then?
a) Nếu sau Then muốn thực hiện nhiều câu lệnh thì các lệnh phải đặt giữa hai dấu ngoặc đơn;
b) Nếu sau Then muốn thực hiện nhiều câu lệnh thì các lệnh phải đặt giữa Begin và End;
c) Nếu sau Then muốn thực hiện nhiều câu lệnh thì các lệnh phải đặt giữa Begin và End ;
d) Nếu sau Then muốn thực hiện nhiều câu lệnh thì chỉ cần liệt kê các lệnh ra
Trang 18Câu 2: Cho đoạn chương trình sau Var a,b,x: Byte;
Begin x:=a;
if a<b then x:=b;
End.
a) Cho a=20; b=15 Kết quả x bằng bao nhiêu?
b) Cho a=5; b=10 Kết quả x bằng bao nhiêu?
Hãy đánh dấu vào đáp số đúng
Trang 20Hãy cho biết sự giống và khác nhau của hai dạng câu lệnh IF - THEN
* Giống nhau: Cùng là câu lệnh có tổ chức rẽ nhánh, khi
gặp một điều kiện nào đó thì lựa chọn thực hiện thao tác thích hợp
* Khác nhau: Dạng thiếu, nếu điều kiện không đúng thì thoát khỏi
tổ chức rẽ nhánh, thực hiện câu lệnh tiếp theo của chương trình; còn dạng đủ, nếu điều kiện không đúng thì thực hiện lệnh thứ hai, sau đó mới thoát khỏi tổ chức rẽ nhánh, thực hiện câu lệnh tiếp
theo của chương trình