Bài giảng Nhập môn về lập trình - Chương 6: Hàm (Function) (Mới)

Chương 6  
Ham (Function)  
̀
Presenter:  
Slide 1  
Nhập môn về lập trình (C6)  
Learning outcomes  
L.O.4.1 – Xá c định được thành phần của một hàm.  
L.O.4.2 – Hiện thực được giải thuật dưới dạng hàm.  
L.O.4.3 – Giải thí ch được cá c kiểu truyền tham số trong C.  
L.O.4.4 – Tổ chức được cá c chương trì nh lớn, gồm nhiều  
hàm.  
L.O.3.5 – Hiện thực được cá c giải thuật đệ quy bằng ngô n  
ngữ C và hiểu được nguyên tắc hoạt động của nó .  
Slide 2  
Nhập môn về lập trình (C6)  
Tổ chứ c chương trình C  
Cấu trúc module  
❖ Tiền xꢀ lꢁ:  
• #include  
Mô tꢃ module  
#<Tiꢀn xꢁ lꢂ>  
• #define  
❖ Khai bꢂo / định nghꢃa:  
• Hằng  
Khai bꢄo / đꢅnh nghꢆa  
Hꢇm 1  
• Biꢄn  
• Hꢅm/biꢄn extern  
• Mô tả hꢅm  
❖ Cꢂc hꢅm:  
Hꢇm 2  
• main được chạy đầu tiên.  
• Định nghꢃa ngang cꢆp,  
không lồng nhau.  
Hꢇm 3  
• Được gꢇi mới chạy.  
Slide 3  
Nhập môn về lập trình (C6)  
Hàm là gì ?  
❖ Hꢅm lꢅ phương tiện phân chia code của module ra nhiều  
đơn vị nhỏ hơn để dễ quản lꢁ vꢅ sꢀa chữa.  
❖ Một dꢈ ꢄn/giꢃi phꢄp/chương trꢉnh = tập hợp N module  
❖ Một Module = tập hợp N hꢇm  
Slide 4  
Nhập môn về lập trình (C6)  
Hàm là gì ?  
❖ Hàm (function) tꢂch ứng dụng thꢅnh từng đơn vị độc lập  
❖ Câu lệnh trong thân hꢅm  
• được viꢄt một lần  
• dùng được nhiều nơi trong ứng dụng  
• che giꢆu đối với cꢂc hꢅm khꢂc  
❖ Kinh nghiệm:  
• Một phương thức thực hiện một tꢂc vụ  
• Tên phương thức cần thể hiện tꢂc vụ đó  
Slide 5  
Nhập môn về lập trình (C6)  
Hàm là gì ?  
❖ Phải chia thꢅnh từng bꢅi toꢂn nhỏ vꢅ đơn giản hơn  
• Kỹ thuật chia để trị (divide-and-conquer)  
❖ Hoặc tꢂi sꢀ dụng cꢂc phương thức sẵn có (đã viꢄt) vꢅo  
ứng dụng mới  
• Tái sử dụng phần mềm (reusability)  
❖ Trꢂnh việc viꢄt một cùng đoạn mã hai lần  
❖ Dễ sꢀa lỗi vꢅ bổ sung tính năng về sau  
Slide 6  
Nhập môn về lập trình (C6)  
Hàm là gì ?  
❖ Khối lệnh: tập hợp của cꢂc lệnh  
❖ VD 1:  
if (delta > 0) {  
x1 = (-b + sqrt(delta))/(2*a);  
x2 = (-b - sqrt(delta))/(2*a);  
}
❖ VD 2:  
for (int i = 0; i < 10; i++)  
{
temp = i*i;  
sum += temp;  
}
Slide 7  
Nhập môn về lập trình (C6)  
Hàm là gì ?  
❖ Hꢅm cũng lꢅ tập hợp của những câu lệnh, nhưng  
• Có tên  
• Có tham số  
• Có giꢂ trị trả về  
❖ VD  
float  
{
average(float a, float b)  
float val;  
val = (a + b) /2;  
return val;  
}
Slide 8  
Nhập môn về lập trình (C6)  
Hàm là gì ?  
void main()  
{
float x1, x2, x3, x4;  
printf("Input x1, x2, x3, x4: ");  
scanf("%f %f %f %f", &x1, &x2, &x3, &x4);  
printf("Average of x1, x2: %f\n", (x1+x2)/2);  
printf("Average of x3, x4: %f\n", (x3+x4)/2);  
}
Slide 9  
Nhập môn về lập trình (C6)  
Hàm là gì ?  
float average(float a, float b){  
float val;  
val = (a + b) /2;  
return val;  
}
void main() {  
float x1, x2, x3, x4, ave1, ave2;  
printf("Input x1, x2, x3, x4: ");  
scanf("%f %f %f %f", &x1, &x2, &x3, &x4);  
ave1 = average(x1, x2);  
ave2 = average(x3, x4);  
printf("Average of x1, x2: %f\n", ave1);  
printf("Average of x3, x4: %f\n", ave2);  
}
Slide 10  
Nhập môn về lập trình (C6)  
Hàm là gì ?  
float average(float a, float b){  
float val;  
val = (a + b) /2;  
return val;  
}
void main() {  
float x1, x2, x3, x4;  
printf("Input x1, x2, x3, x4: ");  
scanf("%f %f %f %f", &x1, &x2, &x3, &x4);  
printf("Average of x1, x2: %f\n", average(x1, x2));  
printf("Average of x3, x4: %f\n", average(x3, x4));  
}
Slide 11  
Nhập môn về lập trình (C6)  
Ca  
́
́
̀
cu  
̉
̀
Khai bꢄo hꢇm  
❖ extern  
❖ Mô tả trước  
Hꢇm  
Đꢅnh nghꢆa hꢇm  
❖ Định nghꢃa biꢄn  
❖ Lệnh thực thi  
Gꢊi hꢇm  
❖ Trực tiꢄp  
❖ Giꢂn tiꢄp  
Truyꢀn tham sꢋ hꢇm  
❖ Trị  
❖ Tham khảo  
Slide 12  
Nhập môn về lập trình (C6)  
Các vấn đề của hàm  
❖ Hꢅm gồm 4 phần:  
• Kiểu của giá trị trả về  
• Tên hàm  
• Tham số.  
• Thân hàm: các câu lệnh nằm trong cặp dấu { }.  
◼ Ví dụ :  
int FindMax (int x, int y) {  
Ưu điểm:  
-Kỹ thuật chia để trị (divide-and-  
conquer)  
-Tái sử dụng phần mềm  
(reusability)  
-Trꢂnh việc viꢄt một cùng đoạn mã hai  
lần  
int maximum;  
if ( x > = y)  
maximum = x;  
else  
maximum = y;  
return maximum;  
-Dễ sꢀa lỗi vꢅ bổ sung tính năng về sau  
Slide 13  
Nhập môn về lập trình (C6)  
}
Các vấn đề của hàm  
❖ <returnType> FunctionName (<parameter1, parameter2,  
..., parameterX>)  
{
...  
}
i1  
i2  
o
…………….  
Slide 14  
Nhập môn về lập trình (C6)  
Gọi hàm  
int FindMax (int x, int y) {  
int maximum;  
if ( x >= y) maximum = x;  
else  
maximum = y;  
return maximum;  
}
void main(){  
int m1 = FindMax(50, 100);  
int m2, a = 14, b = 20;  
m2 = FindMax(a, b);  
printf("m1 = %d; m2 = %d", m1, m2);  
}
Slide 15  
Nhập môn về lập trình (C6)  
Gọi hàm  
void giaiptbac2(float a, float b, float c){  
float delta = b*b - 4*a*c, x1, x2;  
if(delta == 0) {  
x1 = -b/(2*a);  
x2 = -b/(2*a);  
printf("Phuong trinh co nghiem kep x = %f\n", x1);  
}
else if(delta > 0){  
x1 = (-b + sqrt(delta))/(2*a);  
x2 = (-b - sqrt(delta))/(2*a);  
printf("Phuong trinh co 2 nghiem x1 = %f, x2 = %f\n", x1, x2);  
}
else  
printf("Phuong trinh vo nghiem\n");  
}
Slide 16  
Nhập môn về lập trình (C6)  
Gọi hàm  
void main()  
{
giaiptbac2(5, -11, 6);  
float  
fltA = 7, fltB = -13, fltC = 6;  
giaiptbac2(fltA, fltB, fltC);  
}
Slide 17  
Nhập môn về lập trình (C6)  
Khai báo hàm  
❖ Nꢄu định nghꢃa hꢅm xuꢆt hiện trước lời gꢇi hꢅm thì không  
cần khai bꢂo.  
❖ Nꢄu định nghꢃa hꢅm xuꢆt hiện sau lời gꢇi hꢅm thì cần  
phải khai bꢂo (tùy từng môi trường lập trình)  
Slide 18  
Nhập môn về lập trình (C6)  
Khai báo hàm  
int maximum( int x, int y, int z) {  
int max = x;  
Lưu ꢂ:Có sự tương  
ứng 1-1 giữa tham số  
hình thức vꢅ tham số  
thực  
if ( y > max ) max = y;  
if ( z > max ) max = z;  
return max;  
}
void main() {  
int a, b, c;  
printf( "Enter three integers: ");  
scanf("%d %d %d", &a, &b, &c);  
printf( "Maximum is: %d\n", maximum (a, b, c));  
}
Slide 19  
Nhập môn về lập trình (C6)  
Khai báo hàm  
int maximum( int x, int y, int z);  
void main() {  
int a, b, c;  
printf( "Enter three integers: ");  
scanf("%d %d %d", &a, &b, &c);  
printf( "Maximum is: %d\n", maximum (a, b, c));  
}
int maximum( int x, int y, int z) {  
int max = x;  
if ( y > max ) max = y;  
if ( z > max ) max = z;  
return max;  
}
Slide 20  
Nhập môn về lập trình (C6)  
Tải về để xem bản đầy đủ
ppt 45 trang myanh 23660 Free
Bạn đang xem 20 trang mẫu của tài liệu "Bài giảng Nhập môn về lập trình - Chương 6: Hàm (Function) (Mới)", để 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:

  • pptbai_giang_nhap_mon_ve_lap_trinh_chuong_6_ham_function_moi.ppt