manual findMax() funkcija

manual findMax() funkcija

offline
  • Pridružio: 16 Jan 2010
  • Poruke: 23

Stavio sam breakpoint na m = arguments[i]; da bih video o cemu se desava, ali nikako da ukapiram kako dolazi do maksimalnog broja. Zasto je var max = -Infinity; ? Pokusao sam da stavim i nulu ili bilo koji drugi broj u varijablu max cisto da eksperimentisem , ali opet dolazi do tacnog rezultata. Ako neko zna kako u Chrome-u da pomocu breakpointa ili na bilo koji drugi nacin dodjem do zakljucka sta se desava bili bi mi od pomoci. Evo kompletnog koda:
function findMax() {             var i;             var max = -Infinity;             for (i = 0; i < arguments.length; i++) {                 if (arguments[i] > max) {                     max = arguments[i];                  }             }             return max;         }



Registruj se da bi učestvovao u diskusiji. Registrovanim korisnicima se NE prikazuju reklame unutar poruka.
offline
  • Milan
  • Pridružio: 17 Dec 2007
  • Poruke: 14824
  • Gde živiš: Niš

Napisano: 13 Nov 2017 7:30

U metodi ti je potrebna max promenljiva jer nju treba da setuješ i vratiš. Ona je inicijalitovana na -Infinity jer je to koliko toliko 'neutralna' vrednost u ovom slučaju, budući da je bilo koji broj veći od -Infinity. Glavni deo funkcije obavlja se nakon toga, i u bukvalnom prevodu to mu dođe ovako: 'Proći ću kroz sve elemente niza u kome tražim maksimalni element. Ukoliko je tekući element niza koji obrađujem veći od trenutnog maksimuma, maksimum preuzima vrednost tekućeg elementa niza.'

Na primeru niza A = [1, 2, 3] to bi bilo ovako:
- max = -Infinity
- i=0 => A[0] = 1 => 1 je veće od -Infinity, pa maks postaje 1
- i=1 => A[1] = 2 => 2 je veće od 1, pa maks postaje 2
- i=2 => A[2] = 3 => 3 je veće od 2, pa maks postaje 3

Dopuna: 13 Nov 2017 7:35

Što se tiče inicijalne vrednosti promenljive maks, ako još jednom pokušaš da shvatiš kod koji sledi iza te inicijalizacije, videćeš da ćeš tačan rezultat da dobiješ uvek kada promenljivu maks inicijalizuješ na broj koji je manji ili jednak realnom maksimalnom elementu niza. Ako imaš niz [1, 2, 3] i max inicijalno postaviš na 4, onda nećeš dobiti tačan rezultat. Zbog toga se koristi -Infinity, jer je to realno najmanji mogući broj, i bilo koji drugi je veći od njega.

Inače, možeš sasvim da izbegneš takav pristup ako uvedeš pretpostavku da je inicijalno prvi element niza maksimalni, pa onda iteriraš na isti ovaj način kroz ostatak niza.



offline
  • Pridružio: 16 Jan 2010
  • Poruke: 23

Shvatio u potpunosti. Thx buddy Smile

Ko je trenutno na forumu
 

Ukupno su 1127 korisnika na forumu :: 30 registrovanih, 6 sakrivenih i 1091 gosta   ::   [ Administrator ] [ Supermoderator ] [ Moderator ] :: Detaljnije

Najviše korisnika na forumu ikad bilo je 3466 - dana 01 Jun 2021 17:07

Korisnici koji su trenutno na forumu:
Korisnici trenutno na forumu: 357magnum, Arahne, babaroga, bozo13, Brana01, cikadeda, comi_pfc, dankisha, djuradj, DPera, draganl, dzoni19, Galcom, kalens021, krkalon, kunktator, KUZMAR, Mercury, Metanoja, misa1xx, Nemanja.M, pein, Povratak1912, procesor, raptorsi, Sirius, theNedjeljko, vathra, VJ, vladaa012