Giáo án tin học 11 chuẩn không cần chỉnh 2012

90 1K 0
Giáo án tin học 11 chuẩn không cần chỉnh 2012

Đ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

Ngày giảng: Tiết theo PPCT: 01 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: 1. Kiến thức: - Biết khái niệm về ngôn ngữ lập trình. - Biết vai trò của chương trình dịch. - Biết khái niệm biên dịch và thông dịch. 2. Kỹ năng: - Chưa đòi hỏi kỹ năng gì. 3. Thái độ: - Nghiêm túc trong học tập, say mê với môn học. II - CHUẨN BỊ CỦA GIÁO VIÊN VÀ HỌC SINH: 1. Giáo viên: SGK, SGV, Bài soạn. 2. Học sinh: SGK, vở ghi bài. III - TIẾN TRÌNH DẠY HỌC: 1. Ổn định tổ chức lớp: 2. Kiểm tra bài cũ: (không) 3. Nội dung bài giảng: Hoạt động của GV và HS Nội dung Hoạt động 1 1. Ngôn ngữ lập trình: GV: Từ kiến thức lớp 10 em có thể cho biết có những loại ngôn ngữ lập • Khái niệm lập trình: là sử dụng trình nào? cấu trúc dữ liệu và các câu lệnh HS1: Trả lời câu hỏi. của ngôn ngữ lập trình cụ thể nào HS2: Bổ sung (nếu có). đó để mô tả dữ liệu và diễn đạt GV: Kết luận; kể tên một số ngôn các thao của thuật toán. ngữ lập trình mà HS đã biết ở lớp • Trong đó: 10. - Câu lệnh diễn tả các thao tác trong các GV: (nêu ví dụ) – Giả sử ta muốn gõ bước của thuật toán; được một trang văn bản (trong máy - Câu lệnh đơn thực hiện bước có một thao tính thì ta cần dùng một phần mềm tác; cho phép gõ văn bản (như Microsoft - Câu lệnh cấu trúc thực hiện bước gồm dãy Word chẳng hạn), tương tự như vậy các thao tác. để có được các chương trình ta phải sử dụng các ngôn ngữ lập trình để viết ra các chương trình đó. Người ta gọi đó là lập trình. GV: Vậy lập trình là gì? HS: trả lời câu hỏi. GV: nhận xét, kết luận. Hoạt động 2 2. Chương trình dịch: GV: ở lớp 10 chúng ta đã biết thế nào là ngôn ngữ máy, ngôn ngữ bậc cao. Vậy em hãy cho biết ngôn ngữ máy và ngôn ngữ bậc cao khác nhau như thế nào? HS: Trả lời. - Có chức năng chuyển đổi CT được viết Giáo án Tin học 11 1 GV: Nhận xét, kết luận. GV: Vì lý do như vậy cho nên muốn máy tính thực hiện được các ngôn ngữ lập trình bậc cao người ta phải xây dựng một chương trình dùng để chuyển đổi, chương trình đó gọi là chương trình dịch Hoạt động 3 GV: Hướng dẫn HS đọc ví dụ (SGK – Tr.4). GV: Từ ví dụ trên em hãy cho biết thông dịch là gì, biên dịch là gì? HS: trả lời. GV: nhận xét, kết luận GV: Như vậy sau khi có được khái niệm thông dịch và biên dịch ta cần chú ý: thông dịch không có CT đích để lưu trữ và biên dịch cả chương trình nguồn và CT đích có thể lưu trữ để sử dụng về sau. bằng ngôn ngữ LT bậc cao thành CT thực hiện được trên máy tính; - CT dịch nhận đầu vào là CT viết bằng NNLT bậc cao (CT nguồn), thực hiện chuyển đổi sang NN máy. CT nguồn  CT dịch  CT đích a) Thông dịch: (interpreter) - Kiểm tra tính đúng đắn của câu lệnh tiếp theo trong CT nguồn; - Chuyển đổi câu lệnh đó thành một hay nhiều câu lệnh tương ứng trong NN máy; - Thực hiện các câu lệnh vừu chuyển đổi được. b) Biên dịch: (compiler) - Duyệt, phát hiện lỗi, kiểm tra tính đúng đắn của các câu lệnh trong CT nguồn; - Dịch toàn bộ CT nguồn thành CT đích có thể thực hiện trên máy và lưu trữ để sử dụng khi cần thiết. 4. CỦNG CỐ: - Hãy tóm tắt lại các kiến thức đã học trong bài? - Nêu KN NNLT? Chương trình dịch? Phân biệt thông dịch và biên dịch? 5. DẶN DÒ: - Trả lời các câu hỏi: 1 3 (SGK Tr.13). - Đọc bài đọc thêm 1: Bạn biết gì về ngôn ngữ lập trình (SGK – Tr.6). -------------------------------------------Ngày giảng: Tiết theo PPCT: 02 Bài 2 – CÁC THÀNH PHẦN CỦA NGÔN NGỮ LẬP TRÌNH I – MỤC TIÊU: 1. Kiến thức: - Biết các thành phần cơ bản của 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 cơ sở của một ngôn ngữ lập trình bậc cao cụ thể: Bảng chữ cái, tên, tên chuẩn, tên riêng (từ khóa), hằng và biến 2. Kỹ năng: - Phân biệt được Tên, Hằng và Biến. Biết đặt tên đúng 3. Thái độ: - Nghiêm túc trong học tập, say mê với môn học. II – CHUẨN BỊ CỦA GIÁO VIÊN VÀ HỌC SINH: 1. Giáo viên: Bài soạn, SGK, SGV. 2. Học sinh: vở ghi bài, SGK. III – TIẾN TRÌNH DẠY HỌC: 1. Ổn định tổ chức lớp: 2. Kiểm tra bài cũ: Giáo án Tin học 11 2 Em hãy cho biết chương trình dịch là gì? Tại sao cần phải có chương trình dịch? 3. Nội dung bài mới: Hoạt động của GV và HS Nội dung Hoạt động 1 1. Các thành phần cơ bản: GV: Mỗi NNLT có 3 thành phần cơ bản là: bảng chữ cái, cú pháp và ngữ nghĩa. GV: Để hiểu rõ chúng ta đi vào từng thành phần cụ thể. a) Bảng chữ cái: là tập các ký tự để viết GV: Trước tiên ta tìm hiểu bảng chữ chương trình. cái. Bảng chữ cái bao gồm: các chữ cái (tiếng Anh), các chữ số và các ký tự đặc biệt. GV: Em hãy đọc SGK (Tr.9) và cho biết các thành phần cụ thể của bảng chữ cái? * Các chữ cái thường và các chữ cái in hoa HS: đọc SGK; trả lời câu hỏi. của bảng chữ cái tiếng Anh. GV: Nhận xét, kết luận. a b c d e f g h… A B C D E F G H… * 10 chữ số thập phân ả Rập: 0123456789 * Các ký tự đặc biệt: + - * / = < > [ ]. , ; # ^ $ @ () { }: ‘ _ và dấu cách. b) Cú pháp: là bộ quy tắc để viết chương trình. Dựa vào chúng, người lập trình và CT dịch biết được tổ hợp nào của các ký tự trong bảng chữ cái là hợp lệ và tổ hợp nào là không hợp lệ. Nhờ đó có thể mô tả chính xác thuật toán để máy thực hiện. 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 Tóm lại: Cú pháp cho biết cách viết ngữ cảnh của nó. một CT hợp lệ, còn ngữ nghĩa xác định ý nghĩa của các tổ hợp ký tự trong CT. Các lỗi cú pháp được CT dịch phát hiện và thông báo cho người lập trình biết. Chỉ có các CT không còn lỗi cú pháp mới có thể được dịch sang NN máy. Hoạt động 2 2. Một số khái niệm: GV: Khi chúng ta được sinh ra, để a) Tên: phân biệt được mỗi người đều được Ví dụ: Trong ngôn ngữ Pascal: đặt tên. Tương tự như vậy, mỗi đối - Các tên đúng: tượng trong CT đều phải được đặt A tên theo quy tắc của NNLT và CT GiU21 dịch cụ thể. _3097 …. - Các tên sai: Giáo án Tin học 11 3 S KD 5yp c$GH … GV: Từ ví dụ trên kết hợp với đọc SGK – Tr. 10 em hãy cho biết cách đặt tên một dãy trong Pascal? HS: đọc SGK, trả lời câu hỏi. GV: Nhận xét, kết luận. * Cách đặt tên cho một dãy trong Turbo Pascal: - Không quá 127 ký tự. - Gồm: chữ số, chữ cái hoặc dấu gạch dưới. - Bắt đầu bằng chữ cái hặc dấu gạch dưới. GV: Nhiều ngôn ngữ LT, trong đó • Tên dành riêng: có Pascal, phân làm 3 loại tên. VD: trong Pascal: program; uses, const, type, var, begin… KN: tên dành riêng là tên được NNLT dùng với ý nghĩa riêng xác định, người lập trình không được sử dụng với ý nghĩa khác. • Tên chuẩn: VD: trong Pascal: abs, aqr, byte, real, longint... KN: tên chuẩn là tên được NNLT dùng với ý nghĩa nhất định nào đó, người lập trình có thể khai báo và sử dụng chúng với ý nghĩa và mục đích khác. • Tên do người LT đặt: VD: A, B, Delta, vi_du, x,… KN: Tên do người LT đặt được dùng với ý nghĩa riêng, xác định bằng cách khai báo trước khi sử dụng. Các tên này không được trùng với tên dành riêng. Hoạt động 3 b) Hằng và biến: GV: Em hãy cho biết em hiểu thế • Hằng: nào là hằng? Theo em hằng ở đây có giống với hằng trong toán không? HS: Trả lời câu hỏi. GV: Kết luận. KN: Hằng là đại lượng có giá trị không đổi trong quá trình thực hiện CT. GV: Trong các NNLT hằng thường - Hằng số học: là các số nguyên hay thực. có 3 loại. VD: 2 0 -7 1.5 +34.9 - Hằng logic: là các giá trị đúng hoặc sai (true hoặc false). - Hằng xâu: là chuỗi ký tự trong bộ mã ASCII. Khi viết, chuỗi ký tự này được đặt trong dấu nháy. VD: Trong Turbo Pascal: ‘KHOI 11’… • Biến: Biến là đại lượng được đặt tên, dùng để lưu trữ giá trị và giá trị có thể được thay đổi trong quá trình thực hiện CT. c) Chú thích: SGK – Tr.13 4. CỦNG CỐ: Giáo án Tin học 11 4 Nhắc lại: - Bảng chữ cái. - Cú pháp. - Tên, cách đặt tên. - Hằng và biến. 5. DẶN DÒ: - Học bài cũ. - Đọc lại bài trong SGK. - Trả lời các câu hỏi sau bài học (SGK – Tr.13). -----------------------------------------------Ngày giảng: Tiết theo PPCT: 03 BÀI TẬP I – MỤC TIÊU: 1. Kiến thức: - Ôn tập lại các kiến thức đã học trong tiết 1 và 2; - Nắm chắc hơn các khái niệm: CT dịch; trình biên dịch; trình thông dịch; tên dành riêng… 2. Kỹ năng: - Biết cách đặt tên trong TP; - Nhận biết được tên đúng, sai trong Pascal. 3. Thái độ: - Nghiêm túc trong học tập, say mê môn học; rèn luyện tính cẩn thận sáng tạo trong lập trình. II – CHUẨN BỊ CỦA GIÁO VIÊN VÀ HỌC SINH: 1. Giáo viên: Bài soạn, SGK, SGV. 2. Học sinh: vở ghi bài, SGK, học bài cũ ở nhà. III – TIẾN TRÌNH DẠY HỌC: 1. Ổn định tổ chức lớp: 2. Kiểm tra bài cũ: Em hãy cho biết hằng là gì? Thường có các loại hằng nào? 3. Nội dung bài mới: Hoạt động của GV và HS Nội dung Hoạt động 1: (Cho HS làm các câu Câu 1: hỏi trong SGK – Tr.13) - Ngôn ngữ bậc cao gần với ngôn ngữ tự GV: (Câu 1) – Tại sao người ta phải nhiên hơn, thuận tiện cho đông đảo người xây dựng các NNLT bậc cao? lập trình; HS1: Trả lời câu hỏi. - CT viết bằng ngôn ngữ bậc cao nói chung HS2: Nhận xét, bổ sung (nếu có). không phụ thuộc vào phần cứng máy tính GV: Nhận xét, kết luận. và một CT có thể thực hiện trên nhiều loại máy tính khác nhau; - CT viết bằng NN bậc cao dễ hiểu, dễ hiệu chỉnh và dễ nâng cấp; - NN bậc cao cho phép làm việc với nhiều kiểu dữ liệu và cách tổ chức dữ liệu đa GV: (Câu 2) – CT dịch là gì? Tại sao dạng, thuận lợi cho mô tả thuật toán. phải có CT dịch? Em hãy cho biết Câu 2: Input và Output của CT dịch? - CT dịch là CT đặc biệt, có chức năng Giáo án Tin học 11 5 HS: Tìm hiểu, trả lời câu hỏi. chuyển đổi CT được viết trên ngôn ngữ LT GV: Kết luận. bậc cao thành CT thực hiện được trên máy GV: (Câu 3) – Biên dịch và thông tính cụ thể. dịch khác nhau như thế nào? - Input: CT nguồn; Output: CT đích. HS1: Trả lời câu hỏi. Câu 3: HS2: Nhận xét, bổ sung (nếu có). - Trình biên dịch duyệt, kiểm tra, phát hiện GV: Nhận xét, kết luận. lỗi, xác định CT nguồn có dịch được không, dịch toàn bộ CT nguồn thành một CT đích có thể thực hiện được trên máy tính cụ thể và có thể lưu lại để sử dụng về sau khi cần thiết. - Trình thông dịch lần lượt dịch từng câu GV: (Câu 4) – Hãy cho biết các điểm lệnh ra ngôn ngữ máy rồi thực hiện ngay khác nhau giữa tên dành riêng và tên câu lệnh vừa dịch được hoặc báo lỗi nếu chuẩn? không dịch được. HS1: Trả lời câu hỏi. Câu 4: HS2: Nhận xét, bổ sung (nếu có). Tên dành riêng không được dùng khác với ý GV: Nhận xét, kết luận. nghĩa đã xác định, tên chuẩn có thể dùng với ý GV: (Câu 5) – Hãy viết ra 3 tên đúng nghĩa khác. theo quy tắc của Pascal? HS1: Lên bảng làm bài. HS2: Nhận xét. Câu 5: GV: Kết luận. ABC_EHJ GV: (Câu 6) – Hãy cho biết những _edrgrgrm biểu diễn nào sau đây không phải là TIN_HOC10 biểu diễn hằng trong Pascal? HS1, HS2: Lên bảng làm. Câu 6: HS3: nhận xét. c) 6,25 – dấu phảy phải thay bằng dấu chấm. GV: Kết luận. e) A20 – tên chưa rõ giá trị. h) ‘C – sai quy định về hằng xâu: thiếu nháy đơn ở cuối. Hoạt động 2: Hãy chọn đáp câu trả lời mà em cho là đúng nhất 1. Chương trình viết bằng NN bậc cao không có đặc điểm nào trong các đặc điểm sau? A. Không phụ thuộc vào loại máy, CT có thể thực hiện trên nhiều loại máy. B. Ngắn gọn, dễ hiểu, dễ hiệu chỉnh và nâng cấp. C. Kiểu dữ liệu vàd cách tổ chức dữ liệu đa dạng. D. Máy tính có thể hiểu và thực hiện trực tiếp CT này. 2. CT dịch không có khả năng nào trong các khả năng sau? A. Phát hiện được lỗi ngữ nghĩa. B. Phát hiện được lỗi cú pháp. C. Thông báo lỗi cú pháp. D. Tạo được CT đích. 3. Hãy chỉ ra tên sai (trong Pascal) trong các tên sau: A. TinHoc B. 3vi_du C. ABGHDJ D. NGAY_MAI Giáo án Tin học 11 6 4. CỦNG CỐ: Nhắc lại: - Bảng chữ cái. - Cú pháp. - Tên, cách đặt tên. - Hằng và biến. 5. DẶN DÒ: - Đọc lại các câu hỏi và trả lời trong giờ bài tập. - Đọc bài đọc thêm 2 (SGK – Tr.14). - Đọc trước bài: Cấu trúc chương trình – SGK Tr.17. ----------------------------------------------Ngày giảng: Tiết theo PPCT: 04 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: 1. Kiến thức: - Hiểu CT là sự mô tả của thuật toán bằng một NNLT; - Biết cấu trúc của một chương trình: cấu trúc chung và các thành phần; 2. Kỹ năng: - Nhận biết được các thành phần của một chương trình đơn giản. 3. Thái độ: - Nghiêm túc và say mê môn học, sáng tạo trong lập trình. II – CHUẨN BỊ CỦA GIÁO VIÊN VÀ HỌC SINH: 1. Giáo viên: Bài soạn, SGK, SGV. 2. Học sinh: vở ghi bài, SGK. III – TIẾN TRÌNH DẠY HỌC: 1. Ổn định tổ chức lớp: 2. Kiểm tra bài cũ: (không) 3. Nội dung bài mới: Hoạt động của GV và HS Nội dung GV: Cả lớp mở SGK (Tr.18) đọc và 1. Cấu trúc chung: cho biết cấu trúc chung của CT gồm mấy phần? Đó là những phần nào? Cấu trúc của một CT có thể được mô tả như HS: Nghiên cứu SGK. sau: Trả lời câu hỏi. [] GV: Kết luận. Chú ý: Các diễn giải bằng ngôn ngữ tự nhiên được đặt giữa cập dấu < và >, các thành phần của CT có thể có hoặc không có được đặt trong cặp dấu [ và ] 2. Các thành phần của chương trình. a) Phần khai báo: GV: Các em hãy quan sát ví dụ sau • Khai báo tên CT: có thể có hoặc và cho biết cú pháp của câu lệnh không. khai báo tên chương trình. Ví dụ: trong Pascal HS: Trả lời. Program Vi_du1; Program giai_phuong_trinh_bac2; Với Pascal phần khai báo tên CT như sau: Giáo án Tin học 11 7 GV: Kết luận. GV: Thường ngày chúng ta muốn làm một công việc nào đó mà không có dụng cụ để làm thì ta phải mượn trước. Trong lập trình cũng tương tự như vậy, ta muốn thực hiện một công việc nào đó thì đó ta phải khai báo thành phần đó trước. GV: Trước tiên là khai báo thư viện. GV: Đưa ra ví dụ. GV: Tại sao lại phải khai báo biến? Nếu không khai báo biến thì trong CT ta có thể sử dụng được biến đó không? HS: Đọc SGK, trả lời. GV: Kết luận. GV: Các em hãy quan sát đoạn thân CT trong Pascal sau và cho biết thân CT được quy định như thế nào. HS: Quan sát. Trả lời. GV: Kết luận. GV: Các em hãy quan sát ví dụ HS: Quan sát. 4. CỦNG CỐ: Nhắc lại: Giáo án Tin học 11 Program ; - • Khai báo thư viện: muốn sử dụng thư viện nào thì ta cần phải khai báo thư viện đó trước. Ví dụ: + Trong Pascal: uses crt; + Trong C++: #include #include • Khai báo hằng: - Ví dụ: + Trong Pascal: const Max=300; pi=3.14; N=20; + Trong C++: const int Max=400; const float pi=3.14; …… Khai báo hằng thường được sử dụng cho những giá trị xuất hiện nhiều lần tronbg CT. • Khai báo biến: - Ví dụ: khi khảo sát PT đường thẳng ax+by+c=0, các hệ số a, b, c có thể được khai báo như những biến đơn. - Tất cả các biến dùng trong CTY đều phải đặt tên và phải khai báo cho CT dịch biết để lưu trữ và xử lý. Biến chỉ nhận một giá trị tại mỗi thời điểm thực hiện CT được gọi là biến đơn. b) Phần thân chương trình. - Ví dụ 1: Begin Write(‘Nhap A, B); Readln(A,B); C:=A+B; Write(C); End. Trong Pascal: Begin []; End. 3. Ví dụ chương trình đơn giản. SGK – Tr.20. 8 - Xác định cấu trúc chương trình. - Khái báo hằng. - Khai báo biến. 5. DẶN DÒ: - Học bài cũ. - Đọc lại bài trong SGK, làm các bài tập trong SBT - Đọc trước bài 4 – Một số kiểu dữ liệu chuẩn. --------------------------------------------Ngày giảng: Tiết theo PPCT: 05 Bài 4 – MỘT SỐ KIỂU DỮ LIỆU CHUẨN Bài 5 – KHAI BÁO BIẾN I – MỤC TIÊU: 1. Kiến thức: - Biết một số kiểu dữ liệu chuẩn: nguyên, thực, ký tự, logic; - Hiểu cách khai báo biến. 2. Kỹ năng: - Xác định được kiểu cần khai báo của dữ liệu đơn giản; - Biết cách khai báo biến đúng. II – CHUẨN BỊ CỦA GIÁO VIÊN VÀ HỌC SINH: - Giáo viên: Bài soạn, SGK, SGV. - Học sinh: vở ghi bài, SGK. III – TIẾN TRÌNH DẠY HỌC: 1. Ổn định tổ chức lớp: 2. Kiểm tra bài cũ: Em hãy choi biết sự khác nhau giữa hằng và biến? Tại sao phải khai báo biến? 3. Nội dung bài mới: Hoạt động của GV và HS Nội dung kiến thức GV: ở CT lớp 10 chúng ta đã có Bài 4. Một số kiểu dữ liệu chuẩn khái niệm dữ liệu, vậy em hãy nhắc lại khái niệm dữ liệu là gì? HS: Trả lời. GV: Kết luận. Dữ liệu là thông tin đã mã hoá trong máy tính. 1. Kiểu nguyên. GV: Trong toán học chúng ta đã biết thế nào là số nguyên. Vậy dựa vào kiến thức đó em có thể cho biết thế nào là kiểu nguyên? HS: Trả lời. Các kiểu nguyên được lưu trữ và kết quả GV: Nhận xét, kết luận. tính toán là số đúng, nhưng có hạn chế về miền giá trị. Tập số nguyên là vô hạn và có thứ tự, đếm được nhưng trong máy tính thì kiểu nguyên là hữu hạn, có thứ tự. GV: Chúng ta mở SGK – Tr.21 để Kiểu Bộ nhớ Phạm vi giá trị biết miền giá trị trị của kiểu nguyên. lưu trữ một giá trị byte 1 byte Từ 1 đến 255 Giáo án Tin học 11 9 GV: Em hiểu thế nào là số thực? HS: Trả lời. GV: Nhận xét. GV: Chúng ta hãy xem SGK – Tr.21 để hiểu thế nào là kiểu thực và miền giá trị của kiểu thực. GV: Em hãy đọc SGK – Tr.22 và cho biết em hiểu thế nào là kiểu ký tự? Khi nào thì dùng kiểu ký tự? HS: - Đọc SGK. - Trả lời câu hỏi. GV: Kết luận. GV: Lấy một ví dụ về kiểu logic. Integer 2 byte Từ –215 đến 215 – 1 Word 2 byte Từ 0 đến 216 – 1 longint 4 byte Từ – 231 đến 231 – 1 2. Kiểu thực. Các kiểu thực được lưu trữ và kết quả tính toán chỉ là gần đúng với sai số không đáng kể (so với yêu cầu tính toán của các bài toán thông thường), nhưng miền giá trị được mở rộng hơn so với kiểu nguyên. Số thực trong máy tính là hữu hạn. Kiểu Bộ nhớ Phạm vi giá trị lưu trữ một giá trị Real 6 byte 0 hoặc có giá trị tuyệt đối nằm trong phạm vi từ 10-38 đến 1038 extended 10 byte 0 hoặc có giá trị tuyệt đối nằm trong phạm vi từ 10-4932 đến 104932 3. Kiểu ký tự. Kiểu ký tự có tập giá trị là các ký tự trong bảng mã ASCII, được dùng khi thông tin là các ký tự, xâu (string). Kiểu ký tự cũng là kiểu có thứ tự, đếm được. Việc so sánh các ký tự được thực hiện bằng cách so sánh các mã ASCII của chúng. Kiểu Bộ nhớ lưu Phạm vi giá trị trữ một giá trị Char 1 byte 256 ký tự trong bộ mã ASCII 4. Kiểu logic. Kiểu logic trong Pascal chỉ có hai giá trị đúng (true) hoặc sai (false), được dùng khi kiểm tra điều kiện hay tìm giá trị của một biểu thức logic. Kiểu Bộ nhớ Phạm vi giá trị lưu trữ một giá trị Boolean 1 byte true hoặc false Bài 5. Khai báo biến GV: chúng ta hãy mở sgk – tr.22 và cùng nhau xét các ví dụ 1 và 2. gv: viết ví dụ lên bảng. GV: kết luận, đó là một số ví dụ về khai báo biến trong pascal. vậy em Giáo án Tin học 11 10 có thể đưa ra cú pháp để khai báo biến? HS: trả lời câu hỏi. Trong Pascal, khai báo biến có dạng: GV: kết luận. Var :; Trong đó: - danh sách biến là một hoặc nhiều tên biến, các tên biến được viết cách nhau bởi dấu phảy. - kiểu dữ liệu thường là một trong các kiểu dữ liệu chuẩn hoặc kiểu dữ liệu do người lập trình định nghĩa. - Sau từ khoá var có thể khai báo nhiều danh sách biến khác nhau, tức là cấu trúc: :; 4 – CỦNG CỐ: Nhắc lại các kiểu dữ liệu - Kiểu nguyên. - Kiểu thực. - Kiểu ký tự. - Kiểu logic - Cách khai báo biến 5 – DẶN DÒ: - Học bài cũ. - Trả lời câu hỏi trong SGK – Tr.35 --------------------------------------------Ngày giảng: Tiết theo PPCT: 06 Bài 6 – PHÉP TOÁN, BIỂU THỨC, CÂU LỆNH GÁN I – MỤC TIÊU: 1. Kiến thức: - Biết các khái niệm: phép toán, biểu thức số học, hàm số học chuẩn, biểu thức quan hệ; - Hiểu lệnh gán; - Biết các lênh vào ra đơn giản để nhập dữ liệu từ bàn phím hoặc đưa dữ liệu ra màn hình. 2. Kỹ năng: - Viết được lênh gán; - Viết được các biểu thức số học và logic với các phép toán thông dụng; - Viết được một số lênh vào ra đơn giản. II – CHUẨN BỊ CỦA GIÁO VIÊN VÀ HỌC SINH: - Giáo viên: Bài soạn, SGK, SGV. - Học sinh: vở ghi bài, SGK, chuẩn bị bài cũ. III – TIẾN TRÌNH DẠY HỌC: 1. Ổn định tổ chức lớp: 2. Kiểm tra bài cũ: Em hãy trình bày cách khai báo biến? Cho ví dụ Giáo án Tin học 11 11 3. Nội dung bài mới: Hoạt động của GV và HS GV: Tượng tự như trong toán học, trong các ngôn ngữ lập trình đều có các phép toán số học như: cộng, trừ, nhân, chia, các phép toán chia lấy phần nguyên và chia lấy phần dư, các phép toán quan hệ… GV: Các em hãy quan sát bảng (SGK – Tr.24) để thấy được các phép toán trong toán học đó ứng với trong Pascal thì dùng như thế nào. GV: Giải thích một số phép toán mới như: div, mod, not, and, or. GV: Hãy đọc SGK – Tr.25 và quan sát các ví dụ sau rồi hãy cho biết em hiểu thế nào là biểu thức số học? HS: Đọc SGK, trả lời câu hỏi. GV: Kết luận. Nội dung kiến thức 1. Phép toán. (Đưa ra bảng các phép toán trong toán học và trong Pascal) 2. Biểu thức số học. Ví dụ: (a + b)*(z – 4)/(x + y) 5*a + 6*b - GV: Lấy ví dụ Giáo án Tin học 11 Biểu thức số học là một biến kiểu số hoặc một hằng số hoặc các biến kiểu số và hằng số liên kết với nhau bởi một số hữu hạn phép toán số học. - Viết biểu thức toán số học trong lập trình tuân theo quy tắc sau: + Chỉ dùng cặp ngoặc tròn để xác định trình tự thực hiện phép toán trong trường hợp cần thiết; + Viết lần lượt từ trái sang phải; + Không được bỏ qua dấu nhân (*) trong tích; - Các phép toán được thực hiện theo trình tự: + Thực hiện các phép toán trong ngoặc trước; Trong dãy các phép toán không chứa ngoặc thì thực hiện từ trái sang phải theo thứ tự các phép toán: *, /, div, mod, +, -. 3. Hàm số học chuẩn. Ví dụ: Để tính nghiệm của PT bậc 2 x:= (- b + sqrt(delta))/(2*a); Để lập trình được dễ dàng, thuận tiện hơn các NNLT đều có thư viện chứa một số chương trình tính giá trị những hàm toán học thường dùng. Các chương trình như vậy gọ là các hàm số học chuẩn. Bảng hàm số học chuẩn – SGK Tr.26. 4. Biểu thức quan hệ. Ví dụ: 12 GV: Từ các ví dụ trên kết hợp với SGK – Tr.27 em hãy cho biết khái niệm biểu thức quan hệ? HS: Trả lời câu hỏi. GV: Kết luận. GV: Các em cần biết lênh gán là một trong những lệnh cơ bản nhất của các ngôn ngữ lập trình. GV: Trình bày ví dụ. 1) 2*y = 6 - x Ta nói biểu thức (2*y) liên kết với biểu thức (6 – x) bằng phép toán quan hệ “=”. 2) y < 10 (Tương tự như ví dụ 1) • Khái niệm: Biểu thức quan hệ là biểu thức được tạo thành bởi 2 biểu thức cùng kiểu liên kết với nhau bởi phép toán quan hệ. 5. Biểu thức logic. Ví dụ: 1) not(x > 1) là một biểu thức logic. 2) (x>=2)and(x đặt tên ->Enter. b. Biên dịch CT: - Nhấn tổ hợp phím Alt + F9. - Nếu CT có lỗi cú pháp, phần mềm sẽ hiểu thị một thông báo. c. Chạy CT: - Nhấn tổ hợp phím Alt + F9. d. Đóng cửa sổ CT: - Nhấn tổ hợp phím Alt + F3. e. Thoát khỏi phần mềm: - Nhấn tổ hợp phím Alt + X. 4. CỦNG CỐ: Nhắc lại: - Thủ tục chuẩn nhập dữ liệu vào từ bàn phím; - Thủ tục in dữ liệu ra màn hình; 5. DẶN DÒ: - Học bài cũ; - Trả lời và làm bài tập trong SGK – Tr.35; ----------------------------------------------Ngày giảng: Tiết theo PPCT: 08 BÀI TẬP VÀ THỰC HÀNH 1 I – MỤC TIÊU: 1. Kiến thức: - Biết các lênh vào, ra đơn giản để nhập dữ liệu từ bàn phím hoặc đưa dữ liệu ra màn hình; - Biết các bước: soạn thảo, dịch, thực hiện và hiệu chỉnh CT; - Biết một số công cụ của môi trường Turbo Pascal. 2. Kỹ năng: - Viết được một số lệnh vào ra đơn giản; - Bước đầu sử dụng được CT dịch để phát hiện lỗi. 3. Thái độ: - Nghiêm túc trong quá trình thực hành. II – CHUẨN BỊ CỦA GIÁO VIÊN VÀ HỌC SINH: 1. Giáo viên: Bài soạn, SGK, SGV. 2. Học sinh: vở ghi bài, SGK, chuẩn bị bài cũ. III – TIẾN TRÌNH DẠY HỌC: 1. Ổn định tổ chức lớp: 2. Kiểm tra bài cũ: không 3. Nội dung thực hành: Hoạt động của GV và HS Nội dung kiến thức GV: Hướng dẫn HS khởi động phần a) Gõ chương trình: mềm Pascal. GV: Hướng dẫn HS gõ chương trình Program Giai_PTB2; 2 giải PT bậc 2: ax + bx + c = 0 Uses crt; HS: Gõ CT. Var a, b, c, delta, x1, x2,: real; GV: chú ý HS: khi chạy CT, tránh Begin Giáo án Tin học 11 16 nhập trị cho a, b, c để Delta < 0. Clrscr; Write(‘Nhap a, b, c =’); Readln(a,b,c); Delta:=b*b – 4*a*c; x1: = (- b – sqrt(delta))/(2*a); x2: = - b/a – x1; write(‘x1 = ‘, x1, ‘x2 = ‘, x2); readln; End. b) Nhấn phím F2 để lưu lại chương trình với tên là PTB2.PAS lên đĩa. c) Nhấn tổ hợp phím Alt + F9 để dịch và sửa lỗi cú pháp (nếu có). d) Nhấn tổ hợp phím Ctrl + F9 để thực hiện chương trình.Nhập các giá trị 1; -3 và 2. Kết quả thu được: x1 = 1; x2 = 2. e) Nhấn tổ hợp phím Ctrl + F9 rồi nhập các giá trị 1; 0 và - 2. Kết quả thu được: x1 = - 1.41; x2 = 1.41. f) Sửa lại CT bằng cách thay đổi công thức tính x2. g) Thực hiện CT đã sửa với bộ dữ liệu 1; -5 và 6. KQ: x1 = 2; x2 = 3. h) Sửa lại CT sao cho không cần dùng biến trung gian Delta. Thực hiện CT đã sửa với bộ dữ liệu trên rồi quan sát KQ. i) Thực hiện CT với bộ dữ liệu 1; 1; 1 và quan sát KQ trên màn hình. 4 – CỦNG CỐ: - Về nhà làm lại bài thực hành (nếu có điều kiện). 5 – BÀI VỀ NHÀ: - Học bài cũ; - Làm các bài tập trong SGK – Tr.35 vào vở bài tập; -----------------------------------------------Ngày giảng: Tiết theo PPCT: 09 BÀI TẬP VÀ THỰC HÀNH 1 (Tiếp) I – MỤC TIÊU: 1. Kiến thức: - Biết các lênh vào, ra đơn giản để nhập dữ liệu từ bàn phím hoặc đưa dữ liệu ra màn hình; - Biết các bước: soạn thảo, dịch, thực hiện và hiệu chỉnh CT; - Biết một số công cụ của môi trường Turbo Pascal. 2. Kỹ năng: - Viết được một số lệnh vào ra đơn giản; - Bước đầu sử dụng được CT dịch để phát hiện lỗi. 3. Thái độ: Giáo án Tin học 11 17 - Nghiêm túc trong quá trình thực hành. II – CHUẨN BỊ CỦA GIÁO VIÊN VÀ HỌC SINH: 1. Giáo viên: Bài soạn, SGK, SGV. 2. Học sinh: vở ghi bài, SGK, chuẩn bị bài cũ. III – TIẾN TRÌNH DẠY HỌC: 1. Ổn định tổ chức lớp: 2. Kiểm tra bài cũ: không 3. Nội dung thực hành: Hoạt động của GV và HS Nội dung kiến thức GV: Hướng dẫn HS khởi động phần j) Gõ chương trình: mềm Pascal. GV: Hướng dẫn HS gõ chương trình Program Giai_PTB2; giải PT bậc 2: ax2 + bx + c = 0 Uses crt; HS: Gõ CT. Var a, b, c, delta, x1, x2,: real; GV: chú ý HS: khi chạy CT, tránh Begin nhập trị cho a, b, c để Delta < 0. Clrscr; Write(‘Nhap a, b, c =’); Readln(a,b,c); Delta:=b*b – 4*a*c; x1: = (- b – sqrt(delta))/(2*a); x2: = - b/a – x1; write(‘x1 = ‘, x1, ‘x2 = ‘, x2); readln; End. k) Nhấn phím F2 để lưu lại chương trình với tên là PTB2.PAS lên đĩa. l) Nhấn tổ hợp phím Alt + F9 để dịch và sửa lỗi cú pháp (nếu có). m) Nhấn tổ hợp phím Ctrl + F9 để thực hiện chương trình.Nhập các giá trị 1; -3 và 2. Kết quả thu được: x1 = 1; x2 = 2. n) Nhấn tổ hợp phím Ctrl + F9 rồi nhập các giá trị 1; 0 và - 2. Kết quả thu được: x1 = - 1.41; x2 = 1.41. o) Sửa lại CT bằng cách thay đổi công thức tính x2. p) Thực hiện CT đã sửa với bộ dữ liệu 1; -5 và 6. KQ: x1 = 2; x2 = 3. q) Sửa lại CT sao cho không cần dùng biến trung gian Delta. Thực hiện CT đã sửa với bộ dữ liệu trên rồi quan sát KQ. r) Thực hiện CT với bộ dữ liệu 1; 1; 1 và quan sát KQ trên màn hình. 4 – CỦNG CỐ: - Về nhà làm lại bài thực hành (nếu có điều kiện). 5 – BÀI VỀ NHÀ: - Học bài cũ; - Làm các bài tập trong SGK – Tr.35 vào vở bài tập; Giáo án Tin học 11 18 Ngày giảng: Tiết theo PPCT: 10 BÀI TẬP I – MỤC TIÊU: 1. Kiến thức: - Biết các lênh vào, ra đơn giản để nhập dữ liệu từ bàn phím hoặc đưa dữ liệu ra màn hình; - Biết các bước: soạn thảo, dịch, thực hiện và hiệu chỉnh CT; - Biết một số công cụ của môi trường Turbo Pascal. 2. Kỹ năng: - Viết được một số lệnh vào ra đơn giản; - Bước đầu sử dụng được CT dịch để phát hiện lỗi. 3. Thái độ: - Nghiêm túc trong quá trình thực hành. II – CHUẨN BỊ CỦA GIÁO VIÊN VÀ HỌC SINH: 1. Giáo viên: Bài soạn, SGK, SGV. 2. Học sinh: vở ghi bài, SGK, chuẩn bị bài cũ. III – TIẾN TRÌNH DẠY HỌC: 1. Ổn định tổ chức lớp: 2. Kiểm tra bài cũ: không 3. Nội dung : Hoạt động của GV và HS Nội dung kiến thức GV: Yêu cầu HS trả lời các câu hỏi Câu 6: từ 1 đến 5 trong SGK Tr.35 (thay A: = (1+z)*((x+y/z)/(a – 1/(1 + x*x*x))) cho kiểm tra miệng đầu giờ). Câu 8: Qua hình vẽ ta có: ((y < 1) hoặc (y = 1)) và ((y > abs(x)) hoặc (y=abs(x))) Hay ta có thể viết: (y =abs(x)) GV: Chúng ta hãy qaun sát kỹ hình vẽ xem phần gạch chéo và phần Câu 9: trắng có tỷ lệ như thế nào? HS: - Quan sát. - Trả lời. GV: Kết luận. Ta thấy diện tích phần gạch bằng với diện tích phần trắng, tức là diện tích phàn gạch bằng ẵ GV: Từ đó chúng ta cùng viết CT diện tích hình tròn tâm O(0, 0) bán kính a. Chương trình: cho bài toán này. GV: Chú ý HS là “Pi” là một hằng số Var a: real; Begin trong Pascal và Pi = 3.1415926536 Write(‘Nhap gia tri a (a>0):’); Readln(a); Write(‘Dien tich phan gach la:’, Giáo án Tin học 11 19 GV: Yêu cầu HS trả lời câu hỏi HS: - Suy nghĩ. - Trả lời. a*a*pi/2:20:4); Readln; End. Câu 10: Uses crt; Const g = 9.8; Var v, h: real; Begin Clrscr; Write(‘Nhap do cao cua vat h =’); Readln(h); v: = sqrt(2*g*h); writeln(‘Van toc cua vat khi cham dat la:’, v:10:2, ‘m/s’); readln; end. 4. CỦNG CỐ: - Sử dụng biến trung gian S để tính diện tích phần gạch trong Bài 9. 5. DẶN DÒ: - Học bài cũ; - Sửa lại chương trình để sao cho không phải dùng biến trung gian v. ============================ Ngày giảng: Tiết theo PPCT: 11 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: 1. Kiến thức: (Học sinh) - Hiểu nhu cầu của cấu trúc rẽ nhánh trong biểu diễn thuật toán; - Hiểu câu lệnh rẽ nhánh (dạng thiếu và dạng đủ); - Hiểu câu lệnh ghép. 2. Kỹ năng: - Sử dụng cấu trúc rẽ nhánh trong mô tả thuật toán của một số bài toán đơn giản; - Viết được các lệnh rẽ nhánh dạng khuyết, rẽ nhánh dạng đầy đủ và áp dụng để thể hiện được thuật toán của một số bài toán đơn giản. 3. Thái độ: - Nghiêm túc, tích cực phát biểu xây dựng bài II – CHUẨN BỊ CỦA GIÁO VIÊN VÀ HỌC SINH: 1. Giáo viên: Bài soạn, SGK, SGV. 2. Học sinh: vở ghi bài, SGK, chuẩn bị bài cũ. III – TIẾN TRÌNH DẠY HỌC: 1. Ổn định tổ chức lớp: 2. Kiểm tra bài cũ: Em hãy viết các biểu thức sau dưới dạng các biểu thức trong Turbo Pascal: (cx + d)(x2 – 9)/2y và hãy cho biết biểu thức trên được thực hiện như thế nào? 3. Nội dung bài mới: Giáo án Tin học 11 20 Hoạt động của GV và HS GV: Như chúng ta đã biết, thường ngày có rất nhiều việc chỉ được thực hiện khi một điều kiện cụ thể nào đó xảy ra. Nội dung kiến thức 1. Rẽ nhánh. * Ví dụ: Một lần Châu hẹn với Ngọc: “Chiều mai nếu trời không mưa thì Châu sẽ đến nhà Ngọc”. (1) Một lần khác Ngọc nói với Châu: “Chiều mai nếu trời không mưa thì Ngọc sẽ đến nhà Châu, nếu mưa thì sẽ gọi cho Châu để trao đổi”. (2) - Ta nói cách diễn đạt như của Châu (1) thuộc dạng thiếu: Nếu… thì… GV: Câu nói của Châu cho ta biết một việc làm cụ thể (Châu đến nhà Ngọc) sẽ được thực hiện nếu điều kiện (trời không mưa) thoả mãn. Còn nếu không thì không đề cập đến việc gì khác. - Ta nói cách diễn đạt như của Ngọc (2) GV: Câu nói của Ngọc khẳng định thuộc dạng đủ: một trong hai việc cụ thể (Ngọc đến Nếu… thì… nếu không thì… nhà Châu) chắc chắn xảy ra, tuy nhiên việc nào trong 2 việc sẽ được thực hiện thì phụ thuộc vào điều Kết luận: Cấu trúc dùng để mô tả các mênh đề kiện cụ thể. có dạng như trên được gọi là cấu trúc rẽ nhánh GV: Kết luận. thiếu và đủ. GV: Vậy qua những gì chúng ta vừa tìm hiểu em hãy cho biết ý nghĩa của cấu trúc rẽ nhánh? ý nghĩa của cấu trúc rẽ nhánh: cấu trúc rẽ HS: Trả lời câu hỏi. nhánh là một điều khiển thực hiện hay không GV: Nhận xét, kết luận. thực hiện công việc phù hợp với điều kiện đang xảy ra. 2. Câu lệnh if – then (trong Pascal). GV: Tương ứng với hai dạng thiếu a) Dạng thiếu: và đủ đã nói ở trên, Pascal có hai Ví dụ: Nếu a>0 thì thông báo a là số dương. Ta dạng câu lệnh if – then (thiếu và đủ). có thể viết bằng câu lệnh if – then dạng thiếu như sau: if a>0 then write(‘a la so duong’); GV: Qua ví dụ trên kết hợp với đọc SGK – Tr.39 em hãy cho biết cấu trúc của if – then dạng thiếu được viết như thế nào? HS: Trả lời Câu lệnh if – then dạng thiếu: GV: Nhận xét, kết luận. if then ; b) Dạng đủ: Ví dụ: Nếu a>0 thì thông báo a là số dương, Giáo án Tin học 11 21 nếu không thì thông báo a là số không dương. Ta có thể viết bằng câu lệnh if – then dạng đủ như sau: if (a>0) then write(‘a la so duong’) else write(‘a la so khong duong’); GV: Tương tự như với if – then dạng thiếu em hãy cho biết cấu trúc của if – then dạng đủ? Câu lệnh if – then dạng đủ: HS: Trả lời. if then else ; GV: Nhận xét, kết luận GV: Các em về nhà hãy tham khảo thêm cách viết câu lệnh if – then bằng sơ đồ khối (SGK – Tr.39). GV: Theo cú pháp, sau một số từ 3. Câu lệnh ghép. khoá (như then hoặc else) phải là Ví dụ: Khi giải PTB 2 xảy ra trường hợp ta một câu lệnh. Nhưng trong nhiều phải dùng câu lệnh ghép như sau: trường hợp các thao tác sau những từ khoá đó khá phức tạp, đòi hỏi if(delta 0 thì y = a + b nếu không thì y = a – b. 5. DẶN DÒ: - Học bài cũ; - Trả lời các câu hỏi và bài tập 1, 2, 4 ở cuối chương. ----------------------------------------------------- Giáo án Tin học 11 22 Ngày giảng: Tiết theo PPCT: 12 Bài 10 – CẤU TRÚC LẶP I – MỤC TIÊU: 1. Kiến thức: - Hiểu nhu cầu của cấu trúc lặp trong biểu diễn thuật toán; - Hiểu cấu trúc lặp kiểm tra điều kiện trước, cấu trúc lặp với số lần định trước. - Biết cách vận dụng đúng đắn từng loại cấu trúc lặp vào tình huống cụ thể. 2. Kỹ năng: - Mô tả được thuật toán của một số bài toán đơn giản có sử dụng lệnh lặp. - Viết đúng các lệnh lặp kiểm tra điều kiện trước, lệnh lặp với số lần định trước. - Viết được thuật toán của một số bài toán đơn giản. II – CHUẨN BỊ CỦA GIÁO VIÊN VÀ HỌC SINH: 1. Giáo viên: Bài soạn, SGK, SGV. 2. Học sinh: Vở ghi bài, SGK, chuẩn bị bài cũ. III – TIẾN TRÌNH DẠY HỌC: 1. Ổn định tổ chức lớp: 2. Kiểm tra bài cũ: Em hãy trình bày cấu trúc của câu lệnh if – then dạng thiếu và dạng đủ, lấy ví dụ? 3. Nội dung bài mới: Hoạt động của GV và HS Nội dung kiến thức 1. Lặp: GV: Để hiểu thế nào là lặp ta cùng Với a là số nguyên và a > 2, ta xét các bài xét hai bài toán sau. toán sau đây. Bài toán 1: Tính và đưa ra màn hình tỔng S = 1/a + 1/(a+1) + 1/(a+2)+…+1/(a+100). Bài toán 2: Tính và đưa ra màn hình tỔng S = 1/a + 1/(a+1) + 1/(a+2)+…+1/(a+N)+... Cho đến khi 1/(a+N) < 0.0001. GV: Em hãy cho biết hai bài toán Hai bài toán có các điểm tương tự: trên có gì giống và khác nhau? - Xuất phát, S được gán giá trị 1/a; HS: Trả lời. - Tiếp theo cộng vào tỔng S một gía trị 1/ GV: Kết luận. (a+N) với N = 1, 2, 3,… và việc cộng này được lặp lại một số lần. Khác nhau: - Đối với bài toán 1, số lần lặp là 100 và việc cộng vào tỔng sẽ kết thúc khi thực hiện việc cộng 100 lần. - Đối với bài toán 2, số lần lặp chưa biết trước nhưng vịêc cộng vào tỔng S sẽ kết GV: Từ đó em hãy cho biết có mấy thúc khi điều kiện 1/(a+N) < 0.0001 được loại lặp? Đó là những loại nào? đáp ứng. HS: Trả lời. - Từ đó ta rút ra được: Có hai loại lặp đó là: GV: Nhận xét, kết luận. lặp với số lần biết trước và lặp với số lần chưa biết trước. 2. Lặp với số lần biết trước và câu lệnh for – do. GV: Ta có 2 thuật toán để giải bài Thuật toán Tong_1a toán 1 như sau. Bước 1: S:=1/a; N = 0; Bước 2: N:=N+1; Giáo án Tin học 11 23 GV: Hai thuật toán trên đều dùng để giải bài toán 1, nhưng các em hãy quan sát và cho biết hai thuật toán này có gì khác nhau? HS: Trả lời. GV: Kết luận. GV: Đưa ra dạng lặp tiến và dạng lặp lùi. Bước 3: Nếu N > 100 thì chuyển đến bước 5; Bước 4: S:=S+1/(a+N) rồi quay lại bước 2; Bước 5: Đưa tỔng S ra màn hình, rồi kết thúc. Thuật toán Tong_1b Bước 1: S:=1/a; N = 101; Bước 2: N:=N – 1; Bước 3: Nếu N < 1 thì chuyển đến bước 5; Bước 4: S:=S+1/(a+N) rồi quay lại bước 2; Bước 5: Đưa tỔng S ra màn hình, rồi kết thúc. Nhận xét: Trong thuật toán Tong_1a, giá trị của N bắt đầu tham gia vòng lặp là 1 và sau mỗi lần lặp N tăng lên 1 cho đến khi N>100 thì kết thúc lặp. Trong thuật toán Tong_1b, giá trị của N bắt đầu tham gia vòng lặp là 100 và sau mỗi lần lặp giảm đi 1 cho đến khi N tb then dem:=dem+1; GV: Biến đếm dùng để làm gì? If t3> tb then dem:=dem+1; HS: Trả lời câu hỏi If t4> tb then dem:=dem+1; If t5> tb then dem:=dem+1; GV: Cách tính nhiệt độ trung bình tuần If t6> tb then dem:=dem+1; như thế nào? If t7> tb then dem:=dem+1; HS: Ta làm như sau: Lấy tất cả các ngày Writeln(‘Nhiet do trung binh tuan: ’,tb:8:3); trong tuần cộng lại với nhau và chia trung Writeln(‘ So ngay co nhiet do lon hon nhiet bình do tb:’dem); Readln; End. GV: Nêu vấn đề sau: *) Với bài toán trên với N khá lớn ta sử dụng Vậy để giải quyết với bà toán trên với N kiểu mảng một chiều để mô tả như sau: khá lớn ta sử dụng kiểu mảng một chiều Progarm Nhietdongay; để mô tả. Const Max=360; Chương trình tỔng quát với N ngày trong Type Kmang1=array[1..Max] of Real; Pascal như sau: Var nhietdo:Kmang1; Giáo án Tin học 11 36 dem, i, n:Byte; tong, trungbinh:Real; GV:Cách nhập dữ liệu trong Pascal? HS: Làm theo hướng dẫn của GV Giáo viên: Viết chương trình nhập nhiệt độ các ngày trong năm và tính nhiệt độ trung bình. GV:Để khai báo trực tiếp ta thực hiện như thế nào? HS: Ta có 2 cách khai báo mảng một chiều như sau: GV:Kiểu chỉ số thường là kiểu dữ liệu nào? HS: Kiểu chỉ số thường là một đoạn số nguyên liên tục có dạng n1..n2 là các hằng biểu thức nguyên xác định chỉ số đầu và chỉ số cuối (n1trungbinh then dem:=dem+1; Wrteln(‘Nhiet do trung binh ’,n,’ ngay: ‘,trungbinh:8:3); Writeln(‘So ngay co nhiet do lon hon nhiet do trung binh la: ’ ,dem); Readln; End. a) Khai báo Cách khai báo mảng một chiều có dạng: - Cách 1: Khai báo trực tiệp biến mảng một chiều Var :array[kiểu chỉ số] of ; - Cách 2: Khai báo gián tiếp biến mảng qua mảng một chiều; Type =array[kiểu chỉ số] of ; Var :; Trong đó: - Kiểu chỉ số thường là một đoạn số nguyên liên tục có dạng n1..n2 là các hằng biểu thức nguyên xác định chỉ số đầu và chỉ số cuối (n1 N thì đưa ra giá trị Max N= ‘); readln(N); rồi kết thúc For i:=1 to N do Bước 4: Begin Bước 4.1: Nếu Ai > Max thì Max←Ai; Write(‘Phan tu thu ’,i,’ = ‘); Bước 4.2: i←i+1 rồi quay lại bước 3; Readln(A[i]); End; Max:=A[1]; csmax:=1; For i:=1 to N do If A[i]>Max then Begin Max:=A[i]; Csmax:=i; GV:Cách duyệt các phần tử trong mảng Giáo án Tin học 11 38 như thế nào? HS: Trả lời câu hỏi GV:Nêu yêu cầu của bài toán - Input: Số nguyên dương N và dãy số nguyên dương y A1, A2,…, AN - Output: Dãy số được sắp xếp không giảm GV: Hướng dẫn từng hs cách nhập dữ liệu cho từng phần tử? HS: Làm theo hướng dẫn của GV GV:Tại sao phải dùng biến t làm biến trung gian? HS: Trả lời câu hỏi End; Writeln(‘Gia tri lon nhat cua day la: ’ ,Max); Writeln(‘Nam tai vi tri ’,csmax); Readln; End. Ví dụ 2: Sắp xếp dãy số nguyên theo chiều tăng dần Chương trình sắp xếp dãy số: Program Sapxep; Const Nmax=250; Type ArrInt=Array[ 1..Nmax] of Integer; Var N, i, j,t:Integer; A: ArrInt; Begin Write(‘Nhap so luong phan tu cua day so: N= ‘); Readln(N); For i:=1 to N do Begin Write(‘Phan tu thu ‘,i,’ = ‘); Readln(A[i]); End; For j:=N dowto 2 do For i:=1 to j-1 do If A[i]>A[i+1] Then Begin t:=A[i]; A[i+1]:=A[i]; A[i+1]:=t; End; Writeln(‘Day da duoc sap xep la: ‘); For i:=1 to N do Write(A[i]:4); Readln; End. 3. Củng cố, luyện tập - Nhắc nhở lại kiến thức cơ bản của bài học về cách sử dụng mảng một chiều trong chương trình thể hiện thuật toán cơ bản tìm kiếm và sắp xếp 4. Hướng dẫn hs tự học ở nhà - Về nhà học bài và làm bài tập ở nhà. Giáo án Tin học 11 39 Ngày giảng: Tiết theo PPCT: 22 BÀI TẬP THỰC HÀNH 3 I. MỤC TIÊU 1. Kiến thức: - Hiểu khái niệm mảng một chiều và mảng hai chiều - Hiểu cách khai báo và truy cập đến phần tử của mảng 2. Kỹ năng - Cái đặt được thuật toán của một số bài toán đơn giản với kiểu dữ liệu mảng một chiều - Thực hiện được khai báo mảng, truy cập, tính toán các phần tử của mảng II.CHUẨN BỊ CỦA GV VÀ HS: 1. Chuẩn bị của GV: Giáo án, phấn, bảng, phòng máy 2. Chuẩn bị của HS: Sách giáo khoa, vở ghi,… III. TIẾN TRÌNH DẠY HỌC 1. Kiểm tra bài cũ: Câu hỏi: Hãy trình bày khái niệm mảng 2 chiều là gì? quy tắc cách thức cho phép xác định mảng 2 chiều, cách khai báo? 2. Nội dung: Hoạt động của GV và HS Nội dung chính HĐ1: Giáo viên nêu yêu cầu của bài tập I.Nội dung: Bài 1: Tạo mảng A gồm n số (nA[j] then Begin Tg:=A[i]; A[i]:=A[j]; A[j]:=tg; Dem:=Dem +1; End; Writeln(‘Mang da duoc sap xep la:’); For i:=1 to n do Write(A[i],’ ‘); Writeln(‘ Số lần hoán đổi trong thuật toán là:’,Dem); Readln; End. Bài 2: Cho mảng A gồm n phần tử, Hãy viết chương trình tạo mảng B[1..n]. Trong đó B[i] là tỔng các phần tử đầu tiên của phần tử của mảng A Program TimMax; Type Kieumang:Array[1..100] of Integer; 44 GV:Nhập dữ liệu? Var A, B:Kieumang; HS: Writeln(‘ Nhap so phan tu cua N, i, j: Integer; mang’); Begin Readln(n); Writeln(‘ Nhap so phan tu cua mang’); For i:=1 to n do Readln(n); Begin For i:=1 to n do Write(‘A[‘,i,’]= ‘); Begin Readln(A[i]); Write(‘A[‘,i,’]= ‘); GV:Thuật toán tính các phần tử của mảng Readln(A[i]); B như thế nào? End; HS: B[i]:=0; For i:=1 to n do For j:=1 to i do Begin B[i]:=B[i]+A[i]; B[i]:=0; For j:=1 to i do B[i]:=B[i]+A[i]; End; Writeln(‘ Cac phan tu cua mang B la:); GV:Cách viết các phần tử của mảng For i:=1 to n do Write(B[i]:5); HS: Trả lời câu hỏi Readln; End. 3. Củng cố, luyện tập: - Nhắc nhở lại kiến thức cơ bản của bài học về khai báo mảng một chiêu, mảng hai chiều và cách tham chiếu đến các phần tử của mảng một chiều và hai chiều Luyện tập: Cho mản A gồm n phần tử hãy khai báo mảng trên ? 4. Hướng dẫn học sinh tự học ở nhà; - Về nhà học bài và làm bài tập ở nhà. - Xem trước bài mới. -------------------------------------------------Ngày giảng: Tiết theo PPCT: 26 BÀI TẬP THỰC HÀNH 4 1. Kiểm tra bài cũ: Câu hỏi: Hãy trình bày cách khai báo mảng một chiều ? 2. Bài mới: Giáo án Tin học 11 45 Hoạt động của GV và HS GV: Cần khai báo những biến nào? HS: Trả lời câu hỏi và thực hiện Nội dung chính Bài 2: Cho mảng A gồm n phần tử, Hãy viết chương trình tạo mảng B[1..n]. Trong đó B[i] là tỔng các phần tử đầu tiên của phần tử của mảng A Program TimMax; Type Kieumang:Array[1..100] of Integer; GV:Nhập dữ liệu? Var A, B:Kieumang; HS: Writeln(‘ Nhap so phan tu cua N, i, j: Integer; mang’); Begin Readln(n); Writeln(‘ Nhap so phan tu cua mang’); For i:=1 to n do Readln(n); Begin For i:=1 to n do Write(‘A[‘,i,’]= ‘); Begin Readln(A[i]); Write(‘A[‘,i,’]= ‘); GV:Thuật toán tính các phần tử của mảng Readln(A[i]); B như thế nào? End; HS: B[i]:=0; For i:=1 to n do For j:=1 to i do Begin B[i]:=B[i]+A[i]; B[i]:=0; For j:=1 to i do B[i]:=B[i]+A[i]; End; Writeln(‘ Cac phan tu cua mang B la:); GV:Cách viết các phần tử của mảng For i:=1 to n do Write(B[i]:5); HS: Trả lời câu hỏi Readln; End. 3. Củng cố, luyện tập - Nhắc nhở lại kiến thức cơ bản của bài học về khai báo mảng một chiêu, mảng hai chiều và cách tham chiếu đến các phần tử của mảng một chiều và hai chiều Luyện tập: Cho mản A gồm 50 phần tử hãy khai báo mảng trên ? 4. Hướng dẫn học sinh tự học ở nhà; - Về nhà học bài và làm bài tập ở nhà. - Xem trước bài mới. ---------------------------------------------Ngày giảng: Tiết theo PPCT: 27 BÀI 12: KIỂU XÂU I. MỤC TIÊU 1. Kiến thức: - Biết xâu là một dãy kí tự(có thể coi xâu là mảng một chiều). - Biết cách khai báo xâu, truy cập phần tử của xâu. 2. Kỹ năng: - Sử dụng được một số thủ tục, hàm thông dụng về xâu. Giáo án Tin học 11 46 II. CHUẨN BỊ CỦA GV VÀ HS: 1. Chuẩn bị của GV: Giáo án, phấn, bảng, phòng thực hành 2. Chuẩn bị của HS: Sách giáo khoa, vở ghi,… III. TIẾN TRÌNH DẠY HỌC: 1. Kiểm tra bài cũ: Câu hỏi: Hãy viết cách khai báo mảng một chiều và mảng hai chiều? 2. Bài mới: Hoạt động của GV và HS HĐ1: Đặt vấn đề Nhập vào họ tên của hai học sinh trong lớp: A:=’HOANG THU TRANG’ B:=’NGUYEN THI LINH’ GV: Hãy cho biết hai biến A và B thuộc kiểu dữ liệu gì? HS: Hai biến trên thuộc kiểu dữ liệu xâu GV: Kết luận GV: Cách tham chiếu tới phần tử của xâu có giống cách tham chiếu của mảng? VD: Giả sử có biến Hoten lưu trữ giá trị hằng xâu là ‘Nguyen Thanh Huyen’ thì Hoten[6] cho ta kí tự n là kí tự thứ 6 của biến xâu Hoten. HS: Tham chiếu phần tử của xâu cũng giống như tham chiếu đến phần tử của mảng GV: Cách khai báo dữ liệu kiểu xâu? VD: var Hoten:String[25]; GV: Phép ghép xâu kí hiệu là gì, và được sử dụng để làm gì? HS: Trả lời câu hỏi GV: Các phép so sách gồm, quy tắc so sánh? VD: So sách hai sâu: 1. A:=’ hong anh’ Giáo án Tin học 11 Nội dung chính * Xâu là một dãy kí tự trong bộ mã ASCII, mỗi kí tự được gọi là một phần tử của xâu. Số lượng kí tự trong một xâu được gọi là độ dài của xâu. Xâu có độ dài bằng 0 được gọi là xâu rỗng. VD: ‘HOANG HA’ Xâu có độ dại là 8(Tính cả kí tự trống) * Các ngôn ngữ lập trình đều có quy tắc và cách thức cho phép xác định: - Tên kiểu xâu; - Cách khai báo biến kiểu xâu; - Số lượng kí tự trong xâu; - Cácphép toán thao tác với xâu; - Cách tham chiếu tới phần tử của xâu; + Tương tự với mảng, tham chiếu tới phần tử của xâu được xác định bởi tên biến xâu và chỉ số đặt trong cặp ngoặc [và]. 1. Cách khai báo kiểu xâu: Để khai bao kiểu dữ liễu xâu ta sử dụng tên dành riêng string, tiếp theo là độ dài lớn nhất của xâu(không vuợt quá 255 kí tự) được ghi trong cặp ngoặc [và]. Biến kiểu xâu có thể được khai báo như sau: Var :String[độ dài lớn nhất của xâu]; Hoặc: Var :String; 2. Các thao tác xử lý xâu: a) Phép ghép xâu: Kí hiệu là dấu(+), được sử dụng để ghép nhiều xâu thành một. Có thể thực hiện phép ghép xâu đối với các hằng và biến. VD: ‘PHU’+’LUU’ kết quả ‘PHULUU’ b) Các phép so sánh gồm: So sánh bằng(=), khác(), lớn hơn(>), nhỏ hơn(=), nhỏ hơn hoặc bằng( kết quả: Xâu A length(b) then Writeln(a) Else Writeln(b); HS: Hàm Length thực hiện thao tác trả về Readln; Giáo án Tin học 11 49 giá trị độ dài của xâu Ví dụ 2: Nhập vào hai xâu, kiểm tra xem kí tự đẫu của xâu thứ nhất có trùng với kí tự cuối cùng của xâu thứ 2 không? GV:Đoạn chương trình sau đây có ý nghĩa gì? Write(‘ Nhap xau thu nhat: ‘); Readln(a); Write(‘ Nhap xau thu hai: ‘); Readln(b); HS: Đoạn chương trình trên cho phép nhập xâu Ví dụ 3: Nhập vào xâu kí tự, viết ngược lại xâu đó GV:Để viết ngược lại xâu đó ta thực hiện như thế nào? HS: Ta thực hiện câu lệnh sau: For i:=k downto 1 do End. Program Kiemtra; Var a, b: String; x: Byte; Begin Write(‘ Nhap xau thu nhat: ‘); Readln(a); Write(‘ Nhap xau thu hai: ‘); Readln(b); x:=length(b); If a[1] = b[x] then Writeln(‘Trung nhau’) Else Writeln(‘Khac nhau); Readln; End. Program Xaunguoc; Var a: String; i, k: Byte; Begin Write(‘ Nhap xau‘); Readln(a); k:= length(a); For i:=1 downto 1 do Writeln(a[i]) Readln; End. Ví dụ 4: Nhập vào một xâu, đưa ra màn Program Xoadaucach; hình xâu thu được từ nó bởi việc loại bỏ Var a,b: String; các dấu cách i, k: Byte; Begin GV:Ta khai báo những biến nào? Write(‘ Nhap xau‘); Readln(a); HS: Ta khai báo những biến sau:a,b,i,k k:= length(a); b:=’’; For i:=1 to k do GV:Xâu b dùng để thực hiện công việc gì? If a[i] ‘ ‘ then HS: Xâu b dùng để khởi tạo xâu rỗng b:=b+a[i]; Write(‘Ket qua: ‘,b); Readln; End. Ví dụ 5: Chương trình nhập vào một xâu Program Xulixau; s1, tạo xâu s2 gồm tất cả các chữ số trong Var s1, s2: String; xâu s1 i: Byte; Begin GV:Khai báo những biến nào? Write(‘ Nhap xau‘); Readln(s1); HS: Ta khai báo háI biến xâu S1 và S2 s2:=’’; For i:=1 to leng(s1) do GV:Các phép toán so sanh trong xâu như If (‘0’=< s1[i]) and (s1[i] Input: xâu a. +>Output: a là xâu đối xứng hay không đối xứng. A.ý tưởng Chúng ta sẽ đi xây dựng xâu đảo ngược của xâu ban đầu bằng cách duyệt từ cuối xâu ban đầu, tại mỗi lần duyệt thì kí tự đang được duyệt sẽ được thêm vào xâu đang xây dựng. Sau khi xây dựng xong, ta so sánh 2 xâu, nếu chúng giống nhau thì thông báo đó là xâu palindrome rồi kết thúc, ngược lại sẽ thông báo đó không phải là xâu palindrome và kết thúc. B.Không dùng biến xâu p Các kí tự ở vị trí đối xứng thì giống nhau. Kí tự ở vị trí thứ i sẽ đối xứng với kí tự ở vị trí thứ n-i+1 trong xâu (với n là độ dài của xâu. Ta sẽ so sánh n div 2 cặp kí tự để biết xâu này là xâu palindrome hay không. Chương trình: uses crt; var a: string; i,d,n: byte; begin clrscr; write('nhap vao mot xau:'); readln(a); d:=length(a) div 2; n:=length(a); i:=1; while (id then writeln('day la xau palindrome') else writeln('day khong la xau palindrome'); readln; end. Bài 2. Viết chương trình nhập từ bàn phím một xâu kí tự S và thông báo ra màn hình số lần xuất hiện của mỗi chữ cái tiếng Anh trong S (không phân biệt chữ hoa hay chữ thường). +>Input: xâu S. 52 +>Output: số lần xuất hiện của mỗi chữ cái tiếng Anh trong xâu S. +> Gợi ý: Hàm ord(ch) cho giá trị là mã ASCII thập GV: có thể dùng một mảng một chiều dem phân của kí tự là giá trị của ch. với các phần tử được đánh số thứ tự từ 1 đến Hàm chr(X) cho giá trị là kí tự có mã ASCII 26 để ghi nhận số lần xuất hiện của 26 chữ thập phân bằng giá trị của biến X kiểu byte cái tiếng Anh theo thứ tự trong xâu. hoặc số nguyên X trong phạm vi từ 0..255. Có nhận xét sau: Ord(‘A’) – ord(‘A’) + 1 = 1 Ord(‘B’) – ord(‘A’) + 1 = 2 HS : Nghe kết hợp với ghi chép. ..... GV: Ta có nhận xét sau đây: Ord(‘Z’) – ord(‘A’) + 1 = 26 Ord(‘A’) – ord(‘A’) + 1 = 1 Ord(‘B’) – ord(‘A’) + 1 = 2 ..... Ord(‘Z’) – ord(‘A’) + 1 = 26 GV: Như vậy từ chỉ số i của mảng ta có thể xác định được số lần xuất hiện của kí tự thứ i trong bảng chữ cái tiếng Anh có trong xâu. Chr(i + ord(‘A’) -1) là kí tự được đếm bằng phần tử thứ i của mảng một chiều dem. GV: để giải quyết vấn đề chữ hoa hay chữ Ta sẽ dùng hàm upcase(c) để giải quyết vấn thường thì ta sẽ dùng hàm gì ? đề chữ hoa hay chữ thường. HS: Trả lời câu hỏi. Kí tự đang xét là chữ cái nếu điều kiện sau GV: do trong xâu có thể không là chữ cái, được thoả mãn: do đó cần phải kiểm tra xem kí đó có phải là ((ord(s2[i]) - ord('A') + 1)>=1) and chữ cái hay không. Việc kiểm tra được kiểm ((ord(s2[i]) - ord('A') + 1)=1) and ((ord(s2[i]) - ord('A') + 1)= -1000) and (a[i] = -1000) and (a[i] 1 then begin u:= 2; while (u sqrt(a[i]) then dn: = dn + 1 ; end; end; writeln(‘ So luong so nguyen to: ‘,dn); readln; END. 4. Hoạt động củng cố - Cách khai báo mảng,xâu. - Cách tham chiếu đến phần tử của mảng, xâu. 5. Bài tập về nhà - Hoàn thành các bài tập trong sgk. Giáo án Tin học 11 58 Tiết theo PPCT: 36 Chương V: TỆP VÀ THAO TÁC VỚI TỆP Bài 14: KIỂU DỮ LIỆU TỆP Bài 15 : THAO TÁC VỚI TỆP I. MỤC TIÊU 1. Kiến thức: -Học sinh biết được vai trò c ủa kiểu dữ liệu tệp. -Học sinh biết được có hai cách phân loại tệp. -Học sinh biết khai báo biến tệp và các thao tác cơ bản đối với tệp văn bản. 2. Kỹ năng: -Dần dần hình thành kỹ năng về các thao tác với tệp văn bản. II. ĐỒ DÙNG DẠY HỌC 1. Chuẩn bị của giáo viên -Dùng bảng trong in sẵn hình 16 trong SGK; -Sách giáo khoa, sách giáo viên, Bài soạn. 2. Chuẩn bị của học sinh -Sách giáo khoa, vở ghi bài. III. NỘI DUNG BÀI MỚI: 1. Kiểm tra sĩ số lớp: 2. Kiểm tra bài cũ: Không 3. Nội dung bài mới HOẠT ĐỘNG CỦA GV & HS NỘI DUNG Hoạt động 1: Đặt vấn đề: GV:Trong các giờ thực hành đã học, sau khi chạy một chương trình ta thấy kết quả in lên màn hình, tuy nhiên muốn sử dụng kết quả đó về sau thì không được (nó không lưu trữ lại lâu dài) => Để khắc phục nhược điểm này ta nghiên cứu dữ liệu kiểu tệp. HS: Chú ý nghe giảng. Hoạt động 2: Vai trò kiểu tệp: Câu hỏi 1: Trong máy tính có những loại bộ nhớ nào ? Loại bộ nhớ nào không bị mất dữ liệu khi tắt máy hoặc mất điện ? HS: Lần lượt trẻ lời từng câu hỏi 1 (Dựa vào kiến thức đã học ở lớp 10) Câu hỏi 2: Vậy theo em thì các kiểu dữ liệu đã học được lưu trữ ở bộ nhớ nào ? Dự đoán xem dữ liệu kiểu tệp được lưu trữ trên bộ nhớ nào ? HS: Dựa vào kiến thức đã học ở lớp 10 để trả lời câu hỏi. Câu hỏi 3: Bộ nhớ trong hay ngoài thường có dung lượng lớn hơn ? HS: Chú ý nghe giảng và ghi chép bài. GV: cho hs ghi bài 1. Vai trò của kiểu tệp Giáo án Tin học 11 59 Hoạt động 3: Phân loại tệp và thao tác với tệp. GV: Giới thiệu cho học sinh biết được hai cách phân loại tệp. (Không đòi hỏi học sinh phải hiểu cặn kẽ từng loại tệp một). Hoạt động 4: Chuyển tiếp sang bài § 15 GV: Có hai thao tác cơ bản đối với tệp là ghi dữ liệu vào tệp và đọc dữ liệu từ tệp ra. Ta xét xem trong Pascal các thao tác đó được thể hiện như thế nào đối với tệp văn bản ? Hoạt động 5: Khai báo GV: Lấy ví dụ khai báo tệp GV: Gọi học sinh cho biết cú pháp để khai báo tệp HS: trả lời câu hỏi GV: Viết khai báo biến tệp lên bảng rồi giải thích các từ khóa, tên biến tệp để học sinh hiểu được. - Dữ liệu kiểu tệp được lưu trữ lâu dài ở bộ nhớ ngoài cho nên nó không bị mất khi tắt máy hoặc mất điện. - Lượng dữ liệu lưu trữ trên tệp có thể rất lớn và chỉ phụ thuộc vào dung lượng ổ đĩa. 2. Phân loại tệp và thao tác với tệp. * Phân loại tệp: - Theo cách tổ chức dữ liệu: + Tệp văn bản. + Tệp có cấu trúc. - Theo cách thức truy cập: + Tệp truy cập tuần tự. + Tệp truy cập trực tiếp. § 15: THAO TÁC VỚI TỆP 1. Khai báo VD: Var t1,t2: Text ; Khai báo biến tệp văn bản có dạng: Var : Text ; HS: Chú ý nghe giảng. 2. Thao tác với tệp Hoạt động 6: Thao tác với tệp: a. Gắn tên tệp HS: Mỗi học sinh tự lấy một vài ví dụ và ghi vào vở. GV: Nhận xét Assign ( , ) ; Hoạt động 6.1: Gắn tên tệp: GV: Giải thích cho học sinh tại sao phải gắn tên tệp cho biến tệp, rồi đưa ra thủ tục: HS: Chú ý nghe giảng và liên hệ với bài học. Hoạt động 6.2: Mở tệp: GV: Lấy VD về 2 tình huống cần phải mở vở “Tin học 11” đó là: Mở ra để ghi bài (ghi dữ liệu) và mở ra để học bài (Đọc dữ liệu) => 2 trường hợp phải mở tệp. GV: Giới thiệu hai thủ tục để mở tệp: GV: Phải nhấn mạnh rằng: Trước khi sử dụng hai thủ tục trên phải gắn tên tệp cho biến tệp Giáo án Tin học 11 VD: Để gắn tệp KQ.TXT cho biến tệp f: Assign (f,’KQ.TXT’); b. Mở tệp + Mở tệp để ghi dữ liệu: Rewrite(); + Mở tệp để đọc dữ liệu: Reset(); c. Đọc / ghi tệp văn bản: 60 đồng thời biến tệp phải được khai báo từ trước. GV: Yêu cầu học sinh lấy ví dụ (khai báo biến tệp, gắn tên tệp cho biến tệp, mở tệp) sau đó gọi hai học sinh lên trình bày. GV: Có thể nói thêm để học sinh biết về trường hợp đã có tên tệp ở trên đĩa và trường hợp chưa có tệp đó để học sinh hiểu thêm. * Đọc dữ liệu từ tệp: Read(,); Hoặc Readln(,); GV: Để nhập dữ liệu từ bàn phím và để in dữ liệu lên màn hình ta có tể dùng thủ tục gì ? * Ghi dữ liệu vào tệp: Write(,); Hoặc Writeln(,); GV: Giới thiệu các thủ tục đọc dữ liệu từ tệp và ghi dữ liệu vào tệp. HS:ghi bài * Một số hàm thường dùng đối với tệp văn bản Hoạt động 6.3: Đọc / ghi tệp văn bản: GV: Đưa ra ví dụ trong SGK yêu cầu học sinh viết câu lệnh để đọc dữ liệu từ tệp và ghi dữ liệu vào tệp. GV: Giới thiệu để học sinh biết hai hàm chuẩn thường dùng và ý nghĩa của nó. + Hàm EOF(); + Hàm EOLN(); d. Đóng tệp HS: Ghi các thủ tục vào vở và tự so sánh sự khác nhau giữa thủ tục nhập dữ liệu từ bàn phím, in Để đóng tệp, ta dung thủ tục: dữ liệu lên màn hình với các thủ tục đọc dữ liệu từ tệp và ghi dữ liệu vào tệp. Close (); Hoạt động 6.4: Đóng tệp. GV: Đưa ra lý do của việc phải đóng tệp để giáo dục cho học sinh ý thức bảo mật, an toàn thông tin. HS: Tự lấy một vài ví dụ về thủ tục đóng tệp. VD: Close(f); 4. Củng cố - Gọi 1 học sinh khái quát lại vai trò của kiểu tệp và phân loại tệp. - Học sinh khái quát lại các thao tác phải thực hiện khi đọc dữ liệu từ tệp và ghi dữ liệu vào tệp (dựa vào hình 16 - SGK). - Cho học sinh làm một số bài tập trắc nghiệm khách quan. 5. Bài tập về nhà - Làm bài 5.6 và 5.7 sách bài tập – tr55 Giáo án Tin học 11 61 Tiết theo PPCT: 37 Bài 16: VÍ DỤ LÀM VIỆC VỚI TỆP I. MỤC TIÊU 1. Kiến thức - Củng cố khái niệm về dữ liệu tệp và các thủ tục khi xử lí tệp 2. Kĩ năng - Hình thành kỹ năng về các thao tác cơ bản khi làm việc với tệp như: - Mở tệp. - Gán tên tệp cho biến tệp. - Đọc / ghi dữ liệu đối với tệp. - Đóng tệp. II. ĐỒ DÙNG DẠY HỌC 1. Chuẩn bị của giáo viên - Phương tiện: Một máy tính có TP và một máy chiếu Project. - Sách giáo khoa, sách giáo viên, Bài soạn 2. Chuẩn bị của học sinh - Sách giáo khoa, vở ghi bài. III. NỘI DUNG BÀI MỚI: 1. Kiểm tra sĩ số lớp 2. Kiểm tra bài cũ: Không 3. Nội dung bài mới HOẠT ĐỘNG CỦA GV VÀ HS NỘI DUNG Hoạt động 1: Ví dụ 1: Ví dụ 1: Hoạt động 1.1: Tìm hiểu đầu bài. GV: Chiếu đầu bài của bài toán lên màn Chương trình: hình (bằng Power Point). HS: Phân tích bài toán, xác định yêu cầu Program khoang_cach ; của bài toán theo sự hướng dẫn của giáo Var viên. d: real; GV: Nhắc lại công thức tính khoảng cách f: text ; giữa hai điểm khi biết tọa độ của chúng. x,y: integer; HS: Tìm hiểu chương trình. begin GV: Trình chiếu chương trình đầy đủ assign(f,’Trai.txt’); HS: Quan sát kết quả khi chạy chương reset(f); trình. while not eof(f) do Hoạt động 1.2: Tìm hiểu chương trình beign GV: Dùng Power Point chiếu chương trình read(f,x,y); (đã soạn trước) lên màn hình (có đánh chỉ d:= sqrt(x*x + y*y) ; số các dòng lệnh). writeln(‘khoang cach:’, d: 10:2); GV: Gọi một vài học sinh hỏi ý nghĩa của end; từng câu lệnh trong chương trình. close(f); GV: Khái quát lại cả chương trình để học end. sinh nắm được sau đó chạy chương trình (tệp TRAI.TXT đã có sẵn dữ liệu từ trước). HS: Ghi yêu cầu vào vở để về nhà làm. Hoạt động 1.3: Mở rộng bài toán: Giáo án Tin học 11 Ví dụ 2: 62 GV: Có thể bổ sung thêm yêu cầu “in lên màn hình khoảng cách của trại xa với trại của hiệu trưởng nhất”. Hoạt động 2: Ví dụ 2: Hoạt động 2.1: Tìm hiểu bài toán GV: Chiếu đầu bài và hình 17 – SGK lên màn hình. HS: Các nhóm xây dựng công thức tính điện trở tương đương của 5 trường hợp theo hình vẽ. GV: Nhắc lại công thức tính điện trở tương đương của 2 điện trở mắc nối tiếp và của 2 điện trở mắc song song. HS: Biểu diễn các biểu thức đó bằng ngôn ngữ Pascal. GV: Chuẩn hóa để đạt được công thức chính xác. Hoạt động 2.2: Xây dựng chương trình: GV: Gọi từng học sinh xây dựng chương trình theo từng bước 1 (có gợi ý khi học sinh vướng mắc). + Khai báo. + Gán tên tệp cho biến tệp. + Đọc dữ liệu từ tệp. + Tính các điện trở tương đương. + Ghi vào tệp. + Đóng tệp. Chương trình: Program dientro; Var a: array[1..5] of real; R1,R2,R3: real; I: integer; f1,f2: text; begin assign(f1,’RESIST.DAT’; reset(f1); assign(f2,’RESIST.EQU’); rewrite(f2); while not eof(f1) do begin readln(f1,R1,R2,R3); a[1]:=R1*R2*R3/R1*R2+R2*R3+R3*R1); a[2]:=R1*R2/(R1+R2)+R3 ; a[3]:=R1*R3/(R1+R3)+R2 ; a[4]:=R3*R2/(R3+R2)+R2 ; a[5]:=R1+R2+R3; for i:=1 to 5 do write(f2,a[i]:9:3,’ ‘); writeln(f2); end; close(f1); close(f2); end. GV: Chính xác và tối ưu hóa chương trình. Chạy chương trình trên TP. 4. Củng cố - Giáo viên nhắc lại các thao tác khi làm việc với tệp cùng với các thủ tục của nó. 5. Bài tập về nhà - Làm các bài tập 5.8, 5.9 trong sách bài tập – tr 55, 56. Giáo án Tin học 11 63 Tiết theo PPCT: 38 BÀI TẬP I. MỤC TIÊU 1. Kiến thức - Giúp học sinh nhận thức lại nội dung và ý nghĩa của các vấn đề lý thuyết đã được đề cập trong các bài trước gồm: kiểu tệp, biến tệp, thao tác với tệp,... 2. Kỹ năng - Thực hiện được những thao tác đơn giản với tệp. - Giải quyết đựơc một số bài toán có sử dụng kiểu dữ liệu tệp. II. CHUẨN BỊ PHƯƠNG TIỆN DẠY HỌC 1. Chuẩn bị của GV - SGK, SGV, Bài soạn, máy chiếu, phòng máy. 2. Chuẩn bị của HS - SGK, vở ghi. III. TIẾN TRÌNH BÀI SOẠN 1. Ổn định tổ chức lớp 2. Kiểm tra bài cũ Kiểm tra xen kẽ trong tiết dạy. 3. Nội dung bài giảng GV: Trong các bài trước các em đã được làm quen với một kiểu dữ liệu nữa trong ngôn ngữ lập trình đó là dữ liệu kiểu tệp, nắm được các thao tác với tệp và được làm các ví dụ có sử dụng kiểu dữ liệu này. Bài hôm nay, chúng ta sẽ ôn tập và làm các bài tập để nắm rõ hơn kiến thức về dữ liệu kiểu tệp. Hoạt động của GV và HS Nội dung kiến thức * Hoạt động 1: Củng cố kiến thức 1. Một số trường hợp phải dùng tệp: - GV chia lớp thành 4 nhóm, mỗi nhóm - Lượng thông tin lưu trữ lớn. thảo luận một câu hỏi trong SGK (trang - Cần lưu lại thông tin để sử dụng lâu dài. 89) và lần lượt trả lời theo thứ tự các câu 2. Trong sơ đồ thao tác với tệp, khi cần nhập dữ hỏi: liệu cho tệp phải dùng những thao tác: Nhóm 1: câu 1 - Gắn tên tệp Nhóm 2: câu 2 - Mở tệp để ghi Nhóm 3: câu 3 - Ghi dữ liệu vào tệp Nhóm 4: câu 4 - Đóng tệp để hoàn tất việc ghi dữ liệu vào tệp. - Các nhóm khác có thể bổ xung, nhận 3. Trước khi sử dụng tệp phải có câu lệnh mở xét. tệp để trình biên dịch biết mục đích mở tệp để - GV nhận xét và bổ xung kiến thức (nếu đọc hay ghi, đồng thời đặt con trỏ tệp vào vị trí cần). thích hợp. 4. Phải dùng câu lệnh đóng tệp sau khi đã kết thúc ghi dữ liệu vào tệp để hệ thống hoàn tất việc ghi dữ liệu ra tệp. Chương trình giải bài toán Giáo án Tin học 11 64 * Hoạt động 2: Giải quyết một số bài tập đơn giản về tệp. Bài tập 1: Viết chương trình tạo tệp songuyen.txt gồm 100 số nguyên từ 1 đến 100, mỗi số được ghi trên một dòng. Bài tập 1: program bt1; uses crt; var i:integer;f:text; begin assign(f,'D:\ songuyen.txt'); rewrite(f); for i:=1 to 100 do writeln(f,i); close(f);end. GV: Phân tích đề bài và hướng dẫn học Bài tập 2: program tho; uses crt; var f1,f2,f,i:integer; tep:text; Bài tập 2: Trên đảo hoang có một cặp Thỏ begin assign(tep,'tho.txt'); non, kể từ tháng thứ 3 trở đi, mỗi cặp Thỏ rewrite(tep); non sẽ sinh ra một cặp thỏ non khác. Hãy f1:=1;f2:=1; viết chương trình tạo ra một tệp ‘Tho.txt’ writeln(tep,f1); writeln(tep,f2); để lưu lại số cặp Thỏ trên đảo trong từng i:=2; tháng của 1 năm đầu tiên, số cặp Thỏ của while(i phân loại chương trình con. HS: Dựa vào gợi ý của thầy giáo, tư duy để nhận thấy được hàm chuẩn thì trả về một giá trị nào đó, còn thủ tục chuẩn thì không trả về một giá trị nào cả qua tên của nó. HS: Ghi khái niệm hàm và thủ tục vào vở. Hoạt động 2.2: Cấu trúc chương trình con: Câu hỏi 2: Trình bày cấu trúc của một chương trình. HS: Trả lời câu hỏi. GV: Dùng máy Over head để chiếu cấu trúc của chương trình con lên màn chiếu.  Hàm (Function) là chương trình con thực hiện một số thao tác nào đó và trả về một giá trị qua tên của nó.  Thủ tục (Procedure) là chương trình con thực hiện một số thao tác nào đó nhưng không trả về một giá trị nào qua tên của nó. Cấu trúc của một chương trình con: Câu hỏi 3: Cấu trúc của chương trình con có [] gì giống và khác cấu trúc của một chương trình ? HS: Suy nghĩ và trả lời câu hỏi. GV: Chính xác hóa kiến thức. Hoạt động 2.3: Tham số hình thức, biến cục bộ và biến toàn cục: GV: Chỉ đưa ra cho học sinh biết được tham số hình thức là gì ? Nó đóng vai trò gì ? Biến cục bộ và biến toàn cục là gì, được khai báo ở đâu, phạm vi hoạt động của nó Tham số hình thức: Các biến được khai báo chứ không đi sâu để giải thích cặn kẽ cho cho dữ liệu ra/vào được gọi là tham số hình học sinh. thức. Các biến khai báo dùng riêng cho HS: Chú ý nghe giảng. chương trình con là biến cục bộ. Các biến Hoạt động 2.4: Thực hiện chương trình của chương trình chính gọi là biến toàn cục. con GV: Giải thích để học sinh thấy được chương trình con chỉ có thể thực hiện khi có lời gọi nó, đồng thời cũng chỉ ra tham số thực sự là gì ? Có thể lấy VD về lời gọi hàm chuẩn hoặc thủ tục chuẩn để minh họa. 4. Hoạt động củng cố - Giáo viên khái quát lại khái niệm chương trình con và nhấn mạnh cho học sinh về ý thức xây dựng chương trình có cấu trúc. 5. Bài tập về nhà - Đọc trước các ví dụ của bài 18 sách giáo khoa tin học 11. Giáo án Tin học 11 68 - Làm bài tập 6.1 đến 6.5 (trang 60 – SBT tin học 11). Giáo án Tin học 11 69 Tiết theo PPCT: 40 Bài 18: VÍ DỤ VỀ CÁCH VIẾT VÀ SỬ DỤNG CHƯƠNG TRÌNH CON I - MỤC TIÊU: Kiến thức: Học sinh biết được cấu trúc của một thủ tục. Hiểu được mối liên hệ giữa chương trình và thủ tục. Phân biệt được tham trị và tham biến. Phân biệt được tham số hình thức và tham số thực sự. Phân biệt được biến cục bộ và biến toàn cục. Kỹ năng: - Nhận biết được các thành phần trong phần đầu của thủ tục. - Nhận biết được hai loại tham số trong phần đầu của thủ tục. - Nhận biết được lời gọi của thủ tục ở chương trình chính cùng với tham số thực sự. II - CHUẨN BỊ PHƯƠG TIỆN DẠY HỌC 1. Chuẩn bị của giáo viên - Chuẩn bị máy chiếu Project và đánh sẵn các chương trình của VD1 và VD2. - Sách giáo khoa, sách giáo viên, sách bài tập. 2. Chuẩn bị của học sinh Sách giáo khoa, vở ghi bài. III - NỘI DUNG BÀI MỚI 1. Kiểm tra sĩ số lớp 2. Kiểm tra bài cũ: a. Câu hỏi 1: Chương trình con có những loại nào ? Cấu trúc của một chương trình con ? b. Câu hỏi 2: Viết chương trình vẽ lên màn hình Hình chữ nhật có dạng: ******** * * ******** 3. Nội dung bài mới Hoạt động của GV và HS Hoạt động 1: Đặt vấn đề: Nội dung 1.Cách viết và sử dụng thủ tục GV: Ta thấy chương trình trên bảng mới vẽ được 1 hình chữ nhật, nếu muốn vẽ 3 hình chữ nhật thì 3 câu lệnh Writeln ở trên phải lặp đi lặp lại 3 lần  chương trình sẽ trở nên rất dài  Để khắc phục nhược điểm này ta nên sử dụng thủ tục. HS: Chú ý nghe giảng. Hoạt động 2: Tìm hiểu chương trình Giáo án Tin học 11 70 GV: Chiếu chương trình bằng máy chiếu Project sau đó giới thiệu sau đó cho học sinh từng câu lệnh một để học sinh thấy được: + Tên thủ tục. + Thân của thủ tục. + Lời gọi thủ tục. + Hoạt động của chương trình. HS: Quan sát, theo dõi chương trình và lắng nghe giáo viên giới thiệu. Câu hỏi 1: Nếu ta muốn vẽ 4 hình chữ nhật thì ta phải sửa chương trình trên như thế nào ? HS: Suy nghĩ, trả lời câu hỏi. Hoạt động 3: Cấu trúc của thủ tục: GV: Chiếu lên màn hình cấu trúc của thủ tục. HS: Theo dõi trên màn chiếu và ghi vào vở. Câu hỏi 2: Chương trình con Ve_hcn ở trên khuyết phần nào so với cấu trúc của thủ tục nói chung ? HS: Quan sát và trả lời câu hỏi. GV: TỔng quát lại các phần của thủ tục, phần nào nhất thiết phải có, phần nào có thể có hoặc không có. Chú ý: Giáo viên cần nhấn mạnh một số điểm để học sinh nắm được: Procedure Ve_Hcn ; Begin Writeln(‘* * * * * * *’); Writeln(‘* *’); Writeln(‘* * * * * * *’); end; + Kết thúc thủ tục sau từ khóa End là dấu “;”. + Thủ tục phải được khai báo trong phần khai báo của chương trình chính. Hoạt động 4: Ví dụ 1 (Vẽ hình chữ nhật có sử dụng tham số) Hoạt động 4.1: Đặt vấn đề: GV: Đặt vấn đề như trong SGK đã trình bày để đi đến cần phải sử dụng 2 tham số dài và rộng. Hoạt động 4.2: Xây dựng chương trình con: GV: Hướng dẫn học sinh chia nhỏ yêu cầu để học sinh có thể viết các câu lệnh tương ứng: + Vẽ cạnh trên cùng. + Vẽ rong-2 cạnh giữa. + Vẽ cạnh dưới cùng. HS: Viết các câu lệnh theo sự hướng dẫn của giáo viên. GV: Chính xác hóa thủ tục rồi chiếu toàn bộ chương trình để học sinh theo dõi. Giáo án Tin học 11 71 HS: Quan sát chương trình trên màn chiếu. Câu hỏi 3: Hãy chỉ ra các lời gọi thủ tục trong chương trình trên ? HS: Trả lời câu hỏi. GV: Từ các lời gọi thủ tục đó giáo viên đưa học sinh nhận biết được tham số giá trị, đi đến khái niệm và cách khai báo tham biến và tham trị. HS: Nghe giảng và ghi khái niệm tham trị và tham biến vào vở. Hoạt động 4.2: Ví dụ 2 (Hoán đổi) Tham trị: Trong lệnh gọi thủ tục, các tham số hình thức được thay bằng các tham số thực sự tương ứng là các giá trị cụ thể, nó được gọi là tham số giá trị (tham trị). Tham biến: Trong lện gọi thủ tục, các tham số hình thức được thay các tham số thực sự tương ứng là các biến chứa dữ liệu ra được gọi là các tham số biến (tham số biến). Để phân biệt tham biến và tham trị, Pascal sử dụng từ khóa var để khai báo những tham số biến. GV: Chiếu yêu cầu của đầu bài và hướng dẫn học sinh đi đến thuật toán hoán đổi. HS: Theo dõi, nghiên cứu đầu bài và tìm hiểu thuật toán hoán đổi theo sự hướng dẫn của giáo viên. GV: Chiếu chương trình lên màn hình để học sinh theo dõi .  Chạy chương trình. GV: Phải làm sao cho học sinh nhận thấy được hoạt động của tham số biến. HS: Quan sát kết quả khi chạy chương trình. • Mở rộng ví dụ GV: Yêu cầu học sinh về nhà tìm hiểu chương trình trong SGK (trang 102) và giải thích kết quả ? 4. Hoạt động củng cố - Giáo viên yêu cầu học sinh nhắc lại cấu trúc của thủ tục, tha số hình thức, tham số thực sự, biến cụa bộ, biến toàn cục, tham số giá trị, tham số biến. 5. Bài tập về nhà. - Xem lại các ví dụ trong bài. - Đọc trước cách viết và sử dụng hàm. Giáo án Tin học 11 72 Tiết theo PPCT: 41 Bài 18: VÍ DỤ VỀ CÁCH VIẾT VÀ SỬ DỤNG CHƯƠNG TRÌNH CON (Tiết 2) I. MỤC ĐÍCH 1. Kiến thức Học sinh cần nắm được sự giống nhau và khác nhau giữa thủ tục và hàm. 2. Kĩ năng Học sinh có kỹ năng nhận biết được các thành phần trong đầu hàm. Nhận biết được câu lệnh sử dụng hàm ở trong chương trình chính cùng các tham số thực sự. II. CHUẨN BỊ PHƯƠNG TIỆN DẠY HỌC 1. Chuẩn bị của giáo viên - Chuẩn bị bảng phụ nêu sự giống nhau và khác nhau giữa thủ tục và hàm, cách viết đầu hàm, 2 chương trình của hai ví dụ trong bài. - Sách giáo khoa, sách giáo viên, sách bài tập 2. Chuẩn bị của học sinh - Sách giáo khoa, vở ghi bài. III. NỘI DUNG BÀI MỚI 1. Kiểm tra sĩ số lớp 2. Kiểm tra bài cũ: 3. Nội dung bài mới Hoạt động của GV và HS Hoạt động 1: giờ trước chúng ta đã được học cách viết và sử dụng thủ tục, hôm nay chúng ta cùng nghiên cứu cách viết và sử dụng hàm. Cũng như thủ tục, hàm là chương trình con. Điểm kah1c nhau giữa thủ tục và hàm là ở chỗ hàm luôn cho một giá trị kết quả thuộc kiểu xác định và giá trị đó được gán cho tên hàm, kiểu của hàm phải được khai báo trong đầu của hàm. Vậy cách khai báo như thề nào chúng ta vào bài mới. GV: Đưa ra các viết đầu hàm đã viết sẵn trên giấy to, giải thích cho học sinh hiểu các khái niệm: tên hàm, danh sách tham số, kiểu của hàm. GV: Gọi một học sinh nêu sự giống nhau và khác nhau giữa hàm và thủ tục. HS: Trả lời Nội dung Cách viết và sử dụng hàm Khai báo phần đầu một hàm như sau Function ([]):; Do hàm luôn trả về một giá trị qua tên của nó cho nên trong thân hàm cần có lệnh gán giá trị cho tên hàm: := ; Hoạt động 3: VD 1: Chương trình thực hiện giản ước một phân số trong đó có sử dụng hàm tính ước số chung lớn nhất (USCLN) của 2 số nguyên (đã được viết sẵn trên khổ giấy lớn) GV: Đưa ra chương trình để học sinh theo dõi (đã được viết sẵn trên khổ giấy lớn). Giáo án Tin học 11 73 GV: Hãy kể tên các biến cục bộ, biến toàn cục, tham số hình thức, tham số thực sự trong chương trình trên ? HS: Quan sát chương trình và trả lời câu hỏi. GV: Giải thích từng câu lệnh và đưa nhấn mạnh những điểm khác với thủ tục (phần đầu hàm, câu lệnh trả giá trị cho tên hàm, lời gọi hàm). Hoạt động 3: VD2: Chương trình xác định số nhỏ nhất trong 3 số nhập từ bàn phím, trong đó có sử dụng hàm tìm số nhỏ nhất trong hai số. GV: Đưa ra chương trình (đã được viết sẵn trong bảng phụ). HS: Theo dõi vào chương trình, ghi chép theo ý hiểu. GV: Giải thích từng câu lệnh trong đó chú ý về trường hợp “lời gọi hàm tham gia vào lời gọi hàm khác và đóng vai trò là một tham số thực sự ”. 4. Hoạt động củng cố - Giáo viên nhắc lại cấu trúc của một hàm, nhấn mạnh điểm khác biệt so với thủ tục. - Cho học sinh làm một số bài tập trắc nghiệm khách quan. 5. Bài tập về nhà - Xem lại các ví dụ trong sách giáo khoa, đọc trước bài thực hành 6. Giáo án Tin học 11 74 Tiết theo PPCT: 42, 43 BÀI TẬP VÀ THỰC HÀNH 6 I. MỤC ĐÍCH. 1. Kiến thức: - Củng cố khái niệm về chương trình con: Thủ tục, hàm, tham số giá trị, tham số biến, tham số thực sự, biến toàn cục, biến cục bộ. 2. Kỹ năng: - Rèn luyện cho HS kỹ năng lập trình giải quyết một số bài toán đơn giản. - Nâng cao kĩ năng viết chương trình, rèn luyện tác phong, tư duy lập trình. II - ĐỒ DÙNG DẠY HỌC: 1. Chuẩn bị của giáo viên. - Bài soạn. - Sách giáo khoa, sách giáo viên, phòng máy. 2. Chuẩn bị của học sinh - Vở ghi bài. - Sách giáo khoa, đọc trước bài thực hành. III - HOẠT ĐỘNG DAY-HỌC: 1. Ổn định lớp: 2. Kiểm tra bài cũ: Không 3. Nội dung: Câu a: Uses crt; type str79 = string[79]; var s1, s2: str79; stop: boolean; dong:byte; procedure CatDan(s1: str79; var s2: str79); begin s2:= copy(s1,2,length(s1)-1)+s1[1]; end; Procedure CanGiua(var s:str79); Var i,n: integer; Begin n:=length(s); n:=(80-n) div 2; for i:=1 to n do s:= ' '+s; end; Procedure ChuChay(s1:str79; dong:byte); Var s2:str79 ; stop: boolean; Begin Clrscr; CanGiua(s1); Clrscr; stop:=false; While not(stop) do Begin Gotoxy(1,dong); Write(s1); Delay(100); CatDan(s1,s2); Giáo án Tin học 11 75 s1:=s2; stop:= keypressed; end; end; Begin {Main} Clrscr; Write('Nhap xau chu:'); readln(s1); Write('Nhap dong xuat hien:');readln(dong); ChuChay(s1,dong); Readln End. Câu b: Program Chu_chay; Uses crt; Type str79 = string[79]; var s1, s2: str79; stop: boolean; procedure CatDan(s1: str79; var s2: str79); begin s2:= copy(s1,2,length(s1)-1)+s1[1]; end; Procedure CanGiua(var s:str79); Var i,n: integer; Begin n:=length(s); n:=(80-n) div 2; for i:=1 to n do s:= ' '+s; end; begin clrscr; write('Nhap xau s1:');readln(s1); CanGiua(s1); Clrscr; stop:=false; While not(stop) do Begin Gotoxy(1,12);{*chuyen con tro ®en dau dong 12*} Write(s1); Delay(500); {* Dung 500 miligiay*} CatDan(s1,s2); s1:=s2; stop:=keypressed;{Nhan mot phim bat ky de ket thuc} end; readln End. 4- CỦNG CỐ: - Chương trình con: thủ tục, hàm, tham trị, tham biến. 5- BÀI TẬP VỀ NHÀ: - Học bài cũ. - Làm lại các bài thực hành. Ngày……tháng……năm Giáo án Tin học 11 76 Tiết theo PPCT: 44, 45 BÀI TẬP VÀ THỰC HÀNH 7 I. MỤC ĐÍCH. 1. Kiến thức: - Củng cố khái niệm về chương trình con: Thủ tục, hàm, tham số giá trị, tham số biến, tham số thực sự, biến toàn cục, biến cục bộ. 2. Kỹ năng: - Rèn luyện cho HS kỹ năng lập trình giải quyết một số bài toán đơn giản. - Nâng cao kĩ năng viết chương trình, rèn luyện tác phong, tư duy lập trình. II- ĐỒ DÙNG DẠY HỌC: 1. Chuẩn bị của giáo viên. - Bài soạn. - Sách giáo khoa, sách giáo viên, phòng máy. 2. Chuẩn bị của học sinh - Vở ghi bài. - Sách giáo khoa, đọc trước bài thực hành. III- HOẠT ĐỘNG DAY-HỌC: 1. Ổn định lớp: 2. Kiểm tra bài cũ: Không 3. Nội dung: a) Hoạt động 1:Tìm hiểu việc xây dựng các hàm và thủ tục thực hiện tính độ dài các cạnh, chu vi, diện tích, kiểm tra các tính chất đều, cân, vuông của tam giác được trình bày dưới đây. - Giả thiết tam giác được xác định bởi toạ độ của ba đỉnh. Ta sử dụng kiểu bản ghi để mô tả một tam giác: type Diem= record x, y: real ; end; Tamgiac= record A, B, C: Diem; end; Ta xây dựng các thủ tục và hàm: • Thủ tục nhập dữ liệu vào là biến mô tả tam giác R và dữ liệu ra là độ dài của ba cạnh a, b, c: Procedure Daicanh(var R: Tamgiac; var a,b,c:real); • Hàm tính chu vi của tam giác R: function Chuvi(var R:Tamgiac): real; • Hàm tích diện tích của tam giác R: function Dientich(var R: Tamgiac): real; • Thủ tục nhận đầu vào là biến mô tả tam giác R và đầu ra là tích chất của tam giác (Deu hay Can hay Vuong): Procedure Tinhchat(var R: Tamgiac; var Deu,Can,Vuong: boolean) ; • Thủ tục hiển thị toạ độ ba đỉnh tam giác lên màn hình: Procedure Hienthi(var R: Tamgiac); • Hàm tính khoảng cách giữa hai điểm P, Q: function Kh_cach(P,Q: Diem): real; b) Hoạt động 2:Tìm hiểu chương trình nhập vào toạ độ ba đỉnh một tam giác và sử dụng các hàm, thủ tục được xây dựng dưới đây để khảo sát các tích chất của tam giác. Giáo án Tin học 11 77 uses crt; const eps=1.0E-6; type Diem= record x, y: real; end; Tamgiac= record A, B, C: Diem; End; Var T: Tamgiac; Deu, Can,Vuong:boolean; function Kh_cach(P,Q: Diem): real; begin Kh_cach:= sqrt((P.x-Q.x)*(P.x-Q.x)+(P.y-Q.y)*(P.y-Q.y)); end; Procedure Daicanh(var R: Tamgiac; var a,b,c:real); begin a:= Kh_cach(R.B, R.C); b:= Kh_cach(R.A, R.C); c:= Kh_cach(R.A, R.B); end; function Chuvi(var R: Tamgiac): real; var a, b, c:real; begin Daicanh(R, a, b, c); Chuvi:=a+b+c; end; function Dientich(var R: Tamgiac): real; var a, b, c, p: real; begin Daicanh(R, a, b, c); P:=(a+b+c)/2; Dientich:=sqrt(p*(p-a)*(p-b)*(p-c)); end; Procedure Hienthi(var R: Tamgiac); Begin Writeln(‘ Toa do ba dinh cua tam giac la:’); Writeln(‘- Dinh A(‘ ,R.A.x:0:3,’, ‘,R.A.y:0:3,’)’); Writeln(‘- Dinh B(‘ ,R.B.x:0:3,’, ‘,R.B.y:0:3,’)’); Writeln(‘- Dinh C(‘ ,R.C.x:0:3,’, ‘,R.C.y:0:3,’)’); end; Procedure Tinhchat(var R: Tamgiac; var Deu,Can,Vuong: boolean) ; Var a, b, c: real; begin Deu:= false; Can:= false; Vuong:= false; Daicanh(R, a, b, c); if (abs(a-b)< eps) and (abs(a-c)[...]... II – CHUẨN BỊ CỦA GIÁO VIÊN VÀ HỌC SINH: - Giáo viên: Bài soạn, SGK, SGV - Học sinh: vở ghi bài, SGK, chuẩn bị bài cũ III – TIẾN TRÌNH DẠY HỌC: 1 Ổn định tổ chức lớp: 2 Kiểm tra bài cũ: Em hãy trình bày cách khai báo biến? Cho ví dụ Giáo án Tin học 11 11 3 Nội dung bài mới: Hoạt động của GV và HS GV: Tượng tự như trong toán học, trong các ngôn ngữ lập trình đều có các phép toán số học như: cộng, trừ,... GV: Kết luận Nội dung kiến thức 1 Phép toán (Đưa ra bảng các phép toán trong toán học và trong Pascal) 2 Biểu thức số học Ví dụ: (a + b)*(z – 4)/(x + y) 5*a + 6*b - GV: Lấy ví dụ Giáo án Tin học 11 Biểu thức số học là một biến kiểu số hoặc một hằng số hoặc các biến kiểu số và hằng số liên kết với nhau bởi một số hữu hạn phép toán số học - Viết biểu thức toán số học trong lập trình tuân theo quy tắc sau:... trúc rẽ nhánh trong mô tả thuật toán của một số bài toán đơn giản; - Viết được các lệnh rẽ nhánh dạng khuyết, rẽ nhánh dạng đầy đủ và áp dụng để thể hiện được thuật toán của một số bài toán đơn giản 3 Thái độ: - Nghiêm túc, tích cực phát biểu xây dựng bài II – CHUẨN BỊ CỦA GIÁO VIÊN VÀ HỌC SINH: 1 Giáo viên: Bài soạn, SGK, SGV 2 Học sinh: vở ghi bài, SGK, chuẩn bị bài cũ III – TIẾN TRÌNH DẠY HỌC: 1 Ổn... End 4 – BÀI VỀ NHÀ: - Xem lại các bài tập đã làm; Giáo án Tin học 11 32 Tiết theo PPCT: 18 BÀI TẬP I – MỤC TIÊU: - Củng cố những kiến thức đã học trong chương 1,2,3 II – CHUẨN BỊ CỦA GIÁO VIÊN VÀ HỌC SINH: - Giáo viên: Bài soạn, SGK, SGV - Học sinh: vở ghi bài, SGK, chuẩn bị bài cũ III – TIẾN TRÌNH DẠY HỌC: 1 Ổn định tổ chức lớp: 2 Kiểm tra bài cũ: (không) 3 Nội dung bài mới: Lý thuyết: Chương 1: Một... các bài tập -Giáo án Tin học 11 33 Tiết theo PPCT: 19 KIỂM TRA MỘT TIẾT (Thời gian 45’) I – MỤC TIÊU: - Kiểm tra kiến thức của học sinh trong chương 1, 2, 3 II – CHUẨN BỊ CỦA GIÁO VIÊN VÀ HỌC SINH: - Giáo viên: Bài soạn, phòng máy tính - Học sinh: chuẩn bị cho bài kiểm tra III – TIẾN TRÌNH DẠY HỌC: 1 Ổn định tổ chức lớp: 2 Kiểm tra bài cũ: không 3 Nội dung kiểm tra Câu 1: (1... thực hiện và hiệu chỉnh CT; - Biết một số công cụ của môi trường Turbo Pascal 2 Kỹ năng: - Viết được một số lệnh vào ra đơn giản; - Bước đầu sử dụng được CT dịch để phát hiện lỗi 3 Thái độ: Giáo án Tin học 11 17 - Nghiêm túc trong quá trình thực hành II – CHUẨN BỊ CỦA GIÁO VIÊN VÀ HỌC SINH: 1 Giáo viên: Bài soạn, SGK, SGV 2 Học sinh: vở ghi bài, SGK, chuẩn bị bài cũ III – TIẾN TRÌNH DẠY HỌC: 1 Ổn định... thuật toán của một số bài toán đơn giản có sử dụng lệnh lặp; - Viết đúng lệnh lặp với số lần chưa biết trước II – CHUẨN BỊ CỦA GIÁO VIÊN VÀ HỌC SINH: - Giáo viên: Bài soạn, SGK, SGV - Học sinh: vở ghi bài, SGK, chuẩn bị bài cũ III – TIẾN TRÌNH DẠY HỌC: 1 Ổn định tổ chức lớp: Giáo án Tin học 11 26 2 Kiểm tra bài cũ: Em hãy viết hai câu lệnh for – do (dạng tỔng quát) ứng với dạng lặp tiến và dạng lặp lùi?... BÀI 11: KIỂU MẢNG I MỤC TIÊU 1 Kiến thức: - Hiểu khái niệm mảng một chiều - Hiểu cách khai báo và truy cập đến phần tử của mảng 2 Kỹ năng - Cài đặt được thuật toán của một số bài toán đơn giản với kiểu dữ liệu mảng một chiều - Thực hiện đượckhai báo mảng, truy cập, tính toán các phần tử của mảng II CHUẨN BỊ CỦA GIÁO VIÊN VÀ HỌC SINH 1 Chuẩn bị của GV: Giáo án, phấn, bảng 2 Chuẩn bị của HS: Sách giáo. .. Bài toán: S = 1 + 2 + 3 +…+ 100 Em hãy viết đoạn CT tính tổng trên - Học bài cũ Ngày giảng : Tiết theo PPCT: 15 BÀI TẬP VÀ THỰC HÀNH 2 I – MỤC TIÊU: Kỹ năng: (Học sinh) - Biết xây dựng chương trình có cấu trúc rẽ nhánh; - Làm quen với việc hiệu chỉnh CT II – CHUẨN BỊ CỦA GIÁO VIÊN VÀ HỌC SINH: - Giáo viên: Bài soạn, SGK, SGV, phòng máy thực hành - Học sinh: vở ghi bài, SGK, chuẩn. .. Xây dựng chương trình có sử dụng cấu trúc rẽ nhánh - Làm quen với việc hiệu chỉnh chương trình 2 Kỹ năng: - Thực hiện được các bài tập trong sách giáo khoa II Chuẩn bị của GV và HS 1 Chuẩn bị của GV: - Giáo án, phấn, bảng, phòng thực hành 2 Chuẩn bị của HS - Sách giáo khoa, vở ghi,… III Tiến trình dạy học: 1 Kiểm tra bài cũ: Kết hợp kiểm tra trong giờ học 2 Bài mới: Hoạt động của GV và HS Nội dung ... hàm thông dụng xâu Giáo án Tin học 11 46 II CHUẨN BỊ CỦA GV VÀ HS: Chuẩn bị GV: Giáo án, phấn, bảng, phòng thực hành Chuẩn bị HS: Sách giáo khoa, ghi,… III TIẾN TRÌNH DẠY HỌC: Kiểm tra cũ: Câu... có thuật toán để giải Thuật toán Tong_1a toán sau Bước 1: S:=1/a; N = 0; Bước 2: N:=N+1; Giáo án Tin học 11 23 GV: Hai thuật toán dùng để giải toán 1, em quan sát cho biết hai thuật toán có khác... tập làm; Giáo án Tin học 11 32 Tiết theo PPCT: 18 BÀI TẬP I – MỤC TIÊU: - Củng cố kiến thức học chương 1,2,3 II – CHUẨN BỊ CỦA GIÁO VIÊN VÀ HỌC SINH: - Giáo viên: Bài soạn, SGK, SGV - Học sinh:

Ngày đăng: 11/10/2015, 08:01

Từ khóa liên quan

Mục lục

  • Hoạt động 3

  • Hoạt động của GV và HS

  • BÀI TẬP

  • Hoạt động của GV và HS

    • Hãy chọn đáp câu trả lời mà em cho là đúng nhất

    • Hoạt động của GV và HS

      • Begin

      • Hoạt động của GV và HS

      • Hoạt động của GV và HS

      • Hoạt động của GV và HS

      • Hoạt động của GV và HS

      • Hoạt động của GV và HS

      • Hoạt động của GV và HS

      • Bài 9 – CẤU TRÚC RẼ NHÁNH

      • Hoạt động của GV và HS

        • Begin

        • Bài 10 – CẤU TRÚC LẶP

        • Hoạt động của GV và HS

        • Bài 10 – CẤU TRÚC LẶP

        • Hoạt động của GV và HS

        • Bài 10. CẤU TRÚC LẶP

        • Hoạt động của GV và HS

        • BÀI TẬP VÀ THỰC HÀNH 2

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

Tài liệu liên quan