Tải bản đầy đủ (.pdf) (11 trang)

Bài giảng Nhập môn lập trình: Hàm và kỹ thuật tổ chức chương trình - Nguyễn Sơn Hoàng Quốc

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (804.71 KB, 11 trang )

Nhập môn lập trình
Trình bày: Nguyễn Sơn Hoàng Quốc
Email:

CuuDuongThanCong.com

/>

Tiếp cận top-down
Chương
trình

Nhập
dữ liệu

Xử lý

Xử lý 1

Xử lý 2

Xuất
kết quả

Tiếp cận top-down
trong lập trình cấu trúc

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.
2

CuuDuongThanCong.com

/>

Đặc điểm
• 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ề kết quả 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ả

3
CuuDuongThanCong.com


/>

Nguyên mẫu hàm
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 ;
4
CuuDuongThanCong.com

/>

Định nghĩa hàm
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)
5
CuuDuongThanCong.com

/>

Phân biệt một cách tương đối

• 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, …
6
CuuDuongThanCong.com

/>

Ví dụ về hàm có sẵn
1. void main()
Đối số
2. {
3.

double a = 7, b = 5;
4.
double z = 9;
5.
printf("a = %d\n", a);
6.
printf("b = ");
7.
scanf("%lf", &b);
8.
z = pow(b, a);
9. }
Biến nhận giá trị
trả về của hàm
7
CuuDuongThanCong.com

/>

Ví dụ về hàm tự viết thêm
3

• Hàm tính 𝑥 (𝑥 ∈ ℝ) chưa có trong
thư viện math.h
𝑥 → hàm 𝑠𝑞𝑟𝑡(3) →

3

𝑥


• Lưu ý:
3

0
𝑝𝑜𝑤(𝑥, 1.0 3)
𝑥=
−𝑝𝑜𝑤(−𝑥, 1.0 3)

𝑛ế𝑢 𝑥 = 0
𝑛ế𝑢 𝑥 > 0
𝑛ế𝑢 𝑥 < 0

• Khai báo hàm: double sqrt3(double x);
8
CuuDuongThanCong.com

/>

Định nghĩa hàm sqrt3()
1. double sqrt3(double x)
2. {
3.
double y = 0;
// temporary variable
4.
5.
if (x > 0)
6.
y = pow(x, 1/(double)3);
7.

else
8.
if (x < 0)
9.
y = -pow(-x, 1/(double)3);
10.
11. return y;
// returns result
12.} // end of function
9
CuuDuongThanCong.com

/>

Ví dụ minh họa
• Viết hàm tìm giá trị lớn nhất của hai số
nguyên 𝑎 và 𝑏.

10
CuuDuongThanCong.com

/>

Ví dụ minh họa
1. int LonNhat(int a, int b)
2. {
3. int max = a;

4.
5.


if (b > a)
max = b;

6. return max;
7. }`
11
CuuDuongThanCong.com

/>


×