I. Ổn định tổ chức (1p)
Lớp 11B5 11B6 11B7 11B8
Vắng
II. Kiểm tra bài cũ III. Bài mới. 1. Đặt vấn đề
2. Triển khai bài mới
Hoạt động của giáo viên và học sinh Nội dung kiến thức
Hoạt động 1: Làm bài tập 1 (Bài tập về nhà) Viết chương trình đọc và hiển thị ra màn hình nội dung một tập tin dạng văn bản, với tên tập tin được nhập từ bàn phím (có kiểm tra sự tồn tại của tập tin).
GV: Gọi học sinh lên bảng viết chương trình (Không cần kiểm tra sự tồn tại của tập tin). GV: Có thể đưa ra một số câu hỏi gợi ý sau: - Biến tên tập tin có kiểu gì?
- Trước khi gắn tên tệp cho biến tệp ta cần phải làm gì?
- Để đọc được dữ liệu từ tệp ta cần dùng câu lệnh nào để mở tệp?
- Để đọc hết dữ liệu trong tệp ta làm thế nào? - Khi nào thì xuất dữ liệu ra màn hình?
HS: Nghiên cứu, vận dụng kiến thức đã học để trả lời.
GV: Yêu cầu học sinh viết chương trình hoàn thiện.
HS: Viết chương trình.
GV: Đánh giá, hoàn thiện và cho điểm.
Program Doc_tep;
Var tep: string; ch: char; f: text; Begin
Write('Nhap ten File can doc: '); readln(tep); Assign(f,tep); reset(f);
While not eof(f) do begin read(f,ch); write(ch); end; close(f); readln; End.
Hoạt động 2: Giáo viên hướng dẫn cho học sinh cách lồng hàm kiểm tra sự tồn tại của tập tin vào trong chương trình và hoàn thiện nội dung bài tập 1
Program Doc_tep;
Var tep: string; ch: char; f: text;
FUNCTION FileExists(FileTest: string): Boolean;
Var f: File; Begin
{$I-}
Assign(f,FileTest); reset(f); Close(f); {$I+}
FileExists := (IOResult=0); end;
Begin
Write('Nhap ten File can doc: '); readln(tep); if FileExists(tep) then
begin
Assign(f,tep); reset(f); While not eof(f) do
begin read(f,ch); write(ch); end; close(f); end
else writeln('File ',tep,' khong ton tai tren dia'); readln;
End. Hoạt động 3: Kiểm tra 15’
Viết chương trình đọc một tập tin dạng văn bản đã có trên đĩa. Hiển thị ra màn hình nội dung của tập tin dưới dạng in hoa, (tên tập tin được nhập từ bàn phím).
Var tep: string; ch: char; f: text; Begin
Write('Nhap ten File can doc: '); readln(tep); Assign(f,tep); reset(f);
While not eof(f) do begin read(f,ch); write(upcase(ch)); end; close(f); readln; End. IV. Củng cố V. Dặn dò (1p)
- Nghiên cứu trước nội dung bài 17: ‘Chương trình con và phân loại’. VI. Rút kinh nghiệm:
Tiết: 39, 40 Ngày soạn: 25/02/2009
Bài 16: CHƯƠNG TRÌNH CON VÀ PHÂN LOẠI A. 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 hai loại chương trình con là hàm và thủ tục. 2. Kỹ năng:
• Nhận biết được các thành phần trong đầu của thủ tục.
• Nhận biết được hai loại tham số hình thức trong đầu của hai thủ tục.
• Biết cách khai bào hai loại chương trình con cùng với tham số hình thức của chúng.
• Cách viết lời gọi chương trình con trong thân chương trình chính. 3. Thái độ:
• Tiếp tục rèn luyện các phẩm chất của người lập trình như tinh thần hợp tác, sẵn sàng làm việc theo nhóm, tuân thủ theo yêu cầu vì một việc chung.
• Có ý thức lưu trữ dữ liệu một cách khoa học.
B. PHƯƠNG PHÁP
Thuyết trình và giảng giải, kết hợp các hình ảnh trực quan.
Sử dụng các câu hỏi gợi mở, nêu vấn đề cho học sinh trả lời, tổ chức hoạt động theo nhóm
C. CHUẨN BỊ CỦA GIÁO VIÊN VÀ HỌC SINH
1. Giáo viên: Giáo án, máy chiếu Projector để hướng dẫn 2. Học sinh: SGK, vở.
D. TIẾN TRÌNH LÊN LỚP
I. Ổn định tổ chức (1p)
Lớp 11B5 11B6 11B7 11B8
Vắng II. Kiểm tra bài cũ III. Bài mới 1. Đặt vấn đề (1p)
- Khi viết các chương trình giải quyết 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ân thành các bài toán con. Vì vậy khi lập trình cần phải chia chương trình thành các chương trình con.
2. Triển khai bài
Hoạt động của giáo viên và học sinh Nội dung kiến thức
Hoạt động 1: Tiết 39( Hoạt động nhóm)
GV: Yêu cầu học sinh xác định ý tưởng giải bài toán tính tổng luỹ thừa: TLT = an+ bm + cp + dq, đã được giao nhiệm vụ về nhà.
HS: Lần lượt tính tổng luỹ thừa cho từng biến a, b, c, d sau đó tính tổng.
GV: Chiếu chương trình lên bảng, gọi học sinh nhận xét về tính ngắn gọn, rõ ràng, tính dễ đọc, dễ hiểu của chương trình. HS: Chương trình dài, phải viết lại nhiều lần đoạn chương trình thực hiện một công việc tương tự nhau.
GV: Chiếu đoạn chương trình có sử dụng hàm trong việc giải bài toán và yêu cầu học sinh so sánh với chương trình ban đầu. HS: Quan sát và nhận xét.
GV: Vậy khi nào nên viết chương trình con?
§17 Chương trình con và phân loại 1. Khái niệm chương trình
HS: Đối với các bài toán lớn, cần nhiều người cùng viết. Chương trình dài, cần chia làm nhiều đoạn. Có nhiều đoạn lệnh lặp lại, chỉ nên viết một chương trình con. GV: Vậy chương trình con là gì?
HS: Nghiên cứu SGK và trả lời.
GV: Chia lớp thành ba nhóm. Phát bìa cho mỗi nhóm. Yêu cầu HS điền các lợi ích của việc sử dụng chương trình con.
HS: Nghiên cứu SGK, thảo luận nhóm để điền phiếu học tập.
GV: Thu phiếu học tập và dán kết quả lên bảng. Cho HS so sánh với kết quả của giáo viên.
a. Khái niệm
- Chương trình con là một dãy lệnh mô tả một số thao tác nhất định và có thể được thực hiện (được gọi) từ nhiều vị trí trong chương trình.
b. 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;
- Hỗ trợ 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 hoá; - 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;
Hoạt động 2: Tiết 40( hoạt động nhóm) GV: Có mấy loại chương trình con? Gọi tên của chúng? HS: Hai loại: hàm và thủ tục GV: Các em đã từng làm quen với hàm và thủ tục chưa? Lấy một số ví dụ về hàm và thủ tục đã được học. HS: Rồi. Hàm và thủ tục chuẩn, ví dụ hàm Length(st); Copy(st, vt,n); Thủ tục delete(st, vt, n); GV: Ý nghĩa của hàm và thủ tục. HS: Nghiên cứu SGK và trả lời.
GV: Yêu cầu học sinh nhắc lại cấu trúc của chương trình chính.
HS: [<Phần khai báo>] <Phần thân>
GV: Giới thiệu cấu trúc chương trình con. Yêu cầu học sinh so sánh hai cấu trúc và giải thích ý nghĩa của từng phần.
GV: Để sử dụng hàm và thủ tục chuẩn em thường viết ở đâu và viết như thế nào? HS: Trong chương trình 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
2. Phân loại và cấu trúc của chương trình con a. Phân loại (2 loại)
* Hàm (function): thực hiện 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 (Procedure): thực hiện các thao tác nhất định nhưng không trả về giá trị qua tên của nó.
b. Cấu trúc * Cấu trúc chung
<Phần đầu> [<Phần khai báo>]
<Phần thân>
* Tham số hình thức: là các biến được khai báo cho dữ liệu vào/ra của chương trình con
* Biến cục bộ: được khai báo để dùng riêng trong chương trình con.
* Biến toàn cục: là biến của chương trình chính. c. Thực hiện chương trình con
- Để thực hiện chương trình con ta cần 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à các tham số (nếu có) là các hằng và biến chứa các dữ liệu vào/ra tương ứng với các tham
đó hoặc trong thủ tục. Hàm không được viết như lệnh.
GV: Diễn giảng.
số hình thức đặt trong cặp ngoặc. Các hằng và biến này được gọi là tham số thực sự.
IV. Củng cố (5p)
Câu 1: Giả sử có hai biến xâu x và y (y đã có giá trị) câu lệnh nào sau đây là không hợp lệ? A. x:=Copy(y,5,3); C. x:=Delete(y,5,3);
B. x:=y; D. Delete
Câu 2: Nói về cấu trúc của một chương trình con, khẳng định nào sau đây là không đúng? A. Phần đầu và phần thân nhất thiết phải có, phần khai báo có thể có hoặc không. B. Phần khai báo có thể có hoặc không có tuỳ thuộc vào từng chương trình cụ thể. C. Phần đầu có thể có hoặc không cũng được.
D. Phần đầu nhất thiết phải có để khai báo tên chương trình con. V. Dặn dò (1p)
Đọc trước nội dung bài: Ví dụ về cách viết và sử dụng chương trình con, SGK trang 96.
Tiết: 41 Ngày soạn: 28/02/2009
Bài 18: VÍ DỤ VỀ CÁCH VIẾT VÀ SỬ DỤNG CHƯƠNG TRÌNH CON (T1) A. MỤC TIÊU
1. Kiến thức: - Giúp học sinh nắm được:
- Cấu trúc chung của thủ tục trong chương trình. - Phân biệt được tham số và tham trị.
- Các khái niệm về 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 thủ tục. - Nhận biết được hai loại tham số hình thức trong đầu của hai thủ tục.
- Biết cách khai báo hai loại chương trình con cùng với tham số hình thức của chúng. - Cách viết lời gọi chương trình con trong thân chương trình chính.
- Phân biệt được sự khác nhau cơ bản giữa hàm và thủ tục. - Phân biệt và sử dụng đúng biến toàn cục và biến cục bộ.
3. Thái độ: - Tiếp tục rèn luyện các phẩm chất của người lập trình như tinh thần hợp tác, sẵn sàng làm việc theo nhóm, tuân thủ theo yêu cầu vì một việc chung.
- Có ý thức lưu trữ dữ liệu một cách khoa học.
B. PHƯƠNG PHÁP
- Thuyết trình và giảng giải, kết hợp các hình ảnh trực quan.
- Sử dụng các câu hỏi gợi mở, nêu vấn đề cho học sinh trả lời, tổ chức hoạt động theo nhóm C. CHUẨN BỊ CỦA GIÁO VIÊN VÀ HỌC SINH
1. Giáo viên: Giáo án, máy chiếu Projector để hướng dẫn 2. Học sinh: SGK, vở.
D. TIẾN TRÌNH LÊN LỚP
I. Ổn định tổ chức (1p)
Lớp 11B5 11B6 11B7 11B8
Vắng II. Kiểm tra bài cũ (5p)
Câu hỏi: Hãy nêu khái niệm, phân loại và chức năng của từng loại chương trình con.
Đáp án: - Chương trình con là một dãy lệnh mô tả một số thao tác nhất định và có thể được thực hiện (được gọi) từ nhiều vị trí trong chương trình.
* Hàm (function): thực hiện 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 (Procedure): thực hiện các thao tác nhất định nhưng không trả về giá trị qua tên của nó. III. Bài mới
1. Đặt vấn đề (1p)
- Bài học trước các em đã được tìm hiểu về chương trình con, cấu trúc và phân loại. Vậy chương trình con được viết như thế nào, sử dụng chúng ra sao, có gì giống và khác với chương trình chính không? Bài học hôm nay chúng ta sẽ tìm hiểu nội dung này.
2. Triển khai bài
Hoạt động của giáo viên và học sinh Nội dung kiến thức Hoạt động 1: (theo từng nhóm) (12p)
GV: Giới thiệu bài toán ví dụ mở đầu. Giới thệu cho học sinh cấu trúc thủ tục, vị trí khai báo của thủ tục, lời gọi thủ tục. HS: Quan sát, theo dõi ví dụ.
GV: Vị trí của thủ tục nằm ở phần nào trong chương trình chính?
HS: Ở phần khai báo, sau phần khai báo biến.
GV: Cấu trúc của thủ tục gồm có mấy phần?
HS: Ba phần: tên, khai báo, phần than. GV: Phân biệt sự giống và khác nhau giữa chương trình chính và chương trình con. HS: Giống: cấu trúc chung.
Khác: trong phần tên, từ khoá đặt tên Prcedure có các tham số.
GV: Yêu cầu học sinh xác định cấu trúc
§18 Ví dụ về cách viết và sử dụng chương trình con 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 các tham số>]; [<Phần khai báo>]
Begin
[<Dãy các lệnh>] End;
* Trong đó:
- Phần đầu gồm tên dành riêng và tên thủ tục, danh sách tham số (có thể có hoặc không);
- Phần khai báo: dùng để xác định các hằng, kiểu, biến và cũng có thể xác định các chương trình con khác được sử dụng trong thủ tục.
- Dãy câu lệnh được viết giữa cặp tên dành riêng Begin và End tạo thành thân thủ tục.
chung của thủ tục.
- Lời gọi thủ tục ta viết ở phần nào trong chương trình?
HS: Trong phần thân của chương trình. Hoạt động 2: (Theo từng nhóm) (10p) GV: Chiếu ví dụ 2, yêu cầu học sinh nhận xét về thủ tục ve_HCN của ví dụ này với ví dụ trước.
* Tổ chức hoạt động nhóm; - Phân nhóm từ 4-6 em
- Công việc: Xác định bản chất của thủ tục ve_HCN;
- Câu hỏi: câu lệnh nào thực hiện vẽ cạnh trên, hai cạnh bên và câu lệnh nào thực hiện vẽ cạnh dưới.
- Kết thúc hoạt động: thu kết quả của các nhóm, yêu cầu các nhóm trình bày kết quả của nhóm.
- Cho các nhóm nhận xét kết quả bài làm của nhau.
- GV: nhận xét kết quả và đưa ra kết luận (có thể cho điểm các nhóm nếu bài làm tốt)
GV: Trong chương trình chính ta vẽ tất cả bao nhiêu thủ tục.
GV: Giới thiệu và tham số giá trị bvà tham số biến. b. Ví dụ về thủ tục * Ví dụ 1; Program VD_thutuc2; Uses crt; Var a, b, i: integer;
Procedure Ve_HCN(chdai, chrong: integer); Var i,j: integer;
Begin
{Ve canh tren cua hinh chu nhat} For i:=1 to chdai do write(‘*’); Writeln;
For j:=1 to chrong-2 do write(‘ ’); Begin
Write(‘*’);
For i:=1 to chdai-2 do write(‘ ’); Writeln(‘*’);
End;
For i:=1 to chdai do write(‘*’); Writeln;
End;
BEGIN {Bat dau chuong trinh chinh} Clrscr; Ve_HCN(25,10); Writeln; Writeln; Ve_HCN(5,10); Readln; Clrscr; a:=4; b:=2; For i:=1 to 4 do Begin Ve_HCN(a,b); Readln; clrscr; a:=a*2; b:=b*2; end; Readln; END.
* Tham số giá trị: có hai chức năng - Đưa dữ liệu vào cho chương trình con; - Đưa dữ liệu chương trình con tìm được ra.
* Tham số biến: trong lệnh gọi thủ tục, các tham số hình thức được thay bằng các tham số thực sự tương ứng là tên các biến chứa dữ liệu ra được gọi là các tham số biến.
Hoạt động 3: (Chung cả lớp) (10p)
GV: Chiếu VD_thambien1 len bảng. Hỏi: thủ tục trên thực hiện công việc gì;
HS: Hoán đổi giá trị hai biến dữ liệu vào cho nhau.
GV: Chạy chương trình và thực hiện đổi phần khai báo thành: Procedure Hoan_doi (x: integer; var y: integer);
để HS quan sát và nhận xét sự khác nhau giữa tham biến và tham trị.
Program VD_thambien1; 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. IV. Củng cố (5p)
- Khi nào thì cần khai báo tham số trong phần khai báo của chương trình con theo kiểu tham biến, khi nào thì theo kiểu tham trị.
- Phân biệt sự giống và khác nhau giữa tham biến và tham trị. V. Dặn dò (1p)
- Xem tiếp nội dung còn lại của bài.
- Viết thủ tục tìm và thông báo ra màn số lớn nhất giữa ba số a, b, c.
Tiết: 42 Ngày soạn: 28/02/2009
Bài 18: VÍ DỤ VỀ CÁCH VIẾT VÀ SỬ DỤNG CHƯƠNG TRÌNH CON (T2) A. MỤC TIÊU
1. Kiến thức: - Giúp học sinh nắm được:
- Cấu trúc chung của thủ tục trong chương trình. - Phân biệt được tham số và tham trị.
- Các khái niệm về 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 thủ tục. - Nhận biết được hai loại tham số hình thức trong đầu của hai thủ tục.
- Cách viết lời gọi chương trình con trong thân chương trình chính. - Phân biệt được sự khác nhau cơ bản giữa hàm và thủ tục.
- Phân biệt và sử dụng đúng biến toàn cục và biến cục bộ.
3. Thái độ: - Tiếp tục rèn luyện các phẩm chất của người lập trình như tinh thần hợp tác, sẵn sàng