Bài 17 CHƯƠNG TRÌNH CON VÀ PHÂN LOẠI (Tiết 2)
3. Các ví dụ minh hoạ
Ví dụ 1. viết chương trình vẽ hình chữ nhật có các kích thước khác nhau.
Program VD2_thutuc;
Var a,b,i:integer;
thực hiện vẽ nhiều lần hình chữ nhật có kích thước khác nhau nên chúng ta chưa thể xác định được số câu lệnh và số hình chữ nhật để vẽ theo chương trình minh hoạ ở SGK.
Hơn nữa thủ tục lại không trả lại một giá trị nào. Vì thế cần dùng thủ tục.
- Dựa vào ví dụ 1 chi ra đâu là biến toàn cục, biến cục bộ?
chúng được khai báo ở vị trí nào?
Chương trình được trình bày trên bảng phụ.
- Phân tích cho hoc sinh biết được ý tưởng thuật toán.
- Chỉ ra các biến được sử dụng trong chương trình, phân biệt biến cục bộ, biến toàn cục, được khai báo ở vị trí nào trong chương trình ?
thủ tục được sử dụng mấy lần?
Thế nào là tham số hình thức?
tham số thực sự”
Tham trị làgì?
Thế nào là tham biến? tham trị?
Suy nghĩ trả lời A,b,i là biến toàn cục I,j ;à biến cục bộ
Theo dõi quan sát
trả lời trả lời
Trong các lời gọi thủ tục đó các tham số hình thức được thay bằng các số thực sự hay các biến chứa giá trị cụ thể gọi là tham số giá trị hay tham trị.
Trong lệnh gọi thủ tục các tham số hình thức được thay bằng các biến chứa dữ liệu ra được gọi là các tham số biến
Procedure Ve_HCN
(dai,rong:integer);
Var i,j:integer;
Begin
For i:=1 to dai do write(‘*’);
Writeln;
For j:=1 to rong – 2 do Begin
Write(‘*’);
For i:= 1 to dai -2 do write(‘*’);
Writeln;
End;
For i:=1 to dai do write(‘*’);
Writeln;
End;
Begin
Ve_HCN(25,10);
Writeln; writeln;
a:=4, b:=2;
for i:= 1 to 4 do begin
Ve_HCN(a,b);
A:=a*2; b:=b*2 End;
Readln;
End;
Trong các lời gọi thủ tục đó các tham số hình thức được thay bằng các số thực sự hay các biến chứa giá trị cụ thể gọi là tham số giá trị hay tham trị.
Trong lệnh gọi thủ tục các tham số hình thức được thay bằng các biến chứa dữ liệu ra được gọi là các tham số biến (gọi tắt Tham biến)
Giải thích tham biến và tham trị thông qua ví dụ SGK (dùng bảng phụ)
(gọi tắt Tham biến)
Hoạt động 3: Cũng cố:(4’)
- Nắm được cấu trúc và cách dùng thủ tục.
- Phân được biến toàn cục và biến cục bộ.
- Phân biệt giữa Tham trị và tham biến
---
Ngày soạn: 16/03/2010 Tiết PPCT: 44
Bài 18: VÍ DỤ VỀ CÁCH VIẾT VÀ SỬ DỤNG CHƯƠNG TRÌNH CON (T2)
I/ Mục tiêu:
- Về kiến thức:
+ Nhớ cấu trúc của hàm, cách sử dụng hàm.
+ Phân biệt được giữa hai loại chương trình con (thủ tục và hàm) + Xác định được biến toàn cục và biến cục bộ.
- Về kỹ năng:
+ Nhận biết các thành phần trong đầu hàm.
+ Nhận biết các câu lệnh sử dụng hàm ở chương trình chính cùng các tham số thực sự.
- Về tư duy và trình độ:
+ Tiếp tục rèn luyện, thảo luận làm việc theo nhóm.
II/ Chuẩn bị của giáo viên và học sinh - Giáo viên: Giáo án, bảng phụ.
- Học sinh: Ghi chép bài đầy đủ.
III/ Tiến trình tiết dạy:
1. Ổn định lớp, sĩ số 2. Bài cũ:
Nêu cấu trúc của thủ tục?
Thế nào là tham biến? tham trị?
2. Bài mới
Hoạt động của giáo viên Hoạt động của học sinh Nội dung ghi bảng - <tên hàm> do người dùng tự
đặt
- Cũng giống như thủ tục [<danh sách tham số>]: không cần thiết nếu hàm không có
II/ Dạng Hàm (Function) 1/ Cấu trúc:
Function <tên hàm>[<danh sách tham số>]: <kiểu dữ liệu>;
[khai báo các biến];
Begin
[<dãy các lệnh>]
tham số.
- Em hãy nhắc lại các kiểu dữ liệu đã được học?
Chương trình được trình bày trên bảng phụ
-Trong ví dụ có bao nhiêu hàm?
- Hàm UCLN(x,y): được dùng để làm gì?
- Chỉ ra lệnh gán giá trị cho tên hàm?
- Em hãy cho biết sự giống nhau và khác nhau giữa hàm và thủ tục?
- Tổng hợp rút ra kết luật chung.
- Dựa vào ví dụ 1 chi ra đâu là biến toàn cục, biến cục bộ?
chúng được khai báo ở vị trí nào?
- Các kiểu dữ liệu: integer, real, char, boolean, string
- Có một hàm UCLN
- Tính ước chung lớn nhất của hai số x, y.
- UCLN:= x;
- Đều là chương trình con.
- Khác: trong thân hàm phải có ít nhất một lệnh.
- Biến toàn cục là: Tuso, mauso, a. Được khai báo trong chương trình chính.
End;
- <Kiểu dữ liệu>: Kiểu dữ liệu trả lại của hàm như các kiểu integer, real, char, boolean, string.
Vd: Function tong(x,y: integer):
integer;
2/
Sử dụng hàm :
- Giống hàm chuẩn, viết tên của hàm gọi và thay thế tham số hình thức bằng các tham số thực sự tương ứng.
- Lệnh gọi hàm tham gia vào biểu thức như một toán hạng.
Ví dụ: A:= 8*UCLN(x,y)-3;
Chú ý: Trong thân hàm phải có ít nhất một lệnh gán giá trị cho tên hàm.
<tên hàm>:= <biểu thức>;
Ví dụ 1:
- Chương trình thực hiện rút gọn một phân số, sử dụng hàm tính ước chung lơn của 2 số.
3/ Phân biệt giữa hàm và thủ tục:
a/ Giống nhau:
- Là chương trình con, có cấu trúc giống chương trình.
- Đều có thể chứa các tham số, cùng tuân theo một quy định khai báo.
b/ Khác nhau:
- Tên hàm phải có kiểu dữ liệu.
- Trong thân hàm phải có lệnh gán giá trị cho tên hàm.
4/ Biến toàn cục và biến cục bộ:
- Biến toàn cục là biến được khai báo trong chương trình chính.
- Biến cục bộ là biến được khai báo trong chương trình con.
Ví dụ 2:
Chương trình tìm ra số nhỏ nhất trong 3 số được nhập từ bàn phím.
Chương trình được trình bày trên bảng phụ.
- Phân tích cho hoc sinh biết được ý tưởng thuật toán.
- Chỉ ra các biến được sử dụng trong chương trình, phân biệt biến cục bộ, biến toàn cục, được khai báo ở vị trí nào trong chương trình ?
- Nêu tên của hàm, giá trị kết quả của hàm thuộc kiểu dữ liệu nào?
- Hàm được sử dụng mấy lần?
- Biến cục bộ: x, y. Được khai báo trong chương trình con.
- Biến được sử dụng gồm 3 biến.
- a, b vừa là biến toàn cục vừa là biến cục bộ, c là biến toàn bộ.
- Tên hàm là Min, giá trị kết quả thuộc kiểu dữ liệu real.
- Hàm được sử dụng 2 lần.
Hoạt động 3: Cũng cố:(4’)
- Nhấn mạnh lại cách khai báo hàm, phân biệt giữa hàm và thủ tục.
- Phân được biến toàn cục và biến cục bộ.
Bài tập về nhà:
Function tim(m,n: integer);
Begin
r:=m mod n;
If r= 0 then tim:=n;
Else
Tim:=tim(n,r);
End;
1. Khai báo biến, sửa lỗi cho đoạn chương trình trên?
2. Đoạn chương trình thực hiện công việc gì?
--- Ngày soạn: 1/04/2010.
PPCT: 45
BÀI TẬP I. Mục tiêu.
Trọng tâm của bài học là cho học sinh ôn lại các kiến thức về chương trình con và vận dụng để giải các bài toán về lập trình có cấu trúc
• Kiến thức:ôn lại các kiến thức về các kiểu dữ liệu có cấu trúc và kiểu dữ liệu tệp
• Kĩ năng:- Rèn luyện kỹ năng lập trình bằng chương trình con
- Rèn luyện kỹ năng lập trình cho học sinh, giúp học sinh thành thạo hơn các trong việc nhận dạng bài toán ở dạng hàm hay thủ tục
• Thái độ: Tạo hứng thú cho học sinh khi học lập trình II. Thiết bị dạy - học
GV: bảng, phấn, bảng phụ, giáo án, SGK, SBT HS: SGK, vở, SBT
III. Chuẩn bị của giáo viên và học sinh GV: Giáo án, bảng phụ
HS: đọc trước bài trước khi lên lớp IV. Tiến trình lên lớp
1. Ổn định lớp, sỹ số 2. Bài cũ:
Hãy phân biệt giữa thủ thục và hàm?
3. Nội dung
Hoạt động 1.
Vận dụng kiến thức chương trình con để giải bài toán:Trong CTC khi nào, khi nào nên tổ chức truyền tham biến và khi nào nên tổ chức truyền tham trị? (BT6.1 SBT)
Hoạt động của giáo viên Hoạt động của HS Nội dung
gọi hs làm nhanh ví dụ trả lời nhanh BT6.1 SBT.
Khi gặp bài toán mà dữ liệu và ra cần phảu thay đổi giả trị sau khi CTC thực hiện thì tổ chức truyền tham biến, ngược lại thì tổ chức truyền tham trị
Hoạt động 2.
Vận dụng kiến thức hàm để giải bài toán:Viết hàm FAC(n) trả về giá trị n! (giai thừa của số nguyên n); sử dụng hàm này để tính và đưa ra màn hình n! với n= 0,1,2,3,..,10 (BT6.11 SBT)
Hoạt động của giáo viên Hoạt động của HS Nội dung
Theo toán học người ta định nghĩa n! như thế nào?
nếu viết trong Pascal chúng ta phải viết đoạn lệnh nào để giải quyết bài toán đó?
Rõ ràng chúng ta thấy đề đã quy định chúng ta phải sử dụng hàm FAC(n).
gọi hs hoàn chỉnh thủ tục
Hoàn thành chương trình
trả lời
If n=0 then Giaithua:=1 Else
Begin
Giai thua:=1;
For i:=0 to n do
Giaithua:=Giaithua*n;
End;
Ghi nhận
Hoàn thành chương trình
Var n:byte;
Function FAC(n:byte):longint;
Var i:byte;
Begin
If n=0 then FAC:=1 Else
Begin FAC:=1;
For i:=0 to n do FAC:=FAC*n;
End;
End;
Begin N:=10
For i:=1 to n do Writeln(FAC(i):10);
Readln
End.
V. Củng cố.
Qua các tiết bài tập này làm ví dụ chúng ta về nhà xem lại cấu trúc của hàm và thủ tục. Ôn tập lại về các vấn đề lí thuyết chúng ta vừa trình bày ở các tiết trước dựa vào bài tập mẫu này để hoàn thành các bài tập 6.12, 6.16 SBT tr 62,63
--- Ngày soạn: 3/04/2010 ppct: 46,47 Bài thực hành số 6
i. 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ự, 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 cho máy 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.
II. đồ dùng dạy học 1. Chuẩn bị của giáo viên:
- Máy vi tính, tổ chức tại phòng máyđể học sinh có đợc các kỹ năng cơ bản tronh việc tổ chức và sử dụng chơng trình con trong lập trình.
2. Chuẩn bị của học sinh:
- Sách giáo khoa.
III. Hoạt động dạy học
1. Hoạt động 1: Tìm hiểu việc xây dựng hai thủ tục catdan(s1, s2) và cangiua(s).
a. Mục tiêu:
- nắm đợc chức năng của hai thủ tục catdan(s1, s2) và cangiua(s). Biết đợc ý nghĩa cảu mỗi tham số trong từng chơng trình con đó.
b. Néi dung:
Thủ tục catdan
Type str79 = string[79];
Procedure catdan(s1 : str79; var s2 : str79);
Begin
S2 := copy(s1 , 2 , length(s1) - 1) + s1[1];
Thủ tục cangiuaEnd;
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;
c. Các bớc tiến hành: