Duzine nizova
Strana 1 od 2 12 PoslednjaPoslednja
Prikazujem rezultate 1 do 25 od 26

Tema: Duzine nizova

  1. #1
    Zainteresovan član
    Učlanjen
    09.08.2008.
    Poruke
    420
    Reputaciona moć
    0

    Podrazumevano Duzine nizova

    Medju programerima ima puno perfekcionista... ili ne... svejedno, pitanje: da li vas nervira kad morate da "lupite" neku duzinu niza, i po cemu zaista odredjujete duzine nizova u nekim situacijama?



  2. #2
    Zainteresovan član sist_ing (avatar)
    Učlanjen
    28.02.2006.
    Pol
    muški
    Lokacija
    Bor
    Poruke
    292
    Reputaciona moć
    46

    Podrazumevano Re: Duzine nizova

    U programiranju se nikad nista ne lupa... osim ako ne planiras da se izlupavas (onda mozes i na mnoge druge nacine).
    Kreiranje dinamicnih nizova, oslobadja programera da sam "predvidi" koliko ce elemenata imati u nizu... osim ako nije vidovit pa u napred sve to odredi.

    Duzina niza (u dinamicnim nizovima) je promenljivog tipa.
    Recimo, ako zelimo ispitati neki tekstualni podatak te pronaci i locirati odredjenu rec u unetom tekstu, onda ce program dobiti i kreirati onoliko elemenata, koliko ima kraraktera u unetom tekstu. Primer: ako tvoj tekst ima 20 karaktera, tvoja ce se petlja izvrsiti 20 puta i t.d.
    Ako zelis kreirati tabelu za unos fudbalkih timova a neznas koliko ce se fudbalskih timova unosti, onda ces kreirati onoliko polja, koliko se fudblaskih timova nadje u tabeli i t.d.

    ...ako sam dobro razumeo.

  3. #3
    Zainteresovan član
    Učlanjen
    24.08.2008.
    Poruke
    155
    Reputaciona moć
    0

    Podrazumevano Re: Duzine nizova

    Citat Original postavio sist_ing Pogledaj poruku
    U programiranju se nikad nista ne lupa... osim ako ne planiras da se izlupavas (onda mozes i na mnoge druge nacine).
    Kreiranje dinamicnih nizova, oslobadja programera da sam "predvidi" koliko ce elemenata imati u nizu... osim ako nije vidovit pa u napred sve to odredi.

    Duzina niza (u dinamicnim nizovima) je promenljivog tipa.
    Recimo, ako zelimo ispitati neki tekstualni podatak te pronaci i locirati odredjenu rec u unetom tekstu, onda ce program dobiti i kreirati onoliko elemenata, koliko ima kraraktera u unetom tekstu. Primer: ako tvoj tekst ima 20 karaktera, tvoja ce se petlja izvrsiti 20 puta i t.d.
    Ako zelis kreirati tabelu za unos fudbalkih timova a neznas koliko ce se fudbalskih timova unosti, onda ces kreirati onoliko polja, koliko se fudblaskih timova nadje u tabeli i t.d.

    ...ako sam dobro razumeo.

    Ne ne to sto ti pricas je drugo. Tu ima previse kopiranja memorije, te program tako gubi na brzini. Dobro je pitanje postavio onaj momak, jer ti dok kreiras i oslobodis te nizove o kojima pricas gubi se zaista dosta vremena i rada.

  4. #4
    Zainteresovan član sist_ing (avatar)
    Učlanjen
    28.02.2006.
    Pol
    muški
    Lokacija
    Bor
    Poruke
    292
    Reputaciona moć
    46

    Podrazumevano Re: Duzine nizova

    @eippie, jesi li siguran da znas o cemu pricas?

  5. #5
    Zainteresovan član
    Učlanjen
    24.08.2008.
    Poruke
    155
    Reputaciona moć
    0

    Podrazumevano Re: Duzine nizova

    Naravno. Recimo ako pravis konzolnu aplikaciju i oces da imas kad pritisnes up arrpw da ti se vracaju reci koje si pre kucao, moras napraviti niz koji pamti iste, e sad, njegovu duzinu zaista moras lupiti.

    Kod primera sa unosom teksta postoji vec odredjeni buffer koji prima podatke, a mozes praviti i drugacije, tako sto ces napraviti niz, fiksne duzine (max_chars, limit kako god) u koji pamtis user input, i funkciju za citanje.

    U slucaju da napravis od pocetka bafer za 20 karaktera, a korisnika pustis da unese vise, onda ces kao budala praviti algoritme koji ako se predje velicina niza povecavaju niz... za jos 20 recimo, i sve tako...

    samo, ne postoji nikakvo "povecavanje niza", ako ti je recimo


    BYTE * niz

    pokazivac na niz od 20 karaktera, a ti kasnije "dinamicki" povecas niz na 40, onda za to povecavanje moras da: napravis novi niz od 40, prekopiras: postojecih 20 podataka iz ovog niza, obrises prethodni niz, i postavis pokazivac na ovaj novi, sto sve oduzima masu vremena i moze brze da se uradi ako odma u pocetku napravis veci niz.

    ReDim Preserve u visual basicu nije nista prosto, i da bi pricao da li je to ili nije dobro resenje moras prvo znati assembly.

    U tom tvom "dinamickom" kopiranju starih nizova u nove itd. se gubi dosta vremena. Napravi aplikaciju koja cita input sa konozole, i ima od pocetka niz od 1 elementa (to i nije niz, al posmatrajmo tako) pa se za svaki novi uneti karakter povecava za jos 1 a za svaki izbrisani smanjuje itd. i veruj me da ce mnogo sporije da radi nego aplikacija koja ima fiksni neki bafer, koji prima podatke, i jedan count da se zna koliko je podataka uneto. Jer ce ova samo da pise nove podatke na mestu count, ili da ga smanjuje u slucaju backspace, a tvoja ce da svaki put kopira stare nizove u nove itd...
    Poslednji put ažurirao/la eippie : 25.08.2008. u 12:14

  6. #6
    Zainteresovan član
    Učlanjen
    18.06.2003.
    Pol
    muški
    Lokacija
    Smederevska Palanka
    Poruke
    279
    Reputaciona moć
    55

    Podrazumevano Re: Duzine nizova

    zato sluze ulancane liste da rese takve probleme
    iil da se zajebavas sa realloc i sl

  7. #7
    Zainteresovan član sist_ing (avatar)
    Učlanjen
    28.02.2006.
    Pol
    muški
    Lokacija
    Bor
    Poruke
    292
    Reputaciona moć
    46

    Podrazumevano Re: Duzine nizova

    @eippie, ti si i dalje siguran da znas o cemu pricas?
    Poslednji put ažurirao/la sist_ing : 25.08.2008. u 23:44

  8. #8
    Zainteresovan član
    Učlanjen
    24.08.2008.
    Poruke
    155
    Reputaciona moć
    0

    Podrazumevano Re: Duzine nizova

    Citat Original postavio distrojer Pogledaj poruku
    zato sluze ulancane liste da rese takve probleme
    iil da se zajebavas sa realloc i sl
    [Broj elemenata] [Adresa elementa 1] [Podaci] [Adresa elementa 2] [Podaci 2] [Adresa elementa 3]

    U slucaju da ti je Podaci u stvari BYTE [8 bita], onda ce ti adrese sledeceg elemenata [32 bita] biti "Duze" od Podatka samog. Ako mislis na takve ulancane liste, tu onda moras koristiti recimo ceo 32bitni registar za smestanje adrese sledeceg elementa. Osim toga, moras ga i "puniti" sa adresom, umesto da samo povecavas registar ili neki drugi pokazivac za 1. Sta mislis sta je sporije.

    malloc koristim a realloc ne.

  9. #9
    Zainteresovan član
    Učlanjen
    24.08.2008.
    Poruke
    155
    Reputaciona moć
    0

    Podrazumevano Re: Duzine nizova

    Vi mislite da ako znate neki high level programski jezik znate automatski i kako to on prevodi na low level pa da mozete da tupite kupac o nizovima, a u stvari nemate pojma. Decko je postavio odlicno pitanje.

  10. #10
    Zainteresovan član
    Učlanjen
    26.07.2008.
    Pol
    muški
    Poruke
    277
    Reputaciona moć
    37

    Podrazumevano Re: Duzine nizova

    Koristi listu nizova. To ti je specijalna lista koja ce ti se sastojati od nizova. Malo je teze napraviti, ali ako nisi siguran koliki ce biti niz, a liste su ti spore mozes i tako.

  11. #11
    Zainteresovan član
    Učlanjen
    24.08.2008.
    Poruke
    155
    Reputaciona moć
    0

    Podrazumevano Re: Duzine nizova

    Aj opisi to.

  12. #12
    Zainteresovan član
    Učlanjen
    26.07.2008.
    Pol
    muški
    Poruke
    277
    Reputaciona moć
    37

    Podrazumevano Re: Duzine nizova

    Imas listu. Svaki element liste neka ti bude niz odredjene duzine. Naprimer 10. Na taj nacin ces zauzimati 10 po 10 elemenata nizova, neces imati ogranicen niz i smanjices vreme pristupa u odnosu na listu. Ako hoces da pristupus 173 elementu, ides kroz listu 17 puta i u 17-elementu liste trazis 3(2 ako kreces od 0) element. Smanjices vreme pristupa 17 puta u odnosu na listu i nece biti ogranicena.

  13. #13
    Zainteresovan član
    Učlanjen
    24.08.2008.
    Poruke
    155
    Reputaciona moć
    0

    Podrazumevano Re: Duzine nizova

    Mozes jos vise da smanjis.

    Stavsi listu nizova od po 10 elemenata u kome ti se nalaze adrese onih nizova.

    I ako oces da pristupis 170tom elementu ides na drugi niz adresa, uzmes 7mi elemenat, to ti je adresa, odes tu, i uzmes prvi.


  14. #14
    Zainteresovan član
    Učlanjen
    26.07.2008.
    Pol
    muški
    Poruke
    277
    Reputaciona moć
    37

    Podrazumevano Re: Duzine nizova

    Ajde da se vratimo na temu. U osnovi postoje dve vrste nizova, dinamicki i staticki.
    Kod statickih nizova na pocetku odredis duzinu niza. Sta se ustvari desava. Ti kad pravis staticki niz dobijes deo memorije ciji elementi idu jedan za drugim. Znaci prvi element je na pocetku, drugi odmah do njega i tako dalje. Zbog toga je pristup kod ovih nizova jako brz, ali je problem ako stavis da je veci imaces zauzetu neiskoriscenu memoriju.
    Kod dinamickih nizova pristup je mnogo sporiji i maksimalna velicina nije definisana. Postoji razni nacini za realizaciju.
    I jedno i drugo se isto koristi.
    Lista nije isto sto i dinamicki niz. Ako te zanima sta je sta objasnicu ti.

  15. #15
    Zainteresovan član
    Učlanjen
    24.08.2008.
    Poruke
    155
    Reputaciona moć
    0

    Podrazumevano Re: Duzine nizova

    Znam sta je lista, valjda si to sam video ...

    SVE se svodi na kraju na fiksne nizove. Pa i ti "dinamicki" itd. samo sto kompajler pise tu assembly kod koji ti ne vidis, ti vidis samo NoviVelikiNiz * _niz = new NoviVelikiNiz (); KolekcijaMojihVelikihNizova->Add (_niz); i mislis da je na nivou procesora i busa i memorije i hard diska sve tako jednostavno.

  16. #16
    Zainteresovan član
    Učlanjen
    24.08.2008.
    Poruke
    155
    Reputaciona moć
    0

    Podrazumevano Re: Duzine nizova

    Najbolje jos da kazete da je "zadnja rijec tehnologije" da se svaki element niza smesti u Page File, i da se prevrnem sa stolice pa da nema ko vise sa vama da se raspravlja.

  17. #17
    Zainteresovan član
    Učlanjen
    26.07.2008.
    Pol
    muški
    Poruke
    277
    Reputaciona moć
    37

    Podrazumevano Re: Duzine nizova

    Brate, studiram Racunarstvo i automatiku u Novom Sadu. Znam o cemu pricam i sta se desava ispod svega na najnizem nivou. Dinamicki niz mozes da realizujes kako oces, na kraju ti se sve svede na slicno, ali ipak razlicito.

    Kad u dinamicki niz hoces da ubacis novi element, tj da ga prosiris, pravis novi niz koji je veci za 1(taman stari niz i novi element) i brises stari.

    Rekao sam decku, posto predpostavljam da je pocetnik, najjednostavnije da shvati. Treba da mu pricam o bankama,stranicama, i ostalim stvarima, pa da nista ne skonta? Ti u C/C++ ako uvecas pokazivac na niz za 1 pojkazivace na sledeci clan. *(niz + 1) ti je isto sto i niz [1].

  18. #18
    Zainteresovan član
    Učlanjen
    26.07.2008.
    Pol
    muški
    Poruke
    277
    Reputaciona moć
    37

    Podrazumevano Re: Duzine nizova

    I nisam mislio tebi eippie da pokazem vec decku sto je postavio temu, sto se osecas prozvano?

  19. #19
    Zainteresovan član
    Učlanjen
    24.08.2008.
    Poruke
    155
    Reputaciona moć
    0

    Podrazumevano Re: Duzine nizova

    Pa zasto mi kazes to sto znam da ako uvecas pokazivac za 1 to je isto sto i niz [1]?

  20. #20
    Zainteresovan član
    Učlanjen
    18.06.2003.
    Pol
    muški
    Lokacija
    Smederevska Palanka
    Poruke
    279
    Reputaciona moć
    55

    Podrazumevano Re: Duzine nizova

    i ja se pitam, kakve to veze ima sa ovim, dal je *(niz +1)=niz[1]=1[niz] i td...

    bolesnik:

    zasto bi kad povecavas dinamicki niz brisao stari i pravio novi i posle brisao stari, samo
    realloc(void*,velicina_bajt),povecas dinamicki niz za taj za sizeof(tip elemenata niza) i eto ga//

  21. #21
    Peruzzi nije na forumu
    је дошао тихо и ушао у легенду...
    Domaćin Peruzzi (avatar)
    Učlanjen
    03.08.2003.
    Pol
    muški
    Lokacija
    Shumadija
    Poruke
    3.924
    Reputaciona moć
    92

    Podrazumevano Re: Duzine nizova

    zato sto realloc trazi prazan segment u ramu cija je velicina ista ili veca od trazene i tu sve prebaci, a staro obrise, sto mu dodje na isto. sem u slucaju kada je segment u kom se nalazi dovoljno veliki,pa nema potrebe za trazenjem drugog, sto mu cesto dodje na isto. bar koliko me sluzi secanje


  22. #22
    Zainteresovan član
    Učlanjen
    24.08.2008.
    Poruke
    155
    Reputaciona moć
    0

    Podrazumevano Re: Duzine nizova

    Citat Original postavio Peruzzi Pogledaj poruku
    zato sto realloc trazi prazan segment u ramu cija je velicina ista ili veca od trazene i tu sve prebaci, a staro obrise, sto mu dodje na isto. sem u slucaju kada je segment u kom se nalazi dovoljno veliki,pa nema potrebe za trazenjem drugog, sto mu cesto dodje na isto. bar koliko me sluzi secanje
    Ako me dobro sluzi secanje secanje ga sluzi dobro.

    Isto tako ako ces u takvom nizu da izbrises od 1/8 do 1/4tine (neki broj elemenata) onda se 3/4 niza kopiraju, prepisuju, i to je jako sporo.

  23. #23
    Zainteresovan član sist_ing (avatar)
    Učlanjen
    28.02.2006.
    Pol
    muški
    Lokacija
    Bor
    Poruke
    292
    Reputaciona moć
    46

    Podrazumevano Re: Duzine nizova

    Citat Original postavio eippie Pogledaj poruku
    ...Isto tako ako ces u takvom nizu da izbrises od 1/8 do 1/4tine (neki broj elemenata) onda se 3/4 niza kopiraju, prepisuju, i to je jako sporo.
    Nije bas toliko sporo koliko ti dramatizujes stvari jer niko ovde ne iznosi svoje misljenje kako bi bio pametniji od drugih. Svako je duzan da kaze sta zna a decku ostaje da kompletira sliku o tome kako i kad koristiti razne tipove niza.

    Sa druge strane, u zivotu se covek mora necega odreci kako bi postigao odredjeni cilj.
    Sta hocu reci:
    Ako ti upadne virus na sistemu pa ti osteti vitalne delove tvog OS-a, onda ti tu bilo koji AV ne moze pomoci (mada je to brzi nacin da se sacuvaju podaci a ukloni problem) vec si prinudjen da formatiras HDD mada je to posao koji dosta dugo traje jos uz to i gubis mnogo toga sa C:\ particije. Dakle, pod ovakvim okolnostima, formatiranje je jedino razumno resenje i ljudi ipak koriste i taj metod ciscenja i povratak OS-a (uz odradjeni gubitak).

    Da zakljucimo: i dinamicni, kao i staticni nizovi, imaju i te kako svoje mesto u svetu programiranja i jednako su dobri, samo ne pod istim okolnostima.
    Poslednji put ažurirao/la sist_ing : 29.08.2008. u 02:01

  24. #24
    Zainteresovan član
    Učlanjen
    26.07.2008.
    Pol
    muški
    Poruke
    277
    Reputaciona moć
    37

    Podrazumevano Re: Duzine nizova

    Ono sto mene zanima je sta se desava ako hocemo da kreiramo staticki niz a nemamo dovoljno mesta? Pricam o C-u.

  25. #25
    Početnik
    Učlanjen
    28.08.2008.
    Poruke
    28
    Reputaciona moć
    0

    Podrazumevano Re: Duzine nizova

    odlazi u pagefile?

Slične teme

  1. oblici-velicine-duzine penisa
    Autor azelejas u forumu Ljubav i seks
    Odgovora: 78
    Poslednja poruka: 15.01.2009., 15:09
  2. Zadatak iz nizova u C-u?
    Autor *Vendi* u forumu Programiranje
    Odgovora: 2
    Poslednja poruka: 15.03.2006., 00:02
  3. Proracun duzine zice
    Autor S'mika u forumu Tehničke nauke
    Odgovora: 1
    Poslednja poruka: 26.05.2004., 22:50

Pravila za slanje poruka

  • Ne možete kreirati novu temu
  • Ne možete poslati odgovor
  • Ne možete dodati priloge
  • Ne možete prepraviti svoju poruku
  •