Hirdetés
- Motorola Edge 50 Pro - több Moto-erő kéne bele
- Android dual SIM okostelefonok
- Kínos szituba keveredett a Nothing
- MIUI / HyperOS topik
- Megjött a jubileumi Pixel széria
- Okosóra és okoskiegészítő topik
- Samsung Galaxy A54 - türelemjáték
- Új telefont és tabletet mutatott be a Telekom
- One mobilszolgáltatások
- Google Pixel topik
Új hozzászólás Aktív témák
-
válasz
Csucsy1991 #2331 üzenetére
Hali!
Úgy látom ezek szerint az alapokkal is gondod van, de nem baj, ezért van ez a fórum, hogy lehessen kérdezni...
Egy kis elmélet az elején(tényleg nagyon dióhéjban):
A DINAMIKUS VÁLTOZÓK=MUTATÓK vagy angolul POINTEREK
Turbo Pascalban a dinamikus változók az ugynevezett HEAP-ben tárolódnak, magyarul ha jól emlékszem HALOM vagy HALOMTERÜLET néven említik a szakkönyvek.MAXAVAIL függvény: a legnagyobb összefüggő blokk méretét adja vissza a HEAP-ben.
NEW függvény: létrehoz a HEAP-ben egy dinamikus változót és a címét elhelyezi benne
DISPOSE függvény: felszabadítja a dinamikus változót a HEAP-benMindezek után a program, ami egy 4 integer tárolására alkalmas tömböt tölt fel ill. ír ki, dinamikus változó(POINTER) segítségével.(persze a TOMB_MERETE konstans módosításával más méretű tömb is kezelhető)
program pointer1;
uses
Crt;
const
TOMB_MERETE=4;
Type
tomb = array[1..TOMB_MERETE] of Integer;
tombptr = ^tomb;
var
i:integer;
MyTombPtr:tombptr;
begin
ClrScr;
Writeln('Dinamikus valtozo(POINTER) hasznalata. 1 pelda');Writeln;
Writeln('A tomb elemeinek szama: ',TOMB_MERETE,' db integer');
Writeln('A tomb merete byte-ban: ',sizeof(tomb));
Writeln('A tomb meretenek megfelelo hely lefoglalas a HEAP-ben');
{ellenőrizzük, hogy van-e elég szabad hely a HEAP-ben a tömb számára}
if maxavail<sizeof(tomb) then
begin
Writeln('Nincs elegendo hely a tomb szamara a HEAP-ben, a program ENTER-re kilep...');
Readln;
Halt;
end;
{helyet foglalunk a tömb számára}
New(MyTombPtr);
Writeln;
Writeln('A tomb elemeinek beolvasasa');
for i:=1 to TOMB_MERETE do
begin
Write('Kerem a tomb ',i,'. elemet: ');
Readln(MyTombPtr^[i]);
end;
Writeln;
Writeln('A tomb elemeinek kirasa');
for i:=1 to TOMB_MERETE do
begin
Writeln('A tomb ',i,'. eleme: ',MyTombPtr^[i]);
end;
{felszabadítjuk a korábban lefoglalt helyet}
Dispose(MyTombPtr);
Writeln;
Write('A program ENTER-re kilep...');
Readln;
end.Remélem, ez a példa segít megérteni a MUTATÓK vagy POINTER fontosságát, illetve azok használatának egyszerűségét...
Fire.
Új hozzászólás Aktív témák
- LG 27GS95QE - 27" OLED / QHD 2K / 240Hz & 0.03ms / 1000 Nits / NVIDIA G-Sync / AMD FreeSync
- 24 hónapos PlayStation Plus Premium előfizetés a legolcsóbban, egyenesen a PlayStation-től!
- 145 - Lenovo Legion Pro 7 (16IRX9H) - Intel Core i9-14900HX, RTX 4090
- BESZÁMÍTÁS! ASUS H610M i5 12400F 16GB DDR4 1TB SSD RTX 4060 8GB Rampage Shiva Cooler Master 650W
- HIBÁTLAN iPhone 11 Pro 64GB Space Grey -1 ÉV GARANCIA - Kártyafüggetlen, MS2137
Állásajánlatok
Cég: CAMERA-PRO Hungary Kft.
Város: Budapest