1. Trang chủ
  2. » Giáo án - Bài giảng

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

Đ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

Thông tin cơ bản

Định dạng
Số trang 20
Dung lượng 834,24 KB

Nội dung

[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

w