Thuật toán tìm bộ số pitago pascal

Bạn đang xem 20 trang mẫu của tài liệu "Giáo án môn Tin học 11 - Tiết 1 đến tiết 17", để tải tài liệu gốc về máy bạn click vào nút DOWNLOAD ở trên

Tiết: 01
Ngày soạn: 16/08/09
Chương 1:	 MỘT SỐ KHÁI NIỆM VỀ NGÔN NGỮ LẬP TRÌNH
BÀI 1: KHÁI NIỆM LẬP TRÌNH VÀ NGÔN NGỮ LẬP TRÌNH
I./ Mục đích, yêu cầu:
1./ Kiến thức:
- Biết được khái niệm lập trình và ngôn ngữ lập trình.
- Biết được khái niệm chương trình dịch.
- Phân biệt được hai loại chương trình dịch là biên dịch và thông dịch.
2./ Kỹ năng:
3./ Thái độ: HS có thái độ học tập nghiêm túc
II./ Chuẩn bị:
1./ Chuẩn bị của thầy: Giáo án, sách giáo khoa.
2./ Chuẩn bị của trò: sách giáo khoa.
IV./ Hoạt động dạy học:
	1. Ổn định lớp. 
	2. Kiểm tra bài cũ: 
 3. Nội dung bài mới:	
Hoạt động của GV và HS
Nội dung
1. Nội dung bài toán đặt vấn đề: Kết luận nghiệm của phương trình ax+b=0
GV: Hãy xác định các yếu tố Input và Output của bài toán?
HS: trả lời.
GV: Hãy xác định các bước để tìm output?
HS: trình bày.
GV: Diễn giải; Hệ thống các bước này được gọi là thuật toán.
- Nếu trình bày thuật toán với một người nước ngoài, em sẽ dùng ngôn ngữ nào để diễn đạt?
HS: Ngôn ngữ Tiếng Anh.
GV: Nếu diễn đạt thuật toán này cho máy hiểu, em sẽ dùng ngôn ngữ nào?
HS: Em dùng ngôn ngữ lập trình.
GV: Diễn giải: Hoạt động để diễn đạt một thuật toán thông qua một ngôn ngữ lập trình được gọi là lập trình.
GV: Yêu cầu học sinh đọc sách giáo khoa và cho biết khái niệm lập trình. 
HS: trả lời.
GV: Hỏi: kết quả của hoạt động lập trình?
HS: Ta được một chương trình
GV: Yêu cầu các em nêu các loại ngôn ngữ lập trình mà em biết .
HS: trả lời
- Hỏi: Em hiểu như thế nào về ngôn ngữ máy, hợp ngữ và ngôn ngữ bậc cao?
HS: trả lời
GV: Hỏi: Làm thế nào để chuyển một chương trình viết từ ngôn ngữ bậc cao sang ngôn ngữ máy?
HS: trả lời
GV: Hỏi: Vì sao không lập trình trên ngôn ngữ máy để khỏi phải mất công chuyển đổi mà người ta thường lập trình bằng ngôn ngữ bậc cao?
HS: trả lời.
GV nhận xét và bổ sung.
2. Nêu vấn đề: 
Em muốn giới thiệu về trường mình cho một người khách du lịch quốc tế biết tiếng Anh, có hai cách để thực hiện:
Cách 1: Cần một người biết tiếng Anh, dịch từng câu nói của em sang tiếng Anh cho người khách.
Cách 2: Em soạn nội dung cần giới thiệu ra giấy và người phiên dịch dịch toàn bộ nội dung đó sang tiếng Anh rồi đọc cho người khách.
GV: Hãy lấy ví dụ tương tự trong thực tế về biên dịch và thông dịch từ tiếng Anh sang tiếng Việt.
HS: Trả lời.
GV: Yêu cầu học sinh nghiên cứu sách giáo khoa và sử dụng các ví dụ trên để cho biết các bước trong tiến trình thông dịch và biên dịch.
Ví dụ: Tìm nghiệm pt: ax+b=0
- Input : a, b
- Output : x=-b/a, Vô nghiệm, Vô số nghiệm.
Bước 1 : Nhập a,b.
Bước 2 : Nếu a0 kết luận có nghiệm x=-b/a.
Bước 3 : Nếu a=0 và b0, kết luận Vô nghiệm.
Bước 4 : Nếu a=0 và b=0, kết luận Vô số nghiệm.
-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.
Ngôn ngữ lập trình.
- Ngôn ngữ máy
- Hợp ngữ.
- Ngôn ngữ bậc cao.
2. Thông dịch và biên dịch.
- 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.
(thuận tiện cho các chương trình ổn định và cần thực hiện nhiều lần)
- 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.
V. Đánh giá cuối bài:
* Những điểm cần lưu ý của bài:
- 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.
- Có hai loại chương trình dịch là biên dịch và thông dịch.
* Câu hỏi và bài tập về nhà:
- 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.
VI/ Nhận xét rút kinh nghiệm:	
Tiết: 02
Ngày soạn: 17/08/09
BÀI 2: CÁC THÀNH PHẦN CỦA NGÔN NGỮ LẬP TRÌNH
I./ Mục đích, yêu cầ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 độ: HS có thái độ học tập nghiêm túc, sôi nổi.
II./ Chuẩn bị:
1./ Chuẩn bị của thầy: Giáo án, sách giáo khoa.
2./ Chuẩn bị của trò: sách giáo khoa.
IV./ Hoạt động dạy học:
ổn định lớp.
Kiểm tra bài cũ.
Nội dung bài mới.
Hoạt động của GV và HS
Nội dung
GV: Đặt vấn đề: Có những yếu tố nào dùng để xây dựng nên ngôn ngữ tiếng Việt?
HS: Bảng chữ cái tiếng Việt, số, dấu..
HS:Cách ghép ký tự thành từ, ghép từ thành câu.
HS: Ngữ nghĩa của từ và câu.
GV: Diễn giảng: Trong ngôn ngữ lập trình cũng tương tự như vậy, nó gồm có các thành phần: Bảng chữ cái, cú pháp và ngữ nghĩa.
GV: Yêu cầu HS trả lời các câu hỏi:
- Hãy nêu các chữ cái của bảng chữ cái tiếng Anh.
- Nêu các ký số trong hệ đếm thập phân.
- Nêu một số ký hiệu đặc biệt khác.
HS: Nghiên cứu sách giáo khoa và trả lời
GV: Nhận xét , bổ sung.
GV: Đặt vấn đề: Mọi đối tượng trong chương trình đều phải được đặt tên. 
GV: Hãy nghiên cứu sách giáo khoa, trang 10, để nêu quy cách đặt tên trong Turbo Pasacl?
HS: Phát biểu hiểu biết của mình
GV: Ghi lên bảng các tên đúng-sai, yêu cầu học sinh chọn tên đúng.
A
A BC
6Pq
R12
X#y
_45
HS: Chọn đáp án đúng.
GV: Yêu cầu học sinh nghiên cứu sách giáo khoa, (trang 10-11) để biết các khái niệm về tên dành riêng, tên chuẩn và tên do người lập trình đặt. 
HS: trả lời
GV: Yêu cầu học sinh cho một số ví dụ về hằng số, hằng xâu và hằng logic.
HS: Nghiên cứu sách giáo khoa và trả lời.
GV: Trình bày khái niệm về hằng số, hằng xâu và hằng logic.
HS: Trả lời
HV Ghi bảng: yêu cầu HS xác định hằng số và hằng xâu trong các hằng sau:
-32767 ‘QB’ ‘50’ 1.5E+2
HS: Trả lời
GV Yêu cầu học sinh nghiên cứu sách giáo khoa, cho biết khái niệm biến.
HS: Cho ví dụ một số biến.
GV: Yêu cầu học sinh nghiên cứu sgk và cho biết chức năng của chú thích trong chương trình.
HS:Trả lời và cho ví dụ về một dòng chú thích 
GV: Hỏi: Tên biến và tên hằng là tên dành riêng hay tên chuẩn hay tên do người lập trình đặt?
HS: Là tên do người lập trình đặt.
GV: Hỏi: Các lệnh được viết trong cặp dấu { } có được TP thực hiện không? vì sao?
Không. Vì đó là dòng chú thích.
1. Các thành phần cơ bản:
a) Bảng chữ cái: A B C D E F G H I J K L M N O P Q R S T U V W X Y Z
a b c d e f g h i j k l m n o p q r s t u v w x y z
Hệ đếm: 0 1 2 3 4 5 6 7 8 9
Ký hiệu đặc biệt: 
+ - * / = [ ] . , _ ; # ^ $ & ( ) 
{ } : ‘
b) Cú pháp
c) Ngữ nghĩa
2. Một số khái niệm:
a) Tên: 
- 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.
+ 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 với ý nghĩa khác.
+ Tên chuẩn: là những tên được ngôn ngữ lập trình quy định dùng với một ý nghĩa 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 từng người lập trình, tên này được khai báo trước khi sử dụng. Các tên không được trùng với tên dành riêng
Tên dành riêng: Program type 
Tên chuẩn: Abs Interger Byte 
Tên tự đặt: Xyx Tong
b) Hằng, biến và chú thích:
* Hằng:
- 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à chuỗi ký tự trong bộ mã ASCII, được đặt trong cặp dấu nháy.
- Hằng logic: là giá trị đúng (True) hoặc sai (False).
* Biến: -Biến là đại lượng được đặt tên dùng để lưu trữ giá trị. Giá trị này 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 đều phải được khai báo.
- Ví dụ hai tên biến là: Tong, xyz
* Chú thích: 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 dễ hiểu. 
V. Củng cố:
* Những điểm cần lưu ý của bài:
- Thành phần của ngôn ngữ lập trình: bảng chữ, 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.
VI/ Nhận xét rút kinh nghiệm:	
Tiết: 03
Ngày soạn: 02/10/09
 BÀI TẬP
I./ Mục đích, yêu cầu:
1./ Kiến thức:
- Nắm được cách đặt tên biến, chú thích của ngôn ngữ lập trình.
- Phân biệt được thông dịch và biên dịch.
- Phân biệt được tên dành riêng và tên chuẩn.
2./ Kỹ năng:
- Có thể đặt tên biến và sử dụng chú thích khi cần thiết.
3./ Thái độ: HS có thái độ học tập nghiêm túc, tự giác, sôi nổi.
II./ Chuẩn bị:
1./ Chuẩn bị của thầy: Giáo án, sách giáo khoa.
2./ Chuẩn bị của trò: sách giáo khoa.
IV./ Hoạt động dạy học:
Ổn định lớp
Kiểm tra bài cũ:- Hãy cho biết tên là gì, tên chuẩn, tên dành riêng? Cách đặt tên trong Pascal?
Nội dung bài mới
Hoạt động của GV và HS
Nội dung
- Gọi HS nhắc lại nội dung bài trước đã học.
+ Cách đặt tên biến.
+ Sử dụng hằng.
+ Chú thích.
GV: Gọi HS trả lời các câu hỏi và bài tập trong sgk.
HS: lên bảng làm bt 5, 6/sgk, những bạn còn lại làm vào vở.
GV: Nhận xét và bổ sung.
Câu 4: Tên dành riêng không được dùng khác với ý nghĩa đã xác định, tên chuẩn có thể dùng với ý nghĩa khác.
Câu 5: Gợi ý: trong Pascal, tên được đặt tuân theo các quy tắc sau:
- Chỉ bao gồm chữ cái, chữ số và dấu gạch dưới.
- Không bắt đầu bằng chữ số.
- Độ dài theo quy định của trình dịch(TP không quá 127 kí tự, Free Pascal không quá 255 kí tự).
Tuy nhiên, không nên đặt tên quá dài hay quá ngắn mà nên đặt sao cho gợi nhớ ý nghĩa đối tượng mang tên đó.
Các câu còn lại HS tự làm.
V. Đánh giá cuối bài:
* Những điểm cần lưu ý của bài:
 - Cách đặt tên biến.
 - Sử dụng hằng.
 - Chú thích.
* Bài tập về nhà: HS làm các bài tập trong sgk và sbt.
VI/ Nhận xét rút kinh nghiệm:	
Tiết: 04
Ngày soạn: 25/08/09
Chương II: 	 CHƯƠNG TRÌNH ĐƠN GIẢN
BÀI 3, 4: CẤU TRÚC CHƯƠNG TRÌNH, MỘT SỐ KIỂU DỮ LIỆU CHUẨN
I./ Mục đích, yêu cầu:
 1. Kiến thức:
- Biết được cấu trúc chung của một chương trình.
	- Biết được một số kiểu dữ liệu chuẩn: nguyên, thực, ký tự, logic.
- Biết được cấu trúc chung của khai báo biến.
 2. Kĩ năng: Sử dụng được kiểu dữ liệu và khai báo biến để viết được một chương trình đơn giản.
 3. Thái độ: HS có thái độ học tập nghiêm túc
II./ Chuẩn bị:
1. Chuẩn bị của thầy: Giáo án, sách giáo khoa.
2. Chuẩn bị của trò: sách giáo khoa.
III./ Hoạt động dạy học:
	1. Ổn định lớp
	2. Kiểm tra bài cũ
	3. Nội dung bài học
* Hoạt động 1: Tìm hiểu cấu trúc chung của chương trình.
Hoạt động của GV và HS
Nội dung
GV: gợi ý: Một bài tập làm văn em thường viết có mấy phần? Các phần có thứ tự không? Vì sao phải chia ra như vậy?
HS: Lắng nghe và suy nghĩ trả lời: 
- Có ba phần.
- Có thứ tự : Mở bài, thân bài, kết luận.
- Dễ viết, dễ đọc, dễ  ... án.
HS: Lên bảng trình bày.
GV: Để minh họa cho phép tính với số lần chưa biết trước Pascal dùng câu lệnh gì?
HS: Trả lời.
GV: Yêu cầu HS dùng sơ đồ khối để minh họa cho câu lệnh.
HS: Lên bảng trình bày.
GV: Giải thích thêm về ví dụ trong sgk
HS: Theo dõi và nêu những câu hỏi còn thắc mắc, sau đó ghi vào vở.
Bài toán 1: Tính và đưa kết quả ra màn hình tổng
S =
Bài toán 2: Tính và đưa kết quả ra màn hình tổng
S = 
Cho đến khi 
2. Lặp với số lần biết trước và câu lệnh For - do
Có 2 thuật toán để giải bài toán:
Cách 1:
Bước 1: N ¬ 0; S ¬ 1/a;
Bước 2: N ¬ N+1;
Bướ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.
Cách 2: 
Bước 1: N ¬ 101; S ¬ 1/a;
Bước 2: N ¬ N-1;
Bước 3: Nếu N<1 thì chuyển đến bước 5.
Bước 4: S ¬ S+ 1/(a+N), quay lại bước 2.
Bước 5: Đưa S ra màn hình rồi kết thúc.
 -Để mô tả thuật toán Pascal dùng 2 câu lệnh For-do như sau:
+ Dạng lặp tiến:
For:=todo;
+ Dạng lặp lùi:
For:=downtodo;
4./ Lặp với số lần chưa biết trước và câu lệnh While-do:
Bước 1: N ¬ 0; S ¬ 1/a;
Bước 2: N ¬ N+1;
Bướ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.
Pascal dùng câu lệnh While-do có dạng:
Whiledo
Trong đó: 
+ Điều kiện là biểu thức logic.
+ Câu lệnh là câu lệnh đơn hoặc ghép.
IV Đánh giá cuối bài:
* Những điểm cần lưu ý của bài 
	- Cấu trúc chung của lệnh lặp For từ đó vẽ được sơ đồ thực hiện của lệnh lặp For.
	- Cấu trúc chung của lệnh lặp While từ đó vẽ được sơ đồ thực hiện của lệnh lặp While.
* Bài tập về nhà:
	- Giải bài tập 5.a, 6, sách giáo khoa, trang 51.
- Xem nội dung phụ lục B, sách giáo khoa trang 131: Lệnh rẽ nhánh và lặp.
- Xem nội dung phụ lục C, sách giáo khoa trang 139: Lệnh rẽ nhánh và lặp.
VI/ Nhận xét rút kinh nghiệm:	
Tiết 15, 16:	
Ngày soạn:22/10/09
BÀI TẬP VÀ THỰC HÀNH 2
I./ Mục đích, yêu cầu:
1./ Kiến thức:
	- Nắm chắc cấu trúc và sơ đồ thực hiện của cấu trúc rẽ nhánh.
- Làm quen với các công cụ hiệu chỉnh chương trình.
2./ Kỹ năng:
- Rèn luyện kĩ năng sử dụng cấu trúc rẽ nhánh trong việc lập trình giải một số bài toán cụ thể. 
	- Làm quen với các công cụ phục vụ và hiệu chỉnh chương trình.
3./ Thái độ: Tự giác, tích cực và chủ động trong thực hành.
II./ Chuẩn bị:
1./ Chuẩn bị của thầy: Phòng máy vi tính, máy chiếu để hướng dẫn.
2./ Chuẩn bị của trò: Sách giáo khoa, sách bài tập và bài tập đã viết ở nhà.
III./ Hoạt động dạy học:
Ổn định lớp.
Kiểm tra bài cũ: 
Nội dung bài mới:
1. Hoạt động 1: Làm quen với một chương trình và các công cụ hiệu chỉnh chương trình.
Hoạt động của GV và HS
Nội dung
1. GV: Gợi ý để học sinh nêu khái niệm về bộ số Pitago.
HS: Trả lời.
GV: Yêu cầu: Lấy một ví dụ cụ thể.
HS: Trả lời
GV hỏi: Để kiểm tra bộ ba số a, b, c bất kỳ có phải là bộ Pitago, ta phải kiểm tra các đẳng thức nào?
HS: Trả lời.
2. GV chiếu chương trình mẫu lên bảng. Thực hiện mẫu các thao tác: lưu, thực hiện từng lệnh chương trình, xem kết quả trung gian, thực hiện chương trình và nhập dữ liệu.
GV: Yêu cầu học sinh gõ chương trình mẫu vào máy.
HS: Trả lời
GV: Yêu cầu học sinh lưu chương trình lên đĩa với tên Pytago.pas
HS: Theo dõi và làm theo hướng dẫn.
GV: Yêu cầu học sinh thực hiện từng lệnh của chương trình. 
GV: Yêu cầu học sinh xem các kết quả a2, b2, c2.
GV: Yêu cầu học sinh tự tìm thêm một số bộ a b c khác và so sánh.
HS: Quan sát quá trình rẽ nhánh của từng bộ dữ liệu vào và trả lời.
1. Khái niệm về bộ số pitago: tổng bình phương của hai số bằng bình phương của số còn lại.
Ví dụ về bộ số Pitago: 5 4 3
a2 = b2 + c2 
b2 = a2 + c2 
c2 = b2 + a2 
2. Soạn chương trình vào máy theo yêu cầu của giáo viên.
- Bấm F2, gõ tên file và enter.
- Bấm F7. Nhập các giá trị a=3, b=4, c=5.
- Chọn menu Debug để mở cửa sổ hiệu chỉnh.
2. Hoạt động 2: Rèn luyện kĩ năng lập trình hoàn thiện một bài toán.
1. Nêu nội dung, mục đích, yêu cầu của bài toán.
GV: Hỏi: Bước đầu tiên để giải bài toán?
HS: Trả lời.
GV: Hỏi: Để xác định ta phải đặt các câu hỏi như thế nào? Gọi học sinh đặt câu hỏi và gọi học sinh trả lời cho câu hỏi đó?
HS: Theo dõi và trả lời câu hỏi.
GV: Yêu cầu học sinh phác họa thuật toán.
HS: Thông báo kết quả viết được.
GV: Yêu cầu học sinh gõ chương trình vào máy.
- Giáo viên tiếp cận từng học sinh để hướng dẫn và sửa sai.
GV: Yêu cầu học sinh nhập dữ liệu.
- Nhập dữ liệu với test 1 2 -2
GV: Yêu cầu học sinh xác định các testcasse, nhập dữ liệu, đối sánh kết quả. 
1. Chú ý theo dõi vấn đề đặt ra của giáo viên
- Xác định input, output và thuật giải.
- Mục đích của giải phương trình? 
+ Kết luận số nghiệm và giá trị nghiệm x.
- Để tính được nghiệm x cần các đại lượng nào?
+ Cần các đại lượng: a b.
- Có các bước xử lý nào để tính được x?
2. Độc lập soạn chương trình vào máy.
3. Nhập dữ liệu theo test của giáo viên và thông báo kết quả của chương trình.
4. Tìm testcase
0 0 VSN
0 3 VN
2 3 -1.5
Nhập dữ liệu và thông báo kết quả.
IV. ĐÁNH GIÁ CUỐI BÀI
* Những điểm cần lưu ý của bài 
	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, thuật toán.
	- Soạn chương trình vào máy.
	- Lưu trữ chương trình.
	- Biên dich.
	- Thực hiện và hiệu chỉnh chương trình.
* Bài tập về nhà:
	- Viết chương trình nhập vào độ dài ba cạnh của một tam giác và tính chu vi, diện tích của tam giác đó.
VI/ Nhận xét rút kinh nghiệm:	
Tiết 17:	
Ngày soạn:22/10/09
ÔN TẬP
I./ Mục đích, yêu cầu:
1./ Kiến thức:
* Ôn tập lại kiến thức chương 1, 2:
2./ Kỹ năng:
3./ Thái độ: Tự giác, tích cực, chủ động trong giải quyết các bài tập.
II./ Chuẩn bị:
1./ Chuẩn bị của thầy: Giáo án, sgk, sbt.
2./ Chuẩn bị của trò: Sách giáo khoa, sách bài tập và bài tập đã viết ở nhà.
III./ Hoạt động dạy học:
Ổn định lớp.
Kiểm tra bài cũ: 
Nội dung bài mới:
Hoạt động của GV và HS
Nội dung bài học
GV: Yêu cầu HS nhắc lại lần lượt những nội dung chính của các bài trước đã học.
HS: Theo dõi và trả lời
GV: Gọi HS lên bảng làm, các em bên dưới theo dõi nhận xét.
GV: Nhận xét và bổ sung.
HS: Về nhà làm các bài tập còn lại trong sbt. 
GV: Yêu cầu HS suy nghĩ và viết chương trình nhập vào 2 số a, b tính tổng của 2 số vừa nhập và xuất ra kết quả.
HS: Lên bảng làm, HS bên dưới theo dõi nhận xét.
GV: Nhận xét và bổ sung
GV: Nhắc nhở HS làm thêm các bài tập trong sbt
1./ Lý thuyết:
 - Thông dịch, biên dịch.
 - K/n tên, tên chuẩn, tên dành riêng, 
 - Phân biệt được tên dành riêng, tên chuẩn, tên do người lập trình đặt.( Cho ví dụ)
 - Hằng, biến, chú thích.
 - Cấu trúc chương trình.
 - Khai báo biến.
 - Phép toán, biểu thức, câu lệnh gán, chuyển bài toán trong toán học sang Pascal.
 - Các thủ tục chuẩn vào ra đơn giản.
	Read/readln();
	Write/writeln();
Phân biệt read và readln/ write và writeln
 - Cấu trúc rẽ nhánh.
+ Dạng thiếu.
+ Dạng đủ.
 + Câu lệnh ghép
2./ Làm một số bài tập:
Chuyển biểu thức trong toán học sang Pascal:
a)àx:=(-b+sqrt(b*b-4*a*c))/(2*a);
b)
c)3 ≤ x ≤ 12 à (x>=3)and(x<=12)
Chuyển từ biểu thức biểu diễn trong Pascal sang biểu diễn trong toán học:
a)
b)
Program Tinh_Tong;
Uses crt;
Var a, b, c: real;
Begin
 Clrscr;
 Write(‘Nhap vao 2 gia tri a, b: ’);
 Read(a, b);
 c:=a+b;
 write(‘Tong can tim la:’,’c’);
readln;
end.
IV. ĐÁNH GIÁ CUỐI BÀI
* Những điểm cần lưu ý của bài 
	-Nắm được những nội dung chính đã nêu trong bài.
	- Có thể viết được chương trình đơn giản.
* Bài tập về nhà:
	Làm bt 2.10à2.29 trong sbt.
VI/ Nhận xét rút kinh nghiệm:	
Tiết 17:	
Ngày soạn:20/03/10
BÀI 14: KIỂU DỮ LIỆU TỆP
BÀI 15: THAO TÁC VỚI TỆP 
I./ Mục đích, yêu cầu:
1./ Kiến thức:
- Biết được đặc điểm của kiểu dữ liệu tệp.
- Biết khái niệm về tệp có cấu trúc và tệp văn bản
2./ Kỹ năng:
- Khai báo đúng biến kiểu tệp.
- Thực hiện được thao tác xử lý tệp: Gán tên tệp, mở/đóng tệp, đọc/ghi tệp.
- Sử dụng được các thủ tục liên quan để đọc/ghi dữ liệu của tệp.
3./ Thái độ:
 - Thấy được sự cần thiết và tiện lợi của kiểu dữ liệu tệp.
- Có ý thức lưu trữ dữ liệu một cách khoa học.
- Giáo dục thêm về ý thức tôn trọng bản quyền, không sử chữa, sao chép các phần mềm chưa mua bản quyền.
II./ Chuẩn bị:
1./ Chuẩn bị của thầy: Giáo án, sgk, sbt.
2./ Chuẩn bị của trò: Sách giáo khoa, sách bài tập và bài tập đã viết ở nhà.
III./ Hoạt động dạy học:
Ổn định lớp.
Kiểm tra bài cũ: 
Nội dung bài mới:
Hoạt động của GV và HS
Nội dung
GV: 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?
HS: Bộ nhớ RAM.
GV: Vì sao em biết điều đó?
HS: Mất dữ liệu khi mất điện.
GV: Yêu cầu HS cho biết vai trò của kiểu dữ liệu tệp?
HS: Trả lời.
GV Diễn giải: Để lưu giữ đượ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.
GV: Yêu cầu học sinh nghiên cứu sách giáo khoa và cho biết đặc điểm của kiểu tệp? Có mấy loại kiểu tệp?
HS: Trả lời
GV: 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
GV: Yêu cầu HS theo dõi sgk và cho biết cách khai báo tệp? Cho vi dụ.
HS: Lên bảng trình bày.
GV: Cho biết cấu trúc gắn tên tệp và cho ví dụ?
HS: Trả lời.
GV: Cho biết cấu trúc để mở têp?
HS: Trả lời.
GV: Cho biết cấu trúc ghi dữ vào tệp?
HS: Trả lời
GV: Cho biết cấu trúc đọc dữ liệu từ tệp?
HS: Trả lời.
GV: Cấu trúc đóng tệp?
HS: Trả lời.
HS: Nêu một số hàm chuẩn.
1.Vai trò kiểu tệp:
- Dữ liệu 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.
- Luợng thông tin lưu trữ trên tệp là rất lớn và chỉ phụ thuộc vào dung lượng đĩa.
2. Phân loại và thao tác với tệp:
a) Phân loại:
- Xét theo cách tổ chức dữ liệu:
+ Tệp văn bản.
+ Tệp có cấu trúc.
- Xét theo cách thức truy cập:
+ Tệp truy cập tuần tự.
+ Tệp truy cập trực tiếp.
b) Thao tác với tệp:
- Ghi dữ liệu vào tệp
- Đọc dữ liệu từ tệp
3. Khai báo:
 var : text;
Ví dụ: var tep1, tep2 : text;
4.Thao tác với tệp:
a) Gắn tên tệp: 
 assign(,);
Ví dụ: assign(tep1, ‘DULIEU.DAT’);
 assign(tep2, ‘C:\TP\BAITAP.INP’);
b) Mở tệp:
*Cấu trúc mở tệp để ghi: rewrite ();
Ví dụ: assign(tep3, ‘C:\kq.dat’);
 Rewrite(tep3);
*Cấu trúc mở tệp để đọc: 
 rewrite ();
Ví dụ: assign(tep3, ‘C:\kq.dat’);
 Rewrite(tep3);
c) Ghi dữ liệu vào tệp:
Write/writeln(,);
Ví dụ: assign(tep2, ‘D:\TP\Baitap.inp’);
 Rewrite(tep2);
 A:=3; b:=5;
 Write(tep2, a, b);
d) Đọc dữ liệu từ tệp:
read/readln(, );
ví dụ: assign(tep2, ‘C:\TP\BAITAP.DAT’);
 reset(tep2);
 readln(tep2, a, b);
e) Đóng tệp:
 Close();
f) Một số hàm chuẩn: 
- Hàm eof(); hàm cho giá trị true nếu con trỏ đang chỉ tới cuối tệp.
- Hàm oeln(); cho giá trị true nếu con trỏ đang chỉ tới cuối dòng.
IV. ĐÁNH GIÁ CUỐI BÀI
* Những điểm cần lưu ý của bài 
	-Nắm được những nội dung chính đã nêu trong bài.
	- Có thể viết được chương trình đơn giản.
* Bài tập về nhà:
	Làm bt 2.10à2.29 trong sbt.
VI/ Nhận xét rút kinh nghiệm: