Kodutöö I

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

Kodutöö eest saadud punktid on osa hindest.

Ülesanne

Kodutöö variandid antakse kätte 2. nädala praktikumi tunnis.

Programmi jaoks vajaminevad andmefailid loo ise. Andmefailis peab olema vähemalt 10 kirjet.

Dokumentatsioon [tiitellehe näidis]

  • Tiitelleht
  • Autorideklaratsioon
  • Sisukord
  • Ülesande püstitus
  • Programmi detailne kirjeldus (1-3 A4 lehte)
    • Mida programm teeb?
    • Programmi töövoog ehk mis järjekorras mida tehakse?
    • Kirjelda oma funktsioone
      • Mis on funktsiooni eesmärk? Mida see teeb?
      • Mis andmeid funktsioon vajab tööks? Andmete tüüp ja semantiline tähendus.
      • Kas andmetel on erinõuded?  (Nt täisarv ei tohi olla negatiivne)
      • Kas ja mida funktsioon tagastab? Tüüp ja semantiline tähendus
    • Kirjelda oma struktuure – kõigi struktuuride eesmärk ning kõigi liikmete andmetüübid ning tähendused
    • Kuidas eriolukordi lahendatakse (võimalikud vead ja probleemid mis võivad juhtuda)?
  • Ekraanitõmmis(ed)
  • Sisendfaili struktuur (mitte sisu ega ekraanitõmmis sisust)

Enne esitamist veendu, et

  • Kasutatavad andmed loetakse ja/või salvestatakse andmefailidesse. Voo ümbersuunamist enam ei kasuta.
  • Igas andmefailis on vähemalt 10 kirjet
  • Andmed loetakse nõuetekohastesse struktuuridesse. Vajadusel võid välju lisada.
  • Programmis on tagatud elementaarne veakindlus. Kui programm lõpetab töö vea tõttu, siis tuleks kasutajale ka teavitada selle põhjusest.
  • Kood on jaotatud otstarbekohaselt funktsioonideks (vähemalt 2 lisaks main funktsioonile).
    Kui oled pidanud juba 2 korda kirjutama sama ideega koodilõiku, siis tõenäoliselt oleks otstarbekas luua ka selleks täiendav funktsioon ja erisused lahendada parameetritega.
  • Andmevahetus toimub funktsioonidega ainult parameetrite kaudu. Globaalmuutujad on keelatud.
  • Funktsioonide prototüübid asuvad kas eraldi päisefailis või enne main funktsiooni, nende realisatsioonid main funktsiooni järel.
  • Kood on hästi loetav. Täidetud on kõik koodimisstiilis etteantud nõuded, muuhulgas:
    • Kood on trepitud ja tühikud ning reavahetused on seal, kus vaja
    • Funktsioonide, muutujate, 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
    • Veendu, et kõigil koodifailidel on nõuetekohane päis
    • Kasutatud vaid vajalike teeke
    • jne
  • Juhul kui programmis on kasutusel otsingud ning need ei andnud tulemusi, tuleb kasutajat teavitada vastete puudumisest. Sama kehtib ka tühjade sisendfailide puhul.

Soovi korral tule küsi praktikumis üle, kas kõik on nõuetekohane

Näidis

Kodutöö koodinäidis

Tähtajad ja punktid

Esimese kodutöö väärtus on 15p.

Maksimaalse tulemuse saamiseks tuleb jälgida nii koodimisstiili kui ka kinni pidada üldnõuetest.

Terviklik kodutöö tuleb esitada hiljemalt 25.02.2018

Tähtaja ületamisel iga hilinetud nädal võtab 1p maksimumist alla kuni 10p piirini.  Maksimaalne punktisumma on 15p.

Viimane võimalus: 21.05.18. Pärast seda pole kodutöö esitamine  enam võimalik.

Boonuspunktid / edasijõudnutele

Kodutöö eest on võimalik saada 2 boonuspunkti. Boonuspunktid lisanduvad kodutöö punktidele hinde panekul.

Kui kodutöö rahuldab boonuspunktide saamise nõudeid, siis hilinenud nädalaid ei arvestata.

Lisaks baasnõuetele tuleb täita järgmised punktid:

  • Veakindlus
  • Hea struktuur, optimaalne koodikasutus, kiired algoritmid
  • Peab taluma tahtlikult või tahtmatult rikutud sisendfaile [ inspiratsiooni ]
    • Valed andmetüübid (nt täisarvu asemel murdarv)
    • Ebareaalsed andmed (nt temperatuur alla 0 kelvini)
    • Ületäitumise kaitse (overflow – nt tekstivälja pikkus failis suurem kui salvestamiseks kasutatav muutuja)
    • Puuduvad või üleliigsed väljad andmeridadel
  • Teksti normaliseerimine (tAlLiNn -> Tallinn, KUUSIK-> kuusik)

Esitamine

Esitamisele kuuluvad failid:
  • Aruanne (pdf)
  • Kõik vajaminevad koodifailid
  • Vajalikud andmefailid programmi jooksutamiseks
  • Kui esitad mitu koodifaili või kasutad mõnda standardit peale C90, siis lisa Linuxi jaoks makefile!

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.

Nimetamisskeem: <Kodutoo_I_<eesnimi>_<perenimi>_<matrikkel>

Failide nimed: Kodutoo_I_Eesnimi_Perenimi_123456ABCD
Kirja teemaks: Kodutoo_I_Eesnimi_Perenimi_123456ABCD

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