Taso ja pistearvo: | B 90 |
---|---|
Lyhyesti: | Korjataan virheitä annettujen futispelejä kuvaavien luokkien ohjelmakoodista ja muokataan luokkia hieman. |
Mitä opitaan: | Lukemaan luokkien määrittelyjä (ilmentymämuuttujat, metodien toteutus), muokkaamaan luokkien määrittelyjä, korjaamaan syntaksivirheitä. |
Toteuttamisen vapaus: | Kohtalainen. Toimintatapaa ei ole määritelty pilkuntarkasti, joskin ratkaistavaksi annettu ongelma on laajuudeltaan sen verran pieni ettei keskenään täysin erilaisia ratkaisutapoja juuri ole. |
Realistisuus: | Työskentelytavan osalta korkea. Virheiden korjaus ja luokkien kirjoittaminen ovat äärimmäisen keskeisiä ohjelmointitaitoja. Annettu "urheilutilastointi" on aihepiirinä ihan realistinen tietokoneohjelman sovellusalue, joskaan tämä alkeiskurssiprojekti ei nyt ihan vielä vastaa "oikeaa urheilutilasto-ohjelmaa". |
Haastavuus: | Keskitasoa. Luokan anatomian sekä ilmentymämuuttujien metodien määrittelyjen ymmärtäminen vaativat monien olio-ohjelmoinnin käsitteiden kunnollista ymmärtämistä. Virheilmoitusten tulkinta on myös aloittelijalle haastavaa. |
Työläys: | Melko kevyt tehtävä. Useimmat selvinnevät tästä noin parissa tunnissa, mutta voi kannattaa vähän enemmänkin aikaa varata varmuuden vuoksi. |
Projekti: Football1
Tutustukaa annettuihin luokkiin Match
ja Club
,
joiden avulla voidaan pitää kirjaa jalkapallopelien tuloksista, sekä niitä
käyttävään pääohjelmaan moduulissa match_test
. Tällä kertaa
tarkoitus on tutustua sekä luokkien dokumentaatioon, että niiden
Python-kieliseen toteutukseen. Python-koodia tutkimalla osoittautuu, että
luokkien koodissa on syntaksivirheitä. Syntaksivirhe on sellainen
ohjelmatekstissä oleva virhe, joka rikkoo ohjelmointikielen rakenteellisia
sääntöjä ("kielioppia"). Annetussa koodissa olevat virheet estävät näiden
luokkien käytön kokonaan. Lisäksi pari dokumentaation kuvaamaa metodia puuttuu
kokonaan luokasta Match
. Eikä siinäkään vielä kaikki: koodissa on
myös yksi pieni "bugi": eräs Match
-luokan metodeista on
kieliopillisesti oikein mutta ei toimi niin kuin dokumentaatio kuvaa.
Tässä tehtävässä teidän pitää:
Match
ja Club
olevat
syntaksivirheet siten, että luokkien käyttö on mahdollista. Match
kaksi puuttuvaa metodia
(get_goal_difference
ja get_location
). match_test
oleva yksinkertainen
pääfunktio toimivaksi. Match
virheellisesti (eli spesifikaation
vastaisesti) toimiva metodi ja korjata se. match_test
pääfunktiota siten, että se
testaa luokkia kattavammin. Varmistaa uusitun pääfunktion avulla, että
tekemänne korjaukset ja lisäykset toimivat. Tähän ei ole mitään tarkkaa ohjetta.
Saatte itse päättää, mitä testaatte ja miten.Alla on useita hyviä vinkkejä. Kannattaa lukea.
Palauttakaa muokatut tiedostot arvosteltaviksi Goblin-järjestelmään. Jos tarvitsette apua palautuksen tekemisessä, katsokaa lisätietoja kurssisivujen Goblin-ohjeesta.
Match' object has no attribute
'get_goal_difference'
kun se havaitsi tiettyjä ongelmia koodissa?
Mitä nämä viestit tarkoittavat ja mitä ne kertovat ohjelmoijalle? Olisitko
itse muotoillut viestin toisin? Tämänkaltainen pohdiskelu voi auttaa
ymmärtämään ohjelmointiin liittyviä käsitteitä paremmin ja auttaa
kehittämään rutiinia ohjelmointityökalujen käytössä.