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