Bài 9: Cấu Trúc Rẽ Nhánh
Trang 1TIN HỌC 11 Bài 9: Cấu Trúc Rẽ Nhánh
Sinh viên: Lê Văn Toàn
Lớp K56A Khoa CNTT
A Mục đích và yêu cầu:
- Hiểu được nhu cầu của cấu trúc rẽ nhánh trong biểu diễn thuật toán
- Hiểu được câu lệnh rẽ nhánh
- Hiểu câu lệnh ghép
- Viết được các câu lệnh rẽ nhánh dạng thiếu, rẽ nhánh dạng đầy đủ và
áp dụng được với một số bài toán đơn giản
B Phương pháp, phương tiện:
1 Phương pháp:
- Thuyết trình, kết hợp các kiến thức trong sách giáo khoa với các ví dụ minh họa
2 Phương tiện:
- Sách giáo khoa Tin học 11
- Sách tham khảo(nếu có)
- Sách Tin học 11 (dành cho giáo viên)
- Các phương tiện trong lớp học
C Tiến trình lên lớp và nội dung bài giảng:
I Ổn định lớp: (2’)
- Yêu cầu lớp trưởng ổn định lớp và báo cáo sĩ số
II Kiểm tra bài cũ và gợi động cơ : (5’)
1 Kiểm tra bài cũ:
- Hỏi: Em hãy cho thầy biết cách biên dịch chương trình, chạy một chương trình viết bằng Pascal?
2 Gợi động cơ:
- Ở chương trước chúng ta đã tìm hiểu một chương trình đơn giản viết bằng ngôn ngữ Pascal như thế nào, và chúng ta cũng đã làm quen với câu lệnh gán một câu lệnh đơn giản và cơ bản nhất của ngôn ngữ Pascal Ở chương này chúng ta sẽ tìm hiểu về các câu lệnh rã nhánh
và lặp, cụ thể bài hôm nay chúng ta sẽ tìm hiểu câu lệnh rẽ nhánh III Nội dung bài học:
Nội dung Hoạt động của thầy và trò Thời gian
1 Rẽ nhánh:
- Ví dụ: Bạn B rủ bạn
A đến nhà chơi
Giáo viên:
- Thuyết trình: Chúng ta xét
ví dụ sau (đưa ra ví dụ)
8’
Trang 2A nói: Nếu chiều nay
trời không mưa thì mình
sẽ đến nhà câu
Một lần khác A rủ B về
nhà chơi
B nói: Nếu chiều nay
trời không mưa thì mình
sẽ đến, nếu mưa thì
mình sẽ không đến
- Cách diển đạt của A
thuộc dạng thiếu:
Nếu… thì…
- Cách diễn đạt của B
thuộc dạng đủ:
Nếu … thì, nếu không
thì…
- 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à đủ
2 Câu lệnh if – then:
a. Dạng thiếu:
If <biểu thức logic>
then <câu lệnh> ;
b Dạng đủ:
If <biểu thức logic>
then <câu lệnh 1> else
<câu lệnh2>;
- Ở dạng thiếu: biểu
thức logic sẽ được
kiểm tra Nếu nó
đúng thì câu lệnh sẽ
được thực hiện,
ngược lại nó sẽ bị bỏ
qua
- Ở dạng đủ: biểu thức
logic cũng được
Học sinh:
- Trật tự nghe giảng
Giáo viên:
- Thuyết trình: Câu nói của
A cho ta biết A sẽ đến nhà
B nếu như trời thoả mãn điều kiện là không mưa
Ngoài ra nếu trong trường hợp trời mưa thì A không
đề cập đến Ta nói cách cách diễn đạt như vậy thuộc dạng thiếu Câu nói của B thì lại có đề cập đến trường hợp trời mưa Cách điễn đạt như của B thuộc dạng đủ
Giáo viên:
- Đặt câu hỏi: Em hãy nêu
sự khác nhau giữ câu lệnh
if – then dạng thiếu và đủ? Học sinh:
- Trả lời: Ở dạng thiếu nếu
biểu thức logic sai thì câu
lệnh sau then sẽ không được thực hiện và câu
lệnh if – then kết thúc Ở dạng đủ nếu biểu thức logic sai thì câu lệnh sau then (câu lệnh 1) cũng
không được thực hiện
nhưng câu lệnh if – then chưa kết thúc mà câu lệnh
7’
Trang 3kiểm tra Nếu đúng
thì thực hiện câu
lệnh 1, ngược lại sẽ
thực hiện câu lệnh 2.
3 Câu lệnh ghép:
- Câu lệnh ghép là câu
lệnh được hợp thành
bởi một dãy các câu
lệnh
- Thuật ngữ câu lệnh
được hiểu chung cho
câu lệnh đơn và câu
lệnh ghép
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 (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 hoặc
thông báo “phương trình
vô nghiệm”
Program GPTB2;
Uses crt;
Var a, b, c, d, x1, x2:
real;
Begin
Clrscr;
Writeln (‘Nhap cac he
2 sẽ đựoc thực hiện.
Giáo viên:
- Thuyết trình: Sau một số
từ khoá phải là một câu lệnh tuy nhiên trong nhiều trường hợp, cáu thao tác sau từ khoá rất phức tạp, đòi hỏi không phải chỉ một mà nhiều câu lệnh để
mô tả Trong các trường hợp như vậy, 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 Thuật ngữ
câu lệnh dung chung cho câu lệnh ghép và đơn
Học sinh
- Trật tự nghe giảng và ghi bài đầy đủ
Giáo viên:
- Thuyết trình: (Nêu 2 ví dụ
và gọi học sinh lên bảng viết chương trình)
Học sinh:
- Suy nghĩ để viết chương trình
Giáo viên:
- Thuyết trình: (Sau khi học sinh viết chương trình xong nhận xét
và chữa bài)
5’
15’
Trang 4so a, b, c’);
Readln (a,b,c);
d:= b*b – 4*a*c;
if D<0 then writeln (‘Phuong trinh vo
nghiem’)
else if D=0 then writeln (‘Phuong trinh co
nghiem kep:’,
-b/(2*a):0:8)
else
begin
writeln (‘Phuong trinh co 2 nghiem phan biet’); writeln (‘x1=’,(-b +
sqrt(d))/(2*a):0:8); writeln (‘x2=’,(-b -
sqrt(d))/(2*a):0:8); end;
readln;
End
- 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
- 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
Trang 5Clrscr;
Writeln (‘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);
Realdn;
End
D Củng cố bài học và đưa ra bài tập về nhà: (3’)
- Hôm nay, chúng ta đã tìm hiểu về câu lệnh if – then và thế nào là một câu lệnh ghép Các em về học bài và làm cho thầy bài tập sau:
Bài : Viết chương trình giải bài toán cho máy nhận vào ba số bất kì, xét xem ba số đó có lập thành ba số đo của ba cạnh tam giác không?