Professional Documents
Culture Documents
1. C¸c c©u lÖnh sau, c©u nµo sai cau nµo ®óng?
Write(‘Hoi Tin Hoc Viet Nam’); Write(‘Co so Tin hoc Hai
Quang’);
Wirte(‘Xin Chao Cac Ban’); Realn(m);
2. KiÓm tra l¹i ch¬ng tr×nh sau sai chç nµo? Söa l¹i cho ®óng.
Var a,b,c:Integer; cc:Char; tong:Real;
Begin
Writeln(‘CHUONG TRINH KIEM TRA KIEN THUC BAI CU’)
Write(‘Moi ban nhap so a: ’); Readln(a);
Write(‘Moi ban nhap so d: ’); Readln(tong);
c:=a+tong; cc:=a; c:=5;
Write(‘Tong hai so tren la: ’,c);
Readln;
Trang 2 Ng«n ng÷ lËp tr×nh Turbo PASCAL - Biªn so¹n: Phan
ChÝ HiÕu
Trung t©m tin häc minh trÝ 75 B¹ch liªu -
Vinh
038 3556012 - 0904 778809
End.
Trang 4 Ng«n ng÷ lËp tr×nh Turbo PASCAL - Biªn so¹n: Phan
ChÝ HiÕu
Trung t©m tin häc minh trÝ 75 B¹ch liªu -
Vinh
038 3556012 - 0904 778809
a1 x + b1 y + c1 = 0
a 2 x + b 2 y + c 2 = 0
13. ViÕt ch¬ng tr×nh nhËp vµo mét sè nguyªn n tõ bµn phÝm
(0<n<=10). In ra mµn h×nh tõ tiÕng Anh cña sè ®ã.
k
14. TÝnh tæ hîp chËp k cña n ( C n ).
S = 1 + 2! + 3! + 4! . . . +n! (n<=13)
Trang 6 Ng«n ng÷ lËp tr×nh Turbo PASCAL - Biªn so¹n: Phan
ChÝ HiÕu
Trung t©m tin häc minh trÝ 75 B¹ch liªu -
Vinh
038 3556012 - 0904 778809
5. NhËp vµo mét ma trËn vu«ng cÊp m c¸c phÇn tö nguyªn. Vµ
thùc hiÖn c¸c c«ng viÖc sau:
- In ra m¶ng míi víi c¸c phÇn tö lµ c¸c sè ®¶o t¬ng øng cña
m¶ng ban ®Çu.
- TÝnh tæng b×nh ph¬ng c¸c phÇn tö trªn ®êng chÐo chÝnh.
- TÝnh tæng nghÞch ®¶o cña c¸c phÇn tö trªn ®êng chÐo
phô.
- TÝnh tæng tÊt c¶ c¸c sè hoµn h¶o cña ma trËn
- TÝnh b×nh qu©n c¸c sè nguyªn tè cña ma trËn
6. NhËp vµo m¶ng mét chiÒu c¸c sè nguyªn, thùc hiÖn c¸c c«ng
viÖc sau:
- TÝnh c¨n bËc hai cña tæng c¸c phÇn tö cã chØ sè chia cho 3
d 2. (m¶ng cã >10 phÇn tö)
- TÝnh tæng c¨n bËc hai cña c¸c phÇn tö cã chØ sè chia cho 4
d 3.
7. NhËp vµo hai tËp hîp c¸c sè thùc (gäi lµ tËp A vµ tËp B), mçi
tËp hîp cã Ýt nhÊt lµ 5 phÇn tö.
- X¸c ®Þnh giao cña hai tËp hîp A vµ B
- X¸c ®Þnh hîp cña hai tËp hîp trªn.
- X¸c ®Þnh phÇn bï cña B trong A (HoÆc A trong B)
Ng«n ng÷ lËp tr×nh Turbo PASCAL - Biªn so¹n: Phan Trang 7
ChÝ HiÕu
Trung t©m tin häc minh trÝ 75 B¹ch liªu -
Vinh
038 3556012 - 0904 778809
1.1 C¸ch khai b¸o
+ Khai b¸o gi¸n tiÕp:
Type Tenkhieu = String[n];
Var Tenbien: Tenkieu;
Trong ®ã, String lµ tõ kho¸; n lµ ®é dµi tèi ®a cña chuçi stn;
1<=n<=255. Trêng hîp n=255 ta kh«ng cÇn ph¶i khai b¸omµ ta
chØ cÇn khai b¸o víi tõ kho¸ String;
+ Khai b¸o trùc tiÕp:
Var st:String[n].
Khi gÆp khai b¸o nh trªn, ta ®îc chuçi st, cã ®é dµi tèi ®a lµ n ký
tù. NÕu nhËp d÷ liÖu cho chuçi st mµ nhiÒu h¬n n ký tù, Pascal sÏ tù
®éng c¾t bá c¸c ký tù ë vÞ trÝ n+1.
1.2 Truy xuÊt vµ truy nhËp d÷ liÖu kiÓu chuçi
V× chuçi ký tù lµ lµ mét m¶ng bao gåm mét sè ký tù nªn ta cã
thÓ coi ®©y lµ mét m¶ng c¸c phÇn tö kiÓu Character ®Ó truy
nhËp ®Õn tõng ký tù cña chuçi nh c¸ch truy nhËp, truy xuÊt cña
m¶ng mét chiÒu. Ngoµi ra, th«ng thêng ta truy nhËp, truy xuÊt
biÕn kiÓu chuçi ký tù th«ng qua tªn biÕn.
VÝ dô:
Var st:String[100];{st:array[1..100] Of Char;}
{Var st:array[1..100] of char}
Begin
St:= ‘Cong hoa’;
Write(‘Chuoi st cua ban la:’ ,st);
Write(‘Ky tu thu ba cua chuoi do la: ‘,st[3]);
St[2]:=’a’;
Write(‘Chuoi st moi la: ‘,st);
Trang 8 Ng«n ng÷ lËp tr×nh Turbo PASCAL - Biªn so¹n: Phan
ChÝ HiÕu
Trung t©m tin häc minh trÝ 75 B¹ch liªu -
Vinh
038 3556012 - 0904 778809
Readln;
End.
2. C¸c phÐp to¸n trªn chuçi ký tù
2.1 PhÐp g¸n
Ta cã thÓ thùc hiÖn phÐp g¸n trong chuçi ký tù nh c¸c kiÓu d÷
liÖu kh¸c.
VÝ dô: st:=‘Hello’;st1:=‘Pascal’; st2:=’I’’ m a teacher’;
Chó ý:
H»ng chuçi ký tù ®îc ®Æt gi÷a cÆp dÊu nh¸y (‘’). DÊu nh¸y
trong chuçi h»ng ®îc ký hiÖu b»ng hai dÊu nh¸y (‘’); Trong vÝ dô
trªn, chuçi st2 cã gi¸ trÞ lµ: I’ m a teacher.
2.2 PhÐp ghÐp nèi chuçi
Pascal cho phÐp ngêi lËp tr×nh cã thÓ ghÐp nãi c¸c chuçi ng¾n
thµnh mét chuçi dµi theo thø tù c¸c chuçi ghÐp nèi.
VÝ dô:
St1:= ‘Hello’;st2:= ‘How are you?’
St:=st1+ ‘ ’+st2;
Khi ®ã, chuçi st cã gi¸ trÞ lµ: ‘Hello How are you?’
(§Ó ghÐp nèi chuçi, Pascal dïng to¸n tö + ).
Ng«n ng÷ lËp tr×nh Turbo PASCAL - Biªn so¹n: Phan Trang 9
ChÝ HiÕu
Trung t©m tin häc minh trÝ 75 B¹ch liªu -
Vinh
038 3556012 - 0904 778809
St:=’ABCD’;st1:=’ABDC’ th× st<st1.
St=’ABCD’; st1=’ABCDA’ Th× st<st1.
St:=’ABCD’;st1:=’aBCD’ th× st<st1.
3. Mét sè thñ tôc, hµm trªn chuçi ký tù.
3.1 Hµm x¸c ®Þnh ®é dµi chña chuçi
Tªn hµm: Length
D¹ng hµm: Length(st);
KÕt qu¶: Cho ®é dµi thùc cña chuçi st.
3.2 Hµm sao chÐp chuçi ký tù
Tªnhµm: Copy
D¹ng hµm: Copy(st,m,n);
KÕt qu¶: Cho mét chuçi cã n ký tù, lÊy tõ ký tù thø m chña chuçi
st.
VÝ dô:
Var st,st1:=string[200];
Begin
St:=’ABCDEF’;
Write(‘Do dai cua chuoi st la: ’, Length(st));
St1:=Copy(st,3,2);
Write(‘Chuoi s1 co gia tri la: ‘,st1);
Readln;
End.
3.3 Thñ tôc xo¸ mét sè ký tù trong chuçi
Tªn thñ tôc: DELETE
Trang 10 Ng«n ng÷ lËp tr×nh Turbo PASCAL - Biªn so¹n: Phan
ChÝ HiÕu
Trung t©m tin häc minh trÝ 75 B¹ch liªu -
Vinh
038 3556012 - 0904 778809
D¹ng thñ tôc: Delete(st,m,n);
KÕt qu¶: Xo¸ ®i n ký tù cña chuçi st, tõ vÞ trÝ thø m.
VÝ dô: st:=’ABCDEFGH’;
Delete(st,3,4);
Write(st);
3.4 Thñ tôc chÌn thªm mét sè ký tù vµo chuçi
Tªn thñ tôc: INSERT
D¹ng thñ tôc: Insert (st1,st2,n);
KÕt qu¶: ChÌn chuçi st2 vµo chuçi st1, t¹i vÞ trÝ n (cña chuçi st1)
VÝ dô:
St1:= ‘ABCGH’; st2:= ‘DEF’;
Insert(st1,st2,4);
Write(st1);
3.5 Thñ tôc ®æi sè thµnh chuçi
Tªn thñ tôc: STR
D¹ng thñ tôc: Str(n,st);
KÕt qu¶: §æi sè n thµnh chuçi st víi c¸c ký tù cña chuçi nµy lµ
tÊt c¶ c¸c ch÷ sè cña sè n.
VÝ dô:
N:=12345; Str(n,st);{12345=>’12345’}
Write(st);{st=’12345’}
Write(st[3]);
Ng«n ng÷ lËp tr×nh Turbo PASCAL - Biªn so¹n: Phan Trang 11
ChÝ HiÕu
Trung t©m tin häc minh trÝ 75 B¹ch liªu -
Vinh
038 3556012 - 0904 778809
Tªn thñ tôc: VAL
D¹ng thñ tôc: Val(st,n,code);
KÕt qu¶: §æi chuçi sè st thµnh sè n. NÕu ®æi ®îc, Code cã gi¸
trÞ b»ng 0. NÕu kh«ng ®æi ®îc, Code cã gi¸ trÞ b»ng vÞ trÝ cña ký
tù sai trong chuçi st; n b»ng 0.
VÝ dô:
Val(‘123.45’,m,n);{m=123.45}
K:=m+15;{k=138.45}
Write(m:8:2, k:8:2);{In ra sè 123.45 vµ 138.45}
Val(‘123.34.45’,m,n); {cho: n=7; m=0)
K:=m+10;{k=10;}
Write(k);
Lu ý:
- NÕu sö dông khai b¸o chuçi ký tù trong danh s¸ch ®èi sè cña
CTC th× ta phai khai b¸o b»ng ®Þnh nghÜa kiÓu cho chuçi
ký tù cÇn sö dông ë ch¬ng tr×nh chÝnh bëi tõ kho¸ TYPE.
VÝ dô:
Type ht20=String[20];
Var st,st1:ht20;
Procedure Thutc( var xau:ht20;m,n:integer);
......
(C¸ch sö dông: Procedure Thutuc(Var
xau:string[20];m,n:Integer); lµ sai)
Bµi tËp
Trang 12 Ng«n ng÷ lËp tr×nh Turbo PASCAL - Biªn so¹n: Phan
ChÝ HiÕu
Trung t©m tin häc minh trÝ 75 B¹ch liªu -
Vinh
038 3556012 - 0904 778809
1. ViÕt ch¬ng tr×nh nhËp vµo mét x©u ký tù. KiÓm tra xem ®ã
cã ph¶i lµ x©u sè hay kh«ng?
2. Mét chuçi ®îc gäi lµ Paladom nÕu chuçi ®ã ®èi xøng qua g-
¬ng. LËp ch¬ng tr×nh nhËp vµo mét chuçi ký tù, kiÓm tra xem
chuçi ®ã cã ph¶i lµ chuçi Paladom hay kh«ng?
3. NhËp vµo danh s¸ch tªn cña mét líp häc sinh. S¾p xÕp danh
s¸ch ®ã theo Alfabet cña tªn.
4. NhËp vµo mét sè nguyªn trong kho¶ng 10 ®Õn 1000. §äc sè
®ã.
VÝ dô: NhËp sè 9203 th× ®äc ra lµ sè ChÝn ngh×n hai tr¨m linh
ba.
TÝnh tæng c¸c ch÷ sè cña sè ®ã ( sè 9203 cã tæng c¸c ch÷ sè
lµ 14).
5. ViÕt ch¬ng tr×nh nhËp vµo mét x©u ký tù gåm c¸c tõ. LËp
mét thñ tôc ®Ó lo¹i bá c¸c ký tù trèng v« nghÜa.
6. ViÕt ch¬ng tr×nh nhËp vµo mét x©u tõ bµn phÝm. H·y ®Õm
trong x©u ®ã cã bao nhiªu tõ? (Tõ lµ mét d·y liªn tôc c¸c ký tù
kho¸c kho¶ng tr¾ng).
7. ViÕt ch¬ng tr×nh In ra mµn h×nh mét dßng ch÷ ch¹y liªn tôc
tõ ph¶i qua tr¸i mµn h×nh cho ®Õn khi gâ mét phÝm bÊt kú.
8. NhËp mét x©u S tõ bµn phÝm. X©u S gåm n sè thùc ®îc viÕt
c¸ch nhau bëi dÊu phÈy, vÝ dô S= ‘1.23,3.45,-0.85,9.098,-5.78’. H·y
chuyÓn c¸c sè tõ x©u S vµo m¶ng sè thùc A[n].
9. NhËp tõ bµn phÝm mét x©u ký tù S. XÐt xem cã hay kh«ng
mét x©u X (cã ®é dµi nhá nhÊt) sao cho S lµ ghÐp cña mét sè lÇn
liªn tiÕp tõ X. VÝ dô: S = ‘abcabcabcabc’ th× X = ‘abc’; cßn nÕu S
= ‘abcac’ th× kh«ng cã x©u X. Th«ng b¸o kÕt qu¶ ra mµn h×nh.
Ng«n ng÷ lËp tr×nh Turbo PASCAL - Biªn so¹n: Phan Trang 13
ChÝ HiÕu
Trung t©m tin häc minh trÝ 75 B¹ch liªu -
Vinh
038 3556012 - 0904 778809
10. NhËp tõ bµn phÝm hai x©u S1 vµ S2. XÐt xem cã hay
kh«ng mét x©u X sao cho c¶ S1 vµ S2 ®Òu lµ ghÐp cña mét sè lÇn
liªn tôc tõ x©u X (cã ®é dµi nhá nhÊt). Thån b¸o kÕt qu¶.
11. NhËp vµo tõ bµn phÝm hai x©u S1 vµ S2. H·y xÐt xem cã
hay kh«ng S1 (S2) cã ®îc nhËn tõ S2 (S1) b»ng c¸ch g¹ch ®i mét sè
ký tù hay kh«ng?
Trang 14 Ng«n ng÷ lËp tr×nh Turbo PASCAL - Biªn so¹n: Phan
ChÝ HiÕu
Trung t©m tin häc minh trÝ 75 B¹ch liªu -
Vinh
038 3556012 - 0904 778809
t1: K1;
t2: K2;
t3: K3;
.......
tn: Kn;
END;
VÝ dô: Mét ®Þa chØ nhµ bao gåm c¸c d÷ liÖu: Sè nhµ, tªn phè,
tªn thµnh phè, tªn TØnh; ta m« t¶ mét kiÓu RECORD cã tªn lµ
Dia_chi nh sau:
TYPE
Dia_chi = RECORD
So_nha: Integer;
Ten_Pho: String[30];
Ten_TPho: String[15];
Ten_Tinh: String[20];
END;
§Ó m« t¶ thêi gian (DATE), ta cã 3 trêng: Ngµy, Th¸ng vµ n¨m, ta
m« t¶ nh sau:
TYPE
DATE = RECORD
Ngay: 1 . . 31;
Thang: 1 . . 12;
Nam: Integer;
END;
Ng«n ng÷ lËp tr×nh Turbo PASCAL - Biªn so¹n: Phan Trang 15
ChÝ HiÕu
Trung t©m tin häc minh trÝ 75 B¹ch liªu -
Vinh
038 3556012 - 0904 778809
TYPE
Nhansu = RECORD
Hoten: String[35];
Ngaysinh: DATE;
Diachi: Dia_chi;
Heso,lc: Real;
END;
3. Truy xuÊt – truy nhËp
§Ó truy xuÊt – truy nhËp ®Õn tõng trêng cña mét RECORD, ta
dïng tªn biÕn B¶n ghi, sau ®ã ®Õn dÊu chÊm (.) vµ tªn trêng.
VÝ dô:
VAR
Nguoi, nguoi1: Nhansu;
BEGIN
Write(‘Mêi nhËp Hä vµ tªn : ’);Readln(Nguoi.Hoten);
Write(‘Mêi nhËp N¨m sinh: ’); Readln(Nguoi.Ngaysinh.nam);
Writeln(‘Mêi nhËp ®Þa chØ: ’);
Write(‘ Sè nhµ: ’); Readln(Nguoi.Diachi.So_nha);
Write(‘ Tªn phè: ’); Readln(Nguoi.Diachi.Ten_pho);
Write(‘ Thµnh phè: ’); Readln(Nguoi.Diachi.Ten_Tpho);
Write(‘ TØnh: ’); Readln(Nguoi.Diachi.Ten_Tinh);
Write(‘Mêi nhËp hÖ sè l¬ng: ’);Readln(Nguoi.heso);
Nguoi.lc:=Nguoi.heso*290000; Nguoi1:=Nguoi;
Trang 16 Ng«n ng÷ lËp tr×nh Turbo PASCAL - Biªn so¹n: Phan
ChÝ HiÕu
Trung t©m tin häc minh trÝ 75 B¹ch liªu -
Vinh
038 3556012 - 0904 778809
...............................................
END.
4. C©u lÖnh With
D¹ng lÖnh:
With <BienBanghi> Do <LÖnh>;
VÝ dô:
VAR
Nguoi, nguoi1: Nhansu;
BEGIN
With Nguoi Do
Begin
Write(‘Mêi nhËp Hä vµ tªn : ’);Readln(Hoten);
With Ngaysinh Do
Begin
Write(‘Mêi nhËp N¨m sinh: ’); Readln(nam);
End;
With Diachi Do
Begin
Writeln(‘Mêi nhËp ®Þa chØ: ’);
Write(‘ Sè nhµ: ’); Readln(So_nha);
Write(‘ Tªn phè: ’); Readln(Ten_pho);
Write(‘ Thµnh phè: ’); Readln(Ten_Tpho);
Write(‘ TØnh: ’); Readln(Ten_Tinh);
End;
Write(‘Mêi nhËp hÖ sè l¬ng: ’);Readln(heso);
Ng«n ng÷ lËp tr×nh Turbo PASCAL - Biªn so¹n: Phan Trang 17
ChÝ HiÕu
Trung t©m tin häc minh trÝ 75 B¹ch liªu -
Vinh
038 3556012 - 0904 778809
lc:=heso*290000;
End;
Nguoi1:=Nguoi;
Bµi tËp
1. ViÕt ch¬ng tr×nh nhËp vµo hä tªn, §iÓm To¸n, Lý, Ho¸ vµ
trung b×nh cña häc sinh mét líp. Trong ®ã trung b×nh =
(§iÓm to¸n + ®iÓm lý + ®iÓm ho¸)/3.
a) In danh s¸ch theo thø tù t¨ng dÇn cña ®iÓm trung b×nh.
b) In danh s¸ch theo thø tù t¨ng dÇn cña Tªn.
c) In danh s¸ch häc sinh cã ®iÓm trung b×nh tõ 5 trë lªn.
d) In danh s¸ch häc sinh giái. Häc sinh giái lµ häc sinh cã ®iÓm
trung b×nh trªn 8 vµ ®iÓm c¸c m«n ph¶i tõ 7 trë lªn.
e) In danh s¸ch häc sinh ph¶i kiÓm tra l¹i tõng m«n.
Ghi chó: Mçi häc sinh ph¶i ®îc in trªn mét dßng víi ®Çy ®ñ c¸c
trêng. C¸c gi¸ trÞ cïng mét trêng ph¶i th¼ng trong mét cét.
Trang 18 Ng«n ng÷ lËp tr×nh Turbo PASCAL - Biªn so¹n: Phan
ChÝ HiÕu
Trung t©m tin häc minh trÝ 75 B¹ch liªu -
Vinh
038 3556012 - 0904 778809
Bµi 9 D÷ liÖu kiÓu tÖp (File)
1. Khai b¸o
Ng«n ng÷ lËp tr×nh Turbo PASCAL - Biªn so¹n: Phan Trang 19
ChÝ HiÕu
Trung t©m tin häc minh trÝ 75 B¹ch liªu -
Vinh
038 3556012 - 0904 778809
vÞ trÝ cuèi cïng hay cha. NÕu con trá cha ë cuèi th× hµm cã gi¸ trÞ
lµ FALSE.
ViÖc ph©n lo¹i tÖp ®îc dùa trªn viÖc bè trÝ c¸c phÇn tö cña tÖp
trong bé nhí ngoµi vµ c¸ch truy cËp vµo tÖp: TÖp truy cËp tuÇn
tù (B¨ng tõ)vµ TÖp truy cËp ngÉu nhiªn (§Üa tõ, ®Üa quang).
3. Më tÖp míi ®Ó lu d÷ liÖu
§Ó t¹o mét tÖp ®Ó lu d÷ liÖu, Pascal dïng 02 thñ tôc ®i liÒn
nhau theo thø tù:
ASSIGN(Bien_Tep, Ten_Tep);
REWRITE(Bien_Tep);
§Ó ghi d÷ liÖu vµo tÖp, ta dïng lÖnh WRITE, víi có ph¸p nh sau:
Write(Bien_Tep, Danh s¸ch c¸c gi¸ trÞ cÇn ghi vµo);
Bíc cuèi cïng cña viÖc ghi d÷ liÖu vµo tÖp lµ ph¶i ®ãng tËp
b»ng thñ tôc CLOSE(Bien_Tep);
Chó ý: C¸c gi¸ trÞ ®îc ghi vµo ph¶i cã cïng kiÓu víi kiÓu phÇn
tö cña tÖp. Khi mét tÖp ®îc më ®Ó ghi th× tÖp ®ã lµ tÖp rçng,
nÕu tÖp ®ã ®· tån t¹i th× tÖp cò sÏ bÞ xo¸. V× vËy, cÇn kiÓm tra
sù tån t¹i cña mét tÖp tríc khi më ®Ó ghi.
VÝ dô: §Ó ghi c¸c sè nguyªn tõ 10 ®Õn 100 vµo mét tÖp cã tªn
lµ SONGUYEN.DAT, ta dïng ®o¹n ch¬ng tr×nh nh sau:
PROGRAM TAO_TEP;
VAR i:Integer;
f: FILE OF Integer;
BEGIN
ASSIGN(f, “SONGUYEN.DAT”);
REWRITE(f);
Trang 20 Ng«n ng÷ lËp tr×nh Turbo PASCAL - Biªn so¹n: Phan
ChÝ HiÕu
Trung t©m tin häc minh trÝ 75 B¹ch liªu -
Vinh
038 3556012 - 0904 778809
For i:=10 to 1000 do Write(f,i);
CLOSE(f);
End.
Mét tÖp cã thÓ lµm tham sè cña CTC víi lêi khai b¸o b¾t buéc
ph¶i sau tö kho¸ Var. Tøc lµ tÖp ®îc dïng lµm tham biÕn.
4. §äc d÷ liÖu tõ tÖp ®· cã
§Ó ®äc d÷ liÖu tõ mét tÖp, Pascal dïng 02 thñ tôc ®i liÒn nhau
theo thø tù:
ASSIGN(Bien_Tep, Ten_Tep);
RESET(Bien_Tep);
§Ó ®äc d÷ liÖu tõ tÖp, ta dïng lÖnh READ, víi có ph¸p nh sau:
Read(Bien_Tep, Danh s¸ch c¸c biÕn cÇn lÊy gi¸ trÞ);
Chó ý: C¸c biÕn ®îc lÊy gi¸ trÞ ph¶i cã cïng kiÓu víi kiÓu phÇn
tö cña tÖp. Ta chØ cã thÓ ®äc gi¸ trÞ cña tÖp ®Ó g¸n vµo c¸c biÕn
vµ chØ cho c¸c biÕn mµ th«i. Tríc khi ®äc d÷ liÖu ph¶i kiÓm tra
xem con trá tÖp ®· ë cuèi tÖp hay cha. NÕu cha ë cuèi tÖp th× míi
®äc ®îc. NÕu trá tÖp ®· ë cuèi tÖp mµ vÉn cè t×nh ®äc th× sÏ
g©y ra lçi.
Sau khi ®äc tÖp xong nªn ®ãng tÖp l¹i nh viÖc ghi d÷ liÖu vµo
tÖp b»ng thñ tôc CLOSE(Biªn_Tep).
VÝ dô: §Ó ®äc c¸c sè nguyªn vµ in ra mµn h×nh c¸c gÝ trÞ cña
nã tõ tÖp cã tªn lµ SONGUYEN.DAT, ta dïng ®o¹n ch¬ng tr×nh nh
sau:
PROGRAM TAO_TEP;
VAR i:Integer;
f: FILE OF Integer;
Ng«n ng÷ lËp tr×nh Turbo PASCAL - Biªn so¹n: Phan Trang 21
ChÝ HiÕu
Trung t©m tin häc minh trÝ 75 B¹ch liªu -
Vinh
038 3556012 - 0904 778809
BEGIN
ASSIGN(f, “SONGUYEN.DAT”);
RESET(f);
While NOT EOF(f) do
Begin Read(f,i); Write(i:8); End;
CLOSE(f);
End.
5. TÖp truy cËp trùc tiÕp
Ta cã thÓ dïng lÖnh SEEK(Bien_Tep,No), víi No lµ sè thø tù cña
phÇn tö trong tÖp (PhÇn tö ®Çu tiªn cña tÖp ®îc ®¸nh sè lµ 0).
6. C¸c CTC xö lý tÖp trong Pascal
FileSize (Bien_Tep): Hµm cho biÕt sè phÇn tö cña tÖp.
FilePos(Bien_Tep): Hµm cho biÕt vÞ trÝ hiÖn thêi cña con trá
tÖp.
Erase(Bien_Tep): Thñ tôc xo¸ tÖp trªn ®Üa ®îc Ên ®Þnh víi
Bien_Tep.
Rename(Bien_Tep,Ten_Tep): Thñ tôc ®æi tªn tÖp ®îc Ên ®Þnh
víi Bien_Tep thµnh tÖp míi cã tªn lag Ten_Tep.
7. TÖp v¨n b¶n
Trong Pascal cã mét kiÓu tÖp ®· ®îc ®Þnh nghÜa tríc, ®ã lµ
tÖp v¨n b¶n ®îc ®Þnh nghÜa víi tõ kho¸ TEXT.
Khai b¸o: Var f,f1,f2: TEXT;
Trang 22 Ng«n ng÷ lËp tr×nh Turbo PASCAL - Biªn so¹n: Phan
ChÝ HiÕu
Trung t©m tin häc minh trÝ 75 B¹ch liªu -
Vinh
038 3556012 - 0904 778809
Writeln(Bien_Tep, Danh s¸ch c¸c gi¸ trÞ);
Writeln(Bien_Tep);
Lu ý: Trong danh s¸ch c¸c gi¸ trÞ ®ã kh«ng ®îc cã biÕn kiÓu
cÊu tróc.
Bµi tËp
1. ViÕt ch¬ng tr×nh ghi vµo mét tÖp c¸c sè nguyªn ®îc nhËp
tõ bµn phÝm.
2. ViÕt ch¬ng tr×nh ghi d÷ liÖu vµo mét tÖp T3 chøa c¸c sè
nguyªn b»ng c¸ch ghÐp nèi hai tÖp sè nguyªn T1 vµ T2.
3. ViÕt ch¬ng tr×nh ®Õm sè ch÷ c¸i trong mét tÖp v¨n b¶n.
4. ViÕt ch¬ng tr×nh ®Õm sè tõ trong mét tÖp v¨n b¶n
Ng«n ng÷ lËp tr×nh Turbo PASCAL - Biªn so¹n: Phan Trang 23
ChÝ HiÕu
Trung t©m tin häc minh trÝ 75 B¹ch liªu -
Vinh
038 3556012 - 0904 778809
5. Cho mét tÖp v¨n b¶n ®· cã s½n. ViÕt ch¬ng tr×nh ®Õm sè
lÇn xuÊt hiÖn cña mét ch÷ c¸i trong tÖp v¨n b¶n ®ã.
6. ViÕt ch¬ng tr×nh qu¶n lý c¸n bé trong mét c¬ quan. Trong
®ã, ch¬ng tr×nh cho phÐp thªm c¸n bé, cËp nhËt d÷ liÖu
cña mét c¸n bé nµo ®ã vµ cã thÓ In ra danh s¸ch c¸n bé.
Híng dÉn: Ch¬ng tr×nh qu¶n lý c¸n bé gåm c¸c th«ng tin sau:
Thø tù, hä tªn, n¨m sinh, hÖ sè l¬ng. Sö dông c¸c Modul ch¬ng
tr×nh (CTC) ®Ó thùc hiÖn c¸c c«ng viÖc: Thªm, bít, CËp nhËt, In
danh s¸ch.
Trang 24 Ng«n ng÷ lËp tr×nh Turbo PASCAL - Biªn so¹n: Phan
ChÝ HiÕu