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 đủ
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:
bai_giang_nhap_mon_lap_trinh_chuong_4_ham_ky_thuat_to_chuc_c.pdf

