Cách viết và sử dụng hàm
Chia sẻ bởi Cao Trung |
Ngày 10/05/2019 |
85
Chia sẻ tài liệu: Cách viết và sử dụng hàm thuộc Tin học 11
Nội dung tài liệu:
TRƯỜNG ĐHSP HUẾ- KHOA TIN HỌC
KIỂM TRA BÀI CỦ
NỘI DUNG BÀI MỚI
Nguyễn Viết Cường
Đặng Thị Huệ
Nhóm sinh viên thực hiện:
Đinh Văn Thái
Hoàng Đại Thọ
TRƯỜNG ĐHSP HUẾ- KHOA TIN HỌC
LỚP TIN 4A
Nguyễn Thị Diễm Ngọc
Huế 11/2005.
BÀI GIẢNG ĐIỆN TỬ NHÓM 8- LỚP TIN 4A
Câu hỏi:
1) Hãy viết cấu trúc của một chương trình con thủ tục ?
2) Hãy viết thủ tục tìm UCLN của hai số x,y ?
Đáp án:
1) Procedure([ds tham số]);
[< Phần khai báo>]
Begin
Các câu lệnh xử lý; {Phần thân thủ tục}
End;
TRANG ĐẦU
2) Procedure UCLN(x,y:integer);
Var du:integer;
Begin
While y<>0 do
Begin
Du:=x mod y;
x:=y;
y:=du;
End;
End;
Đáp án:
TRANG ĐẦU
I. Cách viết và sử dụng hàm:
1. Cách viết hàm:
Cú pháp:
Function([ds tham số]): Kiểu hàm trả về;
[Phần khai báo, định nghĩa ]
Begin
Các câu lệnh xử lý ;
:=
End;
Cấu trúc của hàm tương tự như cấu trúc của một thủ tục
Trong thân hàm bắt buộc phải có có câu lệnh gán, gán giá trị cho tên hàm với cú pháp:
:=;
Hàm sẽ trả về một giá trị xác định.
Kiểu trả về của hàm chỉ có thể là kiểu xác định và bao gồm các kiểu sau đây: integer, real, char, boolean, string.
Sử dụng giống như hàm chuẩn ( length(), sqr(), abs()...)
Lời gọi hàm có thể tham gia vào biểu thức như toán hạng. [A:=UCLN(tu,mau)+5*a;]
Lời gọi hàm có thể tham gia vào trong một hàm khác với tư cách là một tham số
2.Cách sử dụng hàm
Vd: Var a,b,c: real;
Function Max (A,B: real): real;
Begin
If A>B then max:=A Else Max:= B;
End;
Begin Write(‘Nhập ba số:’); Readln(A,B,C);
Writeln(‘So lon nhất trong ba số la :‘, Max(Max(A,B),C));
End.
- Là một chương trình con
- Là một chương trình con.
- Từ khóa Function..
- Từ khóa Procedure
- Có kiểu trả về.
- Không có kiểu trả về.
- Có thể chứa các tham số.
- Có thể chứa các tham số.
- Trong thân hàm có câu lệnh gán cho tên hàm.
- Không có câu lệnh gán cho tên hàm trong thân hàm.
- Thường dùng để thực
hiện một công việc nào đó
- Thường dùng để tính một giá trị nào đó.
So sánh hàm và thủ tục
Ví dụ: Giản ước phân số.
+ Ta đi tìm ước số chung lớn nhất của hai số.
+ Sau đó ta lấy tử số và mẫu số chia cho ước chung lớn nhất ta được phân số tối giản.
Thuật toán:
Trường hợp cụ thể giản ước phân số 9/3
uses crt;
VAR tuso,mauso,
a:integer;
function ucln(x,y:integer):integer;
var du: integer;
begin
while y<>0 do
begin
du:=x mod y;
x:=y; y:=du;
end;
ucln:=x;
end;
BEGIN
clrscr;
write(‘nhap tu so, mau so vao!’);
readln(tuso,mauso);
a:=ucln(tuso,mauso);
if a>1 then
begin
tuso:=tuso div a;
mauso:=mauso div a;
end;
writeln(tuso:5,mauso:5);
END.
Begin
Nhap tu so: X:=9
Nhap mau so: Y:=3
X:= 9 div 3;
Y:=3 div 3;
End.
0:=9 mod 3;
X:=3;
Y:=0
3<>0
UCLN(9,3):=3;
T
F
0<>0
Begin
Nhap a,b,c;
End.
a > b
Max:=a;
Max:=b;
Max(Max(a,b),c)
T
F
Max(a,b)>c
Max:=Max(a,b)
Max:=c
Max:=c
Max:=Max(a,b)
Ví dụ: Tìm max của 3 số a, b, c.
Lời gọi hàm
1) Biến cục bộ:
a) Khái niệm:Là các biến được khai báo sau từ khóa VAR trong các chương trình con.
b) Phạm vi sử dụng:
- Trong thân của chương trình con khai báo chúng.
- Trong các chương trình con chứa chương trinh con này.
c) Thời gian tồn tại:
Từ khi chương trình con được gọi thưc hiện cho đến khi thực hiện xong.
II. Biến cục bộ và biến toàn cục
Khái niệm:
Là các biến được khai báo sau từ khóa VAR của
chương trình chính.
b) Phạm vi sử dụng:
Trong toàn bộ chương trình ( trong chương trình chính và trong tất cả các chương trình con của nó).
c) Thời gian tồn tại:
Khi chương trình đang thực hiện.
2) Biến toàn bộ:
Nếu biến toàn cục và biến cục bộ trùng tên thì khi thực hiện trong chương trình con biến toàn cục bị dấu đi và không có gì thay đổi.
Nếu không có biến cục bộ trùng tên thì giá trị của biến toàn cục sẽ bị thay đổi.
Khi viết hàm cần tránh khai báo biến địa phương trùng tên với tham số hình thức
Chú ý:
+ Khi nào thì dùng hàm, khi nào thì dùng thủ tục ?
- Khi cần thực hiện một công việc nào đó thì dùng thủ tục.
- Khi cần tính một giá trị nào đó thì ta dùng hàm.
+ Điểm khác nhau cơ bản giữa thủ tục và hàm là gì ?
Việc thực hiện hàm luôn cho một giá trị kết quả thuộc kiểu xác định và giá trị đó được gán cho tên hàm.
CỦNG CỐ
Bài tập về nhà:
Hãy chuyển các bài toán viết bằng thủ tục sang hàm.
Đếm số từ trong 1 câu cho trước.
Hàm SNT (n:integer) có giá trị là True nếu n là số nguyên tố, ngược lại là False
KIỂM TRA BÀI CỦ
NỘI DUNG BÀI MỚI
Nguyễn Viết Cường
Đặng Thị Huệ
Nhóm sinh viên thực hiện:
Đinh Văn Thái
Hoàng Đại Thọ
TRƯỜNG ĐHSP HUẾ- KHOA TIN HỌC
LỚP TIN 4A
Nguyễn Thị Diễm Ngọc
Huế 11/2005.
BÀI GIẢNG ĐIỆN TỬ NHÓM 8- LỚP TIN 4A
Câu hỏi:
1) Hãy viết cấu trúc của một chương trình con thủ tục ?
2) Hãy viết thủ tục tìm UCLN của hai số x,y ?
Đáp án:
1) Procedure
[< Phần khai báo>]
Begin
Các câu lệnh xử lý; {Phần thân thủ tục}
End;
TRANG ĐẦU
2) Procedure UCLN(x,y:integer);
Var du:integer;
Begin
While y<>0 do
Begin
Du:=x mod y;
x:=y;
y:=du;
End;
End;
Đáp án:
TRANG ĐẦU
I. Cách viết và sử dụng hàm:
1. Cách viết hàm:
Cú pháp:
Function
[Phần khai báo, định nghĩa ]
Begin
Các câu lệnh xử lý ;
End;
Cấu trúc của hàm tương tự như cấu trúc của một thủ tục
Trong thân hàm bắt buộc phải có có câu lệnh gán, gán giá trị cho tên hàm với cú pháp:
Hàm sẽ trả về một giá trị xác định.
Kiểu trả về của hàm chỉ có thể là kiểu xác định và bao gồm các kiểu sau đây: integer, real, char, boolean, string.
Sử dụng giống như hàm chuẩn ( length(), sqr(), abs()...)
Lời gọi hàm có thể tham gia vào biểu thức như toán hạng. [A:=UCLN(tu,mau)+5*a;]
Lời gọi hàm có thể tham gia vào trong một hàm khác với tư cách là một tham số
2.Cách sử dụng hàm
Vd: Var a,b,c: real;
Function Max (A,B: real): real;
Begin
If A>B then max:=A Else Max:= B;
End;
Begin Write(‘Nhập ba số:’); Readln(A,B,C);
Writeln(‘So lon nhất trong ba số la :‘, Max(Max(A,B),C));
End.
- Là một chương trình con
- Là một chương trình con.
- Từ khóa Function..
- Từ khóa Procedure
- Có kiểu trả về.
- Không có kiểu trả về.
- Có thể chứa các tham số.
- Có thể chứa các tham số.
- Trong thân hàm có câu lệnh gán cho tên hàm.
- Không có câu lệnh gán cho tên hàm trong thân hàm.
- Thường dùng để thực
hiện một công việc nào đó
- Thường dùng để tính một giá trị nào đó.
So sánh hàm và thủ tục
Ví dụ: Giản ước phân số.
+ Ta đi tìm ước số chung lớn nhất của hai số.
+ Sau đó ta lấy tử số và mẫu số chia cho ước chung lớn nhất ta được phân số tối giản.
Thuật toán:
Trường hợp cụ thể giản ước phân số 9/3
uses crt;
VAR tuso,mauso,
a:integer;
function ucln(x,y:integer):integer;
var du: integer;
begin
while y<>0 do
begin
du:=x mod y;
x:=y; y:=du;
end;
ucln:=x;
end;
BEGIN
clrscr;
write(‘nhap tu so, mau so vao!’);
readln(tuso,mauso);
a:=ucln(tuso,mauso);
if a>1 then
begin
tuso:=tuso div a;
mauso:=mauso div a;
end;
writeln(tuso:5,mauso:5);
END.
Begin
Nhap tu so: X:=9
Nhap mau so: Y:=3
X:= 9 div 3;
Y:=3 div 3;
End.
0:=9 mod 3;
X:=3;
Y:=0
3<>0
UCLN(9,3):=3;
T
F
0<>0
Begin
Nhap a,b,c;
End.
a > b
Max:=a;
Max:=b;
Max(Max(a,b),c)
T
F
Max(a,b)>c
Max:=Max(a,b)
Max:=c
Max:=c
Max:=Max(a,b)
Ví dụ: Tìm max của 3 số a, b, c.
Lời gọi hàm
1) Biến cục bộ:
a) Khái niệm:Là các biến được khai báo sau từ khóa VAR trong các chương trình con.
b) Phạm vi sử dụng:
- Trong thân của chương trình con khai báo chúng.
- Trong các chương trình con chứa chương trinh con này.
c) Thời gian tồn tại:
Từ khi chương trình con được gọi thưc hiện cho đến khi thực hiện xong.
II. Biến cục bộ và biến toàn cục
Khái niệm:
Là các biến được khai báo sau từ khóa VAR của
chương trình chính.
b) Phạm vi sử dụng:
Trong toàn bộ chương trình ( trong chương trình chính và trong tất cả các chương trình con của nó).
c) Thời gian tồn tại:
Khi chương trình đang thực hiện.
2) Biến toàn bộ:
Nếu biến toàn cục và biến cục bộ trùng tên thì khi thực hiện trong chương trình con biến toàn cục bị dấu đi và không có gì thay đổi.
Nếu không có biến cục bộ trùng tên thì giá trị của biến toàn cục sẽ bị thay đổi.
Khi viết hàm cần tránh khai báo biến địa phương trùng tên với tham số hình thức
Chú ý:
+ Khi nào thì dùng hàm, khi nào thì dùng thủ tục ?
- Khi cần thực hiện một công việc nào đó thì dùng thủ tục.
- Khi cần tính một giá trị nào đó thì ta dùng hàm.
+ Điểm khác nhau cơ bản giữa thủ tục và hàm là gì ?
Việc thực hiện hàm luôn cho một giá trị kết quả thuộc kiểu xác định và giá trị đó được gán cho tên hàm.
CỦNG CỐ
Bài tập về nhà:
Hãy chuyển các bài toán viết bằng thủ tục sang hàm.
Đếm số từ trong 1 câu cho trước.
Hàm SNT (n:integer) có giá trị là True nếu n là số nguyên tố, ngược lại là False
* Một số tài liệu cũ có thể bị lỗi font khi hiển thị do dùng bộ mã không phải Unikey ...
Người chia sẻ: Cao Trung
Dung lượng: |
Lượt tài: 0
Loại file:
Nguồn : Chưa rõ
(Tài liệu chưa được thẩm định)