Bài giảng Ngôn ngữ lập trình: Hàm và Nạp chồng hàm cung cấp cho người học những kiến thức như: Khái niệm hàm; Khai báo hàm; Sử dụng hàm; Phạm vi của biến; Tham số và đối số, cách truyền tham số; Nạp chồng hàm. Mời các bạn cùng tham khảo!
Trang 1NGÔN NGỮ LẬP TRÌNH
Hàm và Nạp chồng hàm
fit.hnue.edu.vn/~dungntp/NNLT
Trang 3Khái niệm hàm
Trang 5Cách làm 1
1/9/2018 Nguyễn Thị Phương Dung - Khoa CNTT - ĐHSPHN 5
Kết quả
Trang 6Cách làm 2
1/9/2018 Nguyễn Thị Phương Dung - Khoa CNTT - ĐHSPHN 6
Kết quả
Trang 7Khái niệm hàm
Hàm là một phần của chương trình, dùng để
giải quyết một công việc được lặp đi lặp lại
nhiều lần trong chương trình
Hàm có thể có hoặc không có giá trị trả về
1/9/2018 Nguyễn Thị Phương Dung - Khoa CNTT - ĐHSPHN 7
Trang 9Một số hàm được định nghĩa trước
1/9/2018 Nguyễn Thị Phương Dung - Khoa CNTT - ĐHSPHN 9
Tên
hàm Mô tả Kiểu dữ liệu Kiểu trả về Ví dụ Kết quả Tên thư viện
sqrt Căn bậc hai double double sqrt(4.0) 2.0 cmath
pow Tính mũ double double pow(2.0,3.0) 8.0 cmath
abs Trị tuyệt đối của một số int int int abs(-7)
fabs Trị tuyệt đối của một
số double double double
fabs(-7.5) fabs(7.5)
7.5 7.5 cmath
Trang 10Một số hàm được định nghĩa trước
1/9/2018 Nguyễn Thị Phương Dung - Khoa CNTT - ĐHSPHN 10
Tên
hàm Mô tả Kiểu dữ liệu Kiểu trả về Ví dụ Kết quả Tên thư viện
ceil Làm tròn lên double double ceil(3.2)
ceil(3.9)
4.0 4.0 cmath
floor Làm tròn xuống double double floor(3.2)
floor(3.9)
3.0 3.0 cmath
exit Kết thúc chương
trình int void exit (1); Không cstdlib
rand Sinh số ngẫu nhiên Không int rand( ) Các số khác
nhau cstdlib
srand Thiết lập giá trị khởi
đầu cho hàm rand unsigned int void srand(42); Không cstdlib
Trang 11Khai báo hàm
Trang 12Khai báo hàm
Cách 1: Khai báo kết hợp định nghĩa hàm:
kieutrave tenham( kieudulieu ts1, kieudulieu ts2, )
Trang 13Khai báo hàm
• Cách 2
o Khai báo nguyên mẫu hàm trước
o Định nghĩa hàm sau
kieutrave tenham( kieudulieu ts1 , kieudulieu ts2 , ) ;
kieutrave tenham( kieudulieu , kieudulieu , ) ;
kieutrave tenham( kieudulieu ts1, kieudulieu ts2, )
Trang 14Khai báo hàm
Trong đó:
• kieutrave: kiểu dữ liệu trả về của hàm
• Hàm không có giá trị trả về thì kieutrave là void
• tenham: đặt theo quy tắc định danh
• kieudulieu: là kiểu dữ liệu của các tham số đầu vào
• Hàm không có tham số đầu vào thì viết: tenham()
• ts1, ts2: tên các tham số đầu vào, sử dụng trong hàm, đặt theo
quy tắc định danh
1/9/2018 Nguyễn Thị Phương Dung - Khoa CNTT - ĐHSPHN 14
Trang 15• Có thể trả về giá trị của cả biểu thức
• Có thể xuất hiện lênh return nhiều lần trong hàm
1/9/2018 Nguyễn Thị Phương Dung - Khoa CNTT - ĐHSPHN 15
Trang 16Cấu trúc chương trình khi viết hàm
1/9/2018 Nguyễn Thị Phương Dung - Khoa CNTT - ĐHSPHN 16
• Cách 1: khai
báo kết hợp
định nghĩa
hàm
Trang 17Cấu trúc chương trình khi viết hàm
1/9/2018 Nguyễn Thị Phương Dung - Khoa CNTT - ĐHSPHN 17
Trang 18Cấu trúc chương trình khi viết hàm
1/9/2018 Nguyễn Thị Phương Dung - Khoa CNTT - ĐHSPHN 18
Trang 19Cấu trúc chương trình khi viết hàm
1/9/2018 Nguyễn Thị Phương Dung - Khoa CNTT - ĐHSPHN 19
Chú ý: Khai báo nguyên mẫu hàm phải có dấu chấm phẩy
Trang 201/9/2018 Nguyễn Thị Phương Dung - Khoa CNTT - ĐHSPHN 20
Trang 22Sử dụng hàm
• Với hàm không có giá trị trả về ( void fx() )
o Không gọi trong lệnh xuất dữ liệu ra màn hình:
Trang 231/9/2018 Nguyễn Thị Phương Dung - Khoa CNTT - ĐHSPHN 23
Trang 24Phạm vi biến
• Biến cục bộ
o Là những biến được khai báo trong khối lệnh ({})
o Được sử dụng trong khối lệnh đó và các khối lệnh con
o Sẽ mất đi khi kết thúc khối lệnh đó
• Biến toàn cục
o Là biến được khai báo bên ngoài các khối lệnh
o Được sử dụng trong các khối lệnh
1/9/2018 Nguyễn Thị Phương Dung - Khoa CNTT - ĐHSPHN 24
Trang 25Phạm vi biến
• Ví dụ biến cục bộ:
1/9/2018 Nguyễn Thị Phương Dung - Khoa CNTT - ĐHSPHN 25
Trang 26Phạm vi biến
• Ví dụ biến cục bộ:
1/9/2018 Nguyễn Thị Phương Dung - Khoa CNTT - ĐHSPHN 26
Trang 27Phạm vi biến
• Ví dụ biến toàn cục:
1/9/2018 Nguyễn Thị Phương Dung - Khoa CNTT - ĐHSPHN 27
Trang 281/9/2018 Nguyễn Thị Phương Dung - Khoa CNTT - ĐHSPHN 28
Trang 29Tham số
• Tham số hình thức (tham số) là những biến
được liệt kê trong phần khai báo hàm
• Được sử dụng trong thân của phần định nghĩa hàm
1/9/2018 Nguyễn Thị Phương Dung - Khoa CNTT - ĐHSPHN 29
Trang 30Đối số
• Tham số thực (đối số): là những biến hoặc giá trị được thay thế (truyền) vào chỗ của tham số trong lời gọi hàm
1/9/2018 Nguyễn Thị Phương Dung - Khoa CNTT - ĐHSPHN 30
Trang 31Cách truyền tham số
• Có 2 cách truyền tham số khi gọi hàm:
o Truyền tham trị
• Truyền trực tiếp giá trị vào lời gọi hàm
• Truyền bản sao của biến vào lời gọi hàm, ra khỏi hàm biến không thay đổi giá trị
• Truyền địa chỉ của biến vào lời gọi hàm
• Làm thay đổi giá trị của biến truyền vào
1/9/2018 Nguyễn Thị Phương Dung - Khoa CNTT - ĐHSPHN 31
Trang 32Ví dụ truyền tham trị
1/9/2018 Nguyễn Thị Phương Dung - Khoa CNTT - ĐHSPHN 32
Trang 33Ví dụ truyền tham trị
1/9/2018 Nguyễn Thị Phương Dung - Khoa CNTT - ĐHSPHN 33
Trang 34Ví dụ truyền tham chiếu
1/9/2018 Nguyễn Thị Phương Dung - Khoa CNTT - ĐHSPHN 34
Trang 35Ví dụ truyền tham chiếu
1/9/2018 Nguyễn Thị Phương Dung - Khoa CNTT - ĐHSPHN 35
Chú ý:
Để truyền được tham chiếu thì các biến trong khai báo hàm phải có ký hiệu &
Trang 361/9/2018 Nguyễn Thị Phương Dung - Khoa CNTT - ĐHSPHN 36
Trang 37Nạp chồng hàm
• Nạp chồng hàm là cách tạo ra những hàm
o Giống nhau về cả tên và kiểu trả về
o Khác nhau về số các tham số
1/9/2018 Nguyễn Thị Phương Dung - Khoa CNTT - ĐHSPHN 37
Trang 401/9/2018 Nguyễn Thị Phương Dung - Khoa CNTT - ĐHSPHN 40
Trang 411/9/2018 Nguyễn Thị Phương Dung - Khoa CNTT - ĐHSPHN 41
Trang 421/9/2018 Nguyễn Thị Phương Dung - Khoa CNTT - ĐHSPHN 42