Kỹ thuật lập trình<br />
Bài 2 – Chương trình con và đệ quy<br />
Ngô Hữu Dũng<br />
<br />
31<br />
<br />
Kỹ thuật lập trình | DHTH11C | HK1 | 2016-2017<br />
<br />
Ngô Hữu Dũng<br />
<br />
Chương trình con<br />
1.<br />
2.<br />
3.<br />
4.<br />
5.<br />
6.<br />
7.<br />
8.<br />
9.<br />
10.<br />
11.<br />
12.<br />
13.<br />
32<br />
<br />
#include <br />
int cong(int,int);<br />
// Khai báo prototype<br />
void main()<br />
{<br />
Input<br />
int a = 5, b, c;<br />
b = cong(a, 3);<br />
c = cong(3,cong(a,b));<br />
printf("Tong la %d",cong(b,c));<br />
FUNCTION<br />
}<br />
int cong(int x, int y)<br />
// Hàm chi tiết<br />
{<br />
Output<br />
return x + y;<br />
}<br />
Kỹ thuật lập trình | DHTH11C | HK1 | 2016-2017<br />
<br />
Ngô Hữu Dũng<br />
<br />
Thành phần<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
Main()<br />
<br />
Kiểu trả về của hàm<br />
Tên hàm<br />
Tham số<br />
<br />
Function1()<br />
<br />
Tham biến<br />
Tham trị<br />
<br />
Lệnh return trả về giá trị cho hàm<br />
Khai báo prototype<br />
Gọi hàm<br />
Phạm vi của biến<br />
<br />
Return-type function-name(argument declarations)<br />
{<br />
declarations and statements<br />
}<br />
33<br />
<br />
Kỹ thuật lập trình | DHTH11C | HK1 | 2016-2017<br />
<br />
Function2()<br />
<br />
Function4()<br />
<br />
Ngô Hữu Dũng<br />
<br />
Function3()<br />
<br />
Kiểu trả về của hàm<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
1.<br />
<br />
Hàm có thể trả về một giá trị<br />
<br />
2.<br />
<br />
int<br />
float<br />
char<br />
…<br />
<br />
3.<br />
4.<br />
1.<br />
<br />
void: Không trả về giá trị<br />
<br />
2.<br />
3.<br />
<br />
<br />
<br />
Khi kết thúc, hàm sẽ mang một giá<br />
trị trừ trường hợp hàm mang kiểu<br />
void.<br />
<br />
4.<br />
1.<br />
2.<br />
3.<br />
4.<br />
<br />
34<br />
<br />
int cong(int x, int y)<br />
{<br />
return x + y;<br />
}<br />
float nhan(int x, int y)<br />
{<br />
return x * y;<br />
}<br />
void in(char line[])<br />
{<br />
printf("%s",line);<br />
}<br />
<br />
Kỹ thuật lập trình | DHTH11C | HK1 | 2016-2017<br />
<br />
Ngô Hữu Dũng<br />
<br />
Tên hàm và tham số<br />
<br />
<br />
Tên hàm do người lập trình đặt<br />
<br />
1.<br />
<br />
Không được trùng với từ khóa<br />
Các ký tự liên tiếp nhau<br />
Gồm ký tự, số, dấu gạch chân<br />
Không gồm các ký tự đặc biệt<br />
Có nghĩa, dễ hiểu<br />
<br />
2.<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
3.<br />
4.<br />
1.<br />
2.<br />
<br />
Tham số (đối số)<br />
<br />
<br />
<br />
<br />
3.<br />
<br />
Một, nhiều hoặc không có tham số<br />
Mỗi tham số đều có kiểu dữ liệu<br />
Các tham số có thể được dùng như<br />
một biến cục bộ trong hàm.<br />
<br />
4.<br />
1.<br />
2.<br />
3.<br />
4.<br />
<br />
35<br />
<br />
int cong(int x, int y)<br />
{<br />
return x + y;<br />
}<br />
float nhan(int x, int y)<br />
{<br />
return x * y;<br />
}<br />
void in(char line[])<br />
{<br />
printf("%s",line);<br />
}<br />
<br />
Kỹ thuật lập trình | DHTH11C | HK1 | 2016-2017<br />
<br />
Ngô Hữu Dũng<br />
<br />