Bài giảng Ngôn ngữ lập trình - Bài 3: Hàm và Nạp chồng Hàm

20 12 1
Bài giảng Ngôn ngữ lập trình - Bài 3: Hàm và Nạp chồng Hàm

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

Thông tin tài liệu

[r]

(1)

Ngơn ngữ lập trình

Bài 3:

Hàm Nạp chồng Hàm

Giảng viên: Lê Nguyễn Tuấn Thành Email: thanhlnt@tlu.edu.vn

(2)

Nội dung

2

1 Hàm (Function)

2 Nạp chồng hàm (Overloading)

(3)

1 HÀM

(4)

Cơ bản về hàm

4

 Hàm định nghĩa sẵn

 Hàm trả giá trị

 Hàm không trả giá trị (hàm void)

 Hàm người dùng định nghĩa

 Khai báo, định nghĩa, gọi hàm

 Hàm đệ quy (recursive functions)

 Quy tắc phạm vi (scope rules)

 Biến địa phương (local)

(5)

Giới thiệu về hàm

 Hàm (Function): một khối chương trình (blocks of

programs) có mục đích rõ ràng

 Một số thuật ngữ (cách gọi) khác hàm

ngôn ngữ khác:

 Phương thức (procedures), chương trình (subprograms),

phương thức (methods)

 Khái niệm I – P – O

 Input – Process – Output

 Thành phần chương trình

(6)

Hàm định nghĩa trước

(Predefined functions)

6

 C++ cung cấp nhiều thư viện với đầy đủ hàm định nghĩa sẵn !

 Hai kiểu:

 Hàm trả giá trị

 Hàm không trả giá trị

 Phải “#include” thư viện thích hợp

(7)

Sử dụng hàm định nghĩa sẵn

 C++ có vơ số hàm toán học định nghĩa sẵn!

 Trong thư viện <cmath.h>  Hầu hết trả giá trị

 Ví dụ: theRoot = sqrt(9.0);

 Các thành phần biểu thức trên:

sqrt: tên hàm

theRoot: biến gán giá trị trả hàm

9.0: đối số (argument) đầu vào (starting input) cho hàm

 Viết theo khái niệm I – P – O:

 I = 9.0

 P = “tính bậc hai” (the square root)

(8)

Lời gọi hàm

(Function call)

8

 Trở lại ví dụ trước theRoot = sqrt(9.0);

 Biểu thức sqrt(9.0) lời gọi hàm (function call hay

function invocation)

 Đối số lời gọi hàm literal (vd: 9.0),

một biến hay biểu thức

 Lời gọi hàm sử dụng biểu thức

(9)(10)

Chương trình với hàm định nghĩa sẵn (2/2)

(11)

Một số hàm định nghĩa sẵn khác (1/3)

#include <cstdlib>

abs(): trả giá trị tuyệt đối số nguyên (int)

labs(): trả giá trị tuyệt đối số nguyên lớn (long

int)

fabs(): trả giá trị tuyệt đối số thực (float)

 Hàm toán học

pow (x, y): x^y

 Lưu ý: một hàm có thể nhiều đối số, mỗi đối số có

(12)

Một số hàm định nghĩa sẵn khác (2/3)

(13)(14)

Hàm void định nghĩa sẵn

14

 Khơng có giá trị trả lại

(15)

Bộ tạo số ngẫu nhiên

 Trả số “được chọn ngẫu nhiên

 Được sử dụng cho mơ (simulation), trị chơi (game)

rand(): trả giá trị RAND_MAX

 Scaling: ép buộc số ngẫu nhiên vào khoảng nhỏ

Ví dụ: rand() % 6 // trả lại giá trị ngẫu nhiên khoảng từ

0 đến

 Shifting: rand() % +

 Hạt giống (seed) dùng để tạo số ngẫu nhiên

 Hàm rand() tạo chuỗi trình tự (sequence) số ngẫu nhiên  Chúng ta sử dụng “hạt giống (seed)” để thay trình tự tạo

số ngẫu nhiên với hàm srand(seed_value):

 void function

(16)

Bài tập

16

 Viết chương trình C++ sinh N số ngẫu nhiên (N <

100) khoảng đến 1000, sau xếp theo thứ

tự tăng dần giảm dần

(17)

Hàm người dùng định nghĩa

 Lập trình viên tự viết hàm cho mục đích mình!  Xây dựng khối chương trình

 Chia để trị (Divide & Conquer)  Dễ đọc (Readability)

 Sử dụng lại (Re-use)

 Hàm mà bạn định nghĩa có thể:

 Trong file với hàm main()

(18)

Những bước cần có xây dựng một hàm

18

 3 bước xây dựng hàm

1. Khai báo / nguyên mẫu hàm (function

declaration/prototype)

 Thông tin cho trình biên dịch (compiler)

 Thơng dịch (interpret) thích hợp lời gọi hàm

2. Đnh nghĩa hàm (function definition)

 Cài đặt thực tế hàm

3. Gi hàm (function call)

(19)

(Function declaration)

 Còn gọi nguyên mẫu hàm (function prototype)

 Khai báo thơng tin cho trình biên dịch Nói cho trình biên

dịch biết cách để thông dịch lời gọi hàm

 Cú pháp:

<giá_tr_tr_li> TênHàm(danh_sách_đi_s);  Ví dụ:

double totalCost( int numberParameter, double priceParameter);

 Được đặt trước lời gọi hàm

 Trong không gian khai báo hàm main()

(20)

Định nghĩa hàm

(Function definition)

20

 Cài đặt thực tế hàm Giống cài đặt hàm

main()

 Ví dụ:

double totalCost ( int numberParameter, double priceParameter) {

const double TAXRATE = 0.05; double subTotal;

subtotal = priceParameter * numberParameter; return (subtotal + subtotal * TAXRATE);

}

 Được đặt sau hàm main() Không đặt bên hàm

main()

Ngày đăng: 10/03/2021, 15:22

Từ khóa liên quan

Tài liệu cùng người dùng

  • Đang cập nhật ...

Tài liệu liên quan