Студопедия

Главная страница Случайная страница

КАТЕГОРИИ:

АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторикаСоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника






fife' < 'tree' {себебі 'f'<'t'}; 4 > '237' {себебі '4' > '2'}.






Жолдық типтегі шамалар ү шін логикалық <, >, = операциялардан басқ а коммутативті емес біріктіру операциясы анық талғ ан, ол плюс таң басы арқ ылы белгіленеді:

а: ='кол ' + 'о'+'кол'; { нә тижеде а='колокол'}

Жолдық шамалар ү шін келесі тө рт стандартты функциялар анық талғ ан:

· біріктіру - concat(s1, s2,.., sk); функцияның мә ні - s1, s2,..., sk жолдарды біріктіру нә тижесі, егер ол қ амтығ ан символдар саны 255-тен аспайтын болса;

· ерекшелеу - copy(s, i, k); s жолдан i -ші символдан бастап k символдар ерекшелінеді: а: =сору('крокодил', 4, 3); { нә тижеде а='код'};

· жолдың ұ зындығ ын анық тау - length(s); s жолдың ағ ымдағ ы мә нін қ ұ райтын символдар саны есептеледі: b: =length('автоматика'); { b=10 };

· позицияны анық тау - pos(s, t); s жол t жолғ а бірінші рет кірген позиция нө мірі есептеледі; егер s жол t жол қ ұ рамына кірмеген болса, онда нә тиже 0-ге тең: с: =pos('ом', 'компьютер'); {с=2}.

Сонымен қ атар, Паскальда жолдық шамаларды ө ндеуге арналғ ан тө рт стандартты процедуралар анық талғ ан:

· жою - delete(s, i, k); s жолдан i -ші символдан бастап k символдар жойылады: s: ='таракан'; delete(s, 5, 2); { нә тижеде s='таран'};

· кірістіру - insert(s, t, i); i -ші позициядан бастап s жол t жолғ а кірістіріледі t: ='Tapaн’; insert('ка', t, 5); {t='таракан'};

· санды символдар жолына тү рлендіру - str(k, s). k санына апострофтарды қ осу арқ ылы s жолы пайда болады: str(564, s); {s='564'};

· цифрлардан тұ ратын жолды санғ а тү рлендіру - val(s, k, i); егер s жолда цифрлардан ө зге символдар болмаса і саны i=0, керісінше жағ дайда i цифрдан ө зге бірінші символдың позициясына тең: val('780', k, i); {k=780; i=0}.

Р24 программасында жолдық шамаларды пайдаланып 100 символдан аспайтын мә тіндегі дауысты ә ріптер саны анық талады. Бұ л жерде 18 кіші жә не ү лкен ә ріптерден тұ ратын тұ рақ ты-жолды анық тап, берілген мә тіннің кезекті символы тұ рақ ты-жолдың элементі болатындығ ын цикл ішінде тексерген ың ғ айлы. Р25 программасында sqr функциясы ехр функцияғ а алмастырылады, оғ ан delete жә не insert процедураларын ретімен қ олдану арқ ылы қ ол жеткізеді. Р26 программасында 10 латын сө здері енгізіліп алфавит бойынша реттеледі. 10 элемент-жолдардан тұ ратын массив анық талғ ан жә не оның элементтері кө піршік ә дісі арқ ылы реттелген.

 

 

10.4 Жалғ ау операторы (with)

Жазбаларғ а қ олданылатын операцияларда жазбаның ө рістеріне қ ысқ аша сілтеу жасау ү шін жалғ ау операторды (with) пайдаланғ ан ың ғ айлы. Жалғ ау операторда жазба типтегі бір немесе бірнеше нақ тылы айнымалылардың ө рістеріне тек ө рістердің идентификаторларын ғ ана пайдаланып сілтеу жасауғ а болады. Жалғ ау оператордың синтаксисі келесідей: with операторғ а мысал келтірейік:

with Date do

if month = 12 then

begin

month: = 1;

year: = year + 1

end else

month: = month + 1;

Бұ л келесіге эквивалентті:

if Date.month = 12 then

begin

Date.month: = 1;

Date.year: = Date.year + 1 end else

Date.month: = Date.month + 1;

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

Келесі айнымалылар жарияланғ ан болсын дейік:

Type Point = record

x, y: integer; end;

var

x: Point;

y: Integer;

Бұ л жағ дайда х-ке де у-ке де айнымалығ а немесе жазбаның ө рісіне сияқ ты сілтеу жасауғ а болады. Операторда:

with x do

begin

x: = 10;

y: = 25;

end;

with жә не кілттік сө здердің арасындағ ы х нұ сқ ағ ыш типтегі айнымалығ а қ атысты, ал қ ұ рама операторда x пен y x.x пен y.y –терге сілтеп тұ р.

with V1, V2,...Vn do s; о ператор

келесі операторларғ а эквивалентті.

with V1 do

with V2 do

...

with Vn do

S;

Екі жағ дайда да, егер Vn - v1-дің де v2-нің де ө рісі болып табылса, онда ол v1.Vn емес v2.Vn ретінде интерпретацияланады.

Егер жазба типтегі айнымалыны таң дап алу индекстелген массив немесе нұ сқ ағ ышты есептеумен байланысты болатын болса, онда бұ л амалдар қ ұ рама операторының орындалуынан бұ рын орындалады.

Сонымен, with оператор жазбаның ө рістеріне, сонымен қ атар, объекттің ө рістеріне, ә дістеріне жә не қ асиеттеріне сілтеу жасауды қ ысқ артуғ а мү мкіндік береді. Ол келесі тү рге ие:

with жазба немесе объект аталуы do оператор

немесе

with атаулар тізімі do оператор

Оператордың ішінде кө рсетілген жазбаның ө рісіне сілтеу жасағ анда жазба аталуын немесе кө рсетілген объекттің ө рісіне, ә дісіне немесе қ асиетіне сілтеу жасағ ан кезде объект аталуын тастап кетуге болады. Мысалы, келесі айнымалы сипатталғ ан болсын:

var

DateOfBirthday=record

Day: Integer;

Month: Integer;

Year: Integer;

end;

Онда with операторын пайдаланбай оның ө рістеріне мә ндерді меншіктеу тү рі:

DateOfBirthday.Day: =23;

DateOfBirthday.Month: =2;

DateOfBirthday.Year: =1965;

with операторын пайдалану арқ ылы алдың ғ ы жазуды қ ысқ артуғ а болады:

with DateOfBirthday do

begin

Day: =23;

Month: =2;

Year: =1965;

end;

Егер сыртқ ы айнымалының аталуы ө ріс (ә діс, қ асиет) аталуымен бірдей болатын болса, онда басымдылық ө ріске (ә діске, қ асиетке) беріледі. Бір-бірінің ішіне салынғ ан with операторлар орын алғ ан жағ дайда алдымен айнымалыны ең ішкі with оператордың жазбаның немесе объекттің ө рісі ретінде қ арастыру ә рекеті жасалады, одан кейін тікелей оны қ оршағ ан with оператордың жә не с.с. Егер with оператор объекттердің тізімін қ амтитын болса, онда олар оң жақ тан сол жақ қ а қ арай қ арастырылады. Мысалы, егер келесі сипаттаулар болса:

var

x, y, z: integer;

a: record

x, y: integer;

end;

b: record

x: integer;

end;

онда программаның келесі фрагменті:

with a, b do

begin

x: =1; y: =2; z: =3;

end;

келесі фрагментке эквивалентті:

with a do

with b do

begin

x: =1; y: =2; z: =3;

end;

сонымен қ атар жә не келесі фрагментке эквивалентті

b.x: =1;

a.y: =2;

z: =3;

 


Поделиться с друзьями:

mylektsii.su - Мои Лекции - 2015-2024 год. (0.011 сек.)Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав Пожаловаться на материал