Автор: Пользователь скрыл имя, 30 Января 2011 в 15:36, реферат
Программаларда кездесетін әр түрлі символдардан туратын тізбектерді жолдық қатарлар деп атайды. Өрнектерде жолдық қатарлар апострофқа алынып жазылады.
Turbo Pascal-да жолдық қатарларға компьютердің жадынан 0 байттан 255 байтқа дейін орын беріледі(жолдық қатар ұзындығына - 255 символ, ұзындықтың мәніне - 1 символ).
6. Жолдық қатарлар.
Программаларда кездесетін әр түрлі символдардан туратын тізбектерді жолдық қатарлар деп атайды. Өрнектерде жолдық қатарлар апострофқа алынып жазылады.
Turbo Pascal-да жолдық
қатарларға компьютердің
Жолдық қатарлардан тұратын идентификаторлар 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-
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.
"Жолдық қатардың
ішіндегі турған бір
J-POSfX, A); //X фрагментінің
А катарындағы басталатын
Төмендегі программада
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';