Главная страница Случайная страница КАТЕГОРИИ: АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторикаСоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника |
Блоктар, локальділік және амал жасау облысы
Блоктар сипаттаулар мен операторлардан тұ рады. Жалпы тү рде кез келген блок программа ие болатын форматқ а ие, бырақ тақ ырыбы жоқ. Ә р блок процедура немесе функцияның сипаттау бө лігі немесе программа немесе модульдің бө лігі болып табылады. Ә рдайым идентификатор немесе таң ба программада кездескен кезде олар осы сипаттаудың амал жасау облысында орналасуы тиіс. Идентификатор немесе таң баның амал жасау облысы оларды сипаттау бө лімінен бастап ағ ымдағ ы блок қ ұ рамына кіретін барлық блоктарды қ оса ағ ымдағ ы блоктың соң ына дейін таралады; (кірістірілген (ішіне салынғ ан) блоктағ ы қ айта анық таудан басқ а). 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 сө зі нұ сқ ағ ыштің мә ні ешнә рсеге сілтемейтін тұ рақ тыны белгілейді.
|