Programmeerimine keeles C++
Praktikum 1: Keele ja töövahendite tutvustus – Koduülesanded
Üldised tingimused
Tähtis! Loe läbi ülesannete vormistamise tingimused aine veebilehelt! Ülesandeid esitatakse läbi aine veebilehel asuva vormi. E-posti teel lahendusi vastu ei võeta. Küsimustega pöörduda praktikumijuhendaja poole. Lahendamiseks on aega 14 päeva.
Tähtaeg 08.03.2020 23:59:59
Ülesanne 1 – Veel funktsioone (4 punkti)
- Täienda funktsioonide faili järgmiste funktsioonidega:
maximum
– leiab kahe täisarvu seast suuremaproduct
– korrutab kaks täisarvu ja tagastab korrutise täisarvunapower
– tõstab esimese täisarvu astmesse teine täisarv (kui tulem oleks murd või lõpmatus, näiteks mõne negatiivse astme puhul, siis väljasta null)gcd
– leiab kahe täisarvu suurima ühisteguri (kontrolli, et ühegi sisendi puhul ei krahhiks)
- Täiendada peaprogrammi. Käsurealt antakse kaks täisarvu, lisaks võib olla antud funktsiooninimi. Vale arvu parameetrite korral tuleb anda veateade. Standardväljundisse tuleb esmalt väljastada tühikuga eraldatult kaks käsurealt saadud arvu (võivad olla märgiga arvud) ja seejärel etteantud funktsiooni tulemus (eraldatud reavahetusega). Kui funktsiooni ette ei antud, siis tuleb väljastada kõigi meetodite tulemused (eraldatud reavahetusega):
- kahest arvust väiksem
- kahest arvust suurem
- kahe arvu korrutis
- esimene arv astmes teine arv (vt ülevalt märkuseid)
- kahe arvu suurim ühistegur
Näidisväljund, kui käsurida on program 42 2 minimum
42 2 2
Näidisväljund, kui käsurida on program 42 2
42 2 2 42 84 1764 2
Tähelepanu! Rakendus peaks suutma ülesandeid täita ka vales vormingus sisendi puhul.
Vaikimisi sisendväärtuseks võib kasutada näiteks nulli.
Lisage testide peaprogrammi vastavad testid.
Ülesanne 2 – Dokumentatsioon (3 punkti)
Lisa Doxygeni kommentaarid kõikidele funktsioonidele. Dokumentatsioonis tuleb eraldi välja tuua funktsioonid, parameetrid ja tagastusväärtused. Esitada tuleb ka dokumentatsiooni genereerimiseks vajalik Doxyfile, mille abil kommentaaridest dokumentatsiooni saab. Selle faili tekitamiseks võite kasutada Doxygeni paketti kuuluvat abiprogrammi doxywizard
, aga pange tähele, et see kirjutab näiteks Windowsi all Doxyfile sisse absoluutse tee (C:\Sinu\Kataloog\vms), samas kui vaja on suhtelist, mis ei sõltu lahenduse kausta asukohast. Doxygeni juhendi leiad siit: http://www.doxygen.nl/. Doxygeni veebilehelt leiate ka mitmeid dokumenteerimise näiteid. Vaata Doxygeni kasutamise soovitusi aine kodulehelt.
NB! Doxygeni konfifaili standardne nimi on Doxyfile. Teistsuguse nime korral ei juhtu lihtsalt doxygen
öeldes mitte midagi, sest doxygen ei leia doxy.conf faili.
Ülesanne 3 – Makefile täiendamine (3 punkti)
Täienda Makefile'i kolme sihiga (target).
doc
– kutsub välja Doxygeni, mis koostab dokumentatsiooni kaustadocs
.clean
– kustutab objektkoodi, programmifailid ja dokumentatsiooni ja ei midagi muud.all
– ehitab programmi ja loob dokumentatsiooni. Peab töötama selliselt, et kui muuta sihidoc
võibuild
sisu, siis käitub kamake all
vastavalt samamoodi (ära kopeeri, vaid viita). Kui öelda käsurealmake
, siis tuleks ehitada ainult programm (mitte ka dokumentatsioon).
NB! Kustutamiseks kasuta UNIXi käske, mitte Windowsi omi.
Abiks: http://www.cprogramming.com/tutorial/makefiles.html
Lisaülesanne – Sisend failist (1 lisapunkt)
Muuda esimese ülesande programmi nii, et kui käsureal on antud ainult üks parameeter, siis töödeldakse seda kui failinime ning see fail avatakse lugemiseks. Faili esimesel real on kaks arvu, millega tuleb teha samad toimingud nagu esimeses ülesandes. Kui sellise nimega faili ei ole, siis tuleb standardveavoogu väljastada vastav teade ning programmi töö lõpetada. Kui failis ei ole oodatud sisu, peab programm sellega ka hakkama saama.
Olgu kaustas fail yksjakaks.txt
sisuga
1 2
Näidisväljund, kui käsurida on 'program yksjakaks.txt
'.
1 2 1 2 2 1 1