[ aceczv @ 09.09.2018. 13:59 ] @
Da li moze neko da mi nacrta dijagram, napise kod i detaljno objasni ovaj zadatak.
Hvala unapred!
Zadatak glasi:
Nacrtati strukturni dijagram toka algoritma i napisati u programskom jeziku C program koji elemente niza A(N) rotira za dva mesta u levo. Broj elemenata niza zadaje korisnik.
[ Branimir Maksimovic @ 09.09.2018. 14:30 ] @
Gde si zapeo?
[ aceczv @ 09.09.2018. 14:57 ] @
for(i=1; i<=2; i++){
pom=a[0];
for(j=0; j<n-1; j++){
a[j]=a[j+1];
}
a[n-1]=pom;
}
Pronasao sam kod na netu, e sad, da li bi mogao da mi postupno objasnis kako radi gore navedeni deo koda? I ako bi mogao da mi nacrtas dijagram samo za njega, deo za unos i ispis el.niza znam da nacrtam, samo mi ovo pravi problem.
Hvala unapred!

[Ovu poruku je menjao aceczv dana 09.09.2018. u 18:50 GMT+1]
[ Bradzorf012 @ 09.09.2018. 20:48 ] @
Code:

tmp1 = a[0];
tmp2 = a[1];
for(i = 0; i < n - 2; i++)
    a[i] = a[i + 2];
a[n - 2] = tmp1;
a[n - 1] = tmp2;    


Prvo. Ne možeš ništa da rotiraš dva mesta ulevo, već da transliraš.
Drugo. Ovo što si pronašao na netu, čak i ako radi nije dobro.
Treće. Potrudi se malo, a ne samo bup na forum, uradite mi domaći.
Četvrto. Dijagram crtaj sam.
[ aceczv @ 09.09.2018. 20:53 ] @
Potrudicu se.
Hvala u svakom slucaju.
[ Branimir Maksimovic @ 10.09.2018. 02:38 ] @
A kako bi uradio da broj mesta za rotaciju nije fiksan? Takva f-ja vec moze da se stavi u lib...
[ mjanjic @ 10.09.2018. 02:57 ] @
Za C verovatno ima neka gotova biblioteka za naprednije baratanje nizovima, ali kod JS bi bilo najjednostavnije da se sa početka niza odseče onoliko elemenata za koliko je pomeranje i da se ti elementi dodaju na kraju niza.

Sad će neko reći da je potrebno koristiti kod bez ugrađenih funkcija za to. Pa, ja bih u tom slučaju napravio funkciju koja otprilike tako radi. Jeste malo komplikovanije, ali se tako i uči programiranje, a ne ručno da budžimo kod koji radi samo za jedan specijalan slučaj.
[ Branimir Maksimovic @ 10.09.2018. 03:11 ] @
Pa onaj prvi primer koji je dao radi za sve slucajeve samo sto nije optimalno jer ima kvadratnu kompleksnost ;p
[ mjanjic @ 10.09.2018. 14:41 ] @
Pa, kod JS ima ugrađena "shift" metoda za nizove, a u dokumentaciji je opisano i kako je implementirana, pa je to neki polazni korak kako da se uradi kod koji radi nešto tako: http://www.ecma-international.org/ecma-262/5.1/#sec-15.4.4.9
[ Bradzorf012 @ 10.09.2018. 17:30 ] @
Citat:
Branimir Maksimovic:
Pa onaj prvi primer koji je dao radi za sve slucajeve samo sto nije optimalno jer ima kvadratnu kompleksnost ;p


Zar je bitna kompleksnost, koga to zanima ako imaš korektne rezultate?
[ Branimir Maksimovic @ 10.09.2018. 19:56 ] @
Sve dok program ne izlazi iz specifikacije nije bitno ;)
[ Bradzorf012 @ 10.09.2018. 20:31 ] @
Dakle, čas ovako čas onako. Tako sam i mislio.