1-ojo
savarankiško
darbo
užduotis
Ši užduotis bendra visiems studentams.
Panaudojant objektiškai orientuoto programavimo modelį, parašyti programą, kuri
leistų atlikti matematinius veiksmus (sudėtį, atimtį, daugybą, dalybą, lyginimą)
su racionaliais skaičiais. Racionalus skaičiai - tai skaičiai, kuriuos
galima išreikšti trupmenomis, o trupmenų skaitiklis ir vardiklis
- sveiki skaičiai. Pavyzdžiui: ½, 2/3, 15/32, 65/4,
16/5.
Parašykite klasę
racionaliems skaičiams. Klasės
duomenys - racionalieji skaičiai t.y. sveiko tipo
kintamųjų pora (skaitiklis ir vardiklis).
Klasėje turi būti tokie
metodai: sudetis, atimtis,
daugyba, dalyba,
daugiau, neigiamas atliekantys
operacijas +, - , * ,
/ > ir daugybą iš -1.
Metodai sudetis, atimtis,
daugyba, dalyba,
neigiamas turi grąžinti
racionalius skaičius. Funkcija daugiau gražina
bool tipo reikšmę.
Sudėties operacija
a + b šios klasės pagalba bus atliekama kaip a. sudetis(b),
o operacija a > b atliekama kaip a.daugiau(b).
Kiekvienam
abstrakčiam duomenų tipui reikalingas konstruktorius, kuris sukuria objektus .
Mūsų atveju konstruktorius turi kurti objektus,
naudojant sveikų skaičių porą.
Kadangi bet kuris sveikas skaičius yra racionalus skaičius ( jį galime išreikšti
kaip tą patį skaičių padalintą iš 1), todėl
nepamiršti, kad reikalingas ir
konstruktorius su vienu sveiko skaičiaus parametru.
Į klasę taip pat įtraukite metodus
ivesti ir isvesti .
Pirmasis privalo turėti istream
tipo argumentą ir
nuskaityti racionalų skaičių iš klaviatūros arba failo
tokia forma “skaitiklis/vardiklis”. Antrasis
metodas privalo turėti ostream
tipo argumentą ir išvesti
į ekraną arba į failą racionalų
skaičių tokia forma “skaitiklis/vardiklis”.
Parašykite funkciją
main() ir ištestuokite jūsų klasės realizaciją,
suskaičiuodami žemiau pateiktų veiksmų rezultatus:
a/b+c/d
(a*d+b*c)/(b*d)
a/b-c/d
(a*d-b*c)/(b*d)
(a/b)/(c/d)
(a*d)/(c*b)
-(a/b)
(a/b)>(c/d)
(a/b)= =(c/d)
kur a ir b - racionalūs skaičiai.
Skaitiklis gali būti teigiamas arba neigiamas.
Vardiklis turi būti teigiamas.
Bendrieji reikalavimai
2-os ir 3-ios užduočių atlikimui
Reikalaujama, kad
programa būtų skirstoma į modulius t.y.: kiekviena klasė aprašyta
aprašų (header) faile, veiksmai atlikinėjami realizacijos faile
(išskyrus grynai abstrakčias klases, kurios neturi realizacijos).
Klasėse duomenys inkapsuliuojami
t.y. visi duomenys private arba protected, o funkcijos public
tik tos kurios reikalingos ( neturi būti atsitiktinių viešų
metodų).
Nereikalaujama grafinio
vartotojo interfeiso – visas išvedimas ir įvedimas gali būti
atliekamas per standartines konsolės įvedimo ir išvedimo funkcijas.
Naudoti
tik C++ strautų funkcijas įvedimo/išvedimo operacijoms atlikti.
Programoje turi būti rašomi
komentarai, kad dėstytojui būtų lengviau suprasti bei teisingai
įvertinti.
2-ojo ir 3-ojo savarankiško darbo užduotys
- Parašyti programą su objektais,
kurių metodai:
- Iš duomenų failo nuskaito bet kokio
dydžio tris vienmačius masyvus (visų trijų masyvų
dydis vienodas);
- Formuoja ketvirtą vienmatį
masyvą, kurio elementai – tai panariui sudėti nuskaitytų
masyvų elementai;
- Nutraukia sudėties procesą, jei
sutinkamas bent vienas neigiamas elementas (trumpai – sudedami tik
teigiami nariai);
- Suranda pirmojo masyvo maksimalų
elementą ir padaugina jį iš antrojo masyvo elementų, kurie
dalinasi iš 2;
- Visi rezultatai išvedami į ekraną
ir rezultatų failą.
2.
Parašyti programą su objektais, kurių
metodai:
- Iš duomenų failo nuskaito du bet kokio
dydžio dvimačius masyvus ir juos sudaugina (masyvų dydžiai turi
atitikti masyvų daugybos taisyklių reikalavimus);
- Suranda visų masyvų maksimalius
elementus bei jų indeksų numerius;
- Visi rezultatai išvedami į ekraną
ir rezultatų failą.
3.
Parašyti programą su objektais, kurių
metodai:
- Iš duomenų failo nuskaito bet kokio
dydžio matricą ir vektorių ir juos sudaugina. (Iš failo neskaityti
eilučių, prasidedančių simboliu # . Tai
komentarų eilutės.)
- Suskaičiuoja matricos
eilučių sumas bei randa mažiausią sumą.
- Visi rezultatai išvedami į ekraną
ir rezultatų failą
4.
Parašyti programą su objektais, kuri
veiktų kaip adresų knygutė. Visa informacija nuskaitoma ir
įrašoma į failą.Turi būti realizuota:
a.
Adresų knygutės įrašų
peržiūra ekrane;
b.
Paieška pagal vardą (galima ir pagal
adresą ar tel.Nr.)
c.
Adresų knygutės įrašų
papildymas.
5.
Parašyti programą su objektais, kurių
metodai:
- Iš duomenų failo nuskaito dvi bet
kokio dydžio matricas;
- sukeičia pirmosios matricos
viršutinį trikampį su apatiniuoju, o antrąją
matricą transponuoja.
- Sudaugina modifikuotas matricas
(masyvų dydžiai turi atitikti masyvų daugybos taisyklių
reikalavimus);
- Suranda visų masyvų eilučių
vidurkius;
- Visi rezultatai išvedami į ekraną
ir rezultatų failą.
6.
Parašyti programą su objektais, kurių
metodai:
- Iš duomenų failo nuskaitytų
tekstą (tekstas – ne viena eilutė);
- Surastų ilgiausią žodį
- Ilgiausiame žodyje surastų
pasikartojančius simbolius ir suskaičiuotų jų
pasikartojimo skaičių;
- Visi rezultatai išvedami į ekraną
ir rezultatų failą.
7.
Parašyti programą su objektais, kurių
metodai:
- Iš duomenų failo nuskaitytų
tekstą (tekstas – ne viena eilutė);
- Surastų visus žodžius, kurie prasideda
ir baigiasi tuo pačiu simboliu;
- Rasti žodžiai išvedami
abėcėlės tvarka;
- Visi rezultatai išvedami į ekraną
ir rezultatų failą.
8.
Parašyti programą su objektais, kurių
metodai:
- Iš duomenų failo nuskaitytų
tekstą. Tekste visos raidės mažosios (tekstas – ne viena eilutė).
- Pakeistų sakinių pirmąsias
raides į didžiąsias;
- Surastų visame tekste didžiausią
intervalą tarp žodžių.
- Visi rezultatai išvedami į ekraną
ir rezultatų failą.
9.
Parašyti programą su objektais, kurių
metodai:
- Iš duomenų failo nuskaitytų
tekstą (tekstas – ne viena eilutė);
- Pašalintų žodžius, turinčius
nelyginį simbolių skaičių;
- Likę žodžiai išvedami atvirkščia
tvarka (žodžių tvarka nesikeičia, keičiasi simbolių
tvarka žodyje);
- Visi rezultatai išvedami į ekraną
ir rezultatų failą.
10. Parašyti programą su objektais, kurių metodai:
- Iš duomenų failo nuskaitytų
tekstą (tekstas – ne viena eilutė);
- Suskaičiuoti kiek faile yra
eilučių, žodžių, simbolių (tarpų neįtraukti
į šią sumą) ir kiek tarpo simbolių;
- Rastus skaičius sudėti (tekste
turi būti skaičių);
- Visi rezultatai išvedami į ekraną
ir rezultatų failą.
11. Parašyti programą su objektais, kurių metodai:
- Iš duomenų failo nuskaitoma matrica. Suprogramuoti
nuskaitymo iš failo variantą, kai duomenų failo pavadinimas yra
programos argumentas
(pvz. >program.exe
duom.txt ). Jei duomenų failas nenurodomas, tuomet jo pavadinimas
įvedamas interaktyviai;
- Suskaičiuoti matricos
determinantą;
- Visi rezultatai išvedami į ekraną
ir rezultatų failą
12. Parašyti programą su objektais ir perkrautais operatoriais.
- Iš duomenų failo nuskaitoma dvi
matricos. Realizuoti nuskaitymo iš failo variantą, kai komandinėje
eilutėje nurodomas duomenų failas kaip pirmas programos
argumentas. (pvz. >program.exe duom.txt ). Jei duomenų
failas nenurodomas, tuomet jo pavadinimas įvedamas interaktyviai
- Realizuojamas operatorių perkrovimas
sudedant (+), atimant (-) ir dauginant (*) dvi matricas.
- Visi rezultatai išvedami į ekraną
ir rezultatų failą.
13. Parašyti programą su objektais ir perkrautais operatoriais laiko
skaičiavimui. Laikas užduodamas formatu: valanda.minutė.sekundė.
Realizuoti tokius metodus, įvertinant, kad valandų skaičius
negali būti didesnis nei 24, o val. ir sek. ne didesnis nei 60.
- Iš duomenų failo nuskaitomi laikai
(jų turi būti keletas – bet koks skaičius)
- Realizuojamas operatorių perkrovimas sudedant
(+), atimant (-) laikus. Šių operacijų rezultatai turi
būti pateikti atskirai sekundėmis, minutėmis ir
valandomis.
- Visi rezultatai išvedami į ekraną
ir rezultatų failą.
14. Parašyti programą su objektais ir realizuoti klasių paveldimumo
savybes. Situacija: vandenynas su jame plaukiojančiomis žuvimis.
Vandenynas – tai bazinis objektas, žuvys, paveldimas objektas.
a.
Vandenyno objektas turi tokius duomenis:
koordinates (laikome, kad tai kubas su tam tikromis viršūnių
koordinatėmis) bei tėkmę (greitį ir kryptį pasirenkate
patys)
b.
Žuvų objektas turi koordinates (laikyti, kad
tai taško koordinates) ir plaukimo greitį ir kryptį.
c.
Apskaičiuoti žuvų koordinates tam tikrais
laiko momentais (pvz. Po 1,2,3 sekundžių), kai pakinta vandenyno tėkmės
greitis ar kryptis.
d. Visi rezultatai
išvedami į ekraną ir rezultatų failą.
15. Parašyti programą su objektais ir realizuoti klasių paveldimumo
savybes. Situacija: žmogus (paveldimas objektas) ir aplinka (bazinis objektas).
a.
Aplinkos duomenys: oras(oro temperatūra,
vėjo stiprumas, lyja ar ne, šviečia saulė ar ne ir t.t.), kolektyvas
(pykstasi, skuba, nespėja, draugiškas ir t.t.)
b.
Žmogaus duomenys: savijauta ir nuotaika(serga,
šiaip sau, gera, puiki).
c.
Sumodeliuoti įvairias aplinkos situacijas ir
pasižiūrėti, kaip kinta žmogaus savijauta.
d. Visi rezultatai išvedami į ekraną
ir rezultatų failą.
16. Parašyti programą su objektais ir realizuoti klasių paveldimumo
savybes. Situacija: universitetas, bendrabučio aplinka ir studentai.
- Universitetas: laikas (semestras, sesija,
atostogos), savarankiški darbai ir t.t.
- Bendrabutis: kambarys (vienvietis,
dvivietis, trivietis), kaimynai (tylus, triukšmingi) kiti duomenys.
- Aprašyti studento elgesį semestro
metu, sesijos metu. Visur įvertinti bendrabučio aplinkos
įtaką.
- Visi rezultatai išvedami į ekraną
ir rezultatų failą.
17. Parašyti programą su objektais ir realizuoti paveldimumo savybes. Situacija: klimatas (bazinis objektas), medžiai (išvestinis objektas).
- Klimatas: oro temperatūra, vėjo
greitis, drėgmė ir t.t.
- Medžiai: aukštis, kamieno storis, augimo greitis.
- Aprašyti medžio būsena, esant
skirtingoms klimatinėms sąlygoms, kiek jis užaugs per metus,
kada jis nulūš (esant tam tikram vėjo greičiui).
- Visi rezultatai išvedami į ekraną
ir rezultatų failą.
18. Parašyti programą su objektais, kurių metodai:
- Iš duomenų failo nuskaito
matricą.
- Transponuoja matricą ir sukeičia
matricos įstrižaines;
- Interaktyviai (iš klaviatūros)
nuskaitomas daugiklis, iš kurio padauginami visi matricos elementai.
- Randamas didžiausias matricos elementas ir
jo indekso numeriai.
- Apskaičiuojamas programos vykdymo
laikas (panagrinėti time.h )
- Visi rezultatai išvedami į ekraną
ir rezultatų failą.
19. Parašyti programą su objektais, kurių metoduose:
- Tekstas nuskaitomas iš duomenų failo
(tekstas – ne viena eilutė).
- Suskaičiuojama, kiek faile yra žodžių,
eilučių;
- Surandamas nurodytas žodis faile ir
išvedamas jo eilutės numeris ir pozicija eilutėje;
- Visi rezultatai išvedami į ekraną
ir rezultatų failą.
20. Parašyti programą su objektais, kurių metodai:
- Duomenų faile ieško užsiduoto žodžio
ir išveda eilutę, kurioje
rastas tas žodis.
- Kopijuoja duomenų failą,
išmesdamas tarpus tarp žodžių.
- Apskaičiuojamas programos vykdymo
laikas (panagrinėti time.h )
- Visi rezultatai išvedami į ekraną
ir rezultatų failą.
21. Parašyti programą su objektais, kurioje būtų saugomi studentų
sesijos rezultatai (pažymiai). Visa informacija nuskaitoma ir įrašoma
į failą.Turi būti realizuota:
a.
Egzamino pažymių įvedimas;
b.
Rezultatų peržiūra ekrane;
c.
Paieška pagal vardą ar pavardę;
22. Parašyti programą su objektais ir perkrautomis funkcijomis.
- Iš duomenų failo nuskaitoma dvi
matricos. Realizuoti nuskaitymo iš failo variantą, kai
komandinėje eilutėje nurodomas duomenų failas kaip pirmas
programos argumentas. (pvz. >program.exe duom.txt ). Jei
duomenų failas nenurodomas, tuomet jo pavadinimas įvedamas
interaktyviai
- Realizuojamas perkrautas funkcijas sudedant
matricas ir pasirinktus matricos elementus; atimant matricas ir
pasirinktus matricos elementus; dauginant dvi matricas ir pasirinktus
matricos elementus.
- Visi rezultatai išvedami į ekraną
ir rezultatų failą
23. Parašyti programą su objektais, kurioje būtų saugomi
studentų sesijos rezultatai (pažymiai). Visa informacija nuskaitoma ir
įrašoma į failą. Turi būti realizuota:
a.
Egzamino pažymių įvedimas;
b.
Rezultatų peržiūra ekrane;
c.
Išvedami tik pažangūs studentai (pažymys >
4) ir jų pažymiai.
d.
Suskaičiuota: kiek studentų
neišlaikė, kiekvieno studento egzaminų vidurkiai;
24. Programa skirta automobilių techninių charakteristikų
sąrašo sudarymui ir paieškai. Visa informacija nuskaitoma ir įrašoma
į failą. Parašyti programą su objektais, kuri:
- Leistų įvedinėti
automobilius ir jų charakteristikas;
- Išvestų į ekraną visą
sąrašą;
- Surastų greičiausią ir
lėčiausią automobilį;
- Surastų automobilį pagal
markę ar modelį.
25. Parašyti programą su objektais, kurių metodai:
- Iš duomenų failo nuskaitytų
tekstą (ne viena eilutė). Suprogramuoti nuskaitymo iš failo
variantą, kai komandinėje eilutėje nurodomas duomenų
failas kaip pirmas programos argumentas (pvz. >program.exe
duom.txt ). Jei duomenų failas nenurodomas, tuomet jo pavadinimas
įvedamas interaktyviai;
- Tekste išrinkti visus raides – balses ir
išvesti tekstą kuriame nebūtų balsių.
Suskaičiuoti kiekvieną balsę atskirai;
- Visi rezultatai išvedami į ekraną
ir rezultatų failą
26. Programa skirta žmonių sąrašo sudarymui ir paieškai. Visa informacija
nuskaitoma ir įrašoma į failą. Parašyti programą su
objektais, kuri:
- Leistų įvedinėti žmogaus
duomenis (vardą, pavardę, lytį, ūgį,
svorį);
- Atliktų paiešką pagal vardą
ar pavardę;
- Suskaičiuotų vidutinį
moterų ūgį;
- Surastų patį
aukščiausią vyrą.
27. Parašyti programą su objektais, kurių metodai:
- Iš duomenų failo nuskaitytų bet
kokios C++ programos tekstą, kuriame yra komentarų.
- Sukurtų naują failą, kuriame
būtų tas pats C++ programos tekstas tik jau be komentarų. Panaikintų
visus komentarus. Tekste išrinkti visus raides – balses ir išvesti
tekstą kuriame nebūtų balsių. Suskaičiuoti
kiekvieną balsę atskirai;
- Visi rezultatai išvedami į ekraną
ir rezultatų failą.
28. Parašyti programą su objektais, kurių metodai:
- Iš duomenų failo nuskaitytų
tekstą (ne viena eilutė). Suprogramuoti nuskaitymo iš failo,
kai komandinėje eilutėje nurodomas duomenų failas kaip
pirmas programos argumentas. Antras argumentas tai skaičius N.(pvz.
>program.exe duom.txt 5 ).
- Išvedai duomenų failo paskutines N
eilučių.
- Išveda tik tas eilutes, kurios prasideda ir
baigiasi tuo pačiu simboliu.
- rezultatai išvedami į ekraną ir
rezultatų failą.
29. Programa skirta sandėlio prekių sąrašo sudarymui ir
paieškai. Visa informacija nuskaitoma ir įrašoma į failą.
Parašyti programą su objektais, kuri:
- Leistų įvedinėti prekės
duomenis (kodas, pavadinimas, kiekis, kaina);
- Atliktų paiešką pagal kodą
ar pavadinimą;
- Suskaičiuotų kokia visų
sandėlio prekių vertė;
- Surastų pačią
brangiausią ir pigiausią prekę sandėlyje.
30. Programa skirta CD sąrašo sudarymui ir paieškai. Visa informacija
nuskaitoma ir įrašoma į failą. Parašyti programą su
objektais, kuri:
- Leistų įvedinėti CD duomenis
(kodas, grupės pavadinimas, albumo pavadinimas, metai);
- Atliktų paiešką pagal kodą
ar grupės pavadinimą;
- Surastų patį naujausią ir
seniausią CD
31. Parašyti programą su objektais, kurių metodai:
- Iš duomenų failo nuskaito bet kokio
dydžio matricą (dvimatis masyvas);
- Suranda elementą, kurio modulis
minimalus ir juo pakeičia visus neigiamus masyvo elementus. Išveda pakeistų
elementų indeksus.
- Suskaičiuoja modifikuoto masyvo
eilučių vidurkius ir jų sumą.
- Visi rezultatai išvedami į
ekraną ir rezultatų failą.