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

Chia sẻ bởi Trần Thị Thùy Trang | Ngày 10/05/2019 | 212

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:

Chương 3:
Cấu trúc rẽ nhánh và lặp

Bài 9: CAÁU TRUÙC REÕ NHAÙNH

?
Bài học hôm nay cần biế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 VÀ YÊU CẦU
1.Rẽ nhánh:
Có rất nhiều việc chỉ được thực hiện khi một điều kiện cụ thể nào đó được thỏa mãn.
VD1: A và B thường rủ nhau học nhóm. Một hôm A nói với B: “Chiều mai nếu trời không mưa, A sẽ đến nhà B học”.
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ì …
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 khơng mua thì B s? d?n nhà A, n?u mua thì s? g?i di?n cho A d? trao d?i".
1.Rẽ nhánh:
Để giải phương trình trên, trước tiên ta cần tính gì?
? Bài toán: Viết chương trình giải phương trình bậc hai:
ax2 + bx + c=0;
Sau đó ta làm gì?
? Tính ?= b2 - 4ac
Sau đó, tuỳ thuộc vào giá trị ? mà ta có
kết luận nghiệm hay không.
Cụ thể:
? - Nếu ? < 0 thì phương trình vô nghiệm
? - Nếu ?? 0 thì phương trình có nghiệm
?
1.Rẽ nhánh:
Đúng
Sai
Sơ đồ
? Bài toán: Viết chương trình giải phương trình bậc hai:
ax2 + bx + c=0;
Kiểm tra
? ? 0
Thông báo vô nghiệm
Tính và đưa ra nghiệm
Kết thúc
? Kết luận: Nếu ?< 0 thì phương trình vô nghiệm,
ngược lại thì tính và đưa ra nghiệm của phương trình.
?
1.Rẽ nhánh:
Thuật toán trên xuất hiện mệnh đề gì?
Mệnh đề:
- Nếu . . . thì . . .
- 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.
?
a.Dạng thiếu:
If <điều kiện> then ;
b. Dạng đủ
If <điều kiện> then
else ;
Trong đó:
Đ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ỏ 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. Câu lệnh If - Then:
Ví dụ
a.Dạng thiếu:
b. Dạng đủ
VD2:
If (X mod 2 <> 0) Then Write (X,‘ la so le’)
Else Write (X, ‘ La so chan’);
VD1: If (X mod 2 <> 0) Then
Write (X, ’ La so le ’);
VD3: Tìm s? l?n nh?t Max trong 2 s? a,b có th? thực hi?n bằng 2 cách sau:
- Dạng thiếu: If b>a then Max:=b;
- Dạng đủ:
If b>a then Max:=b
Else Max:=a;
Điều kiện
Câu lệnh
T
F
Điều kiện
Điều kiện
T
Câu lệnh 1
Câu lệnh 2
F
Điều kiện
3. Câu lệnh ghép:
? - Trong ngôn ngữ Pascal, câu lệnh ghép có dạng:
Begin
;
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?
?
Chú ý:
Sau End phải là dấu ; và trước Else không chứa dấu ;
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.

Ví dụ: Ta có đoạn chương trình sau

If Delta<0 then
Writeln(`Phuong trinh vo nghiem`)
Else
Begin
x1:=(-b-SQRT(Delta))/(2*a);
x2:= -b/a - x1;
Writeln(` x1= `, x1 , `x2= `, x2);
End;
Chỉ rõ đâu là lệnh ghép trong đoạn chương trình này.
?
4. Một số ví dụ
Ví dụ 1: Tìm nghiệm thực của phương trình bậc hai
ax2+bx+c=0, với a?0
Xác định input và output của bài toán?
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 "Phuong trinh vo nghiệm".
Mô phỏng
?
4. Một số ví dụ
Ví dụ 2: Tìm số ngày của năm N, biết rằng 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.
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.
?
Mô 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.
Hã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?
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;
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;
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 . ;
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.
?
Câu 2: Cho đoạn chương trình sau
Var a,b,x: Byte;
Begin
x:=a;
if a End.
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
?
?
?
Bài tập về nhà:
Bài 1: Nhập vào 3 số nguyên. Cho biết đó có phải là số đo của 3 cạnh một tam giác hay không ?
Bài 2: Giải phương trình bậc nhất
ax +b =0.
Học bài và làm bài tập trong sách bài tập phần chương III
Hã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
* 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ần Thị Thùy Trang
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)