1. Trang chủ
  2. » Trung học cơ sở - phổ thông

Giao an tin hoc lop 11

95 3 0

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

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

THÔNG TIN TÀI LIỆU

Nội dung

Hoạt động 2: Tìm hiểu cấu trúc lặp với số lần biết trước và câu lệnh FOR - DO HĐ Học Sinh HĐ Giáo viên Trình bày bảng - Suy nghĩ và lên bảng trình - Yêu cầu HS viết thuật 2.. Lặp với số [r]

(1)Tuần Tiết Ngày dạy: …./…./20… CHƯƠNG I: MỘT SỐ KHÁI NIỆM VỀ LẬP TRÌNH VÀ NGÔN NGỮ LẬP TRÌNH BÀI 1: KHÁI NIỆM LẬP TRÌNH VÀ NGÔN NGỮ LẬP TRÌNH I Mục tiêu: Kiến thức: - Biết khái niệm lập trình - Hiểu khả ngôn ngữ lập trình bậc cao, phân biệt với ngôn ngữ máy và hợp ngữ - Hiểu ý nghĩa và nhiệm vụ chương trình dịch Phân biệt biên dịch và thông dịch Kỹ năng: - Biết phân biệt biên dịch và thông dịch Thái độ: - Ham muốn tìm hiểu các ngôn ngữ lập trình II Phương pháp – phương tiện dạy học Phương pháp: Thuyết trình, vấn đáp, nêu tình có vấn đề Phương tiện: SGK, giáo án, SGV, bảng, phấn III Hoạt động dạy học Ổn định tổ chức; ổn định lớp, kiểm tra sĩ số Kiểm tra bài cũ: Nội dung bài mới: 3.1 Hoạt động 1: Tìm hiểu khái niệm lập trình và ngôn ngữ lập trình HĐ Học Sinh HĐ Giáo Viên Ghi bảng Bài KHÁI NIỆM LẬP TRÌNH VÀ NGÔN NGỮ LẬP TRÌNH -Cho bài toán sau: Kết luận nghiện phương trình ax -Quan sát bài toán và trả lời + b=0 câu hỏi + Hãy xác định Input, +Input: a, b Output bài toán trên +Output: x=-b/a, vô nghiệm, vô số nghiệm + Hãy xác định các bước để giải bài toán trên (2) +B1: Nhập a, b B2: Nếu a<> kết luận có nghiệm x=-b/a B3: Nếu a=0 và b<>0, kết luận vô nghiệm B4: Nếu a=0 và b=0, kết luận vô số nghiệm -Hệ thống các bước này chúng ta gọi là thuật toán Làm nào để máy tính điện tử có thể hiểu thuật toán này? -Dùng ngôn ngữ lập trình -Diễn giải: Hoạt động để diễn đạt thuật toán thông qua ngôn ngữ lập trình gọi là lập trình -Các em hãy cho biết khái -Nghiên cứu nội dung niệm lập trình? - Lập trình là việc sử dụng cấu SGK và trả lời câu hỏi trúc liệu và các lệnh ngôn ngữ lập trình cụ thể để mô tả - Nhận xét và cho HS ghi liệu và diễn đạt các thao tác bài thuật toán + Được chương trình - Kết hoạt động lập trình? +Ngôn ngữ máy, hợp ngữ và ngôn ngữ bâc cao -Ngôn ngữ lập trình gồm loại nào? -Nghiên cứu SGK và trả lời câu hỏi + Chương trình viết ngôn ngữ máy có thể nạp trực tiếp vào nhớ và thực -Theo các em chương trình viết ngôn ngữ bậc cao và chương trình viết ngôn ngữ máy khác nào? (3) + Chương trình viết ngôn ngữ lập trình bậc cao phải chuyển đổi thành chương trình trên ngôn ngữ lập máy thì thực -Làm nào để chuyển -Phải sử dụng chương chương trình viết trình dịch để chuyển đổi ngôn ngữ bậc cao sang ngôn ngữ máy? -Vì không lập trình trên ngôn ngữ máy để khỏi Ngôn ngữ bậc cao dễ viết, công chuyển đổi lập dễ hiểu Ngôn ngữ máy khó trình với ngôn ngữ bậc cao viết 3.2 Hoạt động 2: Tìm hiểu hai loại chương trình dịch: thông dịch và biên dịch - Theo các em chương trình dịch: chương trình nào là chương trình - Nghiên cứu SGK và trả nguồn và chương trình đích lời câu hỏi: + Chương trình nguồn là chương trình viết ngôn ngữ lập trình bậc cao + Chương trình đích là chương trình thực chuyển đổi sang ngôn ngữ -Nêu vấn đề: Em muốn giới máy thiệu trường mình cho người khách du lịch quốc tế biết tiếng Anh, có hai cách thực hiện: C1: Cần người biết tiếng Anh dịch câu nói em sang tiếng Anh cho người khách Cách mày gọi là thông dịch C2: Em soạn nội dung giới (4) thiệu giấy và người phiên dịch dịch toàn nội dung đó sang tiếng Anh -Chương trình dịch gồm thông đọc cho khách nghe Cách dịch và biên dịch này gọi là biên dịch a) Thông dịch - Nghiên cứu SGK và trả Tương tự chương trình dịch B1: Kiểm tra tính đúng đắn lời câu hỏi: có hai loại là thông dịch và câu lệnh chương +Thông dịch: biên dịch trình nguồn; B1: Kiểm tra tính đúng đắn -Các em hãy cho biết tiến B2: Chuyển lệnh đó thành ngôn câu lệnh trình thông dịch và ngữ máy chương trình nguồn; biên dịch B3: Thực các câu lệnh vừa B2: Chuyển lệnh đó thành chuyển đổi ngôn ngữ máy b) Biên dịch: B3: Thực các câu lệnh B1: Duyệt, phát lỗi, kiểm tra vừa chuyển đổi tính đúng đắn các câu lệnh +Biên dịch: chương trình nguồn B1: Duyệt, phát lỗi, B2: Dịch toàn chương trình kiểm tra tính đúng đắn nguồn thành chương trình các câu lệnh chương đích có thể thực trên máy và trình nguồn có thể lưu trữ để sử dụng lại B2: Dịch toàn chương cần thiết trình nguồn thành chương trình đích có thể thực trên máy và có thể lưu trữ để sử dụng lại cần thiết Củng cố kiến thức: - Khái niệm lập trình và ngôn ngữ lập trình - Các ngôn ngữ lập trình: ngôn ngữ máy, ngôn ngữ bậc cao, hợp ngữ - Khái niệm chương trình dịch -Thông dịch và biên dịch Bài tập nhà: - Về học bài và xem trước bài “Các thành phần ngôn ngữ lập trình” (5) Tuần Tiết Ngày dạy: …./…./20… BÀI 2: CÁC THÀNH PHẦN CỦA NGÔN NGỮ LẬP TRÌNH I Mục tiêu Kiến thức: - Biết ngôn ngữ lập trình có thành phần bản: bảng chữ cái, cú pháp và ngữ nghĩa - Biết các khái niệm tên, tên dành riêng, và biến - Biết các quy định tên, và biến ngôn ngữ lập trình cụ thể Kỹ năng: - Thực việc đặt tên đúng và nhận biết tên sai quy định Thái độ: - Rèn luyện thái độ cẩn thận, chính xác - Khả tư logic II Phương pháp – phương tiện dạy học Phương pháp: thuyết trình, vấn đáp, nêu tình có vấn đề Phương tiện: SGK, giáo án, SGV, bảng, phấn III Hoạt động dạy học Ổn định tổ chức: ổn định lớp, kiểm tra sĩ số Kiểm tra bài cũ:  Hỏi: Thông dịch và biên dịch là gì? Nội dung bài mới: 3.1 Hoạt động 1: Các thành phần ngôn ngữ lập trình HĐ Học Sinh HĐ Giáo Viên Trình bày bảng BÀI 2: CÁC THÀNH PHẦN CỦA NGÔN NGỮ LẬP TRÌNH - Đặt vấn đề: Có yếu tố nào dùng để xây dựng nên ngôn ngữ tiếng Việt? - Suy nghĩ và trả lời: + Bảng chữ cái tiếng Việt, số, dấu + Cách ghép các ký tự thành từ, ghép từ thành câu + Ngữ nghĩa từ và câu - Diễn giảng: Trong ngôn (6) - Lắng nghe và ghi bài ngữ lập trình tương tự vậy, nó gồm có các thành phần: Bảng chữ cái, cú pháp và ngữ nghĩa - Bảng chữ cái ngôn ngữ là gì? - Đọc SGK và trả lời - Đọc SGK và trả lời - Lắng nghe và ghi bài - Đọc SGK và trả lời - Chú ý lắng nghe và ghi bài Các thành phần - Mỗi ngôn ngữ lập trình thường có ba thành phần là: bảng chữ cái ,cú pháp và ngữ nghĩa a Bảng chữ cái: - Là tập các ký tự dùng để viết chương trình - Không dùng ký tự nào ngoài các ký tự quy định bảng chữ cái - Không dùng bất kì kí tự nào khác ngoài bảng chữ cái quy định Các kí tự bảng chữ cái bao gồm kí tự nào?  Gồm các kí tự in hoa và in - Nhận xét và cho HS ghi thường bảng chữ cái bài Tiếng Anh a,b,c,…,x,y,z A,B,C,…,X,Y,Z - Cho biết cú pháp là gì?  10 chữ số Ả Rập: 0,1,2, ,9 - Nhận xét, diễn giải thêm  Các kí tự đặc biệt cho HS hiểu (Cho HS kẻ bảng SGK) - Còn ngữ nghĩa hiểu b Cú pháp: Là quy tắc để viết chương nào ? trình - Nhận xét, giải thích cho HS hiểu rõ - Giải thích VD SGK cho HS hiểu c Ngữ nghĩa: xác định ý nghĩa thao tác cần phải thực hiện, ứng với tổ hợp kí tự dựa vào ngữ cảnh nó 3.2 Hoạt động 2: Tìm hiểu khái niệm tên thành phần ngôn ngữ lập trình - Mỗi đối tượng phải có Một số khái niệm tên để xác định và a Tên: là dãy liên tiếp không ngôn ngữ lập trình quá 127 kí tự bao gồm chữ số, chữ cái dấu gạch và bắt đầu - Yêu cầu HS nêu khái chữ cái dấu gạch (7) - Đọc sách trả lời niệm tên là gì ? VD: Pascal, _11A, abc - Nhận xét - Nêu số ví dụ và cách - Lắng nghe và ghi bài đặt tên và yêu cầu HS cho - Chú ý lắng nghe và trả biết tên nào đúng và tên lời nào sai - Hỏi: Trong ngôn ngữ lập trình Pascal có loại - Đọc SGK và trả lời tên? - Tên dành riêng là gì? - Nhận xét và nêu ví dụ cho HS hiểu rõ - Trả lời Tên dành riêng: Còn đgl - Lắng nghe và ghi bài từ khóa, là tên NNLT quy định, dùng với ý nghĩa riêng xác định, người lập trình không sử dụng với ý nghĩa - Tên chuẩn là gì? khác - Nhận xét và nêu ví dụ cho VD: program, uses, const, type, HS hiểu rõ var, begin,… - Tên chuẩn: Được NNLT xây - Trả lời dựng sẵn để dùng với ý nghĩa định Người lập trình có thể khai - Chú ý lắng nghe và ghi báo và dùng với ý nghĩa và mục bài - Khi đặt tên người lập đích khác trình cần chú ý yếu VD: abs, integer, real, sqr,… tố nào? Tên người lập trình đặt: - Nhận xét Lưu ý HS nên Cần phải khai báo trước - Đọc SGK và trả lời đặt tên cho gợi nhớ sử dụng Không trùng với tên dành riêng 3.3 Hoạt động 3: Tìm hiểu và biến - Đọc SGK và trả lời - Đọc SGK và cho biết b Hằng và biến là gì?  Hằng: - Nhận xét và cho HS ghi Hằng là đại lượng có giá trị - Lắng nghe và ghi bài bài không đổi suốt thời gian - Trong ngôn ngữ lập trình thực chương trình - Hằng số học, logic, thường có các nào? + Hằng số học: là các số nguyên xâu - Nhận xét hay số thực VD: 2, 1.5, 1.0E-6 + Hằng logic: là giá trị đúng sai VD: True, False (8) - Đọc SGK và trả lời - Lắng nghe và ghi bài + Hằng xâu: là dãy ký tự - Biến là gì? mã ASCII - Nhận xét Lưu ý là VD: ‘Lop 11A’ biến chương trình  Biến: phải khai báo Biến là đại lượng đặt tên dùng để lưu trữ giá trị và giá trị đó có thể thay đổi - Trong NNLT muốn đặt quá trình thực chú thích ta làm nào? chương trình - Nhận xét và cho HS ghi bài c Chú thích Giúp người đọc hiểu rõ ý nghĩa chương trình Trong Pascal, các chú thích đặt cặp dấu { và } (* và *) - Trả lời Củng cố kiến thức: Một NNLT gồm thành phần nào ? Phân biệt tên dành riêng và tên chuẩn Phân biệt và biến Bài tập nhà: Về học bài và chuẩn bị trước các bài tập SGK trang 13 (9) Tuần Tiết Ngày dạy: …./…./20… BÀI TẬP I Mục tiêu Kiến thức: Biết có lớp ngôn ngữ lập trình và các mức ngôn ngữ lập trình: ngôn ngữ máy, hợp ngữ và ngôn ngữ bậc cao Biết vai trò chương trình dịch Biết khái niệm biên dịch và thông dịch Biết các thành phần ngôn ngữ lập trình: bảng chữ cái, cú pháp và ngữ nghĩa Biết các thành phần sở Pascal: bảng chữ cái, tên, tên chuẩn, tên riêng (từ khóa), và biến Kỹ năng: Biết viết và tên đúng ngôn ngữ lập trình cụ thể Thái độ: Ham muốn học ngôn ngữ lập trình cụ thể để có khả giải các bài toán máy tính điện tử II Phương pháp – phương tiện dạy học Phương pháp: Thuyết trình, vấn đáp Phương tiện: SGK, giáo án, bảng, phấn III Hoạt động dạy học Ổn định tổ chức: ổn định lớp, kiểm tra sĩ số Kiểm tra bài cũ: Nội dung bài mới: HĐ Học Sinh HĐ Giáo viên Trình bày bảng - Đọc yêu cầu câu hỏi - ĐVĐ: Trước giải bài tập BÀI TẬP và bài tập cuối chương SGK, các em tự ôn lại trang 13 SGK số kiến thức mà chúng - Suy nghĩ để đưa ta đã học các bài trước dựa phương án trả lời trên yêu cầu câu hỏi trang 13 SGK - Suy nghĩ, trả lời câu hỏi - Đặt câu hỏi số 1: Tại Câu 1: người ta phải xây dựng các - Ngôn ngữ bậc cao gần với ngôn ngữ tự nhiên ngôn ngữ lập trình bậc cao? hơn, thuận tiện cho đông - Nhận xét, đánh giá và bổ đảo người lập trình sung hướng dẫn cho học - Chương trình viết sinh trả lời câu hỏi số 1: ngôn ngữ bậc cao nói chung không phụ thuộc vào phần cứng máy tính và chương trình có (10) - Suy nghĩ, trả lời câu hỏi - Đặt câu hỏi 2: Chương trình dịch là gì? Tại cần phải có chương trình dịch? - Suy nghĩ, trả lời câu hỏi, cho ví dụ - Đặt câu hỏi 3: Biên dịch và thông dịch khác nào? Phân tích câu trả lời học sinh - Suy nghĩ, trả lời, giải thích câu hỏi, - Đặt câu hỏi 4: Hãy cho biết các điểm khác tên dành riêng và tên chuẩn? Gọi hs trả lời và cho ví dụ Phân tích câu trả lời học thể thực trên nhiều máy tính khác - Chương trình viết ngôn ngữ bậc cao dễ hiểu, dễ hiệu chỉnh và dễ nâng cấp - Ngôn ngữ bậc cao cho phép làm việc với nhiều kiêu liệu và cách tổ chức liệu đa dạng, thuận tiện cho mô tả thuộc toán Câu 2: - Chương trình dịch là chương trình đặc biệt, có chức chuyển đổi chương trình viết trên ngôn ngữ lập trình bậc cao thành chương trình thực trên máy tính cụ thể Chương trình nguồn -> Chương trình dịch -> Chương trình đích Câu 3: - Trình biên dịch: duyệt, kiểm tra, phát lỗi, xác định chương trình nguồn có dịch không? dịch toàn chương trình nguồn thành chương trình đích có thể thực trên máy và có thể lưu trữ lại để sử dụng sau cần thiết - Trình thông dịch dịch câu lệnh ngôn ngữ máy thực câu lệnh vừa dịch báo lỗi không dịch Câu 4: (11) sinh - - a) b) c) d) e) f) g) h) i) - Tuần Tiết Đặt câu hỏi 5: Hãy tự viết ba tên đúng theo quy tắc Pascal Gọi học sinh lên bảng cho ví dụ tên người lập trình đặt Nhận xét, sửa chữa, góp ý Đặt câu hỏi 6: Hãy cho biết biểu diễn nào đây không phải là biểu diễn Pascal và rõ trường hợp: 150.0 –22 6,23 ‘43’ A20 1.06E-15 4+6 ‘C ‘TRUE’ Nhận xét, giải thích - Tên dành riêng không dùng khác với ý nghĩa đã xác định, tên chuẩn có thể dùng với ý nghĩa khác VD: Tên dành riêng Pascal: program, uses, const, type, var, begin, end Tên chuẩn: Pascal abs, integer Câu 5: Gợi ý: Trong Pascal tên (do người lập trình đặt) đặt tuân theo các quy tắc sau: - Chỉ bao gồm chữ cái, chữ số và dấu gạch dưới; - Không bắt đầu chữ số; - Độ dài theo quy định chương trình dịch (TP không quá 127 kí tự, Free Pascal không quá 255 kí tự) - Tuy nhiên, không nên đặt tên quá dài hay quá ngắn mà nên đặt cho gợi ý nghĩa đối tượng mang tên đó -Những biểu diễn sau đây không phải là Pascal: 6,23 dấu phẩy phải thay dấu chấm; A20 là tên chưa rõ giá trị; 4+6 là biểu thức Pascal chuẩn coi là Turbo Pascal; ‘TRUE’ là xâu không là lôgic (12) Ngày dạy: …./…./20… Chương II: CHƯƠNG TRÌNH ĐƠN GIẢN Bài 3: CẤU TRÚC CHƯƠNG TRÌNH I - Mục tiêu Kiến thức: Biết cấu trúc chung chương trình Kỷ năng: Nhận biết phần cấu trúc Thái độ: Tư logic II – Phương pháp – phương tiện dạy học Phương pháp: thuyết trình, vấn đáp Phương tiện: sách giáo khoa, giáo án, ghi III – Nội dung bài giảng: Ổn định tổ chức: kiểm tra sỉ số Kiểm tra bài cũ : kiểm tra miệng  Hỏi: Nêu khái niệm tên? Có loại tên ngôn ngữ lập trình Pascal? Nội dung bài mới: 3.1 Hoạt động 1: Tìm hiểu cấu trúc chung và các thành phần chương trình HĐ Học Sinh HĐ Giáo viên Trình bày bảng Lắng nghe và suy nghĩ Gợi ý cho học sinh: Một Cấu trúc chung: trả lời: bài tập làm văn thường Chương trình ngôn ngữ - Có ba phần: mở bài, thân có phần? các phần lập trình bậc cao gồm có hai bài, kết bài đó có thứ tự hay không? phần: Phần khai báo và phần - Các thành phần có thứ tự Tại phải chia làm thân Phần thân chương trình - Dễ viết, dễ đọc, dễ hiểu các phần vậy? là bắt buộc phải có, phần Nghiên cứu SGK thảo khai báo có thể có luận và trả lời: Yêu cầu học sinh nghiên không - Hai phần: cứu SGK trả lời các câu - Các diễn giải ngôn [<phần khai báo>] hỏi sau: ngữ tự nhiên đặt <phần thân> - Một chương trình có cấu dấu < và > trúc phần? - Các thành phần có thể có không đặt cặp dấu [ và ] Cấu trúc: - Khai báo tên chương [<phần khai báo>] trình, khai báo thư viện, <Phần thân> khai báo hằng, khai báo - Trong phần khai báo gồm Các thành phần biến, khai báo chương các khai báo nào? chương trình trình a) Phần khai báo: - program tinh_tong; - Khai báo tên chương trình: có thể có - Yêu cầu học sin cho ví dụ không Cấu trúc: khai báo tên chương program <tên chương trình>; (13) trình - const maxn = 100; - Yêu cầu học sinh lấy ví dụ khai báo ngôn ngữ lập trình Pascal - begin [<Dãy lệnh>] - end - Yêu cầu học sinh cho biết cấu trúc chung phần thân chương trình ngôn ngữ lập trình Pascal - Giải thích sơ cách thực lệnh Nhấn mạnh dấu chấm thân đó tên chương trình là người lập trình đặt theo đúng quy định tên VD: program phuong_trinh_B2 - Khai báo thư viện: Cấu trúc: + Trong Pascal: uses <tên thư viện>; + Trong C++: #include <tên thư viện> Vd: uses crt; #include <conio.h> - Khai báo hằng: Thường sử dụng cho giá trị xuất nhiều lần chương trình + Trong Pascal: const <tên hằng> = <giá trị>; vd: const MaxN = 100; Pi = 3.1416; KQ = ‘ket qua: ’; + Trong C++: const int MaxN = 100; const float Pi = 3.1416; - Khai báo biến: Biến đơn: là biến nhận giá trị thời điểm thực chương trình VD: Khi khảo sát phương trình đường thẳng ax + by + c = các hệ số a, b, c có thể khai báo biến đơn b) Phần thân: Trong Pascal: Begin [<Dãy các lệnh>] End (14) chương trình 3.2 Hoạt động 2: Tìm hiểu số ví dụ chương trình đơn giản - Đưa hai ví dụ: Ví dụ chương trình đơn - Trong ngôn ngữ pascal: giản Program vd1; - Trong ngôn ngữ pascal: Begin Program vd1; Write(‘chao cac ban’); Begin End Write(‘chao cac ban’); - Trong ngôn ngữ C++: End #include <stdio.h> - Trong ngôn ngữ C++: main() #include <stdio.h> { main() printf(“ chao các { ban”); printf(“ chao các } ban”); - Yêu cầu học sinh cho biết } - Suy nghĩ và trả lời hai ví dụ trên có - Chương trình Pascal gồm: phần? phần khai báo khai báo tên chương trình gồm khai báo nào? vd1, phần thân chương trình Phần thân chương trình có câu lệnh Write gồm có gì? dùng để đưa thông báo màn hình - Chương trình C++ gồm: khai báo thư viện, phần thân chương trình có câu lệnh printf dùng để in thông báo màn hình Củng cố kiến thức: - Một chương trình gồm có hai phần: phần khai báo và phần thân - Cấu trung các khai báo - Cấu trúc phần thân chương trình Bài tập nhà: - Học bài và xem bài trước bài ”Một số kiểu liệu chuẩn” và bài ”Khai báo biến” (15) Tuần Tiết Ngày dạy: …./…./20… BÀI & 5: MỘT SỐ KIỂU DỮ LIỆU CHUẨN VÀ KHAI BÁO BIẾN I Mục tiêu: Kiến thức: - Biết số kiểu liệu chuẩn: Kiểu nguyên, kiểu thực, kiểu kí tự, kiểu logic - Biết cấu trúc chung khai báo biến, biết khai báo biến đúng Kĩ năng: - Sử dụng đúng kiểu liệu và khai báo biến ngôn ngữ Pascal Thái độ - Kích thích tìm tòi học hỏi Tin học nhiều II Phương pháp – phương tiện dạy học: Phương pháp: - Thuyết trình, vấn đáp… - Tổ chức hoạt động nhóm Phương tiện dạy học: - SGK, giáo án, ghi III Nội dung bài giảng: Ổn định tổ chức (1’): Kiểm tra sỉ số lớp Kiểm tra bài cũ (4’): Kiểm tra miệng (1 học sinh)  Hỏi: - Mô tả cấu trúc chung chương trình? - Có thể có phần khai báo nào?  Đáp: o Cấu trúc chung [<phần khai báo>] <phần thân> o Có thể có các khai báo cho: tên chương trình, thư viện, hằng, biến và chương trình Nội dung bài mới: 3.1 Hoạt động 1: Tìm hiểu số kiểu liệu chuẩn HĐ Học Sinh HĐ Giáo Viên Trình bày bảng  Giới thiệu bài I Một số kiểu liệu chuẩn - Chú ý, lắng nghe và - Đặt vấn đề: Trong toán học, suy nghĩ trả lời: để thực tính toán ta - Số tự nhiên, số cần phải có các tập số Đó là nguyên, số hữu tỉ, số các tập số nào? thực - Diễn giải: Cũng tương tự vậy, ngôn ngữ lập - Liên tưởng các tập số trình Pascal, để lập trình giải (16) toán học với các bài toán, cần có các kiểu liệu tập hợp, tập hợp có Pascal giới hạn định - Các em có thể hiểu nôm na: Kiểu liệu chuẩn là tập hữu hạn các giá trị, kiểu liệu cần dung lượng nhớ cần thiết để lưu trữ và xác định các phép toán có thể tác động lên liệu - Yêu cầu học sinh nghiên cứu sách giáo khoa, trả lời các câu hỏi sau: - Có bao nhiêu kiểu liệu - Đọc SGK và trả lời chuẩn ngôn ngữ Pascal? - Kẻ bảng lên bảng và yêu cầu học sinh nhận xét phạm - Có kiểu: kiểu vi giá trị kiểu nguyên, kiểu thực, kiểu ký tự và kiểu logic - Kẻ bảng lên bảng và yêu cầu học sinh nhận xét phạm vi giá trị kiểu Kiểu nguyên Kẽ bảng SGK - Học sinh trả lời - Học sinh trả lời - Học sinh trả lời - Kẻ bảng lên bảng và yêu cầu học sinh nhận xét phạm vi giá trị kiểu - Giải thích nội dung kiểu lôgic Phát vấn: Muốn tính toán trên các giá trị: 4, , 7.5 ta phải sử dụng kiểu liệu gì? Kiểu thực Kẽ bảng SGK Kiểu ký tự Kẽ bảng SGK Kiểu lôgic Kẽ bảng SGK Suy nghĩ và trả lời (17) Kiểu integer các giá trị 4, Kiểu real giá trị 7.5 3.2 Hoạt động 2: Tìm hiểu khai báo biến Giới thiệu nội dung: lập trình, chúng ta nhập vào lưu trữ đâu? Được lưu trữ các biến - Đọc SGK và trả lời -Yêu cầu học sinh tham khảo câu hỏi SGK và trả lời câu hỏi vì cần phải khai báo biến? - Mọi biến dùng chương trình phải khai báo tên biến và kiểu liệu biến Tên biến dùng để xác lập quan hệ II Khai báo biến biến với địa nhớ Mọi biến dùng chương nơi lưu giữ giá trị - Đưa nhận xét và ghi trình phải khai báo tên biến bảng biến và kiểu liệu biến Cấu trúc - Lắng nghe và ghi Var <danh sách biến>:<kiểu chép liệu>; Trong đó: - Danh sách biến là nhiều tên biến, các tên biến viết cách dấu phẩy - Kiểu liệu thường là các kiểu liệu chuẩn kiểu liệu người lập trình định nghĩa - Sau từ khóa var có thể khai báo nhiều danh sách biến khác nhau, tức là cấu trúc : <danh sách biến>:<kiểu liệu>; - Đưa ví dụ cho học sinh có thể xuất nhiều lần - Học sinh chú ý, ghi hiểu thêm bài học Ví dụ chép Var x: word; - Giải thích ví dụ y: char; SGK - Học sinh chú ý, và - Giải đáp thắc mắc học đưa thắc mắc có sinh có (18) - Đưa thêm các ví dụ cho học sinh hiểu thêm cách - Quan sát các ví dụ và khai báo biến nhận xét Ví dụ a: var x, y, z: word; i: byte; Ví dụ b: var x, y, z: word; X: longint; Ví dụ c: var n 1: real; h: interger; i: byte; - Yêu cầu học sinh nhận xét các ví dụ (ví dụ nào đúng Ví dụ a đúng với cấu trúc đã học, ví dụ nào Ví dụ b, c sai sai) - Vd b: trùng tên biến - Yêu cầu học sinh giải thích (x, X) lựa chọn mình - Vd c: Đặt tên biến sai: n (do sử dụng khoảng - Nhận xét, bổ sung trắng); sai kiểu: - Giải thích ví dụ SGK interger (đúng là - Giải đáp ý kiến học sinh integer) có - Căn vào ví dụ a các em - Chú ý theo dõi bài cho biết có bao nhiêu biến tất giảng cả? - Tổng nhớ dành cho các biến đã khai báo là bao nhiêu? - Có tất biến (x, y, z, i) - Suy nghĩ và tính toán: Bộ nhớ cấp phát cho ba biến x, y, z kiểu word là 3*2 = (byte) Bộ nhớ cấp phát cho biến i kiểu byte là (byte) => Vậy tổng nhớ (19) dành cho các biến đã khai báo là: +1 = (byte) - Chú ý lắng nghe và - Nêu số chú ý khai  Một số chú ý khai báo ghi bài báo biến cho học sinh hiểu biến: - Cần đặt tên biến cho gợi nhớ đến ý nghĩa biến đó - Không nên đặt tên biến quá ngắn hay quá dài, dễ mắc lỗi viết nhiều lần tên biến - Khi khai báo biến cần đặc biệt lưu ý đến phạm vi giá trị nó Củng cố kiến thức: - Nhắc lại nội dung đã học, giải đáp thắc mắc học sinh Bài tập nhà: - Yêu cầu học sinh nhà làm bài tập 2, 3, 4, trang 35 (20) Tuần Tiết Ngày dạy: …./…./20… BÀI 6: PHÉP TOÁN, BIỂU THỨC, CÂU LỆNH GÁN I Mục tiêu Kiến thức: - Biết các khái niệm: Phép toán, biểu thức số học, hàm số, hàm học chuẩn, biểu thức quan hệ - Hiểu lệnh gán Kỹ năng: - Viểt lệnh gán - Viết các biểu thức số học và logic với các phép toán thông dụng Thái độ: - Phát triển tư logic, linh hoạt, có tính sáng tạo - Biết thể tính cẩn thận, chính xác tính toán lập trình II Phương pháp – phương tiện dạy học Phương pháp: thuyết trình, vấn đáp Phương tiện: SGK, giáo án, SGV, bảng, phấn III Hoạt động dạy học Ổn định tổ chức: ổn định lớp, kiểm tra sĩ số Kiểm tra bài cũ:  Khai báo các biến theo yêu cầu sau: biến a, b, c: kiểu kí tự; biến d, e: kiểu byte; biến g, h: kiểu thực  Tính tổng nhớ dành cho các biến đã khai báo Nội dung bài mới: 3.1 Hoạt động 1: Tìm hiểu số phép toán HĐ Học Sinh HĐ Giáo Viên Trình bày bảng - Chú ý lắng nghe - Đặt vấn đề: Để mô tả các BÀI 6: PHÉP TOÁN, BIỂU thao tác thuật toán, THỨC, CÂU LỆNH GÁN ngôn ngữ lập trình sử dụng số khái niệm bản: phép toán, biểu thức, gán giá trị Phép toán - Suy nghĩ và trả lời - Hãy kể các phép toán em  Các phép toán số học: +, -, *, Phép: cộng, trừ, nhân, đã học toán học div, mod chia, lấy số dư, chia  Các phép toán quan hệ: <, <=, lấy nguyên, so sánh >, >=, =, <> - Diễn giải: Trong ngôn ngữ  Các phép toán logic: not, or, lập trình Pascal có các and phép toán đó diễn đạt cách - Phép toán Div, Mod sử dụng cho kiểu liệu nguyên khác - Kết phép toán quan hệ -Yêu cầu học sinh nghiên (21) - Đọc SGK và trả lời cứu sách giáo khoa và cho biết các nhóm phép toán - Lắng nghe và ghi - Nhận xét, giải thích và cho bài HS ghi bài - Chỉ sử dụng cho - Hỏi: Phép Div, Mod sử dụng cho kiểu kiểu liệu nguyên liệu nào? - Kết phép toán - Suy nghĩ và trả lời quan hệ thuộc kiểu liệu nào? - Nhận xét và cho HS ghi bài 3.2 Hoạt động 2: Tìm hiểu biểu thức - Suy nghĩ và trả lời - Nêu vấn đề: Trong toán Gồm hai phần: toán học ta đã làm quen với khái hạng và toán tử niệm biểu thức, hãy cho biết yếu tố xây dựng nên biểu thức - Biểu thức số học - Nếu bài toán mà toán hạng là biến số, số hàm số và toán tử là các phép toán số học thì biểu thức có tên gọi là gì? - Vậy em nào hãy cho biết - Trả lời khái niệm biểu thức số học? - Nhận xét và cho HS ghi - Chú ý lắng nghe và bài ghi bài - Nêu số ví dụ biểu thức số học toán học và hướng dẫn HS cách viết biểu thức đó Pascal thuộc kiểu liệu logic Biểu thức số học - Là dãy các phép toán +, -, *, /, div và mod từ các hằng, biến kiểu số và các hàm Ví dụ:  5a + 6b = 5*a +6*b  (¿ x − y) ∗ x ∗ y ¿/¿ xy =¿ x−y - Hàm trị tuyệt đối, - Trong toán học ta đã làm hàm bậc 2, hàm quen với số hàm số Hàm số học chuẩn học, hãy kể tên? sin Biểu diễn Biểu diễn Hàm toán học - HS trả lời: 2*x*x+1 - Muốn tính ax + ta viết Pascal nào? Bình x2 sqr(x) (22) - Muốn tính |x| , √ x , sinx ta làm nào? Tính các giá trị đó cách đơn giản người ta đã xây dựng sẵn số đơn vị chương trình các thư viện chương trình giúp người lập trình tính toán nhanh phương Căn bậc hai √x sqrt(x) Giá trị tuyệt đối |x| abs(x) Logarit tự nhiên lnx ln(x) Lũy thừa số e ex exp(x) Sin sinx sin(x) - Yêu cầu HS kẻ bảng Cos cosx cos(x) SGK - Lắng nghe và ghi Ví dụ: biểu thức ax2 + |a + b| - Nêu ví dụ: ax2 + |a + b| bài Pascal có thể viết sau: a*sqr(x) + abs(a+b) Biểu thức quan hệ - Trong lập trình ta phải so sánh giá trị nào đó trước thực lệnh cách sử dụng biểu thức quan hệ Biểu thức quan hệ còn gọi là biểu thức so sánh - Lắng nghe và ghi dùng để so sánh giá trị đúng sai bài - Nêu dạng cho HS nắm Nêu ví dụ cụ thể cho HS hình dung và hiểu - Lưu ý HS trình tự thực biểu thức quan - Logic hệ - Cho biết kết phép toán quan hệ thuộc kiểu liệu nào đã học? Biểu thức quan hệ Cấu trúc chung: <BT1> <Phép quan hệ> <BT2> Trong đó: BT1 và BT2 cùng là xâu cùng biểu thức số học Ví dụ:  > 3;  = 2*i;  1<=3*j - Thứ tự thực biểu thức quan hệ: + Tính giá trị biểu thức + Thực phép toán quan hệ Biểu thức logic Biểu thức logic - Biểu thức logic là biểu thức quan hệ liên kết - Biểu thức logic đơn gảin là với phép toán biến logic (23) logic - Dùng để liên kết nhiều biểu thức - Hãy quan sát ví dụ biểu quan hệ lại với - Kết hợp SGK, trả thức logic sau: 2< x  VD: ( SGK - 28) lời: - Trong Pascal cần phải tách thành < x và x  (2< x) and (x<=8 ) nào? - Nhận xét và cho HS ghi - Chú ý lắng nghe và bài ghi bài 3.3 Hoạt động 3: Tìm hiểu câu lệnh gán - Lắng nghe và ghi - Nêu cú pháp câu lệnh gán bài Lưu ý HS: bên trái dấu gán là tên biến, bên phải là giá trị biểu thức - Nêu ví dụ: x := 4+8; - Giải thích: Lấy cộng 8, đem kết đặt vào x Ta X=12 - Đọc SGK và trả lời Câu lệnh gán Có dạng: <tên biến> := <biểu thức>; VD: x := + 8; Chức câu lệnh gán: + Tính giá trị biểu thức + Gán giá trị tính vào tên biến - Hãy cho biết chức lệnh gán? - Lắng nghe và ghi - Nhận xét và cho HS ghi bài bài Củng cố kiến thức: - Nhắc lại số khái niệm về: + Các phép toán : Số học, quan hệ, logic + Cấu trúc lệnh gán Pascal: tên_biến := biểu_thức; Bài tập nhà: - Làm các bài tập 5, 6, 7, SGK trang 35 - 36 - Xem trước bài: Các thủ tục chuẩn vào/ đơn giản (24) Tuần Tiết Ngày dạy: …./…./20… BÀI – 8: CÁC THỦ TỤC CHUẨN VÀO/RA ĐƠN GIẢN SOẠN THẢO, DỊCH, THỰC HIỆN VÀ HIỆU CHỈNH CHƯƠNG TRÌNH I Mục tiêu Kiến thức: - Biết các lệnh vào đơn giản để nhập liệu từ bàn phím đưa liệu màn hình - Viết số lệnh vào/ đơn giản - Biết các bước: Soạn, dịch, thực và hiệu chỉnhchương trình Kỹ năng: - Viết đúng lệnh vào/ra liệu - Biết nhập đúng liệu thực chương trình Thái độ: - Ham muốn tìm hiểu cách biên soạn và thực chương trình II Phương pháp – phương tiện dạy học Phương pháp: thuyết trình, vấn đáp Phương tiện: SGK, giáo án, bảng, phấn, máy vi tính, máy chiếu III Hoạt động dạy học Ổn định tổ chức: ổn định lớp, kiểm tra sĩ số Kiểm tra bài cũ:  Biểu diễn biểu thức toán học sau ngôn ngữ lập trình Pascal: x + x−y x+ y Nội dung bài mới: 3.1 Hoạt động 1: Tìm hiểu thủ tục nhập liệu từ bàn phím HĐ Học Sinh HĐ Giáo viên Trình bày bảng - Ta có lệnh để nhập - Khi giải bài toán, đại lượng đã biết phải nhập thông tin vào, lập trình ta nhập cách nào? - Làm nào nhập giá trị cho bàn phím? Nhập liệu vào từ bàn phím - Trong pascal ta dùng thủ tục chuẩn sau: Read(danh sách biến vào);hoặc Readln(danh sách biến vào); - Ví dụ: Read(N); Readln(a,b,c); Chú ý: + Khi nhập liệu từ bàn phím READ, READLN, có ý nghĩa nhau, thường hay dùng READLN + Khi nhập giá trị cho các biến thủ (25) - - Thủ tục READ sau đọc xong giá trị trỏ không xuống dòng còn READLN là xuống dòng - Nghe và ghi bài - Thủ tục READLN không có tham số có chức lamg gì? Trả lời tục, giá trị này gõ cách dấu cách phím Enter - Thủ tục READLN không có tham số dừng chương trình 3.2 Hoạt động 2: Tìm hiểu thủ tục đưa liệu màn hình - - Trả lời Trên đây là thủ tục nhập liệu vào còn xuất thì sao? - Trường hợp thủ tục WRITELN; không có tham số thì thì thủ tục có tác dụng để làm gì? - Trường hợp thủ tục WRITELN; không có tham số thì thì thủ tục có tác dụng đưa trỏ xuống dòng Đưa liệu màn hình Trong pascal cung cấp thủ tục chuẩn: write(<Danh sách kết ra>); writeln(<Danh sách kết ra>); đó <Danh sách kết ra>có thể tên biến đơn, biểu thức, Ví dụ: write(‘Nap so N:’); Readln(N);  Chú ý: - writeln sau đưa kết trỏ xuống dòng Ngoài TP có quy cách đưa thông tin nàm hình sau: + Kết thực: - Độ rộng, số chữ số thập phân là các nguyên dương :<Độ rộng>:<số chữ số thập phân> + Kết khác: :<Độ rộng> Ví dụ: Write(N:3); Writeln(‘X=’,x:8:2); (26) 3.3 Hoạt động 3: Tìm hiểu cách soạn thảo, dịch, thực hiện, hiệu chỉnh chương trình - Nghe giảng - Để thực hành TP ta Soạn thảo, dịch, thực khởi động cách: Nháy và hiệu chỉnh chương đúp vào biểu tượng turbo trình Một số tao tác thường dùng pascal trên màn hình pascal: - Trên máy cần có tệp: - Khi soạn thảo muốn xuống Turbo.exe(file chạy) dòng nhấn Enter - Ghi file vào đĩa: F2 Turbo.tpl(file thư viện) - Mở file đã có: F3 -Nghe giảng - Biên dịch chương trình: Alt Turbo.tph(file hướng dẫn) +F9 - Chạy chương trình: Ctrl + F9 - Đóng cửa sổ chương trình: Alt + F3 - Thoát khỏi phần mền: Alt + X Củng cố kiến thức - Nhắt lại hoạt động Write/Writeln, read/Readln - Cách soạn thảo,chạy chương trình, ghi vào đĩa, thoát khỏi TP Bài tập nhà - Về nhà làm bài tập sách trang 35,36 (27) Tuần Tiết Ngày dạy: …./…./20… BÀI TẬP I Mục tiêu Kiến thức: - Biết cách khai báo biến nào là tốt - Biểu diễn các biểu thức từ dạng toán học sang dạng Pascal và ngược lại Kỹ năng: - Hình thành kĩ phán đoán cho học sinh việc lựa chọn kiểu liệu thích hợp với trường hợp biến - Thao tác chuyển đổi các biểu thức từ dạng Pascal sang dạng toán học và ngược lại nhanh chóng và nhuần nhuyễn Thái độ: - Rèn luyện tính cẩn thận II Phương pháp – phương tiện dạy học Phương pháp: Thuyết trình, vấn đáp Phương tiện: SGK, giáo án, SGV III Hoạt động dạy học Ổn định tổ chức: ổn định lớp, kiểm tra sĩ số Kiểm tra bài cũ  Viết lên bảng hai câu: Một câu lệnh dùng để in màn hình dòng chữ “Tra bai” và câu dùng để nhập vào số Nội dung bài mới: HĐ Học Sinh HĐ Giáo viên Trình bày bảng BÀI TẬP - Đọc sách và trả lời lần - Yêu cầu HS đọc và làm lượt câu hỏi các bài tập 3, 4, 5, 6, SGK trang 35, 36 - Lắng nghe và ghi bài - Nhận xét câu trả lời Câu 3: word, integer, longint Câu 4: b và d Câu 5: c Câu 6: y z HS Nếu sai chỉnh lại, (1+z) a− đúng cho HS điểm 1+ x vào cột kiểm tra miệng x+ = (1+z)*((x+y/z)/(a-1/(1+x*x*x))) Câu a a 2a 2= b b (28) b c d abc b a b = c ac b √ a 2+ b Củng cố kiến thức: - Học sinh biết nào là khai báo biến tối ưu - Cách chuyển đổi qua lại biểu thức toán học và biểu thức Pascal Bài tập nhà: - Về đọc trước bài Bài tập và thực hành SGK trang 34 (29) Tuần Tiết Ngày dạy: …./…./20… BÀI TẬP VÀ THỰC HÀNH I Mục tiêu Kiến thức: - Biết viết chương trình Pascal hoàn chỉnh - Biết sử dụng số dịch vụ chủ yếu Pascal soạn thảo, lưu, dịch và thực chương trình Kỹ năng: - Học sinh hiểu lập trình cần phải đảm bảo phần nào và nội dung phần là gì - Biết xác định lỗi số chương trình đơn giản Thái độ: - Hình thành cho học sinh bước đầu tư lập trình có cấu trúc - Tự giác, tích cực và chủ động hoàn thành, II Phương pháp – phương tiện dạy học Phương pháp: Thuyết trình, vấn đáp Phương tiện: SGK, giáo án, máy chiếu, máy vi tính III Hoạt động dạy học Ổn định tổ chức: ổn định lớp, kiểm tra sĩ số Kiểm tra bài cũ: Nội dung bài mới: 3.1 Hoạt động 1: Bài tập HĐ Học Sinh HĐ Giáo viên Trình bày bảng BÀI TẬP VÀ THỰC HÀNH - Chú ý tìm hiểu và trả - Yêu cầu HS xác định lỗi lời chương trình sau: Bài tập 1: Program vidu1; Use crt; Var a: byte; Begin Writeln(‘Truong THPT iSCHOOL Long An’); End - Chú ý lắng nghe và - Nhận xét câu trả lời Program vidu1; Use crt; Var a: byte Begin Writeln(‘Truong THPT iSCHOOL Long An’); End Các lỗi sai: (30) ghi bài HS và khẳng định các lỗi - Từ use viết sai: viết đúng là uses sai - Khai báo biến thiếu dấu chấm phẩy cuối khai báo - Thực gõ chương - Yêu cầu HS thực trình viết chương trình bài tập tiết trước trên Turbo Pascal Sau đó, HS tự sửa lại các lỗi và hoàn thiện chương trình chạy - Chú ý lắng nghe và - Hướng dẫn HS cách lưu thực theo hướng chương trình, cách dịch dẫn giáo viên sữa lỗi và chạy chương trình - Quan sát và hướng dẫn HS thực 3.2 Hoạt động 2: Bài tập - Suy nghĩ làm bài - Yêu cầu HS viết chương trình Pascal đơn giản: In lên màn hình hai dòng chữ: Xin chao cac ban Moi cac ban bat dau lam quen voi Pascal - Kết thúc chương trình thiếu dấu chấm (sau từ khóa end) Bài tập 2: Program in_2_xau; Uses crt; Begin Writeln(‘Xin chao cac ban’); Writeln(‘Moi cac ban lam quen voi Pascal’); - Theo dõi hướng dẫn - Quan sát và hướng dẫn End giáo viên và thực HS thực hiện Củng cố kiến thức - Các thành phần chương trình Pascal đơn giản - Cách thực chương trình Pascal Bài tập nhà - Xem tiếp bài thực hành phần chương trình Giải phương trình bậc hai (31) Tuần 10 Tiết 10 Ngày dạy: …./…./20… BÀI TẬP VÀ THỰC HÀNH (tt) I Mục tiêu Kiến thức: - Biết viết chương trình Pascal hoàn chỉnh - Biết sử dụng số dịch vụ chủ yếu Pascal soạn thảo, lưu, dịch và thực chương trình Kỹ năng: - Học sinh hiểu lập trình cần phải đảm bảo phần nào và nội dung phần là gì - Biết xác định lỗi số chương trình đơn giản Thái độ: - Hình thành cho học sinh bước đầu tư lập trình có cấu trúc - Tự giác, tích cực và chủ động hoàn thành, II Phương pháp – phương tiện dạy học Phương pháp: Thuyết trình, vấn đáp Phương tiện: SGK, giáo án, máy chiếu, máy vi tính III Hoạt động dạy học Ổn định tổ chức: ổn định lớp, kiểm tra sĩ số Kiểm tra bài cũ: Nội dung bài mới: HĐ Học Sinh HĐ Giáo viên Trình bày bảng - Học sinh quan sát trên - GV ghi chương trình bảng và độc lập gõ chương Giai_PTB2 lên bảng trình vào máy - GV yêu cầu học sinh đọc và gõ chương trình Giai_PTB2 trên bảng Chương trình giải phương trình bậc hai: program Giai_PTB2; uses crt; var a, b , c, D: real; x1, x2: real; begin clrscr; write(‘ a, b, c: ‘); readln(a, b, c); D:=b*b - 4a*b*c; x1:= (-b - sqrt(D))/(2*a); x2:= -b/a - x1; (32) write(‘x1 = ‘, x1 : : 2, ’x2: = ‘, x2 : : 2); readln end - Nhấn phím F2 và gõ - GV yêu cầu học sinh thực PTB2.PAS các nhiệm vụ sau: - Nhấn phím Alt+F9 + Lưu chương trình cách nhấn phím F2 với tên PTB2.PAS - Nhấn phím Ctrl+F9 + Dịch và sửa lỗi cú pháp với tổ hợp phím Alt+F9 - x1 = 1.00 x2 = 2.00 + Thực chương trình với tổ hợp phím Ctrl+F9 + Nhập các giá trị 1; -3; và Thông báo kết máy đưa - Nhấn phím Enter + Trở màn hình soạn thảo phím Enter - Nhấn phím Ctrl+F9 + Tiếp tục chương trình thực + Nhập các giá trị ; ; -2 Thông báo kết máy đưa HỎI: Vì lại có lỗi xuất hiện? + Sửa lại chương trình trên không dùng đến biến D và - Thông báo lỗi và cho biết thực chương trình đã vì sao: Do bậc hai sửa số âm - Sửa lại: readln(a, b, c); x1:= (-b - sqrt(b*b 4a*b*c))/(2*a); x2:= -b - x1; write(‘x1 = ‘, x1 : : 2, ’x2: + Sửa lại chương trình cách thay đổi công = ‘, x2 : : 2); thức tính x2 (33) readln(a, b, c); - Tiếp tục sửa lại: x1:= (-b - sqrt(b*b 4a*b*c))/(2*a); x2:= (-b + sqrt(b*b 4a*b*c))/(2*a); + Thực chương trình write(‘x1 = ‘, x1 : : 2, ’x2: đã sửa với liệu ; - = ‘, x2 : : 2); ; Thông báo kết + Thực chương trình - x1 = 2.00 x2 = 3.00 - x1 = 2.00 x2 = 3.00 với liệu ; ; Thông báo kết - Thông báo lỗi với lý delta pt là số âm Củng cố kiến thức - Nhắc lại các bước hoàn thành chương trình + Phân tích bài toán để xác định liệu vào/ + Xác định thuật toán + Soạn chương trình + Lưu chương trình + Biên dịch chương trình + Thực và hiệu chỉnh chương trình Bài tập nhà - Thực hành lại bài - Chuẩn bị tuần sau kiểm tra tiết (34) Tuần 12 Tiết 12 Ngày dạy: …./…./20… CHƯƠNG III: CẤU TRÚC RẼ NHÁNH VÀ LẬP BÀI 9: CẤU TRÚC RẼ NHÁNH I Mục tiêu Kiến thức: - Hiểu nhu cầu cấu trúc rẽ nhánh việc giải các bài toán - Hiểu chế hoạt động câu lệnh rẽ nhánh dạng thiếu và dạng đủ - Hiểu câu lệnh ghép Kỹ năng: - Sử dụng cấu trúc rẽ nhánh để mô tả thuật toán số bài toán đơn giản - Viết các lệnh rẽ nhánh áp dụng số trường hợp đơn giản Thái độ: II Phương pháp – phương tiện dạy học Phương pháp: Thuyết trình, vấn đáp Phương tiện: SGK, giáo án, bảng, phấn III Hoạt động dạy học Ổn định tổ chức: ổn định lớp, kiểm tra sĩ số Kiểm tra bài cũ: Nội dung bài mới: 3.1 Hoạt động 1: Khái niệm rẽ nhánh HĐ Học Sinh HĐ Giáo viên Trình bày bảng BÀI 9: CẤU TRÚC RẼ NHÁNH Khái niệm rẽ nhánh - Suy nghĩ và trả lời - Suy nghĩ và trả lời - Lắng nghe và ghi bài - Yêu cầu HS nêu số câu mà đó có sử dụng cấu trúc: Nếu …… thì - Nhận xét Yêu cầu HS nêu số câu có sử dụng cấu trúc: Nếu… thì, không thì… - Nhận xét Lập trình trên máy tính nhằm mục đích giải các bài toán, yêu cầu người đặt ra, vì ngôn ngữ lập trình phải cung cấp cấu trúc để đáp ứng tình này Trong ngôn ngữ lập trình, cấu trúc có vai trò * Một số mệnh đề có dạng điều kiện: + Dạng thiếu: Nếu…thì… + Dạng đủ: Nếu … thì … không thì … * Cấu trúc dùng để mô tả các mệnh đề trên gọi là cấu trúc rẽ nhánh thiếu và đủ * Mọi ngôn ngữ lập trình có các câu lệnh để mô tả cấu trúc rẽ nhánh (35) gọi là cấu trúc rẽ - Lắng nghe, suy nghĩ và nhánh - Viết thuật toán tìm trả lời nghiệm phương trình bậc hai và yêu cầu HS xem có thể áp dụng cấu trúc rẽ nhánh chỗ nào - Nhận xét Chúng ta tìm hiểu xem Pascal cấu trúc rẽ nhánh viết các câu lệnh gì? 3.2 Hoạt động 2: Câu lệnh if - then HĐ Học Sinh HĐ Giáo viên - Đọc SGK và trả lời - Yêu cầu HS đọc SGK và cho biết câu lệnh if – then gồm có dạng? - Lắng nghe và trả lời - Nhận xét Cho biết dạng thiếu có cú pháp nào? - Lắng nghe và ghi bài - Nhận xét và cho HS ghi bài - Nêu ví dụ: - Lắng nghe Nếu a > thì in màn hình dòng chữ “a là số lớn 2” Tương ứng Pascal viết là: If a > then writeln(‘a là số lớn 2’); - Nêu số ví dụ khác và - Lên bảng thực yêu cầu HS lên bảng thực - Nhận xét và cho HS ghi - Chú ý lắng nghe và ghi bài bài - Trả lời - Lắng nghe - Trả lời - Suy nghĩ và trả lời Trình bày bảng Câu lệnh if – then a Dạng thiếu: if < điều kiện > then < câu lệnh >; Ví dụ:  Nếu a > thì in màn hình dòng chữ “a lớn 2”  If a > then writeln(‘a lớn 2’);  Nếu a chia hết cho thì in màn hình dòng chữ “a là số chẵn”  If a mod = then writeln(‘a là số chẵn’);  Nếu delta < thì in màn hình dòng chữ “phương trình vô nghiệm” If delta < then writeln(‘phuong trinh vo nghiem’); b Dạng đủ - Cho biết dạng đủ có cú If < điều kiện > then < câu lệnh1 > pháp nào? Else < câu lệnh2>; - Nhận xét - Sự khác dạng Ví dụ: thiếu và dạng đủ?  If a > then - Mục đích else là làm Writeln(‘a lon hon 2’) gì? Else - Làm công việc mà mệnh Writeln(‘a nho hon 2’); (36) đề if không thỏa Yêu cầu HS thay đổi ví dụ - Suy nghĩ và trả lời phần a để có ví dụ phần này - Nhận xét và cho HS ghi - Lắng nghe và ghi bài bài 3.3 Hoạt động 3: Câu lệnh ghép HĐ Học Sinh HĐ Giáo viên  If a mod = then Writeln(‘a la so chan’) Else Writeln(‘a la so le’); Trình bày bảng - Suy nghĩ và trả lời - Câu lệnh ghép là gì? Câu lệnh ghép - Mục đích câu lệnh ghép Cú pháp: - Trả lời để làm gì? Begin - Nhận xét Thông thường <các câu lệnh>; ta phải thực nhiều việc End; không đơn là Ví dụ: việc các ví dụ trên If a >=0 then đã nêu điều kiện ta Writeln(‘a lon hon 0’) đưa là thỏa mãn Else - Yêu cầu HS nêu cú pháp Begin - Đọc sách trả lời câu lệnh ghép ? Writeln(‘a nho hon - Lắng nghe, quan sát và - Nêu ví dụ cho HS hiểu 0’); ghi bài Writeln(‘a la so - Lưu ý HS trước từ khóa am’); else không có dấu ; End; Củng cố kiến thức - Yêu cầu HS viết đoạn thuật toán sau dạng các câu lệnh NNLT Pascal: Nếu delta < thì In màn hình dòng chữ “phương trình vô nghiệm” Ngược lại Nếu delta = thì In màn hình dòng chữ “phương trình có nghiệm kép” Ngược lại In màn hình dòng chữ “phương trình có hai nghiệm phân biệt” Bài tập nhà - Học bài, trả lời câu 1, trang 50 và làm bài trang 51 sgk - Chuẩn bị trước bài 10 “Cấu trúc lặp” (37) Tuần 13 Tiết 13 Ngày dạy: …./…./20… BÀI 10: CẤU TRÚC LẶP I Mục tiêu Kiến thức: - Biết ý nghĩa cấu trúc lặp - Biết cấu trúc chung lệnh lặp for ngôn ngữ lập trình Pascal - Biết sử dụng đúng hai dạng lệnh lặp for ngôn ngữ lập trình Pascal Kỹ năng: - Bước đầu sử dụng lệnh lặp for để lập trình giải số bài toán đơn giản Thái độ: - Kích thích việc ham học tập tin học học sinh II Phương pháp – phương tiện dạy học Phương pháp: Thuyết trình, vấn đáp, giảng giải Phương tiện: SGK, giáo án, bảng, phấn III Hoạt động dạy học Ổn định tổ chức: ổn định lớp, kiểm tra sĩ số Kiểm tra bài cũ: Yêu cầu HS chuyển sang ngôn ngữ lập trình Pascal đoạn chương trình viết ngôn ngữ tự nhiên sau: Nếu delta < thì In màn hình dòng chữ “phương trình vô nghiệm”; Ngược lại Nếu delta = thì In màn hình dòng chữ “phương trình có nghiệm kép”; Ngược lại In màn hình dòng chữ “phương trình có hai nghiệm phân biệt”; Nội dung bài 3.1 Hoạt động 1: Khái niệm lặp HĐ Học Sinh HĐ Giáo viên Trình bày bảng BÀI 10: CÂU TRÚC LẶP - Trả lời - Đặt vấn đề: Cho biết kết Lặp doạn chương trình - Cấu trúc lặp mô tả thao tác lặp sau - Có loại thao tác lặp: Program VD; + Lặp với số lần biết trước Begin Writeln (‘PASCAL’); + Lặp với số lần chưa biết Writeln (‘PASCAL’); trước Writeln (‘PASCAL’); (38) Writeln (‘PASCAL’); Writeln (‘PASCAL’); Readln; End - Nhận xét Nếu giải bài toán trên với việc in khoảng 10 dòng có từ PASCAL - Lặp lại nhiều lần với câu - Có nhận xét gì các lệnh: Writeln dòng lệnh chương - Lắng nghe và ghi bài trình trên? - Đối với thuật toán có thao tác phải thực lặp lặp lại số lần thì máy tính có thể thực hiệu các thao tác lặp đó các cấu trúc lặp - Trả lời - Lắng nghe và ghi bài - Nêu VD cấu trúc lặp: Tính tổng 20 số tự nhiên đầu tiên Tính S = + + …+ 10 +… S > 100 - Từ VD trên và nghiên cứu thêm SGK hãy cho biết có loại cấu trúc lặp? - Nhận xét 3.2 Hoạt động 2: Tìm hiểu cấu trúc lặp với số lần biết trước và câu lệnh FOR - DO HĐ Học Sinh HĐ Giáo viên Trình bày bảng - Suy nghĩ và lên bảng trình - Yêu cầu HS viết thuật Lặp với số lần biết trước và bày toán để giải bài toán câu lệnh for – Thuật toán 1: ví dụ trên  Dạng lặp tiến: B1: S  0; n  0; - Nhận xét Có thuật toán khác để cùng giải for <biến đếm>:=<Giá trị đầu> B2: n  n +1; to <Giá trị cuối> <câu lệnh>; B3: Nếu n > 20 thì chuyển bài toán đến B5;  Dạng lặp lùi: B4: S  S + n quay lai b2; for <biến đếm>:=<Giá trị cuối> B5: Đưa S màn hình và downto <Giá trị đầu> <câu kết thúc; (39) Thuật toán 2: B1: S  0; n  20; B2: n  n -1 B3: Nếu n < thì chuyển đến B5; B4: S  S + n quay lại b2; B5: Đưa S màn hình và kết thúc; - Trả lời - Chú ý lắng nghe - Đọc SGK và trả lời - Lắng nghe và ghi bài - Trả lời - Lắng nghe và ghi bài - Đọc SGK và trả lời lệnh>; Trong đó: - Biến đếm thường là biến kiểu số nguyên - Giá trị đầu, giá trị cuối là các biểu thức cùng kiểu với biến đếm Giá trị đầu phải nhỏ hay - Cho biết thuật toán giá trị cuối Nếu giá trị đầu lớn giống hay khác nhau? giá trị cuối thì vòng lặp không - Số lần lặp thuật thực toán trên là biết trước và Ví dụ: Tính tổng các số tự nhiên (20 lần) từ đến 20 - Giải thích thuật toán Cách 1: + TT1: n bắt đầu là và Program tong_1_den_20; Uses crt; sau lần lặp n tăng lên Var i: byte; đơn vị n>20 thì S: longint; kết thúc lặp Begin + TT2: n bắt đầu là 20 và For i:= to 20 sau lần lặp n giảm S := S + i; đơn vị n< thì Writeln (‘Tong la’, S ); kết thúc lặp End - Cách lặp thuật toán Cách 2: Program tong_1_den_20; gọi là lặp tiến và Uses crt; thuật toán gọi Var i: byte; là lặp lùi S: longint; - Tương tự Pascal Begin có hai dạng lặp tiến For i:= 20 downto và lặp lùi S := S + i; - Yêu cầu HS cho biết cấu Writeln (‘Tong la’, S ); trúc dạng lặp tiến? End - Nhận xét - Yêu câu HS nêu cấu trúc dạng lặp lùi - Nhận xét Yêu cầu HS cho biết cách hoạt động câu lệnh for – hai dạng tiến và lùi Cho ví dụ: Viết chương trình Pascal thực giải bài toán trên (40) - Lên bảng thực - LẮng nghe và ghi bài Program tong_1_den_20; Uses crt; Var S: longint; Begin For i:= to 20 S := S + i; Writeln (‘Tong la’, S ); End - Yêu cầu HS sử dụng cấu trúc lặp dạng lùi để viết lại chương trình trên - Nhận xét và cho HS ghi bài Củng cố kiến thức - Yêu cầu HS viết chương trình thực việc cộng các số nguyên từ đến 100 in màn hình tổng vừa tìm Bài tập nhà - Về học lại bài - Xem trước phần bài 10 “CẤU TRÚC LẶP” (41) Tuần 14 Tiết 14 Ngày dạy: …./…./20… BÀI 10: CẤU TRÚC LẶP (tt) I Mục tiêu Kiến thức: - Biết ý nghĩa cấu trúc lặp có số lần lặp chưa xác định - Biết cấu trúc chung lệnh lặp while - ngôn ngữ lập trình Pascal - Biết thực máy tính gặp lệnh while - Kỹ năng: - Phân biệt giống và khác For và while - Bước đầu biết cách chọn đúng cấu trúc lặp cho bài toán định Thái độ: II Phương pháp – phương tiện dạy học Phương pháp: thuyết trình, vấn đáp, giảng giải Phương tiện: SGK, SGV, giáo án, bảng, phấn III Hoạt động dạy học Ổn định tổ chức: ổn định lớp, kiểm tra sĩ số Kiểm tra bài cũ: - Hãy viết câu lệnh lặp for -do với hai dạng tiến và lùi Nội dung bài mới: 3.1 Hoạt động 1: Lặp với số lần chưa biết trước và câu lệnh while – HĐ Học Sinh HĐ Giáo viên Trình bày bảng BÀI 10: CÂU TRÚC LẶP (tt) - Tiết trước chúng ta đã tìm hiểu cấu trúc lặp với số lần lặp là biết trước Hôm nay, chúng ta tiếp tục tìm hiểu thêm cấu trúc lặp nữa, đó là cấu trúc lặp với số lần chưa biết trước - Yêu cầu HS cho biết bài - Suy nghĩ trả lời toán tiết trước lặp lại phép cộng bao nhiêu lần? - Nhận xét và khẳng định là - Lắng nghe có lặp lại không biết chính xác lặp lặp lại bao - Đọc sách, suy nghĩ và trả nhiêu lần phép cộng - Yêu cầu HS nêu cú pháp lời chung câu lệnh while – Lặp với số lần chưa biết trước và câu lệnh while – Cú pháp: While <điều kiện> <câu lệnh>; Trong đó: Điều kiện: là biểu thức logic Câu lệnh: là câu lệnh đơn hay ghép Ví dụ: Tính S = + + …+ 10 + … S > 100 Program tong2; Uses crt; (42) - Lắng nghe và ghi bài - Suy nghĩ trả lời - Lắng nghe - Nhận xét và cho HS ghi Var i: byte; bài S: word; - Yêu cầu HS nêu giống Begin và khác cấu trúc i: = 0; for – và cấu trúc while – S: = 0; While S <= 100 - Nhận xét Nói cho cùng, Begin khác lớn i:= i + 1; for – và while – là S := S + i; câu lệnh for – dùng End; trường hợp ta muốn Writeln(‘Tong S la’, S); lặp lại việc nào đó Readln đã biết chính xác số End lần lặp nó Còn while – dùng trường hợp ta cần lặp lại việc nào đó không biết chính xác số lần cần lặp là bao nhiêu - Nêu ví dụ cụ thể cho HS hiểu bài (bài toán 2) Củng cố kiến thức - Yêu cầu HS nêu lại cấu trúc cú pháp hai dạng lặp với số lần biết trước và câu dạng lặp với số lần chưa biết trước Bài tập nhà - Về học lại bài - Xem trước phần bài 10 “CẤU TRÚC LẶP” (43) Tuần 15 Tiết 15 Ngày dạy: …./…./20… BÀI 10: CẤU TRÚC LẶP (tt) I Mục tiêu Kiến thức: - Giúp học sinh nhớ lại cấu trúc câu lệnh lặp for – và câu lệnh lặp while - Kỹ năng: - Học sinh áp dụng hai cấu trúc trên để giải số bài toán đơn giản - Biết phân biệt nào dùng for – nào dùng while – Thái độ: II Phương pháp – phương tiện dạy học Phương pháp: thuyết trình, vấn đáp Phương tiện: SGK, giáo án, bảng, phấn III Hoạt động dạy học Ổn định tổ chức: ổn định lớp, kiểm tra sĩ số Kiểm tra bài cũ: - HS1: Viết cấu trúc câu lệnh lặp với số lần biết trước hai dạng: dạng lặp tiến và dạng lặp lùi ? - HS2: Viết cấu trúc câu lệnh lặp với số lần chưa biết trước ? Yêu cầu HS nêu điều kiện dừng bài toán tính tổng: S = + +…+ 10 + … S > 100 Nội dung bài mới: 3.1 Hoạt động: Một số ví dụ HĐ Học Sinh HĐ Giáo viên Trình bày bảng BÀI 10: CẤU TRÚC LẶP (tt) - Yêu cầu HS lên bảng - Đọc đề và lên bảng thực thực viết chương trình tính tổng các số tự nhiên từ đến 50 theo hai dạng lặp tiến và dạng lặp lùi - Lắng nghe và ghi bài - Nhận xét bài làm HS, cho điểm và yêu cầu HS - Suy nghĩ và lên bảng thực ghi lại - Yêu cầu HS khác thực hiện bài toán trên cách sử dụng cú pháp while – - Nhận xét, cho điểm và yêu cầu HS ghi lại bài Một số ví dụ Bài tập 1: Viết chương trình tính tổng các số tự nhiên từ đến 50 - Dạng lặp tiến Program tinh_tong1a; Uses crt; Var i: byte; S: word; Begin S:=0; For i:=3 to 50 S:=S+i; Writeln(‘Tong la’, S); Readln End - Dạng lặp lùi (44) Program tinh_tong1b; Uses crt; Var i: byte; S: word; Begin S:=0; For i:=50 downto S:=S+i; Writeln(‘Tong la’, S); Readln End - Sử dụng cấu trúc while – Program tinh_tong1c; Uses crt; Var i: byte; S: word; Begin S:=0; i:=3; While i <= 50 begin S:=S+i; i := i + 1; end; Writeln(‘Tong la’, S); Readln End - Yêu cầu HS lên bảng thực viết chương trình - Đọc đề và lên bảng thực tính tổng các số tự nhiên lẻ từ đến 100 theo hai dạng lặp tiến và dạng lặp lùi - Nhận xét bài làm HS, cho điểm và yêu cầu HS ghi lại - Lắng nghe và ghi bài - Yêu cầu HS khác thực bài toán trên cách sử dụng cú pháp while - Suy nghĩ và lên bảng thực – - Nhận xét, cho điểm và yêu cầu HS ghi lại bài Bài tập 2: Viết chương trình tính tổng các số tự nhiên lẻ từ đến 100 - Dạng lặp tiến Program tinh_tong2a; Uses crt; Var i: byte; S: word; Begin S:=0; For i:=1 to 100 if i mod = then S :=S+i; Writeln(‘Tong la’, S); Readln (45) End - Dạng lặp lùi Program tinh_tong2b; Uses crt; Var i: byte; S: word; Begin S:=0; For i:=100 downto if i mod = then S:=S+i; Writeln(‘Tong la’, S); Readln End - Sử dụng cấu trúc while – Program tinh_tong2c; Uses crt; Var i: byte; S: word; Begin S:=0; i:=1; While i <= 100 if i mod = then begin S:=S+i; i := i + 1; end; Writeln(‘Tong la’, S); Readln End Củng cố kiến thức - Yêu cầu HS nêu lại hai cấu trúc lặp và cho biết nào dùng cấu trúc nào là phù hợp Bài tập nhà - Về học lại toàn bài 10, tiết sau kiểm tra 15 phút - Xem trước bài “BÀI TẬP VÀ THỰC HÀNH 2” (46) Tuần 16 Tiết 16 Ngày dạy: …./…./20… BÀI TẬP I Mục tiêu Kiến thức: - Giúp học sinh nhớ lại cấu trúc rẽ nhánh và cấu trúc lặp Kỹ năng: - Biết áp dụng cấu trúc rẽ nhánh và cấu trúc lặp để viết chương trình đơn giản Thái độ: - Kích thích thái độ ham học hỏi, rèn luyện tư logic cho học sinh II Phương pháp – phương tiện dạy học Phương pháp: thuyết trình, vấn đáp Phương tiện: SGK, giáo án, bảng, phấn III Hoạt động dạy học: Ổn định tổ chức: ổn định lớp kiểm tra sĩ số Kiểm tra bài cũ: Nội dung bài mới: 3.1 Hoạt động 1: Giải bài tập 4a HĐ Học Sinh HĐ Giáo viên Trình bày bảng BÀI TẬP - Yêu cầu HS lên bảng ghi - Đọc sách và lên bảng thực lại cấu trúc cú pháp câu lệnh rẽ nhánh dạng thiếu và dạng đủ - Yêu cầu HS đọc bài tập - Đọc bài và thực vào 4a/trang 51 SGK sau đó lên tập, sau đó lên bảng thực bảng thực hiện theo yêu cầu GV - Nhận xét, sửa bài và yêu cầu HS ghi bài vào tập - HS lên bảng thực - Lắng nghe và ghi bài Bài 4a If sqr(x) + sqr(y) <= then Z:= sqr(x) + sqr(y); If (sqr(x) + sqr(y) > 1) and (y >= x) then Z:= x + y; If (sqr(x) + sqr(y) > 1) and (y < x) then Z:= 0.5; - Hướng dẫn HS bài Bài 4b 4b/trang 51 If (sqr(x-a) + sqr(y-b)) <= sqr(r) - Gọi HS lên bảng giải then z:=abs(x) +abs(y) bài tập 4b Else z:= x+y; - Nhận xét, sửa bài và yêu cầu HS ghi bài vào tập 3.2 Hoạt động 2: Giải bài tập 5a trang 51 (47) - Đọc sách và lên bảng thực - Yêu cầu HS lên bảng ghi lại hai dạng cấu trúc cú pháp câu lệnh lặp với - Đọc SGK và lên bảng số lần biết trước - Yêu cầu HS đọc bài tập thực 5a/trang 51 SGK sau đó lên bảng khai triển biểu thức dạng tường minh - Trả lời - Nhìn vào công thức khai triển, em hãy cho biết n lấy giá trị đoạn nào? - Suy nghĩ và trả lời - Thử đưa phương pháp tính y? - Suy nghĩ và trả lời - Sử dụng cấu trúc điều khiển nào là phù hợp? - Lên bảng thực - Nhận xét và yêu cầu HS lên bảng viết chương trình - Nhận xét, hoàn chỉnh bài - Lắng nghe và ghi bài làm và cho HS ghi bài Bài 5a Y= 50 + + + ⋯+ 51 Program bai5a; Uses crt; Var y: real; n: byte; Begin Clrscr; y:=0; for n:=1 to 50 y:= y + n/(n+1); writeln(‘Ket qua’, y:14:6); readln; End Củng cố kiến thức - Nắm các cấu trúc đã học: Lặp với số lần biết trước; lặp với số lần không biết trước Bài tập nhà - Xem lại các ví dụ đã học tiết sau thực hành (48) Tuần 17, 18 Tiết 17, 18 Ngày dạy: …./…./20… BÀI TẬP VÀ THỰC HÀNH I Mục tiêu Kiến thức: - Củng cố kiến thức câu lệnh rẽ nhánh Kỹ năng: - Biết sử dụng câu lệnh rẽ nhánh số bài toán cụ thể - Biết cách hiệu chỉnh chương trình còn lỗi thành chương trình không lỗi và thực chương trình Thái độ II Phương pháp – phương tiện dạy học Phương pháp: thuyết trình, vấn đáp Phương tiện: SGK, giáo án, bảng, phấn, máy vi tính III Hoạt động dạy học Ổn định tổ chức: ổn định lớp kiểm tra sĩ số Kiểm tra bài cũ: Nội dung bài mới: 3.1 Hoạt động 1: Bài toán HĐ Học Sinh HĐ Giáo viên Trình bày bảng BÀI TẬP VÀ THỰC HÀNH - Yêu cầu HS xác định các tham số cần nhập vào từ bàn phím - biến: a, b, x - Cần khai báo tổng cộng bao nhiêu biến? - Yêu cầu HS lên bảng thực - Lên bảng thực hiện khai báo biến nêu trên - Lắng nghe, phát biểu, và - Yêu cầu HS nêu cách giải phương trình bậc ghi bài ngôn ngữ tự nhiên hình thành các câu lệnh rẽ nhánh cho HS hiểu - Lên bảng thực Các - Yêu cầu HS lên bảng học sinh còn lại làm bài viết chương trình vào tập - Lắng nghe, quan sát và - Cho các HS khác nhận xét - Suy nghĩ trả lời Bài toán 1: Viết chương trình giải phương trình bậc ẩn: ax + b = c Program ptbn; Uses crt; Var a, b, x: real; Begin Write(‘Nhap vao a va b: ’); Readln(a,b); If a = and b = then Writeln(‘ Pt vo so nghiem’); Else if a = and b <>0 then Writeln(‘Pt vo nghiem’); Else writeln(‘Nghiem la: ’,-b/a); Readln (49) ghi bài bài làm bạn mình, GV End sửa bài và cho HS ghi bài - Yêu cầu HS gõ chương - Thực gõ vào máy trình giải phương trình bậc vào máy - Chú ý và thực theo - Hướng dẫn HS lưu chương trình với tên - Chú ý quan sát, thực Pt_bac2 - Nhấn F7 để thực theo yêu cầu GV câu lệnh chương trình, nhập các giá trị a, b - Quan sát quá trình rẽ nhánh 3.2 Hoạt động 2: Bài toán: Bộ số Pitago HĐ Học Sinh HĐ Giáo viên Trình bày bảng - Theo dõi dẫn dắt GV - Gợi ý để học sinh nêu Bài toán 2: Bộ số Pitago để nêu khái niệm số khái niệm số Pitago pitago: tổng bình phương hai số bình phương số còn lại - Ví dụ số Pitago: - Yêu cầu: Lấy ví dụ cụ thể a2 = b2 + c2 - Hỏi: Để kiểm tra ba số 2 b =a +c a,b,c có phải là 2 c =b +a Pitago, ta phải kiểm tra các đẳng thức nào? - Chiếu chương trình mẫu lên bảng Thực mẫu các thao tác: lưu, thực lệnh chương trình, - Soạn chương trình vào xem kết trung gian, máy theo yêu cầu giáo thực chương trình và viên nhập liệu - Bấm F2, gõ tên file và - Yêu cầu học sinh gõ enter chương trình mẫu vào máy - Yêu cầu học sinh lưu - Bấm F7 Nhập các giá trị chương trình lên đĩa với tên a=3, b=4, c=5 Pitago.pas - Chọn menu Debug để mở - Yêu cầu học sinh thực cửa sổ hiệu chỉnh lệnh chương - Quan sát quá trình rẽ trình nhánh liệu - Yêu cầu học sinh xem các vào và trả lời kết a2, b2, c2 - Yêu cầu học sinh tự tìm (50) thêm số a b c khác và so sánh Củng cố kiến thức Các bước để hoàn thành chương trình: - Phân tích bài toán để xác định liệu vào, liệu ra, thuật toán - Soạn chương trình vào máy - Lưu trữ chương trình - Biên dich - Thực và hiệu chỉnh chương trình Bài tập nhà - Xem lại tất các bài đã học từ chương I đến chương III, tiết sau thi học kì (51) HỌC KÌ II Tiết 20, 21 Ngày dạy: …./…./20… CHƯƠNG IV: KIỂU DỮ LIỆU CÓ CẤU TRÚC BÀI 11: KIỂU MẢNG I Mục tiêu Kiến thức: - Nắm khái niệm mảng chiều - Nắm quy tắc mà NNLT xây dựng và sử dụng mảng chiều Kỹ năng: - Nhận biết các thành phần khai báo kiểu mảng chiều - Nhận biết định danh phần tử kiểu mảng chiều xuất chương trình - Biết cách khai báo mảng đơn giản và số kiểu miền kiểu nguyên Thái độ: - Có tư đúng đắn việc áp dụng mảng chiều để giải các bài toán đơn giản II Phương pháp – phương tiện dạy học Phương pháp: thuyết trình, vấn đáp Phương tiện: SGK, giáo án, SGV, bảng, phấn III Hoạt động dạy học Ổn định tổ chức: ổn định lớp, kiểm tra sĩ số Kiểm tra bài cũ: Nội dung bài mới: 3.1 Hoạt động 1: Tìm hiểu định nghĩa mảng chiều HĐ Học Sinh HĐ Giáo viên Trình bày bảng CHƯƠNG VI: KIỂU DỮ LIỆU CÓ CẤU TRÚC BÀI 11: KIỂU MẢNG - Trả lời - Nhắc lại kiểu Kiểu mảng chiều liệu đã học? - Mảng chiều là: - Xét ví dụ SGK trang  Một kiểu liệu có cấu trúc 53 Giải thích cho HS biết rõ  Gồm dãy hữu hạn các phần ví dụ này tử  Các phần tử cùng kiểu Hỏi: Khi N lớn thì chương - Phải khai báo quá - Các điểm cần lưu ý sử dụng mảng chiều : nhiều biến Chương trình trên có hạn chế  Tên mảng trình phải viết dài nào?  Số lượng phần tử  Kiểu liệu phần tử - Dẫn dắt: Để khắc phục  Các khai báo mảng hạn chế trên, người ta (52) thường ghép chung trên thành dãy cho nó chung đánh cho phần số biến và đặt tên và tử  Cách truy cập đến các phần tử mảng - Yêu cầu học sinh tham khảo sách giáo khoa và hỏi: - Mảng chiều là Em hiểu nào dãy hữu hạn các phần mảng chiều? tử có cùng kiểu liệu Các phần tử mảng có cùng chung tên và - Nhận xét phân biệt số - Đọc SGK và trả lời - Hỏi: Để mô tả mảng chiều, ta cần xác định yếu tố nào? - Nhận xét và cho HS ghi bài 3.2 Hoạt động 2: Tạo kiểu mảng chiều và khai báo biến mảng HĐ Học Sinh HĐ Giáo viên Trình bày bảng - Nghiên cứu SGK và - Yêu cầu học sinh nghiên a Khái báo trả lời cứu sách giáo khoa và cho Cách 1: Khai báo trực tiếp: biết cách tạo kiểu liệu Var <tên biến mảng>: array[kiểu mảng chiều ngôn số] of <kiểu phần tử>; ngữ lập trình Pascal Cách 2: Khai báo gián tiếp - Lắng nghe và ghi - Nhận xét bài Type <tên kiểu mảng>= array[kiểu số] of <kiểu phần tử>; Var <tên mảng>; biến mảng>:<tên kiểu Trong đó: +Kiểu số thường là đoạn số nguyên liên tục có dạng n1 n2(n1<n2)(n1,n2 là các (53) biểu thức) + Kiểu phần tử là kiểu dl các phần tử mảng - Cho ví dụ - Tạo kiểu liệu có tên mmc, gồm - Hỏi HS ý nghĩa lệnh GV 100 phần tử, có kiểu vừa viết? nguyên - Lấy số ví dụ khác và - Trả lời: yêu cầu HS cho biết kiểu Arrayr=array[1 200] khai báo mảng nào là đúng? of real; Arrayb=array[-100 0] Type Arrayr=array[1 200] of of boolean; real; Arrayr=array[byte] of real; Arrayb=array[-100 0] of boolean; - Yêu cầu học sinh cho biết -VAR cách khai báo biến và ví tên_biến:tên_km; dụ khai báo biến mảng - Ví dụ: Var a:mmc; ứng với kiểu liệu vừa tạo - Gọi học sinh khác, hỏi: Ý - Khai báo biến nghĩa lệnh bạn vừa viết? mảng chiều - Giới thiệu cách tham chiếu - a[1] là phần tử vị đến phần tử mảng trí mảng a chiều Yêu cầu học sinh lấy ví dụ - a[i] là phần tử vị trí i mảng a Củng cố kiến thức - Thế nào là mảng chiều? - Cách khai báo biến mảng? Bài tập nhà - Nhập vào dãy số và in màn hình dãy vừa nhập Tiết 22, 23 Ngày dạy: …./…./20… Ví dụ: Type mmc=array[1 100] of integer; Var a:mmc; - Tham chiếu đến phần tử mảng chiều xác định tên mảng cùng với số, viết cặp ngoặ [ và ] Ví dụ: - a[1] là phần tử vị trí mảng a - a[i] là phần tử vị trí i mảng a (54) BÀI 11: KIỂU MẢNG (tt) I Mục tiêu Kiến thức: - Thể các thuật toán tìm kiếm và xếp Kỹ năng: - Biết cách sử dụng mảng chiều chương trình thể các thuật toán trên Thái độ: - Ý thức rèn luyện kỹ các thao tác trên kiểu liệu có cấu trúc - Hứng thú tìm hiểu các thuật toán thường gặp trên các mô hình liệu II Phương pháp – phương tiện dạy học Phương pháp: thuyết trình, vấn đáp Phương tiện: SGK, giáo án, SGV, bảng, phấn III Hoạt động dạy học Ổn định tổ chức: ổn định lớp, kiểm tra sĩ số Kiểm tra bài cũ: - Có cách khai báo mảng chiều? Nêu và hãy cho ví dụ? Nội dung bài mới: 3.1 Hoạt động 1: Ví dụ HĐ Học Sinh HĐ Giáo viên Trình bày bảng CHƯƠNG VI: KIỂU DỮ LIỆU CÓ CẤU TRÚC BÀI 11: KIỂU MẢNG - Khai báo biến - Yêu cầu HS khai báo biến chương trình trên - Lên bảng thực - Yêu cầu HS lên bảng viết Các học sinh còn lại đoạn lệnh làm bài vào tập chương trình - Lắng nghe, quan sát - Cho các HS khác nhận xét và ghi bài bài làm bạn mình, GV sửa bài và cho HS ghi bài b Một số ví dụ Ví dụ 1: Viết chương trình nhập vào dãy số nguyên gồm tối đa 100 phần tử Sau đó, in dãy số nguyên vừa nhập Nhập vào: In ra: Viết chương trình: Program vidu1; Uses crt; Var n,i: byte; Dayso: array[1 100] of integer; Begin Write(‘Nhap vao so luong phan tu cua mang: ’); Readln(n); For i:=1 to n (55) Begin Writeln(‘Nhap vao mot so: ’); Readln(Dayso[i]); End; For i:=1 to n Writeln(‘ ’,Dayso[i]); Readln End 3.2 Hoạt động 2: Ví dụ HĐ Học Sinh HĐ Giáo viên Trình bày bảng - Trả lời - Yêu cầu HS cho biết Input Ví dụ 2: Viết chương trình tìm và in số lớn và Output bài toán? dãy số nguyên - Yêu cầu HS tham khảo thuật toán giải bài toán Program vidu2; Uses crt; SGK trang 56 Var n,i: byte; - Chú ý lắng nghe - Lấy ví dụ cụ thể và giải Dayso: array[1 100] of integer; Max, csmax : integer; thích cho HS hiểu rõ Begin thuật toán Write(‘Nhap vao so luong phan tu - Khai báo biến cua mang: ’); - Yêu cầu HS khai báo biến Readln(n); chương trình trên - Lên bảng thực - Hướng dẫn HS lên bảng For i:=1 to n Begin viết đoạn lệnh Writeln(‘Nhap vao mot so: ’); chương trình Readln(Dayso[i]); - Nhận xét End; - Yêu cầu các HS còn lại Max:=Dayso[1]; nhận xét For i:=1 to n - Lắng nghe và ghi - GV nhận xét, chỉnh sửa và if Dayso[i] > Max then bài begin cho HS ghi bài Max := Dayso[i]; Csmax:= i; End; Writeln(‘So lon nhat cua day so la: ’, Max); Writeln(‘Chỉ số số lớn la: ’, csmax); End Củng cố kiến thức (56) - Yêu cầu HS lên bảng khai báo biến cho chương trình: Viết chương trình nhập vào hai mảng chiều A và B Tính và in màn hình mảng C, là mảng tổng hai mảng A và B Ví dụ: Mảng A: Mảng B:  Mảng C: 9 10 11 Bài tập nhà - Học bài và xem tiếp phần mảng hai chiều (57) Tiết 24, 25 Ngày dạy: …./…./20… BÀI TẬP VÀ THỰC HÀNH I Mục tiêu Kiến thức: - Củng cố lại kiến thức kiểu liệu mảng, cụ thể là mảng chiều.Qua đó cung cấp cho học sinh các thuật toán thường gặp với kiểu liệu mảng Kỹ năng: - Nâng cao kĩ sử dụng số lệnh kiểu liệu mảng chiều lập trình, cụ thể: + Khai báo kiểu liệu mảng chiều + Nhập/xuất liệu cho mảng + Duyệt qua tất các phần tử mảng để xử lý phần tử - Biết giải số bài toán thường gặp: + Tính tổng các phần tử thoả mãn điều kiện nào đó + Đếm số các phần tử thoả mãn điều kiện nào đó + Tìm phần tử lớn nhất, nhỏ Thái độ: - Góp phần rèn luyện tác phong, tư lập trình: Tự giác, tich cực, chủ động và sáng tạo tìm kiếm kiến thức II Phương pháp – phương tiện dạy học Phương pháp: thuyết trình, vấn đáp Phương tiện: SGK, giáo án, SGV, bảng, phấn, máy vi tính, máy chiếu III Hoạt động dạy học Ổn định tổ chức: ổn định lớp, kiểm tra sĩ số Kiểm tra bài cũ: - Có cách khai báo mảng hai chiều? Kể và cho ví dụ cụ thể cách Nội dung bài mới: 3.1 Hoạt động 1: Tìm hiểu cách sử dụng lệnh và kiểu liệu mảng chiều qua chương trình có sẵn HĐ Học Sinh HĐ Giáo viên Trình bày bảng Tìm hiểu chương trình BÀI TẬP VÀ THỰC HÀNH câu a, sách giáo khoa, trang 63 và chạy thử chương trình Bài (SGK/63) - Khai báo thư viện chương trình Crt để sử dụng thủ tục Clrscr; - Chiếu chương trình câu a SGK trang 63 lên bảng - Hỏi: Khai báo Uses CRT; có ý nghĩa gì? (58) - Tên kiểu liệu - nmax là số phần tử tối đa có thể chứa biến mảng a n là số phần tử thực tế a - Lệnh khai báo kiểu và khai báo biến - Hỏi: Myarray là tên kiểu liệu hay tên biến? - Hỏi: Vai trò nmax và n có gì khác nhau? - Hỏi: Những dòng lệnh nào dùng để tạo biến mảng a? - Thực chương trình để học sinh thấy kết Hỏi: Lệnh gán a[i]:=random(300)random(300) có ý nghĩa gì? - Hỏi: Lệnh For i:=1 to n Write(A[i]:5); có ý nghĩa gì? - Hỏi: Lệnh For-Do cuối cùng thực nhiệm vụ gì? - Hỏi: Lệnh s:=s+a[i]; thực bao nhiêu lần? - Thực lại chương trình lần cuối để học sinh thấy kết - Lệnh sinh ngẫu nhíên giá trị cho mảng a từ -299 đến 299 - In màn hình giá trị phần tử mảng a - Cộng các phần tử chia hết cho k - Có số lần đúng số phần tử a[i] chia hết k - Quan sát giáo viên thực chương trình và kết trên màn hình Sửa chương trình câu a để chương trình giải bài toán câu b - Chiếu lên màn hình các lệnh cần thêm vào chương trình câu a - Quan sát các lệnh và - Hỏi: Ý nghĩa biến Posi suy nghĩ vị trí cần sửa và neg? chương trình câu - Hỏi: Chức lệnh? a - Dùng để lưu số lượng đếm - Đếm số dương đếm số âm - Yêu cầu học sinh thêm vào If a[i]>0 then vị trí cần thiết để chương posi:=posi+1 trình đếm số (59) else if a[i]<0 then - Yêu cầu học sinh gõ nội neg:=neg+1; dung và lưu lại với tên - Chỉ vị trí cần thêm caub.pas Thực chương vào chương trình trình và báo cáo kết 3.2 Hoạt động 2: Rèn luyện kỹ lập trình HĐ Học Sinh HĐ Giáo viên Trình bày bảng  Tìm hiểu chương trình tìm Bài (SGK/64) số và giá trị lớn - Chiếu chương trình ví dụ, sách giáo khoa, trang 64 - Hỏi: Vai trò biến j - Giữ lại số chương trình? phần tử có giá trị lớn - Hỏi: Nếu muốn tìm phần tử nhỏ nhất, cần sửa chỗ nào? - Phép so sánh a[i]<a[j] - Hỏi: Nếu muốn tìm phần tử lớn với số lớn - Chuyển thứ tự duyệt ta sửa chỗ nào? từ n-1  Đặt yêu cầu mới: Viết chương trình đưa các số các phần tử có giá trị lớn - Hỏi: Cần giữ lại đoạn - Có chương trình tìm giá trị lớn không? - Hỏi: Cần thêm lệnh nào - Lệnh để in các nữa? số có giá trị giá trị lớn tìm - Sau tìm giá - Hỏi: Vị trí thêm các lệnh trị lớn đó? - Soạn chương trình vào máy Thực chương trình và thông báo kết - Nhập liệu vào và thông báo cho giáo viên liệu - Yêu cầu: Viết chương trình hoàn thiện - Yêu cầu học sinh nhập liệu vào giáo viên và báo kết - Đánh giá kết học (60) sinh Củng cố kiến thức Một số thuật toán bản: + Tính tổng các phần tử thoả mãn điều kiện nào đó + Đếm số các phần tử thoả mãn điều kiện nào đó + Tìm phần tử lớn nhất, nhỏ Bài tập nhà Viết chương trình nhập vào dãy số nguyên và tính tổng các số nguyên lẻ (61) Tiết 26, 27 Ngày dạy: …./…./20… BÀI TẬP VÀ THỰC HÀNH I MỤC TIÊU Kiến thức - Củng cố lại các kiến thức lập trình với kiểu liệu mảng - Làm quen với thuật toán xếp đơn giản Kĩ - Rèn luyện kĩ sử dụng kiểu liệu có cấu trúc, kĩ diễn đạt thuật toán chương trình sử dụng liệu kiểu mảng - Rèn luyện kĩ nhận xét, phân tích và đề xuất cách giải bài toán cho chương trình chạy nhanh Thái độ - Tự giác, chủ động thực hành II Phương pháp – phương tiện dạy học Phương pháp: thuyết trình, vấn đáp Phương tiện: SGK, giáo án, SGV, bảng, phấn, máy vi tính, máy chiếu III Hoạt động dạy học Ổn định tổ chức: ổn định lớp, kiểm tra sĩ số Kiểm tra bài cũ: Nội dung bài mới: 3.1 Hoạt động 1: Tìm hiểu chương trình diễn đạt thuật toán xếp HĐ Học Sinh HĐ Giáo viên Trình bày bảng BÀI TẬP VÀ THỰC HÀNH  Quan sát chương trình,  Tìm hiểu chương trình ví dụ, sách suy nghĩ câu hỏi và trả giáo khoa, trang 65 lời - Chiếu chương trình ví dụ lên bảng - Hỏi: Vai trò biến i, j - Biến i, j dùng làm chương trình? vòng lặp For số đoạn chương trình xếp có ý - Mỗi vòng lặp For ứng nghĩa gì? với phép duyệt - Dùng để đổi giá trị - Hỏi: Ba lệnh tg:=a[i]; a[i]:=a[i+1]; hai phần tử a[i] với a[i+1] a[i+1]:=tg; có ý nghĩa gì? - Quan sát giáo viên thực chương trình - Thực chương trình, nhập liệu để học sinh thấy kết chương - Chương trình xếp trình dãy số thao thứ tự không - Hỏi: Chương trình làm công việc (62) giảm gì?  Quan sát yêu cầu mới, chú ý định hướng giải  Sửa chương trình để giải quyết giáo viên bài toán câu b - Đặt yêu cầu mới: Khai báo thêm biến nguyên Dem và bổ sung vào chương trình đoạn lệnh cần thiết để biến Dem tính số lần thực tráo đổi thuật toán In kết tìm tg:=a[i]; a[i]:=a[i+1]; màn hình a[i+1]:=tg; - Hỏi: Đoạn chương trình nào dùng để thực tráo đổi giá trị? - Dem := Dem+1; - Yêu cầu hoc sinh viết lệnh để đếm số lần tráo đổi - Ngay sau đoạn lệnh tráo - Hỏi: Lệnh này viết vị trí đổi nào chương trình? - Yêu cầu học sinh soạn chương trình - Soạn chương trình vào vào máy máy, thực chương trình và thông báo kết - Nhập liệu theo yêu cầu giáo viên, thực chương trình và - Yêu cầu học sinh nhập liệu vào thông báo kết sau giáo viên và thông báo kết thực - Đánh giá kết học sinh 3.2 Hoạt động 2: Rèn luyện kĩ nhận xét, phân tích và đề xuất cách giải bài toán cho chương trình chạy nhanh HĐ Học Sinh HĐ Giáo viên Trình bày bảng Quan sát đề bài và tả Xác định bài toán lời câu hỏi - Chiếu đề bài lên bảng - Yêu cầu: Xác định liệu vào, - Vào: Mảng A gồm n liệu ra? phần tử - Ra: Mảng B gồm n phần - Gợi ý để học sinh đề xuất thuật tử toán thô - Tại vị trí i ta tính tổng giá trị các phần tử từ Giới thiệu chương trình chưa cải (63) đến i tiến Quan sát chương trình - Chiếu chương trình diễn đạt thuật trên bảng toán - Thực chương trình để học sinh - Quan sát giáo viên thực biết thời gian thực chương trình hiện, nhận xét thời gian và kết chương trình thực chương trình - Phải thực n(n+1)/2 phép cộng - Hỏi: Trong chương trình phải thực bao nhiêu phép cộng? - Để tính bước thứ i, ta sử dụng kết đã tính - Hỏi: Có cách nào để cải tiến? bước thứ i-1 B[i]:=B[i-1]+A[i]; - Thay đoạn lệnh For j:=1 to i B[i]:=B[i] - Lệnh này thay lệnh nào +A[j]; chương trình? Viết vị trí nào? Soạn chương trình vào máy, thực chương Yêu cầu: Viết chương trình hoàn trình và thông báo kết thiện - Nhận xét thời gian thực chương trình này so với chương trình trước cải tiến Tiểu kết: Cùng bài toán, có nhiều cách giải khác Người lập trình cần chọn cách cho máy thực nhanh Củng cố kiến thức - Thuật toán xếp đơn giản - Một bài toán có thể có nhiều cách viết thành chương trình Cần chọn cách có số phép tính ít Bài tập nhà - Xem lại tất các kiến thức đã học, bao gồm: lệnh bản, lệnh điều khiển, kiểu liệu bản, kiểu liệu có cấu trúc Tiết 28 Ngày dạy: …./…./20… (64) BÀI 12: KIỂU XÂU I MỤC TIÊU Kiến thức - Biết kiểu liệu mới, biết khái niệm kiểu xâu - Phân biệt giống và khác kiểu mảng ký tự với xâu ký tự - Biết cách khai báo biến, nhập xuất liệu, tham chiếu đến ký tự xâu - Biết các phép toán liên quan xâu Kĩ - Khai báo biến kiểu xâu ngôn ngữ lập trình Pascal Sử dụng biến xâu và các phép toán trên xâu để giải bài toán đơn giản Thái độ II Phương pháp – phương tiện dạy học Phương pháp: thuyết trình, vấn đáp Phương tiện: SGK, giáo án, SGV, bảng, phấn III Hoạt động dạy học Ổn định tổ chức: ổn định lớp, kiểm tra sĩ số Kiểm tra bài cũ: Nội dung bài mới: 3.1 Hoạt động 1: Tìm hiểu liệu kiểu xâu và cách khai báo HĐ Học Sinh HĐ Giáo viên Trình bày bảng - Dữ liệu các bài toán BÀI 12: KIỂU XÂU không thuộc kiểu số mà kiểu phi số - dạng ký tự Khái niệm - Xâu là dãy các ký tự mã Dữ liệu kiểu xâu là dãy các ASCII, ký tự gọi là ký tự phần tử xâu - Đọc SGK và trả lời - Tham khảo SGK và cho - Số lượng ký tự xâu biết Xâu là gì? gọi là độ dài xâu - Lắng nghe và ghi bài - Nhận xét Hình thành khái - Xâu có độ dài gọi là xâu rỗng niệm xâu - Đọc SGK và trả lời - Cách thức xác định  Quy tắc, cách thức xác định xâu: xâu? - Tên kiểu xâu; - Lắng nghe và ghi bài - Nhận xét và cho HS ghi - Cách khai báo biến kiểu xâu; bài - Số lượng ký tự xâu; - Giới thiệu cách tham chiếu - Các phép toán thao tác với xâu; tới phần tử xâu tương tự - Cách tham chiếu tới phần tử mảng chiều xâu - Đọc SGK và trả lời - Lắng nghe và ghi bài - Cách thức khai báo biến Khai báo kiểu xâu nào? Biến kiểu xâu có thể khai báo - Nhận xét sau: (65) - Cho ví dụ - Yêu cầu HS cho ví dụ - Nhận xét Var <tên biến>:string [độ dài lớn xâu]; Ví dụ: Var Hoten: string [26]; Var ten: string; 3.2 Hoạt động 2: Các thao tác xử lý xâu HĐ Học Sinh HĐ Giáo viên Trình bày bảng Chú ý theo dõi, suy Gợi nhớ các phép toán đã Các thao tác xử lý nghĩ và trả lời học a Các phép toán - Phép toán số học - Hỏi: Hãy nhắc lại các phép  Phép ghép xâu, kí hiệu là - Phép toán so sánh toán đã học trên kiểu liệu dấu cộng (+) sử dụng - Phép toán logic chuẩn để ghép nhiều xâu Ví dụ: ‘Ha’ + ‘Noi’  ‘HaNoi’ Quan sát ví dụ, suy Tìm hiểu chức  Phép so sánh xâu nghĩ và trả lời số phép toán kiểu Ví dụ: ‘AB’ < ‘ABC’ TRUE xâu qua số ví dụ - Quan sát chương trình - Chiếu chương trình ví dụ: Var st:string; Begin st:= ‘Ha’+‘Noi’; Write(st); readln; End - Kết cho ta: st = - Hỏi: Kết chương ‘HA NOI’ trình in màn hình? - Thực chương trình để - Quan sát kết học sinh thấy kết chương trình - Yêu cầu học sinh tìm số ví dụ khác - Ví dụ: st:= ‘HA NOI’ + ‘Co ho GUOM’ Kết quả: - Hỏi: Chức phép st = ‘HA NOICo ho cộng ? GUOM’ - Là phép toán nối xâu - Giới thiệu thêm số ví thứ hai vào cuối xâu thứ dụ khác và yêu cầu học sinh cho biết kết st:= ‘HaNoi’; st:= ‘Ha Noi’; st:= ‘ Ha Noi’; st:= ‘Ha NoiViệtNam’; st:= ‘Ha’ +‘Noi’; st:= ‘Ha ’+‘Noi’; st:= ‘ ’ + ‘Ha Noi’; st:= ‘Ha Noi’ + ‘Việt’ + ‘Nam’; (66) - Quan sát chương trình - Chiếu chương trình ví dụ để dự tính kết phép so sánh xâu Var bo:boolean; Begin bo:= ‘AB’ < ‘AC’; Write(bo); readln; - Kết là: TRUE End - Hỏi: Kết chương - Quan sát kết trình in màn hình? chương trình để kiểm - Thực chương trình để chứng suy luận học sinh thấy kết - Có các phép <, <=, >=, - Hỏi: Còn các phép so sánh <>, = nào nữa? - Chiếu các ví dụ các phép so sánh và yêu cầu học - Kết quả: True sinh cho biết kết các - Kết quả: False phép so sánh đó ‘AB’ < ‘ABC’ ‘AC’ < ‘ABC’ - Lắng nghe và ghi bài - Lưu ý cho học sinh: Một xâu có độ dài nhỏ có thể lớn (>) xâu có độ dài lớn Củng cố kiến thức - Nhắc lại số hàm và thủ tục liên quan đến xâu - Nhắc lại cấu trúc câu lệnh Bài tập nhà - Về nhà học bài và chuẩn bị trước phần còn lại bài (67) Tiết 29, 30 Ngày dạy: …./…./20… BÀI 12: KIỂU XÂU (tt) I MỤC TIÊU Kiến thức - Biết lợi ích các hàm và thủ tục liên quan xâu ngôn ngữ lập trình Pascal - Nắm cấu trúc chung và chức số hàm và thủ tục liên quan đến xâu ngôn ngữ lập trình Pascal Kĩ - Nhận biết và bước đầu sử dụng số hàm và thủ tục để giải số bài tập đơn giản liên quan Thái độ II Phương pháp – phương tiện dạy học Phương pháp: thuyết trình, vấn đáp Phương tiện: SGK, giáo án, SGV, bảng, phấn III Hoạt động dạy học Ổn định tổ chức: ổn định lớp, kiểm tra sĩ số Kiểm tra bài cũ: Nội dung bài mới: 3.1 Hoạt động 1: : Tìm hiểu số hàm và thủ tục chuẩn liên quan xâu ngôn ngữ lập trình Pascal HĐ Học Sinh HĐ Giáo viên Trình bày bảng - Đọc SGK và trả lời - Yêu cầu HS cho biết, để xử BÀI 12: KIỂU XÂU (tt) lí các xâu có thể sử dụng các b Các thủ tục và các hàm chuẩn thủ tục và các hàm chuẩn - delete (st, vt, n) thực việc xóa nào? n ký tự biến xâu st vị - Đọc SGK và trả lời - Thủ tục delet(st, vt, n) trí vt dùng để làm gì? Ví dụ: st = ‘abcdef’ - Lắng nghe và ghi bài - Nhận xét, lấy ví dụ cụ thể Delete (st, 5, 2) ‘abcd’ cho HS hiểu rõ - Chèn xâu s1 vào xâu - Thủ tục insert (s1, s2, vt) - insert (s1, s2, vt) chèn xâu s1 vào s2, vị trí vt dùng để làm gì? xâu s2, vị trí vt - Lắng nghe và ghi bài - Nhận xét, lấy ví dụ giải Ví dụ: s1 = ‘PC’ , s2 = ‘IBM486’ thích cụ thể cho HS hiểu rõ insert (s1, s2, 4) ‘IBM PC 486’ - Tương tự ứng với các hàm giáo viên đưa ví dụ - Hàm copy (s, vt, n) tạo xâu gồm n cụ thể và giải thích các ví dụ ký tự liên tiếp vị trí vt cho HS biết rõ xâu s Ví dụ: SGK - Hàm length(s) cho giá trị độ dài là xâu s (68) Ví dụ: SGK - Hàm pos(s1, s2) cho vị trí xuất đầu tiên xâu s1 xâu s2 Ví dụ: SGK - Hàm upcase(ch) cho chữ cái in hoa ứng với chữ cái ch Ví dụ: SGK 3.2 Hoạt động 2: Một số ví dụ HĐ Học Sinh HĐ Giáo viên - Khai báo biến - Yêu cầu HS khai báo biến chương trình trên - Lên bảng thực - Yêu cầu HS lên bảng Các học sinh còn lại làm viết chương trình bài vào tập - Lắng nghe, quan sát và - Cho các HS khác nhận xét ghi bài bài làm bạn mình, GV sửa bài và cho HS ghi bài Trình bày bảng Một số ví dụ: a Ví dụ Viết chương trình nhập vào hai xâu là họ tên hai người Sau đó, in màn hình xâu dài hơn, thì in xâu nhập trước Program vidu1; Uses crt; Var HoTen1, HoTen2: String[30]; Begin Write(‘Nhap ho ten nguoi 1: ’); Readln(HoTen1); Write(‘Nhap ho ten nguoi 2: ’); Readln(HoTen2); If length(HoTen1) >= length(HoTen2) then Write(HoTen1) Else Write(HoTen2); Readln End a Ví dụ - Yêu cầu HS khai báo biến Viết chương trình nhập vào chương trình trên xâu, sau đó in xâu vừa nhập theo - Lên bảng thực - Yêu cầu HS lên bảng chiều ngược lại Các học sinh còn lại làm viết chương trình bài vào tập Program vidu2; - Lắng nghe, quan sát và - Cho các HS khác nhận xét Uses crt; ghi bài bài làm bạn mình, GV Var Xau: String; sửa bài và cho HS ghi bài i, n: byte; Begin - Khai báo biến (69) Write(‘Nhap xau: ’); Readln(Xau); n:=length(Xau); For i:=n downto Write(Xau[i], ‘ ‘); Readln End Củng cố kiến thức - Nhắc lại số hàm và thủ tục liên quan đến xâu - Nhắc lại cấu trúc câu lệnh Bài tập nhà - Về nhà học bài và chuẩn bị trước bài Bài tập và thực hành (70) Tiết 31, 32 Ngày dạy: …./…./20… BÀI TẬP VÀ THỰC HÀNH I MỤC TIÊU Kiến thức - Khắc sâu thêm phần kiến thức lý thuyết kiểu xâu ký tự, đặc biệt là các hàm và thủ tục liên quan - Nắm số thuật toán bản: tạo xâu mới, đếm số lần xuất ký tự Kĩ - Khai báo biến kiểu xâu - Nhập, xuất giá trị cho biến xâu - Duyệt qua tất các ký tự xâu - Sử dụng các hàm và thủ tuc chuẩn Thái độ - Tích cực, chủ động thực hành II Phương pháp – phương tiện dạy học Phương pháp: thuyết trình, vấn đáp, thực hành Phương tiện: SGK, máy chiếu, máy vi tính III Hoạt động dạu học Ổn định tổ chức: ổn định lớp kiểm tra sĩ số Kiểm tra bài cũ: Nội dung bài mới: 3.1 Hoạt động 1: Tìm hiểu chương trình, đề xuất phương án cải tiến HĐ Học Sinh HĐ Giáo viên Trình bày bảng Quan sát, đọc kỹ đề Tìm hiểu đề bài BÀI TẬP VÀ THỰC - Giới thiệu nội dung đề bài lên HÀNH bảng Bài tập - Diễn giải: Một xâu gọi là Palidrom ta đọc các ký tự từ phải sang trái giồng đọc từ trái sang phải Phải: 12321 abccba - Yêu cầu học sinh cho hai ví Không phải: abcdea dụ xâu palidrom và ví dụ không phải là palidrom Quan sát chương trình, Tìm hiểu chương trình gợi ý suy nghĩ phân tích để hiểu - Chiếu chương trình lên bảng chương trình - Hỏi: Chương trình sau đây có - Kiểm tra xâu có phải chức làm gì? Kết in Palidrom hay không? màn hình nào? - In ra: ‘xau la palidrom’ (71) ‘Xau khong la - Thực chương trình để palidrom’ học sinh kiểm nghiệm suy luận - Quan sát giáo viên thực mình chương trình, nhập liệu và kết chương Cải tiến chương trình trình - Nêu yêu cầu mới: Viết lại Chú ý theo dõi yêu cầu chương trình mà không sử dụng giáo viên, trả lời số biến trung gian p câu hỏi dẫn dắt - Yêu cầu: Nhận xét các cặp vị trí đối xứng - Các ký tự vị trí này giống xâu palidrom? - Hỏi: Ký tự thứ i đối xứng với ký tự vị trí nào? - Ký tự thứ i đối xứng với ký - Hỏi: Cần phải so sánh bao tự thứ length()-i+1 nhiêu cặp ký tự xâu để - So sánh tối đa length() div biết xâu đó là palidrom? - Hỏi: Dùng cấu trúc lặp nào để so sánh? - Có thể dùng For - Yêu cầu học sinh viết chương While trình hoàn chỉnh - Thực soạn thảo chương trình vào máy theo - Yêu cầu học sinh nhập liệu yêu càu cải tiến giáo cho sẵn giáo viên và thông viên báo kết - Nhập liệu vào và thông - Xác nhận bài làm có báo kết kết đúng 3.2 Hoạt động 2: Rèn luyện khả lập trình HĐ Học Sinh HĐ Giáo viên Trình bày bảng - Suy nghĩ trả lời - Yêu cầu HS xác định các Bài tập tham số cần nhập vào từ bàn Viết chương trình nhập vào - biến: xau1, xau2 phím hai xâu Sau đó, so sánh xem - Cần khai báo tổng cộng hai xâu đó có trùng hay bao nhiêu biến ? không Nếu giống thì in - Khai báo biến - Yêu cầu HS lên bảng thực chữ “trung nhau’ ngược lại in khai báo biến nêu ‘ khong trung nhau’ trên - Lắng nghe, phát biểu, và - Yêu cầu HS nêu cách giải Program BT2; ghi bài bài toán ngôn Uses crt; ngữ tự nhiên  hình thành các Var xau1, xau2: String; Begin câu lệnh cho HS hiểu - Lên bảng thực Các - Yêu cầu HS lên bảng Write(‘Nhap xau ’); học sinh còn lại làm bài vào viết chương trình Readln(xau1); tập Write(‘Nhap xau ’); - Lắng nghe, quan sát và ghi - Cho các HS khác nhận xét Readln(xau2); (72) bài bài làm bạn mình, GV sửa bài và cho HS ghi bài If xau1 = xau2 then Writeln(‘Trung nhau’) Else Writeln(‘Khong trung nhau’); Readln End Củng cố kiến thức Bài tập nhà Về nhà đọc kĩ lại hai chương trình trên, chuẩn bị tiết sau thực hành (73) IN TỪ ĐÂY Tiết 33, 34 Ngày dạy: …./…./20… BÀI TẬP I Mục tiêu: Về kiến thức: Củng cố các kiến thức về: - Các quy tắc kiểu liệu có cấu trúc để thực liệu thực tế - Kiểu liệu có cấu trúc xây dựng từ kiểu liệu sở theo số cách thức tạo kiểu ngôn ngữ lập trình Pascal quy định - Mỗi kiểu liệu có cấu trúc thường hữu ích việc giải số bài tập - Trong ngôn ngữ Pascal dùng mô tả kiểu liệu với từ khoá Type Về kĩ năng: - Rèn luyện kĩ khai báo kiểu liệu có cấu trúc (với Pascal, sử dụng thành thạo các từ khoá Var, Type) - Sử dụng thành thạo các thao tác vào/ và các phép toán trên các thành phần sở Về tư và thái độ: - Thái độ học tập tích cực, ham thích lập trình - Tiếp tục hình thành và xây dựng phẩm chất cần thiết người lập trình II Phương pháp – phương tiện dạy học Phương pháp: Thuyết trình, vấn đáp Phương tiện: SGK, giáo án III Hoạt động dạy học Ổn định tổ chức: ổn định lớp kiểm tra sĩ số Kiểm tra bài cũ - Hãy nêu cách khai báo ghi và cho ví dụ? Nội dung bài 3.1 Hoạt động 1: Bài tập SGK trang 79 HĐ Học Sinh HĐ Giáo viên Trình bày bảng BÀI TẬP Bài tập - Suy nghĩ trả lời - Yêu cầu HS xác định các Program BT1; tham số cần nhập vào từ bàn Uses crt; phím Var A: array[1 100] of - biến: biến mảng A, i, n, - Cần khai báo tổng cộng integer; d bao nhiêu biến? i, n, d: integer; - Khai báo biến - Yêu cầu HS lên bảng thực Begin khai báo biến nêu Write(‘Nhap so phan tu: ‘); trên Readln(n); - Lắng nghe, phát biểu, và - Yêu cầu HS nêu cách giải For i:= to n ghi bài bài toán ngôn Begin ngữ tự nhiên  hình thành các Write(‘Nhap so: ‘); Readln(A[i]); câu lệnh cho HS hiểu (74) - Lên bảng thực Các học sinh còn lại làm bài vào tập - Lắng nghe, quan sát và ghi bài - Yêu cầu HS lên bảng viết chương trình End; d := A[2] – A[1]; i := 2; - Cho các HS khác nhận xét While i <= n and A[i] – bài làm bạn mình, GV A[i-1] = d sửa bài và cho HS ghi bài i := i + 1; If i < n then Writeln(‘A khong la CSC’) Else Writeln(‘A la CSC’); Readln End 3.2 Hoạt động 2: Bài tập 6a HĐ Học Sinh HĐ Giáo viên Trình bày bảng - Suy nghĩ trả lời - Yêu cầu HS xác định các Bài tập 6a tham số cần nhập vào từ bàn Program BT2; phím Uses crt; - biến: biến mảng A, i, n, - Cần khai báo tổng cộng Var A: array[1 100] of chan, le bao nhiêu biến? integer; - Yêu cầu HS lên bảng thực i, n, chan, le: integer; - Khai báo biến khai báo biến nêu Begin trên Write(‘Nhap so phan tu: ‘); - Lắng nghe, phát biểu, và - Yêu cầu HS nêu cách giải Readln(n); ghi bài bài toán ngôn For i:= to n ngữ tự nhiên  hình thành các Begin Write(‘Nhap so: ‘); câu lệnh cho HS hiểu - Lên bảng thực Các - Yêu cầu HS lên bảng Readln(A[i]); học sinh còn lại làm bài vào viết chương trình End; tập chan := 0; - Lắng nghe, quan sát và ghi - Cho các HS khác nhận xét le := 0; bài For i:= to n bài làm bạn mình, GV Begin sửa bài và cho HS ghi bài If A[i] mod = then chan := chan + Else le := le + 1; End; Writeln(‘Co ‘,chan,’ so chan va ‘,le,’ so le mang da cho’); Readln End 3.3 Hoạt động 3: Bài tập 11 (75) HĐ Học Sinh HĐ Giáo viên - Lắng nghe, ghi chú và - Hướng dẫn HS cách làm nhà làm bài bài:  Khai báo biếnN  Nhập danh sách học sinh  Xét kết theo điều kiện  Xem lại ví dụ bài Kiểu ghi Củng cố kiến thức Bài tập nhà Trình bày bảng Bài tập 11 Viết chương trình nhập vào danh sách học sinh lớp gồm n học sinh với các thông tin: HoTen, DTB Sau đó, in bảng kết học tập HS dựa theo điều kiện sau: - Nếu DTB < thì in chữ ‘Rot’ - Ngược lại, in chữ ‘Dau’ (76) Tiết 35 Ngày dạy: …./…./20… ÔN TẬP I Mục tiêu: Về kiến thức: Củng cố các kiến thức về: - Các quy tắc kiểu liệu có cấu trúc để thực liệu thực tế - Kiểu liệu có cấu trúc xây dựng từ kiểu liệu sở theo số cách thức tạo kiểu ngôn ngữ lập trình Pascal quy định - Mỗi kiểu liệu có cấu trúc thường hữu ích việc giải số bài tập - Trong ngôn ngữ Pascal dùng mô tả kiểu liệu với từ khoá Type Về kĩ năng: - Rèn luyện kĩ khai báo kiểu liệu có cấu trúc (với Pascal, sử dụng thành thạo các từ khoá Var, Type) - Sử dụng thành thạo các thao tác vào/ và các phép toán trên các thành phần sở Về tư và thái độ: - Thái độ học tập tích cực, ham thích lập trình - Tiếp tục hình thành và xây dựng phẩm chất cần thiết người lập trình II Phương pháp – phương tiện dạy học Phương pháp: Thuyết trình, vấn đáp Phương tiện: SGK, giáo án III Hoạt động dạy học Ổn định tổ chức: ổn định lớp kiểm tra sĩ số Kiểm tra bài cũ - Hãy nêu cách khai báo ghi và cho ví dụ? Nội dung bài 3.1 Hoạt động 1: Giới thiệu các kiến thức trọng tâm chương HĐ Học Sinh HĐ Giáo viên Trình bày bảng ÔN TẬP - Là dãy các phần tử có cùng kiểu liệu - Ta cần xác định các yếu tố sau: + Tên kiểu mảng chiều + Kiểu số + Kiểu liệu + Cách khai báo + Cách tham chiếu - Có hai cách để khai báo mảng chiều: + C1: Khai báo trực tiếp - Thế nào là mảng chiều? - Là dãy các phần tử có cùng kiểu liệu - Để mô tả mảng chiều - Ta cần xác định các yếu ta phải xác định các tố sau: yếu tố nào? + Tên kiểu mảng chiều + Kiểu số + Kiểu liệu - Có cách để khai báo + Cách khai báo mảng chiều? Đó là + Cách tham cách nào? chiếu - Có hai cách để khai báo mảng chiều: + C1: Khai báo trực tiếp (77) Var <Tên biến mảng>: array[<kiểu số>] of <kiểu phần tử>; + C2: Khai báo gián tiếp Type <Tên kiểu mảng>= array[<kiểu số>] of <kiểu phần tử>; Var <Tên biến mảng>: <Tên kiểu mảng>; - Ví dụ: Var a: array[1 100] of byte; Var b: array[a z] of char; Type c=array[1 100] of byte; Var a:c; - Là dãy các kí tự mã ASCII, kí tự gọi là phần tử xâu Số lượng kí tự có xâu gọi là độ dài xâu Var <Tên_biến>:String[độ_dài_lớ n _nhất]; Ví dụ: Var S:tring[25]; - Phép ghép xâu, phép so sánh xâu,thủ tục delete… Var <Tên biến mảng>: array[<kiểu số>] of <kiểu - Lấy ví dụ minh họa phần tử>; + C2: Khai báo gián tiếp Type <Tên kiểu mảng>= array[<kiểu số>] of <kiểu phần tử>; Var <Tên biến mảng>: <Tên kiểu mảng>; - Ví dụ: Var a: array[1 100] of byte; Var b: array[a z] of char; - Kiểu xâu? Cách xác định Type c=array[1 100] of byte; xâu? Var a:c; - Là dãy các kí tự mã ASCII, kí tự gọi là phần tử xâu Số lượng kí tự có xâu gọi là - Cách khai báo xâu và cho độ dài xâu ví dụ? Var - Các phép toán xử lí xâu <Tên_biến>:String[độ_dài_lớn _nhất]; loại cho ví dụ? Ví dụ: Var S:tring[25]; - Phép ghép xâu, phép so sánh xâu,thủ tục delete… 3.2 Hoạt động 2: Giải số bài tập HĐ Học Sinh HĐ Giáo viên - Là dãy các phần tử có cùng kiểu liệu - Ta cần xác định các yếu tố sau: + Tên kiểu mảng chiều + Kiểu số + Kiểu liệu + Cách khai báo + Cách tham chiếu - Có hai cách để khai báo - Thế nào là mảng chiều? Trình bày bảng ÔN TẬP - Là dãy các phần tử có cùng kiểu liệu - Để mô tả mảng chiều - Ta cần xác định các yếu ta phải xác định các tố sau: yếu tố nào? + Tên kiểu mảng chiều + Kiểu số + Kiểu liệu - Có cách để khai báo + Cách khai báo mảng chiều? Đó là + Cách tham cách nào? chiếu - Có hai cách để khai báo (78) mảng chiều: + C1: Khai báo trực tiếp Var <Tên biến mảng>: array[<kiểu số>] of <kiểu phần tử>; + C2: Khai báo gián tiếp Type <Tên kiểu mảng>= array[<kiểu số>] of <kiểu phần tử>; Var <Tên biến mảng>: <Tên kiểu mảng>; - Ví dụ: Var a: array[1 100] of byte; Var b: array[a z] of char; Type c=array[1 100] of byte; Var a:c; - Là dãy các kí tự mã ASCII, kí tự gọi là phần tử xâu Số lượng kí tự có xâu gọi là độ dài xâu Var <Tên_biến>:String[độ_dài_lớ n _nhất]; Ví dụ: Var S:tring[25]; - Phép ghép xâu, phép so sánh xâu,thủ tục delete… mảng chiều: + C1: Khai báo trực tiếp Var <Tên biến mảng>: array[<kiểu số>] of <kiểu - Lấy ví dụ minh họa phần tử>; + C2: Khai báo gián tiếp Type <Tên kiểu mảng>= array[<kiểu số>] of <kiểu phần tử>; Var <Tên biến mảng>: <Tên kiểu mảng>; - Ví dụ: Var a: array[1 100] of byte; Var b: array[a z] of char; - Kiểu xâu? Cách xác định Type c=array[1 100] of byte; xâu? Var a:c; - Là dãy các kí tự mã ASCII, kí tự gọi là phần tử xâu Số lượng kí tự có xâu gọi là - Cách khai báo xâu và cho độ dài xâu ví dụ? Var - Các phép toán xử lí xâu <Tên_biến>:String[độ_dài_lớn _nhất]; loại cho ví dụ? Ví dụ: Var S:tring[25]; - Phép ghép xâu, phép so sánh xâu,thủ tục delete… 3.2 Hoạt động 2: Giải số bài tập - Hướng dẫn học sinh giải số bài tập Củng cố kiến thức - Kiểu liệu có cấu trúc - Kiểu xâu Bài tập nhà - Về học bài chuẩn bị tiết sau kiểm tra tiết (79) Tiết 37, 38 Ngày dạy: …./…./20… CHƯƠNG IV: TỆP VÀ THAO TÁC VỚI TỆP BÀI 14 - 15: KIỂU DỮ LIỆU TỆP – THAO TÁC VỚI TỆP I MỤC TIÊU Kiến thức: - Biết đặc điểm kiểu liệu tệp - Biết khái niệm tệp có cấu trúc và tệp văn Kĩ năng: - Khai báo đúng biến kiểu tệp - Thực thao tác xử lý tệp: Gán tên tệp, mở/đóng tệp, đọc/ghi tệp - Sử dụng các thủ tục liên quan để đọc/ghi liệu tệp Thái độ: - Thấy cần thiết và tiện lợi kiểu liệu tệp - Có ý thức lưu trữ liệu cách khoa học - Giáo dục thêm ý thức tôn trọng quyền, không sử chữa, chép các phần mềm chưa mua quyền II Phương pháp – phương tiện dạy học Phương pháp: thuyết trình, vấn đáp Phương tiện: SGK, giáo án, bảng, phấn III Hoạt động dạy học Ổn định tổ chức: ổn định lớp kiểm tra sĩ số Kiểm tra bài cũ Nội dung bào 3.1 Hoạt động 1: Tìm hiểu kiểu liệu tệp HĐ Học Sinh HĐ Giáo viên Trình bày bảng - Bộ nhớ RAM - Hỏi: Em hãy cho biết CHƯƠNG IV: TỆP VÀ THAO TÁC VỚI TỆP liệu các kiểu liệu từ BÀI 14 - 15: KIỂU DỮ LIỆU trước đến ta sử dụng TỆP – THAO TÁC VỚI TỆP lưu trữ loại nhớ nào thực chương Vai trò kiểu tệp trình? - Lưu trữ liệu lâu dài trên - Mất liệu - Hỏi: Vì em biết điều nhớ ngoài - Có thể lưu trữ lượng liệu điện đó? - Diễn giải: Để lưu giữ lớn liệu, ta phải lưu nó Phân loại tệp và thao tác với tệp nhớ ngoài thông qua kiểu - Có hai loại kiểu tệp: tệp có cấu liệu tệp Mọi ngôn ngữ lập trúc và tệp văn trình có các thao tác: + Tệp có cấu trúc là loại tệp mà khai báo biến tệp, mở tệp, các thành phần nó tổ (80) đọc/ghi liệu, đóng tệp - Yêu cầu học sinh nghiên - Không thông tin cứu sách giáo khoa và cho tắt máy biết đặc điểm kiểu tệp? - Dung lượng liệu Có loại kiểu tệp? lưu trữ lớn - Có hai loại kiểu tệp: tệp - Yêu cầu học sinh trình bày có cấu trúc và tệp văn khái niệm 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 nó tổ chức theo cấu trúc định + Tệp văn bản: là tệp mà liệu ghi dạng các kí tự theo mã ASCII chức theo cấu trúc định + Tệp văn bản: là tệp mà liệu ghi dạng các kí tự theo mã ASCII - Các thao tác trên tệp gồm: o Khai báo biến tệp o Mở tệp o Đọc/ghi liệu tệp o Đóng tệp 3.2 Hoạt động 2: Tìm hiểu các thao tác xử lý tệp văn ngôn ngữ lập trình Pascal HĐ Học Sinh HĐ Giáo viên Trình bày bảng Quan sát cấu trúc và Giới thiệu cấu trúc chung Khai báo tệp Khai báo tệp văn có dạng suy nghĩ trả lời khai báo biến tệp Var <tên_biến_tệp>: Text; Var <tên_biến_tệp>: Text; - Yêu cầu học sinh tìm ví dụ Ví dụ: Var f,g:text; Một số thao tác với tệp - Var f,g:text; cụ thể: a Gán tên tệp Quan sát và suy nghĩ để Giới thiệu các thao tác gán Cú pháp: trả lời câu hỏi tên tệp, tạo tệp để ghi, Assign(<biến tệp>,<tên mở tệp để đọc, đóng tệp tệp>); Assign(<tên_biến_tệp>,<tên Ví dụ 1: Assign(tep1, ‘Input.txt’); _tệp>); Ví dụ 2: Rewrite(<tên_biến_tệp>); Assign(tep2, ‘C:\Input.txt’); Assign(f5, ‘B1.INP’); Reset(<tên_biến_tệp>); b Mở tệp đọc liệu Rewrite(f5); Close(<tên_biến_tệp>); Cú pháp Close(f5); - Yêu cầu: lấy ví dụ minh assign(<biến tệp>, <tên họa mở tệp để ghi thông tin tệp>); Assign(f5, ‘B1.OUT’); và mở tệp để đọc thông tin reset(<biến tệp>); Ví dụ: Reset(f5);  VD1: Close(f5); assign(tep1, ‘Input.inp’ ); Quan sát sơ đồ và suy (81) nghĩ để trả lời - Ghi tệp: Gán tên tệp, tạo tệp mới, ghi thông tin, đóng tệp - Đọc tệp: Gán tên tệp, mở tệp, đọc thông tin, đóng tệp Quan sát cấu trúc chung Giới thiệu sơ đồ làm việc với tệp, hình 16, trang 86, sách giáo khoa Yêu cầu học sinh giải thích ý nghĩa sơ đồ Giới thiệu cấu trúc chung - Readln(f,x1,x2); Đọc thủ tục đọc/ghi liệu liệu từ biến tệp f, đặt giá tệp văn trị vào hai biến x1 và x2 - Yêu cầu học sinh lấy ví dụ - Writeln(g, ‘Tong la ’, minh họa 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 reset(tep1);  VD2: assign(tep2, ‘D:\Input.inp’ ); reset(tep2); c Mở tệp ghi liệu Cú pháp assign(<biến tệp>, <tên tệp>); rewrite(<biến tệp>); Ví dụ:  VD1: assign(tep1, ‘Input.inp’ ); rewrite(tep1);  VD2: assign(tep2, ‘D:\Input.inp’ ); rewrite(tep2); d Đọc tệp văn read(<biến tệp>, <danh sách biến>); Hoặc readln(<biến tệp>, <danh sách biến>); Ví dụ: 15 25 35 Assign (tep1, ‘Input.inp’); Reset (tep1); Read (tep1, B, C, D); e Ghi tệp văn write(<biến tệp>, <danh sách kết quả>); Hoặc writeln(<biến tệp>, <danh sách kết quả>); Ví dụ: 15 25 35 B := 15; C := 25; D := 35; Assign (tep1, ‘Output.inp’); rewrite (tep1); write (tep1, B, C, D); (82) f Đóng tệp Cú pháp Close (<biến tệp>); Ví dụ: Close (tep1); Close (tep2); Củng cố kiến thức - Cách khai báo biến tệp - Nhắc lại các thao tác tệp Bài tập nhà - Về học bài và xem trước bài 16 “Ví dụ làm việc với tệp” (83) Tiết 39 Ngày dạy: …./…./20… BÀI 16: VÍ DỤ LÀM VIỆC VỚI TỆP I Mục tiêu Kiến thức: - Củng cố lại kiến thức đã học tệp chương thông qua ví dụ Kỹ năng: - Sử dụng các hàm và thủ tục liên quan để giải bài toán Thái độ: II Phương pháp – phương tiện dạy học Phương pháp: thuyết trình, vấn đáp Phương tiện: SGK, giáo án, bảng, phấn III Hoạt động dạy học Ổn định tổ chức: ổn định lớp kiểm tra sĩ số Kiểm tra bài cũ: - Nêu cách khai báo biến tệp? Có các thủ tục nào làm việc với tệp? Nội dung bài mới: 3.1 Hoạt động 1: Tìm hiểu chương trình ví dụ HĐ Học Sinh HĐ Giáo viên Trình bày bảng BÀI 16: VÍ DỤ LÀM VIỆC VỚI TỆP Ví dụ Theo dõi và quan sát  Tìm hiểu ví dụ đề bài và chương trình - Giới thiệu nội dung đề bài gợi ý - Chiếu chương trình ví dụ lên bảng và gợi ý để học sinh tìm hiểu chương trình - Hàm cho giá trị True - Hỏi: Hàm Eof(f) có chức trỏ tệp định vị gì? vị trí kết thúc tệp - Không Vì không biết số - Có thể sử dụng cấu trúc lượng phần tử tệp For thay cho While không? - Tính và đưa màn hình - Chương trình này thực khoảng cách từ trại công việc gì? thầy hiệu trưởng đến trại giáo viên - Thực chương trình để học sinh thấy kết 3.2 Hoạt động 2: Rèn luyện kỹ lập trình HĐ Học Sinh HĐ Giáo viên Trình bày bảng - Thực theo yêu cầu - Hướng dẫn HS các bước Ví dụ 2: (84) GV thực giải bài này, sau đó yêu cầu HS lên bảng thực Các HS còn lại thực ví dụ vào tập - Nhận xét và cho HS ghi bài Viết chương trình nhập vào mảng chiều gồm n phần tử với các giá trị mảng chính là vì trí giá trị đó Sau đó lưu lại vào tệp “VD.inp” Program VD; Uses crt; Var Tep: Text; i, n: Byte; begin assign(Tep, ‘VD.inp’); rewrite(Tep,) write(‘Nhap n: ‘); readln(n); writeln(Tep,n); for i:= to n readln(Tep, i); close(Tep); end Củng cố kiến thức Trong ví dụ trên, để đổi từ chương trình nhập sang chương trình in ta thay câu lệnh nào và câu lệnh cụ thể nào ? Bài tập nhà - Về học bài và chuẩn bị trước các bài tập SGK trang 89 (85) Tiết 40 Ngày dạy: …./…./20… ÔN TẬP I.Mục tiêu Kiến thức: - Củng cố lại các kiến thức đã học bài 14, 15, 16 Kỹ năng: - Biết nào cần lập trình với tệp - Biết lập trình với tệp thông qua bài toán đơn giản Thái độ: II Phương pháp – phương tiện dạy học Phương pháp: thuyết trình, vấn đáp Phương tiện: SGK, giáo án, bảng, phấn III Hoạt động dạy học Ổn định tổ chức: ổn định lớp kiểm tra sĩ số Kiểm tra bài cũ: - Nêu các lợi ích việc lập trình với tệp - Viết các câu lệnh dùng để đọc tệp ‘VD.Pas’ sau: 10 20 30 ………………………………………………… ………………………………………………… VD.Pas ………………………………………………… Nội dung bài mới: HĐ Học Sinh HĐ Giáo viên Trình bày bảng ÔN TẬP Củng cố kiến thức bài Bài 14: - Xem lại và phát biểu 14 - Vai trò tệp: - Yêu cầu HS nhắc lại vai - Các thao tác với tệp: trò việc lập trình với tệp - Khai báo - Đọc bài và trả lời - Nhận xét Các thao tác với tệp bao gồm - Lên bảng thực Các thao tác nào ? Kể tên HS khác làm ngoài nháp - Yêu cầu HS lên bảng cho ví dụ khai báo biến tệp - Nhận xét và chốt lại phần kiến thức cần nắm bài 14 Bài 15 Bài 15: - Xem lại bài và lên bảng - Yêu cầu các HS - Gắn tên tệp thực lên bảng thực việc gắn - Mở tệp để đọc (86) tên tệp, mở tệp để đọc, mở tệp để ghi, đọc tệp văn bản, ghi tệp văn và đóng tệp - Nhận xét và nhắc lại lần cho HS ghi nhớ Củng cố kiến thức - Yêu cầu HS lên bảng thực việc ghi liệu tệp Bài tập nhà - Về xem lại bài, chuẩn bị kiểm tra 15 phút tuần sau - Mở tệp để ghi Đọc tệp văn Ghi tệp văn Đóng tệp (87) Tiết 41, 42 Ngày dạy: …./…./20… CHƯƠNG VI: CHƯƠNG TRÌNH CON VÀ LẬP TRÌNH CÓ CẤU TRÚC BÀI 17: CHƯƠNG TRÌNH CON VÀ PHÂN LOẠI I MỤC TIÊU Kiến thức: - Biết khái niệm chương trình - Biết ý nghĩa chương trình con, cần thiết phải viết chương trình thành các chương trình - Biết cấu trúc chương trình - Phân biệt hai loại chương trình là hàm và thủ tục Kĩ năng: - Nhận biết các thành phần đầu thủ tục - Nhận biết hai loại tham số hình thức đầu thủ tục - Biết cách khai báo hai loại chương trình cùng với tham số hình thức chúng - Biết cách viết lời gọi chương trình thân chương trình chính Thái độ: - Rèn luyện các phẩm chất người lập trình tinh thần hợp tác, làm việc theo nhóm, tuân thủ yêu cầu vì công việc chung II Phương pháp – phương tiện dạy học phương pháp: thuyết trình, vấn đáp Phương tiện: SGK, giáo án, bảng, phấn III Hoạt động dạy học Ổn định tổ chức: ổn định lớp kiểm tra sĩ số Kiểm tra bài cũ: Nội dung bài mới: 3.1 Hoạt động 1: Khái niệm chương trình HĐ Học Sinh HĐ Giáo viên Trình bày bảng - Đưa hai chương trình giáo CHƯƠNG VI: CHƯƠNG viên đã chuẩn bị sẵn Một TRÌNH CON VÀ LẬP TRÌNH chương trình có sử dụng CÓ CẤU TRÚC chương trình con, BÀI 17: CHƯƠNG TRÌNH chương trình không sử dụng CON VÀ PHÂN LOẠI chương trình Chẳng hạn: Chương trình Khái niệm chương trình tính tổng lũy thừa: - Chương trình là: TLT=an + bm + cp + dq  Một đoạn lệnh - Nhận xét: Chương trình - Gọi học sinh nhận xét  Có thể sử dụng có sử dụng chương trình tính ngắn gọn, rõ ràng, tính nhiều lần chương viết ngắn gọn, dễ đọc dễ hiểu hai trình dễ hiểu chương trình chương trình đó  Có thể sử dụng viết không sử dụng nhiều nơi chương chương trình - Hỏi: Khi nào nên viết trình (88) - Đối với các bài toán lớn, chương trình con? - Lợi ích: cần nhiều người cùng o Dễ viết viết Chương trình dài, o Dễ đọc cần chia làm nhiều đoạn o Dễ hiệu chỉnh Có nhiều đoạn lệnh lặp lại, nên viết chương trình - Đọc SGK và trả lời - Yêu cầu HS tham khảo SGK và cho biết khái niệm chương trình con? - Lắng nghe và ghi bài - Nhận xét và cho HS ghi bài - Trả lời - Sử dụng CTC có lợi ích nào ? - Lắng nghe và ghi bài - Nhận xét và cho HS ghi bài 3.2 Hoạt động 2: Phân loại và cấu trúc chương trình HĐ Học Sinh HĐ Giáo viên Trình bày bảng - Đọc sách và trả lời - Yêu cầu HS đọc sách và Phân loại và cấu trúc CTC cho biết CTC phân a Phân loại thành loại? Kể tên - Thủ tục (Procedure): Không - Thủ tục không trả giá - Vậy lại phải phân trả giá trị nào trị còn hàm thì có thành loại, chúng khác VD: write, readln,… chổ nào ? - Hàm (Function): Có trả - Nhận xét và cho HS ghi hay nhiều giá trị bài VD: sin(x), length(st),… - Nhớ lại và phát biểu - Yêu cầu HS nhắc lại cấu trúc chương trình b Cấu trúc chương trình Pascal hoàn chỉnh <Phần đầu> {Bắt buộc} - Lắng nghe - Tương tự, CTC có [<Phần khai báo>] {Không cấu trúc gần giống bắt buộc} - Lắng nghe và ghi bài - Nêu cấu trúc cho HS thấy, <Phần thân> {Bắt buộc} phân tích vị trí cho HS hiểu rõ Củng cố kiến thức - Yêu cầu HS nhắc lại: CTC phân thành loại? Kể tên - Viết cấu trúc CTC, phần nào bắt buộc, phần nào không? Bài tập nhà - Về xem lại bài, chuẩn bị tiết sau học bài 18 “VÍ DỤ VỀ CÁCH VIẾT VÀ SỬ DỤNG CHƯƠNG TRÌNH CON” (89) Tiết 43 Ngày dạy: …./…./20… BÀI TẬP I.Mục tiêu Kiến thức: - Củng cố lại các kiến thức đã học bài 17 Kỹ năng: - Biết chương trình là gì? Chương trình có loại? - Biết lập trình sử dụng chương trình Thái độ: II Phương pháp – phương tiện dạy học Phương pháp: thuyết trình, vấn đáp Phương tiện: SGK, giáo án, bảng, phấn III Hoạt động dạy học Ổn định tổ chức: ổn định lớp kiểm tra sĩ số Kiểm tra bài cũ: Nội dung bài HĐ Học Sinh HĐ Giáo viên Trình bày bảng ÔN TẬP - Chương trình là:  Một đoạn lệnh  Có thể sử dụng nhiều lần chương trình  Có thể sử dụng nhiều nơi chương trình - Lợi ích: + Dễ viết + Dễ đọc + Dễ hiệu chỉnh - Trả lời - Cho biết chương trình là gì? - Lợi ích việc sử dụng chương trình con? - Phân loại chương trình con? - Chú ý lắng nghe và giải - Giải số bài tập các bài tập Củng cố kiến thức Bài tập nhà (90) Tiết 44, 45, 46 Ngày dạy: …./…./20… BÀI 18: VÍ DỤ VỀ CÁCH VIẾT VÀ SỬ DỤNG CHƯƠNG TRÌNH CON I Mục tiêu Kiến thức: - Biết cấu trúc chung và vị trí thủ tục chương trình - Phân biệt tham số giá trị và tham số biến - Nắm khái niệm biến toàn cục và biến cục Kĩ năng: - Nhận biết các thành phần đầu thủ tục - Nhận biết hai loại tham số hình thức đầu thủ tục - Biết cách khai báo hai loại chương trình cùng với tham số hình thức chúng - Sử dụng đúng lời gọi chương trình thân chương trình chính - Phân biệt khác hàm và thủ tục - Phân biệt và sử dụng đúng biến toàn cục và biến cục Thái độ: - Rèn luyện các phẩm chất người lập trình tinh thần hợp tác, làm việc theo nhóm, tuân thủ yêu cầu vì công việc chung II Phương pháp – phương tiện dạy học Phương pháp: thuyết trình, vấn đáp Phương tiện dạy học: SGK, giáo án, bảng, phấn III Hoạt động dạy học Ổn định tổ chức: ổn định lớp kiểm tra sĩ số Kiểm tra bài cũ: - Khái niệm chương trình con? - Chương trình có loại? kể ra? Nội dung bài mới: 3.1 Hoạt động 1: Cách viết và sử dụng thủ tục HĐ Học Sinh HĐ Giáo viên Trình bày bảng  Hoạt động 1: Cấu trúc BÀI 18: VÍ DỤ VỀ CÁCH VIẾT - Quan sát, lắng nghe - Trình bày và lưu ý VÀ SỬ DỤNG CHƯƠNG phần cấu trúc thủ TRÌNH CON tục Thủ tục ( procedure) - Xem lại bài và phát biểu - Chỉ phần tương ứng a Cấu trúc: với phần cấu trúc Procedure <Tên thủ tục>[(<DS chung chương trình tham số>)]; con? [<Phần khai báo>] - Nhận xét và cho HS ghi Begin bài [<Dãy các lệnh>] - Chú ý lắng nghe  Hoạt động 1.2: Ví dụ End; - Hướng dẫn HS công b Ví dụ: Viết chương trình vẽ việc cần làm để giải hình chữ nhật có kích thước x (91) - Lắng nghe và viết đoạn bài toán chương trình - Hình thành ý tưởng để HS viết thủ tục vẽ hình chữ nhật - Chú ý quan sát, lắng có kích thước x nghe và hiểu bài - Nhận xét và viết lại toàn chương trình hoàn chỉnh cho HS quan sát - Chú ý điểm quan trọng viết chương trình cho HS 3.2 Hoạt động 2: Tìm hiểu hàm HĐ Học Sinh HĐ Giáo viên Hoạt động 1: Cấu trúc - Quan sát, lắng nghe - Trình bày và lưu ý phần cấu trúc hàm - Xem lại bài và phát biểu - Chỉ phần tương ứng với phần cấu trúc chung chương trình con? - Nhận xét và cho HS ghi bài - Chú ý lắng nghe Hoạt động 2.2: Ví dụ - Hướng dẫn HS công việc cần làm để giải - Lắng nghe và viết đoạn bài toán chương trình - Hình thành ý tưởng để HS viết hàm tính lũy thừa - Chú ý quan sát, lắng số nghe và hiểu bài - Nhận xét và viết lại toàn chương trình hoàn chỉnh cho HS quan sát - Chú ý điểm quan hình vẽ sau: * * * * * * * * * * * * * * * * Program VD_Procedure; Uses crt; Procedure Ve_HCN; Begin Writeln(‘* * * * * * *’); Writeln(‘* *’); Writeln(‘* * * * * * *’); End; Begin Ve_HCN; Ve_HCN; Ve_HCN; Ve_HCN; Ve_HCN; End Trình bày bảng Hàm ( Function) a Cấu trúc Function <Tên hàm>[(<DS tham số>)]: <kiểu liệu>; [<Phần khai báo>] Begin [<Dãy các lệnh>] <Tên hàm>:= <Biểu thức>; End; b Ví dụ Viết chương trình tính tổng sau: S = am + bn + cp + dq Program VD_Function; Uses crt; Type Mang = Array[1 100] of byte; Var a,b,c,d,m,n,p,q: byte; KQ1, KQ2, KQ3, KQ4: real; Function LuyThua(x,y:byte): real; Var i:byte; (92) trọng viết chương trình cho HS Begin LT := 1; For i:=1 to y LT := LT * x; LuyThua := LT; End; Begin Write(‘Nhap a,b,c,d: ‘); Readln(a,b,c,d); Write(‘Nhap m,n,p,q: ‘); Readln(m,n,p,q); KQ1 := LuyThua(a,m); KQ2 := LuyThua(b,n); KQ3 := LuyThua(c,p); KQ4 := LuyThua(d,q); Writeln(‘Tong la: ‘, KQ1 + KQ2 + KQ3 + KQ4); Readln End Củng cố kiến thức Bài tập nhà - Về nhà học bài và xem trước bài “ Bài tập và thực hành 6” (93) Tiết 47 Ngày dạy: …./…./20… BÀI TẬP (94) Tiết 48, 49 Ngày dạy: …./…./20… BÀI TẬP VÀ THỰC HÀNH I Mục tiêu Kiến thức: - Củng cố lại kiến thức đã học chương trình ( procedure) Kỹ năng: - Biết vận dụng chương trình lập trình đơn giản Thái độ: II Phương pháp – phương tiện dạy học Phương pháp: thuyết trình, vấn đáp, thực hành Phương tiện: SGK, giáo án, máy vi tính, máy chiếu III Hoạt động dạy học: Ổn định tổ chức: ổn định lớp kiểm tra sĩ số Kiểm tra bài cũ: - Yêu cầu HS lên bảng viết cấu trúc cú pháp hàm và thủ tục? Nội dung bài mới: HĐ Học Sinh HĐ Giáo viên Trình bày bảng BÀI TẬP VÀ THỰC HÀNH - Lắng nghe - Lưu ý HS việc vận dụng chương trình để viết chương trình này - Xem lại bài và lên bảng - Y/c hai HS lên bảng thực thực hiện lại hai đoạn chương trình dùng để nhập mảng chiều và in mảng chiều đã học bài 11 - Chú ý quan sát và lắng - Nhận xét, chỉnh sửa  Hình nghe thành thủ tục thay cho hai đoạn lệnh trên - Lên bảng thực - Gọi HS lên bảng viết lại toàn chương trình và cho điểm - Nhận xét, sửa lỗi và cho HS ghi bài Viết chương trình nhập vào dãy các số nguyên gồm n phần tử (n <=100) Sau đó, in mảng vừa nhập Program BT_TH_6; Uses crt; Type Mang = Array[1 100] of byte; Var n:byte; A: Mang; Procedure NhapMang(var B: Mang, n:byte); Var i:byte; Begin For i:=1 to n Begin Write(‘Nhap so: ‘); Readln (B[i]); End; End; Procedure n:byte); Var i:byte; InMang(B: Mang, (95) Begin For i:=1 to n Write(B[i],’ ‘); End; Begin Write(‘Nhap n: ‘); Readln(n); NhapMang(A,n); InMang(A,n); Readln End Củng cố kiến thức Bài tập nhà Về nhà xem kỹ lại chương trình đã viết trên tiết sau thực hành (96)

Ngày đăng: 14/06/2021, 17:59

w