Hirdetés
- Örömhír: nem spórol Európán a OnePlus
- Okosóra és okoskiegészítő topik
- Yettel topik
- Samsung Galaxy A56 - megbízható középszerűség
- Redmi Note 14 Pro+ 5G - a tizenhármas átka
- Xiaomi 15 - kicsi telefon nagy energiával
- Google Pixel topik
- Netfone
- Samsung Galaxy S25 Ultra - titán keret, acélos teljesítmény
- Milyen okostelefont vegyek?
Új hozzászólás Aktív témák
-
Gyuri16
senior tag
lancolt listara leiras (nem olvastam de jol nez ki):
[link]
i/o errort most hirtelen nem tudom hogyan kell kezelni, de legegyszerubb az lesz, ha charokat (vagy stringet) olvasol be, es megnezed hogy szam e, ha igen akkor atalakitod szamra, ha nem akkor kiirsz valami hibat. -
Gyuri16
senior tag
turbo pascalban ha jol emlekszem nincsenek dinamikus tombok. freepascalban talan es delphiben biztos vannak. ugy mukodik ahogy irtad, deklaralsz egy tombot a:array of bytes aztan setlength parancsal valtoztathatod a hosszat. jo tudni viszont, hogy ez nem egy tul efektiv dolog (mondjuk linkedlisthez viszonyitva), mert amit a setlenght csinal az az, hogy letrehoz egy teljesen uj tombot (lefoglalja neki a helyet) es a regibol atmasol annyit bele amennyi belefer. tehat nem a tombot nagyobbitja meg, hanem letrehoz egy ujat es oda atmasolja a regit
neked kell eldonteni mit hasznalsz konkret feladat fugvenyeben, lancolt listat, dinamikus tombot (ami valoszinuleg turbo pascalban nem megy), vagy Fire/SOUL/CD megoldasat (getmem/freemem) -
cucka
addikt
Ezt a láncolt lista nevű adatszerkezettel tudod megcsinálni (angolul linked list).
Kb. arról van szó, hogy létrehozol egy struktúrát, aminek egyik része maga az adat, a másik része pedig egy mutató a következő elemre. A programban csak egy mutatót kell előre létrehozni, ami a lista első elemére mutat, ebből indulva be tudod járni az egész listádat. -
Hali!
Turbo Pascalban van lehetőség un. általános pointer létrehozására, így:
p:pointerEbben az esetben nincs a pointernek típusa, ez miatt azonban a NEW nem használható, helyette a getmem ill. freemem fügvényeket alkalmazzák.
pl egyszerűen ha 2k adatot akarsz lefoglalni(aztán felszabadítani), akkor így csináld
getmem(p, 2048)
freemem(p, 2048)ha 2048 darab integer számára akarsz létrehozni tömböt dinamikusan, akkor meg így
getmem(p, 2048*sizeof(integer))
freemem(p, 2048*sizeof(integer))ha 2048 saját típusú tömböt(record) akarsz létrehozni
getmem(p, 2048*sizeof(MY_NOT_PASCAL_RECORD))
freemem(p, 2048*sizeof(MY_NOT_PASCAL_RECORD))
(ebben az esetben nem a típusosan deklarált record-ot értem, hisz akkor felesleges lenne nem típusos pointert létrehozni, hanem arra hogy van 50 elemű tömb egy példánya, és a programozó tudja, hogy az első 10 elem a vezetéknév, a második 10 elem a keresztnév, a többi meg a lakcím pl)Azt, hogy hány elemű tömböt ill. milyen adatokat tartalmazó tömböt hozol létre az a program dolga(meg a programozóé
(tehát nem kell deklarálni)Fire.
UI: persze, hogy van-e elég memória a foglaláshoz, azt elötte illik ellenőrizni illetve lekezelni a hibát. A getmem hibával leáll ha nincs elég memória a foglaláshoz...
Új hozzászólás Aktív témák
- 157 - Lenovo LOQ (15ARP9) - AMD Ryzen 7 7435HS, RTX 4060 (ELKELT)
- BESZÁMÍTÁS! MSI B450M R5 5600X 32GB DDR4 512GB SSD RTX 3070 8GB Zalman Z1 PLUS Cooler Master 700W
- OnePlus Nord 2T 128GB, Kártyafüggetlen, 1 Év Garanciával
- BESZÁMÍTÁS! ASUS H510M i5 10500 16GB DDR4 512GB SSD RX 6600 8GB Zalman T4 Plus ADATA 600W
- GYÖNYÖRŰ iPhone 13 Mini 128GB Blue -1 ÉV GARANCIA -Kártyafüggetlen, MS3886
Állásajánlatok
Cég: ATW Internet Kft.
Város: Budapest
Cég: PCMENTOR SZERVIZ KFT.
Város: Budapest

(tehát nem kell deklarálni)


