Dữ liệu
Dữ liệu đầu vào
Dữ liệu đầu ra
Dữ liệu trong quá trình xử lý
Ví dụ
 Chương trình giải PT bậc 2
 Chương trình tính số tiền nhận được khi gửi tiết
kiệm
 Chương trình tính tiền điện
Kiểu dữ liệu
Kiểu số
Kiểu ký tự
Kiểu chuỗi
Kiểu ngày tháng
Kiểu hình ảnh
                
              
                                            
                                
            
                       
            
                 58 trang
58 trang | 
Chia sẻ: thanhle95 | Lượt xem: 739 | Lượt tải: 1 
              
            Bạn đang xem trước 20 trang tài liệu Bài giảng môn Kỹ thuật lập trình - Chương 1: Tổng quan lập trình C#, để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
Khoa	Hệ	Thống	Thông	Tin
Đại	Học	Quốc	Gia	TP.HCM
Đại	Học	Kinh	Tế	Luật
Chương	1
Tổng	quan	lập	trình	C#
Khoa	Hệ	Thống	Thông	Tin
Đại	Học	Quốc	Gia	TP.HCM
Đại	Học	Kinh	Tế	Luật
Nội	dung
Biến và khai báo biến
Các phép toán
Các hàm có sẵn của C#
Phát biểu điều kiện
Phát biểu lặp
Hàm
Khoa	Hệ	Thống	Thông	Tin
Đại	Học	Quốc	Gia	TP.HCM
Đại	Học	Kinh	Tế	Luật
Dữ	liệu
Dữ liệu đầu vào
Dữ liệu đầu ra
Dữ liệu trong quá trình xử lý
Ví dụ
 Chương trình giải PT bậc 2
 Chương trình tính số tiền nhận được khi gửi tiết 
kiệm
 Chương trình tính tiền điện
Khoa	Hệ	Thống	Thông	Tin
Đại	Học	Quốc	Gia	TP.HCM
Đại	Học	Kinh	Tế	Luật
Kiểu	dữ	liệu
Kiểu số
Kiểu ký tự
Kiểu chuỗi
Kiểu ngày tháng
Kiểu hình ảnh
Khoa	Hệ	Thống	Thông	Tin
Đại	Học	Quốc	Gia	TP.HCM
Đại	Học	Kinh	Tế	Luật
Biến
Biến
 Là tên gọi cho một vùng nhớ (bên trong bộ nhớ 
máy tính khi chương trình được chạy) có khả 
năng chứa được một giá trị = một dữ liệu
 Được khai báo và sử dụng để chứa dữ liệu của 
chương trình
Khai báo biến
 kiểu_biến tên_biến [= giá_trị];
 Ví dụ
• int age;
• string chuoi = “xin chao”;
Khoa	Hệ	Thống	Thông	Tin
Đại	Học	Quốc	Gia	TP.HCM
Đại	Học	Kinh	Tế	Luật
Đặt	tên	biến
Tên biến phân biệt chữ hoa và chữ thường
 tenBien khác với TenBien và Tenbien
Không bắt đầu bằng số
Không chứa các ký tự đặt biệt như ~ ! @ # $ 
% ^ & * ( )
Không đặt tên biến trùng với từ khoá
 string, int, private  tên không hợp lệ
Quy tắc camel
Khoa	Hệ	Thống	Thông	Tin
Đại	Học	Quốc	Gia	TP.HCM
Đại	Học	Kinh	Tế	Luật
Kiểu	biến
Kiểu	biến Mô	tả
bool {true, false}. Giá trị mặc định : false
char [0, 65535]
Số nguyên không dấu 16 bit, thường dùng để lưu trữ mã ASCII, 
Unicode của các ký tự.
Giá trị mặc định : 0
DateTime [ – 12:00:00 AM, – 11:59:59.9999999 PM]
64 bit, lưu trữ các thông tin về ngày tháng và thời gian.
Giá trị mặc định : 1/1//0001 – 0:00:00
decimal Số thực có dấu 128 bit (96 bit phần nguyên và 32 bit phần thập 
phân). Giá trị mặc định : 0
double Số thực có dấu 64 bit
Giá trị mặc định : 0
int Số nguyên có dấu 32 bit [-231, 231)
Giá trị mặc định: 0
string Mảng các ký tự thuộc kiểu Char.
Giá trị mặc định : Nothing (không phải chuỗi rỗng)
Khoa	Hệ	Thống	Thông	Tin
Đại	Học	Quốc	Gia	TP.HCM
Đại	Học	Kinh	Tế	Luật
Một	số	vấn	đề	nâng	cao
Kiểu sơ cấp (đơn trị) & Kiểu đối tượng (đa 
trị)
Tham chiếu
Kiểu biến do người lập trình tự định nghĩa
Khái niệm Cấu trúc dữ liệu của chương trình
Kiểu mảng
Khoa	Hệ	Thống	Thông	Tin
Đại	Học	Quốc	Gia	TP.HCM
Đại	Học	Kinh	Tế	Luật
Các	phép	toán
Phép gán
= += -= 
Phép toán toán học cơ bản
+ - * / % ^
Phép toán so sánh
== > = <=
Phép toán logic
! && ||
Khoa	Hệ	Thống	Thông	Tin
Đại	Học	Quốc	Gia	TP.HCM
Đại	Học	Kinh	Tế	Luật
Phép	toán	nâng	cao
Phép gán kết hợp : 
+= -= *= /= 
Phép toán trên bit
! & |
Vấn đề về phù hợp kiểu trong phép gán
 Ép kiểu (Type-casting/Type converting)
 Implicit convert & Explicit convert
Khoa	Hệ	Thống	Thông	Tin
Đại	Học	Quốc	Gia	TP.HCM
Đại	Học	Kinh	Tế	Luật
Một	số	hàm	có	sẵn
Hàm nhập/xuất
 Console.ReadLine
 Console.Write/Console.WriteLine
Hàm chuyển đổi kiểu
Hàm toán học cơ bản
Hàm xử lý trên kiểu dữ liệu chuỗi
Hàm xử lý trên kiểu dữ liệu ngày tháng
Khoa	Hệ	Thống	Thông	Tin
Đại	Học	Quốc	Gia	TP.HCM
Đại	Học	Kinh	Tế	Luật
Phát	biểu	điều	kiện
if ( )
{
;
}
else
{
;
}
Khoa	Hệ	Thống	Thông	Tin
Đại	Học	Quốc	Gia	TP.HCM
Đại	Học	Kinh	Tế	Luật
Phát	biểu	điều	kiện
Ví dụ 1
if	(i	%	2	==	0)
Console.WriteLine("i	la	so	chan");
else
Console.WriteLine("i	la	so	le");
Ví dụ 2
if	((y	%	4	==	0	&&y%100!=0)	||	y%400==0)
Console.WriteLine("y	la	năm	nhuận");
else
Console.WriteLine("y	không	là	năm	nhuận");
Khoa	Hệ	Thống	Thông	Tin
Đại	Học	Quốc	Gia	TP.HCM
Đại	Học	Kinh	Tế	Luật
Phát	biểu	điều	kiện
Khoa	Hệ	Thống	Thông	Tin
Đại	Học	Quốc	Gia	TP.HCM
Đại	Học	Kinh	Tế	Luật
Toán	tử	3	ngôi
Có dạng:
 ?	 :	
Nếu đúng thì thực 
hiện, ngược lại thực hiện
Là dạng rút gọn của ifelse
Ví dụ
 string a = (i % 2 == 0) ? “so chan” : “so le”
Khoa	Hệ	Thống	Thông	Tin
Đại	Học	Quốc	Gia	TP.HCM
Đại	Học	Kinh	Tế	Luật
Phát	biểu	lựa	chọn
switch () 
{
case :
;
break;
case :
;
break;
default:
;
break;
}
Khoa	Hệ	Thống	Thông	Tin
Đại	Học	Quốc	Gia	TP.HCM
Đại	Học	Kinh	Tế	Luật
Phát	biểu	lựa	chọn
Khoa	Hệ	Thống	Thông	Tin
Đại	Học	Quốc	Gia	TP.HCM
Đại	Học	Kinh	Tế	Luật
Phát	biểu	lựa	chọn
Ví dụ
switch	(i)
{
case	1:
Console.WriteLine("so	1");
break;
case	2:
Console.WriteLine("so	2");
break;
default:
Console.WriteLine("default");
break;
}
Khoa	Hệ	Thống	Thông	Tin
Đại	Học	Quốc	Gia	TP.HCM
Đại	Học	Kinh	Tế	Luật
Phát	biểu	dowhile
Cú pháp: 
do { 
statement; 
}while(expression);
●Ý nghĩa:
−B1:Statement được thực hiện 
−B2:Expression được định trị. 
−Nếu expression là true thì 
quay lại bước 1 
−Nếu expression là false thì 
thoát khỏi vòng lặp. 
Khoa	Hệ	Thống	Thông	Tin
Đại	Học	Quốc	Gia	TP.HCM
Đại	Học	Kinh	Tế	Luật
Phát	biểu	dowhile
Để thoát vòng lặp: dùng break
Để kết thúc sớm 1 vòng lặp: dùng continue
Nhận xét:
 Vòng lặp được chạy ít nhất 1 lần
Khoa	Hệ	Thống	Thông	Tin
Đại	Học	Quốc	Gia	TP.HCM
Đại	Học	Kinh	Tế	Luật
Phát	biểu	dowhile
Ví dụ
n	=	1;
i	=	1;
do
{
n	*=	i;
i++;
}	while (i<=5);
Console.WriteLine("5!	=	{0}",	n);
Khoa	Hệ	Thống	Thông	Tin
Đại	Học	Quốc	Gia	TP.HCM
Đại	Học	Kinh	Tế	Luật
Phát	biểu	while
Cú pháp: 
while(expression)	
statement;
●Ý nghĩa:
●B1: Expression được định trị 
●B2: Nếu kết quả là true thì 
statement thực thi và quay lại B1 
●B3: Nếu kết quả là false thì 
thoát khỏi vòng lặp while.
 Để thoát vòng lặp: dùng break
 Để kết thúc sớm 1 vòng lặp: dùng continue
 Lệnh	trong	while	có	thể	không	được	thực	hiện	lần	nào
Khoa	Hệ	Thống	Thông	Tin
Đại	Học	Quốc	Gia	TP.HCM
Đại	Học	Kinh	Tế	Luật
Phát	biểu	while
Ví dụ
n	=	1;
i	=	1;
while	(i	<=	5)
{
n	*=	i;
i++;
}
Console.WriteLine("5	giai	thua	la	:	{0}",	n);
Khoa	Hệ	Thống	Thông	Tin
Đại	Học	Quốc	Gia	TP.HCM
Đại	Học	Kinh	Tế	Luật
Phát	biểu	for
• Cú pháp:
for (Exp1; Exp2; Exp3)
statement;
• Ý nghĩa:
− Exp1: là biểu thức khởi tạo
được thực hiện.
− Exp2: là biểu thức điều kiện
− Exp3: biểu thức điều khiển
lặp
 Để thoát vòng lặp: dùng break
 Để kết thúc sớm 1 vòng lặp: dùng continue
Khoa	Hệ	Thống	Thông	Tin
Đại	Học	Quốc	Gia	TP.HCM
Đại	Học	Kinh	Tế	Luật
Phát	biểu	for
Ví dụ
int i;
int n	=	1;
for(i=1;	i<=5;	i++)
{
n	*=	i;
}
Console.WriteLine("5	giai	thừa	là	:	{0}",	n);
Khoa	Hệ	Thống	Thông	Tin
Đại	Học	Quốc	Gia	TP.HCM
Đại	Học	Kinh	Tế	Luật
Phát	biểu	foreach
foreach( in )
{
;
}	
Khoa	Hệ	Thống	Thông	Tin
Đại	Học	Quốc	Gia	TP.HCM
Đại	Học	Kinh	Tế	Luật
Phát	biểu	foreach
Ví dụ
string str	=	"abcde";
string newCh	=	"";
string ch	=	"";
foreach(char c	in str)
{
ch	=	char.ToUpper(c).ToString();
newCh	+=	ch;
}	Console.WriteLine(newCh);
Khoa	Hệ	Thống	Thông	Tin
Đại	Học	Quốc	Gia	TP.HCM
Đại	Học	Kinh	Tế	Luật
Phát	biểu	lặp
 do  while: phù hợp với suy nghĩ tự nhiên khi
thiết kế thuật toán.
 while: khắc phục một số trường hợp lỗi của
phát biểu do  while
 for: cách viết ngắn gọn của phát biểu while, sử
dụng khi điều kiện lặp phụ thuộc vào biến lặp và
số lần lặp có thể biết trước
 foreach: duyệt đối tượng trong tập danh sách
Khoa	Hệ	Thống	Thông	Tin
Đại	Học	Quốc	Gia	TP.HCM
Đại	Học	Kinh	Tế	Luật
Hàm
 Hàm là một khối lệnh thực hiện một công
việc hoàn chỉnh (module), được đặt tên và
được gọi thực thi nhiều lần tại nhiều vị trí
trong chương trình.
 Hàm còn gọi là chương trình con ,phương
thức, hành vi
Khoa	Hệ	Thống	Thông	Tin
Đại	Học	Quốc	Gia	TP.HCM
Đại	Học	Kinh	Tế	Luật
Hàm
 Hàm có thể được gọi từ chương trình chính
(hàm main) hoặc từ 1 hàm khác.
 Hàm có giá trị trả về hoặc không. Nếu hàm
không có giá trị trả về gọi là thủ tục
(procedure)
 Mục đích cuối cùng của hàm là???
Khoa	Hệ	Thống	Thông	Tin
Đại	Học	Quốc	Gia	TP.HCM
Đại	Học	Kinh	Tế	Luật
Hàm
Khai báo hàm
 ( , )
{
Nội dung hàm;
[return ];
}
Đặt tên hàm
 Tương tự cách đặt tên biến
 Dùng động từ
Khoa	Hệ	Thống	Thông	Tin
Đại	Học	Quốc	Gia	TP.HCM
Đại	Học	Kinh	Tế	Luật
Hàm
Ví dụ
private int TinhGiaiThua(int n)
{
int giaiThua	=	1;
for (int i	=	1;	i	<=	n;	i++)
{
giaiThua	*=	i;
}
return giaiThua;
}
Khoa	Hệ	Thống	Thông	Tin
Đại	Học	Quốc	Gia	TP.HCM
Đại	Học	Kinh	Tế	Luật
Tham	số	hình	thức	&	tham	số	thực
Khi hàm cần nhận đối số (arguments) để
thực thi thì khi khai báo hàm cần khai báo
danh sách các tham số để nhận giá trị từ
chương trình gọi. Các tham số này được gọi
là tham số hình thức.
• Ví dụ:
int min(int a, int b)
{
if(a<b)
return a;
else
return b;
}
Tham số hình thức
Khoa	Hệ	Thống	Thông	Tin
Đại	Học	Quốc	Gia	TP.HCM
Đại	Học	Kinh	Tế	Luật
Tham	số	hình	thức	&	tham	số	thực
• Khi gọi hàm, ta cung cấp các giá trị thật, các
giá trị này sẽ được sao chép vào các tham
số hình thức và các giá trị thật được gọi là
tham số thực.
Ví dụ: Để tìm giá trị nhỏ nhất của 2 số 5 và 6
ta gọi hàm min(5, 6)
min(int a, int b)
Tham số thực
Khoa	Hệ	Thống	Thông	Tin
Đại	Học	Quốc	Gia	TP.HCM
Đại	Học	Kinh	Tế	Luật
Truyền	tham	trị	và	tham	chiếu	trong	hàm
Hàm nào đó
Đổi N = 8
N=5
N=5
Truyền tham trị: Sau khi thoát khỏi
hàm nó vẫn giữ giá trị gốc (N vẫn =5)
Hàm nào đó
Đổi N = 8
N=5
N=8
Truyền tham biến: Sau khi thoát khỏi
hàm, nó sẽ lấy giá trị bị thay đổi
trong hàm (N bị đổi thành 8)
Khoa	Hệ	Thống	Thông	Tin
Đại	Học	Quốc	Gia	TP.HCM
Đại	Học	Kinh	Tế	Luật
Truyền	tham	trị	và	tham	chiếu	trong	hàm
• Truyền tham trị (call by value)
–Sao chép giá trị của đối số vào tham số
hình thức của hàm.
–Những thay đổi của tham số không ảnh
hưởng đến giá trị của đối số.
Khoa	Hệ	Thống	Thông	Tin
Đại	Học	Quốc	Gia	TP.HCM
Đại	Học	Kinh	Tế	Luật
Truyền	tham	trị	và	tham	chiếu	trong	hàm
• Truyền tham chiếu (call by reference)
–Sao chép địa chỉ của đối số vào tham số
hình thức. Do đó, những thay đổi đối với
tham số sẽ có tác dụng trên đối số.
• Sử dụng từ khoá ref hoặc out
• Tham số kiểu đa trị (mảng, đối tượng) 
mặc định là truyền theo tham chiếu (tức 
là không cần dùng từ khóa ref hoặc out)
Khoa	Hệ	Thống	Thông	Tin
Đại	Học	Quốc	Gia	TP.HCM
Đại	Học	Kinh	Tế	Luật
Truyền	tham	trị	và	tham	chiếu	trong	hàm
Ví dụ
private int TangSo(out int i)
{
i = i + 1;
return i;
}
int a = 10;
int b = TangSo(out a);
Kết quả
 a = 11
 b = 11
Khoa	Hệ	Thống	Thông	Tin
Đại	Học	Quốc	Gia	TP.HCM
Đại	Học	Kinh	Tế	Luật
Hàm	đệ	qui
Thuật toán đệ qui
 Giải bài toán bằng cách rút gọn liên tiếp bài toán 
ban đầu thành bài toán cũng tương tự nhưng có 
dữ liệu đầu vào nhỏ hơn
 Ví dụ
• n!	có thể được định nghĩa bằng cách qui nạp như 
sau:
• 0! = 1,
• n! = n*(n-1)!, với mọi n > 0.
• Bài toán tính N!	bây giờ thành tính N*(N-1)!
Khoa	Hệ	Thống	Thông	Tin
Đại	Học	Quốc	Gia	TP.HCM
Đại	Học	Kinh	Tế	Luật
Hàm	đệ	quy
 Phân	loại	đệ	qui
*Đệ qui tuye n tı́nh.
*Đệ qui nhị phân.
*Đệ qui phi tuye n.
*Đệ qui ho  tương.
Khoa	Hệ	Thống	Thông	Tin
Đại	Học	Quốc	Gia	TP.HCM
Đại	Học	Kinh	Tế	Luật
Đệ	qui	tuyến	tính
Trong thân hàm có duy nhất một lời gọi hàm gọi lại chính nó
một cách tường minh:
 TenHam ()
{
if (điều kiện dừng)
{
...
//Trả về giá trị hay kết thúc công việc
}
//Thực hiện một số công việc (nếu có)
. . . TenHam ();
//Thực hiện một số công việc (nếu có)
}
Khoa	Hệ	Thống	Thông	Tin
Đại	Học	Quốc	Gia	TP.HCM
Đại	Học	Kinh	Tế	Luật
Đệ	qui	tuyến	tính
Ví dụ: 
Tı́nh S (n) = 1 + 2 + 3 + L + n
- Điều kiện dừng: S(0) = 0.
- Qui tắc (công thức) tính: S(n) = S(n-1) + n.
long TongS (int n)
{
if(n==0)
return 0;
return ( TongS(n-1) + n );
}
Khoa	Hệ	Thống	Thông	Tin
Đại	Học	Quốc	Gia	TP.HCM
Đại	Học	Kinh	Tế	Luật
Đệ	qui	nhị	phân
Trong thân của hàm có hai lời gọi hàm gọi lại chı́nh nó 
một cách tường minh:
 TenHam ()
{
if (đie u kiện dừng)
{
...
//Trả ve  giá trị hay ke  t thúc công việc
}
//Thực hiện một so  công việc (ne u có)
. . .TenHam (); //Giải quye  t va n đe  nhỏ hơn
//Thực hiện một so  công việc (ne u có)
. . . TenHam (); //Giải quye  t va n đe  còn lại
//Thực hiện một so  công việc (ne u có)
}
Khoa	Hệ	Thống	Thông	Tin
Đại	Học	Quốc	Gia	TP.HCM
Đại	Học	Kinh	Tế	Luật
Đệ	qui	nhị	phân
Vı́ dụ: Tı́nh so  hạng thứ n của dãy Fibonaci được định 
nghı̃a như sau:
f1 = f0 =1 ;
fn = fn-1 + fn-2 ;
Điều kiện dừng: f(0) = f(1) = 1.
long Fibonaci (int n)
{
if(n==0 || n==1)
return 1;
return Fibonaci(n-1) + Fibonaci(n-2);
}
Khoa	Hệ	Thống	Thông	Tin
Đại	Học	Quốc	Gia	TP.HCM
Đại	Học	Kinh	Tế	Luật
Đệ	qui	phi	tuyến
Trong thân của hàm có lời gọi hàm gọi lại chıńh nó được đặt 
bên trong vòng lặp:
 TenHam ()
{
for (int i = 1; i<=n; i++)
{
//Thực hiện một so  công việc (ne u có)
if (đie u kiện dừng)
{ ...
//Trả ve  giá trị hay ke t thúc công việc
}
else
{ //Thực hiện một so  công việc (ne u có)
TenHam ();
}
}
}
Khoa	Hệ	Thống	Thông	Tin
Đại	Học	Quốc	Gia	TP.HCM
Đại	Học	Kinh	Tế	Luật
Đệ	qui	phi	tuyến
Vı́ dụ: Tı́nh so  hạng thứ n của dãy {Xn} được điṇh nghı̃a như 
sau:
X0 =1 ;
Xn = n2X0 + (n-1)
2X1 +  + 1
2Xn-1 ;
Điều kiện dừng:X(0) = 1.
long TinhXn (int n)
{
if(n==0)
return 1;
long s = 0;
for (int i=1; i<=n; i++)
s = s + i * i * TinhXn(n-i);
return s;
}
Khoa	Hệ	Thống	Thông	Tin
Đại	Học	Quốc	Gia	TP.HCM
Đại	Học	Kinh	Tế	Luật
Đệ	qui	tương	hỗ
Trong thân của hàm này có lời gọi hàm đe n hàm kia 
và trong thân của hàm kia có lời gọi hàm tới hàm này.
Khoa	Hệ	Thống	Thông	Tin
Đại	Học	Quốc	Gia	TP.HCM
Đại	Học	Kinh	Tế	Luật
Đệ	qui	tương	hỗ
 TenHam2 ();
 TenHam1 ()
{
//Thực hiện một so  công việc (ne u có)
TenHam2 ();
//Thực hiện một so  công việc (ne u có)
}
 TenHam2 ()
{
//Thực hiện một so  công việc (ne u có)
TenHam1 ();
//Thực hiện một so  công việc (ne u có)
}
Khoa	Hệ	Thống	Thông	Tin
Đại	Học	Quốc	Gia	TP.HCM
Đại	Học	Kinh	Tế	Luật
Đệ	qui	tương	hỗ
Vı́ dụ: Tı́nh so  hạng thứ n của hai dãy {Xn}, {Yn} được định nghıã như sau:
X0 =Y0 =1 ;
Xn = Xn-1 + Yn-1; (n>0)
Yn = n
2Xn-1 + Yn-1; (n>0)
- Điều kiện dừng:X(0) = Y(0) = 1.
long TinhXn (int n)
{
if(n==0)
return 1;
return TinhXn(n-1) + TinhYn(n-1);
}
long TinhYn (int n)
{
if(n==0)
return 1;
return n*n*TinhXn(n-1) + TinhYn(n-1);
}
Khoa	Hệ	Thống	Thông	Tin
Đại	Học	Quốc	Gia	TP.HCM
Đại	Học	Kinh	Tế	Luật
Cơ	chế	hoạt	động	của	Đệ	qui
 Hoạt động theo cơ chế LIFO (LAST IN FIRST OUT)
 Dùng stack để lưu vết dữ liệu và chỉ thị lệnh
Khoa	Hệ	Thống	Thông	Tin
Đại	Học	Quốc	Gia	TP.HCM
Đại	Học	Kinh	Tế	Luật
Cơ	chế	hoạt	động	của	Đệ	qui
 Minh họa Đệ qui giai thừa
Ví dụ tính n! với n=3
Khoa	Hệ	Thống	Thông	Tin
Đại	Học	Quốc	Gia	TP.HCM
Đại	Học	Kinh	Tế	Luật
Cơ	chế	hoạt	động	của	Đệ	qui
 Minh họa Đệ qui chuyển cơ số 10 sang cơ số 2
void H10toH2(int n)
{
if (n <= 0) return;
int t = n % 2;
H10toH2(n / 2);
Console.Write(t);
}
H10toH2(11);
Khoa	Hệ	Thống	Thông	Tin
Đại	Học	Quốc	Gia	TP.HCM
Đại	Học	Kinh	Tế	Luật
Cơ	chế	hoạt	động	của	Đệ	qui
 Minh họa Đệ qui Fibonacci
long Fibonaci (int n)
{
if(n==0 || n==1)
return 1;
return Fibonaci(n-1) + 
Fibonaci(n-2);
}
5
4
3
3 2 2
1
2 1 1 01 0
1 0
1 1
1 1 1 1 1
1
Kết quả =8
Khoa	Hệ	Thống	Thông	Tin
Đại	Học	Quốc	Gia	TP.HCM
Đại	Học	Kinh	Tế	Luật
Cơ	chế	hoạt	động	của	Đệ	qui
 Minh họa Đệ qui Tháp Hà Nội
Khoa	Hệ	Thống	Thông	Tin
Đại	Học	Quốc	Gia	TP.HCM
Đại	Học	Kinh	Tế	Luật
Cơ	chế	hoạt	động	của	Đệ	qui
 Minh họa Đệ qui Tháp Hà Nội
Khoa	Hệ	Thống	Thông	Tin
Đại	Học	Quốc	Gia	TP.HCM
Đại	Học	Kinh	Tế	Luật
Khử	đệ	qui
 Những giải thuật có thể cài đặt được bằng các
vòng lặp thay thế cho đệ qui thì nên dùng vòng lặp,
vì đệ qui rất tốn bộ nhớ, xử lý chậm.
 Hãy khử đệ qui tính giai thừa
 Hãy khử đệ qui tính số fibonacci
Khoa	Hệ	Thống	Thông	Tin
Đại	Học	Quốc	Gia	TP.HCM
Đại	Học	Kinh	Tế	Luật
Viết	hàm	và	viết	chương	trình
Về đối tượng phục vụ :
 Đối tượng phục vụ của chương trình = người sử 
dụng
 Đối tượng phục vụ của hàm = lập trình viên
Về cấu trúc (các giai đoạn trong thiết kế) :
 Chương trình: Nhập dữ liệu từ người sử dụng 
Xử lý Xuất kết quả ra màn hình
 Hàm: Qui định cú pháp (khai báo) hàmXử lý 
Trả về giá trị kết quả
Khoa	Hệ	Thống	Thông	Tin
Đại	Học	Quốc	Gia	TP.HCM
Đại	Học	Kinh	Tế	Luật
END