Bài giảng Tin học cơ sở 2 - Chương 3: Hàm và chương trình - Nguyễn Ngọc Duy

Chương 3  
HÀM VÀ CHƯƠNG TRÌNH  
1
Nội dung  
1. Hàm và tổ chức chương trình  
2. Tham số cho chương trình con  
3. Truyền dữ liệu sang hàm qua đối số.  
4. Hàm với biến tham chiếu.  
5. Biến cục bộ và biến toàn cục.  
6. Hàm đệ quy.  
7. Hàm với con trỏ.  
8. Con trỏ hàm.  
9. Một số bài toán đệ quy phổ biến  
2
Hàm và tổ chức chương trình  
Khái niệm  
Hàm là một khối lệnh thực hiện một công  
việc hoàn chỉnh (module), được đặt tên và  
được gọi thực thi nhiều lần tại nhiều vị trí  
trong chương trình.  
Hàm còn gọi là chương trình con (subroutine)  
Hàm và tổ chức chương trình  
Khái niệm (tt):  
Hàm có thể được gọi từ chương trình chính  
(hàm main) hoặc từ 1 hàm khác.  
Hàm có giá trị trả về hoặc không. Nếu hàm  
không có giá trị trả về gọi là thủ tục  
(procedure)  
Khái niệm và khai báo hàm  
Khái niệm (tt)  
Có hai lọai hàm:  
– Hàm thư viện: là những hàm đã được xây  
dựng sẵn. Muốn sử dụng các hàm thư viện  
phải khai báo thư viện chứa nó trong phần  
khai báo #include.  
– Hàm do người dùng định nghĩa.  
Khái niệm và khai báo hàm  
• Dạng tổng quát của hàm do người dùng định  
nghĩa:  
returnType functionName(parameterList)  
{
//Thân hàm  
}
Khái niệm và khai báo hàm  
Khái niệm và khai báo hàm  
SAI  
Khái niệm và khai báo hàm  
Một hàm khi đã định nghĩa nhưng chúng vẫn  
chưa được thực thi, hàm chỉ được thực thi khi  
trong chương trình có một lời gọi đến hàm đó.  
Cú pháp gọi hàm:  
<Tên hàm>([Danh sách các tham số])  
Khái niệm và khai báo hàm  
int uscln(int a, int b)  
void main()  
{
{
a=abs(a);  
int a, b, USC;  
cout<<“Nhap a,b: ”;  
cin>>a>>b;  
USC = uscln(a,b);  
cout<<“Uoc chung  
lon nhat la: ”<<USC;  
b=abs(b);  
while(a!=b)  
{
if(a>b) a-=b;  
else b-=a;  
}
return a;  
}
}
Truyền dữ liệu sang hàm qua  
đối số  
Tham số hình thức: Khi hàm cần nhận đối số  
(arguments) để thực thi thì khi khai báo hàm  
cần khai báo danh sách các đối số để nhận giá  
trị từ chương trình gọi. Các tham số này được  
gọi là.  
Ví dụ:  
int min(int a, int b)  
{
if(a<b)  
return a;  
else  
return b;  
}
Truyền dữ liệu sang hàm qua  
đối số  
• Khi gọi hàm, ta cung cấp các giá trị thật, các  
giá trị này sẽ được sao chép vào các tham số  
hình thức và các giá trị thật được gọi là tham  
số thực.  
Ví dụ: Để tìm giá trị nhỏ nhất của 2 số 5 và 6 ta  
gọi hàm min(5, 6)  
Truyền dữ liệu sang hàm qua  
đối số  
Có hai cách truyền đối số vào tham số hình  
thức:  
– Truyền tham trị:  
Sau khi thoát khỏi hàm nó vẫn giữ giá trị gốc  
– Truyền tham biến:  
Sau khi thoát khỏi hàm, nó sẽ lấy giá trị bị  
thay đổi trong hàm  
Truyền dữ liệu sang hàm qua  
đối số  
Truyền tham trị (call by value)  
– Sao chép giá trị của đối số vào tham số hình  
thức của hàm.  
– Những thay đổi của tham số không ảnh  
hưởng đến giá trị của đối số.  
Truyền dữ liệu sang hàm qua  
đối số  
Ví dụ:  
void main()  
void hamVidu(int a)  
{
{
int a=40;  
a = a*2;  
hamVidu (a);  
cout << “gia tri cua a  
trong hamVidu:“<< a;  
cout << “\n Gia tri cua a  
trong ham main: ”;  
}
cout << “a = ” << a <<  
endl;  
}
Gia tri cua a trong ham hamVidu: 80  
Gia tri cua a trong ham main: 40  
Hàm với biến tham chiếu  
• Truyền tham chiếu (call by reference)  
– Sao chép địa chỉ của đối số vào tham số hình  
thức. Do đó, những thay đổi đối với tham số  
sẽ có tác dụng trên đối số.  
Ví dụ: Khi gọi hàm hamVidu (&a);  
Địa chỉ của a truyền vào cho tham số hình  
thức của hàm: hamVidu (int &b)  
Hàm với biến tham chiếu  
void hamgido ( int &b)  
void main()  
{
{
b*= 2;  
int a=40;  
hamgido (a);  
cout << “Trong hàm  
double a = “ << b;  
cout << “\Trong ham  
}
main : a = “ << a ;  
}
Trong hàm hamVidu a = 80  
Trong hàm main a = 80  
Hàm với biến tham chiếu  
Gọi hàm truyền tham trị  
Gọi hàm truyền tham biến  
Prototype (nguyên mẫu) của hàm  
Chương trình bắt buộc phải có prototype của  
hàm hoặc phải bắt buộc viết định nghĩa của hàm  
trước khi gọi.  
Sau khi đã sử dụng prototype của hàm, ta có thể  
viết định nghĩa chi tiết hàm ở bất kỳ vị trí nào  
trong chương trình.  
Prototype (nguyên mẫu) của hàm  
#include <iostream.h>// Khai báo thư viện iostream.h  
int max(int x, int y);// khai báo nguyên mẫu hàm max  
void main()//hàm main (sẽ gọi các hàm thực hiện)  
{
int a, b;// khai báo biến  
cout<<" Nhap vao 2 so a, b ";  
cin>>a>>b;  
cout<<”so lon nhat la:”<< max(a,b);  
}
int max(int x, int y)// Định nghĩa hàm max(a,b)  
{
return (x>y) ? x:y;  
}
Tải về để xem bản đầy đủ
pdf 76 trang yennguyen 16800 Free
Bạn đang xem 20 trang mẫu của tài liệu "Bài giảng Tin học cơ sở 2 - Chương 3: Hàm và chương trình - Nguyễn Ngọc Duy", để tải tài liệu gốc về máy hãy click vào nút Download ở trên

File đính kèm:

  • pdfbai_giang_tin_hoc_co_so_2_chuong_3_ham_va_chuong_trinh_nguye.pdf