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

 

  1. Parašyti programą su objektais, kurių metodai:
    1. Iš duomenų failo nuskaito bet kokio dydžio tris vienmačius masyvus (visų trijų masyvų dydis vienodas);
    2. Formuoja ketvirtą vienmatį masyvą, kurio elementai – tai panariui sudėti nuskaitytų masyvų elementai;
    3. Nutraukia sudėties procesą, jei sutinkamas bent vienas neigiamas elementas (trumpai – sudedami tik teigiami nariai);
    4. Suranda pirmojo masyvo maksimalų elementą ir padaugina jį iš antrojo masyvo elementų, kurie dalinasi iš 2;
    5. Visi rezultatai išvedami į ekraną ir  rezultatų failą.

2.      Parašyti programą su objektais, kurių metodai:

    1. Iš duomenų failo nuskaito du bet kokio dydžio dvimačius masyvus ir juos sudaugina (masyvų dydžiai turi atitikti masyvų daugybos taisyklių reikalavimus);
    2. Suranda visų masyvų maksimalius elementus bei jų indeksų numerius;
    3. Visi rezultatai išvedami į ekraną ir rezultatų failą.

3.      Parašyti programą su objektais, kurių metodai:

    1. 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.)
    2. Suskaičiuoja matricos eilučių sumas bei randa mažiausią sumą.
    3. 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:

    1. Iš duomenų failo nuskaito dvi bet kokio dydžio matricas;
    2. sukeičia pirmosios matricos viršutinį trikampį su apatiniuoju, o antrąją matricą transponuoja.
    3. Sudaugina modifikuotas matricas (masyvų dydžiai turi atitikti masyvų daugybos taisyklių reikalavimus);
    4. Suranda visų masyvų eilučių vidurkius;
    5. Visi rezultatai išvedami į ekraną ir rezultatų failą.

6.      Parašyti programą su objektais, kurių metodai:

    1. Iš duomenų failo nuskaitytų tekstą (tekstas – ne viena eilutė);
    2. Surastų ilgiausią žodį
    3. Ilgiausiame žodyje surastų pasikartojančius simbolius ir suskaičiuotų jų pasikartojimo skaičių;
    4. Visi rezultatai išvedami į ekraną ir rezultatų failą.

7.      Parašyti programą su objektais, kurių metodai:

    1. Iš duomenų failo nuskaitytų tekstą (tekstas – ne viena eilutė);
    2. Surastų visus žodžius, kurie prasideda ir baigiasi tuo pačiu simboliu;
    3. Rasti žodžiai išvedami abėcėlės tvarka;
    4. Visi rezultatai išvedami į ekraną ir rezultatų failą.

8.      Parašyti programą su objektais, kurių metodai:

    1. Iš duomenų failo nuskaitytų tekstą. Tekste visos raidės mažosios (tekstas – ne viena eilutė).
    2. Pakeistų sakinių pirmąsias raides į didžiąsias;
    3. Surastų visame tekste didžiausią intervalą tarp žodžių.
    4. Visi rezultatai išvedami į ekraną ir rezultatų failą.

9.      Parašyti programą su objektais, kurių metodai:

    1. Iš duomenų failo nuskaitytų tekstą (tekstas – ne viena eilutė);
    2. Pašalintų žodžius, turinčius nelyginį simbolių skaičių;
    3. Likę žodžiai išvedami atvirkščia tvarka (žodžių tvarka nesikeičia, keičiasi simbolių tvarka žodyje);
    4. Visi rezultatai išvedami į ekraną ir rezultatų failą.

10.  Parašyti programą su objektais, kurių metodai:

    1. Iš duomenų failo nuskaitytų tekstą (tekstas – ne viena eilutė);
    2. Suskaičiuoti kiek faile yra eilučių, žodžių, simbolių (tarpų neįtraukti į šią sumą) ir kiek tarpo simbolių;
    3. Rastus skaičius sudėti (tekste turi būti skaičių);
    4. Visi rezultatai išvedami į ekraną ir rezultatų failą.

11.  Parašyti programą su objektais, kurių metodai:

    1. 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;

    1. Suskaičiuoti matricos determinantą;
    2. Visi rezultatai išvedami į ekraną ir rezultatų failą

12.  Parašyti programą su objektais ir perkrautais operatoriais.

    1. 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
    2. Realizuojamas operatorių perkrovimas sudedant (+), atimant (-) ir dauginant (*) dvi matricas.
    3. 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.

    1. Iš duomenų failo nuskaitomi laikai (jų turi būti keletas – bet koks skaičius)
    2. Realizuojamas operatorių perkrovimas sudedant (+), atimant (-) laikus. Šių operacijų rezultatai turi būti pateikti atskirai sekundėmis, minutėmis ir valandomis.
    3. 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.

    1. Universitetas: laikas (semestras, sesija, atostogos), savarankiški darbai ir t.t.
    2. Bendrabutis: kambarys (vienvietis, dvivietis, trivietis), kaimynai (tylus, triukšmingi) kiti duomenys.
    3. Aprašyti studento elgesį semestro metu, sesijos metu. Visur įvertinti bendrabučio aplinkos įtaką.
    4. 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).

    1. Klimatas: oro temperatūra, vėjo greitis, drėgmė ir t.t.
    2. Medžiai: aukštis, kamieno storis, augimo greitis.
    3. 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).
    4. Visi rezultatai išvedami į ekraną ir rezultatų failą.

18.  Parašyti programą su objektais, kurių metodai:

    1. Iš duomenų failo nuskaito matricą.
    2. Transponuoja matricą ir sukeičia matricos įstrižaines;
    3. Interaktyviai (iš klaviatūros) nuskaitomas daugiklis, iš kurio padauginami visi matricos elementai.
    4. Randamas didžiausias matricos elementas ir jo indekso numeriai.
    5. Apskaičiuojamas programos vykdymo laikas (panagrinėti time.h )
    6. Visi rezultatai išvedami į ekraną ir rezultatų failą.

19.  Parašyti programą su objektais, kurių metoduose:

    1. Tekstas nuskaitomas iš duomenų failo (tekstas – ne viena eilutė).
    2. Suskaičiuojama, kiek faile yra žodžių, eilučių;
    3. Surandamas nurodytas žodis faile ir išvedamas jo eilutės numeris ir pozicija eilutėje;
    4. Visi rezultatai išvedami į ekraną ir rezultatų failą.

20.  Parašyti programą su objektais, kurių metodai:

    1. Duomenų faile ieško užsiduoto žodžio ir išveda eilutę, kurioje rastas tas žodis.
    2. Kopijuoja duomenų failą, išmesdamas tarpus tarp žodžių.
    3. Apskaičiuojamas programos vykdymo laikas (panagrinėti time.h )
    4. 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.

    1. 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
    2. Realizuojamas perkrautas funkcijas sudedant matricas ir pasirinktus matricos elementus; atimant matricas ir pasirinktus matricos elementus; dauginant dvi matricas ir pasirinktus matricos elementus.
    3. 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:

    1. Leistų įvedinėti automobilius ir jų charakteristikas;
    2. Išvestų į ekraną visą sąrašą;
    3. Surastų greičiausią ir lėčiausią automobilį;
    4. Surastų automobilį pagal markę ar modelį.

25.  Parašyti programą su objektais, kurių metodai:

    1. 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;
    2. Tekste išrinkti visus raides – balses ir išvesti tekstą kuriame nebūtų balsių. Suskaičiuoti kiekvieną balsę atskirai;
    3. 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:

    1. Leistų įvedinėti žmogaus duomenis (vardą, pavardę, lytį, ūgį, svorį);
    2. Atliktų paiešką pagal vardą ar pavardę;
    3. Suskaičiuotų vidutinį moterų ūgį;
    4. Surastų patį aukščiausią vyrą.

27.  Parašyti programą su objektais, kurių metodai:

    1. Iš duomenų failo nuskaitytų bet kokios C++ programos tekstą, kuriame yra komentarų.
    2. 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;
    3. Visi rezultatai išvedami į ekraną ir rezultatų failą.

28.  Parašyti programą su objektais, kurių metodai:

    1. 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 ).
    2. Išvedai duomenų failo paskutines N eilučių.
    3. Išveda tik tas eilutes, kurios prasideda ir baigiasi tuo pačiu simboliu.
    4. 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:

    1. Leistų įvedinėti prekės duomenis (kodas, pavadinimas, kiekis, kaina);
    2. Atliktų paiešką pagal kodą ar pavadinimą;
    3. Suskaičiuotų kokia visų sandėlio prekių vertė;
    4. 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:

    1. Leistų įvedinėti CD duomenis (kodas, grupės pavadinimas, albumo pavadinimas, metai);
    2. Atliktų paiešką pagal kodą ar grupės pavadinimą;
    3. Surastų patį naujausią ir seniausią CD

31.  Parašyti programą su objektais, kurių metodai:

    1. Iš duomenų failo nuskaito bet kokio dydžio matricą (dvimatis masyvas);
    2. Suranda elementą, kurio modulis minimalus ir juo pakeičia visus neigiamus masyvo elementus. Išveda pakeistų elementų indeksus.
    3. Suskaičiuoja modifikuoto masyvo eilučių vidurkius ir jų sumą.
    4.  Visi rezultatai išvedami į ekraną ir  rezultatų failą.