» »

[Java] Vprašanje o nalogi

[Java] Vprašanje o nalogi

Apfelsaft ::

Torej v šoli sem se skregal s profesorico, ker trdim, da je spodnja naloga narobe zastavljene glede na pričakovan izpis.

Napiši javanski program, ki priredi spremenljivki nagrada vrednost:
- 100, če je prodaja (spremenljivka) večja ali enaka 1000,
- 200, če je prodaja večja ali enaka 2000 in
- 0, če je prodaja manjša od 1000.

Naloga naj bi se skladala s spodnjo kodo:

if (prodaja < 1000)
   nagrada = 0;
else if (prodaja < 2000)
   nagrada = 100;
else
   nagrada = 200;


Kaj pravite? A imam prav ali ne?
  • spremenil: Mavrik ()

ragezor ::

Nimas prav. Naslednjic prej preveri, preden se skregas.

Randomness ::

Pa si podkrepil svoje nestrinjanje z razlago? Smešno se mi zdi namreč, da se kregaš o stvareh, ki se jih da podkrepiti z neizpodbitnimi argumenti. Podobno kot ne vem kateri filozofi že, ki so se prepirali o tem, koliko zob ima konj, pa se nihče ni spomnil, da bi lahko konju odprli usta in prešteli zobe.

Vidim, da me je ragezor že prehitel ...

Zgodovina sprememb…

Apfelsaft ::

Seveda. Nikjer ne piše, da mora biti za vrednost 100 spremenljivka manjša od 2000.

shadeX ::

A kodo ki si jo prilepil naj bi profesorica spisala? Ker men se ne zdi logična.

- 100, če je prodaja večja ali enaka 1000,

if(prodaja>=1000) nagrada = 100;

- 200 če je prodaja večja ali enaka 2000

else if(prodaja >= 2000) nagrada = 200;

- 0 če je prodaja manjša od 1000.

else if(prodaja < 1000) nagrada = 0;



Torej koda:

if(prodaja >= 1000) {

nagrada= 100;
} else if(prodaja >= 2000) {

nagrada = 200;
} else if(prodaja < 1000) {

nagrada= 0;
}




Kar dela koda od profesorice je tako:


if (prodaja < 1000)
   nagrada = 0;
else if (prodaja < 2000)
   nagrada = 100;
else
   nagrada = 200;


-Če je prodaja manjša kot 1000 je nagrada 0. ! NAPAKA. V nalogi piše manjša ali ENAKA. Torej je pogoj napačno postavljen ker bi dobil nagrado samo za prodajo 999 ne pa tudi za 1000.
- Ali pa če je prodaja manjša od 2000 je nagrada 100. ! NAPAKA. V nalogi nikjer ne piše da če je prodaja MANJŠA od 2000 da dobiš nagrado 100. Tudi pogoja "JE ENAKO" ni nikjer.
- Za vse druge vrednosti je nagrada 200. PRAVILNO.

@ragezor in @randomness. Zakaj mislita da OP nima prav?

ragezor ::

Ker znava obrnit pogoje in imava zmoznost podrobnega branja nalog.

Ce se ti zdi, da je napacno, si izberi eno stevilko, preberi v nalogi kolko bi mogla biti stevilka in potem poglej v kodi kaj se zgodi. Pac, najdi en primer, kjer se program napacno obnasa.

Randomness ::

Besedilo naloge bi lahko bolj natančno zapisali tudi s spodnjo matematično formulo. Bo sedaj šlo? Koliko bi po tvojem morala znašati nagrada, če bi prodaja znašala 2000?

          | 0    , če prodaja < 1000
nagrada = | 100  , če 1000 <= prodaja < 2000
          | 200  , če prodaja >= 2000

Invictus ::

Bog se nas usmili ...

Za tako brezvezno vprašanje bo zdaj cela debata.

OP niti kode ni prilepil ...
"Life is hard; it's even harder when you're stupid."

http://goo.gl/2YuS2x

shadeX ::

uf pa res. My bad.

Koda od profesorice je čist kul :D

garamond ::

Pozdravljeni,
do zdaj še ni bilo poslane rešitve, ki bi bila 100% skladna s specifikacijami. Pošiljam jaz, oklepaje bi bilo treba še dodat:
if (prodaja < 1000)
   nagrada = 0;
else if (prodaja < 2000)
   nagrada = 100;
else
   nagrada = 100; // dodano
   nagrada = 200;
Čisto lepo implicitno piše, da je treba spremenljivki prirediti vrednost tako 100 kot 200 v primeru >= 2000. Ni optimalno, ampak taka so navodila.

Vrstni red prirejanja za pogoj >=2000 ni omenjen, tako da tole je tudi pravilno:
nagrada = 200;
nagrada = 100;

Yacked2 ::

garamond je izjavil:

Pozdravljeni,
do zdaj še ni bilo poslane rešitve, ki bi bila 100% skladna s specifikacijami. Pošiljam jaz, oklepaje bi bilo treba še dodat:

if (prodaja < 1000)
nagrada = 0;
else if (prodaja < 2000)
nagrada = 100;
else
nagrada = 100; // dodano
nagrada = 200;
Čisto lepo implicitno piše, da je treba spremenljivki prirediti vrednost tako 100 kot 200 v primeru >= 2000. Ni optimalno, ampak taka so navodila.

Vrstni red prirejanja za pogoj >=2000 ni omenjen, tako da tole je tudi pravilno:
nagrada = 200;
nagrada = 100;


Tisto tvoje dodatno lahko kar vn vržeš za voljo optimizacije.
Korak naprej ni vedno ustrezen...sploh če si na robu prepada!

garamond ::

Lahko, vendar potem ni v skladu z navodili. :-(


Vredno ogleda ...

TemaSporočilaOglediZadnje sporočilo
TemaSporočilaOglediZadnje sporočilo
»

Python keyError 3

Oddelek: Programiranje
141187 (825) filips
»

jquery in div-i (strani: 1 2 )

Oddelek: Izdelava spletišč
8711260 (9998) lisjak
»

PROSIM POMOČ! (programiranje

Oddelek: Pomoč in nasveti
6967 (682) comgen
»

java pomoč, verjetno event handler

Oddelek: Programiranje
121055 (888) Chandler258
»

[c] char zadeva

Oddelek: Programiranje
222250 (2048) TheCyborg

Več podobnih tem