giao an tin lop 11

86 6 0
giao an tin lop 11

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

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

Thông tin tài liệu

dữ liệu để giải quyết bài toán như trong SGK - Hỏi: Yêu cầu HS phân biệt hàm và thủ tục - GV chính xác hoá kết quả, nhấn mạnh ý: Một chương trình con có thể được dùng các chương trình co[r]

(1)Tuần Tiết Ngày soạn : 09/09 /2009 Bài 4,5: MỘT SỐ KIỂU DỮ LIỆU CHUẨN, KHAI BÁO BIẾN I - Mục tiêu Kiến thức Biết số kiểu liệu chuẩn Cách khai báo biến Ky năng: Xác định kiểu khai báo liệu Khai báo biến đúng cấu trúc Tư – thái độ: Tư logic II - Chuẩn bị Giáo án, sách giáo khoa, số ví dụ minh hoạ III – Phương pháp dạy học: Đặt vấn đề hướng dẫn học sinh nắm bắt vấn đề Hoạt động nhóm IV - Tiến trình bài học Ổn định lớp: Kiểm tra bài cũ Câu 1: Nêu cấu trúc chung chương trình Câu 2: Nêu cấu trúc các phần khai báo: tên chương trình, hằng, thư viện Bài mới: Hoạt động giáo viên và học sinh Nội dung bài giảng GV: Trong toán học để thực tính Một số kiểu liệu chuẩn: toán cần phải có các tập số Đó là các tập số SGK nào ? HS: Tập hợp số tự nhiên,nguyên, hữu tỉ, thực GV: Trong lập trình Pascal có các tập hợp, tập hợp có giới hạn định GV: Yêu cầu học sinh nghiên cứu sách Trả lời các câu hỏi sau: Có bao nhiêu liệu chuẩn ngôn ngữ Pascal ? HS: Có kiểu : kiểu nguyên, thực, kí tự, lôgic GV: Trong ngôn ngữ Pascal, có kiểu nguyên nào thương dùng, phạm vi biểu diễn loại HS: Có loại : Byte, word, integer, longint GV: Trong ngôn ngữ Pascal, có kiểu thực nào thương dùng, phạm vi biểu diễn loại HS: Có loại: Real, extended GV: Cho học sinh đọc ví dụ đơn giản (2) SGK Giải thích dòng lệnh HS: Đọc sách GV: Yêu cầu học sinh nêu khái niệm biến là gì? HS: Biến là đại lượng đặt tên, dùng để lưu trữ giá trị và giá trị có thể thay đổi quá trình thực chương trình GV: Kiểu liệu chuẩn cho biêt gì? HS: Kiểu liệu chuẩn cho biết phạm vi giá trị có thê lưu trữ, dung lượng nhớ cần thiết để lưu trữ và các phép toán tác động lên kiểu liệu GV: Yêu cầu học sinh nghiên cứu sách GK và cho biết vì phải khai báo biến ? HS: Mọi biến dùng chương trình phải khai báo tên biến và kiểu liệu biến Tên biến dùng để xác lập quan hệ biến với địa nhớ nơi lưu giữ giá trị biến GV: Cấu trúc khai báo biến nào? HS: Trả lời GV: Mời học sinh cho ví dụ tương tự HS: var x, y, z: real; c: char; I,J: byte; N: word; GV: Trong khai báo trên, tổng nhớ dành cho các biến đã khai báo là bao nhiêu? HS: 18+1+2+2=23(byte) GV: Qua nghiên cứu sách giáo khoa, khai báo biến cần chú ý gì? Khai báo biến: Khai báo biến var <danh sách biến> :<kiểu liệu>;  Danh sách biến: là hay nhiều tên biến, tên các biến viết cách dấu phẩy  Kiểu liệu : thường là các kiểu liệu chuẩn kiểu liệu người lập trình đặt Ví dụ: chương trình ta cần dùng biến a kiểu số nguyên, b kiểu số thực var a : integer; b : real;  Khi khai báo biến cần chú ý: + Cần đặt tên biến cho gợi nhớ đến ý nghĩa biến đó Vì có lợi cho việc đọc hiểu và sửa đổi chương trình cần thiết + Không nên đặt tên quá ngắn quá dài Ví dụ: Cần đặt tên biến biểu diễn điểm toán và điểm tin thì không nên vì quá ngắn mà đặt là d1,d2 hay đặt quá dài diemmontoan, diemmontin cho điểm toán và điểm tin học sinh + Khi khai báo biến cần phải lưu ý đến phạm vi giá tri nó Ví dụ: Khi khai báo biến biểu diễn số học sinh lớp có thể sử dụng kiểu byte biến biểu diễn số học sinh toàn trường thì phải thuộc kiểu word HS: Trả lời GV: Yêu cầu học sinh cho ví dụ minh họa ý vừa nêu trên? HS: Trả lời V – Củng cố và dặn dò: Xem cấu trúc khai báo biến, em cho ví dụ khai báo biến( Hôm sau trả lời) VI – Rút kinh nghiệm: (3) Tuần Tiết Ngày soạn : 09/09 /2009 Bài PHÉP TOÁN - BIỂU THỨC - CÂU LỆNH GÁN I / Mục tiêu dạy học: Kiến thức : - Biết các phép toán thông dụng NNLT - Biết cách diễn đạt biểu thức NNLT - Biết chức lệnh gán và cấu trúc nó - Nắm vững số hàm chuẩn thông dụng NNLT Pascal Kỹ năng: - Nhận biết các phép toán để xây dựng biểu thức cho hợp lý - Sử dụng số lệnh gán viết chương trình đơn giản Tư và thái độ : - Phát triển tư lôgic, linh hoạt, có tính sáng tạo - Biết thể tính cẩn thận chính xác tính toán lập luận II/ Chuẩn bị GV & HS: * Giáo viên: - SGK, các tranh liên quan đến bài học - Máy vi tính và máy chiếu Projector (nếu có) * Học sinh: - SGK III/ Phương pháp: IV/ Tiến trình bài học: Đặt vấn đề hướng dẫn học sinh nắm bắt vấn đề Hoạt động nhóm IV - Tiến trình bài học Ổn định lớp: Kiểm tra bài cũ Nêu cấu trúc khai báo biến, cho ví dụ khai báo biến? Bài mới: Hoạt động giáo viên và học sinh Nội dung bài giảng GV: Khi viết chương trình ta phải sử dụng các * NNLT nào sử dụng đến phép toán, câu phép toán, phép so sánh để đưa định xem lệnh gán và biểu thức, các khái niệm này và làm việc gì? và chương trình ta viết xét NNLT Pascal nào ? Tất các ngôn ngữ có sử dụng cách giống hay không HS: Chú ý lắng nghe GV: Toán học có phép toán nào? HS: Suy nghĩ và đưa số phép toán thường Phép toán: dùng: (4) Phép cộng, trừ, nhân, chia NNLT Pascal sử dụng số phép toán sau: GV: Các phép toán đó có dùng NNLT hay + Số nguyên: + , - , *, / , DIV, MOD không? + Một số phép toán dùng và số phép + Số thực: + , - , *, / , toán phải sử dụng từ các phép tóan khác + Phép toán quan hệ: <, <=, > , >=, =, < > - Ghi số phép toán lên bảng HS: Nghiên cứu SGK và cho biết các nhóm phép + Phép toán logic: AND, OR, NOT toán GV: Phép DIV, MOD sử dụng cho kiểu liệu nào? HS: Chỉ sử dụng cho kiểu số nguyên GV: Kết phép toán quan hệ thuộc kiểu liệu nào? HS: - Kiểu logic GV: - Trong toán học biểu thức là gì ? - Trong tin học khái niệm biểu thức lập trình ? - Cách viết các biểu thức lập trình có giống cách viết toán học hay không ? HS: Suy nghĩ và đưa khái niệm Biểu thức số học: - Là dãy các phép toán + , - , *, / , DIV, GV: Yêu cầu: HS sử dụng các phép toán số học MOD từ biến kiểu số và các hàm hãy biểu diễn các biểu thức toán học thành biểu - Dùng dấu ( ) để qui định trình tự tính toán thức NNLT VD: ( SGK - 25) 4x - 2y x+ * Chú ý : x−y a+b+ c 2a +c b Thứ tự thực các phép toán: - b2 − c ac HS: 4*x-2*y + Trong ngoặc trước, ngoài ngoặc sau + Nhân, chia, chia nguyên, chia lấy dư trước, cộng, trừ sau x+1/(x-y) ((a+b+c)/((2*a /b)+c)) - (b*b-c)/a*c Hàm số học chuẩn: Cách viết cho số hàm số học chuẩn : GV: - Trong toán học ta đã làm quen với số Tên hàm (đối số) hàm số học, hãy kể tên? + Đối số là hay nhiều biểu thức số học đặt - Muốn tính ax2 + ta viết nào? dấu ngoặc ( ) sau tên hàm - Muốn tính |x| , √ x , sinx ta làm nào? (5) HS: Hàm trị tuyệt đối, hàm bậc 2, hàm sin VD: (SGK - 26) Và trả lời các câu hỏi trên GV: -Biểu thức logic là biểu thức quan hệ liên kết với phép toán logic - Hãy quan sát ví dụ biểu thức logic sau: 2< x  Trong Pascal cần phải tách thành < x và x  nào ? HS: Kết hợp SGK, trả lời: (2< x) and (x<=8 ) Biểu thức quan hệ: Cấu trúc chung: <BT1> < phép toán quan hệ > <BT2> + đó BT1 và BT2 phải cùng kiểu + Kết biểu thức quan hệ là TRUE FALSE VD: - > Biểu thức logic - Biểu thức logic đơn gảin là biến logic - Dùng để liên kết nhiều biểu thức quan hệ lại với Câu lệnh gán GV: Mỗi NNLT có cách viết lệnh gán khác nhau, - Lệnh gán là cấu trúc NNLT, chẳng hạn Pascal có lệnh gán sau: thường dùng để gán gái trị cho biến i:=8+1 - Giải thích: Lấy cộng với 1, đem kết đặt vào i , ta y = - Cần chú ý điều gì viết lệnh gán? Cấu trúc: HS: Đưa ý kiến < tên - biến>:= <biểu thức>; GV: Phân tích câu trả lời học sinh sau đó tổng (6) hợp lại - Lệnh gán là gì ? - Minh họa vài ví dụ khác sử dụng lệnh VD: gán trên bảng x:= (b*b-4* a*c); Treo tranh lên bảng và giới thiệu ví dụ i:= i+1; Pascal cho chương trình j:= j-1; HS: Suy nghĩ và đưa vài ví dụ tương tự GV: Var i, j integer; Begin i := 2; j := 5; i := i+1; j := j-1; Writeln (‘i=’, i); Writeln (‘j=’, j); readln; End Vậy chương trên in màn hình giá trị i và j bao nhiêu ? HS: Quan sát và trả lời: i = và j = V/ Củng cố, dặn dò - Nhắc lại số khái niệm về: + Các phép toán : Số học, quan hệ, logic + Cấu trúc lệnh Pascal: tên_biến := biểu_thức; - Làm các bài tập 5, 6, 7, SGK trang 35 - 36 - Xem trước bài: Các thủ tục chuẩn vào/ đơn giản VI – Rút kinh nghiệm: (7) Tuần Tiết Ngày soạn : 16/09 /2009 BÀI THỦ TỤC CHUẨN VÀO/ RA ĐƠN GIẢN I Mục tiêu Kiến thức: + Biết các lệnh vào đơn giản để nhập liệu từ bàn phím đưa liệu màn hình + Viết số lệnh vào/ đơn giản + Biết các bước: Soạn, dịch, thực và hiệu chỉnhchương trình Kỹ năng: Thái độ: Ham muốn tìm hiểu các biên soạn và thực chương trình II Chuẩn bị giáo viên và học sinh + Giáo viên: số ví dụ, giáo án, sách giáo khoa + Học sinh: Đọc trước SGK III Phương pháp: + Diễn giải, đàm thoại, giải tình có vấn đề IV Tiến trình bài học: Ổn định lớp: Kiểm tra bài cũ Nêu cấu trúc lệnh gán? Cho ví dụ minh họa? Bài mới: Hoạt động giáo viên và học sinh Nội dung bài giảng (8) GV: Khi giải bài toán, đại lượng đã biết phải nhập thông tin vào, lập trình ta nhập cách nào? Làm nào nhập giá trị cho bàn phím? HS: Ta có lệnh để nhập GV : Thủ tục READ sau dọc xong giá trị trỏ không xuống dòng còn READLN là xuống dòng HS: Nghe và ghi bài GV: Thủ tục READLN không có tham số có chức làm dừng chương trình HS: Trả lời GV: Trên đây là thủ tục nhập liệu vào còn xuất thí sao? Trường hợp thủ tục WRITELN; không có tham số thì thì thủ tục có tác dụng để làm gì? HS: Trường hợp thủ tục WRITELN; không có tham số thì thì thủ tục có tác dụng đưa trỏ xuống dòng GV: Độ rộng, số chữ số thập phân là các nguyên dương Nhập liệu vào từ bàn phím - Trong pascal ta dùng thủ tục chuẩn sau: Read(danh sách biến vào);hoặc Readln(danh sách biến vào); - Ví dụ: Read(N); Readln(a,b,c); - Chú ý:+ Khi nhập liệu từ bàn phím READ, READLN, có ý nghĩa nhau, thường hay dùng READLN + Khi nhập giá trị cho các biến thủ tục, giá trị này gõ cách dấu cách phím Enter Đưa liệu màn hình Trong pascal cung cấp thủ tục chuẩn: write(<Danh sách kết ra>); writeln(<Danh sách kết ra>); đó <Danh sách kết ra>có thể tên biến đơn, biểu thức, Ví dụ: write(‘Nap so N:’); Readln(N);  Chú ý: - writeln sau đưa kết trỏ xuống dòng - Ngoài TPcó quy cách đưa thông tin nàm hình sau: + Kết thực: :<Độ rộng>:<số chữ số thập phân> + Kết khác: :<Độ rộng> ví dụ: Write(N:3); Writeln(‘X=’,x:8:2); V Củng cố, dặn dò: Nhắc lại hoạt động Write/Writeln, read/Readln VI Rút kinh nghiệm (9) Hoạt động 2: tìm hiểu thủ tụcđưa liệu màn hình Hoạt động3 : Tìm hiểu cách soạn thảo, dịch, thực hiện, hiệu chỉnh chương trình TG Hoạt động học sinh Hoạt động giáo viên Ghi bảng - Nghe giảng Để thực hành TP ta khởi  Một số tao tác thường động cách: Nháy dúp vào dùng pascal: biểu tượng turbo pascal trên - Khi soạn thảo muốn xuống màn hình dòng nhấn Enter - Trên máy cần có tệp: - Ghi file vào đĩa: F2 -Nghe giảng Turbo.exe(file chạy) - Mở file đã có: F3 Turbo.tpl(file thư viện) - Biêng dịch chương trình: Turbo.tph(file hướng dẫn) Alt +F9 - Chạy chương trình: Ctrl + F9 - Đóng cửa sổ chương trình: Alt + F3 - Thoát khỏi phần mền: Alt + X Hoạt động :củng cố: - Nhắt lại hoạt động Write/Writeln, read/Readln (10) - Cách soạn thảo,chạy chương trình, ghi vào đĩa, thoát khỏi TP Về nhà làm bài tập sách trang 35,36 Ngày soạn :10/10/07 Tiết thứ:… Bài BÀI THỰC HÀNH SỐ I/ Mục tiêu: Về kiến thức: - Biết chương trình Pascal hoàn chỉnh - Biết sử dụng số dịch vụ chủ yếu Pascal soạn thảo, lưu, dịch và thực chương trình Về kỹ năng: - Viết chương trình đơn giản, lưu chương trình trên đĩa, dịch lỗi cú pháp, thực và tìm lỗi thuật toán, hiệu chỉnh - Bước đầu biết phân tích và hoàn thành chương trình đơn giản trên Pascal Free Pascal Về tư và thái độ: - Hình thành cho học sinh bước đầu tư 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ị giáo viên và học sinh: + Giáo viên: Phòng máy tính đã cài sẵn chương trình Turbo Pascal Free Pascal, các chương trình làm ví dụ + Học sinh: - Sách giáo khoa, sách bài tập và bài viết sẵn nhà - Đọc trước phần phụ lục B1 trang 122 - Môi trường Turbo Pascal - Xem trước nội dung bài thực hành số III/ Phương pháp: Gởi mở thông qua hoạt động tư IV/ Tiến trình bài dạy: Hoạt động 1: Kiểm tra nội dung thực hành và khởi động máy TG Hoạt động học sinh Hoạt động giáo viên Ghi bảng 10’ - HS để nội dung thực hành - GV kiểm tra chuẩn bị nội trước mặt dung thực hành học sinh - Chý ý hướng dẫn GV - GV hướng dẫn học sinh khởi để khởi động máy và động máy, và khởi động chương chương trình Turbo Pascal trình Turbo Pascal Free Free Pascal Pascal Hoạt động 2: Tìm hiểu chương trình Pascal hoàn chỉnh TG Hoạt động học sinh Hoạt động giáo viên Ghi bảng 35’ - Học sinh quan sát trên - GV ghi chương trình Chương trình giải phương bảng và độc lập gõ chương Giai_PTB2 lên bảng trình bậc hai: trình vào máy - GV yêu cầu học sinh đọc và gõ program Giai_PTB2; chương trình Giai_PTB2 trên uses crt; bảng var a, b , c, D: real; x1, x2: real; begin clrscr; (11) - Nhấn phím F2 và gõ PTB2.PAS - Nhấn phím Alt+F9 - Nhấn phím Ctrl+F9 - x1 = 1.00 x2 = 2.00 - Nhấn phím Enter - Nhấn phím Ctrl+F9 - Thông báo lỗi và cho biết vì sao: Do bậc hai số âm - Sửa lại: - Tiếp tục sửa lại: - x1 = 2.00 x2 = 3.00 - Thông báo lỗi với lý delta pt là số âm 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 : : 2, ’x2: = ‘, x2 : : 2); readln - GV yêu cầu học sinh thực end các nhiệm vụ sau: + Lưu chương trình cách nhấn phím F2 với tên PTB2.PAS + Dịch và sửa lỗi cú pháp với tổ hợp phím Alt+F9 + Thực chương trình với tổ hợp phím Ctrl+F9 + Nhập các giá trị 1; -3; và Thông báo kết máy đưa + Trở màn hình soạn thảo phím Enter + Tiếp tục thực chương trình + Nhập các giá trị ; ; -2 Thông báo kết máy đưa HỎI: Vì lại có lỗi xuất hiện? + Sửa lại chương trình trên không dùng đến biến D và thực readln(a, b, c); chương trình đã sửa x1:= (-b - sqrt(b*b 4a*b*c))/(2*a); x2:= -b - x1; write(‘x1 = ‘, x1 : : 2, ’x2: = ‘, x2 : : 2); + Sửa lại chương trình cách thay đổi công thức tính x2 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 : : + Thực chương trình đã sửa 2, ’x2: = ‘, x2 : : 2); với liệu ; - ; Thông - x1 = 2.00 x2 = 3.00 báo kết + Thực chương trình với (12) TG 35’ TG 10’ liệu ; ; Thông báo kết Hoạt động 3: Rèn luyện thêm kỹ lập trình cho học sinh Hoạt động học sinh Hoạt động giáo viên Ghi bảng - Nghe và nhận nhiệm vụ - GV yêu cầu học sinh hãy viết chương trình tính diện tích tam giác biết độ dài ba - Phân tích theo yêu cầu cạnh nó giáo viên: - GV định hướng để học sinh + Dữ liệu vào ba cạnh a; ; b ; phân tich bài toán c + Dữ liệu vào (Input) + Dữ liệu S: + p:= (a+b+c)/2 +Diệu liệu (Output) S: = sqrt(sqr(p-a)*sqr(p- + Cách tính: b)*sqr(p-c)) - Thực theo yêu cầu giáo viên: - GV yêu cầu học sinh soạn và + Soạn chương trình chạy chương trình lên đĩa + 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 cho giáo viên - Học sinh thông báo kết - GV yêu cầu học sinh nhập liệu và thông báo kết ; a = 3; b = 6; c = a = 2; b = 5; c = 10; Hoạt động 4: Củng cố buổi thực hành và bài tập nhà Hoạt động học sinh Hoạt động giáo viên Ghi bảng - Chú ý và ghi nhớ Gv nhắc lại các bước hoàn thành chương trình + Phân tích bài toán để xác định liệu vào/ + 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 và hiệu chỉnh chương trình - Về nhà làm bài tập trang 35 - Làm bài tập trang 35 và 36 và 36 (13) Tiết thứ:……Bài : CẤU TRÚC RẼ NHÁNH I Mục tiêu bài dạy: Kiến thức: - Hiểu nhu cầu cáu trúc rẽ nhánh biểu diễn thuật toán - Học sinh nắm vững ý nghĩa và cú pháp câu lệnh rẽ nhánh dạng khuyết và dạng đủ, hiểu cách sử dụng câu lệnh ghép Kĩ năng: - Sử dụng cấu trúc rẽ nhánh mô tả thuật toán số bài toán đơn giản - Viết các lệnh rẽ nhánh khuyết, rẽ nhánh đầy đủ và áp dụng để thể thuật toán số bài toán đơn giản II Chuẩn bị: - Giáo viên: + Soạn giáo án + Chuẩn bị bảng phụ sau: IF Điều kiện S Đ Câu lệnh S Ngày soạn :16/10/07 - Trò: học bài cũ, đọc và chuẩn bị bài III Phương pháp truyền thụ: Giảng giải + hoạt động học sinh IV Tiến trình bài dạy: Ổn định lớp: Kiểm tra bài cũ: Bài toán: cho 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 IF Nêu thuật toán tìm Max(a,b) Hoạt động 1: Đ lệnh Câu Điều TG kiệnHoạt động giáo viên Hoạt động học sinh GV: Giao nhiệm vụ cho HS HS: Thực các yêu cầu H:Làm nào để tìm Max(a, Đ: So sánh: b)? - Nếu a > b thì max = a H: Để thể thuật toán trên - Nếu a < b thì max = b TP các em làm Đ: Chưa thể làm Ghi bảng Program baitap; Var a, b, max : integer; Begin readln(a,b); end (14) nào? Bài mới: TG Hoạt động 2: Hoạt động giáo viên Hoạt động học sinh H: Cho ví dụ câu điều Đ:+ Nếu em thuộc bài thì 10 kiện? điểm… + Nếu tối trời mưa thì em nghỉ học ngược lại thì GV: Chọn hai câu làm ví dụ em học… Từ đó phân tích cho học sinh (Có thể có nhiều câu khác thấy cấu trúc rẽ nhánh thể nhau) ví dụ này Hoạt động 3: TG Hoạt động giáo viên GV: Nêu cú pháp câu lệnh rẽ nhánh dạng đủ và dạng khuyết GV: Treo bảng phụ và giải thích quá trình thực câu lệnh rẽ nhánh dạng đủ và dạng khuyết H: Gọi học sinh viết câu lệnh so sánh để tìm Max(a, b) cách GV: Có thể dùng câu lệnh khuyết? max:=a; if a < b then max:=b; GV: lưu ý các em trước từ khoá Else không có dấu ; và sau then, sau else có lệnh chương trình GV: Với dạng này, dạng nào thuận tiện hơn? Hoạt động học sinh HS: Quan sát và ghi chép HS: Lên bảng viết: If a > b then max:= a; If a < b then max:= b; Hoặc: If a > b then max:=a Else max:=b; Ghi bảng Rẽ nhánh: * Một số mệnh đề có dạng điều kiện: + Dạng thiếu: Nếu…thì… + Dạng đủ: Nếu … thì … không thì … * Cấu trúc dùng để mô tả các mệnh đề trên gọi là cấu trúc rẽ nhánh thiếu và đủ * Mọi ngôn ngữ lập trình có các câu lệnh để mô tả cấu trúc rẽ nhánh Ghi bảng Câu lệnh IF – THEN: * Để mô tả cấu trúc rẽ nhánh, Pascal dùng câu lệnh: a Dạng khuyết: IF <điều kiện> THEN <câu lệnh>; b Dạng đủ: IF <điều kiện> THEN <câu lệnh 1> ELSE < câu lệnh 2>; Trong đó: - Điều kiện là biểu thức lôgic - Câu lệnh, câu lệnh 1, câu lệnh là câu lệnh Pascal HS: tìm câu trả lời -> tuỳ trường hợp cụ thể Hoạt động 4: TG Hoạt động giáo viên Hoạt động học sinh Ghi bảng GV: Muốn thực nhiều HS: Phát biểu ý kiến Câu lệnh ghép và ví dụ: lệnh sau if sau then thì mình * Trong ngôn ngữ Pascal câu làm nào? lệnh ghép có dạng: (15) Dẫn đến khái niệm và cách dùng câu lệnh ghép: cấu trúc rẽ nhánh, sau THEN có từ lệnh trở lên thì gộp thành câu lệnh ghép, đặt các lệnh đó cặp từ khoá Begin…end; với Pascal → H: Gọi học sinh nêu thuật toán giải PT bậc hai? Đ: B1: Nhập a, b, c B2: Tính d = b2 – 4ac; B3: + Nếu d < thì pt vô nghiệm + Ngược lại thì pt có − b ± √d GV: Nhận xét, bổ sung nghiệm x1,2 = GV: Phân nhóm và yêu cầu 2a học sinh thảo luận nhóm để HS: Thảo luận theo nhóm và viết chương trình thể trình bày lời giải vào bảng thuật toán trên Ghi lời giải phụ: vào bảng phụ GV: Yêu cầu đại diện nhóm lên treo bảng lời giải và trình HS: Đại diện nhóm lên treo bày Cho các nhóm khác nhận xét bảng lời giải và trình bày GV: chính xác hoá lời giải Các nhóm khác nhận xét HS và cho điểm Begin <các câu lệnh>; End; * Ví dụ: Viết chương trình giải phương trình bậc hai Program ptb2; Var a, b, c, d, x1, x2: real; Begin Write(‘ Nhap a, b, c:’); Readln(a,b,c); d := b*b – 4*a*c; If d < then Write(‘ PT vo nghiem’) else Begin Write(‘ PT co nghiem :’); x1:= (- b – sqrt(d))/(2*a); x2:= (- b + sqrt(d))/(2*a); Write(x1:6:2, x2:6:2); End; Readln end VI Củng cố: GV tóm tắt các vấn đề cần nắm bài: - Cú pháp, ý nghĩa câu lệnh rẽ nhánh dạng đủ và dạng khuyết - Cách sử dụng câu lệnh ghép VII Bài tập nhà: - Học bài, trả lời câu 1, trang 50 và làm bài trang 51 sgk - Viết chương trình tìm Max(a, b, c) - Viết chương trình giải phương trình bậc - Chuẩn bị bài mới: Cấu trúc lặp Ngày soạn :20/10/07 Tiết thứ:…… BÀI 10: CẤU TRÚC LẶP I Mục đích yêu cầu: - Về kiến thức: + Hiểu nhu cầu cấu trúc lặp biểu diễn thuật toán + Biết cấu trúc chung lệnh lặp FOR ngôn ngữ lập trình + Hiểu cấu trúc lặp với số lần biết trước và câu lệnh FOR - DO - Về kỹ năng:Bước đầu sử dụng lệnh lặp FOR để lập trình giải số bài toán đơn giản (16) II Chuẩn bị: - GV: SGK, Giáo án, Máy chiếu Projector - HS: SGK, vỏ III Phương pháp: - Gợi mở, vấn đáp - Làm việc theo nhóm IV Hoạt động dạy học: Ổn định lớp: Kiểm tra sĩ số HS Kiểm tra bài cũ: Cho biết kết doạn chương trình sau Program VD; Begin Writeln (‘PASCAL’); Writeln (‘PASCAL’); Writeln (‘PASCAL’); Writeln (‘PASCAL’); Writeln (‘PASCAL’); Readln; End Nội dung dạy học: * HĐ1: Tìm hiểu ý nghĩa cấu trúc lặp TG Hoạt động GV Hoạt động HS - Nếu giải bài toán trên với việc - Chương trình dài dòng in khoảng 10 dòng có từ PASCAL? - Có nhận xét gì các dòng - Lặp lại nhiều lần với câu lệnh chương trình trên? lệnh: Writeln - Đối với thuật toán có thao tác phải thực lặp lặp lại số lần thì máy tính có thể thực hiệu các thao tác lặp đó các cấu trúc lặp - Nêu VD cấu trúc lặp: - HS làm việc theo nhóm a Tính tổng 20 số tự nhiên Thuật toán 1: đầu tiên B1: S=0; n=0 b Tính tổng n số tự nhiên B2: n  n +1 đầu tiên vói n <=20 B3: Nếu n > 20 thì chuyển Chia HS làm nhóm để viết đến B5 thuật toán giải bài toán trên B4: S= S + n quay lai b2 B5: Đưa S màn hình và kết thúc Thuật toán 2: B1: S=0; n=20 B2: n  n -1 B3: Nếu n < thì chuyển Ghi bảng - Trình chiếu CẤU TRÚC LẶP Lặp: - Cấu trúc lặp mô tả thao tác lặp - Có loại thao tác lặp: + Lặp với số lần biết trước + Lặp với số lần chưa biết trước (17) đến B5 B4: S= S + n quay lai b2 - Từ VD trên và nghiên cứu B5: Đưa S màn hình và thêm SGK hãy cho biết có kết thúc loại cấu trúc lặp? - loại * HĐ 2: Tìm hiểu cấu trúc lặp với số lần biết trước và câu lệnh FOR - DO TG Hoạt động GV Hoạt động HS Ghi bảng- Trình chiếu - Số lần lặp thuật toán 2.Lặp với số lần biết trước và trên là biết trước và câu lệnh FOR - DO (20 lần) - Cấu trúc lặp: - Giải thích thuật toán + Dạng lặp tiến: + TT1: n bắt đầu là và sau FOR <biến đếm>:= <giá trị lần lặp n tăng lên đơn vị đầu> TO <giá trị cuối> DO n>20 thì kết thúc <câu lệnh>; lặp + Dạng lặp lùi: + TT2: n bắt đầu là 20 và sau FOR <biến đếm>:= <giá trị lần lặp n giảm đơn vị cuối> DOWNTO <giá trị n< thì kết thúc đầu> DO <câu lệnh>; lặp - Trong đó: - Nêu các dạng cách lặp? - Dạng tiến và dạng lùi + Biến đếm là biến đơn, - Giới thiệu câu lệnh FOR thường có kiểu nguyên DO với dạng tiến, lùi + Giá trị đầu, giá trị cuối là Pascal các biểu thức cùng kiểu với - Giải thích các thông số biến đếm và giá trị đầu phải câu lệnh nhỏ giá trị cuối - Yêu cầu HS nghiên cứu SGK - HS trả lời - Hoạt động lệnh FORvà nêu hoạt động lệnh FOR DO - DO? + Dạng lặp tiến: câu lệnh viết sau từ khóa DO thực tuần tự, với biến đếm nhận các giá trị liên tiếp tăng từ giá trị đầu đến giá trị cuối, + Dạng lặp lùi: câu lệnh viết sau từ khóa DO thực tuần tự, với biến đếm nhận các giá trị liên tiếp giảm từ giá trị cuối đến giá trị đầu - GV treo bảng phụ sơ đồ - Quan sát bảng phụ - Chú ý: Câu lệnh viết sau thuật toán lặp DO không thay đổi giá - Gv treo bảng phụ cài đặt - Quan sát bảng phụ trị biến đếm các thuật toán VD trên (18) - Qua chương trình trên có - Được điều chỉnh tự động nhận xét gì biến đếm ? - Cho HS cài đặt thuật toán vơi Program In_chu; VD1 Var i:byte; Begin For i:=1 to writeln (‘PASCAL’); Readln; END - Lập chương trình tạo bảng - HS làm việc theo nhóm cửu chương * HĐ 3: Củng cố- Dặn dò - Nắm lại các cấu trúc lặp - Nhớ dạng tiến lùi câu lệnh FOR - DO Pascal - Xem trước bài BẢNG PHỤ Biến đếm:= Giá trị đầu Biến <= Giá tri cuối ĐÚNG Câu lệnh Biến:= succ(biến) SAI (19) BẢNG PHỤ Thuật toán Program tong; Var i,S: integer; Begin Write (‘ Tong cac so nguyen tu den 20 la:’); S:=0; For i:= to 20 S: = S + i; Writeln(S); Readln; End Thuật toán Program tong; Var i,S: integer; Begin Write (‘ Tong cac so nguyen tu den 20 la:’); S:=0; For i:= 20 downto S: = S + i; Writeln(S); Readln; End Ngày soạn :22/10/07 Tiết thứ:………Bài 10 : CẤU TRÚC LẬP (TT) I Mục tiêu: Về kiến thức: -Khái niệm cấu trúc lặp,các câu lệnh lập Pascal -Hiểu cấu trúc lặp biểu diễn thuật toán Về kĩ năng: -Biết diễn đạt đúng câu lệnh.Soạn chương trình giải bài toán đơn giản có sử dụng lệnh lặp Tư ,thái độ: -Rèn luyện phẩm chất cho người lặp trình II Chuẩn bị giáo viên và học sinh: GV: Tổ chức cho học sinh tiếp thu kiến thức HS:Chuẩn bị bài III Phương pháp: Thuyết trình,diễn giải,vấn đáp (20) TG HOẠT ĐỘNG CỦA HS 10’ HSTB HS khác nhận xét 15’ HS lắng nghe HSTL HOẠT ĐỘNG CỦA GV Hđ1:ổn định , bài củ:-Hãy viết câu lệnh lặp for -do với hai dạng tiến và lùi (HSTB) GV nhận xét và cho điểm Hđ2:Hình thành câu lệnh while-do + H1: -Có thể xây dựng thuật toán Tổng _2 sau để giải bài toán GV trình bày +H2:Theo thuật toán việc lặp lại số lần chưa biết trước có kết thúc không? PHẦN TRÌNH BÀY ;N:=0; a B2:Nếu <0,0001 thì a+ N B1: S:= chuyển đến B5 ; B3:N:=N+1; B4:S:=S+ ; a+ N B5:Đưa S màn hình kết thúc Nhu vậy, việc lặp lại số lần chưa biết trước kết thúc điều kiện cho trước thoả mãn While <điều kiện> <câu Để mô tả cấu trúc lặp lệnh>; vậy,Pascal dùng câu lệnh Tronh đó:-Điều kiện là biểu thức logic; while-do có dạng: -Câu lệnh là câu -Hsinh xem sơ đồ (hình 7) HS lắng nghe(Hoạt động nhóm) +H3:-VD1:Cho HS viết đơn ghép chương trình bài toán Nhóm trình bày kết -VD2:(SGK/47) Bước 1:Nếu M=N thì Hãy xây dựng thuật toán tìm UCLN:=M;rồi kết thúc UCLN(đã học lớp 10) Bước 2:Nếu M>N thì M:=M-N quay lai bước 1,Ngược lại GV nhận xét và hoàn chỉnh.HS trình bày chương trình Hđ3:Cũng cố,dặn dò Nhắc lại số khái niệm Nhắc lại cấu trúc câu lệnh Bài tập nhà Ngày soạn: 28/10/07 Tiết thứ:…….Tên bài học: I- Mục tiêu: 1- Kiến thức: BÀI TẬP CHƯƠNG (21)  Củng cố cho học sinh kiến thức cấu trúc rẽ nhánh và cấu trúc lặp 2- Kỹ năng:  Rèn luyện kỹ vận dụng và linh hoạt việc lựa chọn cấu trúc rẽ nhánh và cấu trúc lặp để giải bài toán đặt 3- Tư duy, thái độ:  Rèn luyện ý thức tự giác học tập tích cực, ham thích tìm hiẻu, chủ động giải các bài tập  Rèn luyện tư khoa học, tư logic II- Chuẩn bị giáo viên và học sinh:  GV: - Soạn giáo án  HS: - Học bài cũ và chuẩn bị bài tập III- Phương pháp dạy học: Gợi mở và thuyết trình IVT iến trình bài dạy: Kiểm TG Hoạt động Hoạt 1: động củatra HSbài cũ Hoạt động GV Ghi bảng Câu hỏi 1: Trình bày cấu trúc câu lệnh rẽ nhánh và cấu trúc lặp ? Hoạt động 2: Giải bài tập - 1hỏi HS1: lênSửbảng lời If này gồm - GV HS?lên trả lời H1 -Rẽ nhánh Câu dụngtrảlệnh mấygọi nhánh If <btđk > then <lệnh 1> Câu hỏi 2: Hàm lấy giá trị tuyệt đối biểu thức hay biến ? else <lệnh 2>; 7’ Hoạt động HS If <btđk > then <lệnh 1>; TG Hoạt động GV Ghi bảng - Lặp For HĐTP1: For <biến - HS lên bảng giải câu 4a) - GV gọi HS lên bảng giải Câu 4a) đếm>:= <giá trị đầu> To <giá+ trịsqrt(y)) cuối> Do - HS trả lời H1 câu 4a) If (sqrt(x) <=1 <lệnh>; - Các HS khác theo dõi và then z:= sqrt(x) + sqrt(y) For <biến đếm>:= <giá trị đầu> Downto <giá trị cuối> - Cả lớp theo dõi và nhận - GV yêu cầu lớp nhận Do <lệnh>; (22) nhận xét - GV đặt H1 - GV yêu cầ lớp theo dõi và nhận xét Else If y>=x then z:= x+y Else z:= 0.5; 20’ - HS lên bảng giải câu 4b) - HS trả lời H2 - GV nhận xét, hoàn chỉnh bài làm và đánh giá HĐTP2: Câu 4b) - GV gọi HS lên bảng giải If (sqr(x-a) + sqr(y-b)) <= câu 4b) sqr(r) then z:=abs(x) +abs(y) Else z:= x+y; - GV đặt H2 - GV nhận xét và đánh giá Hoạt động 3: Giải bài tập 50 Câu hỏi 1: Hãy khai triển biểu thức Y = n ∑ n+1 dạng tường minh ? n=1 Câu hỏi 2: Nhìn vào công thức khai triển, em hãy cho biết n lấy giá trị đoạn nào ? Câu hỏi 3: Em hãy thử đưa phương pháp tính Y ? Câu hỏi 4: Sử sụng cấu trúc điều khiển lặp nào là phù hợp ? TG 15’ Hoạt động HS Hoạt động GV - HS lên bảng trình bày H1 - HS trả lời H2 - HS trả lời H3 - HS trả lời H4 - HS lên bảng giải bài 5a - GV đặt H1 - GV đặt H2 - GV đặt H3 - GV đặt H4 - GV gọi HS lên bảng giải bài 5a) Ghi bảng Y= 50 + + + ⋯+ 51 Câu 5a) Uses crt; Var y: real; n: byte; Begin Clrscr; y:=0; for n:=1 to 50 y:= y + n/(n+1); writeln(y:14:6); readln; End - Các HS còn lại theo dõi và nhận xét bổ sung (nếu có) - GV yêu cầu các HS còn lại theo dõi và nhận xét (23) - GV nhận xét, hoàn chỉnh bài làm và đánh giá V- Củng cố và dặn dò (3’):  Nắm nội dung đã học: - Có cấu trúc lặp:  Lặp For: Số lần lặp đã xác định  Lặp While: Số lần lặp chưa xác định  Làm các bài tập còn lại SGK trang 51 (24) Ngày soạn: 10/11/07 Tiết thứ:…….Bài 11 : KIỂU DỮ LIỆU CÓ CẤU TRÚC I/ Mục tiêu: - Về kiến thức: + Nắm khái niệm mảng chiều + Nắm quy tắc mà NNLT xây dựng và sử dụng mảng chiều - Về kỹ năng: + Nhận biết các thành phần khai báo kiểu mảng chiều + Nhận biết định danh phần tử kiểu mảng chiều xuất chương trình + Biết cách khai báo mảng đơn giản và số kiểu miền kiểu nguyên - Về tư duy, thái độ: + Có tư đúng đắn việc áp dụng mảng chiều để giải các bài toán đơn giản II/ Chuẩn bị gv, hs: + Giáo viên: Sgk, sbt, sgv, tranh sơ đồ + Học sinh: Sgk, sbt III/Phương pháp: Trực quan, thuyết trình kết hợp với hỏi - đáp IV/ Tiến trình bài học: Hoạt động 1: Tìm hiểu cần thiết chương IV(Kiểu liệu có cấu trúc) và định nghĩa mảng chiều TG H/động hs H/động gv N ội dung ghi bảng 25’ - Trả lời - Nhắc lại kiểu dl đã Bài11 KIỂU MẢNG học? - GV nêu lên cần thiết phải có kiểu dl có cấu trúc Kiểu mảng chiều: - Tìm hiểu mảng - Xét ví dụ: chiều Nhập vào nhiệt độ trung bình ngày - Hãy trình bày ý tưởng để tuần, tính và đưa màn hình nhiệt - Trả lời giải bài toán trên độ trung bình tuần và số lượng ngày - Ta có thể viết ct NN tuần có nh/độ cao nh/độ t/bình Pascal sau: tuần - Giải: Program nhdo; Var t2,t3,t4,t5,t6,t7,cn,tb: real; d: integer; Begin Writeln('Nhap vao nhiet cua cac thu tuan'); Readln(t1,t2,t3,t4,t5,t6,t7,cn); Tb:=(t2+t3+t4+t5+t6+t7+cn)/7; D:=0; If t2>tb then d:=d+1; If t3>tb then d:=d+1; If t4>tb then d:=d+1; If t5>tb then d:=d+1; (25) TG H/động hs H/động gv N ội dung ghi bảng If t6>tb then d:=d+1; If t7>tb then d:=d+1; If cn>tb then d:=d+1; Writeln('Nhiet tr/binh tuan: ',tb:5:2); Writeln('So nh/do cao hon nh/do t/binh la: ',d); Readln; End -Nếu ta viết mảng Dùng mảng chiều: chi ều: Program nhdo; Const max = 20; Type a = array[1 max] of real; Var ndo:a; d,i,n: byte; t,tb: real; Begin Writeln('Nhap so ngay: '); Readln(n); T:=0; d:=0; For i:=1 to n Begin Writeln('Nhap vao nhiet cua thu ',i,':'); Readln(ndo[i]); T:=t+ndo[i]; End; Tb:=t/n; For i:=1 to n If ndo[i]>tb then d:=d+1; Writeln('Nhiet tr/binh tuan: ',tb:5:2); Writeln('So nh/do cao hon nh/do t/binh la: ',d); -So s ánh ch/tr trên Readln; -Thế nào là mảng chiều? End A/ Định nghĩa:sgk Hoạt động 2: Tìm hiểu cách khai báo mảng chiều TG H/động hs H/động gv Nội dung ghi bảng 15’ Trả lời Có cách để khai báo B/Khai báo: mảng chiều? Cách 1: Khai báo trực tiếp: Var <tên biến mảng>: array[kiểu số] of <kiểu phần tử>; Cách 2: Khai báo gián tiếp Type <tên kiểu mảng>= array[kiểu số] of <kiểu phần tử>; Var <tên biến mảng>:<tên kiểu mảng>; (26) Trong đó: +Kiểu số thường là đoạn số nguyên liên tục có dạng n1 n2(n1<n2) (n1,n2 là các biểu thức) + Kiểu phần tử là kiểu dl các phần tử mảng - Lên bảng - Hãy khai báo mảng vd trên cách khai báo trực tiếp - Để tham chiếu đến nh/độ thứ ta viết ndo[2] Hoạt động 3: Củng cố: ‘ - Thế nào là mảng chiều? - Cách khai báo biến mảng Hoạt động 4: Bài tập nhà: Nhập vào dãy số và in màn hình số chẵn Ngày soạn: 14/11/07 Tiết thứ:…….BÀI 11: KIỂU MẢNG (TT) I Mục Tiêu: 1)Về kiến thức: Thể các thuật toán tìm kiếm và xếp: xếp dãy số nguyên phương pháp trao đổi và tìm kiếm nhị phân 2)Về kỹ : Biết cách sử dụng mảng chiều chương trình thể các thuật toán trên 3)Về tư thái độ : + Ý thức rèn luyện kỹ các thao tác trên kiểu liệu có cấu trúc + Hứng thú tìm hiểu các thuật toán thường gặp trên các mô hình liệu II Chuẩn bị giáo viên và học sinh: 1)Về giáo viên: Chuẩn bị số bài tập liên quan đến tìm kiếm và xếp mảng chiều 2) Về học sinh: Xem lại thuật toán đã học lớp 10 (Tìm GTLN dãy số nguyên, xếp trao đổi và tìm kiếm nhị phân) III Phương pháp : gợi mở IV Tiến trình bài học : 1) Kiểm tra bài cũ (10ph) Trình bày thao tác nhập, xuất mảng chiều 2) Nội dung bài : TG Hoạt động GV Hoạt động HS Hoạt động 1:Vidụ  Hãy trình bày  Sắp xếp và đổi chỗ các phương pháp phần tử liên tiếp chúng xếp trao đổi? ngược thứ tự  Cho dãy số nguyên sau  Input:dãy số đã cho K={ 10,7,2,15,8,4} (chưa xếp )  Hãy xác định input Output: đưa dãy số đã Ghi bảng Vidụ 1: Sắp xếp dãy số nguyên phương pháp trao đổi Sgk/57 (27) và output bài toán xếp phương pháp trao đổi?  Hướng dẫn học sinh hiểu đoạn câu lệnh thuật toán vd2 sgk trang 57 Hoạt động2:Vidụ  Trình bày phương pháp tìm kiếm nhị phân?  Cho dãy số nguyên : K = {5,7,10,17,21,25} với khoá A=21 Hãy xác định khoá A có nằm dãy K hay không? Xác định Input và Output?  Hướng dẫn học sinh hiểu đoạn câu lệnh thuật toán tìm kiếm nhị phân ví dụ SGK trang 58 xếp  Theo dõi Sgk/57  Chia đôi mảng đã xếp so sánh phần tử lớn hay nhỏ giá trị A cần tìm bên phải hay bên trái mảng  Trả lời câu hỏi giáo viên Input : Output: Ví dụ : Tìm kiếm nhị phân Sgk trang 58  Xem Sgk trang 58 III.Củng cố : (5 ‘) Nhắc lại kiểu mảng, bài toán tìm kiếm, xếp IV.Bài tập nhà : Yêu cầu học sinh chạy thử chương trình xếp phương pháp tráo đổi bài tập Sgk trang 58 (28) Ngày soạn : 22/11/07 Tiết thứ:……… BÀI 11: KIỂU MẢNG (Tiết 3) I/ Mục tiêu: 1/ Về kiến thức: - Biết kiểu liệu là kiểu mảng hai chiều - Biết cách tạo kiểu mảng hai chiều, cách khai báo biến, tham chiếu đến phần tử mảng 2/ Về kĩ năng: - Nhận biết các thành phần khai báo kiểu mảng hai chiều - Nhận biết định danh phần tử mảng hai chiều xuất chương trình Cách tham chiếu đến phần tử mảng hai chiều - Viết khai báo mảng hai chiều với các số thuộc kiểu nguyên 3/ Về tư và thái độ: - Xây dựng lòng yêu thích giải toán lập trình trên máy tính - Rèn luyện các phẩm chất cần thiết người lập trình như: ý thức chọn và xây dựng kiểu liệu thể đối tượng thực tế, ý thức rèn luyện kĩ sử dụng các thao tác trên kiểu liệu có cấu trúc, hứng thú tìm hiểu các thuật toán trên kiểu liệu có cấu trúc Luôn muốn cải tiến chương trình nhằm nâng cao hiệu chương trình II/ Chuẩn bị giáo viên và học sinh: 1/ Giáo viên: Sách giáo khoa, bảng phụ 2/ Học sinh: Sách giáo khoa III/ Phương pháp: Trực quan, suy luận, kiểm tra, giải vấn đề IV/ Tiến trình bài học: * Hoạt động 1: Kiểm tra bài cũ và khởi động bài TG Hoạt động Giáo viên Hoạt động Học sinh 2’ Ổn định lớp 5’ Kiểm tra bài cũ: - HS lên bảng trả bài cũ HS1: Tại mảng là kiểu liệu có cấu trúc? HS2: Tại phải khai báo kích thước mảng? 5’ Đặt vấn đề: - GV gọi HS nhắc lại khái niệm - HS đứng chỗ trả lời câu mảng chiều? hỏi - Gọi HS lên bảng ghi lại cách khai - HS lên bảng trả lời báo biến mảng chiều? - GV treo bảng phụ có hình minh - HS theo dõi và suy nghĩ họa bảng cửu chương và đưa câu câu hỏi GV đưa hỏi: Làm nào để in bảng cửu chương có dạng này? - Để giải vấn đề này, trước hết - HS lắng nghe chúng ta tìm hiểu nào là mảng hai chiều * Hoạt động 2: Tìm hiểu kiểu mảng hai chiều TG Hoạt động Giáo viên Hoạt động Học sinh Ghi bảng Ghi bảng (29) 15’ 2/ Kiểu mảng hai chiều: - Sử dụng kiến thức mảng chiều, các em hãy đưa cách sử dụng kiểu mảng đó để lưu trữ bảng cửa chương này? - Với cách lưu trữ thì ta phải khai báo bao nhiêu biến mảng? - Như thì nó có khó khăn gì? - Sử dụng mảng chiều, mảng lưu hàng bảng - Khai báo biến mảng chiều - Khai báo nhiều biến, viết chương trình nhập xuất liệu dài - Để khắc phục các khó khăn này, ta - HS chú ý lắng nghe xem mảng chiều là phần tử, ta ghép mảng chiều thành mảng hai chiều - Thế thì mảng hai chiều là mảng - HS đứng chỗ trả lời - Mảng hai chiều là mảng nào? câu hỏi chiều mà phần tử là mảng chiều - Để mô tả kiểu mảng hai chiều ta - HS đứng chỗ trả lời - Các yếu tố xây dựng mảng hai cần xác định yếu tố chính câu hỏi chiều: nào? + Tên kiểu mảng hai chiều + Số lượng phần tử chiều + Kiểu liệu phần tử + Cách khai báo biến + Cách tham chiếu đến phần tử a/ Khai báo: - Bây chúng ta tìm hiểu cách khai bái kiểu mảng hai chiều nào? - Tương tự kiểu mảng chiều, em nào có thể lên bảng viết cách khai báo kiểu mảng hai chiều ngôn ngữ Pascal? - GV đưa ví dụ và yêu cầu HS đâu là số mảng, số dòng, số cột và kiểu phần tử mảng? - Cách 1: Khai báo trực tiếp - HS theo dõi và lắng nghe Var <tên biến mảng> : array [kiểu số hàng, kiểu số cột] of <kiểu phần tử>; - HS lên bảng trả lời câu - Cách 2: Khai báo gián tiếp hỏi Type <tên kiểu mảng> = array [kiểu số hàng, kiểu số cột] of <kiểu phần tử>; Var <tên biến mảng> : <tên kiểu mảng>; * Ví dụ: - Cách 1: Var A : array [1 9,1 10] of Integer; - Cách 2: Type bang = [1 9,1 10] - HS trả lời: + Chỉ số mảng: 9, 10 + Số dòng: 9; số cột: 10 + Kiểu: số nguyên (30) TG Hoạt động Giáo viên Hoạt động Học sinh Ghi bảng of Integer; Var A : bang; - Gọi vài HS lên bảng cho ví dụ - HS lên bảng cho ví dụ và và yêu cầu các em đâu là trả lời số mảng, số dòng, số cột và kiểu phần tử mảng - GV minh họa hình ảnh mảng - Ví dụ: - Cách truy cập phần tử mảng: hai chiều ví dụ trên và cách viết A[1,8] ; A[3,5] <tên mảng>[chỉ số dòng, số truy cập phần tử mảng cột] * Hoạt động 3: Rèn luyện kĩ sử dụng kiểu mảng hai chiều TG Hoạt động Giáo viên 7’ 1/ GV treo bảng phụ đã viết sẵn chương trình đưa màn hình bảng nhân - Yêu cầu HS xác định cách tổ chức liệu? - Nhiệm vụ chính bài toán cần giải quyết? Hoạt động Học sinh - HS chú ý theo dõi Ghi bảng b/ Một số ví dụ: * Ví dụ 1: Chương trình sau tính và đưa màn hình bảng nhân - Dùng mảng hai chiều - Điền giá trị cho a[i,j]=i*j và xuất giá trị a[i,j] theo dòng - Yêu cầu HS giải thích các lệnh - HS giải thích chương trình? - GV đưa các số cụ thể để HS - HS thực chương thực chương trình và đưa kết trình và đưa kết quả 2/ GV treo bảng phụ đã viết sẵn - HS chú ý theo dõi chương trình - GV thực chương trình để HS - HS quan sát và chú ý thấy kết nó giải thích GV - Yêu cầu HS đặt số câu hỏi - HS đặt các câu hỏi thắc thắc mắc chương trình để GV mắc trả lời, giải thích * Ví dụ 2: Chương trình sau nhập vào từ bàn phím các phần tử mảng hai chiều B gồm dòng, cột với các phần tử là các số nguyên và số nguyên k Sau đó, đưa màn hình các phần tử mảng có giá trị nhỏ k * Hoạt động 4: (3’) Củng cố Gọi HS nhắc lại: - Tạo kiểu mảng hai chiều - Khai báo biến mảng hai chiều - Tham chiếu đến phần tử * Hoạt động 5: (2’) Bài tập nhà - Làm các bài tập số 8, SGK - Xem trước nội dung bài thực hành số SGK -// (31) Ngày soạn: 28/11/07 Tiết thứ:… Bài: BÀI THỰC HÀNH SỐ I.Mục tiêu: 1.Kiến thức: - Củng cố lại kiến thức kiểu liệu mảng, cụ thể là mảng chiều.Qua đó cung cấp cho học sinh các thuật toán thường gặp với kiểu liệu mảng 2.Kĩ năng: - Rèn luyện cho học sinh số kĩ làm việc với mảng như: +Khai báo kiểu liệu mảng chiều, + Nhập/ xuất liệu, +Duyệt qua các phần tử mảng, -Qua đó giúp học sinh biết cách giải số bài toán thường gặp như: +Tính tổng các phần tử thoả mãn điều kiện nào đó, +Đếm số các phần tử thoả mãn điều kiện nào đó, +Tìm phần tử lớn nhất/bé mảng và vị trí nó Thái độ: -Rèn luyện tác phong, tư lập trình, tự giác , tích cực, chủ động và sáng tạo tìm kiếm kiến thức II.Chuẩn bị giáo viên và học sinh: 1.Giáo viên: +Phòng máy vi tính, +Một số chương trình cài sẵn USB đĩa mềm, +Máy chiếu bảng phụ, 2.Học sinh: +Học bài cũ, +Đọc trước bài nhà III.Phương pháp: -Trình chiếu kết hợp đàm thoại -Hướng dẫn học sinh các bước thực số chương trình IV.Tiến trình bài dạy: 1.Hoạt động 1: Kiểm tra bài cũ Câu hỏi: Có cách khai báo mảng chiều? Cho ví dụ TG Hoạt động học sinh Hoạt động giáo viên Ghi bảng 5’ -Lắng nghe câu hỏi -Nêu câu hỏi -Học sinh trả lời câu -Gọi học sinh lên trả lời hỏi Cả lớp theo dõi, nhận xét Có hai cách khai báo: a/Khai báo trực tiếp: Var < tên biến mảng > : array [ kiểu số ] of < kiểu phần tử>; b/ Khai báo gián tiếp Type < tên kiểu mảng > : array [ kiểu số ] of < kiểu phần tử>; Var < tên biến mảng >: < tên kiểu -Giáo viên nhận xét, cho mảng >; (32) điểm 2.Hoạt động 2: Bài tập số sgk/63 TG 25’ Hoạt động học sinh Hoạt động giáo viên Ghi bảng 1/HĐTP1: Quan sát bảng phụ, Treo bảng phụ có nội dung bài số 1a/ sgk/63 ( có - Lắng nghe câu hỏi và thể sử dụng máy chiếu ) trả lời Sau đó đặt câu hỏi cho học sinh trả lời + Khai báo uses CRT; có ý -Khai báo thư viện chương trình nghĩa gì? CRT để sử dụng thủ tục Clrscr; - Myarray : tên kiểu liệu +Myarray là tên kiểu - nmax: số phần tử tối đa có thể liệu hay tên biến? chứa biến mảng a, +Vai trò nmax và n có n: số phần tử thực tế a gì khác nhau? -Random(n): cho số ngẫu nhiên từ +Những dòng lệnh nào đến n-1 dùng để tạo biến mảng a -Theo dõi để nắm hàm -Giáo viên giới thiệu hàm Random Random cho học sinh.Sau đố đặt câu hỏi: +Câu lệnh cho số ngẫu + a[i] := Random(300) – nhiên có giá trị từ -299 Random (300) có ý nghĩa đến 299 gì? +câu lệnh in màn hình + Lệnh for i:=1 to n giá trị tất các phần tử Write ( a[i] : 5); mảng Có ý nghĩa gì? +cộng tất các phần tử +Lệnh For-do cuối cùng chia hết cho k thực nhiệm vụ gì? +Số lần thực lệnh +Lệnh gán s := s + a[i] ; gán đúng số phần thực bao nhiêu tử mảng chia hết cho lần? k (33) 10’ -Theo dõi kết chạy -Thực lại chương trình thử chương trình lần cuối để học sinh thấy kết 2/HĐTP2: Sửa chương trính câu a/ để chương trình giải bài toán câu b/ -Quan sát bảng phụ, theo dõi và trả lời các câu hỏi +posi : đếm số dương mảng GV -Treo bảng phụ câu b/ bài +neg: đếm các số âm mảng tập sgk/64 Hỏi HS: + Ý nghĩa biến posi và neg? +Nếu a[i] > thì cộng a[i] vào posi; ngược lại a[i] < thì cộng a[i] + Chức lệnh : vào neg If a[i] > then posi := posi +1 else if a[i] < then neg := neg +1; +Quan sát các lệnh và là gì? suy nghĩ vị trí cần sửa chương trình câu +Hướng dẫn học sinh a/ thêm vào vị trí cần thiết để chương trình đếm số lượng các số âm và các số +Theo dõi kết chạy dương chương trình +Chạy thử chưong trình để học sinh theo dõi kết 3.Hoạt động 3: Bài tập số 2/sgk/64 TG 15’ Hoạt động học sinh Hoạt động giáo viên 1/HĐTP1: Đưa ví dụ cụ thể Ví dụ: Cho mảng gồm phần tử: Tìm phần tử có giá trị lớn và Ghi bảng (34) vị trí nó mảng ( số thứ tự ) -Theo dõi, suy nghĩ để -Gợi ý , hướng dẫn học sinh j:=1; nắm thuật toán thuật toán tìm phần tử lớn For i:=2 to n và vị trí nó (kết hợp làm If a[i] > a[j] then thủ công) j:=i; (Sau kết thúc: + Giá trị lớn là a[j] + vị trí cần tìm j.) -Đọc đoạn chương trình -Cho học sinh đọc đoạn sgk Liên hệ trả lời các chương trình bài câu hỏi mà GV nêu 2/64sgk +Sửa a[i] > a[j] ; thành Hỏi HS: a[i] < a[j] ; + Nếu muốn tìm phần tử nhỏ thì cần sửa chỗ nào? +Sửa a[i] > a[j]; thành +Nếu muốn tìm phần tử lớn a[i] >= a[j]; với số lớn nó thì ta sửa ổ chỗ nào? -Chạy thử chưong trình cho học sinh theo dõi 30’ 2/HĐTP2: -Theo dõi học sinh thực -Theo dõi GV chạy chương trình và xem kết chương trình và làm lại trên máy tính 4.Hoạt động 4: Củng cố (3’) -Nhắc lại cho học sinh số kiến thức về: + Tính tổng các phần tử các phần tử thoả mãn điều kiện nào đó + Đếm số các phần tử thoả mãn điều kiện nào đó + Tìm phần tử lớn nhất/ bé 5.Bài tập nhà (2’) - Viết chương trình nhập mảng chiều, đếm số phần tử nhỏ số k nào đó (35) Ngày soạn: 30/11/07 Tiết thứ:… Bài: BÀI THỰC HÀNH SỐ I Mục tiêu Kiến thức - Củng cố kiến thức liệu kiểu mảng - Xây dựng cấu trúc liệu, hiểu thuật toán xếp tráo đổi Kĩ - Biết chỉnh sữa lỗi chương trình - Tự nhập các liệu để hiểu ý nghĩa số câu lệnh Thái độ - Nghiêm túc thực đúng nội quy phòng máy, tự giác lập trình II.Chuẩn bị - Gv:Bảng phụ viết sẵn chương trình, phòng máy, project - Hs: Sgk, CT đã viết sẵn III Phương pháp IV Tiến hành dạy học Hoạt động 1: Nhắc lại kiến thức đã học liên quan bài thực hành Hđ GV Hđ Hs Hỏi 1: Nêu cách khai báo kiểu mảng chiều Tl: có cách + gián tiếp: + trực tiếp: Hỏi 2: Nhập từ bàn phím xây dựng mảng chiều A có phần tử TL: For i:= to Begin Writeln(‘Nhap phan tu thu ’,i,’=’); Readln(A[i]); End; Hoạt động 2: Xác định bài toán và tìm hiểu chương trình TG Hđ GV Hđ HS Ghi bảng Chiếu đề bài lên bảng Quan sát đề và lằng nghe Đề: Sắp xếp dãy số câu hỏi gv nguyên thuật toán Xác định bài toán Trả lời câu hỏi tráo đổi với các giá trị Y/cầu hs xác định liệu vào/ra - Vào: mảng A khác n số bài toán? - Ra: mảng A đã xếp Gv minh hoạ bài toán: Theo dãy số minh họa, nhớ A lại thuật toán xếp đã học - Nhắc lại thuật toán CT( SGK/65) - Quan sát, đối chiếu thuật toán liệt kê với CT (SGK) Xem CT và tìm hiểu số biến, lệnh (36) Mảng A đã xếp: A - TL: Dùng làm biến số - TL:3 lệnh: tg := a[i]; a[i]:= a[i+1]; a[i+1]:= tg; - Chú ý, lắng nghe, quan sát và ghi nhớ - Yêu cầu hs nhắc lại ý tưởng thuật toán(Lớp 10)? - Chiếu thuật toán đã liệt kê các bước Tìm hiểu chương trình - Vai trò biến i, j CT? - Đoạn lệnh nào thực tráo đổi giá trị phần tử liền kề mảng? - Treo bảng CT chuẩn bị sẵn Giải thích số lệnh CT Hoạt động 3: Chạy CT câu a TG Hđ GV - Yêu cầu hs tự nhập liệu với CT có sẵn - Giúp hs phát và sữa lỗi Hđ HS Ghi bảng - Chạy CT, nhập liệu, xm kết - Chỉnh sữa CT thông qua các thông báo lỗi - Thuật toán trên tiến hành đưa - Chú ý hiểu rõ thêm CT số lớn thứ j đến vị trí j sau vòng lặp: For i:= to j-1 Hoạt động 4: Xác định bài toán câu b TG Hđ GV Hđ HS Ghi bảng Xác định bài toán Xác định bài toán: Đề: Khai báo biến đếm - Y/cầu hs xác I/O bài toán? + I: mảng a; nguyên Dem và bổ sung +O: mảng a đã xếp, số lần vào chương trình (37) tráo đổi (Dem); câu lệnh cần thiết để biến - Biến Dem tăng lên TL: Khi A[i] > A[i+1] Dem tính số lần tráo đổi nào? (tức là biểu thức đk CL chương trình If đúng) - Cần đưa câu lệnh tăng Dem vào TL: Trong thân CL If: trước chỗ nào CT trên? sau lệnh tráo đổi - Câu lệnh khởi tạo Dem:= đặt vào vị trí nào CT? TL: Chọn hai + Trước CL đầu tiên: phương án 3, For j:= N down to + Trước CL duyệt: For i:= to j-1 + Trước CL tráo đổi + Sau CL tráo đổi - Sau CL cuối CT nên đưa CL nào vào để hiển thị giá trị biến Dem màn hình Hoạt động 5: Sữa CT câu a để giải bài toán câu b TG Hđ GV Hđ HS Ghi bảng - Yêu cầu hs sữa lại CT theo gợi - Thêm các CL đã hướng CT(Phụ lục) ý đã nêu dẫn vào CT - Hướng dẫn hs chỉnh sữa và - Chạy CT chạy CT - Đánh giá kết hs Hoạt động 6: Củng cố - Thuật toán xếp tráo đổi - Đếm số lần tráo đổi Hoạt động 7: Bài tập nhà - Tìm thêm các thuật toán xếp khác tối ưu - Cho mảng A và mảng B (là mảng A đã xếp) Hãy in số các phần tử mảng A theo mảng B (38) Ngày soạn: 02/12/07 Tiết thứ:… Bài: BÀI THỰC HÀNH SỐ I Mục tiêu Kiến thức Tiếp tục củng cố kiến thức lập trình với liệu kiểu mảng Kĩ Nhận xét, phân tích và đề xuất các cách giải bài toán cho chương trình chạy nhanh Thái độ Tự giác, chủ động lập trình II.Chuẩn bị Gv:Bảng phụ viết sẵn chương trình, phòng máy, project Hs: Sgk, CT đã viết sẵn III Phương pháp IV Tiến hành dạy học Hoạt động 1:(3') Ôn lại kiến thức chuẩn bị thực hành Hđ GV Hđ Hs Hỏi 1: cách khai báo kiểu mảng chiều Tl: có cách + gián tiếp: + trực tiếp: Hỏi 2: (tuỳ lớp) Hoạt động 2:(13') Nêu đề bài toán và tìm hiểu TG Hđ GV Hđ HS Ghi bảng 2' Ghi đề bài lên bảng Quan sát đề và lắng nghe Đề: Cho mảng A gồm n câu hỏi gv phần tử Viết CT tạo Tìm hiểu đề Trả lời câu hỏi mảng B[1 n] Y/cầu hs xác định liệu vào/ra - Vào: bài toán? - Ra: 3' Gv lấy ví dụ minh hoạ Theo dõi ví dụ minh hoạ A Tl: (2-3hs) B 5' Tl: B 10 Khai báo: (39) 12 15 22 6 3' + k/báo mảng + biến đơn Phần thân: B1: tạo mảng A B2: xd mảng B theo A B3: In mảng B Lần lượt cho hs trình Ban đầu: B[i] = bày Hỏi: B[i] tạo Tl: bao nhiêu? Tóm lại: B[i] = A[1] + …+ A[i] i  A[j ] j=1 = Tl: sử dụng vòng for lồng GV minh hoạ số phần tử: B[1], B[2], B[3] for i:=1 to n - Y/cầu hs tìm kết mảng B begin b[i]: =0; theo ví dụ trên for j:=1 to i Viết CT thô b[i]:=b[i]+a[j]; - Y/cầu hs cho biết phần end; CT cần xây dựng? Chú ý, lắng nghe, quan sát và ghi nhớ Gv tranh thủ ghi lại trên bảng H: Bước B2 cụ thể CT nào? Treo bảng CT chuẩn bị sẵn Giải thích phần CT tương ứng với phần trả lời ghi bảng hs Hoạt động 3: (5')Tối ưu chương trình TG Hđ GV Hđ HS Dựa vào phần phân tích ví dụ 5' thuật toán trên Ghi bảng (40) Gv hỏi: So sánh giá trị B[i] và B[i-1]? Tl: B[i]:=B[i-1]+A[i] Đặc biệt: B[1]=? Tl: B[1]=A[1] Chta luôn hướng tới thuật toán Chú ý theo dõi tối ưu Đối với bài toán này theo phân tích trên ta đã tận dụng kết việc tính tổng i -1 phần tử có sẵn bước trước - Do ta có được: + Số lượng phép toán '+' ít +Chỉ dùng vòng lặp for -> sd biến số i cho {tùy đối tượng hs} mảng A, B Cải tiến lại chtrình Nhìn bảng, tự điều chỉnh Gv treo bảng chtrình cải hành vi nhận thức Đoạn CT cải tiến: Sgk tiến Hoạt động 4: (20') Hs thực hành trên máy theo nhóm TG Hđ GV Hđ HS Ghi bảng Y/cầu hs nhập CT cải tiếnvào Hs nhập chtrình vào máy máy Tự biên dịch và chạy CT Theo dõi quá trình t/hiện với ví dụ trên hs Giải số lỗi nhỏ nhóm Tự lấy Input để chạy lại CT Hoạt động 5: (3') Củng cố, uốn nắn sai sót thường gặp Hs Hoạt động 6: (1') Dặn dò: Xem, chuẩn bị trước bài 12: Kiểu xâu Ngày soạn: 06/12/07 Tiết thứ:… Bài 12: KIỂU XÂU I.Mục tiêu Về kiến thức - Biết kiểu dự liệu mới, biết khái niệm kiểu xâu - Phân biệt giống và khác kiểu mảng với kiểu xâu - Biết cách khai báo biến, nhập/xuất liệu, tham chiếu dến kí tự xâu - Biết các phép toán liên quan đến xâu Về kĩ - Khai báo biến kiểu xâu ngôn ngữ lập trình Pascal - Sử dụng biến xâu và các phép toán trên xâu để giải bài toán đơn giản II Chuẩn bị GV và HS GV: Máy vi tính, Máy chiếu để giới thiệu ví dụ HSSGK III Phương pháp Thuyết trình, vấn đáp IV Tiến trình bài học HĐ1: Kiểm tra bài cũ và khởi động bài (41) T/g 10' HĐ GV Ghi câu hỏi lên bảng Phát vấn HS chỗ Y/c HS khác nhận xét Chính xác hóa nội dung 'Viet Nam' là liệu kiểu mảng Tuy nhiên nó là kiểu liệu mà tiết này ta học: KIỂU XÂU HĐ2: Tìm hiểu liệu kiểu xâu T/g HĐ GV 14' Xâu là gì? Y/c HS khác nhận xét Chính xác hóa nội dung Y/c HS cho VD Xâu có bao nhiêu kí tự? Dấu cách là ký tự Y/c HS viết xâu có ký tự trống, xâu rỗng, nêu số lượng ký tự xâu Giới thiệu cách tham chiếu phần tử HĐ HS Suy nghĩ, trả lời Nhận xét Ghi nhớ kiến thức HĐ HS Trả lời Nhận xét Hình thành khái niệm Xâu Cho VD Trả lời Ghi bảng Câu hỏi: Định nghĩa mảng chiều và cách khai báo 'Viet Nam' có phải là liệu kiểu mảng chiều không, Vì sao? Ghi bảng Bài 12: KIỂU XÂU Khái niệm (SGK) Ttự kiểu mảng HĐ3: Khai báo liệu kiểu xâu và các thao tác xử lí xâu T/g HĐ GV HĐ HS Ghi bảng - Hỏi: Ý nghĩa từ Trả lời Khai báo (SGK) 15' String? Độ dài lớn xâu là bao nhiêu Trả lời Các thao tác xử lí xâu - Hãy nhắc lại các phép toán Var st:string; đã học trên kiểu liệu Quan sát chương trình để Begin chuẩn dự tính kết qủa St:='A' + 'B'; - Chiếu chương trình VD Write(st); - Hỏi: Kết chương Readln; trình in màn hình? End Thực chương trình cho HS thấy kết - Y/c HS tìm số VD VD: khác 'AB'<'ABC' - Hỏi: Chức phép 'AC'<'ABC' cộng Lưu ý: - Chiếu chương trình VD Một xâu có độ dài nhỏ có phép so sánh và y/c HS cho thể lớn (>) và ngược lại biết kết c) Th Lưu ý cho HS HĐ4: Củng cố(5'): (42) Nhắc lại nội dung đã học: - Khai báo biến - Nhập xuất gá trị cho biến xâu - Tham chiếu kí tự xâu - Phép ghép xâu - Các phép so sánh HĐ5: Dặn dò (1') - Về nhà xem phần kiến thức lý thuết còn lại bài, bao gồm các thủ tục và hàm liên quan đến xâu, sách giáo khoa trang 70 - 72 Ngày soạn: 28/11/07 Tiết thứ:… Bài 12: KIỂU XÂU(TT) I: Mục tiêu: Kiến thức: o Hiểu lợi ích các hàm và thủ tục liên quan đến xâu tring ngôn ngữ lập trình Pascal o Nắm cấu trúc ching và chức số hàm liên quan đến xâu Kỹ năng: o Bước đầu sử dụng số hàm, thủ tục thông dụng xâu o Có thể cài đặt số chương trình đơn giản có sử dụng xâu II Chuẩn bị GV và HS: - GV: Giáo án, SGK, sách GV, bảng phụ soạn các ví dụ - HS: Sách GK III Phương pháp: - Đặt vấn đề - Thuyết trình, vấn đáp - Diễn giải, dùng bảng để ghi lại các chi tiết quan trọng ví dụ IV Tiến trình bài học  Hoạt động 1: - Tổ chúc lớp: Ổn định và kiểm tra sĩ số Các bước tiến hành: Hoạt động thầy Hoạt động trò Nội dung iểm tra kiến thức cũ - Gọi HS : - HS trả lời câu hỏi Câu 1: Xâu là gì? Cách khai báo biến xâu -GV nhận xét cho điểm * Giới thiệu bài ĐVĐ: Chúng ta đã biết xâu là gì? Và số các phép toán trên xâu Bây chung ta học số thủ tục chuẩn dùng để xử lí xâu Các thao tác sử lí xâu: Một số thủ tục chuẩn dùng để sử lí xâu - Delete(St,vt,n) Xoá n kí tự xâu st vị trí vt - Insert(S1,S2,vt) Chèn xâu S1 (43) Hoạt động thầy Hoạt động trò -Ứng với thủ tục và hàm giáo Chú ý quan sát trên viên đưa ví dụ minh hoạ bảng theo sgk - - - Xâu gồm kí tự trống viết nào? số lượng kí tự là bao nhiêu? - Tham số các hàm và thủ tục chuẩn phải hợp lí, chẳng hạng không thể dùng Insert( S1, S2, 12) length(S2)<12 Nội dung vào xâu S2 vị trí vt S2 Val(St,x,m) Đổi giá trị xâu St thành số ghi giá trị vào biến X, nến không đổi thì vị trí gây lỗi ghi m, đổi thành công thì m = Str(X,St) Chuyển số X thành xâu kí tự lưu St Một số hàm chuẩn: HS trả lời - Copy(St, vt, n) Sao chép từ xâu - Kí hiệu cảu xâu gồm St n kí tự từ vị trí vt kí tự trống là ‘ ‘ xâu này - Pos(S1, S2) Tìm vị trí xuất có độ dài là đầu tiên S1 S2 - Length(st) Cho độ dài xâu St - Upcase(ch) Cho chữ cái viết hoa tưng ứng với chữ thường ch Hoạt động 2: Rèn luyện kĩ vận dụng hàm và thủ tục ĐVĐ: Bấy chúng ta sâu Quan sát trên bảng các chức các hàm và thủ tục xâu - Ý nghiã hàm Length(b)? TL: Cho số lượng kí tự có sâu b Bảng phụ chứa ví dụ Ues crt; Var a, b: string; Begin Clrscr; Write(‘ nhap ho ten thu nhat: ‘); Realn (a); Write(‘ nhap ho ten thu hai: ‘); Realn (b); If length(a)>length(b) then Write(a) else writer(b); Realn End Bảng phụ chứa ví dụ Quan sát trên bảng Bảng phụ chứa ví dụ Em nào có thể giải thích câu lệnh TL: Sử dụng vòng lặp (44) Hoạt động thầy For i:=k downto write([i]); Qua các ví dụ trên ta thấy điêù gì? Hoạt động trò Nội dung For giá trị cuối downto giá trị đầu để sau đó in các kí tự chuỗi theo chiều ngược lại TL: cho thấy hàm length() có thể tham chiếu đến kí tự cử xâu thông qua vị trí nó Bảng phụ chứa ví dụ Em có nhận xét gì xâu b TL: Xâu b tạo tạo thành thành từ xâu rỗng qua phép ghép xâu Bảng phụ chứa ví dụ Tương tự các em xem ví dụ Quan sát trên bảng Hoạt động 3: Củng cố: Nhắc lại số hàm và thủ tục liên quan đến xâu Nhắc lại cấu trúc câu lệnh Bài tập nhà: Giải bài tạp số 10 trang 80 (45) Ngày soạn: 28/11/07 Tiết thứ:… Bài: Tên bài học: BÀI THỰC HÀNH SỐ 5(2 tiết) VI- Mục tiêu: 1- Kiến thức:  Củng cố cho học sinh kiến thức xâu ký tự, đặc biệt là các hàm và thủ tục liên quan  Nắm số thuật toán : tạo xâu mới, đếm số lần xuất ký tự… 2- Kỹ năng:  Khai báo biến kiểu xâu  Nhập, xuất giá trị cho biến xâu  Duyệt qua tất các ký tự xâu  Sử dụng các hàm và thủ tục chuẩn 3- Thái độ: Tự giác, tích cực, chủ động thực hành VII- Chuẩn bị giáo viên và học sinh:  GV: - Phòng máy vi tính đã cài đầy đủ Turbo Pascal - Tổ chức phòng máy để HS có kỹ làm việc với kiểu xâu  HS: SGK, bài tập chuẩn bị sẵn nhà VIII- Phương pháp dạy học: Gợi mở, vấn đáp kết hợp hoạt động nhóm IX- Tiến trình bài dạy: Hoạt động 1: Tìm hiểu chương trình, đề xuất phương án cải tiến TG Hoạt động HS Hoạt động GV Ghi bảng BÀI THỰC HÀNH SỐ 5’ TG HĐTP1: Tìm hiểu đề bài: Quan sát, đọc kỹ - Giới thiệu nội dung đề bài lên bảng đề - GV diễn giải: Một xâu gọi là Bài 1: SGK trang 73 Palidrom ta đọc các ký tự từ phải sang trái giống đọc từ trái sang phải - Yêu cầu HS cho ví dụ xâu Palidrom và ví dụ không phải là xâu -HS trả lời: Palidrom * Là xâu Palidrom: * Gọi HS trả lời 45654; abccba * Gọi HS khác nhận xét * Không là xâu * GV chính xác Palidrom: abcdba - HS nhận xét Hoạt động HS Hoạt động GV Ghi bảng (46) 15’ 25’ HĐTP2: Tìm hiểu chương trình - Quan sát chương trình, gợi ý suy nghĩ, phân tích để hiểu - GV thực chương trình gợi ý chương trình trên máy chủ để HS quan sát - HS trả lời: * Kiểm tra xâu có phải Palidrom hay không? *In ra: ‘ xau la Palidrom’ * Chức chương trình là gì? ‘xau khong la Palidrom’ - HS nhận xét - Quan sát GV thực *Kết in màn hình chương trình, nhập liệu nào? và kết chương trình - Gọi HS trả lời - Gọi HS khác nhận xét - GV chính xác - Chạy chương trình trên máy chủ để HS kiểm nghiệm suy luận mình - Chú ý theo dõi yêu cầu GV và trả lời số câu hỏi dẫn dắt: * Các ký tự vị trí này giống *Ký tự thứ i đối xứng với ký tự thứ length( ) – i +1 * So sánh tối đa length( ) div HĐTP3: Cải tiến chương trình - GV nêu yêu cầu : Viết lại chương trình mà không sử dụng biến trung gian p * Có thể dùng For While -Thực soạn thảo chương trình vào máy theo yêu cầu cải tiến GV - Nhập liệu vào và thông báo kết * Cần phải so sánh bao nhiêu cặp ký tự xâu để biết xâu đó là Palidrom? * Dùng cấu trúc lặp nào để so sánh ? - Gọi HS trả lời - GV chính xác - Yêu cầu HS chi tiết hoá các câu lệnh để có chương trình chạy đúng - Yêu cầu HS nhập liệu cho sẵn GV và thông báo kết -Xác nhận bài làm có kết đúng và sửa sai cho HS có kết sai * Nhận xét các cặp vị trí đối xứng xâu Palidrom? * Ký tự thứ i đối xứng với ký tự vị trí nào? (47) Hoạt động 2: Rèn luyện kỹ lập trình TG Hoạt động HS Hoạt động GV Ghi bảng - Quan sát đề và xác định HĐTP1: GV giới thiệu đề bài Bài 2: SGK trang 73 công việc cần thực - GV nêu mục đích bài toán - Chia lớp thành nhóm: * Nhóm 1: Đặt các câu hỏi phân - Nhóm 1: tích * Dữ liệu vào, liệu * Nhóm 2: Trả lời các câu hỏi phân bài toán? tích 10’ * Nêu các nhiệm vụ chính cần thực giải bài toán * Cấu trúc liệu phải sử dụng nào? * Ta phải sử dụng hàm nào? - Nhóm 2: * Vào: Một xâu S * Ra: Dãy các số ứng với - Theo dõi câu hỏi phân tích xuất loại nhóm và câu trả lời nhóm ký tự xâu - Bổ sung và sửa sai cho nhóm và * Nhiệm vụ: Duyệt từ trái nhóm sang phải, thêm đơn vị cho ký tự đọc * Cấu trúc liệu: Dem[‘A’ ’Z’] HĐTP2: * Dùng hàm Upcase - GV đưa dàn ý chi tiết thông qua bảng phụ và yêu cầu HS chi tiết hoá Thực soạn thảo các câu lệnh để có chương chương trình vào máy trình chạy đúng theo yêu cầu GV - Yêu cầu HS nhập liệu cho sẵn GV và thông báo kết 20’ -Xác nhận bài làm có kết - Nhập liệu vào và đúng và sửa sai cho HS có kết sai thông báo kết cho GV Hoạt động 3: Rèn luyện kỹ tìm kiếm và thay xuất từ từ khác xâu văn TG Hoạt động HS Hoạt động GV Ghi bảng - GV giới thiệu đề bài Bài 3: SGK trang 73 - GV hướng dẫn: Tìm vị trí xâu (48) 12’ - HS trả lời - HS nhận xét -HS nhà chuẩn bị X- “anh” xâu st đã cho, xoá xâu này chèn xâu “em” vào vị trí đó Lặp lặp lại điều này không tìm thấy xâu “anh” cần thay xâu st * Các hàm và thủ tục chuẩn đã biết kiểu xâu có thể tìm vị trí xuất xâu con, xoá xâu con, chèn xâu không? - Gọi HS trả lời - Gọi HS khác nhận xét - GV chính xác - GV cùng HS thống dàn ý chương trình và yêu cầu HS nhà chi tiết hoá các câu lệnh để có chương trình chạy đúng Củng cố và dặn dò (3’):  Nắm số thuật toán đơn giản liên quan đến xâu ký tự :  Kiểm tra xâu đối xứng  Tìm tần suất xuất các ký tự có xâu  Đọc trước nội dung bài kiểu ghi – SGK trang 74 Ngày soạn: 12/12/2007 KIỂM TRA TIẾT - HKI I Mục tiêu đánh giá: - Kiểm tra, đánh giá khả tiếp thu kiến thức, kĩ học sinh về: Các thành phần sở ngôn ngữ Pascal, phép toán, biểu thức, câu lệnh gán, tổ chức vào/ra đơn giản, tổ chức rẽ nhánh và lặp, kiểu liệu có cấu trúc đơn giản - Đánh giá khả tổ chức chương trình Pascal với các cấu trúc II Ma trận đề: III Đề kiểm tra: Nội dung Chương I Chương II Chương III Chương IV ĐỀ KIỂM Mức độ TRA HKI Nhận biết TN Câu 1, 12 Câu 2, Câu 7, 11 MÔN: TIN HỌC TL 11  -Thông hiểu TN Câu Câu 4, Câu TL Câu Thời gian: 45 Vận dụng TN Câu 10 Câu phút (không kể TL Câu thời gian giao đề) I Phần trắc nghiệm khách quan: (49) (Nhận biết) Chương trình dịch là: A Chương trình dịch ngôn ngữ tự nhiên ngôn ngữ máy B Chương trình dịch ngôn ngữ máy ngôn ngữ tự nhiên C Chương trình có chức chuyển đổi chương trình viết ngôn ngữ lập trình bậc cao thành chương trình thực trên máy tính cụ thể D Chương trình có chức chuyển đổi chương trình viết ngôn ngữ máy thành ngôn ngữ bậc cao (Nhận biết) Trong ngôn ngữ Pascal, từ khoá VAR dùng để: A Khai báo tên chương trình B Khai báo biến C Khai báo thư viện D Khai báo (Thông hiểu) Trong ngôn ngữ lập trình Pascal, với câu lệnh sau (a là biến kiểu số thực) a:=12; Writeln(‘KQ la:’ , a); ghi màn hình: A KQ la 1.2E+01 C KQ la a B KQ la 12 D Không đưa gì (Thông hiểu) Trong ngôn ngữ lập trình Pascal, câu lệnh nào sau đây đúng: A If a=5 then C If a=5 then a:=d+1; a=d+1 else a:=d+2; else a=d+2; B If a=5 then D If a=5 then a:=d+1 a:=d+1 else a:=d+2; else a:=d+2 (Vận dụng) Trong ngôn ngữ lập trình Pascal, đoạn chương trình sau cho kết gì? T:=0; For i:=1 to n if (i mod = 0) then T:=T + i*i; A Tính tổng các số nguyên có phạm vi từ đến n B Tính tổng các số nguyên có phạm vi từ đến n C Tính tổng bình phương các số nguyên chia hết cho có phạm vi từ đến n D Tính tổng các số nguyên có phạm vi từ đến n (Nhận biết) Trong ngôn ngữ lập trình Pascal, kiểu liệu nào các kiểu sau có miền giá trị lớn nhất? A Byte B Word C Integer D Longint (Nhận biết) Trong ngôn ngữ lập trình Pascal, Với khai báo mảng X: Array[1 100,1 100] of integer; thì việc truy xuất đến các phần tử sau: A X[i],[j] B X[i][j] C X[i;j] D X[i,j] (Thông hiểu) Trong ngôn ngữ lập trình Pascal, đoạn chương trình sau đưa màn hình kết gì? For i:=10 to write(i, ‘ ‘); A 10 B 10 C Đưa 10 dấu cách D Không đưa gì (Thông hiểu) Trong ngôn ngữ lập trình Pascal, để in xâu kí tự màn hình theo thứ tự ngược lại các kí tự xâu (Vd: abcd thành dcba), đoạn chương trình nào sau đây thực việc này? (50) A For i:=1 to length(S) write(S[i]); B For i:=length(S) downto write(S[i]); C For i:=length(S) downto write(S]); D For i:=1 to length(S) div write(S[i]); 10 (Vận dụng) Dưới đây là phần chương trình Pascal: Prorgam vd; Var a,b,c,d: integer; Begin Readln(a,b,c,d); ……… Writeln(5*(a+b)/2:c+1:5, 10*(a-b)/2:c+d:5); ……… End Giả sử nhập liệu sau: Sau chạy chương trình ta thu kết gì? A 20 B 20 -10 C -2 D -2 -10 11 (Nhận biết) Trong ngôn ngữ lập trình Pascal, khai báo nào các khai báo sau là sai khai báo xâu kí tự? A S: string B X1: string[100] C S: string[256] D X1: string[1] 12 (Nhận biết) Xác định tên biến đúng: A 1hoten B Ho ten C 123456 D Ho_ten II Phần tự luận: (Thông hiểu) Cho chương trình sau: Program vidu; Var a,S,P: integer; Write(‘Do dai canh a:’); Readln(a); S:=a*a; P:=4*a; Writeln(‘S=’, S:4); Writeln(‘P=’, P:4); a Tìm và sửa lỗi cú pháp chương trình trên b Cho biết chương trình trên thực công việc gì? (Vận dụng) Viết chương trình tìm giá trị lớn dãy số nguyên IV Đáp án - Biểu điểm: - Phần trắc nghiệm: câu trả lời đúng: 0,5điểm 1C 2B 3A 4B 5C 6D 7D 8D - Phần tự luận + Câu 1a: điểm 1b: điểm + Câu 2: điểm 9B 10B 11C 12D (51) Ngày soạn giáo án: 20/22/07 Tiết thứ:………… Bài 13: KIỂU BẢN GHI I)MỤC TIÊU: Về kiến thức: - Biết khái niệm ghi - Biết các khai báo ghi, gán giá trị, truy cập trường ghi Về kỹ năng: - Khai báo kiểu ghi, khai báo biến kiểu ghi - Nhận biết trường (thuộc tính) biến ghi Về tư và thái độ: - Biết quy lạ quen - Phát triển tư logic từ mảng chiều và kiểu xâu - Tích cực học tập, lắng nghe bài giảng - Cẩn thận, chính xác lập luận II)CHUẨN BỊ: Giáo viên: Giáo án, đồ dùng dạy học, bảng phụ Học sinh:Sách giáo khoa, sách bài tập, bài cũ, bài III)PHƯƠNG PHÁP: Gợi mở vấn đáp, thuyết trình diễn giải IV)TIẾN TRÌNH BÀI HỌC: 1.Hoạt động1: Kiểm tra bài cũ: TG 10’ Hoạt động học sinh -Gọi HS1 thực Hoạt động giáo viên H1: Nêu cách khai báo mảng chiều? Cho ví dụ? H2: Nêu cách khai báo kiểu xâu? Cho ví dụ? - Gọi HS2 thực -Các HS khác nhận xét, -Chính xác hoá nội dung, cho bổ sung? điểm 2.Hoạt động2: Giới thiệu bài TG Hoạt động học sinh Hoạt động giáo viên H1: Cho học sinh quan sát bảng kết điểm thi trang 74 -Học sinh thực SGK - Cho học sinh kết luận thông tin đó, từ đó kết luận 7’ kiểu liệu H2: Chỉnh sửa, giới thiệu trường, đối tượng, thuộc tính đối tượng, từ đó vào nội dung bài 3.Hoạt động3: Khai báo kiểu ghi TG Hoạt động học sinh Hoạt động giáo viên Ghi bảng Ghi bảng Ghi bảng (52) -HS thực H1: Yêu cầu học sinh xem 1)Khai báo: SGK và nêu cách khai báo SGK trang 75 kiểu ghi, kiểu biến ghi -Chính xác hoá nội dung -HS thực và trình H2:Yêu cầu học sinh khai báo *Ví dụ: bày lời giải kiểu ghi, kiểu biến Nội dung ví dụ đã chỉnh ghi cho bảng kết thi trang sửa 74 SGK -Các HS còn lại nhận xét bổ sung -Gv chính xác hoá nội dung ví dụ *Lưu ý: Nếu A là biến kiểu ghi, X là tên trường, để tham chiếu đến trường X ta viết: A.X 4.Hoạt động4: Gán giá trị TG Hoạt động học sinh Hoạt động giáo viên Ghi bảng H1: Yêu cầu học sinh xem 2)Gán giá trị: -HS xem sách và trả lời sách và trả lời có bao nhiêu - Có cách gán SGK trang cách gán giá trị cho biến 76 ghi? 5’ -Chính xác hoá nội dung 15’ H2: Cho ví dụ cho cách -HS thực gán? -Gv chỉnh sửa nội dung 5.Hoạt động5: Củng cố dặn dò TG Hoạt động học sinh Hoạt động giáo viên H1: Yêu cầu HS khai báo kiểu -HS thực và trình ghi với các nội dung bày lời giải bảng phụ? -Các HS còn lại nhận xét , -Gv chính xác hoá nội dung 8’ bổ sung H2: Dặn dò: Học bài cũ, làm bài tập 1- 10 trang 79-80 *Ví dụ: -Nội dung đã chỉnh sửa Ghi bảng Bảng phụ Họ tên Ngày sinh Giới tính Chiều cao Cân nặng (53) Ngày 26/12/07 Tiết thứ:……Bài: BÀI TẬP CHƯƠNG IV I Mục tiêu: Về kiến thức: Củng cố các kiến thức về: - Các quy tắc kiểu liệu có cấu trúc để thực liệu thực tế - Kiểu liệu có cấu trúc xây dựng từ kiểu liệu sở theo số cách thức tạo kiểu ngôn ngữ lập trình Pascal quy định - Mỗi kiểu liệu có cấu trúc thường hữu ích việc giải số bài tập - Trong ngôn ngữ Pascal dùng mô tả kiểu liệu với từ khoá Type Về kĩ năng: - Rèn luyện kĩ khai báo kiểu liệu có cấu trúc (với Pascal, sử dụng thành thạo các từ khoá Var, Type) - Sử dụng thành thạo các thao tác vào/ và các phép toán trên các thành phần sở Về tư và thái độ: - Thái độ học tập tích cực, ham thích lập trình - Tiếp tục hình thành và xây dựng phẩm chất cần thiết người lập trình II Chuẩn bị: - GV: Computer, Projecter - HS: Chuẩn bị bài tập nhà III Phương pháp: - Nêu vấn đề, Dẫn dắt, gợi ý IV Tiến trình hoạt động: Tiết 1: + Hoạt động 1: Giải bài tập số trang 79 Sách GK Tin học lớp 11 T/g 15 Hoạt động GV Hoạt động HS Ghi bảng HĐTP1: H1: Sử dụng kiểu liệu nào và - Trả lời: cách khai báo? Kiểu mảng chiều: Var A:array [1 100] of integer; H2: Khai báo biến nào? - Yêu cầu HS viết chương trình nhập mảng A - Chỉnh sửa bài làm HS - Trình bày lên bảng: Chính xác hoá bài 6/tr79 (54) T/g Hoạt động GV H3: Số chẵn là số nào? Hoạt động HS Ghi bảng TL: Chia hết cho - Nếu có số lượng số chẵn dãy thì tìm số lượng số lẻ hay không? - Nếu thì tìm cách - Nếu có số lượng số chẵn nào? dãy thì tìm số lượng H4: Sử dụng câu lệnh nào để viết? lẻ cách: n - số lượng - Yêu cầu HS hoàn thành chương số chẵn trình câu a TL: If then 15 - Nhận xét, chỉnh sửa bài làm HS HĐTP 2: - Trình bày lên bảng: H1: Nêu thuật toán kiểm tra số có phải là số nguyên tố hay không? - Yêu cầu HS viết chương trình dựa theo thuật toán Hd: Sử dụng câu lệnh nào? - Yêu cầu HS hoàn thành đoạn chương trình câu b - Nhận xét, đánh giá: - Trả lời câu hỏi: - Trình bày lên bảng: - Gợi ý để HS kết hợp hai đoạn chương trình thành chương trình hoàn chỉnh cho bài + Hoạt động 2: Giải bài tập trang 79 Sách GK Tin học lớp 11 T/g Hoạt động GV Hoạt động HS Ghi bảng - Yêu cầu HS liệt kê số hạng đầu - Liệt kê: 0, 1, 1, 2, 3, 13 dãy Fiponaci H1: Đoạn chương trình nhập từ bàn - Viết chương trình lên Chính xác hoá phím số nguyện dương nào? bảng: 6/trang79 H2: Số hạng tổng quát thứ n nào? TL: Fn = Fn-1 + Fn-2 - Gợi ý: Để viết chương trình này ta cần bao nhiêu biến phụ? TL: Dùng biến phụ (F1, H3: sử dụng câu lệnh nào bài F2) này? - Suy nghĩ, trả lờ: - Yêu cầu HS viết chương trình tìm số hạng thứ n - Lên bảng trình bày: - Gọi HS hoàn chỉnh lại chương trình - Nhận xét, chỉnh sửa, đánh giá bài bài (55) làm + Hoạt động 3: Củng cố (2ph) Cấu trúc lệnh: While và For V Dặn dò: - Về nhà làm các bài tập (56) Ngày 05/01/08 Tiết thứ:……Bài: §14 kiÓu d÷ liÖu tÖp §15 thao t¸c víi tÖp I - Môc tiªu KiÕn thøc  Hs nắm đặc điểm kiểu liệu tệp  BiÕt hai c¸ch ph©n lo¹i tÖp, khái niệm tệp có cấu trúc và tệp văn  Hai thao tác tệp  Biết các bớc làm việc với tệp:gắn tên cho biến tệp, mở tệp, đọc/ghi tệp, đóng tệp  BiÕt khai b¸o biÕn tÖp vµ c¸c thao t¸c c¬ b¶n víi tÖp v¨n b¶n  BiÕt sö dông mét sè hµm vµ thñ tôc chuÈn lµm viÖc víi tÖp Kĩ năng: -Khai báo đúng tệp văn -Sử dụng số hàm và thủ tục chuẩn làm việc với tệp Thái độ  Hs thấy cần thiết và tiện lợi kiểu liệu tệp II - §å dïng d¹y häc Chuẩn bị giáo viên: sách giáo khoa Chuẩn bị học sinh: sách giáo khoa III - Hoạt động dạy - học Néi dung ghi b¶ng Hoạt động giáo viên Hoạt động học sinh Hoạt động Đặt vấn đề(3’) §14 kiÓu d÷ liÖu tÖp Sau chạy chương trình các bài trước ta thấy kết in trên màn hình muốn sử dụng kết đó sau thì không Do đó ta có kiểu liệu tệp Hoạt động Đặc điểm kiểu Vai trò kiểu tệp liệu tệp.(7’) Trả lời: Dữ liệu kiểu tệp có đặc Hỏi: Các kiểu liệu trước RAM điểm sau: + Được lưu trữ lâu dài lưu trữ nhớ nào? nhớ ngoài (đĩa từ, CD, ) và Khi tắt máy điện thì Dữ liệu không bị tắt nguồn điện liệu lưu trữ nhớ này vào máy nào? + Lượng thông tin lưu trữ trên tệp Để lưu giữ liệu lâu dài nhằm có thể lớn và phụ thuộc vào khai thác, xử lí thông tin đó ta phải dung lượng đĩa lưu nó nhớ ngoài thông qua Không liệu tắt kiểu liệu tệp máy Yêu cầu học sinh đọc sách giáo Dung lượng liệu khoa và nhắc lại đặc điểm kiểu lưu trữ lớn liệu tệp? Có loại tệp:tệp có cấu Hoạt động 3.Phân loại tệp và thao trúc và tệp văn tác với tệp(4’) tệp văn là tệp mà Phân loại tệp và thao tác với Có loại tệp( theo cách tổ chức liệu ghi dạng tệp liệu), trình bày khái niệm các các kí tự theo mã ASCII Hai cách phân loại tệp: loại tệp? tệp có cấu trúc: là tệp mà Theo cách tổ chức liệu Giới thiệu cho HS biết hai cách các thành phần nó -tệp văn phân loại tệp tổ chức theo cấu (57) Néi dung ghi b¶ng -tệp có cấu trúc Theo cách thức truy cập -tệp truy cập -tệp truy cập trực tiếp Hai thao tác tệp là ghi liệu vào tệp và đọc liệu từ tệp §15 thao t¸c víi tÖp 1.Khai báo tệp văn : VAR <Tên biến tệp>: TEXT; Vd Var f : text; Hoạt động giáo viên Có hai thao tác làm việc với tệp là ghi liệu vào tệp và đọc liệu từ tệp Hoạt động Thao tác với tệp(5’) Yêu cầu HS nhắc lại các thao tác làm việc với tệp Giới thiệu cấu trúc chung khai báo biến tệp và giải thích Khai báo - Với tệp văn là : VAR <Tên biến tệp> : TEXT; Ví dụ: yêu c ầu học sinh khai báo t ệp Hoạt động học sinh trúc định Hai thao tác tệp là ghi liệu vào tệp và đọc liệu từ tệp Var a:text; Thao tác với tệp Các thao tác với tệp chia thành bốn nhóm : Gán tên tệp; Mở tệp; 2.Gán tên tệp : Vào/Ra liệu; ASSIGN(< Tên biến tệp>, <Tên tệp>); Đóng tệp Hoạt động 4.1 Gán tên tệp(4’) Để thao tác với tệp, trước hết phải gán tên tệp cho biến tệp câu lệnh : Vd1 ASSIGN(< Tên biến tệp>,<Tên MYFILE := 'DULIEU.DAT'; ASSIGN(F2,MYFILE); tệp>); Trong đó Tên tệp là biến xâu ASSIGN(F2,'DULIEU.DAT'); xâu Vd2 Ví dụ Giả thiết có biến xâu MYFILE := 'C:\INP.DAT'; MYFILE và cần gán biến tệp F2 ASSIGN(F3,MYFILE); 3.Mở tệp : với tệp có tên DULIEU.DAT Để đọc : RESET(<Tên biến tệp>); Việc gán tên tệp thực Để ghi : REWRITE(<Tên biến tệp>); các câu lệnh ? Ví dụ Để chuẩn bị thao tác với Ví dụ tệp có tên là INP.DAT trên thư TF := 'C:\KQ.DAT'; ASSIGN(F3,TF); mục gốc đĩa C: ta dùng các câu REWRITE(F3); lệnh sau để gắn nó với tệp F3? Hoạt động 4.2 Mở tệp(10’) Ví dụ Tệp có thể dùng để chứa kết Để đọc liệu từ tệp DL.INP liệu vào Trước ta có thể mở tệp : mở tệp, biến tệp phải gán tên ASSIGN(F1, 'DL.INP'); tệp thủ tục ASSIGN RESET(F1); Câu lệnh mở tệp để ghi kết có dạng : 4.Đọc/ghi tệp : REWRITE(<Tên biến tệp>); Đọc : Assign(f1, ‘b1.inp’); Rewrite(f1); Assign(f1, ‘b1.out’); Reset(f1); (58) Néi dung ghi b¶ng READ(<Tên biến tệp>,<danh sách biến>); Ghi : WRITE(<Tên biến tệp>, <danh sách kêt quả>); Ví dụ Lệnh ghi giá trị biến A vào tệp gắn với biến tệp F3 : WRITE(F3,A); Ví dụ Lệnh đọc giá trị từ tệp gắn với biến tệp F1 và gán cho biến C : READ(F1,C); Đóng tệp Sau làm việc xong phải đóng tệp câu lệnh : CLOSE(<Tên biến tệp>); Ví dụ: CLOSE(F1); CLOSE(F3); Một số hàm và thủ tục chuẩn thường dùng thao tác tệp Hàm lô gíc EOF(<Tên biến tệp>); Cho giá trị True trỏ tệp tới cuối tệp Hàm lôgíc EOFLN(<Tên biến tệp>) Cho giá trị True trỏ tệp tới cuối dßng Hoạt động giáo viên Khi thực lệnh REWRITE(F3), trên thư mục gốc C:\ chưa có tệp KQ.DAT, thì tệp tạo với nội dung rỗng Nếu tệp này đã có, thì nội dung nó bị xoá để chuẩn bị ghi thông tin Để chuẩn bị đọc liệu từ tệp đã có ta mở tệp câu lệnh : RESET(<Tên biến tệp>); Hoạt động 4.3 Đọc/ghi tệp (6’) Tệp định kiểu mở thủ tục REWRITE có thể ghi liệu thủ tục WRITE Câu lệnh ghi có dạng :WRITE(<Tên biến tệp>,<Tên Biến >); Nếu tệp mở thủ tục RESET thì có thể đọc thông tin Câu lệnh đọc có dạng: READ(<Tên biến tệp>,<Tên biến >); Yêu cầu học sinh cho ví dụ và giải thích Hoạt động 4.4 Đóng tệp (3’) Sau làm việc xong với tệp cần phải đóng tệp Việc đóng tệp là đặc biệt quan trọng sau ghi thông tin vào tệp Câu lệnh đóng tệp có dạng : CLOSE(<Tên biến tệp>); Một tệp, sau đóng có thể mở lại Khi mở lại tệp, dùng biến tệp cũ thì không cần thiết phải dùng thủ tục ASSIGN gán lại tên tệp Hoạt động 4.5 Một số hàm và thủ tục chuẩn thường dùng thao tác tệp(2’) Giới thiệu HS biết hai hàm chuẩn và ý nghĩa nó Hoạt động học sinh Readln(f,x1,x2); Đọc liệu từ biến tệp f,đặt giá trị vào hai biÕn x1 vµ x2 Writeln(f, ‘hieu la’,x1x2); Ghi vµo biÕn tÖp f hai tham sè lµ dßng ch÷ ‘hieu la’ vµ gi¸ trÞ x1-x2 Học sinh ghi bài Close(f1); Eof(f1); IV - Cñng cè(2’) Nêu đặc điểm kiểu liệu tệp Hãy cho biết khác biệt tệp định kiểu và tệp văn Cho biết các thao tác làm việc với tệp Sơ đồ làm việc với tệp dùng để nhập thông tin phải có lệnh nào? (59) Các thao tác với tệp mô tả hình16 Ghi tệp:Gán tên tệp,tạo tệp mới, ghi thông tin, đóng tệp Đọc tệp: Gán tên tệp,mở tệp, đọc thông tin, đóng tệp ASSIGN(<Tªn biÕn tÖp>,<Tªn tÖp>); Ghi §äc REWRITE(<Tªn biÕn tÖp>); WRITE(<Tªn biÕn tÖp>,<ds ket qua>); RESET(<Tªn biÕn tÖp>); READ(<Tªn biÕn tÖp >,<ds bien>); CLOSE(<Tªn biÕn>); tÖp>); Hình 16 Sơ đồ làm việc với tệp (60) Ngày 16/10/08 Tiết thứ:… Bài 16: VÍ DỤ LÀM VIỆC VỚI TỆP I: Mục tiêu: Kiến thức: - Củng cố lại kiến thức đã học tệp bài 14, 15 chương V thông qua ví dụ Kỹ năng: - Nhận biết các cách hoạt động tệp - Biết sử dụng các thủ tục và hàm liên quan để giải bài toán - Nắm chức các thủ tục và hàm để thao tác với tệp II Chuẩn bị GV và HS: - GV: Giáo án, SGK, sách GV, máy chiếu, sách bài tập, máy tính có soạn sẵn các ví dụ - HS: Sách GK III Phương pháp: - Đặt vấn đề - Thuyết trình - Diễn giải, dùng bảng để ghi lại các chi tiết quan trọng ví dụ IV Tiến trình bài học * Hoạt động 1: Kiểm tra bài cũ và giới thiệu bài (7’) - Mục tiêu: + Ôn lại kiến thức đã học bài 14, 15 + Vận dụng để giải vấn đề cụ thể thực tế - Các bước tiến hành: Hoạt động thầy Hoạt động trò Nhắc lại kiến thức cũ - Gọi HS nhắc lại các hàm và thủ tục - HS đứng dậy và trả lời câu liên quan đến tệp hỏi Var <tên biến tệp>:text; Assign(<biến tệp>,<tên tệp>); Rewrite(<biến tệp>); - Gọi HS khác nhận xét và bổ sung cho - Nhận xét và bổ sung thêm các đầy đủ hàm, thủ tục còn còn thiếu - Nhận xét chung ý kiến HS đã - HS Lắng nghe lời giảng trình bày GV Giới thiệu bài - Nêu lên vai trò tệp việc xử lý - HS hướng theo dẫn dắt và lưu trữ thông tin, áp dụng vào thực tế GV để vào VD ( Sơ lược VD1) Nội dung - Ghi lại hàm và thủ tục mà HS đã nêu - Bổ sung thiếu sót HS1 - Đánh số thứ tự trên các hàm thủ tục đã ghi bảng * Hoạt động : Tìm hiểu VD1 và VD2 (34’) - Mục tiêu : Giúp HS hiểu nội dung CT, biết đầu vào, đầu CT - Nội dung: VD1 SGK, tính khoảng cách trại Hiệu trưởng và trại GVCN - Các bước tiến hành: Hoạt động thầy Tìm hiểu VD Hoạt động trò Nội dung (61) - Gọi HS đọc VD1 - Nhấn mạnh điểm quan trọng cần lưu ý VD1 - Gợi ý cách giải bài toán, để giải bài bài toán này ta cần phải nắm công thức tính khoảng cách điểm - Nhắc lại công thức tính khoảng cách điểm trên mặt phẳng toạ độ - ? Trong VD này ta cần tổ chức và lưu trữ liệu tệp dạng nào ? - ? Các thao tác liên quan đến tệp sử dụng VD này gồm gì ? - ?Các hàm và thủ tục nào sử dụng VD này ? - ?Hàm Eof(<biến tệp>) có chức gì ? - ?Có thể thay lệnh While lệnh For to không ? - Kết luận lại vấn đề đã nêu - Thực chương trình cho HS thấy kết Tìm hiểu VD2 - Gọi HS đọc VD2 - Nhắc lại công thức tính địên trở tương đương điện trở mắc song song - Gọi HS trình bày cách tính điện trở tương đương các - Theo dõi VD1 - Lắng nghe hướng dẫn GV - Ghi lại công thức tính khoảng cách điểm lên bảng để HS nắm rõ - HS trả lời : Cần tổ chức và lưu trữ tệp dạng văn - HS trả lời : Khai báo tệp Gắn tên tệp Mở tệp để đọc liệu Hiện kết màn hình Đóng tệp - HS trả lời : Các hàm sử dụng là: Var Assign Reset While Eof Read Writeln Close - HS trả lời: Trả kết là True trỏ cuối tệp - Không, vì không biết trước số lượng phần tử tệp Var <tên biến tệp>: text; Assign(<biến tệp>, <tên tệp>); Reset(<biến tệp>); While Eof(<biến tệp>); Read(<biến tệp>,<DS biến>); Writeln(<biến tệp>); Close(<biến tệp>); - Lắng nghe giải thích thầy - Theo giỏi quá trình thực - Trình bày nội dung CT lên GV bảng - Theo dõi VD SGK - HS lắng nghe lời giảng - Ghi lại công thức tính điện trở GV tương đương điện trở mắc song song - Ghi lại kết điện trở tương đương HS trình bày (62) điện trở mắc hình đến - Nhận xét và sửa sai - Cho HS đọc qua nội dung CT VD2 - ? Mảng a dùng để làm gì? - ? Dòng lệnh For to có ý nghĩa gì? - HS nhìn lên bảng để theo dõi - Bổ sung thêm cho hoàn - Theo dõi nội dung CT chỉnh VD2 SKG - HS trả lời: Dùng để lưu kết điện trở tương đương điện trở mắc theo cách hình vẽ -? Tại phải dùng hàm - Vì CT dùng biến tệp f1và f2 Close? nên ta phải dùng hàm Close để đóng tệp đó - Tổng kết lại CT VD2 - Yêu cầu HS tìm hiểu lại VD2 qua hướng dẫn trên lớp * Hoạt động 3: Củng cố kiến thức đã học chương V.(3) - Những nội dung đã học + Các thao tác xử lý tệp:  Gán tên tệp  Tạo tệp  Mở tệp  Đọc, ghi liệu vào tệp  Đóng tệp * Hoạt động 4: Dặn dò.(2) - Cần nắm vững cách làm việc với tệp - Xem lại các VD1 và VD2 Ngày 22/01/08 Tiết thứ:…… Bài 17 CHƯƠNG TRÌNH CON VÀ PHÂN LOẠI (Tiết 1) I Mục đích yêu cầu: + Biết CTC là khối lệnh nhằm giải bài toán để góp phần giải bài toán lớn chương trình + Biết viết nhứng chương trình dài, phức tạp thì việc sử dụng CTC là cần thiết + Biết lợi ích việc sử dụng CTC II Chuẩn bị: Máy chiếu bảng phụ đã viết sẵn chương trình tinh_tong không sử dụng chương trình và sử dụng chương trình III Nội dung: Hoạt động GV Hoạt động HS Ghi bảng + Hoạt động 1:(5’) Đặt vấn đề: Các chương trình giải các bài toán + Nghe GV nêu vấn đề điều phức tạp thường dài, có thể gồm cần thiết phải có chương trình nhiều lệnh, đọc khó hình (63) dung chương trình thực công việc gì và việc hiệu chỉnh chương trình khó khăn Như làm nào bài toán phức tạp dễ đọc, dễ hiểu, dễ hiệu chỉnh, dễ nâng cấp? Do đó ta nghiên cứu vấn đề là CTC, để tìm hiểu CTC là gì? + Hoạt động 2(17’) Tỉnh tổng : an + bm + cp + dq + GV cho HS nêu ý tưởng bài toán này Có nghĩa là chia bài toán thành bài toán nhỏ, làm là làm mịn dần bài toán -> thiết kế bài toán từ trên xuống + GV phân tích: để giải BT trên MT có chia chương trình thành các khối, khối gồm nhiều lệnh giải bài toán nào đó -> chương trình chính xây dựng từ các CTC + Chương trình là gì? + Giáo viên chốt lại khái niệm trên bảng phụ, máy chiếu viết trên bảng + HS nêu ý tưởng giải bài toán và trả lời + Cho HS khác nhận xét trả lời bạn 1.Khái niệm chương trình + Trả lời khái niệm chương trình Những bài toán phức tạp có thể phân chia thành nhiều bài toán nhỏ, bài toán nhỏ phân chia thành nhiều bài toán nhỏ, quá trình làm “mịn” dần bài toán gọi là cách thiết kế từ trên xuống Khi lập trình để giải các bài toán có thể chia thành các khối, khối bao gồm các lệnh để giải bài toán nào đó, khối lệnh xây dựng thành CTC , sau đó + Hoạt động 3(17’) chương trình chính xây + GV dùng bảng phụ 1: bài dựng trên các CTC này, cách tinh_tong ( không sử dụng CTC lập trình gọi là trang 92 SGK ), cho HS nhận chương trình có cấu trúc xét đoạn chương trình trên Chương trình là dãy (64) lệnh mô tả số thao tác định và có thể + GV chốt lại các ý: đoạn CT có thực (được gọi ) từ đoạn lệnh tương tự nhiều vị trí chương -> chương trình dài, khó theo dõi, + Chú ý bảng phụ trình trình khó hiệu chỉnh chiếu, sau đó nhận xét + Dùng bảng phụ 2: Chương trình tinh_tong có sử dụng chương trình + GV giải rhích : các dòng lệnh: var j: integer; + HS nhận xét và so sánh tich:=1.0; đoạn chương trình for j:=1 to k tich:=tich*x + Để tính các luỹ thừa ta viết: Luythua(a,n), luythua(b,m), Luythua(c,p), luythua(d,q) + Và rõ các đoạn lệnh thay CTC + Từ điều đã nêu cho HS nêu các ích lợi CTC + GV giải thích rõ ích lợi việc sử dụng CTC + Hoạt động 4: (5’) IV Củng cố: + Các HS nêu các lợi 1/ HS nêu khái niệm CTC, lợi ích ích CTC việc sử dụng CTC * Lợi ích việc sử dụng CTC + Tánh việc phải viết viết lại nhiều lần cùng dãy lệnh; + Hổ trợ việc thực các chương trình lớn; + Phục vụ cho quá trình trừu tượng hoá ; + Mở rộng khả ngôn ngữ; + Thuận tiện cho phát triển, nâng cấp chương trình; V Dặn dò: Xem trước phần 2của bài 17 Ngày 27/01/08 (65) Tiết thứ:…… Bài 17 CHƯƠNG TRÌNH CON VÀ PHÂN LOẠI (Tiết 2) I: Mục tiêu: Kiến thức: Biết phân biệt hai loại chương trình con: Hàm và thủ tục Biết cấu trúc chương trình Biết phân biệt tham số hình thức với tham số thực sự, biến cục với biến toàn cục Kỹ năng: - Nhận biết hai loại tham số hình thức và tham số thật - Nhận biết phạm vi hoạt động biến toàn cục, biến cục - Cách thực chương trinh Thái độ: - Phát huy tinh thần học tập theo nhóm II Đồ dùng dạy học: -GV: Bảng phụ, máy chiếu(nếu có) -HS: Sách GK, sách bài tập III Phương pháp: -Đặt vấn đề -Thuyết trình -Diễn giải, dùng bảng để ghi lại các chi tiết quan trọng ví dụ -Phát huy tính sáng tạo học sinh IV Tiến trình bài học Hoạt động thầy Hoạt động trò Nội dung * Kiểm tra kiến thức cũ - Gọi HS : - HS đứng dậy và trả lời Câu 1: Trình bày khái niệm câu hỏi chương trình là gì? Câu 2: Mục đích sử dụng chương trình là gì? -GV nhận xét cho điểm * Giới thiệu bài ĐVĐ: Chúng ta đã biết chương trình là gì? Lợi ích việc sử dụng chương trình lập trình Nhưng ta chưa biết chương trình chương trình có cấu trúc nào? Và phân loại nào? -Trong nhiều ngôn ngữ lập trình -HS trả lời câu hỏi chương trình phân làm loại? Phân loại và cấu trúc chương trình a Phân loại: -Chương trình (66) Hoạt động thầy Hoạt động trò Nội dung -Trong ngôn ngữ pascal các em -HS trả lời câu hỏi: cho biết số hàm và thủ tục + Hàm: Sin(x), chuẩn mà em biết? sqrt(x),length(x) + Writeln, readln, -Xét hàm sin(x) Với x=∏/6 giá trị hàm sin(x) -HS trả lời câu hỏi: cho kết là bao nhiêu ? Sin(x)=1/2 GV nhận xét : Sau thực tính toán hàm sin(x) với x= ∏/6 cho giá trị là 1/2 Vậy các em cho biết hàm có đặc -Học sinh trả lời điểm gì ?(hay hàm là gì ?) +Hàm:  Là chương trình  Thực số thao tác nào đó  Trả lại giá trị qua tên hàm -Xét thủ tục Writeln, Writeln(‘‘xin chao’’) Thủ tục Writeln(‘xin chao’) làm -Học sinh trả lời gì ? cho kết là gì ? có trả giá trị nào không ? Vậy các em cho biết thủ tục có đặc điểm gì ?(hay hàm là gì ?) +Thủ tục:  Là chương trình  Thực số thao tác nào đó  KhôngTrả lại giá trị qua tên thủ tục ĐVĐ : Trên sở phân loại hàm và thủ tục bây ta tìm hiểu cấu trúc hàm và thủ tục (Chương trình con) tổ chức nào ? b Cấu trúc chương trinh (67) Hoạt động thầy Hoạt động trò Nội dung -Các em hãy cho biết chương -Học sinh trả lời: trình chính gồm phần ?(kiến [<Phần khai báo>] thức củ) <Phần thân> -Trong chương trình cấu trúc -Học sinh trả lời: nó gồm phần ? <Phần đầu> [<Phần khai báo>] <Phần thân> -Về chương trình và -Học sinh trả lời chuơng trình chính có tương tự không ? -Chương trình có cấu trúc tương tự chương trình chính gồm phần: <Phần đầu> [<Phần khai báo>] <Phần thân> -Phần đầu dùng để làm gì ? -HS trả lời +Phần đầu:  Để khai báo tên hàm thủ tục  Nếu là hàm phải khai báo kiểu liệu chi giá trị trả hàm  Nhất thiết phải có -Phần Khai báo dùng để làm gì ? -HS trả lời +Phần khai báo:  Khai báo các biến cho liệu vào/ra, các và biến dùng chương trình -Phần thân dùng để làm gì ? -HS trả lời +Phần thân:  Gồm dãy các lệnh thực để từ iệu vào/ra ta nhận liệu hay kết qủa mong muốn ĐVĐ :Bây ta tiếp tục tìm (68) Hoạt động thầy Hoạt động trò hiểu các biến khai báo và phạm vi hoạt động nó chương trình và chương trình chính Nội dung Xét ví dụ : Tính luỹ thừa : k luythua= x đó tên chương trình có thể đặt là luythua, tên các biết chưa liệu vào là x, k Vậy tính xk ta viết luythua(x,k) Khi đó x, k là tham số hình thức -Vậy tham số hình thức là gì ? -HS trả lời *Khái niệm các biến: - Tham số hình thức: gồm các biến khai báo cho liệu vào/ra - Biến cục bộ: Gồm các biến khái khai báo chương trình - Biến toàn cục: Gồm các biến khái khai báo chương trình chính *Phạm vi hoạt động các ĐVĐ : Đối biến cục bộ, ,biến toàn -Học sinh đọc sách GK biến: cục thì phạm vi hoạt động nó và trả lời nào ? -Biến cục bộ:  Chỉ sử dụng chương trình cuả nó mà thôi  Không thể sử dụng biến cục cuả chương trình cho chương trình chính và các chương trình khác -Biến toàn cục:  Được sử dụng chương trình chính có thể sử dụng chương trình ĐVĐ : Sau có chương trình con, muốn thực chuơng trình đó thì ta làm nào ? c Thực chương trình con: -Để thực gọi chương trình ta thực lệnh theo cú pháp sau Cú pháp: (69) Hoạt động thầy Hoạt động trò -Hãy cho ví dụ lệnh gọi CTC ? -HS trả lời Ví dụ: sqrt(255) Xét ví dụ :CTC luythua(x,k) với x,k tham số hình thức Với biến : a =2, b=3 Lệnh gọi CTC là Luythua(a,b) đó tham số hình thức x,k nhận giá trị tương ứng tham số thực a,b *Cũng cố kiến thức: Những nội dung đã học: -CTC gồm: Hàm và thủ tục -Cấu trúc chương trinh -Biến cục bộ, biến toàn cục -Tham sô hình thức, tham số thật -Cách gọi chương trinh Nội dung <tên chương trình con>(<tham số thực sự>) Trong đó: tham số thực là các hằng, biến chứa liệu vào/ -Khi thực chương trình các tham số hình thức dùng để nhập liệu vào và tham số hình thức nhận giá trị tham số thực tương ứng, còn các tham số hình thức dùng để lưu trữ liệu trả giá trị đó cho tham số thực tương ứng (70) Ngày soạn 15/02/08 Tiết thứ ……… Bài 18: VÍ DỤ VỀ CÁCH VIẾT VÀ SỬ DỤNG CHƯƠNG TRÌNH CON I: Mục tiêu: Kiến thức: - Học sinh biết cấu trúc chung và vị trí thủ tục chương trình chính - Phân biệt tham trị, tham biến Kỹ năng: - Nhận biết các thành phần phần đầu thủ tục - Nhận biết loại tham số phần đầu thủ tục - Nhận biết lời gọi thủ tục chương trình chính cùng với tham số thực Tư và thái độ: - Rèn luyện cho HS phẩm chất người lập trình tinh thần hợp tác, khả làm việc nhóm, làm việc chung II Chuẩn bị GV và HS: - GV: Giáo án, SGK, sách GV, các ví dụ, bảng phụ, sách bài tập - HS: Sách GK, sách bài tập III Phương pháp: - Thuyết trình - Diễn giải - Đàm thoại IV Tiến trình bài học * Hoạt động 1: Kiểm tra bài cũ và giới thiệu bài mới(5’) Ổn định lớp Kiểm tra bài cũ Hoạt động thầy Hoạt động trò Nội dung ghi bảng Câu hỏi: Trả lời : - CT là gì ? CT có CT là dãy lệnh mô - Khái niệm loại nào? cấu trúc CT tả số thao tác định và ? có thể thực nhiều vị trí CT CT có loại : Hàm - Phân loại và thủ tục - Cấu trúc : Phần đầu, phần khai báo, phần thân - HS đứng lên nhận xét - GV gọi HS nhận xét câu trả lời GV nhận xét lại và cho điểm * Hoạt động : Bài Giới thiệu bài : Các em đã học CT con, bài học hôm cung cấp cho các em số ví dụ để các em thấy rõ lợi ích, cấu trúc CT chương trình Cách viết và sử dụng thủ tục (71) Hoạt động thầy HĐ1 : Dẫn dắt vấn đề : - GV treo bảng phụ đã ghi vd vẽ HCN cho HS quan sát - ? Ví dụ trên bảng sử dụng bao nhiêu câu lệnh để vẽ HCN ? * Diễn giải : Như cần cẽ HCN ta phải dùng câu lệnh Giả sử muốn vẽ HCN thì câu lệnh Writeln trên phải lặp lại lần - Gọi HS đứng lên nhận xét Hoạt động trò - HS quan sát bảng phụ - Sử dụng câu lệnh để vẽ HCN HS lắng nghe - - - Đúng dùng lần câu lệnh đó thì chương trình dài, để khắc phục điều đó ta dùng CT là thủ tục HĐ : Tìm hiểu chương trình - Treo bảng phụ ( VD thủ tục SGK trang 96, 97) - Giới thiệu cho HS câu lệnh chương trình để HS thấy cấu trúc thủ tục - ?Vị trí thủ tục nằm phần nào chương trình - ?Các em quan sát và cho biết cấu trúc thủ tục gồm phần ? - Qua VD cho biết lời gọi thủ tục nằm đâu ? - GV nhận xét và ghi bảng - GV cho HS quan sát bảng phụ (VD thủ tục trang 98,99 SGK) - GV giải thích VD Nội dung Cách viết và sử dụng thủ tục * VD: Bảng phụ (VD vẽ HCN trang 96) HS trả lời chương trình dài dòng, tốn TG HS lắng nghe a Cấu trúc thủ tục: - HS quan sát chương trình trên - VD bảng (VD thủ tục bảng phụ trang 96, 97 SGK) - HS lắng nghe GV giới thiệu * Thủ tục có cấu trúc sau Procedure <Tên thủ tuc> [(<DS tham số>)]; - HS trả lời: Thủ tục nằm [< phần khai báo>] phần khai báo chương Begin trình [<Dãy các lệnh>] - HS trả lời: Gồm có phần: End; Tên thủ tục, phần khai báo, - Phần đầu thủ tục gồm tên phần thân thủ tục dành riêng Procedure, - Nằm phần thân CT là tên thủ tục DS tham số có thể chính có không có - HS lắng nghe và ghi bài - Phần khai báo: Dùng để xác định các hằng, kiểu, biến và có thể xác định các chương trình khác sử dụng thủ tục - Dãy câu lệnhh:Được viết cặp tên dành riêng Begin và End tạo thành thân thủ tục - HS quan sát bảng phụ b VD thủ tục: - Trong lời gọi thủ tục các tham số hình thức thay - HS lắng nghe theo dõi tham số thực tương ứng là các giá trị cụ thể đgl tham số giá - HS lắng nghe theo dõi trị (tham trị) (72) - GV nhận xét : Qua VD trên - Trong lệnh gọi thủ tục các ta có thể dùng nhiều giá trị tham số hình thức thay thay để vẽ nhiều HCN với các tham số thực tương chương trình ứng là tên các biến chứa liệu - Thủ tục vẽ - HCN đây đã đgl tham số biến (tham biến) diễn đạt thủ tục vẽ HCN có * Sự khác khai báo kích thước chiều dài và chiều tham số hình thức: rộng tuỳ theo giá trị các - Các tham số có từ khoá Var tham số chdai, chrong Những đứng là tham số biến, còn tham số này gọi là tham số không có là tham số giá trị hình thức Ngoài nó còn ** Chú ý: đựơc thay tên các biến - HS quan sát bảng phụ - Nếu có nhiều tham biến cùng - GV treo bảng phụ cho HS kiểu liệu thì có thể dùng quan sát (VD tham biến 1, VD từ khoá Var cho phần khai tham biến trang 99, 100) - HS nhận xét: Khi khai báo báo, ngăn cách dấu phẩy - Gọi HS nhận xét tham số biến ta đặt từ khoá Var - Khai báo liệu cho tham số đằng trước các tham số đó dùng tên kiểu Tên - HS lắng nghe kiểu là tên chuẩn tên - GV nhận xét người lập trình đặt - Để phân biệt tham số này Pascal dùng từ khoá Var để khai báo - HS ghi bài - GV ghi bảng * Hoạt động 3: Củng cố, dặn dò: - Cấu trúc CT và vị trí nó CT chính? - CT viết phần khai báo CT có phần đầu, phần khai báo và phần thân - CT có thể có tham số hình thức khai báo và thay tham số thực gọi CT - Phân biệt tham số hình thức và tham số thực Cách sử dụng tham biến và tham trị * BT nhà: BT trang 60 SBT: 6.1, 6.3, 6.4, 6.5 Ngày 25/02/08 Tiết – Bài 18: VÍ DỤ VỀ CÁCH VIẾT VÀ SỬ DỤNG CHƯƠNG TRÌNH CON I/ Mục tiêu: - Về kiến thức: + Nhớ cấu trúc hàm, cách sử dụng hàm + Phân biệt hai loại chương trình (thủ tục và hàm) + Xác định biến toàn cục và biến cục - Về kỹ năng: + Nhận biết các thành phần đầu hàm + Nhận biết các câu lệnh sử dụng hàm chương trình chính cùng các tham số thực - Về tư và trình độ: + Tiếp tục rèn luyện, thảo luận làm việc theo nhóm II/ Chuẩn bị giáo viên và học sinh - Giáo viên: Giáo án, bảng phụ - Học sinh: Ghi chép bài đầy đủ (73) 2/ Phương pháp: - Học sinh nghe giảng, thảo luận và trả lời câu hỏi giáo viên đưa - Giáo viên thuyết trình, đặt câu hỏi cho học sinh III/ Tiến trình tiết dạy: Hoạt động 1: Kiểm tra bài cũ và giới thiệu bài TG Hoạt động giáo viên Câu hỏi: Cho ví dụ cấu 5’ trúc thủ tục? Nêu khác tham số giá trị và tham số biến? GV: Gọi học sinh lên trả lời? Có loại chương trình đó là Thủ tục (Procedure) và hàm (Function) Thủ tục chúng ta tìm hiểu tiết trước Bầy ta tiếp tục tìm hiểu Hàm - Em hãy kể tên hàm mà chúng ta đã học và cho biết cách sử dụng chúng? Hoạt động 2: Nội dung bài Hoạt động học sinh TG Hoạt động giáo viên Hoạt động học sinh 7’ - <tên hàm> người dùng tự đặt - Cũng giống thủ tục [<danh sách tham số>]: không cần thiết hàm không có tham số - Em hãy nhắc lại các kiểu liệu đã học? 7’ Nội dung ghi bảng HS lên bảng trả lời - HS nhận xét - Như các hàm: Abs(x), sqrt(x), round(x)… Nội dung ghi bảng II/ Dạng Hàm (Function) 1/ Cấu trúc: Function <tên hàm>[<danh sách tham số>]: <kiểu liệu>; [khai báo các biến]; Begin [<dãy các lệnh>] End; - <Kiểu liệu>: Kiểu liệu trả lại hàm các kiểu integer, real, char, boolean, - Các kiểu liệu: integer, string real, char, boolean, string Vd: Function tong(x,y: integer): integer; 2/ Sử dụng hàm: - Giống hàm chuẩn, viết tên hàm gọi và thay tham số hình thức các tham số thực tương ứng - Lệnh gọi hàm tham gia vào biểu thức toán hạng (74) Ví dụ: A:= 8*UCLN(x,y)-3; Chú ý: Trong thân hàm phải có ít lệnh gán giá trị cho tên hàm <tên hàm>:= <biểu thức>; 5’ 5’ 5’ 5’ Chương trình trình bày trên bảng phụ -Trong ví dụ có bao nhiêu hàm? - Hàm UCLN(x,y): dùng để làm gì? - Chỉ lệnh gán giá trị cho tên hàm? - Em hãy cho biết giống và khác hàm và thủ tục? - Tổng hợp rút kết luật chung - Dựa vào ví dụ chi đâu là biến toàn cục, biến cục bộ? chúng khai báo vị trí nào? Chương trình trình bày trên bảng phụ - Phân tích cho hoc sinh biết ý tưởng thuật toán - Chỉ các biến sử dụng chương trình, phân biệt biến cục bộ, biến toàn cục, khai báo vị trí nào chương trình ? - Nêu tên hàm, giá trị kết hàm thuộc kiểu Ví dụ 1: - Chương trình thực rút gọn - Có hàm UCLN phân số, sử dụng hàm tính - Tính ước chung lớn ước chung lơn số hai số x, y - UCLN:= x; 3/ Phân biệt hàm và thủ tục: a/ Giống nhau: - Là chương trình con, có cấu trúc giống chương trình - Đều là chương trình - Đều có thể chứa các tham số, - Khác: thân hàm cùng tuân theo quy định phải có ít lệnh khai báo b/ Khác nhau: - Tên hàm phải có kiểu liệu - Trong thân hàm phải có lệnh gán giá trị cho tên hàm 4/ Biến toàn cục và biến cục bộ: - Biến toàn cục là biến khai báo chương trình chính - Biến cục là biến khai báo chương trình - Biến toàn cục là: Tuso, mauso, a Được khai báo Ví dụ 2: chương trình chính Chương trình tìm số nhỏ số nhập từ bàn phím - Biến cục bộ: x, y Được khai báo chương trình - Biến sử dụng gồm biến (75) liệu nào? - a, b vừa là biến toàn cục - Hàm sử dụng vừa là biến cục bộ, c là lần? biến toàn - Tên hàm là Min, giá trị kết thuộc kiểu liệu real - Hàm sử dụng lần IV/ Cũng cố:(4’) - Nhấn mạnh lại cách khai báo hàm, phân biệt hàm và thủ tục - Phân biến toàn cục và biến cục V/ Bài tập nhà: (3’) Function tim(m,n: integer); Begin r:=m mod n; If r= then tim:=n; Else Tim:=tim(n,r); End; Khai báo biến, sửa lỗi cho đoạn chương trình trên? Đoạn chương trình thực công việc gì? Ngµy so¹n: 03/03/08 TiÕt thø:…… Bµi: Bµi thùc hµnh sè i Môc Tiªu KiÕn thøc: - Còng cè l¹i c¸c kiÕn thøc vÒ x©u, kÝ tù, ch¬ng tr×nh Kü n¨ng: - RÌn luyÖn kü n¨ng xö lý x©u b»ng viÖc t¹o hiÖu øng cho m¸y ch¹y trªn mµn h×nh - N©ng cao kü n¨ng viÕt vµ sö dông ch¬ng tr×nh II đồ dùng dạy học ChuÈn bÞ cña gi¸o viªn: - Máy vi tính, tổ chức phòng máyđể học sinh có đợc các kỹ tronh việc tổ chức và sö dông ch¬ng tr×nh lËp tr×nh ChuÈn bÞ cña häc sinh: - S¸ch gi¸o khoa III Hoạt động dạy học Hoạt động 1: Tìm hiểu việc xây dựng hai thủ tục catdan(s1, s2) và cangiua(s) a Môc tiªu: - nắm đợc chức hai thủ tục catdan(s1, s2) và cangiua(s) Biết đợc ý nghĩa cảu tham số chơng trình đó b Néi dung: Thñ tôc catdan Type str79 = string[79]; Procedure catdan(s1 : str79; var s2 : str79); Begin S2 := copy(s1 , , length(s1) - 1) + s1[1]; End; Thñ tôc cangiua Procedure cangiua( var s : str79); (76) Var i,n : integer; Begin n:= length(s); n:= (80-n)div 2; for i:= to n s:= ‘ ‘ + s end; c C¸c bíc tiÕn hµnh: Hoạt động giáo viên Hoạt động học sinh T×m hiÓu hai thñ tôc catdan (s1, s2) vµ cangiua (s) Quan s¸t thñ tôc catdan() vµ tr¶ lêi c©u hái - ChiÕu néi dung thñ tôc catdan (s1, s2); cña gi¸o viªn - Hái: §Çu vµo vµ ®Çu cña thñ tôc nµy? - Hái: Chøc n¨ng cña thñ tôc nµy lµ g×? - Vµo: X©u kÝ tù s1 - Ra: BiÕn x©u kÝ tù s2 - Yªu cÇu häc sinh cho mét vÝ dô minh ho¹ - Thùc hiÖn viÖc t¹o x©u s2 tõ x©u s1 b»ng - ChiÕu néi dung thñ tôc: cangiua(s); việc chuyển kí tự thứ đến vị trí cuối - Hái: §Êu vµo cña thñ tôc? cïng cña x©u - S1= ‘abcd’ th× S2 = ‘ bcda’ - Thñ tôc thùc hiÖn c«ng viÖc g×? - Gi¸o viªn chó ý: Cã thÓ nh¾c häc sinh nÕu kh«ng khai b¸o s lµ tham biÕn th× thñ tôc nµy kh«ng cã hiÖu lùc g× v× lÖnh ®a s nµm h×nh kh«ng n»m thñ tôc nµy T×m hiÓu ch¬ng tr×nh cña c©u b, s¸ch gi¸o khoa, trnag 103, 104 - ChiÕu ch¬ng tr×nh lªn b¶ng - Hái: Chøc n¨ng cña ch¬ng tr×nh - Quan s¸t, suy nghÜ vµ tr¶ lêi - §Çu vµo lµ mét x©u kÝ tù S kh«ng qua 79 kÝ tù - Thñ tôc thùc hiÖn thªm vµo tríc x©u s mét số kí tự tự trắng để đa s màn hình kí tự S ban đầu đợc dòng gồm 80 kÝ tù - Giíi thiÖu cho häc sinh c¸c thñ tôc chuÈn : gotoxy (x,y); delay(n); vµ keypressed; Quan s¸t ch¬ng tr×nh trªn b¶ng vµ theo dâi - Thực chơng trình để giúp học sinh thấy kết dẫn dắt giáo viên qu¶ cña ch¬ng tr×nh - Yªu cÇu cña ngêi sö dông nhËp mét x©u kÝ tự Đa xâu đó màn hình có dạng dòng chữ ch¹y mµn h×nh v¨n b¶n 25*80 - Quan sát trên màn hình để đối chiếu với kết mà học sinh tự suy luận tính đợc Hoạt động 2: Rèn luyện kĩ lập trình: a Môc tiªu: - Học sịnh vận dụng đợc các hiểu biết chơng trình con, thuật toàn đợc cung cấp để giải quyÕt bµi to¸n tæng qu¸t h¬n b Néi dung: - ViÕt ch¬ng tr×nh nhËp mét x©u kÝ tù vµ ®a dßng ch÷ ch¹y ë dßng bÊt k× ch¬ng tr×nh chÝnh quy định - Néi dung ch¬ng tr×nh gièng nh ch¬ng tr×nh c©ub, SGK, trang 10 c C¸c bíc tiÕn hµnh: Hoạt động giáo viên Hoạt động học sinh Tìm hiểu yêu cầu đề bài Quan s¸t yªu cÇu trªn b¶ng - ChiÕu néi dung yªu cÇu lªn b¶ng - Yêu cầu học sinh tìm vấn đề bài - Về bản, giống nh nhiệm vụ mà câu b đã làm tËp nµy ChØ kh¸c lµ ch¬ng tr×nh c©u b lu«n cho x©u kÝ tù ch¹y ë dßng 12, cßn bµi nµy x©u kÝ tù ph¶i ch¹y ë dßng bÊt k× V× vËy ph¶i truyÒn tham sè quy (77) định dòng chạy cho thủ tục - §éc lËp viÕt ch¬ng tr×nh vµo m¸y vµ b¸o c¸o kÕt qu¶ thö nghiÖm - Yªu cÇu häc sinh lËp tr×nh trªn m¸y - NhËp d÷ liÖu theo test cña gi¸o viªn vµ b¸o c¸o - Yªu cÇu häc sinh thùc hiÖn ch¬ng tr×nh vµ kÕt qu¶ nhËp d÷ liÖu test - §¸nh gi¸ kÕt qu¶ lËp tr×nh cña häc sinh IV §¸nh gi¸ cuèi bµi: C©u hái vµ bµi tËp vÒ nhµ - ViÕt thñ tôc chaychu ( s,dong) nhËn tham sè vµ x©u S gåm kh«ng qua 79 kÝ tù vµ mét biÕn nguyên Dong In màn hình dòng chữ xác định S chạy dòng Dong viết ch ơng trình và thùc hiÖn cã sö dông thñ tôc nµy - ChuÈn bÞ bµi cho bµi thùc hµnh sè 7: Xem tríc néi dung cña bµØ thùc hµnh sè 7, SGK, trang 105 Ngµy so¹n: TiÕt thø:…… Bµi: Bµi thùc hµnh sè I MỤC TIÊU: Kiến thức: Củng cố lại các kiến thức chương trình con: Thủ tục, hàm, tham số biến và tham số giá trị, biến toàn cục và biến cục Kỹ năng: Sử dụng chương trình để giải trọn vẹn bài toán trên máy tính II ĐỒ DÙNG DẠY HỌC: Chuẩn bị giáo viên: Máy vi tính, tổ chức phòng máy để HS có các lỹ việc tổ chức và sử dụng các chương trình lập trình Chuẩn bị học sinh: Đọc trước bài tập thực hành theo yêu cầu giáo viên III HOẠT ĐỘNG DẠY VÀ HỌC: Hoạt động 1: Tìm hiểu việc xây dựng hàm và thủ tục chương trình, thực các việc liên quan đến tam giác a Muc tiêu: HS biết các hàm và thủ tục chương trình, hiểu chức chương trình con, tính đầu vào và đầu chương trình b Nội dung: - Procedure daicanh(R: Tamgiac; var a,b,c: real); - Function chuvi(var R: Tamgiac): real; - Function dientich(var R: Tamgiac): real; - Procedure tinhchat(var R: Tamgiac; var deu,can,vuong: boolean); - Procedure hienthi(var R: Tamgiac); - Funtion kh_cach(P,Q: Diem): real; c Các bước tiến hành: T/g Hoạt động GV Hoạt động HS - Đưa bài toán: Nhập toạ độ đỉnh tam giác, tính diện tích, chu vi, hiển thị tính vuông, cân tam giác - GV định hướng cho HS vì phải xây dựng kiểu - HS nhìn bảng và trả lời các câu hỏi (78) liệu để giải bài toán SGK - Hỏi: Yêu cầu HS phân biệt hàm và thủ tục - GV chính xác hoá kết quả, nhấn mạnh ý: Một chương trình có thể dùng các chương trình khai báo trước nó thân chương trình mình - Dẫn dắt, giải thích cho HS hiểu ý nghĩa, dạng chương trình con, cách dùng các tham số (tham biến, tham trị), thứ tự khai báo, đầu vào, đầu chương trình sử dụng để giải bài toán trên + Procedure daicanh(R: Tamgiac; var a,b,c: real);: Nhận đầu vào là biến R mô tả tam giác và đầu là độ dài cạnh a,b,c + Function chuvi(var R: Tamgiac): real;: Cho giá trị là chu vi tam giác R + Function dientich(var R: Tamgiac): real;: Cho giá trị là chu vi tam giác R + Procedure tinhchat(var R: Tamgiac; var deu,can,vuong: boolean);: Nhận đầu vào là biến R mô tả tam giác và đầu là tính chất tám giác (đều, cân vuông) + Procedure hienthi(var R: Tamgiac);: Hiển thị toạ độ đỉnh tam giác trên màn hình + Funtion kh_cach(P,Q: Diem): real;: Cho giá trị là khoảng cách hai điểm P, Q - GV sử dụng máy chiếu để để hiển thị nội dung chương trình SGK lên màn hình cho HS quan sát, kết hợp với dùng bảng để thảo luận và giải thích nội dung chương trình và cách dùng các chương trình chương trình chính Sau HS đã thông hiểu chương trình, yêu cầu HS lên chạy thử cách nhập toạ độ HS đã kiểm tra trước GV đưa - Trả lời câu hỏi GV - Trả lời các câu hỏi GV đưa quá trình giảng bài - HS lắng nghe GV giảng bài và trả lời các câu hỏi GV đưa ra: + Xác định đâu là tham trị và đâu là tham biến các chương trình bên - Quan sát chương trình, dự tính chức chương trình - Nhập vào toạ độ đỉnh tam giác, khảo sát tính chất tam giác (cân, vuông, đều) Quan sát kết trên màn hình để đối chiếu với kết tự tính - Quan sát và ghi nhớ kết để thấy hiệu ứng thay đổi tham biến và tham trị Hoạt động 2: Rèn luyện kỹ lập trình a Mục tiêu: Viết chương trình có sử dụng chương trình để tính số lượng tam giác đều, số lượng tam giác cân và số lượng tam giác vuông b Nội dung: - Viết chương trình, sử dụng các hàm và thủ tục đã xây dựng để giải bài toán sau: Cho tệp liệu TAMGIAC.DAT có cấu trúc sau: (79) Dòng 1: Ghi số nguyên N (1<=N<=100) N dòng tiếp theo: dòng ghi số thực xA, yA, xB, yB, xC, yC là các toạ độ đỉnh A, B, C tam giác Yêu cầu: đọc liệu từ tệp TAMGIAC.DAT, xử lý và đưa kết tệp TAMGIAC.OUT gồm dòng: Dòng 1: Ghi số lượng tam giác Dòng 2: Ghi số lượng tam giác cân (nhưng không đều) Dòng 3: Ghi số lượng tam giác vuông c Các bước tiến hành: T/G Hoạt động GV - Phân tích yêu cầu để bài + Chiếu nội dung, yêu cầu lên bảng + Chia lớp thành hai nhóm  Nhóm 1: Nêu câu hỏi phân tích để giải bài toán  Nhóm 2: Trả lời câu hỏi phân tích nhóm để tìm cách giải bài toán + GV góp ý, bổ sung câu hỏi phân tích và trả lời phân tích Hoạt động HS - Quan sát yêu cầu + Nhóm 1: Đặt câu hỏi  Dữ liệu vào  Dữ liệu  Cần sửa chỗ nào tỏng chương trình câu b  Thuật toán để đếm số lượng các loại hình tam giác + Nhóm 2: Trả lời câu hỏi phân tích  Phải viết lệnh đọc đữ liệu tệp  Ba số nguyên dương là số lương loại hình tam giác ghi trên dòng tệp  Cần thay đoạn chương trình nhập liệu chương trình để đọc liệu từ tệp TAMGIAC.DAT  Thay đoạn chương trình in kết màn hình chương trình để in số nguyên dương là số lượng loại hình tệp TAMGIAC.OUT Thuật toán: Nếu deu thì d:= d + Ngược lại can thì c:= c + Ngược lại thì v:= v + 1; - Độc lập viết chương trình, thực - Lập trình: chương trình test tự tạo + Yêu cầu HS lập trình trên máy GV tiếp cận - Thông báo kết cho GV Hs để sửa lỗi cần thiết - Nhập liệu GV và báo cáo kết + Yêu cầu HS nhập liệu vào GV và báo cáo kết chương trình + Đánh giá kết HS (80) IV CỦNG CỐ KIẾN THỨC: Nhắc lại nội dung đã học từ đầu chương VI : Cách xây dựng chương hàm, thủ tục, cách truyền tham biến, tham trị V CÂU HỎI VÀ BÀI TẬP VỀ NHÀ: - Đọc bài đọc thêm - Chuẩn bị bài - Viết các chương trình sau (dùng các chương trình con): + Đếm và in màn hình các số nguyên tố dãy số nguyên nhập từ bàn phím + Nhập liệu gồm các thông tin họ tên, điểm toán, điểm văn HS vào file KETQUA.INP Sau đó đọc file và in màn hình HS lên lớp (biết HS lên lớp là HS có điểm toán >= và điểm văn >= 5) (81) Ngày soạn: Tiết thứ: BÀI 19: THƯ VIỆN CHƯƠNG TRÌNH CON CHUẨN (Tiết 1: + a,b) I Mục tiêu: + Kiến thức: - Giới thiệu số thư viện chương trình chuẩn và cách sử dụng + Kĩ năng: - Bước đầu sử dụng các thư viện đó lập trình - Biết khai báo và sử dụng thư viện CRT, GRAPH II Đồ dùng Dạy học: + Giáo viên: giáo án, máy chiếu, chương trình sử dụng các hàm cần giới thiệu + Học sinh: Sách giáo khoa III Hoạt động Dạy - Học: + Ổn định lớp + Kiểm tra bài cũ + Tiến trình tiết dạy: Hoạt động giáo viên Hoạt động học sinh Nội dung ghi bảng + Đặt vấn đề: Giới thiệu các thư viện chương trình ngôn ngữ lập trình + HĐ 1: Giới thiệu thư viện CRT - Yêu cầu học sinh đọc sách và kể 1/ CRT: tên chương trình + Các chương trình thư - Chứa các thủ tục liên quan thư viện CRT viện CRT : đến việc quản lí và khai thác Clrscr, textcolor, mà hình, bàn phím máy - Trình chiếu và cho chạy chương textbackgrond, gotoXY tính trình sau: - Quan sát Program xoamanhinh; Begin Clrscr; Writeln(‘Xoa man hinh’); Readln; End - Vì xuất lỗi chạy chương trình này? - Chưa sử dụng thư viện CRT - Clrscr: xoá màn hình - Thêm : Uses CRT vào trước - Quan sát begin và chạy chương trình - Chức thủ tục Clrscr ? - Trình chiếu chương trình chứa -Xoá màn hình thủ tục textcolor, yêu cầu học sinh quan sát và nhận xét chức - Đặt màu chữ lệnh này - Textcolor(n): đặt màu chữ, - Trình chiếu chương trình chứa đó n là biến thủ tục textbackground, yêu cầu xác định màu học sinh quan sát và nhận xét chức lệnh này - Đặt màu (82) Hoạt động giáo viên - Trình chiếu chương trình chứa thủ tục gotoXY, yêu cầu học sinh quan sát và nhận xét chức lệnh này + HĐ 2: Tìm hiểu thư viện Graph - ĐVĐ: thư viện Graph chứa các thủ tục liên quan đến chế độ đồ hoạ + Cho HS xem sách và trả lời: - Các dạng liệu nào có thể hiển thi trên màn hình? - Card màn hình có nhiệm vụ gì? - Các tệp điều khiển đồ hoạ có chức gì? Hoạt động học sinh Nội dung ghi bảng - Textbackground(n): đặt màu - Đưa trỏ cột X và dòng Y - GotoXY(x,y): đưa trỏ đến cột x dòng y màn hình văn - Lắng nghe 2/ Graph: - Chứa các hàm và thủ tục liên quan đến chế độ đồ hoạ a) Các thiết bị và chương trình hỗ trợ đồ hoạ: - Khi nói đến màn hình phân giải - Văn và hình ảnh - Có hai chế độ làm việc: văn 640x480 là nói đến điều gì? và đồ hoạ + Để sử dụng thư viện đồ hoạ ta - Đảm bảo tương tác giữ vi - Bảng mạch điều khiển màn phải làm gì? xử lí và màn hình hình là thiết bị đảm bảo tương - Để khởi tạo chế độ đồ hoạ ta sử - Cung cấp các chương trình tácgiữa vi xử lí và màn hình dụng thủ tục nào? điều khiền tương ứng với các loại bảng mạch đồ hoạ - 640 dòng và 480 cột b) Khởi tạo chế dộ đồ hoạ: - Initgraph(var driver, mode: Integer; path: string); - Initgraph(var driver, mode: + Trong đó: Integer; path: string); - driver: số hiệu chương trình - Khi không sử dụng chế độ đồ điều khiển BGI hoạ thì ta phải làm gì? - mode: số hiệu độ phân giải - path: đường dẫn đến tệp BGI - CloseGraph: Kết thúc chế độ đồ hoạ - Khởi tạo chế độ đồ hoạ - Trở chế độ văn IV Củng cố: V Dặn dò, nhà: (83) Ngày soạn: Tiết thứ: BÀI 19: THƯ VIỆN CHƯƠNG TRÌNH CON CHUẨN (TIẾT 2) I Mục đích yêu cầu: - Về kiến thức: Biết số thư viện chương trình chuẩn - Về kỹ năng: + Khởi động chế độ đồ họa + Sử dụng các thủ tục vẽ điểm, đường, hình tròn, hình elip, hình chữ nhật II Chuẩn bị: - GV: SGK, giáo án, máy chiếu Projector - HS: SGK, III Phương pháp: - Gợi mở, vấn đáp - Làm việc theo nhóm IV Hoạt động dạy học: Ổn định lớp: Kiểm tra sĩ số HS Kiểm tra bài cũ: Nêu ý nghĩa và số thủ tục thư viện CRT ? Nội dung dạy học: * HĐ 1: Khởi động và đóng chế độ đồ họa: Hoạt động Giáo Viên Hoạt động Học sinh Nội dung - Trình chiếu ví dụ vẽ đường - Quan sát ví dụ và trả lời tròn Hãy đoạn chương trình khởi động đồ họa b) Khởi động đồ họa: - Yêu cầu học sinh nghiên cứu - Cấu trúc chung thủ tục khởi SGK và ví dụ để nêu cấu trúc - Initgraph ( driver, động đồ họa chung thủ tục khởi động đồ mode: integer, path: Initgraph (driver, mode: integer, họa string) path: string); - Giải thích các thông số thủ tục + Driver: số hiệu chương trình điều khiển BGI, thường gán giá trị + Mode: là số hiệu độ phân giải + Path: đường dẫn đến các - Muốn thoát khỏi chế độ đồ tệp BGI họa dùng thủ tục gì? - Thủ tục kết thúc đồ họa: Closegraph - Trình chiếu thêm ví dụ minh - Closegraph họa - Quan sát *HĐ 2: Các thủ tục vẽ điểm, đoạn thẳng Hoạt động Giáo viên Hoạt động Học sinh Nội dung  Thủ tục Putpixel c.Các thủ tục vẽ điểm, đoạn thẳng - Quan sát Use graph; - Trình chiếu ví dụ Begin Drive: = 0; (84) - Cho HS nêu kết - Gọi HS nêu cấu trúc chung thủ tục Putpixel - Giải thích các thông số - HS trả lời thủ tục - Chức Putpixel là gì ? - HS trả lời Thủ tục Line: - Trình chiếu ví dụ - Quan sát - Cho HS nêu kết - Gọi HS nêu cấu trúc chung thủ tục Line - Giải thích các thông số - HS trả lời thủ tục - Chức Line là gì ? Thủ tục Lineto: - Trình chiếu ví dụ - HS trả lời - Quan sát - Cho HS nêu kết - Gọi HS nêu cấu trúc chung thủ tục Lineto - Giải thích các thông số - HS trả lời thủ tục - Chức Lineto là gì? Thủ tục Linerel: - Trình chiếu ví dụ - HS trả lời Initgraph ( drive, mode, ‘C: TP\BGI’); Putpixel(20,40,60); Readln; End - Cấu trúc chung: Putpixel (x, y: integer; color: word); + x và y là tọa độ điểm + color là màu điểm - Chức năng: Vẽ điểm màu color trên màn hình tọa độ (x,y) Use graph; Begin Drive: = 0; Initgraph ( drive, mode, ‘C: TP\BGI’); Line (20,40,30,60); Readln; End - Cấu trúc chung: Line (x1,y1,x2,y2: integer) - Chức năng: Vẽ đoạn thẳng từ điểm có tọa độ (x1,y1) đến điểm có tọa độ (x2,y2) Use graph; Begin Drive: = 0; Initgraph ( drive, mode, ‘C: TP\BGI’) Lineto (20,20) Readln; End - Cấu trúc chung: Lineto (x,y: integer) - Chức năng: Vẽ đường thẳng từ điểm đến điểm có tọa độ (x,y) (85) - Quan sát - Cho HS nêu kết - Gọi HS nêu cấu trúc chung thủ tục Linerel - Giải thích các thông số - HS trả lời thủ tục - Chức Linerel là gì? - HS trả lời Thủ tục Setcolor: - Trình chiếu ví dụ - Quan sát - Cho HS nêu kết - Gọi HS nêu cấu trúc chung thủ tục Setcolor - Giải thích các thông số thủ tục - Chức Setcolor là gì? Use graph Begin Drive: = 0; Initgraph ( drive, mode, ‘C: TP\BGI’) Linerel (10,10); Readln; End - Cấu trúc chung: Linerel (dx,dy: integer) - Chức năng: Vẽ đường thẳng nối điểm với điểm có tọa độ tọa độ cộng với gia số (dx,dy) Use graph; Begin Drive: = 0; Initgraph ( drive, mode, ‘C: TP\BGI’) Lineto (20,20); Setcolor (10); Lineto (20;-20); Readln; End - Cấu trúc chung: Setcolor (color: word) - HS trả lời - HS trả lời - Chức năng: Đặt màu cho nét vẽ *HĐ 3: Các thủ tục vẽ hình đơn giản và các thủ tục, hàm liên quan đến vị trí trỏ Hoạt động GV Hoạt động HS Nội dung  Trình chiếu: ví dụ - Quan sát d Các thủ tục vẽ hình đơn giản Use graph; Begin Drive: = 0; Initgraph ( drive, mode, ‘C: TP\BGI’) Circle (20, 20, 30); Elipse (50,50,30,120,50,100); Rectangle (100,100,100,200); (86) - Cho HS nêu kết - HS trả lời - Gọi HS nêu cấu - HS trả lời trúc chung các thủ tục Circle, Ellipse, Rectange - Giải thích các thông số - HS trả lời thủ tục - Chức thủ tục là gì?  Giới thiệu các hàm xác định GTLN màn hình, thủ tục chuyển trỏ tới tọa độ (x, y) *HĐ 4:Tìm hiểu số thư viện khác Hoạt động GV Hoạt động HS - Hãy nêu số thư viện - System, Dos, printer khác Pascal? - Chức thư - HS trả lời viện? - Để sử dụng các thủ tục - Khai báo và hàm chuẩn thư viện nào đó ta phải làm gì? - uses crt,graph; - Gọi HS nêu VD *HĐ 5: Củng cố - Dặn dò - Biết số thư viện chuẩn - Biết số thủ tục đồ họa đơn giản - Đọc thêm bài “Âm thanh” Readln; End - Cấu trúc chung: + Hình tròn: Circle (x,y: integer; r:word) + Elipse: Ellipse(x,y:integer; stAngle, EndAngle, Xr, Yr: word) + Hình chữ nhật: Rectange(x1,y1,x2,y2:integer) - Chức năng: + Circle:Vẽ đường tròn có tâm (x,y) và bán kính r + Elipse : Vẽ cung Elip có tâm điểm (x,y) với trục lớn xr, trục nhỏ yr, từ góc đầu StAngle đến góc cuối EndAngle + Rectange: Vẽ hình chữ nhật với (x1,y1) là tọa độ đỉnh trái trên; (x 2,y2) là tọa độ đỉnh phải e Các thủ tục và hàm liên quan đến vị trí trỏ - Hàm xác định GTLN cua màn hình: Function GetMaxX: integer; Function GetMaxY: integer; - Thủ tục chuyển trỏ tới tọa độ (x;y) Procedure MoveTo(x,y:integer); Nội dung ghi bảng Một số thư viện khác: - System: chứa các hàm sơ cấp và các thủ tục vào - Dos: chứa các thủ tục tạo thư mục, thiết lập hệ thống - Printer: cung cấp các thủ tục làm việc với máy in Sử dụng thư viện: - Khai báo thủ tục và hàm chuẩn theo cấu trúc: Uses unit1, unit2, ,unit n; (87)

Ngày đăng: 24/06/2021, 01:11

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

Tài liệu liên quan