1. Trang chủ
  2. » Giáo án - Bài giảng

9Cau truc de nhanh.2

5 288 0

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

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 5
Dung lượng 85,5 KB

Nội dung

§9. CẤU TRÚC RẼ NHÁNH (Tiết 2) Ngày soạn:……/……/ 2008 Ngày dạy:……/……/2008 Người soạn: Mai Ngọc Hà Giảng viên hướng dẫn: Ths. Ngô Thị Tú Quyên I.Mục đích, yêu cầu: Viết được các lệnh rẽ nhánh, câu lệnh ghép và áp dụng để thể hiện được thuật toán của một số toán đơn giản. II. Chuẩn bị của Giáo viên và Học sinh. 1. Giáo viên . Chuẩn bị bảng phụ: Program Giai_PTB2; Uses crt; Var a, b, c: read; D, x1, x2: read; begin Clrscr; Write(‘ a, b, c ‘); Readln( a, b, c ); D:= b * b - 4 * a * c; If D < 0 then writeln(‘ phuong trinh vo nghiem’) else begin X1 := ( - b - sqrt(D)) / (2*a); X2:= - b /a - x1; Writeln(‘ x1 = ’, x1:8:3, ‘ x2 = ’, x2:8:3); end; Readln end. 2. H ọc sinh: Đọc bài trước ở nhà. II.Nội dung chính. 1. Ổn định tổ chức lớp.(1’) Lớp: Sĩ số: Vắng: Có Phép: 2.Kiểm tra bài cũ: (5’) Câu hỏi: Câu 1: So sánh sự giống và khác nhau giữa câu lệnh if-then dạng thiếu và dạng đủ? Câu 2: Em hãy viết đoạn chương trình kiểm tra 3 số a, b, c nguyên dương xem 3 số này có lập thành cấp số cộng hay không và thông báo kết quả ra màn hình. Đáp án: Câu 1.( 7 điểm ) - Sự giống nhau: Cùng là câu lệnh cấu trúc rẽ nhánh. - Sự khác nhau: + if-then dạng thiếu: Nếu điều kiện không đúng thì thoát khỏi cấu trúc rẽ nhánh. + if-then dạng đủ: Nếu điều kiện không đúng thì thực hiện câu lệnh 2 rồi mới thoát khỏi cấu trúc rẽ nhánh. Câu 2.( 3 điểm ) Đoạn chương trình như sau: if (( b - a ) = ( c - b )) then write(a, b, c,‘ lap thanh cap so cong’) else write(a, b, c,’ khong la cap so cong’); 3.Bài giảng: Nội dung Thời gian Hoạt động của Giáo Viên và Học Sinh 4. Một số ví dụ. *Ví dụ 1: Tìm nghiệm thực của phương trình bậc hai: ax 2 + bx + c = 0 (với 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 thực hoặc thông báo “ phuong trinh vo nghiem”. Program Giai_PTB2; Uses crt; Var a, b, c: read; D, x1, x2: read; Begin Clrscr; 13’ Gv: Tiết trước các em đã được học cấu trúc rẽ nhánh, biết được cấu trúc câu lệnh if-then dạng thiếu dạng đủ, câu lệnh ghép và hoạt động của chúng. Để các em hiểu rõ hơn về các câu lệnh này, biết cách sử dụng chúng, vậy hôm nay ta học tiếp bài trước. Gv: Đọc ví dụ và ghi lên bảng. Hs: Nghe và ghi bài. Gv:Một em hãy xác định input, output của bài toán. Hs trả lời. Gv: Nhận xét, ghi bảng. Hs: Nghe giảng, ghi bài. Gv: Từ input, output của bài toán ta đã có thể xác định các biến cần dùng trong bài toán. Yêu cầu học sinh xác định các biến, có bao nhiêu biến vào? Bao nhiêu biến ra? Biến trung gian? Và các biến này có kiểu dữ liệu gì? Hs trả lời: Dùng 3 biến vào a, b, c. Hai biến ra x1, x2. Biến trung gian D. Các biến này đều kiểu thực. Gv: Bài toán tìm nghiệm của phương trình bậc hai đã rất quen thuộc với các Write(‘ a, b, c ‘); Readln( a, b, c ); D:= b * b - 4 * a * c; If D < 0 then writeln(‘ phuong trinh vo nghiem’) else begin X1:=(-b-sqrt(D))/(2*a); X2:= - b /a-x1; Writeln(‘x1 = ’, x1:8:3, ‘ x2 = ’, x2:8:3); end; Readln End. - Xét 3 trường hợp của D 10’ em. Vậy một em hãy nêu ý tưởng của bài toán với việc xét hai giá trị của D, là D < 0 và ngược lại D >= 0. Hs trả lời: Tính D. Xét D: Nếu D < 0 thì thông báo phương trình vô nghiệm, ngược lại thì tính các nghiệm x1, x2, rồi đưa kết quả x1, x2 ra màn hình. Gv: Với cách diễn đạt trên chúng ta phải dùng câu lệnh gì để kiểm tra điều kiện của D? Hs trả lời: Câu lệnh if-then dạng đủ. Gv: Cô có chương trình hoàn thiện của bài toán như sau: ( treo bảng phụ ) Gv: Phân tích chương trình. Trong câu lệnh if-then hỏi học sinh đâu là diều kiện, đâu là câu lệnh? Hs: Chú ý nghe giảng, ghi bài, trả lời câu hỏi. Gv: Đối với câu lệnh ghép, nếu ta không dùng cặp từ khóa begin-end thì câi lệnh2 sẽ là câu lệnh gì? Hs trả lời: Câu lệnh gán tính x1. Gv nhận xét: Vậy khi chạy chương trình có cho kết quả đúng không? Hs trả lời: Không. Gv: Phân tích với trường hợp D<0 và ngược lại. Hs: Chú ý lắng nghe. Gv nhận xét: Khi câu lệnh của chương trình là một câu lệnh ghép mà ta không đặt chúng trong từ khoá begin-end thì chương trình sẽ sai. Chính vì vậy các em nhớ chú ý sử dụng câu lệnh ghép cho đúng. Hs chú ý nghe giảng. Gv: Vừa rồi là chương trình xét 2 trường hợp của D. Vậy nếu xét 3 trường hợp của D thì thong báo nghiệm như thế nào? Một em hãy cho cô biết với D < 0, D = 0, D > 0 thì nghiệmcủa phương trình như thế nào? If D < 0 then writeln(‘phuong trinh vo nghiem’) else if D = 0 then writeln(‘x1 = x2 = ’, -b/(2*a):8:2) else begin x1:=(-b-sqrt(D))/(2*a); x2:=-b/a - x1; Writeln(‘ x1 = ’, x1:8:3, ‘ x2 = ’, x2:8:3); end; *Ví dụ 2: Tìm số ngày của năm N. + Input: N nhập từ bàn phím. + Output: Đưa số ngày của năm N ra màn hình. 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. Ví dụ: Các năm 2000, 2004 là năm nhuận và có số ngày là 366, các năm 1900, 1945 không phải là năm nhuận và có số ngày là 365. Chương trình program Nam_nhuan; uses crt; var N, SN: integer; 12’ Hs trả lời. Gv: Nhận xét, và diễn đạt bằng lời đoạn chương trình kiểm tra D: Nếu D < 0 thì thông báo phương trình vô nghiệm, ngược lại thì xét nếu D = 0 thì thông báo phương trình vô nghiệm, ngược lại thì tính các nghiệm x1, x2 rồi thông báo kết quả ra màn hình. Vậy một em hãy viết đoạn trương trình thể hiện cách diễn đạt trên? Hs: Chú ý lắng nghe và viết đoạn chương trình. Gv: Nhận xét và hỏi học sinh, đoạn chuơng trình vừa rồi đâu là điều kiện, đâu là câu lệnh? Hs trả lời. Gv: Nhận xét, nêu hoạt động của đoạn chương trình. Câu lệnh if – then dạng đủ có thể lồng nhau. Hs chú ý nghe giảng. Gv: Chúng ta vừa giải bài toán tìm nghiệm của phương trình bậc hai với hai cách xét D. Tiếp theo cô trò ta chuyển sang ví dụ 2. Gv: Một em hãy xác định input, output của bài toán? Hs trả lời. Gv: Nhận xét, ghi bảng. Hs ghi bài. Gv: Có em nào biết năm nhuận là năm như thế nào không? Năm nhuận có bao nhiêu ngày, năm không nhuận thì có bao nhiêu ngày? Hs trả lời. Gv: Nhận xét, lấy ví dụ năm 2000, 2004 là năm nhuận, số ngày của năm là 366, phân tích cho học sinh thấy vì sao năm đó lại là năm nhuận. Năm 1900, 1945 không phải năm nhuận thì có số ngày là 365. Phân tích cho học sinh thấy vì sao năm đó không là năm nhuận. Hs chú ý lắng nghe. Hs: Nghe giảng và ghi bài. begin clrscr; write(‘ 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); readln end. Gv: Để kiểm tra nếu N chia hết cho 400 hoặc chia hết cho 4 nhưng không chia hết cho 100 thì số ngày là 366, ngược lại số ngày là 365 thì ta phải sử dụng câu lệnh gì? Hs trả lời: Dùng câu lệnh if-then dạng đủ. Gv: Để kiểm tra N có chia hết hay không chia hết cho 1 số ta dùng phép toán gì? Để diễn tả điều kiện hoặc (N chia hết cho 400 hoặc chia hết cho 4) ta phải dùng phép toán gì? Để diễn tả đồng thời hai điều kiện cùng sảy ra phải dùng phép toán gì? Hs trả lời: Phép toán mod, or, and. Gv: Nhận xét, viết hoàn chỉnh chương trình. Hs: Nghe giảng, ghi bài. Gv: Lấy ví dụ N=2008, gọi một học sinh đứng dậy thực hiện chương trình. Hs trả lời. Gv nhận xét. Gv: lấy ví dụ N = 1980, gọi học sinh khác chạy chương trình. Hs trả lời. Gv: Gọi học sinh khác nhận xét, giáo viên nhận xét. III. Củng cố, dặn dò.(4’) Qua những ví dụ trên các em nhớ sử dụng câu if-then, câu lệnh ghép cho đúng, hoạt động của chúng. Và ghi nhớ các chú ý mà tiết trước cô đã nêu khi viết chương trình. Các em về nhà còn em nào chưa làm hết bài tập tiết trước cô cho thì về nhà tiếp tục làm. Và đọc trước bài 10 - Cấu trúc lặp. Bài tập thêm: 1) Nhập vào 3 số, kiểm tra xem 3 số đó có là 3 cạnh của tam giác hay không rồi đưa kết quả ra màn hình. 2) Tìm số ngày của tháng. Biết tháng 1, 3, 5, 7, 8, 10, 12 có 31 ngày, tháng 4, 6, 9, 11 có 30 ngày, còn tháng 2 có 29 ngày nếu là năm nhuận ngược lại thì có 28 ngày. IV. Rút kinh nghiệm: . if D = 0 then writeln(‘x1 = x2 = ’, -b/ (2* a):8 :2) else begin x1:=(-b-sqrt(D))/ (2* a); x2:=-b/a - x1; Writeln(‘ x1 = ’, x1:8:3, ‘ x2 = ’, x2:8:3); end; *Ví dụ 2: Tìm số ngày của năm N. +. nghiem’) else begin X1 := ( - b - sqrt(D)) / (2* a); X2:= - b /a - x1; Writeln(‘ x1 = ’, x1:8:3, ‘ x2 = ’, x2:8:3); end; Readln end. 2. H ọc sinh: Đọc bài trước ở nhà. II.Nội dung chính. 1 quả ra màn hình. 2) Tìm số ngày của tháng. Biết tháng 1, 3, 5, 7, 8, 10, 12 có 31 ngày, tháng 4, 6, 9, 11 có 30 ngày, còn tháng 2 có 29 ngày nếu là năm nhuận ngược lại thì có 28 ngày. IV. Rút

Ngày đăng: 29/06/2014, 14:54

w