Tải bản đầy đủ (.doc) (7 trang)

CẤU TRÚC RẼ NHÁNH

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (97.62 KB, 7 trang )

Chương 3. CẤU TRÚC RẼ NHÁNH VÀ LẶP
Bài 9. CẤU TRÚC RẼ NHÁNH (tiết 1)
Tiết PPCT: 12
Người soạn: Nguyễn Thị Quyên
Ngày soạn : 20/10/2009
Ngày giảng: 31/10/2009
I.Mục tiêu.
1. Về kiến thức.
- Sự cần thiết có cấu trúc rẽ nhánh trong lập trình
- Học sinh biết được cấu trúc, ý nghĩa của cấu trúc rẽ nhánh lập trình bằng
ngôn ngữ Pascal
- Hiểu được câu lệnh rẽ nhánh dạng thiếu và đầy đủ
- Sự cần thiết của câu lệnh ghép trong lập trình, nắm được cấu trúc câu lệnh
ghép trong Pascal.
2. Về kĩ năng.
- 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âu lệnh rẽ nhánh dạng thiếu và đầy đủ và áp dụng thực hiện
được một số bài toán đơn giản
- Sử dụng câu lệnh ghép khi cần thiết trong lập trình
3. Về thái độ.
- Giúp học sinh hiểu rõ tầm quan trọng của cấu trúc rẽ nhánh
- Làm cho học sinh yêu thích lập trình, yêu môn học hơn
- Phát triển tư duy lập trình, phương pháp làm việc khoa học.
II. Những phương pháp dạy học chủ yếu.
- Kết hợp các phương pháp sau: thuyết trình, vấn đáp, gợi mở, phát hiện
và giải quyết vấn đề, vẽ hình minh họa, phiếu học tập, tổ chức hoạt động
nhóm nhỏ…
III. Những hoạt động chính:
- Hoạt động 1: Tìm hiểu cú pháp và ý nghĩa cấu trúc rẽ nhánh
- Hoạt động 2: Tìm hiểu cú pháp và ý nghĩa câu lệnh rẽ nhánh if – then


trong lập trình
- Hoạt động 3: Tìm hiểu cú pháp và ý nghĩa câu lệnh ghép trong lập trình
- Hoạt động 4: Rèn kĩ năng viết câu lệnh if - then
IV. Phương tiện dạy học.
1.Chuẩn bị của giáo viên
- Máy tính, máy chiếu
- Giáo án, sách giáo khoa và sách giáo viên Tin học 11
- Bảng, phấn, phiếu học tập, hình minh họa
2. Chuẩn bị của học sinh.
- Vở ghi
- Sách giáo khoa Tin học 11
V. Tài liệu tham khảo.
- Sách bài tập Tin học 11
VI. Tiến trình lên lớp.
1. Ổn định lớp (1’)
- Gv: Yêu cầu lớp trưởng báo cáo sĩ số
- Hs: Báo cáo sĩ số.
2. Gợi động cơ (3’)
- Gv: + Cho chạy CT giải phương trình bậc 2 đã được lập trình sẵn.
+ Nhập bộ giá trị a=1, b=2, c=1 để delta>=0
+ Nhập bộ giá trị a=1, b=2, c=3 để delta <0 => CT gặp lỗi
- Gv: Làm thế nào để xử lí tình huống này? Làm thế nào để máy có thể
đưa ra màn hình kết quả mà ta mong muốn là: đưa ra nghiệm của phương
trình nếu delta>=0 nhưng vẫn đưa ra thông báo khi delta<0?
- Gv: Chúng ta sẽ cùng tìm hiểu cách mà máy tính làm việc đó trong giờ
hôm nay.
- Gv: Ghi tên chương, tên bài lên bảng
3. Nội dung bài học (27’)
3.1. Hoạt động 1: Giới thiệu cấu trúc rẽ nhánh trong lập trình (5’)
Nội dung Hoạt động của thầy và trò

- VD1: Nếu tôi học tốt thì tôi sẽ đi thi
đại học
Nếu tôi học tốt thì tôi sẽ đi thi
đại học nếu không thì tôi sẽ đi học
nghề.
- VD2: Tùy thuộc giá trị của delta đưa ra
kết luận nghiệm.
Nếu delta>=0 thì kết luận phương
trình có nghiệm
Nếu delta<0 thì kết luận phương
trình vô nghiệm
Nếu delta>=0 thì kết luận phương
trình có nghiệm nếu không thì kết luận
phương trình vô nghiệm
- Cấu trúc chung:
Nếu thì
Nếu thì nếu không thì
- Gv: Trong mỗi NNLT thì
luôn có các cấu trúc tương
ứng để thực hiện việc chọn
thực hiện hay không thực
hiện 1 việc nào đó. Trong
Pascal cũng có các câu lệnh
như vậy gọi là cấu trúc rẽ
nhánh dạng thiếu và dạng
đầy đủ
3.2. Hoạt động 2: Tìm hiểu cú pháp và ý nghĩa câu lệnh rẽ nhánh if – then
trong lập trình Pascal (15’)
Nội dung Hoạt động của thầy và trò
Tương ứng với 2 cấu trúc trên

Pascal có 2 dạng câu lệnh rẽ
nhánh dạng thiếu và đầy đủ sau:
- Cú pháp:
+ Dạng thiếu:
If <điều kiện> then <câu lệnh>;
+ Dạng đầy đủ:
If <điều kiện> then <câu lệnh 1>
else <câu lệnh 2>;
- Trong đó:
+ if, then, else là các từ khóa;
+ điều kiện là biểu thức logic;
+ câu lệnh, câu lệnh 1, câu lệnh 2
là 1 câu lệnh của Pascal.
- Chú ý: trước else không có dấu
chấm phẩy (;)
- Y nghĩa câu lệnh:
+ Dạng thiếu: Kiểm tra điều kiện,
nếu điều kiện đúng thì câu lệnh
được thực hiện còn nếu điều kiện
sai thì câu lệnh bị bỏ qua.
+ Dạng đầy đủ: Kiểm tra điều
kiện. 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.
- Một số các ví dụ:
VD1: Xét nghiệm phương trình
bậc 2
- Dạng thiếu:
If delta<0 then write('phuong
trinh vo nghiem');

If delta>=0 then write('phuong
trinh co nghiem);
- Dạng đầy đủ:
- Gv: Cụ thể ngôn ngữ Pascal sẽ
dùng câu lệnh nào để thực hiện
việc rẽ nhánh trên? Chúng ta
chuyển sang phần 2.
- Gv: Viết cú pháp câu lệnh rẽ
nhánh dạng thiếu và dạng đầy đủ
- Gv: Yêu cầu Hs nhắc lại biểu
thức logic là gì?
- Gv: Nêu hoạt động của câu lệnh
rẽ nhánh dạng thiếu
- Gv: Yêu cầu học sinh nêu hoạt
động của câu lệnh rẽ nhánh dạng
đầy đủ?
- Gv: Hoàn chỉnh câu trả lời của
hs.
- Gv: Yêu cầu hs tìm từ khóa, biểu
thức logic, câu lệnh trong ví dụ
- Hs: dựa vào cú pháp ở trên để trả
lời
- Gv: Có nhận xét gì về 2 điều
kiện viết ở dạng thiếu?
- Gv: nhận xét câu trả lời
- Gv: Vì vậy thay vì bắt máy tính
If delta>=0 then write('pt co
nghiem') then write('pt vo
nghiem');
VD2: viết câu lệnh kiểm tra xem

x=100 hay không?
- Dạng thiếu:
If x=100 then write(‘x bang 100’);
If x<>100 then write(‘x khac
100’);
- Dạng đầy đủ:
If x=100 then write(‘x bang 100’)
else write(‘x khac 100’);
VD3: Kiểm tra xem số a(nguyên,
dương) là số chẵn hay số lẻ?
- Dạng thiếu:
If a mod 2=0 then write(‘a la so
chan’);
If a mod 2<>0 then write(‘a la so
le’);
- Dạng đầy đủ:
If a mod 2=0 then write(‘a la so
chan’) else write(‘a la so le’);
đi kiểm tra nhiều lần thì chúng ta
có thể gộp 2 câu lệnh đó lại thành
1 câu lệnh ở dạng đầy đủ như trên.
Nếu delta>=0 thì thông báo
phương trình có nghiệm nếu
không thì thông báo phương trình
vô nghiệm
- Gv: Minh họa bằng chạy chương
trình Pascal cho hs thấy sự hoạt
động của câu lệnh
Gv: Gọi 1 hs lên bảng viết các câu
lệnh

- Gv: Gọi hs khác nhận xét bài làm
trên bảng và hoàn chỉnh câu trả
lời.
- Gv: Minh họa bằng chương trình
đã đánh sẵn
- Gv: Gọi 1 hs lên bảng viết các
câu lệnh
- Gv: Gọi hs khác nhận xét bài làm
trên bảng và hoàn chỉnh bài làm
của hs.
- Gv: Minh họa bằng chương trình
đã đánh sẵn
3.3. Hoạt động giới thiệu câu lệnh ghép (7’)
- Gv: Bây giờ chúng ta quay lại ví dụ giải phương trình bậc 2 nhưng cô có
yêu cầu là: tính nghiệm x1, x2 của phương trình khi delta>=0? => Làm
thế nào để làm được điều này?
Nội dung Hoạt động của thầy và trò
- Theo cú pháp, sau một số từ
khóa( như Then, Else) phải là một
câu lệnh nhưng trong nhiều trường
hợp, các thao tác phức tạp đòi hỏi có
nhiều câu lệnh để mô tả. Trong
trường hợp như vậy NNLT cho phép
gộp nhiều câu lệnh thành một câu
lệnh ghép(câu lệnh hợp thành)
- VD1:
If delta<0 then write(‘pt vo
nghiem’) else
begin
X1:= (-b- sqrt(delta))/(2*a);

X2:= -b/a – X1;
Write(‘pt co nghiem: ‘ ,
X1:6:2, X2:6:2);
End;
- Cú pháp câu lệnh ghép trong
Pascal:
Begin
<các câu lệnh>;
End;
- Chú ý: sau end là dấu chấm phẩy
- VD: Đổi chỗ 2 số nguyên dương
a, b sao cho số lớn đứng
trước, số bé đứng sau.
If a>b then
Begin
Tg:=a;
A:=b;
B:=tg;
End;
- Gv: Cho chạy CT giải bài toán trên
nhưng không dùng câu lệnh ghép
- Gv: Hỏi hs là CT tính đúng nghiệm
không, yêu cầu hs lấy các ví dụ để
thử?
- Gv: Có 1 cách để giải quyết vấn đề
này đó là biến câu lệnh đơn thành
câu lệnh ghép bằng cách thêm cặp từ
khóa (begin end;) vào
- Gv: Cho chạy lại CT sau khi đã sửa
lại CT đúng.

- Gv: Yêu cầu hs thay các giá trị khác
để kiểm tra tính đúng đắn của CT
- Gv: Nêu cú pháp câu lệnh trong
Pascal.
- Gv: Yêu cầu hs quan sát CT tìm sự
đặc biệt?
(sau end là dấu chấm phẩy)
3.4. Hoạt động 4: Rèn luyện (9’)
- VD1: Kiểm tra xem a có là tháng trong năm hay không?
Dạng thiếu:
If (a>0) and (a<=12) then write(‘a la thang trong nam’);
If (a<0) and (a>12) then write(‘a khong la thang trong nam’);
Dạng đủ:
If (a>0) and (a>=12) then write(‘a la thang trong nam’)
else write(‘a khong la thang trong nam’);
- VD2: Kết quả của đoạn chương trình sau là gì?
x:= -5; y:= 5;
if x>y then x:= x-y else x:= y-x;
A. x=10, y= 5 B. x= -5, y= 5
C. x= -10, y= 5 D. x= -5, y= 10
Đáp án: A
- VD3: Điều kiện đỗ vào trường ĐHBK là thí sinh có tổng điểm 3 môn thi
khối A: Toán. Lý, Hóa phải lớn hơn 24 điểm. Viết câu lệnh kiểm tra xem thí
sinh Biết Tuốt có đỗ vào trường hay không?
Dạng thiếu:
If D>24 then write(‘Biet Tuot da do vao truong’);
If D<24 then write(‘Biet Tuot khong do vao truong’);
Dạng đủ:
If D>24 then write(‘Biet Tuot da do vao truong’)
else write(‘Biet Tuot khong do vao truong’);

- VD4: Dùng câu lệnh if – then để viết đoạn CT tính thương a/b ?
If b<>0 then
begin
T:= a/b;
write(‘ thuong so la: ‘, T);
end
else write(‘khong chia duoc’);
4. Củng cố - BTVN (2’)
- Nhắc lại nội dung chính.
- Nhận xét tinh thần học tập của học sinh.
- Ra BTVN: học bài cũ và đọc trước các ví dụ phần 4/41/SGK Tin học 11.
5. Rút kinh nghiệm giờ lên lớp:




















6. Giáo viên hướng dẫn kí duyệt:

Tài liệu bạn tìm kiếm đã sẵn sàng tải về

Tải bản đầy đủ ngay
×