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
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: