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

Bond123 opet u problemu s programom

[es] :: Java :: Bond123 opet u problemu s programom

[ Pregleda: 1548 | Odgovora: 3 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

Bond123

Član broj: 330809
Poruke: 22
78.104.151.*



Profil

icon Bond123 opet u problemu s programom18.11.2015. u 23:03 - pre 102 meseci
Pozdrav dobri ljudi! Do sad ste mi puno puta pomogli, i samo se vama mogu obratiti kad je u pitanju problem s programiranjem, posto ne poznajem nikog ko se bavi istim.
Dobio sam kod odnosno zadataka uradjen rekurzijom. Ja treba da to napisem iterativno, ali imam jedan problem pri ispisivanju rezultata iz NEPOZNATOG razloga, pa ako mozete da mi pomognete odgonetnuti gdje je problem. Evo rekurzivni kod:

private static int rec(int x, int y) {
if (x < 0) {
return rec(-x, y);
}
if (y < 0) {
return rec(x, -y);
}
if (x == 0) {
return 0;
}
if (x > y) {
return rec(y, x);
}
if (x == y) {
return x;
}
return rec(x, y - x);
}

A sada moj iterativni :

private static int iter(int x, int y) {
do { // first comparing of variables
if (x > y) { // when x larger than y; swap values
int z = y;
y = x;
x = z;
} else if (x < y) { //otherwise substract x from y
y = y - x;
}else if (x<0 && x<y){ // when x is smaller then null and smaller then y, multiply by -1 to get positive number
x*=-1;
}

} while (x != y); // do the same thing over and over again, as loong as they're different.
return x;
}


Kad pozovem obje metode radi uporedjivanja rezultata na vecini rezultata izbacuje isto rjesenje, ali ima jedan rezultat koji ne izbacuje dobro : Na parametre (512,-9) rekurzivno izbaci 1, a sa mojom (iterativnom) metodom ne izbaci nista? Ne razumijem u cemu je problem, isao sam na papiru korak po korak kroz algoritam i ne kapiram sta kompjuteru nije jasno? 512=x y=-9 ; x>y then swap places .. sad je x=-9 y=512 --> x<0 && x<y then x=x*-1 = 9 itd itd.. posto je sad x<y--> y=512-9.. i tako bi trebalo da radi sve dok ne izjednaci x i y.. Ali meni ne izbacuje nikakav rezultat?
 
Odgovor na temu

dule_ns
Novi Sad

Član broj: 123863
Poruke: 257
195.78.86.*



+690 Profil

icon Re: Bond123 opet u problemu s programom19.11.2015. u 08:41 - pre 102 meseci
Bonde, ovo ti je najbolje da uradiš kroz debbuger.

Ako ti je komplikovano da pripremiš okruženje za to (mada po meni ne bi trebalo da to bude) stavi ovaj kod na početku do bloka

Code:
System.out.println("x: " + x);
System.out.println("y: " + y);
System.out.println();

i videćeš da ti je x uvek -9 a da se y povećava.
 
Odgovor na temu

dule_ns
Novi Sad

Član broj: 123863
Poruke: 257
*.dynamic.sbb.rs.



+690 Profil

icon Re: Bond123 opet u problemu s programom19.11.2015. u 16:26 - pre 102 meseci
Citat:
Je l' mi mozes ukratko objasniti kako koristim Debugger, trenutno mi je IDE Intelij, i stavljao sam one breakpoints, problem je u tome sto ne znam gdje je potrebno staviti da bi pratio promjene neke vrijednosti. Kad stavim u petlju ili na return izbaci mi samo konacne vrijednosti i ja opet ne vidim gdje grijesim. Hvala


Bond,

ovo ti odgovaram javno pošto nema potrbe da šalješ takva pitanja na pp.

Elem, ja koristim Eclipse, ali recimo ovaj link mi se čini prilično koristan:

https://www.jetbrains.com/idea...ur-first-java-application.html



Inače, kad analiziram tvoj iterativni kod ima tu mala nelogičnost. Uslovi su ti:

1) x > y
2) else if (x < y)

ako nije nešto od ta dva onda je x==y a ti imaš uslov else if (x<0 && x<y) koji je već obrađen u drugom if-u. Znači u taj blok nema šanse nikad da uđe.

 
Odgovor na temu

Bond123

Član broj: 330809
Poruke: 22
*.ben.tuwien.ac.at.



Profil

icon Re: Bond123 opet u problemu s programom20.11.2015. u 10:42 - pre 102 meseci
Ok Dule. Mislio sam da je Debugger nesto sto svi znaju koristiti osim mene xD pa sam zato pisao u PP. Upravu si za ove uslove, o tome nisam razmisljao, vjerovatno zbog toga i ne izbacuje rezultat. Modifikovacu malo, hvala na pomoci i ukazanoj gresci!
 
Odgovor na temu

[es] :: Java :: Bond123 opet u problemu s programom

[ Pregleda: 1548 | Odgovora: 3 ] > FB > Twit

Postavi temu Odgovori

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