2.26Каторли процедура ва функцилар
Учириш, кушиш, сонни белгига айлантириш(STR), белгилилик кийматни сонга айлантириш (VAL), сцепление(CONCAT), катор узунлиги, поиск вхождения подстроки (POS)
Delete (St,Poz,N) - St каторида Poz позициясидан бошлаб, N белги учириш,агар Poz > 255 булса, дастурда узилиш булади.
Stнинг киймати
|
Ифода
|
Натижа
|
'абвгде'
|
Delete(Str, 4, 2);
|
'aбве'
|
'река Волга'
|
Delete(Str, 1, 5);
|
'Волга'
|
Insert (Str1, Str2, Poz) - Str1 каторининг ичига Str2ни кушиш, Poz позициясидан бошлаб.
Масалан.
VAR
S1, S2, S3 : string[11];
...
S1 := ' ЕС ';
S2 := 'ЭВМ1841';
S3 := Insert(S1,S2,4); Охирги ифодани бажарилиши натижасида S3 каторининг киймати 'ЭВМ ЕС 1841' га тенг булади.
Str (IBR,St) -IBRдаги кийматни сонли кийматга айлантириб натижани St каторига жойлаштириш.
IBRнинг киймати
|
Ифода
|
Натижа
|
1500
|
Str(IBR:6,St)
|
'__1500'
|
4.8E+03
|
Str(IBR:10,St)
|
'______4800'
|
76854
|
Str(-IBR:3,St)
|
'-76854'
|
Val (St,IBR,Code) - St кийматни бутун ёки хакикий кийматга айлантириб, натижани IBRга жойлаштириш. Code -бутун узгарувчи. Агарда операция вактида айлантириш хатолиги руй бермаган булса, у холда Code нолга тенг. Хатолик руй берган булса, (масалан, литерли киймат сонли кийматга айлантирилган булса), Code хатолик йул куйилган белгининг позиция номерини олади. IBR киймат эса аникланмайди.
Stнинг киймати
|
Ифода
|
Натижа
|
'1450'
|
Val(St,IBR,Cod)
|
1450 Code=0
|
'14.2E+02'
|
Val(St,IBR,Cod)
|
1420 Code=0
|
'14.2A+02
|
Val(St,IBR,Cod)
|
? Code=5
|
Copy (St,Poz,N) - St дан N та белгилик ост каторни Poz позициядан бошлаб ажратиш. Агарда Poz > Length(St) булса, у холда натижа пробелга тенг булади, агар Poz > 255 булса бажарилишда хатолик булади. Length функцияси кейин ёритилади.
Stнинг киймати
|
Ифода
|
Натижа
|
'ABCDEFG'
|
Copy(St, 2, 3)
|
'BCD'
|
'ABCDEFG'
|
Copy(St, 4, 10)
|
'DEFG'
|
Concat (Str1,Str2,...,StrN) -каторларни руйхатда курсатилган тартибда илаштириш операциясини бажаради.
Илаштирилган каторлардаги белгилар йигиндиси 255 дан ортмаслиг керак.
Ифода
|
Натижа
|
Concat('AA','XX','Y')
|
'AAXXY'
|
Concat('Индекс ','603000')
|
'Индекс 603000'
|
Length (St) - St каторидаги белгиларнинг жорий узунлигини хисоблайди.
Натижа бутун типли булади.
Stнинг киймати
|
Ифода
|
Натижа
|
'123456789'
|
Length(St)
|
9
|
'System 370'
|
Length(St)
|
10
|
Pos (Str1,Str2) - Str2 каторда Str1 ост каторини пайдо булишини топади.
Натижа бутун типли булиб, Str1 ост каторининг биринчи белгиси тартиб номерига тенг булади. Агар Str2.да Str1 ост катори топилмаса, натижа нолга тенг.
Str1нинг киймати
|
Ифода
|
Натижа
|
'abcdef'
|
Pos('de',Str1)
|
4
|
'abcdef'
|
Pos('r',Str1)
|
0
|
UpCase (Ch) - каторли харфни босма харфга айлантиради. Натижа ва параметр литерли типда булади. Факат лотин алфавитидаги харфлар билан ишланади
Киймат
|
Ифода
|
Натижа
|
'a'
|
UpCase(Ch)
|
'A'
|
2.27Каторларни ишлатилишига мисол
Мисол сифатида “югурувчи катор” дастурининг вариантларидан бирининг матнини келтирамиз.
PROGRAM DemoStringGo;
{ Мисол: "югурувчи катор" }
USES
Crt;
TYPE
Stroka = string[160];
VAR
Vhod: Stroka;
PROCEDURE GoString (X,Y:byte; InSt:Stroka);
{ X,Y - “югурувчи катор”координаталари }
VAR
St1: Stroka;
I: byte;
BEGIN
St1:=' ';
ClrScr;
St1:= St1+InSt; FOR I:= 1 TO Length(St1) DO BEGIN
Delete(St1,1,1);
GoToXY(X,Y);
Write(St1);
Sound(1000); { Каторни харакатини овозли кузатиш }
Delay(5);
NoSound
Delay(90);
DelLine
END
END; { GoString }
BEGIN { DemoStringGo }
GoString(1, 10, ' принтерни уланг !!!'); { параметр- киймат }
Vhod:= 'Когозни урнатинг !!!';
GoString(1, 14, Vhod) { параметр - узгарувчи }
END. { DemoStringGo }
GoString процедурасининг кулланилиши жуда кенг булиб, авария сигналларидан тортиб, то меню элементларини ташкил килишгача бажариш мумкин.
Назорат саволлари
1.Катор нима?
2.Каторли типдаги узгарувчиларни кандай аникланади?
3.Каторли ифодаларни санаб утинг?
4.Муносават операциялари нималардан иборат?
5.Каторнинг алохида белгиларига кандай мурожат килинади?
6.Каторли берилганлар билан ишлашда кандай процедура ва функциялардан фойдаланиш мумкин?
7.Учириш кандай амалга оширилади?
8.Кушиш операцияси кандай бажарилади?
9.Белгили кийматни сонга кандай айлантирилади?
10.Кийматни бутин ёки хакикий кийматга кандай айлантириш мумкин?
Do'stlaringiz bilan baham: |