Bài giảng Nhập môn lập trình - Chương 4: Hàm & kỹ thuật tổ chức chương trình - Phạm Minh Tuấn

Nhập môn lập trình  
Trình bày: …; Email: …@fit.hcmus.edu.vn  
Giới thiệu  
Truyền tham số cho hàm  
Biến toàn cục và biến cục bộ  
Các ví dụ về ứng dụng hàm trong lập trình  
Hàm trong chương trình nhiều tập tin  
mã nguồn  
Các vấn đề tìm hiểu mở rộng kiến thức  
nghề nghiệp  
Thuật ngữ và bài đọc thêm tiếng Anh  
11/10/2012  
Khoa CNTT - ĐH Khoa học tự nhiên  
2
Chương  
trình  
Chương trình lớn  
được chia thành các  
chương trình con  
nhỏ hơn nhằm dễ  
dàng phân chia và  
kiểm tra công việc  
hay sử dụng lại  
những bộ phận đã  
hoàn tất.  
Nhập  
dữ liệu  
Xuất  
kết quả  
Xử lý  
Xử lý 1  
Xử lý 2  
Tiếp cận top-down  
trong lập trình cấu trúc  
11/10/2012  
Khoa CNTT - ĐH Khoa học tự nhiên  
4
• Hàm có các đặc điểm sau:  
– Có một tên duy nhất.  
– Là một thành phần độc lập.  
– Thực hiện một công việc cụ thể.  
– Có thể nhận các đối số.  
– Có thể trả về giá trị cho chương trình gọi nó.  
Hàm  
Các đối tượng  
có sẵn (đối số)  
Thực hiện  
một công việc  
cụ thể nào đó  
Các kết quả  
11/10/2012  
Khoa CNTT - ĐH Khoa học tự nhiên  
5
return-type function_name(param-type param_name,  
…, param-type param_name);  
• Trong đó:  
– return-type: kiểu của giá trị hàm sẽ trả về, nếu không  
trả về gì cả thì kiểu trả về sẽ là void.  
– function_name: tên của hàm, thể hiện công việc hàm  
sẽ làm, nên bắt đầu bằng một động từ.  
– param-name, param-type: tên và kiểu tương ứng của  
tham số hình thức (formal parameter).  
– Được kết thúc bằng dấu chấm phẩy ;  
11/10/2012  
Khoa CNTT - ĐH Khoa học tự nhiên  
6
return-type function_name(param-type param_name,  
…, param-type param_name)  
{
// statements here…  
}
• Trong đó:  
– Dòng đầu là tiêu đề hàm (giống nguyên mẫu hàm  
nhưng không có ; và bắt buộc phải có tên tham số).  
– Tiếp theo là thân hàm (đặt trong {}) chứa các câu  
lệnh hàm sẽ thực hiện (phải có ít nhất một lệnh  
return nếu kiểu trả về không phải là void)  
11/10/2012  
Khoa CNTT - ĐH Khoa học tự nhiên  
7
• Hàm có sẵn (trong ngôn ngữ hoặc do một  
hãng phần mềm viết để bán hoặc cho) như:  
– Hàm xuất, nhập thông tin: printf(), scanf(), …  
– Hàm toán học: sqrt(), pow(), abs(), sin(), …  
• Hàm do người lập trình viết thêm như:  
– Hàm xuất, nhập thông tin: Nhập số dương, ...  
– Hàm toán học: Tính căn bậc 3, tính căn bậc n,  
tính giai thừa, giải phương trình bậc 1, bậc 2,  
bậc 4 đối xứng, …  
11/10/2012  
Khoa CNTT - ĐH Khoa học tự nhiên  
8
void main()  
{
Đối số  
int a = 7
float z =
printf(“a
printf(“b = ”);  
scanf(“%d”, &b);  
z = (float)pow((double)b, (double)a);  
}
Biến nhận giá trị  
trả về của hàm  
11/10/2012  
Khoa CNTT - ĐH Khoa học tự nhiên  
9
11/10/2012  
Khoa CNTT - ĐH Khoa học tự nhiên  
10  
double sqrt3(double x) {  
double y = 0;  
// temporary variable  
if (x > 0)  
y = pow(x, 1/(double)3);  
else  
if (x < 0)  
y = -pow(-x, 1/(double)3);  
// returns result  
return y;  
} // end of function  
11/10/2012  
Khoa CNTT - ĐH Khoa học tự nhiên  
11  
11/10/2012  
Khoa CNTT - ĐH Khoa học tự nhiên  
12  
// Function name : sqrtN  
// Description  
// Parameter  
// Return type  
// 0  
: calculates n-th root of x  
: double x  
: double  
if n < 0  
// 1  
if n = 0  
// x^(1/n) if n odd  
// x^(1/n) if n even and x >= 0  
// 0  
if n even and x < 0  
double sqrtN(double x);  
11/10/2012  
Khoa CNTT - ĐH Khoa học tự nhiên  
13  
double sqrtN(double x)  
{
double y = 0;  
if (n <= 0 || (n % 2 ==0 && x < 0))  
return 0;  
if (n % 2 != 0)  
{
if (x > 0)  
y = pow(x, 1.0/n);  
11/10/2012  
Khoa CNTT - ĐH Khoa học tự nhiên  
14  
else // n odd and x <= 0  
if (x < 0)  
y = -pow(-x, 1.0/n);  
}
else // n even and x > 0  
y = pow(x, 1.0/n);  
return y;  
}
11/10/2012  
Khoa CNTT - ĐH Khoa học tự nhiên  
15  
• Các câu lệnh bên trong hàm chỉ được thực  
thi khi hàm được gọi từ một phần khác  
của chương trình.  
• Khi gọi hàm, chương trình có thể truyền đến  
hàm thông tin dưới dạng một hay nhiều đối số.  
main() {  
call f1  
1() {  
call f2  
() {  
}
}
11/10/2012  
Khoa CNTT - ĐH Khoa học tự nhiên  
17  
• Đối số (argument) hay tham số thực  
(actual parameter) là dữ liệu của chương  
trình truyền đến hàm có kiểu dữ liệu ứng  
với tham số hình thức được khai báo trong  
nguyên mẫu hàm. Dữ liệu này thường  
được hàm sử dụng để thực hiện công việc  
của nó.  
Đối số  
2, 3, x  
int SolveEq1(double a, double b, double &x);  
11/10/2012  
Khoa CNTT - ĐH Khoa học tự nhiên  
18  
• Có hai cách truyền đối số  
– Truyền bằng giá trị (pass by value)  
• Đối số không đổi do hàm tạo bản sao của đối số khi nhận.  
• Thông thường là dữ liệu có sẵn.  
• Tham số hình thức tương ứng được gọi là tham trị.  
– Truyền bằng tham chiếu (pass by reference): C++  
• Đối số có thể thay đổi khi gọi hàm.  
• Thông thường là dữ liệu cần tính toán, xác định.  
• Tham số hình thức tương ứng được gọi là tham  
chiếu hay tham biến.  
11/10/2012  
Khoa CNTT - ĐH Khoa học tự nhiên  
19  
int Inc(int x);  
void main() {  
int a = 9, b
b = Inc(a); ue  
prin= %d, b = %d\n”, a, b);  
}
int x = 9;  
int Inc(int x) {  
x++;  
return x;  
}
11/10/2012  
Khoa CNTT - ĐH Khoa học tự nhiên  
20  
Tải về để xem bản đầy đủ
pdf 86 trang baolam 19320 Free
Bạn đang xem 20 trang mẫu của tài liệu "Bài giảng Nhập môn lập trình - Chương 4: Hàm & kỹ thuật tổ chức chương trình - Phạm Minh Tuấn", để 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_nhap_mon_lap_trinh_chuong_4_ham_ky_thuat_to_chuc_c.pdf