CẤU TRÚC RẼ NHÁNH

7 889 2
CẤU TRÚC RẼ NHÁNH

Đang tải... (xem toàn văn)

Thông tin tài liệu

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

Ngày đăng: 12/07/2014, 15:00

Từ khóa liên quan

Tài liệu cùng người dùng

  • Đang cập nhật ...

Tài liệu liên quan