Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.

dimenzionisanje niza

[es] :: Pascal / Delphi / Kylix :: dimenzionisanje niza

[ Pregleda: 3509 | Odgovora: 11 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

MACTEPx

Član broj: 47593
Poruke: 341
*.dialup.neobee.net.



+5 Profil

icon dimenzionisanje niza02.04.2005. u 14:59 - pre 203 meseci
kako da u pascalu dimenzionisem niz od n elemenata ako je n broj koji se unosi tokom izvrsavanja programa?
#include <iostream.h>
void main()
{
cout << "Pozdrav...";
}
 
Odgovor na temu

IgLo
Igor Lovric
Sremski Karlovci

Član broj: 19524
Poruke: 129
*.neobee.net.

Sajt: www.unicornsoft.net


Profil

icon Re: dimenzionisanje niza02.04.2005. u 16:30 - pre 203 meseci
U cistom paskalu (znaci ako ne govorimo o Delphi-ju) ne mozes nikako. Za to se koriste liste.
 
Odgovor na temu

Toyo

Član broj: 45193
Poruke: 227
*.kovnet.co.yu.



+1 Profil

icon Re: dimenzionisanje niza02.04.2005. u 17:15 - pre 203 meseci
U Turbo pascal-u:
Code:

type
  Elem=Integer;
  Niz=array[1..10000] of Elem;
  PNIz=^NIz;
var
  n:Integer;
  a:PNiz;
begin
  n:=100; // Primer
  GetMem(a, sizeof(Elem)*n); // Zauzimanje memorije

  blablabla // neka obrada
  a^[1]:=0; // pristupanje clanovima niza;
  a^[2]:=a^[z];


  FreeMem(a); // Oslobadjanje memorije
end.


Umesto elem=integer, stavis elem=neki tip podataka ili record.

Ovo vadim iz malog mozga, ali bi trebalo da radi.

 
Odgovor na temu

MACTEPx

Član broj: 47593
Poruke: 341
*.com
Via: [es] mailing liste



+5 Profil

icon Re: dimenzionisanje niza03.04.2005. u 16:34 - pre 203 meseci
Citat:
Code:
var a:array[1..n] of tip
to mi treba ali ne radi
#include <iostream.h>
void main()
{
cout << "Pozdrav...";
}
 
Odgovor na temu

Vdjuric
Vladimir Djuric
student
Beograd

Član broj: 20863
Poruke: 64
*.ppp-bg.sezampro.yu.

Sajt: www.marettasoftware.com


Profil

icon Re: dimenzionisanje niza04.04.2005. u 01:53 - pre 202 meseci
Citat:
Toyo: U Turbo pascal-u:

...

Umesto elem=integer, stavis elem=neki tip podataka ili record.

Ovo vadim iz malog mozga, ali bi trebalo da radi.


To bi sve bilo lepo da Turbo Pascal podrzava nizove vece od valjda 64k...
10000 integera moze da prodje (10000 x 2 = 20000, jer je manje od 64K), ali kada radis sa nekim drugim tipom to nije primenljivo...
Mozes da napravis npr 10000 pokazivaca na podatke, pa da tako radis...
NPR, iz glave:

Type
Pera = RECORD
A: Integer;
B: String;
C: Real;
END;

Niz: Array[1..10000] Of ^Pera;

pa onda upisujes podatke na sledeci nacin:
...
new(Niz[1]);
Niz[1]^.A:=1;
Niz[1]^.B:='asasd';
Niz[1]^.C:=12.22;
Dispose(Niz[1]);
------------------------------
...time ces morati "rucno" da po potrebi alociras i oslobadjas memoriju. Na taj nacin imas u stvari niz pointera, koji opet u TP-u ima maksimalnu duzinu od 64K, a to je
(valjda) 65,536 / 4 = 16,384... Znaci maksimalno 16,384 pokazivaca mozes da smestis u jedan niz... Ako ti treba vise podataka, moraces da pravis povezanu listu...

poz

 
Odgovor na temu

_v!rus_
BGD

Član broj: 40451
Poruke: 313
212.200.120.*



+1 Profil

icon Re: dimenzionisanje niza04.04.2005. u 16:49 - pre 202 meseci
Programi pisani u paskalu imaju pristup memoriji kapaciteta 1 x mem. stranica, tj. 64kb, zbog ogranicenja adresiranja memorije (steka) kod procesora 8086. Znaci da code+data+heap < 64kb. Naravno, sve to vazi za programe pisane na "tradicionalan" nacin ;-)

Sto se tice matrica, mizlim da Paskal ima proceduru SetLength(sta, velicina). Sa njome mozes redimenzionirati matrice deklarisane kao array of something (dinamicke matrice).

I jos jedna stvar:
NIZ JE JEDNODIMENZIONALNA MATRICA!!!!!!!!
To "niz" su nasi programeri izmislili kao pojam, sto uopste ne postoji ni u jednoj literaturi koju nije pisao nas covek. Ali posto su svi nasi "stari programeri" u stvari matematicari koji su se 70-ih preorijentisali na racunare, onda su i svoje ideje prebacili tamo. Zato za svaki zadatak sa takmicenja u programiranju trebao si da imas 6 iz matematike, boze moj, to se podrazumeva. Kada budu napisali paskal sa Citaj() i Pisi(), i kada pudu napravili nas procesor, onda cu da govorim "niz" do kraja zivota.

;-)
 
Odgovor na temu

IgLo
Igor Lovric
Sremski Karlovci

Član broj: 19524
Poruke: 129
*.neobee.net.

Sajt: www.unicornsoft.net


Profil

icon Re: dimenzionisanje niza04.04.2005. u 23:40 - pre 202 meseci
Citat:
_v!rus_:
Sto se tice matrica, mizlim da Paskal ima proceduru SetLength(sta, velicina).


Lose mislis

Dinamicki nizovi (ili ako bas hoceh jednodimenzionalne matrice ) su ubacene tek u delphi-ju. Ko radi u TP-u u ovakvim slucajevima je nazalost osudjen na liste ili moze da pravi razne egzibicije sa pointerima sto bas ne preporucujem zbog kasnijeg odrzavanja koda.
 
Odgovor na temu

Srki_82
Srdjan Tot
Me @ My Home
Ljubljana

Član broj: 28226
Poruke: 1403
82.208.201.*

ICQ: 246436949


+10 Profil

icon Re: dimenzionisanje niza05.04.2005. u 00:07 - pre 202 meseci
Ako je zaista bitno imati velike liste mogla bi se napraviti klasa koja bi odrzavala jednostruko ili dvostruko povezanu listu pointera. Takve liste nisu lose ako se uvek radi sekvencijalno citanje, ali ako je potreban random access onda su prilicno spore.
 
Odgovor na temu

Rapaic Rajko
Bgd

Član broj: 4105
Poruke: 802
217.119.242.*



+62 Profil

icon Re: dimenzionisanje niza07.04.2005. u 15:01 - pre 202 meseci
Code:
Znaci da code+data+heap < 64kb.


Pardon, ali ovo nema veze sa stvarnoscu. Licno sam svojevremeno rezervisao preko 1MB memorije na heap-u pomocu pointera; u TurboPascalu razume se.

Rajko

P.S. Tacno je
Code:
code+data+stack < 64KB 


 
Odgovor na temu

_v!rus_
BGD

Član broj: 40451
Poruke: 313
*.vdial.verat.net.



+1 Profil

icon Re: dimenzionisanje niza11.04.2005. u 01:27 - pre 202 meseci
@Rajko
Izvinjavam se zbog "?syntax error"
Poenta mi je bila da staticki alocirana memorija je ogranicena na dosta manje od 64Kb jer i code i data i stack (!) zauzimaju isti mem. prostor.

PS. I nije bas da "nema veze sa stvarnoscu", samo sam se zajebo u brzini i ogranicenom dial-up net vremenu.
 
Odgovor na temu

RnD57
Djordje Petrovic
Novi Sad

Član broj: 54969
Poruke: 31
*.nat-pool.nsad.sbb.co.yu.

ICQ: 298181189


Profil

icon Re: dimenzionisanje niza11.04.2005. u 01:37 - pre 202 meseci
off-topic:

?syntax error...
LOL
Dobri stari Commodore 64...
random...
 
Odgovor na temu

_v!rus_
BGD

Član broj: 40451
Poruke: 313
*.verat.net.



+1 Profil

icon Re: dimenzionisanje niza11.04.2005. u 15:46 - pre 202 meseci
 
Odgovor na temu

[es] :: Pascal / Delphi / Kylix :: dimenzionisanje niza

[ Pregleda: 3509 | Odgovora: 11 ] > FB > Twit

Postavi temu Odgovori

Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.