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

Kiểu xâu ký tự

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 (107.05 KB, 6 trang )

– Giạo trçnh Láûp trçnh Pascal càn bn —


52


Trang 52
BI 8. KIÃØU XÁU K TỈÛ
I. Khai bạo v cạc phẹp toạn:
Xáu
(String)
l kiãøu dỉỵ liãûu cọ cáúu trục dng âãø xỉí l cạc xáu k tỉû. Kiãøu
String
cọ nhiãưu âiãøm tỉång tỉû nhỉ kiãøu mng
(Array)
nhỉng cng cọ âiãøm khạc nhau l:
säú k tỉû trong mäüt biãún kiãøu xáu cọ thãø thay âäøi cn säú pháưn tỉí ca kiãøu mng ln
cäú âënh.
1. Khai bạo kiãøu xáu:
VAR
Tãn
_
Biãún : String[n];
Trong âọ:
n
l säú k tỉû täúi âa cọ thãø cọ ca xáu. Chiãưu di täúi âa ca mäüt xáu l
255. Nãúu trong pháưn khai bạo khäng ghi
[n]
thç xáu cọ âäü di màûc âënh l 255.
4 Vê dủ:
Var


HoTen : String[30]; { HoTen cọ thãø chỉïa täúi âa 30 k tỉû }
St : String; { St cọ thãø chỉïa täúi âa 255 k tỉû }
Våïi
St
l mäüt xáu, âãø chè ra cạc k tỉû thỉï
i
ca
St
ta viãút
St[i].
Cạc
St[i]
âãưu cọ
kiãøu
Char
. Vê dủ:
St := ‘ABCD’;
thç lãûnh
Write(St[3])
s in ra k tỉû
‘C’.

Cáúu trục ca
String
nhỉ sau: Trong bäü nhåï nọ chiãúm säú
Byte
bàòng säú k tỉû täúi
âa, cäüng våïi mäüt byte âáưu tiãn
(tải vë trê s[0])
chỉïa k tỉû m m tháûp phán

ASCII
ca k tỉû ny s cho biãút xáu âọ cọ âäü di bao nhiãu.
Chàóng hản biãún
HoTen
bãn trãn âỉåüc gạn giạ trë:
HoTen := ‘Ly Dong Giang’;
Khi âọ, âäü di xáu chè l 13, màûc d âäü di cỉûc âải cho phẹp l 30 nhỉ â khai
bạo. Sau âáy cáúu trục xáu
HoTen
:



Ư
Ghi chụ: K tỉû * biãøu diãùn k tỉû khäng xạc âënh.
2. Nháûp v in xáu k tỉû:
Mún in mäüt xáu k tỉû ta dng lãûnh
Write(St)
hồûc
Writeln(St).
*
Chr(13) L y
D o n
g
G
i

a n
g * *
*

* *........ *
*
* *
9
0
1 2
3
4
5 6 7
8
10
11
12
13 14 15
16
26 28 29
30
27
17
Giaùo trỗnh Lỏỷp trỗnh Pascal cn baớn


53


Trang 53
Lóỷnh
Readln(St)
seợ õoỹc caùc kyù tổỷ cho xỏu
St

vồùi õọỹ daỡi thổỷc sổỷ laỡ sọỳ kyù tổỷ goợ vaỡo
tổỡ baỡn phờm. Nóỳu ta goợ
< Enter >
luọn maỡ khọng nhỏỷp cho noù kyù tổỷ naỡo thỗ
St
laỡ
xỏu rọựng.
4
Vờ duỷ:
Var YourName, st1, st2 : String[40];
Begin
Write( Please enter your name: );
Readln(YourName);
Writeln( Hello , YourName + ! );
st1 := Turbo Pascal ;
st2 := Borlands product is + st1;
Writeln(st2);
Readln;
End.
3. Caùc pheùp toaùn trón xỏu kyù tổỷ:
a. Pheùp gaùn:
Bióỳn := Bióứu_thổùc;
aỷi lổồỹng bón phaới cuớa lóỷnh phaới õổồỹc õỷt giổợa hai dỏỳu nhaùy õồn nóỳu õoù laỡ xỏu ồớ
daỷng hũng. Ta coù thóứ sổớ duỷng dỏỳu cọỹng
(+)
õóứ gheùp caùc xỏu khi gaùn. Vờ duỷ:
HoTen
:= Huynh Ngoc + Nhan;

b. Pheùp nọỳi String:

Kyù hióỷu bũng dỏỳu +.
4 Vờ duỷ: Turbo + Pascal = Turbo Pascal
c. Caùc pheùp toaùn so saùnh:
Khi so saùnh hai xỏu, caùc kyù tổỷ cuớa hai xỏu õổồỹc so saùnh tổỡng cỷp mọỹt tổỡ traùi qua
phaới theo giaù trở trong baớng maợ
ASCII.

4 Vờ duỷ: Nóỳu so saùnh:
ABC = ABC
coù giaù trở
True
.
ABC = AB
coù giaù trở laỡ
False
.
ABCD < ABED
coù giaù trở laỡ
True
.
ABC > AD
coù giaù trở laỡ
False
.
Giaùo trỗnh Lỏỷp trỗnh Pascal cn baớn


54



Trang 54
II. Caùc thuớ tuỷc vaỡ haỡm xổớ lyù xỏu kyù tổỷ:
1. Caùc thuớ tuỷc:
a. Delete(St , Pos, Num):
Trong õoù: - St
(String)
:

Bióỳn kióứu String.
- Pos
(Position)
: Bióỳn kióứu nguyón.
- Num
(Number)
: Bióỳn kióứu nguyón.
Cọng duỷng: Thuớ tuỷc naỡy duỡng õóứ xoùa khoới xỏu
St
mọỹt sọỳ
Num
kyù tổỷ bừt õỏửu tổỡ vở
trờ thổù
Pos.

4 Vờ duỷ: Nóỳu
St = ABCDEFG;
thỗ:
Delete(St, 2, 4);
laỡm cho
St = AFG.
Delete(St, 2, 10);

laỡm cho
St = A.

Delete(St, 9, 3);
laỡm cho
St = ABCDEFG.
b. Insert(St2, St1, Pos):
Trong õoù: -
St2
vaỡ
St1
: Bióỳn kióứu
String.

-
Pos
: Bióỳn kióứu nguyón.
Cọng duỷng: Thuớ tuỷc naỡy duỡng õóứ cheỡn xỏu
St2
vaỡo xỏu
St1
ồớ vở trờ
Pos
. Vờ duỷ:
Nóỳu
St := ABCD
thỗ sau lóỷnh
Insert(TFG, St, 3)
ta nhỏỷn õổồỹc
St := ABTFGCD.

Trổồỡng hồỹp
Pos
vổồỹt quaù chióửu daỡi cuớa
St1
thỗ
St2
seợ õổồỹc nọỳi õuọi vaỡo
St1.
Vờ
duỷ:
St = ABCD
, vỏỷy lóỷnh
Insert(TFG, ST, 9);
seợ laỡm cho
St = ABCDTFG.

c. Str(Value, St):
Trong õoù: -
Value
: Laỡ mọỹt bióứu thổùc nguyón hay thổỷc coù ghi daỷng in ra.
-
St
: Bióỳn kióứu String.
Cọng duỷng: Thuớ tuỷc naỡy duỡng õóứ õọứi giaù trở sọỳ
Value
thaỡnh kióứu xỏu rọửi gaùn cho
St
.
4 Vờ duỷ:
i := 1234;

Str(i:5, St);
{ ta õổồỹc
St = 1234
coù 5

kyù tổỷ }

x :=123.5678901;
Str(x:10:5, St);
{ ta õổồỹc
St = 123.56789
}

d. Val(St, Var, Code):
Trong õoù: -
St
: Bióứu thổùc kióứu String.
-
Var
: Laỡ bióỳn kióứu nguyón hay thổỷc.
-
Code
: Bióỳn kióứu nguyón.
– Giạo trçnh Láûp trçnh Pascal càn bn —


55


Trang 55

Cäng dủng: Th tủc ny âäøi xáu chỉỵ
St (biãøu diãùn åí dảng säú ngun hay thỉûc)
thnh säú v gạn cho biãún
Var
.
Code
l biãún ngun dng âãø phạt hiãûn läùi: nãúu phẹp
biãún âäøi âụng thç
Code
cọ giạ trë
0
, nãúu sai do
St
khäng biãøu diãùn âụng säú ngun
hay thỉûc thç
Code
s cọ giạ trë bàòng vë trê ca k tỉû sai trong xáu
St
. Vê dủ:
Gi sỉí:
St := ‘234’
,
i
v
e
l hai biãún ngun.
Val(St, i, e);
{ cho ta
i = 234
v

e = 0
}
Nãúu
St := ‘21x’
thç
Val(St, i, e)
{ cho ta i khäng xạc âënh v
e = 3
, tỉïc l k tỉû thỉï
ba gáy ra läùi }
4 Vê dủ vãư mäüt ỉïng dủng cọ sỉí dủng th tủc Val âãø âc säú ngun tỉì bn phêm.
Bçnh thỉåìng ta dng th tủc
Readln(i)
âãø âc säú ngun
i
. Song nãúu nãúu trong lục
nháûp säú, ta chàóng may g nháưm chỉỵ cại vo thç mạy dỉìng lải, cọ thãø gáy lng phê
thåìi gian. Th tủc dỉåïi âáy cọ thãø bạo läùi nãúu ta nháûp mäüt säú cọ chỉỵ trong säú âọ.
Procedure InputInteger(Var i : Integer);
Var
St : String[6];
e : Integer;
Begin
Repeat
Readln(St); { Nháûp vo xáu säú ngun }
Val(St, i, e); { Biãún âäøi v phạt hiãûn läùi }
If e < > 0 then
Writeln(#7, ’ Loi nhap lieu ! ‘);
Until e = 0;
End;

2. Cạc hm:
a. Length(St): cho ta âäü di ca biãøu thỉïc xáu k tỉû
St
. Vê dủ: våïi
St = ‘’ABCDEFG’
thç
Length(St)
s tr vãư giạ trë
7
.
b. Copy(St, Pos, Num):
Trong âọ: -
St
: Biãøu thỉïc kiãøu xáu k tỉ.û
-
Pos,Num
: Biãøu thỉïc kiãøu ngun.
Hm ny tr vãư cho ta mäüt xáu måïi tỉì xáu
St
, hm bàõt âáưu chẹp tỉì vë trê
Pos
v
chẹp
Num
k tỉû. Vê dủ:
St = ‘ABCDEF’
thç lãûnh
Copy(St, 3, 2) = ‘CD’
v
Copy(St,

4, 10)
cho ta
‘DEF’.

Giaùo trỗnh Lỏỷp trỗnh Pascal cn baớn


56


Trang 56

Ghi chuù:
- Nóỳu
Pos + Num > Length(St)
thỗ haỡm seợ traớ vóử caùc kyù tổỷ trong xỏu
St.

- Nóỳu
Pos > Length(St)
thỗ haỡm
Copy
seợ traớ vóử cho ta mọỹt xỏu rọựng.
c. Concat(St
1
, St
2
,..., St
n
): Haỡm naỡy duỡng õóứ gheùp tỏỳt caớ caùc xỏu kyù tổỷ

St1, St2,...,
St
n

thaỡnh mọỹt xỏu theo thổù tổỷ caùc õọỳi sọỳ cung cỏỳp cho haỡm.
ệ Ghi chuù:
- Sọỳ lổồỹng õọỳi cuớa haỡm
Concat
phaới
>= 2.

- Nóỳu tọứng sọỳ chióửu daỡi caùc xỏu
> 255
thỗ maùy seợ baùo lọựi.
- Coù thóứ duỡng pheùp cọỹng
(+)
õóứ gheùp xỏu kyù tổỷ. Vờ duỷ:
St :=Concat(St1,St2 +
N);

d. Pos(St1, St2):
Trong õoù:
St1, St2
laỡ bióứu thổùc xỏu kyù tổỷ.
Haỡm naỡy traớ vóử sọỳ nguyón bióứu dióựn vở trờ õỏửu tión cuớa
St1
gỷp trong xỏu
St2
.
Nóỳu khọng tỗm thỏỳy thỗ

Pos = 0.

4
Vờ duỷ: nóỳu
St := ABCDEFGBCD
thỗ
Pos(DE,St) = 4, Pos(BCD,St) = 2,
Pos(XY,St) = 0.

4
Vờ duỷ 1: Vióỳt chổồng trỗnh nhỏỷp vaỡo tổỡ baỡn phờm mọỹt xỏu kyù tổỷ vaỡ in ra maỡn
hỗnh xỏu kyù tổỷ ngổồỹc tổồng ổùng. Vờ duỷ: nhỏỷp
TRUNG TAM CONG NGHE
AVNET
maùy in ra
TENVA EHGN GNOC MAT GNURT.

Program DaoChuoi;
Uses CRT;
Var
Cau : String[80];
i : Byte;
Begin
Wite( Nhap vao mot cau : );
Readln(Cau);
For i := Length(Cau) DownTo 1 do
Write(Cau[i]);
Readln;
End.

Tài liệu bạn tìm kiếm đã sẵn sàng tải về

Tải bản đầy đủ ngay
×