Institute of Computer Science
  1. Courses
  2. 2019/20 spring
  3. Programming in C++ (MTAT.03.158)
ET
Log in

Programming in C++ 2019/20 spring

  • Pealeht
  • Praktikumid
    • Lahenduste esitamine
    • Tulemused
  • Eksamiajad
  • Juhendid
  • Viited

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)

  1. Täienda funktsioonide faili järgmiste funktsioonidega:
    1. maximum – leiab kahe täisarvu seast suurema
    2. product – korrutab kaks täisarvu ja tagastab korrutise täisarvuna
    3. power – 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)
    4. gcd – leiab kahe täisarvu suurima ühisteguri (kontrolli, et ühegi sisendi puhul ei krahhiks)
  2. 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):
    1. kahest arvust väiksem
    2. kahest arvust suurem
    3. kahe arvu korrutis
    4. esimene arv astmes teine arv (vt ülevalt märkuseid)
    5. 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).

  1. doc – kutsub välja Doxygeni, mis koostab dokumentatsiooni kausta docs.
  2. clean – kustutab objektkoodi, programmifailid ja dokumentatsiooni ja ei midagi muud.
  3. all – ehitab programmi ja loob dokumentatsiooni. Peab töötama selliselt, et kui muuta sihi doc või build sisu, siis käitub ka make all vastavalt samamoodi (ära kopeeri, vaid viita). Kui öelda käsureal make, 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
  • Institute of Computer Science
  • Faculty of Science and Technology
  • University of Tartu
In case of technical problems or questions write to:

Contact the course organizers with the organizational and course content questions.
The proprietary copyrights of educational materials belong to the University of Tartu. The use of educational materials is permitted for the purposes and under the conditions provided for in the copyright law for the free use of a work. When using educational materials, the user is obligated to give credit to the author of the educational materials.
The use of educational materials for other purposes is allowed only with the prior written consent of the University of Tartu.
Terms of use for the Courses environment