Студопедия

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

Разделы сайта

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






Блоктар, локальділік және амал жасау облысы






Блоктар сипаттаулар мен операторлардан тұ рады. Жалпы тү рде кез келген блок программа ие болатын форматқ а ие, бырақ тақ ырыбы жоқ. Ә р блок процедура немесе функцияның сипаттау бө лігі немесе программа немесе модульдің бө лігі болып табылады. Ә рдайым идентификатор немесе таң ба программада кездескен кезде олар осы сипаттаудың амал жасау облысында орналасуы тиіс. Идентификатор немесе таң баның амал жасау облысы оларды сипаттау бө лімінен бастап ағ ымдағ ы блок қ ұ рамына кіретін барлық блоктарды қ оса ағ ымдағ ы блоктың соң ына дейін таралады; (кірістірілген (ішіне салынғ ан) блоктағ ы қ айта анық таудан басқ а). Ext ішіне басқ а Int блогы кірістірілген блок болсын. Егер Ext жә не Int атаулары бірдей идентификаторларғ а ие болатын болса, мысалы, j, онда Int ө зінің ішінде сипатталғ ан j идентификаторғ а қ ол жеткізе алады, жә не ұ қ сама тү рде Ext сипатталуын қ амтығ ан j идентификаторғ а қ ол жеткізе алады. Идентификаторлар мен таң баларды сипатталғ анша пайдалануғ а болмайды.

uses сө йлемін қ амтығ ан программалар мен модульдер uses -тің сол сө йлемдерінде кө рсетілген модульдердің интерфейстік секцияларында сипатталғ ан идентификаторларғ а қ ол жеткізе алады. uses сө йлеміндегі ә р модуль басқ а модульдер мен толық программаны қ амтитын амал жасаудың ө з облысын анық тайды.

Қ ұ рамына кірістірілген тұ рақ тылар, типтер, айнымалылар, процедуралар мен функциялардың идентификаторлары барлық пайдаланылатын модульдер мен бү кіл программаны қ амтитын блокта сипатталғ андай болып амал жасайды. Нақ тылық та бұ л стандартты объекттер System модулінде сипатталғ ан. Ол модульді кез келген программа немесе модуль uses сө йлемінде кө рсетілген кез келген модульден бұ рын пайдаланады. Бұ л келесіні білдіреді: кез келген программа немесе модуль стандартты идентификаторларды қ айта анық тауы мү мкін, ал оларғ а сілтеме жасау қ ұ рама идентификатор арқ ылы жү зеге асырылуы мү мкін, мысалы, System.Integer немесе System.Writeln.

 

 

Нұ сқ ағ ыштары бар операциялар. Типтелген нұ сқ ағ ыштарғ а ^ аталуын алып тастау операциясын қ олдануғ а болады: егер p T типке нұ сқ ағ ыш болып табылса, онда p^ - оғ ан р нұ сқ ағ ыш сілтеп тұ рғ ан Т типтегі элемент.

Қ атынас <, >, < =, > =, =, < > операциялары мен қ атартиптелген нұ сқ ағ ыштарғ а арифметикалық + жә не – операцияларын қ олдануғ а болады.

+ операциясы типтелген нұ сқ ағ ышқ а жә не бү тін санғ а қ олданылады: егер p ^T типке ие болып, T типтегі элементтерден тұ ратын бірө лшемді массивтін a[k] элементіне сілтеп тұ рғ ан болса, і – бү тін, онда p+i a[k+i] элементтің адресін қ айтарады. Операция –типтері бірдей екі типтелген нұ сқ ағ ыштарғ а қ олданылады: егер p1 жә не p2 T типтегі элементтерден тұ ратын бірө лшемді массивтін элементтеріне сілтеп тұ рса, онда p2-p1 осы нұ сқ ағ ыштардың арасындағ ы элементтердің мө лшер санын қ айтарады (егер p2-дегі адрес p1-дегі адрестен кіші болса таң басы -). Мысалы:

var

a: array [1..10] of integer;

p: ^integer;

begin

p: =@a[1];

for i: =1 to 10 do

begin

p^: =i;

p: =p+1;

end;

...

Жиындарғ а қ олданылатын операциялар. Жиындарғ а + (біріктіру), - (алу) жә не * (қ иылысу) операциялары қ олданылады:

var

s1, s2, s: set of byte;

begin

s1: =[1..4];

s2: =[2..5];

s: =s1+s2; // s=[1..5]

s: =s1-s2; // s=[1]

s: =s1*s2; // s=[2..4]

Жиындарғ а сонымен қ атар қ атынас = (тендік), < > (тенсіздік), < = (кірістірілген) жә не > = (қ амтиды) операцияларын қ олдануғ а болады:

var

s1, s2, s: set of byte;

b: boolean;

begin

s1: =[1..4];

s2: =[2..5];

s: =[1, 2];

b: =s1=s2; // b=False

b: =s2< > s; // b=True

b: =s< =s2; // b=False

b: =s1> =s; // b=True

in операциясы элемент жиынның қ ұ рамына енетіндігін анық тайды:

1 in [2..5] // False

3 in [2..5] // True

 

 

Нұ сқ ағ ыш тип (Pointer, нұ сқ ағ ыштип) базалық тип деп аталатын, белгілі бір типтегі динамикалық айнымалыларғ а сілтейтін мә ндер жиының анық тайды. Нұ сқ ағ ыштипті айнымалы жадыдағ ы динамикалық айнымалының адресін қ амтиды. Егер базалық тип ә ле сипатталмағ ан идентификатор болып табылса, онда ол нұ сқ ағ ыштипі сипатталғ ан типтерді сипаттау бө лімінде сипатталуы тиіс. Нұ сқ ағ ыш-айнымалығ а New процедурасы, @ операция немесе Ptr функция арқ ылы мә нді меншіктеуге болады. New процедурасы динамикалық айнымалылар ү шін динамикалық тү рде таратылатын облысынан жадының жаң а облысын бө ліп береді де осы облыстың адресін нұ сқ ағ ыш айнымалыда сақ тайды. @ операция нұ сқ ағ ыштің айнымалысын идентификаторларғ а ие болатын айнымалыларды қ оса, бар болатын айнымалыны қ амтитын жады облысына бағ ыттайды. Ptr функциясы нұ сқ ағ ыштің айнымалысын жадыдағ ы белгілі бір адреске бағ ыттайды. Резервтелген nil сө зі нұ сқ ағ ыштің мә ні ешнә рсеге сілтемейтін тұ рақ тыны белгілейді.

 

 






© 2023 :: MyLektsii.ru :: Мои Лекции
Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав.
Копирование текстов разрешено только с указанием индексируемой ссылки на источник.