Kodused ülesanded
1. Funktsioonimallid
NB!
Kõik funktsioonimallid paiguta faili kodu4.h
.
- Koosta mall funktsiooni
liida
jaoks, millel on kaks malliparameetrit ja mis tagastab nende summa. Katseta isemain
funktsioonis erinevaid tüübikombinatsioone (<int, int>, <string, string>, <int, double>, jne).
Uuri, kas on võimalik parameetrite tüübile piiranguid seada.
- Koosta mall funktsiooni
onVahemikus
jaoks, millel on üks<template>
parameeter ja kaksint
tüüpi parameetrit. Funktsioon tagastab tõeväärtuse, kas parameetrina antud arv asub etteantud vahemikus, otspunktid kaasa arvatud. Katsetamain
funktsioonis 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)