Nhắc lại về thủ tục Giới thiệu hàm Viết một hàm như thế nào Ví dụ minh họa So sánh giữa hàm và thủ tục Tóm tắt bài học... Khái niệm về thủ tụcProcedure?◦ Thủ tục là một đoạn chư
Trang 1CÁCH VIẾT VÀ SỬ DỤNG HÀM
Trang 2Nhắc lại về thủ tục
Giới thiệu hàm
Viết một hàm như thế nào
Ví dụ minh họa
So sánh giữa hàm và thủ tục
Tóm tắt bài học
Trang 3Khái niệm về thủ tục(Procedure)?
◦ Thủ tục là một đoạn chương trình con…
Người ta dùng thủ tục trong hoàn cảnh nào?
◦ Trong trường hợp có đoạn chương trình lặp lại, hay trong trường hợp cần làm cho chương trình trong sáng
dễ hiểu hơn
Nêu cú pháp viết một thủ tục bằng ngôn ngữ
Pascal
◦ Procedure <ten_TT> (<DS tham so>)…
Trang 4Mở đầu
◦ Cho bài toán: tìm lập phương (lũy thừa 3) của một số x
◦ Về mặt toán học, chúng ta sẽ biểu diễn bài toán trên bằng hàm số y = x3, trong đó x là biến số, y là giá trị của hàm số Như vậy với mỗi x chúng ta sẽ có giá trị y tương ứng
Trang 5Mở đầu
◦ Để biểu diễn bài toán đó bằng ngôn ngữ của tin học chúng ta có thể phát biểu như sau:
[Hàm] y (x : [số nguyên]) : [số nguyên]
[Bắt đầu hàm]
y := x*x*x
[Kết thúc hàm]
◦ Như vậy, để tính giá trị 23 chẳng hạn, chúng ta viết v :=
y(2) Khi đó giá trị của v nhận được sẽ là 23= 8
Trang 6Khái niệm về hàm
◦ Hàm là một đoạn chương trình, thực hiện công việc xác định nào đó và trả về giá trị
Trang 7Cú pháp viết hàm trong ngôn ngữ Pascal
Function < tên hàm >[(ds tham số)]:<kiểu của hàm>; [<Phần khai báo>];
Begin
{dãy các lệnh trong thân hàm…}
< tên hàm >:=<giá trị trả về của hàm>;
End ;
Ví dụ
Function y (x: integer):integer;
Begin
y :=x*x*x;
End ;
Trang 8Giải thích ý nghĩa
◦ <tên hàm>: do người dùng đặt, không trùng với từ
khóa Tên hàm sẽ được dùng trong lời gọi hàm sau này
◦ <ds tham số>:các biến giữ giá trị đầu vào của hàm
◦ <kiểu của hàm>: kiểu dữ liệu trả về của hàm
◦ Thân hàm sẽ nằm giữa begin {…} end;
◦ Sau khi tính toán các giá trị cần thiết, giá trị trả về của hàm sẽ được viết bằng câu lệnh:
<tên hàm>:=<giá trị trả về của hàm>;
Trang 9Ví dụ 01: Viết hàm tính lập phương của một số thực.
Function lp(x:real):real;
Begin
Lp:=x*x*x;
End;
Trang 10Var a,n:integer;
Function gt(n:integer):longint; var i: integer;
Begin
gt:=1;
For i:=0 To n
Begin
gt:=gt*i;
End;
End;
Begin
Write(‘nhap n:=‘);readln(n); a:=gt(n);
Write(‘giat tri a:=‘,a);
End.
Trang 11Giống nhau
Đều là đoạn chương
trình con.
Khác nhau
Thủ tục thì không trả về giá trị còn hàm thì có giá trị trả về.
Trang 12Khái niệm hàm.
Cú pháp của Hàm trong ngôn ngữ pascal
So sánh giữa hàm và thủ tục.
Trang 13Người dùng chương trình con chỉ cần biết truyền số liệu vào và lấy kết quả ra như thế nào mà không cần quan tâm đến thuật toán trong chương trình con như thế nào.