Giáo án Tin học 11 - Bài 9: Cấu trúc rẽ nhánh (tiết 1) - Đoàn Thị Trang

Giáo án Tin học 11 - Bài 9: Cấu trúc rẽ nhánh (tiết 1) - Đoàn Thị Trang

I) Mục tiêu:

1. Kiến thức:

- Học sinh biết 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 lệnh rẽ nhánh

- Hiểu câu lệnh rẽ nhánh: dạng thiếu và dạng đủ

- Sự cần thiết có câu lệnh ghép trong lập trình, nắm được cấu trúc câu lệnh ghép

2. 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, rẽ nhánh dạng đủ và áp dụng để thể hiện được thuật toán của một số bà 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. 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 thêm yêu thích lập trình, yêu thích 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 hơn

II) Phương pháp, phương tiện

 

doc 10 trang Người đăng quocviet Lượt xem 2811Lượt tải 0 Download
Bạn đang xem tài liệu "Giáo án Tin học 11 - Bài 9: Cấu trúc rẽ nhánh (tiết 1) - Đoàn Thị Trang", để tải tài liệu gốc về máy bạn click vào nút DOWNLOAD ở trên
Người soạn: Đoàn Thị Trang
GVHD : Trịnh Thị Phương Thảo
Ngày giảng: 30/10/2009
Lớp :11A2
Trường THPT Đại Từ
Bài Soạn:
Chương III: Cấu trúc rẽ nhánh và lặp
Bài 9: Cấu trúc rẽ nhánh (tiết 1)
Mục tiêu:
Kiến thức:
- Học sinh biết 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 lệnh rẽ nhánh
- Hiểu câu lệnh rẽ nhánh: dạng thiếu và dạng đủ
- Sự cần thiết có câu lệnh ghép trong lập trình, nắm được cấu trúc câu lệnh ghép
2. 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, rẽ nhánh dạng đủ và áp dụng để thể hiện được thuật toán của một số bà 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. 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 thêm yêu thích lập trình, yêu thích 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 hơn
Phương pháp, phương tiện
Phương pháp
- Kết hợp các phương pháp giảng dạy như thuyết trình, vấn đáp
- Gợ nhớ, tổ chức hoạt động theo nhóm
Phương tiện
Chuẩn bị của giáo viên
Máy tính, máy chiếu (nếu có)
Sách giáo khoa tin học lớp 11
Sách giáo viên, sách tham khảo tin học lớp 11
Bảng, phấn, phiếu học tập
Chuẩn bị của học sinh
Vở ghi lý thuyết
Sách giáo khoa Tin 11
Bút, thước kẻ
Tiến trình lên lớp, nội dung bài học
Ổn định lớp 
Ổn định lớp học
Yêu cầu lớp trưởng báo cáo sĩ số
	Tổng: Vắng: Phép: Không phép:
Dẫn dắt vào bài
Các em chú ý: trong giờ thục hành trước các em đã được thực hành bài “Giải phương trình bậc 2”. Sau đây các em cùng quan sát lại chương trình đó.(GV đưa chương trình đã đánh sẵn trong Turbo Pascal)
Các em hãy quan sát: trong chương trình trên là đúng không có lỗi. Bây giờ cô nhập giá trị a= 1, b= -3, c= 2. Chúng ta thấy chương trình hiện thị kết quả là đúng. Vậy giờ cô nhập a= 2, b= -3, c= 2 em thấy hiện tượng gì xảy ra?
Chương trình sẽ báo lỗi, đúng không? Vì khi ta nhập a, b, c với giá trị như trên thì D< 0, mà trong chương trình không xét đến trường hợp này, Như vậy làm thế nào để chương trình chạy đúng khi D< 0
Nội dung bài học
Nội dung
Hoạt động của thầy và trò
Thời gian
Hoạt động 1: Tìm hiểu câu lệnh rẽ nhánh
- Thường ngày chúng ta có những công việc chỉ có được thực hiện khi một điều kiện cụ thể nào đó được thực thoả mãn
- Hai dạng mệnh đề:
 Mệnh đề 1: Nếu.thì là mệnh đề thiếu
 Mệnh đề 2: Nếuthìnếu không thì là dạng mệnh đề đủ
- Trong nhiều thuật toán, các thao tác tiếp theo sẽ phụ thuộc vào kết quả nhận được từ các bước trước đó
 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
Hoạt động 2: Tìm hiểu câu lệnh If..then
Để mô tả cấu trúc rẽ nhánh, Pascal dùng 2 dạng câu lệnh If..then
- Dạng thiếu:
 If then;
- Dạng đủ:
If then
Else ;
Trong đó:
- điều kiện là biểu thức logic cho giá trị True hoặc False
- câu lệnh, câu lệnh 1, câu lệnh 2 là một lệnh trong Pascal
- Ở dạng thiếu: diều kiện sẽ được tính và kiểm tra. Nếu điều kiện đúng(có giá trị True) thì câu lệnh sẽ được thực hiện, ngược lại thì câu lệnh sẽ bỏ qua
- Ở dạng đủ: điều kiện cũng được kiểm tra và tính. Nếuđiều kiện đúng thì câu lệnh 1 sẽ được thực hiện, ngược lại thì câu lệnh 2 sẽ được thực hiện
* Sơ đồ biểu diễn câu lệnh dạng thiếu :
Câu lệnh
điều kiện
Đ
 S
* Sơ đồ biểu diễn câu lệnh dạng đủ:
Điều kiện
Câu lệnh 1
Câu lệnh 2
	S	Đ
Các chú ý:
- Trước Else không có dấu chấm phẩy (;)
- Câu lệnh là 1 câu lệnh của Pascal
Hoạt động 3: Tìm hiểu câu lệnh ghép
- 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
- Câu lệnh ghép có dạng:
Begin
 ;
End;
- Chú ý: Sau End phải có dấu chấm phẩy(;)
GV: Em nào có thể cho cô một vài ví dụ về câu điều kiện?
HS: suy nghĩ trả lời
 VD1: Ngày mai nếu trời mưa thì Nam sẽ không đi đá bóng
 VD2: Nếu tối nay trời mưa thì em nghỉ học, nếu không thì em sẽ đi học..
GV: Sau đây các em hãy xem 2 VD sau(GV đưa ra VD)
 Xét ở VD1: Nếuthì
Còn ở VD2: Nếuthìnếu không thì..
Đây chính là 2 dạng câu diều kiện thiếu và đủ
HS: chú ý cô giáo giảng bài
GV: Bây giờ chúng ta cùng đi xét VD mà ta đã đề cập đến trong phần đầu của bài
 VD: Kiểm tra pt bậc 2
 ax2 + bx+c=0(a¹0) có nghiệm không?
GV: Đây là 1 bài giải pt quen thuộc mà các em đã làm. Qua chương trình lớp 10, các em đã học bai” Bài toán và thuật toán” các em đã biết viết thuật toán, vẽ sơ đồ biểu diễn cách giải bài toán. Vậy bây giờ cô mời 2 em lên bảng: 1 em viết thuật toán kiểm tra pt có nghiệm không, và 1 em vẽ sơ đồ biểu diễn cách kiểm tra pt có nghiêm
HS 1: Thuật toán
 B1: Nhập a, b, c
 B2: Tính D<- b2 -4ac
 B3: Nếu D PTVN
 B4: Nếu D³0 => PTCN
HS 2: Sơ đồ 
Nhập a,b,c
Tính D <- b2 – 4ac
D ³ 0
 Sai	Đúng
PTCN
PTVN
Kết thúc
GV: Các em hãy quan sát sơ đồ trên bảng và đó cũng chính là sơ đồ thể hiện cấu trúc rẽ nhánh
 Trong mọi ngôn ngữ lập trình đều có các câu lệnh để mô tả cấu trúc rẽ nhánh
GV: Để mô tả cấu trúc rẽ nhánh, Pascal dùng câu lệnh Ifthen
GV:Các em đã được học thế nào là biểu thức logic rồi, vậy em nào có thể nhắc lại thế nào là biểu thức logic?
 HS:biểu thức logic là các biểu thức quan hệ đơn giản, các biểu thức quan hệ liên kết với nhau bởi các phép toán logic. 
GV:Sau đây cô sẽ giới thiệu cho các em sơ đồ biểu diễn câu lệnh dạng thiếu
GV: Các em hãy quan sát sơ đồ biểu diễn câu lệnh dạng thiếu. Vậy dựa vào sơ đồ này thì em nào có thể lên vẽ sơ đồ biểu diễn câu lệnh dạng đủ 
HS:Lên bảng vẽ sơ đồ
GV:Em nào nhận xét cho cô xem sơ đồ của bạn đã đúng chưa?
HS: 1 học sinh lên nhận xét.
GV: Sau đây chúng ta đi xét VD cụ thể
 VD: Kiểm tra pt bậc 2:ax2+ bx+c=0
Có nghiệm hay không?.
GV: em nào có thể xác định cho cô đâu là Input, Output?
HS: trả lời
 Input: nhập a, b, c
 Output: PTVN, PT có nghiệm
GV: Theo sơ đồ mà chúng ta đã vẽ ở trên kết hợp với sơ đồ biểu diễn câu lệnh dạng thiếu thì em nào có thể viết được câu lệnh kiểm tra bài toán?
HS: suy nghĩ trả lời
 If(D<0) then write(‘PTVN);
 If (D³) then write(‘Pt co nghiem’);
GV: Như vậy em đã hiểu và biết cách viết được câu lệnh rẽ nhánh dạng thiếu.Thế còn câu lệnh dạng đủ thì sao?
GV: các em hay nhìn lên phần câu lệnh trên. Nhưng ở đây ta thấy chúng ta phải sử dụng 2 lần câu lệnh if then mà 2 câu lệnh ở đây mang ý nghĩa phủ định nhau, nếu ta muốn cho câu lệnh ngắn gọn hơn thì ta có thể gộp 2 câu lệnh vào được không và làm như thế nào?
HS:xem lại thuật toán và suy nghĩ trả lời
 -Có thể gộp 2 câu lệnh lại bằng cách bỏ đi 1 lần ifthen ở dưới và thay vào đó là từ Else
GV: Vậy em có thể lên bảng viết lại được không?
HS: lên bảng viết lại 
 If(D<0) then write(‘PTVN’)
 Else write(‘PT co nghiem’);
GV: Đưa ra các chú ýcho học sinh 
GV: Điều đặc biệt các em cần lưu ý đó là: Trong câu lệnh dạng thiếu thì có thể không lệnh nào được thực hiện. Nhưng trong câu lệnh dạng đủ thì bắt buộc phải có lệnh được thực hiện
GV: Như các em đã biết trong tiếng việt của chúng ta nếu 2 câu ghép lại với nhau là câu gì?
HS: Câu ghép
GV:Đúng thế nhưng đấy là trong tiếng việt, thế còn trong ngôn ngữ lập trình thì sao?
GV:trong ngôn ngữ lập trình Pascal cũng có câu ghép nhưng nó gộp nhiều câu lệnh lại với nhau được gọi là câu lệnh ghép, các lệnh đó được đặt trong cặp từ khoá Begin.end; 
Gv: Ta đi xét lại VD Giải pt bậc 2
GV:Một em nhắc lại thuật toán giải pt bậc 2 và đưa ra nghiệm cụ thể?
HS: Thuật toán như sau:
 B1: nhập a, b, c
 B2: Tinh D <- b2 – 4ac
 B3: Nếu D PTVN
 Ngược lại => PT có 2 nghiệm
 X1= ;x2= 
GV: Cô có một chương trình như sau:
(Gv đưa chương trình đã được đánh sẵn trên TurBo Pascal)
 HS:Quan sát chương trình trên Turbo Pascal
GV:chương trình này không có lỗi và bây giờ cô sẽ cho chạy thử
GV: Trong chương trình này ta thấy là kết quả chỉ hiện thị nghiệm của x1, còn nghiệm của x2 thì không hiển thị. Vậy em nào có thể sửa lại chương trình để kết quả hiển thị cả nghiệm x1 và x2?
HS; Dựa vào cấu trúc của câu lệnh ghép và phát hiện chương trình thiếu cặp Begin...End; ở sau câu lệnh Else.
GV: Vậy cô thử cho cặp Begin...End; vào xem có đúng không ?
GV:cho chạy chương trình khi đã thêm cặp BeginEnd;
GV: Đưa ra đoạn chương trình:
If(D<0) then write(‘PTVN’)
 Else
 Begin
 X1:=(-b+sqrt(D))/(2*a);
 X2:= (-b-sqrt(D))/(2*a);
 Write(‘x1=’,x1:6:2,’x2=’,x2:6:2);
 End;
GV: Câu lệnh ghép có dạng:
GV: Như vậy cô đã giới thiệu cho các em thế nào là câu lệnh ghép.
7’
Hoạt động nhóm và củng cố bài học
a. Hoạt động nhóm
GV: Bây giờ cô có trò chơi nhỏ, cô sẽ chia làm 4 tổ, mỗi tổ 1 câu hỏi, tổ nào làm xong trước đạt yêu cầu trước thì tổ đó thắng và giành được phần thưởng
 Nhóm 1:
 Câu 1: Cú pháp If then ; có nghĩa là :
Nếu biểu thức điều kiện nhận giá trị đúng thì thực hiện câu lệnh, ngược lại câu lệnh bị bỏ qua
Nếu biểu thức điều kiện nhận giá trị sai thì thực hiện câu lệnh, ngược lại thì bỏ qua
Nếu biểu thức điều kiện nhận giá trị sai thì thực hiện câu lệnh, ngược lại thực hiện câu lệnh khác
Đáp an B và C đúng
Câu 2: Trong ngôn ngữ lập trình Pascal, câu lệnh nào sau đây là đúng
If(n mod 10) then write(‘n la so tron chuc’)
Else write(‘n khong la so tron chuc’);
If(n div 10) then write(‘ n la so tron chuc’)
Else write(‘n khong la so tron chuc’);
If(n mod 10 =0) then write(‘ n la so tron chuc’)
Else write(‘ n khong la so tron chuc’);
Đáp án A và C đều đúng
 Nhóm 2:
 	Câu hỏi: Kết quả của chương trình sau là gì?
 x:= 10; y:= 15;
 if (x>y) then x:=x- y
 else y:=y-x;
y = 5 và x= 10
x= 5 và y= 15
x=10 và y=15
chương trình báo lỗi
 Nhóm 3:
 	Cho tình huống sau: Trong 1 giờ học, GV có tổ chức một trò chơi, GV chia lớp thành 4 nhóm, mỗi nhóm một câu hỏi với yêu cầu như sau: các em hãy trả lơi câu hỏi thật nhanh, nếu nhóm nào mà có câu trả lời đạt điểm 10 thì sẽ có thưởng, ngược lại sẽ không có thưởng.
 Yêu câu: em hãy sử dụng câu lệnh ifthen để mô tả tình huống trên.
 Nhóm 4: 
	Trong ngôn ngữ lập trình Pascal, muốn kiểm tra đồng thời cả 3 giá trị của A, B, C có cùng lớn hơn 0 hay không ta viết câu lệnh If thế nào cho đúng:
 A. If a,b,c >0 then..
 B. If (A>0) and (B>0) and (C>0) then.
 C. If A>0 and B>0 and C > 0 then
 D. If (A>0) or (B>0) or (C>0) then
 Đáp án của các câu hỏi như sau:
 Nhóm 1: Câu 1: A , Câu 2: C
 Nhóm 2: Đáp án A: y = 5, x= 10
 Nhóm 3: Câu lệnh : 
 If (d= 10) then write(‘co phan thuong’)
 Else write (‘ khong co phan thuong’);
 Nhóm 4: Đáp án: B
b. Củng cố bài học
 	Qua bài học hôm nay các em cần nắm được câu trúc của các câu lệnh
Câu lệnh ifthen
 Dạng thiếu: If then ;
 Dạng đủ: If then 
 Else ;
Câu lệnh ghép: có dạng
 Begin
 ;
 End;
Bài tập về nhà
Ôn lại bài họ hôm nay
Xem trước mục 4: Một số ví dụ
Làm bài tập 1, 2, 4/ 50, 51/ SGK
Rút kinh nghiệm tiết dạy
 GVHD ký duyệt

Tài liệu đính kèm:

  • docNgười soạn.doc