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
 11/22 A kérdező kommentje:

Konkrétan tapasztalat, hogy lassabb. :-)

Az, hogy gyors program és hogy Free Pascal-ban szeretném írni eleve kizáró tényező a gyorsaság mert Pascal fordító "nem tud úgy optimalizálni" mint a C fordító?

2016. okt. 18. 10:54
 12/22 SimkoL ***** válasza:
Ne küzdj már hülyeségekkel, basszus. Tanulj meg programozni, tartsd be a a nyelvre vonatkozó szabályokat és ennyi. Gondolom ez a baromság http://www.gyakorikerdesek.hu/szamitastechnika__programozas_.. is a tied volt.
2016. okt. 18. 12:06
Hasznos számodra ez a válasz?
 13/22 A kérdező kommentje:
Szerintem felesleges idegeskedni ilyenek miatt. :-)
2016. okt. 18. 12:33
 14/22 anonim ***** válasza:

"Konkrétan tapasztalat, hogy lassabb. :-) "


Mégis min futtatod? Egy krumplin? Mutatsd meg légyszi a forráskódot. Nem szabadna érezhető sebességkülönbséget tapasztalni egy dinamukus memóriaallokáció miatt. Gyanítom, hogy még az alapokat sem tudod, ezért borzasztóan szervezted a kódot. Ez nem baj, csak ne akadj le ilyen apró lassúságokon meg inline-okon. Tanulni kell egy kicsit, aztán rájössz, hogy hogy kell dinamikus memóriát kezelni hatékonyan.

2016. okt. 18. 12:53
Hasznos számodra ez a válasz?
 15/22 A kérdező kommentje:

Régebben írt program esetén tapasztaltam, a kód most nincs kéznél de jópár másodperces különbség volt amikor kipróbáltam a statikus és dinamikus tömb közti különbséget.

A mutatózást régebben se szerettem és nem is értettem dinamikus tömb esetén.

2016. okt. 18. 13:13
 16/22 tabaki ***** válasza:

#13:

SimkoL már ilyen impulzív természet, és érthető, ha második anyanyelvének tenyeres-talpas kezelését nehezen viseli. A pascal valóban nem híres a gyorsaságáról, sőt, eddigi tapasztalataim alapján a Free Pascal sem versenyezhet a Delphivel. Ezt azonban tényleg ne marhaságokkal akard megoldani, hanem ismerd meg a rendelkezésére álló sok unit lehetőségeit. Az igazán sebességkritikus részek megírására mindig ott az egérút, az assembly kód beépítése, de szerintem nem sok olyasmi fog az eszedbe jutni, amit még nem oldottak meg egyéb módon.

Szerintem se ártana, ha konkrét kódot is fölraknál valahova (pl. pastie.org), mert így kölcsönösen csak a levegőbe üzengetünk. Én el tudom képzelni, hogy a lassúság oka egészen máshol van, mint keresed. Nem ritka eset, hogy az ember kitalálja magának, mi lehet a probléma, és erőnek erejével arra az egy dologra kérdez rá, ahelyett, hogy szélesebb rálátást adna másoknak, akik még egyébre is tudnának figyelni, mert nem alakult ki bennük ugyanaz a meggyőződés.

2016. okt. 18. 13:21
Hasznos számodra ez a válasz?
 17/22 A kérdező kommentje:

Bölcs gondolat, értem én, de látod az inline-os dolog is baromságnak volt titulálva pedig ott még kód is volt. :-)

Egyébként tényleg teljesen logikus amit leírtál.

Jelen esetben csak az érdekelt volna hogy statikus tömb méretét változóval meg lehet -e adni, innen kanyarodtunk el a dinamikus felé.

2016. okt. 18. 13:26
 18/22 tabaki ***** válasza:

„A mutatózást régebben se szerettem”


Én speciel nem sokszor használtam dinamikus tömböt, de mutatókat speciel soha. Tudom, hogy lehet (a Turbóban még egyenesen muszáj volt), és bizonyos célokra nyilván nagyon hasznos, de amire nekem kellett, ott tökéletesen működött ugyanaz az indexelés, mint a statikus tömböknél.

2016. okt. 18. 13:27
Hasznos számodra ez a válasz?
 19/22 tabaki ***** válasza:
Nem lehet megadni, mert akkor a programnak futás közben kell memóriát lefoglalnia a méret alapján, az meg már pont a dinamikus tömb. Szerintem olyan nagy hekuskanyar éppen emiatt nem is történt a témában.
2016. okt. 18. 13:31
Hasznos számodra ez a válasz?
 20/22 SimkoL ***** válasza:

'Bölcs gondolat, értem én, de látod az inline-os dolog is baromságnak volt titulálva pedig ott még kód is volt. :-)' Csak nem jó. Megnézted a mellékelt kódot és a kapott eredményt látható, hogy minimális az eltérés. A fordítóknál nagyon sok dolog alapból be van kapcsolva, az inline és az optimozation is. A titok nyitja: jó kódot kell írni. Az emberi hülyeséget nem tolerálja, javítja a gép - bár van amit igen :). A Delphi-t szinte 'gyerekkora' óta ismerem, sebességben vetekszik a C++ kódokkal - nem a Lazarus / Free Pascal hanem a fizetős Delphi -

Vannak dolgok minden nyelvben amiket nem tudsz megváltoztatni, ha tetszik ha nem. Az ezeréves Delphi 7 - 2002 - fordító a mai napig is kenterbe veri a FPC 3.0-t, nem véletlenül kell érte - mármint az újabb verziókért - kiégetni 1 misit. C++ Builder, Delphi XE.. szinte ugyanazt fordítja. Az ingyenes dolgoknak szinte mindig van hátulütője. Talán nézd meg a Gimp-et és a PhotoShop-ot. Bármennyire is jó a Gimp, a másik mindig előtte lesz egy lépéssel. Nincs is ezzel gond, mert valamilyen szinten versenyhelyzetet teremt, amivel csak a felhasználó jár jól.

2016. okt. 18. 14:12
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!