- Giới thiệu cấu trúc chung của thủ tục Procedure tên_thủ_tụcdanh sách các tham số; Các khai báo của thủ tục; Begin Các lệnh của thủ tục; End; - Lời gọi thủ tục ta viết ở phần nào trong [r]
(1)Trêng THPT sè Bè Tr¹ch N¨m häc: 2012 - 2013 Chương I KHÁI NIỆM VỀ LẬP TRÌNH VÀ NGÔN NGỮ LẬP TRÌNH Ngày giảng: Tiết PPCT: 01 Khái niệm lập trình và ngôn ngữ lập trình A Phần chuẩn bị I Mục tiêu: Kiến thức: - Biết khái niệm chương trình dịch - Phân biệt hai loại chương trình dịch là biên dịch và thông dịch Kỹ - Biết vai trò chương trình dịch - Hiểu ý nghĩa nhiệm vụ chương trình dịch Thái độ: - Ý thức tầm quan trọng môn học và có thái độ học tập nghiêm túc, luôn từ tìm hiểu học tập II Phần chuẩn bị Chuẩn bị giáo viên: - Giáo án, SGK, sách giáo viên, sách bài tập, Projecter Chuẩn bị học sinh: - Vở ghi, sách giáo khoa, sách bài tập, đồ dùng học tập B Phần thể trên lớp I Ổn định lớp II Kiểm tra bài cũ: III Bài Đặt vấn đề Trong chương trình lớp 10 các em đã biết đến số khái niệm: ngôn ngữ lập trình, chương trình dịch; bài học hôm chúng ta tìm hiểu thêm số khái niệm Nội dung bài Hoạt động giáo viên 1.Hoạt động1 Giáo viên đưa nội dung bài toán tìm phương trình bậc ax + b = Và kết luận nghiệm phương trình bậc - Hãy xác định các yếu tố Inputvà Output bài toán ? - Hãy xác định các bước để tìm output? Gi¸o viªn: NguyÔn ThÞ Kim Hoạt động học sinh Quan sát nội dung bài toán và theo dõi yêu cầu giáo viên - Input : a, b- output : x=-b/a Vô nghiệm, Vô số nghiệm Bước : Nhập a, b Bước : Nếu a<>0 kết luận có nghiệm x=b/a Bước : Nếu a=0 và b<>0, kết luận vô nghiệm Bước : Nếu a=0 và b=0, kết luận vô số TIN HäC 11 (2) Trêng THPT sè Bè Tr¹ch N¨m häc: 2012 - 2013 nghiệm - Ngôn ngữ Tiếng Anh - Diễn giải; hệ thống các bước này gọi là thuật toán - Nếu trình bày thuật toán với người nước ngoài, em dùng ngôn ngữ nào dể diễn đạt? - Nếu diễn đạt thuật toán này cho máy hiểu, em dùng ngôn ngữ nào? - Diễn giải : Hoạt động để diễn đạt thuật toán thông qua ngôn ngữ lập trình gọi là lập trình - Yêu cầu học sinh đọc sách giáo khoa và cho biết khái niệm lập trình - Em dùng ngôn ngữ lập trình - Lập trình là việc sử dụng cấu trúc liệu và các lệnh ngôn ngữ lập trình cụ thể để mô tả liệu và diễn đạt các thao tác thuật toán - Hỏi : Kết hoạt động lập - Ta chương trình trình? Phát phiếu học tập Yêu cầu các em Tham lhảo sách giáo khoa và sử dụng vốn ghi các loại ngôn ngữ lập trình mà em hiểu biết tin học để điền phiếu học tập biết (Sử dụng kĩ thuật động não viết) - Đọc nội dung số phiếu học tập - Ngôn ngữ máy cho lớp cùng nghe - Hợp ngữ - Ngôn ngữ bậc cao - Hỏi : Em hiểu nào ngôn ngữ máy, hợp ngữ và ngôn ngữ bậc - Phải sử dụng chương trình dịch để cao? chuyển đổi - Hỏi : Làm nào để chuyển chương trình viết từ ngôn ngữ bậc cao sang ngôn ngữ máy? - Hỏi : Vì không lập trình trên ngôn ngữ máy để khỏi phải công chuyển đổi mà người ta thường lập trình ngôn ngữ bạc cao? - Lập trình ngôn ngữ bậc cao dễ viết vì các lệnh mã hóa gần với ngôn ngữ tự nhiên Lập trình trên ngôn ngữ máy khó, thường các chuyên gia lập trình lập trình HS suy nghĩ trả lời câu hỏi 2.Hoạt động Em muốn giới thiệu trường mình cho người khách du lịch quốc tế Chú ý lắng nghe ví dụ giáo viên và thảo biết tiếng Anh, có hai cách để thực luận để tìm ví dụ tương tự : Cách : Cần người biết tiếng Anh, dịch câu nói em sang tiếng Anh cho người khách Gi¸o viªn: NguyÔn ThÞ Kim TIN HäC 11 (3) Trêng THPT sè Bè Tr¹ch N¨m häc: 2012 - 2013 Cách : Em soạn nội dung cần giới thiệu giấy và người phiên dịch dịch toàn nội dung đó sang tiếng Anh đọc cho người khách - Hãy lấy ví dụ tương tự thực tế biên dịch và thông dịch từ tiếng Anh sang tiếng Việt - Khi thủ trưởng chính phủ trả lời vấn trước nhà báo quốc tế, họ thường cần người thông dịch để dịch câu tiếng Việt sang tiếng Anh - Khi thủ tướng đọc bài diễn văn tiếng Anh trước Hội nghị, họ cần người phiên dịch để chuyển văn tiếng Việt thành tiếng Anh Nghiên cứu sách giáo khoa và suy nghĩ để trả lời Yêu cầu học sinh nghiên cứu sách - Biên dịch : giáo khoa và sử dụng các ví dụ trên để Bước : Duyệt, phát lỗi, kiểm tra tính cho biết các bước tiến trình đúng đắn lệnh chương trình thông dịch và biên dịch nguồn Bước : Dịch toàn chương trình nguồn thành chương trình trên ngôn ngữ máy (Thuận tiện cho các chương trình ổn định và cần thực nhiều lần) - Thông dịch : Bước : Kiểm tra tính đúng đắn lệnh chương trình nguồn Bước : Chuyển lệnh đó thành ngôn ngữ máy Bước : Thực các câu lệnh vừa chuyển đổi (phù hợp với môt trường đối thoại người và máy) IV Đánh giá cuối bài Những nội dung đã học - Khái niệm lập trình và ngôn ngữ lập trình - Khái niệm chương trình dịch - Có hai loại chương trình dịch là biên dịch và thông dịch Câu hỏi trắc nghiệm: Câu 1: Ngôn ngữ lập trình dùng để làm gì? a Viết chương trình b Dịch chương trình c Soạn thảo văn d Kiểm tra chương trình Câu 2: Có loại chương trình dịch? a b c d Ngày giảng: Tiết PPCT: 02 CÁC THÀNH PHẦN CỦA NGÔN NGỮ LẬP TRÌNH A phần chuẩn bị Gi¸o viªn: NguyÔn ThÞ Kim TIN HäC 11 (4) Trêng THPT sè Bè Tr¹ch N¨m häc: 2012 - 2013 I Mục tiêu: Kiến thức: - Nắm các thành phần ngôn ngữ lập trình nói chung - Biết số khái niệm như: tên, tên chuẩn, tên dành riêng… Kỹ - Phân biệt tên chuẩn với tên dành riêng và tên tự đặt - Nhớ các qui định tên, và biến - Biết đặt tên đúng, nhận biết tên sai Thái độ - Ý thức tầm quan trọng môn học và có thái độ học tập nghiêm túc, luôn từ tìm hiểu học tập II Phần chuẩn bị Chuẩn bị giáo viên: - Giao án, SGK, sách giáo viên, sách bài tập, Projecter Chuẩn bị học sinh: - Vở ghi, sách giáo khoa, sách bài tập , đồ dùng học tập B Phần thể trên lớp I Ổn định lớp Kiểm tra sĩ số: II Kiểm tra bài cũ : -Trình bày khái niệm lập trình và ngôn ngữ lập trình - Các loại ngôn ngữ lập trình III Bài Đặt vấn đề Nội dung bài Hoạt động giáo viên Hoạt động học sinh Hoạt động * Độc lập suy nghĩ và trả lời Đặt vấn đề : Có yếu tố nào dùng - Bảng chữ cái tiếng Việt, số, dấu để xây dựng nên ngôn ngữ tiếng Việt? - Cách ghép các kí tự thành từ, phép từ thành câu - Ngữ nghĩa từ thành câu * Diễn giải : Trong ngôn ngữ lập trình * Lắng nghe và ghi nhớ tương tự vậy, nó gồm có các thành phần : Bảng chữ cái, cú pháp và ngữ nghĩa * Chia lớp thành nhóm, phát bìa * Nghiên cứu sách giáo khoa, thảo luận và bút cho nhóm và yêu cầu theo nhóm và điền phiếu học tập : nhóm thực nhiệm vụ : Hoạt động * Nghiên cứu sách giáo khoa và trả lời * Đặt vấn đề : Mọi đối tượng - Gồm chữ số, chữ cái, dấu gạch chương trình phải đặt tên - Bắt đầu chữ cái dấu gạch - Hãy nghiên cứu sách giáo khoa, trang 10, để nêu quy cách đặt tên Turbo - Độ dài không quá 127 Gi¸o viªn: NguyÔn ThÞ Kim TIN HäC 11 (5) Trêng THPT sè Bè Tr¹ch Pascal? * Treo tranh chứa các tên đúng – sai, yêu cầu học sinh chọn tên đúng A A BC 6Pq R12 X#y 45 - Tiểu kết cho vấn đề này việc khẳng định lại các tên đúng * Yêu cầu học sinh nghiên cứu sách giáo khoa (trang 10 – 11 ) để biết các khái niệm tên giành riêng, tên chuẩn và tên người lập trình đặt - Chia lớp thành nhóm, nhóm trình bày hiểu biết mình loại tên và cho ví dụ - Treo tranh chứa số tên ngôn ngữ lập trình Pascal đã chuẩn bị sẵn : Program Abs Interger Type Xyx Byte tong - Phát bìa và bút cho nhóm và yêu cầu học sinh nhóm thực : + Xác định tên giành riêng + Xác định tên chuẩn + Xác định tên tự đặt - Thu phiếu học tập ba nhóm, chiếu kết lên bảng, gọi học sinh nhóm khác nhận xét bổ sung - Tiểu kết cho vấn đề này cách bổ sung thêm cho nhóm để đưa trả lời đúng Hoạt đông * Yêu cầu học sinh cho số ví dụ số, xâu và logic N¨m häc: 2012 - 2013 * Quan sát tranh và trả lời A R12 45 * Nghiên cứu sách giáo khoa để trả lời - Thảo luận theo nhóm và điền phiếu học tập - Quan sát tranh và điền phiếu học tập Tên dành riêng : Program type Tên chuẩn : Abs Interger Byte Tên tự đặt : Xyx Tong - Quan sát kết nhóm khác và nhận xét, đánh giá và bổ sung - Theo dõi bổ sung giáo viên để hoàn thiện kiến thức * Độc lập suy nghĩ và trả lời - Hằng số : 50 60.5 - Hằng xâu : “Ha Noi” “A” - Hằng logic : False - Hằng số học là các số nguyên và số thực, có dấu không dấu - Hằng xâu : Là chuỗi kí tự mã - Trình bày khái niệm số, ASCII, đặt cặp dấu nháy - Hằng logic : Là giá trị đúng (true) xâu và logic * Ghi bảng : Xác định số và Hoặc sai ( False) * Quan sát bẳng và trả lời xâu các sau : - Hằng số : - 32767, 1.5E+2 - 32767 - Hằng xâu : “QB” “50” “QB” Gi¸o viªn: NguyÔn ThÞ Kim TIN HäC 11 (6) Trêng THPT sè Bè Tr¹ch “50” 1.5E+2 * Yêu cầu học sinh nghiên cứu sách giáo khoa, cho biết khái niệm biến - Cho ví dụ biến * Yêu cầu học sinh nghiên cứu sách giáo khoa và cho biết chức chú thích chương trình - Cho ví dụ dòng chú thích - Hỏi : Tên biến và tên là tên dành riêng hay tên chuẩn hay tên người lập trình đặt ? - Hỏi : Các lệnh viết cặp dấu {} có TP thực không? Vì sao? N¨m häc: 2012 - 2013 * Nghiên cứu sách giáo khoa và trả lời - Biến là đại lượng đặt tên dùng để lưu trữ giá trị Giá trị này có thể thay đổi quá trình thực chương trình phải khai báo - Vị dụ hai tên biến là : Tong, xyz * Độc lập tham khảo sách giáo khoa để trả lời - Cú thích đặt cặp dấu { } (* *) dùng để giải thích cho chương trình rõ ràng dễ hiểu - {Lenh xuat du lieu} - Là tên người lập trình đặt - Không Vì đó là dòng chú thích IV Đánh giá cuối bài Những nội dung đã học - Thành phần ngôn ngữ lập trình : Bảng chữ, cú pháp và ngữ nghĩa - Khái niệm : Tên, tên chuẩn, tên dành riêng, tên người lập trình đặt, hằng, biến và chú thích Câu hỏi trắc nghiệm: Câu 1: Cho biết tên nào sau đây là sai? a Begin b Abc_2 c 2345 d Real Câu 2: Đâu là xâu? a 'Tin Hoc' b Tin hoc c True d False Câu 3: Có loại hằng? a b c d Ngày giảng: Tiết PPCT: 03 BÀI TẬP I MỤC TIÊU Kiến thức - Biết có lớp ngôn ngữ lập trình và các mức ngôn ngữ lập trình: ngôn ngữ máy, hợp ngữ và ngôn ngữ bậc cao - Biết vai trò chương trình dịch Gi¸o viªn: NguyÔn ThÞ Kim TIN HäC 11 (7) Trêng THPT sè Bè Tr¹ch N¨m häc: 2012 - 2013 - Biết khái niệm biên dịch và thông dịch - Biết các thành phần ngôn ngữ lập trình: bảng chữ cái, cú pháp và ngữ nghĩa - Biết các thành phần sở Pascal: bảng chữ cái, tên, tên chuẩn, tên riêng (từ khóa), và biến Kĩ năng: Biết viết và tên đúng ngôn ngữ lập trình cụ thể Về tư và thái độ: Nhận thức quá trình phát triển ngôn ngữ lập trình gắn liền với quá trình phát triển tin học nhằm giải các bài toán thực tiễn ngày càng phức tạp Ham muốn học ngôn ngữ lập trình cụ thể để có khả giải các bài toán máy tính điện tử II ĐỒ DÙNG DẠY HỌC Giáo viên: chuẩn bị nội dung để giải bài tập cuối chương và số câu hỏi trắc nghiệm chương Học sinh: Ôn lại kiến thức chương, chuẩn bị bài tập cuối chương III HOẠT ĐỘNG DẠY HỌC Hoạt động 1: Kiểm tra bài cũ T/ Hđ GV Hđ HS g Phân biệt Hằng và Biến? Cho HS1: trả lời số biến đúng? Đâu là từ khóa các tên sau đây? Hs2: trả lời (Begin và Do) Integer Begin Do int chan tong - Nhận xét, đánh giá cho điểm Hoạt động 2: T/ Hđ GV g ĐVĐ: Trước giải bài tập SGK, các em tự ôn lại số kiến thức mà chúng ta đã học các bài trước dựa trên yêu cầu câu hỏi trang 13 SGK Hđ HS Nd ghi bảng - Đọc yêu cầu câu hỏi và bài tập cuối chương trang 13 SGK - Suy nghĩ để đưa phương án trả lời Đặt câu hỏi số 1: Tại người ta phải xây dựng các ngôn ngữ lập trình bậc cao? - Nhận xét, đánh giá và bổ sung hướng dẫn cho học sinh trả lời câu hỏi Câu 1:Ngôn ngữ bậc cao + gần với ngôn ngữ tự nhiên hơn, + không phụ thuộc vào phần cứng máy tính và chương trình có thể thực trên nhiều máy tính - Suy nghĩ, trả lời câu khác nhau; hỏi + dễ hiểu, dễ hiệu chỉnh và dễ nâng cấp; + cho phép làm việc với nhiều kiểu liệu và cách tổ chức liệu đa dạng, thuận tiện cho mô tả thuộc toán Gi¸o viªn: NguyÔn ThÞ Kim TIN HäC 11 (8) Trêng THPT sè Bè Tr¹ch N¨m häc: 2012 - 2013 số 1: Câu 2: Trình biên dịch: duyệt, Đặt câu hỏi 2: Biên - Suy nghĩ, trả lời câu kiểm tra, phát lỗi, xác dịch và thông dịch khác hỏi định chương trình nguồn nào? có dịch không? dịch toàn chương trình Phân tích câu trả lời nguồn thành chương học sinh trình đích có thể thực trên máy và có thể lưu trữ lại để sử dụng sau cần thiết Trình thông dịch dịch câu lệnh ngôn ngữ máy thực câu lệnh vừa dịch báo lỗi không dịch Hoạt động 3: T/ Hđ GV g Đặt câu hỏi 3: Hãy cho biết các điểm khác tên dành riêng và tên chuẩn? Viết tên đúng quy tắctrong Pascal? - Gọi hs trả lời và cho ví dụ - Phân tích câu trả lời học sinh Hỏi: Nêu lại quy tắc đặt tên Pascal? - Gọi học sinh lên bảng cho ví dụ tên người lập trình đặt *Nhận xét, sửa chữa, góp ý Hđ HS Nd ghi bảng Câu 3: Tên dành riêng không dùng khác với ý nghĩa đã xác định, tên chuẩn có thể dùng với ý Suy nghĩ, trả lời, giải nghĩa khác thích VD: Tên dành riêng Pascal: program, uses, Trả lời const, type, var, begin, end Tên chuẩn: Pascal Lên bảng abs, integer Chú ý, ghi nhớ Hoạt động 4: T/ Hđ GV Hđ HS Nd ghi bảng g Đặt câu hỏi 4: Hãy cho Trả lời giải thích Câu 4: Gi¸o viªn: NguyÔn ThÞ Kim TIN HäC 11 (9) Trêng THPT sè Bè Tr¹ch biết những1 biểu diễn 150.0 nào 2đây–22 không phải là biểu diễn 6,23hằng Pascal rõ và‘43’ trường hợp: A20 - Nhận xét, 6giải 1.06Ethích N¨m häc: 2012 - 2013 hằngcâu số số K xâu K số IV ĐÁNH GIÁ CUỐI 15 BÀI Câu hỏi, bài tập7về nhà 4+6 b/thức Xem trước8 Chương ‘C gồm K các bài: Cấu trúc chương trình và Một số kiểu liệu chuẩn Xem9 trước nội dung ‘TRUE’ hằngphụ xâulục B phần 3: Một số kiểu liệu chuẩn (trang 129 Sgk) VII RÚT KINH NGHIỆM: - Gi¸o viªn: NguyÔn ThÞ Kim TIN HäC 11 (10) Trêng THPT sè Bè Tr¹ch N¨m häc: 2012 - 2013 Chương : CHƯƠNG TRÌNH ĐƠN GIẢN Ngµy gi¶ng: TiÕt PPCT: 04 CÊu tróc ch¬ng tr×nh m«t sè kiÓu d÷ liÖu chuÈn I Mục tiêu Kiến thức - Biết cấu trúc chung chương trình - Biết số kiểu liệu chuẩn: Nguyên, thực, kí tự, logic - Biết cấu trúc chung khai báo biển Kĩ - Sử dụng kiểu liệu và khai báo biến để viết chương trình đơn giản II Đồ dùng dạy học Chuẩn bị giáo viên - Máy vi tính và máy chiếu projector dùng để chiếu các ví dụ - Tranh có chứa số khai báo biến để học sinhc họn đúng – sai - Một số chương trình mẫu viết sẵn Chuẩn bị học sinh - Sách giáo khoa III Hoạt động dạy – học Hoạt động : Tìm hiểu cấu trúc chung và các thành phần chương trình a Mục tiêu: - Học sinh biết chương trình có hai phần và nội dung phần b Nội dung: - Cấu trúc chương trình có hai phần: Phần khai báo và phần thân - Phần khai báo : Khai báo tên chương trình, khai báo thư viện sử dụng, khai báo hằng, khai báo biến và khai báo chương trình - Phần thân chương trình : Bao gồm dãy các lệnh đặt cặp dấu hiệu mở đầu và kết thúc Mở đầu Các câu lệnh; Kết thúc c Các bước tiến hành: Hướng dẫn giáo viên Hoạt động học sinh Phát vấn gợi ý : Một bài tập làm Lắng nghe và suy nghĩ trả lời : văn em thường viết có phần? Các - Có ba phần phần có thứ tự không? Vì phải chia - Có thứ tự : Mở bài, thân bài, kết luận vậy? - Dễ viết, dễ đọc, dễ hiểu nội dung Nghiên cứu sách giáo khoa, thảo luận Yêu cầu học sinh nghiên cứu sách và trả lời giáo khoa để trả lời các câu hỏi sau: + Hai phần : - Một chương trình có cấu trúc [<phần khaibáo>] Gi¸o viªn: NguyÔn ThÞ Kim TIN HäC 11 (11) Trêng THPT sè Bè Tr¹ch N¨m häc: 2012 - 2013 phần? <Phần thân chương trình> - Khai báo tên chương trình, khai báo - Trong phần khai báo có khai thư viện chương trình con, khai báo hằng, báo nào? khai báo biến và khai báo chương trình - Cấu trúc : Program ten_chuong_trinh ; - Yêu cầu học sinh lấy ví dụ khai báo Ví dụ : Program tinh_tong ; tên chương trình ngôn ngữ Pascal - Cấu trúc : Uses tên_thư_viện; Ví dụ : Uses crt ; - Yêu cầu học sinh lấy ví dụ khai báo thư viện chương trình ngôn ngữ - Cấu trúc : Const tên_hằng = giá_trị; Pascal Ví dụ : Const maxn=100; - Yêu cầu học sinh lấy ví dụ khai báo - Cấu trúc : Var ngôn ngữ Pascal tên_biến=kiểu_dữ_liệu; - Yêu cầu học sinh lấy ví dụ khai báo Ví dụ : Var a, b, c : integer; biến ngôn ngữ Pascal Begin - Yêu cầu học sinh cho biết cấu trúc Dãy các lệnh; chung phần thân chương trình End ngôn ngữ lập trình Pascal Quan sát tranh và trả lời Tìm hiểu chương trình đơn giản - Chiếu lên bảng chương trình đơn giản ngôn ngữ C++ # include <stdio.h> void main() - Phần khai báo có khai báo thư { viện stdio.h Printf(“Xin chao cac ban”); - Phần thân {} } - Lệnh printf dùng để đưa thông báo - Hỏi : Phần khai báo chương màn hình trình? - Hỏi : Phần thân chương trình, lệnh prìnt có chức gì? - Chiếu lên bảng chương trình đơn giản ngôn ngữ Pascal Program VD1 ; Var x,y:byte; t:word; Begin t:=x+y; - Khai báo tên chương trình : Writeln(t); Program VD1; readln; - Khai báo biến : Var x, y:byte ; End t:word; - Hỏi : Phần khai báo chương Var x, y:byte; t:word; trình? - Còn lại là phần thân Gi¸o viªn: NguyÔn ThÞ Kim TIN HäC 11 (12) Trêng THPT sè Bè Tr¹ch N¨m häc: 2012 - 2013 - Lệnh gán, lệnh đưa thông báo màn hình - Hỏi : Phần thân chương trình? Có Thảo luận và trả lời lệnh nào thân chương trình? Begin Writeln(“Hello”); Readln; Yêu cầu học sinh lấy ví dụ End chương trình Pascal không có phần tên và phần khai báo Hoạt động : Tìm hiểu số liệu chuẩn a Mục tiêu : - Biết tên số kiểu liệu chuẩn, biết giới hạn biểu diễn loại kiểu liệu đó b Nội dung: c Các bước tiến hành Hướng dẫn giáo viên Hoạt động học sinh Đặt vấn đề: Trong toán học, để thực Chú ý, Lắng nghe và suy nghĩ trả lời: tính toán ta cần phải có các tập - Số tự nhiên, số nguyên, số hữu tỉ, số số Đó là các tập số nào? thực - Diễn giải: Cũng tương tự vậy, ngôn ngữ lập trình Pascal, để lập trình giải các bài toán, cần có các tập hợp, tập hợp có giới hạn - Liên tưởng các tập số toán học định - Các em có thể hiểu nôm na: Kiểu với kiểu liệu Pascal? liệu chuẩn là tập hữu hạn các giá trị, kiểu liệu cần dung lượng nhớ cần thiết để lưu trữ và xác định các Nghiên cứu sách giáo khoavà trả lời phép toán có thể tác động lên liệu Yêu cầu học sinh nghiên cứu sách - Có kiểu: Kiểu nguyên, kiểu thực, giáo khoa, trả lời các câu hỏi sau: - Có bao nhiêu kiểu liệu chuẩn kiểu kí tự và kiểu logic - Có loại: Byte, word, integer và ngôn ngữ Pascal? - Trong ngôn ngữ Pascal, có longint kiểu nguyên nào thường dùng, phạm vi - Có loại: real, extended biểu diển loại? - Trong ngôn ngữ Pascal, có kiểu số thực nào thường dùng, phạm vi - Có loại: Char biểu diễn loại? - Trong ngôn ngữ Pascal, có bao nhiêu - Có loại: boolean, gồm phần tử: kiểu kí tự? True và False - Trong ngôn ngữ Pascal, có bao nhiêu Chú ý lắng nghe và ghi nhớ Gi¸o viªn: NguyÔn ThÞ Kim TIN HäC 11 (13) Trêng THPT sè Bè Tr¹ch N¨m häc: 2012 - 2013 kiểu logic, gồm các giá trị nào? Giáo viên giải thích số vấn đề cho học sinh: + Vì phạm vi biểu diễn các loại kiểu nguyên khác nhau? + Miền giá trị các loại kiểu thực, số chữ số có nghĩa? Phát vấn: Muốn tính toán trên các giá trị : 7.5 ta phải sử dụng liệu gì? Suy nghĩ và trả lời Kiểu Real IV Đánh giá cuối bài Những nội dung đã học - Một chương trình gồm có hai phần: Phần khai báo và phần thân - Các kiểu liệu chuẩn: Kiểu số nguyên, kiểu số thực, kiểu kí tự, kiểu logic - Mọi biến chương trình phải khai báo Cấu trúc chung khai báo biến Pascal: Var tên_ biến: tên_kiểu_dữ_liệu; Câu hỏi trắc nghiệm: Câu 1: Một chương trình có phần? a b c d Câu 2: Phần nào sau đây có thể có không? a Phần thân chương trình b Phần khai báo c Cả V RÚT KINH NGHIỆM: -Ngày Tháng Tổ trưởng Năm 2012 Phạm Sinh Huyền Gi¸o viªn: NguyÔn ThÞ Kim TIN HäC 11 (14) Trêng THPT sè Bè Tr¹ch N¨m häc: 2012 - 2013 Ngµy gi¶ng: TiÕt PPCT: 05 khai b¸o biÕN PHÐP TO¸N, BIÓU THøC, C¢U LÖNH G¸N I Mục tiêu Kiến thức - Biết các phép toán thông dụng ngôn ngữ lập trình - Biểu diễn đạt hình thức ngôn ngữ lập trình - Biết chức lệnh gán - Biết cấu trúc lệnh gán và số hàm chuẩn trông dụng ngôn ngữ lập trình Pascal kĩ - Sử dụng các phép toán để xây dựng biểu thức - Sử dụng lệnh gán để viết chương trình II Đồ dùng dạy học Chuẩn bị giáo viên - Sách giáo khoa, tranh chứa các biểu thức toán học - Tranh chứa bảng các hàm số học chuẩn, tranh chứa bảng chân trị - Máy vi tính và máy chiếu Projector Chuẩn bị học sinh - Sách giáo khoa III Hoạt động dạy – học Hoạt động 1: Tìm hiểu cách khai báo biến a Mục tiêu: - Học sinh biết biến dùng chương trình phải khai báo tên và kiểu liệu - Học sinh biết cấu trúc chung khai báo biến ngôn ngữ Pascal, khai báo biến lập trình b Nội dung: c Các bước tiến hành Hướng dẫn giáo viên Hoạt động học sinh Yêu cầu học sinh nghiên cứu sách Nghiên cứu sách giáo khoa và trả lời giáo khoa và cho biết vì phải khai - Mọi biến dùng chương trình báo biến? 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à địa nhớ nơi lưu giữ giá trị biến - Var <danh sách biến>: <kiểu - Cấu trúc chung khai báo biến liệu>; ngôn ngữ Pascal Var x: word; - Cho ví dụ để khai báo biến y: char; nguyên và biến kiểu kí tự Quan sát tranh và chọn khai báo Treo tranh có chứa số khai báo Gi¸o viªn: NguyÔn ThÞ Kim TIN HäC 11 (15) Trêng THPT sè Bè Tr¹ch N¨m häc: 2012 - 2013 và yêu cầu học sinh chọn khai báo đúng đúng ngôn ngữ lập trình Pascal? Var x, y, z: word; Var n 1: real; x, y, z: word; X: longint; i: byte; h: integer; i: byte; Treo tranh có chứa số khai báo Quan sát tranh và trả lời biến Pascal - Có biến - Hỏi: Có bao nhiêu biến tất cả, Bộ - Tổng nhớ cần cấp phát nhớ phải cấp phát là bao nhiêu? x (2 byte); y (2 byte); z (4 byte); Var x, y: word; h (2 byte); i (1 byte); tỏng 11 byte z: longint; h: integer; i: byte; Hoạt động : Tìm hiểu số phép toán a Mục tiêu: - Học sinh biết tên các phép toán, kí hiệu các phép toán và cách sử dụng các phép toán kiểu liệu b Nội dung: - Các phép toán số học: + - * / DIV MOD - Các phép toán quan hệ: <, <=, >, >=, =, <> Dùng để so sánh hai đại lượng, kết các phép toán này là True Flase - Các phép toán logic: NOT, OR, AND, thường dùng để tạo các biểu thức logic từ các biểu thức quan hệ đơn giản c Các bước tiến hành: Hướng dẫn giáo viên §ặt vấn đề: để mô tả các thao tác thuật toán, ngôn ngữ lập trình đếu sử dụng số khái niệm bản: Phép toán, biểu thức, gán giá trị Phát vấn: Hãy kể các phép toán em đã học toán học - Diễn giải: Trong ngôn ngữ lập trình Pascal có các phép toán đó diễn đạt cách khác - Yêu cầu học sinh nghiên cứu sách giáo khoa và cho biết các nhóm phép toán - Hỏi : Phép Div, Mod sử dụng Gi¸o viªn: NguyÔn ThÞ Kim Hoạt động học sinh Chú ý lắng nghe Suy nghĩ và trả lời : - Phép: Cộng, trừ, nhân, chia, lấy số dư, chia lấy nguyên, so sánh - Các phép toán số học: + - * / div mod - Các phép toán quan hệ: <, <=, >, >=, =, <> - Các phép toán logic: And, Or, Not - Chỉ sử dụng cho kiểu nguyên TIN HäC 11 (16) Trêng THPT sè Bè Tr¹ch N¨m häc: 2012 - 2013 cho kiểu liệu nào? - Thuộc kiểu logic - Hỏi: Kết phép toán quan hệ thuộc kiểu liệu nào? hoạt động 3: Tìm hiểu biểu thức a Mục tiêu: - Học sinh biết khái niệm biểu thức số học, biểu thức quan hệ và biểu thức logic Biết cách xây dựng các biểu thức đó - Biết số hàm số học chuẩnn lập trình b Nội dung: c Các bước tiến hành Hướng dẫn giáo viên Nêu vấn đề: toán học ta làm quen với khái niệm biểu thức, hãy cho biết yếu tố xây dựng nên biểu thức - Nếu bài toán mà toán hạng là biến số, số hàm số và toán tử là các phép toán số học thì biểu thức có tên gọi là gì? Treo tranh có chứa biểu thức toán học lên bảng, yêu cầu: Sử dụng các phép toán số học, hãy biểu diễn biểu thức toán học sau thành biểu thức ngôn ngữ lập trình 2a+5b+c xy 2z x+y + x2 1- 2z z - Nghiên cứu sách giáo khoa và từ việc xây dựng các biểu thức trên, hãy nêu thứ tự thực các phép toán Nêu vấn đề: toán học ta đã làm quen với số hàm số học, hãy kể tên số hàm đó? - Trong số ngôn ngữ lập trình ta có số hàm diễn đạt cách khác - Treo tranh chứa bảng số hàm chuẩn, yêu cầu học sinh điền thêm các thông tin chứac hàm , kiểu đối số và kiểu hàm số cho biểu thức: -b + Gi¸o viªn: NguyÔn ThÞ Kim Hoạt động học sinh Suy nghĩ và trả lời - Gồm hai phần: Toán hạng và toán tử - Biểu thức số học Quan sát và trả lời 2*a+5*b+c x*y/(2*z) ((x+y)/(1 – (2 /z)))+(x*x/(2*z)) - Thực ngoặc trước; Ngoài ngoặc sau Nhân, chia, công, trừ sau Suy nghĩ và trả lời Hàm tri tuyệt đối, hàm bậc hai, hàm sin, hàm cos - Quan sát tranh vẽ, nghiên cứu sách giáo khoa và lên bảng điền tranh - Suy nghĩ, lên bảng trả lời (-b+sqrt(b*b – 4*a*c))/(2*a) TIN HäC 11 (17) Trêng THPT sè Bè Tr¹ch N¨m häc: 2012 - 2013 hãy biểu diễn biểu thức trên sang biểu thức ngôn ngữ lập trình Suy nghĩ và trả lời Nêu vấn đề : Khi hai biểu thức số - Gọi là biểu thức quan hệ học liên kết với phép toán quan hệ ta biểu thức mới, biểu - Ví dụ: 2*x<y thức đó gọi là biểu thức gì? - Cấu trúc chung: - Hãy lấy ví dụ biểu thức quan <BT1> <phép toán qh> <BT2> hệ? - Yêu cầu học sinh nghiên cứu sách + Tính giá trị biểu thức giáo khoa và cho biết cấu trúc chung + Thực phép toán quan hệ biểu thức quan hệ? - Thứ tự thực biểu thức quan - Kiểu logic hệ? - Cho biết kết phép toán quan Chú ý theo dõi dẫn dắt giáo viên hệ thuộc kiểu liệu nào đã học? Nêu vấn đề: Các biểu thức quan hệ và suy nghĩ để trả lời liên kết với phép toán Logic gọi là biểu thức Logic - Ví dụ: (A>B) or ((X+1)<Y) và (5>2) - Hãy cho số ví dụ biểu thức and ((3+2)<7) logic - Biểu thức ngôn ngữ lập trình : - toán học ta có biểu thức 5<=x<=11, hãy biểu diễn biểu thức này (5<=x) and (x<=11) + Thực các biểu thức quan hệ ngôn ngữ lập trình + Thực phép toán logic - Thứ tự thực biểu thức logic - Kiểu logic - Kết biểu thức logic có kiểu - Học sinh suy nghĩ và trả lời liệu gì? - Treo tranh có chứa bảng chân trị cách điền vào bảng A và B, yêu cầu học sinh điền giá trị cho A and B; A or B; not A Hoạt động : Tìm hiểu lệnh gán a Mục tiêu: - Học sinh biết chức lệnh gán lập trình Biết cấu trúc chung lệnh gán ngôn ngữ Pascal Viết lệnh đúng lập trình b Nội dung: c Các bước tiến hành: Hướng dẫn giáo viên Hoạt động học sinh - Giới thiệu số ví dụ lệnh gán - Quan sát ví dụ và suy nghĩ để trả lời Pascal sau: x:=4+8; - Giải thích: Lấy cộng 8, đem kết đặt vào x Ta x=12 Gi¸o viªn: NguyÔn ThÞ Kim TIN HäC 11 (18) Trêng THPT sè Bè Tr¹ch - Hỏi : Hãy cho biết chức lệnh gán? - Yêu cầu học sinh nghiên cứu sách giáo khoa và cho biết cấu trúc chung lệnh gán ngôn ngữ Pascal - Hãy cho ví dụ để tính nghiệm phương trình bậc hai -b - Giới thiệu thêm ví dụ: Cho chương trình Var i,z:integer; Begin z:=4; i:=6; z:=z – 1; i:=i+1; writeln(“i=”,i); writeln(“z=”,z); readln; End - Hỏi: Chương trình in màn hình giá trị bao nhiêu? - Thực chương trình để học sinh kiểm nghiệm kết tự suy luận N¨m häc: 2012 - 2013 + Tính giá trị biểu thức + Gán giá trị tính và tên biến <tên_biến>:=<biểu_thức>; x:=(-b+sqrt(b*b – 4*a*c))/(2*a); - In màn hình: z=3 và i=7 - Quan sát kết chương trình IV Đánh giá cuối bài Những nội dung đã học - Các phép toán Turbo Pascal: Số học, quan hệ và logic - Các biểu thức Turbo Pascal: Số học, quan hệ và logic - Cấu trúc lệnh gán Turbo Pascal: tên_biến :=biểu_thức; Câu hỏi trắc nghiệm: Câu 1: Cho biết khai báo biến nào sau đây là đúng ngôn ngữ Pascal? a Var x,y: word b Var x.y: word c Var x, y: word; d Var x, y; word: Câu 2: Có loại phép toán đước sử dụng ngôn ngữ lập trình Pascal? a b c d Câu 3: Cú pháp câu lệnh gán là? a <Tên_Biến>:= <Giá trị>; b <Tên_Biến>=<Giá trị>; c <Tên_Biến>=<Giá trị> d <Tên_Biến>=:<Giá trị>; Câu hỏi và bài tập nhà - Làm bài tập 5, 6, 7, 8, sách giáo khoa, trang 35 – 36; Gi¸o viªn: NguyÔn ThÞ Kim TIN HäC 11 (19) Trêng THPT sè Bè Tr¹ch N¨m häc: 2012 - 2013 - Xem phụ lục A, sách giáo khoa trang 121: Một số phép toán thường dùng và giá trị phép toán logic V RÚT KINH NGHIỆM: Ngày Tháng Tổ trưởng Năm 2012 Phạm Sinh Huyền Gi¸o viªn: NguyÔn ThÞ Kim TIN HäC 11 (20) Trêng THPT sè Bè Tr¹ch N¨m häc: 2012 - 2013 Ngµy gi¶ng: TiÕt PPCT: 06 CÁC THỦ TỤC CHUẨN VÀO/RA ĐƠN GIẢN SOẠN THẢO, DỊCH, THỰC HIỆN VÀ HIỆU CHỈNH CHƯƠNG TRÌNH I Mục tiêu Kiến thức - Biết ý nghĩa các thủ tục và/ra chuẩn lập trình - Biết cấu trúc chung thủ tục vào/ra ngôn ngữ lập trình Pascal Kĩ - Viết đúng lệnh vào/ra liệu - Biết nhập đúng liệu thực chương trình II Đồ dùng dạy học Chuẩn bị giáo viên - Sách giáo khoa, tranh chứa các biểu thức toán học, máy chiếu Projector, máy vi tính, số chương trình viết sẵn Chuẩn bị học sinh - Sách giáo khoa III Hoạt động dạy – học Hoạt động 1: Tìm hiểu thủ tục nhập liệu và từ bàn phím a Mục tiêu: - Giúp học sinh thấy cần thiết thủ tục nhập liệu - Biết cấu trúc chung thủ tục nhập liệu b Nội dung: - Dùng để đưa nhiều liệu khác cho cùng chương trình xử lí - Nhập: Read/Readln(<tên_biến_1>, ,<tên_biến_k >); c Các bước tiến hành: Hướng dẫn giáo viên Hoạt động học sinh Nêu vấn đề: Khi giải bài Chú ý lắng nghe dẫn dắt giáo viên toán, ta phải đưa liệu vào để máy tính xử lí, việc đưa liệu lệnh gán làm cho chương trình có tác dụng với liệu cố định Để chương trình giải nhiều bài toán hơn, ta pahỉ sử dụng thủ tục nhập - Nghiên cứu sách giáo khoa và suy nghĩ liệu - Yêu cầu học sinh nghiên cứu sách để trả lời giáo khoa và cho biết cấu trúc chung Read(<tên_biến_1>, ,<tên_biến_k>); thủ tục nhập liệu ngôn ngữ Readln(<tên_biến_1>, ,<tên_biến_k>); - Phải nhập giá trị cho hai biến: a, b lập trình Pascal: - Viết lệnh: Readln(a,b); - Nêu ví dụ: Khi viết chương trình giải phương trình ax+b=0, ta phải nhập Quan sát chương trình ví dụ giáo Gi¸o viªn: NguyÔn ThÞ Kim TIN HäC 11 (21) Trêng THPT sè Bè Tr¹ch N¨m häc: 2012 - 2013 vào các đại lượng nào? Viết lệnh nhập? viên Chiếu chương trình Pascal đơn giản có lệnh nhập giá trị có hai biến - Những giá trị này phải gõ cách - thực chương trình và thực ít dấu cách kí tự nhập liệu - Hỏi : Khi nhập giá trị cho nhiều xuống dòng - Lên bảng thực nhập theo yêu cầu biến, ta phải thực nào? giáo viên - Yêu cầu học sinh thực nhập liệu cho chương trình Hoạt động 2: Tìm hiểu thủ tục đưa liệu màn hình a Mục tiêu: - Giúp học sinh thấy cần thiết thủ tục đưa liệu màn hình - Biết cấu trúc chung thủ tục đưa liệu màn hình b Nội dung: - Dùng để đưa kết sau sử lí màn hình để người sử dụng thấy - Xuất: Write/Writeln(<tham_số_1>, ,<tham_số_k); c Các bước tiến hành: Hướng dẫn giáo viên Hoạt động học sinh Dẫn dắt: sau xử lí xong, kết Chú ý lắng nghe dẫn dắt giáo viên tìm được lưu nhớ Để thấy kết trên màn hình ta sử dụng thủ tục xuất liệu - Yêu cầu học sinh nghiên cứu sách - Nghiên cứu sách giáo khoa và trả lời Write(<tên_biến_1>, ,<tên_biến_k>); giáo khoa và cho biết cấu trúc chung Writeln(<tên_biến_1>, ,<tên_biến_k>); thủ tục xuất liệu ngôn ngữ - Viết lệnh : Writeln(-b/a); lập trình Pascal - Nêu ví dụ: Khi viết chương trình giải phương trình ax+b=0, ta phải đưa màn hình giá trị nghiệm –b/a, ta phải viết lệnh nào? Chiếu chương trình Pascal đơn Quan sát chương trình ví dụ giáo viên giản Program vb; Var x, y, z:integer; Begin Writeln(“nhap vao hai so:”); Readln(x, y); z:=x+y; write(x:6, y:6, z:6); readln; end - Thực chương trình và thực nhập liệu để học sinh thấy kết Gi¸o viªn: NguyÔn ThÞ Kim TIN HäC 11 (22) Trêng THPT sè Bè Tr¹ch trên màn hình - Hỏi : Chức lệnh Writeln(); - Hỏi: ý nghĩa : lệnh Write( ) - Hỏi: Khi các tham số lệnh Write() thuộc kiểu Char real thì quy định vị trí nào? - Cho ví dụ cụ thể với biến c kiểu Char và r kiểu real N¨m häc: 2012 - 2013 - Viết màn hình dòng chữ và đưa trỏ xuống dòng - Dành vị trí trên màn hình để viết số x, vị trí tiếp để viết số y và vị trí tiếp để viết số z - Khi các tham số có kiểu kí tự, việc quy định vị trí giống kiểu nguyên - Khi các tham số có kiểu thực thì phải quy định hai loại vị trí : Vị trí cho toàn số thực và vị trí cho phần thập phân - Ví dụ : Write(c:8); Write(r:8:3); Hoạt động 3: Làm quen với Turbo Pascal 7.0 a Mục tiêu: - Biết các file chương trình Turbo Pascal 7.0 Biết cách khởi động và thoát Turbo Pascal 7.0 b Nội dung: - Chuyển vào thư mục chứa file Turbo.exe - Gõ turbo.exe và enter (Nếu môi trường Win thì cần bấm biểu tượng Turbo Pascal) c Các bước tiến hành: Hướng dẫn giáo viên Hoạt động học sinh Đặt vấn đề: Để sử dụng Turbo Tham khảo sách giáo khoa và trả lời Pascal, trên máy phải có các file chương Turbo.exe trình cần thiết Tham khảo sách giáo Turbo.tpl khoa và cho biết tên các file chương trình Graph.tpu đó? Egavga.bgi và các file *.chr Học sinh quan sát và ghi nhớ Trình diễn cách khởi động Turbo Pascal thông qua máy chiếu Projector - Giới thiệu màn hình soạn thảo chương trình: Bảng chọn, trỏ, vùng soạn thảo Hoạt động 4: Tập soạn thảo chương trình và dịch lỗi cú pháp a Mục tiêu: - Học sinh biết cách tạo và lưu file chương trình Biết cách dịch và tìm lỗi cú pháp b Nội dung: - Gõ các lệnh chương trình (giống hệ soạn thảo văn bản) Gi¸o viªn: NguyÔn ThÞ Kim TIN HäC 11 (23) Trêng THPT sè Bè Tr¹ch N¨m häc: 2012 - 2013 - Lưu file chương trình trên đĩa bấm F2 - Biên dịch lỗi cú pháp : bấm ALT_F9 c Các bước tiến hành: Hướng dẫn giáo viên Hoạt động học sinh Soạn chương trình làm ví dụ, lưu Quan sát và ghi nhớ chương trình, dịch lỗi - Dùng máy chiếu vật thể để minh họa - Lưu: F2 - Dịch lỗi: ALT_F9 thap tác lưu file chương trình và biên dịch Quan sát và phát lỗi để sửa lỗi Soạn chương trình, hỏi các lỗi cho chương trình Program vd1; cú pháp chương trình, gọi học sinh var x,y:integer; dịch lỗi và sửa Begin Program vd1 Write(‘Nhap mot so nguyen var x:integer; duong); Begin readln(x); Write(‘Nhap mot so nguyen duong); y:=sqrt(x); readln(x); write(y); y:=sqrt(x); End write(y); End Hoạt động 5: Tập thực chương trình và tìm lỗi thuật toán để hiệu chỉnh a Mục tiêu: - Học sinh biết cách thực chương trình, biết cách nhập liệu và tìm lỗi thuật toán để hiệu chỉnh b Nội dung: - Thực chương trình: Bấm CTR_F9 - Xây dựng test - Nhập liệu, thu kết quả, đối chứng với kết test c Các bước tiến hành: Hướng dẫn giáo viên Hoạt động học sinh Thực chương trình đã viết Quan sát giáo viên thực và tham trên, nhập liệu, giới thiệu kết khảo sách giáo khoa - Dùng máy chiếu vật thể để minh họa thao tác thực chương trình CTRL_F9 - Hỏi : Nhóm phím dùng để thực chương trình? Gi¸o viªn: NguyÔn ThÞ Kim TIN HäC 11 (24) Trêng THPT sè Bè Tr¹ch N¨m häc: 2012 - 2013 - Yêu cầu học sinh nhập liệu và thực chương trình Giới thiệu chương trình giải phương Quan sát yêu cầu giáo viên và độc trình ax+b=0 lập suy nghĩ để tìm test Var a b x Begin 0 VSN Readln(a, b); If a<>0 then write(-b/a) else write(“PTVN”); Readln; End - Yêu cầu học sinh tìm test để chứng minh chương trình này sai IV Đánh giá cuối bài Những nội dung đã học - Khởi động Turbo Soạn thảo chương trình Dịch lỗi cú pháp Thực chương trình Tìm lỗi thuật toán và hiệu chỉnh Câu hỏi và bài tập nhà - Viết chương trình nhập vào số và tính bình phương số đó - Viết chương trình nhập độ dài bán kính và t icnhs chu vi diện tích hình tròn tương ứng - Làm các bài tập 9, 10, sách giáo khoa, trang 36 - Đọc trước nội dung phần bài tập và thực hành số 1, sách giáo khoa, trang 33 - Xem phụ lục B, sách giáo khoa, trang 122: Môi trường Turbo Pascal - Xem phụ lục B, sách giáo khoa, trang 136: Một số thông báo lỗi Gi¸o viªn: NguyÔn ThÞ Kim TIN HäC 11 (25) Trêng THPT sè Bè Tr¹ch N¨m häc: 2012 - 2013 V RÚT KINH NGHIỆM: Ngày Tháng Tổ trưởng Năm 2012 Phạm Sinh Huyền Gi¸o viªn: NguyÔn ThÞ Kim TIN HäC 11 (26) Trêng THPT sè Bè Tr¹ch N¨m häc: 2012 - 2013 Ngµy gi¶ng: TiÕt PPCT: 07 Bµi tËp I Mục đích yêu cầu: - Củng cố nội dung đã đạt đơc tiết bài tập và thực hành 1; - BiÕt sö dông c¸c thñ tôc chuÈn vµo/ra - Biết xác định Input và Output II ChuÈn bÞ: Gi¸o viªn: Phßng m¸y, ch¬ng tr×nh Pascal Häc sinh: S¸ch gi¸o khoa, s¸ch bµi tËp, vë III Hoạt động dạy – học Hoạt động 1: Tìm hiểu chương trình hoàn chỉnh a Mục tiêu: - Học sinh biết chương trình hoàn chỉnh - Biết soạn chương trình - Biết lưu, biết dịch, thực chương trình - Biết tìm lỗi và sửa lỗi b Nội dung: - Cho chương trình sau: Program giai_pt; Uses CRT; var a,b,c,d,x1,x2:read; Begin clrscr; write(‘nhap a b c’); Readln(a,b,c); d:=b*b – 4*a*c; x1:=(-b – sqrt(d))/(2*a); x2:=(-b + sqrt(d))/(2*a); writeln(‘x1=’,x1:6:2,’x2=’,x2:6:2,); Readln; End c Các bước tiến hành: Hướng dẫn giáo viên Hoạt động học sinh Chiếu chương trình lên bảng Yêu Quan sát bảng, độc lập soạn chương cầu học sinh thực các nhiệm vụ: trình vào máy - Soạn chương trình vào máy - Lưu chương trình F2 - Dịch lỗi cú pháp Alt_F9 - Thực chương trình Ctrl_F9 - Nhập liệu -3 Thông báo x1=1.00 x2=2.00 kết Enter - Trở màn hình soạn thảo Ctrl_F9 - Thực chương trình Gi¸o viªn: NguyÔn ThÞ Kim TIN HäC 11 (27) Trêng THPT sè Bè Tr¹ch - Nhập liệu Thông báo kết - Hỏi: Vì có lỗi xuất hiện? -Sửa lại chương trình không dùng biến d N¨m häc: 2012 - 2013 Thông báo lỗi Do bậc hai cảu số âm Readln(a, b, c); x1:=(-b-sqrt(b*b-4*a*c))/(2*a); x2:=(-b+sqrt(b*b-4*a*c))/(2*a); writeln(‘x1=’,x1:6:2, ‘x2=’,x2:6:2,); Hoạt động 2: Rèn luyện kĩ lập chương trình a Mục tiêu: - Học sinh soạn chương trình và lưu chương trình vào đĩa Biên dịch và thực chương trình Nhập liệu và kiểm định kết chương trình b nội dung: - Viết chương trình tính diện tích hình mô tả màu, với a nhập vào từ bàn phím vẽ hình tròn tính diện tích c Các bước tiến hành: Hướng dẫn giáo viên Hoạt động học sinh Định hướng để học sinh phân tích bài Phân tích theo yêu cầu giáo viên toán - Dữ liệu vào a - Dữ liệu vào: - Dữ liệu s - Dữ liệu ra: Tính diện tích hình tròn có bk a (s1) - Cách tính: Tính diện tích hình vuông cạnh a (s2) Yêu cầu học sinh soạn chương trình s:=sl-s2; và lưu lên đĩa Thực các yêu cầu giáo viên - Quan sát hướng dẫn học sinh lúc thực hành - Soạn thảo chương trình - Bấm phím F2, gõ tên file để lưu - Bấm phím ALT_F9 để dịch lỗi cú pháp - Bấm phím CTRL_F9 để thực chương trình Yêu cầu học sinh nhập liệu và - thông báo kết cho giáo viên thông báo kết Gi¸o viªn: NguyÔn ThÞ Kim TIN HäC 11 (28) Trêng THPT sè Bè Tr¹ch a=3 a=-3 N¨m häc: 2012 - 2013 Nhập liệu theo yêu cầu - Với a=3, ta được:s=9(Pi-2)=10.26 - Với a=-3, kết không đúng, vì độ dài cạnh phải là số dương IV Cñng cè, dÆn dß - C¸ch ph©n tÝch bµi to¸n - C¸ch khai b¸o vµ sö dông biÕn trung gian - NhËn xÐt l¹i c¸c bíc thùc hiÖn ch¬ng tr×nh - VÒ xem l¹i toµn bé tiÕt thùc hµnh - §äc tríc bµi thùc hµnh - Ngày Tháng Tổ trưởng Năm 2012 Phạm Sinh Huyền Gi¸o viªn: NguyÔn ThÞ Kim TIN HäC 11 (29) Trêng THPT sè Bè Tr¹ch N¨m häc: 2012 - 2013 Ngµy gi¶ng: TiÕt PPCT: 08 Bµi tËp vµ thùc hµnh I Mục đích yêu cầu: - Biết viết chơng trình Pascal hoàn chỉnh đơn giản; - BiÕt sö dông mét sè dÞch vô chñ yÕu cña Pascal so¹n th¶o, lu, dÞch vµ thùc hiÖn ch¬ng tr×nh II ChuÈn bÞ: Gi¸o viªn: Phßng m¸y, ch¬ng tr×nh Pascal, ch¹y ch¬ng tr×nh SGK- 34 Học sinh: Sách, vở, đọc trớc nhà phần phụ lục B (SGK-122) Môi trờng lµm viÖc cña Turbo Pascal III TiÕn tr×nh lªn líp: Hoạt động 1: Giới thiệu chơng trình Pascal Hoạt động 2: Soạn thảo, lu Hoạt động giáo viên Hoạt động học sinh - Cho häc sinh gâ l¹i ch¬ng tr×nh s¸ch - Thao t¸c trªn m¸y gi¸o khoa trang 34 (Gi¶i ph¬ng tr×nh bËc cã hai nghiÖm) - Hớng dẫn học sinh lu, cách đặt tên chơng - ấn phím F2 để lu và đặt tên chơng trình tr×nh v÷a so¹n th¶o theo yªu cÇu Hoạt động 3: Dịch và sửa lỗi cú pháp Hoạt động giáo viên Hoạt động học sinh - Hớng dẫn học sinh sửa lỗi cách nhấn - Nhấn Alt + F9 để kiểm tra tæ hîp phÝm Alt + F9 - ( §a h×nh ¶nh dÞch nÕu cã lçi , ) Hoạt động 4: Thực chơng trình, nhận xét kết chơng trình vừa thực Hoạt động giáo viên Hoạt động học sinh - Ên Ctrl + F9: thùc hiÖn ch¬ng tr×nh - Ên Ctrl + F9 thùc hiÖn ch¬ng tr×nh - NhËp d÷ liÖu - NhËp d÷ liÖu - Ph©n tÝch cho häc sinh thÊy nh÷ng trêng - NhËn xÐt kÕt qu¶ ch¬ng tr×nh võa thùc hîp a, b, c kh«ng phï hîp hiÖn Hoạt động 5: Sửa lại chơng trình không dùng biến trung gian D, dịch, thực chơng tr×nh Hoạt động giáo viên Thay biÕn trung gian D DÞch, kiÓm tra lçi có ph¸p Thùc hiÖn ch¬ng tr×nh NhËp d÷ liÖu Gi¸o viªn: NguyÔn ThÞ Kim Hoạt động học sinh - x1:= (-b-sqrt(b*b-4*a*c))/(2*a) - x2:=(-b+sqrt(b*b-4*a*c))/(2*a) Ên Alt+F9 Ên Ctrl + F9 NhËp d÷ liÖu NhËn xÐt kÕt qu¶ TIN HäC 11 (30) Trêng THPT sè Bè Tr¹ch N¨m häc: 2012 - 2013 IV Cñng cè , dÆn dß - NhËn xÐt c¸c bíc hoµn thµnh ch¬ng tr×nh - Đọc lại ví dụ SGK và ghi để thực hành tốt tiết sau Ngày Tháng Tổ trưởng Năm 2012 Phạm Sinh Huyền Gi¸o viªn: NguyÔn ThÞ Kim TIN HäC 11 (31) Trêng THPT sè Bè Tr¹ch N¨m häc: 2012 - 2013 Ngµy gi¶ng: TiÕt PPCT: 09 Bµi tËp vµ thùc hµnh I Mục đích yêu cầu: - Học sinh soạn thảo đợc chơng trình và lu chơng trình vào đĩa; - Biên dịch và thực đợc chơng trình - NhËp d÷ liÖu vµ kiÓm tra kÕt qu¶ II ChuÈn bÞ: Gi¸o viªn: Phßng m¸y, ch¬ng tr×nh Pascal Häc sinh: S¸ch gi¸o khoa, s¸ch bµi tËp, vë III Néi dung: - ViÕt ch¬ng tr×nh tÝnh chu vi vµ diÖn tÝch h×nh ch÷ nhËt víi chiÒu dµi vµ chiÒu rộng đợc nhập từ bàn phím - C¸ch bíc tiÕn hµnh: Hoạt động Giáo Viên Hoạt động Học Sinh Định hướng để Học sinh phân tích bài Phân tích theo yêu cầu Giáo viên: toán: - Dữ liệu vào: Chiều dài a, chiều rộng b Dữ liệu vào hình chữ nhật - Dữ liệu - Dữ liệu ra: diện tích s, chu vi cv - Cách tính - Cách tính: s = a x b, cv = (a + b) x 2 Thực các yêu cầu Giáo viên: Yêu cầu Học sinh soạn chương trình - Soạn chương trình và lưu trên đĩa: - Bấm phím F2, gõ tên file để lưu - Quan sát và hướng dẫn Học sinh lúc - Bấm phím ALT - F9 để dịch lỗi cú pháp thực hành - Bấm phím CTRL - F9 để thực chương trình Nhập liệu theo yêu cầu Giáo viên: Yêu cầu Học sinh nhập liệu và thông báo kết quả: Thông báo kết cho Giáo viên a=9 b=3 IV Cñng cè, dÆn dß - NhËn xÐt l¹i c¸c bíc thùc hiÖn ch¬ng tr×nh - Lµm c¸c bµi tËp SGK vµ s¸ch bµi tËp - ChuÈn bÞ cho tiÕt KiÓm tra tiÕt - Gi¸o viªn: NguyÔn ThÞ Kim TIN HäC 11 (32) Trêng THPT sè Bè Tr¹ch Gi¸o viªn: NguyÔn ThÞ Kim N¨m häc: 2012 - 2013 TIN HäC 11 (33) Trêng THPT sè Bè Tr¹ch N¨m häc: 2012 - 2013 ĐỀ KIỂM TRA TIẾT – MÔN TIN HỌC KHỐI 11 NĂM HỌC 2009 – 2010 Tự luận: Câu : Viết các khai báo cho các yêu cầu sau cho hợp lý và tốn ít nhớ nhất: a k1 là biến có thể nhận các kí tự; b songuyen là biến nguyên có thể nhận các giá trị từ -10 đến 200; Câu : Chuyển các biểu thức viết Pascal sau đây thành biểu thức toán học thông thường: a (a * a b * b) /(2 * x) b sqrt ( x) sqr (b) Câu : Viết các biểu thức quan hệ sau ngôn ngữ lập trình Pascal: a a x b b 12 b 7 Câu : Cho m = 10, n = 7, p = 10, q = -9 Hãy xác định giá trị các biểu thức sau: a sqrt (m 1) sqr (q) b trunc ( sqrt ( p 1)) sqrt (n 2) c (m n)or (q p) d (m n) (q p) Câu : Cho chương trình sau: Var x, y: integer; Begin x:=15; y:=sqr(x); y:=y+x; x:=y-x; End Hãy cho biết sau thực xong đoạn chương trình trên thì giá trị biến x và y là bao nhiêu? Câu : Viết chương trình nhập từ bàn phím số thực m và n, tính và đưa màn hình giá trị biểu thức m n Gi¸o viªn: NguyÔn ThÞ Kim TIN HäC 11 (34) Trêng THPT sè Bè Tr¹ch N¨m häc: 2012 - 2013 CHƯƠNG III : CẤU TRÚC RẼ NHÁNH VÀ LẶP Ngày giảng: Tiết PPCT: 11 CÊu tróc rÏ nh¸nh I Môc tiªu KiÕn thøc - Học sinh biết đợc ý nghĩa cấu trúc rẽ nhánh - Học sinh biết đợc cấu trúc chung cấu trúc rẽ nhánh - Biết cách sử dụng đúng hai dạng cấu trúc rẽ nhánh lập trình: dạng thiếu và dạng đủ KÜ n¨ng - Bớc đầu sử dụng đợc cấu trúc rẽ nhánh If then else ngôn ngữ lập trình Pascal để viết chơng trình giải đợc số bài toán đơn giản II §å dïng d¹y häc ChuÈn bÞ cña gi¸o viªn - M¸y vi tÝnh, m¸y chiÕu Projector, b×a trong, bót d¹, ch¬ng tr×nh mÉu gi¶i ph¬ng tr×nh bËc hai ax2 + bx + c = 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 ý nghĩa tổ chức rẽ nhánh a Môc tiªu: - Học sinh biết đợc ý nghĩa tổ chức rẽ nhánh Nắm đợc cấu trúc chung tổ chức rẽ nhánh Vẽ đợc sơ đồ giải phơng trình bậc hai ax2 + bx + c = (a<>0) b Néi dung: Sơ đồ cấu trúc rẽ nhánh c Các bước tiến hành: Gi¸o viªn: NguyÔn ThÞ Kim TIN HäC 11 (35) Trêng THPT sè Bè Tr¹ch N¨m häc: 2012 - 2013 Hướng dẫn giáo viên Hoạt động học sinh Nêu ví dụ thực tiễn minh họa cho tổ Chú ý theo dõi các dẫn dắt và ví dụ chức rẽ nhánh: giáo viên để suy nghĩ tìm ví dụ tương Chiều mai trời không mưa An tự xem đá bóng, trời mưa thì An xem ti vi nhà - Yêu cầu học sinh tìm thêm số ví - Nếu đội tuyển bóng đá Việt Nam dụ tương tự thắng đội Indonesia thì đá tiếp tranh huy chương vàng với Thái Lan, không thắng Indonesia thì Việt Nam - Yêu cầu học sinh đưa cấu trúc tranh huy chương đồng với Mianmar chung các diễn đạt đó - Nếu thì không thì - Yêu cầu học sinh lấy ví dụ có - Nếu làm xong bài tập sớm An sang cấu trúc chung dạng khuyết và đưa nhà Ngọc chơi cấu trúc chung đó Nếu thì Nếu các bước để kết luận nghiệm Theo dõi và thưc yêu cầu phương trình bậc hai ax2 +bx+c = giáo viên + Tính delta + Nếu delta<0 thì kết luận phương trình vô nghiệm + Nếu delta>=0 thì kết luận phương trình có nghiệm: x = (-b+sqrt(delta))/(2a) - Chia nhóm lớp thành nhóm và yếu x = (-b – sqrt(delta))/(2a) cầu vẽ sơ đồ thực các bước trên - Thực vẽ sơ đồ (giống phần bìa nội dung) - Chọn hai bài để chiếu lên bảng, gọi học sinh thuộc nhóm khác nhận xét đánh - Nhận xét, đánh giá và bổ sung thiếu sót nhóm khác giá kết và bổ sung Tiểu kết cho hoạt động này cách bổ sung và chính xác bài tập Quan sát hình vẽ các nhóm khác và giáo viên để ghi nhớ học sinh Hoạt động 2: Tìm hiểu cấu trúc lệnh rẽ nhánh IF – THEN – ELSE ngôn ngữ lập trình Pascal a Mục tiêu: - Học sinh biết cấu trúc chung lệnh IF Biết thực máy gặp lệnh IF Vẽ sơ đồ thực cho lệnh IF b Nội dung: - Dạng thiếu: Cấu trúc: IF<điều kiện> then <lệnh>; Gi¸o viªn: NguyÔn ThÞ Kim TIN HäC 11 (36) Trêng THPT sè Bè Tr¹ch N¨m häc: 2012 - 2013 điều kiện: là biểu thức quan hệ biểu thức logic lệnh: là lệnh nào đó Pascal Sự thực máy: + Tính giá trị <điều kiện> + Nếu <điều kiện> có giá trị đúng thì thực <lệnh> Sơ đồ cấu trúc rẽ nhánh(SGK) - Dạng đủ: Cấu trúc : If <điều kiện> then <lệnh 1> else <lệnh 2>; điều kiện: là biểu thức quan hệ biểu thức logic lệnh 1, lệnh 2: Là lệnhnào đó Pascal Sự thực máy: + Tính giá trị <điều kiện> + Nếu <điều kiện> có giá trị đúng thì thực <lệnh 1>, ngược lại thì thực <lệnh 2> Sơ đồ cấu trúc rẽ nhánh(SGK) c Các bước tiến hành: Hướng dẫn giáo viên Yêu cầu học sinh nghiên cứu sách giá khoa và dựa vào các ví dụ tổ chức rẽ nhánh để đưa cấu chúc chung lệnh rẽ nhánh Nêu vấn đề trường hợp khuyết: Khi không đề cập đến việc gì xảy điều kiện không thỏa mãn, ta có cấu trúc nào? Yêu cầu học sinh vẽ sơ đồ thực lệnh rẽ nhánh dạng khuyết và dạng đủ lên bảng Gơi ý cần thiết lệnh ghép Đưa cấu trúc lệnh ghép - Khi giải thích lệnh, lệnh 1, lệnh 2, giáo viên nói: Sau then và else các em thấy phép đặt lệnh Trong Gi¸o viªn: NguyÔn ThÞ Kim Hoạt động học sinh Nghiên cứu sách giáo khoa và trả lời If <điều kiện> then <lệnh 1> else <lệnh 2>; Học sinh chú ý lắng nghe và trả lời: - Khi đó ta có lệnh khuyết If <điều kiện> then <lệnh>; Vẽ sơ đồ thực đã trình bày phần nội dung Theo dõi dẫn dắt giáo viên để trả lời - Ta phải nhóm nhiều lệnh thành lệnh TIN HäC 11 (37) Trêng THPT sè Bè Tr¹ch thực tế, thường lại là nhiều lệnh - Yêu cầu học sinh nghiên cứu sách giáo khoa và cho biết cấu trúc để ghép cáclệnh thành lớp N¨m häc: 2012 - 2013 - Cấu trúc lệnh ghép Begin <các lệnh cần ghép>; End; Hoạt động 3: Rèn luyện kĩ vận dụng lệnh If a Mục tiêu: - Bước đầu biết sử dụng đúng lệnh IF để lập trình giải số bài toán đơn giản b Nội dung: - Ví dụ 1: Viết chương trình nhập vào độ dài hai cạnh hình chữ nhật và tính chu vi, diện tích hình chữ nhật đó - Ví dụ 2: Tìm nghiệm phương trình bậc hai c Các bước tiến hành: Hướng dẫn giáo viên Nêu nội dung, mục đích yêu cầu ví dụ Viết chương trình nhập vào độ dài hai cạnh hình chữ nhật và tính chu vi, diện tích hình chữ nhật đó - Chương trình này các em đã viết, hãy cho biết có hạn chế nào chương trình các em? - Hướng giải các em nào? Hoạt động học sinh Chú ý dẫn dắt giáo viên - Khi nhập độ dài âm thì dẫn đến chương trình trả lời chu vi, diện tích âm Điều này không có thực tế - Dùng lệnh rẽ nhánh để kiểm tra giá trị độ dài cạnh nhập vào - Nếu độ dài dương thì tính diện tích ngược lại thì thông báo độ dài sai - Yêu cầu học sinh nhà tiếp tục hoàn thiện chương trình Tìm nghiệm phương trình bậc Ghi đề bài, chú ý mục đích yêu cầu bài tập hai - Hãy nêu các bước chính để trả lời + Tính delta nghiệm phương trình bậc hai + Nếu delta<0 thì kết luận phương trình vô nghiệm + Nếu delta>=0 thì kết luận phương trình có nghiệm: x = (-b+sqrt(delta))/(2a) x = (-b – sqrt(delta))/(2a) - Trong bài toán này ta cần bao nhiêu - Có thể sử dụng hai lệnh rẽ nhánh lệnh rẽ nhánh Dạng nào? dạng khuyết, có thể sử dụng Gi¸o viªn: NguyÔn ThÞ Kim TIN HäC 11 (38) Trêng THPT sè Bè Tr¹ch N¨m häc: 2012 - 2013 - Tổ chức lớp thành nhóm, yêu cầu lệnh dạng đủ học sinh viết chương trình hoàn thiện lên - Thảo luận và viết chương trình lên bìa bìa - Thu phiếu trả lời, chiếu lên bảng, gọi - thông báo kết viết học sinh nhóm khác nhận xét đánh giá - Nhận xét, đánh giá và bổ sung - Chuẩn hóa lại chương trình cho thiếu sót các nhóm khác lớp chương trình mẫu giáo viên - Ghi chép nội dung chương trình đúng là giáo viên đã kết luận BÀI TẬP TRẮC NGHIỆM Câu 1: Câu lệnh rẽ nhánh dạng thiếu là? a If <Biểu thức> then <Câu lệnh>; b If <Biểu thức> then <Câu lệnh 1> Else <Câu lệnh 2> c Cả Câu 2: Câu lệnh ghép là câu lệnh đặt cặp a Begin – End b Begin – End; c Begin – End Câu 3: Biểu diễn câu sau câu lệnh ghép: “Nếu ngày mai trời không mưa thì chơi” a If ngày mai trời không mưa then chơi b If ngày mai trời không mưa then else choi c Tất IV Đánh giá cuối bài Những nội dung đã học - Cấu trúc chung cấu trúc rẽ nhánh - Sự thực máy gặp cấu trúc rẽ nhánh IF - Sơ đồ thực cấu trúc rẽ nhánh IF Câu hỏi và bài tập nhà - Trả lời câu hỏi 1, 2, 4, Sách giáo khoa, trang 50 - Viết chương trình nhập vào hai số bất kì và in màn hình giá trị lớn hai số - Viết chương trình giải phương trình ax4 + bx2 + c = o - Xem trước nội dung bài: Cấu trúc lặp, sách giáo khoa, trang 42 - Xem nội dung phụ lục B, sách giáo khoa trang 131: Lệnh rẽ nhánh và lặp - Xem nội dung phụ lục C, sách giáo khoa trang 139: Lệnh rẽ nhánh và lặp Rút kinh nghiệm: Ngày giảng: Tiết PPCT: 12 CẤU TRÚC LẶP (tiết 1) Gi¸o viªn: NguyÔn ThÞ Kim TIN HäC 11 (39) Trêng THPT sè Bè Tr¹ch N¨m häc: 2012 - 2013 I Mục tiêu Kiến thức - Biết ý nghĩa cấu trúc lặp - Biết cấu trúc chung lệnh lặp for ngôn ngữ lập trình Pascal - Biết sử dụng đúng hai dạng lệnh lặp For ngôn ngữ lập trình Pascal kĩ - 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 II Đồ dùng dạy học Chuẩn bị giáo viên - Máy vi tính, máy chiếu Overhead, bìa trong, bút dạ, máy chiếu Projector, sách giáo khoa, sách giáo viên Chuẩn bị học sinh - Sách giáo khoa III hoạt động dạy – học Hoạt động 1: Tìm hiểu ý nghĩa cấu trúc lặp a Mục tiêu: - Học sinh thấy cần thiết cấu trúc lặp lập trình b Nội dung: Bài toán 1: Viết chương trình tính tổng S = 1/a+ 1/a+1 + 1/a+2 + + 1/a+100 Bài toán 2: Một người có số tiền là S, ông ta gửi tiền tiết kiệm ngân hàng với lãi suất 1,5%/tháng Hỏi sau 12 tháng gửi tiết kiệm (không rút tiền lãi hàng tháng), ông ta số tiền là bao nhiêu? c Các bước tiến hành: Hướng dẫn giáo viên Hoạt động học sinh Nếu bài toán đặt vấn đề bài toán Chú ý quan sát bài toán đặt vấn đề - Rất khó xác định công thức - Hãy xác định công thức toán học để - Theo dõi gợi ý tính tổng? - Gợi ý phương pháp: Ta xem S là cái thùng, các số hạng là cái ca có dung tích khác nhau, đó việc tính tổng trên tương tự việc đổ các - Phải thực 100 lần đổ nước ca nước vào thùng S - Mỗi lần đổ - Có bao nhiêu lần đổ nước vào thùng? a+i - Mỗi lần đổ lượng là bao nhiêu? Lần thứ i đổ bao nhiêu? - Phải viết 100 lệnh - Phải viết bao nhiêu lệnh? Chú ý quan sát và trả lời các câu hỏi - Với số tiền S, sau tháng có Nêu bài toán đặt vấn đề bài toán tiền lãi là 0,015*S - Số tiền này cộng vảôtng số tiền - Em hiểu nào cách tính ban đầu để tính lãi cho tháng tiền gửi tiết kiệm bài toán Gi¸o viªn: NguyÔn ThÞ Kim TIN HäC 11 (40) Trêng THPT sè Bè Tr¹ch N¨m häc: 2012 - 2013 - S: = S + 0,015*S; - Từ đó, hãy lập công thức tính tiền thu - Phải thực tính 12 lần sau tháng thứ - Tập trung theo dõi giáo viên trình - Ta phải thực tính bao nhiêu lần bày vậy? - Dẫn dắt: Chương trình viết dài, khó đọc và dễ sai sót Cần có cấu trúc điều khiển việc lặp lại thực các công việc trên - Trong tất các ngôn ngữ lập trình có cấu trúc điều khiển việc thực Thảo luận theo nhóm để viết thuất lặp lại so với số lần đã định trước Chia lớp thành nhóm nhóm viết toán: thuật toán giải bài toán 1, nhóm Bước 1: N <– 0; S <– 1/a; viết thuật toán giải bài toán lên Bước 2: N <– N+1; Bước 3: : N>100 thì chuyển đến bìa bước Bước : S <– S+1/(a+N), Quay lại bước Bước : Đưa S màn hình kết - Thu kết quả, chiếu kết lên bảng thúc - Thông báo kết viết Gọi học sinh nhóm khác nhận xét đánh - Nhận xét, đánh giá kết nhóm giá khác - Theo dõi và ghi nhớ - Chuẩn hóa lại thuật toán cho học sinh lần cuối Hoạt động 2: Tìm hiểu lệnh lặp For ngôn ngữ lập trình Pascal a Mục tiêu: - Học sinh biết cấu trúc chung lệnh FOR Hiểu ý nghĩa các thành phần lệnh Biết thực máy gặp FOR Vẽ sư đồ thực đó Gi¸o viªn: NguyÔn ThÞ Kim TIN HäC 11 (41) Trêng THPT sè Bè Tr¹ch N¨m häc: 2012 - 2013 b Nội dung: - Dạng tiến: Cấu trúc: For <biến đếm>:=<giá trị đầu> To <giá trị cuối> Do <lệnh cần lặp>; Biến đếm: Là biến kiểu nguyên, kí tự miền Giá trị đầu, giá trị cuối là biểu thức cùng kiểu với biến đếm Giá trị đầu phải nhỏ giá trị cuối Sự thực máy: Bước 1: Tính giá trị đầu, gán cho biến đếm Bước 2: Nếu biến đếm <= giá trị cuối thì thực lệnh cần lặ - Dạng lùi: Cấu trúc : for <biến đếm>:=<giá trị cuối> Downto <giá trị đầu> Do <lệnh cần lặp>; Giá trị đầu phải lớn hoặ giá trị cuối Sự thực máy: Bước 1: tính giá trị đầu, gán cho biến đếm Bước 2: Nếu biến đếm>=giá trị cuối thì thực lệnh cần lặp c Các bước tiến hành: Hướng dẫn giáo viên Yêu cầu học sinh nghiên cứu sáhc giáo khoa và cho biết cấu trúc chung For? - Giải thích: < Biến đếm>: Là biến kiểu nguyên, kí tự - Hỏi : ý nghĩa <Giá trị đầu> <Giá trị cuối>, Kiểu liệu chúng - Hỏi: Trong bài toán gửi tiết kiệm, <Giá trị đầu> <Giá trị cuối> là bao nhiêu? - Hỏi : Trong bài toán tính tổng <Giá trị đầu> <Giá trị cuối> là bao nhiêu? - Dẫn dắt : Những lệnh nào cần lặp lại ta đặt sau Do - Hỏi : Khi nhiều lệnh khác cần lặp lại ta viết nào? - Hỏi : Trong bài toán gửi tiết kiệm, lệnh nào cần lặp lại? - Hỏi : Trong bài toán tính tổng, lệnh Gi¸o viªn: NguyÔn ThÞ Kim Hoạt động học sinh Đọc sách giáo khoa và trở lời For <Biến đếm>:=<giá trị đầu> To <Giá trị cuối> Do <lệnh cần lặp>; - Dùng để làm giới hạn cho biến đếm - Cùng kiểu với <Biến đếm> <Giá trị đầu> là 1; <Giá trị cuối> là 12 <Giá trị đầu> là 1; <Giá trị cuối> là 100 - Phải sử sụng cấu trúc lệnh ghép S : = S + 0,015*S; S:=S+ a+i TIN HäC 11 (42) Trêng THPT sè Bè Tr¹ch N¨m häc: 2012 - 2013 nào cần lặp lại? <Giá trị đầu> <Giá trị cuối> - Hỏi : Em có nhận xét gì giá trị <Giá trị đầu> <Giá trị cuối> ? - Dẫn dắt: Khi đó lệnh For gọi là For tiến Ngôn ngỡ lập trình Pascal còn Nghiên cứu sách giáo khoa, suy nghĩ, có dạng For khác gọi là For lùi Yêu cầu: Hãy trình bày cấu trúc so sánh với cấu trúc For tiến để trả lời chung For lùi For <biến đếm>:=<giá trị cuối> Downto <giá trị đầu> Do <lệnh cần - Hỏi : So sánh <Giá trị đầu> <Giá trị lặp>; cuối> ? <Giá trị đầu> <Giá trị cuối> - Hỏi : Trong hai bài toán trên, dạng - Sử dụng dạng For tiến là phù hợp lệnh For nào là phù hợp? Hoạt động 3: Rèn luyện kĩ vận dụng lệnh lặp For a mục tiêu: - Sử dụng đúng lệnh lặp For để giải bài toán đơn giản b Nội dung: Ví dụ 1: Viết chương trình tính tổng S = 1/a+ 1/a+1 + 1/a+2 + + 1/a+100 Ví dụ 2: Một người có số tiền là S, ông ta gửi tiền tiết kiệm ngân hàng với lãi suất 1,5% tháng Hỏi sau 12 tháng gửi tiết kiệm, ông ta số tiền là bao nhiêu? c Các bước tiến hành: Hướng dẫn giáo viên Hoạt động học sinh Nêu nội dung bài toán Mục tiêu là Chú ý lắng nghe và trả lời các yêu xác định việc chính cần làm cầu giáo viên + Xác định giá trị đầu, giá trị cuối - Giá trị đầu là 1, Giá trị cuối là 100 + Xác định lệnh cần lặp lại - Yêu cầu học sinh tiếp tục hoàn thành S:=S+ chương trình nhà a+i Nêu nội dung bài toán2, mục tiêu là Chú ý lắng nghe nội dung và yêu cầu viết chương trìn hoàn thiện - Định hướng vấn đề chính - Chia lớp thành nhóm Yêu cầu học - Cùng thảo luận và viết chương trình sinh viết chương trình lên giấy bìa theo nhóm - Thu phiếu học tập, chiếu lên bảng, gọi học sinh nhóm khác nhận xét và đánh giá - Quan sát chương trình giáo viên - Chính xác hóa bài làm học sinh Gi¸o viªn: NguyÔn ThÞ Kim TIN HäC 11 (43) Trêng THPT sè Bè Tr¹ch chương trình mẫu N¨m häc: 2012 - 2013 hướng dẫn và ghi nhớ BÀI TẬP TRẮC NGHIỆM: Câu 1: Có loại câu lệnh lặp a c b Câu 2: Giá trị đầu cuối bài toán sau là: S= 1+ 2+3+…+n a n, b 1, n c 2, n d n, Gi¸o viªn: NguyÔn ThÞ Kim TIN HäC 11 (44) Trêng THPT sè Bè Tr¹ch N¨m häc: 2012 - 2013 IV Đánh giá cuối bài Những nội dung đã học - Cấu trúc chung lệnh lặp For Sơ đồ thực lệnh lậnh lặp For Câu hỏi và bài tập nhà - Giải bài tập 5.a, 6, sách giáo khoa, trang 51 - Xem trước phần nội dung cấu trúc lặp có số lần chưa xác định While - Xem nội dung phụ lục B, sách giáo khoa trang 131 : Lệnh rẽ nhánh và lặp - Xem nội dung phụ lục C, sách giáo khoa trang 139 : Lệnh rẽ nhánh và lặp Rút kinh nghiệm: -Ngày Tháng Năm 2012 Tổ trưởng Phạm Sinh Huyền Gi¸o viªn: NguyÔn ThÞ Kim TIN HäC 11 (45) Trêng THPT sè Bè Tr¹ch N¨m häc: 2012 - 2013 Ngày giảng: Tiết PPCT: 13 CẤU TRÚC LẶP (tiết 2) I Mục tiêu Kiến thức - Biết ý nghĩa cấu trúc lặp có số lần lặp chưa xác định - Biết cấu trúc chung lệnh lặp While ngôn ngữ Pascal - Biết thực máy gặp lệnh lặp While Kĩ - Phân biệt giống và khác cấu trúc lặp For và While - Sử dụng đúng lệnh lặp While lập trình - Bước đầu biết lựa chọn đúng dạng lệnh lặp để lập trình giải số bài toán đơn giản II Đồ dùng dạy học Chuẩn bị giáo viên - Máy vi tính, máy chiếu Overhead, Projector, sách giáo khoa, sách giáo viên Chuẩn bị học sinh - Sách giáo khoa III Hoạt động dạy – học Hoạt động : Tìm hiểu ý nghĩa cấu trúc lặp có số lần chưa xác định a Mục tiêu: - Biết cần thiết phải có cấu trúc lặp có số lần chưa xác định lập trình b Nội dung: Bài toán 1: Viết chương trình tính tổng: S = 1/a + 1/a+1 + 1/a+2 + + 1/a+N + 1/a+N <0,0001 Bìa toán 2: Một người có số tiền là S đồng, ông ta gửi tiét kiệm ngân hàng với số lãi suất 1,5% tháng Hỏi sau bao nhiêu tháng người đó có số tiền lớn S1 đồng? c Các bước tiến hành: Hướng dẫn giáo viên Hoạt động a Chiếu nội dung bài toán Hoạt động học sinh a Chú ý lắng nghe, quan sát và suy nghĩ để trả lời - Hỏi : Sự khác bài toán này - Bài trước: CHo giới hạn N với bài toán đã viết tiết trước? - Bài này: Cho giới hạn S - Hỏi : Lặp lại bao nhiêu lần? - Chưa xác định - Hỏi : Lặp đến nào? - Đến điều kiện 1/a+N < 0,0001 thỏa mãn b Chiếu nội dung bài toán b Chú ý lắng nghe, quan sát và suy nghĩ trả lời - Hỏi : Sự khác bài toán này - Bài trước : Biết số tháng, hỏi số tiền với bài toán đã giải tiết trước? - Hỏi: Số lần lặp lệnh? - Bài này: Biết số tiền, hỏi số tháng Gi¸o viªn: NguyÔn ThÞ Kim TIN HäC 11 (46) Trêng THPT sè Bè Tr¹ch N¨m häc: 2012 - 2013 - Hỏi : Lặp đến nào? - Chưa biết trước, đó chính là số tháng cần tìm - Đến số tiền thu > S1 ddồng c Tiểu kết vấn đề: Qua hai ví dụ ta thấy c Theo dõi và ghi nhớ kết luận giáo có dạng bài toán có lặp lại viên số lệnh không biết trước số lần lặp Cần có cấu trúc điều khiển lặp lại công viêc định thỏa mãn điều kiện nào đó Hoạt động 2: Tìm hiểu cấu trúc lệnh lặp While ngôn ngữ lập trình Pascal a Mục tiêu: - Học sinh biết cấu trúc chung lệnh While Hiểu ý nghĩa các thành phần lệnh Biết thực máy gặp While Vẽ sơ đồ thực đó b Nội dung: Cấu trúc: While<điều kiện>Do <lệnh cần lặp); Điều kiện : Là biểu thức quan hệ biểu thức logic Sự thực ucả máy: Bước 1: Tính giá tị <điều kiện> Bước 2: nếu<điều kiện> Có giá trị đúng thì: c Các bước tiến hành : Hướng dẫn giáo viên Hoạt động học sinh Yêu cầu học sinh nghiên cứu sách Tham khảo sách giáo khoa và trả lời giáo khoa và cho biết cấu trúc chung - Cấu trúc chung lệnh lặp While While <điều kiên> Do <lệnh cần lặp>; - Giải thích: 1/a+M >0,0001 + <Điều kiện>: Là biểu thcứ quan hệ biểu thức logic, là điều kiện để lặp lại - Hỏi : bài toán 1: Điều kiện để lặp lại là gì? - Hỏi : Trong bài toán 2: Điều kiện để S < S1 lặp lại là gì? + <Lệnh cần lặp>: Là các lệnh cần phải lặp lại - Hỏi : Trong hai bài toán trên lệnh cần S:= S + 0,015*S để tính số tiền t:= t + 1; để tính số tháng lặp là gì? - Hỏi: Một khác lệnh cần lặp For và While là gì? - Dựa vào cấu trúc chung, hãy cho biết Gi¸o viªn: NguyÔn ThÞ Kim S := S + 1/(a + i) để tính tổng i := i + 1; để tăng tỉ số - While phải có lệnh tăng biến số - Quan sát, suy nghĩ và trả lời: TIN HäC 11 (47) Trêng THPT sè Bè Tr¹ch N¨m häc: 2012 - 2013 máy thực tính <điều kiện> trước + tính biểu thức điều kiện trước hay thực <lệnh cần lặp> trước? + Thực lệnh cần lặp sau Yêu cầu học sinh vẽ sơ đồ cấu trúc Lên bảng vẽ sơ đồ cấu trúc lệnh lên bảng While - Gọi học sinh đánh giá nhận xét - Nhận xét đúng sai và bổ sung - Tiểu kết cho vấn đề cách treo sơ đồ mãu và giải thích Hoat động 3: rèn luyện kĩ vận dụng lệnh lặp While a Mục tiêu: - Học sinh bước đầu biết sử dụng đúng lệnh While để lập trình giải số bài toán đơn giản b Nội dung: Ví dụ 1: Một ngưới có số tiền là S, ông ta gửi tiết kiệm ngân hàng với lãi suất 1,5% /tháng Hỏi sau bao nhiêu tháng người đó có số tiền lớn S1 đồng? Ví dụ 2: Viết chương trình nhập vào hai số nguyên dương a và b Tìm ước số chung lớn hai số đó c Các bước tiến hành: Hướng dẫn giáo viên Nêu nội dung bài toán Mục tiêu là viết chương trình hoàn thiện - Định hướng các vấn đề chính + Xác định điều kiện để tiếp tục lặp + Xác định các lệnh cần lặp - Chia làm nhóm Yêu cầu học sinh viết chương trình hoàn thiện lên bìa - thu phiếu trả lời, chiếu kết máy Overhead - Gọi học sinh nhóm khác nhận xét và đánh giá - Chính xác hóa chương trình cho lớp Nêu nội dung bài toán Mục tiêu là phân tích để xác định <điều kiện> và <lệnh cần lặp> - Lấy ví dụ cụ thể tìm ước số chung hai số 15 và 25 m n 15 25 15 10 10 5 Trả lời: là ước số chung lớn Gi¸o viªn: NguyÔn ThÞ Kim Hoạt động học sinh Chú ý lắng nghe và suy nghĩ trả lời các câu hỏi định hướng giáo viên - Điều kiện: S < S1 S:= S + 0,015*S để tính số tiền t:= t + 1; để tính số tháng - Tập trung làm việc theo nhóm để viết chương trình hoàn thiện - Đánh giá đúng – sai và bổ sung - ghi nhớ phần giáo viên sửu chữa Tập trung theo dõi để thấy công việc cần thực - Điều kiện : m<> n TIN HäC 11 (48) Trêng THPT sè Bè Tr¹ch - Hỏi: Điều kiện để tiếp tục lặp là gì? - Hỏi : các lệnh cần lặp lại là gì? - Yêu cầu học sinh viết chương trình hoàn thiện bài toán nhà - Yêu cầu học sinh hai câu hỏi cần đặt gặp bài toán dạng này N¨m häc: 2012 - 2013 - Lạnh cần lặp: m:=m-n; n:=n-m; - Thuật toán: B1: Nếu m=n thì UC=m, dừng B2: Nếu m>n thì m:=m-n ngược lại n:=n-m; Quay lại B1 - Suynghĩ và trả lời: + Điều kiện nào để lặp lại? + Những lệnh nào cần lặp lại? IV Đánh giá cuối bài Những nội dung đã học - ý nghĩa cấu trúc lặp có số lần chưa xác định - Cấu trúc chung lệnh lặp While ngôn ngữ Pascal - Sơ đồ thực lệnh lặp While - Sự thực máy gặp lệnh lặp While Câu hỏi và bài tập nhà - Giải bài tập 4, 5b, 7, 8, sách giáo khoa trang 51 - Viết chương trình tính tổng: S = 1/a + 1/a+1 + 1/a+2 + + 1/a+N + 1/a+N <0,0001 - Xem nội dung bài thực hành số 2, sách giáo khoa trang 49 - Xem nội dung phụ lục B, sáhc giáo khoa trang 131: Lệnh rẽ nhánh và lặp - Xem nội dung phụ lục C, sách giáo khoa trang 139: Lệnh rẽ nhánh và lặp Rút kinh nghiệm: Ngày Tháng Tổ trưởng Năm 2012 Phạm Sinh Huyền Ngày giảng: Tiết PPCT: 14 CẤU TRÚC LẶP (tiết 3) I Mục tiêu Gi¸o viªn: NguyÔn ThÞ Kim TIN HäC 11 (49) Trêng THPT sè Bè Tr¹ch N¨m häc: 2012 - 2013 Kiến thức - Biết ý nghĩa cấu trúc lặp có số lần lặp chưa xác định - Biết cấu trúc chung lệnh lặp While ngôn ngữ Pascal - Biết thực máy gặp lệnh lặp While Kĩ - Phân biệt giống và khác cấu trúc lặp For và While - Sử dụng đúng lệnh lặp While lập trình - Bước đầu biết lựa chọn đúng dạng lệnh lặp để lập trình giải số bài toán đơn giản II Đồ dùng dạy học Chuẩn bị giáo viên - Máy vi tính, máy chiếu Overhead, Projector, sách giáo khoa, sách giáo viên Chuẩn bị học sinh - Sách giáo khoa III Hoạt động dạy – học: Rèn luyện kĩ vận dụng lệnh lặp While a Mục tiêu: - Học sinh bước đầu biết sử dụng đúng lệnh While để lập trình giải số bài toán đơn giản b Nội dung: Ví dụ 1: Một ngưới có số tiền là S, ông ta gửi tiết kiệm ngân hàng với lãi suất 1,5% /tháng Hỏi sau bao nhiêu tháng người đó có số tiền lớn S1 đồng? Ví dụ 2: Viết chương trình nhập vào hai số nguyên dương a và b Tìm ước số chung lớn hai số đó c Các bước tiến hành: Hướng dẫn giáo viên Nêu nội dung bài toán Mục tiêu là viết chương trình hoàn thiện - Định hướng các vấn đề chính + Xác định điều kiện để tiếp tục lặp + Xác định các lệnh cần lặp - Chia làm nhóm Yêu cầu học sinh viết chương trình hoàn thiện lên bìa - Thu phiếu trả lời, chiếu kết máy Overhead - Gọi học sinh nhóm khác nhận xét và đánh giá - Chính xác hóa chương trình cho lớp Nêu nội dung bài toán Mục tiêu là phân tích để xác định <điều kiện> và <lệnh cần lặp> - Lấy ví dụ cụ thể tìm ước số chung hai số 15 và 25 Gi¸o viªn: NguyÔn ThÞ Kim Hoạt động học sinh Chú ý lắng nghe và suy nghĩ trả lời các câu hỏi định hướng giáo viên - Điều kiện: S < S1 S:= S + 0,015*S để tính số tiền t:= t + 1; để tính số tháng - Tập trung làm việc theo nhóm để viết chương trình hoàn thiện - Đánh giá đúng – sai và bổ sung - Ghi nhớ phần giáo viên sửu chữa Tập trung theo dõi để thấy công việc cần thực TIN HäC 11 (50) Trêng THPT sè Bè Tr¹ch m n 15 25 15 10 10 5 Trả lời: là ước số chung lớn - Hỏi: Điều kiện để tiếp tục lặp là gì? - Hỏi : các lệnh cần lặp lại là gì? - Yêu cầu học sinh viết chương trình hoàn thiện bài toán nhà - Yêu cầu học sinh hai câu hỏi cần đặt gặp bài toán dạng này N¨m häc: 2012 - 2013 - Điều kiện : m<> n - Lệnh cần lặp: m:=m-n; n:=n-m; - Thuật toán: B1: Nếu m=n thì UC=m, dừng B2: Nếu m>n thì m:=m-n ngược lại n:=n-m; Quay lại B1 - Suynghĩ và trả lời: + Điều kiện nào để lặp lại? + Những lệnh nào cần lặp lại? IV Đánh giá cuối bài Những nội dung đã học - ý nghĩa cấu trúc lặp có số lần chưa xác định - Cấu trúc chung lệnh lặp While ngôn ngữ Pascal - Sơ đồ thực lệnh lặp While - Sự thực máy gặp lệnh lặp While Câu hỏi và bài tập nhà - Giải bài tập 4, 5b, 7, 8, sách giáo khoa trang 51 - Viết chương trình tính tổng: S = 1/a + 1/a+1 + 1/a+2 + + 1/a+N + 1/a+N <0,0001 - Đọc lại lệnh rẽ nhánh IF và làm các bài tập liên quan, chuẩn bị cho tiết sau thực hành - Xem nội dung bài thực hành số 2, sách giáo khoa trang 49 - Xem nội dung phụ lục B, sáhc giáo khoa trang 131: Lệnh rẽ nhánh và lặp - Xem nôi dung phụ lục C, sách giáo khoa trang 139: Lệnh rẽ nhánh và lặp Gi¸o viªn: NguyÔn ThÞ Kim TIN HäC 11 (51) Trêng THPT sè Bè Tr¹ch N¨m häc: 2012 - 2013 Ngày giảng: Tiết PPCT: 15 BÀI TẬP I Mục tiêu Kiến thức - Củng cố lại cho học sinh kiến thức liên quan đến tổ chức rẽ nhánh và lặp : Cấu trúc lặp, sơ đồ thực hiện, thực máy gặp lệnh lặp Kĩ - Rèn luyện kĩ vận dụng và linh hoạt công việc lựa chọn cấu trúc rẽ nhánh và cấu trúc lặp phù hợp để giải bài toán đặt Thái độ - Tự giác tích cực, chủ động giải các bài tập II Đồ dùng dạy học Chuẩn bị giáo viên - Máy chiếu Projector, máy vi tính để giới thiệu ví dụ minh họa, số chương trình mẫu Chuẩn bị học sinh - Sách giáo khoa III Hoạt động dạy – học Hoạt động 1: Nhắc lại kiến thức đã học tổ chức rẽ nhánh và lặp a Mục tiêu: - Học sinh nắm cấu trúc rẽ nhánh và lặp, sơ đồ thực máy Phân được giống và khác lệnh lặp For và lệnh lặp While b Nội dung: - Rẽ nhánh If <btđk> then <lệnh 1> Else <lệnh 2>; If <btđk> then <lệnh >; - Lặp For For <biến đếm>:=<giá trị đầu> To <giá trị cuối> Do <lệnh>; For <biến đếm>:=<giá trị đầu> downto <giá trị cuối> Do <lệnh>; - Lặp While While <điều kiện> Do <lệnh>; c Các bước tiến hành: Hướng dẫn giáo viên Hoạt động học sinh Yêu cầu học sinh nhắc lại cấu trúc rẽ Độc lập suy nghĩ để trả lời nhánh If <btđk> then <CL1> Else <CL2>; - Chiếu chương trình tìm giá trị lớn If <btđk> then <lệnh >; hai số, đó có sử dụng lệnh rẽ nhánh dạng đủ Var a b: Integer; Begin readln(a, b); If a>b then write(a) esle write(b); read; Gi¸o viªn: NguyÔn ThÞ Kim TIN HäC 11 (52) Trêng THPT sè Bè Tr¹ch end - Hỏi: Chương trình thực công việc gì? - Yêu cầu học sinh viết lại chương trình cách sử dụng lệnh rẽ nhánh dạng thiếu Yêu cầu học sinh nhắc lại cấu trúc các lệnh lặp đã học N¨m häc: 2012 - 2013 - In màn hình giá trị lớn Var a, b : Integer; Begin Readln(a, b); max:=b; If a>b then max:=a; Write(max); readln; end Suy nghĩ và trả lời For <biến đếm>:=<giá trị đầu>; To <giá trị cuối> Do <lệnh>; While <điều kiện> Do <lệnh cần lặp>; - Quan sát, suy nghĩ và trả lời - Chiếu lên bảng hai chương trình đã chuẩn bị sẵn, đó chương trình sử dụng lệnh lặp For và chương trình sử dụng lặp while - Giống: là lệnh lặp - Yêu cầu: So sánh giống và khác - Khác: For lặp với số lần đã xác định hai dạng lệnh đó trước While lạp với số lần chưa xác định Hoạt động 2: rèn luyện kĩ vận dụng tổ chức lặp a mục tiêu: - Học sinh biết sử dụng lệnh lặp để giải bài toán cụ thể Linh hoạt việc chịn lựa cấu trúc lặp Ví dụ : Viết chương trình tính giá trị biểu thức Y = Ví dụ 2: Viết chương trình tính giá trị tổng X(N) = + 33 + 53 + + (2N + 1)3, với N 0, 1, 2, 3, , , chừng nào X(N) cò nhỏ x 10 Đưa các giá trị X(N) màn hình c Các bước tiến hành: Hướng dẫn giáo viên Tìm hiểu bài tập và giải - Chiếu nội dung ví dụ lên bảng - Hỏi: Có thể khai triển biểu thức Y thành tổng các số hạng nào? - Nhìn vào công thức khai triển, cho biết N lấy giá trị tổng đoạn nào? - Hỏi : Ta sử dụng cấu trúc điều khiển lặp nào là phù hợp? - Chia lớp làm ba nhóm, yêu cầu viết chương trình lên bìa - Thu phiếu trả lời, chiếu kết lên bảng - Gọi học sinh nhóm khác nhận xét đánh giá và bổ sung Gi¸o viªn: NguyÔn ThÞ Kim Hoạt động học sinh Quan sát và suy nghĩ để giải bài toán Y = 1/2 + 2/3 + 3/4 + + 50/51 50 - Sử dụng cấu trúc lặp có số lần đã xác định - Thảo luận theo nhóm để viết chương trình lên bìa - Báo cáo kết nhóm - Nhận xét, đánh giá và bổ sung các thiếu sót nhóm khác TIN HäC 11 (53) Trêng THPT sè Bè Tr¹ch N¨m häc: 2012 - 2013 Tìm hiểu nội dung ví dụ và định Quan sát và theo dõi định hướng học sinh giải nhà hướng giáo viên - Chiếu nội dung ví dụ lên bảng - Hãy cho biết N nhận giá trị - Chưa xác định cận cuối đoạn nào? Xác định chưa? - Hỏi : Dùng cấu trúc điều khiển nào là - Dùng cấu trúc lặp có số lần chưa xác thích hợp? định - Yêu cầu học sinh nhà lập trình - Ghi nhớ làm bài tập nhà trên máy, tiết sau nộp lạo cho giáo viên IV Đánh giá cuối bài Những nội dung đã học - Có hai 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 Câu hỏi và bài tập nhà - Cho chương trình viết lệnh For Var x, i:word; nt:boolean; Begin Readln(x); nt :=true; For i :=2 to x – if x mod i = then nt:=false; If nt = true then write(x,’la so nguyen to’) else write(x, ‘khong phai snt’); readln; End Câu hỏi: Hãy viết lại chương trình trên đó lệnh lặp For thay lệnh lặp Whlie Hãy cho biết, bài toán trên sử dụng lệnh lặp nào là tốt Dặn dò: Chuẩn bị bài để kiểm tra Học Kỳ I Gi¸o viªn: NguyÔn ThÞ Kim TIN HäC 11 (54) Trêng THPT sè Bè Tr¹ch N¨m häc: 2012 - 2013 Ngày giảng: Tiết theo PPCT: 16 ÔN TẬP HỌC KỲ I I Mục tiêu: Kiến thức: 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 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 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,máy chiếu Projecter 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 IV Tiến trình bài dạy: Hoạt động 1: (7phút) Kiểm tra bài cũ Câu hỏi 1(H1): 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 HS Hoạt động GV Ghi bảng - HS lên bảng trả lời - GV gọi HS lên trả lời -Rẽ nhánh H1 If <btđk > then <lệnh 1> else <lệnh 2>; If <btđk > then <lệnh 1>; - Lặp For For <biến đếm>:= <giá trị đầu> To <giá trị cuối> Do <lệnh>; For <biến đếm>:= <giá trị đầu> Downto <giá trị - Cả lớp theo dõi và cuối> Do <lệnh>; nhận xét bổ sung (nếu - GV yêu cầu lớp - Lặp While có) nhận xét câu trả lời While<điềukiện>Do<lệnh bạn >; - GV nhận xét và đánh giá Hoạt động 2: Giải bài tập trắc nghiệm Hoạt động HS Hoạt động GV Ghi bảng - Quan sát và trả lời - Chiếu bài tập lên Câu 1: Chọn nhóm từ khoá - Nhận xét câu trả (keyword) lời a BEGIN, END, IF, REAL b PROCEDURE, IF, INTEGER, BOOLEAN Gi¸o viªn: NguyÔn ThÞ Kim TIN HäC 11 (55) Trêng THPT sè Bè Tr¹ch Đáp án: c Đáp án: d Đáp án: a Đáp án: c Đáp án: d N¨m häc: 2012 - 2013 c FOR, END, IF, WHILE d BEGIN, WRITE, IF, BYTE Câu 2: Chọn nhóm các tên người lập trình đặt a &HOSO; PROGRAM; _T3; DEM b BEGIN; A; ALPHA; _SL c 123DEL; MAX; X1; DELTA d HESO; ALPHA; D23; DO_DAI Câu 3: Khai báo biến VAR A: Byte; Biến A nhận giá trị nào? A 150 B 12.5 C ‘MAMA’ D 300 Câu 4: Chọn câu lệnh rẽ nhánh dạng đủ A IF N = THEN N+1 ELSE N-1; B IF N := TO N := N+1 ELSE N := N-1; C IF N= THEN N := N+1 ELSE N := N-1; D IF N= THEN N := N+1 ; Câu 5: Cho đoạn chương trình sau, và khai báo VAR M , Alpha: byte; Giá trị ALPHA thực xong đoạn chương trình là Alpha := 10; M := 10; IF M < THEN Alpha: = Alpha + 5; WRITE(Alpha); A 20 B 25 C 15 D 10 Câu 6: Cho biết giá trị K Gi¸o viªn: NguyÔn ThÞ Kim TIN HäC 11 (56) Trêng THPT sè Bè Tr¹ch Đáp án: c Đáp án: b Đáp án: a Đáp án: b Đáp án: b N¨m häc: 2012 - 2013 sau kết thúc FOR đoạn chương trình sau: K:= 1; S:=0; FOR J:= TO DO Begin S:= S+ J; K:= K + 1; End; A B C D 10 Câu 7: Cho biểu thức: 3*SQR(3) MOD (21 DIV 3) Giá trị biểu thức là: A B C D Câu 8: Cho biết giá trị biến SUM sau kết thúc đoạn chương trình sau: Sum := 0; Stop := 0; WHILE Stop > DO BEGIN Sum := Sum + Stop ; Stop := Stop + 1; END; A B C 10 D 20 Câu 9: Cho biết giá trị biến Max sau kết thúc đoạn chương trình sau: A := 100; B := 50; C :=5 ; MAX := A; IF MAX < B THEN MAX := B ELSE MAX := C; A 100 B C 50 D 155 Câu 10: Cho toán sau: * , <> , - Theo thứ tự thì phép toán thực nào A * ; <> ; - B * ; - ; <> C - ; <> ; * D <> ; * ; - Hoạt động 3: Giải bài tập tự luận Gi¸o viªn: NguyÔn ThÞ Kim TIN HäC 11 (57) Trêng THPT sè Bè Tr¹ch N¨m häc: 2012 - 2013 Bài toán : Một số tự nhiên gọi là số hoàn thiện tổng ước nó chính nó 6, 28 Ví dụ: Hoạt động HS Hoạt động GV - Quan sát - Chiếu bài Program Bai_Tap; bài toán và toán Var Tong_Uoc, n, i: Word; giải - Gọi học sinh Begin - Nhận xét lên giải Writeln(‘Nhap so tu nhien bat ki’); bài làm - Nhận xét bài Readln(n); làm Tong_Uoc := 0; - Đưa bài For i: = to n chuẩn If n mod = then Tong_Uoc := Tong_Uoc +1; If Tong_Uoc = n then Writeln(‘n la so hoan thien’) Else Writeln(‘n khong la so hoan thien’); Readln; End Viết chương trình kiểm tra số bất kì có phải là số hoàn thiện hay không? Củng cố: - Ôn lại phần lý thuyết và làm thêm các bài tập - Chuẩn bị bài tiết sau kiểm tra học kì I - Gi¸o viªn: NguyÔn ThÞ Kim TIN HäC 11 (58) Trêng THPT sè Bè Tr¹ch N¨m häc: 2012 - 2013 Ngày giảng: Tiết PPCT: 18 BÀI THỰC HÀNH 2(t1) I Mục tiêu Kiến thức - Nắm cấu trúc và sơ đồ thực cấu trúc rẽ nhánh Kĩ - Rèn luyện kĩ sử dụng cấu trúc rẽ nhánh việc lập trình giải số bài toán cụ thể - Làm quen với các công cụ phục vụ và hiệu chỉnh chương trình Thái độ - Tự giác, tích cực và chủ động thực hành II Đồ dùng dạy học Chuẩn bị giáo viên - Phòng máy vi tính, máy chiếu Projector để hướng dẫn Chuẩn bị học sinh - Sách giáo khoa, sách bài tập và bài tập đã viết nhà III Hoạt đông dạy – học Hoạt động 1: Làm quen với chương trình và các công cụ hiệu chỉnh chương trình a Mục tiêu: - Học sinh hiểu nội dung chương trình và kết sau thực chương trình Biết các công cụ dùng để hiệu chỉnh chương trình cần thiết : Thực bước và xem kết trung gian b Nội dung: - Ba số nguyên dương a, b, c gọi là số Pitago tổng bình phương hai số bình phương số còn lại Yêu cầu: Viết chương tình nhập từ bàn phím ba số nguyên dương a, b, c và kiểm tra xem chúng có là số Pitago hay không? Hướng dẫn giáo viên Hoạt động học sinh Gơi ý để học sinh nêu khái niệm Theo dõi dẫn dắt cuả chọ sinh để nêu số Pitago khái niệm số Pitago: Tổng bình phương hai số bình phương số còn lại - Yêu cầu: lấy ví dụ cụ thể Ví dụ số Pitago: - Hỏi : Để kiểm tra ba số a, b, c bất a2 = b2 + c2 kì có phải là Pitago, ta pahỉ kiểm tra b2 = a2 + c2 các đẳng thức nào? c2 = a2 + b2 Chiếu chương trình mẫu lên bảng Soạn chương trình vào máy theo yêu thực mẫu các thao tác: lưu, thực cầu giáo viên lệnh chương trình, xem kết trung gian, thực chương tình và nhập liệu Gi¸o viªn: NguyÔn ThÞ Kim TIN HäC 11 (59) Trêng THPT sè Bè Tr¹ch N¨m häc: 2012 - 2013 - Yêu cầu học sinh gõ chương trình mẫu vào máy - Yêu cầu học sinh lưu chương trình - Bấm F2, gõ tên file và enter lên đĩa với tên Pytago.pas - bấm F7, nhập các giá trị a=3, b=4, - Yêu cầu học sinh thực lệnh c=5 chương trình - Chọn menu Debug để mở cửa sổ hiệu - Yêu cầu học sinh xem các kết a2, chỉnh b2, c2 - Quan sát quá trình rẽ nhánh - Yêu cầu học sinh tự tìm thêm số liệu vào và trả lời a b c khác và so sánh IV Đánh giá cuối bài Những nội dung đã học 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, liệu ra, thuật toán - Soạn chương trình vào máy - Lưu trữ chương trình - Biên dịch - Thực và hiệu chỉnh chương trình Gi¸o viªn: NguyÔn ThÞ Kim TIN HäC 11 (60) Trêng THPT sè Bè Tr¹ch N¨m häc: 2012 - 2013 Ngày giảng: Tiết PPCT: 19 BÀI THỰC HÀNH 2(t2) I Mục tiêu Kiến thức - Nắm cấu trúc và sơ đồ thực cấu trúc rẽ nhánh Kĩ - Rèn luyện kĩ sử dụng cấu trúc rẽ nhánh việc lập trình giải số bài toán cụ thể - Làm quen với các công cụ phục vụ và hiệu chỉnh chương trình Thái độ - Tự giác, tích cực và chủ động thực hành II Đồ dùng dạy học Chuẩn bị giáo viên - Phòng máy vi tính, máy chiếu Projector để hướng dẫn Chuẩn bị học sinh - Sách giáo khoa, sách bài tập và bài tập đã viết nhà III Hoạt đông dạy – học Hoạt động 2: Rèn luyện kĩ lập trình hoàn thiện bài toán a Mục tiêu: - Học sinh biết đọc hiểu đề, phân tích yêu cầu đề Từ đó chọn cấu trúc liệu và lệnh phù hợp để lập trình b Nội dung: - Viết chương tình giải phương trình ax + b = c Các bước tiến hành: Hướng dẫn giáo viên Hoạt động học sinh Nêu nôi dung, mục đích, yêu cầu cảu chú ý theo dõi vấn đề đặt giáo bài toán viên - Hỏi : Bước đầu tiên để giải bài toán ? - Xác định input output và thuật giải - Hỏi : Để xác định ta phải đặt các câu - Mục đích giải phương trình? hỏi nào? Gọi học sinh đặt câu hỏi + Kết luận số nghiệm và giá trị nghiệm và gọi học sinh trả lời cho câu hỏi đó? x - Để tính nghiệm x cần các đại lượng nào? + Cần các đại lượng : a b - Yêu cầu học sinh phác họa thuât toán - Có các bước xử lí nào để tính Yêu cầu học sinh gõ chương trình x? vào máy Độc lập soạn chương trình và máy - Giáo viên tiếp cận học sinh để hướng dẫn và sửa sai - Thông báo kết viết Yêu cầu học sinh nhập liệu - Nhập liệu với test -2 Nhập liệu theo test giáo viên Gi¸o viªn: NguyÔn ThÞ Kim TIN HäC 11 (61) Trêng THPT sè Bè Tr¹ch N¨m häc: 2012 - 2013 Yêu cầu học sinh xác định các và thông báo kết hcương trình testcase, nhập liệu, đối sánh kết Tìm testcase 0 VNV VN -1.5 Nhập liệu và thông báo kết IV Đánh giá cuối bài Câu hỏi và bài tập nhà - Viết chương trình nhập vào độ dài ba cạnh cuat tam giác và tính chu vi, diện tích tam gicá đó - Cho chương trình sau: Program max; var a, b, max:integer; Begin Write(‘nhap vao hai so bat ki’); readln(a, b); If max:=a; If max<b then max:=b; Writeln(max); Readln; End Hỏi: Chương trình thực chương trình gì, kết in màn hình là bao nhiêu? - Viết chương tình nhập vào ba số bất kì và tìm giá trị bé ba số đó - Xem trước nội dung bài: kiểu mảng, sách giáo khoa, trang 53 Gi¸o viªn: NguyÔn ThÞ Kim TIN HäC 11 (62) Trêng THPT sè Bè Tr¹ch Chương N¨m häc: 2012 - 2013 Kiểu liệu có cấu trúc Ngày giảng Tiết PPCT: 20 KIỂU MẢNG(t1) I Mục tiêu Kiến thức - Biết kiểu liệu là kiểu mảng chiều Biết loại biến có số Kĩ - Tạo kiểu mảng chiều và sử dụng biến mảng chiều ngônngữ lập trình Pascal để giải số bài toán cụ thể II Đồ dùng dạy học Chuẩn bị giáo viên - Máy chiếu Projector, máy vi tính để giới thiệu ví dụ và minh họa Chuẩn bị học sinh Sách giáo khoa III Hoạt động dạy – học Hoạt động 1: Tìm hiểu ý nghĩa mảng chiều a Mục tiêu: Biết ý nghĩa và cần thiết kiểu mảng chiều việc giải số bài toán Biết khái niệm kiểu mảng chiều b nội dung: - Ví dụ: Nhập vào nhiệt độ (trung bình) ngày tuần Tính và in màn hình nhiệt độ trung bình tuần và số lượng ngày tuần có nhiệt độ cao nhiệt độ trung bình tính - Chương trình minh họa Program nhiet tuan; Var t1, t2, t3, t4, t5, t6, tb:real; dem:integer; Begin Write(‘Nhap vao nhiet cua ngay:’); readln(t1, t2, t3, t4, t5, t6, t7)/7; dem:=0; if t1>tb then dem:=dem+1; if t2>tb then dem:=dem+1; if t3>tb then dem:=dem+1; if t4>tb then dem:=dem+1; if t5>tb then dem:=dem+1; if t6>tb then dem:=dem+1; if t7>tb then dem:=dem+1; Write(‘nhiet trung binh tuan:’,tb); Writeln(‘So nhiet cao hon nhiet trung binh tuan:’,dem): Gi¸o viªn: NguyÔn ThÞ Kim TIN HäC 11 (63) Trêng THPT sè Bè Tr¹ch N¨m häc: 2012 - 2013 readln; End - Mảng chiều là dãy hữu hạn các phần tử co cùng kiểu liệu Các phần tử mảng có cùng chung tên và phân biệt số Để mô tả mảng chiều cần xác định kiểu các phần tử và cách đánh số các phần tử nó - Hầu hết các ngôn ngữ lập trình có quy tắc cho phép xác định: tên kiểu mảng, số lượng phần tử, kiểu liệu phần tử, cách khia báo biến mảng và cách tham chiếu đến phần tử mảng c Các bước tiến hành: Hướng dẫn giáo viên Chiếu đề bài và chương trình ví dụ lên bảng - Hỏi: Khi N lớn thì chương trình trên có hạn chế nào? - Dẫn dắt: Để khắc phục hạn chế trên, người ta thường ghép chung biến trên thành dãy và đặt cho nó chung tên và đánh cho phần tử số Yêu cầu học sinh tham khảo sách giáo khoa và hỏi: Em hiểu nào mảng chiều? Hoạt động học sinh Quan sát trên màn hình, suy nghĩ và trả lời - Phải khai báo quá nhiều biến Chương trình phải viết dài Nghiên cứu sách giáo khoa để trả lời - Mảng chiều là dãy hữu hạn các phần tử có cùng kiểu liệu Các phần tử mảng có cùng chung tên và - Hỏi: Để mô tả mảng chiều, ta phân biệt số cần xác định yếu tố nào? - Để mô tả mảng chiều cần xác định kiểu các phần tử và cách đánh số các phần tử nó Yêu cầu học sinh tham khảo SGK và - Tên kiểu mảng, cho biết các ngôn ngữ lập trình cho phép - Số lượng phần tử, xác định thành phần nào? - Kiểu liệu phần tử, - Cách khai báo biến mảng và cách tham chiếu đến phần tử mảng Hoạt động 2: Tạo kiểu mảng chiều và khai báo biến mảng a Mục tiêu: - Học sinh biết cách tạo kiểu liệu mảng chiều ngôn ngữ lập trình Pascal, biết cách khai báo biến và tham chiếu đến phần tử mảng b Nội dung: - Tạo kiểu liệu mảng chiều: TYPE tên_kiểu_mảng = Array[kiểu_chỉ_số] Of kiểu_thành_phần; Gi¸o viªn: NguyÔn ThÞ Kim TIN HäC 11 (64) Trêng THPT sè Bè Tr¹ch N¨m häc: 2012 - 2013 + Kiểu_chỉ_số: Thường là đoạn số nguyên(hoặc là đoạn kí tự) xác định số đầu và số cuối mảng + Kiểu_thành_phần: Là kiểu liệu chung phần tử mảng - Khai báo biến mảng chiều: VAR tên_biến:tên_kiểu_mảng; c Các bước tiến hành: Hướng dẫn giáo viên Hoạt động học sinh Yêu cầu học sinh nghiên cứu sách Tham khảo sách giáo khoa và trả lời giáo khoa và cho biết cách tạo kiểu - TYPE tên_km= Array[kiểu cs] Of liệu mảng chiều ngôn ngữ lập kiểu_thành_phần; trình Pascal - Tìm ví dụ để minh họa - Ví dụ: Type mmc=array[1 100] of integer; - Gọi học sinh khác, Hỏi: ý nghĩa - Tạo kiểu liệu có tên lệnh bạn vừa viết? mmc, gồm 100 phần tử, có kiểu nguyên - Chiếu lên bảng số khai báo kiểu - Quan sát bảng và chọn khai báo mảng chiều đúng Type Arrayr=array[1 200] of real; Arrayr=array[1 200] of real; Arrayb=array[-100 0] of boolean; Arrayr=array[byte] of real; Arrayb=array[-100 0] of boolean; - Hỏi: Những khai báo nào đúng? BÀI TẬP TRẮC NGHIỆM: Câu 1: Để xây dựng và sử dụng mảng chiều cần xác định? a Tên kiểu mảng chiều; b Số lượng & kiểu liệu phần tử; c Cách khai báo biến mảng; d Cách tham chiếu đến phần tử; e Tất Câu 1: Khai báo sau có bao nhiêu phần tử: Var Mang1: Array[1 5] of byte; a 5; c b 1; d Câu 2: Khai báo sau có ý nghĩa gi? Var Mang2: Array[1 10] of real; a Khai báo mảng tthực có phần tử b Khai báo mảng thực có 10 phần tử c Khai báo mảng nguyên có 10 phần tử d Khai báo mảng nguyên có phần tử; Gi¸o viªn: NguyÔn ThÞ Kim TIN HäC 11 (65) Trêng THPT sè Bè Tr¹ch N¨m häc: 2012 - 2013 IV Đánh giá cuối bài Những nội dung đã học - Xác định các thành phần mảng chiều - Cách tạo kiểu mảng chiều và cách khai báo biến TYPE tên_kiểu_mảng= Array[kiểu_chỉ_số] Of kiểu_thành_phần; VAR tên_biến:tên_kiểu_mảng; V RÚT KINH NGHIỆM: - Gi¸o viªn: NguyÔn ThÞ Kim TIN HäC 11 (66) Trêng THPT sè Bè Tr¹ch N¨m häc: 2012 - 2013 Ngày giảng Tiết PPCT: 21 KIỂU MẢNG (t2) I Mục tiêu Kiến thức - Biết kiểu liệu là kiểu mảng chiều Biết laọi biến có số - Biết cấu trúc tạo kiểu mảng chiều và cách khai báo biến kiểu mảng chiều Kĩ - Tạo kiểu mảng chiều và sử dụng biến mảng chiều ngônngữ lập trình Pascal để giải số bài toán cụ thể II Đồ dùng dạy học Chuẩn bị giáo viên - Máy chiếu Projector, máy vi tính để giới thiệu ví dụ và minh họa Chuẩn bị học sinh Sách giáo khoa III Hoạt động dạy – học Hoạt động 2: Tạo kiểu mảng chiều và khai báo biến mảng a Mục tiêu: - Học sinh biết cách tạo kiểu liệu mảng chiều ngôn ngữ lập trình Pascal, biết cách khai báo biến và tham chiếu đến phần tử mảng b Nội dung: - Tạo kiểu liệu mảng chiều: TYPE tên_kiểu_mảng = Array[kiểu_chỉ_số] Of kiểu_thành_phần; + Kiểu_chỉ_số: Thường là đoạn số nguyên(hoặc là đoạn kí tự) xác định số đầu và số cuối mảng + Kiểu_thành_phần: Là kiểu liệu chung phần tử mảng - Khai báo biến mảng chiều: VAR tên_biến:tên_kiểu_mảng; - Tham chiếu đến phần tử: Tên_biến [chỉ số] c Các bước tiến hành: Hướng dẫn giáo viên Hoạt động học sinh Yêu cầu học sinh nghiên cứu sách Tham khảo sách giáo khoa và trả lời giáo khoa và hco biết cách tạo kiểu - TYPE tên_km= Array[kieeru cs] Of liệu mảng chiều ngôn ngữ lập kiểu_thành_phần; trình Pascal - Tìm ví dụ để minh họa - Ví dụ: Type mmc=array[1 100] of integer; - Gọi học sinh khác, Hỏi: ý nghĩa - Tạo mọt kiểu liệu có tên Gi¸o viªn: NguyÔn ThÞ Kim TIN HäC 11 (67) Trêng THPT sè Bè Tr¹ch N¨m häc: 2012 - 2013 lệnh bạn vừa viết? mmc, gồm 100 phần tử, có kiểu nguyên - Chiếu lên bảng số khia báo kiểu - Quan sát bảng và hcọn khai báo mang chiều đúng Type Arrayr=array[1 200] of real; Arrayr=array[1 200] of real; Arrayb=array[-100 0] of boolean; Arrayr=array[byte] of real; Arrayb=array[-100 0] of boolean; - Hỏi: Những khai báo nào đúng? Yêu cầu học sinh cho biết cách khai báo biến và ví dụ khai báo biến Tham khảo sách giáo khoa và trả lời VAR tên_biến:tên_km; mảng ứng với kiểu liệu vừa tạo - Ví dụ : Var a:mmc; - Gọi học sinh khác, hỏi: ý nghĩa - Khai báo biến mảng chiều lệnh bạn vừa viết? - Dung lượng nhớ biến a đã - a đã chiếm 200 byte nhớ chiếm là bao nhiêu? - Chú ý cho học sinh cách đặt tên kiểu liệu và tên biến, tránh nhầm lẫn Giới thiệu cách tham chiếu đến phần tử mảng chiều Yêu cầu Theo dõi hướng dẫn giáo viên và độc lập suy nghĩ để trả lời học sinh lấy ví dụ a[1] là phần tử vị trí mảng a a[i] là phần tử vị trí i mảng a BÀI TẬP TRẮC NGHIỆM: Câu 1: Khai báo sau có bao nhiêu phần tử: Var Mang1: Array[1 5] of byte; c 5; c d 1; d Câu 2: Khai báo sau có ý nghĩa gi? Var Mang2: Array[1 10] of real; e Khai báo mảng tthực có phần tử f Khai báo mảng thực có 10 phần tử g Khai báo mảng nguyên có 10 phần tử h Khai báo mảng nguyên có phần tử; Câu 3: Cho Mảng sau: Var Mang3: Array[1 9] of Integer; Viết Mang3[1] có ý nghĩa gì? a Là phần tử có giá trị b Là phần tử có giá trị Mang3 c Là phần tử vị trí thứ Mang3 d Là Phần tử vị trí Mang3 ; Câu : Khai báo nào là đúng các khai báo sau ? a Var Mang : Array[1 10] of Byte; b Var Mang3: Arrayy[1 ]of Byte; c Var Mang3: Array[1,10] of Byte; d Var Mang3: Array[1 10]of Byte; Gi¸o viªn: NguyÔn ThÞ Kim TIN HäC 11 (68) Trêng THPT sè Bè Tr¹ch N¨m häc: 2012 - 2013 IV Đánh giá cuối bài Những nội dung đã học - Cách tạo kiểu mảng chiều và cách khai báo biến TYPE tên_kiểu_mảng= Array[kiểu_chỉ_số] Of kiểu_thành_phần; VAR tên_biến:tên_kiểu_mảng; - Tham chiếu đến phần tử: Tên_biến[chỉ số] Câu hỏi và bài tập nhà - trả lời các câu hỏi 1_4, làm bài tập 5, 6, 7, sách giáo khoa, trang 79 V RÚT KINH NGHIỆM: - Gi¸o viªn: NguyÔn ThÞ Kim TIN HäC 11 (69) Trêng THPT sè Bè Tr¹ch N¨m häc: 2012 - 2013 Ngày giảng Tiết PPCT: 22 KIỂU MẢNG (t3) I Mục tiêu Kiến thức - Biết cấu trúc tạo kiểu mảng chiều và cách khai báo biến kiểu mảng chiều Kĩ - Tạo kiểu mảng chiều và sử dụng biến mảng chiều ngônngữ lập trình Pascal để giải số bài toán cụ thể II Đồ dùng dạy học Chuẩn bị giáo viên - Máy chiếu Projector, máy vi tính để giới thiệu ví dụ và minh họa Chuẩn bị học sinh Sách giáo khoa III Hoạt động dạy – học Hoạt đông 3: Rèn luyện kĩ sử dụng kiểu mảng chiều a Mục tiêu: - Học sinh sử dụng biến kiểu mảng hciều để giải bài toán đơn giản b Nội dung: Bài toán: Giải bài toán phần đặt vấn đề hoạt động 1, đó có sử dụng biến mảng chiều c các bước tiến hành: Hướng dẫn giáo viên Hoạt động học sinh Giới thiệu đề bài Quan sát đề bài, theo dõi yêu - Chiếu đề bài lên bảng cầu cần giải dề bài - Yêu cầu học sinh xác định liệu - Vào: số là giá trị nhiệt độ vào, liệu ngày tuần - Ra: Số ntb là nhiệt độ trung bình tuần và số nch là số ngày có nhiệt độ cao nhiệt độ trung bình - Được - Hỏi: Nếu không sử dụng biến mảng - Chương tình dài dòng, khó sửa đổi chiều, ta có thể giải bài toán không? Khó khăn gì không? Định hướng: Sử dụng kiểu mảng Theo dõi hướng dẫn giáo viên chiều để giải bài toán - Yêu cầu học sinh khai báo kiểu Type tuan=array[1 7] of real; Var ndtuan : tuan; mảng - Nhập giá trị cho mảng a - Yêu cầu học sinh khia báo biến Gi¸o viªn: NguyÔn ThÞ Kim TIN HäC 11 (70) Trêng THPT sè Bè Tr¹ch mảng - Yêu cầu học sinh tìm các nhiệm vụ chính cần giải Chia lớp thành nhóm Yêu cầu viết chương trình lên giấy bìa - Thu phiếu trả lời, chiếu lên bảng Gọi học sinh nhóm khác nhận xét đánh giá Chuẩn hóa chương trình cho học sinh N¨m häc: 2012 - 2013 - Tính trung bình cộng giá trị mảng - Đếm số phần tử có giá trị lớn trungbình cộng có Thảo luận theo nhóm để viết chương trình - Báo cáo kết viết - Nhận xét, đánh giá và bổ sung thiếu sót nhóm khác Quan sát và ghi nhớ BÀI TẬP TRẮC NGHIỆM: Câu 1: Khai báo sau có bao nhiêu phần tử: Var Mang1: Array[1 5] of byte; a 5; c b 1; d Câu 2: Khai báo sau có ý nghĩa gi? Var Mang2: Array[1 10] of real; a Khai báo mảng tthực có phần tử b Khai báo mảng thực có 10 phần tử c Khai báo mảng nguyên có 10 phần tử d Khai báo mảng nguyên có phần tử; Câu 3: Cho Mảng sau: Var Mang3: Array[1 9] of Integer; Viết Mang3[1] có ý nghĩa gì? a Là phần tử có giá trị b Là phần tử có giá trị Mang3 c Là phần tử vị trí thứ Mang3 d Là Phần tử vị trí Mang3 ; Câu : Khai báo nào là đúng các khai báo sau ? a Var Mang : Array[1 10] of Byte; b Var Mang3: Arrayy[1 ]of Byte; c Var Mang3: Array[1,10] of Byte; d Var Mang3: Array[1 10]of Byte; Gi¸o viªn: NguyÔn ThÞ Kim TIN HäC 11 (71) Trêng THPT sè Bè Tr¹ch N¨m häc: 2012 - 2013 IV Đánh giá cuối bài Câu hỏi và bài tập nhà - Viết chương trình nhập vào mảng gồm n số nguyên( 1<=n<=100), số có giá trị tuyệt đối không uqá 300 Tính tổng giá trị các phần tử có giá trị chia hết cho k V RÚT KINH NGHIỆM: - Gi¸o viªn: NguyÔn ThÞ Kim TIN HäC 11 (72) Trêng THPT sè Bè Tr¹ch N¨m häc: 2012 - 2013 Ngày giảng: Tiết PPCT: 23 Bài Tập Kiểu Mảng I Mục tiêu: Về kiến thức: Củng cố các kiến thức về: - Kiểu liệu mảng: Cách khai báo, cách nhập mảng, số phép toán đơn giản mảng 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ở II Chuẩn bị: - GV: Giáo án, SGK, Máy chiếu - HS: Chuẩn bị bài tập nhà III PHƯƠNG PHÁP PHƯƠNG TIỆN: Phương pháp: - Kết hợp phương pháp giảng dạy như: Thuyết trình, vấn đáp Phương tiện: - SGK, máy tính, máy chiếu, bảng viết IV TIẾN TRÌNH Ổn định lớp, kiểm tra sĩ số Kiểm tra bài cũ - Viết chương trình nhập số a, b và đưa màn hình số nhỏ Nội dung bài giảng: Nội Dung Ghi Bảng Bài toán Viết chương trình nhập n*m số nguyên cho mảng chiều A có n dòng và m cột, sau đó đưa màn hình giá trị lớn mổi dòng Hoạt Động Thầy - Cho biết Input bài toán - Theo em cần biến nào, và loại liệu mổi biến - Một em lên viết phần khai báo và nhập giá trị Chương trình: cho mảng n dòng m cột, Var n,m,I,j,max:integer; em lên viết đoạn A: array[1 30,1 50] of chương trình tìm giá trị lớn Integer; dòng I bất Begin kì Gi¸o viªn: NguyÔn ThÞ Kim Hoạt Động Trò - Trả lời - Biến n, m thuộc kiểu Integer, biến A thuộc kiểu mảng chiều mà kiểu phần tử nó là - HS1: Var n,m:integer; A: array[1 30,1 50] Integer; Begin Write (‘nhap n m:=’);Readln(n,m); For i:=1 to n TIN HäC 11 of va (73) Trêng THPT sè Bè Tr¹ch Write (‘nhap n va m:=’); Readln(n,m); For i:=1 to n For j:= to m Begin Write(‘Nhap phan tu dong ‘, i, ’cot’,j); Readln(A[i,j]); End; For i:= to n Begin Max:=0; For j:=1 to m If a[i,j]>max then max:=a[I,j]; Writeln( ‘gia tri lon nhat cua dong ‘,I,’la’,max); End; Readln;END N¨m häc: 2012 - 2013 - để tìm giá trị lớn cho n dòng thì ta lặp lặp lại n lần công việc tìm giá trị lớn dòng đó ta dùng thêm vòng lặp For For j:= to m Begin Write(‘Nhap phan tu dong ‘,I,’cot’,j); Readln(A[I,j]); End; HS2: Max:=0; For j:=1 to m If a[i,j]>max then max:=a[I,j]; Bài Nhập n số nguyên từ bàn phím hãy xếp dãy số - Phân tích thuật toán giảm dần - - Viết chương trình V CỦNG CỐ - DẶN DÒ : - Củng cố: nhắc lại số kiến thức về: + Kiểu mảng: cách khai báo, cách truy cập, in mảng - Dặn dò: + Các em xem lại lý thuyết Kiểu mảng + Chuẩn bị Bài thực hành số RÚT KINH NGHIỆM: - Gi¸o viªn: NguyÔn ThÞ Kim TIN HäC 11 (74) Trêng THPT sè Bè Tr¹ch N¨m häc: 2012 - 2013 Ngày giảng: Tiết PPCT: 24 BÀI THỰC HÀNH SỐ 3(t1) I Mục tiêu Kiến thức - Củng cố lại các kiến thức kiểu liệu mảng Kĩ - Nâng cao kĩ sử dụng số lệnh kiểu liệu mảng chiều lập trình, cụ thể: + Khai báo kiểu liệu mảng chiều + Nhập/xuất liệu cho mảng + Duyệt qua tất các phần tử mảng để xử lí phần tử Thái độ - Góp phần rèn luyện tác phong, tư lập trình: Tự giác, tích cực, chủ độngvà sáng tạo tìm kiếm kiến thức II Đồ dùng dạy học Chuẩn bị giáo viên - Phòng máy tính, máy chiếu Projector để minh họa Chuẩn bị học sinh - Sách giáo khoa III Hoạt động dạy – học Hoạt động 1: Tìm hiểu cách sử dụng lệnh và kiểu liệu mảng chiều qua chương trình có sẵn a Mục tiêu: - Học sinh hiểu chương trình có sẵn câu a, biết kết chạy chương trình này, từ đó tìm cách giải câu b b Nội dung: a – Tìm hiểu, gõ chương trình vào máy và chạy thử: Program Sum 1; Uses Crt; Const nmax:=100; Type Myarray = Array[1 nmax] of integer ; Var A:myarray; s, n, i, k:integer; Begin Clrscr; Randomize; Write(‘nhap n=’); readln(n); For i:=1 to n a[i]:=random(300) – random(300); For i:=1 to n Write(A[i]:5); Writeln; Write(;nhap k=’); readln(k); s:=0; Gi¸o viªn: NguyÔn ThÞ Kim TIN HäC 11 (75) Trêng THPT sè Bè Tr¹ch N¨m häc: 2012 - 2013 For i:=1 to n if a[i] mod k=0 then s:=s+a[i]; Write(‘tong can tinh la’,s); readln; End b – Thêm các lệnh vào chương trình nhằm sửa đổi chương trình câu a dể chương trình thực đếm số dương và số lượng số âm mảng Posi, neg:integer; Posi:=0;neg:=0; If a[i] >0 then Posi:=posi+1 Else if a[i] <0 then neg:=neg+1; Write(posi:4,neg:4); c Các bước tiến hành: Hướng dẫn giáo viên Hoạt động học sinh Tìm hiểu chương trình câu a, sách Quan sát, chú ý và trả lời giáo khoa, trang 63 và chạy thử chương - Khai báo thư viện chương trình trình Crt để sử dụng thủ tục Clrscr; - Chiếu chương trình lên bảng - Hỏi: Khai báo Uses CRT; có ý - Tên kiểu liệu nghĩa gì? - Hỏi: Myarray là tên kiểu liệu hay - nmax là số phần tử tối đa có thể chứa tên biến? - Hỏi: Vai trò nmax và n có gì biến mảng a, n là số phần tử thực tế a khác nhau? - Lệnh khai báo kiểu và khai báo biến - Hỏi: Những dòng lệnh nào dùng để - Quan sát chương trình thực và tạo biến mảng a? - Thực chương trình để học sinh kết trên màn hình - Lệnh sinh ngẫu nhiên giá trị cho thấy kết - Hỏi: Lệnh gán a[i]:=random(300) mảng a từ – 299 đến 299 – random(300) có ý nghĩa gì? - In màn hình giá trị phần - Hỏi: Lệnh Fori:=1 to n tử mảng a Write(A[i]:5); có ý nghĩa gì? - Cộng các phần tử chia hết cho k - Hỏi : Lệnh For – Do cuối cùng thực nhiệm vụ gì? - Có số lần đúng số phần tử a[i] - hỏi: Lệnh s:=a+a[i]; thựchiện chia hết k bao nhiêu lần? - Quan sát giáo viên thực chương - Thực lại chương trình lần cuối trình và kết trên màn hình để học sinh thấy kết Quan sát và chú ý theo dõi các câu Sửa chương trình câu a để hỏi giáo viên: chương trình giải bài toán câu b - Quan sát các lệnh và suy nghĩ vị trí cần sửa chương trình câu a - Chiếu lên màn hình các lệnh cần Gi¸o viªn: NguyÔn ThÞ Kim TIN HäC 11 (76) Trêng THPT sè Bè Tr¹ch N¨m häc: 2012 - 2013 thêm vào chương tình câu a - Dùng để lưu số lượng đếm - Hỏi: ý nghĩa biến Posi và neg? - Đếm số dương đếm số âm - Hỏi: Chức lệnh: If a[i] >0 then posi:=posi+1 - Chỉ vị trí cần thêm vào else if a[i] <0 then neg:=neg+1; - Yêu cầu học sinh thêm vào vị trí cần chương trình - Lưu chương trình Thực chương thiết để chương trình đếm số - Yêu cầu học gõ nội dung và lưu lại trình và thông báo kết với tên caub.pas thực chương trình và báo cáo kết IV Đánh giá cuối bài Những nội dung đã học Một số thuật toán bản: + Tìm tổng các phần tử thỏa mãn điều kiện nào đó + Đếm số các phần tử thỏa mãn điều kiện nào đó + Tìm phần tử lớn nhất, nhỏ Câu hỏi và bài tập nhà - Viết chương trình nhập mảng chiều A[1 20] và nhập số x Đếm số lượng số A có giá trị x - Xem nội dung bài thực hành số 4, sách giáo khoa, trang 65 RÚT KINH NGHIỆM: Gi¸o viªn: NguyÔn ThÞ Kim TIN HäC 11 (77) Trêng THPT sè Bè Tr¹ch N¨m häc: 2012 - 2013 Ngày giảng: Tiết PPCT: 25 BÀI THỰC HÀNH SỐ 3(t2) I Mục tiêu Kiến thức: Biết thêm số lệnh kiểu liệu mảng Kĩ - Biết giải số bài toán thường gặp: + Tính tổng các phần tử thỏa mãn điều kiện nào đó + Đếm số các phần tử thỏa mãn điều kiện nào đó + Tìm phần tử lớn nhất, nhỏ Thái độ - Góp phần rèn luyện tác phong, tư lập trình: Tự giác, tích cực, chủ độngvà sáng tạo tìm kiếm kiến thức II Đồ dùng dạy học Chuẩn bị giáo viên - Phòng máy tính, máy chiếu Projector để minh họa Chuẩn bị học sinh - Sách giáo khoa III Hoạt động dạy – học Hoạt động 2: rèn luyện kĩ lập trình a Mục tiêu: - Viết chương trình hoàn thiện cách sử dụng lệnh và kiểu liệu mảng chiều b Nội dung: - Viết chương trình tìm phần tử có giá trị lớn mảng và in màn hình số và giá trị phần tử tìm Nếu có nhiều phần tử có cùng giá trị lớn thì đưa phần tử có số nhỏ c Các bước tiến hành: Hướng dẫn giáo viên Hoạt động học sinh Lấy ví dụ thực tiễn: Người mù Theo dõi vị trí giáo viên tìm viên sỏi có kích thước lớn dãy các viên sỏi để gợi ý cho học sinh thuật toán tìm giá trị lớn - So sánh từ trái sang phải, giữ - Yêu cầu: Nêu thuật toán tìm phần tử lại số phần tử lớn có giá trị lớn Quan sát chương trình, suy nghĩ và Tìm hiểu chương trình tìm số và trả lời giá trị lớn - Chiếu chương tình ví dụ, sách giáo khoa, trang 64 - Giữ lại số phần tử có giá trị - Hỏi: Vai trò biến j lớn chương trình? - Hỏi: Nếu muốn tìm phần tử nhỏ nhất, Gi¸o viªn: NguyÔn ThÞ Kim - Phép so sánh a[i] <a[j] TIN HäC 11 (78) Trêng THPT sè Bè Tr¹ch N¨m häc: 2012 - 2013 cần sửa chỗ nào? - Chuyển thứ tự duyệt từ n-1 vè - Hỏi: Nếu muốn tìm phần tử lớn với số lớn ta sửa chỗ nào? Theo dõi yêu cầu, suy nghĩ các câu Đặt yêu cầu mới: Viết chương trình đưa các số các phần tử có giá hỏi định hướng để viết chương trình trị lớn - Có - Hỏi: Cần giữ lại đoạn chương trình tìm giá trị lớn không? - Lệnh để in các số có giá tị - Hỏi: Cần thêm lệnh nào nữa? giá trị lớn tìm - Sau tìm giá trị lớn - Hỏi: Vị trí thêm các lệnh đó? - Soạn chương trìnhvào máy Thực - Yêu cầu: Viết chương trình hoàn chương trình và thông báo kết thiện - Nhập liệu vào và thông báo cho - Yêu cầu học sinh nhập liệu vào giáo viên liệu giáo viên và báo kết - Đánh giá kết học sinh IV Đánh giá cuối bài Những nội dung đã học Một số thuật toán bản: + Tìm tổng các phần tử thỏa mãn điều kiện nào đó + Đếm số các phần tử thỏa mãn điều kiện nào đó + Tìm phần tử lớn nhất, nhỏ Câu hỏi và bài tập nhà - Viết chương trình nhập mảng chiều A[1 20] và nhập số x Đếm số lượng số A có giá trị x - Xem nội dung bài thực hành số 4, sách giáo khoa, trang 65 RÚT KINH NGHIỆM: Gi¸o viªn: NguyÔn ThÞ Kim TIN HäC 11 (79) Trêng THPT sè Bè Tr¹ch N¨m häc: 2012 - 2013 Ngày giảng: Tiết PPCT: 26 BÀI THỰC HÀNH SỐ 4(t1) I Mục tiêu Kiến thức - Củng cố lại các kiến thức lập trình với kiểu liệu mảng - Làm quen với thuật toán xếp đơn giản Kĩ - Rèn luyện kĩ sử dụng kiểu liệu có cấu trúc, kĩ diễn đạt thuật toán chương trình sử dụng liệu kiểu mảng - Rèn luyện kĩ nhận xét, phân tích và đề xuất cách giải bài toán cho chương trình chạy nhanh Thái độ - Tự giác, chủ động thực hành II Đồ dùng dạy học Chuẩn bị giáo viên - Phòng máy vi tính, máy chiếu Projedtor để hướng dẫn Chuẩn bị học sinh - Sách giáo khoa, chương trình đã viết sẵn III Hoạt động dạy – học Hoạt động 1: Tìm hiểu chương trình diễn đạt thuật toán xếp a Mục tiêu: - Học sinh hiểu chương trình và thuật toán xếp đơn giản b Nội dung: Bài toán 1: Viết chương trình xếp các phần tử mảng theo thứ tự không giảm - Chương trình minhhọa: Uses CRT; Const nmax=250; type arrint=array[1 nmax] of integer; Var n, i, j, y:integer; a:arrint; Begin clrscr; Randomize; Write(‘nhap n=’); Readln(n); For i:=1 to n a[i]:=random(300) – random (300); For i:=1 to n write(a[i]:5); Writeln; For i:=n dowto For i:=1 to i – If a[i] >a[i+1] then Begin t:=a[i]; Gi¸o viªn: NguyÔn ThÞ Kim TIN HäC 11 (80) Trêng THPT sè Bè Tr¹ch N¨m häc: 2012 - 2013 a[i]:=a[i+1]; a[i+1]:=t; End; Writeln(‘day so sau sap xep’); For i:=1 to n write(a[i]:7); Writeln; readln; End - Yêu cầu: Soan chương trình vào máy, chạy thử với các giá trị khác n Rút nhận xét thời gian thực chương trình c Các bước tiến hành: Hướng dẫn giáo viên Hoạt động học sinh Gợi ý cho học sinh thuật toán Chú ý theo dõi dẫn dắt giáo xếp tăng dần viên để trả lời câu hỏi - Lấy ví dụ thực tiễn: Người mù xếp dãy các viên bi theo kích thước không giảm - Lần lượt lấy phần tử từ trái qua - Yêu cầu: Vạch các bước để xếp các phần tử mảng không phải - Cứ phần tử ta đem so sánh lần giảm lượt với các phần tử đứng bên phải nó - Nếu nhỏ thì đổi chỗ Tìm hiểu chương trình ví dụ, sách Quan sát chương trình, suy nghĩ câu giáo khoa, trang 65 hỏi và trả lời - Chiếu chương trình ví dụ lên bảng - Hỏi: Vai trò biến i, j - Biến i, j dùng làm số chương trình? Mỗi vòng lặp For - Mỗi vòng lặp For ứng với phép đoạn chương trình xếp có ý nghĩa duyệt gì? - Dùng để đổi giá trị hai phần tử - Hỏi: Ba lệnh tg:=a[i]; a[i]:=a[i+1]; a[i] với a[i+1] a[i+1]:=tg; có ý nghĩa gì? - Quan sát giáo viên thực chương - Thực chương trình, nhập trình liệu để học sinh thấy kết chương - Chương trình xếp dãy số theo thứ trình tự không giảm - Hỏi: Chương trình làm công vịêc gì? Quan sát yêu cầu mới, chú ý định hướng giải giáo viên Sửa chương trình để giẩi bài toán câu b - Đặt yêu cầu mới: Khai báo thêm biến nguyên Dem và bổ sung vào chương trình đoạn lệnh cần thiết để biến Dem tính số lần thực tráo đổi tg:=a[i];a[i]:=a[i+1];a[i+1]:=tg; thuật toán In kết tìm màn Gi¸o viªn: NguyÔn ThÞ Kim TIN HäC 11 (81) Trêng THPT sè Bè Tr¹ch N¨m häc: 2012 - 2013 hình - Dem := Dem+1; - Hỏi: Đoạn chương trình nào dùng để - Ngay sau đoạn tráo đổi thực tráo đổi giá trị? - Yêu cầu học sinh viết lệnh để đếm - Soạn chương trình vào máy, thực số lần tráo đổi - Hỏi: Lệnh này viết vị nào chương trình và thông báo kết - Nhập liệu theo yêu cầu giáo chương trình? - Yêu cầu học sinh soạn chương viên, thực chương trình và thông báo kết sau thực trình? - Yêu cầu học sinh nhập liệu vào giáo viên và thông báo kết - Đánh giá kết học sinh IV Đánh giá cuối bài Những nội dung đã học - Thuật toán xếp đơn giản - Một bài toán có thể có nhiều cách viết thành chương trình Cần chọn cách có số phép tính ít Câu hỏi và bài tập nhà - Xem lại tất các kiến thức đã học, bao gồm: Lệnh bản, lệnh điều khiển, kiểu liệu bản, kiểu liệu có cấu trúc RÚT KINH NGHIỆM: Gi¸o viªn: NguyÔn ThÞ Kim TIN HäC 11 (82) Trêng THPT sè Bè Tr¹ch N¨m häc: 2012 - 2013 Ngày giảng: Tiết PPCT: 27 BÀI THỰC HÀNH SỐ 4(t2) I Mục tiêu Kiến thức - Củng cố lại các kiến thức lập trình với kiểu liệu mảng - Làm quen với thuật toán xếp đơn giản Kĩ - Rèn luyện kĩ sử dụng kiểu liệu có cấu trúc, kĩ diễn đạt thuật toán chương trình sử dụng liệu kiểu mảng - Rèn luyện kĩ nhận xét, phân tích và đề xuất cách giải bài toán cho chương trình chạy nhanh Thái độ - Tự giác, chủ động thực hành II Đồ dùng dạy học Chuẩn bị giáo viên - Phòng máy vi tính, máy chiếu Projedtor để hướng dẫn Chuẩn bị học sinh - Sách giáo khoa, chương trình đã viết sẵn III Hoạt động dạy – học Hoạt động 2: Rèn luyện kĩ nhận xét, phân tích và đề xuất cách giải bài toán cho chương trình chạy nhanh a Mục tiêu: - Học sinh biết sử dụng kiểu mảng để lập trình giải bài toán Biết nhận xét, phân tích để đề xuất phương pháp giải hay b Nội dung: Cho mảng A gồm n phần tử Viết chương trình tạo mảng B[1 n], đó B[i] là tổng giá trị i phần tử đầu tiên mảng A Chương trình minh họa: Const nmax=100; Type myarray=array[1 nmax] ò integer; Var n, i, j:integer; a,b:arrint; Begin Randomize; Write(‘nhap n=’); Readln(n); For i:=1 to n a[i]:=random(300) – random(300); For i:=1 to n write(a[i]:5); Writeln; For i:=1 to n Begin B[i]:=0; For j:=1 to i B[i]:=B[i]+A[j]; End; Gi¸o viªn: NguyÔn ThÞ Kim TIN HäC 11 (83) Trêng THPT sè Bè Tr¹ch N¨m häc: 2012 - 2013 For i:=1 to n write(B[i]5); Readln; End c Các bước tiến hành: Hướng dẫn giáo viên Hoạt động học sinh Xác định bài toán Quan sát đề bài và trả lời câu hỏi - Chiếu đề bài lên bảng - Vào: Mảng A gồm n phần tử - Yêu cầu: Xác định liệu vào, - Ra: Mảng B gồm n phần tử liệu ra? - Tại vị trí i ta tính tổng giá trị các phần - Gợi ý để học sinh đề xuất thuật toán tử từ đến i thô Quan sát chương trình trên bảng giới thiệu chương trình chưa cải tiến - Quan sát giáo viên thực hiện, nhận - Chiếu chương trình diễn đạt thuật xét thời gian thực chương trình toán - Thực chương trình để học sinh biết thời gian thực chương trình và - Phải thực n(n+1)/2 phép cộng kết chương trình - Hỏi: Trong chương trình phải thực - Để tính bước thứ i, ta sử dụng kết hiên bao nhiêu phép toán cộng? đã tính bước thứ i – - Hỏi: Có cách nào để cải tiến? B[i]:=B[i-1]+A[i]; - Thay đoạn lệnh For j:=1 to i B[i]:=B[i]+A[j]; - Lệnh này thay lệnh nào Soạn chương trình vào máy, thực chương trình? Viết vị trí nào? Yêu cầu: Viết chương trình hoàn chương trình và thông báo kết - Nhận xét thời gian thực thiện chương trình này so với chương trình trước cải tiến Tiểu kết: Cùng bài toán, có nhiều cách giải khác Người lập trình cần chọn cách cho máy thực nhanh IV Đánh giá cuối bài Những nội dung đã học - Thuật toán xếp đơn giản - Một bài toán có thể có nhiều cách viết thành chương trình Cần chọn cách có số phép tính ít Gi¸o viªn: NguyÔn ThÞ Kim TIN HäC 11 (84) Trêng THPT sè Bè Tr¹ch N¨m häc: 2012 - 2013 Câu hỏi và bài tập nhà - Xem lại tất các kiến thức đã học, bao gồm: Lệnh bản, lệnh điều khiển, kiểu liệu bản, kiểu liệu có cấu trúc RÚT KINH NGHIỆM: Gi¸o viªn: NguyÔn ThÞ Kim TIN HäC 11 (85) Trêng THPT sè Bè Tr¹ch N¨m häc: 2012 - 2013 Ngày giảng: Tiết PPCT: 28 KIỂU DỮ LIỆU XÂU(T1) I Mục tiêu Kiến thức - Biết kiểu 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 kí tự với xâu kí tự - Biết cách khai báo biến, nhập xuất liệu, tham chiếu đến kí tự xâu - Biết các phép toán liên qua đến xâu 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 Đồ dùng dạy học Chuẩn bị giáo viên - Máy vi tính, máy chiếu Projector để giới thiệu ví dụ Chuẩn bị học sinh - Sách giáo khoa III Hoạt động dạy – học Hoạt động 1: Tìm hiểu xâu và cách sử dụng a Mục tiêu: - Học sinh biết ý nghĩa xâu và số khái niệm xâu Biết cách khai báo biến xâu, nhập xuất liệu cho biến xâu và tham chiếu đến kí tự xâu b Nội dung: - Xâu kí tự là dãy các kí tự bảng mã ASCII, kí tự gọi là phần tử xâu Số lượng các kí tự xâu gọi là độ dài xâu Xâu có độ dài không là xâu rỗng - Khai báo biến: VAR tên_biến : STRING[độ dài lớn xâu]; - Tham chiếu đến kí tự xâu: tên_biến[chỉ_số] c Các bước tiến hành: Hướng dẫn giáo viên Tìm hiểu ý nghĩa xâu kí tự - Chiếu đề bài bài toán đặt vấn đề: Viết chương trình nhập họ tên 30 học sinh lớp - Hỏi: ta chọn kiểu liệu nào? Khai báo biến nào? Hoạt động học sinh Quan sát, suy nghĩ và trả lời - Kiểu mảng chiều gồm 30 kí tự - Khai báo biến mảng A để lưu họ tên học sinh Readln(A[1]); Readln (A[2]) - Yêu cầu học sinh: Viết đoạn lệnh để Readln(A[3]); Readln (A[4]); nhập và xuất liệu cho phần tử - Hỏi: Có khó khăn gì gặp phải? - Chương trình viết dài dòng Khi nhập liệu, phải thực gõ Gi¸o viªn: NguyÔn ThÞ Kim TIN HäC 11 (86) Trêng THPT sè Bè Tr¹ch N¨m häc: 2012 - 2013 nhiều phím - Dẫn dắt: Cần có kiểu liệu cho phép ta nhập/ xuất liệu cho xâu lệnh Quan sát cấu trúc khai báo và tham Tìm hiểu kiểu xâu - Chiếu lên bảng cách khai báo biến khảo sách giáo khoa xâu ngôn ngữ lập trình Pascal - String là tên kiểu xâu - Hỏi: ý nghĩa từ String, [n] - [n] là giá trị quy định số lượng kí tự tối đa mà biến xâu có thể chứa - Số kí tự tối đa là 255 - Hỏi: Khi khai báo không có[n] thì số lượng kí tự tối đa là bao nhiêu? - Yêu cầu học sinh cho ví dụ xâu - Ví dụ: ‘HA NOI’ kí tự - Xâu có kí tự, dấu cách là kí tự - Hỏi: Xâu có bao nhiêu kí tự? - Diễn giải: Mỗi kí tự gọi là phần tử xâu Số lượng kí tự xâu gọi là độ dài xâu - Kí hiệu xâu gồm kí tự trống - Hỏi: Xâu gồm kí tự trống viết nào? Số lượng kí tự bao là ‘ ’ Xâu nào có độ dài là - Kí hiệu xâu rỗng là ‘ ’ Xâu này nhiêu? - Hỏi: Xâu rỗng viết nào? có độ dài là Quan sát bảng để trả lời Số lượng kí tự bao nhiêu? Nhập/xuất liệu cho biến xâu ngôn ngữ Pascal - Giới thiệu cấu trúc chung thủ tục - Ví dụ: Readln(ho ten); nhập/xuất liệu - Ví dụ: Write(‘ho ten’,hoten); - Yêu cầu học sinh tìm ví dụ cụ thể - Viết lệnh nhập nguyên cho - Hỏi: Khi viết lệnh nhập/xuất liệu cho biến xâu, có gì khác so với biến mảng các kí tự - Dẫn dắt: Ta có thể sử dụng lệnh gán để nhập giá trị cho biến xâu Cấu trúc chung: Tên_biến_xâu:=hằng_xâu; - Yêu cầu học sinh tìm ví dụ cụ thể Tham chiếu đến kí tự xâu - Giới thiệu cấu trúc chung - Hỏi: Có gì giống và khác so với cách tham chiếu đến phần tử mảng - Yêu cầu học sinh tìm ví dụ Kiểm tra kiến thức Gi¸o viªn: NguyÔn ThÞ Kim xâu Viết lệnh gọn hơn, Chương trình gọn - Ví dụ:St:=’HA NOI’; Quan sát và suy nghĩa để trả lời - Giống cấu trúc chung tham chiếu tên biến[chỉ số] - Ví dụ: st[2] Quan sát chương trình trên bảng và độc lập suy nghĩ TIN HäC 11 (87) Trêng THPT sè Bè Tr¹ch N¨m häc: 2012 - 2013 - Chiếu nội dung bài tập kiểm tra kiến - Lệnh {1} đúng thức: - Lệnh {2} sai không thể gán xâu Var st:string[1]; c:char; cho kí tự Begin c:=st[1]; {1} c:=st; {2} End - Hỏi: Trong hai lệnh {1} và {2}, Lệnh nào đúng? - Thực chương trình để học sinh tự kiểm nghiệm suy luận Hoạt động 2: Tìm hiểu các phép toán liên quan đến xâu a Mục tiêu: - Học sinh biết các phép toán liên quan đến xâu Diễn đạt các phép toán đó ngôn ngữ lập trình Pascal b Nội dung: - Phép ghép xâu: Kí hiệu là +, sử dụng để ghép nhiều xâu thành xâu - Các phép so sánh; =, <>,>, <, <=,>=: Thực việc so sánh hai xâu Xâu A xem là lớn xâu B kí tự khác đầu tiên chúng kể từ trái sang xâu A có số bảng mã ASCII là lớn Nếu A và B là các xâu có độ dài khác và A là đoạn đầu B thì A nhỏ B c Các bước tiến hành: Hướng dẫn giáo viên Gợi nhớ các phép toán đã học - Hỏi: Hãy nhắc lại các phép toán đã học trên kiểu liệu chuẩn Hoạt động học sinh Chú ý theo dõi, suy nghĩ và trả lời - Phép toán số học - Phép toán so sánh - Phép toán logic Quan sát ví dụ, suy nghĩ và trả lời Tìm hiểu chức số phép toán kiểu xâu qua số ví dụ - Quan sát chương trình - Chiếu chương trình ví dụ: Var st:string; Begin st:=’Ha’+ ‘Noi’; Write(st) ; readln; End - Kết cho ta: st= ‘HA NOI’ - Hỏi: Kết chương trình in màn hình? - Quan sát kết chương trình - Thực chương trình để học sinh thấy kết - Ví dụ: st:= ‘HA NOI’ + ‘Co ho - Yêu cầu học sinh tìm số ví dụ GUOM’ Kết quả: khác Gi¸o viªn: NguyÔn ThÞ Kim TIN HäC 11 (88) Trêng THPT sè Bè Tr¹ch - Hỏi: Chức phép cộng? N¨m häc: 2012 - 2013 st= ‘HA NOI co ho GUOM’ - Là phép toán nối xâu thứ hai vào cuối xâu thứ - Giới thiệu thêm số ví dụ khác và yêu cầu học sinh cho biết kết st:= ‘Ha’ + ‘Noi’; st:= ‘Ha Noi’; st:= ‘Ha ’+ ‘Noi’; st:= ‘Ha Noi’; st:= ‘ ’ + ‘Noi’; st:= ‘ Ha Noi’; st:= ‘Ha Noi’ + ‘Việt’ + ‘Nam’; st:= ‘Ha Noi Việt Nam’; - Chiếu chương trình ví dụ phép so sánh xâu - Quan sát chương trình để dự tính kết Var bo:boolean; Begin bo:= ‘AB’ < ‘AC’; Write(bo); readln; End - Kết là: TRUE - Hỏi: Kết chương trình in màn hình? - Quan sát kết chương trình để - Thực chương trình để học sinh kiểm chứng suy luận thấy kết - Có các phép <, <=,>=, <>, = - Hỏi: Còn có phép so sánh nào nữa? - Chiếu các ví dụ các phép so sánh và yếu cầu học sinh cho kết các phép so sánh đó - Kết True ‘AB’ < ‘ABC’ - Kết quả: False ‘AC’ < ‘ABC’ - Lưu ý cho học sinh: Một xâu có độ dài nhỏ có thể lớn (>) xâu có độ dài lớn Gi¸o viªn: NguyÔn ThÞ Kim TIN HäC 11 (89) Trêng THPT sè Bè Tr¹ch N¨m häc: 2012 - 2013 BÀI TẬP TRẮC NGHIỆM: Câu 1: Tên kiểu xâu là? a String c Array b Record d Type Câu : Cho biết kết ‘Trường’ + ‘số 2’ ? a ‘số trường’ c ‘Trườngsố 2’ b ‘Trường số 2’ d ‘Trườngsố2 ’ Câu : Kết Aabc<Babc là ? a True b False IV Đánh giá cuối bài Những nội dung đã học - Khai báo biến: VAR tên_biến: STRING[độ dài lớn xâu]; - Nhập xuất giá trị cho biến xâu: read/readln(); write/writeln(); - Tham chiếu đến kí tự xâu: tên_biến[chỉ số] - Phép ghép xâu: Kí hiệu là: +, Được sử dụng để ghép nhiều xâu thành xâu - Các phép so sánh: =, <>, >, <, <=, >=: thực việc so sánh hai xâu Câu hỏi và bài tập nhà - Xem phần kiến thức lí thuyết còn lại bìa, bao gồm các hàm và thủ tục liên quan đến xâu, sách giáo khoa, trang 70 – 71 V RÚT KINH NGHIỆM: Gi¸o viªn: NguyÔn ThÞ Kim TIN HäC 11 (90) Trêng THPT sè Bè Tr¹ch N¨m häc: 2012 - 2013 Ngày giảng: Tiết PPCT: 29 KIỂU DỮ LIỆU XÂU(T2) I Mục tiêu Kiến thức - Biết lợi ích các hàm và thủ tục liên quan đến xâu ngôn ngữ lập trình Pascal - Nắm cấu trúc chung và chức số hàm và thủ túc liên quan đến xâu ngôn ngữ lập trình Pascal Kĩ - Nhận biết và bước đầu sử dụng số hàm và thủ tục để giải số bài tập đơn giản liên quan II Đồ dùng dạy học Chuẩn bị giáo viên - Máy vi tính, máy chiếu Projector để giới thiệu ví dụ, sách giáo viên Chuẩn bị học sinh - Sách giáo khoa III Hoạt động day – học Hoạt động 1: Tìm hiểu số hàm và thủ tục chuẩn liên quan đến xâu ngôn ngữ lập trình Pascal a Mục tiêu: - Học sinh biết số hàm và thủ tục liên quan đến xâu Nắm cấu trúc chung, hiểu các tham số các hàm và thủ tục chuẩn b Nội dung: - Thủ tục Delete(st, vt, n) thực việc xóa tring xâu st gồm n kí tự, bắt đàu từ vị trí vt - Thủ tục insert(st1, st2, vt) thực việc chèn xâu st1 vào xâu st2 vị trí vt - Hàm Copy(st, vt, n) cho giá trị là xâu kí tự lấy xâu st, gồm n kí tự liên tiếp vị trí vt xâu st - Hàm Length(st) cho giá trị là số lượng kí tự xâu st - hàm Pos(st1, st2) cho giá trị là vị trí xuất đầu tiên xâu st1 xâu st2 - Hàm Up Case(ch) cho giá trị là kí tự hoa tương ứng với kí tự ch c Các bước tiến hành: Hướng dẫn giáo viên Hoạt động học sinh Giới thiệu cấu trúc chung hàm Quan sát cấu trúc chung length(st) lên bảng - Length: Là tên hàm, có nghĩa là độ - Hỏi: ý nghĩa Length và st? dài, st: là biểu thức xâu kí tự - Chiếu chương trình ví dụ: - Quan sát chương trình để dự tính kết Var st:tring; Begin st:= ‘ha Noi’; Write(length(st)); readln; Gi¸o viªn: NguyÔn ThÞ Kim TIN HäC 11 (91) Trêng THPT sè Bè Tr¹ch N¨m häc: 2012 - 2013 End - Hỏi: Kết chương tình in - Kết là : màn hình? - Quan sát kết chương trình - Thực chương trình để học sinh thấy kết - Hàm cho số lượng kí tự xâu st - Hỏi: Chức hàm length() là gì? - Chiếu đề bài tập ứng dụng: Viết chương trình nhập xâu, in màn hình số kí tự ‘a’ có xâu Quan sát cấu trúc chung hàm Giới thiệu cấu trúc chung hàm Upcase Upcase(ch) - Quan sát chương trình để dự tính kết - Chiếu chương trình ví dụ: Var ch:char; Begin ch:= ‘h’; Write(upcase(ch)); readln; End - Kết là : H - Hỏi: Kết chương trình in màn hình? - Quan sát kết chương trình - Thực chương trình để học sinh thấy kết - Cho giá trị là chữ in hoa ch - Hỏi: Chức hàm upcase()? Var st:string; - Chiếu bài tập ứng dụng: Viết chương Begin trình nhập xâu, in màn hình xâu readln(st); đó dạng in hoa For i:=1 to length(st) write(upcase(st[i])); End Quan sát cấu trúc chung hàm Pos Giới thiệu cấu trúc chung hàm và các ví dụ để biết chức Pos(s1, s2) - Chiếu chương trình ví dụ: Var vt:byte; - Quan sát chương trình để dự tính kết Begin vt:=Pos(‘cd’, ‘abcdefcd’); Write(vt); readln; End - Kết là: - Hỏi: Kết chương trình in - Quan sát kết hcương trình màn hình? - Thực chương trình để học sinh - Hàm cho giá trị là số nguyên là thấy kết vị trú xâu st2 xâu st2 - Hỏi: Chức hàm Pos? - Bằng không Gi¸o viªn: NguyÔn ThÞ Kim TIN HäC 11 (92) Trêng THPT sè Bè Tr¹ch N¨m häc: 2012 - 2013 - Thay tham số hàm Pos chương trình Pos(‘k’, ‘abc’) Hỏi kết hàm bao nhiêu? - Chiếu bài tập ứng dụng: Viết chương trình nhập vào xâu st Xét xem xâu có dấu cách hay không? Var st:tring; Begin readln(st); if pos(‘ ’, st) <>0 then write(‘co’) else write(‘khong’); End - Có thể sử dụng For để tìm dấu cách - Hỏi: Có cách giải nào khác? xâu Quan sát cấu trúc chung hàm Giới thiệu cấu trúc chung hàm coppy và ví dụ để biết chức copy(st, vt, n) - Quan sát chương trình để dự tính kết - Chiếu chương trình ví dụ: Var st:string; Begin st:=copy(‘bai tap’, 3, 4); Write(st); readln; End - Kết là: ‘i ta’ - Hỏi: kết chương trình in màn - Quan sát kết chương trình hình? - Thực chương trình để học sinh - Hàm cho giá trị là xâu kí tự thấy kết lấy xâu st, gồm n kí tự bắt đầu - Hỏi: Chức hàm copy? vị trí vt - Thay các tham số hàm copy chương trình ví dụ trên sau và Cho giá trị là: ‘abc’ hỏi kết in màn hình: Cho giá trị là xâu rỗng Copy(‘abc,1, 5) Cho giá trị là xâu rỗng Copy(‘abc,5, 2) - Quan sát kết chương trình để Copy(‘abc,1, 0) - Thực chương trình để học sinh kiểm nghiệm suy luận Quan sát cấu trúc chung thủ tục thấy kết Giới thiệu cấu trúc chung thủ tục delete và các ví dụ - Quan sát chương trình để dự tính kết delete(st, vt, n); - Chiếu chương trình ví dụ: Var st:string; Begin st:= ‘Ha Noi’; delete(st,3,2); Write(st); readln; st=’ Hai’ Gi¸o viªn: NguyÔn ThÞ Kim TIN HäC 11 (93) Trêng THPT sè Bè Tr¹ch N¨m häc: 2012 - 2013 End - Quan sát kết hcương trình - Hỏi: Kết chương trình in màn hình? - Thủ tục thực việc xóa - Thực chương trình để học sinh biến xâu st gồm n kí tự, vị trí thấy kết - Hỏi: Chức thủ tục delete(); vt - Thay lệnh gán st:= ‘Ha Noi’; và thủ tục xóa các lệnh sau và hỏi kết in màn hình st:=’ abc’; Delete(st,1,5); st:=’ abc’; Delete(st,5,2); st:=’ abc’; Delete(st,1,0); - Chiếu bài tập ví dụ: Viết chương trình nhập xâu và xóa các dấu cách đầu xâu st:= ‘’; xâu rỗng st:= ‘abc’; st:= ‘abc’; Var st:string; Begin readln(st); While st[1]= ‘ ’ delete(st, 1, 1); Writeln(st); readln; End Quan sát cấu trúc chung thủ tục Giới thiệu cấu trúc chung thủ Insert tục Insert(st1, st2, vt); - Quan sát chương trình để dự tính kết - Chiếu chương trình ví dụ: Var st1, st2:string; begin st2:= ‘Ha Noi’; st1:= ‘ ’; insert(st1, st2,3); Write()st; readln; - Kết st2=’ Ha Noi’ End - Hỏi: Kết chương trình in - Quan sát kết chương trình màn hình? - Thực chương trình để học sinh - Thủ tục thực việc chèn xâu st1 thấy kết vào biến xâu st2 bắt đầu vị trí vt - Hỏi chức thủ tục insert(); - Thay lệnh gán st2:= ‘Ha Noi’; và thủ tục chèn các lệnh sau và hỏi kết st2= ‘efabc’; quả: st2= ‘abcef’; st2:= ‘ef’; Insert(‘abc’,st2, 5); st2:= ‘ef’; Insert(‘abc’,st2, 0); Gi¸o viªn: NguyÔn ThÞ Kim TIN HäC 11 (94) Trêng THPT sè Bè Tr¹ch N¨m häc: 2012 - 2013 Hoạt động 2: Rèn luyện kĩ vận dụng và thủ tục a Mục tiêu: - Học sinh biết sử dụng hàm và thủ tục để giải số bài toán đơn giản Linh hoạt việc lựa chọn hàm thủ tục b Nội dung - Viết chương trình nhập vào xâu và xóa các dấu thừa có xâu., để lại dấu cách giửa hai từ c Các bước tiến hành: Hướng dẫn giáo viên Xác định bài toán - Chiếu nội dung để bài lên bảng - Xác định liệu vào, liệu Hoạt động học sinh Quan sát suy nghĩ để trả lời - Vào: Một xâu kí tự bất kì - Ra: Một xâu có kí trắng hai từ - Hỏi: Các nhiệm vụ chính giải - Xóa dấu cách thừa đầu xâu và bài toán này? cuối xâu - Xóa các dấu cách thừa Giữa hai từ - Hỏi: bài này, ta cần sử dụng - Hàm Pos(), thủ tục delete(); hàm và thủ tục nào? Chia lớp làm nhóm Yêu cầu viết Thảo luận theo nhóm để viết chương chương trình lên bìa trình - Thu phiếu trả lời Chiếu kết lên - Thông báo kết bảng Gọi học sinh nhóm khác nhận xét, - Nhận xét và bổ sung thiếu sót đánh giá và bổ sung nhóm khác Chiếu chương trình mẫu giáo viên đã Quan sát và ghi nhớ viết để chính xác hóa cho học sinh BÀI TẬP TRẮC NGHIỆM Câu 1: Kết delete(‘Ha Noi’,2,2) a ‘HNoi’ c ‘HaNoi’ b ‘ Noi’ d ‘Ha’ Câu 2: Kết Insert(‘Ha Noi’, ‘Thu đo ’,1) a ‘Ha noi thu đo’ c ‘Thu đoHa noi’ b ‘Thu đo Ha noi’ d ‘Ha Thu đo noi’ Gi¸o viªn: NguyÔn ThÞ Kim TIN HäC 11 (95) Trêng THPT sè Bè Tr¹ch N¨m häc: 2012 - 2013 Câu 3: Kết Copy(‘Tuoi than tien’, 11,4) a ‘Tuoi’ c ‘Than’ b ‘tien’ d ‘than tien’ Câu 4: Kết Length(‘Ba đinh lich su’) a 12 c 14 b 15 d 16 IV Đánh giá cuối bài Những hàm và thủ tục liên quan đến xâu - Thủ tục Delete(st, vt,n); - Thủ tục Insert(st1, st2, vt); - Hàm Copy(st, vt,n) - Hàm Length(st) - Hàm Pos(st1, st2) - Hàm UpCase(ch) Câu hỏi và bài tập nhà - Giải bài tập số 10 trang 80 - Viết chương trình nhập xâu In màn hình sỗ từ có xâu - Xem phần nội dung bài thực hành số 5, sách giáo khoa, trang 73 - Chuẩn bị số bài tập để thực hành V RÚT KINH NGHIỆM - Gi¸o viªn: NguyÔn ThÞ Kim TIN HäC 11 (96) Trêng THPT sè Bè Tr¹ch N¨m häc: 2012 - 2013 Ngày giảng: Tiết PPCT: 30 BÀI TẬP KIỂU XÂU I Mục đích yêu cầu: Kiến thức: Ôn lại liệu kiểu xâu Hiểu cách khai báo biến xâu Làm số bài tập để rèn luyện thao tác nhập xâu truy cập đến xâu, đến các phần tử xâu, ôn lại các hàm và thủ tục kiểu xâu sử dụng nó để làm số bài toán cụ thể Kỹ năng: Viết số bài toán đơn giản với kiểu liệu xâu Thực khai báo xâu, sử dụng các hàm , thủ tục thường dùng II Chuẩn bị: - GV: Giáo án, SGK, Máy chiếu - HS: Chuẩn bị bài tập nhà III PHƯƠNG PHÁP PHƯƠNG TIỆN: 1.Phương pháp: - Kết hợp phương pháp giảng dạy như: Thuyết trình, vấn đáp 2.Phương tiện: - SGK, máy tính, máy chiếu, bảng viết IV TIẾN TRÌNH 1.Ổn định lớp, kiểm tra sĩ số 2.Kiểm tra bài cũ - Viết chương trình nhập số a, b và đưa màn hình số nhỏ 3.Nội dung bài giảng: Nội Dung Hoạt Động Thầy - Trò I.Kiểu xâu: - Hs: Var biến xâu:String[x]; - Khai báo - Hs: Muốn tham chiếu tới biến xâu ta có - Cách làm việc với kiểu xâu: thể tham chiếu biến xâu tham VD: Readln(st); chiếu với phần tử xâu Writeln(st[i]); cách Tên biến xâu[chỉ sô] Bài tập Nhập xâu bất kì từ bàn phím, - GV làm nào để kiểm tra xem xâu st kiểm tra xem xâu đó có phải là xâu có phải là xâu Palindrom không? Palindrom không (xâu Palindrom là xâu - HS tạo xâu st2 cách viết ngược đọc từ phải sang trái giống đọc xâu st sau đó so sánh st=st2 thì đó là từ trái sang phải) xâu Palindrom) Bài toán yêu cầu: Var st:string[200]; i:byte; - Nhập xâu Begin - Kiểm tra xem xâu có phải là Writeln('nhâp gia tri xau'); Palindrom? Readln(st);st2:=' '; For i:=Length(st) downto St2:=st2+st[i]; If st2=st then write(st,'la xau Gi¸o viªn: NguyÔn ThÞ Kim TIN HäC 11 (97) Trêng THPT sè Bè Tr¹ch 2.Viết chương trình nhập từ bàn phím xâu S có độ dài không quá 100 hãy cho biết có bao nhiêu chữ số thập phân S? (Số thập phân có phần là phần nguyên và phần thập phân ngăn cách dấu ) Bài Viết chương trình nhập vào xâu bất kì đếm xem xâu St có bao nhiêu chữ cái khác xâu (không phân biệt chữ hoa hay thường) Program Demkitu; Var St,st1:string; I,dem,vt:byte; a:Char; Begin Writeln('nhap xau'); Readln(st); St1:=' '; For i:=1 to length(st) St1:=st1+upcase(st[i]); Dem:=0; For a:='A' to'Z' Begin Vt:=Pos(a,st1); If vt>=0 then begin dem:=dem+1; For i:=1 to length(st1) If st[i]=a then delete(st1,i,1); End; End; Writeln('so chu cai khac st la',dem); Readln; End Gi¸o viªn: NguyÔn ThÞ Kim N¨m häc: 2012 - 2013 Palindrom') else writeln(st,' khong phai la xau palindrom'); Readln; End - Theo em làm nào để đếm số thập phân? - HS: vị trí i mà S[i]='.' Thì ta kiểm tra S[i-1] và S[i+1] là chữ số thì đó là số thập phân Đem:=0; For i:=1 to Length(S) If S[i]='.' Then If ( S[i-1]<='9') and (S[i-1]>='0') and (S[i+1] <='9') and (S[i+1]>='0') then dem:=dem+1; - i từ A đến Z xâu St có kí tự mà sau biến nó thành chữ hoa giống i thì ta ghi nhận có thêm kí tự sau đó xóa tất các kí tự giống i St TIN HäC 11 (98) Trêng THPT sè Bè Tr¹ch N¨m häc: 2012 - 2013 V CỦNG CỐ- DẶN DÒ : - Củng cố: nhắc lại số kiến thức về: + Kiểu xâu : Cách khai báo, thao tác xử lý xâu - Dặn dò: + Các em xem lại lý thuyết kiểu xâu để tiết sau chúng ta học bài thực hành VI RÚT KINH NGHIỆM: Gi¸o viªn: NguyÔn ThÞ Kim TIN HäC 11 (99) Trêng THPT sè Bè Tr¹ch N¨m häc: 2012 - 2013 Ngày giảng: -Tiết PPCT: 31 BÀI THỰC HÀNH SỐ 5(t1) I Mục tiêu Kiến thức - Khắc sâu thêm phần kiến thức lí thuyết kiểu 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 bản: Tạo xâu mới, đếmm số lần xuất kí tự Kĩ - Khai báo biến kiểu xâu - Nhập, xuất gá 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 Thái độ - Tích cực, chủ động thực hành II Đồ dùng dạy học Chuẩn bị giáo viên - Máy chiếu Projestor để hướng dẫn Tổ chức phòng máy để học sinh có kĩ làm việc với kiểu xâu Chuẩn bị học sinh - Sách giáo khoa, bài tập nhà III Hoạt động dạy – học Hoạt động 1: Tìm hiểu chương trình, đề xuất phương án cải tiến a Mục tiêu: - Hiểu chương trình, tính kết chương trình Biết đề xuất phương án cải tiến b Nội dung: - Nhập vào xâu, kiểm tra xem nó có phải là Palidrom hay không? - Chương trình Var i, x:Byte; a,p:string; Begin Write(‘nhap vao mot xau’); readln(a); x:=length(a); p:= ‘’; For i:=x downto p:=p+a[i]; If a=p then write(‘xau la Palidrom’) else write(‘xau khong la Palidrom’); Readln; End c Các bước tiến hành: Gi¸o viªn: NguyÔn ThÞ Kim TIN HäC 11 (100) Trêng THPT sè Bè Tr¹ch N¨m häc: 2012 - 2013 Hướng dẫn giáo viên Hoạt động học sinh Tìm hiểu đề bài Quan sát, đọc kĩ đề - Giới thiệu nội dung đề bài lên bảng - Diễn giải: Một xâu gọi là Palidrom ta đọc các kí tự từ phải sang trái giống đọc từ trái sang Phải: 12321 abccba phải Không phải: abcdea - Yêu cầu học sinh cho hai ví dụ xâu palidrom và ví dụ không phải là Quan sát chương trình, suy nghĩ palidrom phân tích để hiểu chương trình Tìm hiểu chương trình gợi ý - Kiểm tra xâu có phải Palidrom - Chiếu chương trình lên bảng - Hỏi: Chương trình sau đây có chức hay không? - In ra: ‘xau la Palidrom’ làm gì? Kết in màn hình ‘Xau khong la palidrom’ thếnào? - Quan sát giáo viên thực chương - Thực chương trình để học sinh trình, nhập liệu và kết chương trình kiểm nghiệm suy luận mình Chú ý theo dõi yêu cầu giáo viên, Cải tiến chương trình trả lời số câu hỏi dẫn dắt - Nêu yêu cầu mới: Viết lại chương - Các kí tự vị trí này giống trình mà không sử dụng biến trung gian p - Kí tự thứ i đối xứng với kí tư thứ - Yêu cầu: Nhận xét các cặp vị trí length() – i +1 đối xứng xâu palidrom? - So sánh tối đalength() div - Hỏi: kí tự thứ i đối xứng với kí tự vị trí nào? - Hỏi: Cần phải so ssánh bao nhiêu cặp - Có thể dùng For While kí tự xâu để biết xâu đó ;à - Thực soạn thảo chương trình palidrom? - Hỏi: Dùng cấu trúc lặp nào để so vào máy theo yêu cầu cải tiến giáo viên sánh? - Nhập liệu vào và thông báo kết - Yêu cầu học sinh viết chương trình hoàn chỉnh - Yêu cầu học sinh nhập liệu cho sẵn giáo viên và thông báo kết - Xác nhận bài làm có kết đúng Gi¸o viªn: NguyÔn ThÞ Kim TIN HäC 11 (101) Trêng THPT sè Bè Tr¹ch N¨m häc: 2012 - 2013 IV Đánh giá cuối bài Những nội dung đã học - Một 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 xuất kí tự có xâu Câu hỏi và bài tập nhà - Chuẩn bị bài thực hành tiết Rút kinh nghiệm: - Gi¸o viªn: NguyÔn ThÞ Kim TIN HäC 11 (102) Trêng THPT sè Bè Tr¹ch N¨m häc: 2012 - 2013 Ngày giảng: Tiết PPCT: 32 BÀI THỰC HÀNH SỐ 5(t2) I Mục tiêu Kiến thức - Khắc sâu thêm phần kiến thức lí thuyết kiểu 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 bản: Tạo xâu mới, đếmm số lần xuất kí tự Kĩ - Khai báo biến kiểu xâu - Nhập, xuất gá 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 Thái độ - Tích cực, chủ động thực hành II Đồ dùng dạy học Chuẩn bị giáo viên - Máy chiếu Projestor để hướng dẫn Tổ chức phòng máy để học sinh có kĩ làm việc với kiểu xâu Chuẩn bị học sinh - Sách giáo khoa, bài tập nhà III Hoạt động dạy – học Hoạt động 2: Rèn luyện kĩ lập trình a Mục tiêu: - Học sinh biết phân tích yêu cầu để viết chương trình hoàn chỉnh b Nội dung - Viết chương trình nhập vào xâu kí tự S và thông báo màn hình số lần xuất S chữ cái tiếng Anh(không phân biệt hoa, chữ thường) c Các bước tiến hành: Hướng dẫn giáo viên Hoạt động học sinh Giới thiệu đề bài Quan sát đề và xác định công - Chiếu nội dung đề bài lên bảng Nêu việc cần thực mục đích bài toán Nhóm 1: - Chia lớp thành nhóm: - hỏi: Dữ liệu vào, liệu bài + Nhóm 1: Đặt các câu hỏi phân tích + Nhóm 2: Trả lời các câu hỏi phân toán? - Nêu các nhiệm vụ chính cần thực tích giải bài toán - Hỏi: Cấu trúc liệu phải sử dụng Gi¸o viªn: NguyÔn ThÞ Kim TIN HäC 11 (103) Trêng THPT sè Bè Tr¹ch N¨m häc: 2012 - 2013 nào? - Ta phải sử dụng hàm nào? - Theo dõi câu hỏi phân tích Nhóm 2: Của nhóm và trả lời câu hỏi phân tích - Vào: Một xâu S nhóm - Ra: dãy các số ứng với xuất - Bổ sung và sửa sai cho nhóm và loại kí tự xâu nhóm - TT: Duyệt từ trái sang phải, thêm đơn vị cho kí tự đọc - Cấu trúc liệu: Dem[‘A’ ’Z’] - Dùng hàm Upcase() Độc lập soạn chương trình vào máy Yêu cầu học sinh độc lập viết chương trình hoàn chỉnh theo thuật toán đã phát trên - Tìm test - Yêu cầu học sinh lập trình xong sớm - Nhập liệu giáo viên và thực tìm số test chương trình để xem kết - Yêu cầu học sinh nhập liệu vào theo test giáo viên đã chọn và thông - Thông báo kết cho giáo viên báo kết sau thực chương trình - Xác nhận kết đúng học sinh và sửa sai cho các em có kết sai IV Đánh giá cuối bài Những nội dung đã học - Một 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 xuất kí tự có xâu Câu hỏi và bài tập nhà - Chuẩn bị để làm bài tập và ôn tập Chương RÚT KINH NGHIỆM: - Gi¸o viªn: NguyÔn ThÞ Kim TIN HäC 11 (104) Trêng THPT sè Bè Tr¹ch N¨m häc: 2012 - 2013 Ngày giảng: Tiết PPCT: 32 KIỂU BẢN GHI I Mục tiêu Kiến thức - Biết khái niệm kiểu ghi - Phân biệt giống và khác giửa kiểu ghi với kiểu mảng chiều Kĩ - Khai báo kiểu ghi, khai báo biến kiểu ghi ngôn ngữ lập trình pascal - Nhập xuất liệu cho biến bàn ghi - Tham chiếu đến trường kiểu ghi - Sử dụng kiểu ghi để giải số bài tập đơn giản II Đồ dùng dạy học Chuẩn bị giáo viên - Máy vi tính, máy chiếu Projector để giới thiệu ví dụ Chuẩn bị học sinh - Sách giáo khoa III Hoạt động dạy – học Hoạt động 1: giới thiệu kiêu ghi Tọa kiểu ghi ngôn ngữ lập trình Pascal a Mục tiêu: - Học sinh biết kiểu liệu có cấu trúc: Kiểu ghi Biết ý nghĩa kiểu ghi Phân biệt kiểu ghi với mảng chiều Tạo kiểu ghi Mở bài: Dữ liệu kiểu ghi dùng để mô ta các đối tượng có cùng số thuộc tính mà các thuộc tính có thể có các kiểu liệu khác b Nội dung: - Mỗi thông tin đối gọi ;à thuộc tính hay trường Mỗi đối tượng mô tả nhiều thông tin trên hàng gọi là ghi - Để mô tả các đối tượng vậy, ngôn ngữ lập trình cho phép ta xác định kiểu ghi Mỗi đối tượng mô tả ghi - Một ngôn ngữ lập trình luôn có quy tắc để xác định : tên kiểu bane ghi, tên các trường, tên kiểu liệu trường, cách khai báo biến và cách tham chiếu đến trường - Khai báo kiểu ghi: type <tên_kiểu_bg> = record <Tên_trường_1>:<Kiểu_trường_1>; <Tên_trường_n>:<Kiểu_trường_n>; End: - Khai báo biến ghi: Var <Tên_biến>: <Tên_kiểu_bg>; c Các bước tiến hành: Gi¸o viªn: NguyÔn ThÞ Kim TIN HäC 11 (105) Trêng THPT sè Bè Tr¹ch N¨m häc: 2012 - 2013 Hướng dẫn giáo viên Hoạt động học sinh Tìm hiểu kiểu ghi Quan sát ví dụ giáo viên và trả lời - Chiếu bảng kết thi tốt nghiệp , các câu hỏi sách giáo khoa trang 74 - Hỏi: Trên bảng có thông tin - Họ tên, này sinh, giới tính, điểm gì? các môn thi - bảng chứa thông tin đối tượng - Hỏi: Bảng chứa thông tin bao nhiêu đối tượng? - Để mô tả ngưới tong danh bạ - Yêu cầu: Học sinh tìm thêm ví điện thoại cần có các thông tin: Họ tên, dụ tương tự địa chỉ, số điện thoại - Diễn giải: Mỗi thông tin đối đươch gọi là thuộc tính hay trường Mỗ đối tượng mô tả nhiều thông tin trên hàng gọi là ghi - Diễn giải: Để mô tả các đối tượng vậy, ngôn ngữ lập trình cho phép ta xác định kiểu ghi Mỗi đối tượng Tham khảo sách giáo khoa để nắm mô tả ghi cấu trúc chung khai báo kiểu Yêu cầu học sinh nghiên nứu sách ghi, khai báo biến ghi giáo khoa và cho biết cách khai báo kiểu - Ví dụ: ghi, khai báo biến kiểu ghi Typekieu_nguoi=record ngôn ngữ lập trình Pascal hoten:string; - Yêu cầu: Tìm ví dụ để minh diachi:sting; họa sdt:longint; End; Var nguoi:kieu_nguoi; - Độc lập suy nghĩ để tạo kiểu ghi và mảng các ghi type kieu_hs=record - Để giải bài toán mục Hoten, ngaysinh:string; ta phải khai báo mảng các ghi toan, van:byte; Hãy tạo kiểu mảng đó sdt:read; End; Kieu_mbg=array[1 50] of kieu_hs; - Giống nhau: Được ghép nhiều phần tử - Khác nhau: Mảng chiều là ghép - Yêu cầu học sinh phân biệt giống nhiều phần tử có cùng kiểu liệu và khác kiểu ghi và kiểu ghi là ghép nhiều phần tử có kiểu Gi¸o viªn: NguyÔn ThÞ Kim TIN HäC 11 (106) Trêng THPT sè Bè Tr¹ch mảng chiều N¨m häc: 2012 - 2013 liệu có thể khác Hoạt động 2: Tìm hiểu cách sử dụng kiểu ghi ngôn ngữ Pascal a Mục tiêu: - Học sinh biết cách tham chiếu đến trường biến ghi Nhập/xuất giá trị cho biến ghi b Nội dung: - Tham chiếu đến trường: Tên_biến_bg Tên_trường - Gán giá trị biến ghi: Có hai cách: + Gán biến ghi cho biến ghi(cùng kiểu khai báo) + Gán giá trị cho trường - Nhập/xuất giá trị: Phải viết lệnh nhâp/xuất với trường c Các bước tiến hành: Hướng dẫn giáo viên Giới thiệu cấu trúc chung để tham chiếu đến trường biến ghi Tên_biến_bg Tên_trường - Yêu cầu: Tìm ví dụ tham chiếu đến trường biến ghi đã khai báo trên Giới thiệu cách gán giá trị cho biến ghi + Gán nguyên biến ghi(1) + Gán trường (2) - Yêu cầu: Lấy ví dụ minh họa cho trường hợp - Hỏi: trường hợp (1) thực trường hợp nào? Nhập/xuất giá trị cho biến ghi - Diễn giải: Ta phải viết lệnh nhập xuất giá trị cho trường - Yêu cầu học sinh: Viết lệnh nhập giá trị cho ba trường hợp biến ghi nguoi đã khai báo - yêu cầu học sinh: Viết lệnh in giá trị trường hoten biến ghi nguoi Hoạt động học sinh Quan sát cấu trúc chung tham chiếu đến trường biến ghi - ví dụ: nguoi.hoten nguoi.diachi nguoi.sdt; Quan sát hai cách gán giá trị cho biến ghi để tìm ví dụ cụ thể A :=B; A.ht:=B.ht; A.dtb :=B.dtb; - hai biến A, B phải khai báo cùng kiểu ghi Chú ý theo dõi dẫn dắt giáo viên để tìm ví dụ - Readln(nguoi.hoten); - Readln(nguoi.diachi); - Readln(nguoi.sdt); - Writeln(nguoi.hoten); Hoạt động 3: rèn luyện kĩ lập trình a Mục tiêu: - Học sinh sử dụng kiểu ghi để giải số bài tập đơn giản b Nội dung: Viết chương trình giải bài toán sau: Gi¸o viªn: NguyÔn ThÞ Kim TIN HäC 11 (107) Trêng THPT sè Bè Tr¹ch N¨m häc: 2012 - 2013 Có lớp gồm N học sinh (1<=N<=45) Với học sinh cần quản lí các thuộc tính: họ và tên, điểm toán, điểm văn và xếp loại Giả sử xếp loại xác định theo quy tắc sau: + Nếu tổng điểm toán và điểm văn nhỏ 10 thì xếp loại D + Nếu tổng điểm toán và điểm văn lớn 10 và nhỏ 14 thì xếp loại C + Nếu tổng điểm toán và điểm văn lớn 14 và nhỏ 18 thì xếp loại B + Nếu tổng điểm toán và điểm văn lớn 18 thì xếp loại A c Các bước tiến hành: Hướng dẫn giáo viên Chiếu nội dung đề bài lên bảng Hoạt động học sinh Quan sát đề, chú ý phân tích để trả lời câu hỏi - Hỏi: Sử dụng kiểu liệu - Một mảng các ghi nào để giải bài toán? - Yêu cầu học sinh: Mô tả thông tin Type Kieu_hs=record học sinh kiểu ghi Tạo Hoten:string; mảng các ghi đó toan,van,tong:byte; xeploai:char; end; Kieu_mhs=array[1 45] of kieu_hs; - Nêu các bước để giải bài toán + Bước 1: tạo kiểu liệu, khai báo này biến + Bước 2: Nhập liệu co mảng các ghi + Tính tổng điểm toán và điểm văn + dựa vào tổng điểm để xếp loại Chia lớp thành ba nhóm Yêu cầu Thảo luận theo nhóm để hoàn thành viết chương trình lên bìa chương trình - Thu phiếu học tập Chiếu kết lên - Thông báo kết bảng Gọi học sinh nhóm khác nhận xét - Nhận xét, đánh giá và bổ sung và đánh giá sai sót nhóm khác Chiếu chương trình mẫu để chính Quan sát và ghi nhớ xác hóa lại cho học sinh Gi¸o viªn: NguyÔn ThÞ Kim TIN HäC 11 (108) Trêng THPT sè Bè Tr¹ch N¨m häc: 2012 - 2013 BÀI TẬP TRẮC NGHIỆM Câu 1: Cú pháp khai báo kiểu ghi là? a Type Ten_Ban_Ghi= Record…End; b Type Ten=Array[1 10] of <Kiểu liệu>; Câu 2: Cách truy xuất các trường ghi là? a Tên ghi(tên trường); b Tên ghi.tên trường; c Tên ghi[tên trường]; Câu 3: Kiểu ghi là? a Gồm các dòng và các cột b Gồm các dòng và các cột đó các dòng là các ghi và các cột là các trường ; c Là các dòng IV Đánh giá cuối bài Những nội dung đã học - Cách tạo kiểu ghi, khai báo biến kiểu ghi - Tham chiếu đến trường biến ghi - Nhập/xuất giá trị cho biến ghi Câu hỏi và bài tập nhà - Bài tập: Viết chương trình giải bài toán quản lí sau: Nhập họ và tên, điểm toán(Toan), điểm lí(Ly) 30 học sinh lớp In màn hình họ tên, điểm trung bình (DTB) 30 học sinh đó với DTB = (TOAN+LY)/2 - Xem nội dung phụ lục B, sách giáo khoa, trang 134: Câu lệnh With V RÚT KINH NGHIỆM: - Gi¸o viªn: NguyÔn ThÞ Kim TIN HäC 11 (109) Trêng THPT sè Bè Tr¹ch Gi¸o viªn: NguyÔn ThÞ Kim N¨m häc: 2012 - 2013 TIN HäC 11 (110) Trêng THPT sè Bè Tr¹ch N¨m häc: 2012 - 2013 Ngày giảng: Tiết PPCT: 33 BÀI TẬP I Mục tiêu: Về kiến thức: Củng cố các kiến thức về: - Kiểu liệu mảng: Cách khai báo, cách nhập mảng, số phép toán đơn giản mảng - Kiểu xâu: cách khai báo, các thao tác xử lý xâu các bài toán cụ thể 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ở II Chuẩn bị: - GV: Giáo án, SGK, Máy chiếu - HS: Chuẩn bị bài tập nhà III PHƯƠNG PHÁP PHƯƠNG TIỆN: 1.Phương pháp: - Kết hợp phương pháp giảng dạy như: Thuyết trình, vấn đáp 2.Phương tiện: - SGK, máy tính, máy chiếu, bảng viết IV TIẾN TRÌNH 1.Ổn định lớp, kiểm tra sĩ số 2.Kiểm tra bài cũ - Viết chương trình nhập số a, b và đưa màn hình số nhỏ 3.Nội dung bài giảng: Nội dung Hoạt động GV và HS GV: Đọc bài toán, đưa các yêu cầu Bài tập 1: Viết chương trình nhập bài toán mảng số nguyên và in màn hình số HS: Học sinh quan sát bài toán và chú ý lượng các phần tử chia hết cho nghe yêu cầu bài toán mảng số nguyên đó GV: Gọi học sinh nêu thuật toán tìm số lượng các phần tử chia hết cho HS: Trả lời câu hỏi GV: Gọi học sinh khác nhận xét và tổng Program chiacho5; kết lại cho đúng Uses crt; GV: Hướng dẫn học sinh giải bài toán Var A: array[1 100] of integer; trên Dem,i, N : integer; Gi¸o viªn: NguyÔn ThÞ Kim TIN HäC 11 (111) Trêng THPT sè Bè Tr¹ch Begin Write('So phan tu cua mang: '); Readln(N); For i:=1 to N Begin Write(' A[', i,']= '); Readln(A[i]); End; Dem:=0; For i:=1 to N if A[i] mod =0 then Dem:= Dem + 1; Writeln(' So luong cac phan tu chia het cho la:',Dem); Readln; End Bài tập 2: Nhập xâu từ bàn phím và đưa màn hình : - Độ dài xâu là bao nhiêu? - In xâu đã bị xóa kí tự trắng xâu? Chương trình bài tổng quát: Program xoasau; Uses crt; Var a:string; n,vt,k:integer; Begin clrscr; write('Nhap vao mot xau '); readln(a); For i:= to length(a) If a[i] = ' ' then Delete(a,i,1); N¨m häc: 2012 - 2013 GV: Cho học sinh xem chương trình bài toán và chạy chương trình cho học sinh thấy Và yêu cầu học sinh nhà làm lại vào HS: Quan sát bài toán để nhà có thể tự làm GV: Yêu cầu học sinh nêu cách giải bài toán trên theo ý nhỏ? HS: Trả lời câu hỏi GV: Để lấy độ dài xâu ta dùng hàm gi? HS: Dùng hàm Length(s); GV: Để xóa kí tự ta dùng thủ tục gì? HS: Delete (st, vt, n); GV:Bây ta muốn xóa kí tự trắng ta sử dụng thủ tục Delete nào? HS: Delete(st, i,1); GV: Tương tự bây ta có thể làm bài toán xóa bất kí thự thứ mấy, bao nhiêu kí tự xâu? - Ta nhâp vị trí muốn xóa - Nhập số lượng kí tự cần xóa Sau đó ta in xâu kết GV: Cho học sinh xem chương trình và chạy chương trình để học sinh thấy được, writeln(' Do dai cua xua la:', k); sau đó hướng dẫn học sinh nhà tự làm writeln('Xau ket qua sau xoa bài vào la:',a); HS: Quan sát chương trình và nghe giảng readln; để nhà hoàn thành bài tập vào End GV: Đọc nội dung bài toán đưa các yêu cầu mà bài toán đặt V CỦNG CỐ - DẶN DÒ : - Củng cố: nhắc lại số kiến thức về: Gi¸o viªn: NguyÔn ThÞ Kim TIN HäC 11 (112) Trêng THPT sè Bè Tr¹ch N¨m häc: 2012 - 2013 + Kiểu mảng: cách khai báo, cách truy cập, in mảng + Kiểu xâu : Cách khai báo, thao tác xử lý xâu - Dặn dò: + Các em xem lại lý thuyết Kiểu mảng, kiểu xâu để tiết sau chúng ta học bài ôn tập Gi¸o viªn: NguyÔn ThÞ Kim TIN HäC 11 (113) Trêng THPT sè Bè Tr¹ch N¨m häc: 2012 - 2013 Ngày giảng: Tiết PPCT: 34 ÔN TẬP I Mục tiêu: Về kiến thức: Củng cố các kiến thức về: - Kiểu liệu mảng: Cách khai báo, cách nhập mảng, số phép toán đơn giản mảng - Kiểu xâu: cách khai báo, các thao tác xử lý xâu các bài toán cụ thể 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ở II Chuẩn bị: - GV: Giáo án, SGK, Máy chiếu - HS: Chuẩn bị bài tập nhà III PHƯƠNG PHÁP PHƯƠNG TIỆN: 1.Phương pháp: - Kết hợp phương pháp giảng dạy như: Thuyết trình, vấn đáp 2.Phương tiện: - SGK, máy tính, máy chiếu, bảng viết IV TIẾN TRÌNH 1.Ổn định lớp, kiểm tra sĩ số 2.Kiểm tra bài cũ - Viết chương trình nhập số a, b và đưa màn hình số nhỏ 3.Nội dung bài giảng: Nội dung Bài tập 1: Viết chương trình nhập mảng số nguyên và in màn hình phần tử nhỏ mảng số nguyên đó Program timMin; Uses crt; Var A: array[1 100] of integer; Min,i, N : integer; Begin Gi¸o viªn: NguyÔn ThÞ Kim Hoạt động GV và HS GV: Đọc bài toán, đưa các yêu cầu bài toán HS: Học sinh quan sát bài toán và chú ý nghe yêu cầu bài toán GV: Gọi học sinh nêu thuật toán tìm phần tử nhỏ HS: Trả lời câu hỏi GV: Gọi học sinh khác nhận xét và tổng kết lại cho đúng GV: Hướng dẫn học sinh giải bài toán trên TIN HäC 11 (114) Trêng THPT sè Bè Tr¹ch Write('So phan tu cua mang: '); Readln(N); For i:=1 to N Begin Write(' A[', i,']= '); Readln(A[i]); End; Min:=A[1]; For i:=2 to N if A[i] < Min then Min:= A[i]; Writeln(' Gia tri nho nhat cua mang la:',Min); Readln; End Bài tập 2: Nhập xâu từ bàn phím và đưa màn hình : - Độ dài xâu là bao nhiêu? - In xâu đã bị xóa kí tự đầu xâu? - In xâu đã bị xóa kí tự cuối? Chương trình bài tổng quát: Program xoasau; Uses crt; Var a:string; n,vt,k:integer; Begin clrscr; write('Nhap vao mot xau '); readln(a); write('Nhap vi tri muon xoa '); readln(vt); write('Nhap so luong ki tu muon xoa '); readln(n); k:=length(a); delete(a,vt,n); writeln(' Do dai cua xua la:', k); writeln('Xau ket qua sau xoa la:',a); readln; End N¨m häc: 2012 - 2013 GV: Cho học sinh xem chương trình bài toán và chạy chương trình cho học sinh thấy Và yêu cầu học sinh nhà làm lại vào HS: Quan sát bài toán để nhà có thể tự làm GV: Yêu cầu học sinh nêu cách giải bài toán trên theo ý nhỏ? HS: Trả lời câu hỏi GV: Để lấy độ dài xâu ta dùng hàm gi? HS: Dùng hàm Length(s); GV: Để xóa kí tự ta dùng thủ tục gì? HS: Delete (st, vt, n); GV:Bây ta muốn xóa kí tự đầu ta sử dụng thủ tục Delete nào? HS: Delete(st, 1,1); GV: Bây ta muốn xóa kí tự cuối xâu? HS: Delete( st,x,1) { x= length(st)} GV: Tương tự bây ta có thể làm bài toán xóa bất kí thự thứ mấy, bao nhiêu kí tự xâu? - Ta nhâp vị trí muốn xóa - Nhập số lượng kí tự cần xóa Sau đó ta in xâu kết GV: Cho học sinh xem chương trình và chạy chương trình để học sinh thấy được, sau đó hướng dẫn học sinh nhà tự làm bài vào HS: Quan sát chương trình và nghe giảng để nhà hoàn thành bài tập vào V CỦNG CỐ - DẶN DÒ : Gi¸o viªn: NguyÔn ThÞ Kim TIN HäC 11 (115) Trêng THPT sè Bè Tr¹ch N¨m häc: 2012 - 2013 - Củng cố: nhắc lại số kiến thức về: + Kiểu mảng: cách khai báo, cách truy cập, in mảng + Kiểu xâu : Cách khai báo, thao tác xử lý xâu - Dặn dò: + Các em xem lại lý thuyết Kiểu mảng, kiểu xâu và kiểu ghi để tiết sau chúng ta học bài ôn tập + Chuẩn bị kiểm tra tiết thực hành - Gi¸o viªn: NguyÔn ThÞ Kim TIN HäC 11 (116) Trêng THPT sè Bè Tr¹ch N¨m häc: 2012 - 2013 Chương 5: TỆP VÀ THAO TÁC VỚI TỆP Ngày giảng: Tiết PPCT: 36 KIỂU DỮ LIỆU TỆP VÀ THAO TÁC VỚI TỆP(T1) I Mục tiêu Kiến thức: - Biết đặc điểm kiểu liệu tệp - Biết khái niệm tệp có cấu trúc và tệp văn Kĩ năng: - Khai báo đúng biến kiểu tệp - Thực thao tác xử lí tệp: Gán tên tệp, mở/đóng tệp Thái độ: - Thấy cần thiết và tiện lợi kiểu liệu tệp - Có ý thức lưu trữ liệu cách khoa học - Giáo dục thêm ý thức tôn trọng quyền, không sửa chữa, chép các phần mềm chưa mua quyền II Đổ dùng dạy học Chuẩn bị giáo viên - Máy vi tính, máy chiếu Projector để giới thiệu ví dụ Chuẩn bị học sinh - Sách giáo khoa III Hoạt động dạy – học Hoạt động 1: Tìm hiểu đặc điểm kiểu liệu tệp a Mục tiêu: - Học sinh biết đặc điểm kiểu tệp b Mở bài: Các kiểu liệu đã học lưu trữ nhớ , đó liệu bị tắt máy Khi giải các bài toán có liệu cần lưu lại và xử lí nhiều lần cần có kiểu liệu mới: kiểu tệp c Nội dung: - Đặc điểm kiểu tệp: + Được lưu trữ lâu dài nhớ ngoài, không bị mất điện + Lượng thông tin lưu trữ trên có thể lớn Gi¸o viªn: NguyÔn ThÞ Kim TIN HäC 11 (117) Trêng THPT sè Bè Tr¹ch N¨m häc: 2012 - 2013 d Các bước tiến hành: Hướng dẫn giáo viên - Hỏi: Em hãy cho biết liệu các kiểu liệu từ trước đến ta sử dụng lưu trữ loại nhớ nào thực chương trình? - Hỏi: Vì em biết điều đó? - Diễn giải: Để lưu trữ liệu, ta phải lưu nó nhớ ngoài thông qua kiểu liệu tệp - Yêu cầu học sinh nghiên cứu sách giáo khoa và cho biết đặc điểm kiểu tệp? Hoạt động học sinh - Bộ nhớ RAM - Mất liệu điện - Không thông tin tắt máy - Dung lượng liệu lưu trữ lớn Hoạt động 2: Phân loại kiểu tệp và các thao tác với tệp a Mục tiêu: - Biết hai loại tệp: Định kiểu có cấu trúc và tệp văn - Biết thao tác trên tệp: Đọc/ghi tệp b Mở bài: Các kiểu liệu đã học lưu trữ nhớ , đó liệu bị tắt máy Khi giải các bài toán có liệu cần lưu lại và xử lí nhiều lần cần có kiểu liệu mới: kiểu tệp c Nội dung: - Xét theo cách tổ chức liệu: + Tệp có cấu trúc là loại tệp mà các thành phần nó tổ chức theo cấu trúc định + Tệp văn bản: Là tệp mà liệu ghi dạng các kí tự theo mã ASCII Trong tệp văn bản, dãy kí tự kết thúc kí tự xuống dòng hay kí tự kết thúc tệp tạo thành dòng - Xét theo cách truy cập liệu: + Tệp truy cập + Tệp truy cập trực tiếp Gi¸o viªn: NguyÔn ThÞ Kim TIN HäC 11 (118) Trêng THPT sè Bè Tr¹ch N¨m häc: 2012 - 2013 d Các bước tiến hành: Hướng dẫn giáo viên Hoạt động học sinh * Xét theo cách tổ chức liệu: GV: Hãy cho biết có loại tệp? Đặc HS: Có loại: Tệp văn và có cấu trúc điểm và ví dụ? + Tệp có cấu trúc là loại tệp mà các thành phần nó tổ chức theo cấu trúc định + Tệp văn bản: Là tệp mà liệu ghi dạng các kí tự theo mã ASCII HS: Có loại: Truy cập và trực * Xét theo cách truy cập liệu: GV: Hãy cho biết có loại tệp? Nêu tiếp + Tuần tự: Là truy cập đến liệu đặc điểm? cách từ đầu tệp qua các liệu trước nó + Trực tiếp: Tham chiếu đến liệu bắng cách xác định vị trí liệu Hoạt động Tìm hiểu cách khai báo biến tệp văn ngôn ngữ lập trình Pascal a Mục tiêu: - Học sinh biết cách khai báo biến b Nội dung: - Khai báo biến tệp văn bản: Var <tên_biên_tệp>: Text; c Các bước tiến hành: Hướng dẫn giáo viên Giới thiệu cấu trúc chung khai báo biến tệp Var <Tên_biến_tệp>: Text; - Yêu cầu học sinh tìm ví dụ cụ thể Hoạt động học sinh Quan sát cấu trúc và suy nghĩ trả lời - Var f,g:text; Hoạt động Tìm hiểu các thao tác trên tệp văn ngôn ngữ lập trình Pascal a Mục tiêu: - Học sinh biết và sử dụng các thủ tục xử lí với tệp - Học sinh biết xử lí đọc/ghi tệp văn b Nội dung: - Gắn tên tệp: Assign(<tên_biến_tệp>,<tên_tệp>); <tên_tệp>: Là biến xâu xâu Gi¸o viªn: NguyÔn ThÞ Kim TIN HäC 11 (119) Trêng THPT sè Bè Tr¹ch N¨m häc: 2012 - 2013 c Các bước tiến hành: Hướng dẫn giáo viên Giới thiệu thao tác gắn tên tệp - Cú pháp: Assign(<tên_biến_tệp>,<tên_tệp>); - Ví dụ 1: Assign(F2,’D:\TP\BAITAP.INP’); - Ví dụ 2: Hãy gắn tên tệp THUCHANH.TXT trên ổ đĩa C cho biến tệp F? Hoạt động học sinh Quan sát và suy nghĩ để trả lời câu hỏi Rewrite(f5); Close(f5); Assign(F,'C:\THUCHANH.TXT'); IV Đánh giá cuối bài Những nội dung đã học - Vai trò kiểu tệp - Phân loại tệp * Xét theo cách tổ chức liệu + Văn + Có cấu trúc * Xét theo cách truy cập liệu: + Tuần tự + Trực tiếp - Khai báo biến tệp: Var <Tên_biến_tệp>: text; - Gắn tên tệp: Assign(<tên_biến_tệp>,<tên_tệp>); Câu hỏi và bài tập: Câu 1: Vai trò kiểu tệp là a Lưu trữ lâu dài liệu trên nhớ ngoài; b Không bị tắt nguồn điện; c Lưu trữ lớn lượng liệu; d Tất Câu 2: Tệp truy cập trực tiếp là qua tất các liệu trước nó? a Đúng; b Sai; Câu 3: Để khai báo biến tệp ta dùng cú pháp nào? a Var <tên biến tệp> : Text; b Var <tên tệp> : Text; c Var <tên biến tệp> : String; d Var <tên tệp> : String; Câu 4: Để gắn tên tệp KETQUA.DAT cho biến tệp F1 ta sử dụng câu lệnh nào? a 'KETQUA.DAT' := F1; b F1:= 'KETQUA.DAT'; c Assign(F1, 'KETQUA.DAT'); d Assign('KETQUA.DAT',F1); Gi¸o viªn: NguyÔn ThÞ Kim TIN HäC 11 (120) Trêng THPT sè Bè Tr¹ch N¨m häc: 2012 - 2013 Câu 5: Trả lời các câu hỏi 1, 2, 3, 4, sách giáo khoa, trang 89 V RÚT KINH NGHIỆM - Gi¸o viªn: NguyÔn ThÞ Kim TIN HäC 11 (121) Trêng THPT sè Bè Tr¹ch N¨m häc: 2012 - 2013 Ngày giảng: Tiết PPCT: 37 KIỂU DỮ LIỆU TỆP VÀ THAO TÁC VỚI TỆP(T1) I Mục tiêu Kiến thức: - Biết các thao tác trên tệp văn Kĩ năng: - Thực thao tác xử lí tệp: mở, đọc/ghi, đóng tệp Thái độ: - Thấy cần thiết và tiện lợi kiểu liệu tệp - Có ý thức lưu trữ liệu cách khoa học - Giáo dục thêm ý thức tôn trọng quyền, không sửa chữa, chép các phần mềm chưa mua quyền II Đổ dùng dạy học Chuẩn bị giáo viên - Máy vi tính, máy chiếu Projector để giới thiệu ví dụ Chuẩn bị học sinh - Sách giáo khoa III Hoạt động dạy – học Hoạt động Tìm hiểu các thao tác trên tệp văn ngôn ngữ lập trình Pascal a Mục tiêu: - Học sinh biết và sử dụng các thủ tục xử lí với tệp - Học sinh biết xử lí đọc/ghi tệp văn b Nội dung: - Mở tệp để ghi: Rewrite(>Tên_biến_tệp>); - Mở tệp để đọc: Reset (>Tên_biến_tệp>); - Đóng tệp : Close(>Tên_biến_tệp>); - Đọc tệp văn Read(<tên biến tệp>, <Danh sách tên biến>); Hoặc Readln(<tên biến tệp>, <Danh sách tên biến>); - ghi tệp văn Write(<tên biến tệp>, <Danh sách kết quả>); Hoặc Writeln(<tên biến tệp>, <Danh sách kết quả>); c Các bước tiến hành: Hướng dẫn giáo viên Giới thiệu các thao tác tạo tệp để ghi, mở tệp để đọc, đóng tệp: Rewrite(<tên_biến_tệp>); Close(>Tên_biến_tệp>); - Yêu cầu: Lấy ví dụ minh hoạ mở tệp để ghi thông tin và mở tệp để đọc thông Gi¸o viªn: NguyÔn ThÞ Kim Hoạt động học sinh Quan sát và suy nghĩ để trả lời câu hỏi Assign(f5,’B1.INP’); TIN HäC 11 (122) Trêng THPT sè Bè Tr¹ch tin Chiếu sơ đồ làm việc với tệp lên bảng, hình 16, trang 86, sách giáo khoa Yêu cầu học sinh giải thích ý nghĩa sơ đồ Giới thiệu cấu trúc chung thủ tục đọc/ghi liệu tệp văn - Yêu cầu học sinh lấy ví dụ minh họa N¨m häc: 2012 - 2013 Rewrite(f5); Close(f5); Assign(f5,’B1.OUT’); Rewrite(f5); Close(f5); Quan sát sơ đồ và suy nghĩ để trả lời - 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 Quan sát cấu trúc chung - 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(g, ‘tong la’, x1+x2); Ghi vào biến tệp g hai tham số; dòng chữ ‘tong la’ và giá trị tổng x1+x2 IV Đánh giá cuối bài Những nội dung đã học - Mỗi ngôn ngữ lập trình có các hàm và thủ tục chuẩn để làm việc với tệp như: Gán tên tệp, tạo tệp để ghi, mở tệp để đọc, đóng tệp - Trong ngôn ngữ lập trình Pascal có các thủ tục tương ứng là: Rewrite(>Tên_biến_tệp>); Reset (>Tên_biến_tệp>); Close(>Tên_biến_tệp>); - Đọc/ghi tệp văn bản: Read(<tên biên tệp>,<danh sách tên biến>); Readln(<tên biên tệp>,<danh sách tên biến>); Write(<tên biên tệp>,<danh sách tên biến>); Writeln(<tên biên tệp>,<danh sách tên biến>); Gi¸o viªn: NguyÔn ThÞ Kim TIN HäC 11 (123) Trêng THPT sè Bè Tr¹ch N¨m häc: 2012 - 2013 Câu hỏi và bài tập: Câu 1: Có loại tệp a c b d Câu 2: Thủ tục gán tệp là? a Rewrite() c Reset() b Assign() d Close() Câu 3: Thủ tục mở tệp để ghi liệu là? a Rewrite() b Reset() Câu 4: Thủ tục đóng tệp là? a Open() c Assign() b Close() d Appen() Câu 5: Trả lời các câu hỏi 1, 2, 3, 4, sách giáo khoa, trang 89 V RÚT KINH NGHIỆM - Gi¸o viªn: NguyÔn ThÞ Kim TIN HäC 11 (124) Trêng THPT sè Bè Tr¹ch N¨m häc: 2012 - 2013 Ngày giảng: Tiết PPCT: 38 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 chương thông qua ví dụ Kĩ - Sử dụng các hàm và thủ tục liên quan để giải các bài tập II Đồ dùng dạy học Chuẩn bị giáo viên - Máy chiếu Projector để giới thiệu ví dụ, phòng máy vi tính Chuẩn bị học sinh - Sách giáo khoa III Hoạt động dạy – học Hoạt động 1: Ôn tập kiến thức lí thuyết a Mục tiêu: - Học sinh nhớ các kiến thức lí thuýet kiểu tệp b Nội dung: - Gán tên tệp, mở tệp, tạo tệp mới, đóng tệp - Đọc/ghi tệp văn - Các hàm và thủ tục liên quan c Các bước tiến hành : Hướng dẫn giáo viên Hoạt động học sinh Gợi ý để học sinh nhớ lại các kiến Theo dõi dẫn dắt giáo viên và trả thức đã học kiểu tệp lời - Hỏi: Cách khai báo biến kiểu tệp? - Var <Tên_biến_tệp>: Text; - Hỏi: Có các thủ tục nào - Assign(<Tên_biến_tệp>,<tên_tệp>); làm việc với tệp? - Rewrite(>Tên_biến_tệp>); - Reset (>Tên_biến_tệp>); - Close(>Tên_biến_tệp>); - Read/readln(<tên_biến_tệp>, <Danh_sách_tên_biến>); - Write/writeln(<tên_biến_tệp>, <Danh_sách_tên_biến>); - Hỏi: Hàm và thủ tục nào liên quan - Eof(>Tên_biến_tệp>) xử lí tệp? Giới thiệu bảng tổng hợp các hàm Seek(>Tên_biến_tệp>,<biến_nguyên>); và thủ tục lên bảng, xem đây là Quan sát bảng tổng hợp và ghi nhớ tổng kết kiến thức liên quan Gi¸o viªn: NguyÔn ThÞ Kim TIN HäC 11 (125) Trêng THPT sè Bè Tr¹ch N¨m häc: 2012 - 2013 Hoạt động 2: Tìm hiểu chương trình ví dụ a Mục tiêu: - Học sinh hiểu nội dung chương trình.Biết đầu vào và đầu chương trình b Nội dung: Ví dụ 1, sách giáo khoa, trang 87: Tính khoảng cách các điểm Ví dụ 2, sách giáo khoa , trang 87: Tính điện trở tương đương c Các bước tiến hành: Hướng dẫn giáo viên Hoạt động học sinh Tìm hiểu ví dụ 1 Theo dõi và quan sát đề bài và - Giới thiệu nội dung đề bài chương trình gợi ý - Chiếu chương trình ví dụ lên bảng và gợi ý để học sinh tìm hiểu chương trình - Hàm cho giá trị True trỏ tệp - Hỏi: Hàm Eof(f) có chức gì? định vị trí kết thúc tệp - Có thể sử dụng cấu trúc For thay - Không Vì không biết số lượng phần while không? tử tệp - Chương trình này thực công - Tính và đưa màn hình khoảng cách việc gì? từ trại thầy hiệu trưởng đến trại giáo viên - Thực chương trình để học sinh thấy kết Tìm hiểu chương trình ví dụ 2 Quan sát nội dung đề bài, quan sát - Giới thiệu đề bài tranh mô kết nối các điện trở và - Chiếu tranh mô kết nối các các yêu cầu điện trở, hình 17, trang 88, sách giáo khoa - Hỏi: Công thức tính điện trở sơ đồ II, III, IV - Dùng để lưu trữ điện trở tương - Chiếu chương trình ví dụ lên bảng - Hỏi: Mảng a dùng để lưu trữ giá trị đương điện trở theo cách ghép nối sơ đồ nào? - Tính kết điện trở tương - Cho File liệu vào gồm đương dòng Yêu cầu học sinh tính kết - Quan sát kết chương trình và - Thực chương trình đọc file so sánh với kết tính đương liệu vào trên để học sinh đối chiếu kết - Nhận xét tính chính xác và thời gian thực chương trình Gi¸o viªn: NguyÔn ThÞ Kim TIN HäC 11 (126) Trêng THPT sè Bè Tr¹ch N¨m häc: 2012 - 2013 IV Đánh giá cuối bài Những nội dung đã học - Các thao tác xử lí tệp: + Gán tên tệp + Mở tệp + tạo tệp + Đọc/ghi thông tin tệp + Đóng tệp - Hàm và thủ tục liên quan + Hàm EOF(Tên_biến_tệp) Câu hỏi và bài tập: - Đọc trước nội dung bài: Chương trình và phân loại Cách viết và sử dụng thủ tục RÚT KINH NGHIỆM: - Gi¸o viªn: NguyÔn ThÞ Kim TIN HäC 11 (127) Trêng THPT sè Bè Tr¹ch N¨m häc: 2012 - 2013 Ngày giảng: Tiết PPCT: 39 BÀI TẬP TỆP I Mục tiêu Kiến thức: - Củng cố lại kiến thức đã học tệp chương thông qua ví dụ Kĩ - Sử dụng các hàm và thủ tục liên quan để giải các bài tập II Đồ dùng dạy học Chuẩn bị giáo viên - Máy chiếu Projector để giới thiệu ví dụ, phòng máy vi tính Chuẩn bị học sinh - Sách giáo khoa III Hoạt động dạy – học Hoạt động 1: Ôn tập kiến thức lí thuyết a Mục tiêu: - Học sinh nhớ các kiến thức lí thuyết kiểu tệp b Nội dung: - Gán tên tệp, mở tệp, tạo tệp mới, đóng tệp - Đọc/ghi tệp văn - Các hàm và thủ tục liên quan c Các bước tiến hành : GV- Yêu cầu học sinh nhắc lại các thao tác tệp HS- Độc lập suy nghĩ để trả lời câu hỏi Hoạt động 2: Rèn luyện kỹ thao tác với tệp Nội dung ghi bảng Hoạt động thầy và trò Bài 1: Cho tệp DATA.INP, dòng GV: Ra đề bài tập chứa số nguyên Hãy lập trình HS: Chép lại đề bài tập và suy nghĩ tính trung bình cộng các số cách giải Phân tích bài toán GV: Hãy nêu input và output bài Input: Dữ liệu đọc tệp toán? DATA.INP; HS: Input: Dữ liệu đọc tệp Output: Trung bình cộng các số DATA.INP; Output: Trung bình cộng các số Diễn tả thuật toán: Bước 1: Gán và GV: Một em hãy nêu ý tưởng để giải mở tệp ’DATA.INP’), dem:=0; s:=0; Gi¸o viªn: NguyÔn ThÞ Kim (f, bài toán? HS: Đọc dòng liệu từ tệp, TIN HäC 11 (128) Trêng THPT sè Bè Tr¹ch N¨m häc: 2012 - 2013 Bước 2: Nếu eof(f) thì qua bước cộng dồn các số tệp và đếm số Còn không: - read(f,n); phần tử tệp - s:=s+n; GV: Gọi HS lên bảng mô tả thuật - dem:=dem+1; toán.Dùng sơ đồ khối cách liệt - Quay lại bước 2; kê Bước 3: Nếu dem>0 thì trung bình HS: Một em lên bảng viết bài Các cộng là s/dem Còn không thì file rỗng; Bước 4: Đóng file bạn khác ngồi viết GV: Chữa bài hs viết HS: Theo dõi bài Viết chương trình VAR f:text; s,n,dem:integer; begin GV: Yêu cầu HS viết chương trình cài đặt HS: Lên viết chương trình assign(f,'DATA.TXT'); GV: Sửa lỗi cho học sinh RESET(f); Mở rộng dem:=0; s:=0; GV: Từ bài toán các em có thể mở while not eof(f) rộng đề giải các bài toán tương tự begin như: read(f,n); - Tính tổng các giá trị file; s:=s+n; dem:=dem+1; - Đếm số phần tử file văn end; if dem>0 then write('trung binh cong la:',s/dem:12:2) else write('file rong'); close(f); readln; end V Củng cố, dặn dò Gi¸o viªn: NguyÔn ThÞ Kim TIN HäC 11 (129) Trêng THPT sè Bè Tr¹ch N¨m häc: 2012 - 2013 - Củng cố các kiến thức liên quan chương này và các loại bài tập thường có - Làm các bài tập sách bài tập để rèn luyện kỹ tệp RÚT KINH NGHIỆM: Gi¸o viªn: NguyÔn ThÞ Kim TIN HäC 11 (130) Trêng THPT sè Bè Tr¹ch N¨m häc: 2012 - 2013 Ngày giảng: Tiết PPCT: 40 BÀI TẬP TỆP I Mục tiêu Kiến thức: - Củng cố lại kiến thức đã học tệp chương thông qua ví dụ Kĩ - Sử dụng các hàm và thủ tục liên quan để giải các bài tập II Đồ dùng dạy học Chuẩn bị giáo viên - Máy chiếu Projector để giới thiệu ví dụ, phòng máy vi tính Chuẩn bị học sinh - Sách giáo khoa III Hoạt động dạy – học Hoạt động 2: Rèn luyện kỹ thao tác với tệp Nội dung ghi bảng Hoạt động thầy và trò Bài 2: Cho tệp DATA.TXT chứa các số GV: Giao bài tập thứ Đọc đề cho nguyên Hãy lập trình tìm các số chia hết HS cho và ghi vào tệp KETQUA.TXT HS: Chép lại đề bài tập và suy nghĩ Xác định bài toán cách giải Input: Dữ liệu đọc DATA.TXT; tệp GV: Hãy nêu input và output bài toán? Output: Tệp KETQUA.TXT chứa các số HS: Input: Dữ liệu đọc tệp chia hết cho DATA.INP; Output: Tệp KETQUA.INP chứa Diễn tả thuật toán các số chia hết cho Bước 1:Gán và mở tệp (f, ‘DATA,TXT), GV: Một em hãy nêu ý tưởng để gán và mở tệp (f1,KETQUA.TXT) để ghi giải bài toán? kết quả; HS: Duyệt phần tử file Bước 2: Nếu eof(f) thì qua bước chia hết cho thì ghi vào tệp Còn không: - read(f,n); KETQUA.INP - Nếu n mod 3=0 thì GV: Gọi HS lên bảng mô tả ghi vào tệp KETQUA.TXT; - Quay lại bước 2; Gi¸o viªn: NguyÔn ThÞ Kim thuật toán.Dùng sơ đồ khối cách liệt kê TIN HäC 11 (131) Trêng THPT sè Bè Tr¹ch N¨m häc: 2012 - 2013 Bước 3: close(f), close(f1) HS: Một em lên bảng viết bài Các Viết chương trình bạn khác ngồi viết Var f,f1: text; GV: Chữa bài hs viết n: integer; HS: Theo dõi bài Begin Assign(f,’DATA.TXT’); GV: Yêu cầu HS viết chương trình Reset(f); cài đặt Assign(f1,’KETQUA.TXT’); HS: Lên viết chương trình Rewrite(f1); GV: Sửa lỗi cho học sinh While not eof(f) Mở rộng: Begin GV: Từ bài toán trên ta có thể mở Read(f,n); rộng để giải các bài toán tương tự If n mod 3=0 then writeln(f1,n); sau: End; - Ghi vào tệp khác chứa các số Close(f); nguyên dương Close(f1); Readln; End V Củng cố, dặn dò - Củng cố các kiến thức liên quan chương này và các loại bài tập thường có - Chuẩn bị bài chương RÚT KINH NGHIỆM: Chương 6: CHƯƠNG TRÌNH CON VÀ LẬP TRÌNH CÓ CẤU TRÚC Gi¸o viªn: NguyÔn ThÞ Kim TIN HäC 11 (132) Trêng THPT sè Bè Tr¹ch N¨m häc: 2012 - 2013 Ngày giảng: Tiết PPCT: 41 CHƯƠNG TRÌNH CON VÀ PHÂN LOẠI I Mục tiêu Kiến thức: - Biết khái niệm chương trình - Biết ý nghĩa chương trình con, cần thiết phải viết chương trình thành các chương trình - Biết cấu trúc chương trình - Phân biệt hai loại chương trình là hàm và thủ tục Kĩ - Nhận biết các thành phần đầu thủ tục - Nhận biết hai loại tham số hình thức đầu thủ tục - Biết cách khai báo hai loại chương trình cùng với tham số hình thức chúng - Biết cách viết lời gọi chương trình thân chương trình chính Thái độ: - Rèn luyện các phẩm chất người lập trình tinh thần hợp tác, làm việc theo nhóm, tuân thủ yêu cầu vì công việc chung II Đồ dùng dạy học Chuẩn bị giáo viên - Máy vi tính, máy chiếu Projector để giới thiệu ví dụ, máy chiếu Overhead, bìa trong, bút Chuẩn bị học sinh - Sách giáo khoa III Hoạt động dạy – học Hoạt động 1: Tìm hiểu chương trình và lợi ích việc sử dụng chương trình lập trình a Mục tiêu: - Học sinh biết khái niệm chương trình và lợi ích việc viết chương trình có sử dụng chương trình b Mở bài: Khi viết chương trình giải các bài toán phức tạp, chương trình thường dài, người đọc khó nhận biết chương trình thực công việc gi Vấn đề đặt là phải cấu trúc chương trình nào để dễ đọc, dễ hiểu Mặt khác, việc giải các bài toán lớn thường đói hỏi phải phân thành các bài toán Vì vậy, lập trình cần phải chia chương trình thành các chương trình c Nội dung: - Chương trình là dãy lệnh mô tả số thao tác định và có thể thực nhiều vị trí chương trình - Lợi ích việc sử dụng chương trình con: + Chương trình dễ đọc, dễ hiểu, dễ kiểm tra phát lỗi và sửa sai + Có thể giao cho nhiều người cùng viết chương trình Gi¸o viªn: NguyÔn ThÞ Kim TIN HäC 11 (133) Trêng THPT sè Bè Tr¹ch N¨m häc: 2012 - 2013 + Tránh việc phải viết lặp lại nhóm lệnh nhóm lệnh này thực nhiều lần khác chương trình + Thuận tiện cho việc nâng cấp chương trình d Các bước tiến hành: Hướng dẫn giáo viên Tìm hiểu ý nghĩa và khái niệm chương trình - Chiếu hai chương trình giáo viên đã chuẩn bị sẵn Một chương trình có sử dụng chương trình con, chương trình không sử dụng chương trình Chẳng hạn: Chương trình tính tổng lũy thừa: TLT=an+bm+cp+dq - Gọi học sinh nhận xét tính ngắn gọn, rõ ràng, tính dễ đọc dễ hiểu hai chương trình đó Hoạt động học sinh Quan sát đề bài và hai chương trình ví dụ - Nhận xét: Chương trình có sử dụng chương trình viết ngắn gọn, dễ hiểu chương trình viết không sử dụng chương tình - Hỏi: Khi nào nên viết chương trình - Đối với các bài toán lớn, cần nhiều con? người cùng viết Chương trình dài, cần chia làm nhiều đoạn Có nhiều đoạn lệnh lặp lại, nên viết chương trình - Yêu cầu học sinh đọc sách giáo khoa, cho biết khái niệm chương trình - Tham khảo sách giáo khoa để trả lời - Chia lớp thành nhóm Phát bìa cho nhóm Yêu cầu học sinh - Nghiên cứu sách giáo khoa, thảo điền các lợi ích việc sử dụng chương luận để điền phiếu học tập trình + Tránh việc phải viết lặp lặp lại cùng dãy lệnh nào đó chương trình + Hỗ trợ việc thực viết các chương trình lớn + Phục vụ quá trình trừu tượng hóa + Mở rộng khả ngôn ngữ + Thuận tiện cho việc phát triển nâng cấp chương trình - Thu phiếu học tập Chiếu kết lên - Báo cáo kết bảng - Bổ sung và giải thích thêm số lợi - Theo dõi bổ sung và giải thích ích mà học sinh điền chưa đầy đủ (vì các giáo viên em còn mơ hồ chương trình con) IV Đánh giá cuối bài Những nội dung đã học Gi¸o viªn: NguyÔn ThÞ Kim TIN HäC 11 (134) Trêng THPT sè Bè Tr¹ch N¨m häc: 2012 - 2013 - Chương trình đóng vai trò quan trọng lập trình, đặc biệt là lập trình cấu trúc - Các lợi ích chương trình con: Dùng chương trình thuận lợi cho việc tổ chức, viết, kiểm tra và sử dụng lại chương trình Câu hỏi và bài tập: - Đọc trước nội dung phần V RÚT KINH NGHIỆM: - Gi¸o viªn: NguyÔn ThÞ Kim TIN HäC 11 (135) Trêng THPT sè Bè Tr¹ch N¨m häc: 2012 - 2013 Ngày giảng: Tiết PPCT: 42 CHƯƠNG TRÌNH CON VÀ PHÂN LOẠI I Mục tiêu Kiến thức: - Biết cấu trúc chương trình - Phân biệt hai loại chương trình là hàm và thủ tục Kĩ - Nhận biết các thành phần đầu thủ tục - Nhận biết hai loại tham số hình thức đầu thủ tục - Biết cách khai báo hai loại chương trình cùng với tham số hình thức chúng - Biết cách viết lời gọi chương trình thân chương trình chính Thái độ: - Rèn luyện các phẩm chất người lập trình tinh thần hợp tác, làm việc theo nhóm, tuân thủ yêu cầu vì công việc chung II Đồ dùng dạy học Chuẩn bị giáo viên - Máy vi tính, máy chiếu Projector để giới thiệu ví dụ Chuẩn bị học sinh - Sách giáo khoa III Hoạt động dạy – học Hoạt động 2: Tìm hiểu phân loại và cấu trúc chương trình a Mục tiêu: - Học sinh biết các loại chương trình và cấu trúc loại b Mở bài: Khi viết chương trình giải các bài toán phức tạp, chương trình thường dài, người đọc khó nhận biết chương trình thực công việc gi Vấn đề đặt là phải cấu trúc chương trình nào để dễ đọc, dễ hiểu Mặt khác, việc giải các bài toán lớn thường đói hỏi phải phân thành các bài toán Vì vậy, lập trình cần phải chia chương trình thành các chương trình c Nội dung: - Có loại chương trình con: Thủ tục và hàm d Các bước tiến hành: Hướng dẫn giáo viên Hoạt động học sinh Phân loại chương trình Tham khảo sách giáo khoa và trả lời - Hỏi: Có loại chương trình con? - Hai loại chương trình con: hàm và Gọi tên chúng? - Hỏi: Đã làm quen với hàm và thủ tục - Đã sử dụng hàm và thủ tục chuẩn thủ tục chưa? Lấy số ví dụ hàm - Ví dụ: Hàm abs(), length(st) Thủ tục và thủ tục đã học Delete(st,p,n); - ý nghĩa hàm và thủ tục chuẩn? - Hàm là thực số thao tác nòa Gi¸o viªn: NguyÔn ThÞ Kim TIN HäC 11 (136) Trêng THPT sè Bè Tr¹ch N¨m häc: 2012 - 2013 đó và trả lời giá trị kiểu đơn giản thông qua tên hàm - Thủ tục thực các thao tác định không trả giá trị qua tên - Yêu cầu học sinh tham khảo sách giáo nó khoa để phân biệt khái niệm hàm và thủ tục Quan sát cấu trúc chương trình Cấu trúc chương trình - Giới thiệu cấu trúc chung chương trình <Phần đầu> [<Phần khai báo>] <Phần thân> - Giống cấu trúc chương trình chính - Yêu cầu học sinh so sánh với cấu Khác chỗ phần đầu chương trình là bắt trúc chương trình chính buộc phải có - Phần khai báo thường có thể là khai - Yêu cầu học sinh giải thích phần khai báo và phần thân chương trình báo biến, - Phần thân là dãy các lệnh thực nhiệm vụ định chương trình - Diễn giải: Phần đầu chương trình con gồm có tên chương trình con, các tham số chương trình Các tham số này gọi là tham số hình thức Suy nghĩ và trả lời Thực chương trình - Viết chương trình chính Viết - Hỏi: Để sử dụng hàm và thủ tục chuẩn em thường viết đâu và viết thủ tục kèm các tham số và kết thúc là dấu chấm phẩy(;) Viết hàm lẹnh nào? nào đó thủ tục Hàm không viết lệnh - Diễn giải: Để gọi chương trình con, ta cần phải có lệnh gọi nó tương tự lệnh gọi hàm hay thủ tục chuẩn, bao gồm tên chương trình với các tham số(nếu có) là các và biến chứa liệu vào/ra tương ứng với các tham số hình thức đặt cặp ngoặc Các và biến này gọi là tham số thực Gi¸o viªn: NguyÔn ThÞ Kim TIN HäC 11 (137) Trêng THPT sè Bè Tr¹ch N¨m häc: 2012 - 2013 IV Đánh giá cuối bài Những nội dung đã học - Có hai loại chương tình - Cấu trúc chương trình và vị trí nó chương trình chính: Chương trình viết phần khai báo Chương trình có phần đầu, phần khai báo và phần thân - Chương trình có thể có tham số hình thức khai báo và thay tham số thực gọi chương trình - Chương trình gọi tên nó Câu hỏi và bài tập: Câu 1: Hàm là gì? a Cho giá trị trả b Không cho giá trị trả c Cả Câu 2: Thủ tục là? a Cho giá trị trả b Không cho giá trị trả c Cả - Đọc trước nội dung vài: Ví dụ cách viết và sử dụng chương trình con, sách giáo khoa, trang 96 V RÚT KINH NGHIỆM: - Gi¸o viªn: NguyÔn ThÞ Kim TIN HäC 11 (138) Trêng THPT sè Bè Tr¹ch N¨m häc: 2012 - 2013 Ngày giảng: Tiết PPCT: 42 VÍ DỤ VỀ CÁCH SỬ DỤNG CHƯƠNG TRÌNH CON(T1) I Mục tiêu Kiến thức - Biết cấu trúc chung và vị trí thủ tục chương trình - Phân biệt tham số giá trị và tham số biến - Nắm khái niệm biến toàn cục và biến cụa Kĩ năng: - Nhận biết các thành phần đầu thủ tục - Nhận biết hai loại tham số hình thức đầu thủ tục - Biết cách khai báo hai loại chương trình cùng với tham số hình thức chúng - Sử dụng đúng lời gọi chương trình thân chương trình chính - Phân biệt khác hàm và thủ tục - Phân biệt và sử dụng đúng biến toàn cục và biến cục Thái độ: - Rèn luyện các phẩm hcất người lập trình tinh thần hợp tác, làm việc theo nhóm, tuân thủ yêu cầu vì công việc chung II Đồ dùng dạy học Chuẩn bị giáo viên - máy vi tính, máy chiếu Projector để giới thiệu ví dụ Chuẩn bị học sinh - Sách giáo khoa III Hoạt động dạy – học Hoạt động 1: Tìm hiểu cấu trúc chung và ví dụ thủ tục chương trình chính a Mục tiêu: - Học sinh biết cấu trúc chung thủ tục và vị trí khai báo thủ tục chương trình chính - Học sinh biết khai niệm tham số chương trình Biết tham số hình thức và tham số thực - Học sinh biết khái niệm tham số giá trị và tham số biến b Nội dung: - Cấu trúc và vị trí chương trình chương trình chính Program tên_chương_trình_chính; Uses Khai báo thư viện sử dụng; Const khai báo hằng; Type Khai báo kiểu liệu; Var khai báo biến; procedure tên_thủ_tục(danh sách các tham số); Các khai báo thủ tục; Begin Các lệnh thủ tục; Gi¸o viªn: NguyÔn ThÞ Kim TIN HäC 11 (139) Trêng THPT sè Bè Tr¹ch N¨m häc: 2012 - 2013 End; BEGIN Các lệnh chương trình chính; Lời gọi thực hàm và thủ tục; END - Tham số hình thức: Là các tham số đưa vào định nghĩa chương trình - Tham số thực sự: Là các tham số viết lời gọi chương trình - Tham số biến: Khi khai báo buộc phải có từ khóa Var trước Khi gọi chương trình con, các tham số hình thức là tham biến phép thay bắng các tham số thực là biến - Tham số giá trị: Khi khai báo không có từ khóa Var trước Khi gọi chương trình con, các tham số hình thức là tham số giá trị thay các tham số thực là giá trị biến c Các bước tiến hành: Hướng dẫn giáo viên Giới thiệu ví dụ mở đầu - Chiếu chương trình ví dụ lên bảng(ví dụ VD – thutuc1, trang 96) Giới thiệu cho học sinh cấu trúc thủ tục vị trí khai báo thủ tục, lời gọi thủ tục Tìm hiểu cấu trúc thủ tục - Hỏi: Vị trí thủ tục nằm phần nào chương trình chính? - Hỏi: Cấu trúc thủ tục gồm phần? - Hỏi: Phân biệt giống và khác chương trình và chương trình chính? - Giới thiệu cấu trúc chung thủ tục Procedure tên_thủ_tục(danh sách các tham số); Các khai báo thủ tục; Begin Các lệnh thủ tục; End; - Lời gọi thủ tục ta viết phần nào chương trình? Tìm hiểu tham số hình thức và tham số thực - Chiếu ví dụ 2, VD_thutuc2, sách giáo khoa trang 98 - Yêu cầu học sinh nhận xét thủ tục ve_hcn ví dụ này với ví dụ trước Gi¸o viªn: NguyÔn ThÞ Kim Hoạt động học sinh Quan sát, theo dõi ví dụ Quan sát ví dụ, suy nghĩ và trả lời - Nằm phần khai báo, sau phần khai biến - Ba phần: Tên thủ tục, khai báo thủ tục và phần thân - Giống: Cấu trúc chung - Khác: Trong phần tên: Từ khóa đặt tên Procedure, có các tham số - Quan sát và ghi nhớ cấu trúc chung Trong phần thân kết thúc End; - Trong phần thân chương trình chính Quan sát ví dụ trên bảng - Thủ tục ve_hcn ví dụ này có các tham số chdai, chrong TIN HäC 11 (140) Trêng THPT sè Bè Tr¹ch N¨m häc: 2012 - 2013 - Diễn giải: Khai báo này cho phép thủ tục ve_hcn thực vẽ dược nhiều hình chữ nhật có kích thước khác - Vẽ hình chữ nhật - Hỏi: Quan sát chương trình cho biết, chương trình chính ta vẽ tất bao nhiêu hình chữ nhật - Tham số chdai, chrong gọi là tham số hình thức - Trong lời gọi thủ tục các tham số hình thức thay các tham số - Tham số thực thủ tục thực - So sánh các tham số lời gọi ve_hcn(5,10); là các s còn thru tục ve_hcn(a,b); là các biến ve_hcn(5,10); và ve_hcn(a,b); Theo dõi và trả lời Tìm hiểu tham số giá trị và tham số biến - Diễn giải: Tham số có hai chức năng: đưa liệu vào cho chương trình - Đưa liệu vào cho chương trình đưa liệu chương trình con xử lí tìm - Hỏi: Các tham số ví dụ thuộc loại nào? - Đưa liệu sau chương trình - Chiếu chương trình VD_thambien 1, xử lí ngoài sách giáo khoa trang 99 - Hỏi: các tham số x, y thuộc loại nào? - Diễn giải: lời gọi thủ tục, các tham số hình thức thay các tham số thực tương ứng là tên các - Là tham số biến biến chứa liệu gọi là các tham số biến - Khi khai báo tham số biến ta đặt từ - Hỏi: x, y là tham số giá trị hay tham khóa var trước các tham số đó số biến? - Hỏi: Có nhận xét gì khai báo tham số hình thức là tham giá trị và tham biến? - Chiếu vd_thambien2 và giải thíc để học sinh thấy khác biệt tham số giá trị và tham số biến Gi¸o viªn: NguyÔn ThÞ Kim TIN HäC 11 (141) Trêng THPT sè Bè Tr¹ch N¨m häc: 2012 - 2013 IV Đánh giá cuối bài Những nội dung đã học - Có hai loại chương trình - Cấu trúc chương trình và vị trí nó chương trình chính: Chương trình chính: Chương trình viết phần khai báo Chương trình có phần đầu, phần khai báo và phần thân - Chương trình có thể có tham số hình thức khai báo và thay tham số thực gọi chương trình - 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ị - Chương trình gọi tên nó RÚT KINH NGHIỆM: Gi¸o viªn: NguyÔn ThÞ Kim TIN HäC 11 (142) Trêng THPT sè Bè Tr¹ch N¨m häc: 2012 - 2013 Ngày giảng: Tiết PPCT: 43 VÍ DỤ VỀ CÁCH VIẾT VÀ SỬ DỤNG CHƯƠNG TRÌNH CON(T2) I Mục tiêu Kiến thức - Biết cấu trúc chung và vị trí thủ tục chương trình - Phân biệt tham số giá trị và tham số biến - Nắm khái niệm biến toàn cục và biến cục Kĩ năng: - Nhận biết các thành phần đầu thủ tục - Nhận biết hai loại tham số hình thức đầu thủ tục - Biết cách khai báo hai loại chương trình cùng với tham số hình thức chúng - Sử dụng đúng lời gọi chương trình thân chương trình chính - Phân biệt khác hàm và thủ tục - Phân biệt và sử dụng đúng biến toàn cục và biến cục Thái độ: - Rèn luyện các phẩm hcất người lập trình tinh thần hợp tác, làm việc theo nhóm, tuân thủ yêu cầu vì công việc chung II Đồ dùng dạy học Chuẩn bị giáo viên - máy vi tính, máy chiếu Projector để giới thiệu ví dụ Chuẩn bị học sinh - Sách giáo khoa III Hoạt động dạy – học Hoạt động : Tìm hiểu cấu trúc chung và vị trí hàm chương trình chính a Mục tiêu: - Học sinh biết cấu trúc chung hàm Biết vị trí khai báo hàm chương trình chính - Học sinh nắm khái niệm biến toàn cục và biến cục - Khai báo đúng biến toàn cục và biến cục b Nội dung: - Cấu trúc và vị trí hàm chương trình Program tên_chương_trình_chính; Các khai báo chương trình chính; Function tên_ham(danh sách các tham số): Kiểu_dữ_liệu_của_hàm; Các khai báo hàm; begin Các lệnh hàm; Tên_hàm:=biểu_thức; End; BEGIN Các kệnh hcương trình chính; Lời gọi thực hàm và thủ tục; Gi¸o viªn: NguyÔn ThÞ Kim TIN HäC 11 (143) Trêng THPT sè Bè Tr¹ch N¨m häc: 2012 - 2013 END - Kiểu_dữ_liệu_của_hàm là kiểu liệu kết hàm và có thể là các kiểu Integer, Read, Char, Boolean, String - Sử dụng hàm: Giống sử sụng các hàm chuẩn, viết tên hàm cần gọi và thay các tham số hình thức các tham số thực trương ứng Lời gọi hàm có thể tham gia vào biểu thức toán hạng và chí là tham số lời gọi hàm, thủ tục khác - Biến cục là biến có ảnh hưởng chương trình con, khai báo chương trình - Biến toàn là biến có phạm vi ảnh hưởng toàn chương trình, khai báo phần khai báo chương trình chính c Các bước tiến hành: Hướng dẫn giáo viên Hoạt động học sinh Nhắc lại kiến thức cũ hàm chuẩn Suy nghĩ và trả lời - Hỏi: Hãy kể tên số hàm chuẩn - Hàm ABC(), SQRT(), đã học và cách sử dụng chúng ROUD() - Viết tên hàm cần gọi và các tham số - Lời gọi hàm viết biểu thức toán hạng, chí là tham số hàm khác Giới thiệu cấu trúc chung và vị trí Quan sát cấu trúc chung hàm chương trình chính - Giống: Có cấu trúc tương tự, có các - Hỏi: So sánh giống và khác tham số hàm và thủ tục - Khác: Tên hàm phải quy định kiểu liệu; Trong thân hàm phải có lệnh Tên_hàm:=biểu_thức; Bắt đầu hàm là từ Function Tìm hiểu hàm thông qua ví dụ Quan sát ví dụ và trả lời - Chiếu chương trình ví dụ rutgon_phanso, sách giáo khoa trang 101 - Một hàm UCLN, dùng để tìm ước số - Hỏi: chương trình có hàm chung lớn hai số X, Y - Hàm UCLN(x, y) dùng để làm gì? -Lệnh A:=UCLN(tuso,mauso); - Hỏi: Lời gọi hàm đâu? -Lời gọi hàm phải đặt - Hỏi: Có gì khác với thủ tục lời lệnh lời gọi chương trình gọi hàm khác - Quan sát chương trình ví dụ - Chiếu chương trình ví dụ 2, Minbaso, sách giáo khoa, trang 102 - Có hàm khai báo - Hỏi: chương trình có bao nhiêu hàm? Chức hàm? - Hàm sử dụng hai lần - Có bao nhiêu lời gọi hàm - Kết hàm lại là đầu vào cho chương trình chính? chính hàm đó lần gọi thứ hai Gi¸o viªn: NguyÔn ThÞ Kim TIN HäC 11 (144) Trêng THPT sè Bè Tr¹ch N¨m häc: 2012 - 2013 Quan sát lại các ví dụ Tìm hiểu biến cục và biến toàn - Quan sát chương trình giáo viên - Chiếu chương trình ví dụ 2: - Có các biến: tuso, mauso, A, sondu rutgon_phanso lên bảng - Các biến: tuso, mauso, A khai - Hỏi: Có biến nào sử dụng chương trình? Các biến đó báo chương trình chính - Các biến: sodu khai báo khao báo chỗ nào chương chương trình trình? - Diễn giải: Biến tuso, mauso, A có ảnh hưởng toàn chương trình - Biến cục bộ: Có ảnh hưởng Biến Sodu ảnh hưởng thân chương trình con, khai báo chương trình - Yêu cầu học sinh: Phân biệt giống phần khai báo chương trình - Biết toàn bộ: Có phạm vi ảnh hưởng và khác biến toàn và toàn chương trình, khai biến cục báo phần khai báo chương trình chính IV Đánh giá cuối bài Những nội dung đã học - Có hai loại chương trình - Cấu trúc chương trình và vị trí nó chương trình chính: Chương trình chính: Chương trình viết phần khai báo Chương trình có phần đầu, phần khai báo và phần thân - Chương trình có thể có tham số hình thức khai báo và thay tham số thực gọi chương trình - 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ị - Chương trình gọi tên nó RÚT KINH NGHIỆM: Gi¸o viªn: NguyÔn ThÞ Kim TIN HäC 11 (145) Trêng THPT sè Bè Tr¹ch N¨m häc: 2012 - 2013 Ngày giảng: Tiết PPCT: 44, 45 BÀI THỰC HÀNH 6(T1) I Mục tiêu Kiến thức - Củng cố lại các kiến thức xâu kí tự, chương trình Kĩ năng: - Rèn luyện kĩ xử lí xâu việc tạo hiệu ứng chữ chạy trên màn hình - Nâng cao kĩ viết và sử dụng chương trình II Đồ dùng dạy học Chuẩn bị giáo viên - Máy vi tính, tổ chức tịa phòng máy để học sinh có các kĩ việc tổ chức và sử dụng chương trình lập trình Chuẩn bị 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: - Học sinh nắm chức hai thủ tục catdan() và cangiua() Biết ý nghĩa tham số chương trình đó b Nội dung: Thủ tục cantdan Type str79=string[79] Procedure cantdan(s1:str79; var s2:str79); Begin s2:=copy(s1,2,length(s1) – 1)+s1[1]; End; Thủ tục cangiua Proceure cangiua(var s:str79); var i, n:integer; Begin n:=length(s); n:=(80 – n) div 2; For i:=1 to n s:= ‘ ’ + s; End; c Các bước tiến hành: Hướng dẫn giáo viên Hoạt động học sinh Tìm hiểu hai thủ tục catdan(s1,s2) và Quan sát thủ tục catdan() và trả lời cangiua(s) câu hỏi giáo viên - Chiếu nội dung thủ tục catdan(s1,s2); - Vào: âu kí tự s1 - Hỏi: Đầu vào và đầu thủ tục - Ra: Biến xâu kí tự s2 nay? - Thực việc tạo xâu s2 từ xâu s1 - Hỏi: Chức thủ tục là gì? việc chuyển kí tự thứ đến vị trí Gi¸o viªn: NguyÔn ThÞ Kim TIN HäC 11 (146) Trêng THPT sè Bè Tr¹ch N¨m häc: 2012 - 2013 cuối xâu - Yêu cầu học sinh cho ví dụ minh - S1= ‘abcd’ thì S2= ‘bcda’ họa - Quan sát, suy nghĩ và trả lời - Chiếu nội dung thủ tục: cangiua(s); - Đầu vào là xâu kí tự S không - Hỏi: Đầu vào thủ tục? quá 79 kí tự - Thủ tục thực thêm vào trước xâu - Hỏi: Thủ tục thực công việc gì? s số kí tự trằng để đưa s màn hình kí tự S ban đầu dòng gồm 80 kí tự - Giáo viên chú ý: Có thể nhắc học sinh 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 màn hình không nằm Quan sát chương trình trên bảng và thủ tục này theo dõi dẫn dắt giáo viên Tìm hiểu chương trình câu b, sách giáo khoa, trang 103, 104 - Yêu cầu người sử dụng nhập xau - Chiếu chương trình lên bảng kí tự Đưa xâu đó màn hình có dạng - Hỏi: Chức chương trình dòng chữ chạy màn hành văn 25*80 - Giới thiệu cho học sinh các thủ tục chuẩn: gỗty(x,y); delay(n); và - Quan sát trên màn hình để đối chiếu keypressed; với kết mà học sinh tự suy luận tính - Thực chương trình để giúp học sinh thấy kết chương trinh IV Đánh giá cuối bài Câu hỏi và bài tập nhà - Viết thủ tục chaychu(s,dong) nhận tham số là xâu S gồm không quá 79 kí tự và 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 có sử dụng thủ tục này - Chuẩn bị bài cho bài thực hành số tiết V RÚT KINH NGHIỆM: - Gi¸o viªn: NguyÔn ThÞ Kim TIN HäC 11 (147) Trêng THPT sè Bè Tr¹ch N¨m häc: 2012 - 2013 Ngày giảng: Tiết PPCT: 44, 45 BÀI THỰC HÀNH 6(T2) I Mục tiêu Kiến thức - Củng cố lại các kiến thức xâu kí tự, chương trình Kĩ năng: - Rèn luyện kĩ xử lí xâu việc tạo hiệu ứng chữ chạy trên màn hình - Nâng cao kĩ viết và sử dụng chương trình II Đồ dùng dạy học Chuẩn bị giáo viên - Máy vi tính, tổ chức tịa phòng máy để học sinh có các kĩ việc tổ chức và sử dụng chương trình lập trình Chuẩn bị học sinh - Sách giáo khoa III Hoạt động dạy – học Hoạt động 2: Rèn luyện kĩ lập trình a Mục tiêu: - Học sinh vận dụng các hiểu biết chương trình con, thuật toán vừa cung cấp để giải bài toán tổng quát b Nội dung: - Viết chương trình nhập 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 chương trình câu b, sách giáo khoa, trang 103 c Các bước tiến hành: Hướng dẫn 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 - Về bản, giống nhiệm vụ mà - Yêu cầu học sinh tìm vấn đề câu b đã làm Chỉ khác là chương trình bài tập này câu b luôn cho xâu kí tự chạy dòng bất kì Vì phải truyền tham số quy định dòng chạy cho thủ tục - Yêu cầu học sinh lập trình trên máy - Độc lập viết chương trình vào máy và báo cáo kết thử nghiệm - Yêu cầu học sinh thực chương - Nhập liệu theo test giáo viên trình và nhập liệu test và báo cáo kết - Đánh giá kết lập trình học sinh Gi¸o viªn: NguyÔn ThÞ Kim TIN HäC 11 (148) Trêng THPT sè Bè Tr¹ch N¨m häc: 2012 - 2013 IV Đánh giá cuối bài Câu hỏi và bài tập nhà - Viết thủ tục chaychu(s,dong) nhận tham số là xâu S gồm không quá 79 kí tự và 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 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 bài thực hành số 7, sách giáo khoa, trang 105 V RÚT KINH NGHIỆM: - Gi¸o viªn: NguyÔn ThÞ Kim TIN HäC 11 (149) Trêng THPT sè Bè Tr¹ch N¨m häc: 2012 - 2013 Ngày giảng: Tiết PPCT: 46, 47 BÀI THỰC HÀNH SỐ 7(T1) 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 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 để học sinh có các kĩ 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 - 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 các hàm, thủ tục và chương trình thực các việc liên quan đến tam giác a Mục tiêu: - Học sinh biết các hàm và thủ tục chương trình Hiểu chức cuả chương trình Tính đầu vào và đầu chương trình b Nội dung: 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 ba 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à tam giác 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 tam giác: đều, cân vuông Procedure hienthi(var r:tamgiac); hiển thị tọa độ ba đỉnh tam giác trên màn hình Function kh_cach(p,q:diem):real; cho giá trị là khoảng cách hai điểm p, q Các chương trình viết sách giáo khoa, trang 106, 107 c Các bước tiến hành: Hướng dẫn giáo viên Hoạt động học sinh Tìm hiểu việc xây dựng hàm và thủ Quan sát các chương trình con, các tục lệnh và các khai báo tham số - Chức chương trình con: - Chiếu khai báo kiểu liệu diem và daicanh(); tính độ dài ba cạnh a, b, c tamgiac Chiếu các hàm và thủ tục lên tam giác r bảng chuvi():real; cho giá trị là chu vi - Hỏi: Chức chương tam giác r trình con? dientich():real; cho giá trị là diện tích Gi¸o viªn: NguyÔn ThÞ Kim TIN HäC 11 (150) Trêng THPT sè Bè Tr¹ch N¨m häc: 2012 - 2013 tam giác r tinhchat(); khẳng định tính chất tam giác: dều, cân vuông hienthi(); hiển thị tọa độ ba đỉnh tam giác trên màn hình Kh_cách():real; cho giá trị là khoảng cách hai điểm - Tham số biến r, a, b, c - Có các tham số nào? Tham số nào - Tham số giá trị p, q dạng tham số biến và tham nào dạng tham số giá trị Quan sát chương trình, dự tính chức Tìm hiểu chương trình câu b, sách chương trình giáo khoa trang 106 - Nhập vào tọa độ ba đỉnh tam giác - Chiếu chương trình câub - Hỏi: Chương trình thực chương và khảo sát tính chất tam giác: cân, vuông, In chu vi và diện tích trình gì? tam giác - Quan sát kết trên màn hình để đối - Thực chương trình để giúp học chiếu với kết tự tính sinh thấy kết - Quan sát và ghi nhớ kết để thấy - Thay tham biến thành tham trị để học hiệu ứng thay đổi tham trị và sinh thấy sai khác tham biến IV Đánh giá cuối bài Những nội dung đã học - Cách xây dựng hàm và thủ tục, cách khai báo tham số dạng tham biến và tham trị Câu hỏi và bài tập nhà - Cho file liệu bài tập hoạt động - Đọc bài đọc thêm: Ai là lập trình viên đầu tiên? Sách giáo khoa, trang 109 - Chuẩn bị bài cho tiết thực hành RÚT KINH NGHIỆM: - Gi¸o viªn: NguyÔn ThÞ Kim TIN HäC 11 (151) Trêng THPT sè Bè Tr¹ch N¨m häc: 2012 - 2013 Ngày giảng: Tiết PPCT: 46, 47 BÀI THỰC HÀNH SỐ 7(T1) 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 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 để học sinh có các kĩ 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 - Sách giáo khoa III Hoạt động dạy – học 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 hmà và thủ tục đã xây dựng để giải các bài toán sau: Cho tệp liệu TAMGIAC.INP có cấu trúc sau: Dòng 1: Ghi số nguyên N (1<=N<=100) N dòng tiếp theo: Mỗi dòng ghi số thực xA yA xB yB xC yC là các tọa độ ba đỉnh A, B, C tam giác (-32000<=xA,yA,xB,yB,xC,yC<=32000) Yêu cầu: Đọc liệu từ tệp TAMGIAC.INP, 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: Hướng dẫn giáo viên Hoạt động học sinh Phân tích yêu cầu đề bài Quan sát yêu cầu - Chiếu nội dung yêu cầu lên bảng - Nhóm 1: Đặt câu hỏi - Chia lớp thành nhóm + Dữ liệu vào + Nhóm 1: Nêu câu hỏi phân tích để + Dữ liệu giải bài toán + Cần sửa chỗ nào + Nhóm 2: Trả lời câu hỏi phân tích chương trình câu b nhóm để tìm cách giải bài + Thuật toán để đếm số lượng các loại Gi¸o viªn: NguyÔn ThÞ Kim TIN HäC 11 (152) Trêng THPT sè Bè Tr¹ch N¨m häc: 2012 - 2013 toán hình tam giác - Nhóm 2: trả lời câu hỏi phân tích - Giáo viên góp ý bổ sung cho câu hỏi + Cho tệp, phải viết lệnh đọc phân tích và trả lời phân tích liệu tệp + Ba số nguyên dương là số lượng ba loại hình tam giác Ba số ghi trên ba 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.INP Thay đoạn chương trình in kết màn hình chương trình để in ba số nguyên dương là số lượng ba loại hình tệp TAMGIAC.OUT + Thuật toán: Nếu deu thì d:=d+1 Ngược lại can thì c:=c+1; 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 học sinh lập trình trên máy Giáo viên tiếp cận học sinh để sửa lỗi cần thiết - Thông báo kết cho giáo viên - Yêu cầu học sinh nhập liệu vào giáo viên và báo cáo kết - Nhập liệu giáo viên và báo chương trình cáo kết - Đánh giá kết học sinh IV Đánh giá cuối bài Những nội dung đã học - Tìm hiểu số chương trình liên quan đến tam giác Câu hỏi và bài tập nhà - Cho file liệu bài tập hoạt động - Đọc bài đọc thêm: Ai là lập trình viên đầu tiên? Sách giáo khoa, trang 109 - Chuẩn bị bài cho tiết học lí thuyết: Xem trước nội dung bài Thư viện chương trình chuẩn, sách giáo khoa, trang 110 RÚT KINH NGHIỆM: - Gi¸o viªn: NguyÔn ThÞ Kim TIN HäC 11 (153) Trêng THPT sè Bè Tr¹ch N¨m häc: 2012 - 2013 Ngày giảng Tiết PPCT: 48 THƯ VIỆN CHƯƠNG TRÌNH CON CHUẨN I Mục tiêu Kiến thức: - Biết số thư viện chương trình Kĩ năng: - Bước đầu sử dụng các thư viện đó lập trình - Khởi động chế độ đồ họa - Sử dụng các thủ tục vẽ điểm, đường kính, hình tròn, hình ellipse, hình chữ nhật II Đồ dùng dạy học Chuẩn bị giáo viên - máy chiếu Projector để giới thiệu ví dụ Chuẩn bị học sinh - Sách giáo khoa III Hoạt động dạy – học Hoạt động 1: Tìm hiểu thư viện CRT a Mục tiêu: - Học sinh biết số chương trình chuẩn thư viện b Nội dung: - Thư viện CRT chứa các thủ tục liên quan đến việc quản lí và khai thác màn hình và bàn phím - Thủ tục Clrcr: xóa màn hình - Thủ tục Ttextcolor(c): Đặt màu cho chữ trên màn hình, đó c là biến có giá trị nguyên không âm để xác định màu - thủ tục textbackground(c): Đặt màu cho màn hình - Thủ tục Gotoxy(x,y): Đưa trỏ đến vị trí cột x dòng y màn hình văn c Các bước tiến hành: Hướng dẫn giáo viên Hoạt động học sinh Tìm hiểu thủ tục Clrscr Tham khảo sách giáo khoa: - Yêu cầu học sinh nghiên cứu sách Clrscr, textcolor, giáo khoa, kể tên các chương trình textbackground, gotoxy thư viện CRT - Quan sát chương trình - Chiếu chương trình sau: Begin clrscr; Readln; End - Vì sử dụng thủ tục chưa sử - Biên dịch chương trình Hỏi: Tại dụng thư viện CRT xuất lỗi? Khắc phục nào? - Thêm lệnh USES CRT ; - Quan sát giáo viên thực chương - Thêm Uses CRT; vào đầu chương trình và thực chương trình để học trình Gi¸o viªn: NguyÔn ThÞ Kim TIN HäC 11 (154) Trêng THPT sè Bè Tr¹ch N¨m häc: 2012 - 2013 sinh thấy kết Chú ý cho học sinh ghi nhớ màn hình trước lúc thực chương - Xóa màn hình trình này - Hỏi: Chức thủ tục Clrscr; Tìm hiểu thủ tục textcolor - Chiếu chương trình ví dụ: - Quan sát chương trình Uses CRT; begin Write(‘chua dat mau chu’); textcolor(4); Write(‘Da dat mau chu la do’); Readln; End - Quan sát kết chương trình - Thực chương trình để học sinh thấy kết - Đặt màu chữ thành màu đỏ - hỏi: Chức lệnh textxolor(4); Tìm hiểu thủ tục Textbackground - Chiếu chương trình ví dụ: - Quan sát chương trình uses CRT; Begin Textbackground(1); Writeln(‘da lat lai mau nen’); Readln; - Quan sát kết chương trình End - Thực chương trình để học sinh - Đặt màu chữ thành màu xanh thấy kết trời - Hỏi: Chức lệnh Textbackground(1); Tìm hiểu thủ tục gotoxy - Chiếu chương trình ví dụ: Uses CRT; - Quan sát chương trình Begin Writeln(‘Con tro dang dung o cot 10 dong 20’); Gotoxy(10,20); Readln; - Quan sát kết chương trình End - Thực chương trình để học sinh - Đưa trỏ vị trí cột 10 dòng 20 thấy kết - Hỏi: Chức lệnh Gotoxy(10,20); Hoạt động 2: Tìm hiểu thư viện graph ngôn ngữ lập trình Pascal Gi¸o viªn: NguyÔn ThÞ Kim TIN HäC 11 (155) Trêng THPT sè Bè Tr¹ch N¨m häc: 2012 - 2013 a Mục tiêu: - Học sinh biết cách khởi động và thoát chế độ đồ họa b Nội dung: - Thư viện Graph chứa các chương trình phục vụ khai thác khả đồ họa máy tính mức độ thông dụng vẽ điểm, đường, tô màu - Các thiết bị và hcương trình hỗ trợ họa: + Có hai chế độ àn hình: Đồ họa văn + Bảng mạch điều khiển màn hình là thiết bị đảm bảo tương tác xử lí và màn hình để thể các chế độ phân giải và màu sắc + Turbo Pascal cung cấp các chương trình điều khiển (có phần mở rộng là BGI) tương ứng với các loại card đồ họa Khi khởi động chế độ đồ họa cần đường dẫn đến chương trình này + Tọa độ màn hình đồ họa đánh giá số từ Cột đánh số từ phải sang trái, dòng ấnh số từ trên xuống Giá trị lớn toạn độ dòng và tọa độ cột gọi là độ phân giải màn hình + Để thực chức đồ họa cần sử dụng các thủ tục và hàm thư viện Graph - Khởi động chế độ đồ họa: Initgraph(dr,md:integer;pth:string); dr: Là số hiệu trình điều khiển BGI md: Là số hiệu độ phân giải pth: Là đường dẫn đến các tệp BGI - Kết thúc chế độ đồ họa trở chế độ văn bản: Closegraph; c Các bước tiến hành: Hướng dẫn giáo viên Hoạt động học sinh Yêu cầu học sinh nghiên cứu sách Tham khảo sách giáo khoa để trả lời giáo khoa để trả lời các câu hỏi: - Văn và hình ảnh - Hỏi: Các dạng liệu nào có thể hiển thị trên màn hình? - Làm cầu nối CPU và màn hình - Hỏi: Nhiệm vụ chính card màn thể thông tin hình? - Là nói đến màn hình có 640 dòng và - Hỏi: Khi nói màn hình có độ phân giải 480 cột 640 x 480 là nói đến điều gì? Quan sát và theo dõi dẫn dắt Đưa cấu trúc chung thủ tục khởi giáo viên động đồ họa Initgraph(dr,md:integer;pth:string); - Giải thích các thông số thủ tục cho học sinh - Quan sát giáo viên thực - Cho học sinh thấy ví dụ khởi động đồ họa Quan sát và so sánh hai chế giới thiệu thủ tục trở chế độ văn độ văn và đồ họa Closegraph; - Thay phiên thực việc - Yêu cầu học sinh khởi động chế độ đồ chuyển đổi hai chế độ văn và họa và chuyển chế độ văn Gi¸o viªn: NguyÔn ThÞ Kim TIN HäC 11 (156) Trêng THPT sè Bè Tr¹ch N¨m häc: 2012 - 2013 đồ họa Hoạt động 3: Tìm hiểu các thủ tục vẽ điểm, đường và các hình thức a Mục tiêu: - Học sinh biết các thủ tục vẽ điểm, đường và các hình Biết tên thủ tục, các tham số và chức thủ tục b Nội dung: - Vẽ điểm: Putpixel(x,y:integer;color:word); - Vẽ đường thẳng: Line(x1,y1,x2,y2:integer); Lineto(x,y:integer); Linere(dx,dy:integer); - Vẽ hình tròn: Circle(x,y:integer ;r:word); - Vẽ hình elip: Ellipse(x,y:integer; stangle,endangle,xr,yr:word); - Vẽ hình chữ nhật: Rectangle(x1,y1,x2,y2:integer); - Đặt màu cho nét vẽ: Setcolor(word); c Các bước tiến hành: Hướng dẫn giáo viên Hoạt động học sinh Tìm hiểu thủ tục Putpixel Quan sát cấu trúc chung và - Chiếu cấu trúc chung thủ tục: suy nghĩ để trả lời câu hỏi Putpixel(x,y:integer;color:word); - Chiếu chương trình ví dụ - Quan sát chương trình Use graph Begin drive:=0; initgraph(drive,mode, ‘c:\Tp\BGI’); Putpixe1(12,40,15); readln; End - Quan sát kết chương - Thực chương trình để học sinh thấy kết trình - Vẽ điểm có màu Colỏ - Hỏi: Chức thủ tục Putpixel trên màn hình tọa độ (x,y) Tìm hiểu thủ tục Line Quan sát cấu trúc chung và - Chiếu cấu trúc chung thủ tục: suy nghĩ để trả lời câu hỏi Line(x1,y1,x2,y2:integer); - Quan sát chương trình - Chiếu chương trình ví dụ trên thay lệnh Putpixel(12,40,15); lệnh line(1,1,20,20); - Quan sát kết chương - Thực chương trình để học sinh thấy kết trình - Vẽ đoạn thẳng từ điểm có - Hỏi: Chức thủ tục Line tọa độ (x1,y1) đến điểm có tọa độ (x2,y2) Tìm hiểu thủ tục Lineto Quan sát cấu trúc chung và Gi¸o viªn: NguyÔn ThÞ Kim TIN HäC 11 (157) Trêng THPT sè Bè Tr¹ch N¨m häc: 2012 - 2013 - Chiếu cấu trúc chung thủ tục: suy nghĩ để trả lời câu hỏi Lineto(x,y:integer); - Quan sát chương trình - Chiếu chương trình ví dụ trên thay lệnh Putpixel(12,40,15); lệnh lineto(20,20); - Quan sát kết chương - Thực chương trình để học sinh thấy trình kết - Vẽ đoạn thẳng từ điểm - Hỏi: Chức thủ tục Lineto đến điểm có tọa độ (x,y) Quan sát cấu trúc chung và Tìm hiểu thủ tục Lineto suy nghĩ để trả lời câu hỏi - Chiếu cấu trúc chung thủ tục: Lineto(dx,dy:integer); - Vẽ đoạn thăng nối điểm - Hỏi: Chức thủ tục Linerel với điểm có tọa độ tọa độ điểm cộng với dx, dy Quan sát cấu trúc chung và Tìm hiểu thủ tục Circle, Ellipse, suy nghĩ để trả lời câu hỏi Rectangle - Chiếu cấu trúc chung các thủ tục: Circle(x,y:integer; r:word); Ellipse(x,y:integer;stabgle,endangle,xr,yr:word); Rectangle(x1,y1,x2,y2:integer); - Chiếu chương trình ví dụ - Quan sát chương trình Use graph Begin drive:=0; initgraph(drive,mode, ‘c:\Tp\BGI’); Circle(12,40,30); Ellipse(50,50,30,120,50,100:word); Rectangle(100,100,200,200); readln; End - Quan sát kết chương - Thực chương trình để học sinh thấy trình kết + Circle: Vẽ đường tròn có - Hỏi: Chức các thủ tục Circle, tâm (x,y) và bán kính r Ellipse, Rectangle + Ellipse: Vẽ cung ellipse có tâm điểm x,y với các bán kính trục xr, yr, từ góc khởi đầu stangle đến góc kết thúc endangle Quan sát cấu trúc chung và Tìm hiểu thủ tục Setcolor suy nghĩ để trả lời câu hỏi - Chiếu cấu trúc chung các thủ tục: Setcolor(m:word); - Chiếu chương trình ví dụ Use graph Begin Gi¸o viªn: NguyÔn ThÞ Kim TIN HäC 11 (158) Trêng THPT sè Bè Tr¹ch N¨m häc: 2012 - 2013 drive:=0; initgraph(drive,mode, ‘c:\Tp\BGI’); - Quan sát chương trình Circle(12,40,100); Setcolor(4); Circle(12,40,200); readln; - Quan sát kết chương End - Thực chương trình để học sinh thấy kết trình - Setcolor(m: word): Đặt màu cho nét vẽ với màu có s hiệu m - Hỏi: Chức thủ tục Lineto Hoạt động 4: Tìm hiểu số thư viện khác a Mục tiêu: - Học sinh biết tên và chức thư viện: System, Dos, Printer b Nội dung: - Thư viện System chứa các hàm sơ cấp và các thủ tục vào/ra mà các chương trình dùng tới - Thư viện Dos chứa các thủ tục cho phép thực trực tiếp các lệnh tạo thư mục, thiết lập ngày, hệ thống - Thư viện Printer cung cấp các thủ tục làm việc với máy in c Các bước tiến hành: Hướng dẫn giáo viên Yêu cầu học sinh nghiên cứu sáhc giáo khoa, nêu tên các thư viện Yêu cầu học sinh nêu chức thư viện Hoạt động học sinh Các thư viện: System, Dos, Printer Chức thư viện: - System: Chứa các hàm và thủ tục vào/ra sơ cấp - Dos: Chứa các thủ tục tạo thư mục, đóng mở file - printer: Chứa các thủ tục liên quan đến máy in Hoạt động 5: Rèn luyện kĩ lập trình a Mục tiêu: - Bước đầu học sinh sử dụng các thủ tục thư viện graph để viết chương trình vẽ số hình b Nội dung: - Viết chương trình bẽ 20 hình tròn lồng có tọa độ tâm là điểm chính màn hình, các hình có bán kính cách điểm ảnh c Các bước tiến hành: Hướng dẫn giáo viên Giới thiệu nội dung yêu cầu lên bảng Gi¸o viªn: NguyÔn ThÞ Kim Hoạt động học sinh Quan sát yêu cầu giáo viên TIN HäC 11 (159) Trêng THPT sè Bè Tr¹ch N¨m häc: 2012 - 2013 Định hướng cách giải vấn đề cho Circle(x,y:integet;r:word); học sinh - Cần 20 lệnh, nên dùng cấu trúc For để - Thủ tục để vẽ hình tròn cs chương trình ngắn gọn tâm là điểm chính màn hình - Cần bao nhiêu lệnh vậy, dùng Thảo luận theo nhóm để viết chương cấu trúc nào để điều khiển chia lớp làm nhóm 01 nhóm viết trình lên giấy bìa - Báo cáo kết viết chương trình trên máy 02 nhóm viết lên - Nhận xét, đánh giá và bổ sung thiếu bìa - Thu phiếu trả lời Chiếu lên bảng , sót các nhóm khác gọi học sinh nhóm khác nhận xét đánh giá Sửa chương trình hoàn chỉnh cho Quan sát kết trên màn hình học sinh viết trên máy Thực chương trình trên máy để học sinh thấy kết IV Đánh giá cuối bài Những nội dung đã học - Thư viện chương tình cung cấp chương trình chuẩn nhằm mở rộng khả ứng dụng - Khởi động chế độ đồ họa Chuyển từ chế độ màn hình đồ hoa sang chế độ màn hình văn - Thủ tục vẽ điểm, đường, hình bản: Hình tròn, hình chữ nhật, hình ellipse Câu hỏi và bài tập Câu 1: Thủ tục Gotoxy(20,40) có chức năng? a Đưa trỏ đến dòng 20, cột 40 b Đưa trỏ đến dòng 40, cột 20 c Đưa trỏ đến dòng 80, cột 40 d Đưa trỏ đến dòng 40, cột 80 Câu 2: Thủ tục Circle có chức gì? a Vẽ cung x, y có bán kính r b Vẽ đường tròn có tâm (x,y) và bán kính r c Vẽ hình chữ nhật có cạnh x, y d Tất sai - Đọc bài đọc thêm 4: Âm thanh, sách giáo khoa, trang upload.123doc.net -Ngày giảng: Tiết PPCT: 49 BÀI THỰC HÀNH I Mục tiêu Kiến thức: - Học sinh biết khả đồ họa Pascal Kĩ năng: - Sử dụng các thủ tục đồ họa để viết chương trình đơn giản Gi¸o viªn: NguyÔn ThÞ Kim TIN HäC 11 (160) Trêng THPT sè Bè Tr¹ch N¨m häc: 2012 - 2013 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 Chuẩn bị học sinh - Sách giáo khoa III Hoạt động dạy – học Hoạt động 1: Tìm hiểu số chương tình Pascal a Mục tiêu: - Biết số thủ tục, suy luận kết chương trình b Nội dung: - Chương trình vẽ các đường gấp khúc ngẫu nhiên nhờ thủ tục Lineto, đoạn có màu ngẫu nhiên Vị trí bắt đầu vẽ là tâm màn hình Kết thúc việc vẽ cách nhấn phím bất kì c Các bước tiến hành: Hướng dẫn giáo viên Giới thiệu chương trình câu a - Chiếu nội dung chương trình lên bảng(sách giáo khoa, trang 115) - Hỏi: Hàm Detectinit có chức gì? - Thủ tục Moveto(getmaxx div 2, getmaxy div 2) thực công việc gì? - Chương trình này thực công việc gì? Hoạt động học sinh Quan sát nội dung chương trình - Cho giá trị khác không có lỗi khởi động đồ họa - Chuyển trỏ đồ họa đến vị trí tâm màn hình - Vẽ các đường gấp khúc ngẫu nhiên nhờ thủ tục Lineto, đoạn có màu ngẫu nhiên Vị trí bắt đầu vẽ là tâm màn hình Kết thúc việc vẽ cách nhấn phím bất kì - Quan sát giáo viên thực và kiểm nghiệm suy luận Quan sát nội dung chương trình - Thực chương trình để học sinh thấy kết chương trình này Giới thiệu chương trình câu b, sách giáo khoa trang 116 - Yêu cầu học sinh nghiên cứu chương trình và cho biết chức chương - Vẽ hình chữ nhật với nét vẽ màu trình vàng - Vẽ đường tròn màu xanh lá cây, tam - Thực chương trình để học sinh 450, 100 và bán kính 50 thấy kết nó - Quan sát kết thực Chương - Yêu cầu học sinh thay đổi số trình và kiểm nghiệm suy luận tham số màu vẽ, tọa độ và thực lại chương trình - Thực yêu cầu giáo viên Thực chương trình để biết ý nghĩa các thủ tục và tham số nó Hoạt động 2: Rèn luyện kĩ xử lí đồ họa Gi¸o viªn: NguyÔn ThÞ Kim TIN HäC 11 (161) Trêng THPT sè Bè Tr¹ch N¨m häc: 2012 - 2013 a Mục tiêu: - Học sinh sử dụng các thrutục xử lí đồ họa và công thức đổi trục tọa độ để lập trình vẽ đồ thị hàm số b Nội dung: - Viết chương trình vẽ hình vuông có độ dài cạnh 100 và tọa độ đỉnh góc trên trái là 50, 50 c Các bước tiến hành: Hướng dẫn giáo viên Hoạt động học sinh Giới thiệu nội dung đề bài lên bảng Quan sát nội dung đề bài, theo dõi Định hướng phương pháp giải vấn định hướng phân tích yêu cầu giáo đề: viên - Từ điểm góc trên trái, dùng thủ tục linerel(0,100) để vẽ đoạn thẳng đến đỉnh góc trái Tương tự vậy, thực để vẽ hình vuông Yêu cầu học sinh độc lập viết chương Độc lập soạn thảo chương trình vào trình lên máy - Yêu cầu học sinh thực chương máy - Thông báo hoàn thành lập trình tình để thấy kết - Thực chương trình - Tiếp cận học sinh để hướng dẫn sửa chữa các sai sót cho học sinh IV Đánh giá cuối bài Những nội dung đã học - Các thủ tục xử lí đồ họa Câu hỏi và bìa tập nhà - Viết chương trình vẽ hình vuông có độ dài cạnh là d và tọa độ đỉnh trên trái là (x,y) - Ngày soạn: Ngày giảng: ÔN TẬP CUỐI NĂM I Mục tiêu Kiến thức - Nắm toàn kiến thức đã học từ đầu năm học Kĩ năng: - Vận dụng các lệnh và kiểu liệu đã học để lập trình giải các bìa toán cách trọn vẹn II Đồ dùng dạy học Chuẩn bị giáo viên Gi¸o viªn: NguyÔn ThÞ Kim TIN HäC 11 (162) Trêng THPT sè Bè Tr¹ch N¨m häc: 2012 - 2013 - Máy chiếu Projector Chuẩn bị học sinh - Sách giáo khoa III Hoạt động dạy – học Hoạt động 1: Nhắc lại kiến thức đã học a Mục tiêu: - Học sinh nắm tất các kiến thức lí thuyết đã học từ đầu năm đến b Các bước tiến hành: hướng dẫn giáo viên Hoạt động học sinh Đặt câu hỏi để giúp học sinh nhớ lại theo dõi các câu hỏi giáo viên và kiến thức đã học suy nghĩ trả lời - Kể tên các loại ngôn ngữ lập trình - Ngôn ngữ máy - Hợp ngữ - Ngôn ngữ bậc cao : Pasacl, c, - Phân biệt hai kĩ thuật biên dịch và - Biên dịch: thông dịch - Thông dịch: - trình bày các thành phần - Bảng chữ cái, cú pháp và ngữ nghĩa ngôn ngữ lập trình - Gồm phần: Phần khia báo và phần - Nêu cấu trúc chung chương thân trình Pascal Cho ví dụ đơn giản Program vd; Var i:integer; Begin; i:=5; Writeln(i); Readln; End - Kể tên các kiểu liệu đơn giản đã - Số nguyên, số thực, kí tự, logic học, giới hạn các kiểu đó, các phép - Phép toán số học, phép toán quan hệ, toán tương ứng kiểu và các phép toán logic hàm liên quan - Biểu thức số học, biểu thức quan hệ và biểu thức logic - Hàm bình phương, hàm bậc hai, hàm giá trị tuyệt đối, hàm sin, hàm cos - Viết cấu trúc chung lệnh gán và - Tên biến:=biểu thức; chức lệnh - Dùng để tính toán biểu thức và - Viết cấu trúc chung thủ tục gán giá trị cho biến - Thủ tục Read()/readln(); nhập/xuất liệu - Thủ tục Write()/writeln(); - Nêu cấu trúc chung lệnh rẽ If <BTĐK> then nhánh <lệnh1>else<lệnh2>; For i:=gt1 to gt2 do<lệnh>; - Nêu cấu trúc chung lệnh lặp While<btdk> <lệnh> Gi¸o viªn: NguyÔn ThÞ Kim TIN HäC 11 (163) Trêng THPT sè Bè Tr¹ch N¨m häc: 2012 - 2013 - Cách khai báo kiểu mảng, khai báo - Type tênkiểu = Array[cs1 cs2] of biến kiểu mảng và tham chiếu đến kiểu_phần_tử; phần tử mảng - Var tênbiến: tênkiểu; - Tênbiến[chỉ số] - Cách khai báo biến xâu, tham chiếu - Var tênbiến:string; đến kí tự xâu, các hàm và thủ - Tênbiếnxâu[chỉ số] tục liên quan đến xâu - Hàm: length(st), upcase(ch), copy(st,p,n) - Thủ tục: Delete(st,p,n), str(n,st), Var(st,n,m1), Insert(s1,s2,n); - Cách tạo kiểu ghi, khai báo biến - Type tênkiểubảnghi=record kiểu ghi và tham chiếu đến têntrường i: kiểudữliệu i; phần tử biến ghi End; Var Tênbiếnbảnghi:tênkiểubảnghi; - Tênbiếnbảnghi.têntrường Hoạt động 2: rèn luyện kĩ viết chương trình a Mục tiêu: - Học sinh sử dụng kiến thức tông hợp đẻ giải bài toán đặt b Nội dung: - Viết chương trình nhập vào dãy số gồm N phần tử nguyên dương In màn hình ước số chung lớn dãy số đó c Các bước tiến hành: hướng dẫn giáo viên Giới thiệu nội dung đề bài lên bảng Địng hướng phương pháp giải - Các nhiệm vụ phải thực hiện: Nhập dãy số Tìm ước số chung lớn hai số Tìm ước số chung lớn N số và in kết màn hình Chia lớp làm nhóm Nhóm 1: Viết chương trình nhập giá trị cho mảng Nhóm 2: Viết chương trình tìm ước số chung lớn số Nhóm 3: Viết chương trình chính có chương trình nhập mang và tìm ước số chung lớn hai số - Thu phiếu học tập, chiếu nội dung lên bảng Gọi học sinh các nhóm nhận Gi¸o viªn: NguyÔn ThÞ Kim Hoạt động học sinh Quan sát nội dung đề bài và suy nghĩ phương pháp giải theo định hướng phân tích giáo viên Thảo luận theo nhóm viết chương trình lên giấy bìa - Thông báo kết cho giáo viên hoàn thành - Nhận xét, đánh giá và bổ sung thiếu sót nhóm khác TIN HäC 11 (164) Trêng THPT sè Bè Tr¹ch xét đánh giá lẫn - Yêu cầu học sinh ghép các chương trình để chương trình chính - Thực chương trình để toàn lớp thấy kết N¨m häc: 2012 - 2013 - Thảo luận để ghép chương trình - Quan sát để thấy kết bài tập IV Đánh giá cuối bài Những nội dung đã học - Khái niệm ngôn ngữ lập trình và ngôn ngữ lập trình Pascal - Chương trình Turbo Pascal đơn giản - Tổ chức rẽ nhánh và lặp - Kiểu liệu có cấu trúc - kiểu tệp và các thao tác xử lí trên tệp - Chương trình - lập trình xử lí đồ họa và âm Câu hỏi và bài tập nhà - Chuẩn bị kiến thức cho tiết sau kiểm tra cuối năm: Xem lại toàn các kiến thức đã ôn tập Gi¸o viªn: NguyÔn ThÞ Kim TIN HäC 11 (165)