Pogovor:Izpitno vprašanje DIRI2005 5300

Iz MaFiRaWiki

(Razlika med različicami)
Različica od 15:19, 24 februar 2008
MatijaLokar (Pogovor | prispevki)

← Prejšnja različica
Trenutna različica
MatijaLokar (Pogovor | prispevki)

Vrstica 8: Vrstica 8:
Vem da je "zoprno", ker npr. izpis sklada le tega "pokvari", ampak če boste zadeve zložili v metode, bo stvar precej bolj jasna! Vem da je "zoprno", ker npr. izpis sklada le tega "pokvari", ampak če boste zadeve zložili v metode, bo stvar precej bolj jasna!
--[[Uporabnik:MatijaLokar|Matija Lokar]] 16:19, 24 februar 2008 (CET) --[[Uporabnik:MatijaLokar|Matija Lokar]] 16:19, 24 februar 2008 (CET)
 +
 +----
 +* Naredite "klasično" napako. Metoda naj '''ne izpisuje'''! Zakaj - ker s tem zelo omejimo uporabnost metode. Vi želite, da metoda odstrani najmanjši element. Nič pa ni govora o tem, da naj bi še izpisala ta najmanjši element.
 +* Še vedno ne pojasnite, kako dosežete, da odstranimo najstarejšega najmanjšega (torej če je več enakih najmanjših!)
 +* zakaj vaša metoda vrača sklad (dejansko vrne novo referenco na obstoječi sklad). Bolj je smiselno da
 +**metoda ne vrača nič (torej le spremeni obstoječi sklad - parameter metode) ali pa
 +**metoda vrne minimalni element (in ob tem spremeni še sklad, ki je parameter metode)
 +* ker morate odstraniti najstarejšega namanjšega, načeloma ne bi bilo potrebno šteti najmanjše (resnici na ljubo jih ne štejete, saj je vaš i_min najprej 0, po prvem najmanjšem (ki je najstarejši najmanjši ;-) )pa 1 - lahko bi kar vzeli logično vrednost). Uporabili bi lahko tak algoritem:
 +** prelozi sklad v pomoznega in ob tem poisci najmanjsega
 +** iz pomoznega prelagaj elemente dokler ne naletiš na najmanjšega. Tega ne preloži. Prvi najmanši v pomožnem je najstarejši najmanjši (zakaj').
 +** preloži še vse preostale (nio potrebno nobene kontrole, le prelagamo, dokler se pomožni ne izprazni)
 +--[[Uporabnik:MatijaLokar|Matija Lokar]] 12:01, 4 april 2008 (CEST)

Trenutna različica

Načeloma ne bi bilo potrebno pisati uvodnega dela, ampak le odgovoriti na vprašanje. Ni pa nič narobe, če še enkrat obnovimo, kaj je sklad.

Pri odgovoru pa morda moti le:

  • imena spremenljivk v javi praviloma začenjamo z malo črko (tudi npr. Sklad_nov)
  • zadeva bi bila bolj nazorna, če bi pripravili metodo, ki "opravi delo" in bi bilo tako bolj jasno, kaj je pravzaprav odgovor in kaj "tisto okoli", ki le kaže, da je naš aloritem pravilen.
  • Nikjer ne pojasnite, kako dosežete, da odstranimo najstarejšega najmnajšega!
  • Ker pripravite cel kup pomožnih skaldov, pa skladov za izpis, pa ... je bralec na koncu izgubljen! Načeloma mooramo na začetku imeti npr. sklad z imenom s, po končani "operaciji" pa moramo še vedno imeti ISTI sklad s (če torej še vedno delamo z s, deloamo z istim skladom), le da nima več n-tega elementa.

Vem da je "zoprno", ker npr. izpis sklada le tega "pokvari", ampak če boste zadeve zložili v metode, bo stvar precej bolj jasna! --Matija Lokar 16:19, 24 februar 2008 (CET)


  • Naredite "klasično" napako. Metoda naj ne izpisuje! Zakaj - ker s tem zelo omejimo uporabnost metode. Vi želite, da metoda odstrani najmanjši element. Nič pa ni govora o tem, da naj bi še izpisala ta najmanjši element.
  • Še vedno ne pojasnite, kako dosežete, da odstranimo najstarejšega najmanjšega (torej če je več enakih najmanjših!)
  • zakaj vaša metoda vrača sklad (dejansko vrne novo referenco na obstoječi sklad). Bolj je smiselno da
    • metoda ne vrača nič (torej le spremeni obstoječi sklad - parameter metode) ali pa
    • metoda vrne minimalni element (in ob tem spremeni še sklad, ki je parameter metode)
  • ker morate odstraniti najstarejšega namanjšega, načeloma ne bi bilo potrebno šteti najmanjše (resnici na ljubo jih ne štejete, saj je vaš i_min najprej 0, po prvem najmanjšem (ki je najstarejši najmanjši ;-) )pa 1 - lahko bi kar vzeli logično vrednost). Uporabili bi lahko tak algoritem:
    • prelozi sklad v pomoznega in ob tem poisci najmanjsega
    • iz pomoznega prelagaj elemente dokler ne naletiš na najmanjšega. Tega ne preloži. Prvi najmanši v pomožnem je najstarejši najmanjši (zakaj').
    • preloži še vse preostale (nio potrebno nobene kontrole, le prelagamo, dokler se pomožni ne izprazni)

--Matija Lokar 12:01, 4 april 2008 (CEST)

Osebna orodja