Giáo án Tin học 11 - Nguyễn Thị Thu Thủy
I. MỤC ĐÍCH, YÊU CẦU
1. Kiến thức
- Nắm được các thành phần cơ bản của ngôn ngữ lập trình nói chung
- Biết được khái niệm về chương trình dịch
- Phân biệt được chươn trình dịch là biên dịch và thông dịch
2. Kỹ năng
- Biết vai trò của chương trình dịch
- Hiểu ý nghĩa nhiệm vụ của chương trình dịch
3. Thái độ
- Ý thức được tầm quan trọng của môn học và có thái độ học tập nghiêm túc, luôn tự tìm hiểu học tập
II. CHUẨN BỊ
1. Gv: Giáo án, máy chiếu, máy tính, phòng chiếu hoặc bảng.
2. Hs: Đọc trước SGK, xem lại một số kiến thức Tin học lớp 10.
III. PHƯƠNG PHÁP
- Thuyết trình, vấn đáp
- Diễn giải, đàm thoại, giải quyết tình huống có vấn đề.
IV. NỘI DUNG
1. Ổn định lớp:
+ Chào thầy cô.
+ Cán bộ lớp báo cáo sỉ số
+ Chỉnh đốn trang phục
à cho biết vì sao: Do căn bậc hai của một số âm. - Thông báo lỗi với lý do delta của pt là số âm. + Thực hiện chương trình đã sửa với bộ dữ liệu 1 ; - 5 ; 6. Thông báo kết quả. + Thực hiện chương trình với bộ dữ liệu 1 ; 1 ; 1. Thông báo kết quả. Chương trình giải phương trình bậc hai: program Giai_PTB2; uses crt; var a, b , c, D: real; x1, x2: real; begin clrscr; write(‘ a, b, c: ‘); readln(a, b, c); D:=b*b - 4a*b*c; x1:= (-b - sqrt(D))/(2*a); x2:= -b/a - x1; write(‘x1 = ‘, x1 : 6 : 2, ’ ‘x2: = ‘, x2 : 6 : 2); readln end. readln(a, b, c); x1:= (-b -sqrt(b*b - 4a*b*c))/(2*a); x2:= -b - x1; write(‘x1 = ‘, x1 : 6 : 2, ’x2: = ‘, x2 : 6 : 2); readln(a, b, c); x1:=(-b - sqrt(b*b - 4a*b*c))/(2*a); x2:=(-b+ sqrt(b*b - 4a*b*c))/(2*a); write(‘x1 = ‘, x1 : 6 : 2, ’x2: = ‘, x2 : 6 : 2); - x1 = 2.00 x2 = 3.00 4. Cũng cố - Nhắc lại các bước khi hoàn thành một chương trình - Phân tích một bài toán xác đinh I/O V. PHỤ LỤC 1 .... Tiết 10 IV. NỘI DUNG 1. Ổn định lớp: Chào thầy cô. Cán bộ lớp báo cáo sỉ số Chỉnh đốn trang phục 2. Kiểm tra bài cũ: Thông qua bài dạy 3. Bài mới Hoạt động 3: Rèn luyện thêm về kỹ năng lập trình cho học sinh Hoạt động của Gv và Hs Ghi bảng GV: yêu cầu học sinh hãy viết một chương trình tính diện tích một tam giác khi biết độ dài ba cạnh của nó. Hs: Nghe và nhận nhiệm vụ. - Phân tích theo yêu cầu của giáo viên. GV định hướng để học sinh phân tich bài toán. + Dữ liệu vào (Input) +Diệu liệu ra (Output) + Cách tính: Hs + Dữ liệu vào ba cạnh a; ; b ; c + Dữ liệu ra S: + p:= (a+b+c)/2 S: = sqrt(sqr(p-a)*sqr(p-b)*sqr(p-c)) - Thực hiện theo yêu cầu của giáo viên: + Soạn chương trình + Bấm phím F2 để lưu chương trình. +Bấm Alt+F9 để dịch lỗi cú pháp. + Bấm Ctrl+F9 để chạy chương trình. + Thông báo kết quả cho giáo viên. - GV yêu cầu học sinh nhập dữ liệu và thông báo kết quả ; a = 3; b = 6; c = 5 a = 2; b = 5; c = 10; - Hs thông báo kết quả. + Dữ liệu vào ba cạnh a; ; b ; c + Dữ liệu ra S: + p:= (a+b+c)/2 S: = sqrt(sqr(p-a)*sqr(p-b)*sqr(p-c)) Chương trình: Program Tinh_dien_tich_tam_giac; Var a, b, c, p, S:real; Begin Write(‘a, b, c =’);readln(a, b,c); P:=(a+b+c)/2; S: = sqrt(sqr(p-a)*sqr(p-b)*sqr(p-c)); Write(); Readln End. 4. Cũng cố Nhắc lại các bước khi hoàn thành một chương trình. + Phân tích bài toán để xác định dữ liệu vào/ ra. + Xác định thuật toán. + Soạn chương trình + Lưu chương trình + Biên dịch chương trình + Thực hiện và hiệu chỉnh chương trình. Làm bài tập trang 35 và 36. V. PHỤ LỤC 2 .... Chương 3: CẤU TRÚC RẼ NHÁNH VÀ LẶP Tuần: 6 Ngày soạn:10/09/2011 Tiết: 11 Ngày dạy: // Bài 9: CẤU TRÚC RẼ NHÁNH I. MỤC ĐÍCH, YÊU CẦU 1. Kiến thức: - Hiểu nhu cầu của cáu trúc rẽ nhánh trong biểu diễn thuật toán. - Học sinh nắm vững ý nghĩa và cú pháp của câu lệnh rẽ nhánh dạng khuyết và dạng đủ, hiểu được cách sử dụng 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ác lệnh rẽ nhánh khuyết, rẽ nhánh đầy đủ và áp dụng được để thể hiện thuật toán của một số bài toán đơn giản 3. Về tư duy và thái độ: - Hình thành cho học sinh bước đầu về tư duy về lập trình có cấu trúc. - Tự giác, tích cực và chủ động hoàn thành. II. CHUẨN BỊ 1. Giáo viên: + Soạn giáo án. + Chuẩn bị bảng phụ sau: Câu lệnh IF Điều kiện Đ S Câu lệnh 1 IF Điều kiện Đ S Câu lệnh 2 2. Học sinh: học bài cũ, đọc và chuẩn bị bài mới. III. PHƯƠNG PHÁP - Thuyết trình, gợi mở, vấn đáp - Diễn giải, đàm thoại, giải quyết tình huống có vấn đề. - Làm việc theo nhóm. IV. NỘI DUNG 1. Ổn định lớp: Chào thầy cô. Cán bộ lớp báo cáo sỉ số Chỉnh đốn trang phục 2. Kiểm tra bài cũ: Bài toán: cho 2 số nguyên a, b; tìm Max(a,b). Yêu cầu: viết phần tên, phần khai báo, và câu lệnh nhập a, b. Nêu thuật toán tìm Max(a,b). 3. Bài mới Hoạt động của GV & HS Nội dung Hoạt động 1: Khái niệm rẽ nhánh Kiểm tra r>=0 Thông báo vô nghiệm Tính và đưa ra nghiệm Kết thúc GV : Đưa ra ví dụ rồi cùng học sinh thảo luận phương pháp giải quyết bài toán. Đưa ra khái niệm rẽ nhánh trong lập trình. Mỗi NNLT có cách thể hiện rẽ nhánh khác nhau . 1. Khái niệm rẽ nhánh Ví dụ : Để viết chương trình giải phương trình bậc 2, ta phải: Tính r = b2 – 4ac; Sau đó tùy thuộc vào giá trị của r mà ta có tính nghiệm hay không. Trong thực tế : Nếu r <0 thì phương trình vô nghiệm Nếu r >=0 thì phương trình có nghiệm Như vậy tùy thuộc vào giá trị của r mà ta đưa ra vô nghiệm hay có nghiệm. Hoặc có thể nói : Nếu r < 0 thì phương trình vô nghiệm, ngược lại thì phương trình có nghiệm. =>Như vậy ta thấy một số mệnh đề có dạng Nếu ..thì.. Nếu ..thì.. ngược lại thì Cấu trúc này được gọi là cấu trúc rẽ nhánh . Các NNLT thường cung cấp các câu lệnh để mô tả các cấu trúc rẽ nhánh như trên . GV : Đưa ra cấu trúc lệnh rẽ nhánh trong Pascal. Nhắc nhở học sinh đây là cấu trúc quan trọng, nó sẽ được sử dụng rất nhiều trong các chương trình sau này. GV : Lưu ý các em sau Then và sau Else chỉ có một lệnh chương trình. GV : Với hai dạng này, dạng nào dùng thuận tiện hơn ? HS : Tìm câu trả lời, giáo viên gợi ý để học sinh đưa ra được tùy trường hợp cụ thể mà dùng dạng thiếu hay dạng đủ. Đưa ra các ví dụ có sử dụng lệnh rẽ nhánh, nếu không có lệnh rẽ nhánh thì không thể thực hiện được. GV : ở VD3: Cách nào nhanh hơn, tiện hơn? => Cách 2 tiện hơn GV : Phân tích sự tiện lợi trong cách 2 và số lệnh mà máy phải thực hiện. 2. Câu lệnh If – Then Pascal dùng câu lệnh If – then để mô tả việc rẽ nhánh tương ứng với hai loại mệnh đề rẽ nhánh như nhau - Dạng thiếu : If Then ; - Dạng đầy đủ : If Then Else Trong đó: - Điều kiện : Là biểu thức quan hệ Logic. - Câu lệnh, câu lệnh 1, câu lệnh 2 là 1 câu lệnh của Pascal Ý nghĩa của các câu lệnh : - Dạng thiếu : Nếu điều kiện đúng thì câu lệnh được thực hiện, nếu điều kiện sai thì không thực hiện gì - Dạng đủ : Nếu điều kiện đúng thì thực hiện câu lệnh 1, nếu điều kệin sai thì thực hiện câu lệnh 2. VD 1 : If (X Mod 2 = 0) Then WRITE(x,’La so chan’); VD 2: If DELTA <0 Then WRITE(‘PT Vo Nghiem’) Else WRITE(‘PT co nghiem’); VD 3: Tìm giá trị lớn nhất (max) của 2 số a và b Cách 1 : Max :=a; If b >a Then max :=b; Cách 2 : If a >b Then max :=a Else max :=b; Hoạt động 2: Câu lệnh ghép GV : Trong câu lệnh If – Then muốn thực hiện nhiều lệnh sau Then hay nhiều lệnh sau Else làm thế nào ? HS : Phát biểu ý kiến của mình. GV : Khi đó ta cần gộp nhiều lệnh đó lại và coi đó là một câu lệnh trong chương trình. Các ngôn ngữ lập trình thường có cấu trúc để giúp ta thực hệin điều này. GV : Giới thiệu lệnh ghép của một vài ngôn ngữ lập trình khác C==: {} VB: If – Then – Endif GV : Chỉ rõ đâu là lệnh ghép trong chuỗi lệnh này. 3. Câu lệnh ghép - Trong ngôn ngữ Pascal, Câu lệnh ghép có dạng: Begin End ; Chú ý : - Sau End phải là dấu; và trước Else không chứa dấu ; - Từ nay nói đến câu lệnh thì đó có thể là câu lệnh đơn hoặc là câu lệnh ghép. Ví dụ : Đoạn chương trình sau trong ngôn ngữ Pascal có sử dụng chương trình ghép. IF DELTA <0 THEN WRITELN(‘Phuong trinh vo nghiem’) ELSE BEGIN X1 :=(-B-SQRT(DELTA))/(2*A); X2 := - B/A – X1; WRITELN(‘X1=’,X1:6:3,’X2=’,X2:6:3); END; Hoạt động 3: Một số ví dụ GV nên soạn sẵn hai chương trình này và cho các em quan sát cách viết chương trình để các em hình thành dần cách viết một chương trình . Chạy thử chương trình và chỉ rõ các lệnh trong chương trình dùng để làm gì . Nếu có nhiều thời gian, GV có thể gõ từng lệnh chương trình, gõ đến đâu giải thích cho học sinh đến đó. Nếu còn thời gian, gọi học sinh lên bảng viết câu lệnh If – Then cho một số bài toán đơn giản . Có thể viết chương trình mẫu cho học sinh xong, yêu cầu các em gõ lại chương trình vừa được theo dõi mà không cần nhìn vào bài mẫu . 4. Một số ví dụ Quan sát các chương trình sau trong ngôn ngữ lập trình Pascal . Ví dụ 1 : Tìm nghiệm thực của phương trình bậc hai AX2 + BX + C= 0 Ví dụ 2 : Tìm số ngày của một năm: 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 . 4. Cũng cố - Nhắc lại một số khái niệm mới . - Nhắc lại cấu trúc If- Then - Nhắc lại cấu trúc câu lệnh ghép - Cho bài tập về nhà . V. PHỤ LỤC 2 Tuần: 6 Ngày soạn:20/09/2011 Tiết: 12 Ngày dạy: // BÀI TẬP Bài 1: Viết chương trình nhập vào ba số a, b, c, xuất ra màn hình số lớn nhất (max) của ba số đó. *Xác định yêu cầu: + Input: a, b, c ( số thực) +Output: max ( số thực) * Thuật toán: B1: Nhập a, b, c B2: max<-- a B3 Nếu max<b thì max<--b B4: nếu max <c thì max <-- c B5: Xuất max, kết thúc * Chương trình: Program Tim_Max; Uses crt; Var a, b, c, max: Real; Begin Clrscr; Write(‘Hay nhap ba so a, b,c:’); Readln(a, b, c); Max:=a; If ( Max < b) Then Max:= b; If (Max < c) Then Max:=c; Write(‘Max cua a, b, c la:’, Max); Readln; End. Bài 2: Nhập 3 cạnh vào và báo cáo ra là -Tam giác hay không? -Tam giác thường, vuông, đều, cân! PROGRAM tamgiac; USES crt; VAR a,b,c:REAL; vuong,can,deu:BOOLEAN; BEGIN clrscr; REPEAT clrscr; write('Nhap 3 canh tam giac: ');readln(a,b,c); UNTIL ((a+b)>c) AND ((a+c)>b) AND ((b+c)>a); IF (a*a+b*b=c*c) OR (a*a + c*c=b*b) OR (b*b + c*c=a*a) THEN vuong:=TRUE; IF ((a=b) AND (bc)) OR ((a=c)AND (cb)) OR ((c=b)AND(ba)) THEN can:=TRUE; IF (a=b) AND (a=c) THEN deu:=TRUE; IF (vuong AND NOT can) THEN write('Tam giac vuong '); IF (NOT deu AND can) THEN write('Tam giac can'); IF (vuong AND can) THEN write('Tam giac vuong can'); IF deu THEN write('Tam giac deu'); IF (NOT vuong) AND (NOT can) AND (NOT deu) THEN write('Tam giac thuong'); readln; Tuần: 7 Ngày soạn:25/9/2011 Tiết: 13-14 Ngày dạy: // BÀI TẬP VÀ THỰC HÀNH 2 I. MỤC ĐÍCH, YÊU CẦU 1. Kiến thức
File đính kèm:
- giao an tin hoc 11.doc