Giáo trình lập trình nâng cao

pdf 207 trang Người đăng haibmt Lượt xem 1176Lượt tải 4 Download
Bạn đang xem 20 trang mẫu của tài liệu "Giáo trình lập trình nâng cao", để tải tài liệu gốc về máy bạn click vào nút DOWNLOAD ở trên
Giáo trình lập trình nâng cao
 TRƯỜNG ðẠI HỌC NƠNG NGHIỆP I - HÀ NỘI 
BỘ MƠN CƠNG NGHỆ PHẦN MỀM 
TS. DƯƠNG XUÂN THÀNH 
Giáo trình 
LẬP TRÌNH NÂNG CAO 
 ( Trên ngơn ngữ Pascal ) 
(Soạn theo chương trình đã được Bộ GD&ðT phê chuẩn) 
Hà nội, 2005 
Trường ðại học Nơng nghiệp 1 - Giáo trình Lập trình nâng cao ..............................................................- 2 
Lời mở đầu 
Cuốn giáo trình này được biên soạn theo đúng đề cương chi tiết mơn học đã được Bộ 
Giáo dục và ðào tạo phê chuẩn. Thời gian học mơn học này là 60 tiết trong đĩ cĩ 10 tiết thực 
hành trên máy. Tác giả là người đã trực tiếp giảng dạy lập trình Pascal trong nhiều năm cho 
sinh viên chuyên tin và sinh viên các ngành khác. 
ðối tượng sử dụng giáo trình là sinh viên chuyên ngành Tin học hệ đại học chính quy, 
tuy nhiên giáo trình cũng cĩ thể sử dụng như là một tài liệu tham khảo cho sinh viên chuyên 
Tin hệ cao đẳng và những người muốn nghiên cứu nâng cao về lập trình. 
Mục đích biên soạn cuốn giáo trình là cung cấp cho người đọc một tài liệu đơn giản, 
cơ đọng những kiến thức về lập trình nâng cao. Người đọc cĩ thể tự học mà khơng nhất thiết 
phải cĩ thày hướng dẫn. 
 Giáo trình bao gồm 6 chương và 4 phụ lục. 
Chương 1: Chương trình con - Thủ tục và hàm, sinh viên đã được học qua trong 
chương trình Tin học đại cương, do vậy ở đây chủ yếu đi sâu vào khái niệm tham số, cách 
thức mà hệ thống dành bộ nhớ cho việc lưu trữ các tham số và việc gọi chương trình con từ 
chương trình con khác. 
Chương 2: Các kiểu dữ liệu cĩ cấu trúc, tập trung vào các kiểu dữ liệu mà sinh viên 
chưa được học như bản ghi cĩ cấu trúc thay đổi, tập hợp.. 
Chương 3: ðơn vị chương trình và thư viện chuẩn, là chương chưa được học ở Tin 
học đại cương , ở đây hướng dẫn cách thiết kế các ðơn vị chương trình (Unit), cách thức sử 
dụng các Unit và tạo lập thư viện chương trình . 
Chương 4: Con trỏ và cấu trúc động, là một chương khĩ, vì nĩ vừa liên quan đến 
quản lý bộ nhớ, vừa liên quan đến kiến thức của mơn học Cấu trúc dữ liệu và Giải thuật do 
vậy trong chương này đã trình bày nhiều ví dụ để người đọc tham khảo. 
Chương 5: Giải thuật đệ quy, được trình bày “hơi dài dịng” do đặc thù của tính đệ 
quy. Bài tốn Tháp Hanoi được mơ tả khác hồn tồn so với tất cả các sách về Pascal đã cĩ. 
Chương 6: ðồ hoạ, ngồi việc giới thiệu các thủ tục vẽ thơng thường, cịn dành một 
phần trọng tâm cho việc xử lý ảnh Bitmap. Trong chương này cĩ sử dụng một vài ví dụ của 
các tác giả khác (xem phần tài liệu tham khảo) nhưng đã được cải tiến đi rất nhiều. 
Phụ lục 1: Bảng mã ASCII 
Phụ lục 2: Tĩm tắt các thủ tục và hàm của Turbo Pascal 7.0 
Phụ lục 3: ðịnh hướng biên dịch 
Phụ lục 4: Thơng báo lỗi 
Các phụ lục đưa ra nhằm giúp người lập trình tiện tra cứu các thủ tục, hàm và xử lý 
các lỗi khi Pascal thơng báo lỗi trên màn hình 
Do phải bám sát đề cương và sự hạn chế về số trang tác giả nên trong giáo trình chưa 
đưa vào được phần xử lý âm thanh, lập trình hướng đối tượng.... 
Việc biên soạn lần đầu khơng thể tránh được thiếu sĩt, tác giả mong nhận được sự gĩp 
ý của bạn đọc và đồng nghiệp để lần xuất bản sau sẽ tốt hơn. Mọi gĩp ý xin gửi về địa chỉ: 
Bộ mơn Cơng nghệ Phần mềm, Khoa Cơng nghệ Thơng tin, 
ðại học Nơng nghiệp I , Trâu quỳ, Gia lâm, Hà nội. 
Xin trân trọng cảm ơn. 
 Hà nội, tháng 5 năm 2005 
 Ts. Dương Xuân Thành 
Trường ðại học Nơng nghiệp 1 - Giáo trình Lập trình nâng cao ..............................................................- 3 
Chương I 
Chương trình con - Thủ tục và hàm 
Khái niệm chương trình con đã được trình bày trong mơn học Tin học đại cương, do vậy 
trong chương này chúng ta nhắc lại sơ qua một số khái niệm cũ và dành thời gian cho việc tìm 
hiểu sâu về tham số (tham biến và tham trị), lời gọi chương trình con, cách thức bố trí 
chương trình con trong thân chương trình mẹ. Sau khi học chương này bạn đọc cần nắm được 
các nội dung chủ yếu sau: 
 Thế nào là biến tồn cục, biến địa phương 
 Các biến tồn cục và biến địa phương được bố trí ở đâu 
 Tầm tác dụng của từng loại biến 
 Thứ tự xây dựng các chương trình con cĩ ảnh hưởng thế nào đến tồn bộ chương 
trình 
 Thế nào là tính đệ quy của chương trình con 
 Lời gọi chương trình con thế nào là được phép 
 Cách khai báo trước để gọi chương trình con khơng theo thứ tự thiết kế 
Trường ðại học Nơng nghiệp 1 - Giáo trình Lập trình nâng cao ..............................................................- 4 
1. Khái niệm về chương trình con 
Chương trình con trong Pascal được hiểu là một chương trình nằm trong lịng một 
chương trình khác. Chương trình con gồm hai loại: Thủ tục (Procedure) và hàm 
(Function). Các chương trình con được dùng rộng rãi khi xây dựng các chương trình lớn 
nhằm làm cho chương trình dễ theo dõi, dễ sửa chữa. Một đặc điểm nổi bật của chương trình 
con là nĩ cĩ tính đệ quy nhờ thế mà nhiều bài tốn sẽ được giải quyết dễ dàng. 
Khi một chương trình con được gọi thì các biến được khai báo trong chương trình con 
(ta gọi là biến cục bộ) sẽ được cấp phát bộ nhớ. Kết thúc chương trình con, các biến cục bộ 
được giải phĩng, điều này sẽ được lặp lại mỗi khi chương trình con được gọi và nĩ đồng 
nghĩa với việc thời gian xử lý bài tốn sẽ tăng lên. 
Bản thân tên gọi của hai loại chương trình con đã nĩi lên phần nào sự khác nhau giữa 
chúng. Function (Hàm) là một loại chương trình con cho kết quả là một giá trị vơ hướng. Khi 
gọi tên Function với các tham số hợp lệ ta sẽ nhận được các giá trị, bởi vậy tên hàm cĩ thể 
đưa vào các biểu thức tính tốn như là các tốn hạng. Procedure là loại chương trình con khi 
thực hiện khơng cho ra kết quả là một giá trị, mỗi Procedure nhằm thực hiện một nhĩm cơng 
việc nào đĩ của chương trình mẹ, vì vậy tên của Procedure khơng thể đưa vào các biểu thức 
tính tốn. Bằng cách xây dựng các chương trình con người lập trình cĩ thể phân mảnh chương 
trình cho nhiều người cùng làm dưới sự chỉ đạo thống nhất của người chủ trì. Trong Turbo 
Pascal đã cĩ sẵn một số chương trình con, ví dụ: sin(x), sqrt(x).... là các Function, cịn read(), 
write(), gotoxy (x1,x2)..... là các Procedure. 
Trong một chương trình các chương trình con được bố trí ngay sau phần khai báo 
biến. Cấu trúc tổng quát một chương trình Pascal như sau: 
PROGRAM tên_chương_trình; 
USES tên các UNIT; (*khai báo các đơn vị chương trình cần thiết*) 
LABEL (*khai báo nhãn*). 
CONST (*Khai báo hằng*) 
TYPE (*định nghĩa kiểu dữ liệu mới*) 
VAR (*khai báo biến*) 
PROCEDURE Tên_CTC1 (danh sách tham số hình thức); 
 Begin 
............ (*thân thủ tục thứ nhất*). 
End; 
PROCEDURE Tên_CTC2 (danh sách tham số hình thức); 
 Begin 
................... (*thân thủ tục thứ hai*) 
 End; 
Trường ðại học Nơng nghiệp 1 - Giáo trình Lập trình nâng cao ..............................................................- 5 
FUNCTION Tên_HAM1(danh sách tham số hình thức):kiểu hàm; 
Begin 
............... (*thân hàm thứ nhất*) 
End; 
........... 
BEGIN (*bắt đầu chương trình mẹ*) 
.......... 
END. 
 Ghi chú: 
1. Các chương trình con về nguyên tắc cũng bao gồm các phần khai báo báo như đối 
với một chương trình mẹ, phần nào khơng cần thiết thì khơng khai. ðiều khác nhau cơ bản là 
thân chương trình con nằm giữa hai từ khố Begin và End; (sau End là dấu ";" chứ khơng 
phải là dấu "." như trong chương trình mẹ) ngồi ra chương trình con cịn cĩ thể thêm phần 
khai báo các tham số hình thức, các tham số hình thức được đặt trong dấu () và viết ngay sau 
tên chương trình con. 
2. Nếu chương trình con là Function thì cuối chương trình cần cĩ lệnh gán giá trị vào 
tên chương trình con. 
2. Tham số trong chương trình con 
Các chương trình con cĩ thể khơng cần tham số mà chỉ cĩ các biến riêng (biến cục 
bộ). Trong trường hợp cần nhận các giá trị mà chương trình mẹ truyền cho thì chương trình 
con cần phải cĩ các tham số (Parameter). Tham số được khai báo ngay sau tên chương trình 
con và được gọi là tham số hình thức. 
Những giá trị lưu trữ trong các biến tồn cục của chương trình mẹ, nếu được truyền 
cho các thủ tục hoặc hàm thơng qua lời gọi tên chúng thì được gọi là Tham số thực. 
Tham số hình thức bao gồm hai loại: 
2.1 Tham biến (Variabic parameter) 
Tham biến là những giá trị mà chương trình con nhận từ chương trình mẹ, các giá trị 
này cĩ thể biến đổi trong chương trình con và khi chương trình con kết thúc các giá trị này sẽ 
được trả về cho tham số thực. 
Cách khai báo tham biến: 
Tên chương trình con (Var tên tham biến : kiểu dữ liệu); 
2.2 Tham trị (Value parameter) 
Những tham số truyền vào cho chương trình con xử lý nhưng khi quay về chương 
trình mẹ vẫn phải giữ nguyên giá trị ban đầu thì được gọi là tham trị. 
Cách khai báo tham trị: 
Tên chương trình con (tên tham trị : kiểu dữ liệu); 
Dưới đây là một ví dụ khai báo tham số: 
Trường ðại học Nơng nghiệp 1 - Giáo trình Lập trình nâng cao ..............................................................- 6 
PROCEDURE VIDU(x,y,z: integer; lam:boolean; var qq: char); 
Câu lệnh khai báo chương trình con trên đây đồng thời khai báo các tham số hình thức 
trong đĩ x, y,z, lam là các tham trị, với x, y,z cĩ kiểu integer, lam cĩ kiểu boolean, qq là tham 
biến vì nĩ được viết sau từ khố VAR. 
Ví dụ 1.1: Lập chương trình tìm số lớn nhất trong n số nguyên được nhập từ bàn 
phím. 
Program Tim_cuc_dai; 
Uses Crt; 
TYPE dayso = array[1..100] of integer; (* ðịnh nghĩa kiểu dữ liệu dayso là kiểu mảng 
 gồm nhiều nhất là 100 phần tử*). 
VAR a: dayso (*khai báo biến của chương trình mẹ*) 
 n: integer; 
PROCEDURE nhapso(m:integer; var x:dayso); 
(* Nhập dãy số cần tìm cực đại vào mảng một chiều x[i]*) 
 Var i : integer; (*khai báo biến cục bộ của chương trình con*) 
Begin 
 writeln('Nhap day so kieu integer); 
 For i:=1 to m Do (* m được truyền từ chương trình mẹ qua tham số thực n*) 
Begin 
 write('a[', i , '] = '); realln (x[i]); 
 End; End; 
FUNCTION Max(m: integer; b:dayso); integer; 
 (* Hàm MAX dùng để tìm số lớn nhất trong dãy số đã nhập, kiểu giá trị của hàm là kiểu integer *) 
VAR 
 i,t: integer; (* Biến riêng của hàm Max *) 
Begin 
 t:=b[1]; (* Gán phần thứ nhất của mảng b[i] cho biến t *) 
 For i:=2 to m Do 
 if t<b [i] then t:=b[i]; 
 Max:=t; (* Gán giá trị cho chính hàm Max*) 
End; 
BEGIN (* Thân chương trình mẹ *) 
 Write('Ban can nhap bao nhieu so ? '); Readln(n); 
 NHAPSO(N, A); (* Gọi chương trình con NHAPSO với 2 tham số thực là n và a. Hai tham 
 số này sẽ thay thế cho hai tham số hình thức m, x trong chương trình con *) 
 Writeln (' So lon nhat trong day so da nhap = ', MAX(n,a):5); 
 (* Viết ra giá trị của hàm MAX với 2 tham số thực n,a độ dài số là 5 ký tự *) 
 Repeat until keypressed; 
END. 
Trường ðại học Nơng nghiệp 1 - Giáo trình Lập trình nâng cao ..............................................................- 7 
Ví dụ1.1 là một chương trình bao gồm hai chương trình con, chương trình con thứ 
nhất là một thủ tục (Procedure), chương trình con thứ hai là một hàm (Function). 
Chương trình mẹ cĩ lệnh đọc số phần tử n của mảng dayso (tức là số lượng con số sẽ 
nhập vào). Vì mảng Dayso được khai báo cĩ 100 phần tử nên khơng thể đọc vào nhiều quá 
100 con số. 
Sau đĩ là lệnh gọi chương trình con NHAPSO với 2 tham số thực là n, a, ở đây a là 
tham biến nghĩa là giá trị của mảng a sẽ được thay đổi trong chương trình con bởi tham số 
hình thức x[i]. Chương trình con nhập vào tham biến x[i] kiểu mảng n con số thơng qua tham 
trị m (m=n). 
Lệnh viết giá trị lớn nhất của dãy số cĩ kèm lời gọi hàm MAX vì hàm MAX thực chất 
trong trường hợp này chỉ là một con số. 
Hàm MAX dùng để tìm số lớn nhất trong các số đã nhập, lời gọi hàm trong chương 
trình mẹ kèm theo việc truyền hai tham số thực là n và a thay thế cho hai tham số hình thức là 
m và b. Tên hàm được dùng như là một biến trong bản thân hàm khi ta dùng phép gán giá trị 
MAX:=t; 
Chú ý: 
1. Kiểu dữ liệu trong khai báo tham số hình thức chỉ cĩ thể là: số nguyên, số thực, ký 
tự, hoặc Boolean. Nếu muốn đưa các kiểu dữ liệu cĩ cấu trúc vào trong khai báo tham số thì 
phải định nghĩa trước kiểu dữ liệu này ở phần khai báo kiểu sau từ khố Type (xem ví dụ 1.1). 
2. Với kiểu dữ liệu chuỗi, nếu chúng ta khai báo tham số thực trong chương trình mẹ 
và tham biến trong chương trình con đều là STRING (khơng quy định độ dài tối đa của chuỗi) 
thì khơng cần phải định nghĩa trước kiểu dữ liệu ở phần TYPE. ðể thấy rõ vấn đề chúng ta 
xét ví dụ sau đây: 
Ví dụ: 1.2 
Program Chuong_trinh_me; 
Var s:string; m:byte 
Procedure Chuong_trinh_con( Var a:string; n:byte); 
Cách khai báo trên là được phép trong Pascal . 
Nếu chúng ta quy định độ dài chuỗi như một trong ba dạng sau thì sẽ bị báo lỗi: 
Dạng thứ nhất 
Program Chuong_trinh_me; 
Var s:string[30]; m:byte 
Procedure Chuong_trinh_con( Var a:string[30]; n:byte); 
Dạng thứ hai 
Program Chuong_trinh_me; 
Var s:string[30]; m:byte 
Procedure Chuong_trinh_con( Var a:string; n:byte); 
Trường ðại học Nơng nghiệp 1 - Giáo trình Lập trình nâng cao ..............................................................- 8 
Dạng thứ ba 
Program Chuong_trinh_me; 
Var s:string; m:byte 
Procedure Chuong_trinh_con( Var a:string[30]; n:byte); 
Tuy nhiên cĩ một ngoại lệ khi tham số hình thức trong các chương trình con khơng 
phải là tham biến mà là tham trị thì cĩ thể khai báo theo dạng thứ hai. 
Muốn quy định độ dài chuỗi trong các khai báo tham biến thì phải khai báo kiểu dữ 
liệu theo mẫu sau: 
Program Chuong_trinh_me; 
Type S1 = string[30]; 
Var s:s1; m:byte 
Procedure Chuong_trinh_con( Var a:s1; n:byte); 
3. Truyền tham số cho chương trình con 
Trở lại ví dụ 1.1 ta thấy trong mỗi chương trình con cĩ những tham số riêng của mình. 
Chương trình con nhập số đã sử dụng hai tham số hình thức là m và x. Hai tham số này được 
chuẩn bị để nhận các giá trị mà chương trình mẹ truyền cho thơng qua lời gọi chương trình 
con với các tham số thực là n và b. Vì m được khai báo kiểu khơng cĩ từ khố Var nên nĩ là 
tham trị, nghĩa là khi chương trình con kết thúc thì giá trị của tham số thực n vẫn khơng thay 
đổi, tham số x là tham biến vì nĩ được khai báo sau từ khố Var. 
Khi tham số hình thức trong chương trình con là tham biến thì tham số thực trong 
chương trình mẹ phải là biến chứ khơng thể là hằng. Trong mọi trường hợp cả hai tham số 
thực và tham số hình thức đều phải cùng kiểu dữ liệu. 
Các tham số thực truyền cho tham biến thì giá trị của nĩ cĩ thể thay đổi trong chương 
trình con, khi ra khỏi chương trình con nĩ vẫn giữ nguyên các giá trị đã thay đổi đĩ. Trong ví 
dụ 1.1 tham số thực a là một mảng của n phần tử và tất cả các phần tử đều cịn rỗng, khi 
truyền a vào tham biến x thì ở thời điểm ban đầu các phần tử của x cũng rỗng. Phép gán trong 
chương trình con NHAPSO sẽ làm thay đổi giá trị các phần tử của x, sau khỏi ra chương trình 
con nĩ giữ nguyên các giá trị đã gán tức là các giá trị ta nhập từ bàn phím vào các phần tử của 
mảng. 
Khi tham số hình thức là tham trị thì tham số thực phải là một giá trị. Chương trình 
con nhận giá trị này như là giá trị ban đầu và cĩ thể thực hiện các phép tính làm biến đổi giá 
trị đĩ, quá trình này chỉ tác động trong nội bộ chương trình con, khi ra khỏi chương trình con 
giá trị của tham số thực khơng biến đổi. Cụ thể trong ví dụ trên biến n nhận giá trị đọc từ bàn 
phím trong chương trình mẹ và được truyền cho tham số m trong cả hai chương trình con. Sau 
lời gọi chương trình con NHAPSO giá trị này cĩ thể bị thay đổi nhưng khi rời NHAPSO đến 
lời gọi hàm MAX thì n lại vẫn giữ giá trị ban đầu. 
Như vậy nếu muốn bảo vệ giá trị một tham số nào đĩ khi truyền chúng cho chương 
trình con thì phải qui định chúng là tham trị. Cịn nếu muốn nhận lại giá trị mà chương trình 
con đã sinh ra thay thế cho những giá trị ban đầu cĩ trong chương trình mẹ (hoặc là dùng 
những giá trị của chương trình con thay thế cho biến chưa được gán giá trị trong chương trình 
mẹ như vi dụ 1.1) thì tham số phải là tham biến. 
Trường ðại học Nơng nghiệp 1 - Giáo trình Lập trình nâng cao ..............................................................- 9 
ðể thấy rõ hơn ý nghĩa của các tham số chúng ta xét ví dụ sau đây: 
Người mẹ trao cho con trai một chiếc nhẫn và một túi tiền. Trước khi con đi làm ăn ở 
phương xa mẹ dặn: "Chiếc nhẫn là tín vật dùng để nhận lại gia đình và họ hàng khi con trở về, 
cịn túi tiền là vốn ban đầu cho con kinh doanh". 
Trong qúa trình làm ăn, người con cĩ thể cầm cố chiếc nhẫn nhưng khi trở về nhà nhất 
thiết phải mang chiếc nhẫn đĩ về, cịn túi tiền khi quay về cĩ thể nhiều lên cũng cĩ thể ít đi, 
thậm chí khơng cịn đồng nào. Trong ví dụ này chiếc nhẫn đĩng vai trị tham trị, cịn túi tiền 
đĩng vai trị tham biến. 
Vấn đề đặt ra là Pascal làm thế nào để đảm bảo các tính chất của tham trị và tham 
biến. ðiều này sẽ được làm rõ khi nghiên cứu việc bố trí bộ nhớ (mục 5). 
Khi lựa chọn tham số cần lưu ý một số điểm sau: 
a. Kiểu của tham số trong chương trình con phải là các kiểu vơ hướng đơn giản đã 
được định nghĩa sẵn trong Pasacl hoặc đã được định nghĩa trong phần đầu của chương trình 
mẹ. Trong chương trình con khơng thể định nghĩa kiểu dữ liệu mới. 
b. Chương trình con cĩ thực sự cần tham số hay khơng? Nếu chương trình con chỉ sử 
dụng các biến tồn cục và biến địa phương cũng đáp ứng được yêu cầu của bài tốn thì khơng 
nên dùng tham số. Nếu chương trình con thực hiện nhiều cơng việc trên cùng một loại đối 
tượng (đối tượng ở đây cĩ thể là hằng, biến, hàm, thủ tục, kiểu), nghĩa là lời gọi chương trình 
con được lặp lại nhiều lần trên cùng một hoặc một nhĩm đối tượng thì cần dùng đến tham số. 
c. Nếu khơng muốn thay đổi giá trị của các tham số thực trong chương trình mẹ khi 
truyền nĩ cho chương trình con thì phải dùng tham số hình thức dưới dạng tham trị (trong 
phần khai báo kiểu khơng cĩ từ khố Var). Nếu cần thay đổi giá trị của tham số thực trong 
chương trình mẹ và nhận lại giá trị mà chương trình con đã xử lý thì tham số trong chương 
trình con phải là tham biến (tên tham số phải đặt sau từ khố Var). 
4. Biến tồn cục và biến địa phương 
4.1 Biến tồn cục 
Biến khai báo ở đầu chương trình mẹ được gọi là biến tồn cục. Nĩ cĩ tác dụng trong 
tồn bộ chương trình, kể cả các chương trình con. Khi thực hiện chương trình máy dành các ơ 
nhớ ở vùng dữ liệu (Data) để lưu giữ giá trị của biến. 
Mở rộng ra tất cả các đối tượng trong Pascal (Kiểu dữ liệu, Hằng, Biến, Hàm, Thủ 
tục) khai báo trong chương trình mẹ được gọi là đối tượng tồn cục. Như vậy một kiểu dữ liệu 
đã được định nghĩa trong chương trình mẹ thì đương nhiên được phép sử dụng trong các 
chương trình con của nĩ. 
Trong ví dụ 1.1 biến a và n là biến tồn cục, hai biến này cĩ thể sử dụng trực tiếp 
trong thủ tục NHAPSO và trong hàm MAX mà khơng cần khai báo lại. 
Pascal dành các ơ nhớ ở vùng Data (vùng dữ liệu) cho các đối tượng tồn cục. 
4.2 Biến địa phương 
Những đối tượng khai báo trong chương trình con chỉ cĩ tác dụng trong nội bộ 
chương trình con đĩ, chúng được gọi là đối tượng địa phương. ðối tượng hay được sử dụng 
nhất là Biến. 
Trường ðại học Nơng nghiệp 1 - Giáo trình Lập trình nâng cao ..............................................................- 10 
Biến địa phương cĩ thể trùng tên với biến tồn cục song hệ thống dành các ơ nhớ 
trong vùng nhớ ngăn xếp (Stack) để lưu giữ các giá trị của biến. Kết thúc chương trình con hệ 
thống sẽ giải phĩng ơ nhớ của biến địa phương dùng vào việc khác, giá trị của các biến lưu 
trữ trong các ơ nhớ này sẽ khơng cịn. 
 Trường hợp trong chương trình con lại cĩ các chương trình con khác thì biến địa 
phương của chương trình con cấp trên lại được xem là biến tồn cục đối với chương trình con 
cấp dưới. 
Một biến sau khi được khai báo trong một chương trình sẽ chỉ cĩ tầm tác dụng trong 
bản thân chương trình đĩ và các chương trình con của nĩ. Biến này khơng cĩ tác dụng trong 
các chương trình cùng cấp khác hoặc trong các chương trình con của chương trình khác. ðiều 
này cĩ nghĩa là các chương trình con và chươ

Tài liệu đính kèm:

  • pdfGiao_trinh_pascal_nang_cao.pdf