Yleistä:
Arvostelussa pyrittiin olemaan reiluja sekä kokeneille että vasta-aloittaneille ohjelmoijille. Tehtäviä tarkistettiin periaattella ”Toimiiko ohjelma tehtävänannon mukaisesti?”. Koodin ulkoasulla ei siis tämän periaatteen puitteissa ollut merkitystä. Myöskään virheitä, jotka eivät merkittävästi muuttaneet ohjelman toimintaa, ei huomioitu. Kaikkia virhetapauksia on lähes mahdoton eritellä, mutta alla on kuitenkin nähtävillä arvosteluperusteet pääpiirteittäin sekä yleisimmät havaitut virheet. Tarkempia arvosteluperusteita voit tiedustella tehtävän tarkastajilta sähköpostitse.
Tehtävässä jaettiin pisteitä 1p / käsite. Vastauksia verrattiin kurssimateriaalin tarjoamiin esityksiin vastaavista käsitteistä. Arvostelussa annettiin puuttellisista vastauksista 0-½ pistettä. Yhteispisteet pyöristettiin lopuksi normaalien pyöristyssääntöjen mukaan. Esimerkeillä havainnollistaminen luettiin eduksi, varsinkin osittain puutteellississa vastauksissa.
2a
2b
2c
3a
3b
3. Yleisimmät virheet:
3A meni lähes kaikilla oikein ja siinä ei virheitä juuri esiintynyt. 3B:ssä puolestaan oli muutamia usein toistuneita virheitä:
//Allaolevaa käytettiin luokan konstruktorina tai 'alustamassa' ArrayListiä public ArrayList<Henkilo>() { } //Ja lisäksi public String haeNumero(String nimi) { for (Henkilo h : Henkilot) { if (h.getNimi.contains(nimi)) { // *1 return h; //*2 }else { //*3 return "numero ei tiedossa"; } }
if
:n ehto ei toteudu
else
palauttaa "numero ei tiedossa". Oikeampi tapa tehdä tämä olisi ollut poistaa
else
osa for lauseen sisuksista ja laittaa
return "numero ei tiedossa";
for
lausekkeen jälkeen, kuten malliratkaisussa ja kuten alla.
public String haeNumero(String nimi) { for (Henkilo h : Henkilot) { if (h.contains(nimi)) { // *4 return this.muistio.getNumero; } } return "numero ei tiedossa"; }