Keskiarvo noin 6.5, 50% sai pisteitä 9-12, mutta nollille tai sen tuntumaan jäi 1/3 vastanneista. Valitettavasti... Kommentti: tehtävä on oleellisilta osin sama kuin kirjassa esitetty PikkuVarasto. Pisteet: - luokan otsikko ja luokan muuttujien esittely = 2p - ekassaOn() ja tokassaOn() yhteensä = 1p - siirraViljaa() = 3p - lisääViljaa(), otaViljaa(), toString() kukin = 2p Yleisiä virheitä (useammalla kuin yhdellä): - parametrin negatiivisuustarkistus puuttuu - unohdettu tarkistaa mahtuuko siirrettävä määrä kohdesiiloon - toString ei palauta merkkijonoa, vaan tulostaa jotain - luokan muuttujat esitelty konstruktorin paikallisiksi muuttujiksi - luokan muuttujat eistelty ilman private määrettä - konstruktorissa asetetaan parametrille arvo, ei luokan muuttujille Rokotuksen pääperiaate oli 1 piste per moka, mutta pikkumokiin (esim. lohkosulut väärin, mutta sisennyksestä näki oikean ajatuksen) suhtauduin immuunisti. public class Viljavarasto // Auvo Häkkinen { private double ekaVetoisuus, ekaMaara; private double tokaVetoisuus, tokaMaara; public Viljavarasto(double ekaVetoisuus, double tokaVetoisuus) { if (ekaVetoisuus < 0) ekaVetoisuus = 0; if (tokaVetoisuus < 0) tokaVetoisuus = 0; this.ekaVetoisuus = ekaVetoisuus; this.tokaVetoisuus = tokaVetoisuus; } public double ekassaOn() { return ekaVetoisuus; } public double tokassaOn() { return tokaVetoisuus; } public boolean siirraViljaa(double maara, boolean ekasta) { if (maara < 0) return false; if (ekasta) { // siirretään ensimmäisestä toiseen if (maara > ekaMaara || maara > tokaVetoisuus-tokaMaara) return false; ekaMaara = ekaMaara - maara; tokaMaara = tokaMaara + maara; return true; } // else siirretään toisesta siilosta ensimmäiseen if (maara > tokaMaara || maara > ekaVetoisuus - ekaMaara) return false; tokaMaara = tokaMaara - maara; ekaMaara = ekaMaara + maara; return true; } public boolean lisaaViljaa(double maara) { if (maara < 0 || maara > ekaVetoisuus - ekaMaara) return false; // ei mahdu ekaMaara = ekaMaara + maara; return true; } public double otaViljaa(double maara) { if (maara < 0) return -1; if (maara > ekaMaara) maara = ekaMaara; ekaMaara = ekaMaara - maara; return maara; } public String toString() { return "SIILO 1: Vetoisuus " + ekaVetoisuus + ", Määrä " + ekaMaara + "\nSIILO 2: Vetoisuus " + tokaVetoisuus + ", Määrä " + tokaMaara + "\n"; } } // public class Viljavarasto