Kezdőoldal » Számítástechnika » Programozás » Pascal: tömb elemeinek számát...

Pascal: tömb elemeinek számát változóval miként lehet megadni, van erre mód?

Figyelt kérdés

Free Pascal alatt szeretném megadni változóval a tömb elemeinek számát (nem dinamikus hanem statikus tömböt szeretnék használni).

A fordítónak minden esetben tudnia kell statikus tömb esetén a konkrét ememszámot (?) gondolom talán ezért nem megy...

Nincs mégis valami mód?


program tprog;


var

n : longint;

tomb : array [1..n] of longint;


begin

end.



2016. okt. 18. 08:56
1 2 3
 1/22 anonim ***** válasza:

I. variáció:


Ezt konstanssal szokták megadni


program tprog;


const

MAXNUM=123;


var

n : longint;

tomb : array [1..MAXNUM] of longint;


begin

end.



II. variáció:

felveszel egy viszonylag nagy elemszámú tömböt és aztán a változónak (n) megfelelő számút kezelsz. (bár ez memóriapazarlós)


III. variáció:

[link]

2016. okt. 18. 09:06
Hasznos számodra ez a válasz?
 2/22 A kérdező kommentje:

Köszönöm, a konstansos változatot és a másikat is ismertem.

Szóval statikus tömb esetén mindenképp kell tudnia a fordítónak hogy mekkora lesz, mondjuk ez így is logikus.

2016. okt. 18. 09:11
 3/22 tabaki ***** válasza:
Szerintem, amit csinálni akarsz, az éppenhogy maga a dinamikus tömb -- vagy nem értem a kérdést. Mégis, mi vele a gond? Ha ragaszkodol a statikus tömbhöz, méretezd akkorára, hogy biztosan elég legyen, és a változóban azt a határt állítsd be, hogy éppen mennyit használsz belőle.
2016. okt. 18. 09:15
Hasznos számodra ez a válasz?
 4/22 tabaki ***** válasza:
Ja, közben tisztáztátok... Igen, előre kell tudnia.
2016. okt. 18. 09:17
Hasznos számodra ez a válasz?
 5/22 anonim ***** válasza:

#2-esnek (kérdező)


A III-dik variációt megnézted??? Az szerintem az ami neked kell!


(hiszen úgy viselkedik, mint a normális tömb, elrejtve előled, hogy dinamikus... :-))

2016. okt. 18. 09:19
Hasznos számodra ez a válasz?
 6/22 A kérdező kommentje:
Igen, azt ismerem, az a dinamikus, olyat nem szeretnék használni.
2016. okt. 18. 09:29
 7/22 anonim ***** válasza:

#6-osnak (kérdező)


Nekem a dinamikus mindig azt jelentette, hogy lefoglalok egy memóriaterületet, majd használat után felszabadítom, azaz:


[link]


bővebben:

[link]

2016. okt. 18. 09:46
Hasznos számodra ez a válasz?
 8/22 tabaki ***** válasza:
#6: Tényleg elárulhatnád most már, hogy mi a bajod a dinamikus tömbbel. A „szeretés” nem túl sokat mond, egyébként meg az eddigiek alapján pont az való arra, amit akarsz.
2016. okt. 18. 09:55
Hasznos számodra ez a válasz?
 9/22 A kérdező kommentje:
Dinamikus a heap-ban van és valamennyivel lassabb.
2016. okt. 18. 10:22
 10/22 anonim ***** válasza:

Ja persze... sebesség szempontjából kritikus programot tuti pascalban fogsz írni.

Annyival nem lassabb, hogy észrevedd. Használd nyugodtan.

Másrészt meg: "Premature optimization is the root of all evil", "Előbb működjön, aztán legyen gyors.".

Különben is profilozással szokás a szűk keresztmetszetet megkeresni, nem eleve fejlesztéskor kitalálni, hogy vajon majd hol lehet.

2016. okt. 18. 10:36
Hasznos számodra ez a válasz?
1 2 3

Kapcsolódó kérdések:





Minden jog fenntartva © 2024, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu

A weboldalon megjelenő anyagok nem minősülnek szerkesztői tartalomnak, előzetes ellenőrzésen nem esnek át, az üzemeltető véleményét nem tükrözik.
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!