Алгоритмдеу



Pdf көрінісі
бет5/10
Дата31.12.2016
өлшемі1,07 Mb.
#880
1   2   3   4   5   6   7   8   9   10

Жолдық процедуралар 
Процедура  деп  атау  берілген,арнайы  амалдарды  орындай-тын, 
өзінше тəуелсіз бағдарламаны айтады. Процедура  тақырыбынан жəне 
оның денесінен тұрады. Процедураны оның атауы арқылы шақырады. 
1. DELETE (S,M,N)-S-тің мəнінің  Ь-ші орнынан бастап  N симвал-
ды алып тастап нəтижені S-ке жазады. 
51

Мысал .                                      Нəтиже 
… 
S:= ‘абав’; 
DELETE (S,2,2); 
writeln(‘S=’,S);                           S= ‘ав’  
2. INSERT (S1,S2,N)-S2-нің  Nпозициясынан бастап   S1 жолын  S2 
жолының  арасына  орналастырады  да  нəтижені S2-ге  жазады. 
Мысалы: 
Берілуі                                      Нəтиже 
Var S1,S2:string [10]; 
… 
S1:= ‘ физ.фак-T’; 
S2:= ‘- мат.  ’ ; 
INSERT (S2,S1, ); 
write (S1);                               ‘физ-мат.фак-т’. 
3. str (I,S)-I санын  жолға  айналдырады  да S-айнымалысына 
орналастырады.  
Мысалы:                       Нəтиже 
… 
var I:real; 
s:string [20]; 
I:=15; 
str(I,S); 
writeln (s);                            ‘15’ 
str(I:4,s); 
writeln(s);                             ‘   15’ 
  
4. Var (s,x,cod)- сандық S жолын  бүтін  немесе  нақты  санға  ауда-
рады  да  нəтижесі    I-ге  жазады. cod- бүтін  типтегі  сан.  Егер 
cod≠0бонда  аударылғаны  дұрыс, cod≠0  қате,оның  мəні    I-ші  қате 
кеткен орынды көрсететін санға тең. 
Мысалы: 
Берілуі:                                Нəтиже:   
Var 
Lit:cuar; 
st:string [6]; 
cod,I:integer; 
begin 
52

lit:= ‘f’; 
st:= ‘1992’; 
val (st,I,cod); 
writeln (‘I=’,I, ‘Acod=’,cod);           I=1992  cod=0 
val (lit,I,cod); 
writeln(‘I=’,I, ‘  cod’,cod);                I- кез келген сан  cod=1   
 
9-Дəріс. Ішкі программалар жəне оларды класқа бөлу. Ішкі 
программаларды ұйымдастыру əдістері. Ішкі программаларды 
шақыру. 
Практикалық  есептерге  бағдарлама  құрғанда,  ал  үлкен 
бағдарламаның белгілі бір бөлігін əр түрлі мəндер бойынша бірнеше 
(тіпті одан да көп) рет қайталап пайдалануға тура келеді. Мұндай бір 
типтес бағдарлама бөлігін бағдарламаның əр бөлігінде қайталап жаза 
беруіне  мақсатында  оны  жеке  көмекші  бағдарлама  ретінде  бөліп 
тастау қолайлы. 
Жеке  бағдарлама  түрінде  бөлек  жазылған,  қажет  кезінде  оған 
оралып,  оны  пайдаланып  отыруға  болады  болатын  негізгі  бағдар-
ламаның  арнайы  бөлігін  көмекші  бағдарлама  (ішкі  бағдарлама) 
дейді.  Көмекші  бағдарламаға  автоматты  түрде  енуге  жəне  одан 
шығуға болады. 
Көмекші  бағдарламаны  пайдалану  төмендегідей  мүмкіндіктер 
береді: 
-  негізгі бағдарламаның көлемі кішірейеді; 
-  негізгі  бағдарламада  пайдаланылған  айнымалыларды  көмекші 
бағдарламада пайдалануға болады; 
-  көмекші  бағдарламаға  берілген  жады  ұяшықтарын,  ол  орын-
далмай  тұрғанда  бос  ұяшық  ретінде  (бос  айнымалы  ретінде)  пайда-
лануға болады; 
-   көмекші  бағдарламаны  пайдалану  структуралық  бағдарлама-
лауға мүмкіндік береді. 
Паскаль  тілінде  алгоритмдік  тіл  тəрізді  көмекші  бағдарламаның 
екі түрі пайдаланады. Олар процедура (PROCEDURE) жəне функция 
(FUNCTION). 
Бір  бағдарламада  бір  немесе  бірнеше  процедура  жəне  функция 
пайдалануы  мүмкін.  Паскаль  тілінде  процедуралар  мен  функциялар 
бағдарламаның  басында  айнымалылар  бейнеленіп  болғаннан  кейін 
бейнеленеді, яғни жазылады. 
53

Жоғарыда  ескерілгендей  негізгі  жəне  көмекші  бағдарламада  бір 
айнымалы,  мысалы  К  қатар  пайдалануы  мүмкін,  бірақ  əр  бағ-
дарламада пайдаланғанда К-ның функциялық мағынасы бірдей болуы 
шарт  емес.  Атау  берілген  операторлар  тізбегін  Паскаль  тілінде 
процедура  дейді.  Яғни:  əр  көмекші  бағдарламаның  (процедураның 
немесе функцияның) атауы (аты болуы керек, көмекші бағдарламаға 
сан атау негізінде оралады). 
 
Процедуралар 
Кез  келген  процедура  бағдарламаға  ұқсас  түрінде  жазылады. 
Олардың басы, бейнелеу жəне операторлар бөліктері болады. 
PROCEDURE аты (формалды параметрлер тізімі); 
                  Бейнелеу бөлігі 
BEGIN 
                  Оператор бөлігі 
END 
Процедураны параметрсіз пайдалануға болады. Екі процедуралық 
бағдарлама  схемасы  төмендегідей  болады: PROGRAM  Р ( INPUT, 
OUTPUT); 
Ортақ берілгендерді белгілеу бөлігі 
PROCEDURE  Р1; 
Р1-дің процедураларын бейнелеу бөлігі 
BEGIN 
Р1-дің операторлар бөлігі 
END; 
PROCEDURE  Р2; 
Р2-нің процедураларын бейнелеу бөлігі 
BEGIN 
Р2  операторлар бөлігі 
END. 
BEGIN 
Негізгі бағдалманың операторлар бөлігі 
END. 
Бағдарламаның  орындалуы  негізгі  бағдарламалық  операторының 
орындалуынан басталады. Негізгі бағдарламада қашан процедураның 
орындалуы  қажет  болғанда  ғана  процедураға  көшеді.  Бұл  жағдай  да 
берілгендер  негізгі  бағдарламадан  процедураға  (енетін  параметрлер) 
беріледі. 
54

 Процедура  орындалып болған соң оның нəтижесі ( шығатын па-
раметрлер), процедураға негізгі бағдарламадан қай жерден көшті,сол 
жерге береді. Одан соң негізгі бағдарлама орындала бастайды. 
Жеке  бағдарламаларды  бағдарлама  кітапханасына  жинап,  қажет 
кезінде  процедура  ретінде  пайдалануға  болады.  Кітап  ханадан  қа-
жетті процедураны  «ала тұру» үшін  EXTERN (немесе EXTERNАL;) 
операторын пайдаланады. 
Кытапханадан  қажетті  процедураны  «алу»  үшін  процедураның 
басынан  (тақырыбынан)  соң (PROCEDURE атау) EXTERN; опера-
торы жазылады; 
Функция 
Паскаль  тілінде  функцияны  арнайы  бағдарлама  ретінде  жеке  жа-
зуға болады, сондықтан оны көмекші бағдарлама ретінде қарауға бо-
лады. Функция- бағдарламаның, поцедура бағдарламадан ерекшелігі: 
-  функция  бір  ғана  белгілі  мəн  қабылдайды,  яғни  функция - 
бағдарламадан алатын нəтиже біреу-ақ; 
-  нəтиже  функция  аты  арқылы  алынады  да,  негізгі  бағдарламада 
пайдаланылады. 
Функция- бағдарламаның жазылу үлгісі: 
FUNCTION  аты (формальді параметрлер):тип; 
                            бейнелеу бөлігі
BEGIN 
                            параметрлер бөлігі 
END; 
Функция фактілі параметрлердің мəндері берілгеннен кейін өз аты 
арқылы  шақырылады.  Сонымен  қатар  функцияны  тікелей  өрнектің 
ішіне шақыруға болады. 
Процедура  мен  функция  айырмашылықтарын  түсіну  үшін  екі 
санды  қосу    бағдарламасын  процедура  жəне  функция  түрінде 
жазалық. 
 
Мысал: Екі санның қосындысын табу керек. 
а) PROGRAM  KPR; 
VAR A: integer; 
PROCEDURE KOS ( B,C: integer; VAR k:integer); 
begin 
k:= B+C; 
end; 
begin 
55

kos (15,4,A); 
WRITELN (‘kos=',A: 2); 
END. 
-  процедура  мен  функцияның  ұқсастығы    олардың  екеуінде  де 
айнымалыларды,  белгілерді,  тұрақтыларды  бейнелеу  бөліктері 
боладыж 
- олардың бір-бірінен бірінші өзгешелігі- 1-сінде PROCEDURE, ал 
2-сінде FUNCTION қызмет сөздері пайдаланылады; 
-  процедурада,  нəтиже  (айнымалы)  параметрінің  типі  процедура 
атауынан соң тұратын кіші жақша ішінде  бейнеленсе, ал функцияда 
нəтиже  үшін  арнайы  параметр  алынбайды,  нəтиже ( функция  мəні) 
функция атына меншіктеледі , сондықтан функция типі, аргументтер 
типтері  бейнеленген  жақша  сыртында, ":" арқылы  көрсетіледі. 
Мысалы: 
function f (a:real,var b:real):real; 
function f (var a,b: integer.):integer; 
function f (a:integer): char; 
-  негізгі  бағдарламада  функцияның  мəнін  тек  функция  атауы 
арқылы пайдаланады. 
Мысал: F= m!-k! есептеу керек. 
PROGRAM FAK; 
VAR F: real; M,K: integer; 
FUNCTION FACT ( N: integer): real; 
VAR I: integer; 
         P: real; 
begin 
         P:=1; 
         FOR I:=1 TO N DO 
         P:= P*I; FACT:= P 
END; 
BEGIN 
READLN( M,K); 
F:= FACT (M)- FACT (K); 
WRITELN ('F=',F) 
END. 
 
 
56

10-Дəріс. Нақты параметрлерді тасымалдау. Жадының жалпы 
облысын пайдалану. Стандартты ішкі функциялардың қоры 
жəне процедуралары. Оларды шақырудың тəсілдері. 
Турбо  Паскальда  сегіз  стандартты  модульдер  бар.  Бұл 
модульдерде көптеген əртүрлі типтер, тұрақтылар, процедуралар мен 
функциялар  қолданылады.  Оларға SYSTEM, DOS, CRT, PRINTER, 
GRAPH, OVERLAY, TURBO3 жəне GRAPH3 жатады.   
GRAPH, TURBO3 жəне GRAPH3 модульдері  жеке TPU- 
файлдарға  белгіленген,  ал  қалғандары TURBO.TPL кітапханалық 
файлдың  құрамына  кіреді.  Тек  қана  бір SYSTEM модулі  кез  келген 
программаға  автоматты  түрде  қосылады.  Басқа  модульдерге USES 
сөзінен  кейін  тізімде  аттары  көрсетілгеннен  соң  қатынас  құруға 
болады. 
Стандартты модульдер 
Негізгілері:-system, -crt, -graph, -dos, -printer. 
Graph модулі жəне tpu-файлда, ал қалғандары turbo.tpl (tpl –Turbo 
Pascal Library) кітапханалық  файл  құрамына  кіреді. System модулі 
ғана  кез  келген  программаға  автоматты  түрде  қосылады,  қалған 
модулдерді uses сөзінен кейін көрсету қажет. 
System 
модулі. 
Турбо 
Паскаль 
стандартты 
ішкі 
программаларының негізгі кітапханасы. Онсыз бірде – бір программа 
орындалмайды. Бұл модульге барлық негізгі стандартты функциялар 
мен  процедуралар  (енгізу  /шығару,  қатармен  жұмыс  процедуралары, 
математикалық  амалдар  жəне  функцияға  тəн  процедуралар  мен 
функциялар) жатады. 
crt  модулі.  Экран  жұмысының  мəтіндік  режимін  басқару, 
кілтжиынды,  дыбыстық  жұмыстарға  сəйкес  процедуралар  мен 
функциялар қамтылады. 
Graph  модулі.  Экранның  графиктік  жұмыс  режимін  басқаруға 
қажетті  типтер,  тұрақтылар,  процедуралар,  функциялар  жиынын 
қамтиды.  Түрлі  графиктік  көріністер  құруға  болатын  ішкі 
программалармен қамтылған. 
dos  модулі. MS-DOS амалдық  жүйесінің  барлық  жабдықтарына 
қатынас ұйымдастыратын процедуралар мен функциялар қамтылған. 
printer  модулі.  Ақпаратты  баспаға  шығарудың  қарапайым  тəсілін 
ұсынады. 
   
 
 
57

Экранды басқарудың процедуралары мен функциялары 
Textmode (mode); мəтіндік режимді орнату. Мұндағы, mode - word 
бүтін типті тұрақты. 
Терезелермен  жұмыс.  Терезені  құру  үшін  қолданылатын 
процедура: window (X1, Y1, X2, Y2); X1, Y1 - терезенің жоғарғы сол 
жақ бұрышының координаталары; 
X2, Y2 - терезенің төменгі оң жақ бұрышының координаталары. 
Мысалы: window(1,1,80,25) – толық экранды алып тұратын терезе 
құрылады. 
  Негізгі процедуралар мен функциялар: 
-clrScr - активті терезені тазарту
- clrEol активті  терезедегі  қатарды  курсор  тұрған  жерден  бастап 
тазарту; 
- GoTo (X, Y) - активті терезенінің шеңберінде X, Y координаталы 
позицияға курсорды орнату; 
- where X - курсордың  ағымдық  позициясындағы X - 
координатасын қайтару функциясы; 
- where Y - курсордың ағымдық позициясындағы Y координатасын 
қайтару функциясы; 
-delay (time) - компьютер  жұмысын  ақырындату  процедурасы; - 
time - миллисекундтағы  кідіріс  уақыты.  Дыбысты  басқару 
процедуралары: 
-sound (Hz) ішкі  динамиканы  қосу  процедурасы. Hz - сигнал 
жиілігі (герц-пен өлшенеді). Дыбыстық сигналды өшіру үшін nosound 
процедурасы қолданылады. 
 
11-Дəріс. Программаларды ұйымдастыру. Əртүрлі 
құрылымдық ұйымдасқан программалардың мысалдары. 
Ақпаратты компьютердің сыртқы құрылғыларында көрсету. 
Файлдармен жұмыс істеу. 
Файлдық тип. Турбо Паскальда файлдың үш түрі бар: 
-мəтіндік файл (text типімен анықталады); 
-типтелген файл (file of тип сөйлемімен беріледі); 
-типтелмеген файл (file типімен анықталады). 
Программада  файлмен  жұмыс  үшін  баяндау  бөлімінде  файлдық 
айнымалыны (файлдық типті) анықтау қажет. 
Ол былай беріледі: 
type 
Тип аты1 =text; Тип аты2 =file of Тип; Тип аты3 =file; 
58

Var; 
Айнымалы Аты1: Тип аты1; Айнымалы Аты2: Тип аты2; 
Айнымалы Аты3: Тип аты3; 
Немесе 
Var; Айнымалы Аты1=text; Айнымалы Аты2=file of Тип; 
Айнымалы Аты3= file; 
Мұндағы, тип –Паскальдағы кез келген тип; (файлдардан басқа). 
Мысалы: 
Type file type= text {файлдық тип} 
var 
ftmp, f: filetype; {файлдық  айнымалы}  немесе var f1, lst: text; 
f2: file; 
Программада  баяндалатын  файлдық  айнымалылар  логикалық 
файлдар деп аталады. 
Деректерді  енгізу/шығаруды  қамтамасыз  ететін  барлық  негізгі 
процедуралар  мен  функциялар  тек  логикалық  файлдармен  жұмыс 
жасайды.  Сондықтан  да,  физикалық  файлды  қолданар  алдында  оны 
логикалық  файлмен  (файлдың  айнымалыларымен)  байланыстыру 
қажет.  Файлды  ішкі  жəне  сыртқы  деп  бөлуге  болады.  Программа 
тақырыбында  қамтылған  файлдар  сыртқы  деп  аталады (sbu f1-f4). 
Ішкі  файлдар  сол  программа  ішінде  құрылады,  мұндай  файлдар 
программаның  орындалуы  кезінде  ғана  жұмыс  істейтін  болады. 
Тізбектей  қатынас  құруға  арналған  файлдар  үшін  файлға  деректерді 
бір мезгілде жазу жəне оқуға тыйым салынған. 
Файлға тікелей қатынас құру тəсілі. Мұнда файл элементтеріне 
олардың  адресі  (нөмірі)  арқылы  қатынас  құрылады.  Қажетті 
элементті іздеген кезде позициялық нөмірін көрсетсе жеткілікті. Бұл 
тəсілде деректерді бір мезгілде оқуға жəне жазуға мүмкіндік бар. 
Файлмен жұмыстың жалпы схемасы 
Файлмен  жұмыс  істеуге  арналған  кез  келген  программаға  тəн 
қасиеттер: 
файлдық типті (логикалық файлды) айнымалыны анықтау. 
assign  (белгілеу)  процедурасының  көмегімен  программалаушы 
қолданылатын  физикалық  файлдардың  əрқайсысына  файлдық  типті 
айнымалыны көрсетеді. 
файлды  иницирлеу  (иницировать),  яғни  деректерді  беру  бағытын 
көрсету. 
Файлмен  жұмыс  файл  құрылған  жағдайда  ғана  мүмкін  болмақ. 
Файл  жоқ  болған  жағдайда,  оны  құру  қажет.  Бұрыннан  бар  болса  –
59

reset  қайта  құру  процедурасы  қолданылады  (переустановка).  Екінші 
жағдайда –rewrite қайта 
жазу 
(перезапись) 
процедурасы 
қолданылады. 
Файлды  ашу  жəне  құру  кезінде  оның  деректерін  уақытша  сақтау 
үшін  компьютердің  жедел  жадысынан  автоматты  түрде  аумақ 
бөлінеді, оны файл буфері деп атайды. Деректерді оқу, енгізу/шығару 
инструкциялары: read, readln, write, writeln. Файлдық  айнымалыны 
жабу жəне деректерді жұмыс аяғында сақтау үшін close процедурасы 
қолданылады. 
Файлмен жұмысқа арналған процедуралар жəне функциялар 
-assign  (файлдық  Айнымалы,  файл  Аты)-логикалық  файлды 
файлдық  айнымалымен  байланыстыру  процедурасы.  Ашық  файлға 
қолданылмайды. Файл Аты – қатарлық типті өрнек. 
-reset (файлдық Айнымалы) процедурасы –бұрыннан бар файлды 
оқу  үшін  ашады.  Файлды  оқу  кезінде  нұсқағышты  оның  басына 
қайтару  керек  болса,  онда reset процедурасын  осы  файлға  қолданса 
жетіп жатыр. 
-ioresult функциясы файлдың дискіде бар-жоғын тексереді. 
-rewrite  (файлдық  Айнымалы)  процедурасы  –деректер  жазу  үшін 
жаңа  файл  құрады  жəне  ашады.  Бұл  процедура  сəтті  орындалған 
жағдайда  файлға  бірінші  элементті  жазуға  болады.  Егер  бұрыннан 
бар  файлға rewrite процедурасын  қолдансақ,  онда  ол  файл  жоғалып 
кетеді  (ішіндегі  деректер  өшіп  қалады)  да,  сол  аттас  бос  жаңа  файл 
құрылады. 
-close 
(файлдық 
Айнымалы) 
процедурасы 
–программа 
өңделгеннен  кейін  программалаушы  файлды  жабу  керек.  Қарсы 
жағдайда деректер жойылып кетуі мүмкін. 
-rename  (файлдық  Айнымалы,  файл  Аты)  процедурасы - кез 
келген  типті  ашық  емес  файлдың  атын  өзгерту  үшін  қолданылады. 
Жаңа ат файл Аты қатарында беріледі. 
-erase  (файлдық  Айнымалы)  процедурасы  кез  келген  типті  ашық 
емес  сыртқы  файлды  жояды,  файлдық  Айнымалы  параметрімен 
беріледі. Rename жəне erase процедураларын  ашық  файлдар  үшін 
қолдануға болмайды. Файлды алдымен жазып алу қажет. 
-eof (файлдық Айнымалылар) логикалық функциясы- (End of File)-
файлдың соңы екенін тексереді (одан деректерді оқығанда). 
 ~ функция true мəтін қайтарады, егер файл соңы болса; 
~ қарама- қарсы жағдайда false болмақ. 
60

Read (оқу файлдан) reset (f) процедурасының операторы орындал-
ғаннан кейін ғана қосылады. 
 
12-Дəріс. Мəліметтердің динамикалық құрылымы. 
Сілтемелер. Кезектер жəне ағымдармен жұмыс істеу. 
Сілтемелер  –деректердің  ерекше  типі.  Сілтемелік  типтер  деп  те 
аталады. 
Осы уақытқа дейін біз тек статикалық программалық объектілерді 
қарастырдық.  Бұл  объектілер  программа  орындалмастан  бұрын 
туындап,  программаның  орындалуы  барысында  мəндер  өлшемі 
өзгерместен қалып отырады (машиналық жады көлемі өзгермейді). 
Статикалық объектілер сол объектілерді баяндаумен туындайды. 
Мысалы: 
Var 
X: array [1..10] of real; 
Программаға  реттік  типті  статикалық  айнымалылар  енгізіледі. 
Статикалық 
объектілер 
программаның 
орындалуына 
дейін 
туындайтындықтан  жəне  олардың  мəндерінің  өлшемі  алдын-ала 
белгілі  болғандықтан  да,  осы  мəндерді  сақтау  үшін  қажетті  машина 
жадысындағы  орын  программаның  бастапқы  мəтінін  машиналық 
тілге трансляциялау кезінде бөлінеді. 
Алгоритмдік  тілде  жазылған  программада  программалық 
объектілерге  сілтеме  олардың  аттары  арқылы  жүзеге  асырылады, 
яғни объектіге аты бойынша қатынас құрылады.  
Қазіргі  кездегі  компьютерлерде  бұл  орын  объекті  адресі  арқылы, 
яғни  жады  ұяшығының  көмегімен  беріледі.  Осы  əрекеттердің 
барлығы  (статикалық  айнымалыларға  тəн)  трансляция  кезінде 
орындалмақ. Дегенмен, программалауда тек статикалық объектілерді 
қолданудың өзіндік қиындықтары (тиімді машиналық программа алу 
көзқарасы тұрғысынан қарағанда) да жоқ емес. 
/*  Кейде  біз  программаны  құру  кезінде  алдын-ала  белгілі  бір 
программалық  объектінің  мəн  өлшемін,  мəн  өлшемі  тұрмақ  сол 
объектінің  өзінің  программа  жұмысы  кезінде  болатынын  немесе 
болмайтынын біле алмаймыз*/. 
Программаның  орындалу  процесінде  туындайтын  немесе 
программаның орындалу барысында мəндерінің өлшемі анықталатын 
объектілер динамикалық объектілер деп аталады.  
Мысалы,  берілген  мəтіннен  (кілең  сөзден  тұратын)  бірінші  сөзді 
табу керек болсын.  
61

Мəні  ізделінетін  сөз  болып  табылатын  айнымалы,  программаның 
орындалу  барысында  мүлдем  пайда  болмауы  мүмкін.  Егер  ол  пайда 
болса, онда осы айнымалының мəні болып табылатын сөз ұзындығы 
алдын-ала  белгісіз  болуы  мүмкін.  Мұндай  айнымалылар – 
динамикалық программалық объектілер болып табылады.     
Динамикалық  объектілерді  қолданудың  да  өзіндік  күрделіліктері 
бар: 
Соның  бірі,  программаның  орындалу  процесінде  динамикалық 
объектілер  пайда  болады,  ал  олармен  орындалатын  əрекет 
программаны жазу барысында берілуі қажет. Осыған байланысты, əлі 
туындамаған  объектіге  программада  қалай  сілтеме  жасауға  болады 
деген  сұрақ  туындайды.  Ол  үшін  Паскальда  динамикалық  объек-
тілермен  жұмыста  қолданылатын  –сілтемелік  тип  қарастырылады. 
Бұл  типтің  мəні  қандай  да  бір  болмасын  программалық  объектіге 
сілтеме болмақ. Машиналық тілдегі мұндай сілтеме сəйкес объектінің 
жадыдағы орнын (адресін) көрсетеді. 
Динамикалық объектілер жəне сілтемелер 
Сілтемелік типті беру синтаксисі: 
<сілтемелік типті беру>:= ↑ <тип Аты>, 
↑  -сілтемелік  тип  белгісі, <тип  Аты> -стандартты  ат.  Сілтемелік 
типті айнымалылар айнымалыларды баяндау бөлімінде беріледі. 
Мысалы: 
type 
массив = array[1 . . 100] of integer; 
динмас =↑ массив; 
var 
p: ↑ integer 
g: ↑ char 
рабмас: динмас; 
мұндағы,   p–бүтін типті динамикалық объектіге сілтеме; 
  

–литерлік типті динамикалық объектіге сілтеме. 
Рабмас -100 саннан  тұратын  массивті  құрайтын  динамикалық 
объектіге сілтеме. Барлық статикалық айнымалылардың ортақ қасиеті 
–олардың  мəндері  сəйкес  динамикалық  объектінің  жадыдағы 
орындарын  көрсету,  сондықтан  сілтемелік  типті  айнымалыларды 
сілтемелер деп жиі атайды. 
Кейбір жағдайларда нұсқағыш мəні ретінде ешқандай  объектімен 
байланыспайтын  «бос»  сілтемелер  құру  қажеттілігі  туындайды. 
Мұндай  мəн  Паскалда nil қызметтік  сөзімен  беріледі  де,  кез  келген 
62

сілтемелік  типке  жатады. /* Енді  динамикалық  объектілермен  қалай 
жұмыс  жасауға  болады,  оған  мəндерді  қалай  меншіктейміз,  соны 
қарастырайық*/. 
Динамикалық  объектіге  сілтеме  жасау  үшін  нұсқағышты 
айнымалы  деген  түсінік  қолданылады. <нұсқағышты  айнымалы>:= 
<сілтемелік айнымалы>↑  
 <сілтемелік  айнымалы> - программадағы  берілген  динамикалық 
объектіге  сəйкес  сілтемелік  типті  статикалық  айнымалының  аты. 
Сілтемелік  типтен  кейін  қойылған  ↑  белгісі  –сол  сілтемелік 
айнымалының  мəнін  емес,  осы  сілтемелік  тип  көрсететін 
программалық объектінің мəнін көрсетеді. 
Мысалы: программада p  айнымалысы бар болсын: 
var 
p: ↑ integer; 
new(p)  процедурасының  орындалуы  нəтижесінде, integer типті 
динамикалық  объект  туындайды.  Одан  соң: p↑:=58;  меншіктеу 
операторын  жазатын  болсақ,  онда  жоғарыдағы  динамикалық 
айнымалыға 58-ге  тең  мəн  меншіктеледі.  Егер r – integer типті 
айнымалы  болса,  онда  мынадай  меншіктеу  операторын  жазуға 
болады: 
R:=r+p↑+2 ; 
r –дің бастапқы мəні берілсе, онда 58+2 = 60 болады. 
Сілтемелік айнымалы ретінде индексті айнымалыларды (массивке 
байланысты) қолдануға болады; 
A[2] немесе A[K+5] → A[2]↑ жəне A[k+5]. 

Достарыңызбен бөлісу:
1   2   3   4   5   6   7   8   9   10




©emirsaba.org 2024
әкімшілігінің қараңыз

    Басты бет