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