Жолдық қатарлар

Автор: Пользователь скрыл имя, 30 Января 2011 в 15:36, реферат

Краткое описание

Программаларда кездесетін әр түрлі символдардан туратын тізбектерді жолдық қатарлар деп атайды. Өрнектерде жолдық қатарлар апострофқа алынып жазылады.

Turbo Pascal-да жолдық қатарларға компьютердің жадынан 0 байттан 255 байтқа дейін орын беріледі(жолдық қатар ұзындығына - 255 символ, ұзындықтың мәніне - 1 символ).

Файлы: 1 файл

6.doc

— 80.00 Кб (Скачать)

6. Жолдық қатарлар.

Программаларда  кездесетін әр түрлі символдардан туратын  тізбектерді жолдық қатарлар деп  атайды. Өрнектерде жолдық қатарлар апострофқа алынып жазылады.

Turbo Pascal-да жолдық  қатарларға компьютердің жадынан  0 байттан 255 байтқа дейін орын беріледі(жолдық қатар ұзындығына - 255 символ, ұзындықтың мәніне - 1 символ).

Жолдық қатарлардан  тұратын идентификаторлар String типі арқылы сипатталады. Идентификатордың типінен кейін тік жақшаның ішінде осы идентификатордың ұзындығының  мәні неше символдан түруы мүмкін екені көрсетіліп кетеді. Егер бұл мән көрсетілмесе, онда жолдық қатар ұзындығына компьютердің жадынан 255 символға дейін орын беріледі. Жолдық қатарлы идентификаторларды типтер бөлімінде(ТҮРЕ) немесе бірден айнымалылар бөлімінде(УАП) сипаттауға болады. Сонымен қатар программалауда жолдық қатарлар тұрақты шамалар ретінде де қолданылады(таңдау селекторы тұрақтысынан басқа).'

Жолдық катаолардын  сипатталу мысалдары:

PROGRAM Katarlar;

CONST 5='Кайсар';    {Зтурақтысы     Кайсартіркесінетең} TYPEGymn=String[10];

VARX:String[17];  {X айнымалысының  узындығы 17 символға дейін}

A:String[6J; {A айнымалысының  узындығы 6 символға дейін} 5:Sfr/ngf;     {Б айнымалысының узындығы 255 символға  дейін} C:Gymn;     {Сайнымалысының  узындығы 10 символға дейін} 
 
 
 
 
 
 
 
 
 
 

6.1. Жолдық өрнектермен  амалдар.

Операндалары  жолдық қатар болып табылатын  өрнектерді жолдық өрнектер деп атайды. Идентификаторларға жолдық айнымалылардың мәнін беру үшін меншіктеу операторы  қолданылады. Егер меншіктеу операторы  орындалғанда, символдар саны сипаттамалар бөлімінде көрсетілген шамадан асып кетсе, онда идентификатор қатардың сол жағынан бастап көрсетілген шамаға тең болатын символдарды ғана меншіктейді, ал оң жақтағы артық символдар алынып қалады.

VAR

X:String[4];

BEGIN

X:='Gymnazy'

Writeln(X);

{Х-ке 'Gymn' тіркесі  ғана меншіктеледі}

Жолдық қатарлармен  біріктіру және салыстыру амалдарын  орындауға болады. Біріктіру амалы  бірнеше жолдық қатарды біріктіріп шығару үшін қолданылады. Біріктірілетін жолдық қатардың үзындығы 255-тен аспауы тиіс. Мысалы:

А:='Менің';

В:='Қаза қртанымның';

Writeln(A+' '+В)     {Менің Қазакртанымның-тіркесі шығады}

X:='Тәуелсіздігіне';

Ү:='10 жыл';

Z:=X+' '+Y;  

{Z Тәуелсіздігіне  Южыл - тіркесін меншіктейді}

Writeln(Z); 

{де, осы тіркесті  экранға шығарады}

     Жолдық қатарларды салыстыру амалы екі жолдық қатарды сапыстыру үшін қолданылады. Қатарларды салыстыру солдан оңға қарай ең бірінші кездесетін бірдей емес символға дейін жүргізіледі. Егер қай жолдық қатардың бірдей емес символының информация алмастыру стандартты таблицасындағы нөмірі үлкен болса, сол жолдық қатар үлкен деп есептеледі. Егер жолдық қатарлардың үзындығы мен барлық символдары сәйкес келсе, олар тең деп есептеледі. Ал егер жолдық қатарлардың үзындықтары әртүрлі болып, ал символдары сәйкес болып келсе, онда үлкені болып үзындығы үлкен жолдық қатар есептеледі. Жолдық қатарлардың салыстыру амапдарының нәтижесі әрқашан бульдік тип болады.

{нәтижесі True} {нәтижесі False} {нәтижесі True} {нәтижесі False} {нәтижесі True} {нәтижесі False}

'lntel'>' INTEL' 'Pentium'<'PENTIUM' 'Duron '=' Duron' "Celeron '<> 'Celeron ' 'Hewlett '<= 'Hewlett Packard' 'Laser'>='Laserjet'

6.2. Жолдық процедуралар  мен функциялар.

^Жолдық қатардың  үзындығын есептеу үшін LENGTH функциясы  қолданылады, нәтиженіңтипі 0-ден  255-ке дейінгі бүтін сан(Вуіе) болып табылады:

X:=LENGTH(A); //X идентификаторы Ажолдық

қатарының узындығын  меншіктейді.

Writeln(LENGTH(A)); //экранға  А жолдық қатарының

узындығы шығады.

Төмендегі программада X жолдық қатарының ұзындығы есептеліп  табылып, ол бүтін сан болатын А идентификаторына меншіктелген:

PROGRAM Kat1; V

ARX:String;

A:lnteger;

BEGIN

X:='Pentium-Ill';

A:=Length(X);

Writeln('A= ', A); 

Readln

END.

СКолдық қатардан фрагмент көшіріп алу үшін COPY функциясы  қолданылады:

COPY(A,N,M); //A       жолдық        қатарының       N

позициясындағы  символдан бастап М символ көшіріп  алады.

Х:=СОРҮ('Облыстық гимназия', 10,4); //Xидентификаторы "гимн" фрагментін меншіктейді.

МгНеІп(СОРҮ('Облыстық гимназия', 10,8)); //экранға гимназия сөзі шығадьп

Төмендегі пр~6граммада X қатарынан Pentium сөзі көшіріліп, А идентификаторымен белгіленген жолдық қатарға меншіктеледі:

PROGRAM Kat2;

VAR

X, A: String;

INSERTfA, X, N);

UPCASE(X);

BEGIN X—'Pentium-ІІГ; 

А:=Сору(Х,1,7);

Writeln('A= ; A); 

Readin END.

^Жолдық қатарлар  фрагменттерін біріктіру үшін CONCAT функциясы қолданылады:

CONCAT(X, А);   //функция X және А қатарларын  біріктіреді. 
Writeln(Concat(TnMH', 'Азия')); //экранға ГимнАзия

сөзі шығады. Ү:=СопсаЦ'Гимн', 'Азия'));   //Ү ГимнАзия сөзін меншіктейдһ

Төмендегі программада жолдық қатар болып табылатын Ү түрақтысы х қатарымен біріктіріліп, нәтиже A идентификаторымен белгіленген жолдық қатарға меншіктеледі:

PROGRAM Kat3;

CONST Y= 'Input';

VAR

X,A:String;

BEGIN X:='Outpuf; A~Concat(Y,X);

Writeln('A= ', A);

Readin

END.

"Жолдық қатардың  ішіндегі турған бір фрагменттің  орнын анықтау үшін POS функциясы  қолданылады^; Бұл функция мәнінің  типі бүтін және ол жолдық  қатарда берілген фрагменттің  бастапатын позиция нөміріне  тең болады. Ал егер жолда ондай  фрагмент кездеспесе онда нәтиже 0-гетең болады, мысалдар:

J-POSfX, A); //X фрагментінің  А катарындағы басталатын нөмірі. РО5('наз', Тимназия');    //нәтиже 4-ке тең болады. РО5('зал', Тимназия');   //нәтиже 0-ге тең болады. \

Төмендегі программада X фрагменті Ү қатарындағы басталатын орны бүтін сан болатын А идентификаторына меншіктелген.

PROGRAM Kat4;

CONST'Y=''Input';

VAR

X:String; A:Byte;

BEGIN X:='puf;

A:=Pos(X,Y);

Writeln('A=', A);

Readin END.

      Жолдық  қатардан бір фрагмент өшіріп тастау үшін DELETE процедурасы қолданылады, жазылуы:

DELETEfA, N, М);   //А жолдық қатарының N позициясындағы  символдан бастап М символ  өшіріп тастайды. ОЕіЕТЕ('Облыстық  гимназия', 10,4);  //"Облыстықазия"

тіркесі қалады.^

Төмендегі программада X қатарының N-ші позициясынан бастап М  символ өшіріледі:

PROGRAM Kat5;

VAR

X:String;

N,M:Byte;

BEGIN

Fteadln(N.M);

X:='Outpuf;

Delete(X, N, M);  

WriteLn('X= ', X);  

Readin

END.

Жолдық қатарға  бір  фрагмент қосу үшін  INSERT процедурасы  қолданылады.

//Хжолдық қатарыныңЫ-ші  позициясынан бастап А фрагментін  крю.

Төмендегі программада X қатарының 3 позициясынан бастап А  қатары қойылып X қатары "Internet" мәніне өзгереді:

PROGRAM Kat6;

VAR

X,A:String;    

N:Byte;

BEGIN

N:=3;

X:='lnnef;

A—'ter';

lnsert(A,X,N);

Writeln('X=', X);   

Readin

END.

Латын алфавитінің  кіші әріптерін бас әріпке айналдыру  үшін UPCASE функциясы қолданылады.

//Хжолдық қатарындағы  кіші әріптерді бас әріптерге  өзгертеді.

Келесі  программаларда  X символы("а")   мен  X қатарындағы("ә") кіші әріптер бас әріптерге айналдырылған: 

6.3. Жолдық қатарларға  программа қуру.

1-программа PROGRAM Kat7;

VAR

X:Char; K:Byte;

BEGIN

X:='t';

X:=Upcase(X);

Whteln('X= ', X);

Readln

END.

2-программа

PROGRAM Kat8;

VAR

X:String;

K:Byte;

BEGIN

X:='Internet';

ForK:=1 To Length(X) Do

X[K]:=Upcase(X[K]);

Whteln('X= ', X);  

Readln

END.

L-STR процедурасы  кез-келген сандық шаманы бір  жолдық қатарға қою үшін қолданылады,  жазылуы:

STR(150, X);     //150 саны X жолдық қатарыныңішіне

орналасады.   /

'- J

Төмендегі программада  А нақты санын X жолдық қатарына айналдырып, әрі қарай X қатары Ү қатарын шығаруда қолданылған:

PROGRAM

Kat9;

VARX,Y,

S:String;

A:Integer;

BEGIN 

A:=134;

S:='TLJ-; 

Str(A, X);   

Y:=S+X;

Whteln('Y= ', Y);

Readln END.

}

иЖолдық қатарды сандық шамаға айналдыру үшін VAL процедурасы қолданылады, жазылуы:

VAL(X, A, C);

Төмендегі программада X жолдық қатарын А нақты санына айналдырып, әрі қарай А шамасы Ү өрнегін есептеп табуда қолданылған:

PROGRAM KatW;

VAR

X:String;

Y,A:Real;

C: Integer;

BEGIN

X:='2.5E+4';   

Val(X,A,C);   

Y:=A/2-5*A;

Writeln('A= ', A:3:2);  

Whteln('Y= ; Y:3:2);

Readln

END.   > •

а)

PROGRAM KataM;

VAR

X:String[17];

Y,A,B,C:String;

N,M,Z,P :lnteger;

BEGIN

Х: = 'Облыстық гимназия';

Z:=Length(X); {үзындығын анықтау}

Р:=Роз('азия','Облыстық гимназия');

Readln(N.M);

Y:=Copy(X,N,M);   {жолдан фрагмент ойып алу}

А:=Сору(Х,1,3);

В:=(Х,10,8);

C:=Concat(A,B);

{X тізбегінен  Облгимназия сөзін шығару}

Writeln(Z, ' ',Ү, С)

Readln

END.

PROGRAM Katar2;

CONST

Х='Облыстык';

Ү='гимназия';

VAR

A,B,C,D:String[15];

K:String;

l,N:Byte;

BEGIN   

A:='Pentium-l';

B:='Pentium-ll';

Информация о работе Жолдық қатарлар