Kodused ülesanded
1. Funktsioonimallid
NB!
Kõik funktsioonimallid paiguta faili kodu4.h.
- Koosta mall funktsiooni
liidajaoks, millel on kaks malliparameetrit ja mis tagastab nende summa. Katseta isemainfunktsioonis erinevaid tüübikombinatsioone (<int, int>, <string, string>, <int, double>, jne).
Uuri, kas on võimalik parameetrite tüübile piiranguid seada.
- Koosta mall funktsiooni
onVahemikusjaoks, millel on üks<template>parameeter ja kaksinttüüpi parameetrit. Funktsioon tagastab tõeväärtuse, kas parameetrina antud arv asub etteantud vahemikus, otspunktid kaasa arvatud. Katsetamainfunktsioonis erinevaid argumentide väärtuseid ja vahemikke. Näide kasutuse kohta:onVahemikus<5>(1, 10).
2. Klassimall fikseeritud pikkusega listi jaoks
Koostada klassimall Massiiv, mis hoiab endas fikseeritud pikkusega (nt 100 elementi) massiivi, mis käitub nagu fikseeritud pikkusega list. Massiivi elementide tüüp on määratud klassimalli tüübiparameetriga. Tüübiparameeter kitsendada päises <concepts> vahenditega arvuliseks, st kas täisarvuks või ujukomaarvuks. Massiivi kõik elemendid on algselt nullid ja neid loetakse väärtustamata elementideks. Massiivi saab täita (väärtustada) järjest vasakult paremale ja elemendi kustutamisel kustutatakse viimane väärtustatud element. Klassimallis on järgmised funktsioonid (T on klassimalli tüübiparameeter):
T getElement(int i)
Funktsioon tagastab i-ndal kohal oleva elemendi, kui see on väärtustatud. Vastasel juhul tagastab -1111.
bool kasTais()
Funktsioon tagastab tõeväärtuse, kas massiivi kõik elemendid on väärtustatud.
int getSuurus()
Funktsioon tagastab, mitu elementi massiivist on väärtustatud.
void print()
Funktsioon kuvab ekraanile massiivi kõik väärtustatud elemendid.
void lisaElement(T el)
Funktsioon lisab elemendi massiivi "lõppu", st esimesele vabale (väärtustamata) kohale.
void kustutaElement()
Funktsioon kustutab (nullib) viimase väärtustatud elemendi.
void asendaElement(T el1, T el2)
Funktsioon asendab väärtustatud alal kõik elemendid el1 elemendiga el2.
int vabuKohti()
Funktsioon tagastab vabade (väärtustamata) elementide arvu.
bool kasSisaldub(T el)
Funktsioon tagastab tõeväärtuse, kas etteantud element sisaldub massiivis väärtustatud alal.
Lisada klassi vajalikud isendimuutujad massiivi hetkeseisundi hoidmiseks.
Klassimall vormistada päisefaili kodu4.h, kus funktsioonide deklaratsioonid on eraldi nende definitsioonidest.
Näiteks, programmijupi
Massiiv<int> m{};
m.lisaElement(5);
m.lisaElement(8);
m.lisaElement(5);
m.lisaElement(5);
m.print();
m.kustutaElement();
m.print();
m.lisaElement(25);
m.asendaElement(m.getElement(0), 9);
m.print();
cout << m.getElement(8) << '\n';
cout << boolalpha << m.kasTais() << " " << m.kasTyhi() << '\n';
cout << m.vabuKohti() << " " << m.kasSisaldub(23) << " " << m.getSuurus() << '\n';
tulemuseks ekraanil on
5 8 5 5 5 8 5 9 8 9 25 -1111 false false 96 false 4
NB! Selle ülesande lahendamisel ei oodata viitade kasutamist.
Mall: (kodu4.zip)