Kỹ thuật lập trình - Hàm trong C potx - Pdf 16

Chương 3
Hàm (Function)
Lập trình đơn thể

M

i module có d

li

u riêng
độ
c l

p v

i module khác
Main Program(Also a module)
Data
Module
1
+
Data Data
1
Procedure
1
Module
2
+
Data Data
2

/* các khai báo cục bộ */
/* các câu lệnh */
[return <Exp>;] /* có thể có hoặc không*/
}
Cú pháp của hàm (tt)

Ví d

1:
void chao()
{
printf(“\nxin chao”);
}

Ví d

2:
int tong(int n)
{
int i,t=0;
for(i=1;i<=n;++i)t=t+i;
return t;
}
Cú pháp của hàm (tt)
 Ví dụ 3:
int ucln(int x, int y)
{
while(x*y)
if(x>y)x=x%y;
else y=y%x;

cho tham số hình thức
6 8
a b
6 8
x y
kq
Các bước thực hiện lời gọi hàm (tt)
 B4: Thực hiện các câu lệnh trong thân
hàm.
6 8
a b
0 2
x y
kq
Các bước thực hiện lời gọi hàm (tt)
 B5: Trả lại kết quả bởi lệnh return.
6 8
a b
0 2
x y
kq
2
Các bước thực hiện lời gọi hàm (tt)
 B6: Giải phóng các
vùng nhớ đã cấp phát
ở B2, lấy địa chỉ đã
lưu ở B1 thực hiện
tiếp chương trình.
6 8
a b

ế
n bình th
ườ
ng.

Dùng d

ng khai báo *<tên_ct>, cho k
ế
t qu

là d

li

u
mà con tr
ỏ đang
“tr

” t

i.

Có th

dùng các phép toán
đố
i v


phải là một con trỏ).
Truyền địa chỉ

Ví dụ:
void hoan_vi(int *x, int *y)
{
int t=*x;
*x=*y;
*y=t;
}
Giả sử int a,b là các biến toàn cục và a=5; b=7;
Xét lời gọi hàm: hoan_vi(&a,&b); khi đó:
Truyền địa chỉ (tt)
8 6
a b
&a &b
x y
6
t
6 8
a b
x y t
Hàm đệ quy
 Đối tượng đệ quy: là đối tượng được xây
dựng thông qua chính nó. (đối tượng có
thể là: bài toán, hàm, kiểu dữ liệu )
 Ví dụ: xét bài toán P(n) = 1+2+ +n. Bài
toán này có lời giải (đệ quy như sau):



int F(int n)
{
if(n==1||n==2) return 1;
else return F(n-1)+F(n-2);
}
Phân tích hàm đệ quy

Xét lời gọi hàm
t=F(4);

Số hàm được gọi
chính là số nút trên
cây.

Do đó với kích thước
tham số lớn hàm đệ
quy tiêu tốn nhiều
thời gian và bộ nhớ.
t=F(4)
F(3) F(2)
F(2)
F(1)
+
||
1
||
1
||
1
+


Nhờ tải bản gốc

Tài liệu, ebook tham khảo khác

Music ♫

Copyright: Tài liệu đại học © DMCA.com Protection Status