Динамикалық ұғым принципімен программа құру технологиясы

Мазмұны

I. Кіріспе ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ...2.3

II. Негізгі бөлім
1. Көрсеткіштер. Көрсеткіштерді анықтау ... ... .4.5
2. Динамикалық ұғымды ерекшелеу және босату ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ...6.12
3. Көрсеткіштерді қолдану ... ... ... ... ... ... ... ... .12.16
4. Динамикалық ұғыммен жұмыс істеу үшін процедуралар мен функцияларды пайдалану ... ... ... ... ... ... ... ... ... ... ... 16.19
5. Үйінтек әкімдігі ... ... ... ... ... ... ... ... ... ... ... ...19.21

IV. Есептің қойылымы ... ... ... ... ... ... ... ... ... ... ... ... 24

V. Пайдаланған әдебиеттер ... ... ... ... ... ... ... ... ... ...25
Программада анықталған айнымалылардың барлығы оның орындалуы кезінде компьютердің жедел жадының мәліметтер сегменті деп аталатын бөлігінде орналасады. Мәліметтер сегментінің ұзындығы 80х86 микропроцессор архитектурасымен анықталады және 65536 байт құрайды. Мәліметтер сегментінің аздығы программада өлшемі үлкен массивтерді пайдалануда үлкен қиындық туғызады. Бір жағынан, дербес компьютердің (ДК) жады көлемі (әдетте 640 Кбайттан кем емес ) үлкен көлемді есептерді сәтті шығаруға жеткілікті. Бұл жағдайдан шығу үшін динамикалық ұғым принципі қолданылады.
Динамиканың ұғым принципі - ДК жедел жадысы, Д.К. микропроцессорының сәулетіне байланысты, көлемі 300 Кбайттан кем емес жедел жадының арнайы бөлігіне мәліметтерді орналастыру мүмкіндігі бар. Ол бөлік компьютер жедел жадының мәліметтер сегментінен және стектен тыс орналасады. Динамикалық ұғым принципінде орналасқан мәліметтерді динамикалық деп атайды. Оның статикалық мәліметтен ерекшелігі, оларды кез келген уақытта компьютер жадына орналастырып, не одан өшіріп отыруға болады.
Динамикалық ұғым принципі бұл іс жүзінде мәліметтері үлкен көлемді массивтерді өңдеуде жалғыз мүмкіндік. Көп практикалық есептерді динамикалық ұғым принципінсіз шығару қиын немесе шығару мүмкін емес. Мұндай қажеттілік автоматтандырылған жобалау жүйесін құру (ААЖҚ) кезінде туындайды: ААЖҚ - да қолданылатын бір қалыптылық математикалық моделі басқа жобаларда анағұрлым өзгешелеу болуы мүмкін; бұл жағдайда статистикалық ұғым принципін қолдану мүмкін емес. Ақыры, Дербес компьютердің графикалық және дыбыстық тәсілдерімен жұмыс кезінде мәліметтерді уақытша сақтау үшін динамикалық ұғым кеңінен қолданылады.
Мәліметтерді динамикалық орналастыру - динамикалық ұғым принципіне тікелей программамен жұмыс істеу барысында қолдану. Бұған қарағанда, мәліметтерді статикалық орналастыру Турбо Паскаль компиляторымен программа компиляциялау барысында іске асады. Мәліметтерді динамикалық орналастыруда, орналастырылатын мәліметтердің не типі, не мөлшері белгілі болмайды, және оларға статикалық айнымалылар сияқты аты бойынша жүктеуге болмайды.
        
        Динамикалық  ұғым  принципімен  программа  құру технологиясы
Мазмұны
I.
Кіріспе........................................................
...............2-3
II. Негізгі бөлім
1. Көрсеткіштер. ... ... ... ... ерекшелеу және
босату....................................................
...............6-12
3. Көрсеткіштерді қолдану.................................12-
16
4. ... ... ... ... үшін ... ... пайдалану……………………………………..16-19
5. ... ... ... анықталған айнымалылардың барлығы оның орындалуы
кезінде ... ... ... ... ... деп
аталатын бөлігінде орналасады. ... ... ... ... ... ... және 65536
байт құрайды. Мәліметтер сегментінің ... ... ... ... ... ... қиындық туғызады. Бір
жағынан, дербес компьютердің (ДК) жады ... ... ... кем емес ) ... ... есептерді сәтті шығаруға
жеткілікті. Бұл жағдайдан шығу үшін ... ... ... ұғым ... - ДК ... ... Д.К.
микропроцессорының сәулетіне байланысты, көлемі 300 ... емес ... ... арнайы бөлігіне мәліметтерді
орналастыру мүмкіндігі бар. Ол ... ... ... ... ... және стектен тыс ... ұғым ... ... ... ... ... Оның статикалық мәліметтен ерекшелігі, ... ... ... компьютер жадына орналастырып, не ... ... ... ұғым ... бұл іс ... ... көлемді массивтерді өңдеуде ... Көп ... ... ... ... ... қиын ... шығару мүмкін емес. Мұндай
қажеттілік автоматтандырылған жобалау ... құру ... ... ААЖҚ - да ... бір ... моделі басқа жобаларда анағұрлым ... ... бұл ... ... ұғым принципін қолдану
мүмкін емес. Ақыры, ... ... ... ... ... жұмыс кезінде ... ... үшін ... ұғым ... қолданылады.
Мәліметтерді динамикалық орналастыру - ... ... ... ... жұмыс істеу барысында
қолдану. Бұған ... ... ... орналастыру
Турбо Паскаль компиляторымен программа компиляциялау барысында
іске асады. ... ... ... мәліметтердің не типі, не мөлшері белгілі
болмайды, және ... ... ... сияқты аты
бойынша жүктеуге ... ... ... Дербес компьютердің жедел
жады әрқайсысы 1 байт ... ... ... ... ... жиынтығы болып табылады. Ұяшықтардың
нөмірлері ... ... деп ... ... мәліметтер
жедел жадыдағы тұрақтары ... ... ... ... динамикалық ұғым принципін
басқаруға ... ... ... ол - ... - өз ... ... жедел жады ... ... ... компьютерде тұрақтар екі он алты ... ... Олар ... және ... деп ... ... жадынан әрбір ... төрт байт ... ... ... екі ... оның ... ал
соңғыларын ығысу деп атайды. ... - жады ... ... 65536 байт (64 ... және ол ... ... Олар ... мәнінің жедел ... ... ... ... көрсеткіш мәнінің алғашқы байтын көрсетсе,
ығысу байт ... ... ... ... ... 1 Мбайтты құрайды.
Дербес компьютердің қазіргі ... ... ... және одан да көп ... Турбо Паскальда 1 Мбайт
шеңберінде тұрақтандыру үшін 20 ... ... ... олар ... алты ... ... ... және ығысу ) келесі
ретпен құрылады (1 – ... ): ... ... ... төрт ... ... оң разрядтар нөлмен толады, ... ... ... 16 байттық фрагменті параграф деп аталады,
сондықтан, ... ... ... нақтылығымен тұрақтандырады
деп айтуға болады. Әр ... ... және ... жады ... ... ... ... жадыда
бірінен соң бірі ... ... ... ... ... - ... жауып жүруі мүмкін.
Сегмент
|15 |
| |
| ... ... ... ... ... тұрақ
Осы көрсеткіштің фрагменті ... ... I ... ... ... ... ал HEAPPTR өз мәнін
екіге арттырады, ... I ... ... INTEGER – ... ... ұзындығы 2 байтқа тең. Оператор
New (r );
Қайтадан HEAPPTR ... ... ... ... енді 6 ... себебі REAL типінің ішкі
көрінісінің ұзындығы осындай. ... ... ... да кез
келген типтің айнымалылары үшін жады ... ... мән ... ... ... ... физикалық байтын көрсете бастауы, сондай- ақ ... ... ... ... ... ... ... Ол үшін
көрсеткіштен кейін ешқандай бос орынсыз ^ ... ... :
I ^ : = 2 I ... обылысына 2 мәні
орналастырылған
R ^ : = 2 * pi ; r ... ... 6.28 ... көрсеткіш көрсететін мән, яғни үйінтекте
орналасқан ... ^ ... ... ... кейін
қойылады. Егер көрсеткіштен кейін ^ ... ... ... ... ... ... ... Осы туралы ойланудың
мәні бар : кез келген ... мәні ... ... ал ... ... туралы емес, осы тұрақта орналасқан
мәлімет туралы екенін көрсету үшін ... ... ^ ... ... нақты түсініп алса, динамикалық ұғым ... ... ... ... ... ... программаның кез
келген жерінде, ... мен ... ... айнымалыларды
орналастыруға болатын жерінде ... ... ... ^ : = sgr (r ^) + I ^ - ... ... оператор болмайды :
R : = sgr (r ^) + I ^ - 17;
R ... ... мән ... ... Сол ... оператор болмайды:
R ^ : = sgr (r );
R ... мәні ... ... ... және оны ... ... ... меншіктеу қате болады:
R ^ := I ;
R ... ... ... ... ... ... ... үйінтектен алып қана қоюға болмайды, оны
қайтаруға да болады. Ол үшін Dispose ... ... (r ... (I ... ... бұрыш I және R ... 8 ... ... ... Dispose (RTR ) ... RTR ... ... тек қана үйінтекке бұрын осы көрсеткішпен байланысты
болған ... ... ... бос ... ... ... ... қате пайда болуына әкеп ... ... ... ... сөз NIL - мен ... болады. Қандай да
бір көрсеткіш белгіленген бе әлде жоқ па ... ... ... болады:
Const
P : ^ real = NIL ... . . . .
if p = NIL ... (p );
. . . . ... (p);
p: = NIL ;
, . . . ... ... ... ... ... ... келтірілген фрагмент көрсеткішті анықтауының
типтелген константа түрін бір уақытта оған Nil ... ... ... ... бастапқы мәні еркін болуы ... кету ... New ... мәні ... ... ... ... ол күтпеген шешімдерге әкеп ... және DISPOSE ... ... ұяшықталынған құрылымға әкеп ... ... ... үйінтек әкімдігі деген ерекше көмекші программаның
басқаруымен ... Ол ... ... ... ... және үйінтектегі бос фрагменттердің есебін ... ... ... ... бұл көмекші программа
керекті айнымалы орналаса алатын ең аз бос ... ... ... ... басы көрсеткішке оралады, ал
көрсеткіштің өзі немесе оның ... ... ... бос емес ... ... ... мүмкіншілігі - толық ... ... да. Осы ... ... ұғымды ерекшелеу ... ... ... мәні MARK ... ... - ... есте ... Енді кез келген уақытта
MARK процедурасы еске ... ... ... ... аяғына дейін үйінтек ... ... ... Ол үшін
RELEASE процедурасы қолданылады.
Мысалы:
Var
P, p1, p2,
P3, p4, p5 : ^ integer;
Begin
New (p1) ... (p2) ... (p ... ... ... (p5);
. . . . . .
release (p);
end.
Бұл мысалды HEAPPTR ... ... MARK ... ... P ... ... алайда жады
айнымалыға резервтелген жоқ.
Release (P) ... ... ... ... ... ... дейін босатты. 3 – сурет NEW - DISPOSE және NEW ... - RELEASE ... ... және RELASE ... ... DISPOSE (P) үшін ... ... жұмыс
механизімін бейнелейді.
|p1^ |
|p2^ ... ... ... |
| ... ... |
| ... |
|p2^ |
| ... ... |
| ... ... Release ...... Динамикалық ұғым құрылымы
а) босау алдында; б) DISPOSE(P3)-тен кейін; в) RELEASE(P)-тен ... кету ... RELEASE – ты ... DISPOSE ... ... бос ... тізімін жояды. Сондықтан екі
бірдій жадыны босату механизмін бірге бір ... ... ... ... айтылғандай NEW процедурасының параметрі
тек қана ... бола ... ... ... ... істеу
үшін:
GETMEM (P,SIZE) – жадыны резервтеу
FREEMEM (P,SIZE) – жадыны ... P – ... ...... керекті немесе босатылатын
бөлігінің байтпен берілген көлемі.
GETMEM процедурасының ... бір ... ... дейін динамикалық ұғымды резервтеуге болады.
GETMEM - FREEMEM процедурасын ... және ... ... ... ... және қарапайым ережелерді тиянақты
орындауды қажет ... ... жады ... ... жады ... қай ... резервтелсе, сол тұрақтан босатылу керек.
Турбо Паскальда ... ... бар ... ... ... кең ... береді. Өкінішке
орай NEW және DISPOSE ... ... ... программада кеткен қателіктерді табу ... және де ... тип ... әкеп ... ... Іс ... ... бар болсын:
Var
i,j : ^ integer;
r : ^ real;
begin
new (i); {i:=HeapOrg; ... ... {j:= ... { ... HeapOrg }
new(r); { r:= HeapOrg; HeapPtr:= HeapOrg+6}
r^:=pi;
writeln(j^) { ?? ... ... ... Бұл ... жауап беру үшін HEAPPTR
көрсеткішін бақылайық. Программа орындалуы алдында бұл ... ... ... I ... жіберілген HEAPORG үйінтегінің
тұрақ басының ... ... ... – ды орындаған соң
үйінтектің көрсеткіші қайтадан HEAPORG мәнін қабылдайды. Бұл ... ... R ... ... R ... саны ... соң, үйінтектің бірінші 2 байты осы ... ... ... ... ... Ал J әлі де HEAPORG – ... ... сондықтан оператор WRITELN(J^) π санының 2
байтын бүтін санның ішкі ... ... ... ... J бұл
INTEGER типіне көрсеткіш) және 8578 шығарады.
Көрсеткіштерді ... ... ... ... ... ... 200 … 300 немесе одан да көп Кбайт құрайды, оның басы ... ... ал соңы HEAPEND ... ... ... ... ұғымның бос аймағының ағымды тұрағы
HEAPPTR көрсеткішінде ... ... ... орналастыру үшін динамикалық ұғымды
қалай пайдалану ... ... ... ... 100x200 ... ... матрицаның элементтеріне доступ қамтамасыз ету
керек болсын.
Бұл мәселені ... ... ... ... ... : integer;
PtrArr : array [1..100, 1..200] of ^ real;
Begin
For i:=1 to 100 ... j:=1 to 200 ... ... ... ... ... массив элементіне мынандай
тұрақпен жүктелуге болады. Мысалы;
PtrArr [1,1]^ :=0;
If PtrArr [i,j*2 ] ^ > 1 then ... ... ... ішкі ... ... 4 байт
құрайды, сондықтан PTRARR массивін орналастыру ... байт ... ал ол ... ... орналастыру
үшін мәліметтер сегментінің көлемінен асып ... (65536 ... ... шығудың жолы – тұрақтық арифметика, ... ... ... бұл ... PTRARR ... ... бас ... оған жүктелер алдында тікбұрышты
матрицаның кез келген ... ... ... ... ... Паскальда көрсеткіштермен тіркестіру және ... ... ... да, берілген есепті шығаруға болады. Біз ... кез ... ... сегмент пен ығысу сақталатын
WORD типті 2 сөзден ... ... ... WORD ... екі ... ... Олар мына ... мазмұның
алуға мүмкіндік береді:
SEG(X) – тұрақтың сегментті бөлігін ...... ... ... ... ... X ... болып кез келген
айнымалы, көрсеткіш нұсқайтын айнымалы болуы да қызмет ете ... егер ... ... (p);
p^:=3.14;
……
end.
бар болса, онда SEG (P) функциясын 4 байтты P көрсеткіші бар
тұрақтың сегментті ... ... ... SEG(P^) – 3.14 ... 6 ... ... ... сегменті.
Бір жағынан, PTR( SEG, OFS: WORD): POINTER ... ... кез ... типті көрсеткішпен бірігетін
көрсеткіш мәнін құруға болады. ... ... іс - ... ... Басында GETMEM прцедурасымен үйінтектен жарамды
ұзындықты бірнеше фрагменттер алынады. Бұл ... ... ... ... ... ... ... яғни
200*10=2000 байт, сиятындай етіп әр ... ... ... басы,
100 көрсеткіштен тұратын PTR ... еске ... Енді ... ... ... кіру үшін осы ... ... ... ... анықтау керек және сәйкес көрсеткіш құру керек.
Var
i,j : ... ... of ... ... = ... i:=1 to 100 ... (PtrStr[i],SizeOfReal*200);
…….
{ [i,j]матрицасының элементіне жүктелу}
pr:= prt(seg(PtrStr[1]^)),
ofs(PtrStr[i]^)+(j-i)*SizeOfReal);
if pr^ >1 ... ... ... ... программада жиі қолданылатын
болғандықтан матрицаның элементін ... GETR ... ... ... және ... жаңа мағынасын анықтайтын
PUTR процедурасын енгізген ... Және де ... әр ... ... ... анықтау үшін ADDR функциясына жүктеледі. Келесі
мысалда жадыда NxM кез келген ... ... ... және ... ... ... ... берілген.
Const
SizeOfReal = 6; {Real типті айнымалының ұзындығы}
N = 100; ... ... = 200; ... ... : integer;
PtrStr : array [1..N] of ponter;
S : real;
Type
RealPoint=^ real;
{------------------}
function AddrR (i,j:word):RealPoint;
{i сегменті мен j ... ... ... айнымалының
тұрағы }
begin
AddrR:=ptr (seg(PtrStr[i]^),
Ofs(PtrStr[i]^+(j-i)*SizeOfReal)
End(AddrR);
{------------------}
function GetR(i,j:integer):real;
{i сегменті мен j ығысуы бойынша нақты айнымалының ... ... ... x: ... сегменті және j ығысуы бар тұрақты айнымалыға x ... ... ... i:=1 to N ... ... ... j:=1 to M do ... Random)
End;
S:=0;
For i:=1 to N do
For J:=1 to M do
s:=s + GetR(i,j);
writeln(s/(N*M):12:10)
end {Main}.
Қаралған мысалда әр жол ... ... ... ... ... әр көрсеткіші үшін ығысу 0 – ге тең. ... ... ... қайталанба жүктелу кезінде кезекті фрагменттің
басы оның алдындағысының артынан жүреді және ... ... ... ... ... ... (65521байт) фрагментті
орналастырғанда соңғы байтты табу ... ... ... ... ұғым ... ... істеу үшін процедуралар мен
функциялары ... ... ... ... ... ... жоғарыда қаралған процедуралар мен ... және ... ... ... POINTER ... жауапты қайтарады.Онда аргумент
тұрағы орналасыда.
Атауы:
ADDR(X)
Мұндағы X – кез келген программа ... кез ... ... функция аты. Қайтымды тұрақ кез ... ... ... ... Айта кететін жәйт, осы сияқты жауапты @ операциясы
қайтарады.
CSEG функциясы. ... СS ... ... мәнді
қайтарады. (Программамен жұмыс істеудің басында программа кодының
бас сегменті CS регистірінде ... WORD ... ... ... ... ... ... типтелген көрсеткішті
динамикалық ұғым фрагментін ... ... TP – ... ... ... ... процедураны
қайталап қолданылғанда орындау периодында қате шығады. Динамикалық
объектілерді ... ... ... ... DISPOSE – ... ... атын ... болады.
DSEG функциясы. Микропроцессордың DS регистірінде сақталатын
мәнді қайтарады. (программамен жұмыс ... ... ... ... ... DS регистірінде орналасады)
Атауы :
DSEG
Жауабы WORD ... ... ... ... Бұрын типтелмеген көрсеткішке резервтелген
динамикалық ұғым фрагментін қайтарады.
Атауы:
FREEMEM(P,SIZE)
Мұндағы P – типтелмеген көрсеткіш;
SIZE – ... ... ... ... ... ... ... (босатылған фрагменттер) орындау
периодында қате кетуі мүмкін.
GETMEM процедурасы. Типтелмеген көрсеткішке керекті ... ұғым ... ... бір ... 65521 байт ... ... болады. Егер керек көлемді бос жады жоқ ... ... ... қате ... Егер жады ... ... процедураға бірінен соң бірі жүктеулер бірінен соң бірі
орналасқан жады ... ... ... да ... ... алдыңғысының соңынан орын алады.
MARK процедурасы. HEAPPTR үйінтегінің көрсеткішінің ... еске ... PTR – кез ... ... ... Онда ... мәні ... Ол RELEASE процедурасымен бірге
қолданылып үйінтек ... ... ... ... ең ... ... аймағының
байттық мөлшерін қайтарады.
Атауы:
MAXAVAIL
Жауабы LONGINT типті болады. NEW немесе GETMEM ... ... осы ... ... жадыдан көп жадыны
резервтеуге ... ... ... жалпы бос аумағын байттық
мөлшерде қайтарады.
Атауы:
MEMAVIL
Жауабы типті LONGINT болады.
NEW процедурасы. Айнымалыны ... үшін ... ... TP – ... ... бір жүктелгенде 65521 байт динамикалық ұғымды
резервтеуге болады. Егер керек мөлшерді бос жады жоқ ... ... ... қате ... Егер жады фрагменттелмеген болса,
онда процедураға бірінен соң бірі ... ... соң ... жады ... резервтейді. Сондықтан да келесі жадының
басы алдыңғысының соңынан орын ... ... ... ... шақырыла алады. Бұл жағдайда
оған жүктелу параметрі үйінтекте орналасқан параметр типі ... NEW ... ... типін қайтарады. Мысалы:
Type
PInt=^integer;
Var
P:=PInt;
Begin
P:=New (PInt);
……….
End.
Динамикалық ұғымға объектіні орналастырғанда, NEW – ге
жүктелудің ... ... ... конструктор атын көрсетуге
болады.
OFS функциясы. Көрсетілген объектінің ... ... ... ... ... ... X – кез ... типтің мәні немесе процедура ... ... SEG ... және OFS ... арқылы
берілген POINTER типті мәнлі қайтарады.
Шақыру:
PTR(SEG, OFS)
Мұндағы SEG – ... ... бар WORD ... ...... ығысу бар WORD ... ... ... ... босатады.
Атауы:
RELEASE(PTR)
Мұндағы PTR – кез келген типті көрсеткіш. Онда алдын-ала ... ... ... ... мәні сақталады. PTR – ... ... ... ... дейін үйінтек аймағы босатылады.
DISPOSE немесе FREEMEM ... ... ... ... ... бір уақытта жойылады.
SEG функциясы. Құрамында көрсетілген объектінің тұрақ ... WORD ... ... қайтарады.
Шақыру:
SEG(X)
Мұндағы X – кез келген типті мән немесе ... ... ... ... объектінің байттық ұзындығын
қайтарады.
Шақыру:
SIZEOF(X)
Мұндағы X – айнымалы, функция ... тип ... ... ... ... ... әкімдігі – бұл
көмекші ... ... Ол ... ... ... ... қамтамасыз етеді. Үйінтек әкімдігі NEW, GETMEM,
DISPOSE, FREEMEM және басқаларының ... ... ... HEAPPTR, FREELIST ... ... ... ... үйінтектің бос ... ... ... ... ... ... ... бос блоктың ... ... SYSTEM ... де FREELIST ... POINTER ... ... ол ... мәліметтер құрылымын көрсетеді:
Type
PFreeRec=^TFreeRec;
TFreeRec=record
Next:pointer;
Size:pointer;
End;
Бұл тізімді ... HEAPPTR ... ... ... ... ... сипаттауға арналған. Блоктардың шығуы NEW – ... GETMEM – FREEMEM ... ... ... ... соң ... ... байланысты. NEXT алаңы
TFREEREC жазбасында үйінтектің тізімі бойынша ... ... бос ... немесе HEAPEND – пен сәйкес ... ... алаң ... ... ... ... ... құрайды. SIZE алаңы
бос блоктың нормалдандырылмаған ұзындығын ... егер HEAPPTR – ... ... төменде бос блоктар жоқ болса 0 – ді ... ... ... ... осы ... үлкен
сөзінде бос параграфтардың саны болады, ал кішісін
де - 0…15 ... ... бос ... саны. Келесі
функция SIZE ... ... бос ... ... ... BlockSize(Size : pointer) : Longint;
Type
PtrRec = record
Lo, Hi: word
End;
Var
LengthBlock : Longint;
Begin
BlockSize : = LongInt(PtrRec(Size).Hi)*16+PtrRec(Size).Lo
End;
Программаны жіберген соң HEAPPTR және FREELIST ... ... ... келетін бірдей тұрақ ... ... ... ... ... ... 8 байтында
TFREEREC ... ... ... ... ... (NEXT алаңы
HEAPPEND мәнімен сәйкес келетін ... ... ал SIZE ... ... ... ... жоқтығының қосымша белгісі ... 0 – ді ... ). ... ... ... ... FREELIST ... ең болмағанда бір бос блок ... ... ... төмен болмағанша бірдей мәнді
болады. Осылар іске ... FREELIST ... осы ... ... болады, ал жадының босаған аймағының бірінші 8 байтында
TFREEREC ... ... FREELIST – ті ... басы ... ... ... бос ... тізімін көре алады және
қажет болса оны ... ... ... ... ... ... ... орындалуы кезінде компьютердің жедел ... ... (64 ... деп аталатын бөлігінде ... ... ... деп ... Мәліметтер сегментінің көлемінің
аздығы ... ... ... ... ... ... туғызады. Осындай жағдайда, Турбо Паскальда динамикалық ұғым
деп аталатын, ДК ... ... ... ... ... кем емес ... ... арнайы бөлігіне мәліметтерді
орналыстыру мүмкіндігі бар. Ол ... ... ... ... сегментінен және стектен тыс ... ... ... ... ... деп атайды. Оның
статикалық ... ... ... кез ... ... ... орналастырып не одан өшіріп отыруға болады.
Динамикалық айнымалыларды анықтаудың екі ... бар. ... ... бір ... ... байланыстырылса, онда оны
типті, ... ... деп ... Типті көрсеткішті анықтағанда тип
атының ... ^ ... ... ... ешқандай шектеу қойылмайды.
Көрсеткіштің бір ғана тұрақты nil мәні бар, ол ... ... ... ... ... nil ... не ... да болады. Типтері ... ... ғана ... ... ... ... де рұқсат етіледі. Типсіз
көрсеткішті ... үшін pointer ... типі ... ... ... ... мен типі ... барысында өзгеріп отыратын мәліметтермен жұмыс жасағанда
өте қолайлы. ... ... кез ... ... ... ... ... болады. Осы жағдайды кез ... ... ... өзге ... ... беру үшін ... Паскльда динамикалық ұғым біртұтас байттар массиві ... және оны ... деп ... Үйінтектің басы HEAPORG,
аяғы HEAPEND ... ... ал оның ... ... HEAPPTR ... сақталады.
Есептің қойылымы
Турбо Паскаль жөнінде кітаптар туралы ... УДК ... ... аты – ... ... ... жылы
5. Кітапханадағы осы кітаптар данасы
6. Келіп түскен кітаптар ... ... ... esep;
Const M=15;
Type T=Record
F:array[1..M]of string
A:string
U:word
G:word
M:string
D:word
End;
Var Tizim:T;
i,S,S1:integer;
Begin
Write (‘келіп түскен кітаптар саны=’);
Read (S);
End;
For i:=1 to S ... ... ... ... ... ... В.В. ... на языке Турбо Паскаль 7.0 ... ... ... Е.А. ... на ... ... Паскаль. Алматы 2000
3. Самашко Г.Л. ... А.И. ... на ... ... Москва, Наука 1998
4. Адаменко А. Паскаль на примерах из математики. ... ... Н. ... ... в задачах и примерах. Санкт- Петербург
2006
6. Сукачёв Турбо Паскаль 7.0 ... и ... ...... 2004

Пән: Информатика
Жұмыс түрі: Реферат
Көлемі: 23 бет
Бұл жұмыстың бағасы: 500 теңге









Ұқсас жұмыстар
Тақырыб Бет саны
«Кабельдің бірінші реттік параметрлерін өлшеу» атты зертханалық жұмыс3 бет
Арыз8 бет
Биіктік торлардың дәлдігін есептеу әдістері. Биіктік инженерлік-геодезиялық торларды құру кезінде нивелирлеу12 бет
Бұрғылау сорабы және оның пайдалану шарттары9 бет
Конституциялық құрлыс5 бет
Кәсіпорындардың ұйымдарға бөлінуі, бірігуі. Түрлері7 бет
Халық педагогикасы мен ғылыми педагогиканың сабақтастығы5 бет
Әбу-Насыр-Әл-Фараби4 бет
Қылмыс және қылмыстық құқық68 бет
Қылмыстық қүқық ұғымы, міндеттері мен принциптері10 бет


Исходниктер
Пәндер
Көмек / Помощь
Арайлым
Біз міндетті түрде жауап береміз!
Мы обязательно ответим!
Жіберу / Отправить


Зарабатывайте вместе с нами

Рахмет!
Хабарлама жіберілді. / Сообщение отправлено.

Сіз үшін аптасына 5 күн жұмыс істейміз.
Жұмыс уақыты 09:00 - 18:00

Мы работаем для Вас 5 дней в неделю.
Время работы 09:00 - 18:00

Email: info@stud.kz

Phone: 777 614 50 20
Жабу / Закрыть

Көмек / Помощь