Turbo Pascal ж?йесінде символдар ж?не жолдарды кодтау


Turbo Pascal жүйесінде символдар және жолдарды кодтау
Сандық ақпараттардан басқа компьютер символдық ақпараттыда өңдей алады. Жеке символ немесе символдық жол болып берілген символдық ақпараттармен Pascal тілінде операциялар жасауға болады.
Символдар
Жеке символдарды сақтау және өңдеу үшін char типті айнымалылар қолданылады. Бағдарламада сипатталу түрі:
Аты: char;
бұл жерде Аты- символды типтегі айнымалының аты, char – символды типті белгілейтін өзекті сөз.
Әрбір символ санмен кодталады. Келесі бағдарлама символдарды кодтау кестесі- ASCII –кодтау кестесінің бірінші жартысын экранға шығарады.
program ascii;
var
ch:char; { символ }
dec:integer; { символдың ондық коды }
i,j:integer;
begin
dec:=0;
for i:=0 to 16 do { 16 жол }
begin
dec:=i; { 128-255 кодпен берілген символдар үшін инструкцияны dec:=i+128; инструкциясына ауыстыру керек}
for j:=1 to 8 do { 8 баған }
begin
if(dec<7) or (dec>=14)
then
write(dec:4,'-',' ',
chr(dec):1,chr(179))
else { CR,LF,TAB символдары көрінбейді }
write(dec:4,'- ',chr(179));
dec:=dec+16;
End;
writeln; { экранның жаңа жолына ауысу }
End;
End.
Символдардың тізбегі жол деп аталады. Символдар тізбегін сақтау және өңдеу үшін символдар жиымын қолдануға болады.
Turbo-Pascal жүйесінде, алдын ала ұзындығы анықталмаған жолдар үшін, STRING типі пайдаланылады. Егерде, Паскаль тілінің негізгі нұсқасында символдардан тұратын массивтердің ұзындығы, алдын ала белгіленген болса, мысалы:
VAR Avtor : ARRAY [1…18] OF CHAR; ,
ал STRING типіне қарасты айнымалының ұзындығы шектелмеген. Бұл типке жататын айнымалылар, төмендегідей баяндалуы мүмкін:
VAR
Fam : STRING[20]; {Fam : ARRAY[1…20] OF CHAR;}
Adr : STRING[25]; {Adr : ARRAY[1…25] OF CHAR;}
Maman : STRING; {Maman : ARRAY[1…??] OF CHAR;}
Мысалда көрсетілген, Fam айнымалысы-ұзындығы 20 символға дейінгі, ал Adr айнымалысы - 25 символға дейінгі таңбалардан тұратын айнымалыларды анықтауға пайдаланылады. Ал, Maman айнымалысының ұзындығы – 255 символға дейін жетуі мүмкін.
STRING типіндегі айнымалыларды төмендегідей меншіктеу нұсқауларымен анықтауға болады:
Fam := ‘Құнанбай-ұлы’; Maman = ‘Ақын’;
Adr := ‘Семей’;
Программа құрылымында, бұл типке қарасты айнымалылар, READLN процедурасы арқылы ғана енгізілуі керек, мысалға:
. . .
READLN(Fam);
. . .
STRING типтегі айнымалыларға келесі стандартты функциялар анықталған:
1.LENGTH (STROKA);
Бұл функцияның мәні – бүтін сан, STRING айнымалысының нақты ұзындығына тең. Мысалы, FAM айнымалысының мәні - ‘Құнанбай-ұлы’ болған жағдайда: k:=LENGTH(Fam);k – айнымалысы, Fam тіркесінің ұзындығына, 12-ге тең.
2.CONCAT(STR1, STR2,…STRN);
Функция, жақша ішіндегі айнымалыларды бір-біріне қосақтау (тіркестіру) үшін қажет (функция мәні – STRING(тіркес)).Мысалы:
Stroka := CONCAT(‘көк’, ‘шолақ’);
Stroka айнымалысы, ‘көкшолақ’ мәнін қабылдайды.
3.POS(STR1, STR2);
Бұл функцияның мәні – бүтін сан STR1 жолының STR2 жолындағы кездесетін – позициясына тең. Егер, STR1 жолы STR2 жолының ішінде жатпайтын болса, функция мәні – нольге тең болады. Мысалы:
k := POS(‘шол’, ‘көкшолақ’); {k=4}
n := POS(‘Дәу’, ‘ұзын’); {n=0}
k – айнымалысы 4-ке тең, өйткені STR2 (‘көкшолақ’-та), STR1 (‘шол’) жолы 4-ші таңбадан бастап кездеседі. Ал, n – айнымалысының мәні 0-ге тең, себебі: “Дәу” жолы, “ұзын” жолының ішінде кездеспейді.
4.COPY(Str, I, N);
COPY – функциясы, берілген Str жолының I-ші позициясынан басталатын, ұзындығы N-ге тең символдар тіркесін анықтауға қолданылады.