Tải bản đầy đủ (.docx) (108 trang)

Giao an tin 11 giam tai hoan chinh

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (974.25 KB, 108 trang )

<span class='text_page_counter'>(1)</span>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ỹ năng - Biết được khái niệm lập trình - Hiểu khả năng ngôn ngữ lập trình bậc cao, phân biệt được với ngôn ngữ máy và hợp ngữ - Hiếu ý nghĩa và nhiệm vụ của chương trình dịp, phân biệt được 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 của Thầy. Hoạt động của 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 được lập trình là gì? Ý nghĩa của lập trình? - Giúp học sinh hiểu được khái niệm ngôn ngữ lập trình và một 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 đều 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 dữ liệu và các câu lệnh của một ngôn ngữ lập trình cụ thể để mô tả dữ liệu, biểu đạt các thao tác của 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 bằng ngôn ngữ bậc cao: có thể thực hiện trên nhiều loại máy khác nhau Ví dụ: - Xác định nghiệm của phương trình ax + b = 0 Input: a, b.

<span class='text_page_counter'>(2)</span> + Xác định Input và Output của 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 <> 0 kết luận nghiệm x = -b/a B3: Nếu a = 0 và b <> 0 kết luận x vô nghiệm B4: Nếu a = 0 và b = 0 kết luận x vô số nghiệm. Diễn giải: - Hệ thống các bước vừa thực hiện để tìm được - 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ữ của 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 đượ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 cấu trúc dữ liệu và hoặc ghi lại bằng sự lời văn của mình với ý các lệnh của một ngôn ngữ lập trình cụ thể để không sai lệch mô tả dữ liệu, biểu đạt các thao tác của thuật toán Vấn đáp: - Kết quả của 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 hiện được chương trình đó. Giải thích: - Khẳng định tính đúng đắn của các câu trả lời của HS.. - Là ngôn ngữ dùng để viết chương trình sau cho chương trình đó có thể thực hiện trên máy - Bổ sung thêm ngôn ngữ lập trình là phần mềm tính cho ra một ứ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à sự hiểu biết của 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 của từng loại ngôn ngữ lập trình Bổ sung - mở rộng - Ngôn ngữ máy + Mã hoá bằng ký hiệu 0 – 1 + CT nạp vào bộ nhớ và thực hiện ngay - Hợp ngữ + CT nạp vào thanh ghi và thực hiện ngay. 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 ra kết quả + Ngôn ngữ máy là ngôn ngữ gắn liền với máy tính và là ngôn ngữ duy nhất mà máy có thể hiểu và thực hiện được + Hợp ngữ: phát triển cao hơn ngôn ngữ máy, ít phụ thuộc vào máy tính trong đó một số lệnh được thay thế bằng từ viết tắc của các thao tác.

<span class='text_page_counter'>(3)</span> - Ngôn ngữ bậc cao + Có thể viết độc lập trên bất kỳ máy nào. tương ứng, vẫn đảm bảo khai thác tính năng của 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 bằng 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 3 loại ngôn ngữ lập trình trên, theo em lập trình bằng loại nào là thuận - Đó là lập trình bằng ngôn ngữ bậc cao tiện cho đại đa số những người lập trình? - Máy tính chỉ có thể hiểu ngôn ngữ máy – nhưng lập trình bằng ngôn ngữ này không dễ. Lập trình bằng ngôn ngữ bậc cao thuận tiện, dễ dàng như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 hiện được không?. - Nhờ một chương trình dùng để dịch các chương trình được viết bằng ngôn ngữ khác sang ngôn ngữ mà máy có thể hiểu và thực hiện được. => Chương trình có chức năng thực hiện những * 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 được ý nghĩa và nhiệm vụ của chương trình dịch - Phân biệt được 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 năng chuyển đổi một chương trình được viết bằng một ngôn ngữ bậc cao thành chương trình mà máy tính có thể thực hiện được + Đầu vào của chương trình dịch là chương trình được viết bằng ngôn ngữ bậc cao + Đầu ra của chương trình dịch là chương trình được viết bằng ngôn ngữ máy - Thông dịch: dịch lần lược từ câu lệnh ra ngôn ngữ máy rồi thực hiện ngay câu lệnh vừa dịch hoặc thông báo lỗi khi không dịch được. Không có chương trình đích để lưu trữ. - Biên dịch : duyệt, kiểm tra, phát hiện lỗi, khi chương trình nguồn không có lỗi thì dịch toàn bộ chương trình thành chương trình có thể thực hiện trên máy. Chương trình đích có thể được lưu và thực hiện 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, do bị hạn chế về 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 hiện của - Thảo luận và trình bày người thông dịch? - Khi ta muốn soạn một hợp đồng kinh tế với đối tác nước ngoài trong trường hợp đó ta cần - Biên dịch viên ai giúp đỡ.

<span class='text_page_counter'>(4)</span> + Chức năng, vai trò, cách làm việc của 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 của 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 trong sách giáo khoa theo những ý đã tóm lượt. HOẠT ĐỘNG 3 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 năng của 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ữ những người có trình độ như thế 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 sao người ta lại tích hợp chương trình dịch được thường xuyên nâng cấp, đáp ứng yêu cầu trong các ngôn ngữ lập trình bậc cao luôn? Tại thực tế, như thế chương trình dịch sẽ không thể sao không thiết kế một chương trình dịch chung bao quát hết, trong trường hợp có thể xảy ra thì thật sự không cần thiết khi chỉ sử dụng 1 ngôn cho tất cả các ngôn ngữ lập trình bậc cao? ngữ bậc cao mà phải cài đặt 1 chương trình dịch khổng lồ như thế. (dung lương và tốc độ của máy … ) IV. DĂN DÒ: - Làm bài tập trong sách bài học và trong sách bài tập đầy đủ - Chuẩn bị bài 2 V. RÚT KINH NGHIỆM:.

<span class='text_page_counter'>(5)</span> 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ỹ năng - Biết được ngôn ngữ lập trình có 3 thành phần cơ bản: Bảng chữ cái, cú pháp, ngữ nghĩa. - Biết được một số khái niệm: tên, tên chuẩn, tên dành riêng, hằng - biến và chú thích - Nhớ các qui định về tên, hằng, biến. - Biết thực hiện 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 ra nội dung chính trong 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ũ: 1. Thế nào là lập trình, thế nào là ngôn ngữ lập trình? 2. Chương trình dịch là chương trình như thế nào? Em hãy phân biệt thế nào là thông dịch, thế 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 của Thầy. Hoạt động của trò. HOẠT ĐỘNG 1: Tìm hiểu các thành phần của ngôn ngữ lập trình a/ Mục tiêu - Giúp học sinh nhận biết được ngôn ngữ lập trình cũng như các loại ngôn ngữ khác đều có 3 thành phần cơ bả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 tại lớp b/ Nội dung: 1.Các thành phần của 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 hiện của tổ hợp ký tự trong ngữ cảnh Đặt vấn đề: 1. Suy nghỉ - trả lời - Trong ngôn ngữ tiếng Việt hằng ngày sử dụng - Các ký tự, số, dấu em hãy cho biết có những thành phần cơ bản - Cách lắp ghép các ký tự thành từ, các từ thành.

<span class='text_page_counter'>(6)</span> nào để cấu thành nó. câu - Nghĩa của các từ, các câu. Diễn giải: - Trong ngôn ngữ lập trình cũng thế nó cũng có 2. Chú ý lắng nghe và liên tưởng trong ngôn ngữ tiếng Việt và ghi lại nội dung các thành phần cơ bả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 của tổ hợp các ký tự - Ngữ nghĩa: Là ý nghĩa thao tác của tổ hợp các ký tự trong chương trình theo ngữ cảnh riêng của nó Thảo luận nhóm: Dựa vào sách giáo khoa Thảo luận từng nhóm – bổ sung cho nhau - 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ố : 0  9 - 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à trong bảng chữ cái mà ngôn Có 1 ký tự trong ngôn ngữ tiếng Anh không có ngữ tiếng Anh em thấy có, nhưng trong ngôn đó là ký tự ^ và 2 ký tự trong 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 một vài ví dụ minh hoạ về cú Khi viết chương trình thì phải có Begin sau đó pháp trong ngôn ngữ lập trình mới tới end. - Ngữ nghĩa của một lệnh hay một câu lệnh mà Dấu cộng (+) đôi lúc mang nghĩa là cộng 2 giá em biết? trị số, đôi lúc mang giá trị ghép 2 chuỗi. HOẠT ĐỘNG 2: Tìm hiểu khái niệm tên trong ngôn ngữ lập trình a/ Mục tiêu: - Học sinh biết phân biệt một số loại tên: tên dành riêng, tên chuẩn và tên do người LT đặt b/ Nội dung: 2. Một số khái niệm a/ Tên - Mọi đối tượng trong chương trình đều phải được đặt tên theo một qui tắc nhất định (tuỳ theo từng ngôn ngữ lập trình và chương trình dịch đi kèm). - Tên dành riêng: Là tên được ngôn ngữ lập trình qui định mang một ý nghĩa xác định (còn gọi là từ khoá) - Tên chuẩn: Là tên được ngôn ngữ lập trình qui định mang một ý nghĩa nào đó mà ý.

<span class='text_page_counter'>(7)</span> 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 đi. - Tên do người lập trình đặt: Là tên được dùng theo ý nghĩa chủ quan của người lập trình + Phải được khai báo trước khi sử dụng + Không được trùng với tên dành riêng + Tên không có ký tự trắng xem vào giữa + Tên không dùng các ký tự đặc biệt, nhưng được dùng ký tự _ + Tên được dùng ký tự chữ và ký tự số, nhưng ký tự số không được đặt ở đầu + Tên không dài quá 127 ký tự Vấn đáp: - Mọi thành viên trong lớp ta có được đặt tên không? Vậy việc đặt tên cho từng thành viên phụ thuộc vào ai, vào điều gì?  Vậy theo em các đối tượng trong một 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 được đặt tên. Phụ thuộc vào ba mẹ và phụ thuộc vào kỳ vọng của ba mẹ về cái tên của từng thành viên. - Vậy tên dành riêng là tên như thế nào?. - Là tên độc quyền, mang ý nghĩa và không có bất kỳ tên nào trùng với nó. - Cũng đều phải được đặt tên theo ngôn ngữ lập trình. => Mọi đối tượng trong chương trình đều phải Giải thích - Khẳng định câu trả lời của các em là đúng và được đặt tên theo một qui tắc nhất định (tuỳ theo từng ngôn ngữ lập trình và chương trình bổ sung thêm ý dịch đi kèm). Câu hỏi gợi ý: - Khi cô nói cô tên là Xuân, vậy 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 trong ngôn ngữ lập trình => Là tên được 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ụ trong ngôn ngữ lập trình Pascal: Program, Uses, Const, Var, Begin, End - Vậy nếu Xuân không là tên dành riêng thì - Cũng không, vì nếu Xuân là tên của người thì Xuân có phải là tên chuẩn hay không? những người tên Xuân có vô số hình dạng khác nhau, tính cách khác nhau. 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 trong ngôn ngữ lập trình là?. => Tên chuẩn: Là tên được 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 đi.. Ví dụ trong ngôn ngữ lập trình Pascal: Real, Integer, Char, String - Vậy Xuân là tên như thế nào - Là tên được đặt theo ý nghĩa chủ quan  Vậy tên được đặt theo ý nghĩa chủ quan của.

<span class='text_page_counter'>(8)</span> người lập trình khi viết chương trình được gọi => Tên do 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 giữa 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 trong sách giáo khoa - Tóm lượt nội dung chính lên bảng theo những ý đã tóm lượt HOẠT ĐỘNG 3 Tìm hiểu hằng – 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: 2. Một số khái niệm b/ Hằng – biến - Hằng: là đại lượng mang giá trị không đổi trong quá trình thực hiện 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ự trong bảng mã ASCII, được đặt trong cặp dấu ‘’ - Biến: là đại lượng mang giá trị mà giá trị này được phép thay đổi trong quá trình thực hiện ct a/ Chú thích - Chú thích: Để giải thích cho lệnh hay câu lệnh trong chương trình  { nội dung chú thích trong 1 dòng}  (* nội dung chú thích trong nhiều dòng *) Câu hỏi dẫn nhập - Em hãy cho một số ví dụ về các hằng số mà 1. Độc lập suy nghĩ và trả lời - Hằng số  = 3.14 em đã từng học qua ở các bộ môn như toán, lý - Hằng số g = 9.8 - Vậy các hằng này có thay đổi giá trị khi 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 trong ngôn ngữ lập trình hằng là gì? trong quá trình thực hiện chương trình Diễn giải: Học sinh theo dõi: - Trong ngôn ngữ lập trình hằng được chia - Đánh dấu lại nội dung trình bày trong sách thành 3 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ự trong bảng mã ASCII, được đặt trong cặp dấu ‘’.

<span class='text_page_counter'>(9)</span> Dẫn nhập ví dụ thực tế: - Một vật thể lúc xuất, hiện 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ả năng 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 chỉ về vật thể có thể thay đổi trạng thái.  Vậy biến trong NNLT là gì?. => Biến: là đại lượng mang giá trị mà giá trị này được phép thay đổi trong quá trình thực hiện chương trình. Câu hỏi dẫn nhập - Giải một bài toán khi nào em dùng đến những Độ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 đi Diễn giải: Lắng nghe và đóng góp - Chú thích trong ngôn ngữ lập trình cũng thế - Chú thích: Để giải thích cho lệnh hay câu lệnh trong chương trình  { nội dung chú thích trong 1 dòng}  (*nội dung chú thích trong nhiều dòng*) Trình bày: - Tóm lượt lại những nội dung vừa làm việc với - Xem sách và hệ thống lại những nội dung vừa học sinh bằng 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 của 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 của bài trong sách và nội dung mở rộng trên bảng theo các ý tóm lượt của giáo viên. HOẠT ĐỘNG 3 Củng cố nội dung kiến thức vừa học a/ Nội dung: - Thành phần của 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 do người lập trình đặt - Khái niệm hằng, biến, chú thích - Dấu , trong số thực được thay bằng dấu . trong NNLT . - Ký tự ‘ trong NNLT dược thay thế bằng ‘’. Nên hằng ‘’’’ là hằng xâu nháy đơn b/ Câu hỏi thảo luận mở rộng vấn đề - Điểm khác nhau giữa 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à hằng hay không? - Phải 4, 6 là hằng, phép toán 4+6 là hằng - ‘true’ có phải là hằng hay không? Nếu phải - Phải, là hằng xâu, vì true là logic, ‘true’ là là hằng gì? Vì sao? hằng xâu IV. DĂN DÒ:.

<span class='text_page_counter'>(10)</span> - Làm bài tập trong sách bài học và trong sách bài tập đầy đủ - Chuẩn bị bài 3 V. RÚT KINH NGHIỆM:.

<span class='text_page_counter'>(11)</span> TIẾT CT: 03 BÀI TẬP I. MỤC TIÊU: a/ Về kiến thức – kỹ năng - Hệ thống lại hệ thống kiến thức cơ bản của chương một c/ Thái độ: - Phát huy thái độ tích cực học tập của 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 ra nội dung chính trong bài b/ Phương tiện: - Giáo viên: Giao học sinh thực hiện bài tập về 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 của Thầy. Hoạt động của 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 sao 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 dữ liệu đa dạng  Làm việc với các kiểu dữ liệu khác nhau - Câu 2: Viết ra 3 tên đúng theo qui cách Thực hiện trên bảng Pascal HOẠT ĐỘNG 2: Thực hiện câu hỏi trắc nghiệm a/ Mục tiêu - Củng cố kiến thức.

<span class='text_page_counter'>(12)</span> b/ Nội dung: 1. Phát biểu nào dưới đây là đúng ? A. Để biên soạn một 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 bản khác nhau. B. Output của mọi chương trình đều là chương trình trên ngôn ngữ máy. C. Chương trình viết bằng hợp ngữ không phải là Input hay Output của bất cứ chương trình dịch nào. D. Chương trình dịch là thành phần chính của một ngôn ngữ lập trình bậc cao.. Đáp án: A. 2. Phát biểu nào dưới đây là đúng ? A. Chương trình là dãy các lệnh được tổ chức theo các quy tắc được xác định bởi một ngôn ngữ lập trình cụ thể. B. Trong chế độ thông dịch mỗi câu lệnh của chương trình nguồn được dịch thành một câu lệnh của chương trình đích. C. Mọi bài toán đều 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ũng có lỗi cú pháp.. Đáp án: A. 3. Đâu là biểu diễn hằng trong những biểu diễn dưới đây ? A - begin B - '65c' C - 5.8A D - integer. Đáp án: B. 4. Hãy chọn biểu diễn tên đúng trong những biểu diễn dưới đây ? A - '********' B - (2)C - 3GHI D - PpPpPp. Đáp án: D. 5. Trong những biểu diễn dưới đây, biểu diễn nào là từ khoá trong Pascal ? A - Integer B - END C - Real D - Sqrt 6. Phát biểu nào dưới đây là đúng ? A. Khi cần thay đổi ý nghĩa của 1 từ khoá nào đó người lập trình cần khai báo theo ý nghĩa mới. B. Tên do người lập trình tự đặt được trùng với. Đáp án: B Đáp án: D.

<span class='text_page_counter'>(13)</span> từ khoá. C. Trong chương trình tên gọi cũng là một đối tượng không thay đổi nên cũng có thể xem là hằng. D. Mọi đối tượng có giá trị thay đổi trong chương trình đều gọi là biến. 7. Trong chế độ biên dịch, một chương trình đã được 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 rằng ta đã có một chương trình đúng trình đúng vì chương trình có thể vẫn còn hay chưa ? Tại sao ? chứa lỗi ngữ nghĩa. 8. Trong chế độ thông dịch, giả sử hai phần ba số Trả lời: câu lệnh trong chương trình đã được thực hiện. Không thể khẳng định. Cú pháp Có thể khẳng định rằng như vậy chương trình của các câu lệnh chưa thực hiện chưa không còn chứa lỗi cú pháp nữa hay không ? Tại được kiểm tra sao ? 9. Tại sao phải kiểm tra tính đúng đắn của chương Trả lời: trình bằng nhiều bộ dữ liệu thử nghiệm khác nhau Chương trình có thể có nhiều ?. nhánh và có nhiều dạng lỗi ngữ nghĩa khác nhau Trả lời: 10. Trong một chương trình còn có lỗi cú pháp, thông Chương trình biên dịch phát hiện thường chương trình biên dịch hay chương trình lỗi nhanh hơn vì chương trình biên thông dịch phát hiện ra lỗi nhanh hơn ? Tại sao ? dịch kiểm tra cú pháp trước khi dịch. Chương trình thông dịch vừa dịch vừa thực hiện từng câu lệnh, lỗi cú pháp chỉ được phát hiện khi thực hiện tới câu lệnh đó IV. DĂN DÒ: - Chuẩn bị bài 3 V. RÚT KINH NGHIỆM:.

<span class='text_page_counter'>(14)</span> 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 được chương trình và sự mô tả của thuật toán bằng ngôn ngữ lập trình - Biết được cấu trúc một chương trình đơn giản b/ Về kỹ năng: - Nhận biết được các thành phần của một chương trình đơn giản c/ Thái độ: - Ham muốn giải các bài toán đơn giản bằng 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ũ: 1. Hãy trình bày các thành phần cơ bản của ngôn ngữ lập trình? 2. Điểm khác nhau giữa tên dành riêng và tên chuẩn? 3. 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 của Thầy. Hoạt động của trò. HOẠT ĐỘNG 1: Tìm hiểu cấu trúc của chương trình a/ Mục tiêu - Giúp học sinh biết được chương trình có 2 phần b/ Nội dung 1. 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 một số trường hợp chương trình phần khai báo được lượt bỏ - Phần thân bắt buộc phải có trong chương trình.

<span class='text_page_counter'>(15)</span> Phát vấn: - Hãy cho biết một bài tập làm văn thường có mấy phần? Có thể đảo lộn các phần cho nhau được không? Tại sao lại phải chia ra như 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ả được nội dung bài văn, mạch lạc, rõ ràng.. - Viết mộ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 thế nào + Xác định Input/Output của 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, dữ liệu của một 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 được. - Kết quả của lập trình ta sẽ được một 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 mấy phần?. - Một chương trình gồm có 2 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 trong cặp ngoặc [] nghĩa là - Trong một số trường hợp chương trình phần nội dung đó trong một vài chương trình được khai báo được lượt bỏ phép bỏ qua => chương trình vẫn đúng - Phần thân bắt buộc phải có trong chương - Với nội dung đặt trong cặp ngoặc <> nghĩa là trình nội dung đó bắt buộc phải có trong 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 của chương trình a/ Mục tiêu - Giúp học sinh biết được nội dung hai phần của chương trình b/ Nội dung 2. Các thành phần của 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> ;.

<span class='text_page_counter'>(16)</span> Khai báo hằng. const <tên hằng> = <giá trị> ;. Khai báo biến. var <tên biến> : <kiểu dữ liệu> ;. (và khai báo chương trình con) b./ Phần thân: Gồm dãy các lệnh được đặt trong 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ó những 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 một số từ - Từ Program: khai báo tên chương trình khoá trong 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 hằng 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ó một cách khai báo riêng - (Cú pháp phải tuân thủ tuyệt đối khi lập trình) (hay còn gọi là). Chính vì thế ta cần khai báo một cách chính xác, nếu không chương trình không thể thực hiện được Trình bày các khai báo trong 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 bằng dấu ; + Ví dụ: program Vi_du1; + Tên chương trình là tên do người lập trình đặt. program <tên chương trình> ; ( cặp ngoặc <> khi 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 bằng 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 ;.

<span class='text_page_counter'>(17)</span> 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 dữ liệu> ;. - Khác với khai báo hằng 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 dữ liệu là các tên chuẩn - Phần thân: Gồm dãy các lệnh được đặt trong 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 trong 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 một chương trình và các thành phần trên một 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 của 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ó 1 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 4 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ó hoặ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 được đặt trong 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 nhau trong khi khai báo - program Vi_du ; các đối tượng cuả chương trình? - uses crt ; - Tại sao phải khai báo biến - const max = 100 ; - var x : integer ;.

<span class='text_page_counter'>(18)</span> IV. DĂN DÒ: - Học bài, làm bài tập trong sách bài học và trong sách bài tập đầy đủ - Chuẩn bị bài 4 V. RÚT KINH NGHIỆM:.

<span class='text_page_counter'>(19)</span> TIẾT CT: 05 Bài 4 - 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 một số kiểu dữ 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 được kiểu cần khai báo của các dữ 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 những 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ũ: 1. Hãy trình bày cấu trúc của một chương trình 2. Có các khai báo nào mà em đã học, trình bày nội dung, cú pháp 3. Trình bày 1 chương trình Pascal đơn giản - Tiến hình hoạt động bài mới Hoạt động của Thầy. Hoạt động của trò. HOẠT ĐỘNG 1: Tìm hiểu một số kiểu dữ liệu chuẩn a/ Mục tiêu - Giúp học sinh biết được một số kiểu dữ liệu chuẩn ứng với ngôn ngữ lập trình Pascal, giới hạn biểu diễn của mỗi loại kiểu b/ Nội dung - Kiểu số nguyên: Byte, word, Integer, Shortint, Longint … + Byte: (1byte) 0 .. 255 Word : (2byte) 0 .. 216-1 + Integer: (2byte) -215 .. 215-1 Logint : (4 byte) -232 .. 232-1 - Kiểu số thực: Real, Single, Double, Extended + Real: (6byte) 0 hoặc 10-38 .. 1038 + Extended: (10byte) 0 hoặc 10-4932 .. 104932 - Kiểu ký tự: là các ký tự trong bảng mã ASCII gồm 256 ký tự, đánh số từ 0 – 255 - Kiểu logic: tập gồm 2 giá trị true/false. Là kết quả của phép so sánh..

<span class='text_page_counter'>(20)</span> Đặ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, trong ngôn ngữ Pascal cũng có các tập giá trị, mỗi tập xác định một dạng giá trị riêng biệt và có một giới hạn nhất định cũng như một bộ 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 dữ liệu chuẩn trong ngôn - 4 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 trong 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ác biến được dùng trong chương trình đều phải được khai báo tên và kiểu dữ liệu. - Biết cấu trúc của việc khai báo biến trong NN Pascal, khai báo được biến khi lập trình. b/ Nội dung Var <tên biến 1> : <kiểu dữ liệu 1> ; <tên biến 2> : <kiểu dữ liệu 2> ; <tên biến 3> : <kiểu dữ liệu 3> ; …. <tên biến n> : <kiểu dữ liệu n> ; Nếu có nhiều biến có cùng 1 kiểu dữ liệu, thì các biến này được khai báo cách nhau dấu , 1. Đặt vấn đề  Để tạo sổ điểm môn tin học của 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 dữ 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ó những khai báo nào? DT : số nguyên + DTB : Số thực.

<span class='text_page_counter'>(21)</span> 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 dữ 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 như không khai báo biến mà ta sử dụng thì điều gì sẽ xảy ra?. - Việc khai báo cần thực hiện trước, vì lúc đó ta mới biết đó là đối tượng nào của chương trình, và ta mới 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 sẽ không hiểu  báo lỗi. HOẠT ĐỘNG 4 Củng cố nội dung kiến thức vừa học a/ Nội dung: - Phân biệt được một số kiểu dữ liệu chuẩn - Biết cấu trúc của việc khai báo biến trong NN Pascal, khai báo được biến khi 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 sao 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ị của biến để chọn kiểu dữ liệu thích hợp. IV. DĂN DÒ: - Họ bài, làm bài tập trong sách bài học và trong sách bài tập đầy đủ - Chuẩn bị bài 6 V. RÚT KINH NGHIỆM:.

<span class='text_page_counter'>(22)</span> 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á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 được mộ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 được lệnh gán b/ Về kỹ năng: - Sử dụng được các phép toán để xây dựng biểu thức - Biết cách chuyển đổi giữa biểu thức trong toán học và biểu thức trong Pascal - Biết được cách gán khi viết chương trình c/ Thái độ: - Có thái độ ham thích tìm hiểu những hàm trong 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ũ: 1. Hãy phân biệt kiểu dữ liệu kiểu nguyên và kiểu thực (cho ví dụ minh hoa 2 kiểu nguyên và hai kiểu thực) 2. Trình bày cách khai báo biến, và những điều cần lưu ý khi 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 dữ liệu - Tiến hình hoạt động bài mới Hoạt động của Thầy. Hoạt động của trò HOẠT ĐỘNG 1: Tìm hiểu một số phép toán. a/ Mục tiêu - Học sinh biết được tên một số phép toán, ký hiệu của các phép toán và cách sử dụng của các phép toán đối với các kiểu dữ 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) 0 .. 255 Word : (2byte) 0 .. 216-1 + Integer: (2byte) -215 .. 215-1 Logint : (4 byte) -232 .. 232-1 - Kiểu số thực: Real, Single, Double, Extended + Real: (6byte) 0 hoặc 10-38 .. 1038.

<span class='text_page_counter'>(23)</span> + Extended: (10byte) 0 hoặc 10-4932 .. 104932 - Kiểu ký tự: là các ký tự trong bảng mã ASCII gồm 256 ký tự, đánh số từ 0 – 255 - Kiểu logic: tập gồm 2 giá trị true/false. Là kết quả của 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, trong ngôn ngữ Pascal cũng có các tập giá trị, mỗi tập xác định một dạng giá trị riêng biệt và có một giới hạn nhất định cũng như một bộ 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 dữ liệu chuẩn trong ngôn - 4 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 trong 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 về 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 được từ các hằng số, biến số và hàm số liên kết với nhau bằng các phép toán số học. - Thứ tự thực hiện biểu thức số học: + Dựng ngoặc tròn để xác định trình tự ưu tiên của biểu thức + Trong ngoặc trước, ngoài ngoặc sau. + Từ trái sang phải theo thứ tự của các phép toán: Nhân, chia, chia lấy nguyên, chia lấy dư thực hiện trước và phép toán công, trừ thực hiện sau. + Không được bỏ dấu (*) trong phép nhân Nêu vấn đề: - Trong toán học ta được làm quen với khái niệm biểu thức, hãy cho biết yếu tố cơ bản 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ử..

<span class='text_page_counter'>(24)</span> - Nếu trong một bài toán mà toán hạng là biến số, hằng số hoặc 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 trong 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- 2 2z Z  Nghiên cứu sách giáo khoa và từ việc - Thực hiện trong 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 hiện các phép toán.. HOẠT ĐỘNG 3: Tìm hiểu hàm số học chuẩn trong lập trình. a./ Mục tiêu: - Biết được một số hàm số học chuẩn trong 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 của số e ex exp(x). Kiểu đối số I hoặc R I hoặc R I hoặc R I hoặc R I hoặc R I hoặc R I hoặc R. Nêu vấn đề: -Trong toán học ta đã làm quen với một số hàm số học, hãy kể tên một số hàm đó?. Kiểu hàm số Theo kiểu của đối số R Theo kiểu của đối số R R R R. Suy nghĩ và trả lời. Hàm tri tuyệt đối, hàm căn bậc hai, hàm sin, hàm cos..  Trong một số ngôn ngữ lập trình ta cũng có một số hàm như vậy nhưng được diễn đạt bằng một cách khác. - Suy nghĩ, lên bảng trả lời..

<span class='text_page_counter'>(25)</span> - 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 trong 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 nhau bằng phép toán quan hệ ta được một biểu thức mới, biểu thức đó gọi là biểu thức gì? - Hãy lấy một ví dụ về 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 của biểu thức quan hệ? - Thứ tự thực hiện của biểu thức quan hệ? - Cho biết kết quả của phép toán quan hệ thuộc kiểu dữ 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 hiện phép toán quan hệ. - Kiểu logic.. Nêu vấn đề: Các biểu thức quan hệ được liên kết với nhau bởi phép toán Logic được gọi là biểu thức Logic. - Hãy cho một số ví dụ về 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 trong ngôn ngữ lập trình. - Thứ tự thực hiện biểu thức logic. - Kết quả của biểu thức logic có kiểu dữ liệu gì? - Treo tranh có chứa bảng chân trị của 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 của 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 trong ngôn ngữ lập trình : (5<=x) and (x<=11). + Thực hiện các biểu thức quan hệ. + Thực hiện phép toán logic. - Kiểu logic. - Học sinh suy nghĩ và trả lời bằng 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 được một biểu thức quan hệ trong 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 dữ liệu được liên kết với nhau bởi phép toán quan hệ cho ta một 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 hiện phép toán quan hệ. - Các biểu thức quan hệ liên kết với nhau bởi phép toán logic ta được biểu thức logic. Biểu thức logic đơn giản là giá trị True hoặc Flase.

<span class='text_page_counter'>(26)</span> Nêu vấn đề : - Khi hai biểu thức số học liên kết với nhau bằng phép toán quan hệ ta được một biểu thức mới, biểu thức đó gọi là biểu thức gì? - Hãy lấy một ví dụ về 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 của biểu thức quan hệ? - Thứ tự thực hiện của 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 hiện phép toán quan hệ.. - Cho biết kết quả của phép toán quan hệ thuộc kiểu dữ liệu nào đã học?. - Kiểu logic.. Nêu vấn đề: Các biểu thức quan hệ được liên kết với nhau bởi phép toán Logic được gọi là biểu thức Logic.. Suy nghĩ để trả lời.. - Hãy cho một số ví dụ về 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 trong ngôn ngữ lập trình. - Thứ tự thực hiện biểu thức logic. - Kết quả của biểu thức logic có kiểu dữ liệu gì?. - Ví dụ: (A>B) or ((X+1)<Y) và (5>2) and ((3+2)<7). - Biểu thức trong ngôn ngữ lập trình : (5<=x) and (x<=11). + Thực hiện các biểu thức quan hệ. + Thực hiện phép toán logic. - Kiểu logic.. HOẠT ĐỘNG 4. Tìm hiểu lệnh gán. a/. Mục tiêu: - Học sinh biết chức năng của lệnh gán trong lập trình. Biết được cấu trúc chung của lệnh gán trong ngôn ngữ Pascal. Viết được lệnh đúng khi lập trình. b/. Nội dung: - Lệnh gán dùng để tính giá trị một biểu thức và chuyển giá trị đó vào một biến. - Cấu trúc: Tên biến : =biểu_thức; - Sự thực hiện của máy:.

<span class='text_page_counter'>(27)</span> + Tính giá trị của biểu_thức. + Đặt giá trị vào tên_biến. - Giới thiệu một số ví dụ về lệnh gán trong Pascal như sau: x:=1+5; - Giải thích: Lấy 1 cộng 5, đem kết quả đặt vào x. Ta được x=7. Hãy cho biết chức năng của 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 của lệnh gán trong ngôn ngữ Pascal. - Hãy cho một ví dụ để tính nghiệm của 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 ra màn hình giá trị bằng bao nhiêu? - Thực hiện chương trình để học sinh kiểm nghiệm kết quả tự suy luận.. + Tính giá trị của biểu thức. + Gán giá trị tính được và tên một biến. <tên_biến>:=<biểu_thức>;. x:=(-b+sqrt(b*b – 4*a*c))/(2*a);. - In ra màn hình: z=3 và i=7. - Quan sát kết quả của chương trình.. IV. CỦNG CỐ:. - Các phép toán trong Turbo Pascal: Số học, quan hệ và logic. - Các biểu thức trong Turbo Pascal: Số học, quan hệ và logic - Cấu trúc lệnh gán trong Turbo Pascal: tên_biến :=biểu_thức; 2. Câu hỏi và bài tập về nhà - Làm bài tập 5, 6, 7, 8, sách giáo khoa, trang 35 – 36;.

<span class='text_page_counter'>(28)</span> - 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:.

<span class='text_page_counter'>(29)</span> 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ác lệnh vào ra đơn giản để nhập dữ liệu từ bàn phím hoặc đưa dữ liệu ra màn hình. b/ Về kỹ năng: - Viết được mộ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 1. 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ạ. 2. 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 trong toán học, máy chiếu, máy vi tính, một 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ũ: 1. Trình bày một số phép toán và hàm số học chuẩn 2. Thực hiện việc chuyển đổi một số biểu thức từ toán học sang Pascal và ngược lại 3. Giới thiệu bài mới - Tiến hình hoạt động bài mới Hoạt động của Thầy. Hoạt động của trò. HOẠT ĐỘNG 1: Tìm hiểu thủ tục nhập dữ liệu vào từ bàn phím a/ Mục tiêu - Giúp HS thấy được sự cần thiết của thủ tục nhập DL. - Biết được cấu trúc chung của thủ tục nhập DL. b/ Nội dung 1./ Nhập dữ liệu vào từ bàn phím - Dùng để đưa nhiều bộ DL khác nhau cho cùng một 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 quyết 1 bài toán, ta phải 1. Chú ý lắng nghe dẫn dắt của GV. đưa DL vào để máy tính xử lí, việc đưa DL bằng lệnh gán sẽ làm cho chương trình chỉ có.

<span class='text_page_counter'>(30)</span> tác dụng với 1 DL cố định. Để chương trình giải quyết được 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 của thủ tục nhập DL trong ngôn ngữ Readln(<tên_biến_1>,...,<tên_biến_n>); Pascal: - Phải nhập giá trị cho 2 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 1 chương trình Pascal đơn giản có lệnh 2. Quan sát chương trình VD của GV. nhập cho 2 biến.. - Những giá trị này phải được gõ cách nhau ít nhất - Thực hiện chương trình và thực hiện nhập 1 dấu cách hoặc kí tự xuống dòng. DL. - Lên bảng thực hiện nhập theo yêu cầu của - Hỏi: Khi nhập giá trị cho nhiều biến, ta thực GV. hiện như thế nào? - Yêu cầu HS thực hiện nhập DL cho chương trình. HOẠT ĐỘNG 2: Tìm hiểu thủ tục đưa dữ liệu ra màn hình a/ Mục tiêu - Giúp HS thấy được sự cần thiết của thủ tục đưa DL ra màn hình. - Biết được cấu trúc chung của thủ tục đưa DL ra màn hình. b/ Nội dung 2./ Đưa dữ liệu ra màn hình - Dùng để đưa kết quả sau khi xử lí ra 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 khi xử lí xong, kết quả tìm 1. Chú ý lắng nghe dẫn dắt của GV. được đang được lưu trong bộ nhớ. Để thấy được kết quả 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 của thủ tục xuất DL trong ngôn ngữ lập trình Pascal: - Phải nhập giá trị cho 2 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 ra màn hình giá trị - Viết lệnh: Writeln(-b/a); của nghiệm –b/a, Ta phải viết lệnh như thế nào? Viết 1 chương trình Pascal đơn giản. Program VD;. 2. Quan sát chương trình VD của GV..

<span class='text_page_counter'>(31)</span> Var. x, y, z:integer;. Begin Writeln(‘Nhập vào 2 số: ’); Readln(x,y); z:=x+y; Write(x:6, y:6, z:6); Readln; End. - Thực hiện chương trình và thực hiện nhập DL để HS thấy được kết quả trên màn hình. - Viết ra màn hình dòng chữ và đưa con trỏ - Hỏi: Chức năng của lệnh Writeln(); xuống dòng. - Hỏi: Ý nghĩa của 6 trong lệnh Write(...); - Dành 6 vị trí trên màn hình để viết số x, 6 vị trí tiếp - Hỏi: Khi các tham số trong lệnh Write() thuộc theo để viết số y, 6 vị trí tiếp theo để viết số z kiểu Char hoặc Real thì quy định vị trí như thế - 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 2 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 bộ 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 sự giống và khác nhau giữa Write(); và Writeln(); + Hãy so sánh sự giống và khác nhau giữa Read(); và Readln(); + Tìm hiểu chức năng của lệnh Readln; Writeln không tham số V. RÚT KINH NGHIỆM:.

<span class='text_page_counter'>(32)</span> 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 hiện và hiệu chỉnh chương trình - Biết một số công cụ của môi trường lập trình cụ thể - Biết sử dụng chương trình dịch để phát hiện 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 hiện và sửa các lỗi đơn giản c/ Thái độ: - Có thái độ ham thích khi thao tác với một 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 1. 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ạ. 2. 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 trong toán học, máy chiếu, máy vi tính, một 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ũ: 1. Trình bày câu lệnh nhập dữ liệu vào từ bàn phím? 2. Trình bày câu lệnh xuất dữ liệu ra màn hình? 3. Trình bày ý nghĩa lệnh readln và writeln khi không có tham số đi kèm? 4. Giới thiệu bài mới - Tiến hình hoạt động bài mới Hoạt động của Thầy. Hoạt động của 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 hiện và hiệu chỉnh chương trình của 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 một chương trình - Lưu chương trình : F2 - Dịch: Alt_F9 - Đóng chương trình : Alt_F3.

<span class='text_page_counter'>(33)</span> Đặt vấn đề : Để sử dụng được Turbo Pascal, 1. 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 2. 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, con trỏ, vùng soạn thảo... - Soạn 1 chương trình làm VD: Program VD; Var x: Integer; Begin Write(Nhap 1 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 1 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. 3. 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 hiện lỗi Program VD; Var x: Integer; Begin Write(‘Nhap 1 so nguyen duong’); Readln(x);.

<span class='text_page_counter'>(34)</span> - Hỏi: Khi nào có thể thực hiện 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Ò: 1. Những nội dung đã học. - Nhắc lại kiến thức trọng tâm. 2. Câu hỏi và bài tập. - Viết chương trình nhập vào 2 số và tính cộng, trừ, nhân, chia 2 số đó. - Viết chương trình nhập độ dài bán kính và tính chu vi diện tích của 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ố 1 SGK-T33 V. RÚT KINH NGHIỆM:.

<span class='text_page_counter'>(35)</span> 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ể hiện bài toán cụ thể bằng chương trình Pascal. b/ Về kỹ năng: - Bước đầu biết phân tích và hoàn thành một 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 trong học tập khi làm quen với nhiều quy định nghiêm ngặt trong lập trình. - Có ý thức cố gắng học tập vượt qua những khó khăn ở giai đoạn bắt đầu học lập trình. - Tạo sự ham muốn giải các bài tập bằng lập trình, trước mắt thấy được ích lợi của việc lập trình trong việc phục vụ tính toán và giải được một số bài toán đã nêu trong 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 trong toán học, máy chiếu, máy vi tính, một 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 mới Hoạt động của Thầy. Hoạt động của trò HOẠT ĐỘNG 1:. a/ Mục tiêu - Biết biểu diễn biểu thức toán học trong ngôn ngữ Pascal. - Biết một biểu thức trong ngôn ngữ Pascal tương ứng biểu thức trong toán học thế nào b/ Nội dung -. Hãy viết biểu thức toán học dưới đây trong Pascal: y z ( 1+ z ) 1 a− 1+ x 3 x+. -. Hãy chuyển các biểu thức trong Pascal dưới đâ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). 1. Hãy viết biểu thức toán học dưới đây trong Pascal:.

<span class='text_page_counter'>(36)</span> y z ( 1+ z ) 1 a− 1+ x 3 x+. - Yêu cầu học sinh xem sgk và 2 học sinh lên bảng làm bài tập. (1+z)*((x+y/z)/(a-1/(1+x*x*x))). 2. Hãy chuyển các biểu thức trong Pascal dưới đâ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à 4 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 một biểu thức Logic thể hiện đúng và sai. b/ Nội dung - Hãy viết biểu thức logic cho kết quả true khi toạ độ (x,y) là điểm nằm trong vùng gạch chéo kể cả biên của 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 ra diện tích phần gạch chéo. a. y. y - O ax a a 1. Hãy viết biểu thức logic cho kết quả true - Tập trung suy nghĩ, tìm câu trả lời. Tham gia khi toạ độ (x,y) là điểm nằm trong vùng gạch xây dựng bài chéo kể cả biên của các hình - Yêu cầu hs đọc câu hỏi. Đánh giá câu trả lời của học sinh.

<span class='text_page_counter'>(37)</span> (y<=1) and (y>= abs(x)). (abs (x)<=1) and (abs(y)<=1). 2. Hãy viết chương trình nhập vào số a (a > 0), tính và đưa ra 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 một chương trình: + Phân tích bài toán để xác định dữ liệu vào, dữ liệu ra. + Xây dựng thuật toán. - Phân biệt cách viết các công thức trong toán học với trong Pascal.

<span class='text_page_counter'>(38)</span> V. RÚT KINH NGHIỆM:.

<span class='text_page_counter'>(39)</span> 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 được một chương trình hoàn chỉnh đơn giản - Biết sử dụng một 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 một 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 khi làm việc với ngôn ngữ lập trình - Tự giác, tích cực trong 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 mới Hoạt động của Thầy. Hoạt động của 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 một 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 trong sách giáo khoa trang 34. - GV: Lưu ý học sinh một số điểm trong khi - 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’);.

<span class='text_page_counter'>(40)</span> 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 hiện 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 hiện. Xử lí hộp thoại:  Gõ tên tệp PTB2 vào mục Save File As  Gõ phím Enter hoặc 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 của chương trình; - Dịch chương trình và sửa lỗi cho đến khi chương trình không còn lỗi nữa. - Sau khi dịch xong chương trình, trên màn hình xuất hiện 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 hiện  Nhấn tổ hợp phím Ctrl + F9 chương trình và nhập giá trị. - Để thực hiện chương trình. Nhập các giá trị 1;-3 và 2. Quan sát kết quả hiển thị trên màn hình. - Thực hiện chương trình: Nhấn tổ hợp phím Ctrl + F9. Trên màn hình xuất hiện thông báo nhập vào các giá trị: a,b,c. Sau khi nhập xong các giá trị a=1,b=-3,c=2 thì kết quả chương.

<span class='text_page_counter'>(41)</span> trình là x1=1.00, x2=2.00 - Nêu một số điểm lưu ý trong 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 mỗi lần nhập một giá trị. hiện 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 của 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 của a, b, c. HOẠT ĐỘNG 2: a/ Mục tiêu - Tìm hiểu một chương trình Pascal hoàn chỉnh - Bước đầu biết phân tích và hoàn thành một chương trình đơn giản trên Turbo Pascal. b/ Nội dung -. Soạn thảo chương trình trong 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 trong sách giáo Giải: khoa trang 34. Program hcn; Var C, S, a, b: real; - Thực hiện chương trình và nhập dữ liệu. Begin Quan sát kết quả chương trình. Thực hiện Write (’Moi ban nhap chieu dai và chieu chương trình với những bộ dữ liệu khác nhau; rong cua hcn: ’); Readln; - Chỉnh sửa chương trình với những bộ dữ C:= (a+b)*2; liệu đã nhập. Quan sát kết quả 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 hiện. Xử lí hộp thoại:.

<span class='text_page_counter'>(42)</span> . Gõ tên tệp HCN vào mục Save File As . Gõ phím Enter hoặc 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 của chương trình; - Dịch chương trình và sửa lỗi cho đến khi chương trình không còn lỗi nữa. - Sau khi dịch xong chương trình, trên màn hình xuất hiện 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 hiện chương trình. Nhập các giá trị 1;-3 và 2. Quan sát kết quả hiển thị trên màn hình. - Thực hiện chương trình: Nhấn tổ hợp phím Ctrl + F9. Trên màn hình xuất hiện thông báo nhập vào các giá trị: a,b,c. Sau khi nhập xong các giá trị a=1,b=-3,c=2 thì kết quả 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 mỗi lần nhập một 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 của 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 những vấn đề quan trọng trong 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 hiện chương trình và nhập dữ liệu. Quan sát kết quả chương trình. Thực hiện chương trình với những bộ dữ liệu khác nhau;.

<span class='text_page_counter'>(43)</span> - Chỉnh sửa chương trình với những bộ dữ liệu đã nhập. Quan sát kết quả 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 trong sgk trang 35-36..

<span class='text_page_counter'>(44)</span> 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 trong 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 trong mô tả thuật toán của một số bài toán đơn giản. - Viết được các lệnh rẽ nhánh dạng thiếu, rẽ nhánh dạng đủ và áp dụng để thực hiện được thuật toán của một số bài toán đơn giản. c/ Thái độ: - Giúp học sinh hiểu rõ hơn tầm quan trọng của 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 hơn. - Xác định thái độ nghiêm túc trong học tập khi 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, vở 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ũ: 1. 2. 3. - Tiến hình hoạt động bài mới Hoạt động của Thầy. Hoạt động của trò HOẠT ĐỘNG 1:. Tìm hiểu về 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 trong 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 2 dạng tổng quát.

<span class='text_page_counter'>(45)</span> Giải phương trình bậc 2: ax2 + bx + c = 0. Trong đó ( Delta b. 2.  4ac ). 1. Khái niệm rẽ nhánh Bắt đầu. Nêu các bước để kết luận nghiệm của pt bậc hai: ax2 + bx + c=0. Nhập a, b, c. - Tính delta. - Nếu delta < 0 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 hiện vẽ sơ đồ như ở phần nội dung. Sai. Xét 2 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ì về sự khác nhau giữa - HS: suy nghĩ trả lời. 2 câu lệnh trên? ⇒ một 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ể hiện rẽ nhánh khác nhau. Ta xét câu lệnh rẽ nhánh IF – THEN trong Pascal.. HOẠT ĐỘNG 2: Tìm hiểu ý nghĩa củ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 đủ:.

<span class='text_page_counter'>(46)</span> IF <điều kiện> THEN <câu lệnh 1> ELSE <câu lệnh 2>; 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ệ hoặc biểu thức lôgic. - Câu lệnh, Câu lệnh 1, Câu lệnh 2 là 1 câu lệnh của Pascal. * Ý nghĩa câ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 hiện câu lệnh sai thì bỏ qua. - Dạng 2: Điều kiện đúng thì thực hiện câu lệnh 1 sai thì thực hiện câu lệnh 2. Ví dụ: - Vd1: If (x mod 2 = 0) then write(‘x, la so chan’); -VD2: If D < 0 then write (‘phuong trinh vo nghiem’) else write (‘ phuong trinh co . Phân tích ví dụ tìm giá trị lớn nhất (Max) nghiem’); trong SGK - GV: Với hai dạng trên dạng nào dùng thuận.

<span class='text_page_counter'>(47)</span> 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ác lệnh rẽ nhánh dạng thiếu, rẽ nhánh dạng đủ và áp dụng để thực hiện được thuật toán của một 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; 3. Câu lệnh ghép - Trường hợp sau THEN hoặc ELSE có từ hai câu lệnh trở lên thì Pascal có thực hiện được hay không? muốn thực hiện được thì phải sử dụng gì?. -. Suy nghĩ trả lời:.  Được  Ghép hai câu lệnhn kia lại. - Khi đó ta cần gộp nhiều câu lệnh thành một  Trong Pascal câu lệnh ghép có dạng: câu lệnh trong chương trình. Ngôn ngữ Pascal cho phép ta làm được đ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 một số kiến thức vừa học xong? - Làm một 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:.

<span class='text_page_counter'>(48)</span> 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 quyết một 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 của một hình chữ nhật và tính chu vi, diện tích của hình chữ nhật đó. - VD2: Tìm nghiệm của pt bậc 2. 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 hơn. II. CÁC BƯỚC TIẾN HÀNH: HOẠT ĐỘNG CÙA GIÁO VIÊN 1. Nêu nội dung, mục đích yêu cầu của VD1. Viết chương trình nhập vào độ dài hai cạnh của một hình chữ nhật và tính chu vi, diện tích của 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 trong chương trình của các em? - Hướng giải quyết của các em như thế nào?. HOẠT ĐỘNG CỦA HỌC SINH 1. 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ó trong thực tế. - Dùng lệnh rẽ nhánh để kiểm tra giá trị của đọ 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 về nhà tiếp tục hoàn thiện 2. Ghi đề bài, chú ý mục đích yêu cầu của chương trình. bài tập. 2. Nêu nội dung của bài tập, mục đích yêu cấu của bài tập. - Tính delta. Tìm nghiệm của 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 >= 0 thì pt có nghiệm: của 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ũng có thể sử dụng một 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Ò: 1. Những nội dung đã học - Cấu trúc chung của cấu trúc rẽ nhánh. - Sự thực hiện của máy khi gặp cấu trúc rẽ nhánh IF..

<span class='text_page_counter'>(49)</span> - Sơ đồ thực hiện của cấu trúc rẽ nhánh IF. 2. Bài tập - Trả lời câu hỏi 1, 2, 4 SGK trang 50. - Viết chương trình giải nhập vào 2 số bất kỳ và in ra màn hình giá trị lớn nhất của 2 số. 3. 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:.

<span class='text_page_counter'>(50)</span> 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 trong 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 từng lọai cấu trúc lặp phù hợp với từng tình huống cụ thể, đơn giản. - Mô tả được thuật tóan của một 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 của một số bài tóan đơn giản c/ Thái độ: - Giúp học sinh hiểu rõ hơn tầm quan trọng của 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 hơn. - Xác định thái độ nghiêm túc trong học tập khi 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, vở 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ũ: 1. Phân biệt cấu trúc rẻ nhánh thiếu – rẻ nhánh đủ 2. Viết câu lệnh IF – Then dạng thiếu; cho ví dụ 2. Viết câu lệnh IF – Then dạng đủ; cho ví dụ - Tiến hình hoạt động bài mới Tiết 13: Hoạt động 1, 2 Tiết 14: Hoạt động 3, 4 Hoạt động của Thầy. Hoạt động của trò. Tiết 13 HOẠT ĐỘNG 1: Tìm hiểu ý nghĩa của cấu trúc lặp a/ Mục tiêu - Học sinh thấy được sự cần thiết của cấu trúc lặp trong lập trình. b/ Nội dung:.

<span class='text_page_counter'>(51)</span> 1./ Lặp Bài toán 1: Viết chương trình tính tổng: S= ❑¿❑. 1 a. +. 1 1 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 được số tiền là bao nhiêu? 1. Nêu bài toán đặt vấn đề như bài toán 1:. 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 như một cái thúng nước, các số hạng như là những cái ca có dung tích khác nhau, khi đó việc tính tổng trên tương tự như việc đổ các ca nước vào trong thùng S. - Có bao nhiêulần đổ nước vào thùng? - Mỗi lần đổ một 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 công thức. - Theo dõi gợi ý.. - Phải thực hiện 100 lần đổ nước. - Mỗi lần đổ là:. 1 a+i. - Phải viết 100 lệnh.. 2. Chú ý quan sát và trả lời câu hỏi 2. Nêu bài toán đặt vấn đề như bài toán 2: - Em hiểu như thế nào về cách tính tiền gửi tiết - Với số tiền gửi S, sau mỗi tháng sẽ có tiền lãi là 0,015 * S. kiệm trong bài toán 2. - Số tiền này được cộng vào trong số tiền ban đầu để tính lãi cho tháng tiếp theo. - Từ đó, hãy lập công thức tính tiền thu được - S:= S+ 0,015 * S; sau tháng thứ nhất. - Ta phải thực hiện tính bao nhiêu lần như vậy? - Phải thực hiện tính 12 lần như vậy. - Dẫn dắt: Chương trình được viết như vậy sẽ rất dài, khó đọc và dễ sai sót. Cần có một 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 hiện các công việc trên. - Trong tất cả các ngôn ngữ lập trình đều có một cấu trúc điều khiển việc thực hiện lặp lại với số lần đã định trước. 3. Yêu cầu học sinh viết thuật toán giải quyết 3. Thảo luận để viết thuật toán. Bước 1: N 0; S 1/a; bài toán 1, 2. 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 ra màn hình rồi kết thúc. HOẠT ĐỘNG 2: Tìm hiểu lệnh lặp For của ngôn ngữ Pascal.

<span class='text_page_counter'>(52)</span> a/ Mục tiêu - Học sinh biết được cấu trúc chung của lệnh FOR. Hiểu được ý nghĩa của các thành phần trong lệnh. Biết được sự thực hiện của máy khi gặp FOR. Vẽ sơ đồ thực hiện đó. b/ Nội dung: 2./ Lặp với số lần lặp biết trước và câu lệnh For - do a./ Cấu trúc lặp tiến: For <biến đếm>:= <Giá trị đầu> to <Giá trị cuối> do <lệnh cần lặp> Biến đếm: là biến kiểu nguyên, kí tự hoặc miền con. 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ỏ hơn hoặc bằng giá trị cuối. Sự thực hiện của 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 hiện lặp tăng biến đếm lên 1 đơn vị, quay lại Bước 2. 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> do <lệnh cần lặp> Biến đếm: là biến kiểu nguyên, kí tự hoặc miền con. Giá trị đầu phải lớn hơn hoặc bằng giá trị cuối. Sự thực hiện của 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 hiện lặp Giảm biến đếm di 1 đơn vị, quay lại Bước 2. Sơ đồ thực hiện:. Sai Đúng.

<span class='text_page_counter'>(53)</span> 1. Yêu cầu học sinh nghiên cứu SGK và cho 1. Đọc SGK và trả lời biết cấu trúc chung của FOR? For <biến đếm>:= <Giá trị đầu> to <Giá trị cuối> do <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 của <giá trị đầu> <giá trị cuối>,  Cùng kiểu với <biến đếm> kiểu dữ liệu của chúng? - Hỏi: Em có nhận xét gì về giá trị của <giá trị  giá trị đầu < giá trị cuối đầu> và <giá trị cuối>? 2. Nghiên cứu SGK suy nghĩ so sánh với cấu 2. Yêu cầu trình bày cấu trúc của FOR lùi. trúc của FOR tiến. For <biến đếm>:= <Giá trị cuối> Downto <Giá trị đầu> do <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ủa cấu trúc lặp có số lần chưa xác định a/ Mục tiêu - Biết được sự cần thiết phải có cấu trúc lặp có số lần chưa xác định trong 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 - do. - Bài toán 1: Viết chương trình tính tổng: S= đến khi. 1 + a. 1 + a+1. 1 +...+ a+2. 1 a+ N. +...cho. 1 < 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ó được số tiền lớn hơn S1 đồng? 1. Chiếu nội dung của bài toán 1.. 1. Chú ý lắng nghe, quan sát và suy nghĩ để trả lời. - Hỏi: Sự khác nhau của 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 ngay được. 1 - Hỏi: Lặp đến khi nào? - Đến khi điều kiện <0,0001 được thỏa a+ N.

<span class='text_page_counter'>(54)</span> mãn. 2. Chiếu nội dung bài toán 2. 2. Chú ý lắng nghe, quan sát và suy nghĩ trả lời. - Hỏi: Sự khác nhau trong 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 khi số tiền thu được > S1 đồng. 3. Theo dõi và ghi nhớ kết luận của giáo viên - Hỏi: Lặp đến khi nào? 3. Kết luận: Qua 2 VD ta thấy có một dạng bài toán có sự lặp lại của một số lệnh nhưng không biết trước được số lần lặp. Cần có một cấu trúc điều khiển lặp lại một công việc nhất định khi thỏa mãn một điều kiện nào đó. HOẠT ĐỘNG 4: Tìm hiểu cấu trúc lệnh lặp While trong Pascal a/ Mục tiêu - Học sinh biết được cấu trúc chung của lệnh While. Hiểu được ý nghĩa của các thành phần trong lệnh. Biết được sự thực hiện của máy khi gặp lệnh While. Vẽ được sơ đồ thực hiện đó. b/ Nội dung: - Cấu trúc: While <điều kiện> do <lệnh cần lặp>; Điều kiện: là biểu thức quan hệ hoặc biểu thức logic. Sự thực hiện của máy: Bước 1: Tình giá trị của <điều kiện>. Bước 2: Nếu <điều kiện> có giá trị đúng thì: Thực hiện 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. 1. Yêu cầu học sinh nghiên cứu SGK và cho 1. Tham khảo SGK và trả lời. biết cấu trúc chung của 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ệ hoặc biểu While <điều kiện> do <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ì?.

<span class='text_page_counter'>(55)</span> - 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ì?. 1 > 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 sự khác nhau trong lệnh cần lặp S:= S + 1/(a+i): để tính tổng, i:= i+1 để tăng chỉ số. FOR và While là gì? - Dựa vào cấu trúc chung, hãy cho biết máy sẽ thực hiện tính <điều kiện> trước hay thực hiện  While phải có lệnh tăng biến chỉ số. <lệnh cần lặp> trước?  Tính biểu thức điều kiện trước.  Thực hiện lệnh cần lặp sau. 2. 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 của lệnh While. IV. DĂN DÒ: 1. Những nội dung đã học - Cấu trúc chung của cấu trúc lặp. - Sự thực hiện của máy khi 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 hiện của cấu trúc rẽ nhánh IF. 2. Bài tập - Trả lời câu hỏi SGK. 3. 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:.

<span class='text_page_counter'>(56)</span> Tiết 15 - 17: Bµi tËp vµ thùc hµnh 2 I. MỤC TIÊU, YÊU CẦU: a/ Kiến thức: - Nắm chắc cấu trúc và sơ đồ thực hiện của cấu trúc rẽ nhánh. - Nắm chắc cấu trúc và sơ đồ thực hiện của cấu trúc lặp b/ Kĩ năng: - Rèn luyện kĩ năng sử dụng cấu trúc rẽ nhánh – cấu trúc lập trong việc lập trình giải một 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 trong 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 mới Hoạt động của Thầy. Hoạt động của trò. HOẠT ĐỘNG 1: khái niệm về bộ số Pitago (Câu lệnh IF – THEN) - Hỏi: Để kiểm tra bộ 3 số a, b, c bất kỳ có phải là bộ Pitago, ta phải kiểm tra các đẳng thức nào.  Tổng bình phương của 2 số bằng bình phương của 2 số còn lại. - VD 5 4 3 - a2 = b2 + c2 b2 = a2 + c2 c2 = a2 + b2. - Yêu cầu: học sinh thực hiện các thao tác  Soạn chương trình vào máy theo yêu cầu của soạn chương trình, lưu, thực hiện từng 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 hiện từng lệnh của chương trình. - Yêu cầu học sinh xem kết quả a2, b2, c2 - Yêu cầu học sinh tự tìm thêm một số bộ a b c khác và so sánh HOẠT ĐỘNG 2:.

<span class='text_page_counter'>(57)</span> (Câu lệnh LẶP) Ví dụ 1 : 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ị của tổng X(N) = 13 + 33 + 53 + ........+ (2N + 1)3, với N lần lượt 0, 1, 2, 3, ,........ , chừng nào X(N) cò nhỏ hơn 2 x 109. Đưa ra các giá trị X(N) ra 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 trong. - Báo cáo kết quả của nhóm. - Nhận xét, đánh giá và bổ sung các thiếu sót của nhóm khác  Thực hiện chương trình trên máy IV. DĂN DÒ: 1. Những nội dung đã học - Cấu trúc chung của cấu trúc lặp. - Sự thực hiện của máy khi 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ỹ năng thao tác với chương trình khi thực hiện trực tiếp trên máy tính..

<span class='text_page_counter'>(58)</span> TIẾT 18: KIỂM TRA 45 PHÚT.

<span class='text_page_counter'>(59)</span> 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 được khái niệm mảng một chiều - Hiểu cách khai báo và truy cập đến các phần tử mảng b/. Kĩ năng - Cài đặt được thuận toán của một vài bài toán đơn giản - Thực hiện được khai báo mảng, truy cập, tính toán các phần tử của 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ị của 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 mới Hoạt động của Thầy. Hoạt động của trò. HOẠT ĐỘNG 1 : Tìm hiểu ý nghĩa của mảng một chiều. a/ Mục tiêu: Biết được ý nghĩa và sự cần thiết của kiểu mảng một chiều trong việc giải quyết một số bài toán. Biết được khái niệm kiểu mảng một chiều. b/ Nội dung: 1./ Kiểu mảng một chiều - Ví dụ: Nhập vào nhiệt độ (trung bình) của mỗi ngày trong tuần . Tính và in ra màn hình nhiệt độ trung bình của tuần và số lượng ngày trong tuần có nhiệt độ cao hơn nhiệt độ trung bình tính được. - Chương trình minh họa. Program nhiet do tuan; Var t1, t2, t3, t4, t5, t6, tb:real; dem:integer; Begin Write(‘Nhap vao nhiet do cua 7 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;.

<span class='text_page_counter'>(60)</span> if t7>tb then dem:=dem+1; Write(‘nhiet do trung binh tuan:’,tb); Writeln(‘So ngay nhiet do cao hon nhiet do trung binh tuan:’,dem): readln; End. - Mảng một chiều là dãy hữu hạn các phần tử co cùng kiểu dữ liệu. Các phần tử trong mảng có cùng chung một tên và phân biệt nhau bởi chỉ số. Để mô tả mảng một chiều cần xác định được kiểu của các phần tử và cách đánh số các phần t ử của nó. - Hầu hết các ngôn ngữ lập trình đều có quy tắc cho phép xác định: tên kiểu mảng, số lượng phần tử, kiểu dữ liệu của từng phần tử, cách khia báo một biến mảng và cách tham chiếu đến từng phần tử của từng mảng. c/ Các bước tiến hành: 1. 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ó những hạn chế như thế nào? - Dẫn dắt: Để khắc phục những hạn chế trên, người ta thường ghép chung 7 biến trên thành một dãy và đặt cho nó chung một tên và đánh cho mọt phần tử một chỉ số. 2. Yêu cầu học sinh tham khảo sách giáo khoa và hỏi: Em hiểu như thế nào về mảng một chiều?. 1. 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 rất dài.. 2. Nghiên cứu sách giáo khoa để trả lời. - Mảng một chiều là dãy hữu hạn các phần tử có cùng kiểu dữ liệu. Các phần tử trong mảng có cùng chung một tên và phân biệt - Hỏi: Để mô tả mảng một chiều, ta cần xác nhau bởi chỉ số. định những yếu tố nào? - Để mô tả mảng một chiều cần xác định được kiểu của các phần tử và cách đánh số các phần tử của nó. HOẠT ĐỘNG 2: Tạo kiểu mảng một chiều và khai báo biến mảng. a/ Mục tiêu: - Học sinh biết được cách tạo kiểu dữ liệu mảng một chiều trong ngôn ngữ lập trình Pascal, biết cách khai báo biến và tham chiếu đến từng phần tử của mảng. b/ Nội dung: - Tạo kiểu dữ liệu mảng một 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à một đoạn số nguyên(hoặc là một đoạn kí tự) xác định chỉ số đầu và chỉ số cuối của mảng. + Kiểu_thành_phần: Là kiểu dữ liệu chung của mọi phần tử trong mảng - Khai báo biến mảng một chiều: VAR tên_biến:tên_kiểu_mảng; - Tham chiếu đến từng phần tử: Tên_biến [chỉ số] c/ Các bước tiến hành: 1. Yêu cầu học sinh nghiên cứu sách giáo 1. Tham khảo sách giáo khoa và trả lời. khoa và hco biết cách tạo kiểu dữ liệu mảng - TYPE tên_km= Array[kieeru cs] Of một chiều trong ngôn ngữ lập trình Pascal. kiểu_thành_phần; - Tìm một ví dụ để minh họa..

<span class='text_page_counter'>(61)</span> - Ví dụ: Type mmc=array[1..100] of integer; - Tạo mọt kiểu dữ liệu mới 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 của lệnh bạn vừa viết? - Chiếu lên bảng một số khia báo kiểu mang một 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? 2. Yêu cầu học sinh cho biết cách khai bóa biến và một ví dụ khai báo một biến mảng 2. Tham khảo sách giáo khoa và trả lời ứng với kiểu dữ 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 của lệnh - Ví dụ : Var a:mmc; bạn vừa viết? - Khai báo một biến mảng một chiều. - Dung lượng bộ nhớ của biến a đã chiếm là bao nhiêu? - a đã chiếm 200 byte trong bộ nhớ. - Chú ý cho học sinh về cách đặt tên kiểu dữ liệu và tên biến, tránh nhầm lẫn. 3. Giới thiệu cách tham chiếu đến từng phần tử của mảng một chiều. Yêu cầu học sinh lấy 3. Theo dõi hướng dẫn của giáo viên và độc một ví dụ. lập suy nghĩ để trả lời. a[1] là phần tử ở vị trí 1 của mảng a. a[i] là phần tử ở vị trí i của mảng a. HOẠT ĐỘNG 3 : Rèn luyện kĩ năng sử dụng kiểu mảng một chiều a/ Mục tiêu: - Học sinh sử dụng được biến kiểu mảng một hciều để giải quyết một bài toán đơn giản. b/ Nội dung: Bài toán: Giải quyết bài toán ở phần đặt vấn đề trong hoạt động 1, trong đó có sử dụng biến mảng một chiều. c/ các bước tiến hành: 1. Giới thiệu đề bài. - Chiếu đề bài lên bảng. - Yêu cầu học sinh xác định dữ liệu vào, dữ liệu ra.. - Hỏi: Nếu không sử dụng biến mảng một chiều, ta có thể giải quyết được bài toán không? Khó khăn gì không? 2. Định hướng: Sử dụng kiểu mảng một chiều để giải quyết 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.. 1. Quan sát đề bài, theo dõi những yêu cầu cần giải quyết của dề bài. - Vào: 7 số là giá trị nhiệt độ của 7 ngày trong tuần. - Ra: Số ntb là nhiệt độ trung bình trong tuần và số nch là số ngày có nhiệt độ cao hơn nhiệt độ trung bình. - Được. - Chương tình dài dòng, khó sửa đổi.... 2. Theo dõi sự hướng dẫn của giáo viên Type tuan=array[1..7] of real; Var ndtuan : tuan;.

<span class='text_page_counter'>(62)</span> - 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ị của mảng. cần giải quyết. - Đếm số phần tử có giá trị lớn hơn trungbình cộng có được. 3. Chia lớp thành 3 nhóm. Yêu cầu viết 3. Thảo luận theo nhóm để viết chương trình. chương trình lên giấy bìa trong. - Báo cáo kết quả viết được. - Nhận xét, đánh giá và bổ sung những - Thu phiếu trả lời, chiếu lên bảng. Gọi học thiếu sót của nhóm khác. sinh nhóm khác nhận xét đánh giá. 4. Quan sát và ghi nhớ. 4. 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 một 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 từng phần tử: Tên_biến[chỉ số] b/ Câu hỏi và bài tập về nhà. - Viết chương trình nhập vào một mảng gồm n số nguyên( 1<=n<=100), mỗi 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 về kiểu mảng hai chiều, sách giáo khoa trang 59. V. ĐÁNH GIÁ RÚT KINH NGHIỆM :.

<span class='text_page_counter'>(63)</span> TIẾT 22 - 26 BÀI THỰC HÀNH SỐ 3 - 4 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 cơ bản về kiểu dữ liệu mảng. b/ Kĩ năng - Nâng cao kĩ năng sử dụng một số lệnh kỉeu dữ liệu mảng một chiều trong lập trình, cụ thể: + Khai báo kiểu dữ liệu mảng một chiều. + Nhập/xuất dữ liệu cho mảng. + Duyệt qua tất cả các phần tử của mảng để xử lí từng phần tử. - Biết giải một số bài toán cơ bả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ỏ nhất. c/ Thái độ - Góp phần rèn luyện tác phong, tư duy lập trình: Tự giác, tích cực, chủ độngvà sáng tạo trong tìm kiếm kiến thức. II. PHƯƠNG PHÁP – PHƯƠNG TIỆN DẠY HỌC 1. Chuẩn bị của giáo viên. - Phòng máy tính, máy chiếu Projector để minh họa. 2. Chuẩn bị của học sinh. - Sách giáo khoa. III. HOẠT ĐỘNG DẠY – HỌC . Tiết 22 : Hoạt động của Thầy. Hoạt động của trò. HOẠT ĐỘNG 1 : Tìm hiểu cách sử dụng lệnh và kiểu dữ liệu mảng một chiều qua chương trình có sẵn. a/ Mục tiêu: - Học sinh hiểu được chương trình có sẵn ở câu a, biết được kết quả chạy chương trình này, từ đó tìm ra cách giải quyết 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;.

<span class='text_page_counter'>(64)</span> Write(‘nhap n=’); readln(n); For i:=1 to n do a[i]:=random(300) – random(300); For i:=1 to n do Write(A[i]:5); Writeln; Write(;nhap k=’); readln(k); s:=0; For i:=1 to n do 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 mới vào chương trình nhằm sửa đổi chương trình trong câu a dể chương trình thực hiện đếm số dương và số lượng số âm của 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: 1. tìm hiẻu chương tình ở câu a, sách giáo 1. 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 con Crt để - Hỏi: Khai báo Uses CRT; có ý nghĩa gì? sử dụng được thủ tục Clrscr; - Hỏi: Myarray là tên kiểu dữ liệu hay tên biến? - Tên kiểu dữ liệu. - Hỏi: Vai trò của nmax và n có gì khác nhau? - nmax là số phần tử tối đa có thể chứa của biến mảng a.n là số phần tử thực tế của 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 hiện chương trình để học sinh thấy - Quan sát chương trình thực hiện và kết kết quả. 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 do - In ra màn hình giá trị của từng phần tử Write(A[i]:5);có ý nghĩa gì? trong mảng a. - Hỏi : Lệnh For – Do cuối cùng thực hiện - Cộng các phần tử chia hết cho k. nhiệm vụ gì? - Hỏi: Lệnh s:=a+a[i]; được thựchiện bao - Có số lần đúng bằng số phần tử a[i] chia nhiêu lần? hết k. - Thực hiện lại chương trình lần cuối để học - Quan sát giáo viên thực hiện chương trình sinh thấy kết quả. và kết quả trên màn hình. 2. Sửa chương trình câu a để được chương 2. Quan sát và chú ý theo dõi các câu hỏi của trình giải quyết bài toán ở câu b. giáo viên:.

<span class='text_page_counter'>(65)</span> - 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 trong chương trình câu a. - Hỏi: ý nghĩa của biến Posi và neg? - Hỏi: Chức năng của lệnh: - Dùng để lưu số lượng đếm được. If a[i] >0 then posi:=posi+1 - Đếm số dương hoặc đế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 được số. - Chỉ ra vị trí cần thêm vào trong 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 hiện chương trình và báo cáo - Lưu chương trình. Thực hiện chương trình kết quả. và thông báo kết quả. Tiết 23 - 24 : Hoạt động của Thầy. Hoạt động của trò HOẠT ĐỘNG 2:. rèn luyện kĩ năng lập trình. a/ Mục tiêu: - Viết được chương trình hoàn thiện bằng cách sử dụng lệnh và kểi dữ liệu mảng một chiều. b/ Nội dung: - Viết chương trình tìm phần tử có giá trị lớn nhất của mảng và in ra màn hình chỉ số và giá trị của phần tử tìm được. Nếu có nhiều phần tử có cùng giá trị lớn nhất thì chỉ đưa ra phần tử có chỉ số nhỏ nhất. c/ Các bước tiến hành: 1. Lấy một ví dụ thực tiễn: Người mù tìm 1. Theo dõi vị trí của giáo viên. viên sỏi có kích thước lớn nhất trong một dãy các viên sỏi để gợi ý cho học sinh thuật toán tìm giá trị lớn nhất. - Yêu cầu: Nêu thuật toán tìm phần tử có - So sánh lần lượt từ trái sang phải, giữ lại giá trị lớn nhất. chỉ số của phần tử lớn nhất. 2. Tìm hiểu chương trình tìm chỉ số và giá trị 2. Quan sát chương trình, suy nghĩ và trả lời. lớn nhất. - Chiếu chương tình ví dụ, sách giáo khoa, trang 64. - Giữ lại chỉ số của phần tử có giá trị lớn - Hỏi: Vai trò của biến j trong chương nhất. 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è 1. - Hỏi: Nếu muốn tìm phần tử lớn nhất với chỉ số lớn nhất ta sửa ở chỗ nào? 3. Theo dõi yêu cầu, suy nghĩ các câu hỏi 3. Đặt yêu cầu mới: Viết chương trình đưa định hướng để viết chương trình. ra các chỉ số của các phần tử có giá trị lớn nhất. - Có..

<span class='text_page_counter'>(66)</span> - Hỏi: Cần giữ lại đoạn chương trình tìm giá trị lớn nhất 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 dữ liệu vào của giáo viên và báo kết quả. - Đánh giá kết quả của học sinh.. - Lệnh để in ra các chỉ số có giá tị bằng giá trị lớn nhất tìm được. - Sau khi tìm được giá trị lớn nhất. - Soạn chương trìnhvào máy. Thực hiện chương trình và thông báo kết quả. - Nhập dữ liệu vào và thông báo cho giáo viên dữ liệu ra.. Tiết 25 - 26 : Hoạt động của Thầy. Hoạt động của trò HOẠT ĐỘNG 3:. Tìm hiểu chương trình diễn đạt của thuật toán sắp xếp. a a/ Mục tiêu: - Học sinh hiểu chương trình và thuật toán sắp xếp đơn giản. b/ Nội dung: Bài toán 1: Viết chương trình sắp xếp các phần tử của 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 do a[i]:=random(300) – random (300); For i:=1 to n do write(a[i]:5); Writeln; For i:=n dowto 2 do For i:=1 to i – 1 do 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 khi sap xep’); For i:=1 to n do write(a[i]:7);.

<span class='text_page_counter'>(67)</span> Writeln; readln; End. 1. Gợi ý cho học sinh thuật toán sắp xếp tăng dần. - Lấy một ví dụ thực tiễn: Người mù sắp xếp một dãy các viên bi theo kích thước không giảm. - Yêu cầu: Vạch ra các bước để sắp xếp các phần tử của một mảng không giảm.. 2. 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ò của biến i, j trong chương trình? Mỗi vòng lặp For trong đoạn chương trình sắp 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 hiện chương trình, nhập dữ liệu để học sinh thấy kết quả chương trình. - Hỏi: Chương trình làm công vịêc gì? 3. Sửa chương trình để giẩi quyết 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 hiện tráo đổi trong thuật toán. In kết quả tìm được ra màn hình. - Hỏi: Đoạn chương trình nào dùng để thực hiện 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 được viết ở vị nào trong chương trình? - Yêu cầu học sinh soạn chương trình?. 1. Chú ý theo dõi những dẫn dắt của giáo viên để trả lời câu hỏi.. - Lần lượt lấy từng phần tử từ trái qua phải. - Cứ mỗi phần tử ta đem so sánh lần lượt với các phần tử đứng bên phải của nó. - Nếu nhỏ hơn thì đổi chỗ. 2. 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 chỉ số. - Mỗi vòng lặp For ứng với mỗi phép duyệt lần lượt. - Dùng để đổi giá trị của hai phần tử a[i] với a[i+1]. - Quan sát giáo viên thực hiện chương trình. - Chương trình sắp xếp dãy số theo thứ tự không giảm. 3. Quan sát yêu cầu mới, chú ý định hướng giải quyết của 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 hiện - Yêu cầu học sinh nhập dữ liệu vào của giáo chương trình và thông báo kết quả. viên và thông báo kết quả. - Nhập dữ liệu theo yêu cầu của giáo viên, - Đánh giá kết quả của học sinh. thực hiện chương trình và thông báo kết quả sau khi thực hiện. IV. ĐÁNH GIÁ CUỐI BÀI 1. Những nội dung đã học. - Thuật toán sắp xếp đơn giản..

<span class='text_page_counter'>(68)</span> - Một bài toán có thể có nhiều cách viết thành một chương trình. Cần chọn cách có số phép tính ít nhất. 2. Câu hỏi và bài tập về nhà. - Xem lại tất cả các kiến thức đã học, bao gồm: Lệnh cơ bản, lệnh điều khiển, kiểu dữ liệu cơ bản, kiểu dữ liệu có cấu trúc..

<span class='text_page_counter'>(69)</span> 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à một dãy ký tự. - Biết cách khai báo xâu, truy cập đến phần tử xâu. - Biết mộ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 1. Chuẩn bị của giáo viên. - Máy vi tính, máy chiếu Projector để giới thiệu ví dụ. 2. Chuẩn bị của 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 mới - Tiến trình dạy học : + Tiết 27 : Hoạt động 1, 2, 3 + Tiết 28 : Hoạt động 4 Tiết 27 Hoạt động của Thầy. Hoạt động của trò. HOẠT ĐỘNG 1: Tìm hiểu về xâu và cách sử dụng. a/ Mục tiêu: - Học sinh biết được ý nghĩa của xâu và một số khái niệm của xâu. Biết cách khai báo biến xâu, nhập xuất dữ liệu cho biến xâu và tham chiếu đến từng kí tự trong xâu. b/ Nội dung: * Khái niệm: - Xâu kí tự là dãy các kí tự trong bảng mã ASCII, mỗi kí tự được gọi là một phần tử của xâu. Số lượng các kí tự trong xâu được gọi là độ dài xâu. Xâu có độ dài bằng không là xâu rỗng. - Khai báo biến: VAR tên_biến : STRING[độ dài lớn nhất của xâu]; - Tham chiếu đến từng kí tự trong xâu: tên_biến[chỉ_số] c/ Các bước tiến hành: 1. Tìm hiểu ý nghĩa của xâu kí tự. - Chiếu đề bài của bài toán đặt vấn đề: Viết chương trình nhập họ tên của 30 học sinh trong lớp. - Hỏi: ta sẽ chọn kiểu dữ liệu như thế nào? Khai báo biến như thế nào?. 1. Quan sát, suy nh\ghĩ và trả lời.. - Kiểu mảng một chiều gồm 30 kí tự. - Khai báo một biến mảng A để lưu họ tên của một 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 dữ liệu cho từng phần tử. .........

<span class='text_page_counter'>(70)</span> - Hỏi: Có những khó khăn gì gặp phải? - Dẫn dắt: Cần có một kiểu dữ liệu mới cho phép ta nhập/ xuất dữ liệu cho xâu bằng một lệnh. 2. Tìm hiểu về kiểu xâu. - Chiếu lên bảng cách khia báo biến xâu trong ngôn ngữ lập trình Pascal. - Hỏi: ý nghĩa củ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ụ một xâu kí tự - Hỏi: Xâu có bao nhiêu kí tự? - Diễn giải: Mỗi kí tự được gọi là một phần tử của xâu. Số lượng kí tự trong xâu được gọi là độ dài của xâu. - Hỏi: Xâu chỉ gồm một kí tự trống được viết như thế nào? Số lượng kí tự bao nhiêu? - Hỏi: Xâu rỗng được viết như thế nào? Số lượng kí tự bao nhiêu? 3. Nhập/xuất dữ liệu cho biến xâu trong ngôn ngữ Pascal. - Giới thiệu cấu trúc chung của thủ tục nhập/xuất dữ 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 dữ 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 một ví dụ cụ thể.. - Chương trình được viết dài dòng. Khi nhập dữ liệu, phải thực hiện gõ nhiều phím.. 2. 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ó 6 kí tự, dấu cách là một kí tự.. - Kí hiệu của xâu gồm một kí tự trống là ‘ ’. Xâu nà có độ dài là 1. - Kí hiệu của xâu rỗng là ‘ ’. Xâu này có độ dài là 0. 3. Quan sát bảng để trả lời.. - Ví dụ: Readln(ho ten); - Ví dụ: Write(‘ho ten’,hoten); - Viết một lệnh nhập nguyên cho cả xâu. Viết lệnh gọn hơn, CHương trình gọn. - Ví dụ:St:=’HA NOI’;. 4. Tham chiếu đến từng kí tự của xâu. 4. 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 nhau so với cách - Giống cấu trúc chung khi tham chiếu tên tham chiếu đến từng phần tử của mảng. biến[chỉ số] - Yêu cầu học sinh tìm một ví dụ. - Ví dụ: st[2] 5. 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;. 5. Quan sát chương trình trên bảng và độc lập suy nghĩ..

<span class='text_page_counter'>(71)</span> Begin c:=st[1]; {1} - Lệnh {1} đúng. c:=st; {2} - Lệnh {2} sai. không thể gán một xâu cho End. một kí tự . - Hỏi: Trong hai lệnh {1} và {2}, Lệnh nào đúng? - Thực hiện 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ác phép toán liên quan đến xâu. Diễn đạt được các phép toán đó trong 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à +, được sử dụng để ghép nhiều xâu thành một xâu. - Các phép so sánh; =, <>,>, <, <=,>=: Thực hiện việc so sánh hai xâu. Xâu A được xem là lớn hơn xâu B nếu như kí tự khác nhau đầu tiên giữa chúng kể từ trái sang trong xâu A có chỉ số trong bảng mã ASCII là lớn hơn. Nếu A và B là các xâu có độ dài khác nhau và A là đoạn đầu của B thì A nhỏ hơn B. c/ Các bước tiến hành: 1. 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 dữ liệu chuẩn.. 2. Tìm hiểu chức năng của một số phép toán trong kiểu xâu qua một 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 quả của chương trình in ra màn hình? - Thực hiện chương trình để học sinh thấy kết quả. - Yêu cầu học sinh tìm một số ví dụ khác. - Hỏi: Chức năng của phép cộng? - Giới thiệu thêm một số ví dụ khác và yêu cầu học sinh cho biết kết quả. st:= ‘Ha’ + ‘Noi’;. 1. 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. 2. Quan sát ví dụ, suy nghĩ và trả lời. - Quan sát chương trình.. - Kết quả cho ta: st= ‘HA NOI’ - Quan sát kết quả 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ứ nhất..

<span class='text_page_counter'>(72)</span> 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ụ về 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 quả. Begin bo:= ‘AB’ < ‘AC’; Write(bo); readln; End. - Hỏi: Kết quả của chương trình in ra màn - Kết quả là: TRUE hình? - Thực hiện chương trình để học sinh thấy - Quan sát kết quả chương trình để kiểm kết quả. 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ụ về các phép so sánh và yếu cầu học sinh cho kết quả của các phép so sánh đó. ‘AB’ < ‘ABC’ - Kết quả True. ‘AC’ < ‘ABC’ - Kết quả: False. - Lưu ý cho học sinh: Một xâu có độ dài nhỏ hơn có thể lớn hơn (>) xâu có độ dài lớn. HOẠT ĐỘNG 3 : Tìm hiểu về một số hàm và thủ tục chuẩn liên quan đến xâu trong ngôn ngữ lập trình Pascal. a/ Mục tiêu: - Học sinh biết được một số hàm và thủ tục liên quan đến xâu. Nắm được cấu trúc chung, hiểu được các tham số của các hàm và thủ tục chuẩn. b/ Nội dung: - Thủ tục Delete(st, vt, n) thực hiện việc xóa đi 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 hiện việc chèn xâu st1 vào xâu st2 bắt đầu từ vị trí vt. - Hàm Copy(st, vt, n) cho giá trị là một xâu kí tự được lấy trong xâu st, gồm n kí tự liên tiếp bắt đầu từ vị trí vt của xâu st. - Hàm Length(st) cho giá trị là số lượng kí tự của xâu st. - hàm Pos(st1, st2) cho giá trị là vị trí xuất hiện đầu tiên của xâu st1 trong 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: 1. giới thiệu cấu trúc chung của hàm 1. Quan sát cấu trúc chung. length(st) lên bảng. - Hỏi: ý nghĩa của Length và của st? - Length: Là tên hàm, có nghĩa là độ dài, st: - Chiếu chương trình ví dụ: là một biểu thức xâu kí tự. Var st:tring; - Quan sát chương trình để dự tính kết quả. Begin st:= ‘ha Noi’; Write(length(st)); readln; End. - Kết quả là : 6.

<span class='text_page_counter'>(73)</span> - Hỏi: Kết quả của chương tình in ra màn hình? - Thực hiện chương trình để học sinh thấy kết quả. - Hỏi: Chức năng của hàm length() là gì? - Chiếu đề bài tập ứng dụng: Viết chương trình nhập một xâu, in ra màn hình số kí tự ‘a’ có trong xâu. 2. Giới thiệu cấu trúc chung của 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 quả của chương trình in ra màn hình? - Thực hiện chương trình để học sinh thấy kết quả. - Hỏi: Chức năng của hàm upcase()? - Chiếu bài tập ứng dụng: Viết chương trình nhập một xâu, in ra màn hình xâu đó dạng in hoa.. 3. giới thiệu cấu trúc chung của 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 quả của chương trình in ra màn hình? - Thực hiện chương trình để học sinh thấy kết quả. - Hỏi: Chức năng của hàm Pos? - Thay tham số của hàm Pos trong chương trình bằng Pos(‘k’, ‘abc’). Hỏi kết quả của hàm bằng bao nhiêu? - Chiếu bài tập ứng dụng: Viết chương trình nhập vào một xâu st. Xét xem trong xâu. - Quan sát kết quả của chương trình. - Hàm cho số lượng kí tự của xâu st.. 2. Quan sát cấu trúc chung của hàm Upcase. - Quan sát chương trình để dự tính kết quả.. - Kết quả là : H - Quan sát kết quả của chương trình. - Cho giá trị là chữ in hoa của ch. Var st:string; Begin readln(st); For i:=1 to length(st) do write(upcase(st[i])); End. 3. Quan sát cấu trúc chung của hàm Pos và các ví dụ để biết chức năng. - Quan sát chương trình để dự tính kết quả.. - Kết quả là: 3 - Quan sát kết quả của hcương trình. - Hàm cho giá trị là một số nguyên là vị trú của xâu st2 trong xâu st2. - Bằng không 0.. Var st:tring; Begin readln(st);.

<span class='text_page_counter'>(74)</span> 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 trong xâu. 4. Quan sát cấu trúc chung của hàm coppy và ví dụ để biết chức năng. - Quan sát chương trình để dự tính kết quả.. 4. Giới thiệu cấu trúc chung của 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 quả chương trình in ra màn hình? -Thực hiện chương trình để học sinh thấy kết quả. - Hỏi: Chức năng của hàm copy?.  Kết quả là: ‘i ta’. - Thay các tham số của hàm copy trong chương trình ví dụ trên như sau và hỏi kết quả in ra màn hình: Copy(‘abc,1, 5) Copy(‘abc,5, 2) Copy(‘abc,1, 0) - Thực hiện chương trình để học sinh thấy kết quả. 5. Giới thiệu cấu trúc chung của 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 quả của chương trình in ra màn hình? - Thực hiện chương trình để học sinh thấy kết quả. - Hỏi: Chức năng của thủ tục delete();.  Quan sát kết quả của chương trình.  Hàm cho giá trị là một xâu kí tự được lấy trong xâu st, gồm n kí tự bắt đầu tại 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 quả của chương trình để kiểm nghiệm suy luận. 5. Quan sát cấu trúc chung của thủ tục delete và các ví dụ. - Quan sát chương trình để dự tính kết quả.. st=’ Hai’ . - Quan sát kết quả của hcương trình.  Thủ tục thực hiện việc xóa đi trong biến xâu st gồm n kí tự, bắt đầu từ vị trí vt..

<span class='text_page_counter'>(75)</span> - Thay lệnh gán st:= ‘Ha Noi’; và thủ tục xóa bởi các lệnh sau và hỏi kết quả in ra 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 một xâu và xóa đi các dấu cách ở đầu xâu.. 6. Giới thiệu cấu trúc chung của 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 quả của chương trình in ra màn hình? - Thực hiện chương trình để học sinh thấy kết quả. - Hỏi chức năng của thủ tục insert(); - Thay lệnh gán st2:= ‘Ha Noi’; và thủ tục chèn bởi các lệnh 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]= ‘ ’ do delete(st, 1, 1); Writeln(st); readln; End. 6. Quan sát cấu trúc chung của thủ tục Insert. - Quan sát chương trình để dự tính kết quả.. - Kết quả st2=’ Ha Noi’ - Quan sát kết quả của chương trình. - Thủ tục thực hiện việc chèn xâu st1 vào trong biến xâu st2 bắt đầu tại vị trí vt. st2= ‘efabc’; st2= ‘abcef’;. Tiết 28 : HOẠT ĐỘNG 4: Một số ví dụ về xâu. a/ Mục tiêu: - Học sinh biết được 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 1 : học sinh theo dõi trên màn hình cũng như việc Program vd1 ;.

<span class='text_page_counter'>(76)</span> chạy thử và không làm mất thời gian ngồi viết Uses crt ; chương trình . Var s1,s2 : String ; Begin Với mỗi ví dụ, giáo viên đi sâu vào câu lệnh Clrscr ; trực tiếp đáp ứng yêu cầu của ví dụ, như vậy Write('Nhap xau thu 1 : ') ; các em sẽ tiếp thu nhanh hơn . Readln(s1) ; Write('Nhap xau thu 2 : ') ; Readln(s2) ; Ví dụ 1 : Nhập 1 xâu, viết ra màn hình xâu If length(s1) > Length(s2) then dài hơn . Write(s1) else Write(s2); Readln ; End . Ví dụ 2 : Nhập 1 xâu, kiểm tra xem ký tự đầu VD 2 : tiên của xâu S1 có trùng với ký tự cuối cùng của xâu S2 hay không ? Program vd2 ; Uses crt ; Var s1,s2 : String ; x : Byte ; Begin Clrscr ; Write('Nhap xau thu 1 : '); Readln(s1) ; Write('Nhap xau thu 2 : '); Readln(s2) ; x := length(s2) ; If s1[1] = s2[x] then Write('Trung nha') else Write('Khac nhau'); Readln ; End . Ví dụ 3 : Nhập 1 xâu, viết ra màn hình xâu đó VD 3 : theo thứ tự ngược lại của các ký tự trong xâu . Program vd3 ; Uses crt ; Var i,k : Byte ; a : String ; Begin Clrscr ; Write('Nhap xau : ') ; Readln(a) ; k := length(a) ;.

<span class='text_page_counter'>(77)</span> For i := k downto 1 do Write(a[i]) ; Readln ; End .. Ví dụ 4 : Nhập 1 xâu, viết ra màn hình xâu đó VD 4 : nhưng đã được bỏ tất cả 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 := 1 to k do if a[i] <> '' then b := b+a[i] ; Write(b) ; Readln ; End . Ví dụ 5 : Nhập 1 xâu, viết ra màn hình xâu gồm các ký tự số của xâu đó . VD 5 : Program Xulixau ; Uses crt ; Var s1,s2 : String ; i : Byte ; Begin Clrscr ; Write('Nhap xau s1 : ') ; Readln(s1) ; s2 := '' ; For i := 1 to length(s1) do If ('0'<s1[i]) and (s1[i]<='9') then s2 := s2 + s1[i] ; Write(s2); Readln ; End . IV. DẶN DÒ 1. Những hàm và thủ tục liên quan đến xâu. - Thủ tục Delete(st, vt,n);.

<span class='text_page_counter'>(78)</span> - 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) 2. Câu hỏi và bài tập về nhà. - Giải bài tập số 10 trang 80. - Viết chương trình nhập một xâu. In ra màn hình sỗ từ có trong xâu. - Xem phần nội dung của bài thực hành số 5, sách giáo khoa, trang 73. - Chuẩn bị một số bài tập để thực hành. V. ĐÁNH GIÁ – RÚT KINH NGHIỆM:.

<span class='text_page_counter'>(79)</span> TIẾT 29 – 30: BÀI THỰC HÀNH SỐ 5 I. MỤC TIÊU. a. Kĩ năng - Biết khai báo xâu, nhập xâu, xuất xâu, truy cập phần tử của xâu. - Sử dụng một số hàm – thủ tục trên xâu b. thái độ - Tích cực, chủ động trong thực hành. II. PHƯƠNG PHÁP – PHƯƠNG TIỆN DẠY HỌC 1. Chuẩn bị của giáo viên. - Máy chiếu Projestor để hướng dẫn. Tổ chức trong phòng máy để học sinh có được kĩ năng cơ bản khi làm việc với kiểu xâu. 2. Chuẩn bị của 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 của trò. Hoạt động 1: Tìm hiểu một chương trình, đề xuất phương án cải tiến. a. Mục tiêu: - Hiểu được chương trình, tính được kết quả của chương trình. Biết đề xuất phương án cải tiến. b. Nội dung: - Nhập vào một xâu, kiểm tra xem nó có phải là một 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 1 do 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: 1. 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 được gọi là Palidrom nếu ta đọc các kí tự từ phải sang trái sẽ giống khi đọc từ trái sang phải.. 1. Quan sát, đọc kĩ đề..

<span class='text_page_counter'>(80)</span> - Yêu cầu học sinh cho hai ví dụ về xâu palidrom và một ví dụ không phải là palidrom . 2. 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 năng làm gì? Kết quả in ra màn hình như thếnào? - Thực hiện chương trình để học sinh kiểm nghiệm suy luận của mình.. Phải: 12321 abccba Không phải: abcdea 2. Quan sát chương trình, suy nghĩ phân tích để hiểu chương trình. - Kiểm tra một 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 hiện chương trình, nhập dữ liệu và kết quả của chương trình. 3. Chú ý theo dõi yêu cầu của giáo viên, trả lời một số câu hỏi dẫn dắt.. 3. 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 về các cặp ở vị trí đối - Các kí tự ở vị trí này giống nhau. xứng nhau trong một 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 2. tự trong xâu để biết được 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 hoặc While. chỉnh. - Thực hiện soạn thảo chương trình vào - Yêu cầu học sinh nhập dữ liệu cho sẵn của máy theo yêu cầu cải tiến của giáo viên. giáo viên và thông báo kết quả. - Nhập dữ liệu vào và thông báo kết quả. - Xác nhận những bài làm có kết quả đúng. Tiết 30: HOẠT ĐỘNG 2: Rèn luyện kĩ năng lập trình. a.Mục tiêu: - Học sinh biết phân tích yêu cầu để viết một chương trình hoàn chỉnh. b. Nội dung. - Viết chương trình nhập vào một xâu kí tự S và thông báo ra màn hình số lần xuất hiện trong S của mỗi chữ cái tiếng Anh(không phân biệt chứ hoa, chữ thường). c. Các bước tiến hành: 1. Giới thiệu đề bài. - Chiếu nội dung đề bài lên bảng. Nêu mục đích của bài toán. - Chia lớp thành 2 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.. 1. Quan sát đề và xác định những công việc cần thực hiện. Nhóm 1: - hỏi: Dữ liệu vào, dữ liệu ra của bài toán? - Nêu các nhiệm vụ chính cần thực hiện khi giải quyết bài toán. - Hỏi: Cấu trúc dữ liệu phải sử dụng như thế nào?.

<span class='text_page_counter'>(81)</span> - Theo dõi những câu hỏi phân tích Của nhóm 1 và trả lời câu hỏi phân tích của nhóm 2. - Bổ sung và sửa sai cho cả nhóm 1 và nhóm 2.. - 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 sự xuất hiện của mỗi loại kí tự trong xâu. - TT: Duyệt từ trái sang phải, thêm một đơn vị cho kí tự đọc được. - Cấu trúc dữ liệu: Dem[‘A’..’Z’] - Dùng hàm Upcase().. 2. Yêu cầu học sinh độc lập viết chương 2. Độ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 hiện ở trên. - Yêu cầu học sinh lập trình xong sớm tìm - Tìm test một số bộ test. - Nhập dữ liệu của giáo viên và thực hiện - Yêu cầu học sinh nhập dữ liệu vào theo chương trình để xem kết quả. test của giáo viên đã chọn và thông báo kết quả sau khi thực hiện chương trình. - Xác nhận kết quả đúng của học sinh và - Thông báo kết quả cho giáo viên. sửa sai cho các em có kết quả sai. IV. ĐÁNH GIÁ – RÚT KINH NGHIỆM CUỐI BÀI 1. 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 một xâu đối xứng, tìm tần xuất hiện của kí tự có trong xâu. 2. Câu hỏi và bài tập về nhà. - Chuẩn bị nội dung cho tiết lí thuyết tiết theo..

<span class='text_page_counter'>(82)</span> TIẾT 32: KIỂM TRA 1 TIẾT I. MỤC TIÊU. a. Kĩ năng - Kiểm tra kiến thức và kỹ năng vận dụn kiến thức đã học của học sinh. - Khắc sâu kiến thức, giúp học sinh chủ động khi viết và xừ lý chương trình b. thái độ - Tích cực, chủ động trong thực hành. II. PHƯƠNG PHÁP – PHƯƠNG TIỆN DẠY HỌC 1. Chuẩn bị của 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 về kiểu mảng và kiểu xâu tiến hành trong thời gian 15 phút - Ma trận : + Khai báo : 2 điểm + Nhập : 2 điểm + Xử lý : 4 điểm + Xuất : 2 điểm.

<span class='text_page_counter'>(83)</span> Tiết 32 – 35: ÔN TẬP HỌC KỲ 1.

<span class='text_page_counter'>(84)</span> TIẾT 36: KIỂM TRA HỌC KỲ 1.

<span class='text_page_counter'>(85)</span> 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 1. Kiến thức: - Biết được đặc điểm của kiểu dữ liệu tệp. - Biết khái niệm về tệp có cấu trúc và tệp văn bản. 2. Thái độ: - Thấy được sự cần thiết và tiện lợi của kiểu dữ liệu tệp. - Có ý thức lưu trữ dữ liệu một cách khoa học. - Giáo dục thêm về ý thức tôn trọng bản quyền, không sửa chữa, sao chép các phần mềm chưa mua bản quyền. II. PHƯƠNG PHÁP – PHƯƠNG TIỆN DẠY HỌC 1. Chuẩn bị của giáo viên. - Máy vi tính, máy chiếu Projector để giới thiệu ví dụ. 2. Chuẩn bị của học sinh - Sách giáo khoa. III. HOẠT ĐỘNG DẠY – HỌC Hoạt động của Thầy. Hoạt động của trò HOẠT ĐỘNG 1. Tìm hiểu đặc điểm của kiểu dữ liệu tệp a. Mục tiêu: - Học sinh biết được đặc điểm của kiểu tệp. Biết được hai loại tệp: Định có cấu trúc và tệp văn bản. b. Nội dung: - Đặc điểm của kiểu tệp: + Được lưu trữ lâu dài ở bộ nhớ ngoài, không bị mất khi mất điện. + Lượng thông tin lưu trữ trên có thể rất lớn. c. Các bước tiến hành: - Hỏi: Em hãy cho biết dữ liệu trong các kiểu dữ liệu từ trước đến nay ta sử dụng được lưu trữ ở loại bộ nhớ nào khi thực hiện chương trình? - Hỏi: Vì sao em biết được điều đó? - Diễn giải: Để lưu trữ được dữ liệu, ta phải lưu nó ở bộ nhớ ngoài thông qua kiểu dữ liệu tệp. Mọi ngôn ngữ lập trình đều có các thao tác: Khai báo biến tệp, mở tệp, đọc/ghi dữ liệu, đóng tệp.. - Bộ nhớ RAM.. - Mất dữ liệu khi mất điện.. - Không mất thông tin khi tắt máy..

<span class='text_page_counter'>(86)</span> - Dung lượng dữ liệu được lưu trữ lớn. . HOẠT ĐỘNG2 Phân loại kiểu tệp. a. Mục tiêu: Biết được hai loại tệp: Định có cấu trúc và tệp văn bả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 của nó được tổ chức theo một cấu trúc nhất định. + Tệp văn bản: Là tệp mà dữ liệu được ghi dưới dạng các kí tự theo mã ASCII. Trong tệp văn bản, dãy kí tự kết thúc bởi kí tự xuống dòng hay kí tự kết thúc tệp tạo thành một 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ó mấy 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 bản.. - Có hai loại kiểu tệp: Tệp có cấu trúc và tệp văn bản. + Tệp có cấu trúc là loại tệp mà các thành phần của nó được tổ chức theo một cấu trúc nhất định . + Tệp văn bản: Là tệp mà dữ liệu được ghi dưới dạng các kí tự theo mã ASCII. IV. DẶN DÒ: - Việc trao đổi dữ liệu với bộ nhớ ngoài được thực hiện thông qua kiểu dữ liệu tệp - Mỗi ngôn ngữ lập trình đều 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 mới để ghi, mở tệp để đọc, đóng tệp..

<span class='text_page_counter'>(87)</span> TIẾT CT: 40 Bài 15 : THAO TÁC VỚI TỆP TỆP I. MỤC TIÊU 1. Kiến thức: - Khai báo đúng biến kiểu tệp. - Biết một số hàm và thủ tục chuẩn làm việc với tệp 2. Kĩ năng: - Thực hiện đượ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ác hàm, thủ tục liên quan để đọc/ghi dữ liệu của tệp. 3. Thái độ: - Thấy được sự cần thiết và tiện lợi của kiểu dữ liệu tệp. - Có ý thức lưu trữ dữ liệu một cách khoa học. - Giáo dục thêm về ý thức tôn trọng bản quyền, không sửa chữa, sao chép các phần mềm chưa mua bản quyền. II. PHƯƠNG PHÁP – PHƯƠNG TIỆN DẠY HỌC 1. Chuẩn bị của giáo viên. - Máy vi tính, máy chiếu Projector để giới thiệu ví dụ. 2. Chuẩn bị của học sinh - Sách giáo khoa. III. HOẠT ĐỘNG DẠY – HỌC Hoạt động của Thầy. Hoạt động của trò. HOẠT ĐỘNG 1: Tìm hiểu các thao tác cơ bản xử lí tệp văn bản trong 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: 1. 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 của 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 cơ bản xử lí tệp văn bản trong ngôn ngữ lập trình a. Mục tiêu:.

<span class='text_page_counter'>(88)</span> - Học sinh biết cách khai báo biến. - Học sinh biết và sử dụng được 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. b. Nội dung: 2. 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 hoặc hằng xâu. - Tạo tệp mới để 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 bả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 bả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 mới để ghi, mở tệp để đọc, đóng tệp.. 2. 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 củ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>>);.

<span class='text_page_counter'>(89)</span> Giới thiệu cấu trúc chung của thủ tục đọc/ghi dữ liệu tệp văn bả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 dữ 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Ò: 1. Những nội dung đã học. - Việc trao đổi dữ liệu với bộ nhớ ngoài được thực hiện thông qua kiểu dữ liệu tệp. Có hai loại tệp: Tệp có cấu trúc và tệp văn bả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 đều 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 mới để ghi, mở tệp để đọc, đóng tệp. - trong ngôn ngữ lập trình Pascal có các thủ tục tương ứng là: 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>); 2. Câu hỏi và bài tập về 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.

<span class='text_page_counter'>(90)</span> TIẾT CT 41 - 42 : VÍ DỤ LÀM VIỆC VỚI TỆP I. MỤC TIÊU. 1. Kiến thức: - Củng cố lại kiến thức đã học về tệp trong chương 5 thông qua ví dụ. - Hiểu các thao tác cơ bản làm việc với tệp. 2. Kĩ năng. - Sử dụng được các hàm và thủ tục liên quan để giải quyết các bài tập. II. PHƯƠNG PHÁP – PHƯƠNG TIỆN DẠY HỌC 1. Chuẩn bị của giáo viên. - Máy chiếu Projector để giới thiệu ví dụ, phòng máy vi tính. 2. Chuẩn bị của học sinh. - Sách giáo khoa. III. HOẠT ĐỘNG DẠY – HỌC : Tiết 41 : Hoạt động của Thầy. Hoạt động của 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ác kiến thức lí thuýet về 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 bản. - Các hàm và thủ tục liên quan. c. Các bước tiến hành 1. Gợi ý để học sinh nhớ lại các kiến thức đã 1. Theo dõi dẫn dắt của giáo viên và trả lời. học về 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 cơ bản nào khi 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 khi xử lí tệp? 2. Giới thiệu bảng tổng hợp các hàm và thủ tục lên bảng, xem như đây là tổng kết kiến thức liên quan.. 2. Quan sát bảng tổng hợp và ghi nhớ.. HOẠT ĐỘNG 2:.

<span class='text_page_counter'>(91)</span> Tìm hiểu chương trình ví dụ. a. Mục tiêu: - Học sinh hiểu được nội dung, biết được đầu vào và đầu ra của chương trình. b. Nội dung:Giới thiệu 2 ví dụ SGK Ví dụ 1, sách giáo khoa, trang 87: Tính khoảng cách giữa 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 của Thầy. Hoạt động của trò HOẠT ĐỘNG 3:. Thực hiện một số ví dụ cụ thể khác a. Mục tiêu: - Học sinh hiểu được nội dung, biết được đầu vào và đầu ra của chương trình. b. Nội dung: Ví dụ 1, sách giáo khoa, trang 87: Tính khoảng cách giữa 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: 1. Tìm hiểu ví dụ 1. - 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 năng gì? - Hỏi : Hàm Eoln(f) có chức năng gì ?. 1. Theo dõi và quan sát đề bài và chương trình gợi ý. - Hàm cho giá trị True nếu con trỏ tệp định vị trí kết thúc tệp. - Hàm cho giá trị True nếu con trỏ tệp định vị trí kết thúc dòng.. - Có thể sử dụng cấu trúc For thay thế while  Không. Vì không biết số lượng phần tử của được không? tệp. - Chương trình này thực hiện công việc gì?  Tính và đưa ra màn hình khoảng cách từ trại của thầy hiệu trưởng đến trại của mỗi giáo viên. - Thực hiện chương trình để học sinh thấy được kết quả. 2. Quan sát nội dung đề bài Suy nghĩ thực hiện. 2. Tìm hiểu chương trình - Giới thiệu đề bài 1. - Tạo ra một tệp, và tạo 2 biến A, B cho phép nhập giá trị 2 biến từ bàn phím. Ghi giá trị 2 biến A, B vào tệp Học sinh thực hiện 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 quả của chương trình và so sánh với kết quả tính đương..

<span class='text_page_counter'>(92)</span> hiện giúp học sinh  Chạy chương trình cho học sinh chứng kiến tệp được tạo ra. - Nhận xét về tính chính xác và thời gian thực hiện của chương trình. Học sinh thực hiện trên bảng. - Giới thiệu đề bài 2. - Mở tệp vừa tạo, đọc 2 giá trị ra 2 biến X, Y. Tính và xuất ra màn hình tổng, tích và hiện của X và Y. - Quan sát kết quả của chương trình và so sánh với kết quả tính đương. - Nhận xét về tính chính xác và thời gian thực hiện của chương trình.. IV. ÔN LẠI KIẾN THỨC – DẶN DÒ 1. 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 của 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) 2. Câu hỏi và bài tập về nhà - Tự viết lại hai ví dụ trên cho tiết bài tập tiến hành trong phòng máy V. RÚT KINH NGHIỆM.

<span class='text_page_counter'>(93)</span> TIẾT CT 43 : BÀI TẬP I. MỤC TIÊU. 1. Kiến thức: - Củng cố lại kiến thức đã học về tệp trong chương 5 thông qua ví dụ. - Hiểu các thao tác cơ bản làm việc với tệp. 2. Kĩ năng. - Thực hiện trực tiếp việc tạo ra tệp, ghi dữ liệu vào tệp, đọc dữ liệu từ tệp ra, tính toán trên các giá trị dữ liệu đó. II. PHƯƠNG PHÁP – PHƯƠNG TIỆN DẠY HỌC 1. Chuẩn bị của giáo viên. Phòng máy vi tính. 2. Chuẩn bị của học sinh. - Sách giáo khoa, vở học III. HOẠT ĐỘNG DẠY – HỌC 1. Tìm hiểu chương trình - Giới thiệu đề bài 1. - Tạo ra một tệp, và tạo 2 biến A, B cho phép nhập giá trị 2 biến từ bàn phím. Ghi giá trị 2 biến A, B vào tệp - Giới thiệu đề bài 2. - Mở tệp vừa tạo, đọc 2 giá trị ra 2 biến X, Y. Tính và xuất ra màn hình tổng, tích và hiện của X và Y 2. Học sinh tiến hành  Giáo viên theo dõi tiến trình làm việc của học sinh, yêu cầu học sinh ghi chú lại các lưu ý.

<span class='text_page_counter'>(94)</span> CHƯƠNG 6 : 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. 1. Kiến thức: - Biết được khái niệm chương trình con. - Biết sự khác nhau cơ bản giữa thủ tục và hàm. - Biết được cấu trúc của chương trình con. - Biết được quan hệ tham số hình thức – tham số thực và lợi ích của chương trình con 2. Kĩ năng. - Nhận biết được các thành phần trong đầu của thủ tục. - Nhận biết được hai loại tham số hình thức trong đầu của thủ tục. - Biết cách khai báo hai loại chương trình con cùng với tham số hình thức của chúng. - Biết cách viết lời gọi chương trình con trong thân chương trình chính. 3. Thái độ: - Rèn luyện các phẩm chất của người lập trình như tinh thần hợp tác, làm việc theo nhóm, tuân thủ yêu cầu vì một công việc chung. II. PHƯƠNG PHÁP – PHƯƠNG TIỆN DẠY HỌC 1. Chuẩn bị của 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 dạ. 2. Chuẩn bị của học sinh. - Sách giáo khoa. III. HOẠT ĐỘNG DẠY – HỌC 1. Hoạt động 1: Tìm hiểu về chương trình con và lợi ích của việc sử dụng chương trình con khi lập trình. a. Mục tiêu: - Học sinh biết được khái niệm về chương trình con và lợi ích của việc viết chương trình có sử dụng chương trình con. b. Nội dung: - Chương trình con là một dãy lẹnh mô tả một số thao tác nhất định và có thể được thực hiện ở nhiều vị trí trong chương trình. - Lợi ích của 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 hiện lỗi và sửa sai. + Có thể giao cho nhiều người cùng viết một chương trình. + Tránh việc phải viết lặp lại một nhóm lệnh khi nhóm lệnh này được thực hiện nhiều lần khác nhau trong 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 của Thầy 1. Tìm hiểu ý nghĩa và khái niệm của chương trình con. - Chiếu hai chương trình giáo viên đã chuẩn. Hoạt động của trò 1. Quan sát đề bài và hai chương trình ví dụ..

<span class='text_page_counter'>(95)</span> bị sẵn. Một chương trình có sử dụng chương trình con, một chương trình không sử dụng chương trình con. Chẳng hạn: Chương trình tính tổng 4 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 về tính ngắn gọn, rõ con được viết ngắn gon, dễ hiểu hơn chương ràng, tính dễ đọc dễ hiểu của hai chương trình trình viết không sử dụng chương tình con. đó.  Đố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, chỉ nên viết một chương trình con. 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 con.  Nghiên cứu sáhc giáo khoa, thảo luận để điền - Chia lớp thành 4 nhóm. Phát bìa trong cho phiếu học tập. mỗi nhóm. Yêu cầu học sinh điền các lợi ích + Tránh được việc phải viết lặp đi lặp lại cùng của việc sử dụng chương trình con. một dãy lệnh nào đó trong chương trình. + Hỗ trợ việc thực hiện 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ả năng 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 quả lên bảng. - Bổ sung và giải thích thêm một số lợi ích mà học sinh điền chưa đầy đủ. (vì các em còn mơ hồ về chương trinhg con) 2. phân loại chương trình con. - Hỏi: Có mấy loại chương trình con? Gọi tên của chúng? - Hỏi: Đã từng làm quen với hàm và thủ tục chưa? Lấy một số ví dụ về hàm và thủ tục đã được học. - ý nghĩa củ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 quả.  Theo dõi bổ sung và giải thích của giáo viên.. . 2. 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 hiện một số thao tác nòa đó và trả lời về một giá trị kiểu đơn giản thông qua tên hàm . + Thủ tục thực hiện các thao tác nhất định nhưng không trả về giá trị qua tên của nó..

<span class='text_page_counter'>(96)</span> Hoạt động của Thầy 3. Cấu trúc của chương trình con. - Giới thiệu cấu trúc chung của chương trình con. <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 con.. Hoạt động của trò 3. Quan sát cấu trúc của chương trình con.. - 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, hằng. - Phần thân là một dãy các lệnh thực hiện nhiệm vụ nhất định của chương trình con..  Diễn giải: Phần đầu của chương trình con gồm có tên chương trình con, các tham số của chương trình con. Các tham số này được gọi là tham số hình thức. 4. Thực hiện chương trình con. - Hỏi: Để sử dụng hàm và thủ tục chuẩn em thường viết ở đâu và viết như thế nào?. 4. Suy nghĩ và trả lời - Viết trong 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 trong lẹnh nào đó hoặc trong thủ tục. Hàm không được viết như lệnh.. - Diễn giải: Để gọi một 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 con với các tham số(nếu có) là cá hằng và biến chứa dữ liệu vào/ra tương ứng với các tham số hình thức đặt trong cặp ngoặc. Các hằng và biến này được gọi là tham số thực sự. IV. ĐÁNH GIÁ CUỐI BÀI – DẶN DÒ 1. Những nội dung đã học. - Chương trình con đóng vai trò quan trọng trong lập trình, đặc biệt là trong lập trình cấu trúc. - Các lợi ích cơ bản của chương trình con: Dùng chương trình con sẽ 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 con. - Cấu trúc chương trình con và vị trí của nó trong chương trình chính: Chương trình con được viết ở phần khai báo. CHương trình con có phần đầu, phần khai báo và phần thân. - Chương trình con có thể có tham số hình thức khi khai báo và được thay bằng tham số thực sự khi gọi chương trình con. - Chương trình con được gọi bằng tên của nó. 2. Câu hỏi và bài tập về nhà..

<span class='text_page_counter'>(97)</span> - Đọc trước nội dung vài: Ví dụ về cách viết và sử dụng chương trình con, sách giáo khoa, trang 96..

<span class='text_page_counter'>(98)</span> TIẾT CT : 47 BÀI TẬP I. MỤC TIÊU. 1. Kiến thức: - Biết sự khác nhau cơ bản giữa thủ tục và hàm. - Biết được cấu trúc của chương trình con. - Biết được quan hệ tham số hình thức – tham số thực và lợi ích của chương trình con 2. Kĩ năng. - Nhận biết được các thành phần trong đầu của thủ tục. - Biết cách viết lời gọi chương trình con trong thân chương trình chính. 3. Thái độ: - Rèn luyện các phẩm chất của người lập trình như tinh thần hợp tác, làm việc theo nhóm, tuân thủ yêu cầu vì một công việc chung. Hoạt động của Thầy Hãy quan sát đoạn chương trình sau: -. Hoạt động của 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 con ?. 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 bộ. For i = 1to dai do Write (‘*’); Writeln ; For i:=1to rong – 2 do Begin. Thủ tục (chương trình con). Write (‘*’); For i = 1to dai –2 do Write(‘ ‘); Writeln (‘*’) End; For i = 1to dai Write(‘ *‘); Writeln; End; BEGIN. Lời gọi thủ tục trong chương trình chính.

<span class='text_page_counter'>(99)</span> Ve_hcn( 25,10) Writeln; Ve_hcn (5,10). 25 , 10 : tham số thực (tham trị) Lời gọi thủ tục trong chương trình chính 5 , 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 2 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à 2 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 bộ. 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).

<span class='text_page_counter'>(100)</span> TIẾT CT : 48 KIỂM TRA 1 TIẾT.

<span class='text_page_counter'>(101)</span> 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. 1. Kiến thức. - Biết được cấu trúc chung và vị trí của thủ tục – hàm trong chương trình. - Nhận biết được các thành phần trong thủ tục - hàm - Nhận biết được lời gọi thủ tục trong chương trình chính cùng các tham số thực sự 2. 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 3. Thái độ: - Rèn luyện các phẩm chất của người lập trình như tinh thần hợp tác, làm việc theo nhóm, tuân thủ yêu cầu vì một công việc chung. II. PHƯƠNG PHÁP – PHƯƠNG TIỆN DẠY – HỌC 1. Chuẩn bị của giáo viên. - máy vi tính, máy chiếu Projector để giới thiệu ví dụ. 2. Chuẩn bị của học sinh. - Sách giáo khoa. III. HOẠT ĐỘNG DẠY HỌC Tiết 49: Hoạt động của Thầy. Hoạt động của trò HOẠT ĐỘNG 1:. Tìm hiểu cấu trúc chung và ví dụ của thủ tục trong chương trình chính. a. Mục tiêu: - Học sinh biết được cấu trúc chung của một thủ tục và vị trí khai báo thủ tục trong chương trình chính. - Học sinh biết khai niệm về tham số của chương trình con. Biết tham số hình thức và tham số thực sự. - Học sinh biết được khái niệm về tham số giá trị và tham số biến. b. Nội dung: - Cấu trúc và vị trí của chương trình con trong 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 dữ 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 của thủ tục; Begin Các lệnh của thủ tục; End; BEGIN Các lệnh của chương trình chính;.

<span class='text_page_counter'>(102)</span> Lời gọi thực hiện hàm và thủ tục; END. - Tham số hình thức: Là các tham số được đưa vào khi định nghĩa chương trình con. - Tham số thực sự: Là các tham số được viết trong lời gọi chương trình con. - 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 chỉ được phép thay thế bắng các tham số thực sự 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ị sẽ được thay thế bằng các tham số thực sự là giá trị hoặc biến. c. Các bước tiến hành: 1. Giới thiệu ví dụ mở đầu. 1. 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 của thủ tục, lời gọi thủ tục. 2. Tìm hiểu cấu trúc thủ tục. 2. Quan sát ví dụ, suy nghĩ và trả lời . - Hỏi: Vị trí của thủ tục nằm ở phần nào - Nằm ở phần khai báo, sau phần khai biến. trong chương trình chính? - Ba phần: Tên thủ tục, khai báo của thủ tục và - Hỏi: Cấu trúc của thủ tục gồm mấy phần? phần thân của . - Hỏi: Phân biệt sự giống và khác nhau giữa - Giống: Cấu trúc chung. chương trình con 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 của 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 của thủ tục; Begin Các lệnh của 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 - Trong phần thân của chương trình chính. chương trình? 3. Tìm hiểu tham số hình thức và tham số thực 3. Quan sát ví dụ trên bảng. sự. - 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 về thủ tục - Thủ tục ve_hcn ở ví dụ này có các tham số ve_hcn của 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 hiện vẽ dược nhiều hình chữ nhật có kích thước khác nhau. - Hỏi: Quan sát chương trình cho biết, trong - Vẽ được 6 hình chữ nhật. chương trình chính ta vẽ được tất cả bao nhiêu hình chữ nhật. - Tham số chdai, chrong được 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 được thay bằng các tham số thực sự..

<span class='text_page_counter'>(103)</span> - So sánh các tham số của lời gọi ve_hcn(5,10); và ve_hcn(a,b);. - Tham số thực sự trong thủ tục ve_hcn(5,10); là các hằng s còn trong thru tục ve_hcn(a,b); là các biến. 4. Theo dõi và trả lời.. 4. 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 dữ liệu vào cho chương trình con hoặc đưa dữ liệu chương trình con tìm được ra. - Hỏi: Các tham số trong ví dụ 2 thuộc loại nào? - Đưa dữ liệu vào cho chương trình con 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 dữ liệu sau khi chương trình con xử lí ra - Diễn giải: trong lời gọi thủ tục, các tham ngoài. số hình thức được thay bằng các tham số thực sự tương ứng là tên các biến chứa dữ liệu ra được 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ì khi 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 được sự khác biệt giữa tham số giá trị và tham số biến. Tiết 50: Hoạt động của Thầy. Hoạt động của trò HOẠT ĐỘNG 2:. Tìm hiểu cấu trúc chung và vị trí của hàm trong chương trình chính. a. Mục tiêu: - Học sinh biết được cấu trúc chung của hàm. Biết được vị trí khai báo hàm trong chương trình chính. - Học sinh nắm được khái niệm về biến toàn cục và biến cục bộ. - Khai báo đúng biến toàn cục và biến cục bộ. b. Nội dung: - Cấu trúc và vị trí của hàm trong chương trình. Program tên_chương_trình_chính; Các khai báo của 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 của hàm; begin Các lệnh của hàm; Tên_hàm:=biểu_thức; End; BEGIN.

<span class='text_page_counter'>(104)</span> Các kệnh của hcương trình chính; Lời gọi thực hiện hàm và thủ tục; END. - Kiểu_dữ_liệu_của_hàm là kiểu dữ liệu của kết quả của hàm và chỉ có thể là một trong các kiểu Integer, Read, Char, Boolean, String. - Sử dụng hàm: Giống như sử sụng các hàm chuẩn, viết tên của hàm cần gọi và thay thế các tham số hình thức bằng các tham số thực sự trương ứng. Lời gọi hàm có thể tham gia vào biểu thức như một toán hạng và thậm chí là tham số của lời gọi hàm, thủ tục khác. - Biến cục bộ là những biến có ảnh hưởng trong chương trình con, được khai báo trong chương trình con. - Biến toàn bộ là những biến có phạm vi ảnh hưởng trong toàn bộ chương trình, được khai báo trong phần khai báo của chương trình chính. c. Các bước tiến hành: 1. Nhắc lại kiến thức cũ về hàm chuẩn. -Hỏi: Hãy kể tên một số hàm chuẩn đã học và cách sử dụng chúng.. 1. 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 được viết trong biểu thức như một toán hạng, thậm chí là tham số của một hàm khác.. 2. Giới thiệu cấu trúc chung và vị trí của hàm trong chương trình chính. - Hỏi: So sánh sự giống và khác nhau của hàm và thủ tục.. 2. 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 dữ liệu; Trong thân hàm phải có lệnh Tên_hàm:=biểu_thức; Bắt đầu của hàm là từ Function 3. Quan sát ví dụ và trả lời.. 3. 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: trong chương trình có mấy 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 trong 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: trong chương trình có bao nhiêu hàm? Chức năng của hàm? - Có bao nhiêu lời gọi hàm trong chương trình chính? 4. Tìm hiểu về biến cục bộ và biến toàn bộ. - 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 nhất của hai số X, Y. -Lệnh A:=UCLN(tuso,mauso); -Lời gọi hàm phải được đặt trong một lệnh hoặc trong một lời gọi chương trình con khác. - Quan sát chương trình ví dụ - Có một hàm được khai báo. - Hàm được sử dụng hai lần. - Kết quả của hàm lại là đầu vào cho chính hàm đó trong lần gọi thứ hai. 4. Quan sát lại các ví dụ. - Quan sát chương trình của giáo viên..

<span class='text_page_counter'>(105)</span> - Hỏi: Có những biến nào được sử dụng trong chương trình? Các biến đó được khao báo ở chỗ nào trong chương trình? - Diễn giải: Biến tuso, mauso, A có ảnh hưởng trong toàn bộ chương trình. Biến Sodu chỉ ảnh hưởng trong thân chương trình con. - Yêu cầu học sinh: Phân biệt sự giống nhau và khác nhau của biến toàn bộ và biến cục bộ.. - Có các biến: tuso, mauso, A, sondu. - Các biến: tuso, mauso, A được khai báo trong chương trình chính. - Các biến: sodu được khai báo trong chương trình con.. - Biến cục bộ: Có ảnh hưởng trong chương trình con, được khai báo trong phần khai báo của chương trình con. - Biết toàn bộ: Có phạm vi ảnh hưởng trong toàn bộ chương trình, được khai báo trong phần khai báo của chương trình chính.. IV. ĐÁNH GIÁ CUỐI BÀI 1. Những nội dung đã học. - Có hai loại chương trình con. - Cấu trúc chương trình con và vị trí của nó trong chương trình chính: Chương trình chính: Chương trình con được viết ở phần khai báo. Chương trình con có phần đầu, phần khai báo và phần thân. - Chương trình con có thể có tham số hình thức khi khai báo và được thay bằng tham số thực sự khi gọi chương trình con. - Phân biệt tham số hình thức và tham số thực sự. Cách sử dụng tham biến và tham trị. - Chương trình con được gọi bằng tên của nó. 2. Câu hỏi và bài tập về nhà. V. RÚT KINH NGHIỆM.

<span class='text_page_counter'>(106)</span> TIẾT 51 - 52 : BÀI TẬP THỰC HÀNH 6 – 7 I. MỤC TIÊU. 1. Kiến thức. - Nhẫn biết được: tham số hình thức, tham số thực, các biến 2. Kĩ năng: - Biết cách viết thủ tục - hàm 3. Thái độ: - Rèn luyện các phẩm chất của người lập trình như tinh thần hợp tác, làm việc theo nhóm, tuân thủ yêu cầu vì một công việc chung. II. PHƯƠNG PHÁP – PHƯƠNG TIỆN DẠY – HỌC 1. Chuẩn bị của giáo viên. - máy vi tính, máy chiếu Projector để giới thiệu ví dụ. 2. Chuẩn bị của học sinh. - Sách giáo khoa. III. HOẠT ĐỘNG DẠY HỌC Tiết 51: Hoạt động của Thầy. Hoạt động của trò HOẠT ĐỘNG 1:. Bài 1: Viết chương trình giải phương trình bậc 2 với các hệ số a,b,c bất kỳ có sử dụng CTC. Program Giai_Ptb2; Var m,n,k : Integer; Procedure ptb1(a,b: Integer); Begin If a <> 0 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 < 0 then Writeln (‘vo ngiem’) Else if delta = 0 then Write (‘x’, -b/(2*a)).

<span class='text_page_counter'>(107)</span> 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 của 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 của Thầy. Hoạt động của 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<> 0 do Begin.

<span class='text_page_counter'>(108)</span> 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 1 da gian uoc la:’, tu1, ‘/’, mau1); GUPS(tu2, mau2); Writeln (‘Phan so 2 da gian uoc la:’, tu2, ‘/’, mau2); Readln. End. D. CỦNG CỐ - Bài 1 ta dùng tham trị, bài 2 dùng tham biến. - Từ đó củng cố lần nữa ; khi trong 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ị..

<span class='text_page_counter'>(109)</span>

×