=> Vậy: Việc dùng ngôn ngữ lập trình cụ thể để diễn đạt thuật toán sau cho máy hiểu được ta gọi đó là lập trình - Yêu cầu học sinh ghi lại nội dung trong sách * Lập trình là việc sử dụng[r]
(1)Chương 1: MỘT SỐ KHÁI NIỆM VỀ LẬP TRÌNH VÀ NGÔN NGỮ LẬP TRÌNH TIẾT CT: 01 Bài 1: KHÁI NIỆM LẬP TRÌNH VÀ NGÔN NGỮ LẬP TRÌNH I MỤC TIÊU: a/ Về kiến thức – kỹ - Biết khái niệm lập trình - Hiểu khả ngôn ngữ lập trình bậc cao, phân biệt với ngôn ngữ máy và hợp ngữ - Hiếu ý nghĩa và nhiệm vụ chương trình dịp, phân biệt biên dịch và thông dịch b/ Thái độ: - Tạo thái độ ham thích tìm hiểu lập trình II PHƯƠNG PHÁP VÀ PHƯƠNG TIỆN DẠY – HỌC a/ Phương pháp: Thuyết trình – vấn đáp b/ Phương tiện: - Giáo viên: bảng viết, sách, tài liệu minh hoa - Học sinh: sách giáo khoa III HOẠT ĐỘNG DẠY – HỌC - Ổn định lớp - Giới thiệu chương trình - Dẫn dắt vào nội dung bài học Hoạt động Thầy Hoạt động trò HOẠT ĐỘNG 1: Tìm hiểu khái niệm lập trình và ngôn ngữ lập trình a/ Mục tiêu - Giúp học sinh biết lập trình là gì? Ý nghĩa lập trình? - Giúp học sinh hiểu khái niệm ngôn ngữ lập trình và số loại ngôn ngữ lập trình b/ Nội dung: - Mọi bài toán có thuật toán có thể giải trên máy tính qua các bước + Xác định thuật toán + Xây dựng thuật toán + Lập trình - Lập trình là: việc sử dụng cấu trúc liệu và các câu lệnh ngôn ngữ lập trình cụ thể để mô tả liệu, biểu đạt các thao tác thuật toán - Ngôn ngữ lập trình: Ngôn ngữ máy, hợp ngữ, ngôn ngữ bậc cao - Ngôn ngữ lập trình bậc cao: gần với ngôn ngữ tự nhiên, thuận tiện với ngôn ngữ tự nhiên, thuận tiên cho người lập trình - Chương trình viết ngôn ngữ bậc cao: có thể thực trên nhiều loại máy khác Ví dụ: - Xác định nghiệm phương trình ax + b = Input: a, b (2) + Xác định Input và Output bài toán? + Các bước để tìm Output? Output: x vô nghiệm, x = -b/a, x vô số nghiệm B1: Nhập a, b B2: Nếu a <> kết luận nghiệm x = -b/a B3: Nếu a = và b <> kết luận x vô nghiệm B4: Nếu a = và b = kết luận x vô số nghiệm Diễn giải: - Hệ thống các bước vừa thực để tìm - Thuật toán Output gọi là gì ? - Nếu trình bày thuật toán này cho người nước - Dùng cấu trúc ngôn ngữ họ để mô tả thuật toán ngoài hiểu em cần làm gì? - Thế để diễn đạt cho máy hiểu em dùng ngôn - Dùng ngôn ngữ lập trình ngữ nào? => Vậy: Việc dùng ngôn ngữ lập trình cụ thể để diễn đạt thuật toán sau cho máy hiểu ta gọi đó là lập trình - Yêu cầu học sinh ghi lại nội dung sách * Lập trình là việc sử dụng cấu trúc liệu và ghi lại lời văn mình với ý các lệnh ngôn ngữ lập trình cụ thể để không sai lệch mô tả liệu, biểu đạt các thao tác thuật toán Vấn đáp: - Kết hoạt động lập trình? - Một chương trình - Theo em ngôn ngữ lập trình là gì? - Là ngôn ngữ dùng để viết chương trình sau cho máy tính có thể hiểu và thực chương trình đó Giải thích: - Khẳng định tính đúng đắn các câu trả lời HS - Là ngôn ngữ dùng để viết chương trình sau cho chương trình đó có thể thực trên máy - Bổ sung thêm ngôn ngữ lập trình là phần mềm tính cho ứng dụng cụ thể dùng để diễn đạt thuật toán (cho hs hiểu – không bắt buộc học sinh phải ghi chép) Câu hỏi: - Bằng kiến thức đã học năm lớp 10 và hiểu biết mình, hãy cho biết các loại ngôn ngữ lập trình mà em biết? + Khuyến khích động não nhớ lại kiến thức cũ (không tham khảo sách) Thảo luận: (5 phút) - Trình bày đặc điểm loại ngôn ngữ lập trình Bổ sung - mở rộng - Ngôn ngữ máy + Mã hoá ký hiệu – + CT nạp vào nhớ và thực - Hợp ngữ + CT nạp vào ghi và thực Ngôn ngữ lập trình: - Ngôn ngữ máy - Hợp ngữ - Ngôn ngữ bậc cao - Tham khảo sách giáo khoa thảo luận đưa kết + Ngôn ngữ máy là ngôn ngữ gắn liền với máy tính và là ngôn ngữ mà máy có thể hiểu và thực + Hợp ngữ: phát triển cao ngôn ngữ máy, ít phụ thuộc vào máy tính đó số lệnh thay từ viết tắc các thao tác (3) - Ngôn ngữ bậc cao + Có thể viết độc lập trên máy nào tương ứng, đảm bảo khai thác tính máy + Ngôn ngữ bậc cao: Độc lập với máy tính, gần với ngôn ngữ tự nhiên, chương trình viết ngôn ngữ này dễ đọc, hiểu, sửa chữa, nâng cấp và phát triển Câu hỏi: - Nhìn vào đặc điểm loại ngôn ngữ lập trình trên, theo em lập trình loại nào là thuận - Đó là lập trình ngôn ngữ bậc cao tiện cho đại đa số người lập trình? - Máy tính có thể hiểu ngôn ngữ máy – lập trình ngôn ngữ này không dễ Lập trình ngôn ngữ bậc cao thuận tiện, dễ dàng máy không hiểu? Vậy theo em, em có giải pháp nào vừa dễ dàng cho người lập trình mà vừa có thể cho máy tính hiểu và thực không? - Nhờ chương trình dùng để dịch các chương trình viết ngôn ngữ khác sang ngôn ngữ mà máy có thể hiểu và thực => Chương trình có chức thực * Học sinh tự ghi khái niệm điều đó gọi là Chương trình dịch HOẠT ĐỘNG 2: Tìm hiểu hai loại chương trình dịch là thông dịch và biên (phiên) dịch a/ Mục tiêu: - Học sinh biết ý nghĩa và nhiệm vụ chương trình dịch - Phân biệt thông dịch và biên dịch b/ Nội dung: - Chương trình dịch là chương trình có chức chuyển đổi chương trình viết ngôn ngữ bậc cao thành chương trình mà máy tính có thể thực + Đầu vào chương trình dịch là chương trình viết ngôn ngữ bậc cao + Đầu chương trình dịch là chương trình viết ngôn ngữ máy - Thông dịch: dịch lần lược từ câu lệnh ngôn ngữ máy thực câu lệnh vừa dịch thông báo lỗi không dịch Không có chương trình đích để lưu trữ - Biên dịch : duyệt, kiểm tra, phát lỗi, chương trình nguồn không có lỗi thì dịch toàn chương trình thành chương trình có thể thực trên máy Chương trình đích có thể lưu và thực nhiều lần không cần dịch lại Ví dụ: - Trong quá trình trao đổi đàm thoại với người nước ngoài, bị hạn chế vốn ngoại ngữ, chúng ta hay nhờ đến ai, có thể giúp chúng ta - Thông dịch viên tiến hành quá trình đàm thoại này? + Chức năng, vai trò và cách thực - Thảo luận và trình bày người thông dịch? - Khi ta muốn soạn hợp đồng kinh tế với đối tác nước ngoài trường hợp đó ta cần - Biên dịch viên giúp đỡ (4) + Chức năng, vai trò, cách làm việc Biên dịch viên? Yêu cầu: - Học sinh tham khảo sách và trình bày đặc điểm chính thông dịch và biên dịch chương trình dịch? Trình bày: - Tóm lượt nội dung chính lên bảng - Thảo luận và trình bày - Học sinh trình bày - Tự ghi chép nội dung sách giáo khoa theo ý đã tóm lượt HOẠT ĐỘNG Củng cố nội dung kiến thức vừa học a/ Nội dung: - Khái niệm lập trình và ngôn ngữ lập trình - Phân loại ngôn ngữ lập trình - Khái niệm chương trình dịch - Chức biên dịch và thông dịch b/ Câu hỏi thảo luận mở rộng vấn đề - Mỗi loại ngôn ngữ lập trình phù hợp với - Chuyên gia ngôn ngữ máy – hợp ngữ người có trình độ nào? - Lập trình viên ngôn ngữ bậc cao - Số lượng ngôn ngữ bậc cao là vô cùng lớn, và - Tại người ta lại tích hợp chương trình dịch thường xuyên nâng cấp, đáp ứng yêu cầu các ngôn ngữ lập trình bậc cao luôn? Tại thực tế, chương trình dịch không thể không thiết kế chương trình dịch chung bao quát hết, trường hợp có thể xảy thì thật không cần thiết sử dụng ngôn cho tất các ngôn ngữ lập trình bậc cao? ngữ bậc cao mà phải cài đặt chương trình dịch khổng lồ (dung lương và tốc độ máy … ) IV DĂN DÒ: - Làm bài tập sách bài học và sách bài tập đầy đủ - Chuẩn bị bài V RÚT KINH NGHIỆM: (5) TIẾT CT: 02 Bài 2: CÁC THÀNH PHẦN CỦA NGÔN NGỮ LẬP TRÌNH I MỤC TIÊU: a/ Về kiến thức – kỹ - Biết ngôn ngữ lập trình có thành phần bản: Bảng chữ cái, cú pháp, ngữ nghĩa - Biết số khái niệm: tên, tên chuẩn, tên dành riêng, - biến và chú thích - Nhớ các qui định tên, hằng, biến - Biết thực việc đặt tên đúng và nhận biết tên sai c/ Thái độ: - Tạo thái độ ham thích tự tìm hiểu II PHƯƠNG PHÁP VÀ PHƯƠNG TIỆN DẠY – HỌC a/ Phương pháp: Đặt vấn đề – dẫn dắt – thảo luận – giúp các em liên tưởng từ thực tế để tìm nội dung chính bài b/ Phương tiện: - Giáo viên: Tranh chứa bảng chữ cái, bảng viết, sách, tài liệu minh hoạ - Học sinh: sách giáo khoa III HOẠT ĐỘNG DẠY – HỌC - Ổn định lớp - Kiểm tra bài cũ: Thế nào là lập trình, nào là ngôn ngữ lập trình? Chương trình dịch là chương trình nào? Em hãy phân biệt nào là thông dịch, nào biên dịch - Giới thiệu chương trình - Dẫn dắt vào nội dung bài học Hoạt động Thầy Hoạt động trò HOẠT ĐỘNG 1: Tìm hiểu các thành phần ngôn ngữ lập trình a/ Mục tiêu - Giúp học sinh nhận biết ngôn ngữ lập trình các loại ngôn ngữ khác có thành phần là: bảng chữ cái, cú pháp và ngữ nghĩa - Giúp học sinh nắm và thuộc bài lớp b/ Nội dung: 1.Các thành phần ngôn ngữ lập trình - Bảng chữ cái: là tập các ký tự dùng để viết chương trình - Cú pháp: là tập các qui tắc để viết chương trình - Ngữ nghĩa: xác định ý nghĩa thao tác cần phải thực tổ hợp ký tự ngữ cảnh Đặt vấn đề: Suy nghỉ - trả lời - Trong ngôn ngữ tiếng Việt ngày sử dụng - Các ký tự, số, dấu em hãy cho biết có thành phần - Cách lắp ghép các ký tự thành từ, các từ thành (6) nào để cấu thành nó câu - Nghĩa các từ, các câu Diễn giải: - Trong ngôn ngữ lập trình nó có Chú ý lắng nghe và liên tưởng ngôn ngữ tiếng Việt và ghi lại nội dung các thành phần đó: - Bảng chữ cái: Là tập các ký tự dùng để viết + Tập các ký tự chương trình - Cú pháp: Là tập các qui tắc dùng để viết + Các qui tắc chương trình + Ngữ nghĩa tổ hợp các ký tự - Ngữ nghĩa: Là ý nghĩa thao tác tổ hợp các ký tự chương trình theo ngữ cảnh riêng nó Thảo luận nhóm: Dựa vào sách giáo khoa Thảo luận nhóm – bổ sung cho - Em hãy cho biết bảng chữ cái gồm các ký tự - Các ký tự chữ: a z, A Z nào? - Các ký tự số : - Các ký tự dấu: + - * / = , _ : ; ‘ ^ - Các ký tự ngoặc: ( ) { } [ ] < > - Các ký tự đặt biệt: # $ & @ - Có ký tự nào mà bảng chữ cái mà ngôn Có ký tự ngôn ngữ tiếng Anh không có ngữ tiếng Anh em thấy có, ngôn đó là ký tự ^ và ký tự NNLT không có ngữ lập trình không thấy, và ngược lại là ký tự ! và ? - Em hãy cho vài ví dụ minh hoạ cú Khi viết chương trình thì phải có Begin sau đó pháp ngôn ngữ lập trình tới end - Ngữ nghĩa lệnh hay câu lệnh mà Dấu cộng (+) đôi lúc mang nghĩa là cộng giá em biết? trị số, đôi lúc mang giá trị ghép chuỗi HOẠT ĐỘNG 2: Tìm hiểu khái niệm tên ngôn ngữ lập trình a/ Mục tiêu: - Học sinh biết phân biệt số loại tên: tên dành riêng, tên chuẩn và tên người LT đặt b/ Nội dung: Một số khái niệm a/ Tên - Mọi đối tượng chương trình phải đặt tên theo qui tắc định (tuỳ theo ngôn ngữ lập trình và chương trình dịch kèm) - Tên dành riêng: Là tên ngôn ngữ lập trình qui định mang ý nghĩa xác định (còn gọi là từ khoá) - Tên chuẩn: Là tên ngôn ngữ lập trình qui định mang ý nghĩa nào đó mà ý (7) nghĩa nào đó, người lập trình có thể định nghĩa lại để dùng với ý nghĩa khác - Tên người lập trình đặt: Là tên dùng theo ý nghĩa chủ quan người lập trình + Phải khai báo trước sử dụng + Không trùng với tên dành riêng + Tên không có ký tự trắng xem vào + Tên không dùng các ký tự đặc biệt, dùng ký tự _ + Tên dùng ký tự chữ và ký tự số, ký tự số không đặt đầu + Tên không dài quá 127 ký tự Vấn đáp: - Mọi thành viên lớp ta có đặt tên không? Vậy việc đặt tên cho thành viên phụ thuộc vào ai, vào điều gì? Vậy theo em các đối tượng chương trình thì sao? (mời học sinh trả lời) Thảo luận – trả lời và ghi chép: - Đều đặt tên Phụ thuộc vào ba mẹ và phụ thuộc vào kỳ vọng ba mẹ cái tên thành viên - Vậy tên dành riêng là tên nào? - Là tên độc quyền, mang ý nghĩa và không có tên nào trùng với nó - Cũng phải đặt tên theo ngôn ngữ lập trình => Mọi đối tượng chương trình phải Giải thích - Khẳng định câu trả lời các em là đúng và đặt tên theo qui tắc định (tuỳ theo ngôn ngữ lập trình và chương trình bổ sung thêm ý dịch kèm) Câu hỏi gợi ý: - Khi cô nói cô tên là Xuân, Xuân là tên - Là sai, vì có vô số người có cùng tên là Xuân dành riêng cho cô, theo các em đúng hay sai? Vì sao? Vậy tên dành riêng ngôn ngữ lập trình => Là tên ngôn ngữ lập trình qui định thì sao? mang ý nghĩa xác định (hay còn gọi là từ khoá) Ví dụ ngôn ngữ lập trình Pascal: Program, Uses, Const, Var, Begin, End - Vậy Xuân không là tên dành riêng thì - Cũng không, vì Xuân là tên người thì Xuân có phải là tên chuẩn hay không? người tên Xuân có vô số hình dạng khác nhau, tính cách khác Nên Xuân không phải là tên chuẩn - Thế mùa xuân có phải là tên chuẩn không? - Phải Vậy tên chuẩn ngôn ngữ lập trình là? => Tên chuẩn: Là tên ngôn ngữ lập trình qui định mang ý nghĩa nào đó, người lập trình có thể định nghĩa lại để dùng với ý nghĩa khác Ví dụ ngôn ngữ lập trình Pascal: Real, Integer, Char, String - Vậy Xuân là tên nào - Là tên đặt theo ý nghĩa chủ quan Vậy tên đặt theo ý nghĩa chủ quan (8) người lập trình viết chương trình gọi => Tên người lập trình đặt là tên gì? QUI TẮC ĐẠT TÊN Tên không hợp lệ Tên hợp lệ Tên không dùng ký tự trắng xen GIAI PT, AB C GIAI_PT , ABC Tên không dùng ký tự số đứng đầu 2HE_PT HE_2_PT, HE_PT2 Tên không dùng ký tự đặt biệt A&B, A-B, A<>B AB, _AB, A_B, AB_ Trình bày: - Tự ghi chép nội dung sách giáo khoa - Tóm lượt nội dung chính lên bảng theo ý đã tóm lượt HOẠT ĐỘNG Tìm hiểu – biến và chú thích a/ Mục tiêu: - Học sinh biết khái niệm và phân biệt: hằng, biến và chú thích b/ Nội dung: Một số khái niệm b/ Hằng – biến - Hằng: là đại lượng mang giá trị không đổi quá trình thực chương trình Hằng số học: là các số nguyên và các số thực Hằng logic: là giá trị True/False (1/0, y/n) Hằng xâu: là chuổi các ký tự bảng mã ASCII, đặt cặp dấu ‘’ - Biến: là đại lượng mang giá trị mà giá trị này phép thay đổi quá trình thực ct a/ Chú thích - Chú thích: Để giải thích cho lệnh hay câu lệnh chương trình { nội dung chú thích dòng} (* nội dung chú thích nhiều dòng *) Câu hỏi dẫn nhập - Em hãy cho số ví dụ các số mà Độc lập suy nghĩ và trả lời - Hằng số = 3.14 em đã học qua các môn toán, lý - Hằng số g = 9.8 - Vậy các này có thay đổi giá trị bắt - Không đầu và kết thúc bài toán không? => Hằng: là đại lượng mang giá trị không đổi Vậy ngôn ngữ lập trình là gì? quá trình thực chương trình Diễn giải: Học sinh theo dõi: - Trong ngôn ngữ lập trình chia - Đánh dấu lại nội dung trình bày sách thành dạng chính Hằng số học: là các số nguyên hay các số thực Hằng logic: là giá trị True/False (1/0, y/n) Hằng xâu: là chuổi các ký tự bảng mã ASCII, đặt cặp dấu ‘’ (9) Dẫn nhập ví dụ thực tế: - Một vật thể lúc xuất, nơi này, lúc nơi khác, lúc hình dạng này, lúc hình dạng khác, ta thường gọi Vật thể đó có khả biến hoá vô lường Câu hỏi phát vấn: - Vậy theo em biến là gì? Độc lập suy nghĩ - là việc vật thể có thể thay đổi trạng thái Vậy biến NNLT là gì? => Biến: là đại lượng mang giá trị mà giá trị này phép thay đổi quá trình thực chương trình Câu hỏi dẫn nhập - Giải bài toán nào em dùng đến Độc lập suy nghĩ: - Khi muốn giải thích rõ nội dung nào đó mà ta dòng chú thích sợ người khác không hiểu hay nhiều nhầm Diễn giải: Lắng nghe và đóng góp - Chú thích ngôn ngữ lập trình - Chú thích: Để giải thích cho lệnh hay câu lệnh chương trình { nội dung chú thích dòng} (*nội dung chú thích nhiều dòng*) Trình bày: - Tóm lượt lại nội dung vừa làm việc với - Xem sách và hệ thống lại nội dung vừa học sinh cách đặt lại các câu hỏi và yêu học, trình bày lại theo các câu hỏi giáo viên cầu học sinh trả lời lại - Tóm lượt lại nội dung và ghi bảng - Tự ghi chép lại nội dung chính bài sách và nội dung mở rộng trên bảng theo các ý tóm lượt giáo viên HOẠT ĐỘNG Củng cố nội dung kiến thức vừa học a/ Nội dung: - Thành phần ngôn ngữ lập trình: Bảng chữ cái, cú pháp, ngữ nghĩa - Khái niệm tên, tên dành riêng, tên chuẩn, tên người lập trình đặt - Khái niệm hằng, biến, chú thích - Dấu , số thực thay dấu NNLT - Ký tự ‘ NNLT dược thay ‘’ Nên ‘’’’ là xâu nháy đơn b/ Câu hỏi thảo luận mở rộng vấn đề - Điểm khác tên dành riêng và tên Học sinh thảo luận để củng cố bài chuẩn? - 4+6 có phải là hay không? - Phải 4, là hằng, phép toán 4+6 là - ‘true’ có phải là hay không? Nếu phải - Phải, là xâu, vì true là logic, ‘true’ là là gì? Vì sao? xâu IV DĂN DÒ: (10) - Làm bài tập sách bài học và sách bài tập đầy đủ - Chuẩn bị bài V RÚT KINH NGHIỆM: (11) TIẾT CT: 03 BÀI TẬP I MỤC TIÊU: a/ Về kiến thức – kỹ - Hệ thống lại hệ thống kiến thức chương c/ Thái độ: - Phát huy thái độ tích cực học tập học sinh II PHƯƠNG PHÁP VÀ PHƯƠNG TIỆN DẠY – HỌC a/ Phương pháp: Đặt vấn đề – dẫn dắt – thảo luận – giúp các em liên tưởng từ thực tế để tìm nội dung chính bài b/ Phương tiện: - Giáo viên: Giao học sinh thực bài tập nhà theo SGK, bảng, phấn - Học sinh: sách giáo khoa III HOẠT ĐỘNG DẠY – HỌC - Ổn định lớp - Dẫn dắt vào nội dung bài tập Hoạt động Thầy Hoạt động trò HOẠT ĐỘNG 1: Cho học sinh chủ động lên giải bài tập SGK a/ Mục tiêu - Củng cố kiến thức b/ Nội dung: SGK trang 13 Đặt vấn đề: Suy nghỉ - trả lời - Câu 1: Tại người ta phải xây dựng các - Dễ hiểu ngôn ngữ lập trình bậc cao? - Dể chỉnh sửa - Dể nâng cấp Phù hợp với nhu cầu nhiều người dùng Không phụ thuộc vào loại máy Thuận tiện cho việc mô tả thuật toán Tổ chức liệu đa dạng Làm việc với các kiểu liệu khác - Câu 2: Viết tên đúng theo qui cách Thực trên bảng Pascal HOẠT ĐỘNG 2: Thực câu hỏi trắc nghiệm a/ Mục tiêu - Củng cố kiến thức (12) b/ Nội dung: Phát biểu nào đây là đúng ? A Để biên soạn chương trình trên ngôn ngữ bậc cao có thể sử dụng nhiều hệ soạn thảo văn khác B Output chương trình là chương trình trên ngôn ngữ máy C Chương trình viết hợp ngữ không phải là Input hay Output chương trình dịch nào D Chương trình dịch là thành phần chính ngôn ngữ lập trình bậc cao Đáp án: A Phát biểu nào đây là đúng ? A Chương trình là dãy các lệnh tổ chức theo các quy tắc xác định ngôn ngữ lập trình cụ thể B Trong chế độ thông dịch câu lệnh chương trình nguồn dịch thành câu lệnh chương trình đích C Mọi bài toán có chương trình để giải trên máy tính D Nếu chương trình nguồn có lỗi cú pháp thì chương trình đích có lỗi cú pháp Đáp án: A Đâu là biểu diễn biểu diễn đây ? A - begin B - '65c' C - 5.8A D - integer Đáp án: B Hãy chọn biểu diễn tên đúng biểu diễn đây ? A - '********' B - (2)C - 3GHI D - PpPpPp Đáp án: D Trong biểu diễn đây, biểu diễn nào là từ khoá Pascal ? A - Integer B - END C - Real D - Sqrt Phát biểu nào đây là đúng ? A Khi cần thay đổi ý nghĩa từ khoá nào đó người lập trình cần khai báo theo ý nghĩa B Tên người lập trình tự đặt trùng với Đáp án: B Đáp án: D (13) từ khoá C Trong chương trình tên gọi là đối tượng không thay đổi nên có thể xem là D Mọi đối tượng có giá trị thay đổi chương trình gọi là biến Trong chế độ biên dịch, chương trình đã Trả lời: dịch thông suốt, hệ thống không báo lỗi Có thể Không thể khẳng định chương khẳng định ta đã có chương trình đúng trình đúng vì chương trình có thể còn hay chưa ? Tại ? chứa lỗi ngữ nghĩa Trong chế độ thông dịch, giả sử hai phần ba số Trả lời: câu lệnh chương trình đã thực Không thể khẳng định Cú pháp Có thể khẳng định chương trình các câu lệnh chưa thực chưa không còn chứa lỗi cú pháp hay không ? Tại kiểm tra ? Tại phải kiểm tra tính đúng đắn chương Trả lời: trình nhiều liệu thử nghiệm khác Chương trình có thể có nhiều ? nhánh và có nhiều dạng lỗi ngữ nghĩa khác Trả lời: 10 Trong chương trình còn có lỗi cú pháp, thông Chương trình biên dịch phát thường chương trình biên dịch hay chương trình lỗi nhanh vì chương trình biên thông dịch phát lỗi nhanh ? Tại ? dịch kiểm tra cú pháp trước dịch Chương trình thông dịch vừa dịch vừa thực câu lệnh, lỗi cú pháp phát thực tới câu lệnh đó IV DĂN DÒ: - Chuẩn bị bài V RÚT KINH NGHIỆM: (14) Chương 2: CHƯƠNG TRÌNH ĐƠN GIẢN TIẾT CT: 04 Bài 3: CẤU TRÚC CHƯƠNG TRÌNH I MỤC TIÊU: a/ Về kiến thức: - Hiểu chương trình và mô tả thuật toán ngôn ngữ lập trình - Biết cấu trúc chương trình đơn giản b/ Về kỹ năng: - Nhận biết các thành phần chương trình đơn giản c/ Thái độ: - Ham muốn giải các bài toán đơn giản lập trình II PHƯƠNG PHÁP VÀ PHƯƠNG TIỆN DẠY – HỌC a/ Phương pháp: Thuyết trình – vấn đáp – lập đề án b/ Phương tiện: - Giáo viên: bảng viết, sách, tài liệu minh hoa - Học sinh: sách giáo khoa III HOẠT ĐỘNG DẠY – HỌC - Ổn định lớp - Kiểm tra bài cũ: Hãy trình bày các thành phần ngôn ngữ lập trình? Điểm khác tên dành riêng và tên chuẩn? Trình bày các qui tắc đặt tên mà người lập trình phải tuân thủ? - Giới thiệu chương trình Hoạt động Thầy Hoạt động trò HOẠT ĐỘNG 1: Tìm hiểu cấu trúc chương trình a/ Mục tiêu - Giúp học sinh biết chương trình có phần b/ Nội dung Câu trúc chung - Cấu trúc chương trình có hai phần: Phần khai báo, phần thân [<Phần khai báo>] <Phần thân chương trình> - Trong số trường hợp chương trình phần khai báo lượt bỏ - Phần thân bắt buộc phải có chương trình (15) Phát vấn: - Hãy cho biết bài tập làm văn thường có phần? Có thể đảo lộn các phần cho không? Tại lại phải chia vậy? Suy nghĩ phát biểu: - Thường có ba phần: mở bài, thân bài, kết luận - Các phần phải có thứ tự - Mạch văn hợp lý, dễ đọc, dễ viết và diễn tả nội dung bài văn, mạch lạc, rõ ràng - Viết thuật toán để giải bài toán em - Trình bày hai phần: thường trình bày nào + Xác định Input/Output bài toán + Viết thuật toán để giải bài toán Diễn giải: Lắng nghe và suy luận - Lập trình là việc dùng cấu trúc, liệu ngôn ngữ lập trình cụ thể để mô tả, biểu diễn thuật toán sau cho máy tính hiểu - Kết lập trình ta chương trình Phát vấn Nghiên cứu sách giáo khoa em hãy cho biết: Nghiên cứu sách – phát biểu - Một chương trình có cấu trúc phần? - Một chương trình gồm có phần [<Phần khai báo>] <Phần thân chương trình> Diễn giải: Lắng nghe: - Với nội dung đặt cặp ngoặc [] nghĩa là - Trong số trường hợp chương trình phần nội dung đó vài chương trình khai báo lượt bỏ phép bỏ qua => chương trình đúng - Phần thân bắt buộc phải có chương - Với nội dung đặt cặp ngoặc <> nghĩa là trình nội dung đó bắt buộc phải có chương trình Trình bày: Ghi chép: - Giáo viên tóm lượt nội dung cấu trúc chương trình , [], <> và ghi tóm tắt lên bảng - Dựa theo nội dung tóm lượt học sinh tự ghi bài HOẠT ĐỘNG 2: Tìm hiểu các thành phần chương trình a/ Mục tiêu - Giúp học sinh biết nội dung hai phần chương trình b/ Nội dung Các thành phần chương trình a./ Phần khai báo: Khai báo tên chương trình Khai báo thư viện program <tên chương trình> ; uses <Tên Thư Viện> ; (16) Khai báo const <tên hằng> = <giá trị> ; Khai báo biến var <tên biến> : <kiểu liệu> ; (và khai báo chương trình con) b./ Phần thân: Gồm dãy các lệnh đặt cặp dấu hiệu mở đầu và kết thúc + Phần mở đầu Các câu lệnh; + Phần kết thúc Phát vấn Nghiên cứu sách giáo khoa em hãy cho biết: - Trong phần khai báo có khai báo nào? Gợi ý vấn đề: - Phần khai báo: khai báo tên chương trình, khai báo thư viện, khai báo hằng, khai báo biến (và khai báo chương trình con) Trao đổi thảo luận và phát biểu - Hôm trước chúng ta đã học qua số từ - Từ Program: khai báo tên chương trình khoá ngôn ngữ Pascal Hãy chọn từ khoá - Từ Uses: khai báo thư viện tương ứng để khai báo các đối tượng tương ứng - Từ Const: khai báo mà em vừa nêu? - Từ Var: khai báo biến Thuyết giảng: Chú ý lắng nghe – ghi nhớ - Mỗi đối tượng có cách khai báo riêng - (Cú pháp phải tuân thủ tuyệt đối lập trình) (hay còn gọi là) Chính vì ta cần khai báo cách chính xác, không chương trình không thể thực Trình bày các khai báo NN Pascal Ghi chép và lưu ý các nội dung: - Khai báo tên chương trình - Từ từ khoá program đến tên chương trình không có ký tự nào ngoài ký tự trắng Kết thúc dấu ; + Ví dụ: program Vi_du1; + Tên chương trình là tên người lập trình đặt program <tên chương trình> ; ( cặp ngoặc <> viết chương trình không dùng tới nó) * Hay: program ten_ chuong_ trinh ; - Khai Báo Thư Viện: Thư Viện Cung Cấp Một Số Chương - Từ từ khoá uses đến tên thư viện không có ký Trình Thông Dụng Để Dùng Sẳn, Vì Thế Muốn tự nào ngoài ký tự trắng Kết thúc dấu ; Sử Dụng Chúng Thì Phải Khai Báo Thư Viện + Ví dụ: uses Crt; Chứa Chúng uses <Tên Thư Viện> ; * Hay uses ten_thu_vien ; - Khai báo hằng: const <tên hằng> = <giá trị> ; * Hay - Từ khoá const và dấu = là bắt buộc + Ví dụ: const Pi = 3.14 ; (17) const ten_hang = gia_tri ; - (Tương tự cách khai báo thư viện) - Khai báo biến: var <tên biến> : <kiểu liệu> ; - Khác với khai báo là dấu = thì khai báo biến là dấu : * Hay - Từ khoá var và dấu : là bắt buộc + Ví dụ: var songuyenam: interger; + Kiểu liệu là các tên chuẩn - Phần thân: Gồm dãy các lệnh đặt cặp dấu hiệu mở đầu và kết thúc + Phần mở đầu Các câu lệnh; + Phần kết thúc var ten_bien : kieu_du_lieu ; Phát vấn Nghiên cứu sách giáo khoa em hãy cho biết: - Phần thân chương trình mang nội dung gì? Trình bày khai báo phần thân NN Pascal: BEGIN {<dãy các lệnh>} END Từ khoá bắt đầu Các lệnh, câu lệnh Từ khoá kết thúc HOẠT ĐỘNG 3: chương trình pascal đơn giản a/ Mục tiêu - Giúp học sinh nhận biết chương trình và các thành phần trên chương trình cụ thể b/ Nội dung program vi_du1 ; begin writeln (‘chao ban den voi Pascal’); end - Xác định các thành phần chương trình? - Phần khai báo, phần thân + Khai báo tên + Thân chương trình * Thân có dòng lệnh - Chương trình không có phần khai báo nào? - Không có phần khai báo thư viện, hằng, biến - Kết thúc chương trình có gì đặc biệt ? - Sau từ khoá END luôn có dấu HOẠT ĐỘNG Củng cố nội dung kiến thức vừa học a/ Nội dung: - Cấu trúc chương trình: Phần khai báo, phần thân (Phần khai báo có thể có không) - Phần khai báo: khai báo tên chương trình, khai báo thư viện, khai báo hằng, khai báo biến (và khai báo chương trình con) - Phần thân: Gồm dãy các lệnh đặt cặp dấu hiệu mở đầu và kết thúc b/ Câu hỏi củng cố Học sinh thảo luận để củng cố bài - Điểm giống và khác khai báo - program Vi_du ; các đối tượng cuả chương trình? - uses crt ; - Tại phải khai báo biến - const max = 100 ; - var x : integer ; (18) IV DĂN DÒ: - Học bài, làm bài tập sách bài học và sách bài tập đầy đủ - Chuẩn bị bài V RÚT KINH NGHIỆM: (19) TIẾT CT: 05 Bài - 5: MỘT SỐ KIỂU DỮ LIỆU CHUẨN – KHAI BÁO BIẾN I MỤC TIÊU: a/ Về kiến thức: - Biết số kiểu liệu chuẩn: nguyên, thực, ký tự, chuỗi, logic … - Hiểu cách khai báo biến b/ Về kỹ năng: - Xác định kiểu cần khai báo các liệu đơn giản - Biết khai báo biến đúng c/ Thái độ: - Có ý thức cố gắng học tập vượt qua lúng túng, khó khăn giai đoạn bắt đầu lập trình II PHƯƠNG PHÁP VÀ PHƯƠNG TIỆN DẠY – HỌC a/ Phương pháp: Thuyết trình – vấn đáp – lập đề án b/ Phương tiện: - Giáo viên: bảng viết, sách, tài liệu minh hoạ, chương trình mẫu - Học sinh: sách giáo khoa III HOẠT ĐỘNG DẠY – HỌC - Ổn định lớp - Kiểm tra bài cũ: Hãy trình bày cấu trúc chương trình Có các khai báo nào mà em đã học, trình bày nội dung, cú pháp Trình bày chương trình Pascal đơn giản - Tiến hình hoạt động bài Hoạt động Thầy Hoạt động trò HOẠT ĐỘNG 1: Tìm hiểu số kiểu liệu chuẩn a/ Mục tiêu - Giúp học sinh biết số kiểu liệu chuẩn ứng với ngôn ngữ lập trình Pascal, giới hạn biểu diễn loại kiểu b/ Nội dung - Kiểu số nguyên: Byte, word, Integer, Shortint, Longint … + Byte: (1byte) 255 Word : (2byte) 216-1 + Integer: (2byte) -215 215-1 Logint : (4 byte) -232 232-1 - Kiểu số thực: Real, Single, Double, Extended + Real: (6byte) 10-38 1038 + Extended: (10byte) 10-4932 104932 - Kiểu ký tự: là các ký tự bảng mã ASCII gồm 256 ký tự, đánh số từ – 255 - Kiểu logic: tập gồm giá trị true/false Là kết phép so sánh (20) Đặt vấn đề: Suy nghĩ phát biểu: - Trong toán học, để tính toán ta dùng các tập - Số tự nhiên, hữu tỉ, thập phân … số nào? Diễn giải: Lắng nghe và suy luận - Tương tự vậy, ngôn ngữ Pascal có các tập giá trị, tập xác định dạng giá trị riêng biệt và có giới hạn định nhớ tương ứng để lưu trữ Phát vấn Nghiên cứu sách giáo khoa em hãy cho biết: Nghiên cứu sách – phát biểu - Có bao nhiêu kiểu liệu chuẩn ngôn - loại chính ngữ pascal? - Trình bày đặc điểm từ loại? Trình bày: Ghi chép: - Giáo viên tóm lượt nội dung chính lên bảng - Dựa theo nội dung tóm lượt học sinh tự ghi bài sách giáo khoa HOẠT ĐỘNG 2: Tìm hiểu cách khai báo biến a/ Mục tiêu - Giúp học sinh biết các biến dùng chương trình phải khai báo tên và kiểu liệu - Biết cấu trúc việc khai báo biến NN Pascal, khai báo biến lập trình b/ Nội dung Var <tên biến 1> : <kiểu liệu 1> ; <tên biến 2> : <kiểu liệu 2> ; <tên biến 3> : <kiểu liệu 3> ; … <tên biến n> : <kiểu liệu n> ; Nếu có nhiều biến có cùng kiểu liệu, thì các biến này khai báo cách dấu , Đặt vấn đề Để tạo sổ điểm môn tin học lớp bạn cần - Các biến cần khai báo: khai báo các biến nào? Và kiểu liệu tương + Ho_ten: tự (chuỗi) ứng là sao? + D_mieng, D_15, D_45_1, D_45_2, - Trong phần khai báo có khai báo nào? DT : số nguyên + DTB : Số thực (21) Gợi ý vấn đề: Trao đổi thảo luận và phát biểu - Dựa vào sách em hãy khai báo chúng? Var Ho_ten: Char ; M, 15, 451, 452, T : Integer ; TBM : Real; - Khai báo biến: var <tên biến> : <kiểu liệu> ; - Học sinh có thể thuộc cách khai báo từ ví dụ * Hay var ten_bien : kieu_du_lieu ; Phát vấn Nếu không khai báo biến mà ta sử dụng thì điều gì xảy ra? - Việc khai báo cần thực trước, vì lúc đó ta biết đó là đối tượng nào chương trình, và ta tương tác lên đúng đối tượng đó - Nếu không khai báo mà sử dụng chương trình không hiểu báo lỗi HOẠT ĐỘNG Củng cố nội dung kiến thức vừa học a/ Nội dung: - Phân biệt số kiểu liệu chuẩn - Biết cấu trúc việc khai báo biến NN Pascal, khai báo biến lập trình b/ Câu hỏi củng cố - Khi khai báo biến cần chú ý điều gì? - Tại phải khai báo biến Học sinh thảo luận để củng cố bài - Đặt tên dễ nhớ - Không đặt tên quá dài, quá ngắn - Giá trị biến để chọn kiểu liệu thích hợp IV DĂN DÒ: - Họ bài, làm bài tập sách bài học và sách bài tập đầy đủ - Chuẩn bị bài V RÚT KINH NGHIỆM: (22) TIẾT CT: 06 Bài 6: PHÉP TOÁN – BIỂU THỨC – CÂU LỆNH GÁN I MỤC TIÊU: a/ Về kiến thức: - Biết các khái niệm: phép toán, biểu thức số học, hàm số học, biểu thức quan hệ - Viết số biểu thức số học, logic đơn giản với các phép toán thông dụng - Hiểu lệnh gán và viết lệnh gán b/ Về kỹ năng: - Sử dụng các phép toán để xây dựng biểu thức - Biết cách chuyển đổi biểu thức toán học và biểu thức Pascal - Biết cách gán viết chương trình c/ Thái độ: - Có thái độ ham thích tìm hiểu hàm ngôn ngữ Pascal II PHƯƠNG PHÁP VÀ PHƯƠNG TIỆN DẠY – HỌC a/ Phương pháp: Thuyết trình – vấn đáp – ví dụ thực tiễn b/ Phương tiện: - Giáo viên: bảng viết, sách, tài liệu minh hoạ, bài tập mẫu - Học sinh: sách giáo khoa III HOẠT ĐỘNG DẠY – HỌC - Ổn định lớp - Kiểm tra bài cũ: Hãy phân biệt kiểu liệu kiểu nguyên và kiểu thực (cho ví dụ minh hoa kiểu nguyên và hai kiểu thực) Trình bày cách khai báo biến, và điều cần lưu ý khai báo nhiều biến trên nhiều dòng và khai báo nhiều biến có cùng kiểu liệu - Tiến hình hoạt động bài Hoạt động Thầy Hoạt động trò HOẠT ĐỘNG 1: Tìm hiểu số phép toán a/ Mục tiêu - Học sinh biết tên số 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 các kiểu liệu b/ Nội dung 1./ Phép toán - Các phép toán số học với số nguyên : +, -, + Byte: (1byte) 255 Word : (2byte) 216-1 + Integer: (2byte) -215 215-1 Logint : (4 byte) -232 232-1 - Kiểu số thực: Real, Single, Double, Extended + Real: (6byte) 10-38 1038 (23) + Extended: (10byte) 10-4932 104932 - Kiểu ký tự: là các ký tự bảng mã ASCII gồm 256 ký tự, đánh số từ – 255 - Kiểu logic: tập gồm giá trị true/false Là kết phép so sánh Đặt vấn đề: Suy nghĩ phát biểu: - Trong toán học, để tính toán ta dùng các tập - Số tự nhiên, hữu tỉ, thập phân … số nào? Diễn giải: Lắng nghe và suy luận - Tương tự vậy, ngôn ngữ Pascal có các tập giá trị, tập xác định dạng giá trị riêng biệt và có giới hạn định nhớ tương ứng để lưu trữ Phát vấn Nghiên cứu sách giáo khoa em hãy cho biết: Nghiên cứu sách – phát biểu - Có bao nhiêu kiểu liệu chuẩn ngôn - loại chính ngữ pascal? - Trình bày đặc điểm từ loại? Trình bày: Ghi chép: - Giáo viên tóm lượt nội dung chính lên bảng - Dựa theo nội dung tóm lượt học sinh tự ghi bài sách giáo khoa HOẠT ĐỘNG 2: Tìm hiểu biểu thứcsố họ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 đó b./ Nội dung: 2./ Biểu thức số học - Biểu thức số học là biểu thức nhận từ các số, biến số và hàm số liên kết với các phép toán số học - Thứ tự thực biểu thức số học: + Dựng ngoặc tròn để xác định trình tự ưu tiên biểu thức + Trong ngoặc trước, ngoài ngoặc sau + Từ trái sang phải theo thứ tự các phép toán: Nhân, chia, chia lấy nguyên, chia lấy dư thực trước và phép toán công, trừ thực sau + Không bỏ dấu (*) phép nhân Nêu vấn đề: - Trong 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 Suy nghĩ và trả lời - Gồm hai phần: Toán hạng và toán tử (24) - 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ì? 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 - 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 + x2 ((x+y)/(1 – (2 /z)))+(x*x/(2*z)) 1- 2z Z Nghiên cứu sách giáo khoa và từ việc - Thực ngoặc trước; Ngoài ngoặc xây dựng các biểu thức trên, hãy nêu thứ sau Nhân, chia , công, trừ tự thực các phép toán HOẠT ĐỘNG 3: Tìm hiểu hàm số học chuẩn lập trình a./ Mục tiêu: - Biết số hàm số học chuẩn lập trình b./ Nội dung: 3./ Hàm số học chuẩn - Hàm số học chuẩn thông dụng Hàm bình phương: SQR(X) Căn bậc hai: SQRT(X) Gái trị tuyệt đối: ABS(X) Sin(X) Cos(X) logarit tự nhiên lnx ln(x) Lũy thừa số e ex exp(x) Kiểu đối số I R I R I R I R I R I R I R Nêu vấn đề: -Trong toán học ta đã làm quen với số hàm số học, hãy kể tên số hàm đó? Kiểu hàm số Theo kiểu đối số R Theo kiểu đối số R R R R Suy nghĩ và trả lời Hàm tri tuyệt đối, hàm bậc hai, hàm sin, hàm cos Trong số ngôn ngữ lập trình ta có số hàm diễn đạt cách khác - Suy nghĩ, lên bảng trả lời (25) - Cho biểu thức:( -b + Căn())/2a hãy biểu diễn biểu thức trên sang biểu thức ngôn ngữ lập trình Nêu vấn đề : Khi hai biểu thức số học liên kết với phép toán quan hệ ta biểu thức mới, biểu thức đó gọi là biểu thức gì? - Hãy lấy ví dụ biểu thức quan hệ? - 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 biểu thức quan hệ? - Thứ tự thực biểu thức quan hệ? - Cho biết kết phép toán quan hệ thuộc kiểu liệu nào đã học? (-b+sqrt(b*b – 4*a*c))/(2*a) Suy nghĩ và trả lời - Gọi là biểu thức quan hệ - Ví dụ: 2*x<y - Cấu trúc chung: <BT1> <phép toán qh> <BT2> + Tính giá trị biểu thức + Thực phép toán quan hệ - Kiểu logic Nêu vấn đề: Các biểu thức quan hệ liên kết với phép toán Logic gọi là biểu thức Logic - Hãy cho số ví dụ biểu thức logic - 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 ngôn ngữ lập trình - Thứ tự thực biểu thức logic - Kết biểu thức logic có kiểu liệu gì? - Treo tranh có chứa bảng chân trị A và B, yêu cầu học sinh điền giá trị cho A and B; A or B; not A Chú ý theo dõi dẫn dắt giáo viên và suy nghĩ để trả lời - Ví dụ: (A>B) or ((X+1)<Y) và (5>2) and ((3+2)<7) - Biểu thức ngôn ngữ lập trình : (5<=x) and (x<=11) + Thực các biểu thức quan hệ + Thực phép toán logic - Kiểu logic - Học sinh suy nghĩ và trả lời cách điền vào bảng HOẠT ĐỘNG 3: Tìm hiểu biểu thức quan hệ a./ Mục tiêu: - Biết biểu thức quan hệ lập trình b./ Nội dung: 4./ Biểu thức quan hệ - Hai biểu thức có cùng kiểu liệu liên kết với phép toán quan hệ cho ta biểu thức quan hệ <biểu_thức_1> <phép_toán_quan_hệ> <biểu_thức_2> - Thứ tự thực hiên.: + Tính giá trị các biểu thức + Thực phép toán quan hệ - Các biểu thức quan hệ liên kết với phép toán logic ta biểu thức logic Biểu thức logic đơn giản là giá trị True Flase (26) Nêu vấn đề : - Khi hai biểu thức số học liên kết với phép toán quan hệ ta biểu thức mới, biểu thức đó gọi là biểu thức gì? - Hãy lấy ví dụ biểu thức quan hệ? - 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 biểu thức quan hệ? - Thứ tự thực biểu thức quan hệ? Suy nghĩ và trả lời - Gọi là biểu thức quan hệ - Ví dụ: 2*x<y - Cấu trúc chung: <BT1> <phép toán qh> <BT2> + Tính giá trị biểu thức + Thực phép toán quan hệ - Cho biết kết phép toán quan hệ thuộc kiểu liệu nào đã học? - Kiểu logic Nêu vấn đề: Các biểu thức quan hệ liên kết với phép toán Logic gọi là biểu thức Logic Suy nghĩ để trả lời - Hãy cho số ví dụ biểu thức logic - Trong 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 ngôn ngữ lập trình - Thứ tự thực biểu thức logic - Kết biểu thức logic có kiểu liệu gì? - Ví dụ: (A>B) or ((X+1)<Y) và (5>2) and ((3+2)<7) - Biểu thức ngôn ngữ lập trình : (5<=x) and (x<=11) + Thực các biểu thức quan hệ + Thực phép toán logic - Kiểu logic 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: - Lệnh gán dùng để tính giá trị biểu thức và chuyển giá trị đó vào biến - Cấu trúc: Tên biến : =biểu_thức; - Sự thực máy: (27) + Tính giá trị biểu_thức + Đặt giá trị vào tên_biến - Giới thiệu số ví dụ lệnh gán Pascal sau: x:=1+5; - Giải thích: Lấy cộng 5, đem kết đặt vào x Ta x=7 Hãy cho biết chức lệnh gán? Quan sát ví dụ và suy nghĩ để trả lời - 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 - 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 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 + 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 CỦNG 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 và bài tập nhà - Làm bài tập 5, 6, 7, 8, sách giáo khoa, trang 35 – 36; (28) - 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: (29) TIẾT CT: 07 Bài 7: CÁC THỦ TỤC VÀO RA ĐƠN GIẢN I MỤC TIÊU: a/ Về kiến thức: - Biết các lệnh vào đơn giản để nhập liệu từ bàn phím đưa liệu màn hình b/ Về kỹ năng: - Viết số lệnh vào/ra đơn giản c/ Thái độ: - Có thái độ ham thích tìm hiểu ngôn ngữ Pascal II PHƯƠNG PHÁP VÀ PHƯƠNG TIỆN DẠY – HỌC a/ Phương pháp: Thuyết trình – vấn đáp – ví dụ thực tiễn b/ Phương tiện: - Giáo viên: bảng viết, sách, tài liệu minh hoạ, bài tập mẫu - Học sinh: sách giáo khoa Phương pháp: Kết hợp phương pháp giảng dạy như: truyền thống, vấn đáp, có hình minh hoạ Phương tiện: - Sách giáo khoa và sách giáo viên lớp 11 - Sách tham khảo (nếu có) - Tranh chứa các biểu thức toán học, máy chiếu, máy vi tính, số chương trình sẵn III HOẠT ĐỘNG DẠY – HỌC - Ổn định lớp - Kiểm tra bài cũ: Trình bày số phép toán và hàm số học chuẩn Thực việc chuyển đổi số biểu thức từ toán học sang Pascal và ngược lại Giới thiệu bài - Tiến hình hoạt động bài Hoạt động Thầy Hoạt động trò HOẠT ĐỘNG 1: Tìm hiểu thủ tục nhập liệu vào từ bàn phím a/ Mục tiêu - Giúp HS thấy cần thiết thủ tục nhập DL - Biết cấu trúc chung thủ tục nhập DL b/ Nội dung 1./ Nhập liệu vào từ bàn phím - Dùng để đưa nhiều DL khác cho cùng chương trình xử lí Nhập: Read/Readln(<tên_biến_1> , , <tên_biến_n>) Đặt vấn đề: Khi giải bài toán, ta phải Chú ý lắng nghe dẫn dắt GV đưa DL vào để máy tính xử lí, việc đưa DL lệnh gán làm cho chương trình có (30) tác dụng với DL cố định Để chương trình giải nhiều bài toán hơn, ta sử dụng - Nghiên cứu SGK và suy nghĩ để trả lời thủ tục nhập DL Read(<tên_biến_1>, ,<tên_biến_n>); - Yêu cầu HS nghiên cứu SGK và cho biết cấu trúc chung thủ tục nhập DL ngôn ngữ Readln(<tên_biến_1>, ,<tên_biến_n>); Pascal: - Phải nhập giá trị cho biến: a, b - Nêu VD: Khi viết chương trình giải phương - Viết lệnh: Readln(a,b); trình ax + b = 0, ta phải nhập vào các đại lượng nào? Viết lệnh nhập? Chiếu chương trình Pascal đơn giản có lệnh Quan sát chương trình VD GV nhập cho biến - Những giá trị này phải gõ cách ít - Thực chương trình và thực nhập dấu cách kí tự xuống dòng DL - Lên bảng thực nhập theo yêu cầu - Hỏi: Khi nhập giá trị cho nhiều biến, ta thực GV nào? - Yêu cầu HS thực nhập DL 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 HS thấy cần thiết thủ tục đưa DL màn hình - Biết cấu trúc chung thủ tục đưa DL màn hình b/ Nội dung 2./ Đưa liệu màn hình - Dùng để đưa kết sau xử lí màn hình đẻ người sử dụng thấy - Xuất: Write/Writeln(<Tham_số_1>, ,<Tham_số_n>); Đặt vấn đề: Sau xử lí xong, kết tìm Chú ý lắng nghe dẫn dắt GV được lưu nhớ Để thấy kết trên màn hình ta sử dụng thủ tục Write(<tên_biến_1>, ,<tên_biến_n>); xuất DL - Yêu cầu HS nghiên cứu SGK và cho biết cấu Writeln(<tên_biến_1>, ,<tên_biến_n>); trúc chung thủ tục xuất DL ngôn ngữ lập trình Pascal: - Phải nhập giá trị cho biến: a, b - Nêu VD: 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ị - Viết lệnh: Writeln(-b/a); nghiệm –b/a, Ta phải viết lệnh nào? Viết chương trình Pascal đơn giản Program VD; Quan sát chương trình VD GV (31) Var x, y, z:integer; Begin Writeln(‘Nhập vào số: ’); 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 DL để HS thấy kết trên màn hình - Viết màn hình dòng chữ và đưa trỏ - Hỏi: Chức lệnh Writeln(); xuống dòng - Hỏi: Ý nghĩa lệnh Write( ); - Dành vị trí trên màn hình để viết số x, vị trí tiếp - Hỏi: Khi các tham số lệnh Write() thuộc theo để viết số y, vị trí để viết số z kiểu Char Real thì quy định vị trí - Khi các tham số có kiểu kí tự, việc quy định nào? vị trí giống kiểu nguyên - Cho VD cụ thể với biến c kiểu Char và r 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 - VD: Write(c:8); Write(r:8:3); IV DĂN DÒ: - Bằng thực hành trên máy: + Hãy so sánh giống và khác Write(); và Writeln(); + Hãy so sánh giống và khác Read(); và Readln(); + Tìm hiểu chức lệnh Readln; Writeln không tham số V RÚT KINH NGHIỆM: (32) TIẾT CT: 07 Bài 8: SOẠN THẢO – DỊCH – HIỆU CHỈNH CHƯƠNG TRÌNH I MỤC TIÊU: a/ Về kiến thức: - Biết các bước: Soạn thảo, dịch và thực và hiệu chỉnh chương trình - Biết số công cụ môi trường lập trình cụ thể - Biết sử dụng chương trình dịch để phát và sửa các lỗi đơn giản b/ Về kỹ năng: - Biết sử dụng chương trình dịch để phát và sửa các lỗi đơn giản c/ Thái độ: - Có thái độ ham thích thao tác với chương trình Pascal cụ thể II PHƯƠNG PHÁP VÀ PHƯƠNG TIỆN DẠY – HỌC a/ Phương pháp: Thuyết trình – vấn đáp – ví dụ thực tiễn b/ Phương tiện: - Giáo viên: bảng viết, sách, tài liệu minh hoạ, bài tập mẫu - Học sinh: sách giáo khoa Phương pháp: Kết hợp phương pháp giảng dạy như: truyền thống, vấn đáp, có hình minh hoạ Phương tiện: - Sách giáo khoa và sách giáo viên lớp 11 - Sách tham khảo (nếu có) - Tranh chứa các biểu thức toán học, máy chiếu, máy vi tính, số chương trình sẵn III HOẠT ĐỘNG DẠY – HỌC - Ổn định lớp - Kiểm tra bài cũ: Trình bày câu lệnh nhập liệu vào từ bàn phím? Trình bày câu lệnh xuất liệu màn hình? Trình bày ý nghĩa lệnh readln và writeln không có tham số kèm? Giới thiệu bài - Tiến hình hoạt động bài Hoạt động Thầy Hoạt động trò HOẠT ĐỘNG 1: Làm quen với Turbo Pascal a/ Mục tiêu - Biết khởi động môi trường soạn thảo, dịch, thực và hiệu chỉnh chương trình ngôn ngữ lập trình Pascal b/ Nội dung - Khởi động Pascal : nháy đúp vào Borland Pascal Exe - Soạn thảo: Gõ đúng chương trình - Lưu chương trình : F2 - Dịch: Alt_F9 - Đóng chương trình : Alt_F3 (33) Đặt vấn đề : Để sử dụng Turbo Pascal, Tham khảo SGK và trả lời trên máy phải có các file chương trình cần thiết BorLand Pascal.exe Tham khảo SGk và cho biết tên các file chương Turbo Pascal.exe trình đó Trình diễn cách khởi động Turbo Pascal thông HS quan sát và ghi nhớ qua máy chiếu - 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 - Soạn chương trình làm VD: Program VD; Var x: Integer; Begin Write(Nhap so nguyen duong); Readln(x); Y:=sqrt(x); Write(y); End - Gõ chương trình Pascal hoàn chỉnh Program VD; Var x: Integer; Begin Write(Nhap so nguyen duong); Readln(x); Y:=sqrt(x); Write(y); End - Lưu chương trình - Lưu: F2 - Dịch lỗi - Đóng chương trình - Dịch lỗi: ALT_F9 Lỗi - Đóng: Alt_F3 HOẠT ĐỘNG 2: Làm quen với Turbo Pascal và thao tác với chương trình a/ Mục tiêu - Biết mở chương trình đã có, sửa lỗi, chạy chương trình, đóng chương trình và thoát khoải Pascal b/ Nội dung - Mở chương trình đã có : F3 - Vừa dịch chương trình vừa sửa lỗi: Alt_F9 và nhận biết lỗi và sửa - Chạy chương trình: Ctrl_F9 - Thoát khỏi Pascal: Alt_X Đặt vấn đề : Mở chương trình vừa đóng lại Học sinh tham khảo sách trả lời - Sửa chương trình vừa mở - Mở: F3 - Kết hợp với Alt_F9 để dịch và phát lỗi Program VD; Var x: Integer; Begin Write(‘Nhap so nguyen duong’); Readln(x); (34) - Hỏi: Khi nào có thể thực chương trình? - Chạy chương trình Y:=sqrt(x); Write(y); End - Khi Alt_F9 : thấy Compiler Successful - Chạy chương trình: Ctrl_F9 - Alt_F3 Alt_X - Đóng chương trình và thoát khỏi Pascal IV DĂN DÒ: Những nội dung đã học - Nhắc lại kiến thức trọng tâm Câu hỏi và bài tập - Viết chương trình nhập vào số và tính cộng, trừ, nhân, chia số đó - Viết chương trình nhập độ dài bán kính và tính chu vi diện tích hình tròn tương ứng - Làm các bài tập 9, 10 SGK-T36 - Chuẩn bị bài thực hành số SGK-T33 V RÚT KINH NGHIỆM: (35) TIẾT CT: 08 BÀI TẬP I MỤC TIÊU a/ Về kiến thức: - Biết cách biểu diễn từ toán học vào Pascal - Biết cách thể bài toán cụ thể chương trình Pascal b/ Về kỹ năng: - Bước đầu biết phân tích và hoàn thành số biểu thức - chương trình đơn giản trên Turbo Pascal c/ Thái độ: - Xác định thái độ nghiêm túc học tập làm quen với nhiều quy định nghiêm ngặt lập trình - Có ý thức cố gắng học tập vượt qua khó khăn giai đoạn bắt đầu học lập trình - Tạo ham muốn giải các bài tập lập trình, trước mắt thấy ích lợi việc lập trình việc phục vụ tính toán và giải số bài toán đã nêu nội dung chương II II PHƯƠNG PHÁP VÀ PHƯƠNG TIỆN DẠY – HỌC a/ Phương pháp: Thuyết trình – vấn đáp – ví dụ thực tiễn b/ Phương tiện: - Giáo viên: bảng viết, sách, tài liệu minh hoạ, bài tập mẫu - Học sinh: sách giáo khoa - Tranh chứa các biểu thức toán học, máy chiếu, máy vi tính, số chương trình sẵn III HOẠT ĐỘNG DẠY – HỌC - Ổn định lớp - Tiến hình hoạt động bài Hoạt động Thầy Hoạt động trò HOẠT ĐỘNG 1: a/ Mục tiêu - Biết biểu diễn biểu thức toán học ngôn ngữ Pascal - Biết biểu thức ngôn ngữ Pascal tương ứng biểu thức toán học nào b/ Nội dung - Hãy viết biểu thức toán học đây Pascal: y z ( 1+ z ) a− 1+ x x+ - Hãy chuyển các biểu thức Pascal đây sang biểu thức toán học tương ứng: a) a/b*2 b) a*b*c/2 c) 1/a*1/c d) b/sqrt(a*a+b) Hãy viết biểu thức toán học đây Pascal: (36) y z ( 1+ z ) a− 1+ x x+ - Yêu cầu học sinh xem sgk và học sinh lên bảng làm bài tập (1+z)*((x+y/z)/(a-1/(1+x*x*x))) Hãy chuyển các biểu thức Pascal đây sang biểu thức toán học tương ứng: a) a/b*2 b) a*b*c/2 c) 1/a*1/c d) b/sqrt(a*a+b) - Yêu cầu học sinh xem sgk và học sinh lên bảng làm bài tập HOẠT ĐỘNG 2: a/ Mục tiêu - Biết suy luận để viết biểu thức Logic thể đúng và sai b/ Nội dung - Hãy viết biểu thức logic cho kết true toạ độ (x,y) là điểm nằm vùng gạch chéo kể biên các hình a a - a y O a -a x O ax - Hãy viết chương trình nhập vào số a (a > 0), tính và đưaa diện tích phần gạch chéo a y y - O ax a a Hãy viết biểu thức logic cho kết true - Tập trung suy nghĩ, tìm câu trả lời Tham gia toạ độ (x,y) là điểm nằm vùng gạch xây dựng bài chéo kể biên các hình - Yêu cầu hs đọc câu hỏi Đánh giá câu trả lời học sinh (37) (y<=1) and (y>= abs(x)) (abs (x)<=1) and (abs(y)<=1) Hãy viết chương trình nhập vào số a (a > 0), tính và đưa diện tích phần gạch chéo Uses crt; Var a: real; Begin Clrscr; Write (‘Nhap ban kinh duong tron a (a>0): ‘); Readln(n); S:= sqr (a)*3.14; Writeln (‘dien tich phan gach chieu la: ’,S: 8:3); Readln End IV DĂN DÒ: - Nắm 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 + Xây dựng thuật toán - Phân biệt cách viết các công thức toán học với Pascal (38) V RÚT KINH NGHIỆM: (39) TIẾT CT: 09 - 10 BÀI TẬP THỰC HÀNH SỐ 01 I MỤC TIÊU a/ Về kiến thức: - Viết chương trình hoàn chỉnh đơn giản - Biết sử dụng số dịch vụ chủ yếu soạn, lưu, dịch, chỉnh, chạy b/ Về kỹ năng: - Đi từ chương trình mẫu học sinh tự thực hành và sửa và chạy chương trình - Bước đầu biết phân tích và hoàn thành chương trình đơn giản trên Turbo Pascal c/ Thái độ: - Nghiêm túc, cẩn thận, chính xác làm việc với ngôn ngữ lập trình - Tự giác, tích cực thực hành II PHƯƠNG PHÁP VÀ PHƯƠNG TIỆN DẠY – HỌC a/ Phương pháp: Thuyết trình - vận dụng thực tiễn b/ Phương tiện: - Học sinh: sách giáo khoa - Máy chiếu, máy vi tính III HOẠT ĐỘNG DẠY – HỌC - Ổn định lớp - Tiến hình hoạt động bài Hoạt động Thầy Hoạt động trò HOẠT ĐỘNG 1: a/ Mục tiêu - Học sinh tự thao tác mở chương trình, nhập chương trình mẫu, lưu, dịch và sửa lỗi chương trình cách chủ động - Trong quá trình sửa lỗi học sinh quan sát và rút kinh nghiệm b/ Nội dung - Soạn thảo chương trình sách giáo khoa trang 34 - GV: Lưu ý học sinh số điểm - HS: Tự giác nhập chương trình soạn thảo chương trình + Dấu chấm phẩy (;) dùng để ngăn cách các Program Giai_PTB2; khai báo và các câu lệnh Uses crt; + Sau từ khoá End cuối chương trình phải đặt Var a, b, c, d: real; dấu chấm (.) x1, x2: real; Begin Clrscr; Write (‘a, b, c’); (40) Readln (a, b, c); d := b*b - 4*a*c; x1:=(-b-sqrt(d))/(2*a); x2:= -b/a – x1; writeln(‘x1=’,x1:6:2,’x2=’,x2:6:2); readln; - Làm mẫu việc lưu chương trình trên đĩa End Tự giác thực việc lưu chương trình lên đĩa + Nhấn phím F2 và lưu chương trình với tên là PTB2.PAS lên đĩa + Các bước thực hiện: Ấn phím F2(hoặc nhấp chuột chọn mục File/Save) Hộp thoại Save File As xuất Xử lí hộp thoại: Gõ tên tệp PTB2 vào mục Save File As Gõ phím Enter nhấn phím OK - Làm mẫu cho học sinh cách dịch và sửa lỗi Nhấn tổ hợp phím Alt + F9 để dịch và sửa lỗi cú pháp cú pháp (nếu có) - Khi chương trình có lỗi thì xem phụ lục 7: Một số thông báo lỗi cuối giáo trình - Sửa lỗi chương trình; - Dịch chương trình và sửa lỗi chương trình không còn lỗi - Sau dịch xong chương trình, trên màn hình xuất thông báo “Đã dịch thành công: hãy gõ phím bất kỳ“ để tiếp tục - Làm mẫu cho học sinh cách thực Nhấn tổ hợp phím Ctrl + F9 chương trình và nhập giá trị - Để thực chương trình Nhập các giá trị 1;-3 và Quan sát kết hiển thị trên màn hình - Thực chương trình: Nhấn tổ hợp phím Ctrl + F9 Trên màn hình xuất thông báo nhập vào các giá trị: a,b,c Sau nhập xong các giá trị a=1,b=-3,c=2 thì kết chương (41) trình là x1=1.00, x2=2.00 - Nêu số điểm lưu ý quá trình thực Lưu ý: Khi nhập các giá trị a, b, c ta nên gõ dấu cách sau lần nhập giá trị chương trình - Để quay trở lại màn hình soạn thảo chương trình, ta gõ phím Enter Muốn nhập vào các giá trị khác a, b, c thì ta phải chạy lại chương trình - Việc nhấn tổ hợp phím Ctrl + F9 tương đương với nhấp chuột chọn mục Run HS: Chú ý theo dõi, nhập vào các giá trị khác a, b, c HOẠT ĐỘNG 2: a/ Mục tiêu - Tìm hiểu chương trình Pascal hoàn chỉnh - Bước đầu biết phân tích và hoàn thành chương trình đơn giản trên Turbo Pascal b/ Nội dung - Soạn thảo chương trình sách giáo khoa trang 34 - GV: Yêu cầu học sinh khởi động Turbo - HS: Tự giác nhập chương trình Pascal, soạn thảo chương trình sách giáo Giải: khoa trang 34 Program hcn; Var C, S, a, b: real; - Thực chương trình và nhập liệu Begin Quan sát kết chương trình Thực Write (’Moi ban nhap chieu dai và chieu chương trình với liệu khác nhau; rong cua hcn: ’); Readln; - Chỉnh sửa chương trình với C:= (a+b)*2; liệu đã nhập Quan sát kết trên màn hình S:= a*b; Writeln (’C=’, C:6:2); Writeln (’S=’, S:6:2); Readln; End Lưu: - Nhấn phím F2 và lưu chương trình với tên là HCN.PAS lên đĩa - Các bước thực hiện: + Ấn phím F2(hoặc nhấp chuột chọn mục File/Save) Hộp thoại Save File As xuất Xử lí hộp thoại: (42) Gõ tên tệp HCN vào mục Save File As Gõ phím Enter nhấn phím OK Dịch: - Nhấn tổ hợp phím Alt + F9 để dịch và sửa lỗi cú pháp (nếu có) - Khi chương trình có lỗi thì xem phụ lục 7: Một số thông báo lỗi cuối giáo trình - Sửa lỗi chương trình; - Dịch chương trình và sửa lỗi chương trình không còn lỗi - Sau dịch xong chương trình, trên màn hình xuất thông báo “Đã dịch thành công: hãy gõ phím bất kỳ“ để tiếp tục Chạy chương trình: - Nhấn tổ hợp phím Ctrl + F9 - Để thực chương trình Nhập các giá trị 1;-3 và Quan sát kết hiển thị trên màn hình - Thực chương trình: Nhấn tổ hợp phím Ctrl + F9 Trên màn hình xuất thông báo nhập vào các giá trị: a,b,c Sau nhập xong các giá trị a=1,b=-3,c=2 thì kết chương trình là x1=1.00, x2=2.00 Lưu ý: Khi nhập các giá trị a, b, c ta nên gõ dấu cách sau lần nhập giá trị - Để quay trở lại màn hình soạn thảo chương trình, ta gõ phím Enter Muốn nhập vào các giá trị khác a, b, c thì ta phải chạy lại chương trình - Việc nhấn tổ hợp phím Ctrl + F9 tương đương với nhấp chuột chọn mục Run IV DĂN DÒ: * Nhắc lại vấn đề quan trọng bài thực hành như: - Soạn thảo chương trình; - Lưu chương trình lên đĩa; - Dịch và sửa lỗi cú pháp; - Thực chương trình và nhập liệu Quan sát kết chương trình Thực chương trình với liệu khác nhau; (43) - Chỉnh sửa chương trình với liệu đã nhập Quan sát kết trên màn hình V RÚT KINH NGHIỆM: - Làm lại bài thực hành hôm nay, làm các bài tập sgk trang 35-36 (44) Chương 3: CẤU TRÚC RẼ NHÁNH VÀ LẶP TIẾT CT: 11 BÀI 9: CẤU TRÚC RẼ NHÁNH I MỤC TIÊU a/ Về kiến thức: - Hiểu nhu cầu cần sử dụng cấu trúc rẽ nhánh biểu diễn thuật toán; - Hiểu câu lệnh rẽ nhánh (Dạng thiếu và dạng đủ); - Hiểu câu lệnh ghép; b/ Về kỹ năng: - Sử dụng cấu trúc rẽ nhánh mô tả thuật toán số bài toán đơn giản - Viết các lệnh rẽ nhánh dạng thiếu, rẽ nhánh dạng đủ và áp dụng để thực thuật toán số bài toán đơn giản c/ Thái độ: - Giúp học sinh hiểu rõ tầm quan trọng cấu trúc rẽ nhánh - Làm cho học sinh thêm yêu thích lập trình, yêu thích môn học - Xác định thái độ nghiêm túc học tập làm quen với nhiều quy định nghiêm II PHƯƠNG PHÁP VÀ PHƯƠNG TIỆN DẠY – HỌC a/ Phương pháp: Thuyết trình - vận dụng thực tiễn b/ Phương tiện: - Giáo viên: Sách giáo viên, sách giáo khoa, sách bài tập, giáo án - Học sinh: Đồ dùng học tập, ghi, sgk, sách bài tập III HOẠT ĐỘNG DẠY – HỌC - Ổn định lớp - Kiểm tra bài cũ: - Tiến hình hoạt động bài Hoạt động Thầy Hoạt động trò HOẠT ĐỘNG 1: Tìm hiểu khái niệm rẽ nhánh a/ Mục tiêu - Hiểu nhu cầu cần sử dụng cấu trúc rẽ nhánh biểu diễn thuật toán b/ Nội dung 1./ Rẻ nhánh: - Nêu cách giải phương trình bậc dạng tổng quát (45) Giải phương trình bậc 2: ax2 + bx + c = Trong đó ( Delta b 4ac ) Khái niệm rẽ nhánh Bắt đầu Nêu các bước để kết luận nghiệm pt bậc hai: ax2 + bx + c=0 Nhập a, b, c - Tính delta - Nếu delta < thì kết pt vô nghiệm - Nếu delta >=0 thì pt có nghiệm x=(-b+sqrt(delta))/(2a) x=(-b-sqrt(delta))/(2a) Delta:=b*b+4*a* c - Thực vẽ sơ đồ phần nội dung Sai Xét mệnh đề sau : (1) : Nếu Delta < o thì phương trình vô nghiệm Nếu delta>=0 Đúng Tính và in nghiệm Thông báo VN (2) : Nếu Delta < o thì phương trình vô nghiệm ngược lại phương trình có nghiệm Kết thúc Hỏi: Em có nhận xét gì khác - HS: suy nghĩ trả lời câu lệnh trên? ⇒ số mệnh đề có dạng (1) và (2) gọi là - GV: Kết luận cấu trúc rẽ nhánh ⇒ Mỗi NGLT có cách thể rẽ nhánh khác Ta xét câu lệnh rẽ nhánh IF – THEN Pascal HOẠT ĐỘNG 2: Tìm hiểu ý nghĩa câu lệnh IF – THEN a/ Mục tiêu - Hiểu câu lệnh rẽ nhánh (Dạng thiếu và dạng đủ); b/ Nội dung 2./ Câu lệnh If - Then a Dạng thiếu: IF <điều kiện> THEN <câu lệnh>; b Dạng đầy đủ: (46) IF <điều kiện> THEN <câu lệnh 1> ELSE <câu lệnh 2>; Câu lệnh IF – THEN Học sinh vẽ sơ đồ khối a Dạng thiếu: IF <điều kiện> THEN <câu lệnh>; b Dạng đầy đủ: IF <điều kiện> THEN <câu lệnh 1>; ELSE <câu lệnh 2>; Trong đó: - Điều kiện là biểu thức quan hệ biểu thức lôgic - Câu lệnh, Câu lệnh 1, Câu lệnh là câu lệnh Pascal * Ý nghĩa câu lệnh: Hỏi: Em hãy cho biết ý nghĩa câu lệnh Học sinh trả lời - Dạng 1: Điều kiện đúng thì thực câu lệnh sai thì bỏ qua - Dạng 2: Điều kiện đúng thì thực câu lệnh sai thì thực câu lệnh Ví dụ: - Vd1: If (x mod = 0) then write(‘x, la so chan’); -VD2: If D < then write (‘phuong trinh vo nghiem’) else write (‘ phuong trinh co Phân tích ví dụ tìm giá trị lớn (Max) nghiem’); SGK - GV: Với hai dạng trên dạng nào dùng thuận (47) tiện hơn? HOẠT ĐỘNG 3: Tìm hiểu ý nghĩa câu lệnh ghép a/ Mục tiêu - Hiểu câu lệnh ghép; - Viết các lệnh rẽ nhánh dạng thiếu, rẽ nhánh dạng đủ và áp dụng để thực thuật toán số bài toán đơn giản b/ Nội dung 3./ Câu lệnh ghép Begin < dãy các câu lệnh >; End; Câu lệnh ghép - Trường hợp sau THEN ELSE có từ hai câu lệnh trở lên thì Pascal có thực hay không? muốn thực thì phải sử dụng gì? - Suy nghĩ trả lời: Được Ghép hai câu lệnhn lại - Khi đó ta cần gộp nhiều câu lệnh thành Trong Pascal câu lệnh ghép có dạng: câu lệnh chương trình Ngôn ngữ Pascal cho phép ta làm điều đó Begin < dãy các câu lệnh >; End; * Chú ý: Sau End phải là dấu ( ;) IV DĂN DÒ: - Nhắc lại số kiến thức vừa học xong? - Làm số câu hỏi trắc nghiệm giáo viên đã phát để củng cố kiến thức vừa học - Soạn trước bài:“cấu trúc lặp“ để chuẩn bị cho tiết học sau V RÚT KINH NGHIỆM: (48) TIẾT CT: 12 BÀI TẬP THỰC HÀNH CẤU TRÚC RẼ NHÁNH I MỤC TIÊU a/ Về kiến thức: - 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/ Về kỹ năng: - VD1: 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 đó - VD2: Tìm nghiệm pt bậc c/ Thái độ: - Làm cho học sinh thêm yêu thích lập trình, yêu thích môn học II CÁC BƯỚC TIẾN HÀNH: HOẠT ĐỘNG CÙA GIÁO VIÊN Nêu nội dung, mục đích yêu cầu VD1 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 CỦA HỌC SINH Chý ý lắng nghe - 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 Ghi đề bài, chú ý mục đích yêu cầu chương trình bài tập Nêu nội dung bài tập, mục đích yêu cấu bài tập - Tính delta Tìm nghiệm pt bậc hai - Nếu delta <0 thì pt vô nghiệm - Hãy nêu các bước chính để trả lời nghiệm - Nếu delta >= thì pt có nghiệm: pt bậc hai x=(-b+sqrt(delta))/(2a) x=(-b-sqrt(delta))/(2a) - Có thể sử dụng hai lệnh rẽ nhánh dạng khuyết, có thể sử dụng lệnh dạng - Trong bài toán này ta cần bao nhiêu lệnh rẽ đủ nhánh Dạng nào? IV DĂN DÒ: 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 (49) - Sơ đồ thực cấu trúc rẽ nhánh IF Bài tập - Trả lời câu hỏi 1, 2, SGK trang 50 - Viết chương trình giải nhập vào số và in màn hình giá trị lớn số Chuẩn bị tiết học sau - Xem nội dung bài: Cấu trúc lặp SGK trang 42 V RÚT KINH NGHIỆM: (50) TIẾT CT: 13 -14 BÀI 10: CẤU TRÚC LẶP I MỤC TIÊU a/ Về kiến thức: - Hiểu nhu cầu cần sử dụng cấu trúc lặp biểu diễn thuật toán; - Hiểu cấu trúc lặp kiểm tra điều kiện trước, cấu trúc lập với số lần lập định trứơc - Biết cách vận dụng lọai cấu trúc lặp phù hợp với tình cụ thể, đơn giản - Mô tả thuật tóan số bài tóan đơn giản có sử dụng lệnh lặp b/ Về kỹ năng: - Viết đúng câu lệnh lặp kiểm tra điều kiện trước, lặp với số lần lập xác định trứơc - Viết đúng thuật tóan số bài tóan đơn giản c/ Thái độ: - Giúp học sinh hiểu rõ tầm quan trọng cấu trúc lặp - Làm cho học sinh thêm yêu thích lập trình, yêu thích môn học - Xác định thái độ nghiêm túc học tập làm quen với nhiều quy định nghiêm II PHƯƠNG PHÁP VÀ PHƯƠNG TIỆN DẠY – HỌC a/ Phương pháp: Thuyết trình - vận dụng thực tiễn b/ Phương tiện: - Giáo viên: Sách giáo viên, sách giáo khoa, sách bài tập, giáo án, máy chiếu - Học sinh: Đồ dùng học tập, ghi, sgk, sách bài tập III HOẠT ĐỘNG DẠY – HỌC - Ổn định lớp - Kiểm tra bài cũ: Phân biệt cấu trúc rẻ nhánh thiếu – rẻ nhánh đủ Viết câu lệnh IF – Then dạng thiếu; cho ví dụ Viết câu lệnh IF – Then dạng đủ; cho ví dụ - Tiến hình hoạt động bài Tiết 13: Hoạt động 1, Tiết 14: Hoạt động 3, Hoạt động Thầy Hoạt động trò Tiết 13 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: (51) 1./ Lặp Bài toán 1: Viết chương trình tính tổng: S= ❑¿❑ a + 1 + + + a+1 a+2 a+100 Bài toán 2: 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 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? Nêu bài toán đặt vấn đề bài toán 1: Chú ý quan sát bài toán dặt vấn đề - Hãy xác định công thức toán học để tính tổng? - Gợi ý phương pháp: Ta xem S cái thúng nước, 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 ca nước vào thùng S - Có bao nhiêulần đổ nước vào thùng? - Mỗi lần đổ lượng là bao nhiêu? Lần thứ i đổ bao nhiêu? - Phải viết bao nhiêu lệnh? - Rất khó xác định công thức - Theo dõi gợi ý - Phải thực 100 lần đổ nước - Mỗi lần đổ là: a+i - Phải viết 100 lệnh Chú ý quan sát và trả lời câu hỏi Nêu bài toán đặt vấn đề bài toán 2: - Em hiểu nào cách tính tiền gửi tiết - Với số tiền gửi S, sau tháng có tiền lãi là 0,015 * S kiệm bài toán - Số tiền này cộng vào số tiền ban đầu để tính lãi cho tháng - Từ đó, hãy lập công thức tính tiền thu - S:= S+ 0,015 * S; sau tháng thứ - Ta phải thực tính bao nhiêu lần vậy? - Phải thực tính 12 lần - Dẫn dắt: Chương trình viết dài, khó đọc và dễ sai sót Cần có cấu - Tập trung theo dõi giáo viên trình bày 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 lặp lại với số lần đã định trước Yêu cầu học sinh viết thuật toán giải Thảo luận để viết thuật toán Bước 1: N 0; S 1/a; bài toán 1, Bước 2: N N+1; Bước 3:Nếu N>100 thì chuyển đến B5 Bước 4: S S + 1/(a + N); quay lại B2 Bước 5: Đưa S màn hình kết thúc HOẠT ĐỘNG 2: Tìm hiểu lệnh lặp For ngôn ngữ Pascal (52) 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 đó b/ Nội dung: 2./ Lặp với số lần lặp biết trước và câu lệnh For - a./ Cấu trúc lặp tiến: For <biến đếm>:= <Giá trị đầu> to <Giá trị cuối> <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ặp tăng biến đếm lên đơn vị, quay lại Bước Sơ đồ thực hiện: - Dạng lùi: b./ Cấu trúc: For <biến đếm>:= <Giá trị cuối> Downto <Giá trị đầu> <lệnh cần lặp> Biến đếm: là biến kiểu nguyên, kí tự miền Giá trị đầu phải lớn 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ặp Giảm biến đếm di đơn vị, quay lại Bước Sơ đồ thực hiện: Sai Đúng (53) Yêu cầu học sinh nghiên cứu SGK và cho Đọc SGK và trả lời biết cấu trúc chung FOR? For <biến đếm>:= <Giá trị đầu> to <Giá trị cuối> <lệnh cần lặp>; - Giải thích: <biến đếm>: là biến kiểu nguyên, kí tự Biến đếm dùng để làm giới hạn cho biến đếm - Hỏi: Ý nghĩa <giá trị đầu> <giá trị cuối>, Cùng kiểu với <biến đếm> kiểu liệu chúng? - Hỏi: Em có nhận xét gì giá trị <giá trị giá trị đầu < giá trị cuối đầu> và <giá trị cuối>? Nghiên cứu SGK suy nghĩ so sánh với cấu Yêu cầu trình bày cấu trúc FOR lùi trúc FOR tiến For <biến đếm>:= <Giá trị cuối> Downto <Giá trị đầu> <lệnh cần lặp>; Trong đó: - Hỏi: So sánh <giá trị đầu> và <giá trị cuối> ? - giá trị đầu > giá trị cuối Tiết 14: HOẠT ĐỘNG 3: 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: 2./ Lặp với số lần lặp không biết trước và câu lệnh While - - Bài toán 1: Viết chương trình tính tổng: S= đến + a + a+1 + + a+2 a+ N + cho < 0,0001 a+ N - Bài 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 lãi suất 1,5% tháng Hỏi sau bao nhiêu tháng gửi tiết kiệm ông ta có số tiền lớn S1 đồng? Chiếu nội dung bài toán 1 Chú ý lắng nghe, quan sát và suy nghĩ để trả lời - Hỏi: Sự khác bài toán này với bài - Bài toán trước: cho giới hạn N toán đã viết tiết trước? - Bài toán này: cho giới hạn S - Hỏi: Lặp bao nhiêu lần? - Chưa xác định - Hỏi: Lặp đến nào? - Đến điều kiện <0,0001 thỏa a+ N (54) mãn Chiếu nội dung bài toán 2 Chú ý lắng nghe, quan sát và suy nghĩ trả lời - Hỏi: Sự khác bài toán này với bài - Bài toán trước: Biết số tháng, hỏi số tiền toán trước? - Bài này: Biết số tiền hỏi số tháng - Hỏi: Số lần lặp? - Chưa biết trước, đó chính là số tháng cần tìm - Đến số tiền thu > S1 đồng Theo dõi và ghi nhớ kết luận giáo viên - Hỏi: Lặp đến nào? Kết luận: Qua VD ta thấy có dạng bài toán có lặp lại 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 4: Tìm hiểu cấu trúc lệnh lặp While 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 lệnh While Vẽ sơ đồ thực đó b/ Nội dung: - Cấu trúc: While <điều kiện> <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 máy: Bước 1: Tình giá trị <điều kiện> Bước 2: Nếu <điều kiện> có giá trị đúng thì: Thực lệnh cần lặp, quay lại B1 Sơ đồ thực hiện: Sai Đúng Điều kiện Lệnh cần lặp Yêu cầu học sinh nghiên cứu SGK và cho Tham khảo SGK và trả lời biết cấu trúc chung lệnh lặp While - Cấu trúc chung: - Giải thích: + <điều kiện>: Là biểu thức quan hệ biểu While <điều kiện> <lệnh cần lặp>; thức logic, là điều kiện để lặp lại - Hỏi: Trong bài toán 1: điều kiện để lặp lại là gì? (55) - Hỏi: Trong bài toán 2: điều kiện để 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 bài toán trên cần lặp là gì? > 0,0001; a+ N S < S1; S:= S+ 0.015 * S, để tính số tiền t:= t+1, để tính số tháng - Hỏi: Một khác lệnh cần lặp S:= S + 1/(a+i): để tính tổng, i:= i+1 để tăng số FOR và While là gì? - Dựa vào cấu trúc chung, hãy cho biết máy thực tính <điều kiện> trước hay thực While phải có lệnh tăng biến số <lệnh cần lặp> trước? Tính biểu thức điều kiện trước Thực lệnh cần lặp sau Yêu cầu học sinh lên bảng vẽ sơ đồ cấu trúc - Gọi học sinh đáng giá nhận xét Lên bảng vẽ sơ đồ cấu trúc lệnh While IV DĂN DÒ: Những nội dung đã học - Cấu trúc chung cấu trúc lặp - Sự thực máy gặp cấu trúc lặp (xác định trước, không xác định trước số lần lập) - Sơ đồ thực cấu trúc rẽ nhánh IF Bài tập - Trả lời câu hỏi SGK Chuẩn bị tiết học sau - Xem nội dung bài: Cấu trúc lặp SGK trang 42 V RÚT KINH NGHIỆM: (56) Tiết 15 - 17: Bµi tËp vµ thùc hµnh I MỤC TIÊU, YÊU CẦU: a/ Kiến thức: - Nắm cấu trúc và sơ đồ thực cấu trúc rẽ nhánh - Nắm cấu trúc và sơ đồ thực cấu trúc lặp b/ Kĩ năng: - Rèn luyện kĩ sử dụng cấu trúc rẽ nhánh – cấu trúc lập 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 c/ Thái độ: - Tự giác, tích cực và chủ động thực hành II PHƯƠNG PHÁP VÀ PHƯƠNG TIỆN: a/ Phương pháp: Kết hợp phương pháp giảng dạy như: truyền thống, vấn đáp, có hình minh hoạ b/ Phương tiện: - GV: Chuẩn bị phòng máy và các thiết bị liên quan - HS: Thực hành và nghe giảng trên máy III HOẠT ĐỘNG DẠY HỌC: - Ổn định lớp: - Kiểm tra bài cũ – dẫn vào bài Hoạt động Thầy Hoạt động trò HOẠT ĐỘNG 1: khái niệm số Pitago (Câu lệnh IF – THEN) - Hỏi: Để kiểm tra số a, b, c có phải là Pitago, ta phải kiểm tra các đẳng thức nào Tổng bình phương số bình phương số còn lại - VD - a2 = b2 + c2 b2 = a2 + c2 c2 = a2 + b2 - Yêu cầu: học sinh thực các thao tác Soạn chương trình vào máy theo yêu cầu soạn chương trình, lưu, thực lệnh giáo viên chương trình - 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 lên đĩa với tên Pitago.pas - Yêu cầu học sinh thực lệnh chương trình - Yêu cầu học sinh xem kết a2, b2, c2 - Yêu cầu học sinh tự tìm thêm số a b c khác và so sánh HOẠT ĐỘNG 2: (57) (Câu lệnh LẶP) Ví dụ : Viết chương trình tính giá trị biểu thức Y = 1/2 + 2/3 + 3/4 + + 50/51 Ví dụ 2: Viết chương trình tính giá trị tổng X(N) = 13 + 33 + 53 + + (2N + 1)3, với N 0, 1, 2, 3, , , chừng nào X(N) cò nhỏ x 109 Đưa các giá trị X(N) màn hình - Chia lớp làm bốn nhóm, yêu cầu viết chương - Sử dụng cấu trúc lặp có số lần đã xác định trì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 Thực chương trình trên máy IV DĂN DÒ: Những nội dung đã học - Cấu trúc chung cấu trúc lặp - Sự thực máy gặp cấu trúc lặp (xác định trước, không xác định trước số lần lập) V RÚT KINH NGHIỆM: - Kỹ thao tác với chương trình thực trực tiếp trên máy tính (58) TIẾT 18: KIỂM TRA 45 PHÚT (59) Chương 4: KIỂU DỮ LIỆU CÓ CẤU TRÚC TIẾT 19 - 21: KIỂU MẢNG VÀ BIẾN CÓ CHỈ SỐ I MỤC TIÊU a/ Kiến thức - Hiểu khái niệm mảng chiều - Hiểu cách khai báo và truy cập đến các phần tử mảng b/ Kĩ - Cài đặt thuận toán vài bài toán đơn giản - Thực khai báo mảng, truy cập, tính toán các phần tử mảng II PHƯƠNG PHÁP – PHƯƠNG TIỆN DẠY HỌC a/ Phương pháp : Dùng CNTT b/ Phương tiệ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 - Ổn định - Kiểm tra bài cũ - Tiến trình bài Hoạt động Thầy Hoạt động trò HOẠT ĐỘNG : 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: 1./ Kiểu mảng chiều - 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; (60) if t7>tb then dem:=dem+1; Write(‘nhiet trung binh tuan:’,tb); Writeln(‘So nhiet cao hon nhiet trung binh tuan:’,dem): 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: 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 mọt 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? 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à phân biệt - Hỏi: Để mô tả mảng chiều, ta cần xác số đị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ó 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: Yêu cầu học sinh nghiên cứu sách giáo Tham khảo sách giáo khoa và trả lời khoa và hco biết cách tạo kiểu liệu mảng - TYPE tên_km= Array[kieeru cs] Of chiều ngôn ngữ lập trình Pascal kiểu_thành_phần; - Tìm ví dụ để minh họa (61) - Ví dụ: Type mmc=array[1 100] of integer; - Tạo mọt kiểu liệu có tên mmc, gồm 100 phần tử, có kiểu nguyên - Quan sát bảng và hcọn khai báo đúng Arrayr=array[1 200] of real; Arrayb=array[-100 0] of boolean; - Gọi học sinh khác, Hỏi: ý nghĩa lệnh bạn vừa viết? - Chiếu lên bảng số khia báo kiểu mang chiều Type Arrayr=array[1 200] of real; 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óa biến và ví dụ khai báo biến mảng Tham khảo sách giáo khoa và trả lời ứng với kiểu liệu vừa tạo VAR tên_biến:tên_km; - Gọi học sinh khác, hỏi: ý nghĩa lệnh - Ví dụ : Var a:mmc; bạn vừa viết? - Khai báo biến mảng chiều - Dung lượng nhớ biến a đã chiếm là bao nhiêu? - a đã chiếm 200 byte nhớ - 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 học sinh lấy Theo dõi hướng dẫn giáo viên và độc ví dụ lập suy nghĩ để trả lời a[1] là phần tử vị trí mảng a a[i] là phần tử vị trí i mảng a HOẠT ĐỘNG : 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: Giới thiệu đề bài - Chiếu đề bài lên bảng - Yêu cầu học sinh xác định liệu vào, liệu - Hỏi: Nếu không sử dụng biến mảng 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 chiều để giải bài toán - Yêu cầu học sinh khai báo kiểu mảng - Yêu cầu học sinh khia báo biến mảng Quan sát đề bài, theo dõi yêu cầu cần giải dề bài - Vào: số là giá trị nhiệt độ 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 - Chương tình dài dòng, khó sửa đổi Theo dõi hướng dẫn giáo viên Type tuan=array[1 7] of real; Var ndtuan : tuan; (62) - Nhập giá trị cho mảng a - Yêu cầu học sinh tìm các nhiệm vụ chính - Tính trung bình cộng giá trị mảng cần giải - Đếm số phần tử có giá trị lớn trungbình cộng có Chia lớp thành nhóm Yêu cầu viết Thảo luận theo nhóm để viết chương trình chương trình lên giấy bìa - Báo cáo kết viết - Nhận xét, đánh giá và bổ sung - Thu phiếu trả lời, chiếu lên bảng Gọi học thiếu sót nhóm khác sinh nhóm khác nhận xét đánh giá Quan sát và ghi nhớ Chuẩn hóa chương trình cho học sinh IV DẶN DÒ CUỐI BÀI a/ Những nội dung đã học - Cách tạo kiểu mảng chiều và cách khia 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ố] b/ 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 - 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 - Đọc trước nội dung kiểu mảng hai chiều, sách giáo khoa trang 59 V ĐÁNH GIÁ RÚT KINH NGHIỆM : (63) TIẾT 22 - 26 BÀI THỰC HÀNH SỐ - I MỤC TIÊU a/ Kiến thức - Biết khai báo biến mảng - Củng cố lại các kiến thức kiểu liệu mảng b/ Kĩ - Nâng cao kĩ sử dụng số lệnh kỉeu 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ử - 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ỏ c/ 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 PHƯƠNG PHÁP – PHƯƠNG TIỆN 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 Tiết 22 : Hoạt động Thầy Hoạt động trò HOẠT ĐỘNG : 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: – 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; (64) 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; For i:=1 to n if a[i] mod k=0 then s:=s+a[i]; Write(‘tong can tinh la’,s); readln; End – 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(pói:4,neg:4); c Các bước tiến hành: tìm hiẻu chương tình câu a, sách giáo Quan sát, chú ý và trả lời khoa, trang 63 và chạy thử chương trình - Chiếu chương trình lên bảng - Khai báo thư viện chương trình Crt để - Hỏi: Khai báo Uses CRT; có ý nghĩa gì? sử dụng thủ tục Clrscr; - Hỏi: Myarray là tên kiểu liệu hay tên biến? - Tên kiểu liệu - Hỏi: Vai trò nmax và n có gì khác nhau? - nmax là số phần tử tối đa có thể chứa biến mảng a.n là số phần tử thực tế a - Hỏi: Những dòng lệnh nào dùng để tạo - Lệnh khai báo kiểu và khai báo biến biến màng a? - Thực chương trình để học sinh thấy - Quan sát chương trình thực và kết kết quả trên màn hình Hỏi: Lệnh gán - Lệnh sinh ngẫu nhiên giá trị cho mảng a a[i]:=random(300) – random(300) có ý nghĩa từ – 299 đến 299 gì? - Hỏi: Lệnh Fori:=1 to n - In màn hình giá trị phần tử Write(A[i]:5);có ý nghĩa gì? mảng a - Hỏi : Lệnh For – Do cuối cùng thực - Cộng các phần tử chia hết cho k nhiệm vụ gì? - Hỏi: Lệnh s:=a+a[i]; thựchiện bao - Có số lần đúng số phần tử a[i] chia nhiêu lần? hết k - Thực lại chương trình lần cuối để học - Quan sát giáo viên thực chương trình sinh thấy kết và kết trên màn hình Sửa chương trình câu a để chương Quan sát và chú ý theo dõi các câu hỏi trình giải bài toán câu b giáo viên: (65) - Chiếu lên màn hình các lệnh cần thêm - Quan sát các lệnh và suy nghĩ vị trí cần vào chương tình câu a sửa chương trình câu a - Hỏi: ý nghĩa biến Posi và neg? - Hỏi: Chức lệnh: - Dùng để lưu số lượng đếm If a[i] >0 then posi:=posi+1 - Đếm số dương đếm số âm else if a[i] <0 then neg:=neg+1; - Yêu cầu học sinh thêm vào vị trí cần thiết để chương trình đếm số - Chỉ vị trí cần thêm vào chương - Yêu cầu học gõ nội dung và lưu lại với tên trình caub.pas thực chương trình và báo cáo - Lưu chương trình Thực chương trình kết và thông báo kết Tiết 23 - 24 : Hoạt động Thầy Hoạt động trò HOẠT ĐỘNG 2: rèn luyện kĩ lập trình a/ Mục tiêu: - Viết chương trình hoàn thiện cách sử dụng lệnh và kểi 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: Lấy ví dụ thực tiễn: Người mù tìm Theo dõi vị trí giáo viên 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 - Yêu cầu: Nêu thuật toán tìm phần tử có - So sánh từ trái sang phải, giữ lại giá trị lớn số phần tử lớn Tìm hiểu chương trình tìm số và giá trị Quan sát chương trình, suy nghĩ và trả lời 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ị lớn - Hỏi: Vai trò biến j chương trình? - Phép so sánh a[i] <a[j] - Hỏi: Nếu muốn tìm phần tử nhỏ nhất, 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 hỏi Đặt yêu cầu mới: Viết chương trình đưa định hướng để viết chương trình các số các phần tử có giá trị lớn - Có (66) - Hỏi: Cần giữ lại đoạn chương trình tìm giá trị lớn không? - Hỏi: Cần thêm lệnh nào nữa? - Hỏi: Vị trí thêm các lệnh đó? - Yêu cầu: Viết chương trình hoàn thiện - Yêu cầu học sinh nhập liệu vào giáo viên và báo kết - Đánh giá kết học sinh - Lệnh để in các số có giá tị giá trị lớn tìm - Sau tìm giá trị lớn - Soạn chương trìnhvào máy Thực chương trình và thông báo kết - Nhập liệu vào và thông báo cho giáo viên liệu Tiết 25 - 26 : Hoạt động Thầy Hoạt động trò HOẠT ĐỘNG 3: Tìm hiểu chương trình diễn đạt thuật toán xếp a 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 c/ Các bước tiến hành: - 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]; 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); (67) Writeln; readln; End Gợi ý cho học sinh thuật toán xếp tăng dần - 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 - Yêu cầu: Vạch các bước để xếp các phần tử mảng không giảm Tìm hiểu chương trình ví dụ, sách giáo khoa, trang 65 - Chiếu chương trình ví dụ lên bảng - Hỏi: Vai trò biến i, j chương trình? Mỗi vòng lặp For đoạn chương trình xếp có ý nghĩa gì? - Hỏi: Ba lệnh tg:=a[i]; a[i]:=a[i+1]; a[i+1]:=tg; có ý nghĩa gì? - Thực chương trình, nhập liệu để học sinh thấy kết chương trình - Hỏi: Chương trình làm công vịêc gì? 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 thuật toán In kết tìm màn hình - Hỏi: Đoạn chương trình nào dùng để thực tráo đổi giá trị? - Yêu cầu học sinh viết lệnh để đếm số lần tráo đổi - Hỏi: Lệnh này viết vị nào chương trình? - Yêu cầu học sinh soạn chương trình? Chú ý theo dõi dẫn dắt giáo viên để trả lời câu hỏi - Lần lượt lấy phần tử từ trái qua phải - Cứ phần tử ta đem so sánh với các phần tử đứng bên phải nó - Nếu nhỏ thì đổi chỗ Quan sát chương trình, suy nghĩ câu hỏi và trả lời - Biến i, j dùng làm số - Mỗi vòng lặp For ứng với phép duyệt - Dùng để đổi giá trị hai phần tử a[i] với a[i+1] - Quan sát giáo viên thực chương trình - Chương trình xếp dãy số theo thứ tự không giảm Quan sát yêu cầu mới, chú ý định hướng giải giáo viên tg:=a[i];a[i]:=a[i+1];a[i+1]:=tg; - Dem := Dem+1; - Ngay sau đoạn tráo đổi - Soạn chương trình vào máy, thực - Yêu cầu học sinh nhập liệu vào giáo chương trình và thông báo kết viên và thông báo kết - Nhập liệu theo yêu cầu giáo viên, - Đánh giá kết học sinh thực chương trình và thông báo kết sau thực IV ĐÁNH GIÁ CUỐI BÀI Những nội dung đã học - Thuật toán xếp đơn giản (68) - 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 (69) TIẾT 27 – 28: KIỂU DỮ LIỆU XÂU I MỤC TIÊU a/ Kiến thức - Biết xâu là dãy ký tự - Biết cách khai báo xâu, truy cập đến phần tử xâu - Biết số thủ tục – hàm thông dụng trên xâu II PHƯƠNG PHÁP – PHƯƠNG TIỆN 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 - Ổn định - Kiểm tra bài cũ – giới thiệu bài - Tiến trình dạy học : + Tiết 27 : Hoạt động 1, 2, + Tiết 28 : Hoạt động Tiết 27 Hoạt động Thầy Hoạt động trò 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: * Khái niệm: - 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: 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? Quan sát, suy nh\ghĩ 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]0; Readln (A[2]) - Yêu cầu học sinh: Viết đoạn lệnh để nhập Readln(A[3]0; Readln (A[4]); và xuất liệu cho phần tử (70) - Hỏi: Có khó khăn gì gặp phải? - 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 Tìm hiểu kiểu xâu - Chiếu lên bảng cách khia báo biến xâu ngôn ngữ lập trình Pascal - Hỏi: ý nghĩa từ String, [n] - 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 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 - Hỏi: Xâu gồm kí tự trống viết nào? Số lượng kí tự bao nhiêu? - Hỏi: Xâu rỗng viết nào? 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 nhập/xuất liệu - Yêu cầu học sinh tìm ví dụ cụ thể - 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ể - Chương trình viết dài dòng Khi nhập liệu, phải thực gõ nhiều phím Quan sát cấu trúc khai báo và tham khảo sách giáo khoa - String là tên kiểu xâu - [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 - Ví dụ: ‘HA NOI’ - Xâu có kí tự, dấu cách là kí tự - Kí hiệu xâu gồm kí tự trống là ‘ ’ Xâu nà có độ dài là - Kí hiệu xâu rỗng là ‘ ’ Xâu này có độ dài là Quan sát bảng để trả lời - Ví dụ: Readln(ho ten); - Ví dụ: Write(‘ho ten’,hoten); - Viết lệnh nhập nguyên cho xâu Viết lệnh gọn hơn, CHương trình gọn - Ví dụ:St:=’HA NOI’; Tham chiếu đến kí tự xâu Quan sát và suy nghĩa để trả lời - Giới thiệu cấu trúc chung - Hỏi: Có gì giống và khác so với cách - Giống cấu trúc chung tham chiếu tên tham chiếu đến phần tử mảng biến[chỉ số] - Yêu cầu học sinh tìm ví dụ - Ví dụ: st[2] Kiểm tra kiến thức - Chiếu nội dung bài tập kiểm tra kiến thức: Var st:string[1]; c:char; Quan sát chương trình trên bảng và độc lập suy nghĩ (71) Begin c:=st[1]; {1} - Lệnh {1} đúng c:=st; {2} - Lệnh {2} sai không thể gán xâu cho End kí tự - 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: 2./ Các thao tác xử lý xâu - 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: 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 Tìm hiểu chức số phép toán kiểu xâu qua số ví dụ - Chiếu chương trình ví dụ: Var st:string; Begin st:=’Ha’+ ‘Noi’; Write()st ; readln; End - Hỏi: Kết chương trình in màn hình? - Thực chương trình để học sinh thấy kết - Yêu cầu học sinh tìm số ví dụ khác - Hỏi: Chức phép cộng? - 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’; 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 - Quan sát chương trình - Kết cho ta: st= ‘HA NOI’ - Quan sát kết chương trình - Ví dụ: st:= ‘HA NOI’ + ‘Co ho GUOM’ Kết quả: st= ‘HA NOI co ho GUOM’ - Là phép toán nối xâu thứ hai vào cuối xâu thứ (72) st:= ‘Ha ’+ ‘Noi’; st:= ‘Ha Noi’; st:= ‘ ’ + ‘Noi’; st:= ‘Ha Noi’; st:= ‘Ha Noi’ + ‘Việt’ + ‘Nam’; st:= ‘ Ha Noi’; - Chiếu chương trình ví dụ phép so sánh st:= ‘Ha Noi Việt Nam’; xâu Var bo:boolean; - Quan sát chương trình để dự tính kết Begin bo:= ‘AB’ < ‘AC’; Write(bo); readln; End - Hỏi: Kết chương trình in màn - Kết là: TRUE hình? - Thực chương trình để học sinh thấy - Quan sát kết chương trình để kiểm kết chứng suy luận - Hỏi: Còn có phép so sánh nào nữa? - Có các phép <, <=,>=, <>, = - 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 đó ‘AB’ < ‘ABC’ - Kết True ‘AC’ < ‘ABC’ - Kết quả: False - 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 HOẠT ĐỘNG : 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: 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 - Hỏi: ý nghĩa Length và st? - Length: Là tên hàm, có nghĩa là độ dài, st: - Chiếu chương trình ví dụ: là biểu thức xâu kí tự Var st:tring; - Quan sát chương trình để dự tính kết Begin st:= ‘ha Noi’; Write(length(st)); readln; End - Kết là : (73) - Hỏi: Kết chương tình in màn hình? - Thực chương trình để học sinh thấy kết - 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 Giới thiệu cấu trúc chung hàm Upcase(ch) - Chiếu chương trình ví dụ: Var ch:char; Begin ch:= ‘h’; Write(upcase(ch)); readln; End - Hỏi: Kết chương trình in màn hình? - Thực chương trình để học sinh thấy kết - Hỏi: Chức hàm upcase()? - Chiếu bài tập ứng dụng: Viết chương trình nhập xâu, in màn hình xâu đó dạng in hoa giới thiệu cấu trúc chung hàm Pos(s1, s2) - Chiếu chương trình ví dụ: Var vt:byte; Begin vt:=Pos(‘cd’, ‘abcdefcd’); Write(vt); readln; End - Hỏi: Kết chương trình in màn hình? - Thực chương trình để học sinh thấy kết - Hỏi: Chức hàm Pos? - 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 - Quan sát kết chương trình - Hàm cho số lượng kí tự xâu st Quan sát cấu trúc chung hàm Upcase - Quan sát chương trình để dự tính kết - Kết là : H - Quan sát kết chương trình - Cho giá trị là chữ in hoa ch Var st:string; Begin readln(st); For i:=1 to length(st) write(upcase(st[i])); End Quan sát cấu trúc chung hàm Pos và các ví dụ để biết chức - Quan sát chương trình để dự tính kết - Kết là: - Quan sát kết hcương trình - Hàm cho giá trị là số nguyên là vị trú xâu st2 xâu st2 - Bằng không Var st:tring; Begin readln(st); (74) có dấu cách hay không? - Hỏi: Có cách giải nào khác? if pos(‘ ’, st) <>0 then write(‘co’) else write(‘khong’); End - Có thể sử dụng For để tìm dấu cách xâu Quan sát cấu trúc chung hàm coppy và ví dụ để biết chức - Quan sát chương trình để dự tính kết Giới thiệu cấu trúc chung hàm copy(st, vt, n) - Chiếu chương trình ví dụ: Var st:string; Begin st:=copy(‘bai tap’, 3, 4); Write(st); readln; End - Hỏi: kết chương trình in màn hình? -Thực chương trình để học sinh thấy kết - Hỏi: Chức hàm copy? Kết là: ‘i ta’ - Thay các tham số hàm copy chương trình ví dụ trên sau và hỏi kết in màn hình: Copy(‘abc,1, 5) Copy(‘abc,5, 2) Copy(‘abc,1, 0) - Thực chương trình để học sinh thấy kết Giới thiệu cấu trúc chung thủ tục 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; End - Hỏi: Kết chương trình in màn hình? - Thực chương trình để học sinh thấy kết - Hỏi: Chức thủ tục delete(); Quan sát kết chương trình Hàm cho giá trị là xâu kí tự lấy xâu st, gồm n kí tự bắt đầu vị trí vt Cho giá trị là: ‘abc’ Cho giá trị là xâu rỗng Cho giá trị là xâu rỗng Quan sát kết chương trình để kiểm nghiệm suy luận Quan sát 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 st=’ Hai’ - Quan sát kết hcương trình Thủ tục thực việc xóa biến xâu st gồm n kí tự, vị trí vt (75) - 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 Giới thiệu cấu trúc chung thủ tục Insert(st1, st2, vt); - Chiếu chương trình ví dụ: Var st1, st2:string; begin st2:= ‘Ha Noi’; st1:= ‘ ’; insert(st1, st2,3); Write()st; readln; End - Hỏi: Kết chương trình in màn hình? - Thực chương trình để học sinh thấy kết - 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 quả: st2:= ‘ef’; Insert(‘abc’,st2, 5); st2:= ‘ef’; Insert(‘abc’,st2, 0); 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 Insert - Quan sát chương trình để dự tính kết - Kết st2=’ Ha Noi’ - Quan sát kết chương trình - Thủ tục thực việc chèn xâu st1 vào biến xâu st2 bắt đầu vị trí vt st2= ‘efabc’; st2= ‘abcef’; Tiết 28 : HOẠT ĐỘNG 4: Một số ví dụ xâu a/ Mục tiêu: - Học sinh biết cách vận dụng các thao tác trực tiếp trên xâu b/ Nội dung: 3./ Một số ví dụ: Giáo viên soạn sẵn các ví dụ này để tiện cho VD : học sinh theo dõi trên màn hình việc Program vd1 ; (76) chạy thử và không làm thời gian ngồi viết Uses crt ; chương trình Var s1,s2 : String ; Begin Với ví dụ, giáo viên sâu vào câu lệnh Clrscr ; trực tiếp đáp ứng yêu cầu ví dụ, Write('Nhap xau thu : ') ; các em tiếp thu nhanh Readln(s1) ; Write('Nhap xau thu : ') ; Readln(s2) ; Ví dụ : Nhập xâu, viết màn hình xâu If length(s1) > Length(s2) then dài Write(s1) else Write(s2); Readln ; End Ví dụ : Nhập xâu, kiểm tra xem ký tự đầu VD : tiên xâu S1 có trùng với ký tự cuối cùng xâu S2 hay không ? Program vd2 ; Uses crt ; Var s1,s2 : String ; x : Byte ; Begin Clrscr ; Write('Nhap xau thu : '); Readln(s1) ; Write('Nhap xau thu : '); Readln(s2) ; x := length(s2) ; If s1[1] = s2[x] then Write('Trung nha') else Write('Khac nhau'); Readln ; End Ví dụ : Nhập xâu, viết màn hình xâu đó VD : theo thứ tự ngược lại các ký tự xâu Program vd3 ; Uses crt ; Var i,k : Byte ; a : String ; Begin Clrscr ; Write('Nhap xau : ') ; Readln(a) ; k := length(a) ; (77) For i := k downto Write(a[i]) ; Readln ; End Ví dụ : Nhập xâu, viết màn hình xâu đó VD : đã bỏ tất các ký tự là dấu Program vd4 ; cách Uses crt ; Var i,k : Byte ; a,b : String ; Begin Clrscr ; Write('Nhap xau : ') ; Readln(a) ; k := length(a) ; b :='' ; For i := to k if a[i] <> '' then b := b+a[i] ; Write(b) ; Readln ; End Ví dụ : Nhập xâu, viết màn hình xâu gồm các ký tự số xâu đó VD : Program Xulixau ; Uses crt ; Var s1,s2 : String ; i : Byte ; Begin Clrscr ; Write('Nhap xau s1 : ') ; Readln(s1) ; s2 := '' ; For i := to length(s1) If ('0'<s1[i]) and (s1[i]<='9') then s2 := s2 + s1[i] ; Write(s2); Readln ; End IV DẶN DÒ Những hàm và thủ tục liên quan đến xâu - Thủ tục Delete(st, vt,n); (78) - 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 ĐÁNH GIÁ – RÚT KINH NGHIỆM: (79) TIẾT 29 – 30: BÀI THỰC HÀNH SỐ I MỤC TIÊU a Kĩ - Biết khai báo xâu, nhập xâu, xuất xâu, truy cập phần tử xâu - Sử dụng số hàm – thủ tục trên xâu b thái độ - Tích cực, chủ động thực hành II PHƯƠNG PHÁP – PHƯƠNG TIỆN 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 Tiết 29 : Hoạt động cùa Thầy Hoạt động trò 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: Tìm hiểu đề bài - 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 Quan sát, đọc kĩ đề (80) - Yêu cầu học sinh cho hai ví dụ xâu palidrom và ví dụ không phải là palidrom tìm hiểu chương trình gợi ý - Chiếu chương trình lên bảng - Hỏi: Chương trình sau đây có chức làm gì? Kết in màn hình thếnào? - Thực chương trình để học sinh kiểm nghiệm suy luận mình Phải: 12321 abccba Không phải: abcdea Quan sát chương trình, suy nghĩ phân tích để hiểu chương trình - Kiểm tra xâu có phải Palidrom hay không? - In ra: ‘xau la Palidrom’ ‘Xau khong la palidrom’ - Quan sát giáo viên thực chương trình, nhập liệu và kết chương trình Chú ý theo dõi yêu cầu giáo viên, trả lời số câu hỏi dẫn dắt Cải tiến chương trình - Nêu yêu cầu mới: Viết lại chương trình mà không sử dụng biến trung gian p - Yêu cầu: Nhận xét các cặp vị trí đối - Các kí tự vị trí này giống xứng xâu palidrom? - Hỏi: kí tự thứ i đối xứng với kí tự vị trí - Kí tự thứ i đối xứng với kí tư thứ length() nào? – i +1 - Hỏi: Cần phải so ssánh bao nhiêu cặp kí - So sánh tối đalength() div tự xâu để biết xâu đó ;à palidrom? - Hỏi: Dùng cấu trúc lặp nào để so sánh? - Yêu cầu học sinh viết chương trình hoàn - Có thể dùng For While chỉnh - Thực soạn thảo chương trình vào - Yêu cầu học sinh nhập liệu cho sẵn máy theo yêu cầu cải tiến giáo viên giáo viên và thông báo kết - Nhập liệu vào và thông báo kết - Xác nhận bài làm có kết đúng Tiết 30: 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: Giới thiệu đề bài - Chiếu nội dung đề bài lên bảng Nêu mục đích bài toán - Chia lớp thành nhóm: + Nhóm 1: Đặt các câu hỏi phân tích + Nhóm 2: Trả lời các câu hỏi phân tích Quan sát đề và xác định công việc cần thực Nhóm 1: - hỏi: Dữ liệu vào, liệu bài toán? - Nêu các nhiệm vụ chính cần thực giải bài toán - Hỏi: Cấu trúc liệu phải sử dụng nào? (81) - Theo dõi câu hỏi phân tích Của nhóm và trả lời câu hỏi phân tích nhóm - Bổ sung và sửa sai cho nhóm và nhóm - Ta phải sử dụng hàm nào? Nhóm 2: - Vào: Một xâu S - Ra: dãy các số ứng với xuất loại kí tự xâu - 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() Yêu cầu học sinh độc lập viết chương Độc lập soạn chương trình vào máy trình hoàn chỉnh theo thuật toán đã phát trên - Yêu cầu học sinh lập trình xong sớm tìm - Tìm test số test - Nhập liệu giáo viên và thực - Yêu cầu học sinh nhập liệu vào theo chương trình để xem kết test giáo viên đã chọn và thông báo kết sau thực chương trình - Xác nhận kết đúng học sinh và - Thông báo kết cho giáo viên sửa sai cho các em có kết sai IV ĐÁNH GIÁ – RÚT KINH NGHIỆM 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ị nội dung cho tiết lí thuyết tiết theo (82) TIẾT 32: KIỂM TRA TIẾT I MỤC TIÊU a Kĩ - Kiểm tra kiến thức và kỹ vận dụn kiến thức đã học học sinh - Khắc sâu kiến thức, giúp học sinh chủ động viết và xừ lý chương trình b thái độ - Tích cực, chủ động thực hành II PHƯƠNG PHÁP – PHƯƠNG TIỆN DẠY HỌC Chuẩn bị giáo viên - Sách giáo khoa, bài tập nhà III HOẠT ĐỘNG DẠY – HỌC Học sinh tiến hành bóc thăm các bài tập kiểu mảng và kiểu xâu tiến hành thời gian 15 phút - Ma trận : + Khai báo : điểm + Nhập : điểm + Xử lý : điểm + Xuất : điểm (83) Tiết 32 – 35: ÔN TẬP HỌC KỲ (84) TIẾT 36: KIỂM TRA HỌC KỲ (85) Chương 5: TỆP VÀ CÁC THAO TÁC VỚI TỆP TIẾT CT: 39 Bài 14 : KIỂU DỮ LIỆU TỆP 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 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 PHƯƠNG PHÁP – PHƯƠNG TIỆN 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 Thầy Hoạt động trò HOẠT ĐỘNG 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 Biết hai loại tệp: Định có cấu trúc và tệp văn b 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 c Các bước tiến hành: - 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 Mọi ngôn ngữ lập trình có các thao tác: Khai báo biến tệp, mở tệp, đọc/ghi liệu, đóng tệp - Bộ nhớ RAM - Mất liệu điện - Không thông tin tắt máy (86) - Dung lượng liệu lưu trữ lớn HOẠT ĐỘNG2 Phân loại kiểu tệp a Mục tiêu: Biết hai loại tệp: Định có cấu trúc và tệp văn b Nội dung: - Có hai loại tệp: + 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 c Các bước tiến hành: - Yêu cầu học sinh nghiên cứu sách giáo khoa và hco biết đặc điểm cuat tên tệp? Có loại kiểu tệp? - Yêu cầu học sinh trình bày khái niệm tệp có cấu trúc và tệp văn - Có hai loại kiểu tệp: Tệp có cấu trúc và tệp văn + 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 IV DẶN DÒ: - Việc trao đổi liệu với nhớ ngoài thực thông qua kiểu liệu tệp - 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 (87) TIẾT CT: 40 Bài 15 : THAO TÁC VỚI TỆP TỆP I MỤC TIÊU Kiến thức: - Khai báo đúng biến kiểu tệp - Biết số hàm và thủ tục chuẩn làm việc với tệp Kĩ năng: - Thực thao tác xử lí tệp: Gán tên tệp, mở/đóng tệp, đọc/ghi tệp - Sử dụng các hàm, thủ tục liên quan để đọc/ghi liệu 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 PHƯƠNG PHÁP – PHƯƠNG TIỆN 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 Thầy Hoạt động trò HOẠT ĐỘNG 1: Tìm hiểu các thao tác xử lí tệp văn ngôn ngữ lập trình 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 - 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: 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ể Quan sát cấu trúc và suy nghĩ trả lời - Var f,g:text; HOẠT ĐỘNG 2: Tìm hiểu các thao tác xử lí tệp văn ngôn ngữ lập trình a Mục tiêu: (88) - Học sinh biết cách khai báo biến - 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: Thao tác với tệp - 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 - Tạo 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: - Giới thiệu các thao tác gán tên tệp, tạo tệp để ghi, mở tệp để đọc, đóng tệp Quan sát và suy nghĩ để trả lời câu hỏi Assign(<tên_biến_tệp>,<tên_tệp>); Assign(f5,’B1.INP’); Rewrite(<tên_biến_tệp>); Rewrite(f5); Close(>Tên_biến_tệp>); Close(f5); Yêu cầu: Lấy ví dụ minh hoạ mở tệp để ghi thông tin và mở tệp để đọc thông 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ơ đồ Assign(f5,’B1.OUT’); Rewrite(f5); Close(f5); Quan sát sơ đồ và suy nghĩ để trả lời Assign(<tên biến tệp>,<tên tệp>); Rewrite (<tên biến tệp>); Ghi Write (<tên biến tệp>, <danh sách kết quả>); Đọc Reset (<tên biến tệp>); Read (<tên biến tệp>, <danh sách biến>); Close(<tên biến tệp>>); (89) 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 - 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 DẶN DÒ: Những nội dung đã học - Việc trao đổi liệu với nhớ ngoài thực thông qua kiểu liệu tệp Có hai loại tệp: Tệp có cấu trúc và tệp văn - Để có thể làm việc với tệp, cần phải khai báo biến tệp: Var <Tên_biến_tệp>: text; - 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 - ngôn ngữ lập trình Pascal có các thủ tục tương ứng là: Assign(<tên_biến_tệp>,<tên_tệp>); 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>); Câu hỏi và bài tập nhà - 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 (90) TIẾT CT 41 - 42 : 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ụ - Hiểu các thao tác làm việc với tệp Kĩ - Sử dụng các hàm và thủ tục liên quan để giải các bài tập II PHƯƠNG PHÁP – PHƯƠNG TIỆN 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 : Tiết 41 : Hoạt động Thầy Hoạt động trò 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, đó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 Gợi ý để học sinh nhớ lại các kiến thức đã Theo dõi dẫn dắt giáo viên và trả lời học kiểu tệp - Var <Tên_biến_tệp>: Text; -Hỏi: Cách khai báo biến kiểu tệp? - Assign(<Tên_biến_tệp>,<tên_tệp>); - Hỏi: Có các thủ tục nào làm - Rewrite(<Tên_biến_tệp>); việc với tệp? - Reset (<Tên_biến_tệp>); - Close(<Tên_biến_tệp>); - Read/readln(<tên_biến_tệp>, <DS_biến>); - Write/writeln(<tên_biến_tệp>, <Ds_biến>); - Eof(<Tên_biến_tệp>) - Eoln(<Tên_biến_tệp>); - Hỏi: Hàm và thủ tục nào liên quan xử lí tệp? Giới thiệu bảng tổng hợp các hàm và thủ tục lên bảng, xem đây là tổng kết kiến thức liên quan Quan sát bảng tổng hợp và ghi nhớ HOẠT ĐỘNG 2: (91) Tìm hiểu chương trình ví dụ a Mục tiêu: - Học sinh hiểu nội dung, biết đầu vào và đầu chương trình b Nội dung:Giới thiệu ví dụ SGK 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 Tiết 42 : Hoạt động Thầy Hoạt động trò HOẠT ĐỘNG 3: Thực số ví dụ cụ thể khác a Mục tiêu: - Học sinh hiểu nội dung, 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: Tìm hiểu ví dụ - Giới thiệu nội dung đề bà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ỏi: Hàm Eof(f) có chức gì? - Hỏi : Hàm Eoln(f) có chức gì ? Theo dõi và quan sát đề bài và chương trình gợi ý - Hàm cho giá trị True trỏ tệp định vị trí kết thúc tệp - Hàm cho giá trị True trỏ tệp định vị trí kết thúc dòng - Có thể sử dụng cấu trúc For thay while Không Vì không biết số lượng phần tử không? tệp - Chương trình này thực công việc gì? Tính và đưa màn hình khoảng cách 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 Quan sát nội dung đề bài Suy nghĩ thực Tìm hiểu chương trình - Giới thiệu đề bài - Tạo tệp, và tạo biến A, B cho phép nhập giá trị biến từ bàn phím Ghi giá trị biến A, B vào tệp Học sinh thực trên bảng Giáo viên gợi ý, hướng dẫn Hoàn thiện câu lệnh trên bảng Cho học sinh tiến hành trực tiếp trên máy chiếu Hoặc thực - Quan sát kết chương trình và so sánh với kết tính đương (92) giúp học sinh Chạy chương trình cho học sinh chứng kiến tệp tạo - Nhận xét tính chính xác và thời gian thực chương trình Học sinh thực trên bảng - Giới thiệu đề bài - Mở tệp vừa tạo, đọc giá trị biến X, Y Tính và xuất màn hình tổng, tích và X và Y - Quan sát kết chương trình và so sánh với kết tính đương - Nhận xét tính chính xác và thời gian thực chương trình IV ÔN LẠI KIẾN THỨC – DẶN DÒ 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 + Đọ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) + Hàm EOLN(Tên_ biến_tệp) Câu hỏi và bài tập nhà - Tự viết lại hai ví dụ trên cho tiết bài tập tiến hành phòng máy V RÚT KINH NGHIỆM (93) TIẾT CT 43 : BÀ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ụ - Hiểu các thao tác làm việc với tệp Kĩ - Thực trực tiếp việc tạo tệp, ghi liệu vào tệp, đọc liệu từ tệp ra, tính toán trên các giá trị liệu đó II PHƯƠNG PHÁP – PHƯƠNG TIỆN DẠY HỌC Chuẩn bị giáo viên Phòng máy vi tính Chuẩn bị học sinh - Sách giáo khoa, học III HOẠT ĐỘNG DẠY – HỌC Tìm hiểu chương trình - Giới thiệu đề bài - Tạo tệp, và tạo biến A, B cho phép nhập giá trị biến từ bàn phím Ghi giá trị biến A, B vào tệp - Giới thiệu đề bài - Mở tệp vừa tạo, đọc giá trị biến X, Y Tính và xuất màn hình tổng, tích và X và Y Học sinh tiến hành Giáo viên theo dõi tiến trình làm việc học sinh, yêu cầu học sinh ghi chú lại các lưu ý (94) CHƯƠNG : CHƯƠNG TRÌNH CON VÀ LẬP TRÌNH CÓ CẤU TRÚC TIẾT CT : 45 - 46 BÀI 17 : 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 khác thủ tục và hàm - Biết cấu trúc chương trình - Biết quan hệ tham số hình thức – tham số thực và lợi ích chương trình 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 PHƯƠNG PHÁP – PHƯƠNG TIỆN 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 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 + 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 c Các bước tiến hành: Tiết 45 : Hoạt động Thầy 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 Hoạt động trò Quan sát đề bài và hai chương trình ví dụ (95) 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 Nhận xét: Chương trình có sử dụng chương trình - Gọi học sinh nhận xét tính ngắn gọn, rõ viết ngắn gon, dễ hiểu chương ràng, tính dễ đọc dễ hiểu hai chương trình trình viết không sử dụng chương tình đó Đối với các bài toán lớn, cần nhiều người cùng - Hỏi: Khi nào nên viết chương trình con? 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 Tham khảo sách giáo khoa để trả lời - Yêu cầu học sinh đọc sách giáo khoa, cho biết khái niệm chương trình Nghiên cứu sáhc giáo khoa, thảo luận để điền - Chia lớp thành nhóm Phát bìa cho phiếu học tập nhóm Yêu cầu học sinh điền các lợi ích + Tránh việc phải viết lặp lặp lại cùng việc sử dụng chương trình 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ảng - Bổ sung và giải thích thêm số lợi ích mà học sinh điền chưa đầy đủ (vì các em còn mơ hồ chương trinhg con) phân loại chương trình - Hỏi: Có loại chương trình con? Gọi tên chúng? - Hỏi: Đã làm quen với hàm và thủ tục chưa? Lấy số ví dụ hàm và thủ tục đã học - ý nghĩa hàm và thủ tục chuẩn? - yêu cầu học sinh tham khảo sách giáo khoa để phân biệt khái niệm hàm và thủ tục Tiết 46: Báo cáo kết Theo dõi bổ sung và giải thích giáo viên Tham khảo sách giáo khoa và trả lời Hai loại chương trình con: hàm và thủ tục Đã sử dụng hàm và thủ tục chuẩn - Ví dụ: Hàm abs(), length(st) Thủ tục Delete(st,p,n); + Hàm là thực số thao tác nòa đó 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 nó (96) Hoạt động Thầy 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> - Yêu cầu học sinh so sánh với cấu trúc chương trình chính - 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 Hoạt động trò Quan sát cấu trúc chương trình - Giống cấu trúc chương trình chính Khác chỗ phần đầu chương trình là bắt buộc phải có - Phần khai báo thường có thể là khai 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 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 Thực chương trình - Hỏi: Để sử dụng hàm và thủ tục chuẩn em thường viết đâu và viết nào? Suy nghĩ và trả lời - Viết chương trình chính 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 đó 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á 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 IV ĐÁNH GIÁ CUỐI BÀI – DẶN DÒ Những nội dung đã học - 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ó 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 nhà (97) - Đọ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 (98) TIẾT CT : 47 BÀI TẬP I MỤC TIÊU Kiến thức: - Biết khác thủ tục và hàm - Biết cấu trúc chương trình - Biết quan hệ tham số hình thức – tham số thực và lợi ích chương trình Kĩ - Nhận biết các thành phần đầu thủ tục - 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 Hoạt động Thầy Hãy quan sát đoạn chương trình sau: - Hoạt động trò Quan sát trả lời Hãy xác định các biến toàn cục, biến cục bộ, tham số hình thức, tham số thực, đâu là chương trình con, đâu là lời gọi chương trình ? PROCEDURE Ve_hcn( Dai, rong: Integer); Var i,j : Integer; Begin Dai, rong: tham số hình thức I,j : biến cục For i = 1to dai Write (‘*’); Writeln ; For i:=1to rong – Begin Thủ tục (chương trình con) Write (‘*’); For i = 1to dai –2 Write(‘ ‘); Writeln (‘*’) End; For i = 1to dai Write(‘ *‘); Writeln; End; BEGIN Lời gọi thủ tục chương trình chính (99) Ve_hcn( 25,10) Writeln; Ve_hcn (5,10) 25 , 10 : tham số thực (tham trị) Lời gọi thủ tục chương trình chính , 10 : tham số thực (tham trị) END Giáo viên : Nếu đầu chương trình khai báo VAR X, Y : Integer ; Phần chương trình chính Nhập giá trị cho biến X, Y từ bàn phím sau đó thêm dòng lệnh Ve_hcn(X,Y) ; Xác định thêm các tham số Học sinh : X, Y : Biến toàn cục X, Y là tham số thực (tham biến) Program cong- tru; Var a,b: Integer Function cong(x,y: Integer): integer; A, b : biến toàn cục X,y: tham số hình thức z : biến cục Var z: Integer; Begin z : = x+y; Cong : = z; End; Function tru(x,y: Integer): integer; Var z: Integer; Begin z:= x-y; Tru : = z; End; Begin Writeln ( ‘nhap a’); Readln(a); Writeln (‘ nhap b’); Readln (b); Writeln (‘ tong la:’, cong(a,b)); Writeln (‘ Hieu la:’, tru(a,b)); Readln END A,b : tham số thực (tham biến) (100) TIẾT CT : 48 KIỂM TRA TIẾT (101) TIẾT 49 - 50 : VÍ DỤ VỀ CÁCH VIẾT VÀ SỬ DỤNG CHƯƠNG TRÌNH CON I MỤC TIÊU Kiến thức - Biết cấu trúc chung và vị trí thủ tục – hàm chương trình - Nhận biết các thành phần thủ tục - hàm - Nhận biết lời gọi thủ tục chương trình chính cùng các tham số thực Kĩ năng: - Biết cách viết thủ tục - hàm - Biết cách gọi thủ tục - hàm 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 PHƯƠNG PHÁP – PHƯƠNG TIỆN 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 Tiết 49: Hoạt động Thầy Hoạt động trò 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; End; BEGIN Các lệnh chương trình chính; (102) 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: Giới thiệu ví dụ mở đầu Quan sát, theo dõi ví dụ - 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 Quan sát ví dụ, suy nghĩ và trả lời - Hỏi: Vị trí thủ tục nằm phần nào - Nằm phần khai báo, sau phần khai biến chương trình chính? - Ba phần: Tên thủ tục, khai báo thủ tục và - Hỏi: Cấu trúc thủ tục gồm phần? phần thân - Hỏi: Phân biệt giống và khác - Giống: Cấu trúc chung chương trình và chương trình chính? - Khác: Trong phần tên: Từ khóa đặt tên - Giới thiệu cấu trúc chung thủ tục Procedure, có các tham số Procedure tên_thủ_tục(danh sách các tham - Quan sát và ghi nhớ cấu trúc chung số); Các khai báo thủ tục; Begin Các lệnh thủ tục; End; Trong phần thân kết thúc End; - Lời gọi thủ tục ta viết phần nào - Trong phần thân chương trình chính chương trình? Tìm hiểu tham số hình thức và tham số thực Quan sát ví dụ trên bảng - 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 - Thủ tục ve_hcn ví dụ này có các tham số ve_hcn ví dụ này với ví dụ trước chdai, chrong - 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 - Hỏi: Quan sát chương trình cho biết, - Vẽ hình chữ nhậ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ố thực (103) - So sánh các tham số lời gọi ve_hcn(5,10); và ve_hcn(a,b); - Tham số thực thủ tục ve_hcn(5,10); là các s còn thru tục ve_hcn(a,b); là các biến 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 chương trình tìm - Hỏi: Các tham số ví dụ thuộc loại nào? - Đưa liệu vào cho chương trình xử lí - Chiếu chương trình VD_thambien 1, sách giáo khoa trang 99 - Hỏi: các tham số x, y thuộc loại nào? - Đưa liệu sau chương trình xử lí - Diễn giải: lời gọi thủ tục, các tham ngoài số hình thức thay các tham số thực tương ứng là tên các biến chứa liệu gọi là các tham số biến - Hỏi: x, y là tham số giá trị hay tham số biến? - Là tham 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? - Khi khai báo tham số biến ta đặt từ khóa var - Chiếu vd_thambien2 và giải thíc để học trước các tham số đó sinh thấy khác biệt tham số giá trị và tham số biến Tiết 50: Hoạt động Thầy Hoạt động trò HOẠT ĐỘNG 2: 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 (104) Các kệnh hcương trình chính; Lời gọi thực hàm và thủ tục; 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: Nhắc lại kiến thức cũ hàm chuẩn -Hỏi: Hãy kể tên số hàm chuẩn đã học và cách sử dụng chúng Suy nghĩ và trả lời - Hàm ABC(), SQRT(), 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í hàm chương trình chính - Hỏi: So sánh giống và khác hàm và thủ tục Quan sát cấu trúc chung - Giống: Có cấu trúc tương tự, có các tham số - 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 Quan sát ví dụ và trả lời Tìm hiểu hàm thông qua ví dụ - Chiếu chương trình ví dụ rutgon_phanso, sách giáo khoa trang 101 - Hỏi: chương trình có hàm - Hàm UCLN(x, y) dùng để làm gì? - Hỏi: Lời gọi hàm đâu? - Hỏi: Có gì khác với thủ tục lời gọi hàm - Chiếu chương trình ví dụ 2, Minbaso, sách giáo khoa, trang 102 - Hỏi: chương trình có bao nhiêu hàm? Chức hàm? - Có bao nhiêu lời gọi hàm chương trình chính? Tìm hiểu biến cục và biến toàn - Chiếu chương trình ví dụ 2: rutgon_phanso lên bảng - Một hàm UCLN, dùng để tìm ước số chung lớn hai số X, Y -Lệnh A:=UCLN(tuso,mauso); -Lời gọi hàm phải đặt lệnh lời gọi chương trình khác - Quan sát chương trình ví dụ - Có hàm khai báo - Hàm sử dụng hai lần - Kết hàm lại là đầu vào cho chính hàm đó lần gọi thứ hai Quan sát lại các ví dụ - Quan sát chương trình giáo viên (105) - Hỏi: Có biến nào sử dụng chương trình? Các biến đó khao báo chỗ nào chương trình? - Diễn giải: Biến tuso, mauso, A có ảnh hưởng toàn chương trình Biến Sodu ảnh hưởng thân chương trình - Yêu cầu học sinh: Phân biệt giống và khác biến toàn và biến cục - Có các biến: tuso, mauso, A, sondu - Các biến: tuso, mauso, A khai báo chương trình chính - Các biến: sodu khai báo chương trình - Biến cục bộ: Có ảnh hưởng chương trình con, khai báo phần khai báo chương trình - Biết toàn bộ: 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 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ó Câu hỏi và bài tập nhà V RÚT KINH NGHIỆM (106) TIẾT 51 - 52 : BÀI TẬP THỰC HÀNH – I MỤC TIÊU Kiến thức - Nhẫn biết được: tham số hình thức, tham số thực, các biến Kĩ năng: - Biết cách viết thủ tục - hàm 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 PHƯƠNG PHÁP – PHƯƠNG TIỆN 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 Tiết 51: Hoạt động Thầy Hoạt động trò HOẠT ĐỘNG 1: Bài 1: Viết chương trình giải phương trình bậc với các hệ số a,b,c có sử dụng CTC Program Giai_Ptb2; Var m,n,k : Integer; Procedure ptb1(a,b: Integer); Begin If a <> Then Write(‘x=’,-b/a) Else If b=0 then Writeln (‘ vo so nghiem’) else Writeln (‘ vo nghiem’); End; (******************************************) Procedure ptb2( a,b,c: Integer); Var delta : integer; Begin delta:=b*b- 4*a*c If delta < then Writeln (‘vo ngiem’) Else if delta = then Write (‘x’, -b/(2*a)) (107) Else begin X1 = ( - b+ Sqrt( Delta))/2*a; X2= (-b-Sqrt(Delta))/2*a; Writeln (‘X1=’; X1) Writeln ( ‘X2=’,x2 ); end; End; Begin (*Ct chính} Writeln (‘ nhap he so pt bac 2’); Write (‘m=’); Readln (m); Write (‘m=’) Readln (n); Write ( ‘k=’); Readln (k); If m=0 then ptb1 (n,k) Else ptb2(m,n,k); Readln End Tiết 52: Hoạt động Thầy Hoạt động trò HOẠT ĐỘNG 2: Bài 2: Viết Ct rút gọn phân số; Program phan_so; Var tu1,tu, mau1,mau2: Integer; Tu3,tu4: Integer; Function ucln(a,b : Integer) : Integer; Var du : Intger; Begin While b<> Begin (108) Du:=amodb; A:=b; B:=du; End; Ucln:=a; End; Procedure GUPS ( Var tu,mau:Integer ) ; Var A:Integer ; Begin A:= UCLN (tu, mau); While A> 1do Begin Tu:=tu div A; Mau:= mau div A; End; End; Begin {CT chính} Writeln (‘PS thu nhat’); Writeln (‘Nhap mau so va tư so:’); Readln(tu1, mau1); Writeln (‘PS thu hai’); Writeln (‘Nhap mau so va tư so:’); Readln(tu2, mau2); GUPS(tu1, mau1); Writeln (‘Phan so da gian uoc la:’, tu1, ‘/’, mau1); GUPS(tu2, mau2); Writeln (‘Phan so da gian uoc la:’, tu2, ‘/’, mau2); Readln End D CỦNG CỐ - Bài ta dùng tham trị, bài dùng tham biến - Từ đó củng cố lần ; CTC, ta cần tham số thay đổi giá trị thì phải khai báo tham biến; ngược lại dùng tham trị (109)