Chương trình con được chia ra làm mấy loại 2.. Cấu trúc chung của chương trình con được chia làm mấy phần Hàm Function và thủ tục Procedure 3.. Cấu trúc chung của chương trình chính đư
Trang 1Bài 18 –tiết 2
Ví dụ về cách viết và sử dụng chương trình con.
Trang 2KIỂM TRA BÀI CŨ
1 Chương trình con được chia ra làm mấy loại
2 Cấu trúc chung của chương trình con được chia làm mấy phần
Hàm (Function) và thủ tục (Procedure)
<Phần khaibáo>
<Phần thân>
3 Cấu trúc chung của chương trình chính được chia làm mấy phần
<Phần khai báo>
<Phần thân>
Trang 3Bài 18 – tiết 2
Function <tên hàm>[(<danh sách tham số>)]:<kiểu dữ liệu>;
[<Khai báo biến hoặc hằng>] ;
Begin
{Các câu lệnh của hàm}
{Trong đó bắt buộc phải có câu lệnh trả ra giá trị cho hàm}
<tên hàm>:=<biểu thức>;
End ;
Trang 4Bài 18 – tiết 2
b Bài toán ví d : ụ
VD1:Viết chương trình cho biết số nhỏ nhất của 3 số nhập vào từ bàn phím
Trong đó có sử dụng hàm tìm số nhỏ trong hai số? Program Minbaso; Uses crt;
Var a, b, c: real;
Function Min(a, b: real): real;
Begin
If ( a< b) then Min:=a Else Min:=b;
End;
BEGIN clrscr;
Write ('Nhap vao ba so: ');
Readln(a, b, c);
Writeln('So nho nhat trong ba so la: ',Min(Min(a,b), c));
readln END.
Biến toàn cục
Tham số
Thân chương trình
hàm Câu lệnh trả ra Giá trị của hàm
Trang 5Bài 18 – tiết 2
2 Cách vi t và s d ng hàm ế ử ụ
b Bài toán ví d : ụ
VD2:Viết chương trình tính tổng n số tự nhiên đầu tiên Với n nhập vào từ
bàn phím
program Tinhtong;
uses crt;
var n:integer;
function tong (n:integer):longint;
var i:byte; s:longint;
begin s:=0;
for i:=1 to n do s:=s+i;
tong:=s;
end;
begin clrscr;
writeln('Nhap vao so n cho truoc');
readln(n);
writeln('Tong cua n so nguyen dau la:',tong(n));
readln end
Biến toàn cục
Tham số Biến cụ bộ
Câu lệnh trả ra giá trị cho hàm.
Trang 6Bài 18 – tiết 2
2 Cách vi t và s d ng hàm ế ử ụ
b Bài toán ví d : ụ
VD3:Viết chương trình tính giai thừa của một số n nhập vào từ bàn phím? Biến toàn cục
Tham số Biến cục bộ
Câu lệnh trả ra giá trị cho hàm.
program Tinh_giaithua;
uses crt;
var n:integer;
function giaithua (n:integer):longint;
var i:byte;
s:longint;
begin s:=1;
for i:=1 to n do s:=s*i;
giaithua:=s;
end;
begin clrscr;
writeln('Nhap vao so n cho truoc');
readln(n);
writeln('Tong cua n so nguyen dau la:',giaithua(n));
readln end
Trang 7H·y nhí!
Function <tên hàm>[(<danh sách tham số>)]:<kiểu dữ liệu>;
[<Khai báo biến hoặc hằng>] ;
Begin
{Các câu lệnh của hàm}
{Trong đó bắt buộc phải có câu lệnh trả ra giá trị cho hàm}
<tên hàm>:=<biểu thức>;
End ;