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

Chia sẻ bởi Nguyễn Thị Trinh | 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:

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

Bài 9: CAÁU TRUÙC REÕ NHAÙNH
?
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 câu lệnh rẽ nhánh (dạng thiếu và dạng đủ).
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.
Viết được các lệnh rẽ nhánh thiếu, rẽ nhánh đầy đủ và áp dụng để thể hiện được thuật toán của một số bài toán đơn giản.
Bài học hôm nay cần biết gì?
Yêu cầu nội dung bài học:
?
Để 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. Khái niệm 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;
1. Khái niệm rẽ nhánh
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ì phương trình có nghiệm.
?
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 mơ t? m?nh d? "Nếu . . . thì . . .
ho?c Nếu . . . thì . . . ngược lại thì . . ." gọi là
cấu trúc rẽ nhánh.
?
a. D?ng thi?u
IF THEN
b. D?ng d?y d? :
IF < Di?u ki?n > THEN
ELSE < C�u l?nh 2>
2. Câu lệnh If - Then
- Pascal dùng câu lệnh If-Then để mô tả việc rẽ nhánh tương ứng, có 2 loại mệnh đề rẽ nhánh.
Trong đó:
? Di?u ki?n : Là biểu thức logic
? C�u l?nh, C�u l?nh 1, C�u l?nh 2 là nh?ng câu lệnh của Pascal.
Biểu thức quan hệ hoặc logic nhận 2 giá trị nào?
Điều kieän chæ coù giaù trò True (Ñuùng) hoaëc False (sai)
(1) Nếu <Điều kiện > đúng -> Thực hiện câu
lệnh sau Then;
Ý nghĩa của câu lệnh If ở dạng đầy đủ?
(2) Nếu <điều kiện> đúng -> thực hiện
C�u l?nh 1(sau Then), ngược lại thực hiện
C�u l?nh 2(sau Else)
?
Ý nghĩa:
- Dạng thiếu: Nếu điều kiện đúng thì thực hiện c�u l?nh , nếu điều kiện sai thì không thực hiện gì.
- Dạng đầy đủ: Nếu điều kiện đúng thì thực hiện c�u l?nh 1, (ngược lại) nếu điều kiện sai thì thực hiện c�u l?nh 2
VD1:If (x mod 2=0) Then Write(x,`là so chan`);
VD2: If Delta<0 then write(`pt vo nghiem`)
Else Write(`PT co nghiem`);
Ý nghĩa các câu lệnh trong ví dụ?
?
?
Ví dụ 3: Tìm giá trị lớn nhất (max) của hai số a và b.
Cách 1:
Max:=a;
If b>a then Max:=b;
Cách 2:
If a>b Then Max:=a
Else Max:=b;
Cách nào nhanh hơn,tiện hơn? Vì sao?
Cách 2: Tiện hơn, hay hơn vì chỉ sử dụng 1 câu lệnh.
3. Câu lệnh ghép
Trong ngôn ngữ Pascal, câu lệnh ghép có dạng:
Begin
;
End;
Chú ý:
Cu?i câu lệnh trước Else không có dấu chấm phẩy(;)
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?
?
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 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
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
Begin
x:=a;
if aEnd.
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
?
?
?
Về nhà
Học bài và làm bài tập trong sách bài tập phần chương III
* 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ẻ: Nguyễn Thị Trinh
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)