Arvutiteaduse instituut
  1. Kursused
  2. 2022/23 kevad
  3. Programmeerimine keeles C++ (LTAT.03.025)
EN
Logi sisse

Programmeerimine keeles C++ 2022/23 kevad

  • Pealeht
  • 1. Muutujad ja andmetüübid
  • 2. Keele põhikonstruktsioonid I
  • 3. Keele põhikonstruktsioonid II
3 Keele põhikonstruktsioonid II
3.1 Kodutöö
3.2 Harjutused
3.3 Videolingid
  • 4. Funktsioonimallid, failitöötlus
  • 5. OOP I Klassid
  • 6. OOP II Pärilus ja polümorfism
  • 7. Kontrolltöö 1?

Seitsmendal nädalal toimub 1. kontrolltöö

7.1 1. kontrolltöö näide?
  • 9. Dünaamiline mäluhaldus II
  • 10. Klassimallid
  • 11. STL andmestruktuurid I
  • 12. STL andmestruktuurid II
  • 13. Erindite töötlemine
  • 14. Täiendavad teemad
  • 15. Kontrolltöö 2?

Viieteistkümnendal nädalal toimub 2. kontrolltöö

15.1 2. kontrolltöö näide?
  • 16. Projekti esitlus?
  • Viiteid
  • Vanad materjalid
  • Praktikumid
  • Juhendid
  • Viited

Kodused ülesanded

1. Üledefineeritud funktsioonid

NB! Kõikide funktsioonide deklaratsioonid paiguta faili kodu3_fun_dekl.h, funktsioonide definitsioonid faili kodu3_fun_def.cpp. Esita mõlemad failid.

Koosta programm, kus on kolm samanimelist funktsiooni fun, mis erinevad üksteisest signatuuri poolest. Funktsioonide deklaratsioonid peavad olema definitsioonidest eraldi.

  • kui argumentideks on kaks int-tüüpi arvu, siis tagastatakse nende summa;
  • kui argumentideks on üks double-tüüpi arv, siis tagastatakse selle arvu ruut, mis on ümardatud täisarvuks;
  • kui argumentideks on unsigned int-tüüpi arv ja sõne, siis tagastatakse sõne paljundatuna vastav arv kordi.

Näide kolmandast funktsioonist. Funktsiooni poole pöördumisele main funktsioonis

 
cout << fun(10, "C++");

vastav väljund on

 
C++C++C++C++C++C++C++C++C++C++

2. Kehamassiindeks

Koosta funktsioon kehamassiindeks, mis tagastab kehamassiindeksi. Funktsiooni parameetriteks on pikkus meetrites ja kaal kilogrammides. Funktsioonis main saadakse pikkus meetrites ja kaal kilogrammides käsurealt. Koosta teine funktsioon hinnang, mille parameetriks on kehamassiindeks ja mis tagastab hinnangu sõnena. Hinnanguks sobivad sõnad: rasvumine, ülekaal, ideaalkaal, alakaal, vt https://www.kehamassiindeks.com/

Näide funktsiooni tööst: Kui main funktsioonis on käsud

double kmi{kehamassiindeks(1.94, 65)};
cout << "kmi: " << kmi << " hinnang: "<< hinnang(kmi) << '\n';

siis väljundiks on

kmi: 17.2707 hinnang: alakaal

Vihje. Käsurealt saadud argumendid tuleb teisendada arvudeks. Uuri funktsioonide stod ja stoi kasutamist.

Testimiseks keskkonnas CLion saab käsurea argumente lisada Run->Run->Edit Configurations->Program Arguments. Keskkonnas Visual Studio Code saab käsurea argumente lisada kompileeritud programmi käivitamisel terminaliakna käsureal.

3. Mustri otsimine

Käsureal antakse mustrina ette sõne, mida tuleb käsurea argumentidest otsida, kujul -otsi=otsitav sõne. Koosta funktsioon otsi_mustrit, mis saab ette käsurea argumendid ja mis teeb kindlaks, kas otsitav sõne on käsurea teiste argumentide hulgas.

Funktsiooni signatuur: string otsi_mustrit(int& argc, char* argv[]) Siin argumentide arv edastatakse viitena (& ja sõnemassiiv viidana *) Näited funktsiooni tööst.

  • Kui käsureal on kala -otsi=kana kass kana, siis funktsioon tagastab "Otsitav 'kana' leiti."
  • Kui käsureal on kala -otsi=koer kass kana, siis funktsioon tagastab "Otsitavat 'koer' ei leitud."
  • Kui käsureal on kala kass kana, siis funktsioon tagastab "Mustrit ei ole olemas."

Vihje. Kasu on string funktsioonidest find() ja substr(), vt lähemalt

http://www.cplusplus.com/reference/string/string/substr/

http://www.cplusplus.com/reference/string/string/find/

  • Arvutiteaduse instituut
  • Loodus- ja täppisteaduste valdkond
  • Tartu Ülikool
Tehniliste probleemide või küsimuste korral kirjuta:

Kursuse sisu ja korralduslike küsimustega pöörduge kursuse korraldajate poole.
Õppematerjalide varalised autoriõigused kuuluvad Tartu Ülikoolile. Õppematerjalide kasutamine on lubatud autoriõiguse seaduses ettenähtud teose vaba kasutamise eesmärkidel ja tingimustel. Õppematerjalide kasutamisel on kasutaja kohustatud viitama õppematerjalide autorile.
Õppematerjalide kasutamine muudel eesmärkidel on lubatud ainult Tartu Ülikooli eelneval kirjalikul nõusolekul.
Courses’i keskkonna kasutustingimused