Программа денесі(операторлар тізбегі)



бет87/163
Дата07.02.2022
өлшемі4,26 Mb.
#94523
түріПрограмма
1   ...   83   84   85   86   87   88   89   90   ...   163
Байланысты:
cda6b05d-8cb5-11e3-bf6e-f6d299da70eeУММ ПР1

MemAvail функциясы үймедегі барлық бос жадының санын көрсетеді. Әдетте бос жады тұтас блокты емес, бөлінген аудандардың жиынтығын көрсетеді. Функцияның нәтижесі Longint типті мән қабылдайды. Бұл функцияның тақырыбы төмендегідей.
Function MemAvail: Longint;
12-ДӘРІС. Деректердің дннамикалық құрылымы.

  1. Рекурсивтік деректердің типтері.

  2. Байланысқан тізімдер.

  3. Стектер. Кезектер. Дектер. Ағаштар.

  4. Екілік ағаштардың негізгі амалдары.



Динамикалық мәліметтердің екі түрі
Нұсқауыштар сілтейтін динамикалық мәліметтерді екі категорияға бөлуге болады: ішкі сілтемелері жоқ мәліметтер және іскі сілтемелері бар мәліметтер.


Ішкі сілтемелері жоқ динамикалық мәліметтер
Бұл мәліметтер статикалық мәліметтерден тек қана мәліметтерді сипаттау бөлімінде айнымалылар емес, оларға сілтемелер ғана жарияланатындығымен ерекшеленеді. Ал айнымалылардың өздері программа жұмысы барысында оларға жады бөлінеген кезде (New немесе GetMem процедурасымен) немесе бұл жады босатылған кезде (Dispopse немесе FreeMem процедурасымен) жасалып, жойылады.
Осындай статикалық мәліметтермен салыстырғанда олардың артықшылығы неде?
Алдында айтылғандай, статикалық мәліметтер үшін жады программа жүктелгенде бөлінеді де, программа жұмысы аяқталғанша босамайды. Ал динамикалық мәліметтер үшін (ішкі сілтемелілері үшін де, сілтемесіздері үшін де) жады сол динамикалық айнымалыны қолдану кезінде бөлінеді де, оны қолданып болғаннан кейін бірден босатылады. Сонымен, динамикалық жадыны қолдана отырып, аз көлемді оперативті жадыны пайдалануға болады. Басқаша айтқанда, динамикалық жадыны пайдалану үлкен көлемді динамикалық жадымен жұмыс істеуге мүмкіндік береді. Мысал ретінде массивтерді өңдеуді алуға болады. Алдында айтылғандай 15 ммың элементі бар массивтерді өңдеуге болады, ал 20 мың элементі бар массивті өңдей алмаймыз. Төмендегі мысалда динамикалық жадыны қолданып, көлемді ақпараттық құрылымдармен жұмыс істеуге болатынын көруге болады.
Статикалық және осындай динамикалық (ішкі сілтемесі жоқ) құрылымдарды қолдану мысалдарын 6-кестеден көруге болады.
6-кесте

Статикалық айнымалылар

Динамикалық айнымалылар

Var
A:Boolean;
B: integer;
X:array[1..10] of integer;
J:1..10;
Begin
A:=true;
B:=44;
For j:=1 to 10 do
Read(x[j]);

End.

Type
V = array[1..10] of integer;
Var
Pa:^Boolean;
Pb:^integer;
Px:^v
J:1..10;
Begin
new(pa);
new(pb);
new(px);
pa^:=true;
pb^:=44;
for j:=1 to 10 do
read(px^[j]);

Dispose(pa);
Dispose(pb);
Dispose(px);
End.

Бұл кестеде екі программа үзіндісін көруге болады, біріншісінде статикалық айнымалылар қолданылады (олардың екеуі Boolean және integer типті, ал үшіншісі массив), ал екіншісінде - осындай динамикалық айнымалылар. Динамикалық жадыны қолданудың негізгі ерекшелігі бұл айнымалыларға жады бөлу, содан кейін оны босату қажеттілігі болып табылады.
Ескрету: бірінші программада массив төмендегідей жарияланған:
X:array[1..10] of integer;
Ал екінші программада типтерді жариялау бөлімінде V типі жарияланған.
V = array[1..10] of integer;
Осыдан кейін айнымалыларды жариялау бөлімінде V типті мәліметтерге нұсқауыш жарияланған.
Px:^v;
Неліктен екінші программада біріншідегідей массивке нұсқауыш жарияланған жоқ?
Px: array[1..10] of integer;
Бірақ, бұлай жазып, соңынан программаны іске қоссақ, программаның осы нүктесінде (^ белгісінен кейін) идентификатор күтілетіндігі жөнінде қателік туралы хабарлама келеді. (array – идентификатор емес, резервтелген сөз). Басқаша айтқанда нұсқауышты тікелей массивке жариялауға болмайды. Бұл кедергіні айналып өту үшін алдымен V пайдаланушы типін жариялауға тура келді.
V = array[1..10] of integer;
Содан кейін V типті мәліметтерге нұсқауыш жарияланды.
Px:^v;
Осы жерде айтылғандардың жазбалар мен жиындарға да қатысы бар, себебі Record және Set – бұлар да резервтелген сөздер.




Достарыңызбен бөлісу:
1   ...   83   84   85   86   87   88   89   90   ...   163




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

    Басты бет