II, Khai báo và xây dựng hàm
4. Các vấn đề ở tham số
- Biến toàn cục và biến cục bộ
Biến toàn cục là biến nhớ được khai báo ở ngoài mọi hàm(thường được khai báo ở trên cùng sau khai báo thư viện), có tác dụng đến toàn bộ chương trình cả chương trình chính và chương trình con.
Biến cục bộ là biến nhớ được khai báo bên trong một chương trình con, chỉ có tác dụng ở trong chương trình con đó. Bên ngoài chương trình con đó thì biến đó không được sử dụng nữa.
Ví du: #include<stdio.h> #include<conio.h> int a,b; int sum() { int c = a + b; return c; } int tich() { int c ; c =a*b; return c; } void main() { clrscr();
printf(“nhap vao so a = ”); scanf(“%d”,&a); printf(“nhap vao so b = ”);scanf(“%d”,&b); printf(“\n tong hai so: %d”,sum());
printf(“\n tich hai so la: %d”,tich()); getch();
}
Trong ví dụ trên hai biến a và b là biến toàn cục được sử dụng trong cả 3 hàm sum, max và main. Trong hàm sum và max đều có biến cục bộ là c
nhưng biến c trong hàm sum sẽ độc lập và riêng biệt so với c trong hàm max.
- Tham số hình thức và tham số thực
Tham số hình thức là tham số được khai báo khi xây dựng hàm, nó mang ý nghĩa hình thức để nhận dữ liệu đầu vào cho một hàm. Tham số thực là tham số được xác định khi chúng ta gọi hàm, đó là các dữ liệu được truyền vào cho hàm thực hiện tính toán.
Ví dụ:
int sum(int a, int b) { return (a+b); } void main() { int x = 5;
printf(“tong hai so la:”, sum(5,x*2-1)); }
Trong ví dụ trên tham số a và b trong khai báo hàm sum là tham số hình thức, còn lời gọi hàm sum(5,x*2-1) thì 5 và x*2-1 là tham số thực, đó là các hằng số và biểu thức.
Bài tập:
Viết chương trình con tìm Max, Min 3 sô nguyên, chương trình chính nhập vào 3 số nguyên, hiện số lớn nhất và nhỏ nhất ra màn hình.
#include<conio.h> #include<stdio.h> int max(int a,int b,int c) { int max=a;
if(max<b)max=b; if(max<c)max=c; return max; }
int min(int a, int b, int c) {
int min=a;
if(min>b)min=b; if(min>c)min=c; return min;
}
void main() {
int a,b,c; clrscr();
printf("\nnhap vao 3 so nguyen:");
printf("\nso thu nhat: ");scanf("%d",&a); printf("\nso thu hai: ");scanf("%d",&b); printf("\nso thu ba : ");scanf("%d",&c); printf("\n so lon nhat la: %d",max(a,b,c)); printf("\n so nho nhat la: %d",min(a,b,c)); getch() ;
Bài 5: KIỂU DỮ LIỆU MẢNG VÀ LIỆT KÊ I, Khai báo kiểu mảng