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

Bài giảng kỹ thuật lập trình lập trình 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 (641.72 KB, 34 trang )

KỸ THUẬT LẬP TRÌNH
Lecturer: Phan Hồ Duy Phương
Mekong University

Nhập Mơn Lập Trình – Mekong University

1


Nội dung

1.
2.
3.
4.
5.
6.

Giới thiệu
Biểu diễn dữ liệu trong máy tính
Ngơn ngữ lập trình C/C++
Lập trình hàm
Mảng
Thuật tốn

Nhập Mơn Lập Trình – Mekong University

2


4. Lập trình hàm



1.
2.
3.
4.

Giới thiệu
Phạm vi hàm và biến (Scope)
Tham số và lời gọi hàm
Đệ qui

Nhập Mơn Lập Trình – Mekong University

3


4. Lập trình hàm

1.
2.
3.
4.

Giới thiệu
Phạm vi hàm và biến (Scope)
Tham số và lời gọi hàm
Đệ qui

Nhập Mơn Lập Trình – Mekong University


4


4.1. Giới thiệu

VD: Viết chương trình nhập 3 số nguyên a, b, c xuất
tổng S = a! + b! + c!
static void main()
{
int a,b,c;

a = int.Parse(Console.Read());
b = int.Parse(Console.Read());
c = int.Parse(Console.Read());
}
Nhập Mơn Lập Trình – Mekong University

5


4.1. Giới thiệu
int aGt=1, bGt=1, cGt=1;
// tính a!
for(int i = 2; i <= a; i++)
aGT = aGt*i;
// tính b!
for(int i = 2; i <= b; i++)
bGT = bGt*i;
// tính c!
for(int i = 2; i <= c; i++)

cGT = cGt*i;

Console.Write(“S={0}”,aGT+bGT+cGT);
Nhập Môn Lập Trình – Mekong University

6


4.1. Giới thiệu

oPhát triển thêm: Tính tổng giai thừa 1! đến n!.
Với n tùy ý. VD: n = 100?
oNhận xét: Có 3 đoạn lệnh tính Giai thừa với
code tương tự.
oGiải pháp: Viết code một lần sử dụng lại nhiều
lần (Tái sử dụng code)
=> Sử dụng hàm (function)

Nhập Mơn Lập Trình – Mekong University

7


4.1. Giới thiệu

HÀM
oKhái niệm: Là một đoạn chương trình có tên
(identifier), đầu vào (input), đầu ra (output)
oCó chức năng giải quyết một số vấn đề chun
biệt cho chương trình chính.

oCó thể được gọi nhiều lần với đối số khác
nhau.
oSử dụng hàm khi:
oTái sử dụng code (reuse)
oCải tiến, tái cấu trúc chương trình
(refactory)
Nhập Mơn Lập Trình – Mekong University

8


4.1. Giới thiệu

HÀM
oCú pháp:
<Kiểu trả về> <Tên hàm>([Danh sách tham số])
{
<Các câu lệnh>
[return <giá trị>;]
}
*Tham số (Parameter): là ký hiệu thuộc phần định nghĩa
hàm.
*Đối số (Argument): là ký hiệu được cung cấp khi hàm
được gọi.
Nhập Mơn Lập Trình – Mekong University

9


4.1. Giới thiệu


HÀM
Trong đó:
o<Kiểu trả về>: Các kiểu dữ liệu C#. Nếu khơng
có trả về thì là void
o<Tên hàm>: được đặt theo qui tắt tên định
danh (identifier)
o<Danh sách các tham số>: các tham số hình
thức đầu vào, cách nhau bằng dấu ‘,’
o<Giá trị>: giá trị trả về khi gọi hàm thơng qua
lệnh return
Nhập Mơn Lập Trình – Mekong University

10


4.1. Giới thiệu

CÁC BƯỚC XÂY DỰNG HÀM
Cần xác định các thơng tin:
oTên hàm.
oCác đầu vào, đầu ra nếu có.
oCơng việc hàm sẽ thực hiện
Đầu vào 1
Đầu vào 2
Đầu vào n

Tên Hàm

Các cơng sẽ việc

thực hiện

Nhập Mơn Lập Trình – Mekong University

Đầu ra (Nếu có)

11


4.1. Giới thiệu

CÁC BƯỚC XÂY DỰNG HÀM
VD: Viết hàm tính giai thừa cho một số nguyên n
oTên hàm: tinhGiaiThua
oĐầu vào: số nguyên n
oĐầu ra: kết quả giai thừa kiểu nguyên
oCông việc hàm sẽ thực hiện: tính n!

Nhập Mơn Lập Trình – Mekong University

12


4.1. Giới thiệu
CÁC BƯỚC XÂY DỰNG HÀM
VD: Viết hàm tính giai thừa cho một số nguyên n
int tinhGiaiThua(int n)
{
int gt = 1;
for(int i=2; i<=n; i++)

{
gt = gt*i;
}
return gt;
}
Nhập Môn Lập Trình – Mekong University

13


4.1. Giới thiệu

CÁC BƯỚC XÂY DỰNG HÀM
VD: Viết hàm xuất dãy số từ 0 cho đến n
oTên hàm: xuatDaySo
oĐầu vào: số ngun n
oĐầu ra: khơng có
oCơng việc hàm sẽ thực hiện: xuất dãy số từ 0
cho đến n

Nhập Môn Lập Trình – Mekong University

14


4.1. Giới thiệu

CÁC BƯỚC XÂY DỰNG HÀM
VD: Viết hàm xuất dãy số từ 0 cho đến n
void xuatDaySo(int n)

{
for(int i=0; i<=n; i++)
{
Console.Write(“{0}”,i);
}
}
Nhập Mơn Lập Trình – Mekong University

15


4. Lập trình hàm

1.
2.
3.
4.

Giới thiệu
Phạm vi hàm và biến (Scope)
Tham số và lời gọi hàm
Đệ qui

Nhập Mơn Lập Trình – Mekong University

16


4.2. Phạm vi hàm và biến


SCOPE (Phạm vi)
oKhái niệm: Là phạm vi hiệu quả của biến và
hàm
oPhạm vi của biến:
o Biến cục bộ (Local Variable)
o Biến toàn cục (Gobal Variable)

Nhập Mơn Lập Trình – Mekong University

17


4.2. Phạm vi hàm và biến

BIẾN CỤC BỘ (LOCAL VARIABLES)
oKhai báo bên trong hàm hoặc khối { } và chỉ
được sử dụng bởi các lệnh bên trong hàm hay
khối đó. Biến cục bộ sẽ bị xóa khỏi bộ nhớ khi
kết thúc khối khai báo nó.
void xuatDaySo()
{
int n = 10; // Biến cục bộ
for(int i=0; i<=n; i++)
Console.Write(“{0}”,i);
}
Nhập Mơn Lập Trình – Mekong University

18



4.2. Phạm vi hàm và biến

BIẾN TOÀN CỤC (GLOBAL VARIABLES)
oThường khai báo ở đầu chương trình. Biến
được sử dụng bởi tất cả các hàm kể cả hàm
main của chương trình. Biến tồn tại đến khi kết
thúc chương trình.
int i = 10; // Biến tồn cục
void main()
{
Console.Write(“{0}”,i);
}
Nhập Mơn Lập Trình – Mekong University

19


4.2. Phạm vi hàm và biến

LƯU Ý - KHỞI TẠO GIÁ TRỊ BIẾN
oVD:
float f; // Biến toàn cục
void main()
{
int i;
// phải khởi tạo
Console.Write(“{0}”,i); // error
Console.Write(“{0}”,f); // xuất 0
}


Nhập Môn Lập Trình – Mekong University

20


4.2. Phạm vi hàm và biến

LƯU Ý – TÊN BIẾN
oTrong một chương trình tên biến tồn cục và
cục bộ có thể trùng nhau nhưng giá trị biến cục
bộ sẽ được tham chiếu đến.
int i = 10; // Biến toàn cục
void main()
{
int i = 5;
// Biến cục bộ
Console.Write(i); // Xuất 5
}
Nhập Mơn Lập Trình – Mekong University

21


4.2. Phạm vi hàm và biến

LƯU Ý – TÊN BIẾN
oTrong một chương trình tên biến tồn cục và
cục bộ có thể trùng nhau nhưng giá trị biến cục
bộ sẽ được tham chiếu đến.
int i = 10; // Biến toàn cục

void main()
{
int i = 5;
// Biến cục bộ
Console.Write(“{0}”,i); //
Xuất 5
}
Nhập Môn Lập Trình – Mekong University

22


4.2. Phạm vi hàm và biến

LƯU Ý – THAM SỐ HÀM
oTham số hình thức (Formal) của hàm có phạm
vi như biến cục bộ của hàm đó.
int tinhTong(int a, int b)
{
return a+b;
}
oTham số vào a, b sử dụng như biến cục bộ
của hàm tinhTong

Nhập Mơn Lập Trình – Mekong University

23


4. Lập trình hàm


1.
2.
3.
4.

Giới thiệu
Phạm vi hàm và biến (Scope)
Tham số và lời gọi hàm
Đệ qui

Nhập Mơn Lập Trình – Mekong University

24


4.3. Tham số và lời gọi hàm

CÁCH TRUYỀN THAM SỐ
Truyền giá trị (Call by Value) – Tham trị:
oTruyền tham số dưới dạng giá trị.
oCó thể truyền hằng, biến, biểu thức nhưng
hàm chỉ sẽ nhận giá trị.
oĐược sử dụng khi không có nhu cầu thay đổi
giá trị của tham số sau khi thực hiện hàm.
void truyenThamTri(int n)
{
cout<}
Nhập Mơn Lập Trình – Mekong University


25


×