Реферат Жолды атарлар
Работа добавлена на сайт bukvasha.net: 2015-10-28Поможем написать учебную работу
Если у вас возникли сложности с курсовой, контрольной, дипломной, рефератом, отчетом по практике, научно-исследовательской и любой другой работой - мы готовы помочь.
от 25%
договор
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';
C—'PENTIUM-ІІГ;
{3 қатарды салыстырып үлкенін табу:}
If A>B
Then D:=A
Else D:=B;
IFD>C
Then Writeln('max=',D)
Else
Writeln('max=',C);
K:=X+' '+Y; {қатарларды біріктіру}
{2 қатарды салыстыру:}
If K=Concat(X,Y)
Then Writeln('K=X+Y1)
Else
Begin
Writeln('K ten ernes X+Y');
Writeln('k=',K) End;
Delete(A,8,2); {қатардан фрагмент алып тастау}
Writeln('A=',A);
Delete(B,2,6); {қатардан фрагмент алып тастау}
Writeln('B=',B);
lnsert('entium',B,2); {қатарға фрагмент қою}
Writeln('B1=',B);
К:=Сору(Ү,1,4); {қатардан фрагмент көшіріп алу} Writeln('K1=',K);
l:=Pos(K,Y); {ү қатарында К фрагментінің орнын анықтау}
Writeln('l=',l);
N:=Length(X+Y); {қатар узындығын анықтау}
Writeln('N=',N);
Writeln(Concat(x,' ',y)); {қатарларды біріктіріп шығару}
Writeln('a-max=',Upcase('a')); {бас әріп етіп шығару}
Readln
END.
[,1 17. Кез-келген жолдық қатардың латын алфавитінің кіші әріптерін бас әріпке айналдыру программасын қүру.
/PROGRAM Kat3;
VAR
X:String;
K:Byte;
BEGIN
WriteC Қатардың мәнін енгіз: ');
Readln(X);
For K:=1 To Length(X) Do
X[K]:=Upcase(X[K]);
\Л/ггг.еІп('К,атардың жаңа мәні Х= ', X);
Readln END.
118. X жолдық қатарында кездесетін 'a' символдарын санап, оларды 'Ь символымен ауыстыру программасын құру.
PROGRAM Kat4;
VAR
X:String; K,N:Byte;
BEGIN \Л/ггІе('Қатардың мәнін енгіз: '); Readln(X);
For K: = 1 To Length(X) Do If X[K]='a' Then
Begin N:=N+1; X[K]:='b' End;
\Л/ггг.еІп('Қатардың жаңа мәні Х= ', X,' қатарда ', N , ' "a" символы болды');
Readln END.
/119.X қатарындағы фигуралық жақшалар ішінде түрған фрагменттерді алып тастап шығару программасы.
PROGRAM Katar6;
Type Katar=String;
VARX:Katar; K, I: Byte;
Readln(X);
BEGIN \Л/гі1е('К,атардың мәнін енгіз:
Repeat
K:=Pos('{',X); If K>OThen Begin l:=Pos('}',X);
If ІЖ Then Delete(X,K,l-K+1 ) End;
Until K=0;
\Л/ггІеІп('К,атардың жаңа мәні Х=',Х); Readln
120. Берілген сөздің екі жаққа да бірдей жазылып оқылатынын анықтау программасын құру.
(мысалға: қызық, қырық, қазак,, ана, ата, ара, нан, шаш т.с.с. сөздер)
а) 1 түрі
PROGRAM Kat7;
VARX,Y:String, K:Byte;
BEGIN \Л/гКе('Қатардың мәнін енгіз: '); Readln(X); Y:=";
ForK:=Length(X) Downto 1 Do Y:=Y+Copy(X,K,1);
If X=YThen \Л/ггг.еІп('Екіжаққа да бірдей') Else \Л/ггіеІп('Бірдей емес'); Readln END.
ә) 2 түрі
PROGRAM Kat7;
VARX:String; K,N:Byte;
BEGIN \Л/ггІе('К,атардың мәнін енгіз: '); Readln(X); N:=0;
For K: = 1 To Length(X) Div 2 Do
If X[K]=X[(l_ength(X)+1 )-K] Then N:=N + 1 ;
If N=Length(X) Div 2 Then \Л/гН:еІп('Қатар екі жаққа да бірдей оқылады')
Else Writeln('Oқылмaйды');
Readln End.
121. Берілген футбол командалары тізімінен Т әрпінен
басталатын футбол командаларын алыптастап, қайта
шығару программасы.
PROGRAM KatarS;
CONST T:Array[1..5] of String=(Tobol', 'Kaisar1, 'Irtysh', Taraz', Tor');
VARK,N,l:Byte;
BEGIN For K: = 1 To 5 Do Write(T[K]:7); Writeln;
N:=5; K:=0; Repeat K:=K+1;
While Copy(T[K],1,1)='T' Do Begin I:=K;
Repeat T[I]:=T[I + 1]; l:=l+1; Until I>=N;
T[N]:="; N:=N-1; End;
Until K>=N;
For K:=1 To N Do Write(T[K]:7); Readln END.
122. Берілген футбол командалары аттарын кері шығару
программасы(мысалға: Tobol сөзі ІоЬоТ болып шығу керек).
а) 1 түрі:
PROGRAM Katar9;
CONSTT:Array[1..5] Of String=(Tobor, 'Kaisar', ' Irtysh ', Taraz1 'Kairat')-
VAR K,l:Byte; S:Char; P:Array[1 ..5] Of String;
BEGIN ForK: = 1To5 Do Write(T[K]:7); Writeln;
For K: = 1 To 5 Do Begin P[K]:=";
For l:=l_ength(T[K]) Downto 1 Do P[K]:=P[K]+Copy(T[K],l,1) End;
Writeln('Xana массив: ');
For K: = 1 To 5 Do Write(P[K]:7); Readln END
ә)2түрі:
PROGRAM Katar9;
CONST T:Array[1..5] Of String=(Tobol-, 'Kaisar1, 'Irtysh1, Taraz', 'Kairaf); "VARK,l:Byte;S:Char;
BEGIN For K: = 1 To 5 Do Write(T[K]:7); Writeln; ForK: = 1To5Do
For l:=1 To Trunc(Length(T[K])/2) Do Begin S:=T[K][I]; T[K][l]:=T[K][Length(T[K])-l+1]; T[K][Length(T[K])-l+1]:=SEnd;
Writeln('XaH,a массив футбол командаларының кері аттарынан түрады:'); For K: = 1 To 5 Do Write(T[K]:7); Readln END.