Kodutöö I

Kodutöö I ülesanne

Kodutöö I raames tuleb koostada algoritm ja sellele vastav programm C keeles. Lahendus peab võimaldama ettemääratud kitsenduste põhjal arvutada funktsiooni y = f(x) väärtusi ning kuvada tulemused leitud punktides. Tulemused peavad olema tabeli kujul [ vt printf() kasutamise vihjeid ], mille veergudeks on argumendi x ja funktsiooni y = f(x) väärtused, st:

Argument (xi) Funktsiooni väärtus kohal xi
x1 y1
x2 y2
xn yn

Funktsiooni väärtus kuvatakse ainult siis, kui see eksisteerib. Kui funktsiooni väärtus pole antud argumendi x korral määratud või on kompleksarvuline, siis tuleb y veergu väljastada ‘puudub’ või ‘kompleksarvuline’. Kompleksarvulise väärtuse võib soovi korral esitada kujul: reaalosa + i imaginaarosa.

Tehtud tööga koos tuleb esitada põhjalik aruanne!

Üldised nõuded koodile

  • C (standardid C90 ja C99 on lubatud. Kui kasutate C99 standardit, lisage Makefile!)
  • Peab kasutama standardteeke
  • Peab olema operatsioonisüsteemist sõltumatu (minimaalselt peab töötama Windowsis ja Linuxis)
  • Koodis ei tohi olla kasutatud GOTO lauseid
  • Koodis ei tohi olla kasutatud globaalmuutujaid
  • Kõik leitavad tulemused tuleb salvestada ja kuvada selleks sobiliku massiivi või massiivide kaudu
  • Maksimaalselt arvutatakse välja ja kuvatakse 15 tulemust, olenemata variandist

Kodutöö variant

Aruande sisu [näidisaruanne]

  • Tiitelleht
  • Autorideklaratsioon
  • Sisukord
  • Algoritm UMLis [vt kuidas ArgoUMList eksportida siit]
  • Ekraanitõmmis(ed) töötavast programmist
  • Visualiseeritud funktsiooni graafik(ud)
    Selleks võid kasutada näiteks [google’it], [wolfram alphat], excelit või mõnda teist meelepärast tööriista.
  • Programmi selgitus
    Selgituseks on lühikirjeldus programmi töövoost ja ülesehitusest. St mida mis järjekorras tehakse, millised on eriolukorrad ja kuidas neid lahendatakse, mis formaadis andmeid oodatakse jne. Selgituse pikkus peaks olema vähemalt 3/4 A4 lehest, kuid mitte rohkem kui kaks lehte..

Enne esitamist

Kontrolli aruannet
  • Tiitelleht on vormistatud korrektselt. (Tiitellehele ülaossa on märgitud kellele aruannet esitatakse, mitte kus õpitakse)
  • Programmi selgituse maht peaks olema vähemalt kolm neljandikku A4 lehest.
  • Selgitus on korralikult struktureeritud – st ei ole üks monoliitne tekstiplokk!
  • Algoritm on esitatud korralikult eksporditud graafikana, mitte ekraanitõmmisena.
  • Aruandes on vaid välja lõigatud pildid jooksvast programmist, mitte tekstiredaktorist ega tervest tööekraanist.
  • Aruanne tohib sisaldada programmikoodi vaid piiratud mahus, juhul kui seda on vaja selgituses mingi osa illustreerimiseks. Sellised koodilõigud peavad olema joondatud vasakule, trepitud ja esitatud ühelaiuste tähemärkidega.
  • Aruanne on PDF formaadis (mitte odt, doc, docx vms)
Kontrolli koodi
  • Iga faili päises on autori andmed, kuupäev, lühikirjeldus (vt koodimisstiil)
  • Kood on kommenteeritud (vt koodimisstiil)
  • Muutujad on deklareeritud koodi alguses  (vt koodimisstiil)
  • Muutujate nimed on arusaadavad ning kirjutatud korrektses stiilis (vt koodimisstiil)
  • Kasutatud on vaid vajalike teeke
  • Kood on trepitud, koodiread on lubatud maksimaalse pikkusega ja tühikud vajalikes kohtades (vt koodimisstiil)
  • Koodis puuduvad maagilised numbrid  (vt koodimisstiil)
  • Koodis on kasutatud nõutud ja sobilike andmetüüpe
Kontrolli algoritmi
  • kõigil sõlmedel on juures tingimus (mille alusel valitakse sõlmest väljuv tee)
  • Kõigil sõlmedest väljuvatel kaartel on märgitud mis olukorras programmivoog antud kaare valib (true/false, switch case väärtused)
  • Kõikidesse kaartesse on võimalik saada – st tingimused peavad olema reaalsed.
  • Puuduvad tupikud – st kõikjalt on võimalik saada lõppu.
  • Kõigist tsüklitest on võimalik väljuda

Soovi korral tule küsi praktikumis üle, kas kõik paistab korras olevat

Tähtajad, punktid ja boonused

Esimese 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 13.10.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 05.10.2019 23:59 esitatud töö: 2p
  • Enne 10.10.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 ja kaitsmiseks on märgitud sissejuhatavatel slaididel. 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. 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 peavad algama Kodutoo_I_Eesnimi_Perenimi_üliõpilaskood.
Näiteks:

Kodutoo_I_Anti_Tiib_112211IASB_kood.c
Kodutoo_I_Anti_Tiib_112211IASB_aruanne.pdf

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