| Bios-data Dos-data rezidenty | |
| Ide prostredie | |
| Program | Kód programu - preložené príkazy max. 64kB |
| Dáta programu - globálne premenné max. 64kB | |
| Zásobník programu - miesto pre lokálne premenné max. 64kB | |
| Halda - oblasť pamäti môže siahať až po adresu 640kB Jej maximálna veľkosť je určená veľkosťou rezidentov | |
type pole=array[1..100] of real;
var up: ^pole; {vytvorili sme ukazovatel na pole}
i: integer;
Begin
new(up); {v halde sa vytvoril objekt typu pole, jeho adr. je v up}
for i:= 1 to 100 do up^[i] := i*i; {naplnenie pola v halde hodnotami}
{lubovolne pouzitie pola}
release(up); {pamat v halde je uvolnena}
End.
type pole=array[1..100] of real;
var up: array[1..10] of ^pole; {vytvorili sme pole ukazovatelov na pole}
i,j: integer;
Begin
for i:= 1 to 10 do
if maxavail> sizeof(pole) then new(up[i]) else halt 1;
{v halde sme vytvorili 10 objektov typu pole, mozno chapat ako 10 riadkov matice}
for i:= 1 to 10 do
for j:= 1 to 100 do up[i]^[j] := i+j; {naplnenie pola v halde hodnotami}
{lubovolne pouzitie pola}
dispose(up[5]); {pamat 5.teho riadku matice je uvolnena}
for i:= 5 to 9 do up[i] := up[i+1];
up[10] := nil; {matica ma len 9 riadkov}
for i:= 1 to 9 do dispose(up[i]);
End.
|
Smernik (koreň) | -> | 1. prvok (koreň^) | -> | 2. prvok | ->...-> | n. prvok | -> nil |
type uzaz=^zaz; {musí byť prvé}
zaz = RECORD meno:string;
dlžoba:longint;
nasl:uzaz;
END;
{struktura je vytvorená}
Var koren,novy:uzaz;
Begin
Koren:=nil;
End.
Dátová časť obsahuje údaje meno a dlzoba, adresná ukazovateľa na nasledovníka. V premennej koren
je adresa na prvý prvok lineárneho zoznamu, na začiatku, keď je lineárny zoznam ešte prázdny, je
koreň rovný nil.
| Zásobník | Front | Všeobecný |
|---|---|---|
| push - vlož na začiatok | put - vlož na koniec | insert - vlož do utriedeného |
| pop - vyber zo začiatku | get - vyber zo začiatku | take up - zruš zvolený prvok |
| isempty - log. funkcia test prázdnosti | isempty - log. funkcia test prázdnosti | isempty - log. funkcia test prázdnosti |
| list - výpis fronty | list - výpis lin. zoznamu |
Program strom;
type uzaz=^zaz;
zaz = RECORD cislo: integer;
lavy, pravy: uzaz;
END;
Var koren, novy, pom: uzaz;
i:integer;
Begin
new(koren); {koren naplnim vopred}
koren^.cislo:=10+random(89);
koren^.lavy:=nil; koren^.pravy:=nil;
for i := 1 to 29 do {tu naplnam ostatne vrcholy stromu}
Begin
new(novy);
novy^.cislo:=10+random(89);
novy^.lavy:=nil; novy^.pravy:=nil; {novy prvok vytvoreny}
{teraz ho treba pripnut do stromu na spravne miesto}
pom:=koren;
while pom<>novy do {nakoniec sa novy pripne do retaze}
if pom^.cislo>novy^.cislo then {ak nove cislo je mensie ako "koren"}
begin
if pom^.lavy=nil then pom^.lavy:= novy; {ak na mieste kam novy patri je nil daj tam novy}
pom:=pom^.lavy {posun na nasledovnika}
end
else
begin
if pom^.pravy=nil then pom^.pravy:= novy;
pom:=pom^.pravy;
end;
End;
End.
| rodič | ||
| ^ ¦ | ||
| prvok štruktúry | -> | brat |
| ¦ v | ||
| potomok |