Kodutöö II

Kodutöö üldnõudedKodutöö ülesande variantNäidislahendus

Kodutöö II raames tuleb luua programm ja koostada aruanne tehtud töö kohta.

Kodutöö 2 põhilisteks aspektideks on funktsioonide kasutamine ja programmi testimine erinevate sisendiga kasutades voo suunamist.  Kuna lähteandmeid võib olla erinevates testfailides erinev arv, on andmete kogus antud enne andmeid. Kahedimensionaalse massiivi puhul oleks eelnevalt antud kaks numbrit.

Näiteks leidmaks tudengite keskmist hinnet võiks olla sisendfaili sisu: 9 1 0 4 5 5 3 5 4 2

Esimene number 9 ütleb mitu hinnet sellele järgneb ning seejärel on 9 hinnet.

 Aruande sisu [struktuurinäidis]

  • Tiitelleht
  • Autorideklaratsioon
  • Sisukord
  • Ülesande püstitus
  • Programmi  selgitus struktureeritult (miinimum 1 A4, max 3 A4 lehte) 
    • Mida programm teeb?
    • Programmi töövoog (mis järjekorras mida tehakse)
    • Eriolukorrad ja nende lahendamine (olukorrad, kui programm peab oma töö vea tõttu peatama)
    • Programmi algandmed (kust need tulevad, mis formaadis need peavad olema)
    • Kõigi funktsioonide detailne kirjeldus (nimi, eesmärk, parameetrid, tingimused parameetritele, tagastus)
    • jne
  • Ekraanitõmmis(ed)
    Näita kindlasti voo suunamise kasutamist. 

Enne esitamist veendu, et (nõuded)

  • Täidetud on kõik koodimisstiilis etteantud nõuded, sealhulgas:
    • Kood on trepitud ja tühikud ning reavahetused seal, kus vaja
    • Kõik funktsioonide, muutujate, preprotsessori makrote nimetused on arusaadavad, eesmärgipärased ja õigesti vormistatud
    • Puuduvad maagilised numbrid
    • Puuduvad globaalsed muutujad
    • Muutujate deklaratsioonid on ainult funktsioonide alguses
    • Kood on kommenteeritud
    • Failidel on päis
    • Kasutatud vaid vajalike teeke
    • Kõik funktsioonid on kommenteeritud (NB! Vaata kuidas funktsiooni kommenteeritakse)
  • Koodis on realiseeritud vähemalt minimaalselt nõutud funktsioonid, kuid neid võib olla rohkem, kui see on eesmärgipärane
  • Programm peab töötama suvaliste andmetega (St me võime testimiseks muuta lähteandmeid, kuid me ei muuda andmetüüpe). Testimiseks kasutame me voo ümbersuunamist, juhindu ettantud näidisfailist!
  • Andmevahetus toimub funktsioonidega ainult parameetrite kaudu. Funktsiooni tagastused ja keerukamad lahendused on lubatud, globaalmuutujad mitte.
  • GOTO kasutamine pole lubatud.
  • Funktsioonide prototüübid asuvad päises, funktsioonide sisu pärast main() funktsiooni

Tähtajad, punktid, boonused

Teise kodutöö väärtuseks on 15p.

Maksimaalse tulemuse saamiseks peab lisaks korrektsele tööle olema järgitud ka koodimisstiilis esitatud nõudeid.

Terviklik kodutöö tuleb esitada hiljemalt 21.04.2019

Tähtaja ületamisel iga hilinetud nädal võtab 1p maksimumist alla kuni 10p piirini. Miinuspunktid lukustuvad vaid juhul, kui töö on esitatud täismahus.

Kodutöö eest saadud punkte on võimalik parandada punktide lukustamise kuupäevani. Sellisel juhul on töö ja sooritatud paranduste kaitsmine kohustuslik.

Esitades korrektselt lahendatud ja vormistatud töö ennetähtaegselt on võimalik saada kuni 2 boonuspunkti.

  • Enne 11.04.2019 23:59 esitatud töö: 2p
  • Enne 16.04.2019 23:59 esitatud töö: 1p

Boonuspunktide saamiseks peavad olema kõik esitatud nõuded täidetud. Poolikute või vigaste lahenduste eest boonuspunkte pole võimalik saada. Juhul kui esitatud töö ei täida kõiki nõudeid esmakordsel esitamisel kaob õigus selle töö eest boonuspunkte saada.

Kui kodutöö kohta tekib täiendavaid küsimusi või esineb kahtlusi autorluses, hinnatakse kodutöö tulemusega 0 punkt. Sellisel juhul tuleb punktide saamiseks kodutöö kaitsta.

Vajadusel rakendatakse [Vääritu käitumise menetlemise korda].

Viimane päev kodutöö esitamiseks on 10. mai 2019. Pärast antud kuupäeva kodutöid esitada ei ole võimalik!

Esitamine

Esitada tuleb dokumentatsioon *.pdf (Adobe PDF formaadis) ja kõik vajalikud koodifailid. Vajadusel lisa ka Makefile. Kompileeritud kujul programmi mitte lisada!

Esitamine käib ainult elektroonselt. Kindlasti järgi järgmisi nõudeid, et su töö ikka kenasti kohale jõuaks ja hinne õigele inimesele saaks.

Failide nimed on kujul Kodutoo_II_Eesnimi_Perenimi_123456ABCD

Kodutöö tuleb esitada moodle kaudu: https://moodle.taltech.ee/enrol/index.php?id=3347

Kui moodle'isse esitamine ebaõnnestub ...

Kui miskil põhjusel pole moodle’isse võimalik kodutööd esitada, siis varuvariandina võib saata selle e-kirjana

Kiri saada aadressile: risto.heinsar [ät] ttu.ee;

NB! Tegu on vaid osalise lahendusega, mis demonstreerib osasid testimisest ja koodimisstiilist. Esitamisele kuuluvast loe täpsemalt nõuete alt.

 

Koodinäidise vaatamiseks kliki siin
Koodi testimise näidislahenduseks piilu siia

Testimiseks kasutan mitut erinevat andmefaili katmaks erinevaid olukordi, mis tekkida võivad.

Test 1:

Output:

Capture

Test 2:

Output:

Capture2