1. Chuẩn bị của giáo viên
- Phương tiện: Một máy tính có TP và một máy chiếu Project. - Sách giáo khoa, sách giáo viên, Bài soạn
2. Chuẩn bị của học sinh
- Sách giáo khoa, vở ghi bài. III. NỘI DUNG BÀI MỚI:
1. Kiểm tra sĩ số lớp 2. Kiểm tra bài cũ: Không 3. Nội dung bài mới
HOẠT ĐỘNG CỦA GV VÀ HS NỘI DUNG
Hoạt động 1: Ví dụ 1:
Hoạt động 1.1: Tìm hiểu đầu bài.
GV: Chiếu đầu bài của bài toán lên màn
hình (bằng Power Point).
HS: Phân tích bài toán, xác định yêu cầu
của bài toán theo sự hướng dẫn của giáo viên.
GV: Nhắc lại công thức tính khoảng cách
giữa hai điểm khi biết tọa độ của chúng.
HS: Tìm hiểu chương trình.
GV: Trình chiếu chương trình đầy đủ
HS: Quan sát kết quả khi chạy chương
trình.
Hoạt động 1.2: Tìm hiểu chương trình
GV: Dùng Power Point chiếu chương trình
(đã soạn trước) lên màn hình (có đánh chỉ số các dòng lệnh).
GV: Gọi một vài học sinh hỏi ý nghĩa của
từng câu lệnh trong chương trình.
GV: Khái quát lại cả chương trình để học
sinh nắm được sau đó chạy chương trình (tệp TRAI.TXT đã có sẵn dữ liệu từ trước).
HS: Ghi yêu cầu vào vở để về nhà làm. Hoạt động 1.3: Mở rộng bài toán:
Ví dụ 1: Chương trình: Program khoang_cach ; Var d: real; f: text ; x,y: integer; begin assign(f,’Trai.txt’); reset(f);
while not eof(f) do beign read(f,x,y); d:= sqrt(x*x + y*y) ; writeln(‘khoang cach:’, d: 10:2); end; close(f); end. Ví dụ 2:
GV: Có thể bổ sung thêm yêu cầu “in lên
màn hình khoảng cách của trại xa với trại của hiệu trưởng nhất”.
Hoạt động 2: Ví dụ 2:
Hoạt động 2.1: Tìm hiểu bài toán
GV: Chiếu đầu bài và hình 17 – SGK lên
màn hình.
HS: Các nhóm xây dựng công thức tính
điện trở tương đương của 5 trường hợp theo hình vẽ.
GV: Nhắc lại công thức tính điện trở
tương đương của 2 điện trở mắc nối tiếp và của 2 điện trở mắc song song.
HS: Biểu diễn các biểu thức đó bằng ngôn
ngữ Pascal.
GV: Chuẩn hóa để đạt được công thức
chính xác.
Hoạt động 2.2: Xây dựng chương trình:
GV: Gọi từng học sinh xây dựng chương
trình theo từng bước 1 (có gợi ý khi học sinh vướng mắc).
+ Khai báo.
+ Gán tên tệp cho biến tệp.
+ Đọc dữ liệu từ tệp.
+ Tính các điện trở tương đương.
+ Ghi vào tệp.
+ Đóng tệp.
GV: Chính xác và tối ưu hóa chương trình.
Chạy chương trình trên TP.
Chương trình: Program dientro; Var a: array[1..5] of real; R1,R2,R3: real; I: integer; f1,f2: text; begin assign(f1,’RESIST.DAT’; reset(f1); assign(f2,’RESIST.EQU’); rewrite(f2);
while not eof(f1) do begin readln(f1,R1,R2,R3); a[1]:=R1*R2*R3/R1*R2+R2*R3+R3*R1); a[2]:=R1*R2/(R1+R2)+R3 ; a[3]:=R1*R3/(R1+R3)+R2 ; a[4]:=R3*R2/(R3+R2)+R2 ; a[5]:=R1+R2+R3;
for i:=1 to 5 do write(f2,a[i]:9:3,’ ‘); writeln(f2);
end;
close(f1); close(f2); end.
4. Củng cố
- Giáo viên nhắc lại các thao tác khi làm việc với tệp cùng với các thủ tục của nó.
5. Bài tập về nhà
- Làm các bài tập 5.8, 5.9 trong sách bài tập – tr 55, 56.
Tiết theo PPCT: 38
BÀI TẬP
I. MỤC TIÊU
1. Kiến thức
- Giúp học sinh nhận thức lại nội dung và ý nghĩa của các vấn đề lý thuyết đã được đề cập trong các bài trước gồm: kiểu tệp, biến tệp, thao tác với tệp,...
2. Kỹ năng
- Thực hiện được những thao tác đơn giản với tệp.
- Giải quyết đựơc một số bài toán có sử dụng kiểu dữ liệu tệp. II. CHUẨN BỊ PHƯƠNG TIỆN DẠY HỌC
1. Chuẩn bị của GV
- SGK, SGV, Bài soạn, máy chiếu, phòng máy.
2. Chuẩn bị của HS
- SGK, vở ghi.
III. TIẾN TRÌNH BÀI SOẠN
1. Ổn định tổ chức lớp 2. Kiểm tra bài cũ
Kiểm tra xen kẽ trong tiết dạy.
3. Nội dung bài giảng
GV: Trong các bài trước các em đã được làm quen với một kiểu dữ liệu nữa trong ngôn ngữ lập trình đó là dữ liệu kiểu tệp, nắm được các thao tác với tệp và được làm các ví dụ có sử dụng kiểu dữ liệu này. Bài hôm nay, chúng ta sẽ ôn tập và làm các bài tập để nắm rõ hơn kiến thức về dữ liệu kiểu tệp.
Hoạt động của GV và HS Nội dung kiến thức
* Hoạt động 1: Củng cố kiến thức
- GV chia lớp thành 4 nhóm, mỗi nhóm thảo luận một câu hỏi trong SGK (trang 89) và lần lượt trả lời theo thứ tự các câu hỏi: Nhóm 1: câu 1 Nhóm 2: câu 2 Nhóm 3: câu 3 Nhóm 4: câu 4 - Các nhóm khác có thể bổ xung, nhận xét.
- GV nhận xét và bổ xung kiến thức (nếu cần).
1. Một số trường hợp phải dùng tệp: - Lượng thông tin lưu trữ lớn.
- Cần lưu lại thông tin để sử dụng lâu dài.
2. Trong sơ đồ thao tác với tệp, khi cần nhập dữ liệu cho tệp phải dùng những thao tác:
- Gắn tên tệp - Mở tệp để ghi - Ghi dữ liệu vào tệp
- Đóng tệp để hoàn tất việc ghi dữ liệu vào tệp. 3. Trước khi sử dụng tệp phải có câu lệnh mở tệp để trình biên dịch biết mục đích mở tệp để đọc hay ghi, đồng thời đặt con trỏ tệp vào vị trí thích hợp.
4. Phải dùng câu lệnh đóng tệp sau khi đã kết thúc ghi dữ liệu vào tệp để hệ thống hoàn tất việc ghi dữ liệu ra tệp.
* Hoạt động 2: Giải quyết một số bài tập
đơn giản về tệp.
Bài tập 1: Viết chương trình tạo tệp songuyen.txt gồm 100 số nguyên từ 1 đến 100, mỗi số được ghi trên một dòng. GV: Phân tích đề bài và hướng dẫn học sinh giải quyết bài toán.
Bài tập 2: Trên đảo hoang có một cặp Thỏ non, kể từ tháng thứ 3 trở đi, mỗi cặp Thỏ non sẽ sinh ra một cặp thỏ non khác. Hãy viết chương trình tạo ra một tệp ‘Tho.txt’ để lưu lại số cặp Thỏ trên đảo trong từng tháng của 1 năm đầu tiên, số cặp Thỏ của mỗi tháng được ghi trên một dòng.
Bài tập 3: Viết chương trình đọc dữ liệu
từ tệp ‘Tho.txt’ và in ra màn hình số cặp thỏ trên đảo theo từng tháng.
- Giáo viên cho HS thảo luận và đưa ra cách giải từng bài toán.
- HS: đưa ra cách giải quyết.
GV: Đối với bài toán 1, GV hướng dẫn HS phân tích bài toán và đưa về kiến thức toán học, số cặp Thỏ trên đảo theo từng tháng của năm đầu tiên chính là 12 phần tử đầu tiên của dãy Fibonaci.
- GV cho HS viết chương trình và kiểm tra kết quả. Bài tập 1: program bt1; uses crt; var i:integer;f:text; begin assign(f,'D:\ songuyen.txt'); rewrite(f); for i:=1 to 100 do writeln(f,i); close(f);end. Bài tập 2: program tho; uses crt; var f1,f2,f,i:integer; tep:text; begin assign(tep,'tho.txt'); rewrite(tep); f1:=1;f2:=1; writeln(tep,f1); writeln(tep,f2); i:=2; while(i<12) do begin i:=i+1; f:=f1+f2; writeln(tep,f); f1:=f2; f2:=f; end; close(tep); readln; end. Bài tập 3: program bai2; uses crt; var st, i: integer; tep: text; begin assign(tep, 'tho.txt'); reset(tep); i:=1;
while not EOF(tep) do begin
* Hoạt động 3: Đánh giá, nhận xét
- GV kiểm tra kết quả đạt được của HS, chấm điểm một số HS có kết quả tốt.
readln(tep,st);
writeln('So tho thang thu ', i, 'la:', st); i:=i+1; end; close(tep); readln; end. 4. Củng cố, luyện tập
GV: Kiểu dữ liệu tệp được sử dụng trong nhiều bài toán, nó cho phép người lập trình có thể lưu kết quả của chương trình, chúng ta cần nắm được những thao tác liên quan khi làm việc với kiểu dữ liệu này.
5. Hướng dẫn học ở nhà
Các em về nhà xem lại các kiến thức đã học, làm bài tập của chương V, sách bài tập và đọc trước bài 17: Chương trình con và phân loại.
Tiết theo PPCT: 39
Chương VI: CHƯƠNG TRÌNH CON và LẬP TRÌNH CÓ CẤU TRÚC Bài 17: CHƯƠNG TRÌNH CON VÀ PHÂN LOẠI
I. MỤC TIÊU
1. Kiến thức
-Nắm được khái niệm chương trình con -Sự khác biệt cơ bản giữa hàm và thủ tục.
-Phân biệt điểm giống và khác nhau về cấu trúc của chương trình và chương trình con.
-Biết được mối quan hệ giữa tham số hình thức và tham số thực sự. -Biến cục bộ: Cách khai báo và phạm vi sử dụng.
2. Kĩ năng
-Chưa đòi hỏi phải có kỹ năng cụ thể. II. CHUẨN BỊ PHƯƠNG TIỆN DẠY HỌC
1. Chuẩn bị của giáo viên
-Máy chiếu, sách giáo khoa, sách giáo viên, sách bài tập.
-Một số bài về chương trình con: Tinh_tong, Tinh_tong2 (có sử dụng chương trình con).
2. Chuẩn bị của học sinh
-Sách giáo khoa, vở ghi bài. III. NỘI DUNG BÀI MỚI:
1.Kiểm tra sĩ số lớp 2. Kiểm tra bài cũ: Không 3. Nội dung bài mới
Hoạt động của GV và HS Nội dung
Hoạt động 1: Khái niệm chương trình con:
Hoạt động 1.1: Đặt vấn đề:
GV: Đưa ra bài toán tính tỔng 4 lũy thừa
trong SGK.
HS: Nêu thuật toán của bài toán đó. GV: Chiếu bằng máy chiếu Over head
chương trình của bài toán trên (chưa sử dụng chương trình con).
Câu hỏi 1: Trong chương trình trên có
những khối lệnh nào được viết tương tự nhau.
HS: Quan sát chương trình và trả lời câu
hỏi.
GV: Dẫn dắt để học sinh hình thành tư duy
về lập trình có cấu trúc và đi đến khái niệm chương trình con:
HS: Ghi khái niệm vào vở.
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 từ nhiều vị trí trong chương trình.
Hoạt động 2: Phân loại và cấu trúc của chương trình con:
Hoạt động 2.1: Phân loại:
GV: Đưa ra một số hàm và một số thủ tục
chuẩn đã học rồi giúp học sinh nhận thấy được sự khác biệt lớn nhất giữa hàm và thủ tục => phân loại chương trình con.
HS: Dựa vào gợi ý của thầy giáo, tư duy để
nhận thấy được hàm chuẩn thì trả về một giá trị nào đó, còn thủ tục chuẩn thì không trả về một giá trị nào cả qua tên của nó.
HS: Ghi khái niệm hàm và thủ tục vào vở. Hoạt động 2.2: Cấu trúc chương trình con:
Câu hỏi 2: Trình bày cấu trúc của một
chương trình.
HS: Trả lời câu hỏi.
GV: Dùng máy Over head để chiếu cấu trúc
của chương trình con lên màn chiếu.
Câu hỏi 3: Cấu trúc của chương trình con có
gì giống và khác cấu trúc của một chương trình ?
HS: Suy nghĩ và trả lời câu hỏi. GV: Chính xác hóa kiến thức.
Hoạt động 2.3: Tham số hình thức, biến cục bộ và biến toàn cục:
GV: Chỉ đưa ra cho học sinh biết được tham
số hình thức là gì ? Nó đóng vai trò gì ? Biến cục bộ và biến toàn cục là gì, được khai báo ở đâu, phạm vi hoạt động của nó chứ không đi sâu để giải thích cặn kẽ cho học sinh.
HS: Chú ý nghe giảng.
Hoạt động 2.4: Thực hiện chương trình con
GV: Giải thích để học sinh thấy được
chương trình con chỉ có thể thực hiện khi có lời gọi nó, đồng thời cũng chỉ ra tham số thực sự là gì ? Có thể lấy VD về lời gọi hàm chuẩn hoặc thủ tục chuẩn để minh họa.
Hàm (Function) là chương trình con thực hiện một số thao tác nào đó và trả về một giá trị qua tên của nó.
Thủ tục (Procedure) là chương trình con thực hiện một số thao tác nào đó nhưng không trả về một giá trị nào qua tên của nó.
Cấu trúc của một chương trình con:
<Phần đầu>
[<Phần khai báo>] <Phần thân>
Tham số hình thức: Các biến được khai báo cho dữ liệu ra/vào được gọi là tham số hình thức. Các biến khai báo dùng riêng cho chương trình con là biến cục bộ. Các biến của chương trình chính gọi là biến toàn cục.
4. Hoạt động củng cố
- Giáo viên khái quát lại khái niệm chương trình con và nhấn mạnh cho học sinh về ý thức xây dựng chương trình có cấu trúc.
5. Bài tập về nhà
- Làm bài tập 6.1 đến 6.5 (trang 60 – SBT tin học 11).
Tiết theo PPCT: 40 Bài 18: VÍ DỤ VỀ CÁCH VIẾT VÀ SỬ DỤNG CHƯƠNG TRÌNH CON I - MỤC TIÊU: Kiến thức:
- Học sinh biết được cấu trúc của một thủ tục.
- Hiểu được mối liên hệ giữa chương trình và thủ tục. - Phân biệt được tham trị và tham biến.
- Phân biệt được tham số hình thức và tham số thực sự. - Phân biệt được biến cục bộ và biến toàn cục.
Kỹ năng:
-Nhận biết được các thành phần trong phần đầu của thủ tục. -Nhận biết được hai loại tham số trong phần đầu của thủ tục.
-Nhận biết được lời gọi của thủ tục ở chương trình chính cùng với tham số thực sự.