Upload
nhungoc-phamhai
View
13.787
Download
5
Embed Size (px)
Citation preview
Kiểm tra bài củ
Trình bày cấu trúc chung của thủ tục? Các thủ tục này, nếu có, thì được khai báo ở đâu?
procedure <tên thủ tục> [(<danh sách tham số>)];[< Phần khai báo >]
begin [<Dãy các lệnh>]
end;
- Phần đầu thủ tục: Tên dành riêng procedure, tên thủ tục và danh sách tham số (có thể có hoặc không).- Phần khai báo: Dữ liệu vào ra của chương trình con (có thể có hoặc không).- Phần thân thủ tục: Dãy câu lệnh đặt giữa cặp từ khóa begin và end.- Các thủ tục này, nếu có thì được khai báo và mô tả trong phần khai báo của chương trình chính, ngay sau phần khai báo các biến.
Nêu sự khác nhau giữa tham số giá trị và tham số biến? Hãy chỉ ra tham biến và tham trị trong ví dụ sau?
procedure CatDan(s1: str79; var s2: str79); begin
s2 := copy(s1,2, length(s1)-1) + s1[1];end;
Tham trị•Các tham số thực sự tương ứng là các giá trị cụ thể thay thế các tham số hình thức trong lời gọi thủ tục được gọi là các tham trị.
•Không có từ khóa var đứng trước.
Tham biến•Các tham số thực sự tương ứng là tên các biến chứa dữ liệu ra thay thế các tham số hình thức trong lời gọi thủ tục đươc gọi là các tham biến. •Có từ khóa var đứng trước.
Tham trị trong thủ tục: s1.Tham biến trong thủ tục: s2.
procedure CatDan(s1: str79; var s2: str79);
Ví dụ về tham biến, tham trịprocedure
Hoan_doi(var x, y: integer);
var TG: integer;
begin
TG:=x;
x:=y;
y:=TG;
end;
begin
clrscr;
a:=5; b:= 15;
writeln(a: 6,b:6);
Hoan_doi(a, b);
writeln(a: 6,b:6);
readln;
end.
procedure
Hoan_doi(var x:integer; y: integer);
var TG: integer;
begin
TG:=x;
x:=y;
y:=TG;
end;
begin
clrscr;
a:=5; b:= 15;
writeln(a: 6,b:6);
Hoan_doi(a, b);
writeln(a: 6,b:6);
readln;
end.
5 1515 5
5 1515 15
LOGO
Bài 18:
VÍ DỤ VỀ CÁCH VIẾT VÀ SỬ DỤNG CHƯƠNG TRÌNH CON
(Tiết 2)
VÍ DỤ VỀ CÁCH VIẾT VÀ SỬ DỤNG CHƯƠNG TRÌNH CON
(Tiết 2)
Ngày 28 tháng 02 năm 2011GVHD: Nguyễn Duy TấtSVTT: Lê Văn Bách
Sở Giáo Dục Và Đào Tạo Kiên Giang
Trường THPT Thạnh Đông, H.Tân Hiệp
Nội Dung
Cấu trúc của hàm1
So sánh thủ tục và hàmSo sánh thủ tục và hàm2
Ví dụ về hàmVí dụ về hàm3
Sử dụng hàmSử dụng hàm4
Ví dụ về sử dụng hàmVí dụ về sử dụng hàm5
a) Cấu trúc hàm
Function <tên hàm>[(<danh sách tham số>)]: <kiểu dữ liệu>;
[< Phần khai báo >]
Begin
[<Dãy các lệnh>]
<tên hàm> : = <biểu thức>;
End;
2. Cách viết và sử dụng hàm
- Phần đầu của hàm: Tên dành riêng function, tên hàm, kiểu dữ liệu trả về của hàm- Phần khai báo: Xác định các hằng, kiểu, biến.- Dãy câu lệnh: được viết trong cặp tên dành riêng begin và end tạo thành thân của hàm, khác với thủ tục trong thân hàm cần có lệnh gán giá trị cho tên hàm.
So sánh thủ tục và hàm
Đều là chương trình con, nói chung có cấu trúc giống một chương trình.
Đều có thể chứa các tham số (tham trị và tham biến), cùng tuân theo các qui định về khai báo và sử dụng các loại tham số này.
Giống nhau:
Khác nhau:Function <tên hàm>[(<danh sách tham số>)]: <kiểu dữ liệu>;
[< Phần khai báo >]
Begin
[<Dãy các lệnh>]
<tên hàm> : = <biểu thức>;
End;
procedure <tên thủ tục> [(<danh sách tham số>)];
[< Phần khai báo >] begin
[<Dãy các lệnh>] end;
+ Phần đầu có thêm kiểu dữ liệu của giá trị mà hàm trả về.
Từ khóa
+ Trong thân hàm thường có câu lệnh gán giá trị cho tên hàm.
Ví dụ về hàm
uses crt;
var TuSo, MauSo, a: integer;
function UCLN(x, y: integer): integer;
var sodu:integer;
begin
while y<>0 do
begin
sodu := x mod y;
x := y;
y := sodu;
end;
UCLN :=x;
end;
begin
clrscr;
write(‘Nhap tu so:);readln(TuSo);
write(‘Nhap mau so:’); readln(MauSo);
a := UCLN(TuSo, MauSo);
if a>1 then
begin
TuSo := TuSo div a;
MauSo := MauSo div a;
end;
writeln(TuSo,’/’, MauSo);
end.
Sử dụng hàm với từ khoá function
Trả về giá trị kiểu integer
Gán giá trị thông qua tên hàm
Lưu ý:
Kết quả trả về qua tên hàm chỉ có thể thuộc các kiểu dữ liệu chuẩn (integer, real, boolean, char, string).
Vì kết quả trả về đã gán cho tên hàm nên thông thường các tham số dùng trong hàm là tham số giá trị.
b) Sử dụng hàm
Việc sử dụng hàm tương tự như sử dụng các hàm chuẩn.
Lệnh gọi hàm:
<tên hàm>[(<các tham số thực sự>)];
Lệnh gọi hàm có thể tham gia vào biểu thức như một toán hạng.
Ví dụ sử dụng hàm
var a, b, c: real;
function Min(a, b: real): real;
begin
if a<b then Min:=a
else Min:=b;
end;
begin
write(‘Nhap vao ba so: ’);
readln(a, b, c);
writeln(‘So nho nhat trong ba so la: ’,Min(Min(a, b), c) );
readln;
end.
Min(Min(a, b), c)
Min( a , c)
real
Củng cố
1. Giá trị trả về của hàm chỉ có thể là các kiểu dữ liệu:
a) Integer, string, char, real.
b) Integer, boolean, char.
c) Integer, real, char, boolean, string.
d) Integer, real, char, boolean, byte.
Integer, real, char, boolean, string.
Củng cố
2. Trong thân hàm cần có lệnh gán giá trị cho tên hàm <tên hàm> := <biểu thức>. Vì: a) Hàm trả về một giá trị thông qua tên hàm.
b) Hàm có cấu trúc giống thủ tục.
c) Giá trị của các biến thay đổi nên phải lưu vào tên hàm.
d) a, b, c đều đúng.
Hàm trả về một giá trị thông qua tên hàm.
Củng cố
3. Các tham số trong hàm bắt buộc phải là các tham số giá trị.a) Đúng.
b) Sai.Sai.
Dặn dò
Thực hành lại các chương trình trong sách giáo khoa.
Chú ý các khái niệm: • Thủ tục, hàm.• Tham số hình thức, tham số thực sự.• Biến toàn cục, biến cục bộ.• Tham trị, tham biến.
LOGO