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

Slide tin học cơ sở 2 hàm

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 (825.37 KB, 29 trang )

.c
om
ng
co

cu

u

du
o

ng

th

an

HÀM

CuuDuongThanCong.com

/>

.c
om

Giới thiệu về hàm
• Thành phần con của một

Subpart 3



th

Subpart 2

Subpart
1.2

định.
• Tên gọi của thành phần con:
• Thủ tục, chương trình con,

• Với C++: hàm

du
o

Subpart
2.1

u

Subpart
1.1

thực hiện 1 chức năng nhất

cu

ng


Subpart 1

an

co

ng

Program

chương trình, mỗi thành phần

phương thức

• Xử lý: I-P-O
• Input – Process – Output
2
CuuDuongThanCong.com

/>

an

co

• Hai loại:
• Hàm có giá trị trả về
• Hàm khơng có giá trị trả về (void)


ng

• Các thư viện bao gồm nhiều hàm hữu ích

.c
om

Hàm sẵn có

cu

u

du
o

ng

th

• Phải "#include" các thư viện phù hợp.
• Ví dụ
• <conio.h>
• <iostream> (for cout, cin)

3
CuuDuongThanCong.com

/>


• Có rất nhiều hàm tốn học
• Thư viện: <cmath>

.c
om

Sử dụng hàm sẵn có

ng

=

biến

=

du
o

pow
y

phần:

th

• Thành

an


• Ví dụ: y = pow(x,2);

co

ng

• Hầu hết đều có giá trị trả về

nhận

tên
giá

• I=
• P=
• O=

về

cu

• I-P-O:

trả

u

x, 2: tham số, giá trị ban đầu của hàm

trị


hàm

x, 2

tính lũy thừa
x^2
4
CuuDuongThanCong.com

/>

Lời gọi hàm

co

• Biểu thức pow(x,2) là lời gọi hàm.

.c
om

y = pow(x,2);

ng

• Ví dụ:

du
o


ng

• Ví dụ: y = pow(x+2,2);

th

an

• Tham số của hàm: giá trị cố định, biến, biểu thức

cu

u

• Lời gọi hàm có thể là thành phần của một biểu thức
• z = pow(x, 2)/10;

5
CuuDuongThanCong.com

/>

Các hàm sẵn có khác

th

an

• abs()


co

• Thư viện chứa các hàm như:

ng

.c
om

• #include <cstdlib>

du
o

ng

• labs()

cu

u

• fabs() trong thư viện <cmath>!
• Có thể nhầm lẫn

6
CuuDuongThanCong.com

/>


.c
om
ng
co
an
th
ng
du
o
u
cu

3-7
CuuDuongThanCong.com

/>

ng
co
an
th

cu

u

du
o

ng


• Lập trinh viên tự xây dựng hàm
• Nguyên tắc xây dựng:
• Chia để trị
• Dễ đọc
• Dễ dùng
• Định nghĩa hàm có thể
• Cùng file với hàm main()
• Khác file với main

.c
om

Hàm tự định nghĩa

8
CuuDuongThanCong.com

/>

Sử dụng hàm

cu

u

du
o

ng


th

an

co

ng

.c
om

1. Khai báo hàm
• Thơng tin dành cho trình biên dịch
• Biên dịch phù hợp
2. Định nghĩa hàm
• Thực thi thực sự: xây dựng hàm chi tiết
3. Gọi hàm
• Chuyển quyền điều khiển cho hàm

9
CuuDuongThanCong.com

/>

.c
om

Khai báo hàm


ng

• Nguyên mẫu hàm (function prototoype)
• Khai báo thơng tin cho trình biên dịch

du
o

• Vị trí:

ng

th

an

co

• Cú pháp:
<Kiểu_dữ_liệu> Tên_hàm (Kiểu_dữ_liệu_1 tham_số_1, …);
• Ví dụ:
double tinhDTB (double diem1, double diem2);

cu

u

• Trước hàm main()
• Các hàm ngang hàng nhau, khơng có trường hợp hàm này lồng vào hàm
kia

10
CuuDuongThanCong.com

/>

Định nghĩa hàm

th

an

co

ng

.c
om

• Ví dụ:
double tinhDTB (double diem1, double diem2)
{
return (diem1 + diem2)/2 ;
}

du
o

ng

• Tham số hình thức trong định nghĩa hàm: Nơi lưu trữ dữ liệu


cu

u

• Lệnh return: chuyển dữ liệu trả về cho “người gọi hàm”

11
CuuDuongThanCong.com

/>

Lời gọi hàm

ng

.c
om

• Tương tự gọi hàm đã định nghĩa sẵn
double dtb = tinhDTB(d1, d2)

co

• tinhDTB trả về giá trị kiểu double

ng

• Tham số thực: d1, d2


th

an

• Giá trị trả về được gán vào biến dtb

u

du
o

• Tham số: giá trị khơng đổi, biến, biểu thức
• Trong lời gọi hàm, các tham số thường được gọi là tham số thực sự

cu

• Bởi vì chúng chứa dữ liệu thực sự được truyền

12
CuuDuongThanCong.com

/>

Tham số

.c
om

• Tham số hình thức


co

ng

• Khai báo hàm
• Định nghĩa hàm

an

• Tham số thực sự

cu

u

du
o

ng

th

• Trong lời gọi hàm

13
CuuDuongThanCong.com

/>

Hàm trả về giá trị logic Boolean


.c
om

• Hàm có thể trả về bất kỳ kiểu dữ liệu nào

co

th

an

• Định nghĩa hàm
bool dat (int diem)
{
return (diem>=4)&&(rate<=10);

ng

• Khai báo hàm
bool dat(int diem);

du
o

cu

• Lời gọi hàm từ hàm khác:

u


• Trả về "true" hoặc "false"

ng

}

if (dat(diem))
cout << “Dat";
else

cout << “Rot”;
CuuDuongThanCong.com

14
/>

• Tương tự với hàm trả về một giá trị bất kỳ

co

ng

• Khai báo kiểu trả về là void

.c
om

Hàm có kiểu trả về void


th

an

• Ví dụ:

ng

• Khai báo hàm:

du
o

void showResults(double fDegrees, double cDegrees);

cu

u

• Kiểu trả về: "void"

• Khơng trả về giá trị nào hết
15
CuuDuongThanCong.com

/>

Định nghĩa hàm có kiểu trả về void

cu


u

du
o

ng

th

an

co

ng

.c
om

• Định nghĩa hàm:
void showResults(double fDegrees, double cDegrees)
{
cout.setf(ios::fixed);
cout.setf(ios::showpoint);
cout.precision(1);
cout << fDegrees
<< " degrees fahrenheit equals \n"
<< cDegrees << " degrees celsius.\n";
}
• Khơng có lệnh return hoặc sử dụng hàm return;


16
CuuDuongThanCong.com

/>

Gọi hàm có kiểu trả về void

.c
om

• Giống như hàm các hàm void đã định nghĩa sẵn
• Từ một hàm khác, như main():

an

co

ng

• showResults(degreesF, degreesC);
• showResults(32.5, 0.3);

u

• Truyền cho hàm

du
o


ng

th

• Khơng có câu lệnh gán vì khơng trả về giá trị
• Tham số thực sự (degreesF, degreesC)

cu

• Hàm được gọi chỉ việc thực thi với dữ liệu truyền vào

17
CuuDuongThanCong.com

/>

Lệnh return

.c
om

• Trả quyền điều khiển về hàm đang gọi

an

co

ng

• Với các hàm có kiểu trả về khác void, phải có ít nhất 1 câu lệnh return


du
o
u

• return;

cu

về là void

ng

th

• Lệnh return có thể có hoặc khơng có trong hàm có kiểu trả

18
CuuDuongThanCong.com

/>

main()

.c
om

• main() là hàm đặc biệt:

• Chỉ có một và chỉ một hàm main tồn tại trong chương trình.


co

ng

• Ai gọi hàm main?

cu

u

du
o

ng

th

an

• Hệ điều hành
• Trả về kiểu int

19
CuuDuongThanCong.com

/>

• Nguyên tắc: hàm phải được định nghĩa trước khi gọi.


.c
om

Ngun mẫu (prototype):

ng

• Tuy nhiên, trong lập trình thì hàm main() có thể được đặt trước các hàm khác. Nếu hàm main() có

co

gọi các hàm khác thì trình biên dịch sẽ báo lỗi hàm này chưa định nghĩa.

th

an

• Do vậy, cần khai báo nguyên mẫu hàm trước hàm main().

du
o
u

Ví dụ:

cu

và khơng có thân hàm.

ng


• Cú pháp khai báo ngun mẫu của hàm giống như định nghĩa hàm, chỉ khác là kết thúc bằng dấu ;

CuuDuongThanCong.com

/>

Tham số
• Tham trị

an

co

• Giá trị của tham số được truyền

ng

.c
om

• Hai cách truyền tham số

ng

th

• Tham biến

cu


u

du
o

• Địa chỉ của tham số thực được truyền

21
CuuDuongThanCong.com

/>

Tham trị

.c
om

• Sao chép giá trị của tham số thực

co

ng

• Xem như biến cục bộ bên trong hàm

an

• Nếu có thay đổi, chỉ thay đổi giá trị cục bộ; hàm khơng có quyền thay đổi


cu

u

du
o

ng

th

giá trị của tham số thực.

22
CuuDuongThanCong.com

/>

cu

u

du
o

ng

th

an


co

ng

.c
om

Tham trị

23
CuuDuongThanCong.com

/>

Tham chiếu

.c
om

• Tham chiếu tới tham số thực sự

ng

• Trỏ tới vị trí vùng nhớ của tham số thực sự

th

cu


u

du
o

ng

• Sử dụng: tên_kiển& tên_biến

an

co

• Thay đổi giá trị tại vùng nhớ này => thay đổi giá trị của tham số thực sự

24
CuuDuongThanCong.com

/>

cu

u

du
o

ng

th


an

co

ng

.c
om

Tham chiếu

25
CuuDuongThanCong.com

/>

×