You are on page 1of 12

XU K T (STRING)

Mt dy k t t trong cp nhy n gi l mt hng xu.


Di y l cc hng xu:
Tin hoc
12345
Ngon ngu FreePascal
Bng m ASCII (American Standard Code for Information Interchange)

I. Khai bo kiu STRING


VAR

Tn bin : STRING[Max];

Trong Max l s k t ti a c th cha trong xu (Max


[0,255]). Nu khng c khai bo [Max] th s k t mc nh trong xu l
255.
V d:
Var Name: String[8]; //Name cha ti a 8 k t
Line: String[80];//Line cha ti a 80 k t

st: String; //St c ti a l 255 k t


VAR

Tn bin : ANSISTRING; //Trong FreePascal

S lng k t trong kiu AnsiString ch ph thuc vo dung lng


a cng.
V d: st :=TIN HOC;
II. Truy xut d liu kiu STRING
- C th s dng cc th tc xut nhp Write, Writeln, Readln
truy xut cc bin kiu String.
V d: Readln(st); //Nhp d liu cho xu st
- truy xut n k t th k ca xu k t, ta s dng c php
sau: Tnbin[k].
V d:

st[3] cho ta k t l: N
III. Cc php ton trn xu k t
3.1. Php ni xu: +
Cc xu c th c ghp ni vi nhau nh php cng xu. Khi
cng (+) hai xu ta c mt xu duy nht bng cch ghp xu sau vo
cui ca xu u
V d:

Da+Nang cho ra kt qu l DaNang

3.2. Cc php ton quan h: =, <>, <, <=, >, >=.


Cc php ton quan h c so snh theo th t ca bng m
ASCII.
- Vic so snh hai xu c thc hin bng cch so snh tng cp
k t tng ng t tri qua phi. Khi pht hin c mt cp k t khc
nhau th xu no cha k t nh hn s nh hn.
V d:
Anh < an cho kt qu l TRUE v A < a
Thong < Tha cho kt qu l FALSE o > a
- Nu ni dung ca hai xu ging nhau t u n ht chiu di ca
xu ngn hn th xu ngn hn l nh hn

V d:
Tha<Thang cho kt qu l TRUE v Tha ngn hn
Thang.
Hai xu bng nhau nu chng di bng nhau v mi cp k t
cc v tr tng ng u ging nhau.
V d:
Pascal = Pascal cho kt qu l TRUE
Pascal = PAscal cho kt qu l FALSE
IV. Cc hm v th tc v xu k t
4.1. Hm LENGTH
C php: LENGTH(St : String):Longint;
ngha: Cho bit s k t ca xu St
V d:

Cho St :=TIN HOC;


LENGTH(St) cho gi tr l 7

4.2. Hm COPY
C php: COPY(St : String; Pos, Num: Longint):String;
ngha: Ly ra mt xu con t trong xu St c di Num k t
bt u t v tr Pos
V d:

Cho St :=TIN HOC;


COPY(St,5,2) cho gi tr l xu HO

4.3. Hm POS(SubSt, St :String): Longint;


C php: POS(SubSt, St :String): Longint;
ngha: Kim tra xu con SubSt c nm trong xu St hay khng?
Nu xu SubSt nm trong xu St th hm tr v v tr u tin ca
xu con SubSt trong xu St, ngc li hm tr v gi tr 0.
V d:

Cho St :=TOI DI HOC, BAN CO DI KHONG?;


POS(DI,St) cho gi tr l 5
POS(DUNG,St) cho gi tr l 0

4.4. Hm UPCASE
C php: UPCASE (ch : Char): Char;
ngha: i k t ch thnh ch hoa nu ch l k t thng
V d:

UPCASE(a) cho gi tr l k t A

UPCASE(B) cho gi tr l k t B
4.5. Hm ORD
C php: ORD (ch : Char): Byte;
ngha: Cho bit s th t ca k t ch nm trong bng m ASCII
V d:

ORD(a) cho gi tr l 97
ORD (1) cho gi tr l 49

4.6. Hm CHR
C php: CHR(code : byte): Char;
ngha: Cho bit k t c s th t l code nm trong bng m
ASCII
V d:

CHR(65) cho gi tr l k t A
CHR(50) cho gi tr l k t 2

4.7. Th tc DELETE;
C php: DELETE(Var St:String; Pos, Num: Byte);
ngha: Xa Num k t bt u t v tr th Pos trong xu St.
V d:
DELETE(St,2,4) kt qu ca xu St l TOC
DELETE(St,1,4) kt qu ca xu St l HOC
4.8. Th tc INSERT
C php: INSERT(SubSt: String; Var St: String; Pos: Byte);
ngha: Chn xu SubSt vo xu St bt u ti v tr Pos.
V d:

Cho St := TIN HOC;

INSERT(HOC ,St,1) kt qu ca xu St l HOC


TIN HOC
INSERT(MOI ,St,5) kt qu ca xu St l TIN
MOI HOC
4.9. Th tc STR
C php: STR(Num; Var St:String);
ngha: i s nguyn hay thc Num thnh dng xu k t, kt
qu lu vo bin St.
V d:

STR(123,St) kt qu ca xu St l 123
STR(3.14,St) kt qu ca xu St l 3.14
4.10. Th tc VAL
C php: VAL(St:String; Var Num; Var Code:Integer);
ngha: i xu s St thnh s v gn kt qu lu vo bin Num.
Nu vic chuyn i thnh cng th bin Code c gi tr l 0, ngc
li bin Code c gi tr khc 0 (v tr ca li).
V d:
VAL(123,Num,code) kt qu ca bin Num l 123
VAL(3.14,Num,code) kt qu ca bin Num l 3.14

BI TP MU
Bi tp 1: Vit chng trnh nhp vo mt xu k t t bn phm. i
xu k t sang ch in hoa ri in kt qu ra mn hnh.
V d:Xu abcdAbcD s cho ra xu ABCDABCD.
Uses Crt;
Var St:String;
i:Byte;
Begin
Write(Nhap xau St: ); Readln(St);
For i:=1 to length(St) do
St[i]:=Upcase(St[i]);
Write(Xau ket qua: , St);
Readln;
End.
Bi tp 2: Vit chng trnh nhp vo mt xu k t t bn phm. i
xu k t sang ch thng ri in kt qu ra mn hnh.
V d :Xu abCdAbcD s cho ra xu abcdabcd.
Uses Crt;
Var

St:String;
i:Byte;

Begin
Write(Nhap xau St: ); Readln(St);
For i:=1 to length(St) do
If St[i] IN [A..Z] Then
St[i]:=CHR(ORD(St[i])+32);
Write(Xau ket qua: , St);
Readln;
End.

Bi tp 3: Vit chng trnh m s k t ch s trong mt xu k t


c nhp vo t bn phm.
Uses Crt;
Var

St:String;
i,d:Byte;

Begin
Write(Nhap xau St: ); Readln(St);
For i:=1 to length(St) do
If St[i] IN [0..9] Then d:=d+1;
Write(So ky tu chu so trong xau: , d);
Readln;
End.
Bi tp 4: Vit chng trnh nhp mt xu t bn phm. In ra xu sau
khi xa ht cc k t trng tha trong xu. (K t trng tha l cc k t
trng u xu, cui xu v nu gia xu c 2 k t trng lin tip nhau
th c 1 k t trng tha).
Uses Crt;
Var

St:String;

Begin
Write(Nhap xau St: ); Readln(St);
{Xa cc k t trng u xu}
While St[1]=#32 Do Delete(St,1,1);
{Xa cc k t trng cui xu}
While St[Length(St)]=#32 Do
Delete(St,Length(St),1);
{Xa cc k t trng gia xu}
While POS(#32#32,St)<>0 Do
Delete(St,POS(#32#32,St),1);
Write(Xau sau khi xoa: , St);
Readln;
End.

Bi tp 5: Vit chng trnh lit k cc t ca mt xu k t c nhp


vo t bn phm, mi t phi c vit trn mt dng.
Uses Crt;
Var

St:String;

Begin
Write(Nhap xau St: ); Readln(St);
//Xa k t trng tha (xem bi 4)
St:=St+#32;
Writeln(Liet ke cac tu trong xau: );
While POS(#32,St)<>0 Do
Begin
Writeln(Copy(St,1,POS(#32,St)));
Delete(St,1,POS(#32,St));
End;
Readln;
End.
Bi tp 6: Vit chng trnh nhp vo mt xu k t t bn phm. Tm
xu o ngc ca xu ri in kt qu ra mn hnh
Uses Crt;
Var

St,S:String;
I:Longint;

Begin
Write(Nhap xau St: ); Readln(St);
S:=;
For i:=Length(St) DownTo 1 Do S:=S+St[i];
Write(Xau dao nguoc: , S);
Readln;
End.

Bi tp 7: Vit chng trnh nhp vo mt xu k t t bn phm. Thng


bo ln mn hnh cc ch ci c trong xu v s lng ca chng (Khng
phn bit ch hoa hay ch thng).
tng:
- Dng mt mng dem vi ch s l cc ch ci lu tr s lng
ca cc ch ci trong xu.
- Duyt qua tt c cc k t ca xu St: Nu k t l ch ci th
tng bin mng dem[St[i]] ln 1 n v.
Uses Crt;
Var

St:String;
dem: Array[A..Z] Of Byte;
i:Byte;
ch:Char;

Begin
Write(Nhap xau St: ); Readln(St);
//Khi to mng
For ch:=A To Z Do dem[ch]:=0;
//Duyt xu
For i:=1 To Length(St) Do
If Upcase(St[i]) IN [A..Z] Then
Inc(dem[Upcase(St[i])]);
{Lit k cc k t ra mn hnh}
For ch:=A To Z Do
If dem[ch]>0 Then Writeln(ch, : ,dem[ch]);
Readln;
End.

Bi tp 8: Vit chng trnh xa cc k t ch s trong mt xu k t


c nhp vo t bn phm.
Uses Crt;
Var

St,S:String;
I:Longint;

Begin
Write(Nhap xau St: ); Readln(St);
S:=;
For i:=1 To Length(St) Do
If (St[i]<0) Or (St[i]>9) Then
S:=S+St[i];
Write(Xau sau khi xoa: ,S);
Readln;
End.

BI TP T LM
Bi tp 9: Nhp vo mt xu St khc rng v thc hin chun ho xu,
tc l:
- Xo cc du cch tha
- Chuyn nhng k t u t thnh ch hoa, nhng k t khc thnh
ch thng
Bi tp 10: Nhp vo mt xu St khc rng v thng bo xu c phi
l xu i xng hay khng?
Xu i xng l xu c t tri sang phi hay t phi sang tri u
ging nhau
Hng dn:
Xu i xng nu n bng chnh xu o ca n. Vy cch n
gin nht l ta s xy dng xu o ca x v kim tra xem n c bng x
khng. xy dng xu o ca x, cch n gin nht l cng cc k t
ca x theo th t ngc (t cui v u).
Bi tp 11: Nhp vo mt xu St v m xem n c bao nhiu t. T l
mt dy cc k t, cch nhau bi du cch?
Bi tp 12: Nhp vo mt xu s v in ra cc t ca n (T l mt dy cc
k t, cch nhau bi du cch). Xu c bao nhiu t l i xng?
Hng dn:
C nhiu cch tch mt xu thnh cc t. Cch n gin nht tin
hnh nh sau:
b1- B qua cc du cch cho n khi gp mt k t khc cch (hoc
ht xu).
b2- Ghi cc k t tip theo vo xu tm cho n khi gp du cch
hoc ht xu, khi ta c 1 t.
b2.1- In t va tm c
b2.2- Nu l t i xng th tng bin m
//Xu i xng th xem li bi 10
b3- Nu cha ht xu th quay li bc 1.

Bi tp 13: Mt s nguyn gi l palindrom nu n c t tri sang cng


bng c t phi sang. V d 121 l mt s palindrom. Nhp mt dy n
phn t nguyn dng t bn phm, 5<= n<=20 v cc phn t c 2 n 4
ch s. In ra cc s l palindrom trong dy.
Hng dn:
Mt s l palindrom th xu tng ng ca n l xu i xng.
Chuyn s sang xu (dng th tc STR) ri kim tra xem xu c
i xng khng, nu l xu i xng th in xu (hoc s) ra mn hnh.

You might also like