186
Tröôøng PT DTNT tænh Tin hoïc 11 Ngày soạn: Chương I: MỘT SỐ KHÁI NIỆM VỀ LẬP TRÌNH VÀ NGÔN NGỮ LẬP TRÌNH Tiết 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: - Hiểu khả năng của ngôn ngữ lập trình bậc cao, phân biệt được với ngôn ngữ máy và hợp ngữ. - Hiểu ý nghĩa và nhiệm vụ của chương trình dịch. Phân biệt được biên dịch và thông dịch. 2. Kỹ năng: 3. Thái độ: II. CHUẨN BỊ: 1. Chuẩn bị của giáo viên: Giáo án, sách giáo khoa, sách giáo viên. 2. Chuẩn bị của học sinh: Đọc trước SGK. III. HOẠT ĐỘNG DẠY HỌC: 1. Ổn định tình hình lớp: (3’) 2. Giảng bài mới: Thờ i gia n Hoạt động của thầy Hoạt động của trò Nội dung bài giảng * Hoạt động 1: Tìm hiểu khái niệm lập trình và ngôn ngữ lập trình. GV: Hãy nhắc lại các bước để giải một bài toán trên máy tính mà em đã được học ở lớp 10? GV: Trong những bước trên thì bước thứ 3 là viết chương trình có nghĩa là chúng ta lập trình để giải bài toán trên máy tính. HS: Các bước để giải một bài toán trên máy tính là: - Xác định bài toán - Lựa chọn hoặc thiết kế thuật toán - Viết chương trình - Hiệu chỉnh - Viết tài liệu HS: Dùng ngôn ngữ lập trình. 1. Khái niệm lập trình và ngôn ngữ lập trình: a. Lập trình là việc sử dụng cấu trúc dữ liệu và các lệnh của ngôn ngữ lập trình cụ thể để mô tả dữ liệu và diễn đạt các thao tác của thuật toán. GV: Buøi Coâng Phuùc

Giao an tin 11

Embed Size (px)

Citation preview

Page 1: Giao an tin 11

Tröôøng PT DTNT tænh Tin hoïc 11

Ngày soạn: Chương I: MỘT SỐ KHÁI NIỆM VỀ LẬP TRÌNH VÀ

NGÔN NGỮ LẬP TRÌNH

Tiết 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:

- Hiểu khả năng của ngôn ngữ lập trình bậc cao, phân biệt được với ngôn ngữ máy và hợp ngữ.

- Hiểu ý nghĩa và nhiệm vụ của chương trình dịch. Phân biệt được biên dịch và thông dịch.2. Kỹ năng:

3. Thái độ: II. CHUẨN BỊ:

1. Chuẩn bị của giáo viên: Giáo án, sách giáo khoa, sách giáo viên.2. Chuẩn bị của học sinh: Đọc trước SGK.

III. HOẠT ĐỘNG DẠY HỌC:1. Ổn định tình hình lớp: (3’)2. Giảng bài mới:

Thời gian

Hoạt động của thầy Hoạt động của trò Nội dung bài giảng

* Hoạt động 1: Tìm hiểu khái niệm lập trình và ngôn ngữ lập trình.GV: Hãy nhắc lại các bước để giải một bài toán trên máy tính mà em đã được học ở lớp 10?

GV: Trong những bước trên thì bước thứ 3 là viết chương trình có nghĩa là chúng ta lập trình để giải bài toán trên máy tính.GV: Để giải được bài toán này trên máy tính ta phải dùng ngôn ngữ nào?GV: Kết quả của việc lập trình cho ta kết quả gì?GV: Em hãy nhắc lại có những loại ngôn ngữ nào?

HS: Các bước để giải một bài toán trên máy tính là:- Xác định bài toán- Lựa chọn hoặc thiết kế thuật toán- Viết chương trình- Hiệu chỉnh- Viết tài liệu

HS: Dùng ngôn ngữ lập trình.

HS: Kết quả của việc lập trình cho ta một chương trình.HS: - Ngôn ngữ máy- Hợp ngữ- Ngôn ngữ bậc cao.

1. Khái niệm lập trình và ngôn ngữ lập trình:a. Lập trình là việc sử dụng cấu trúc dữ liệu và các lệnh của ngôn ngữ lập trình cụ thể để mô tả dữ liệu và diễn đạt các thao tác của thuật toán.

b. Ngôn ngữ lập trình:- Ngôn ngữ máy: Các lệnh được mã hóa bằng các kí hiệu 0 – 1. Chương trình được viết trên ngôn ngữ máy có thể nạp vào bộ nhớ và thực hiện ngay.- Ngôn ngữ bậc cao: Các lệnh được mã hóa bằng một ngôn ngữ gần với ngôn ngữ tiếng Anh. Chương trình viết trên ngôn ngữ bậc cao cần phải chuyển đổi sang ngôn ngữ máy

GV: Buøi Coâng Phuùc

Page 2: Giao an tin 11

Tröôøng PT DTNT tænh Tin hoïc 11

Thời gian

Hoạt động của thầy Hoạt động của trò Nội dung bài giảng

mới có thể thực hiện được.* Hoạt động 2: Tìm hiểu chương trình dịch, thông dịch và biên dịch.GV: Làm thế nào để máy có thể hiểu được ngôn ngữ bậc cao?

GV: Lấy ví dụ về thông dịch và biên dịch trong thực tế:- Khi thủ tướng của một chính phủ trả lời phỏng vấn trước một nhà báo quốc tế, họ thường cần một người thông dịch để dịch từng câu tiếng Việt sang tiếng Anh.- Khi thủ tướng đọc một bài diễn văn trước Hội Nghị, họ cần một người biên dịch để chuyển văn bản tiếng Việt thành tiếng Anh.GV: Yêu cầu học sinh lấy một vài ví dụ tương tự để hiểu rõ hơn về Thông dịch và Biên dịch.

HS: Để máy có thể hiểu được ngôn ngữ bậc cao thì cần phải có một chương trình dịch.

HS: Suy nghĩ, trả lời.

2. Thông dịch và biên dịch:

Chương trình dịch:Là chương trình dùng để chuyển ngôn ngữ bậc cao sang một ngôn ngữ thực hiện được trên máy. Có hai loại chương trình dịch là thông dịch và biên dịch.Thông dịch:- Bước 1: Kiểm tra tính đúng đắn của lệnh tiếp theo trong chương trình nguồn.- Bước 2: Chuyển lệnh đó thành ngôn ngữ máy.- Bước 3: Thực hiện các câu lệnh vừa được chuyển đổi.Biên dịch:- Bước 1: Duyệt, phát hiện lỗi, kiểm tra tính đúng đắn của lệnh trong chương trình nguồn.- Bước 2: Dịch toàn bộ chương trình nguồn thành một chương trình trên ngôn ngữ máy.

3. Củng cố:- Khái niệm lập trình và ngôn ngữ lập trình- Có ba loại ngôn ngữ lập trình: ngôn ngữ máy, hợp ngữ và ngôn ngữ bậc cao.- Khái niệm chương trình dịch- Phân biệt được thông dịch và biên dịch.

4. Dặn dò học sinh chuẩn bị cho tiết học sau:- Trả lời các câu hỏi 1, 2, 3 sách giáo khoa trang 13.- Xem bài đọc thêm 1: Em biết gì về các ngôn ngữ lập trình? Sách giáo khoa trang

6.- Xem trước bài học: Các thành phần của ngôn ngữ lập trình.

IV. RÚT KINH NGHIỆM, BỔ SUNG:

…………………………………………………………………………………………………

…………………………………………………………………………………………………

…………………………………………………………………………………………………

…………………………………………………………………………………………………

…………………………………………………………………………………………………

………………………………………

GV: Buøi Coâng Phuùc

Page 3: Giao an tin 11

Tröôøng PT DTNT tænh Tin hoïc 11

Ngày soạn: Tiết 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:

- Nắm được các thành phần của một ngôn ngữ lập trình nói chung.Một ngôn ngữ lập trình có ba thành phần: Bảng chữ cái, cú pháp và ngữ nghĩa.

- Biết được một số khái niệm như: tên, tên chuẩn, tên dành riêng, tên do người lập trình đặt, hằng biến và chú thích.

2. Kỹ năng: - Phân biệt được tên chuẩn với tên dành riêng và tên tự đặt- Nhớ các quy định về tên, hằng và biến - Biết đặt tên đúng và nhận biết được tên sai quy định.- Sử dụng đúng chú thích.

3. Thái độ: Bước đầu hình thành được tư duy về lập trình. II. CHUẨN BỊ:

3. Chuẩn bị của giáo viên: Giáo án, sách giáo khoa, sách giáo viên & hình ảnh.4. Chuẩn bị của học sinh: Đọc trước SGK.

III. HOẠT ĐỘNG DẠY HỌC:5. Ổn định tình hình lớp: (3’)6. Kiểm tra bài cũ:

Câu hỏi:Em hãy nêu khái niệm Lập trình, hãy phân biệt Biên dịch và Thông dịch?Dự kiến trả lời:Lập trình là sử dụng cấu trúc dữ liệu và các câu lệnh của ngôn ngữ lập trình cụ thể để mô tả dữ liệu và diễn đạt các thao tác của thuạt toán.Biên dịch: Duyệt, phát hiện lỗi, kiểm tra tính đúng đắn của các cacau lệnh trong chương trình nguồn; Dịch toàn bộ chương trình nguồn thành một chương trình đích có thể thực hiện trên máy và có thể lưu trữ để sử dụng lại.

GV: Buøi Coâng Phuùc

Page 4: Giao an tin 11

Tröôøng PT DTNT tænh Tin hoïc 11

Thông dịch: Kiểm tra tính đúng đắn của câu lệnh tiếp theo trong chương trình nguồn; Chuyển đổi câu lệnh đó thành một hay nhiều câu lệnh tương ứng trong ngôn ngữ máy; thực hiện các câu lệnh vừa chuyển đổi được.

7. Giảng bài mới:Thời gian

Hoạt động của thầy Hoạt động của trò Nội dung bài giảng

* Hoạt động 1: Tìm hiểu các thành phần của ngôn ngữ lập trìnhGV: Đặt vấn đề: Có những yếu tố nào để xây dựng nên ngôn ngữ tiếng Việt?

GV: Trong ngôn ngữ lập trình cũng như vậy, nó bao gồm các thành phần: Bảng chữ cái, cú pháp và ngữ nghĩa.

GV: Giải thích thêm:Cú pháp cho biết cách viết một chương trình hợp lệ, còn ngữ nghĩa xác định ý nghĩa của các tổ hợp kí tự trong chương trình.Chương trình không còn lỗi cú pháp thì mới có thể dịch sang ngôn ngữ máy được

HS: Trả lời:Những yếu tố để xây dựng nên ngôn ngữ tiếng Việt là:- 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 các từ thành câu.- Ngữ nghĩa của từ và câu.

1. Các thành phần cơ bản:a) Bảng chữ cái:Là tập hợp các kí tự được dùng để viết chương trình. Trong Pascal bảng chữ cái gồm các kí tự sau:- Bảng chữ cái thường và bảng chữ cái hoa của bảng chữ cái tiếng Anh.- Các chữ số trong hệ đếm thập phân.- Các kí tự đặc biệt: +, -, *, /, =, <, >, {, }, [, ], …b) Cú pháp: Là bộ quy tắc để viết chương trình.c) Ngữ nghĩa: Xác định ý nghĩa của thao tác cần thực hiện, ứng với tổ hợp kí tự dựa vào ngữ cảnh đó.

* Hoạt động 2: Tìm hiểu khái niệm tên trong thành phần của ngôn ngữ lập trình.GV: Mọi đối tượng trong chương trình đều phải được đặt tên. Hãy nghiên cứu SGK trang 10 để nêu ra quy tắc đặt tên trong Pascal?

GV: Cho các tên trong Pascal sau, những tên nào đúng?AA BC9PQR12X%Y_45

HS: Nghiên cứu SGK và trả lời:- Gồm chữ số, chữ cái, dấu gạch dưới.- Bắt đầu bằng chữ cái hoặc dấu gạch dưới.- Độ dài không quá 127.HS: Những tên đúng là:AR12_45

2. Tên: - Mọi đối tượng trong chương trình đều được đặt tên. - Trong ngôn ngữ Pascal, tên là một dãy liên tiếp không quá 127 kí tự bao gồm chữ số, chữ cái hoặc dấu gạch dưới và bắt đầu bằng chữ cái hoặc dấu gạch dưới.Ví dụ: Tên đúng:AB_AA23Tên sai:12A A BA#B

* Nhiều ngôn ngữ lập trình trong đó có Pascal phân biệt 3 loại tên

GV: Buøi Coâng Phuùc

Page 5: Giao an tin 11

Tröôøng PT DTNT tænh Tin hoïc 11

Thời gian

Hoạt động của thầy Hoạt động của trò Nội dung bài giảng

GV: Hãy đọc SGK và trả lời hiểu biết của em về tên dành riêng?

Ví dụ: Tên dành riêng:Trong Pascal: program, uses, const, type, var, begin, end,…Trong C: main, void, include, …Ví dụ: Tên chuẩn:Trong Pascal: Integer; sin cos,…Trong C: cin, cout, getchar,….Ví dụ: tên do người lập trình đặt: a1, a2, delta, …GV: Có một số tên trong ngôn ngữ Pascal như sau:Program, Abs, Integer, Type, Xyz, Byte,Tong,- Xác định tên dành riêng; - Xác định tên chuẩn;- Xác định tên do người lập trình đặt.GV: Nhận xét.

HS: Tên dành riêng là tên do ngôn ngữ lập trình quy định với một ý nghĩa xác định nào đó.

HS:- Tên dành riêng: Program, Type- Tên chuẩn: Abs, Integer, Byte- Tên do người lập trình đặt: Xyz, Tong.

sau:- Tên dành riêng,- Tên chuẩn,- Tên do người lập trình đặtTên dành riêng: (Từ khóa)Tên dành riêng là những tên được ngôn ngữ lập trình quy định dùng với ý nghĩa xác định, người lập trình không được dùng nó với ý nghĩa khác.Tên chuẩn: Là tên được ngôn ngữ lập trình dùng với ý nghĩa nhất định nào đó; người lập trình có thể định nghĩa lại để dùng nó với ý nghĩa khác.Tên do người lập trình đặt: là tên được dùng theo ý nghĩa riêng của người lập trình, tên này phải được khai báo trước khi sử dụng và nó không được trùng với tên dành riêng.

* Hoạt động 3: Tìm hiểu hằng, biến và chú thích.GV: Dựa vào định nghĩa như vậy, em hãy cho một vài ví dụ cho mỗi loại hằng trên.GV: Hãy cho biết hằng số và hằng xâu trong các hằng sau:-32767‘QB’‘50’1.5E+2

GV: Hãy dựa vào định nghĩa, cho ví dụ về biến trong ngôn ngữ Pascal.GV: Giải thích thêm phần biến: Trong Pascal, biến gồm 2 loại: Biến đơn và biến kép.Biến đơn: Tại mỗi thời

HS: Trả lờiHằng số: 50 ; 60.5Hằng xâu: ‘A’, ‘Binh Dinh’Hằng logic: False.HS: Trả lời:- Hằng số: -32767; 1.5E+2- Hằng xâu: ‘QB’, ‘50’

HS: Ví dụ các tên biến là: Delta, tong, x1, x2,….

3. Hằng, biến và chú thích:a) Hằng: Là đại lượng có giá trị không đổi trong quá trình thực hiện chương trình. Có ba loại hằng thường dùng: hằng số học, hằng xâu và hằng logic.+ Hằng số học là các số nguyên và số thực.+ Hằng xâu: Là một chuỗi kí tự bất kì. Khi viết, chuỗi kí tự này được đặt trong dấu nháy đơn.+ Hằng logic là giá trị đúng (True) hoặc sai (False).b) 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 chương trình.Các biến dùng trong chương trình sẽ được khai báo.

GV: Buøi Coâng Phuùc

Page 6: Giao an tin 11

Tröôøng PT DTNT tænh Tin hoïc 11

Thời gian

Hoạt động của thầy Hoạt động của trò Nội dung bài giảng

điểm chỉ chứa một giá trị.Biến kép: Tại mỗi thời điểm có thể chứa nhiều giá trị.(Biến đơn được sử dụng nhiều hơn.)GV: Lời giải thích đôi khi rất cần thiết trong những chương trình phức tạp, dùng để giải thích cho người khác hiểu khi đọc chương trình và giúp cho chúng ta dễ dàng chỉnh sửa, hoặc nâng cấp chương trình.GV: Các lệnh được ghi trong cặp dấu {} có được Pascal thực hiện không?

HS: Không, vì đó là lời chú thích.

c) Chú thích:Trong ngôn ngữ Pascal, chú thích được đặt giữa cặp dấu {} hoặc (* *) dùng để giải thích cho chương trình rõ ràng và dễ hiểu.Ví dụ một lời chú thích trong chương trình: {Lenh xuat du lieu}

8. Củng cố:- Các thành phần của ngôn ngữ lập trình: bảng chữ cái, cú pháp và ngữ nghĩa.- Khái niệm tên, tên chuẩn, tên dành riêng, tên do người lập trình đặt, hằng, biến và

chú thích.9. Dặn dò học sinh chuẩn bị cho tiết học sau:

- Làm bài tập 4, 5, 6, SGK trang 13- Xem bài đọc thêm: Ngôn ngữ Pascal, sách giáo khoa trang 14, 15, 16.- Xem trước bài: Cấu trúc chương trình, sách giáo khoa, trang 18.- Xem nội dung phụ lục B, sách giáo khoa trang 128: Một số tên dành riêng.

IV. RÚT KINH NGHIỆM, BỔ SUNG:

…………………………………………………………………………………………………

…………………………………………………………………………………………………

…………………………………………………………………………………………………

…………………………………………………………………………………………………

…………………………………………………………………………………………………

………………………………………

GV: Buøi Coâng Phuùc

Page 7: Giao an tin 11

Tröôøng PT DTNT tænh Tin hoïc 11

Ngày soạn: Tiết 3:

BÀI TẬPI. MỤC TIÊU:

1. Kiến thức:- Ôn lại những kiến thức đã học về khái niệm lập trình và các thành phần cơ bản của

ngôn ngữ lập trình.

2. Kỹ năng: - Sử dụng các kiến thức đã học để trả lời các câu hỏi trong sách giáo khoa và sách bài

tập.3. Thái độ:

- Rèn luyện tính tỉ mỉ, cận thận cho học sinh khi học lập trình để viết chương trình.II. CHUẨN BỊ:

5. Chuẩn bị của giáo viên: Giáo án, hình ảnh minh họa và máy tính.6. Chuẩn bị của học sinh: Đọc trước SGK.

III. HOẠT ĐỘNG DẠY HỌC:10. Ổn định tình hình lớp: (3’)11. Kiểm tra bài cũ: (7’)

Câu hỏi: Em hãy trình bày những thành phần cơ bản trong ngôn ngữ lập trình Pascal. Phân biệt giữa hằng và biến.Trả lời: Những thành phần cơ bản trong ngôn ngữ lập trình Pascal là: a) Bảng chữ cái:Là tập hợp các kí tự được dùng để viết chương trình. Trong Pascal bảng chữ cái gồm các kí tự sau:- Bảng chữ cái thường và bảng chữ cái hoa của bảng chữ cái tiếng Anh.- Các chữ số trong hệ đếm thập phân.- Các kí tự đặc biệt: +, -, *, /, =, <, >, {, }, [, ], …b) Cú pháp: Là bộ quy tắc để viết chương trình.c) Ngữ nghĩa: Xác định ý nghĩa của thao tác cần thực hiện, ứng với tổ hợp kí tự dựa vào ngữ cảnh đó.

GV: Buøi Coâng Phuùc

Page 8: Giao an tin 11

Tröôøng PT DTNT tænh Tin hoïc 11

Phân biệt giữa hằng và biến:Hằng: Là đại lượng có giá trị không đổi khi thực hiện chương trình.Biến: Là đại lượng có thể thay đổi giá trị khi thực hiện chương trình.

12. Giảng bài mới:Thời gian

Hoạt động của giáo viên Hoạt động của học sinh Nội dung bài giảng

10’

* Hoạt động 1: Ôn lại những kiến thức đã học ở hai bài trướcGV: Vì sao phải cần có chương trình dịch?

GV: Phân biệt giữa thông dịch và biên dịch?

GV: Những thành phần trong ngôn ngữ lập trình?

HS: Cần phải có chương trình dịch vì để máy tính có thể hiểu và thực hiện được chương trình thì chương trình viết bằng ngôn ngữ bậc cao phải được sang ngôn ngữ máy.HS:Thông dịch là dịch và đưa ra kết quả ở từng câu lệnh.Biên dịch là dịch toàn bộ chương trình, và kết quả thu được là một hoặc nhiều file kết quả có thể lưu trữ và sử dụng lại.HS: Những thành phần của ngôn ngữ lập trình là:- Bảng chữ cái- Cú pháp - Ngữ nghĩa.

1. Tóm tắt lí thuyết:- Cần có chương trình dịch để chuyển chương trình nguồn thành chương trình đích.- Có hai loại chương trình dịch: Thông dịch và biên dịch.- Các thành phần của ngôn ngữ lập trình: Bảng chữ cái, cú pháp và ngữ nghĩa.- Mọi đối tượng đều phải được đặt tên: + Tên dành riêng: được dùng với ý nghĩa riêng, không được dùng với ý nghĩa khác. + Tên chuẩn: Tên dùng với ý nghĩa nhất định, khi cần dùng với ý nghĩa khác thì phải khai báo. + Tên do người lập trình đặt: Cần khai báo trước khi sử dụng.- Hằng: Đại lượng có giá trị không đổi trong khi thực hiện chương trình.- Biến là đại lượng được đặt tên. Giá trị của biến có thể thay đổi trong quá trình thực hiện chương trình.

10’ * Hoạt động 2: Giải quyết các câu hỏi trong sách giáo khoa.GV: Tại sao người ta phải xây dựng ngôn ngữ lập trình bậc cao?

GV: Em hãy nhắc lại khái niệm Hằng?

GV: Bổ sung thêmCó ba loại hằng thường dùng là: Hằng số học,

HS: Người ta phải xây dựng ngôn ngữ lập trình bậc cao vì chương trình viết bằng ngôn ngữ bậc cao dễ hơn so với ngôn ngữ máy, ngôn ngữ bậc cao gần gũi với ngôn ngữ tự nhiên hơn so với ngôn ngữ máy.

HS: Hằng là đại lượng có giá trị không đổi trong quá trình thực hiện chương trình.

2. Các câu hỏi trong sách giáo khoa:Câu 1: Tại sao người ta phải xây dựng ngôn ngữ lập trình bậc cao?Trả lời: Vì chương trình viết bằng ngôn ngữ bậc cao gần gũi hơn so với chương trình viết bằng ngôn ngữ máy, chương trình viết bằng ngôn ngữ bậc cao dễ phát triển và hoàn thiện hơn chương trình viết bằng ngôn ngữ máy.Câu 2: Hãy cho biết những biểu diễn nào dưới đây không phải là biểu diễn hằng trong Pascal và chỉ rõ lỗi trong từng trường hợp:a) 150.0b) -22

GV: Buøi Coâng Phuùc

Page 9: Giao an tin 11

Tröôøng PT DTNT tænh Tin hoïc 11

Thời gian

Hoạt động của giáo viên Hoạt động của học sinh Nội dung bài giảng

hằng xâu và hằng logic.- Hằng số học: là các số nguyên và số thực, có dấu hoặc không dấu.- Hằng xâu là một chuỗi kí tự bất kì. Khi viết, chuỗi kí tự này được đặt trong dấu nháy đơn- Hằng logic là giá trị đúng (True) hoặc sai (false).

c) 6,23d) ‘43’e) A20f) 1.06E – 15g) 4+6h) ‘Ci) ‘TRUE’Trả lời: Những hằng số học: 150.0, -22, 1.06E-15.Những hằng kí tự: ‘43’, ‘TRUE’Những trường hợp không phải là hằng trong Pascal: 6,23, A20, 4+6, ‘C.

10’

* Hoạt động 3: Một số bài tập khác.GV: Câu b không đúng vì trong chế độ thông dịch, mỗi câu lệnh của chương trình nguồn được dịch thành một hoặc nhiều câu lệnh của chương trình đích;Câu c không đúng vì có những bài toán cũng không thể giả trên máy tính. Câu d sai vì nếu chương trình nguồn có lỗi cú pháp thì chương trình dịch không thể dịch sang chương trình nguồn.

GV: Khi hệ thống không báo lỗi có nghĩa là chương trình không có lỗi cú pháp nhưng chưa thể khẳng định ta đã có một chương trình đúng vì để chương trình đúng theo yêu cầu đề bài thì chương trình phải đúng về mặt ngữ nghĩa.

HS: Lắng nghe và ghi chép.

HS: Không vì chương trình vẫn còn có thể có lỗi ngữ nghĩa.

3. Bài tập:Bài 1: Phát biểu nào dưới đây là đúng?a) Chương trình là dãy các lệnh được tổ chức theo các quy tắc được xác định bởi một ngôn ngữ lập trình cụ thể;b) Trong chế độ thông dịch, mỗi câu lệnh của chương trình nguồn được dịch thành một câu lệnh của chương trình đích;c) Mọi bài toán đều có chương trình để giải trên máy tính;d) Nếu chương trình nguồn có lỗi cú pháp thì chương trình đích cũng có lỗi cú pháp.Đáp án: ABài 2: Trong chế độ biên dịch, một chương trình đã được thông suốt, hệ thống không báo lỗi. Có thể khẳng định rằng ta đã có một chương tình đúng chưa? Tại sao?Đáp án: Không, vì chương trình vẫn còn có thể có lỗi ngữ nghĩa.

13. Củng cố: (3’)Nắm được các khái niệm cơ bản về thông dịch, biên dịch, chương trình dịch; biết được những thành phần cơ bản của một ngôn ngữ lập trình đặc biệt là chương trình Pascal.

14. Dặn dò học sinh chuẩn bị cho tiết học sau: (2’)Làm các bài tập trong sách Bài tập.Chuẩn bị trước bài 3: Cấu trúc chương trình.

IV. RÚT KINH NGHIỆM, BỔ SUNG:

GV: Buøi Coâng Phuùc

Page 10: Giao an tin 11

Tröôøng PT DTNT tænh Tin hoïc 11

…………………………………………………………………………………………………

…………………………………………………………………………………………………

…………………………………………………………………………………………………

…………………………………………………………………………………………………

…………………………………………………………………………………………………

………………………………………

Ngày soạn 26/09/2007: CHƯƠNG II: CHƯƠNG TRÌNH ĐƠN GIẢN

Tiết 4: CẤU TRÚC CHƯƠNG TRÌNHI. MỤC TIÊU:

1. Kiến thức:- Hiểu được chương trình là sự mô tả của thuật toán bằng một ngôn ngữ lập trình;- Biết cấu trúc chung của một chương trình đơn giản: cấu trúc chung và các thành

phần.- Nhận biết được các phần của một chương trình đơn giản.

2. Kỹ năng: - Nhận biết được các thành phần của chương trình.

3. Thái độ: Nghiêm túc trong học tập khi tiếp xúc với nhiều quy định nghiêm ngặt trong lập

trình.II. CHUẨN BỊ:

7. Chuẩn bị của giáo viên: Giáo án, sách giáo khoa, sách giáo viên và các bảng phụ để minh họa các khai báo và chương trình đơn giản.

8. Chuẩn bị của học sinh: Đọc trước SGK.III. HOẠT ĐỘNG DẠY HỌC:

15. Ổn định tình hình lớp: (3’)16. Kiểm tra bài cũ: (5’)

Câu hỏi: Hãy cho 3 ví dụ về tên đúng trong Pascal. Nêu khái niệm hằng, biến.Trả lời: Ba ví dụ về tên đúng trong Pascal: A; _ABC; A1.

Hằng: là đại lượng có giá trị không đổi trong quá trình thực hiện chương trình

GV: Buøi Coâng Phuùc

Page 11: Giao an tin 11

Tröôøng PT DTNT tænh Tin hoïc 11

Biến: Là đại lượng được đặt tên dùng để lưu trữ giá trị và giá trị này có thể thay đổi được trong quá trình thực hiện chương trình. Các biến đều phải được khai báo trước khi dùng.

17. Giảng bài mới:Thời gian

Hoạt động của thầy Hoạt động của trò Nội dung bài giảng

10’

* Hoạt động 1: Tìm hiểu cấu trúc chung của chương trình GV: Phát vấn gợi ý: Một bài văn thông thường có mấy phần? Các phần có thứ tự không? Vì sao phải chia ra các phần như vậy?GV: Trong một chương trình cũng có những thành phần và theo một thứ tự nhất định. Em hãy đọc SGK và trả lời: Trong một chương trình có những thành phần nào?

HS: Trả lời:Có 3 phần và có thứ tự: Mở bài, thân bài, kết luận.Lí do: để dễ viết, dễ đọc, dễ hiểu nội dung. HS: Trả lời:Trong một chương trình gồm có hai phần: Phần khai báo và phần thân chương trình.

I. Cấu trúc chương trình:1. Cấu trúc chung:- Cấu trúc chương trình gồm có 2 phần: [<phần khai báo >] và < phần thân chương trình>* Phần khai báo: Khai báo tên chương trình, khai báo thư viện sử dụng, khai báo hằng, khai báo biến, khai báo chương trình con.* Phần thân chương trình: bao gồm dãy các lệnh được đặt trong dấu mở đầu và kết thúc.

15’ * Hoạt động 2:Tìm hiểu các thành phần của chương trình.GV: Phần khai báo này có thể không có. Cách khai báo bắt đầu bằng từ khóa Program, sau đó là tên do người lập trình tự đặt nhưng phải theo đúng quy định về tên chương trình.GV: Yêu cầu học sinh lấy thêm vài ví dụ về cách khai báo tên chương trình.GV: Yêu cầu học sinh nghiên cứu SGK và trả lời cách khai báo thư viện trong Pascal?

GV: Yêu cầu học sinh cho những ví dụ tương tự.

HS: Khai báo tên chương trình:Program Phuong_trinh_b2;Program Vi_du;HS: Cách khai báo thư viện trong Pascal:Uses Crt;

HS: const float PI = 3.1416;Const PI = 3.1416

2. Các thành phần của chương trình:a) Phần khai báo:- Khai báo tên chương trình:Trong ngôn ngữ Pascal có cách khai báo sau:Program Ten_Chuong_trinhVD: Program Tinh_tong;- Khai báo thư viện:Mỗi ngôn ngữ lập trình thường có những thư viện cung cấp chương trình thông dụng đã được lập trình sẵn.Cách khai báo thư viện trong chương trình:- Trong ngôn ngữ Pascal:Uses crt;- Trong C++#include <studio.h>#include <conio.h>-Khai báo hằng:Khai báo hằng thường được sử dụng cho những giá trị xuất hiện nhiều lần trong chương trình.Ví dụ:- Trong Pascal: const MaxN = 1000;- Trong C++: const int MaxN = 1000;- Khai báo biến:Tất cả các biến dùng trong chương

GV: Buøi Coâng Phuùc

Page 12: Giao an tin 11

Tröôøng PT DTNT tænh Tin hoïc 11

Thời gian

Hoạt động của thầy Hoạt động của trò Nội dung bài giảng

GV: Cho một vài ví dụ:Để giải bài toán tìm nghiệm của PT bậc 2, ta có thể khai báo một số biến là: x1, x2: real;

GV: Phần thân trong chương trình C là:{ [<Dãy lệnh>]}

trình đều phải đặt tên và khai báo cho chương trình dịch biết để lưu trữ và xử lí.b) Phần thân chương trình:Phần thân chương trình bao gồm các dãy lệnh trong phạm vi được xác định bởi cặp dấu hiệu mở đầu và kết thúc.Ví dụ: Phần thân trong chương trình Pascal:begin [<Dãy lệnh>]end.

7’

* Hoạt động 3: Tìm hiểu một số ví dụ đơn giản:GV: Giải thích các thành phần, ý nghĩa các lệnh trong hai ví dụ trên và chỉ ra sự khác nhau giữa hai chương trình trong hai ngôn ngữ khác nhau này.GV: Hãy chỉ ra phần khai báo và phần thân của 2 chương trình tương ứng trong hai ngôn ngữ trên.

GV: Phần nào là phần thân của chương trình?

GV: Yêu cầu học sinh cho 1 ví dụ một chương trình không có phần tên và phần khai báo.

HS: Quan sát bảng 1 và trả lời.

HS: Phần thân của chương trình là:

writeln(‘Xin chao cac ban!’);

writeln(‘Moi cac ban lam quen voi Pascal’);

HS: Trả lời:begin writeln(‘Hello’); readln;end.

3. Ví dụ chương trình đơn giản:Xét một vài ví dụ về chương trình đơn giản:Ví dụ 1: Chương trình sau thực hiện việc đưa ra màn hình thông báo “Xin chao cac ban!!”Trong Pascal Trong C++

program Vi_du;begin writeln(‘Xin chao cac ban!’);end.

#include <stdio.h>void main(){ printf(‘Xin chao cac ban!’);}

Ví dụ 2: Chương trình Pascal đưa ra thông báo “Xin chao cac ban!” và “Moi cac ban lam quen voi Pascal!”begin writeln(‘Xin chao cac ban!’); writeln(‘Moi cac ban lam quen voi Pascal’);end.

18. Củng cố: (3’)Một chương trình gồm có hai phần: Phần khai báo và phần thân. Khai báo: Gồm có các khai báo: tên chương trình; khai báo thư viện; khai báo hằng; khai báo biến. Trong một chương trình đôi khi cũng không cần có các phần khai báo mà chỉ có phần thân chương trình. Bài tập:Hãy chỉ ra phần khai báo, phần thân và có thể khai báo lại các biến trong chương trình sau:Program Giai_PTB2;

GV: Buøi Coâng Phuùc

Page 13: Giao an tin 11

Tröôøng PT DTNT tænh Tin hoïc 11

Uses crt;Var a, b: real;

c: real;D: real;x1, x2: real;

beginclrscr;write (‘Nhap a, b, c’); readln(a, b, c);D:= b*b – 4* a*c;If D < 0 then write (‘’PT vo nghiem)Else if D = 0 then write(‘N.kep x = ‘, -b/ (a*2);

ElseWrite(‘x1 = ’, x1:8:3, ‘x2 = ’, x2:8:3);

Readln;End.

19. Dặn dò học sinh chuẩn bị cho tiết học sau: (2’)Chuẩn bị trước bài: Một số kiểu dữ liệu chuẩn và khai báo biến

IV. RÚT KINH NGHIỆM, BỔ SUNG:

…………………………………………………………………………………………………

…………………………………………………………………………………………………

…………………………………………………………………………………………………

…………………………………………………………………………………………………

…………………………………………………………………………………………………

………………………………………

Ngày soạn: Tiết 5:

MỘT SỐ KIỂU DỮ LIỆU CHUẨN VÀ KHAI BÁO BIẾNI. MỤC TIÊU:

1. Kiến thức:- Biết được một số kiểu dữ kiệu chuẩn: nguyên, thực, kí tự, logic;- Hiểu cách khai báo biến.- Học sinh biết được rằng mọi biến dùng trong chương trình đều được khai báo tên

và kiểu dữ liệu.- Học sinh biết được cấu trúc chung của khai báo biến trong ngôn ngữ Pascal.

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.- Học sinh khai báo được biến khi lập trình bằng ngôn ngữ Pascal.

3. Thái độ: Có ý thức cố gắng học tập vượt qua những lúng túng, khó khăn ở giai đoạn bắt đầu

học lập trình.II. CHUẨN BỊ:

9. Chuẩn bị của giáo viên: Giáo án, hình ảnh minh họa và máy tính.

GV: Buøi Coâng Phuùc

Page 14: Giao an tin 11

Tröôøng PT DTNT tænh Tin hoïc 11

10. Chuẩn bị của học sinh: Đọc trước SGK.III. HOẠT ĐỘNG DẠY HỌC:

20. Ổn định tình hình lớp: (3’)21. Kiểm tra bài cũ: (5’)

Câu hỏi: Một chương trình thông thường bao gồm những thành phần nào? Hãy xác định phần khai báo và phần thân của chương trình sau đây:

Program VD1;Var x, y: byte;

t: word;begin

t:= x+y;writeln(t);readln;

end.Trả lời:Một chương trình thông thường bao gồm hai thành phần là phần khai báo và phần thân chương trình:Trong chương trình viết bằng ngôn ngữ Pascal trên, phần khai báo của chương trình là:Program VD1;Var x, y: Byte;

t: word;Phần thân chương trình là:

t:= x+y;writeln(t);readln;

22. Giảng bài mới:Thời gian

Hoạt động của giáo viên Hoạt động của học sinh Nội dung bài giảng

20’ * Hoạt động 1: Tìm hiểu một số kiểu dữ liệu chuẩn. GV: Đặt vấn đề: Trong toán học, để thực hiện được tính toán ta cần phải có các tập số.Đó là các tập số nào?GV: Diễn giải: Cũng tương tự như vậy, trong ngôn ngữ lập trình Pascal, để lập trình giải quyết các bài toán, cần có các tập hợp, mỗi tập hợp có một giới hạn nhất định.- Các em có thể hiểu: kiểu dữ liệu chuẩn là một tập hữu hạn các giá trị, mỗi kiểu dữ liệu cần một dung lượng bộ 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 dữ

HS: Lắng nghe, suy nghĩ và trả lời:Đó là các tập số: số tự nhiên, số nguyên, số hữu tỉ, số thực.

HS: Có thể liên tưởng đến các tập số trong toan học với một kiểu dữ liệu trong Pascal

HS: Trả lời: có 4 kiểu dữ liệu chuẩn: kiểu nguyên,

I. Một số kiểu dữ liệu chuẩn:Trong ngôn ngữ Pascal, có một số kiểu dữ liệu thường dùng cho biến đơn như sau:1. Kiểu nguyên:Kiểu Bộ nhớ lưu trữ 1 giá trị.

GV: Buøi Coâng Phuùc

Page 15: Giao an tin 11

Tröôøng PT DTNT tænh Tin hoïc 11

Thời gian

Hoạt động của giáo viên Hoạt động của học sinh Nội dung bài giảng

liệu.GV: Yêu cầu học sinh nghiên cứu SGK và trả lời có bao nhiêu kiểu dữ liệu chuẩn trong ngôn ngữ Pascal.

GV: Trong ngôn ngữ Pascal, có những kiểu số thực nào thường dùng, phạm vi biểu diễn của mỗi loại.

GV: Tùy vào ngôn ngữ lập trình, các kiểu dữ liệu chuẩn có thể khác nhau. Ví dụ, trong ngôn ngữ C, C++, các kiểu dữ liệu này chỉ gồm số thực, số nguyên và kí tự.

kiểu thực và kiểu logic

HS: Có hai loại là:Real và Extended.

Phạm vi giá trịByte 1 byte 0 255Integer 2 byte -215 215 -1 Word 2 byte 0 216 – 1Longint 4 byte -231231 – 1

2. Kiểu thực:Real: 2.9E-39 .. 1.7E+38; 6 byteExtended: 3.4E-4932 .. 1.1E+4932 3. Kiểu kí tự:Là các kí tự thuộc bảng mã ASCII, gồm 256 kí tự được đánh số từ 0 đến 255. Bộ nhớ để lưu trữ một kí tự là 1 byte.4. Kiểu Logic:Là tập hợp gồm hai giá trị là True và False, là kết quả của phép so sánh. Bộ nhớ để lưu trữ một kí tự là 1 byte.

12’ * Hoạt động 2: Tìm hiểu về cách khai báo biến.GV: Để chương trình dịch có thể hiểu và dịch được chương trình thì mỗi biến dùng trong chương trình đều phải được khai báo tên biến và kiểu dữ liệu.- Tên biến dùng để xác lập quan hệ giữa biến và địa chỉ bộ nhớ nơi lưu trữ giá trị của biến.GV: Cho ví dụ để khai báo một biến nguyên và một biến kiểu kí tự:

GV: Treo tranh có chứa một số khai báo biến trong Pascal, yêu cầu học sinh chọn khai báo đúng trong ngôn ngữ lập trình Pascal?Var x, y, z: word; n l: real; X: longint;

HS: Để khai báo một biến nguyên và một biến kiểu kí tự:Var x: word; y: char;

HS: Quan sát tranh và chọn khai báo đúng:Var x, y, z: word; i: byte;

II. Khai báo biến:Cấu trúc chung của khai báo biến trong ngôn ngữ Pascal là:Var <danh sách biến>: <Kiểu dữ liệu>Var Tên_biến_1: Kiểu_dữ_liệu_1; Tên_biến_2: Kiểu_dữ_liệu_2; Tên_biến_3: Kiểu_dữ_liệu_3; …………

Tên_biến_n: Kiểu_dữ_liệu_n;Ví dụ:Var x: word; y: char;

Chú ý:- Nếu có nhiều biến có cùng kiểu dữ liệu. có thể khai báo ghép, khi đó các

GV: Buøi Coâng Phuùc

Page 16: Giao an tin 11

Tröôøng PT DTNT tænh Tin hoïc 11

Thời gian

Hoạt động của giáo viên Hoạt động của học sinh Nội dung bài giảng

h: in tegr; i: byte;GV: Treo tranh có chứa một số khai báo biến trong Pascal:- Hỏi có bao nhiêu biến tất cả, bộ nhớ phảo cấp phát là bao nhiêu?Var x, y: word; z: Longint; h: integer; i: byte;

HS: Quan sát tranh và trả lời:- Có 5 biến;- Tổng bộ nhớ cần cấp phát là: x (2 byte); y (2 byte); z (4 byte); h (2 byte); i (1 byte); Tổng cộng 11 Byte.

biến phân cách nhau bằng dấu phẩy. Kiểu_dữ_liệu là một trong các kiểu dữ liệu chuẩn của Pascal.- Đặt tên biến sao cho gợi nhớ, không đặt tên biến quá ngắn hay quá dài.

23. Củng cố: (3’)Mọi biến trong chương trình phải được khai báo. Cấu trúc chung của khai báo biến trong Pascal: Var tên_biến: tên_kiểu_dữ_liệu;

24. Dặn dò học sinh chuẩn bị cho tiết học sau: (2’)- Xem trước nội dung bài: Phép toán, biểu thức, lệnh gán, - Xem nội dung phụ lục B, sách giáo khoa trang 129: Một số kiểu dữ liệu chuẩn,

một số thủ tục, hàm chuẩn.IV. RÚT KINH NGHIỆM, BỔ SUNG:

…………………………………………………………………………………………………

…………………………………………………………………………………………………

…………………………………………………………………………………………………

…………………………………………………………………………………………………

…………………………………………………………………………………………………

………………………………………

Ngày soạn: Tiết 6:

PHÉP TOÁN, BIỂU THỨC, CÂU LỆNH GÁNI. 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;- 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.

2. Kỹ năng: - Sử dụng được các phép toán để xây dựng biểu thức;

GV: Buøi Coâng Phuùc

Page 17: Giao an tin 11

Tröôøng PT DTNT tænh Tin hoïc 11

- Sử dụng lệnh gán để viết chương trình.3. Thái độ:

Xác định thái độ nghiêm túc khi học về lập trình.II. CHUẨN BỊ:

11. Chuẩn bị của giáo viên: Giáo án, tranh chứa các biểu thức trong toán học, tranh chứa các hàm số học chuẩn, tranh chứa bảng chân trị. Máy tính và máy chiếu Projector

12. Chuẩn bị của học sinh: Đọc trước SGK.III. HOẠT ĐỘNG DẠY HỌC:

25. Ổn định tình hình lớp: (3’)26. Kiểm tra bài cũ: (5’)

Câu hỏi: Trong ngôn ngữ Pascal có những kiểu dữ liệu chuẩn nào? Trình bày cách khai báo biến trong ngôn ngữ Pascal. Hãy chỉ ra các lỗi trong khai báo sau:Var K, M, I, L: word;

c, c1: char;i, i1, j: word;PI = 3.1416;

Trả lời:Trong ngôn ngữ Pascal có các kiểu dữ liệu chuẩn sau: Kiểu nguyên, kiểu thực, kiểu kí tự, kiểu logic.Các khai báo biến trong Pascal:Var <Danh sách các biến> : <Kiểu dữ liệu>Các lỗi trong khai báo trên là:

- Biến i khai báo 2 lần (vì Pascal không phân biệt chữ hoa hay chữ thường)- PI là hằng thực nên phải khai báo là const PI = 3.1416;

27. Giảng bài mới:Thời gian

Hoạt động của giáo viên

Hoạt động của học sinh Nội dung bài giảng

7’ * Hoạt động 1: Tìm hiểu một số phép toán:GV: Đặt vấn đề: Để mô tả các thao tác trong thuật toán, mỗi ngôn ngữ lập trình đều sử dụng một số khái niệm cơ bản: phép toán, biểu thức, gán giá trị.GV: Hãy kể những phép toán em đã được học trong toán học.

GV: Trong ngôn ngữ lập trình Pascal cũng có những phép toán như toán học nhưng được diễn giải một cách khác.GV: Các phép toán div, mod được sử dụng cho những

HS: Trả lời:Các phép toán trong toán học mà em đã học là: cộng, trừ, nhân, chia, so sánh, lấy số dư, lấy số nguyên.

HS: Các phép toán div, mod chỉ sử dụng cho những kiểu dữ liệu nguyên.HS: Kết quả của những phép toán quan hệ thuộc kiểu dữ liệu

1. Phép toán:Tương tự như toán học, trong ngôn ngữ lập trình đều có những phép toán cộng, trừ, nhân, chia trên các đại lượng thực, các phép toán chia nguyên và lấy phần dư, các phép toán quan hệ,…Trong ngôn ngữ Pascal có những phép toán sau:- Các phép toán số học: + - * / div mod- Các phép toán quan hệ: <, <=, >, >=, =, <>, dùng để so sánh hai đại lượng, kết quả của phép toán này là True hoặc False.- Các phép toán Logic: NOT, OR, AND, thường dùng để tạo các biểu thức logic từ các biểu thức quan hệ đơn giản.

GV: Buøi Coâng Phuùc

Page 18: Giao an tin 11

Tröôøng PT DTNT tænh Tin hoïc 11

Thời gian

Hoạt động của giáo viên

Hoạt động của học sinh Nội dung bài giảng

kiểu dữ liệu nào?GV:Kết quả của phép toán quan hệ thuộc kiểu dữ liệu nào?

Logic.

5’

* Hoạt động 2: Tìm hiểu biểu thức.GV: Nêu vấn đề: Trong toán học ta đã làm quen với khái niệm biểu thức, hãy cho biết những yếu tố cơ bản xây dựng nên biểu thức?GV: Nếu một bài toán mà toán hạng là biến số, hằng số hoặc hàm số và toán tử là các phép toán số học thì biểu thức có tên gọi là gì?GV: Treo tranh có chứa các biểu thức toán học lên bảng, yêu cầu: Sử dụng phép toán số học, hãy biểu diễn biểu thức toán học sau thành biểu thức trong ngôn ngữ lập trình.2a + 5b + c

+

HS: Trả lời:Yếu tố cơ bản xây dựng nên biểu thức là: toán hạng và toán tử.

HS: Biểu thức đó có tên gọi là: biểu thức số học.

HS:Quan sát tranh và trả lời:2*a + 5*b + c((x+y)/ (1-(2/z)) + (x/(2*z))(x*y)/(2*z)

2. Biểu thức số học:- Biểu thức số học là biểu thức nhận được từ các hằng số, biến số và hàm số liên kết với nhau bằng phép toán số học.- Thứ tự thực hiện biểu thức số học: trong ngoặc trước, ngoài ngoặc sau. 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ủa các phép toán: nhân, chia, chia lấy nguyên, chia lấy dư thực hiện trước và các phép toán cộng trừ thực hiện sau.

5’ * Hoạt động 3:Tìm hiểu về hàm số học chuẩn:GV: Nêu vấn đề: Trong toán học ta đã làm quen với một số hàm số học, hãy kể tên một số hàm số đó?GV:Trong một số ngôn ngữ lập trình ta cũng có một số hàm như vậy nhưng được diễn đạt bằng một

HS:các hàm số học là: Hàm trị tuyệt đối, hàm sin, hàm cos, hàm căn bậc hai,…

3. Hàm số học chuẩn: Hàm Bd toán học Bd trong Pascal

Kiểu đối số Kiểu kết quảBình phương x2 Spr(x) Thực hoặc nguyên Theo kiểu của đối sốCăn bậc hai Sqrt(x) Thực hoặc nguyên ThựcGiá trị tuyệt đối |x| Abs(x) Thực hoặc nguyên Theo kiểu của đối sốLogarit tự nhiên Lnx Ln(x) Thực

ThựcLũy thừa của số e ex

Exp(x) Thực Thực

GV: Buøi Coâng Phuùc

Page 19: Giao an tin 11

Tröôøng PT DTNT tænh Tin hoïc 11

Thời gian

Hoạt động của giáo viên

Hoạt động của học sinh Nội dung bài giảng

cách khác. Sin sinx Sin(x) Thực ThựcCos cosx Cos(x) Thực Thực

5’

* Hoạt động 4:Tìm hiểu về biểu thức quan hệ.GV: Khi hai biểu thức số học liên kết với nhau bằng phép toán quan hệ ta được một biểu thức mới, biểu thức đó được gọi là biểu thức gì?GV: Hãy lấy ví dụ về biểu thức quan hệ:

GV: Ví dụ: ta có biểu thức quan hệ: x<5. Nếu x có giá trị 3 thì biểu thức quan hệ nhận giá trị True, nếu x có giá trị 7 thì x nhận giá trị False.

HS: Biểu thức đó gọi là biểu thức quan hệ

HS: Ví dụ:2*x <y

4. Biểu thức quan hệ:Hai biểu thức cùng kiểu liên kết với nhau bởi phép toán quan hệ cho ta một biểu thức quan hệ.Biểu thức quan hệ có dạng:<biểu thức 1> <phép toán quan hệ> <biểu thức 2>- Thứ tự thực hiện+ Tính giá trị các biểu thức,+ Thực hiện các phép toán quan hệ

5’

* Hoạt động 5: Tìm hiểu về biểu thức logic.GV: Nêu vấn đề: Các biểu thức quan hệ được liên kết với nhau bởi phép toán logic gọi là biểu thức logic.GV: Hãy cho một số ví dụ về biểu thức logic: GV:Trong toán học ta có biểu thức 5 x

11, thì trong Pascal sẽ được viết như thế nào?

GV: Em hãy cho biết kết quả của biểu thức logic có kiểu gì?

HS: ví dụ: (A>B); (X+1)<YHS: Trong Pascal sẽ được viết lại là: (5<=x)and(x<=11)

HS:Kết quả của biểu thức logic có kiểu logic.

5. Biểu thức logic:Các phép toán: not, and, or:Phép not được viết trước biểu thức cần phủ định.Ví dụ Not (x>2)Các phép toán and,or dùng để kết hợp nhiều biểu thức logic hoặc quan hệ thành một biểu thức, thường được dùng để diễn tả các điều kiện phức tạp.Thứ tự thực hiện biểu thức logic:+ Thực hiện các biểu thức quan hệ+ Thực hiện phép toán logic.

5’ *Hoạt động 6: Tìm hiểu về lệnh gán.GV: Giới thiệu một ví dụ về lệnh gán trong Pascal:

6. Lệnh gán:Lệnh gán dùng để tính giá trị một biểu thức và chuyển giá trị đó vào một biến.<Tên biến>:=<biểu thức>;Thứ tự thực hiện:

GV: Buøi Coâng Phuùc

Page 20: Giao an tin 11

Tröôøng PT DTNT tænh Tin hoïc 11

Thời gian

Hoạt động của giáo viên

Hoạt động của học sinh Nội dung bài giảng

X:= 4+8;Giải thích: Lấy 4 + 8 =12. Đem kết quả đặt vào x., ta được x = 12GV: Yêu cầu học sinh viết lệnh gán cho việc tính nghiệm của một phương trình bậc 2.

HS: Trả lời:X:= (-b-sqrt(delta))/(2*a);

+Tính giá trị của biểu thức+ Đặt giá trị vào <tên biến>.

28. Củng cố: (3’) Các nội dung đã học:

- Các phép toán trong Pascal: số học, quan hệ và logic.- Các biểu thức trong Pascal: số học, quan hệ và logic.- Cấu trúc gán trong Pascal: <Tên biến>:=<biểu thức>;

29. Dặn dò học sinh chuẩn bị cho tiết học sau: (2’)- Làm các bài tập 5, 6, 7, 8 trong SGK trang 35, 36.- Chuẩn bị trước bài: Các thủ tục và ra đơn giản và soạn thảo, dịch, thực hiện và

hiệu chỉnh chương trình.IV. RÚT KINH NGHIỆM, BỔ SUNG:

…………………………………………………………………………………………………

…………………………………………………………………………………………………

…………………………………………………………………………………………………

…………………………………………………………………………………………………

…………………………………………………………………………………………………

………………………………………

Ngày soạn: Tiết 7: CÁC THỦ TỤC 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: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 chương trình;

GV: Buøi Coâng Phuùc

Page 21: Giao an tin 11

Tröôøng PT DTNT tænh Tin hoïc 11

- Biết một số công cụ của Turbo Pascal hoặc Borland Pascal;2. Kỹ năng:

- Viết đúng được một số lệnh vào/ra đơn giản;- Biết nhập đúng dữ liệu khi thực hiện chương trình;- Biết khởi động và thoát khởi Turbo Pascal hoặc Borland Pascal;- Bước đầu sử dụng được chương trình dịch để phát hiện lỗi;- Bước đầu chỉnh sửa được chương trình dựa vào thông báo lỗi của chương trình dịch

và tính hợp lí của kết quả thu được.3. Thái độ:

Tạo sự ham muốn giải các bài tập bằng lập trình, trước mắt thấy được ích lợi của lập trình phục vụ tính toán và giải được một số bài toán đã học.

II. CHUẨN BỊ:13. Chuẩn bị của giáo viên: Giáo án, hình ảnh minh họa và máy tính.14. Chuẩn bị của học sinh: Đọc trước SGK.

III. HOẠT ĐỘNG DẠY HỌC:30. Ổn định tình hình lớp: (3’)31. Kiểm tra bài cũ:(7’)

Câu hỏi:Hãy viết các biểu diễn sau sang dạng biểu diễn trong Pascal: i. ey + cosx

ii.

iii.

iv.

Trả lời:a) exp(y)+ cos(x)b) (x+y)/(x-z)c) (u>= ) and (u<= )d) abs(sin(( x)/2)) < 1/2

32. Giảng bài mới:Thờ

i gian

Hoạt động của giáo viên Hoạt động của học sinh Nội dung bài giảng

8’ * Hoạt động 1: Tìm hiểu thủ tục nhập dữ liệu vào từ bàn phím.GV: Khi giải quyết một bài toán, ta phải đưa dữ liệu vào để máy tính xử lí, việc đưa dữ liệu bằng lệnh gán sẽ làm cho chương trình chỉ có tác dụng với một số dữ liệu cố định. Để chương trình giải quyết được nhiều bài toán hơn, ta phải sử dụng thủ tục nhập dữ liệu.GV: Yêu cầu học sinh nghiên cứu SGK để cho biết cấu trúc chung của thủ tục nhập dữ liệu trong ngôn ngữ lập trình Pascal.

HS: Nghiên cứu SGK suy nghĩ để trả lời:Read(<tên_biến_1>,…,<tên_biến_k>);Readln(<tên_biến_1>),…,<tên_biến_k>);

1. Nhập dữ liệu vào từ bàn phím:Việc nhập thông tin từ bàn phím được thực hiện bằng các thủ tục chuẩn READ/READLN.

Các lệnh nhập cú dạng: READ(<Danh sách biến

vào>);

hoặc READLN(<Danh sách biến

vào>);

trong đó Danh sỏch biến vào là một hoặc nhiều tên biến đơn. Trong trường hợp nhiều biến thì các tên biến cách nhau bởi

GV: Buøi Coâng Phuùc

Page 22: Giao an tin 11

Tröôøng PT DTNT tænh Tin hoïc 11

Thời

gianHoạt động của giáo viên Hoạt động của học sinh Nội dung bài giảng

GV: Ví dụ khi viết chương trình để giải pt: ax + b =0, ta phải nhập vào các đại lượng nào? Viết các lệnh nhập.GV: Chú ý: Khi nhập giá trị cho nhiều biến, ta phải nhập các giá trị này cách nhau ít nhất một dấu cách trống hoặc kí tự xuống dòng.

HS: Ta phải nhập hai đại lượng a và b.Các lệnh nhập: read(a,b);Hoặc: readln(a,b);

dấu phẩy.Ví dụ: read(N);Readln(a,b,c);

7’

* Hoạt động 2: Tìm hiểu về thủ tục đưa dữ liệu ra màn hình:GV: Dẫn dắt: Sau khi xử lí xong, kết quả tìm được đang được lưu trong bộ nhớ. Để thấy được kết quả trên màn hình ta sử dụng thủ tục xuất dữ liệu.GV: Yêu cầu học sinh nghiên cứu SGK và cho biết cấu trúc chung của thủ tục xuất trong ngôn ngữ lập trình Pascal.GV: Ví dụ khi viết chương trình để giải pt: ax + b =0, ta phải đưa ra giá trị của nghiệm –b/a, ta viết lệnh như thế nào?

HS: Nghiên cứu SGK và trả lời:Write(<tên_biến_1>),…,<tên_biến_k>);Hoặc:Writeln(<tên_biến_1>),…,<tên_biến_k>);

HS: trả lời:Writeln(-b/a);

2. Đưa dữ liệu ra màn hình: Để đưa thông tin ra màn hình từ vị trí con trỏ TP cung cấp các thủ tục chuẩn WRITE

và WRITELN

Các lệnh đưa thông tin ra màn hình cú dạng :WRITE(<Danh sách kết quả

ra>); hoặc WRITELN(<Danh sách kết quả

ra>);trong đó Danh sách kết quả ra có thể là tên biến đơn, biểu thức hoặc hằng.Ví dụ: Một chương trình hoàn chỉnh có sử dụng các lệnh vào, ra:(SGK)

15’ * Hoạt động 3: Làm quen với turbo Pascal 7.0, tập soạn thảo CT, dịch và phát hiện lỗi, hiệu chỉnh:GV: Sử dụng máy chiếu và để giới thiệu màn hình soạn thảo của chương trình Pascal như: bảng chọn, con trỏ, vùng soạn thảo,…GV: Soạn thảo một chương trình có lỗi cú pháp để cho học sinh nghiên cứu và sửa lỗi cú pháp ấy.

HS: Sửa lại các lỗi sai là:

Program Giai_PTB2;Uses crt; {Thiếu ;}Var a, b; real;

c: real;

3. Soạn thảo, dịch, thực hiện và hiệu chỉnh chương trình:Để có thể làm việc với TP 7.0, tối thiểu phải có các tệp :- TURBO.EXE - TURBO.TPL

- Soạn thảo: Các thao tác soạn thảo chương trình về cơ bản giống như trong soạn thảo văn bản: Gõ các lệnh của chương trình sửa các lỗi chính tả, ghi tệp chương trình vào đĩa.

GV: Buøi Coâng Phuùc

Page 23: Giao an tin 11

Tröôøng PT DTNT tænh Tin hoïc 11

Thời

gianHoạt động của giáo viên Hoạt động của học sinh Nội dung bài giảng

Program Giai_PTB2;Uses crtVar a, b; real;

c: real;D: real;x1, x2: real;

beginclrscr;write (‘Nhap a,

b,c’); redln(a, b, c);D:= b*b – 4x

a*c;If D < 0 then

write(‘’PT vo nghiem)Else if D = 0

then write(‘N.kep x = ‘, -b/ (a*2); Else Begin X1= (-b-sqrt(D))/(2*a); X1= (-b-sqrt(D))/(2*a);

Write(‘x1 = ’, x1:8:3, ‘x2 = ’, x2:8:3);Readln;End.

D: real;x1, x2: real;

beginclrscr;write (‘Nhap a, b,c’);

readln(a, b, c); {viết sai chữ readln}

D:= b*b – 4*a*c; {trong Pascal la dung dau * thay cho dấu x}

If D < 0 then write(‘’PT vo nghiem)

Else if D = 0 then write(‘N.kep x = ‘, -b/ (a*2); Else Begin X1= (-b-sqrt(D))/(2*a); X1= (-b-sqrt(D))/(2*a);

Write(‘x1 = ’, x1:8:3, ‘x2 = ’, x2:8:3);Readln;End.

Biên dịch: Gõ đồng thời hai phím Alt + F9. Nếu chương trình có lỗi, sẽ có một thông báo chuẩn, báo lỗi trên nền đỏ. Gõ phím Enter hoặc phím Esc, thông báo sẽ biến mất và vị trí con trỏ nằm gần chỗ lỗi được chẩn đoán. Sau khi sửa lỗi, lặp lại quá trình trên cho tới khi chương trình không còn lỗi cú pháp.

- Thực hiện (Chạy) : Gõ đồng thời hai phím Ctrl + F9.

- Đóng cửa sổ chương trình: Nhấn tổ hợp phím: Alt + F3.- Thoát khỏi phần mềm: Nhấn tổ hợp phím: Alt + X.

33. Củng cố: (3’)Các thủ tục nhập/xuất dữ liệu trong Pascal;Các thao tác soạn thảo, biên dịch, thực hiện, đóng chương trình,…

34. Dặn dò học sinh chuẩn bị cho tiết học sau: (2’)BTVN:- Viết chương trình nhập vào một số và tính bình phương của số đó.- Viết chương trình giải phương trình bậc hai.- Đọc trước phần nội dung bài tập và thực hành số 1.

IV. RÚT KINH NGHIỆM, BỔ SUNG:

…………………………………………………………………………………………………

…………………………………………………………………………………………………

…………………………………………………………………………………………………

…………………………………………………………………………………………………

…………………………………………………………………………………………………

………………………………………

GV: Buøi Coâng Phuùc

Page 24: Giao an tin 11

Tröôøng PT DTNT tænh Tin hoïc 11

Ngày soạn: Tiết 8: BÀI TẬPI. MỤC TIÊU:

1. Kiến thức:- Ôn tập một số kiến thức đã học trong chương 2;- Trình bày một số chương trình cụ thể để chuẩn bị cho tiết thực hành

2. Kỹ năng: - Giải được các bài tập trong SGK và SBT- Lập trình được một số bài tập đơn giản.

3. Thái độ: Nghiêm túc trong thực hành.II. CHUẨN BỊ:

15. Chuẩn bị của giáo viên: Giáo án, hình ảnh minh họa và máy tính.16. Chuẩn bị của học sinh: Đọc trước SGK.

III. HOẠT ĐỘNG DẠY HỌC:35. Ổn định tình hình lớp: (1’)36. Kiểm tra bài cũ: (Kiểm tra bài cũ trong quá trình giải bài tập)37. Giảng bài mới:

Thời gian

Hoạt động của giáo viên Hoạt động của học sinh Nội dung bài giảng

20’ * Hoạt động 1: Hướng dẫn giải các bài tập trong SGKGV: Bài 3. Nếu trong

quá trình tính toán biến chỉ nhận giá trị nguyên trong phạm vi từ 10 đến 25532 thì có những cách khai báo nào ?4. Viết các biểu thức toán học dưới đây sang biểu thức trong TP :

a)

b)

.

5. Hãy chuyển các biểu thức trong TP dưới đây sang biểu thức toán học :а) a/b*2b) a+b/c+1; c) 1/a*b/c;d) a*b*c/2;

HS: Kiểu Integer, word, longint

HS:(x+y)/(x-1/2)-(x-z)/(x*y)

b. (1+z)*(x+(y/z))/(a-(1/(1+

x*x*x))

HS:

a.

b.

1. Hướng dẫn để giải các bài tập trong SGKBài 3: Biến đó chỉ nhận giá trị nguyên nên nó chỉ thuộc 4 kiểu nguyên là: byte, word, integer, longint. Nhưng nó nằm trong phạm vi từ 10 đến 25532 nên nó chỉ có thể khai báo bằng những kiểu là integer, word, longint.Bài 4:

a. (x+y)/(x-1/2)-(x-z)/(x*y)

b. (1+z)*(x+(y/z))/(a-(1/(1+x*x*x))

Bài 5:

a)

b)

GV: Buøi Coâng Phuùc

Page 25: Giao an tin 11

Tröôøng PT DTNT tænh Tin hoïc 11

Thời gian

Hoạt động của giáo viên Hoạt động của học sinh Nội dung bài giảng

e) (a*b)*c/2;f) b/sqrt(a*a+b).

6. Hãy viết các biểu thức lô gíc cho kết quả True khi toạ độ (x,y) là điểm nằm trong vùng gạch chéo hai hình sau:

c . c)

Bài 6:a. Biểu thức logic:(x>=-1) and (x<=1) and (y>=0) and (y<=1) and (x+y>=0) and (x-y<=0)b. Biểu thức logic;(x>=-1) and (x<=1) and (y>=-1) and (y<=1)

Thời gian

Hoạt động của giáo viên Hoạt động của học sinh Nội dung bài giảng

19’ * Hoạt động 2: Hướng dẫn viết các chương trình đơn giản của các bài tập trong SGKBài toán 1: Lập chương trình nhập số a (a>0) rồi tính và đưa ra diện tích phần được gạch chéo trong hình (kết quả làm tròn đến bốn chữ số thập phân.)

GV: Khai báo hai biến a và S dùng để nhập bán kính và biến S dùng để lưu kết quả diện tích của phần gạch .Bài toán 2: tương tự bài

HS: Lắng nghe, có thể ghi chép để thực hành.

Bài 1: Chương trình như sau:Program Tinhdientich;uses crt;var a, S: real;const PI = 3.14;begin clrscr; writeln(‘Nhap vao ban kinh a>0, a= ’); readln(a); S:= PI*a*a/2; writeln(‘Dien tich phan gach cheo la: S = ’, S:6:2);readln;end.

Bài 2: Chương trình như sau:Program Tinhvantoc;

GV: Buøi Coâng Phuùc

Page 26: Giao an tin 11

Tröôøng PT DTNT tænh Tin hoïc 11

toán 1. uses crt;var v, h: real;const g = 9.8;begin clrscr; writeln(‘Nhap vao h, h = ’); readln(h); v:= sqrt(2*g*h); writeln(‘Van toc la: v = ’, v:6:2);readln;end.

4 . Củng cố: ( 4’) Các kĩ năng ban đầu về lập trình.

5. Dặn dò học sinh chuẩn bị cho tiết học sau: (1’)Chuẩn bị bài thực hành 1.Làm các bài tập trong SGK.

IV. RÚT KINH NGHIỆM, BỔ SUNG:

…………………………………………………………………………………………………

…………………………………………………………………………………………………

…………………………………………………………………………………………………

…………………………………………………………………………………………………

…………………………………………………………………………………………………

………………………………………

Ngày soạn: Tiết 9 & 10: BÀI TẬP VÀ THỰC HÀNH 1I. MỤC TIÊU:

1. Kiến thức:- Biết kích hoạt phần mềm pascal, làm quen với một số chương trình đơn giản.- Bước đầu thực hiện các thao tác cơ bản trong pascal như: gõ, lưu, dịch và sửa lỗi, thực hiện một chương trình đơn giản.- Làm quen với một số tổ hợp phím thông dụng.

2. Kỹ năng: - Gõ được một số nội dung chương trình trong sách giáo khoa hoặc do giáo viên đưa ra; biết cách sửa các lỗi thông dụng của Pascal. - Biết sử dụng một số phím, tổ hợp phím để thực hiện các thao tác cơ bản .

3. Thái độ: - Có ý thức trong việc sử dụng máy tính.- Tích cực học tập, thích tìm hiểu.

II. CHUẨN BỊ:17. Chuẩn bị của giáo viên: Giáo án, bài tập thực hành và máy tính.18. Chuẩn bị của học sinh: Đọc trước SGK, làm các bài tập 9 và 10 trang 36 để chuẩn bị

cho tiết thực hành.III. HOẠT ĐỘNG DẠY HỌC:

38. Ổn định tình hình lớp: (1’)39. Giảng bài mới:

GV: Buøi Coâng Phuùc

Page 27: Giao an tin 11

Tröôøng PT DTNT tænh Tin hoïc 11

Thời gian

Hoạt động của giáo viên Hoạt động của học sinh Nội dung bài giảng

Tiết 1: * Hoạt động 1: Thực hành các nội dung trong sách giáo khoa:

- GV: Hướng dẫn học sinh cách khởi động máy tính, kích hoạt phần mềm pascal.- Giới thiệu một số menu trên màn hình làm việc của pascal.- Cho học sinh làm quen với một số chương trình đơn giản đã chuẩn bị trước. Yêu cầu học sinh nhận xét cấu trúc của chương trình cũng như các dấu hiệu đặc trưng ( màu chử của các từ).Thống nhất ý kiến chung.

- Yêu cầu học sinh gõ nội dung chương trình giải phương trình bậc 2(SGK Tin học 11/trang 34).- Giáo viên quan sát quá trình thực hiện và chỉnh sửa những thói quen không tốt mà học sinh mắc phải trong quá trình đánh máy.- Sau khi học sinh đã thực hiện xong yêu cầu. Giáo viên có thể cho học sinh phát biểu nội dung chương trình theo ngôn ngữ giả đề bước đầu làm quen với một chương trình đơn giản.- Thống nhất ý kiến chung.- Yêu cầu học sinh lưu nôi dung chương trình vừa gõ với tên THUCHANH1.PAS vào ổ đĩa D:\ (ở đây giáo viên có thể nhắc lại cách đặt tên cho một tệp cũng như các thao tác lưu tệp trong word để học sinh dể dàng tiếp thu kiến thức mới).- Nói: một chương trình sau khi các em đã gõ hoàn chỉnh thì chưa chắc là hoàn toàn chính xác. Để cho thật

- HS Nghe giảng, quan sát máy tính và thực hiện theo chỉ dẫn.- Quan sát và ghi nhận.

- Hai em ngồi kế nhau thảo luận, một số em đứng lên trình bày, rồi nhận xét lẫn nhau.

- Ghi nhận .- Học sinh thực hiện yêu cầu

- Tiếp tục thực hiện yêu cầu và sửa đổi thói quen

- Hai em ngồi gần nhau thảo luận, trình bày ý kiến,

- Ghi nhận.- Nghe, thực hiện theo chỉ dẫn của GV bằng nhiều thao tác nhưng chú ý thao tác phím tắt (nhấn F2), học sinh có thể đặt theo một số tên mình thích dễ nhớ để sau này tiện sử dụng (nếu cần).- Nghe và thực hiện yêu cầu theo sự hiểu biết ban đầu.

- Tiếp tục thực hiện, yêu cầu sự giúp đở của bạn, của thầy (nếu cần).- Thực hiện yêu cầu và quan sát kết quả trên màn hình với đáp án sách giáo khoa để nhận định về chương trình mà mình thực hiện. Tới đây học sinh sẽ đưa ra câu hỏi thắc mắc ( Sau khi thực hiện nhập giá trị 4; 3; 5 thì chương trình báo lỗi).- Nghe và ghi nhận.

1. Nội dung:a) Gõ vào từ bàn phím chương

trình giải phương trình bậc 2 :

AX2 + BX + C = 0 với A 0.

PROGRAM G_P_T_B2;

USES CRT;

VAR A, B, C, D : REAL;

X1, X2 : REAL;

BEGIN

CLRSCR;

WRITE(' A, B, C: ');

READLN(A,B,C);

D := SQRT(B*B – 4*A*C);

X1 := (-B – D)/(2*A);

X2 := -B/A – X1;

WRITE('X1 = ', X1:6:2,' X2

= ',X2:6:2);

READLN

END.

b) Gõ F2 và lưu chương trình

với tên là PHTR2.PAS,

c) Gõ Alt + F9 để dịch và sửa

lỗi cú pháp (nếu có),

d) Gõ Ctrl + F9 để thực hiện

chương trình, nhập vào các giá trị

1 -3 và 2. Kết quả phải có

trên màn hình là : X1 =

1.00 X2 = 2.00

e) Gõ Ctrl + F9 và nhập các giá

trị 1 0 -2.

Kết quả nhận được là : X1 =

1.41 X2 = 1.41

f) Sửa lại chương trình trên sao

cho không cần dùng biến trung

gian D. Sau khi sửa, thực hiện lại

chương trình với các bộ dữ liệu

trên.

g) Sửa lại chương trình nhận

được ở mục c bằng cách thay đổi

GV: Buøi Coâng Phuùc

Page 28: Giao an tin 11

Tröôøng PT DTNT tænh Tin hoïc 11

Thời gian

Hoạt động của giáo viên Hoạt động của học sinh Nội dung bài giảng

sự chắc chắn là hoàn toàn đúng thì trước khi thực hiện chương trình ta hãy nhấn tổ hộp phím Alt + F9 để dịch và sửa lỗi cú pháp. Yêu cầu học sinh dịch, sửa lỗi và nhận xét những kết quả đó trên màn hình. - Quan sát thao tác của từng HS và hỗ trợ khi các em yêu cầu.- Nói: sau khi các em đã dịch và sửa lỗi chương trình xong thì ta có thể thực hiện chương trình bằng cách nhấn tổ hợp phím Ctrl + F9. Rồi nhập các giá trị theo câu d, e (SGK Tin học 11/trang 34) sau đó nhập tiếp giá trị 4; 3; 5 để kiểm nghiệm kết quả. Trả lời thắc mắc và chọn ra một số lỗi mà cả lớp thường mắc phải để sửa chung và nhấn mạnh rằng chương trình giải phương trình bậc 2 này là chưa hoàn chỉnh, nó mới chỉ là trường hợp khi phương trình có nghiệm vì thế khi nhập các giá trị 4; 3; 5 thì chương trình báo lỗi. Vậy để giải quyết vấn đề này thì chúng ta phải làm sao? (Tạo sự thích thú và khơi dậy tính tìm tòi học hỏi cho HS). Để giải quyết vấn đề thì đến bài cấu trúc vòng lập các em sẽ thấy.

công thức tính X2 (còn có 2 cách

tính X2 theo công thức khác).

h) Thực hiện chương trình với bộ

dữ liệu 1 -5 6 ( Kết quả nhận

được là 2 và 3).

i) Thực hiện chương trình với bộ

dữ liệu 1 1 1, quan sát cách

thông báo lỗi của TP.

Tiết 2:* Hoạt động 2: Thực hành các bài tập trong sách giáo khoa:GV: Hướng dẫn học sinh làm bài 9 như: số lượng các biến cần phải khai báo cho chương trình; cách tính diện tích phần HS: lắng nghe và dựa vào

2. Nội dung của hai bài tập 9 và 10 trang 36:Bài 1: Program Tinhdientich;uses crt;var a, S: real;const PI = 3.14;begin clrscr;

GV: Buøi Coâng Phuùc

Page 29: Giao an tin 11

Tröôøng PT DTNT tænh Tin hoïc 11

Thời gian

Hoạt động của giáo viên Hoạt động của học sinh Nội dung bài giảng

gạch chéo bằng một nửa đường tròn bán kính a.GV: Sau khi học sinh đã soạn thảo xong chương trình, cần phải chỉ cho học sinh chọn một số bộ dữ liệu để kiểm tra tính đúng đắn của chương trình.

bài chuẩn bị của mình để hoàn thành hai bài tập trên trong thời gian 1 tiết.

writeln(‘Nhap vao ban kinh a>0, a= ’); readln(a); S:= PI*a*a/2; writeln(‘Dien tich phan gach cheo la: S = ’, S:6:2);readln;end.Bài 2: Chương trình như sau:Program Tinhvantoc;uses crt;var v, h: real;const g = 9.8;begin clrscr; writeln(‘Nhap vao h, h = ’); readln(h); v:= sqrt(2*g*h); writeln(‘Van toc la: v = ’, v:6:2);readln;end.

40. Củng cố: Các bước để hoàn thành một chương trình:

- Phân tích bài toán để xác định dữ liệu vào, dữ liệu ra- Xác định thuật toán- Soạn chương trình vào máy tính- Lưu trữ chương trình- Biên dịch chương trình- Thực hiện và hiệu chỉnh chương trình.

41. Dặn dò học sinh chuẩn bị cho tiết học sau:Bài tập về nhà:

Viết chương trình nhập vào độ dài 3 cạnh của một tam giác và tính chu vi, diện tích của tam giác đó.

Đọc trước nội dung bài: Cấu trúc rẽ nhánh.IV. RÚT KINH NGHIỆM, BỔ SUNG:

…………………………………………………………………………………………………

…………………………………………………………………………………………………

…………………………………………………………………………………………………

…………………………………………………………………………………………………

…………………………………………………………………………………………………

………………………………………

GV: Buøi Coâng Phuùc

Page 30: Giao an tin 11

Tröôøng PT DTNT tænh Tin hoïc 11

Ngày soạn: 10-11-2007Tiết :11

Chương III CẤU TRÚC RẼ NHÁNH VÀ LẶP§9 CẤU TRÚC RẼ NHÁNH

I. MỤC TIÊU:1. Kiến thức: - Học sinh biết được ý nghĩa của cấu trúc rẽ nhánh.- Học sinh biết được cấu trúc chung của cấu trúc rẽ nhánh.- Biết cách sử dung đúng hai dạng cấu trúc rẽ nhánh trong lập trình dạng thiếu và dạng đủ.2. Kỹ năng: Bước đầu sử dụng cấu trúc rẽ nhánh If..then..else… trong ngôn ngữ lập trình Pascal để viết chương trình giải quyết được một số bài toán đơn giản.3. Thái độ: Xác định thái độ nghiêm túc khi học về lập trình.

II. CHUẨN BỊ:19. Chuẩn bị của giáo viên: Giáo án, hình ảnh minh họa và máy tính.20. Chuẩn bị của học sinh: Đọc trước SGK.

III. HOẠT ĐỘNG DẠY HỌC:42. Ổn định tình hình lớp: (1’)43. Kiểm tra bài cũ: Không kiểm tra bài cũ44. Giảng bài mới:

Thời gian

Hoạt động của giáo viên

Hoạt động của học sinh Nội dung bài giảng

* Hoạt động 1: Tìm hiểu ý nghĩa của tổ chức rẽ nhánh1) Nêu ví dụ thực tiễn minh họa cho tổ chức

1) Chú ý theo dõi các dẫn dắt và ví dụ của GV để suy nghĩ và tìm ví dụ tương tự.

1. Rẽ nhánh

GV: Buøi Coâng Phuùc

Page 31: Giao an tin 11

Tröôøng PT DTNT tænh Tin hoïc 11

Thời gian

Hoạt động của giáo viên

Hoạt động của học sinh Nội dung bài giảng

rẽ nhánh:Chiều mai nếu trời không mưa A sẽ đi xem đá bóng, nếu trời mưa thì An sẽ xem tivi ở nhà.- Yêu cầu HS tìm thêm một số ví dụ tương tự.

- Yêu cầu cho HS đưa ra cấu trúc chung của cách diễn đạt đó.- Yêu cầu HS lấy một vídụ có cấu trúc chung dạng khuyết và đưa ra cấu trúc chung đó.2) Nêu các bước để kết luận nghiệm của phương trình bậc hai ax2+bx+c = 0.

- Chia lớp thành 4 nhóm và yêu cầu vẽ sơ đồ thực hiện các bước trên bảng phụ.- Chọn kết quả của hai nhóm treo lên bảng và cho các nhóm khác nhận xét.3) GV nhận xét và chính xác hóa hoạt động của HS.

- Nếu đội tuyển bóng đá Việt Nam thắng đội Indonesia thì sẽ đá tiếp tranh huy chương vàng với đội tuyển Thái Lan, nếu không thắng Indonesia thì Việt Nam sẽ tranh huy chương đồng với Mianmar.-Nếu ..thì..nếu không..thì..

- Nếu làm xong bài tập sớm thì An sẽ sang nhà Ngọc chơi.Nếu… thì …2) Theo dõi và thực hiện yêu cầu của GV.+ Tính delta.+ Nếu delta<0 thì kết luận phương trình vô nghiệm.+ Nếu delta>=0 thì kết luận phương trình có nghiệm:x = (-b+sqrt(delta))/(2a)x = (-b-sqrt(delta))/(2a)

- Thực hiện vẽ sơ đồ (giống như ở phần nội dung.

- Nhận xét, đánh giá và bổ sung những thiếu sót của nhóm khác.

3) Quan sát hình vẽ của các nhóm khácvà của GV để ghi nhớ.

* Hoạt động 2: Tìm hiểu cấu trúc lệnh rẽ nhánh IF-THEN-ELSE trong ngôn ngữ lập trình Pascal

2. Câu lệnh If – thenTurbo Pascal dùng câu lệnh if - then để mô tả bước giải thuật có dạng :Nếu . . . thì . . .hoặc Nếu . . . thì . . . nếu không thì

GV: Buøi Coâng Phuùc

TÝnh vµ ® a ra nghiÖmthùc, råi kÕt thóc

Th«ng b¸o v«nghiÖm, råi kÕt thóc

§óngSai >=

0?

:=b*b-4*a*c

NhËp a, b, c

Page 32: Giao an tin 11

Tröôøng PT DTNT tænh Tin hoïc 11

Thời gian

Hoạt động của giáo viên

Hoạt động của học sinh Nội dung bài giảng

1. Yêu cầu HS nghiên cứu SGK và dựa vào các ví dụ của tổ chức rẽ nhánh để đưa ra cấu trúc chung của lệnh rẽ nhánh.2. Nêu vấn đề trong trường hợp khuyết: Khi không đề cập đến việc gì xảy ra nếu điều kiện không thỏa mãn, ta có cấu trúc như thế nào?3. Yêu cầu HS vẽ sơ đồ thực hiện của lện rẽ nhánh dạng khuyết và dạng đủ trên bảng.4. Gợi ý sự cần thiết của lệnh ghép.-Khi giải thích về lệnh, lệnh 1, lệnh 2, giáo viên nói: Sau then và else các em thấy chỉ đặt một lệnh. Trong thực tế, thường lại là nhiều lệnh.-Yêu cầu HS nghiên cứu SGK và cho biết cấu trúc để ghép các lệnh thành một lệnh.

1. Nghiên cứu SGK và trả lờiIf <điều kiện> then <lệnh 1> else <lệnh 2>;

2) HS chú ý lắng nghe và trả lời:- Khi đó ta có lệnh khuyết.If <điều kiện> then <lệnh>;

3. Vẽ sơ đồ thực hiện như đã được trình bày trong phần nội dung.

4. Theo dõi dẫn dắt của GV để trả lời- Ta phải nhóm nhiều lệnh thành một lệnh.

- Cấu trúc của lệnh ghép;Begin<Các lệnh ghép>;End;

. . Tương ứng, câu lệnh if –then có hai dạng :a) Dạng thiếu: if <điều kiện> then <câu lệnh>; (1)b) Dạng đủ:if <điều kiện> then <câu lệnh 1> else <câu lệnh 2>; (2)trong đó : *) Điều kiện : Một biểu thức quan hệ hoặc lô gíc.*) Câu lệnh, câu lệnh 1, câu lệnh 2 : là một câu lệnh nào đó của Turbo Pascal. Ở dạng (1) điều kiện sẽ được tính và kiểm tra. Nếu điều kiện đúng thì câu lệnh sẽ được thực hiện, nếu điều kiện sai thì câu lệnh sẽ bị bỏ qua

Sai

C©u lÖnh§ óng§ iÒu kiÖn

Ở dạng (2) điều kiện cũng được tính và kiểm tra. Nếu điều kiện đúng thì câu lệnh 1 sẽ được thực hiện, nếu điều kiện sai thì câu lệnh 2 sẽ được thực hiện

C©u lÖnh 2Sai

C©u lÖnh 1§ óng§ iÒu kiÖn

45. Củng cố: - Cấu trúc chung của cấu trúc rẽ nhánh.- Sự thực hiện của máy khi gặp cấu trúc rẽ nhánh IF.- Sơ đồ thực hiện của cấu trúc rẽ nhánh IF.46. Dặn dò học sinh chuẩn bị cho tiết học sau:

-Xem trước nội dung còn lại của bài họcIV. RÚT KINH NGHIỆM, BỔ SUNG:

…………………………………………………………………………………………………

…………………………………………………………………………………………………

…………………………………………………………………………………………………

…………………………………………………………………………………………………

GV: Buøi Coâng Phuùc

Page 33: Giao an tin 11

Tröôøng PT DTNT tænh Tin hoïc 11

…………………………………………………………………………………………………

………………………………………

Ngày soạn: Tiết 12: CẤU TRÚC RẼ NHÁNH (tt)I. MỤC TIÊU:

1. Kiến thức:- Bước đầu biết sử dụng đúng lệnh if để lập trình giải quyết một số bài toán đơn

giản.- Cách sử dụng câu lệnh ghép trong lập trình.- Bước đầu hình thành được kĩ năng lập trình có cấu trúc.

GV: Buøi Coâng Phuùc

Page 34: Giao an tin 11

Tröôøng PT DTNT tænh Tin hoïc 11

2. Kỹ năng: - Lập trình được một số bài tập đơn giản.- Biết diễn đạt đúng các câu lệnh, soạn được những chương trình đơn giản áp dụng

các loại cấu trúc điều khiển nêu trên.3. Thái độ: Tiếp tục rèn luyện các phẩm chất cần thiết của người lập trình như: Xem xét,

giải quyết vấn đề một cách cẩn thận, sáng tạo…. điều này thể hiện trong suốt quá trình phân tích bài toán, lựa chọn dữ liệu, chọn cấu trúc điều khiển, viết chương trình, dịch, sửa lỗi, kiểm thử, cải tiến chương trình.II. CHUẨN BỊ:

21. Chuẩn bị của giáo viên: Giáo án, hình ảnh minh họa và máy tính.22. Chuẩn bị của học sinh: Đọc trước SGK.

III. HOẠT ĐỘNG DẠY HỌC:47. Ổn định tình hình lớp: (1’)48. Kiểm tra bài cũ:

Câu hỏi: Viết lại cấu trúc của 2 dạng : if … then …. và if…. then .. else ….Trả lời: if <điều kiện> then <câu lệnh>;

If <điều kiện> then <câu lệnh 1>else <câu lệnh 2>;Sơ đồ khối:

Sai

C©u lÖnh§ óng§ iÒu kiÖn C©u lÖnh 2

SaiC©u lÖnh 1

§ óng§ iÒu kiÖn

49. Giảng bài mới:Thời gian

Hoạt động của giáo viên Hoạt động của học sinh Nội dung bài giảng

19’

* Hoạt động 1: Tìm hiểu câu lệnh ghép:Theo sau các từ khóa then hoặc else phải là một câu lệnh nhưng có một số trường hợp theo sau nó là một tổ hợp các lệnh, vì thế NNLT cho phép gộp các câu lệnh đó thành 1 câu lệnh và đó gọi là câu lệnh ghép.

3. Câu lệnh ghép:Câu lệnh ghép trong Pascal có dạng:Begin <các câu lệnh>;End;

* Hoạt động 2: Rèn luyện kĩ năng vận dụng if:GV: Nêu nội dung, mục đích, yêu cầu của ví dụ 1.Viết chương trình nhập vào hai cạnh của một hình chữ nhật và tính chu vi, diện tích của hình chữ nhật đó.GV: Chương trình này các em đã viết, hãy cho biết có những hạn chế nào trong chương trình của các em?GV: Hướng giải quyết của các em như thế nào?

HS: Khi nhập độ dài của hình chữ nhật âm thì chương trình vẫn cứ thực hiện và đưa ra diện tích âm. Điều này không có trong thực tế.

4. Các ví dụ:Ví dụ 1:Viết chương trình nhập vào 2 cạnh của một hình chữ nhật và tính chu vi, diện tích hình chữ nhật đó.

GV: Buøi Coâng Phuùc

Page 35: Giao an tin 11

Tröôøng PT DTNT tænh Tin hoïc 11

GV: Yêu cầu học sinh về nhà tiếp tục hoàn thiện chương trình.GV: Nêu nội dung, mục đích, yêu cầu của bài tập.Tìm nghiệm của phương trình bậc hai:- Hãy nêu các bước chính để trả lời nghiệm của phương trình bậc hai

GV: Trong bài toán này ta cần bao nhiêu lệnh rẽ nhánh? Dạng nào?GV: Tổ chức lớp thành 3 nhóm, yêu cầu học sinh viết chương trình hoàn thiện.GV: Thu phiếu trả lời của các nhóm, nhận xét và đánh giá.GV: Chuẩn hóa lại chương trình cho cả lớp bằng chương trình mẫu

HS: Dùng lệnh rẽ nhánh để kiểm tra giá trị của độ dài cạnh nhập vào. Nếu độ dài dương thì tính diện tích ngược lại thì thông báo độ dài sai.

HS: Tính delta.Nếu delta <0 thì kết luận phương trình vô nghiệm.Nếu delta >= 0 thì kết luận phương trình có nghiệm:X1= (-b-sqrt(delta))/(2*a)X1= (-b+sqrt(delta))/(2*a)HS: Có thể sử dụng 2 lệnh rẽ nhánh dạng thiếu hoặc 1 lệnh rẽ nhánh dạng đủ.HS: Thảo luận và viết chương trình lên bìa.- Thông báo kết quả viết được.- Nhận xét, đánh giá và bổ sung những thiếu sót của các nhóm khác.- Ghi chép nội dung chương trình đúng mà giáo viên đã kết luận.

Ví dụ 2: Tìm nghiệm của phương trình bậc 2:

PROGRAM VI_DU_1;

USES CRT;VAR A,B,C : REAL; DELTA, X1, X2 : REAL;BEGIN CLRSCR; WRITE(' A, B, C : '); READLN(A, B, C); DELTA := B*B – 4*A*C; IF DELTA < 0 THEN WRITELN(' Phuong trinh vo nghiem.')

ELSE BEGIN

X1 := (-B – SQRT(DELTA))/(2*A); X2 := -B/A – X1;WRITELN(' X1 = ', X1: 8:3,' X2 = ', X2:8:3)

END; READLNEND.

4 . Củng cố: ( 4’)

GV: Buøi Coâng Phuùc

Page 36: Giao an tin 11

Tröôøng PT DTNT tænh Tin hoïc 11

- Cấu trúc chung của cấu trúc rẽ nhánh.- Sự thực hiện của máy khi gặp cấu trúc rẽ nhánh.- Sơ đồ thực hiện của cấu trúc rẽ nhánh if.

5. Dặn dò học sinh chuẩn bị cho tiết học sau: (1’)- Viết chương trình nhập vào hai số bất kì và in ra màn hình giá trị lớn nhất của hai

số.- Viết chương trình giải phương trình ax4+ bx2 + c = 0;- Xem trước nội dung bài: Cấu trúc lặp.

IV. RÚT KINH NGHIỆM, BỔ SUNG:

…………………………………………………………………………………………………

…………………………………………………………………………………………………

…………………………………………………………………………………………………

…………………………………………………………………………………………………

…………………………………………………………………………………………………

………………………………………

Ngày soạn: Tiết 13: CẤU TRÚC LẶPI. MỤC TIÊU:

1. Kiến thức:- Biết được ý nghĩa của cấu trúc lặp;- Biết được cấu trúc chung của lệnh lặp for trong ngôn ngữ lập trình Pascal;- Biết sử dụng đúng hai dạng lệnh lặp For trong ngôn ngữ lập trình Pascal;

2. Kỹ năng: - Bước đầu sử dụng được lệnh lặp for để lập trình giải quyết một số bài toán đơn giản

3. Thái độ: Tiếp tục rèn luyện các phẩm chất cần thiết của người lập trình như: Xem xét, giải quyết vấn đề một cách cẩn thận, sáng tạo…. điều này thể hiện trong suốt quá trình phân tích bài toán, lựa chọn dữ liệu, chọn cấu trúc điều khiển, viết chương trình, dịch, sửa lỗi, kiểm thử, cải tiến chương trình.

II. CHUẨN BỊ:23. Chuẩn bị của giáo viên: Giáo án, hình ảnh minh họa và máy tính.24. Chuẩn bị của học sinh: Đọc trước SGK.

III. HOẠT ĐỘNG DẠY HỌC:50. Ổn định tình hình lớp: (1’)51. Kiểm tra bài cũ: (Không kiểm tra bài cũ)52. Giảng bài mới:

GV: Buøi Coâng Phuùc

Page 37: Giao an tin 11

Tröôøng PT DTNT tænh Tin hoïc 11

Thời

gianHoạt động của giáo viên Hoạt động của học sinh Nội dung bài giảng

10’

* Hoạt động 1: Tìm hiểu ý nghĩa của cấu trúc lặp:GV: Nêu bài toán đặt vấn đề như bài toán 1.- Hãy xác định công thức toán học để tính tổng?Gợi ý phương pháp:Ta xem S như là một cái thùng, các số hạng như là những cái ca có dung tích khác nhau, khi đó việc tính tổng trên tương tự như việc đổ các ca nước đó vào thùng S.GV: Có bao nhiêu lần đổ nước vào thùng?Mỗi lần đổ một lượng là bao nhiêu? Lần thứ i là bao nhiêu?- Phải viết bao nhiêu lệnh?2. Nêu bài toán đặt vấn đề như bài toán 2:GV: Em hiểu như thế nào về cách tính tiền gửi tiết kiệm trong bài toán 2?

- Từ đó hãy lập công thức tính tiền thu được sau tháng thứ nhất.- Ta phải thực hiện bao nhiêu lần như vậy?Dẫn dắt: Chương trình được viết như vậy rất dài, khó đọc và dễ sai. Cần có một cấu trúc điều khiển việc thực hiện lặp lại các công việc trên.-

HS: Chú ý, quan sát bài toán đặt vấn đề.

Theo dõi gợi ý:

- Phải thực hiện 100 lần đổ nước vào thùng.

- Mỗi lần đổ

- Phải viết 100 lệnhHS: Chú ý quan sát và trả lời các câu hỏi.- Với số tiền S, sau mỗi tháng sẽ có số tiền lãi là 0,015 *S.- Số tiền này sẽ được cộng vào trong số tiền ban đầu để tính lãi cho tháng tiếp theo.S:= S+0.015*S- Phải thực hiện tính 12 lần như vậy.

Tập trung theo dõi giáo viên trình bày.

1. Cấu trúc lặp:Bài toán 1: Viết chương trình tính tổng:

Bài toán 2: Một người có số tiền là S, ông ta gửi tiết kiệm ngân hàng với lãi suất 1,5 %/ tháng. Hỏi sau 12 tháng gửi tiết kiệm (không rút tiền lãi hàng tháng), ông ta được số tiền là bao nhiêu?

5’

* Hoạt động 2: Tìm hiểu lặp với số lần biết trước:Trong tất cả các ngôn ngữ lập trình đều có một cấu trúc điều khiển việc thực hiện lặp lại với số lần đã định trước.Hãy viết thuật toán để thực hiện Bài toán 1.

HS: thảo luận để thực hiện

2. Lặp với số lần biết trước:Bước 1: N 0; S 1/aBước 2: N N+1Bước 3: Nếu N>100 thì chuyển đến bước 5.Bước 4: S S+ 1/(a+N); quay lại bước 2;Bước 5: Đưa S ra màn hình rồi kết thúc.

GV: Buøi Coâng Phuùc

Page 38: Giao an tin 11

Tröôøng PT DTNT tænh Tin hoïc 11

15’

* Hoạt động 3: Tìm hiểu lệnh lặp For của ngôn ngữ lập trình Pascal:Yêu cầu học sinh nghiên cứu sách giáo khoa và trả lời cấu trúc chung của câu lệnh For?Giải thích: <biến đếm là biến kiểu nguyên hoặc kiểu kí tự>Hỏi: ý nghĩa của <giá trị đầu>, <giá trị cuối>, kiểu dữ liệu của chúng.GV: Trong bài toán gửi tiết kiệm, giá trị đầu là bao nhiêu, giá trị cuối là bao nhiêu?GV: Trong bài toán tính tổng, giá trị đầu là bao nhiêu, giá trị cuối là bao nhiêu?* Những lệnh nào cần lặp lại ta đặt sau Do- Khi cần nhiều lệnh thực hiện sau lệnh do thì ta phải viết như thế nào?- Trong bài toán tính tổng, lệnh nào cần lặp lại?Em có nhận xét gì về giá trị đầu và giá trị cuối.Khi đó lệnh For được gọi là For tiến. Ngôn ngữ lập trình Pascal còn có một dạng For khác gọi là For lùi.

Hãy so sánh giá trị đầu và giá trị cuối?Trong hai bài toán trên, dạng For nào là phù hợp?

HS: Nghiên cứu sách giáo khoa và trả lời.

Dùng để làm giới hạn cho biến đếm.- Cùng kiểu với <biến đếm>HS: Giá trị đầu là 1, giá trị cuối là 12.HS: Giá trị đầu là 1, giá trị cuối là 100.

Ta phải dùng câu lệnh ghép.

S:= S + 0.015 * S

HS: Giá trị đầu , giá trị cuối.

Giá trị đầu > giá trị cuối.

- Sử dụng dạng For tiến là phù hợp.

3. Câu lệnh For – do:a. Dạng tiến:Cấu trúc:For <biến đếm>:= <giá trị đầu> To <giá trị cuổi> Do <lệnh cần lặp>;Biến đếm: là biến kiểu nguyên, kí tự hoặc miền con;Giá trị đầu, giá trị cuối: là biểu thức cùng kiểu với biến đếm. Giá trị đầu phải nhỏ hơn hoặc bằng giá trị cuối.Sự thực hiện của máy: Bước 1: Tính giá trị đầu, gán cho biến đếm.Bước 2: Nếu biến đếm <= giá trị cuối thì thực hiện lệnh cần lặp; tăng biến đếm lên 1 đơn vị, quay lại bước 2.

b. Dạng lùi:For <biến đếm>:= <giá trị cuối> DownTo <giá trị đầu> Do <lệnh cần lặp>;Sự thực hiện của máy: Bước 1: Tính giá trị cuối, gán cho biến đếm.Bước 2: Nếu biến đếm >= giá trị đầu thì thực hiện lệnh cần lặp; tăng biến đếm lên 1 đơn vị, quay lại bước 2.

10’ Hoạt động 4: Rèn luyện kĩ năng vận dụng lệnh lặp For:Nêu nội dung bài toán 1: Mục tiêu là xác định được những việc chính cần làm:- Xác định giá trị đầu, giá trị cuối.- Xác định lệnh cần lặp

Giá trị đầu là 1, giá trị cuối là 100.

4. Các ví dụ:Ví dụ 1: Viết chương trình tính tổng.

Ví dụ 2: Một người có số tiền là S, ông ta gửi tiết kiệm ngân hàng với

GV: Buøi Coâng Phuùc

Page 39: Giao an tin 11

Tröôøng PT DTNT tænh Tin hoïc 11

Chuẩn bị chương trình mẫu

HS: viết chương trình theo sự hướng dẫn của giáo viên

lãi suất 1,5 %/ tháng. Hỏi sau 12 tháng gửi tiết kiệm (không rút tiền lãi hàng tháng), ông ta được số tiền là bao nhiêu?

4 . Củng cố: (3’) - Cấu trúc chung của lệnh lặp For.

5. Dặn dò học sinh chuẩn bị cho tiết học sau: (1’)- Giải bài tập 5, 6 trang 51.- Xem trước phần nội dung của cấu trúc lặp có số lần chưa xác định.

IV. RÚT KINH NGHIỆM, BỔ SUNG:

…………………………………………………………………………………………………

…………………………………………………………………………………………………

…………………………………………………………………………………………………

…………………………………………………………………………………………………

…………………………………………………………………………………………………

………………………………………

Ngày soạn: Tiết 14: CẤU TRÚC LẶP (tt)I. MỤC TIÊU:

1. Kiến thức:- Biết được ý nghĩa của cấu trúc lặp có số lần lặp chưa xác định- Biết được cấu trúc chung của lệnh lặp While trong ngôn ngữ lập trình Pascal- Biết được sự thực hiện của máy khi gặp lệnh While

2. Kỹ năng: - Phân biệt được sự giống nhau và khác nhau giữa cấu trúc lặp For và cấu trúc lặp

While.- Sử dụng đúng lệnh lặp while trong lập trình- Bước đầu biết lựa chọn đúng dạng lệnh lặp để lập trình giải quyết được một số bài

toán đơn giản.

GV: Buøi Coâng Phuùc

Page 40: Giao an tin 11

Tröôøng PT DTNT tænh Tin hoïc 11

3. Thái độ: Tiếp tục rèn luyện các phẩm chất cần thiết của người lập trình như: Xem xét, giải quyết vấn đề một cách cẩn thận, sáng tạo…. điều này thể hiện trong suốt quá trình phân tích bài toán, lựa chọn dữ liệu, chọn cấu trúc điều khiển, viết chương trình, dịch, sửa lỗi, kiểm thử, cải tiến chương trình.

II. CHUẨN BỊ:25. Chuẩn bị của giáo viên: Giáo án, hình ảnh minh họa và máy tính.26. Chuẩn bị của học sinh: Đọc trước SGK.

III. HOẠT ĐỘNG DẠY HỌC:53. Ổn định tình hình lớp: (1’)54. Kiểm tra bài cũ: (7’)

Câu hỏi: Hãy viết lại cấu trúc lặp tiến và lặp lùi. Viết câu lệnh tiến hoặc lùi cho bài toán sau: Trả lời:a. Dạng tiến:Cấu trúc:For <biến đếm>:= <giá trị đầu> To <giá trị cuổi> Do <lệnh cần lặp>;b. Dạng lùi:For <biến đếm>:= <giá trị cuối> DownTo <giá trị đầu> Do <lệnh cần lặp>;Câu lệnh For để thực hiện bài toán trên: S:=1;

FOR i:=2 TO 100 DO S:=S+1/i; Hoặc:

S:=1; FOR i:=100 DOWNTO 2 DO S:=S+1/i;

55. Giảng bài mới:Thờ

i gian

Hoạt động của giáo viên Hoạt động của học sinh Nội dung bài giảng

Hoạt động 1: Tìm hiểu ý nghĩa của cấu trúc lặp có số lần chưa xác địnhVới bài toán 1:GV: Sự khác nhau ở bài toán này với bài toán ở tiết trước?- Bài toán này sẽ lặp lại bao nhiêu lần?- Lặp cho đến khi nào?

Với bài toán 2:Sự khác nhau của bài toán này khác gì so với bài toán trước?- Số lần lặp của lệnh?- Lặp cho đến khi nào?

Tiểu kết: Qua hai ví dụ trên ta thấy có một dạng bài toán có sự lặp lại của

HS: - Bài trước cho giới hạn N- Bài này: Cho giới hạn S- Chưa xác định được số lần lặp.- Lặp cho đến khi điều kiện

được thỏa mãn

HS: Bài trước: Biết số tháng,hỏi số tiền/Bài này: Biết số tiền hỏi số tháng.- Số lần lặp chưa biết trước và đó là số tháng cần tìm.- Lặp cho đến khi số tiền thu được > S1

1. Lặp có số lần chưa xác định:Bài toán 1: Lập trình tính tổng:

Cho đến khi Bài toán 2: Một người có số tiền là S đồng, ông ta gửi tiết kiệm ngân hàng với lãi suất 1,5 %/tháng. Hỏi bao nhiêu tháng người đó có số tiền lớn hơn S1 đồng?

GV: Buøi Coâng Phuùc

1 1 1 11 ...

2 3 4S

N

Page 41: Giao an tin 11

Tröôøng PT DTNT tænh Tin hoïc 11

một số lệnh nhưng không biết trước số lần lặp. Cần có một cấu trúc điều khiển lặp lạo một công việc nhất định khi thỏa mãn điều kiện nào đó.

đồng

Hoạt động 2: Tìm hiểu cấu trúc lệnh lặp While trong ngôn ngữ lập trình Pascal:GV: yêu cầu học sinh nghiên cứu sách giáo khoa và cho biết cấu trúc chung của lệnh lặp While:Giải thích:<điều kiện>: là biểu thức quan hệ hoặc biểu thức logic, là điều kiện để lặp lạiGV: trong bài toán 1, điều kiện để lặp lại là gì?

GV: Trong bài toán 2: điều kiện để lặp lại là gì?<Lệnh cần lặp>: là các lệnh cần phải lặp lại.- Trong bài toán trên có những lệnh nào cần lặp lại?

* Sự khác nhau cơ bản của trong lệnh lặp For và lệnh lặp While là: Lệnh lặp While phải có lệnh để tăng biến chỉ số.

HS: Cấu trúc chung của while … do…While <điều kiện> do <Câu lệnh>

HS: Điều kiện để lặp lại là:

S1<S2

Lệnh S:=S+0.015*S để tính số tiền;t:= t +1: để tính số tháng.S:= S+ 1/(a+i) để tính tổngi := i +1; để tăng số i

2. Cấu trúc While … do:While <điều kiện> do <Câu lệnh>; Điều kiện: là biểu thức quan hệSự thực hiện của máy:B1: Tính giá trị của <điều kiện>B2: Nếu <điều kiện> có giá trị đúng thì: thực hiện lệnh cần lặp, quay lại bước 1.Sơ đồ:

* Hoạt động 3: Một số ví dụ: GV: Giải thích:Chõng nµo 1/(a+N)>=0.0001 th× cßn thùc hiÖn: + T¨ng gi¸ trÞ cña tæng S thªm 1/(a+N). + T¨ng N thªm 1 ®¬n vÞ.

HS: Theo dõi ví dụ.

3. Một số ví dụ:Bài toán 1: Program Bai_toan;Uses Crt;Var a,N:Integer; S:Real;BEGIN Clrscr; Write(‘Nhap gia tri cua a= ‘); Readln(a); S:=1/a;N:=1; WHILE 1/(a+N)>=0.0001 DO BEGIN S:=S+1/(a+N); N:=N+1;

END; Writeln(‘Gia tri cua tong S

GV: Buøi Coâng Phuùc

Điều kiện

Lệnh cần lặp

Đúng

Sai

Page 42: Giao an tin 11

Tröôøng PT DTNT tænh Tin hoïc 11

= ‘, S:8:3); Readln;END.

4 . Củng cố: (3’) - Cấu trúc chung của lệnh lặp while.- Sự thực hiện của máy tính khi gặp lệnh while.

5. Dặn dò học sinh chuẩn bị cho tiết học sau: (1’)- Giải bài tập: 4, 5, 6, 7, 8.- Đọc lại bài lệnh rẽ nhánh và làm các bài tập liên quan, chuẩn bị cho bài thực hành.- Xem nội dung bài thực hành số 2.

IV. RÚT KINH NGHIỆM, BỔ SUNG:

…………………………………………………………………………………………………

…………………………………………………………………………………………………

…………………………………………………………………………………………………

…………………………………………………………………………………………………

…………………………………………………………………………………………………

………………………………………

GV: Buøi Coâng Phuùc

Page 43: Giao an tin 11

Tröôøng PT DTNT tænh Tin hoïc 11

Ngày soạn: Tiết 15: BÀI TẬPI. MỤC TIÊU:

1. Kiến thức:Củng cố lại cho học sinh những kiến thức liên quan đến tổ chức rẽ nhánh và lặp: Cấu

trúc lặp, sơ đồ thực hiện, sự thực hiện của máy tính khi gặp lệnh rẽ nhánh, lệnh lặp.2. Kỹ năng:

Rèn luyện kĩ năng vận dụng và linh hoạt trong việc lựa chọn cấu trúc rẽ nhánh và cấu trúc lặp phù hợp để giải quyết bài toán đặt ra.3. Thái độ:

Tự giác, tính cực, chủ động trong giải quyết các bài tập.II. CHUẨN BỊ:

27. Chuẩn bị của giáo viên: Giáo án, hình ảnh minh họa và máy tính.28. Chuẩn bị của học sinh: Đọc trước SGK.

III. HOẠT ĐỘNG DẠY HỌC:56. Ổn định tình hình lớp: (1’)57. Kiểm tra bài cũ: Không kiểm tra bài cũ.58. Giảng bài mới:

Thời gian

Hoạt động của giáo viên Hoạt động của học sinh Nội dung bài giảng

10’ * Hoạt động 1: Nhắc lại kiến thức đã học về tổ chức rẽ nhánh và lặp.GV: Yêu cầu học sinh nhắc lại cấu trúc rẽ nhánh.GV: Yêu cầu học sinh viết câu lệnh rẽ nhánh cho bài toán tìm giá trị lớn nhất của 2 số.GV: Yêu cầu học sinh viết chương trình hoàn chỉnh cho bài toán trên.

GV: Nếu chuyển bài toán trên thành câu lệnh rẽ nhánh dạng thiếu thì cần phải sửa lại chương trình như thế nào?

HS: trả lời.

HS: if a>b then write(a) else write(b);

HS:BeginWrite(‘Nhap a, b’);Readln (a,b);if a>b then write(a) else write(b); readln;end.HS: BeginWrite(‘Nhap a, b’);Readln (a,b);if a>b then write(a);if b>a then write(b); readln;end.HS:

1. Ôn tập kiến thức về câu lệnh rẽ nhánh và lặp:Cấu trúc rẽ nhánh:if <điều kiện> then <câu lệnh>;If <điều kiện> then <câu lệnh

1>else <câu lệnh 2>;

Cấu trúc lặp For:For <biến đếm>:= <giá trị đầu>

GV: Buøi Coâng Phuùc

Page 44: Giao an tin 11

Tröôøng PT DTNT tænh Tin hoïc 11

Thời gian

Hoạt động của giáo viên Hoạt động của học sinh Nội dung bài giảng

GV: Yêu cầu học sinh nhắc lại những cấu trúc lặp mà em đã học?

GV: Hãy so sánh sự khác nhau của hai cấu trúc For và while:

Cấu trúc lặp For:For <biến đếm>:= <giá trị đầu> To <giá trị cuối> Do <lệnh cần lặp>;For <biến đếm>:= <giá trị cuối> DownTo <giá trị đầu> Do <lệnh cần lặp>;Cấu trúc lặp While:While <điều kiện> do <Câu lệnh>; HS:Giống: Đều là lệnh lặpKhác: For lặp với số lần đã biết trước, while lặp với số lần chưa xác định trước.

To <giá trị cuối> Do <lệnh cần lặp>;For <biến đếm>:= <giá trị cuối> DownTo <giá trị đầu> Do <lệnh cần lặp>;Cấu trúc lặp While:While <điều kiện> do <Câu lệnh>;

30’ * Hoạt động 2: Rèn luyện kĩ năng vận dụng tổ chức lặp:GV: Có thể khai triển biểu thức Y thành tổng của các số hạng như thế nào?- Nhìn vào công thức khai triển, cho biết N lấy giá trị trong đoạn nào?- Ta sử dụng cấu trúc điều khiển nào là phù hợp?GV: Yêu cầu lớp chia thành 3 nhóm để hoàn thành bài tập này.

GV: Giải thích yêu cầu của bài toán:- Bài toán này dùng vòng lặp For hay while?

- Yêu cầu học sinh chia lớp thành 4 nhóm để tiến hành viết chương trình trên.

- Giáo viên gọi các học sinh lên ghi chương trình chung của nhóm mình và

HS: Có thể khai triển là:

- Trong đoạn 1..50

- Sử dụng cấu trúc lặp có số lần đã xác định.HS: Thảo luận để viết chương trình cho bài tập trên.

HS: Dùng vòng lặp While vì chưa biết trước số lần lặp là bao nhiêu.

Các học sinh thảo luận trong nhóm để tiến hành viết chương trình.

HS: Chú ý theo dõi và ghi chép làm tài liệu để thực hành.

2. Các bài tập:Bài 1: Viết chương trình tính giá

trị biểu thức: Y =

Chương trình:Program Bai5b;Uses crt;Var Y: real; N: byte;Begin Clrscr; Y:=0; For i:= 1 to 50 do Y:= Y + n/(n+1); Write(‘Y = ’, Y:8:2); Readln;end.Bài 2: Đưa giá trị e(n) ra màn hình:

, cho

tới khi x 10-6

Chương trình:

program Cau5bTrang51;

uses crt;

var e,u:real;

n:integer;

GV: Buøi Coâng Phuùc

Page 45: Giao an tin 11

Tröôøng PT DTNT tænh Tin hoïc 11

Thời gian

Hoạt động của giáo viên Hoạt động của học sinh Nội dung bài giảng

đưa ra nhận xét để các nhóm rút kinh nghiệm.- Đưa ra chương trình mẫu để học sinh quan sát.

begin

clrscr;

n:=1;

u:=1/n;

e:=1;

while not(u<2.0E-6)do

begin

e:=e+u;

n:=n*(n+1);

u:=1/n;

end;

write('e(n)= ',e:8:2);

readln

end.

59. Củng cố: (3’)Có hai cấu trúc lặp là For và while.For: Dùng khi số lần lặp biết trước;While: Dùng khi số lần lặp của chương trình chưa biết trước.

60. Dặn dò học sinh chuẩn bị cho tiết học sau: (1’)Làm tất cả các bài tập còn lại, chuẩn bị cho bài thực hành.

IV. RÚT KINH NGHIỆM, BỔ SUNG:

…………………………………………………………………………………………………

…………………………………………………………………………………………………

…………………………………………………………………………………………………

…………………………………………………………………………………………………

…………………………………………………………………………………………………

………………………………………

GV: Buøi Coâng Phuùc

Page 46: Giao an tin 11

Tröôøng PT DTNT tænh Tin hoïc 11

Ngày soạn: 25/11/2007Tiết 16-17 BÀI TẬP VÀ THỰC HÀNH 2 I. MỤC TIÊU:

1. Kiến thức:- Xây dựng chương trình có cấu trúc rẽ nhánh;

2. Kỹ năng: -Làm quen với việc hiệu chỉnh chương trình.

3. Thái độ: Tiếp tục rèn luyện các phẩm chất cần thiết của người lập trình như: Xem xét, giải quyết vấn đề một cách cẩn thận, sáng tạo…. điều này thể hiện trong viết chương trình, dịch, sửa lỗi, kiểm thử, cải tiến chương trình.

II. CHUẨN BỊ:29. Chuẩn bị của giáo viên: Giáo án, hình ảnh minh họa và máy tính.30. Chuẩn bị của học sinh: Đọc trước SGK.

III. HOẠT ĐỘNG DẠY HỌC:61. Ổn định tình hình lớp: (1’)62. Kiểm tra bài cũ: (Kiểm tra trong quá trình thực hành)63. Giảng bài mới:

Thời

gianHoạt động của giáo viên Hoạt động của học sinh Nội dung bài giảng

Hoạt động 1: Bài thực hành số 2GV: Nêu ý tưởng tổng quát của bài thực hành.Giải thích cho học sinh hiểu bộ số Pi ta go là bộ số như thế nào?GV: Hãy cho một vài ví dụ về bộ số Pi ta go và bộ số không phải là Pi ta go.

GV: Ý tưởng: Kiểm tra xem có đẳng thức nào trong ba đẳng thức sau đây xảy ra hay không:a2 = b2 + c2

b2 = a2 + c2

c2 = a2 + b2

Như vậy những công việc cần phải làm là:

GV: Sửa lỗi và nêu các chú ý trong quá trình học sinh thực hành gõ chương trình.

HS: Ví dụ về bộ số Pi ta go: 3, 4, 5Ví dụ về bộ số không phải là bộ số Pi ta go:1, 2, 2.

HS: Tiến hành gõ chương trình bộ số Pitago và trả lời các câu hỏi trong bài thực hành số hai.

Nội dung:Bài toán: Bộ số Pi ta go:Biết rằng bộ ba số nguyên dương a, b, c được gọi là bộ số Pi ta go nếu tổng các bình phương của hai số bằng bình phương của các số còn lại. Viết chương trình nhập từ bàn phím ba số nguyên dương a, b, c và kiểm tra xem chúng có là bộ số Pi ta go hay không?

a) Gõ chương trình sau:

program Pi_ta_go;

uses crt;

var a,b,c:integer;

a2,b2,c2:longint;

begin

clrscr;

write('a,b,c:');

readln(a,b,c);

a2:=a;

b2:=b;

GV: Buøi Coâng Phuùc

Page 47: Giao an tin 11

Tröôøng PT DTNT tænh Tin hoïc 11

c2:=c;

a2:=a2*a;

b2:=b2*b;

c2:=c2*c; if(a2=b2+c2)or(b2=a2+c2)or(c2=a2+b2)then

writeln('Ba so da nhap la bo so Pi-ta-go')

else

writeln('Ba so da nhap khong la bo so Pi-ta-go');

readln

end.

b) Lưu chương trình với tên Pitago lên đĩa.c) Nhấn F7 để thực hiện từng câu lệnh chương trình, nhập các giá trị a = 3, b = 4, c = 5.d) Vào bảng chọn Debug mở cửa sổ hiệu chỉnh để xem giá trị a2, b2, c2.e) Nhấn phím F7 để thực hiện các câu lệnh tính những giá trị nói trên, so sánh với kết quả a2 = 9, b2 = 16, c2= 25.f) Quan sát quá trình rẽ nhánh.g) Lặp lại các bước trên với bộ dữ liệu a = 700, b = 1000, c = 800.g) Nếu thay dãy lệnh:

a2:=a;

b2:=b;

c2:=c;

a2:=a2*a;

b2:=b2*b;

c2:=c2*c;

thành dãy lệnh

a2:=a*a;

b2:=b*b;

GV: Buøi Coâng Phuùc

Page 48: Giao an tin 11

Tröôøng PT DTNT tænh Tin hoïc 11

c2:=c*c;

thì có gì thay đổi ở bộ dữ liệu cho ở câu g.

Hoạt động 2: Lập trình giải một số bài tập trong sách giáo khoa:GV: Yêu cầu học sinh lấy những bài tập đã giải ở tiết bài tập thực hành trên máy để thấy được cách thực hiện của máy và hiểu hơn về các cấu trúc đã học.

HS: Viết chương trình bài 4b:

program zb;

uses crt;

var x,y,r,a,b,d,z:real;

begin

clrscr;

write('Nhap diem (x,y): ');

readln(x,y);

write('Nhap tam (a,b): ');

readln(a,b);

write('Nhap ban kinh r (r>0): ');

readln(r);

d:=sqrt(sqr(x-a)+sqr(y-b));

if(d=r)then

z:=abs(x)+abs(y)

else

z:=x+y;

write('z= ',z:8:2);

readln

end.

Các bài tập trong SGK:Bài 4a: Chương trình:

program za;

uses crt;

var x,y,x2,y2,z:real;

begin

clrscr;

write('x,y: ');

readln(x,y);

x2:=x*x;

y2:=y*y;

if(x2+y2<=1)then

z:=x2+y2;

if(x2+y2>1)and(y>=x)then

z:=x+y;

if(x2+y2>1)and(y<x)then

z:=0.5;

write('z = ',z:8:3);

readln

end.

4 . Củng cố: (3’) - Một số lỗi thường gặp trong khi thực hành.

GV: Buøi Coâng Phuùc

Page 49: Giao an tin 11

Tröôøng PT DTNT tænh Tin hoïc 11

- Những kiến thức về cấu trúc lặp và cấu trúc rẽ nhánh.5. Dặn dò học sinh chuẩn bị cho tiết học sau: (1’)

- Chuẩn bị bài cho bài kiểm tra ở tiết sau.IV. RÚT KINH NGHIỆM, BỔ SUNG:

…………………………………………………………………………………………………

…………………………………………………………………………………………………

…………………………………………………………………………………………………

…………………………………………………………………………………………………

…………………………………………………………………………………………………

………………………………………

GV: Buøi Coâng Phuùc

Page 50: Giao an tin 11

Tröôøng PT DTNT tænh Tin hoïc 11

Ngày soạn: Tiết 18: KIỂM TRA THỰC HÀNHI. MỤC TIÊU:

1. Kiến thức:Củng cố lại cho học sinh những kiến thức liên quan đến tổ chức rẽ nhánh và lặp: Cấu

trúc lặp, sơ đồ thực hiện, sự thực hiện của máy tính khi gặp lệnh rẽ nhánh, lệnh lặp.2. Kỹ năng:

Rèn luyện kĩ năng vận dụng và linh hoạt trong việc lựa chọn cấu trúc rẽ nhánh và cấu trúc lặp phù hợp để giải quyết bài toán đặt ra.3. Thái độ:

Tự giác, tính cực, chủ động trong giải quyết các bài tập.II. CHUẨN BỊ:

31. Chuẩn bị của giáo viên: Giáo án, hình ảnh minh họa và máy tính.32. Chuẩn bị của học sinh: Đọc trước SGK.

III. HOẠT ĐỘNG DẠY HỌC:64. Ổn định tình hình lớp: (1’)65. Kiểm tra bài cũ: Không kiểm tra bài cũ.66. Giảng bài mới:

Thời gian

Hoạt động của giáo viên Hoạt động của học sinh Nội dung bài giảng

10’ * Hoạt động 1: Nhắc lại kiến thức đã học về tổ chức rẽ nhánh và lặp.GV: Yêu cầu học sinh nhắc lại cấu trúc rẽ nhánh.GV: Yêu cầu học sinh viết câu lệnh rẽ nhánh cho bài toán tìm giá trị lớn nhất của 2 số.GV: Yêu cầu học sinh viết chương trình hoàn chỉnh cho bài toán trên.

GV: Nếu chuyển bài toán trên thành câu lệnh rẽ nhánh dạng thiếu thì cần phải sửa lại chương trình như thế nào?

GV: Yêu cầu học sinh nhắc lại những cấu trúc

HS: trả lời.

HS: if a>b then write(a) else write(b);

HS:BeginWrite(‘Nhap a, b’);Readln (a,b);if a>b then write(a) else write(b); readln;end.HS: BeginWrite(‘Nhap a, b’);Readln (a,b);if a>b then write(a);if b>a then write(b); readln;end.HS: Cấu trúc lặp For:For <biến đếm>:= <giá

1. Ôn tập kiến thức về câu lệnh rẽ nhánh và lặp:Cấu trúc rẽ nhánh:if <điều kiện> then <câu lệnh>;If <điều kiện> then <câu lệnh

1>else <câu lệnh 2>;

Cấu trúc lặp For:For <biến đếm>:= <giá trị đầu> To <giá trị cuối> Do <lệnh cần lặp>;

GV: Buøi Coâng Phuùc

Page 51: Giao an tin 11

Tröôøng PT DTNT tænh Tin hoïc 11

Thời gian

Hoạt động của giáo viên Hoạt động của học sinh Nội dung bài giảng

lặp mà em đã học?

GV: Hãy so sánh sự khác nhau của hai cấu trúc For và while:

trị đầu> To <giá trị cuối> Do <lệnh cần lặp>;For <biến đếm>:= <giá trị cuối> DownTo <giá trị đầu> Do <lệnh cần lặp>;Cấu trúc lặp While:While <điều kiện> do <Câu lệnh>; HS:Giống: Đều là lệnh lặpKhác: For lặp với số lần đã biết trước, while lặp với số lần chưa xác định trước.

For <biến đếm>:= <giá trị cuối> DownTo <giá trị đầu> Do <lệnh cần lặp>;Cấu trúc lặp While:While <điều kiện> do <Câu lệnh>;

30’ * Hoạt động 2: Rèn luyện kĩ năng vận dụng tổ chức lặp:GV: Có thể khai triển biểu thức Y thành tổng của các số hạng như thế nào?- Nhìn vào công thức khai triển, cho biết N lấy giá trị trong đoạn nào?- Ta sử dụng cấu trúc điều khiển nào là phù hợp?GV: Yêu cầu lớp chia thành 3 nhóm để hoàn thành bài tập này.

GV: Giải thích yêu cầu của bài toán:- Bài toán này dùng vòng lặp For hay while?

- Yêu cầu học sinh chia lớp thành 4 nhóm để tiến hành viết chương trình trên.

- Giáo viên gọi các học sinh lên ghi chương trình chung của nhóm mình và đưa ra nhận xét để các nhóm rút kinh nghiệm.

HS: Có thể khai triển là:

- Trong đoạn 1..50

- Sử dụng cấu trúc lặp có số lần đã xác định.HS: Thảo luận để viết chương trình cho bài tập trên.

HS: Dùng vòng lặp While vì chưa biết trước số lần lặp là bao nhiêu.

Các học sinh thảo luận trong nhóm để tiến hành viết chương trình.

HS: Chú ý theo dõi và ghi chép làm tài liệu để thực hành.

2. Các bài tập:Bài 1: Viết chương trình tính giá

trị biểu thức: Y =

Chương trình:Program Bai5b;Uses crt;Var Y: real; N: byte;Begin Clrscr; Y:=0; For i:= 1 to 50 do Y:= Y + n/(n+1); Write(‘Y = ’, Y:8:2); Readln;end.Bài 2: Đưa giá trị e(n) ra màn hình:

, cho

tới khi x 10-6

Chương trình:

program Cau5bTrang51;

uses crt;

var e,u:real;

n:integer;

begin

GV: Buøi Coâng Phuùc

Page 52: Giao an tin 11

Tröôøng PT DTNT tænh Tin hoïc 11

Thời gian

Hoạt động của giáo viên Hoạt động của học sinh Nội dung bài giảng

- Đưa ra chương trình mẫu để học sinh quan sát.

clrscr;

n:=1;

u:=1/n;

e:=1;

while not(u<2.0E-6)do

begin

e:=e+u;

n:=n*(n+1);

u:=1/n;

end;

write('e(n)= ',e:8:2);

readln

end.

67. Củng cố: (3’)Có hai cấu trúc lặp là For và while.For: Dùng khi số lần lặp biết trước;While: Dùng khi số lần lặp của chương trình chưa biết trước.

68. Dặn dò học sinh chuẩn bị cho tiết học sau: (1’)Làm tất cả các bài tập còn lại, chuẩn bị cho bài thực hành.

IV. RÚT KINH NGHIỆM, BỔ SUNG:

…………………………………………………………………………………………………

…………………………………………………………………………………………………

…………………………………………………………………………………………………

…………………………………………………………………………………………………

…………………………………………………………………………………………………

………………………………………

GV: Buøi Coâng Phuùc

Page 53: Giao an tin 11

Tröôøng PT DTNT tænh Tin hoïc 11

Chương IV: KIỂU DỮ LIỆU CÓ CẤU TRÚC Tiết 18: KIỂU MẢNG

Ngày soạn: Ngày dạy:

I. MỤC TIÊU:1. Kiến thức: - Biết được kiểu mảng một chiều. Biết được một loại biến có chỉ số.

- Biết cấu trúc tạo kiểu mảng một chiều và khai báo biến mảng một chiều.2. Kỹ năng: Tạo được kiểu mảng một chiều và sử dụng biến mảng một chiều trong ngôn ngữlập trình Pascal để giải quyết một số bài toán cụ thể.3. Thái độ: Xây dựng lòng yêu thích giải toán bằng lập trình trên máy tính.

II. CHUẨN BỊ:+ Giáo viên: Giáo án, bảng phụ.+ Học sinh: SGK, đọc trước bài học.

III. TIẾN TRÌNH DẠY HỌC:1. Ổn định tình hình lớp: (1’)2. Kiểm tra bài cũ: Không kiểm tra bài cũ.3. Giảng bài mới:

Tg HĐ của GV HĐ của HS Nội dung15’ * Hoạt động 1: Tìm hiểu

ý nghĩa của mảng một chiều:1. Ghi đề bài và chương trình ví dụ lên bảng.Hỏi: Khi N lớn hơn thì chương trình trên có những hạn chế như thế nào?Dẫn dắt: Để khắc phục những hạn chế trên, người ta ghép chung 7 biến trên thành một dãy và đặt cho nó chung một tên và đánh cho một phần tử một chỉ số.

Bây giờ, nếu như cần giải quyết bài toán trên cho cả năm (365 ngày) với cách thức trên ta phải khai báo 365 biến thực.

Học sinh quan sát trên màn hình và trả lời:Phải khai báo quá nhiều biến. Chương trình phải viết rất dài.

Mảng một chiều là một dãy hữu hạn các phần tử có cùng kiểu dữ liệu. Các phần tử trong mảng có cùng chung một tên và phân biệt nhau bởi chỉ số.- Để mô tả mảng một chiều cần xác định được kiểu của các phần tử và

1. Ý nghĩa của mảng một chiều:

Xét ví dụ đơn giản sau đây: Nhập vào nhiệt độ (trung bình) của mỗi ngày trong tuần. Tính và đưa ra màn hình nhiệt độ trung bình của tuần và số lượng ngày trong tuần có nhiệt độ cao hơn nhiệt độ trung bình của tuần.

Ta sử dụng 8 biến thực và 1 biến nguyên. Chương trình giải quyết bài toán có thể viết như sau :

Program NhietdoTuan; Var t1,t2,t3,t4,t5,t6,t7,tb: Real; dem : integer; Begin     Writeln ('Nhap vao nhiet do cua 7 ngay : ');

GV: Buøi Coâng Phuùc

Page 54: Giao an tin 11

Tröôøng PT DTNT tænh Tin hoïc 11

Tg HĐ của GV HĐ của HS Nội dung

Cách làm như vậy không những đòi hỏi một khối lượng khai báo quá lớn, mà sau đó đoạn chương trình tính cũng quá dài. Để khắc phục khó khăn đó trong TP sử dụng mảng một chiều.

2. Để mô tả mảng một chiều, ta cần xác định những yếu tố nào?

cách đánh số các phần tử của nó.

    Readln(t1,t2,t3,t4,t5,t6,t7);     tb := (t1+t2+t3+t4+t5+t6+t7)/7; dem:= 0; if t1>tb then dem:= dem+1; if t2>tb then dem:= dem+1; if t3>tb then dem:= dem+1; if t4>tb then dem:= dem+1; if t5>tb then dem:= dem+1; if t6>tb then dem:= dem+1; if t7>tb then dem:= dem+1;    WriteLn ('Nhiet do trung binh tuan : ',tb);     WriteLn ('So ngay nhiet do cao hon trung binh : ',dem);     ReadLn End. Mảng một chiều là một dãy hữu hạn các phần tử cùng kiểu. Mảng được đặt tên và mỗi phần tử của dãy sẽ có một chỉ số.

10’ * Hoạt động 2: Yêu cầu học sinh nghiên cứu sách giáo khoa và cho biết cách tạo kiểu dữ liệu mảng một chiều trong ngôn ngữ lập trình Pascal.

Tìm một ví dụ để minh họa.

- Gọi học sinh khác hỏi: Ý nghĩa của lệnh bạn vừa viết?

Ví dụ: Khai báo:Var a: nhietdo;Dung lượng bộ nhớ của biến a đã chiếm là bao nhiêu?- Chú ý cho học sinh về cách đặt tên kiểu dữ liệu và tên biến, tránh nhầm lẫn.- Giới thiệu cách tham chiếu đến từng phần tử của mảng một chiều.

Tham khảo sách giáo khoa và trả lời:

TYPE <Tên kiểu mảng> = ARRAY [Kiểu chỉ số] OF <Kiểu phần tử>;

Ví dụ: Type Nhietdo = array[1..365] of real;Tạo một kiểu dữ mới có tên Nhietdo, gồm 365 phần tử, có kiểu thực.

Biến a chiếm dung lượng là 365 byte trong bộ nhớ.

2. Khai báo kiểu mảng một chiều:

- Khai báo gián tiếp:

TYPE <Tên kiểu mảng> = ARRAY [Kiểu chỉ số] OF <Kiểu phần tử>;

Var <Tên biến mảng>: <tên kiểu mảng>;

trong đó :- Kiểu chỉ số: Thường là một đoạn số nguyên liên tục có dạng n1..n2. với n1 và n2 là các hằng hoặc biểu thức nguyên xác định chỉ số đầu và chỉ số cuối.- Kiểu phần tử là kiểu của phần tử mảng.Khai báo trực tiếp:Var <Tên biến mảng>: array[ Kiểu chỉ số] of <kiểu phần tử>;

Ví d. Các khai báo kiểu mảng một chiều sau đây là hợp lệ :

Type ArrayReal=Array[-

GV: Buøi Coâng Phuùc

Page 55: Giao an tin 11

Tröôøng PT DTNT tænh Tin hoïc 11

Tg HĐ của GV HĐ của HS Nội dung

100..200] Of Real;ArrayBoolean = Array[-n+1.. n+1] Of Boolean;

ArrayInt = [-100..0] Of Integer;

15’ * Hoạt động 3: Tìm hiểu một số ví dụ.

Để viết chương trình giải bài toán này, ta cần khai báo :

- Biến mảng A để nhập các phần tử của dãy số,

- Biến Max để giữ giá trị lớn nhất của dãy.

- Biến CsMax để giữ chỉ số của phần tử có giá trị lớn nhất

Nếu không khai báo hằng Nmax và thì ta sẽ thay đổi khai báo mảng như thế nào cho đúng?Trong chương trình trên, đoạn chương trình nào dùng để nhập giá trị cho biến mảng?

Ta phải thay đổi lại là:Type

ArrInt = Array[1..250]Of Integer;VarN, I, Max, CsMax: Integer; A : ArrInt;

Đoạn chương trình sau dùng để nhập giá trị cho biến mảng:For i:=1 to N Do Begin

Write(‘A[ ‘,i,’]=’); Readln(A[i]); End;

3. Một số ví dụ: Tìm phần tử lớn nhất của dãy số nguyên:

Input : Số nguyên dương N

(N 250) và dãy N số nguyên dương a1, a2 , ..., aN

Output : Giá trị và chỉ số của phần tử có giá trị lớn nhất

Program Visdu1;

Uses CRT;Const

Nmax = 250; Type

SoNguyen = Array[1..Nmax] Of Integer;

Var N, i, Max, CsMax : Integer;

A : SoNguyen;Begin Clrscr;

Write('Nhập số lượng phần tử của dãy số, N = ');Readln(N); For i:=1 to N Do Begin Write(‘A[ ‘,i,’]=’);

Readln(A[i]); End; Max := A[1]; CsMax := 1; For i:=2 To N Do

If A[i] > Max Then Begin Max := A[i]; CsMax := i; End; Write(‘Giá trị Max là :’, Max); Write(‘Chỉ số la :’, CsMax);

GV: Buøi Coâng Phuùc

Page 56: Giao an tin 11

Tröôøng PT DTNT tænh Tin hoïc 11

Tg HĐ của GV HĐ của HS Nội dung ReadlnEnd.

4. Củng cố: (3’)- Cách tạo biến mảng một chiều và cách khai báo biến mảng.- Cách tham chiếu đến từng phần tử.

5. Dặn dò học sinh chuẩn bị cho tiết học sau: (1’)BTVN: Viết chương trình nhập vào một mảng gồm n số nguyên (1<=n<= 100), mỗi số có giá trị tuyệt đối không quá 300. Tính tổng giá trị các phần tử có giá trị chia hết cho k.

IV. RÚT KINH NGHIỆM, BỔ SUNG:

……………………………………………………………………………………………..

Tiết 19: KIỂU MẢNG (tt)Ngày soạn: Ngày soạn:

I. MỤC TIÊU:1. Kiến thức:

- Hiểu được kiểu dữ liệu có cấu trúc bằng cách khai báo được biến mảng trong các bài toán.

- Biết được ngôn ngữ lập trình cho phép tạo ra các kiểu dữ liệu có cấu trúc trên cơ sở các kiểu dữ liệu chuẩn.2. Kỹ năng:

- Tạo được kiểu mảng một chiều và sử dụng biến mảng một chiều trong ngôn ngữ lập trình Pascal để giải quyết một số bài toán cụ thể.3. Thái độ:

Xây dựng lòng yêu thích giải toán bằng lập trình trên máy tính.II. CHUẨN BỊ:

+ Giáo viên: Giáo án, hình ảnh minh họa và máy tính.+ Học sinh: Đọc trước SGK.

III. TIẾN TRÌNH DẠY HỌC:1. Ổn định tình hình lớp: (1’)2. Kiểm tra bài cũ: (7’)

2.1 Viết khai báo trực tiếp biến mảng? Khai báo mảng 100 số thực.Var <Tên biến mảng>: array[ Kiểu chỉ số] of <kiểu phần tử>;Var A : array[1..100] of Real;

2.2 Viết khai báo gián tiếp biến mảng? Khai báo mảng 150 số nguyên. Type <Tên kiểu mảng> = ARRAY [Kiểu chỉ số] OF <Kiểu phần tử>;

Var <Tên biến mảng>: <tên kiểu mảng>; Type SoNguyen = Array[1..150] of Integer;

Var A : SoNguyen;

2. Giảng bài mới:Tg HĐ của GV HĐ của HS Nội dung15’ * Hoạt động 1: Vận

dụng kiểu mảng một chiều để lập trình giải các bài toán đơn giản:B1: Nhập N, các số hạng A1,A2,..,An.

3. Một số ví dụ:a. Sắp xếp bằng thuật toán tráo đổi:Sắp xếp dãy số nguyên bằng thuật toán tráo đổi.- Input: soá nguyeân döông

GV: Buøi Coâng Phuùc

Page 57: Giao an tin 11

Tröôøng PT DTNT tænh Tin hoïc 11

Tg HĐ của GV HĐ của HS Nội dung B2: i 0 B3: Nếu I = N-1 thì đưa ra dãy A đã được sắp xếp rồi kết thúc B4: i i+1, j i B5: j i+1 B6: Nếu j> N thì quay lại bước 3 B7: Nếu Ai > Aj thì ttráo đổi Ai và Aj cho nhau B8: Quay lại bước 5.

- Đối với bài toán trên nếu không sử dụng biến mảng 1 chiều, ta có thể giải quyết được bài toán không? Khó khăn gì?* Định hướng: Sử dụng kiểu mảng 1 chiều để giải quyết bài toán- Yêu cầu học sinh khai báo biến mảng-Yêu cầu học sinh tìm các nhiệm vụ chính cần giải quyết

-Được, nhưng chương trình dài dòng, khó xây dựng. * Theo dõi sự hướng dẫn của giáo viên

- Var A: array[1..250] of integer;- Các bước+ Nhập N và nhập giá trị cho mảng+ Thuật toán trao đổi + In kết quả(N5+6)

N vaø daõy soá A1,A2,..,An.-Output: Daõy A ñöôïc saép xeáp theo thöù töï khoâng giaûmProgram Sapxep;Uses crt;Var A: array[1..250] of integer; N,i,j,tg: integer;Begin Clrscr; Write(' Nhap so phan tu mang N=');Readln(N); For i:= 1 to N do Begin write(' A[',i,'] ='); Readln(A[i]); End; For i := 1 to N-1 do For j := i+1 to N do If A[i] > A[ j] Then Begin tg:=A[i]; A[i]:=A[ j]; A[ j]:=tg; End; End; Writeln('Day sau khi Sap xep:'); For i:= 1 to N do Write(A[i]:8); Readln End.

18’ * Hoạt động 2:Vì dãy A là dãy tăng, ta thực hiện thu hẹp nhanh phạm vi tìm kiếm bằng cách so sánh k với A[giua] và xét các trường hợp: - A[giua]=k tìm thấy chỉ số giữa và kết thúc;- A[giua]>k Thu hẹp về phía bên trái (Cuối = Giữa -1);- A[giua]<k Thu hẹp về phía bên phải (Đầu = Giữa +1);Quá trình trên được lặp lại chừng nào còn chưa tìm thấy hoặc Dau <=

Mô tả bài toán này bằng phương pháp liệt kê:Bước1:NhậpN,cácsố hạng

a1, a2,..., aN và khoá k;

Bước 2:Dau 1, Cuoi N;

Bước 3: Giua

;

Bước 4: Nếu aGiua = k thì thông báo chỉ số Giua, rồi kết thúc;

Bước 5: Nếu aGiua > k thì đặt Cuoi = Giua – 1 rồi

b. Tìm kiếm nhị phân:Nhập vào một dãy A tăng gồm N (N 250) số nguyên dương khác nhau và một số k. Cho biết vị trí của số hạng có giá trị bằng k trong dãy (nếu có) ? * Input: Nhập số nguyên dương n, dãy n số nguyên dương a1,a2,...,an và số nguyên k* Output: Chỉ số i mà ai = k hoặc thông báo “Không tìm thấy” nếu không có số hạng nào của dãy A có giá trị bằng k. Dau:=1; Cuoi:=n; tim_thay:=false;while ( Dau<= Cuoi) or NOT(tim_thay) doBegin Giua:= (Dau+Cuoi) div 2;IF A[giua] = k then Tim_thay :=true

GV: Buøi Coâng Phuùc

Page 58: Giao an tin 11

Tröôøng PT DTNT tænh Tin hoïc 11

Tg HĐ của GV HĐ của HS Nội dungCuoi. chuyển đến bước 7;

Bước 6: Dau Giua+ 1;

Bước 7: Nếu Dau > Cuoi thì thông báo dãy A không có số hạng có giá trị bằng k, rồi kết thúc;

Bước 8: Quay lại bước 3.

else IF (A[Giua]>k) then Cuoi := Giua – 1 else Dau := Giua +1;end;IF Tim_thay then Writeln(‘ Chi so tim duoc la : ’,Giua) Else Writeln(‘Khong tim thay’);

3. Củng cố: (3’)- Cách tạo biến mảng một chiều và cách khai báo biến mảng.- Cách tham chiếu đến từng phần tử.

4. Dặn dò học sinh chuẩn bị cho tiết học sau: (1’)BTVN: Trả lời các câu hỏi 1 – 4, làm bài tập 5, 6, 7 sách giáo khoa.

Đọc trước nội dung về kiểu mảng hai chiều, sách giáo khoa.IV. RÚT KINH NGHIỆM, BỔ SUNG: …………………………………………………………….

Tiết 20: KIỂU MẢNG (tt)Ngày soạn: Ngày dạy:

I. MỤC TIÊU:1. Kiến thức:

- Biết được dữ liệu mới là kiểu mảng hai chiều.- Biết được cách tạo kiểu mảng hai chiều, cách khai báo biến, tham chiếu đến từng

phần tử của mảng.2. Kỹ năng:

- Tạo được kiểu mảng hai chiều và sử dụng biến mảng hai chiều trong ngôn ngữ lập trình Pascal để giải quyết một số bài toán cụ thể.3. Thái độ:

Xây dựng lòng yêu thích giải toán bằng lập trình trên máy tính.II. CHUẨN BỊ:

+ Giáo viên: Giáo án, hình ảnh minh họa.+ Học sinh: Đọc trước SGK.

III. PHƯƠNG PHÁP:Thuyết trình và vấn đáp.

IV. TIẾN TRÌNH DẠY HỌC: 1. Ổn định tình hình lớp: (1’) 2. Kiểm tra bài cũ: (Không kiểm tra bài cũ) 3. Giảng bài mới:

Tg HĐ của GV HĐ của HS Nội dung15’ * Hoạt động 1: Tìm hiểu

ý nghĩa của mảng hai chiều:Giới thiệu các ví dụ trong sách giáo khoa: Tính và đưa ra màn hình bảng cửu chương.Hỏi: Sử dụng kiến thức mảng một chiều, hãy đưa ra cách sử dụng kiểu

Chú ý theo dõi yêu cầu và dẫn dắt của giáo viên.

- Sử dụng 9 mảng một chiều, một mảng lưu một hàng của bảng.

1. Khái niệm:Mảng hai chiều là bảng các phần tử cùng kiểu.

Var a : array [1..10] of array [1.. 20] of real;

Var a : array [1..10, 1..20] of real;

Tổng quát, khai báo mảng hai chiều có dạng :

GV: Buøi Coâng Phuùc

Page 59: Giao an tin 11

Tröôøng PT DTNT tænh Tin hoïc 11

Tg HĐ của GV HĐ của HS Nội dungmảng đó để lưu trữ bảng cửu chương- Với cách làm như thế thì ta phải khai báo bao nhiêu biến mảng?- Có những khó khăn gì?- Các yếu tố của mảng hai chiều:Để mô tả mảng hai chiều ta cần xác định những yếu tố nào? Mỗi phần tử của mảng hai chiều được xác định bởi tên mảng cùng với hai chỉ số, được viết trong cặp ngoặc [ và ]. Các chỉ số cách nhau bởi dấu phẩy.

- Khai báo 9 biến mảng một chiều.

- Khai báo nhiều biến, viết chương trình nhập xuất dữ liệu dài.

Các yếu tố để xây dựng mảng hai chiều:- Tên kiểu mảng- Số phần tử trên một dòng mà trên một cột.- Kiểu dữ liệu chung của mọi phần tử.

VAR <Tên biến mảng>: ARRAY[Kiểu chỉ số] OF ARRAY[Kiểu chỉ số] OF

<Kiểu phần tử>;

Để cho gọn có thể viết :

VAR <Tên biến mảng>: ARRAY[Kiểu chỉ số dòng, Kiểu chỉ số cột] OF

<Kiểu phần tử>;2. Ví dụ: Xây dựng mảng hai chiều B gồm 10 dòng, 10 cột với các phần tử là các số nguyên được tạo ngẫu nhiên trong phạm vi từ -20 đến 20. Đưa ra màn hình tất cả các phần tử của mảng có giá trị lớn hơn số k cho trước. Giá trị của k được nhập từ bàn phím.

25’ * Hoạt động 2: Rèn luyện kĩ năng sử dụng mảng hai chiều: Chiếu chương trình ví dụ, chạy thử chương trình.Hỏi: mảng hai chiều trong chương trình trên có tên là gì? Và nó có chức năng gì?- Mỗi phần tử trong mảng hai chiều này thuộc kiểu dữ liệu nào? Trong chương trình trên ta sử dụng hàm chuẩn Random(n)cho giá trị là số nguyên ngẫu nhiên trong khoảng từ 0 đến n - 1.- Yêu cầu học sinh theo dõi chương trình trong SGK- Để lần lượt có được giá trị các phần tử tạo nên mảng hai chiều B, thường dùng hai vòng lặp for – do lồng nhau.

Mảng hai chiều trong chương trình trên có tên là b, nó dùng để tạo ra mảng 2 chiều gồm 10 dòng và 10 cột.

Mỗi phần tử trong mảng hai chiều này thuộc kiểu dữ liệu là integer.

Program MangHaiChieu; Uses CRT; Var b : array[1..10, 1..10] of integer; i, j, k : integer; Begin Clrscr; Randomize; { Khởi động sinh số ngẫu nhiên } For i:= 1 to 10 do begin for j:= 1 to 10 do begin b[i,j]:= random(41)-20; write(b[i,j], ' '); end; writeln; end; write('Nhap vao gia tri k = '); readln(k); write('Danh sach cac phan tu mang co gia tri lon hon ',k,': ');

GV: Buøi Coâng Phuùc

Page 60: Giao an tin 11

Tröôøng PT DTNT tænh Tin hoïc 11

Tg HĐ của GV HĐ của HS Nội dungYêu cầu học sinh hãy viết các lệnh để nhập từ bàn phím giá trị của phần tử này:- Giới thiệu hàm Random(N)

- Lệnh để nhập từ bàn phím giá trị của phần tử này:Write(‘B[‘, i,’,’j,’]= ’);Readln(B[i,j]);

For i:= 1 to 10 do For j:= 1 to 10 do If b[i, j]>k then write (b[i, j], ' '); Readln End.

4. Củng cố: (3’)- Cách tạo biến mảng hai chiều và cách khai báo biến mảng.- Cách tham chiếu đến từng phần tử.

5. Dặn dò học sinh chuẩn bị cho tiết học sau: (1’)BTVN: Trả lời các câu hỏi 1 – 4, làm bài tập 8, 9 sách giáo khoa.

Chuẩn bị trước bài thực hành số 3.V. RÚT KINH NGHIỆM, BỔ SUNG:

…………………………………………………………………………………………………………

Tiết 22 & 23: BÀI TẬP VÀ THỰC HÀNH 3Ngaøy soaïn: Ngaøy daïy:

I. MỤC TIÊU:1. Kiến thức:

- Thực hành những kĩ năng đã học về mảng một chiều- Nâng cao kĩ năng sử dụng một số câu lệnh và một số kiểu dữ liệu thông qua việc

tìm hiểu, chạy thử các chương trình có sẵn2. Kỹ năng:

- Biết giải được một số bài toán tính toán, tìm kiếm đơn giản trên máy tính3. Thái độ:

Xây dựng lòng yêu thích giải toán bằng lập trình trên máy tính.II. CHUẨN BỊ:

- Giáo viên: Giáo án, hình ảnh minh họa và máy tính.-Học sinh: Đọc trước SGK.

III. PHÖÔNG PHAÙP:Luyeän taäp

IV. HOẠT ĐỘNG DẠY HỌC:1. Ổn định tình hình lớp: (1’)2. Kiểm tra bài cũ: (Không kiểm tra bài cũ)3. Giảng bài mới:

Tg HÑ cuûa GV HÑ cuûa HS Nội dung Tiết 1:

40’Hoạt động 1: Tìm hiểu bài tập 1

- Yêu cầu học sinh đọc đề bài, tìm Input, Output của bài toán.

Chú ý theo dõi yêu cầu và dẫn dắt của giáo viên.Input: n là số nguyên, dãy A1, A2, … An mỗi phần tử có trị tuyệt đối không vượt

Bài 1. Cho mảng A gồm n (n ≤ 100) số nguyên, mỗi số theo trị tuyệt đối không vượt quá 300. Tính tổng các phần tử của mảng là bội số của một số nguyên dương k cho trước.

GV: Buøi Coâng Phuùc

Page 61: Giao an tin 11

Tröôøng PT DTNT tænh Tin hoïc 11

Tg HÑ cuûa GV HÑ cuûa HS Nội dung

- Trong chương trình mẫu có sẵn, hãy chỉ ra phần khai báo mảng, nhập số phần tử của mảng, nhập các phần tử thành phần trong mảng?

- Thực hành gõ chương trình trên vào máy tính và cho thực hiện chương trình.

- Kiểm tra kết quả thực hiện được.

quá 300.Output: tổng các phần tử của mảng là bội số của một số nguyên dương k cho trước

Phần khai báo chương trình:Type MyArray=Array[1..nmax] Of Integer;Var A : MyArray;

- Phần nhập số phần tử của mảng, nhập các phần tử thành phần trong mảng

Write('Nhap n ='); ReadLn(n);

{Tạo ngẫu nhiên mảng gồm n số nguyên}

For i:= 1 to n do A[i]:= Random(301)- Random(301);   Write('Nhap k = ');

ReadLn(k);

a) Hãy tìm hiểu, gõ và chạy thử chương trình sau đây :

Program Sum1; uses crt;Const nmax=100; Type MyArray=Array[1..nmax] Of Integer;Var A : MyArray;   s,n,i,k: Integer; Begin    Clrscr; Randomize;

Write('Nhap n ='); ReadLn(n);

{Tạo ngẫu nhiên mảng gồm n số nguyên}

For i:= 1 to n do A[i]:= Random(301)- Random(301);   Write('Nhap k = ');

ReadLn(k);s:=0;

   For i:=1 To n Do if A[i] mod k = 0 then

s:=s+A[i];   WriteLn('Tong can tinh la: ',s);    ReadLn End.

b) Hãy đưa các câu lệnh sau đây vào những vị trí cần thiết nhằm sửa đổi chương trình trong câu a để có được chương trình đưa ra số lượng số dương và số lượng số âm trong mảng.

posi, neg : Integer; posi:= 0; neg:= 0; If A[i]>0 Then Inc(posi)        Else If A[i]<0 Then Inc(neg);WriteLn(posi:4,neg:4);

Tiết 2:

GV: Buøi Coâng Phuùc

Page 62: Giao an tin 11

Tröôøng PT DTNT tænh Tin hoïc 11

Tg HÑ cuûa GV HÑ cuûa HS Nội dung

40’ Hoạt động 2: Tìm hiểu bài tập2

- Yêu cầu học sinh đọc đề bài, tìm Input, Output của bài toán.

- Trong chương trình mẫu có sẵn, hãy chỉ ra phần khai báo mảng, nhập số phần tử của mảng, nhập các phần tử thành phần trong mảng?

- Thực hành gõ chương trình trên vào máy tính và cho thực hiện chương trình.

- Kiểm tra kết quả thực hiện được.

Chú ý theo dõi yêu cầu và dẫn dắt của giáo viên.Input: n là số nguyên, dãy A1, A2, … An mỗi phần tử có trị tuyệt đối không vượt quá 300.Output: chỉ số và giá trị của phần tử có giá trị lớn nhất của mảng. Nếu có nhiều phần tử có cùng giá trị lớn nhất thì đưa ra phần tử với chỉ số nhỏ nhấtPhần khai báo chương trình:Type MyArray=Array[1..nmax] Of Integer;Var A : MyArray;

- Phần nhập số phần tử của mảng, nhập các phần tử thành phần trong mảng

Randomize;

Write('Nhap n = '); ReadLn(n);

{Tạo ngẫu nhiên mảng gồm n số nguyên} For i:= 1 to n do A[i]:= Random(300)- Random(300);

Bài 2. Viết chương trình tìm phần tử có giá trị lớn nhất của mảng. Đưa ra màn hình chỉ số và giá trị của phần tử tìm được. Nếu có nhiều phần tử có cùng giá trị lớn nhất thì đưa ra phần tử với chỉ số nhỏ nhất.

a) Hãy gõ, tìm hiểu chương trình sau đây :

Program MaxElement; Const Nmax= 100; Type MyArray = Array[1..Nmax] Of Integer;Var A : MyArray;   n,i,j : Integer; Begin    Randomize;

Write('Nhap n = '); ReadLn(n); {Tạo ngẫu nhiên mảng gồm

n số nguyên} For i:= 1 to n do A[i]:= Random(300)- Random(300);   j:= 1; For i:= 2 To n Do If A[i] > A[j] Then j:= i;   Write ('Chi so: ',j, ' Gia tri: ',A[j]:4);   ReadLn End. b) Viết lại chương trình trên để đáp ứng yêu cầu sau : Đưa ra các chỉ số của các phần tử có cùng giá trị lớn nhất.

- Củng cố: (3’)- Cách tạo biến mảng một chiều và cách khai báo biến mảng.- Cách tham chiếu đến từng phần tử.

- Dặn dò học sinh chuẩn bị cho tiết học sau: (1’)Chuẩn bị trước bài thực hành số 4.

V. RÚT KINH NGHIỆM, BỔ SUNG:

GV: Buøi Coâng Phuùc

Page 63: Giao an tin 11

Tröôøng PT DTNT tænh Tin hoïc 11

…………………………………………………………………………………………………

…………………………………………………………………………………………………

…………………………………………………………………………………………………

…………………………………………………………………………………………………

…………………………………………………………………………………………………

………………………………………

Tiết 23,24: BÀI TẬP VÀ THỰC HÀNH 4Ngaøy soaïn: Ngaøy daïy:

I. MỤC TIÊU:1. Kiến thức:

- Thực hành những kĩ năng đã học về mảng hai chiều- Biết nhận xét, phân tích, đề xuất thuật toán giải bài toán sao cho chương trình chạy

nhanh hơn.2. Kỹ năng:

- Làm quen với dữ liệu có cấu trúc và bài toán sắp xếp.3. Thái độ:

Xây dựng lòng yêu thích giải toán bằng lập trình trên máy tính.II. CHUẨN BỊ:

1. Giáo viên: Giáo án, hình ảnh minh họa và máy tính.2. Học sinh: Đọc trước SGK.

III. PHÖÔNG PHAÙP: Luyeän taäp

IV. HOẠT ĐỘNG DẠY HỌC:1. Ổn định tình hình lớp: (1’)2. Kiểm tra bài cũ: (Không kiểm tra bài cũ)3. Giảng bài mới:

Tg HÑ cuûa GV HÑ cuûa HS Nội dung

42’ Hoạt động 1: Tìm hiểu bài tập 1

GV: Buøi Coâng Phuùc

Page 64: Giao an tin 11

Tröôøng PT DTNT tænh Tin hoïc 11

Tg HÑ cuûa GV HÑ cuûa HS Nội dung - Yêu cầu học sinh đọc đề bài, tìm Input, Output của bài toán.

- Trong chương trình mẫu có sẵn, hãy chỉ ra phần khai báo mảng, nhập số phần tử của mảng, nhập các phần tử thành phần trong mảng?

- Thực hành gõ chương trình trên vào máy tính và cho thực hiện chương trình.

- Kiểm tra kết quả thực hiện được.

Chú ý theo dõi yêu cầu và dẫn dắt của giáo viên.Input: n là số nguyên, dãy A1, A2, … An mỗi phần tử có trị tuyệt đối không vượt quá 300.Output: tổng các phần tử của mảng là bội số của một số nguyên dương k cho trước

Phần khai báo chương trình:Type MyArray=Array[1..nmax] Of Integer;Var A : MyArray;

- Phần nhập số phần tử của mảng, nhập các phần tử thành phần trong mảng

Write('Nhap n ='); ReadLn(n);

{Tạo ngẫu nhiên mảng gồm n số nguyên}

For i:= 1 to n do A[i]:= Random(301)- Random(301);   Write('Nhap k = ');

ReadLn(k);

Bài 1. Viết chương trình sắp xếp các phần tử của mảng theo thứ tự không giảm.

Hãy gõ, tìm hiểu và chạy thử chương trình sau đây với các giá trị khác nhau của n. Qua đó, rút ra nhận xét về thời gian chạy của chương trình.

Program Sorting; Const Nmax=10000; Type MyArray=Array[1..Nmax] Of Integer;Var A : MyArray;   n,i,j, k, tg : Integer; Begin

Randomize;    Write('Nhap n = '); ReadLn(n);

{Tạo ngẫu nhiên mảng gồm n số nguyên} For i:= 1 to n do A[i]:= Random(300)- Random(300); For i:= 1 To n-1 Do Begin k:= i; { Tìm chỉ số của phần tử nhỏ nhất trong đoạn từ i đến n } For j:= i+1 To n Do      If A[j] < A[k] Then k:= j; { Đổi chỗ A[i] và A[k] } tg:= A[i]; A[i]:= A[k]; A[k]:= tg; End; Write('Da sap xep xong. Go ENTER de xem ket qua...'); Readln;

{ Đưa kết quả ra màn hình }   Writeln('Day duoc sap: '); For i:= 1 To n Do Write(A[i]:4);   ReadLn End.

GV: Buøi Coâng Phuùc

Page 65: Giao an tin 11

Tröôøng PT DTNT tænh Tin hoïc 11

Tg HÑ cuûa GV HÑ cuûa HS Nội dung

42’Hoạt động 2: Tìm hiểu bài tập2

- Yêu cầu học sinh đọc đề bài, tìm Input, Output của bài toán.

- Trong chương trình mẫu có sẵn, hãy chỉ ra phần khai báo mảng, nhập số phần tử của mảng, nhập các phần tử thành phần trong mảng?

- Thực hành gõ chương trình trên vào máy tính và cho thực hiện chương trình.

- Kiểm tra kết quả thực hiện được.

Chú ý theo dõi yêu cầu và dẫn dắt của giáo viên.Input: n là số nguyên, dãy A1, A2, … An mỗi phần tử có trị tuyệt đối không vượt quá 300.Output: chỉ số và giá trị của phần tử có giá trị lớn nhất của mảng. Nếu có nhiều phần tử có cùng giá trị lớn nhất thì đưa ra phần tử với chỉ số nhỏ nhấtPhần khai báo chương trình:Type MyArray=Array[1..nmax] Of Integer;Var A : MyArray;

- Phần nhập số phần tử của mảng, nhập các phần tử thành phần trong mảng

Randomize;

Write('Nhap n = '); ReadLn(n);

{Tạo ngẫu nhiên mảng gồm n số nguyên} For i:= 1 to n do A[i]:= Random(300)- Random(300);

Bài 2. Viết chương trình tìm phần tử có giá trị lớn nhất của mảng. Đưa ra màn hình chỉ số và giá trị của phần tử tìm được. Nếu có nhiều phần tử có cùng giá trị lớn nhất thì đưa ra phần tử với chỉ số nhỏ nhất.

a) Hãy gõ, tìm hiểu chương trình sau đây :

Program MaxElement; Const Nmax= 100; Type MyArray = Array[1..Nmax] Of Integer;Var A : MyArray;   n,i,j : Integer; Begin    Randomize;

Write('Nhap n = '); ReadLn(n); {Tạo ngẫu nhiên mảng gồm

n số nguyên} For i:= 1 to n do A[i]:= Random(300)- Random(300);   j:= 1; For i:= 2 To n Do If A[i] > A[j] Then j:= i;   Write ('Chi so: ',j, ' Gia tri: ',A[j]:4);   ReadLn End. b) Viết lại chương trình trên để đáp ứng yêu cầu sau : Đưa ra các chỉ số của các phần tử có cùng giá trị lớn nhất.

+ Củng cố: (3’)- Cách tạo biến mảng một chiều và cách khai báo biến mảng.- Cách tham chiếu đến từng phần tử.

+ Dặn dò học sinh chuẩn bị cho tiết học sau: (2’)Ñoïc tröôùc baøi Kieåu xaâu.

V. RÚT KINH NGHIỆM, BỔ SUNG:

GV: Buøi Coâng Phuùc

Page 66: Giao an tin 11

Tröôøng PT DTNT tænh Tin hoïc 11

…………………………………………………………………………………………………

…………………………………………………………………………………………………

…………………………………………………………………………………………………

…………………………………………………………………………………………………

…………………………………………………………………………………………………

………………………………………

Tiết 25: KIỂU XÂUNgày soạn: Ngaøy daïy:

I. MỤC TIÊU:1. Kiến thức:

- Biết được một kiểu dữ liệu mới, biết được khái niệm kiểu xâu.- Phân biệt sự giống và khác nhau giữa kiểu mảng kí tự và kiểu xâu kí tự.- Biết được cách khai báo biến, nhập xuất dữ liệu, tham chiếu đến từng kí tự của xâu.- Biết các phép toán liên quan đến xâu.

2. Kỹ năng: - Khai báo được biến kiểu xâu trong 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 quyết một soá baøi toán đơn giản.3. Thái độ:

Xây dựng lòng yêu thích giải toán bằng lập trình trên máy tính.II. CHUẨN BỊ:

- Giáo viên: Giáo án, hình ảnh minh họa.- Học sinh: Đọc trước SGK.

III. PHÖÔNG PHAÙP:Thoâng qua caùc hoaït ñoäng töông taùc giöõa troø – troø, thaày – troø

ñeå lónh hoäi kieán thöùc, kó naêng theo muïc tieâu baøi hoïc.IV. HOẠT ĐỘNG DẠY HỌC:

1. Ổn định tình hình lớp: (1’)2. Kiểm tra bài cũ: (Không kiểm tra bài cũ)3. Giảng bài mới:

GV: Buøi Coâng Phuùc

Page 67: Giao an tin 11

Tröôøng PT DTNT tænh Tin hoïc 11

Tg HÑ cuûa GV HÑ cuûa HS Nội dung 15’ Hoạt động 1: Tìm hiểu xâu và cách sử dụng

1. Tìm hiểu ý nghĩa của xâu kí tự:Bài toán đặt vấn đề: Viết chương trình nhập họ tên của 30 học sinh trong lớp:Hỏi: Ta sẽ chọn kiểu dữ liệu như thế nào? Khai báo biến như thế nào?

Hỏi: Có những khó khăn gì gặp phải?2. Tìm hiểu về kiểu xâu:- Giới thiệu cách khai báo biến xâu trong ngôn ngữ lập trình Pascal.- Ý nghĩa của từ String, [n]?

- Khi khai báo không có [n] thì số lượng kí tự tối đa là bao nhiêu?- Yêu cầu học sinh cho một ví dụ về xâu kí tự.- Xâu có bao nhiêu kí tự.

Hoïc sinh traû lôøi:- Kiểu mảng một chiều gồm 30 kí tự.- Khai báo một biến mảng A để lưu họ tên của một học sinhReadln(a[1]); Readln(a[2]);Readln(a[3]);….Readln(a[n]);- Chương trình viết dài dòng. Khi nhập dữ liệu, phải thực hiện gõ nhiều phím.

- String là tên kiểu xâu[n] là giá trị quy định số lượng kí tự tối đa mà biến xâu có thể chứa.- Số kí tự tối đa là 255.

- Ví dụ: ‘HA NOI’- Xâu có 6 kí tự, dấu cách là một kí tự.

1. Kiểu dữ liệu xâu và cách khai báo:

Xâu là dãy các kí tự trong bảng mã ASCII. 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 0 gọi là xâu rỗng. Để khai báo kiểu dữ liệu xâu ta sử dụng từ khoá STRING tiếp theo là độ dài lớn nhất của xâu (không vượt quá 255) được ghi trong cặp ngoặc [ và ].

Khai baùo:

VAR <Tên biến> : STRING[Độ dài lớn nhất của xâu];

Ví dụ : Var Name : string[26];

Trong mô tả xâu có thể bỏ qua phần khai báo độ dài, chẳng hạn :

Var Chugiai : String; Khi đó độ dài lớn nhất của xâu sẽ nhận giá trị ngầm định là 255.

10’ Hoạt động 2: Nhập, xuất dữ liệu cho biến xâu- Giới thiệu cấu trúc chung của thủ tục nhập, xuất dữ liệu:- Yêu cầu học sinh tìm ví dụ cụ thể?- Ta có thể sử dụng lệnh gán để nhập giá trị cho biến xâu. Cấu trúc chung:Tên_biến_xâu:= Hằng_xâu;- Tham chiếu đến từng phần tử trong xâu- Giới thiệu cấu trúc chung

- Ví dụ Readln(Hoten);- Ví dụ Write (‘Ho ten: ’, Hoten);

Cách tham chiếu đến từng phần tử trong xâu giống cấu trúc chung khi tham chiếu, tên biến [chỉ số].Ví dụ : Hoten[2];

2. Nhập, xuất dữ liệu cho biến xâu:Dùng các lệnh Readln để nhập và write để xuất như nhập xuất dữ liệu bình thường.Ví dụ: Readln(Hoten); Write (‘Ho ten: ’, Hoten);- Cách tham chiếu đến từng phần tử trong xâu giống cấu trúc chung khi tham chiếu tên biến [chỉ số].Ví dụ : Hoten[2];

15’ Hoạt động 3: Tìm hiểu các phép toán liên quan đến xâu

Biểu thức mà trong đó các toán hạng là các biến xâu, biến kí tự, hằng xâu gọi là biểu thức xâu. Với các dữ

3. Các thao tác xử lí xâu:

a, Phép ghép xâu, kí hiệu là +, được sử dụng để ghép nhiều xâu thành một xâu. Có thể thực hiện phép

GV: Buøi Coâng Phuùc

Page 68: Giao an tin 11

Tröôøng PT DTNT tænh Tin hoïc 11

Tg HÑ cuûa GV HÑ cuûa HS Nội dung

liệu kiểu xâu có thể thực hiện phép toán ghép xâu và các phép toán quan hệ.

Coù caùc pheùp toaùn so saùnh xaâu naøo?

Các phép so sánh =, <>, <, >, <=, >= thực hiện việc so sánh hai xâu và có thứ tự ưu tiên thực hiện thấp hơn phép ghép.

Khi naøo xaâu A ñöôïc coi laø lôùn hôn xaâu B?

Cho kết quả của các ví dụ sau:

a. ‘AB’ <’ABC’

b. ‘AC’< ‘ABC’

Hai xaâu nhö theá naøo ñöôïc goïi laø baèng nhau?

- Có các phép <; <=; >; >=; <>. =.

Xâu A được coi là lớn hơn xâu B nếu như kí tự đầu tiên khác nhau giữa chúng trong xâu A có chỉ số trong bảng mã ASCII là lớn hơn.

- Kết quả True;- Kết quả là False.

Hai x©u ®îc coi lµ b»ng nhau nÕu nh chóng lµ gièng nhau hoµn toµn.

ghép xâu đối với các hằng và các biến xâu.

Ví dụ 1. Phép ghép xâu :

'Ha' + ' noi' +' - '+'Viet Nam'

cho xâu kết quả : 'Ha noi - Viet nam'.

b, Caùc pheùp so saùnh: baèng (=), khaùc (<>), nhoû hôn (<), lôùn hôn (>), nhoû hôn hoaëc baèng (<=), lôùn hôn hoaëc baèng (>=), thöù töï thöïc hieän thaáp hôn pheùp gheùp xaâu vaø thöïc hieän vieäc so saùnh theo caùc qui taéc:

- Xaâu A lôùn hôn xaâu B neáu nhö kí töï ñaàu tieân khaùc nhau giöõa chuùng keå töø traùi sang trong xaâu A coù maõ ASCII lôùn hôn.

- Neáu A vaø B coù ñoä daøi khaùc nhau vaø A laø ñoaïn ñaàu cuûa B thì A nhoû hôn B.

VÝ dô 2: 'My Computer' < 'My Computer is halt'

- Hai x©u ®îc coi lµ b»ng nhau nÕu nh chóng lµ gièng nhau hoµn toµn.

VÝ dô 3:

'TIN HOC' = 'TIN HOC'.

§Ó xö lÝ c¸c x©u cã thÓ sö dông c¸c thñ tôc vµ hµm chuÈn díi ®©y :

c, Thñ tôc Delete(St, vt, n) thùc hiÖn viÖc xo¸ n kÝ tù cña x©u St b¾t ®Çu tõ vÞ trÝ vt.

4. Củng cố: (3’)- Khai báo biến: Var tên biến: String[độ dài lớn nhất của xâu];- Nhập xuất các giá trị của biến xâu;- Tham chiếu đến từng phần tử của xâu: tên_biến[chỉ số];

GV: Buøi Coâng Phuùc

Page 69: Giao an tin 11

Tröôøng PT DTNT tænh Tin hoïc 11

- Phép ghép xâu- Các phép so sánh.

5. Dặn dò học sinh chuẩn bị cho tiết học sau: (1’)Chuẩn bị trước phần: một số hàm và thủ tục chuaån trong xâu.

V. RÚT KINH NGHIỆM, BỔ SUNG:

…………………………………………………………………………………………………

…………………………………………………………………………………………………

…………………………………………………………………………………………………

…………………………………………………………………………………………………

…………………………………………………………………………………………………

………………………………………

Tiết 26: KIỂU XÂU(tt)Ngày soạn: Ngaøy daïy:

I. MỤC TIÊU:1. Kiến thức:

- Biết được lợi ích của các hàm và thủ tục liên quan đến xâu trong ngôn ngữ lập trình Pascal.

- Nắm được cấu trúc chung và chức năng của một số hàm và thủ tục liên quan đến xâu của ngôn ngữ lập trình.2. Kỹ năng:

- Nhận biết và bước đầu sử dụng được một số hàm và thủ tục để giải quyết một số bài tập đơn giản liên quan.3. Thái độ:

Xây dựng lòng yêu thích giải toán bằng lập trình trên máy tính.II. CHUẨN BỊ:

- Giáo viên: Giáo án, hình ảnh minh họa.- Học sinh: Đọc trước SGK.

III. PHÖÔNG PHAÙP:Thoâng qua caùc hoaït ñoäng töông taùc giöõa troø – troø, thaày – troø

ñeå lónh hoäi kieán thöùc, kó naêng theo muïc tieâu baøi hoïc.IV. HOẠT ĐỘNG DẠY HỌC:

1. Ổn định tình hình lớp: (1’)2. Kiểm tra bài cũ: (7’)

GV: Buøi Coâng Phuùc

Page 70: Giao an tin 11

Tröôøng PT DTNT tænh Tin hoïc 11

3. Giảng bài mới:Tg HÑ cuûa GV HÑ cuûa HS Nội dung

15’ Hoạt động 1: Tìm hiểu một số hàm và thủ tục chuẩn liên quan đến xâu- Giới thiệu cấu trúc chung của hàm Length(S):- Ý nghĩa của Length và chữ S

Xét ví dụ sau:Var S: String;Begin S := ‘ha noi’;Write(length(s));Readln;End;Kết quả của chương trình trên?

GV: Lấy một số ví dụ tương tự như vậy đối với một số hàm còn lại.

Length: Là tên hàm, có nghĩa là độ dài.S: là một biểu thức xâu kí tự

Kết quả của chương trình trên là: 6, Nghĩa là độ dài của xâu s là 6 kí tự.

3. Caùc thao taùc xöû lí xaâu

c, Hàm Length(S) cho giá trị là độ dài xâu S.

d, Thủ tục Delete(St, vt, n) thực hiện việc xoá n kí tự của xâu St bắt đầu từ vị trí vt.

e, Thủ tục Insert(S1, S2, vt) chèn xâu S1 vào S2, bắt đầu ở vị trí vt.

f, Hàm Copy(S, vt, N) tạo xâu gồm N kí tự liên tiếp bắt đầu từ vị trí vt của xâu S.

g, Hàm Pos(S1,S2) cho vị trí xuất hiện đầu tiên của xâu S1 trong xâu S2.

h, Hàm UpCase(ch) cho chữ cái viết hoa ứng với chữ cái trong ch.

10’ Hoạt động 2: Rèn luyện kĩ năng vận dụng hàm và thủ tục

Töø yeâu caàu cuûa baøi toaùn ta caàn phaûi söû duïng bao nhieâu bieán?

Goïi moät HS leân baûng vieát chöông trình.

Ví dụ 4

Viết chương trình nhập một xâu vào từ bàn phím và đưa ra màn hình xâu thu được từ nó bởi việc loại bỏ các dấu cách.

Var  i,k : byte;      a, b : string;

Ta caàn söû duïng caùc bieán nhö: s1, s2.

Var   s1,s2:String; Begin   Write('Nhap xau ho ten thu nhat : ');  Readln(s1); Write('Nhap xau ho ten thu hai : ');   Readln(s2);   If length(s1)>length(s2) then write(s1) else write(s2);   Readln End.

2. Một số ví dụ: Ví dụ 1 : Viết chương trình nhập vào hai xâu họ tên của hai người và đưa ra màn hình xâu dài hơn, nếu bằng nhau thì đưa ra xâu nhập sau. Var   s1,s2:String; Begin   Write('Nhap xau ho ten thu nhat : ');  Readln(s1); Write('Nhap xau ho ten thu hai : ');   Readln(s2);   If length(s1)>length(s2) then write(s1) else write(s2);   Readln End.

Ví dụ 2 :

GV: Buøi Coâng Phuùc

Page 71: Giao an tin 11

Tröôøng PT DTNT tænh Tin hoïc 11

Tg HÑ cuûa GV HÑ cuûa HS Nội dung begin   write('Nhap xau :');   readln(a);   k:= length(a); b:= ''; (* Khởi tạo xâu rỗng *)  for i:= 1 to k do

if a[i]<>' ' then b:=b+a[i];  writeln('Ket qua : ',b);   readln end.

.

Trả lời: Kết quả sau khi thực hiện các chương trình.

Nhập vào hai xâu từ bàn phím và kiểm tra kí tự đầu tiên của xâu thứ nhất trùng với kí tự cuối cùng của xâu thứ hai không?

Var  x,y : byte;      a,b : string; begin   write('Nhap xau thu nhat : '); readln(a);   write('Nhap xau thu hai : '); readln(b);   x:=length(b); {xác định độ dài của xâu b để biết vị trí của kí tự cuối cùng}  if a[1]=b[x] then write('True') else write('False');   readln end. Ví dụ 3:

Viết chương trình nhập vào xâu kí tự S1, tạo xâu S2 gồm tất cả các chữ số có trong S1 (giữ nguyên thứ tự xuất hiện của chúng) và đưa kết quả ra màn hình.

Program XuLyXau; Var S1, S2 : String; Begin

Write('Nhap vao xau S1 : ');

Readln(S1); S2:= ''; {Khởi tạo xâu S2

rỗng}For i:= 1 to length(S1) do

If (S1[i]>='0') and (S1[i]<= '9') Then S2:= S2+S1[i]; Writeln('Ket qua : ', S2)

End.  

4. Củng cố: (3’)

GV: Buøi Coâng Phuùc

Page 72: Giao an tin 11

Tröôøng PT DTNT tænh Tin hoïc 11

- Những hàm và thủ tục liên quan đến xâuThủ tục Delete(st, vt, n)Thủ tục Insert(st1, st2, vt)Hàm Copy(st, vt, n)Hàm length(st)Hàm Upcase(ch)Hàm Pos(st1, st2)

5. Dặn dò học sinh chuẩn bị cho tiết học sau: (1’)BTVN: Viết chương trình nhập một xâu. In ra màn hình số từ có trong xâuChuẩn bị trước bài thực hành.

V. RÚT KINH NGHIỆM, BỔ SUNG:

…………………………………………………………………………………………………

…………………………………………………………………………………………………

…………………………………………………………………………………………………

…………………………………………………………………………………………………

…………………………………………………………………………………………………

………………………………………

GV: Buøi Coâng Phuùc

Page 73: Giao an tin 11

Tröôøng PT DTNT tænh Tin hoïc 11

Ngày soạn: Tiết 28 - 29: BÀI TẬP VÀ THỰC HÀNH 5I. MỤC TIÊU:

1. Kiến thức:- Khắc sâu thêm phần kiến thức về lí thuyết kiểu xâu, kiểu kí tự, đặc biệt là các hàm

và thủ tục liên quan.- Nắm được một số thuật toán cơ bản: tạo xâu mới, đếm số lần xuất hiện của một kí

tự.2. Kỹ năng:

- 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ác kí tự trong biến xâu- Sử dụng được các hàm và thủ tục chuẩn

3. Thái độ: Tích cực, chủ động trong thực hành

II. CHUẨN BỊ:33. Chuẩn bị của giáo viên: Giáo án, hình ảnh minh họa và máy tính.Tổ chức trong phòng

máy để học sinh có được kĩ năng cơ bản khi làm việc với kiểu xâu.34. Chuẩn bị của học sinh: SGK, bài tập ở nhà.

III. HOẠT ĐỘNG DẠY HỌC:e) Ổn định tình hình lớp: (4’) (Khởi động máy)f) Kiểm tra bài cũ: (Không kiểm tra bài cũ)

Giảng bài mới:Thời gian

Hoạt động của giáo viên Hoạt động của học sinh Nội dung bài giảng

40’ Tiết 1: * Hoạt động 1: Tìm hiểu bài tập một chương trình, đề xuất phương án cải tiến:- Tìm hiểu đề bài.- Giới thiệu nội dung đề bài lên bảng.- Diễn giải: Xâu Palidrom là xâu nếu ta đọc các kí tự từ phải sang trái sẽ giống khi đọc từ trái sang phải.Yêu cầu học sinh cho hai ví dụ về xâu Palidrom:

- Tìm hiểu chương trình gợi ý:

Ví dụ: Xâu Palidrom: 12312, abccbaXâu không phải Palidrom: abcdea.- Quan sát chương trình, suy nghĩ phân tích để hiểu chương trình.- Kiểm tra một xâu có

Bài 1: Nhập vào một xâu, kiểm tra xem xâu đó có phải là một Palidrom (xâu đối xứng) hay không?Var I, x: byte;

A, p: string;

Begin

Write(‘Nhap vao mot xau’);

Readln(a);

X:=length(a);

GV: Buøi Coâng Phuùc

Page 74: Giao an tin 11

Tröôøng PT DTNT tænh Tin hoïc 11

Thời gian

Hoạt động của giáo viên Hoạt động của học sinh Nội dung bài giảng

- Thực hiện chương trình để học sinh kiểm nghiệm suy luận của mình- Cải tiến chương trình:+ Nêu yêu cầu mới: Viết lại chương trình mà không dùng biến trung gian p?+ Yêu cầu nhận xét về các cặp ở vị trí đối xứng nhau trong một xâu Palidrom?- Kí tự I đối xứng với kí tự vị trí nào?

- Hỏi: Cần phải so sánh bao nhiêu cặp kí tự trong xâu để biết được xâu đó có là Palidrom hay không?- Dùng cấu trúc lặp nào để so sánh?- Yêu cầu học sinh viết chương trình hoàn chỉnh.- Yêu cầu học sinh nhập dữ liệu có sẵn của giáo viên và thông báo kết quả.- Xác nhận những bài làm có kết quả.

phải là Palidrom hay không?

- Quan sát giáo viên thực hành chương trình, nhập dữ liệu và kết quả ra màn hình.

Chú ý yêu cầu của giáo viên, trả lời một số câu hỏi, dẫn dắt.- Các kí tự ở vị trí này giống nhau.

- Kí tự thứ I đối xứng với kí tự thứ length() – I + 1.

- So sánh tối đa length() div 2- Có thể dùng cấu trúc For hoặc While.- Thực hiện việc soạn thảo việc chương trình vào máy theo yêu cầu cải tiến của giáo viên.

- Nhập dữ liệu vào và thông báo kết quả.

P:= ‘’;

For i:= x downto1 do p:=p+a[i];

If a = p then write(‘Xau la

Palidrom’)

else write(‘Xau khong phai la

Palidrom’)

readln;

end.

GV: Buøi Coâng Phuùc

Page 75: Giao an tin 11

Tröôøng PT DTNT tænh Tin hoïc 11

Thời gian

Hoạt động của giáo viên Hoạt động của học sinh Nội dung bài giảng

50’ Tiết 2:* Hoạt động 2: Rèn luyện kĩ năng lập trình:- Giới thiệu đề bài. Nêu mục đích của bài toán.- Chia lớp thành hai nhóm:Nhóm 1: Đặt các câu hỏi phân tíchNhóm 2: Trả lời các câu hỏi phân tích.

Theo dõi những câu hỏi phân tích của nhóm 1 và trả lời câu hỏi phân tích của nhóm 2.Bổ sung và sửa sai cho cả hai nhóm.

- Yêu cầu học sinh độc lập viết chương trình hoàn chỉnh theo thuật toán đã phát hiện ở trên.- Yêu cầu một số học sinh lập trình xong sớm, tìm một số bộ test.- Yêu cầu học sinh nhập dữ liệu vào theo test của giáo viên đã chọn và thông báo kết quả sau khi thực hiện chương trình.

- Quan sát đề và xác định những công việc cần thực hiện:Nhóm 1: - Dữ liệu vào, dữ liệu ra của bài toán?- Nêu các nhiệm vụ chính cần thực hiện khi giải quyết bài toán;- Hỏi: Cấu trúc dữ liệu phải sử dụng như thế nào?- Ta phải sử dụng hàm nào?Nhóm 2:- Vào: 1 xâu- Ra: Dãy các số ứng với sự xuất hiện của mỗi loại kí tự trong xâu.- Duyệt từ trái qua phải, thêm một đơn vị cho kí tự đọc được.- Cấu trúc dữ liệu: Dem[‘A’.. ‘Z’]- Dùng hàm Upcase();- Độc lập soạn chương trình vào máy.- Nhập dữ liệu của giáo viên và thực hiện chương trình để xem kết quả

- Tìm Test

- Nhập dữ liệu của giáo viên và thực hiện chương trình để xem kết quả.

Bài 2:

Viết chương trình nhập vào một xâu kí tự S và thông báo ra màn hình số lần xuất hiện trong S của mỗi chữ cái tiếng Anh (không phân biệt chữ hoa hay chữ thường).

GV: Buøi Coâng Phuùc

Page 76: Giao an tin 11

Tröôøng PT DTNT tænh Tin hoïc 11

Thời gian

Hoạt động của giáo viên Hoạt động của học sinh Nội dung bài giảng

- Xác nhận kết quả đúng của học sinh và sửa sai cho các em có kết quả sai.

g) Củng cố: (3’)- Một số thuật toán đơn giản liên quan đến xâu kí tự. Kiểm tra một xâu đối xứng, tìm tần suất xuất hiện của các kí tự có trong xâu.

h) Dặn dò học sinh chuẩn bị cho tiết học sau: (1’)Chuẩn bị trước bài 12: Kiểu bản ghi.

IV. RÚT KINH NGHIỆM, BỔ SUNG:

…………………………………………………………………………………………………

…………………………………………………………………………………………………

…………………………………………………………………………………………………

…………………………………………………………………………………………………

…………………………………………………………………………………………………

………………………………………

GV: Buøi Coâng Phuùc

Page 77: Giao an tin 11

Tröôøng PT DTNT tænh Tin hoïc 11

Ngày soạn: Tiết 30 & 31: KIỂU BẢN GHI

I. MỤC TIÊU:1. Kiến thức:

- Biết được khái niệm về kiểu bản ghi.- Phân biệt được sự giống và khác nhau giữa kiểu bản ghi với kiểu mảng một chiều.

2. Kỹ năng: - Khai báo được kiểu bản ghi, khai báo được biến kiểu bản ghi trong ngôn ngữ lập

trình Pascal.- Nhập xuất được dữ liệu cho biến bản ghi.- Tham chiếu đến từng trường của kiểu bản ghi.- Sử dụng kiểu bản ghi để giải quyết một số bài tập đơn giản

3. Thái độ: Xây dựng lòng yêu thích giải toán bằng lập trình trên máy tính.

II. CHUẨN BỊ:35. Chuẩn bị của giáo viên: Giáo án, hình ảnh minh họa và máy tính.36. Chuẩn bị của học sinh: Đọc trước SGK.

III. HOẠT ĐỘNG DẠY HỌC:i) Ổn định tình hình lớp: (1’)j) Kiểm tra bài cũ: (Không kiểm tra bài cũ)

3. Giảng bài mới:Thờ

i gian

Hoạt động của giáo viên Hoạt động của học sinh Nội dung bài giảng

15’ * Hoạt động 1: Giới thiệu về kiểu bản ghi. Tạo một kiểu bản ghi trong ngôn ngữ lập trình Pascala) Tìm hiểu kiểu bản ghi:- Chiếu bảng kết quả thi tốt nghiệp sách giáo khoa trang 74.Hỏi: Trên bảng chứa thông tin của bao nhiêu đối tượng?- Yêu cầu học sinh tìm thêm một ví dụ tương tự.- Diễn giải: Mỗi thông tin của đối tượng được gọi là một thuộc tính hay một trường. Mỗi đối tượng được mô tả bằng nhiều thông tin trên một hàng được gọi là một bản ghi.- Diễn giải: Để mô tả

- Quan sát ví dụ của giáo viên và trả lời các câu hỏi.

- Họ tên, ngày sinh, giới tính điểm của các môn thi.- Bảng chứa thông tin của 3 đối tượng.- Để mô tả một người trong danh bạ điện thoại cần có các thông tin: Họ tên, địa chỉ, số điện thoại

1. Khai báo: a. Kiểu bản ghi:- Một ngôn ngữ lập trình luôn có

một quy tắc để xác định: Tên kiểu bản ghi, tên trường bản ghi, tên kiểu dữ liệu của mỗi trường, cách khai báo và cách tham chiếu đến từng trường.

b. Khai báo:VAR <Tên biến> : RECORD

<Tên trường 1> : <Kiểu >; . . . < Tên trường k> : < Kiểu>;

END;

END;

Do dữ liệu kiểu bản ghi thường dùng để mô tả một loạt đối tượng nên

GV: Buøi Coâng Phuùc

Page 78: Giao an tin 11

Tröôøng PT DTNT tænh Tin hoïc 11

Thời

gianHoạt động của giáo viên Hoạt động của học sinh Nội dung bài giảng

các đối tượng như vậy, ngôn ngữ lập trình cho phép ta xác định kiểu bản ghi. Mỗi đối tượng được mô tả bằng một bản ghi.b) Yêu cầu học sinh nghiên cứu sách giáo khoa và cho biết cách khai báo kiểu bản ghi, khai báo biến kiểu bản ghi trong ngôn ngữ lập trình Pascal.- Yêu cầu tìm một ví dụ để minh họa.

- Để giải bài toán trong mục a) ta phải khai báo một mảng các bản ghi. Hãy tạo kiểu mảng đó.

Yêu cầu học sinh phân biệt sự giống và khác nhau giữa kiểu bản ghi và kiểu mảng một chiều.

- Tham khảo SGK để nắm được cấu trúc chung của khai báo biến bảng ghi và kiểu bản ghi.Ví dụ: Type Kieunguoi = RecordHoten:String;Diachi: String;Sdt: longint;End;Var Nguoi: Kieunguoi;- Độc lập suy nghĩ để tạo kiểu bản ghi và kiểu mảng các bản ghi.Type KieuHS = RecordHoten, Ngaysinh: String;Toan, Van: real;DTB: Real;End;Var Kieumang: Array [1..50 ] of KieuHS;* Giống nhau: Được ghép bởi nhiều phần tử.* Khác nhau: Mảng một chiều là ghép nhiều phần tử có cùng kiểu dữ liệu. Trong khi bản ghi là ghép nhiều phần tử có kiểu dữ liệu có thể khác nhau.

ta thường khai báo một kiểu bản ghi bởi TYPE và sau đó dùng nó để khai báo các biến liên quan.

TYPE

<Tên kiểu bản ghi> =RECORD

<Tên trường 1> : <Kiểu >;

< Tên trường k> : < Kiểu>;END; VAR<Tên biến> : <Tên kiểu bản ghi>;

<Tên mảng> : ARRAY[1..Max] OF <Tên kiểu bản ghi>;

Ví dụ

Type HocSinh = Record HoTen : String[30]; NgaySinh : String[8]; NamNu : Boolean; Tinhoc, Toan, Ly, Hoa, Van,

Su, Dia: Real; End;VarA, B : HocSinh;Lop : Array[1..60] of

HocSinh;

Nếu A là biến kiểu bản ghi và X là tên một trường của A, thì để truy cập đến trường X, ta viết : A.X

25’ * Hoạt động 2: Tìm hiểu về cách sử dụng kiểu bản ghi trong ngôn ngữ Pascal:

Giới thiệu cấu trúc chung để tham chiếu đến từng trường của biến bản ghi:

Quan sát cấu trúc chung cảu tham chiếu đến từng trường của biến bản ghi .

2. Gán giá trị:

Có hai cách để gán giá trị cho biến kiểu bản ghi :

Dùng lệnh gán : nếu A và B là hai biến kiểu bản ghi khai báo như nhau và đã biết giá trị của B thì ta có thể gán giá

GV: Buøi Coâng Phuùc

Page 79: Giao an tin 11

Tröôøng PT DTNT tænh Tin hoïc 11

Thời

gianHoạt động của giáo viên Hoạt động của học sinh Nội dung bài giảng

Tênbiếnbảnghi.Tên_trường

Yêu cầu tìm ví dụ về tham chiếu đến từng trường của biến bản ghi đã được khai báo ở trên:

Giới thiệu hai cách gán giá trị cho biến bản ghi.

- Gán nguyên cả biến bản

ghi;

- Gán lần lượt từng trường;

Chú ý rằng trong các

thuộc tính cần quản lí thì

chỉ có 5 thuộc tính đầu là

độc lập còn thuộc tính

Xếp loại có thể được xác

định theo các điểm Toán

và Văn. Để mô tả thông

tin về một học sinh, ta

dùng kiểu dữ liệu bản ghi

với 6 trường tương ứng

thể hiện sáu thuộc tính

cần quản lí.

- Ví dụ:Nguoi.Hoten;Nguoi.diachi;Nguoi.SDt;

Quan sát hai cách gán giá trị của biến bản ghi để tìm ví dụ cụ thể.

Theo dõi ví dụ và giải thích ý nghĩa của các lệnh.

trị của B cho A bằng câu lệnh :

A := B;

Gán giá trị cho từng trường : Có thể thực hiện bằng lệnh gán hoặc nhập từ bàn phím.

Ví dụ. Có một lớp gồm N (N60) học sinh. Với mỗi học sinh cần quản lí các thuộc tính : Họ và Tên, Tuổi, Địa chỉ, điểm Toán, điểm Văn, Xếp loại. Giả sử Xếp loại được xác định theo quy tắc sau :

- Nếu Toán + Văn < 10 Thì Xếp loại = 'D'

- Nếu (Toán + Văn < 14) và (Toán + Văn 10) Thì Xếp loại = 'C'

- Nếu (Toán + Văn 14) và (Toán + Văn < 18) Thì Xếp loại = 'B'

- Nếu Toán + Văn > 18 Thì Xếp loại = 'A'

Program Chuong_trinh_xep_loai;

Uses CRT;Type

HS = Record

HT:String[30]; TUOI:Byte;

DC:String[50]; T,V:Real;

XL:String[10];End;

Var Lop : Array[1..60]

GV: Buøi Coâng Phuùc

Page 80: Giao an tin 11

Tröôøng PT DTNT tænh Tin hoïc 11

Thời

gianHoạt động của giáo viên Hoạt động của học sinh Nội dung bài giảng

Of HS; N,I,J : Byte; X : HS;Begin

Clrscr;Write('So luong hoc

sinh trong lop N = ');Readln(N);

For I:= 1 to N DoBeginWriteln('Nhap so lieu ve hoc sinh thu ',I,' : ');

Write('Ho va ten: '); Readln(Lop[i].HT); Write('Tuoi: '); Readln(Lop[i].TUOI);

Write('Dia chi: ');Readln(Lop[i].DC);Write('Diem Toan:

');Readln(Lop[i].T);

Write('Diem Van: '); Readln(Lop[i].V);

If Lop[i].T+Lop[i].V<10 Then Lop[i].XL:='D';

If (Lop[i].T+Lop[i].V>=10)And(Lop[i].T+Lop[i].V<14)

Then Lop[i].XL:='C'; If

(Lop[i].T+Lop[i].V>=14)And(Lop[i].T+Lop[i].V<18)

Then Lop[i].XL:='B'; If

Lop[i].T+Lop[i].V>=18

GV: Buøi Coâng Phuùc

Page 81: Giao an tin 11

Tröôøng PT DTNT tænh Tin hoïc 11

Thời

gianHoạt động của giáo viên Hoạt động của học sinh Nội dung bài giảng

Then Lop[i].XL:='A';End;ClrScr;Writeln('Danh sach

xep loai hoc sinh trong lop :');

For I:= 1 To N Do

Writeln(Lop[i].HT:30,' - Xep loai: ',Lop[i].XL);

Readln;End.

k) Củng cố: (3’)- Cách tạo kiểu bản ghi, khai báo biến kiểu bản ghi.- Tham chiếu đến từng trường của biến bản ghi.- Nhập / xuất giá trị cho biến bản ghi.

l) Dặn dò học sinh chuẩn bị cho tiết học sau: (1’)BTVN: Viết chương trình giải quyết bài toán sau: Nhập họ và tên, điểm toán, điểm lý

của 30 học sinh trong lớp. In ra màn hình họ tên, điểm trung bình của 30 học sinh đó với DTB = (Ly + Toan)/2.

IV. RÚT KINH NGHIỆM, BỔ SUNG:

…………………………………………………………………………………………………

…………………………………………………………………………………………………

…………………………………………………………………………………………………

…………………………………………………………………………………………………

…………………………………………………………………………………………………

………………………………………

GV: Buøi Coâng Phuùc

Page 82: Giao an tin 11

Tröôøng PT DTNT tænh Tin hoïc 11

Ngày soạn: Tiết 32 & 33: BÀI TẬP

I. MỤC TIÊU:1. Kiến thức:

- Củng cố lại cho học sinh những kiến thức trong chương IV 2. Kỹ năng:

- Rèn luyện kĩ năng vận dụng các kiểu dữ liệu mảng, xâu, bản ghi để giải các bài tập cụ thể

3. Thái độ: Tự giác, tích cực trong giải quyết các bài tập

II. CHUẨN BỊ:37. Chuẩn bị của giáo viên: Giáo án, các bài tập mẫu và máy tính.38. Chuẩn bị của học sinh: Làm các bài tập trong sách giáo khoa và xem trước các bài tập

trong sách bài tập.III. HOẠT ĐỘNG DẠY HỌC:

m) Ổn định tình hình lớp: (1’)n) Kiểm tra bài cũ: (Không kiểm tra bài cũ)

3. Giảng bài mới:Thờ

i gian

Hoạt động của giáo viên Hoạt động của học sinh Nội dung bài giảng

24’ Tiết 32:* Hoạt động 1: Tìm hiểu bài tập 9 trang 80:- Yêu cầu học sinh đọc và thảo luận bài tập 8 trang 79 SGK trong khoảng thời gian 5’- Yêu cầu: Giải thích đoạn chương trình: for i:=1 to n do for j:=0 to n-1 do begin write('a[',i,',',j,']= '); readln(a[i,j]) end;- Đọc đoạn chương trình:

- Học sinh thảo luận

- Đoạn chương trình dùng để nhập các phần tử của mảng

1. Bài tập 9 trang 80

GV: Buøi Coâng Phuùc

Page 83: Giao an tin 11

Tröôøng PT DTNT tænh Tin hoïc 11

Thời

gianHoạt động của giáo viên Hoạt động của học sinh Nội dung bài giảng

for i:=1 to n do for j:=0 to n-1 do begin c:=a[i,j]; a[i,j]:=a[n-i+1,j]; a[n-i+1,j]:=c end;- Yêu cầu: Giải thích nội dung của đoạn chương trình trên. Giải thích giá trị n-i+1- Yêu cầu: Giải thích đoạn chương trình: for i:=1 to n do begin for j:=0 to n-1 do write(a[i,j]:5:2,' '); end;- Yêu cầu: nhận xét chương trình đã thực hiện công việc gì, kết quả ra sao?

- Đoạn chương trình dùng để đổi giá trị của phần tử a[i,j] với giá trị của phần tử a[n-i+1,j]- Giá trị n-i+1 là vị trí đối của i.- Đoạn chương trình dùng để đưa kết quả ra màn hình

- Chương trình thực hiện thao tác tráo đổi giá trị của phần tử a[i,j] với giá trị của phần tử a[n-i+1,j] hai lần. Kết quả thu được là mảng ban đầu.

20’ * Hoạt động 2: Tìm hiểu và sửa lại chương trình theo yêu cầu của bài tập:- Yêu cầu học sinh đọc và thảo luận bài tập 9 trang 80 SGK trong khoảng thời gian 5’- Yêu cầu: Giải thích đoạn chương trình: for i:=1 to n do for j:=1 to n do begin write('a[',i,',',j,']= '); readln(a[i,j]) end;- Đọc đoạn chương trình: for i:=1 to n do begin max:=a[i,1];ind:=1; for j:=2 to n do if a[i,j]>max then

- Học sinh thảo luận

- Đoạn chương trình dùng để nhập các phần tử của mảng

GV: Buøi Coâng Phuùc

Page 84: Giao an tin 11

Tröôøng PT DTNT tænh Tin hoïc 11

Thời

gianHoạt động của giáo viên Hoạt động của học sinh Nội dung bài giảng

begin max:=a[i,j];ind:=j; end; vsp:=a[i,i];a[i,i]:=max;a[i,ind]:=vsp; end;- Yêu cầu: Giải thích nội dung của đoạn chương trình trên.

- Yêu cầu: Giải thích đoạn chương trình: for i:=1 to n do begin for j:=1 to n do write(a[i,j]:3,’ ‘); end;- Yêu cầu: khi thay dòng bằng cột thì nên sửa đoạn chương trình nào? sửa như thế nào?

- Đoạn chương trình dùng để tìm giá trị lớn nhất của mỗi dòng rồi đổi chỗ nó với phần tử có chỉ số dòng bằng chỉ số cột- Đoạn chương trình dùng để đưa kết quả ra màn hình

- Nên sửa đoạn chương trình thứ 2 như sau: max:=a[1,i];ind:=1; for j:=2 to n do if a[j,i]>max then begin max:=a[j,i];ind:=j; end;

30’ Tiết 33:* Hoạt động 1: Tìm hiểu yêu cầu của bài tập 10 sách giáo khoa- Yêu cầu học sinh đọc và thảo luận bài tập 10 trang 80 SGK trong khoảng thời gian 5’- Hỏi: chữ số thập phân là những chữ số như thế nào? - Hỏi: Muốn biết dãy số vừa nhập có bao nhiêu số thập phân ta cần phải làm gì?- Yêu cầu: Hãy trình bày thuật toán của bài tập 10

- Hỏi: Làm cách nào để biết được vị trí cuối cùng của xâu?

- Yêu cầu: chuyển thuật

- Học sinh thảo luận

- Chữ số thập phân là các số có giá trị lớn hơn hoặc bằng 0 và nhỏ hơn hoặc bằng 9- Thực hiện thao tác đếm các số thập phân trong xâu- B1: Nhập xâu kí tự B2: Kiểm tra từ phần tử đầu tiên đến phần tử cuối cùng của xâu Nếu phần tử thứ i của xâu là số thập phân thì ta thực hiện công việc đếm. B3: Đưa kết quả ra màn hình- Dùng hàm length để xét độ dài của xâu, độ dài của xâu cũng là vị trí của phần tử cuối cùng của xâu - Chương trình:var s:string[100]; i,dem:byte;BEGINwriteln('Nhap 1 xau ki tu do dai khong qua 100'); readln(s);dem:=0;

Bài tập 10 trang 80 sách giáo khoa.

GV: Buøi Coâng Phuùc

Page 85: Giao an tin 11

Tröôøng PT DTNT tænh Tin hoïc 11

Thời

gianHoạt động của giáo viên Hoạt động của học sinh Nội dung bài giảng

toán trên thành chương trình hoàn chỉnh

for i:=1 to length(s) do if ('0'<=s[i])and(s[i]<='9') then dem:=dem+1;writeln('Trong xau s co ',dem,' chu so thap phan.');readln;END.

10’

*Hoạt động 2:Tìm hiểu các bài tập về kiểu bản ghi:

Bài tập 11 trang 80.

o) Củng cố: (3’)- Các kiểu dữ liệu có cấu trúc: Kiểu mảng, xâu, kiểu bản ghi.

p) Dặn dò học sinh chuẩn bị cho tiết học sau: (2’)Ôn tập chương trình học kì I chuẩn bị cho 2 tiết ôn tập tiếp theo.

IV. RÚT KINH NGHIỆM, BỔ SUNG:

…………………………………………………………………………………………………

…………………………………………………………………………………………………

…………………………………………………………………………………………………

…………………………………………………………………………………………………

…………………………………………………………………………………………………

………………………………………

GV: Buøi Coâng Phuùc

Page 86: Giao an tin 11

Tröôøng PT DTNT tænh Tin hoïc 11

Ngày soạn: Tiết 34 & 35: ÔN TẬP

I. MỤC TIÊU:1. Kiến thức:

- Học sinh nắm được toàn bộ kiến thức từ đầu năm đến nay.2. Kỹ năng:

- Rèn luyện kĩ năng nhận xét, phân tích một bài toán.3. Thái độ:

Tự giác, tích cực trong giải quyết các bài tậpII. CHUẨN BỊ:

39. Chuẩn bị của giáo viên: Giáo án, các bài tập mẫu và máy tính.40. Chuẩn bị của học sinh: Ôn tập toàn bộ kiến thức đã học từ đầu năm đến nay.

III. HOẠT ĐỘNG DẠY HỌC:q) Ổn định tình hình lớp: (1’)r) Kiểm tra bài cũ: (Không kiểm tra bài cũ)

3. Giảng bài mới:Thờ

i gian

Hoạt động của giáo viên Hoạt động của học sinh Nội dung bài giảng

44’ Tiết 34:* Hoạt động 1: Nhắc lại kiến thức cũ đã học:Đặt câu hỏi gợi ý để học sinh tự nhắc lại kiến thức đã học.- Em hiểu như thế nào về lập trình và ngôn ngữ lập trình?- Các loại chương trình dịch?- Các thành phần cơ bản của ngôn ngữ lập trình?- Các khái niệm trong ngôn ngữ lập trình?- Cấu trúc chung của chương trình TP?- Nêu tên các kiểu dữ liệu chuẩn?- Nêu các nhóm phép toán đã học?- Các loại biểu thức?

- Chức năng và sự thực hiện của lệnh gán?- Nêu tên và chức năng của một số hàm số học.

- Tổ chức vào / ra.

- Tổ chức rẽ nhánh.

Chú ý theo dõi để trả lời các câu hỏi.

- Lập trình là quá trình diễn đạt thuật toán bằng một ngôn ngữ lập trình - Thông dịch và biên dịch

- Bảng chữ cái, cú pháp và ngữ nghĩa.- Khái niệm tên, hằng, biến và chú thích.- Gồm 2 phần: Phần khai báo và phần thân.- Kiểu số nguyên, số thực, kí tự và logic.- Phép toán quan hệ, phép toán số học và phép toán logic.- Biểu thức quan hệ, biểu thức số học và biểu thức logic.- Dùng để tính toán một biểu thức và gán giá trị cho một biến.- Hàm bình phương, hàm căn thức, hàm giá trị tuyệt đối, hàm sin, hàm cos.- Lệnh Read(); readln();- Lệnh write(); lệnh writeln();

I. Các kiến thức đã học:- Khái niệm về lập trình và

ngôn ngữ lập trình.- Có hai loại chương trình

dịch: Biên dịch và thông dịch.

- Các thành phần của ngôn ngữ lập trình: Bảng chữ cái, cú pháp và ngữ nghĩa.

- Các khái niệm: Tên, hằng, biến và chú thích.

- Cấu trúc của chương trình Pascal: Phần khai báo và phần thân.

- Các kiểu dữ liệu chuẩn: Số nguyên, số thực, kí tự, logic.

- Phép toán biểu thức câu lệnh gán.

- Tổ chức vào / ra.- Cấu trúc rẽ nhánh.- Cấu trúc lặp.- Kiểu mảng.- Kiểu xâu.- Kiểu bản ghi.

GV: Buøi Coâng Phuùc

Page 87: Giao an tin 11

Tröôøng PT DTNT tænh Tin hoïc 11

Thời

gianHoạt động của giáo viên Hoạt động của học sinh Nội dung bài giảng

- Tổ chức lặp

- Kiểu mảng.- Kiểu xâu:- Kiểu bản ghi.

- If <biểu thức điều kiện> then <lệnh 1> else <lệnh 2>;

- For <GT đầu> to <GT cuối> do- For <GT cuối>downto <GT đầu> do- While <điều kiện> do- Array…StringRecord.

40’

Tiết 35:* Hoạt động 2: Rèn luyện kĩ năng lập trình.1. Xác định bài toán:- Chiếu nội dung đề bài lên bảng.

- Chia lớp thành 2 nhóm:+ Nhóm 1: Nêu câu hỏi phân tích.+ Nhóm 2: Trả lời câu hỏi phân tích của nhóm 1.- Giáo viên góp ý bổ sung cho cả hai nhóm.

2. Rèn luyện kĩ năng lập trình.- Chia lớp thành 2 nhóm:- Yêu cầu: Viết chương trình hoàn thiện lên bìa trong.- Thu phiếu học tập, chiếu kết quả lên bảng. Gọi học sinh của nhóm khác nhận xét, đánh giá và bổ sung.3. Chuẩn hóa kiến thức bằng chương trình mẫu của giáo viên. Thực hiện chương trình, nhập dữ liệu để học sinh thấy kết quả của chương trình.

Quan sát theo dõi đề bài và định hướng của giáo viên để xác định bài toán.

- Nhóm 1:+ Dữ liệu vào?+ Dữ liệu ra?+ Các nhiệm vụ chính phải thực hiện.- Nhóm 2:+ Số N và N số nguyên dương.+ Số lượng số chắn C và số lẻ L+ * Nhập dữ liệu * Đếm số lượng số chẵn, lẻ. * Đưa kết quả ra màn hình.2. Làm việc theo nhóm:

- Thảo luận theo nhóm để viết chương trình.- Báo cáo kết quả.

- Nhận xét đánh giá và bổ sung những thiếu sót của nhóm khác

3. Theo dõi và ghi nhớ.

Đề bài:Viết chương trình nhập vào từ

bàn phím một số nguyên

dương N (1<= N <= 100) và

một dãy số A gồm N số

nguyên A1, A2, …, An. Các

số Ai có giá trị tuyệt đối

không lớn hơn 1000. Hãy đưa

ra màn hình số lượng các số

dương và số lượng các số âm

trong dãy.

s) Củng cố: (3’)- Giáo viên yêu cầu học sinh nhắc lại một số nội dung chính đã được ôn tập trong

tiết học.

GV: Buøi Coâng Phuùc

Page 88: Giao an tin 11

Tröôøng PT DTNT tænh Tin hoïc 11

t) Dặn dò học sinh chuẩn bị cho tiết học sau: (2’)Chuẩn bị kiến thức cho tiết sau kiểm tra học kì I: Xem lại các kiến thức đã được ôn

tập, đặc biệt chú trọng cấu trúc lặp, rẽ nhánh và kiểu mảng.IV. RÚT KINH NGHIỆM, BỔ SUNG:

…………………………………………………………………………………………………

…………………………………………………………………………………………………

…………………………………………………………………………………………………

…………………………………………………………………………………………………

…………………………………………………………………………………………………

………………………………………

Ngày soạn: Tiết 36: KIỂM TRA HỌC KÌ II. MỤC TIÊU:

1. Mục tiêu cần đánh giá:- Kiểm tra kết quả tiếp thu của học sinh từ đầu năm học đến nay.- Đánh giá kĩ năng phân tích một bài toán và tư duy lập trình trên giấy.- Có thái độ tự giác, tích cực trong kiểm tra.

2. Kiến thức: - Học sinh nắm được các kiến thức về kiểu dữ liệu cơ bản. Các hàm chuẩn thông

dụng. Cấu trúc vào ra dữ liệu, cấu trúc rẽ nhánh.2. Kỹ năng:

- Có kĩ năng phân tích bài toán, viết chương trình.3. Thái độ:

- Cẩn thận, nghiêm túc trong kiểm tra.II. CHUẨN BỊ:

41. Chuẩn bị của giáo viên: Đề bài.42. Chuẩn bị của học sinh: Ôn tập để kiểm tra.

III. HOẠT ĐỘNG DẠY HỌC:u) Ổn định tình hình lớp: (1’)v) Kiểm tra bài cũ: (Không kiểm tra bài cũ)w) Giảng bài mới:

Ñeà baøi Ñaùp aùnI. TRAÉC NGHIEÄM ( 5ñieåm ) Caâu 1: Trong nhöõng bieåu dieãn döôùi ñaây, bieåu dieãn naøo laø teân trong Pascal?(A) Integer (B) Bai2A (C)2A

(D) *2A*Caâu 2: Bieåu thöùc ñöôïc bieåu dieãn trongPascal laø:(A) (B) sqrt(x) + sqrt(y) <= sqrt(R)

I. TRẮC NGHIỆM: (Mỗi câu 0,5 điểm)

1.B

2.C

GV: Buøi Coâng Phuùc

Page 89: Giao an tin 11

Tröôøng PT DTNT tænh Tin hoïc 11

(C) sqr(x) + sqr(y) <= sqr(R) (D) sqrx + sqry <= sqr RCaâu 3: Trong nhöõng bieåu dieãn döôùi ñaây, bieåu dieãn naøo laø haèng trong Pascal?(A) 2A (B) 5.A8 (C) ‘32x’

(D) whileCaâu 4: Bieán x coù theå nhaän caùc giaù trò -1, -5, 2, 8, 12, 21, 100 vaø bieán y coù theå nhaän caùc giaù trò 0,5; 0,8; 0,1; 0,3. Haõy choïn khai baùo ñuùng: (A) Var  x : byte; y : real; (B) Var x : integer; y: integer;(C) Var x: integer; y: real; (D) Var x, y : integer;Caâu 5: Bieåu thöùc logic naøo sau ñaây duøng ñeå kieåm tra n laø soá döông leû?(A) (n > 0) and (n mod 2 = 0) (B) (n > 0) and (n div 2 = 0)(C) (n > 0) or (n mod 2 = 1) (D) (n > 0) and (n mod 2=1)Caâu 6: Bieåu thöùc Y= sqr(sin(x))/(y + 0,5) laø bieåu dieãn trong Pascal. Bieåu thöùc Y ñöôïc bieåu dieãn trong toaùn hoïc laø :

(A) Y= (B) Y= (C) Y=

(D) Y= +0,5

Choïn bieåu dieãn ñuùng.Caâu 7: Phaùt bieåu naøo sau ñaây laø ñuùng(A) Chöông trình laø daõy caùc leänh ñöôïc toå chöùc theo caùc quy taéc ñöôïc xaùc ñònh bôûi 1 ngoân ngöõ laäp trình cuï theå.(B) Trong cheá ñoä thoâng dòch, moãi caâu leänh cuûa chöông trình nguoàn ñöôïc dòch thaønh moät caâu leänh cuûa chöông trình ñích.(C) Neáu chöông trình nguoàn coù loãi cuù phaùp thì chöông trình ñích cuõng coù loãi cuù phaùp.(D) Moïi baøi toaùn ñeàu coù chöông trình ñeå giaûi treân maùy tính.Caâu 8: Chöông trình Pascal seõ caáp phaùt bao nhieâu byte cho boä nhôù cho caùc bieán trong khai baùo sau:

Var x,y:integer;l:logic;k:real;

(A) 10 bytes (B) 11bytes (C) 9 bytes (D) 12 bytes

3.C

4.C

5.D

6.A

7.A

8.B

9.B

GV: Buøi Coâng Phuùc

Page 90: Giao an tin 11

Tröôøng PT DTNT tænh Tin hoïc 11

Caâu 9: Xeùt bieåu thöùc logic (m mod 100 < 10) and (m div 100 > 0). Vôùi nhöõng giaù trò naøo cuûa m döôùi ñaây bieåu thöùc treân cho giaù trò laø true ?(A) 99 (B) 208 (C) 99 (D) 1000

Caâu 10: Cho chöông trình sau: Program Vidu;Var

x, y, z : byte;Begin

x:=2;y:=3;z:=y-x;y:=1;Writeln(‘y = ’, y);

writeln(‘z =’,z);Readln;

End.Keát quaû cuûa chöông trình treân laø:

(A) (B) (C)

(D)

II. TÖÏ LUAÄN ( 5ñieåm) Caâu 1. (2ñ) Laäp trình tính tích S=1.2.3…n cho tôùi khi thì döøng.Caâu 2. (3ñ) Laäp trình tính toång caùc soá chaün töø 1 ñeán 20.

10.A

II. TỰ LUẬN: Câu 1: Lập trình tính S = 1.2.3….n cho tới khi n>= 10 thì dừngProgram Bai1;Var S: integer; 0,5 điểm

n: byte;Begin

S:=1;n:=1;while n<10 do begin 1 điểm

S:=S*n;N:=n+1;

end; writeln(‘S = ’, S); readln; 0,5 điểmend.

Bài 2: Lập trình tính tổng các số chẵn từ 1 đến 20Program Bai2;Var S: integer; 0,5 điểm

n: byte;Begin

S:=0; 1 điểm

GV: Buøi Coâng Phuùc

Page 91: Giao an tin 11

Tröôøng PT DTNT tænh Tin hoïc 11

điểmFor n:=1 to 20 do

If n mod 2 = 0 then 1 điểm1 điểm S := S + n;

writeln(‘S = ’, S); readln; 0,5 điểm

end.

Thống kê:

Lôùp Sĩ soáThoáng keâ

Keùm Yeáu TB Khaù Gioûi11TN1 50 0 0 6 18 2611TN2 49 0 0 0 5 4411A1 47 0 0 4 12 3111A2 48 0 3 12 17 1611A3 48 0 3 14 20 1111A4 49 0 3 8 15 2311C 50 0 1 21 21 7

11D1 48 0 1 12 16 1911D2 47 0 2 5 18 22

IV. RÚT KINH NGHIỆM, BỔ SUNG:

…………………………………………………………………………………………………

…………………………………………………………………………………………………

……………………………………………………………………

Ngày soạn: Chương IV: TỆP VÀ THAO TÁC VỚI TỆPTiết 37: KIỂU DỮ LIỆU TỆP, THAO TÁC VỚI TỆPI. MỤC TIÊU:

1. Kiến thức:- Biết khái niệm và vai trò của kiểu tệp;- Biết hai cách phân loại tệp: theo cách tổ chức dữ liệu và theo cách truy cập;- Hiểu bản chất của tệp văn bản;

2. Kỹ năng: - Biết các bước làm việc với tệp: Gắn tên cho biến tệp, mở tệp, đọc / ghi tệp, đóng

tệp;- Biết khai báo biến tệp và các thao tác cơ bản với tệp văn bản;

GV: Buøi Coâng Phuùc

Page 92: Giao an tin 11

Tröôøng PT DTNT tænh Tin hoïc 11

- Biết sử dụng một số hàm và thủ tục chuẩn làm việc với tệp.3. Thái độ:

- Thấy được sự cần thiết và tiện lợi của kiểu dữ liệu tệp.- Có thức lưu trữ dữ liệu một cách khoa học.- Giáo dục thêm về ý thức tôn trọng bản quyền, không sửa chữa sao chép các phần mềm chưa mua bản quyền.

II. CHUẨN BỊ:43. Chuẩn bị của giáo viên: Giáo án, hình ảnh minh họa và máy tính.44. Chuẩn bị của học sinh: Đọc trước SGK.

III. HOẠT ĐỘNG DẠY HỌC:x) Ổn định tình hình lớp: (1’)y) Kiểm tra bài cũ: (Không kiểm tra bài cũ)

3. Giảng bài mới:Thờ

i gian

Hoạt động của giáo viên Hoạt động của học sinh Nội dung bài giảng

15’

* Hoạt động 1: Tìm hiểu về đặc điểm của kiểu dữ liệu tệp.Phân loại kiểu tệp.- Em hãy cho biết dữ liệu trong các kiểu dữ liệu từ trước đến nay ta sử dụng được lưu trữ ở loại bộ nhớ nào khi thực hiện chương trình khi thực hiện chương trình? Vì sao?- Để lưu trữ được dữ liệu, ta phải lưu nó ở bộ nhớ ngoài thông qua kiểu dữ liệu tệp. Mọi ngôn ngữ lập trình đều có các thao tác: - Khai báo biến tệp,- Mở tệp,- Đọc / ghi dữ liệu;- Đóng tệp.- Yêu cầu học sinh đọc thông tin SGK và cho biết đặc điểm của kiểu tệp? Có mấy loại kiểu tệp?

- Yêu cầu học sinh trình bày khái niệm tệp có cấu trúc và tệp văn bản?

HS Trả lời: Bộ nhớ RAM.Vì: Những dữ liệu này khi mất điện nó sẽ mất đi.

- Đặc điểm: Kiểu tệp không bị mất đi khi tắt máy.- Dung lượng lưu trữ dữ liệu lớn.- Tệp văn bản: là tệp mà dữ liệu được ghi dưới dạng các kí tự theo bảng mã ASCII. - Tệp có cấu trúc: là tệp mà các thành phần của nó được tổ chức theo một cấu trúc nhất định.

I. Đặc điểm và phân loại tệp:1. Đặc điểm của kiểu tệp:- Được lưu trữ lâu dài ở bộ nhớ ngoài (đĩa từ, CD, . . .) và không bị mất khi tắt nguồn điện vào máy;- Lượng thông tin 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:* Xét theo tổ chức dữ liệu:- Tệp văn bản: là tệp mà dữ liệu

được ghi dưới dạng các kí tự theo bảng mã ASCII. Ví dụ: sách, tài liệu, bài học, giáo án,…

- Tệp có cấu trúc: là tệp mà các thành phần của nó được tổ chức theo một cấu trúc nhất định. Ví dụ: Tệp âm thanh, hình ảnh,…

* Xét theo cách thức truy cập:- Tệp truy cập tuần tự: Là tệp cho

phép truy cập đến một dữ liệu nào đó trong tệp bằng cách bắt đầu từ đầu tệp và đi qua lần lượt tất cả các dữ liệu trước nó.

- Tệp truy cập trực tiếp: cho phép tham chiếu đến dữ liệu cần truy cập bằng cách xác định trực tiếp vị trí của dữ liệu đó.

25’ * Hoạt động 2: Tìm hiểu các thao tác cơ bản xử lí tệp văn bản trong ngôn ngữ lập trình Pascal:

II. Thao tác với tệp:1. Khai báo: Để làm việc với dữ liệu kiểu tệp ta phải sử dụng biến tệp.

GV: Buøi Coâng Phuùc

Page 93: Giao an tin 11

Tröôøng PT DTNT tænh Tin hoïc 11

Thời

gianHoạt động của giáo viên Hoạt động của học sinh Nội dung bài giảng

- Giới thiệu cấu trúc chung của khai báo biến tệp:- Với tệp văn bản là : VAR <Tên biến tệp> : TEXT;- Yêu cầu học sinh tìm ví dụ cụ thể.

Các thao tác xử lí với tệp bao gồm:- Gán tên tệp,- Mở tệp,- Đọc / ghi dữ liệu;- Đóng tệp.

Yêu cầu học sinh lấy ví dụ tương tự:

Tệp có thể dùng để chứa kết quả ra hoặc dữ liệu vào. Trước khi mở tệp, biến tệp phải được gán tên tệp bằng thủ tục ASSIGN.

- Khi thực hiện lệnh REWRITE(F3), nếu trên thư mục gốc C:\ chưa có tệp KQ.DAT, thì tệp sẽ được tạo với nội dung rỗng. Nếu tệp này đã có, thì nội dung của nó sẽ bị xoá để chuẩn bị ghi

- Theo dõi cấu trúc chung của khai báo biến tệp.

Ví dụ: VAR F1: Text;

Để chuẩn bị thao tác với tệp có tên là INP.DAT trên thư mục gốc đĩa C: ta dùng các câu lệnh sau để gắn nó với tệp F3 :MYFILE := 'C:\INP.DAT';ASSIGN(F3,MYFILE);

Khai báo biến tệp có dạng : - Với tệp văn bản là : VAR <Tên biến tệp> : TEXT;Ví dụ:VAR F1, F2: text;2. Các thao tác với tệp:a. Gắn tên tệp: Để thao tác với tệp, trước hết phải gán tên tệp cho biến tệp bằng câu lệnh ASSIGN(< Tên biến tệp>,<Tên tệp>); Trong đó Tên tệp là biến xâu hoặc hằng xâu. Ví dụ 1 Giả thiết có biến xâu MYFILE và cần gán biến tệp F2 với tệp có tên DULIEU.DAT. Việc gán tên tệp được thực hiện bằng các câu lệnh : MYFILE := 'DULIEU.DAT';

ASSIGN(F2,MYFILE); hoặc

ASSIGN(F2,'DULIEU.DAT');

b. Mở tệp: Câu lệnh mở tệp để ghi kết quả có dạng :

REWRITE(<Tên biến tệp>); Ví dụ

TF := 'C:\KQ.DAT';ASSIGN(F3,TF);REWRITE(F3);

Để chuẩn bị đọc dữ liệu từ tệp đã có ta mở tệp bằng câu lệnh :RESET(<Tên biến tệp>); Ví dụ 2 Để đọc dữ liệu từ tệp DL.INP ta có thể mở tệp bằng :TF := 'DL.INP';

GV: Buøi Coâng Phuùc

Page 94: Giao an tin 11

Tröôøng PT DTNT tænh Tin hoïc 11

Thời

gianHoạt động của giáo viên Hoạt động của học sinh Nội dung bài giảng

thông tin mới.- Yêu cầu học sinh lấy ví dụ tương tự.

Tệp định kiểu mở bằng thủ tục REWRITE chỉ có thể ghi dữ liệu bằng thủ tục WRITE.

Một số hàm và thủ tục chuẩn thường dùng trong thao tác tệp Hàm lô gíc EOF(<Tên biến tệp>) : Cho giá trị True nếu con trỏ tệp đang chỉ tới cuối tệp,

Thủ tục SEEK(<Tên biến tệp> , <Biến nguyên>) : Đưa con trỏ tệp về vị trí trước phần tử có số thứ tự xác định bởi giá trị Biến nguyên (Các phần tử của tệp được đánh số bắt đầu từ 0).- Yêu cầu học sinh quan sát sơ đồ hình 16 trang 86 và giải thích ý nghĩa của sơ đồ.

Để đọc dữ liệu từ tệp DL.INP ta có thể mở tệp bằng : TF := 'DL.INP';ASSIGN(F1,TF);RESET(F1); hoặcASSIGN(F1, 'DL.INP');RESET(F1);

Lệnh đọc giá trị từ tệp gắn với biến tệp F1 và gán cho biến C : READ(F1,C);

Quan sát sơ đồ, suy nghĩ và 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.

ASSIGN(F1,TF);RESET(F1); hoặcASSIGN(F1, 'DL.INP');RESET(F1);c) Đọc/ghi tệp định kiểu Câu lệnh ghi có dạng :

WRITE(<Tên biến tệp>,<Tên Biến >);

trong đó Tên biến là biến cùng kiểu với kiểu phần tử tệp. Ví dụ Lệnh ghi giá trị biến A vào tệp gắn với biến tệp F3 : WRITE(F3,A); Nếu tệp được mở bằng thủ tục RESET thì có thể đọc thông tin. Câu lệnh đọc có dạng:READ(<Tên biến tệp>,<Tên biến >);d) Đóng tệp Sau khi làm việc xong với tệp cần phải đóng tệp. Việc đóng tệp là đặc biệt quan trọng sau khi ghi thông tin vào tệp. Câu lệnh đóng tệp có dạng :CLOSE(<Tên biến tệp>);

z) Củng cố: (3’)

GV: Buøi Coâng Phuùc

Page 95: Giao an tin 11

Tröôøng PT DTNT tænh Tin hoïc 11

- Cách khai báo biến tệp;- Phân loại tệp- Các thao tác với tệp.

aa) Dặn dò học sinh chuẩn bị cho tiết học sau: (1’)Trả lời các câu hỏi 1, 2, 3, 4 trang 89 sách giáo khoa.

IV. RÚT KINH NGHIỆM, BỔ SUNG:

…………………………………………………………………………………………………

…………………………………………………………………………………………………

……………………………………………………………………

Ngày soạn: Tiết 38: VÍ DỤ LÀM VIỆC VỚI TỆPI. MỤC TIÊU:

1. Kiến thức:- Củng cố lại kiến thức đã học về tệp trong chương 5 thông qua ví dụ.

2. Kỹ năng: - Sử dụng được các hàm và thủ tục liên quan để giải quyết các bài tập.

3. Thái độ: - Thấy được sự cần thiết và tiện lợi của kiểu dữ liệu tệp.- Có thức lưu trữ dữ liệu một cách khoa học.

II. CHUẨN BỊ:45. Chuẩn bị của giáo viên: Giáo án, hình ảnh minh họa và máy tính.46. Chuẩn bị của học sinh: Đọc trước SGK.

III. HOẠT ĐỘNG DẠY HỌC:bb)Ổn định tình hình lớp: (1’)cc) Kiểm tra bài cũ: (7’)

Câu hỏi: Có mấy loại tệp? Hãy nêu cách khai báo và các thao tác đối với tệp văn bản trong Pascal? Cho ví dụ?Trả lời: Có hai loại tệp:- Tệp văn bản: là tệp mà dữ liệu được ghi dưới dạng các kí tự theo bảng mã ASCII. Ví

dụ: sách, tài liệu, bài học, giáo án,…

GV: Buøi Coâng Phuùc

Page 96: Giao an tin 11

Tröôøng PT DTNT tænh Tin hoïc 11

- Tệp có cấu trúc: là tệp mà các thành phần của nó được tổ chức theo một cấu trúc nhất định. Ví dụ: Tệp âm thanh, hình ảnh,…Khai báo biến tệp có dạng :

- Với tệp văn bản là : VAR <Tên biến tệp> : TEXT;Các thao tác:

- Gắn tên tệp:ASSIGN(< Tên biến tệp>,<Tên tệp>);Ví dụ: ASSIGN(F2,'DULIEU.DAT');- Mở tệp:

REWRITE(<Tên biến tệp>); Ví dụ

TF := 'C:\KQ.DAT';ASSIGN(F3,TF);REWRITE(F3);

- Đọc/ghi tệp định kiểuWRITE(<Tên biến tệp>,<Tên Biến >); Ví dụ WRITE(F3,A); Nếu tệp được mở bằng thủ tục RESET thì có thể đọc thông tin. Câu lệnh đọc có dạng:

READ(<Tên biến tệp>,<Tên biến >);- Đóng tệp CLOSE(<Tên biến tệp>);

dd)Giảng bài mới:

Thời

gianHoạt động của giáo viên Hoạt động của học sinh Nội dung bài giảng

10’ * Hoạt động 1: Ôn tập kiến thức lí thuyết:Gợi ý để học sinh nhớ lại các kiến thức đã học về kiểu tệp.Hỏi: Cách khai báo biến kiểu tệp?- Có các thủ tục cơ bản nào khi làm việc với tệp?

Theo dõi dẫn dắt của giáo viên và trả lời:Var <Tên biến tệp>: Text; Assign(<Tên biến tệp>,<Tên tệp>)Rewrite(<Tên biến tệp>);Reset (<Tên biến tệp>);Close(<Tên biến tệp>);Readln/ Readln(<Tên biến tệp>, <Danh sách biến tệp>);

1. Các thao tác đối với tệp:- Gán tên tệp, mở tệp, tạo tệp

mới, đóng tệp.- Đọc / ghi tệp văn bản- Các hàm và thủ tục liên quan.

GV: Buøi Coâng Phuùc

Page 97: Giao an tin 11

Tröôøng PT DTNT tænh Tin hoïc 11

Thời

gianHoạt động của giáo viên Hoạt động của học sinh Nội dung bài giảng

Hỏi: hàm và thủ tục nào liên quan khi xử lí tệp.Giới thiệu bảng tổng hợp các hàm và thủ tục lên bảng, xem như đâu là tổng kết kiến thức liên quan.

Write/writeln(<Tên biến tệp> , <Danh sách kết quả>);Eof(<Tên biến tệp>);Seek(<Tên biến tệp>, <Biến nguyên>);

Quan sát bảng tổng hợp và ghi nhớ.

13’ * Hoạt động 2: Tìm hiểu chương trình ví dụ:1. Tìm hiểu ví dụ 1:- Giới thiệu nội dung đề bài.- Chiếu chương trình ví dụ lên bảng và gợi ý để học sinh tìm hiểu chương trình.- Hỏi: Hàm Eof(f) có chức năng gì?- Có thể sử dụng cấu trúc For thay cho While được hay không?- Chương trình này thực hiện công việc gì?

- Thực hiện chương trình để học sinh thấy được kết quả.2. Tìm hiểu chương trình của ví dụ 2:- Giới thiệu đề bài- Chiếu tranh mô phỏng kết nối điện trở, hình 17 trang 88, sách giáo khoa.- Hỏi: Công thức tính điện trở của sơ đồ II, III, IV.- Chiếu chương trình ví dụ lên bảng.- Hỏi: Mảng a dùng để

Theo dõi và quan sát đề bài và chương trình gợi ý

- Hàm cho giá trị True nếu con trỏ tệp định vị ở vị trí kết thúc tệp.- Không vì chưa biết trước số lượng phần tử trong tệp.

- Tính và đưa ra màn hình khoảng cách từ trại của thầy hiệu trưởng đến trại mỗi giáo viên.

Quan sát nội dung đề bài, quan sát tranh mô phỏng kết nối các điện trở và các yêu cầu.

- Dùng để lưu giữ điện trở tương đương của 3 điện trở theo 5 cách ghép nối như

Ví dụ 1, sách giáo khoa trang 87: Tính khoảng cách giữa các điểm

Ví dụ 2, sách giáo khoa trang 87: Tính điện trở tương đương.

GV: Buøi Coâng Phuùc

Page 98: Giao an tin 11

Tröôøng PT DTNT tænh Tin hoïc 11

Thời

gianHoạt động của giáo viên Hoạt động của học sinh Nội dung bài giảng

lưu trữ giá trị nào?

- Cho một file dữ liệu bao gồm 2 dòng. Yêu cầu học sinh tính kết quả.- Thực hiện chương trình đọc file dữ liệu vào trên để học sinh đối chiếu kết quả

trong sơ đồ.- Tính kết quả của 5 điện trở tương đương.Quan sát kết quả của chương trình và so sánh kết quả của 5 điện trở tương đương.- Nhận xét về tính chính xác và thời gian thực hiện của chương trình

ee) Củng cố: (3’)- Các thao tác xử lí tệp: Gán tên tệp, mở tệp, tạo tệp mới, đọc ghi thông tin của tệp,

đóng tệp.- Hàm và thủ tục liên quan: Hàm EOF (Tên biến tệp)

ff) Dặn dò học sinh chuẩn bị cho tiết học sau: (1’)Đọc trước nội dung bài: Chương trình con và phân loại.

IV. RÚT KINH NGHIỆM, BỔ SUNG:

…………………………………………………………………………………………………

…………………………………………………………………………………………………

……………………………………………………………………

Ngày soạn: Tiết 39: BÀI TẬPI. MỤC TIÊU:

1. Kiến thức:- Củng cố lại kiến thức đã học về tệp trong chương 5 thông qua bài tập.

2. Kỹ năng: - Sử dụng được các hàm và thủ tục liên quan để giải quyết các bài tập.

3. Thái độ: - Thấy được sự cần thiết và tiện lợi của kiểu dữ liệu tệp.

GV: Buøi Coâng Phuùc

Page 99: Giao an tin 11

Tröôøng PT DTNT tænh Tin hoïc 11

- Có thức lưu trữ dữ liệu một cách khoa học.II. CHUẨN BỊ:

47. Chuẩn bị của giáo viên: Giáo án, hình ảnh minh họa và máy tính.48. Chuẩn bị của học sinh: Đọc trước SGK.

III. HOẠT ĐỘNG DẠY HỌC:gg) Ổn định tình hình lớp: (1’)hh)Kiểm tra bài cũ: (7’)

Câu hỏi: Có mấy loại tệp? Hãy nêu cách khai báo và các thao tác đối với tệp văn bản trong Pascal? Cho ví dụ?Trả lời: Có hai loại tệp:- Tệp văn bản: là tệp mà dữ liệu được ghi dưới dạng các kí tự theo bảng mã ASCII. Ví

dụ: sách, tài liệu, bài học, giáo án,…- Tệp có cấu trúc: là tệp mà các thành phần của nó được tổ chức theo một cấu trúc nhất

định. Ví dụ: Tệp âm thanh, hình ảnh,…Khai báo biến tệp có dạng :

- Với tệp văn bản là : VAR <Tên biến tệp> : TEXT;Các thao tác:

- Gắn tên tệp:ASSIGN(< Tên biến tệp>,<Tên tệp>);Ví dụ: ASSIGN(F2,'DULIEU.DAT');- Mở tệp:

REWRITE(<Tên biến tệp>); Ví dụ

TF := 'C:\KQ.DAT';ASSIGN(F3,TF);REWRITE(F3);

- Đọc/ghi tệp định kiểuWRITE(<Tên biến tệp>,<Tên Biến >); Ví dụ WRITE(F3,A); Nếu tệp được mở bằng thủ tục RESET thì có thể đọc thông tin. Câu lệnh đọc có dạng:

READ(<Tên biến tệp>,<Tên biến >);- Đóng tệp CLOSE(<Tên biến tệp>);

ii) Giảng bài mới:

GV: Buøi Coâng Phuùc

Page 100: Giao an tin 11

Tröôøng PT DTNT tænh Tin hoïc 11

Thời

gianHoạt động của học sinh Hoạt động của giáo viên Nội dung bài giảng

GV: Buøi Coâng Phuùc

Page 101: Giao an tin 11

Tröôøng PT DTNT tænh Tin hoïc 11

Thời

gianHoạt động của học sinh Hoạt động của giáo viên Nội dung bài giảng

GV: Buøi Coâng Phuùc

Page 102: Giao an tin 11

Tröôøng PT DTNT tænh Tin hoïc 11

Thời

gianHoạt động của học sinh Hoạt động của giáo viên Nội dung bài giảng

GV: Buøi Coâng Phuùc

Page 103: Giao an tin 11

Tröôøng PT DTNT tænh Tin hoïc 11

jj) Củng cố: (3’)- Các thao tác xử lí tệp: Gán tên tệp, mở tệp, tạo tệp mới, đọc ghi thông tin của tệp,

đóng tệp.- Hàm và thủ tục liên quan: Hàm EOF (Tên biến tệp)

kk)Dặn dò học sinh chuẩn bị cho tiết học sau: (1’)Đọc trước nội dung bài: Chương trình con và phân loại.

IV. RÚT KINH NGHIỆM, BỔ SUNG:

…………………………………………………………………………………………………

…………………………………………………………………………………………………

……………………………………………………………………

Ngày soạn: CHƯƠNG VI: CHƯƠNG TRÌNH CON VÀ LẬP TRÌNH CÓ CẤU TRÚC

Tiết 40 - 41: CHƯƠNG TRÌNH CON VÀ PHÂN LOẠII. MỤC TIÊU:

1. Kiến thức:- Biết được khái niệm chương trình con- Biết được ý nghĩa của chương trình con, sự cần thiết phải viết một chương trình

thành các chương trình con.- Biết được cấu trúc của chương trình con.- Phân biệt được 2 loại chương trình con là hàm và thủ tục.

2. Kỹ năng: - Nhận biết 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ố hình thức trong phần đầu của thủ tục- Nhận biết được cách khai báo hai loại chương trình con cùng với tham số hình thức

của chúng.3. Thái độ:

- Rèn luyện phẩm chất của người lập trình như tinh thần hợp tác làm việc theo nhóm, tuân thủ yêu cầu vì một công việc chung.

II. CHUẨN BỊ:49. Chuẩn bị của giáo viên: Giáo án, hình ảnh minh họa, máy chiếu và máy tính.50. Chuẩn bị của học sinh: Đọc trước SGK.

III. HOẠT ĐỘNG DẠY HỌC:ll) Ổn định tình hình lớp: (1’)mm) Kiểm tra bài cũ: (Không kiểm tra bài cũ)nn)Giảng bài mới:

GV: Buøi Coâng Phuùc

Page 104: Giao an tin 11

Tröôøng PT DTNT tænh Tin hoïc 11

Thời

gianHoạt động của học sinh Hoạt động của giáo viên Nội dung bài giảng

24’

Tiết 40:* Hoạt động 1: Tìm hiểu về chương trình con và lợi ích của việc sử dụng chương trình con để lập trình:- Khi viết chương trình giải các bài toán phức tạp, chương trình thường rất dài, người đọc rất khó nhận biết được chương trình thực hiện công việc gì vấn đề đặt ra là phải cấu trúc chương trình như thế nào để dễ đọc dễ hiểu. Mặt khác việc giải quyết các bài toán lớn thường đòi hỏi phải phân thành nhiều bài toán con, vì vậy khi lập trình cần phải chia chương trình thành nhiều chương trình con.- - Chiếu hai chương trình con được viết sẵn: (Có sẵn trong SGK), một chương trình không sử dụng ctc, một ct có sử dụng ctc.- Gọi 1 HS nhận xét về tính ngắn gọn và dễ hiểu của 2 ct?- Khi nào nên sử dụng ct con?

- Yêu cầu học sinh cho biết kn của chương trìng con?

- Học sinh quan sát 2 ctc được giáo viên đưa ra, nhằm so sánh trong đầu về sự khác biệt của 2 ct này.

- Nhận xét ct có sử dụng ctc, ngắn gọi dễ hiểu hơn so với ct không sử dụng ctc.- Đối với bài toán lớn, nhiều người viết, ct dài cần chia ra nhiều đoạn, có nhiều lệnh lặp đi lặp lại khi đó nên sử dụng ctc.- HS đọc SGK và trả lời.

1. Khái niệm chương trình con:- Chương trình con là một dãy lệnh mô tả một số thao tác nhất định có thể được thực hiện ở nhiều vị trí trong chương trình.- Lợi ích của việc sử dụng ct con:+ Chương trình dễ đọc, dễ hiểu dễ kiểm tra phát hiện lỗi, và sửa sai.+ Có thể giao cho nhiều người cùng viết một chương trình.+ Tránh việc lặp đi việc lặp đi lặp

lại một nhóm lệnh khi nhóm lệnh được thực hiện nhiều lần khác nhau trong chương trình.

20’ * Hoạt động 2: Tìm hiểu ví dụ đơn giản về khi nào cần dùng chương trình con:- Yêu cầu học sinh quan sát 4 đoạn chương trình được bôi đen và nhận xét.

- Ngoài ra chương trình

Học sinh quan sát và nhận xét:

Bốn đoạn chương trình trên tương tự nhau đều dùng để tính lũy thừa của một số.

Ví dụ:Ví dụ trang 92 Sách giáo khoa.

GV: Buøi Coâng Phuùc

Page 105: Giao an tin 11

Tröôøng PT DTNT tænh Tin hoïc 11

Thời

gianHoạt động của học sinh Hoạt động của giáo viên Nội dung bài giảng

trên vừa dài, vừa khó hiểu.- Để nâng cao hiệu quả chương trình, các ngôn ngữ bậc cao đều cung cấp khả năng xây dựng chương trình con dạng tổng quát, đại diện cho nhiều đoạn lệnh tương tự nhau.- Từ đó ta có thể rút ra một số lợi ích khác từ việc sử dụng chương trình con.- Em nào có thể kể ra một vài lợi ích?

Lợi ích của việc sử dụng chương trình con:- Tránh được việc phải viết lặp đi lặp lại cùng một dãy lệnh nào đó.- Hỗ trợ được việc thực hiện các chương trình lớn- Phục vụ cho quá trình trừu tượng hóa.- Mở rộng khả năng ngôn ngữ.Thuận tiện cho phát triển, nâng cấp chương trình.

Lợi ích của việc sử dụng chương trình con:- Tránh được việc phải viết lặp đi lặp lại cùng một dãy lệnh nào đó.- Hỗ trợ được việc thực hiện các chương trình lớn- Phục vụ cho quá trình trừu tượng hóa.- Mở rộng khả năng ngôn ngữ.Thuận tiện cho phát triển, nâng

cấp chương trình.

41’ Tiết 41:- Có mấy loại ctc? gọi tên của chúng?

- Các em đã sử dụng hàm và thủ tục chưa? lấy một số hàm và thủ tục đã được học?- Ý nghĩa của hàm và thủ tục?

- Yêu cầu hs so sánh với cấu trúc của ct chính.

- Yêu cầu hs giải thích phần khai báo, phần thân ctc?

- Có hai loại chương trình con: hàm và thủ tục.- Hàm và thủ tục chuẩn- VD: Hàm sqrt(), hàm abs(), length(), …- Hàm sử dụng một số thao tác nào đó và trả về một giá trị kiểu đơn giản thông qua tên hàm.- Thủ tục thực hiện các thao tác nhất định, nhưng không trả về giá trị thông qua tên của nó.

- Giống như kiểu khai báo của chương trình chính.- Khác nhau: Phần đầu của chương trình con là bắt buộc phải có.- Phần khai báo có thể là biến, hằng,…- Phân thân là một dãy lệnh thực hiện nhiệm vụ

2. Phân loại và cấu trúc chương trình con:

a. Phân loại:- Có hai loại chương trình con: hàm và thủ tục.- Hàm và thủ tục chuẩn- VD: Hàm sqrt(), hàm abs(), length(), …- Hàm sử dụng một số thao tác nào đó và trả về một giá trị kiểu đơn giản thông qua tên hàm.- Thủ tục thực hiện các thao tác nhất định, nhưng không trả về giá trị thông qua tên của nó.b. Cấu trúc chương trình con:Cấu trúc chung của chương trình

con: (giống cấu trúc của một chương trình)

<Phần đầu><[phần khai báo]><phần thân>Phần khai báo: Phần khai báo có thể có khai

báo biến cho dữ liệu vào và ra,

GV: Buøi Coâng Phuùc

Page 106: Giao an tin 11

Tröôøng PT DTNT tænh Tin hoïc 11

Thời

gianHoạt động của học sinh Hoạt động của giáo viên Nội dung bài giảng

- GV diễn giảng: Phần đầu ctc có tên ctc các tham số ctc các tham số này được gọi là tham số hình thức, khi dùng chương trìng con ta phải truyền tham số cho chúng, tham số được truyền vào đgl tham số thực sự.

Thực hiện chương trình:Để sử dụng hàm và thủ tục các em thường viết ở đâu và viết như thế nào?

nhất định của ctc.

- Viết trong ct chính, viết thủ tục kèm theo các tham số và kết thúc là dấu chẩm phẩy (;). Viết hàm trong lệnh nào đó hoặc trong thủ tục, hàm không được viết như lệnh.

các hằng và biến dùng trong chương trình con.

Phần thân:Phần thân của chương trình con

là dãy câu lệnh thực hiện để từ những dữ liệu vào ta nhận được dữ liệu ra hay kết qủa mong muốn.

Tham số hình thức: Các biến được khai báo cho dữ liệu vào và ra được gọi là tham số hình thức của chương trình con. Các biến để dùng riềng trong chương trình con được gọi là biến cục bộ.

c. Thực hiện chương trình con:Để thực hiện (gọi) một chương

trình con ta cần phải có lệnh gọi nó tương tự lệnh gọi hàm hay thủ tục chuẩn, bao gồm tên chương trình con với tham số là các hằng, biến chứa dữ liệu vào và ra tương ứng với các tham số hình thức đặt trong cặp ngoặc ( và ). Các hằng và biến này được gọi là tham số thực sự.

oo) Củng cố: (3’)- Chương trình con đóng vai trò quan trọng trong lập trình, đặc biệt là trong lập trình

có cấu trúc.- Các lơị ích cơ bản của chương trình con.- Có hai loại chương trình con- Cấu trúc của chương trình con- Chương trình con được gọi thông qua tên của nó.

pp)Dặn dò học sinh chuẩn bị cho tiết học sau: (1’)Đọc trước nội dung bài: Ví dụ về cách viết và sử dụng chương trình con.

IV. RÚT KINH NGHIỆM, BỔ SUNG:

…………………………………………………………………………………………………

…………………………………………………………………………………………………

……………………………………………………………………

…………………………………………………………………………………………………

…………………………………………………………………………………………………

……………………………………………………………………

GV: Buøi Coâng Phuùc

Page 107: Giao an tin 11

Tröôøng PT DTNT tænh Tin hoïc 11

Ngày soạn: Tiết 42: VÍ DỤ VỀ CÁCH VIẾT VÀ SỬ DỤNG CHƯƠNG TRÌNH CONI. MỤC TIÊU:

1/ Kiến thức:- Biết được cấu trúc chung và vị trí của thủ tục trong chương trình chính.- Phân biệt được tham số giá trị và tham số biến trong thủ tục.- Nắm được khai báo biến toàn cục và biến cục bộ.

2/ Kỹ năng:- Nhận biết được các thành phần trong đầu của một thủ tục.- Nhận biết được hai loại tham số hình thức trong đầu của một thủ tục.- Nhận biết được lời gọi thủ tục ở chương trình chính cùng với tham số thực sự.

3/ Thái độ:- Rèn luyện cho học sinh phẩm chất của người lập trình như tinh thần hợp tác, làm

việc theo nhóm, tuân thủ các yêu cầu của một công việc chung.- Rèn luyện cho học sinh đức tính chịu khó học hỏi, cẩn thận trong lúc làm việc.

II. CHUẨN BỊ:51. Chuẩn bị của giáo viên: Giáo án, hình ảnh minh họa, máy chiếu và máy tính.52. Chuẩn bị của học sinh: Đọc trước SGK.

III. HOẠT ĐỘNG DẠY HỌC:qq)Ổn định tình hình lớp: (1’)rr) Kiểm tra bài cũ: (7’)

Câu hỏi: Em hãy nêu khái niệm chương trình con? Nêu cấu trúc chung của một chương trình con.Trả lời: Chương trình con là một dãy lệnh mô tả một số thao tác nhất định có thể được thực hiện ở nhiều vị trí trong chương trình.Cấu trúc:Cấu trúc chung của chương trình con: (giống cấu trúc của một chương trình)<Phần đầu><[phần khai báo]><phần thân>Phần khai báo: Phần khai báo có thể có khai báo biến cho dữ liệu vào và ra, các hằng và biến dùng

trong chương trình con.Phần thân:Phần thân của chương trình con là dãy câu lệnh thực hiện để từ những dữ liệu vào ta

nhận được dữ liệu ra hay kết qủa mong muốn.

GV: Buøi Coâng Phuùc

Page 108: Giao an tin 11

Tröôøng PT DTNT tænh Tin hoïc 11

ss) Giảng bài mới:Thờ

i gian

Hoạt động của học sinh Hoạt động của giáo viên Nội dung bài giảng

7’

* Hoạt động 1: 1/ Giới thiệu ví dụ mở đầu.GV: Từ bài cũ dẫn dắt vấn đề sang bài mới. Khi muốn vẽ một HCN thì chúng ta phải viết các lệnh như trên bảng -> mất thời gian. Để khắc phục điều đó chúng ta phải làm gì?GV: Cụ thể là chúng ta sẽ viết thủ tục. Cách viết đó như thế nào hôm nay chúng ta sẽ cùng tìm hiểuGV: Chiếu vidu_thutuc1, giới thiệu cho học sinh cấu trúc thủ tục, lời gọi thủ tục.2/ Tìm hiểu cấu trúc thủ tụcGV: Vị trí của thủ tục nằm ở phần nào trong chương trình chính?GV: Cấu trúc chung của thủ tục bao gồm có mấy phần?GV: Phân biệt sự giống nhau khác nhau giữa thủ tục và chương trình chính.GV: Em hãy nêu cấu trúc chung của thủ tục?

HS: Viết chương trình con.

HS: Quan sát theo dõi ví dụ

HS: Nằm ở phần khai báo,sau khái báo biến.

HS: Ba phần: Tên thủ tục, khai báo của thủ tục, phần thân.HS: Thủ tục nằm ở trong chương trình chính, thủ tục mở đầu bằng từ Procedure

1/ Cách viết và sử dụng thủ tục

a/ Cấu trúc của thủ tục

Procedure <Tên thủ tục> [<danh sách tham số>] [<phần khai báo>];Begin[<Dãy các lệnh>];end;

Lưu ý: - Procedure: Từ khoá- Tên thủ tục : Bắt buộc phải có.- Kết thúc thủ tục bằng từ khoá End;

20’ * Hoạt động 2: 3/ Tìm hiểu tham số hình thức và tham số thực sự.GV: Chiếu VD_thutuc2 <sgk T98)GV: Phân biệt VD_thutuc2 với thutuc1.GV: Thutuc2 cho phép vẽ nhiều hình chữ nhật với kích thước khác nhau bởi vì có hai tham số chdai,chrong.GV: Trong chương trình chúng ta vẽ được bao nhiêu nhiêu hình chữ

HS: Quan sát, nghiên cứu trả lời câu hỏi.

HS: Thutuc2 có thêm chdai, chrong ở trong phần đầu của thủ tục.

HS: 3 hình chữ nhậtHS: Thông qua lời gọi:

2. Ví dụ về thủ tục:

* Tham số hình thức & Tham số thực sự:

- Tham số hình thức: Là tham số được đưa vào khi

GV: Buøi Coâng Phuùc

Page 109: Giao an tin 11

Tröôøng PT DTNT tænh Tin hoïc 11

Thời

gianHoạt động của học sinh Hoạt động của giáo viên Nội dung bài giảng

nhật.GV: Vì sao?GV: Đưa ra phương án đúng và giải thích cho học sinh.Trong lời gọi ve_hcn(a,b) vì có vòng lặp (for i:=1 to 4 do ) nên ta vẽ được 4 hình chữ nhật. Giáo viên chạy chương trình cho học sinh quan sát.GV: Theo em chdai, chrong, 25, 10, a, b được gọi là gì?

GV: Em hãy chỉ ra tham số hình thức và tham số thực ở ví dụ trên.

4/ Tìm hiểu tham số giá trị và tham số biến.GV: Chiếu ví dụ thambien1 lên bảng.GV: Trong phần đầu của thủ tục có tên thambien1 có gì khác với thủ tục ve_hcn.

GV: Tham số trong chương trình con có hai chức năng: Đưa dữ liệu vào, đưa kết quả ra.

GV: Quan sát ví dụ thambien1 cho biết x, y thuộc loại tham biến nào?

GV: Chiếu ví dụ tham bien2, x, y thuộc loại tham số nào?

GV: Chiếu và cho chạy chương trình các ví dụ để cho học sinh nắm rõ hơn về tham số biến và tham số giá trị.

Ve_hcn(25,10);Ve_hcn(5,10);Ve_hcn(a,b);

HS: Tham số HS: chdai, chrong: tham số hình thức.a,b: Là tham số thực sự

HS: Quan sát ví dụ và trả lời câu hỏi.

HS: Phần khai báo có chữ Var.

HS: x, y thuộc loại tham số biến.

HS: x: Tham số giá trị, y: Tham số biến

định nghĩa chương trình con.

- Tham số thực sự: Là tham số được viết trong lời gọi chương trình con.

Tham số giá trị và tham số biến (tham trị & tham biến)

- Tham số biến: Khai báo phải có từ khoá Var. Khi gọi chương trình con, các tham số hình thức là biến chỉ được phép thay thế bằng các tham số thực sự là biến.- Tham số giá trị: Khi khai báo

không có từ khoá Var ở trước, khi gọi chương trình con, các tham số giá trị sẽ được thay thế bằng các tham số thực sự là giá trị hoặc biến.

GV: Buøi Coâng Phuùc

Page 110: Giao an tin 11

Tröôøng PT DTNT tænh Tin hoïc 11

Thời

gianHoạt động của học sinh Hoạt động của giáo viên Nội dung bài giảng

6’

* Hoạt động 3: Hoạt động nhóm:Chia lớp thành 6 nhóm thảo luận về phiếu học tập sau.

PHIẾU HỌC TẬPEm hãy chỉ ra các thành phần của chương trình sau, chỉ ra các loại tham số trong chương trình con và chương trình chính?.Chương trình:program binhphuong;var a, x: real;

procedure binhphuong1 (b: real; var y: real);beginy:=b*b;Writeln(‘ Binh phuong cua so do la’,y:4:2);end;

beginbinhphuong1(4,x);Write(‘ Nhap so can tim a=’); readln(a);binhphuong1(a,x);readln;

End.

tt) Củng cố: (3’)-Cấu trúc chung của thủ tục.- Các loại tham số

uu)Dặn dò học sinh chuẩn bị cho tiết học sau: (1’)Học bài và chuẩn bị trước nội dung còn lại của bài Ví dụ về cách viết và sử dụng

chương trình con.IV. RÚT KINH NGHIỆM, BỔ SUNG:

GV: Buøi Coâng Phuùc

TS hình thức(Ở phần đầu của

chương trình con)

Tham số

TS thực sự(Trong lời gọi ở

chương trình chính)

Tham số biến( Khai báo ở phần

đầu của thủ tụccó từ khoá Var)

Tham số giá trị( Khai báo ở phần

đầu của thủ tụckhông có từ khoá

Page 111: Giao an tin 11

Tröôøng PT DTNT tænh Tin hoïc 11

…………………………………………………………………………………………………

…………………………………………………………………………………………………

……………………………………………………………………

…………………………………………………………………………………………………

…………………………………………………………………………………………………

……………………………………………………………………

Ngày soạn: Tiết 43: VÍ DỤ VỀ CÁCH VIẾT VÀ SỬ DỤNG CHƯƠNG TRÌNH CON (tt)I. MỤC TIÊU:

1/ Kiến thức:- Biết được cấu trúc chung và vị trí của hàm trong chương trình chính.- Sự giống và khác nhau giữa hàm và thủ tục.

GV: Buøi Coâng Phuùc

Page 112: Giao an tin 11

Tröôøng PT DTNT tænh Tin hoïc 11

2/ Kỹ năng:- Nhận biết được các thành phần của một hàm.- Phân biệt được hàm và thủ tục.- Hoïc sinh nhaän bieát ñöôïc caâu leänh söû duïng haøm ôû chöông

trình cuøng caùc tham soá thöïc söï.3/ Thái độ:

- Rèn luyện cho học sinh phẩm chất của người lập trình như tinh thần hợp tác, làm việc theo nhóm, tuân thủ các yêu cầu của một công việc chung.

- Rèn luyện cho học sinh đức tính chịu khó học hỏi, cẩn thận trong lúc làm việc.II. CHUẨN BỊ:

53. Chuẩn bị của giáo viên: Giáo án, hình ảnh minh họa, máy chiếu và máy tính.54. Chuẩn bị của học sinh: Đọc trước SGK.

III. HOẠT ĐỘNG DẠY HỌC:vv) Ổn định tình hình lớp: (1’)ww) Kiểm tra bài cũ: (7’)

Câu hỏi: Em hãy cấu trúc chung của thủ tục (Procedure) và nêu rõ từng thành phần của thủ tục? Phân biệt tham số hình thức và tham số thực sự?Trả lời:

a/ Cấu trúc của thủ tụcProcedure <Tên thủ tục> [<danh sách tham số>] [<phần khai báo>];Begin[<Dãy các lệnh>];end;

Trong đó:- Procedure: Từ khoá- Tên thủ tục : Bắt buộc phải có.- Kết thúc thủ tục bằng từ khoá End;

* Tham số hình thức & Tham số thực sự:- Tham số hình thức: Là tham số được đưa vào khi định nghĩa chương trình con.- Tham số thực sự: Là tham số được viết trong lời gọi chương trình con.

xx) Giảng bài mới:Thờ

i gian

Hoạt động của học sinh Hoạt động của giáo viên Nội dung bài giảng

29’ Chuùng ta ñaõ tim hieåu veà thuû tuïc (Procedure), ñaây laø chöông trình con khoâng coù giaù trò traû veà. Hoâm nay chuùng ta seõ tìm hieåu veà moät loaïi chöông trình con coù giaù trò traû veà ñoù laø Haøm (Function). Vaäy Haøm vaø Thuû tuïc khaùc nhau nhö theá naøo? Caùch vieát vaø söû duïng Haøm nhö theá naøo?

2. Cách viết và sử dụng hàm:* Caáu Truùc chung cuûa Haøm (Function):Function<Teân haøm> [ (Danh saùch tham soá)]: <kieåu döõ lieäu>;[( Phaàn khai baùo)];

GV: Buøi Coâng Phuùc

Page 113: Giao an tin 11

Tröôøng PT DTNT tænh Tin hoïc 11

Thời

gianHoạt động của học sinh Hoạt động của giáo viên Nội dung bài giảng

GV: Xeùt baøi toaùn tìm soá nhoû nhaát trong 2 soá: a vaø b. -Ñaët caâu hoûi: Theo caùc em baøi toaùn treân cho ta keát quaû laø gì?

GV: Vaäy thì baøi toaùn treân chuùng ta khoâng theå söû duïng thuû tuïc maø phaûi söû duïng haøm. Caùc em haõy quan saùt caáu truùc chung cuûa Haøm nhö sau:- Duøng maùy chieáu chieáu caáu truùc cuûa haøm.- Caùc em haõy chæ ra nhöõng ñieåm gioáng nhau vaø khaùc nhau giöõa Thuû tuïc vaø Haøm?- Kieåu döõ lieäu laø caùc kieåu naøo?

GV: Nhaän xeùt, giaûi thích vaø choát laïi.

GV: Caùc em xem ví duï 1 SGK trang 101 vaø cho bieát vieäc söû duïng Haøm nhö theá naøo?

HS: Moät em traû lôøi caâu hoûi. - Caùc nhoùm khaùc nhaän xeùt vaø boå sung.

HS: Laéng nghe vaø traû lôøi.

HS: Thaûo luaän nhoùm trong thôøi gian 5 phuùt vaø moät em traû lôøi. - Caùc nhoùm khaùc nhaän xeùt vaø boå sung.

HS: Xem ví duï 1 SGK trang 101 vaø thaûo luaän nhoùm trong 3 phuùt.

Begin [< daõy caùc leänh>]; < Teân haøm> := <Bieåu thöùc>;end;

* Söï gioáng nhau vaø khaùc nhau giöõa thuû tuïc vaø haøm:Gioáng nhau:- Ñeàu laø chöông trình con, coù caáu truùc gioáng moät chöông trình.- Ñeàu coù theå chöùa caùc tham soá (tham soá giaù trò vaø tham soá bieán), cuøng tuaân theo caùc quy ñònh veà khai baùo vaø söû duïng caùc loaïi tham soá naøy. (Coù theå khoâng coù tham soá)Khaùc nhau:- Haøm khaùc thuû tuïc ôû ñieåm caên baûn laø haøm luoân traû veà moät giaù trò thuoäc kieåu xaùc ñònh thoâng qua teân haøm. (caùc kieåu döõ lieäu ñôn giaûn: integer, real, boolean, char, string).- Ñaàu haøm baét ñaàu baèng töø khoùa Function coøn thuû tuïc baét ñaàu vôùi töø khoùa Procedure.- Phaûi chæ ra keát quaû cuûa haøm thuoäc kieåu döõ lieäu naøo.- Trong thaân haøm thöôøng coù caâu leänh gaùn giaù trò cho teân haøm.

* Caùch söû duïng haøm: Vieäc söû duïng haøm

gioáng nhö vieäc söû duïng caùc haøhaøm chuaån.

=> Khi vieát leänh goïi

GV: Buøi Coâng Phuùc

Page 114: Giao an tin 11

Tröôøng PT DTNT tænh Tin hoïc 11

Thời

gianHoạt động của học sinh Hoạt động của giáo viên Nội dung bài giảng

GV: Nhaän xeùt, giaûi thích vaø choát laïi.

teân haøm goàm: Teân haøm vaø tham soá thöïc söï töông öùng vôùi caùc tham soá hình thöùc.

yy) Củng cố: (7’)- Thaûo luaän theo nhoùm ví duï 2 SGK trang 102 vaø traû lôøi caùc caâu hoûi?

+ Ví duï treân thöïc hieän chöông trình gì?+ Haõy cho bieát keát quaû traû veà cuûa haøm MIN?+ Giaûi thích lôøi goïi haøm: Min(Min(a,b),c)?+ Haõy chæ ra tham soá hình thöùc, tham soá thöïc söï, bieán

toaøn cuïc vaø bieán cuïc boä?- HS: Traû lôøi tröôùc lôùp. Caùc nhoùm khaùc nhaän xeùt, goùp yù.- GV: Cho ñieåm.- Toång keát vaø trình chieáu caùc noäi dung ñaõ hoïc.

zz) Dặn dò học sinh chuẩn bị cho tiết học sau: (1’)Học bài và chuẩn bị trước bài thực hành số 6.

IV. RÚT KINH NGHIỆM, BỔ SUNG:

…………………………………………………………………………………………………

…………………………………………………………………………………………………

……………………………………………………………………

…………………………………………………………………………………………………

…………………………………………………………………………………………………

……………………………………………………………………

GV: Buøi Coâng Phuùc

Page 115: Giao an tin 11

Tröôøng PT DTNT tænh Tin hoïc 11

Ngày soạn: Tiết 44-45: BÀI TẬP VÀ THỰC HÀNH 6I. MỤC TIÊU:

1/ Kiến thức:- Củng cố lại các kiến thức về xâu kí tự và chương trình con.

2/ Kỹ năng:- Rèn luyện kĩ năng xử lí xâu bằng việc tạo hiệu ứng chữ chạy trên màn hình.- Nâng cao kĩ năng viết và sử dụng chương trình con.

3/ Thái độ:- Rèn luyện cho học sinh đức tính chịu khó học hỏi, cẩn thận trong lúc làm việc.

II. CHUẨN BỊ:55. Chuẩn bị của giáo viên: Giáo án, hình ảnh minh họa và máy tính.56. Chuẩn bị của học sinh: Đọc trước SGK.

III. HOẠT ĐỘNG DẠY HỌC:aaa) Ổn định tình hình lớp: (1’)bbb) Kiểm tra bài cũ: (7’)

Câu hỏi: Em hãy cấu trúc chung của hàm (Funtion) và nêu rõ từng thành phần của hàm? Phân biệt giữa hàm và thủ tục.Trả lời:

* Caáu Truùc chung cuûa Haøm (Function):Function<Teân haøm> [ (Danh saùch tham soá)]: <kieåu döõ lieäu>;[( Phaàn khai baùo)];Begin [< daõy caùc leänh>]; < Teân haøm> := <Bieåu thöùc>;end;

* Söï gioáng nhau vaø khaùc nhau giöõa thuû tuïc vaø haøm:Gioáng nhau:- Ñeàu laø chöông trình con, coù caáu truùc gioáng moät chöông trình.- Ñeàu coù theå chöùa caùc tham soá (tham soá giaù trò vaø tham soá bieán), cuøng tuaân theo caùc quy ñònh veà khai baùo vaø söû duïng caùc loaïi tham soá naøy. (Coù theå khoâng coù tham soá)Khaùc nhau:- Haøm khaùc thuû tuïc ôû ñieåm caên baûn laø haøm luoân traû veà moät giaù trò thuoäc kieåu xaùc ñònh thoâng qua teân haøm. (caùc kieåu döõ lieäu ñôn giaûn: integer, real, boolean, char, string).- Ñaàu haøm baét ñaàu baèng töø khoùa Function coøn thuû tuïc baét ñaàu vôùi töø khoùa Procedure.

GV: Buøi Coâng Phuùc

Page 116: Giao an tin 11

Tröôøng PT DTNT tænh Tin hoïc 11

- Phaûi chæ ra keát quaû cuûa haøm thuoäc kieåu döõ lieäu naøo.- Trong thaân haøm thöôøng coù caâu leänh gaùn giaù trò cho teân haøm.

ccc) Giảng bài mới:Thờ

i gian

Hoạt động của học sinh Hoạt động của giáo viên Nội dung bài giảng

*Hoạt động 1: Tìm hiểu việc xây dựng hai thủ tục catdan(s1,s2) và cangiua(s):- Chiếu nội dung thủ tục CatDan(s1, s2). Type str79 = string[79]; procedure CatDan(S1: str79; var S2: str79); begin s2:= copy(s1,2,length(S1)-1)+s1[1]; end;

Hỏi: Đầu vào và đầu ra của thủ tục này?

Chức năng của thủ tục này?

- Yêu cầu học sinh cho một ví dụ minh họa.Chiếu nội dung thủ tục CanGiua(s)procedure CanGiua(Var S: str79); var i, n: integer;begin n:= length(S); n:= (80-n) div 2;

Thñ tôc CatDan(S1,S2) nhËn ®Çu vµo lµ x©u S1 gåm kh«ng qu¸ 79 kÝ tù.

HS: Chức năng của thủ tục này là: T¹o x©u S2 thu ®îc tõ x©u S1 b»ng viÖc chuyÓn kÝ tù ®Çu tiªn cña nã xuèng vÞ trÝ cuèi cïng. VÝ dô nÕu S1='abcd' th× S2 = 'bcda'.

uses crt;Type str79 = string[79];var s1, s2: str79; 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; repeat gotoxy(1,12); (* ChuyÓn con trá ®Õn vÞ trÝ ®Çu dßng 12 *) write(S1); delay(500); (* Dõng 500 miligi©y *) CatDan(S1, S2); S1:=S2; until keypressed; (* Gâ mét phÝm bÊt k× ®Ó kÕt thóc *)

GV: Buøi Coâng Phuùc

Page 117: Giao an tin 11

Tröôøng PT DTNT tænh Tin hoïc 11

Thời

gianHoạt động của học sinh Hoạt động của giáo viên Nội dung bài giảng

for i:= 1 to n do S:= ' '+S;end;Hỏi: Đầu vào của thủ tục này là gì?

- Thủ tục này thực hiện công việc gì?

Chú ý: có thể nhắc học sinh nếu không khai báo s là tham biến thì thủ tục này không có hiệu lực vì lệnh đưa s ra màn hình không có trong thủ tục này.

Thñ tôc CanGiua(S) nhËn ®Çu vµo lµ x©u S gåm kh«ng qu¸ 79 kÝ tù

Thủ tục này có chức năng: bæ sung vµo ®Çu S mét sè kÝ tù tr¾ng ®Ó khi ®a ra mµn h×nh x©u kÝ tù trong S ban ®Çu ®îc c¨n vµo gi÷a dßng gåm 80 kÝ tù.

readlnEND.

ddd) Củng cố: (7’)- Thaûo luaän theo nhoùm ví duï 2 SGK trang 102 vaø traû lôøi caùc caâu hoûi?

+ Ví duï treân thöïc hieän chöông trình gì?+ Haõy cho bieát keát quaû traû veà cuûa haøm MIN?+ Giaûi thích lôøi goïi haøm: Min(Min(a,b),c)?+ Haõy chæ ra tham soá hình thöùc, tham soá thöïc söï, bieán

toaøn cuïc vaø bieán cuïc boä?- HS: Traû lôøi tröôùc lôùp. Caùc nhoùm khaùc nhaän xeùt, goùp yù.- GV: Cho ñieåm.- Toång keát vaø trình chieáu caùc noäi dung ñaõ hoïc.

eee) Dặn dò học sinh chuẩn bị cho tiết học sau: (1’)Học bài và chuẩn bị trước bài thực hành số 6.

IV. RÚT KINH NGHIỆM, BỔ SUNG:

…………………………………………………………………………………………………

…………………………………………………………………………………………………

……………………………………………………………………

…………………………………………………………………………………………………

…………………………………………………………………………………………………

……………………………………………………………………

GV: Buøi Coâng Phuùc

Page 118: Giao an tin 11

Tröôøng PT DTNT tænh Tin hoïc 11

Ngày soạn: Tiết 46-47: BÀI TẬP VÀ THỰC HÀNH 7I. MỤC TIÊU:

1/ Kiến thức:- Nâng cao kĩ năng viết và sử dụng chương trình con.- Biết cách viết một chương trình có cấu trúc để giải một bài toán trên máy tính.

2/ Kỹ năng:- Nâng cao kĩ năng viết và sử dụng chương trình con.

3/ Thái độ:- Rèn luyện cho học sinh đức tính chịu khó học hỏi, cẩn thận trong lúc làm việc.

II. CHUẨN BỊ:57. Chuẩn bị của giáo viên: Giáo án, hình ảnh minh họa và máy tính.58. Chuẩn bị của học sinh: Đọc trước SGK.

III. HOẠT ĐỘNG DẠY HỌC:fff) Ổn định tình hình lớp: (1’)ggg) Kiểm tra bài cũ: (không kiểm tra bài cũ)hhh) Giảng bài mới:

GV: Buøi Coâng Phuùc

Page 119: Giao an tin 11

Tröôøng PT DTNT tænh Tin hoïc 11

Thời

gian

Hoạt động của học sinh

Hoạt động của giáo viên

Nội dung bài giảng

* 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 các việc sau đây có liên quan đến tam giác :

Tính độ dài các cạnh,

Tính chu vi,

Tính diện tích,

Kiểm tra các tính chất : Đều, Cân, Vuông

Giả thiết tam giác được xác định bởi toạ độ của ba đỉnh.

GV: Ta sử dụng kiểu dữ liệu nào để mô tả một tam giác :Ta xây dựng các thủ tục và hàm : Thủ tục

procedure DaiCanh(var R : Tamgiac; var a, b, c : real);nhận đầu vào là

biến mô tả tam giác R và đầu ra là độ dài của ba cạnh a, b, c.

Hàm

function Chuvi(var R : Tamgiac) : real;

tính chu vi của tam giác R.

Hàm

Tham khảo sách giáo khoa và trả lời:

- Sử dụng kiểu dữ liệu:

Const

eps = 1.E-6;

Type Diem = record x, y: real; end; Tamgiac = record A, B, C: Diem; en

d;

Tìm hiểu chương trình nhập vào toạ độ 3 đỉ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 đặc tính của tam giác.Uses crt;Const Eps = 1.E-6;Type Diem = record x, y: real; end; Tamgiac = record A, B, C: Diem; end;Var T : Tamgiac; D, C, V : boolean; Function dist(P, Q : Diem) : real; begin dist:= 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:= dist(R.B, R.C);

b:= dist(R.A, R.C); c:= dist(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 Show(var R: tamgiac); beginwriteln('Toa do 3 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;

GV: Buøi Coâng Phuùc

Page 120: Giao an tin 11

Tröôøng PT DTNT tænh Tin hoïc 11

Thời

gian

Hoạt động của học sinh

Hoạt động của giáo viên

Nội dung bài giảng

Function Dientich(var R : Tamgiac) : real;

tính diện tích của tam giác R.

Thủ tục

Procedure Tinhchat(var R :Tamgiac; var Deu, Can, Vuong: boolean);

nhận đầu vào là biến mô tả tam giác R và đầu ra là tính chất của tam giác : Deu hay Can hay Vuong.

Thủ tục

Procedure Show(var R: Tamgiac);

để hiển thị toạ độ ba đỉnh tam giác lên màn hình.

Hàm Function dist(P, Q : Diem): real;

để tính khoảng cách giữa hai điểm P, Q.

Học sinh theo dõi và thực hành trên máy của mình

Học sinh theo dõi và thực hành trên máy của mình

Học sinh theo dõi kết quả thực hiện được trên máy của mình

begin Deu:= false; Can:= false; Vuong:= false;

Daicanh(R, a, b, c); if (abs(a-b)<eps) and (abs(a-c)<eps) then

begin Deu:= true;

can:= true; end else if (abs(a-b)<eps) or (abs(a-c)<eps) or (abs(b-c)<eps) then Can:= true; if (abs(a*a+b*b-c*c)<eps) or (abs(a*a+c*c-b*b)<eps) or (abs(b*b+c*c-a*a)<eps) then Vuong:= true; end;BEGIN writeln('Nhap tam giac : '); write('Toa do dinh A : '); readln(T.A.x, T.A.y); write('Toa do dinh B : '); readln(T.B.x, T.B.y); write('Toa do dinh C : '); readln(T.C.x, T.C.y);writeln('======================================'); Show(T); writeln('Dien tich : ',Dientich(T):9:3); writeln('Chu vi : ',Chuvi(T):9:3); Tinhchat(T, D, C, V); writeln('Tam giac co tinh chat : '); if D then writeln(' la tam giac deu') else if C then writeln(' la tam giac can'); if V then writeln(' la tam giac vuong'); readln;END.

iii) Củng cố: (7’)- Đại diện mỗi máy trả lời kết quả hiển thị trên màn hình, nhận xét và trả lời câu hỏi của giáo viên.- HS: Traû lôøi tröôùc lôùp. Caùc nhoùm khaùc nhaän xeùt, goùp yù.- GV: Cho ñieåm.- Toång keát vaø trình chieáu caùc noäi dung ñaõ hoïc.

jjj) Dặn dò học sinh chuẩn bị cho tiết học sau: (1’)Ôn tập để chuẩn bị kiểm tra thực hành.

IV. RÚT KINH NGHIỆM, BỔ SUNG:

GV: Buøi Coâng Phuùc

Page 121: Giao an tin 11

Tröôøng PT DTNT tænh Tin hoïc 11

…………………………………………………………………………………………………

…………………………………………………………………………………………………

……………………………………………………………………

…………………………………………………………………………………………………

…………………………………………………………………………………………………

……………………………………………………………………

Ngày soạn: Tiết 47: BÀI TẬP VÀ THỰC HÀNH 7 (tt)I. MỤC TIÊU:

1/ Kiến thức:- Nâng cao kĩ năng viết và sử dụng chương trình con.- Biết cách viết một chương trình có cấu trúc để giải một bài toán trên máy tính.

2/ Kỹ năng:- Nâng cao kĩ năng viết và sử dụng chương trình con.

3/ Thái độ:- Rèn luyện cho học sinh đức tính chịu khó học hỏi, cẩn thận trong lúc làm việc.

II. CHUẨN BỊ:59. Chuẩn bị của giáo viên: Giáo án, hình ảnh minh họa và máy tính.60. Chuẩn bị của học sinh: Đọc trước SGK.

III. HOẠT ĐỘNG DẠY HỌC:kkk) Ổn định tình hình lớp: (1’)lll) Kiểm tra bài cũ: (5’)

Trình bày các khái niệm về biến, tham số?- Tham số hình thức: Là tham số được đưa vào khi định nghĩa chương trình con.- Tham số thực sự: Là tham số được viết trong lời gọi chương trình con- Tham số hình thức: Là tham số được đưa vào khi định nghĩa chương trình con.- Tham số thực sự: Là tham số được viết trong lời gọi chương trình con.

mmm) Giảng bài mới:Thờ

i gian

Hoạt động của giáo viên

Hoạt động của học sinh

Nội dung bài giảng

20’

* Hoạt động: Các bài tập về chương trình con kết hợp với kiến thức phần xâu kí tự.Bài 1: Lập chương trình chuẩn hóa một xâu họ tên(Xâu họ tên chuẩn là xâu: không có các khoảng trống thừa và chữ cáI đầu của các từ Đọc kĩ đề, suy nghĩ

Bài 1: Lập chương trình chuẩn hóa một xâu họ tênChương trình:Program Baitap;Var s:String;Procedure Xoa_Khoang_trong(var

s:string);Var i: integer;Begin while s[1] = ‘ ‘ do delete(s, 1, 1); while s[length(s)] = ‘ ‘ do delete(s,

GV: Buøi Coâng Phuùc

Page 122: Giao an tin 11

Tröôøng PT DTNT tænh Tin hoïc 11

Thời

gian

Hoạt động của giáo viên

Hoạt động của học sinh

Nội dung bài giảng

13’

phảI được viết hoa. Ví du xâu họ tên: Nguyen Van Ut) Yêu cầu: Tìm hiểu đề bài và đề xuất thuật toán: Từ thuật toán đã đề xuất ở trên, hãy tổ chức phân chia công việc cho các tổ dưới dạng các chương trình con, sau đó ghép lại thành chương trình chính hoàn chỉnh.

Bài 2: - Viết chương trình con đếm số từ của một câu. - Chương trình chính: Đọc vào một câu (ít hơn 80 kí tự) từ bàn phím rồi đếm xem trong câu có mấy từ. Từ được hiểu là xâu khác rỗng không chứa dấu cách. Yêu cầu: Tìm hiểu đề bài và đề xuất thuật toán: Từ thuật toán đã đề xuất ở trên, hãy tổ chức phân chia công việc cho các tổ dưới dạng các chương trình con, sau đó ghép lại thành chương trình chính hoàn chỉnh.Để đếm được số từ trong câu, ta sẽ đếm

làm bài.Dưới sự chỉ đạo của

giáo viên, HS tổ chức chia nhóm để hoạt động:

Tổ 1+ 2: Viết chương trình con để cắt các khoảng trống thừa của xâu.

Tổ 3: Viết chương trình con dạng thủ tục để viết hoa chữ cái đầu của mỗi từ

Tổ 4: Viết chương trình chính có sử dụng 2 thủ tục trên.

HS đọc kĩ đề, suy nghĩ làm bài.

Dưới sự chỉ đạo của giáo viên, HS tổ chức chia nhóm để hoạt động:

Nhóm 1: Viết chương trình dạng hàm để đếm từ.

Nhóm 2: Viết chương trình chính có sử dụng hàm trên.

length(s), 1);i:=1; while i < length(s) do if (s[i] = ‘ ‘) and (s[i+1] = ‘ ‘)

then Delete (s, i, 1) else i:=i+1;

End; Procedure Viet_Hoa( Var S:string);Var i: integer;Begin s[1]:= upcase(s[1]); for i:= 1 to length(s) do if s[i] = ‘ ‘ then s[i+1] =

upcase(s[i+1]);end; BEGIN write(‘Nhap vao xau ho ten bat

ki’); readln(s); Write(‘Xau moi nhap la:’, S); Cat_Khoang_trong(s); Viet_Hoa(s); write(‘Xau ho ten sau khi chuan

hoa la: ’, s );Readln;END.Program Baitap2;Var cau : String; kq: integer;Function Dem_tu (s : string): integer;Var D, i: integer;Begin D := 0; For I := 1 to length (s) do if (s[i] <> ‘ ‘) and (s[i+1] = ‘ ‘)

then D := D+1; Dem_tu := D;End;BEGIN writeln(‘Nhap vao mot cau khong

qua 80 ki tu’); readln(cau); cau := cau + ‘ ‘; kq := Dem_tu(cau); Writeln(‘So luong tu trong cau

la:’, kq); Readln;END.

GV: Buøi Coâng Phuùc

Page 123: Giao an tin 11

Tröôøng PT DTNT tænh Tin hoïc 11

Thời

gian

Hoạt động của giáo viên

Hoạt động của học sinh

Nội dung bài giảng

các kí tự trống sau mỗi từ.

Trước khi đếm từ, ta thêm 1 kí tự trống vào cuối xâu để đảm bảo sau mỗi từ có ít nhất một dấu cách trống.

nnn) Củng cố: (5’)- Tham số hình thức: Là tham số được đưa vào khi định nghĩa chương trình con.- Tham số thực sự: Là tham số được viết trong lời gọi chương trình con- Tham số hình thức: Là tham số được đưa vào khi định nghĩa chương trình con.- Tham số thực sự: Là tham số được viết trong lời gọi chương trình con.

ooo) Dặn dò học sinh chuẩn bị cho tiết học sau: (1’)Làm bài tập về nhà.Ôn tập để chuẩn bị kiểm tra một tiết.

IV. RÚT KINH NGHIỆM, BỔ SUNG:

…………………………………………………………………………………………………

…………………………………………………………………………………………………

……………………………………………………………………

…………………………………………………………………………………………………

…………………………………………………………………………………………………

……………………………………………………………………

Ngày soạn: 18/03/2008Tiết 48: BÀI TẬP VÀ THỰC HÀNH 7I. MỤC TIÊU:

1/ Kiến thức:- Kiểm tra kiến thức của học sinh sau khi đã học xong các bài 17, 18.

2/ Kỹ năng:- Kiểm tra kĩ năng viết và sử dụng chương trình con.

3/ Thái độ:- Rèn luyện cho học sinh tính nghiêm túc trong kiểm tra.

GV: Buøi Coâng Phuùc

Page 124: Giao an tin 11

Tröôøng PT DTNT tænh Tin hoïc 11

II. CHUẨN BỊ:61. Chuẩn bị của giáo viên: Đề bài62. Chuẩn bị của học sinh: Học bài để kiểm tra.

III. HOẠT ĐỘNG DẠY HỌC:ppp) Ổn định tình hình lớp: Ñeà baøi Ñaùp aùn

Ñeà 1:Baøi 1: (2 ñ) Ñoïc chöông trình sau ñaây vaø cho bieát keát quaû hieän ra maøn hình:

Program Bai1;Var a, b: integer;Procedure Tinh(var x: integer; n: integer);Var i: integer;

Beginwriteln( x ,’ ‘, n );For i := 1 to n do x := x*x;

end;Begin

a := 5;b := 2;Tinh(a, b);Write(a, ‘ ‘, b);Readln;

End.Baøi 2: (4 ñ) Haõy xaùc ñònh bieán toaøn cuïc, bieán cuïc boä, tham soá thöïc söï vaø tham soá hình thöùc trong chöông trình sau:

PROGRAM Gian_Uoc_Phan_So;

USES CRT;

VAR TuSo, MauSo, A : Integer;

FUNCTION Ucln (X, Y : Integer) :

Integer;

VAR Du : Integer;

BEGIN

WHILE Y<>0 DO

BEGIN

DU:= X MOD Y;

X:= Y;

Y:= Du;

END;

Ucln:=X;

END;

BEGIN

Readln(TuSo, MauSo);

Ñeà 1: Caâu 1:Keát quaû hieän ra maøn hình laø:5 3125 3

Baøi 2: - Bieán toaøn cuïc: Tuso, Mauso, A- Bieán cuïc boä: Du- Tham soá hình thöùc: X, Y- Tham soá thöïc söï: Tuso, Mauso

Baøi 3:

GV: Buøi Coâng Phuùc

Page 125: Giao an tin 11

Tröôøng PT DTNT tænh Tin hoïc 11

Ñeà baøi Ñaùp aùn A:=Ucln (TuSo, MauSo);

IF A> 1 THEN

BEGIN

TuSo:=TuSo DIV A;

MauSo:=MauSo DIV A;

END;

Writeln(TuSo:5, MauSo:5);

END.

Baøi 3: (4 ñ) Vieát chöông trình ñeå

hoaùn ñoåi hai soá a vaø b

PROGRAM CT3;

USES CRT;VAR A, B : Integer; PROCEDURE Hoan_doi

(VAR X, Y : Integer); VAR TG : Integer; BEGIN

TG:= X; X := Y; Y := TG;

END;BEGIN

CLRSCR; A:=5; B:=10; Writeln (A:6, B:6); Hoan_doi(A, B); Writeln (A:6, B:6);END.

Thoáng keâ:

Lôùp Só soáThoáng keâ

Keùm Yeáu TB Khaù Gioûi11TN1 5011TN2 4811A1 4811A2 4911A3 5011A4 4811C 50

11D1 4811D2 48

IV. RÚT KINH NGHIỆM, BỔ SUNG:

…………………………………………………………………………………………………

…………………………………………………………………………………………………

……………………………………………………………………

…………………………………………………………………………………………………

…………………………………………………………………………………………………

……………………………………………………………………

Ngày soạn: 02/04/2008

GV: Buøi Coâng Phuùc

Page 126: Giao an tin 11

Tröôøng PT DTNT tænh Tin hoïc 11

Tiết 49: THÖ VIEÄN CHÖÔNG TRÌNH CON CHUAÅN I. MỤC TIÊU:

1/ Kiến thức:- Bieát ñöôïc noäi dung moät soá thö vieän chöông trình con.2/ Kỹ năng:- Böôùc ñaàu söû duïng ñöôïc caùc thö vieän ñoù trong laäp

trình.- Khôûi ñoäng ñöôïc cheá ñoä ñoà hoïa.- Söû duïng ñöôïc caùc thuû tuïc veõ ñieåm, ñöôøng, hình troøn,

hình Elip, hình chöõ nhaät.3/ Thái độ:

- Rèn luyện cho học sinh đức tính chịu khó học hỏi, cẩn thận trong lúc làm việc.II. CHUẨN BỊ:

63. Chuẩn bị của giáo viên: Giáo án, hình ảnh minh họa và máy tính.64. Chuẩn bị của học sinh: Đọc trước SGK.

III. HOẠT ĐỘNG DẠY HỌC:qqq) Ổn định tình hình lớp: (1’)rrr) Kiểm tra bài cũ: (không kiểm tra bài cũ)sss) Giảng bài mới:

Thời

gianHoạt động của giáo viên Hoạt động của học sinh Nội dung bài giảng

20’ * Hoaït ñoäng 1: Tìm hieåu thö vieän CRT.

1. Tìm hieåu thuû tuïc Clrscr.- Yeâu caàu hoïc sinh nghieân cöùu saùch giaùo khoa, keå teân caùc chöông trình con trong thö vieän CRT.- Chieáu chöông trình sau:

BeginClrscr;

Readln;End.

- Bieân dòch chöông trình. Hoûi: Taïi sao xuaát hieän loãi? Khaéc phuïc nhö theá naøo?

- Theâm Uses CRT; vaøo ñaàu chöông trình vaø

1. Tham khaûo saùch giaùo khoa:- Clrscr, textcolor, textbackground, gotoxy.

- Quan saùt chöông trình.

- Vì söû duïng thuû tuïc nhöng chöa söû duïng thö vieän CRT.- Theâm leänh USES CRT;- Quan saùt giaùo vieân thöïc hieän chöông trình.

- Xoùa maøn hình.

1. Tìm hi ểu thư viện CRT: a. Thö vieän CRT

chöùa caùc thuû tuïc lieân quan ñeán vieäc quaûn lí vaø khai thaùc maøn hình vaø baøn phím.

GV: Buøi Coâng Phuùc

Page 127: Giao an tin 11

Tröôøng PT DTNT tænh Tin hoïc 11

Thời

gianHoạt động của giáo viên Hoạt động của học sinh Nội dung bài giảng

thöïc hieän chöông trình ñeå hoïc sinh thaáy keát quaû. Chuù yù cho hoïc sinh ghi nhôù maøn hình tröôùc luùc thöïc hieän chöông trình naøy.- Hoûi: chöùc naêng cuûa thuû tuïc Clrscr;2. Tìm hieåu thuû tuïc Clrscr;- Chieáu chöông trình ví duï:Uses CRT;Begin

Write(‘Chua dat mau chu’);

Textcolour(4);Write(‘Da

dat mau chu la do’);

Readln;End.- Thöïc hieän chöông trình ñeå hoïc sinh thaáy ñöôïc keát quaû.- Hoûi: Chöùc naêng cuûa leänh textcolor(4);3. Tìm hieåu thuû tuïc Textbackground.- Chieáu chöông trình ví duï:Uses CRT;Begin

Textbackground(1);

Write(‘Da dat lai mau nen’);

Readln;End.

2. Tham khaûo saùch giaùo khoa:- Quan saùt chöông trình.

- Quan saùt keát quaû chöông trình.

- Ñaët maøu chöõ thaønh maøu ñoû.3. Tham khaûo saùch giaùo khoa:

- Quan saùt chöông trình.

- Quan saùt keát quaû chöông trình.

- Ñaët maøu chöõ neàn thaønh maøu xanh da trôøi.

4. Tham khaûo saùch giaùo khoa:

- Quan saùt

b. Thuû tuïc Clrscr: xoùa maøn hình.

c. Thuû tuïc Textcolor(c): Ñaët maøu cho chöõ treân maøn hình, trong ñoù c laø haèng hoaëc bieán coù giaù trò nguyeân khoâng aâm ñeå xaùc ñònh maøu.

d. Thuû tuïc Textbackground(c): Ñaët maøu cho neàn cuûa maøn hình.

e. Thuû tuïc Gotoxy(x,y): Ñöa con troû ñeán vò trí coät x doøng y cuûa maøn hình vaên baûn.

GV: Buøi Coâng Phuùc

Page 128: Giao an tin 11

Tröôøng PT DTNT tænh Tin hoïc 11

Thời

gianHoạt động của giáo viên Hoạt động của học sinh Nội dung bài giảng

- Thöïc hieän chöông trình ñeå hoïc sinh thaáy keát quaû.- Hoûi: chöùc naêng cuûa leänh Textbackground(1);4. Tìm hieåu thuû tuïc gotoxy.- Chieáu chöông trình ví duï:Uses CRT;Begin

Write(‘Con tro dang dung o cot 10 dong 20’);

Gotoxy(10,20);Readln;

End.- Thöïc hieän chöông trình ñeå hoïc sinh thaáy keát quaû.- Hoûi: chöùc naêng caûu leänh Gotoxy(10,20);

chöông trình.

- Quan saùt keát quaû chöông trình.

- Ñöa con troû veà vò trí coät 10 doøng 20.

* Hoạt động 2: Tìm hiểu thư viện Graph1. Yeâu caàu hoïc sinh nghieân cöùu saùch giaùo khoa ñeå traû lôøi caùc caâu hoûi:- Hoûi: caùc daïng döõ lieäu naøo coù theå ñöôïc hieån thò treân maøn hình?- Hoûi: Nhieäm vuï chính cuûa Card maøn hình?

- Hoûi: Khi noùi maøn hình coù ñoä phaân giaûi 640x480 laø noùi

1. Tham khaûo saùch giaùo khoa ñeå traû lôøi.

- Vaên baûn vaø hình aûnh.

- Laøm caàu noái giöõa CPU vaø maøn hình khi theå hieän thoâng tin.- Laø noùi ñeán maøn hình coù 640 doøng vaø 480 coät.

2. Th ư viện Graph: -Thö vieän Graph chöùa caùc chöông trình con phuïc vuï khai thaùc khaû naêng ñoà hoaï cuûa maùy tính ôû möùc ñoä thoâng duïng nhö veõ ñieåm, ñöôøng, toâ maøu…

-Caùc thieát bò vaø chöông trình hoã trôï ñoà hoïa:

+ Coù hai cheá ñoä maøn hình: Ñoà hoïa vaø vaên baûn.

+ Baûng maïch ñieàu khieån maøn hình laø thieát bò ñaûm baûo töông taùc giöõa boä xöû lí vaø maøn hình ñeå theå hieän caùc

GV: Buøi Coâng Phuùc

Page 129: Giao an tin 11

Tröôøng PT DTNT tænh Tin hoïc 11

Thời

gianHoạt động của giáo viên Hoạt động của học sinh Nội dung bài giảng

ñeán ñieàu gì?2. Ñöa ra caáu truùc chung cuûa thuû tuïc khôûi ñoäng ñoà hoïa.Initgraph(dr,md:integer; pth:string);- Giaûi thích caùc thoâng soá trong thuû tuïc cho hoïc sinh.- Cho hoïc sinh thaáy moät soá ví duï khôûi ñoäng ñoà hoïa.3. Giôùi thieäu thuû tuïc trôû veà cheá ñoä vaên baûn Closegraph;- Yeâu caàu hoïc sinh khôûi ñoäng cheá ñoä ñoà hoïa vaø chuyeån veà cheá ñoä vaên baûn.

2. Quan saùt vaø theo doõi daãn daét cuûa giaùo vieân.

- Quan saùt giaùo vieân thöïc hieän.

3. Quan saùt vaø so saùnh giöõa hai cheá ñoä vaên baûn vaø ñoà hoïa.- Thay phieân nhau thöïc hieän vieäc chuyeån ñoåi giöõa hai cheá ñoä vaên baûn vaø ñoà hoïa.

cheá ñoä phaân giaûi vaø maøu saéc.

+ Turbo Pascal cung caáp caùc chöông trình ñieàu khieån (coù phaàn môû roäng laø BGI) töông öùng vôùi caùc loaïi card ñoà hoïa. Khi khôûi ñoäng cheá ñoä ñoà hoïa caàn chæ ra ñöôøng daãn ñeán chöông trình naøy.

+ Toïa ñoä maøn hình ñoà hoïa ñöôïc ñaùnh soá töø 0. Coät ñöôïc ñaùnh soá töø phaûi sang traùi, doøng ñöôïc ñaùnh soá töø treân xuoáng döôùi. Giaù trò lôùn nhaát cuûa toïa ñoä doøng vaø toïa ñoä coät ñöôïc goïi laø ñoä phaân giaûi cuûa maøn hình.

+ Ñeå thöïc hieän ñöôïc chöùc naêng ñoà hoïa caàn söû duïng caùc thuû tuïc vaø haøm trong thö vieän Graph.

-Khôûi ñoäng cheá ñoä ñoà hoïa: Initgraph(dr,md:integer; pth:string);

+ dr: laø soá hieäu cuûa trình ñieàu khieån BGI.

+ md: laø soá hieäu cuûa ñoä phaân giaûi.

+ pth: laø ñöôøng daãn ñeán caùc teäp BGI.

-Keát thuùc cheá ñoä ñoà hoïa trôû veà cheá ñoä vaên baûn: Closegraph;

- Veõ ñieåm:

Putpixel(x,y:integer; color:word);

GV: Buøi Coâng Phuùc

Page 130: Giao an tin 11

Tröôøng PT DTNT tænh Tin hoïc 11

Thời

gianHoạt động của giáo viên Hoạt động của học sinh Nội dung bài giảng

- Veõ ñöôøng thaúng:

Line(x1,y1,x2,y2:integer);

Lineto(x,y:integer);Linerel(dx,dy:integer);- Veõ hình troøn:

Circle(x,y:integer; r:word);

- Veõ hình elip:

Ellipse(x,y:integer; stangle,endangle,xr,yr:word);

- Veõ hình chöõ nhaät:

Rectangle(x1,y1,x2,y2:integer);

Ñaët maøu cho neùt veõ:

Setcolor(word);14’ * Hoạt động 3: Tìm

hiểu một số thủ tục vẽ điểm, đường và các thủ tục.1. Tìm hieåu thuû tuïc Putpixel

- Chieáu caáu truùc chung cuûa thuû tuïc:

Putpixel(x,y:integer; color:word);- Chieáu chöông trình ví duï:Uses graph;Begin

Drive:=0;

Initgraph(drive, mode, ‘c:\Tp\BGI’);

1. Quan saùt caáu truùc chung vaø suy nghó ñeå traû lôøi caâu hoûi.

- Quan saùt chöông trình.

- Quan saùt keát quaû cuûa chöông trình.- Veõ moät ñieåm coù maøu Color

-Veõ ñieåm:

Putpixel(x,y:integer; color:word);

-Veõ ñöôøng thaúng:

Line(x1,y1,x2,y2:integer);

Lineto(x,y:integer);Linerel(dx,dy:integer);-Veõ hình troøn:

Circle(x,y:integer; r:word);

-Veõ hình elip:

Ellipse(x,y:integer; stangle,endangle,xr,yr:word);

-Veõ hình chöõ nhaät:

Rectangle(x1,y1,x2,y2:integer);

GV: Buøi Coâng Phuùc

Page 131: Giao an tin 11

Tröôøng PT DTNT tænh Tin hoïc 11

Thời

gianHoạt động của giáo viên Hoạt động của học sinh Nội dung bài giảng

Putpixel(12,40,15);

Readln;End.- Thöïc hieän chöông trình ñeå HS thaáy keát quaû.- Hoûi: chöùc naêng cuûa thuû tuïc Putpixel.

2. Tìm hieåu thuû tuïc Line

- Thöïc hieän chöông trình ñeå HS thaáy keát quaû.- Hoûi: Chöùc naêng cuûa thuû tuïc Line?

3. Tìm hieåu thuû tuïc Lineto.- Thöïc hieän chöông trình ñeå HS thaáy keát quaû.- Hoûi: chöùc naêng cuûa thuû tuïc Lineto?

4. Tìm hieåu thuû tuïc Linerel.

- Chieáu caáu truùc chung cuûa thuû tuïc:

Linerel(dx,dy:integer);- Hoûi: chöùc naêng cuûa thuû tuïc Linerel?

5. Tìm hieåu thuû

treân maøn hình taïi toïa ñoä (x,y).

2. Quan saùt caáu truùc chung vaø suy nghó ñeå traû lôøi caâu hoûi.

- Quan saùt chöông trình.

- Quan saùt keát quaû cuûa chöông trình.- Veõ moät ñöôøng thaúng töø ñieåm coù toïa ñoä (x1,y1) ñeán ñieåm coù toïa ñoä (x2,y2).

3. Quan saùt caáu truùc chung vaø suy nghó ñeå traû lôøi caâu hoûi.

- Quan saùt chöông trình.

- Quan saùt keát quaû cuûa chöông trình.- Veõ moät ñoaïn thaúng töø ñieåm hieän taïo ñeán ñieåm coù toïa ñoä (x,y).4. Quan saùt caáu truùc chung vaø suy nghó ñeå traû lôøi caâu hoûi.

-Ñaët maøu cho neùt veõ: Setcolor(word);

- Chieáu caáu truùc chung cuûa thuû tuïc:Line(x1,y1,x2,y2:integer);- Chieáu chöông trình ví duï treân nhöng thay leänh Putpixel(12,40,15); baèng leänh Line(1,1,20,20);

- Chieáu caáu truùc chung cuûa thuû tuïc:

Lineto(x,y:integer);- Chieáu chöông trình ví duï treân nhöng thay leänh Putpixel(12,40,15); baèng leänh lineto(20,20);

- Chieáu caáu truùc chung cuûa caùc thuû tuïc:

Circle(x,y:integer;r:word);

Ellipse(x,y:integer; stangle,endangle,xr, yr :word);

Rectangle(x1,y1,x2,y2:integer);- Chieáu chöông trình v1 duï:Use graph

GV: Buøi Coâng Phuùc

Page 132: Giao an tin 11

Tröôøng PT DTNT tænh Tin hoïc 11

Thời

gianHoạt động của giáo viên Hoạt động của học sinh Nội dung bài giảng

tuïc Circle, Ellipse, Rectangle.

- Thöïc hieän chöông trình ñeå HS thaáy keát quaû.- Hoûi: chöùc naêng cuûa caùc thuû tuïc Circle, Ellipse, rectangle.

6. Tìm hieåu thuû tuïc Setcolor.- Chieáu caáu truùc chung cuûa caùc thuû tuïc:

Setcolor(m:word);- Chieáu chöông trình ví duï:Use graphBegin

Drive:=0;

Initgraph(drive, mode, ‘c:\Tp\BGI’);

Circle(10,40,100);Setcolor(4);

Circle(10,40,200);Readln;

End.- Thöïc hieän chöông trình ñeå HS thaáy keát quaû.- Hoûi: Chöùc naêng cuûa thuû tuïc Lineto.

- Veõ ñoaïn thaúng noái ñieåm hieän taïi vôùi ñieåm coù toïa ñoä baèng toïa ñoä ñieåm hieän taïi coäng vôùi dx, dy.5. Quan saùt caáu truùc chung vaø suy nghó ñeå traû lôøi caâu hoûi.- Quan saùt chöông trình.- Quan saùt keát quaû cuûa chöông trình.+ Circle: Veõ moät ñöôøng troøn coù taâm taïi (x,y) vaø baùn kính r.+ Ellipse: Veõ cung cuûa ellipse coù taâm taïi ñieåm x,y vôùi caùc baùn kính truïc xr, yr, töø goùc khôûi ñaàu stangle ñeán goùc keát thuùc endangle.6. Quan saùt caáu truùc chung vaø suy nghó ñeå traû lôøi caâu hoûi.- Quan saùt chöông trình.- Quan saùt keát quaû cuûa chöông trình.- Setcolor(m:word): ñaët maøu cho neùt veõ vôùi maøu coù soá hieäu m.

BeginDrive:=0;Initgraph(drive,

mode, ‘c:\Tp\BGI’);Circle(12,40,30);

Ellipse(50,50,30,120,50,100:word);

Rectangle(100,100,200,200);

Readln;End.

ttt) Củng cố: (7’)

GV: Buøi Coâng Phuùc

Page 133: Giao an tin 11

Tröôøng PT DTNT tænh Tin hoïc 11

- Đại diện mỗi máy trả lời kết quả hiển thị trên màn hình, nhận xét và trả lời câu hỏi của giáo viên.- HS: Traû lôøi tröôùc lôùp. Caùc nhoùm khaùc nhaän xeùt, goùp yù.- GV: Cho ñieåm.- Toång keát vaø trình chieáu caùc noäi dung ñaõ hoïc.

uuu) Dặn dò học sinh chuẩn bị cho tiết học sau: (1’)Ôn tập để chuẩn bị kiểm tra thực hành.

IV. RÚT KINH NGHIỆM, BỔ SUNG:

…………………………………………………………………………………………………

…………………………………………………………………………………………………

……………………………………………………………………

…………………………………………………………………………………………………

…………………………………………………………………………………………………

……………………………………………………………………

GV: Buøi Coâng Phuùc