1 / 20

Programovacie techniky v C++

Programovacie techniky v C++. Letný semester 200 8 /0 9. Skúška 29 .5.2009. Ing. František Gyárfáš, PhD. Katedra aplikovanej informatiky. gyarfas@ii.fmph.uniba.sk http://www.ii.fmph.uniba.sk/~gyarfas/. Úloha 1.

lakia
Download Presentation

Programovacie techniky v C++

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Programovacie techniky v C++ Letný semester 2008/09 Skúška 29.5.2009 Ing. František Gyárfáš, PhD. Katedra aplikovanej informatiky gyarfas@ii.fmph.uniba.sk http://www.ii.fmph.uniba.sk/~gyarfas/

  2. Úloha 1. Vytvorte triedu Slovnik, ktorá bude v sebe udržovať anglicko-slovenský slovník. Slovník bude obsahovať zoznam anglických slovíčok spolu so zoznamom ich slovenských ekvivalentov. Každé anglické slovíčko môže mať jeden a viac slovenských ekvivalentov. class Slovnik Pre jednoduchosť nepoužite slovenské znaky, ani veľké písmená .

  3. Úloha 1. Trieda Slovnik bude mať jeden prázdny konštruktor. Do tejto triedy vytvorte metódu na vkladanie slov bool vlozSlovo(const char *vstup); ktorá načíta jeden riadok v tvare: <anglickeSlovo>=<slovSlovo>,<slovSlovo>, … Napr. glass=pohar,poharik,napoj V prípade, že anglické slovo je už v slovníku, metóda skontroluje, či sú už zadané slovenské ekvivalenty tiež v slovníku. Ak je niektorý ekvivalent nový, pridá sa do slovníku. Ak vstupný reťazec neobsahuje text na oboch stranách ‘=‘, metóda vlozSlovo vráti false, inak vráti true. Ďalej vytvorte tieto metódy: int pocetSlov();//počet anglických slov v slovníku

  4. Úloha 1. #include <iostream> #include <fstream> #include <sstream> #include <vector> #include <set> using namespace std; #include "eval.h" #include "skuska290509.h" int main(){ bool result = true; Slovnik slovnik; result &= testEqual(0, slovnik.pocetSlov(), "Pocet slov"); slovnik.vlozSlovo("play=hra,divadlo,volny pohyb"); slovnik.vlozSlovo("playmate=spoluhrac,kamarat"); result &= testEqual(2, slovnik.pocetSlov(), "Pocet slov"); result &= testFalse(slovnik.vlozSlovo("true"), "Zly vstup"); slovnik.vlozSlovo("play=vola,tetelenie"); result &= testEqual(2, slovnik.pocetSlov(), "Pocet slov"); if(result) cout << endl << "All tests - OK"; else cout << endl << "All tests - FAILED"; getchar(); } #include <iostream> #include <string> using namespace std; #include "eval.h" #include "cvicenie6.h" int main(){ bool result = true; VELKE_CISLO a("0087264530"); VELKE_CISLO b("0003189787780012321312123123123213123232300"); VELKE_CISLO c("001eew9"), d("-1"), e; result &= testEqual("87264530", a.hodnota(), "Test hodnoty"); result &= testEqual("3189787780012321312123123123213123232300", b.hodnota(), "Test hodnoty"); result &= testEqual(c.hodnota(), d.hodnota(), "Test nespravneho vstupu"); result &= testEqual("0", e.hodnota(), "Test prazdnej hodnoty"); if(result) cout << endl << "All tests - OK"; else cout << endl << "All tests - FAILED"; getchar(); }

  5. Výsledok 1.

  6. Úloha 2. Do triedy Slovnik vložte tieto metódy: string vratPreklad(string anglickeSlovo); //vráti zoznam //slovenských ekvivalentov //oddelených čiarkou //v poradí, v akom boli zadané bool skontrolujPreklad(string angl, string slov); //vracia true, ak slovenské slovo je prekladom //anglického //Vracia false, ak slovo nie je v slovniku, //alebo preklad nie je spravny

  7. Úloha 2. int main() { . . . result &= testTrue(slovnik.skontrolujPreklad("play", "tetelenie"), "kontrola"); result &= testEqual("hra,divadlo,volny pohyb,vola,tetelenie", slovnik.vratPreklad("play"), "preklad"); result &= testTrue(slovnik.skontrolujPreklad("play", "volny pohyb"), "kontrola"); result &= testTrue(slovnik.skontrolujPreklad("playmate", "spoluhrac"), "kontrola"); result &= testFalse(slovnik.skontrolujPreklad("play", ""), "kontrola"); result &= testFalse(slovnik.skontrolujPreklad("", ""), "kontrola"); result &= testFalse(slovnik.skontrolujPreklad("girl", "dievca"), "kontrola"); if(result) cout << endl << "All tests - OK"; else cout << endl << "All tests - FAILED"; getchar(); } #include <iostream> #include <string> using namespace std; #include "eval.h" #include "cvicenie6.h" int main(){ bool result = true; VELKE_CISLO a("0087264530"); VELKE_CISLO b("0003189787780012321312123123123213123232300"); VELKE_CISLO c("001eew9"), d("-1"), e; result &= testEqual("87264530", a.hodnota(), "Test hodnoty"); result &= testEqual("3189787780012321312123123123213123232300", b.hodnota(), "Test hodnoty"); result &= testEqual(c.hodnota(), d.hodnota(), "Test nespravneho vstupu"); result &= testEqual("0", e.hodnota(), "Test prazdnej hodnoty"); if(result) cout << endl << "All tests - OK"; else cout << endl << "All tests - FAILED"; getchar(); }

  8. Výsledok 2.

  9. Úloha 3. Pre triedu Slovnik vytvorte metódu: bool nacitajZoSuboru(string menoSuboru); //načíta slovník zo súboru. //Vráti false, ak načítanie zlyhá. Vytvorte dva súbory: slovnik.txt slovnik2.txt love=laska and=a fine=pokuta,poplatok,odstupne duel=suboj,spor purpose=zmysel,ucel,ciel play=volnost,hra lees=usadenina,kal,kvasnica glass=sklo,pohar glamour=kuzlo,povab tea=caj,cajovnik reason=dovod,zmysel glass=pohar,poharik,napoj tea=vyvar,olovrant yes=ano no=nie Načítajte oba súbory do triedy Slovnik .

  10. Úloha 3. int main() { . . . slovnik.nacitajZoSuboru("slovnik.txt"); result &= testEqual(12, slovnik.pocetSlov(), "pocet hesiel"); result &= testEqual("laska", slovnik.vratPreklad("love"), "preklad"); result &= testEqual("pokuta,poplatok,odstupne", slovnik.vratPreklad("fine"), "preklad"); result &= testEqual("hra,divadlo,volny pohyb,vola,tetelenie,volnost", slovnik.vratPreklad("play"), "preklad"); result &= testTrue(slovnik.skontrolujPreklad("fine", "poplatok"), "fine,poplatok"); result &= testFalse(slovnik.skontrolujPreklad("glass", "napoj"), "glass,napoj"); slovnik.nacitajZoSuboru("slovnik2.txt"); result &= testEqual("sklo,pohar,poharik,napoj", slovnik.vratPreklad("glass"), "preklad"); result &= testTrue(slovnik.skontrolujPreklad("glass", "napoj"), "glass,pohar"); result &= testEqual(14, slovnik.pocetSlov(), "pocet hesiel"); if(result) cout << endl << "All tests - OK"; else cout << endl << "All tests - FAILED"; getchar(); }

  11. Výsledok 3.

  12. Úloha 4. Pre triedu Slovnik vytvorte metódu: void načitajOpačnySlovnik(Slovnik &s);//Vytvorí //z existujúceho slovníka opačný slovník. //Z anglicko-slovenského slovníku //slovensko-anglický a naopak.

  13. Úloha 4. int main() { . . . Slovnik opacnySlovnik; opacnySlovnik.nacitajOpacnySlovnik(slovnik); result &= testEqual(34, opacnySlovnik.pocetSlov(), "pocet hesiel"); result &= testTrue(opacnySlovnik.skontrolujPreklad("poharik", "glass"), "poharik=glass"); result &= testEqual("purpose,reason", opacnySlovnik.vratPreklad("zmysel"), "preklad"); result &= testEqual("play", opacnySlovnik.vratPreklad("tetelenie"), "preklad"); result &= testTrue(slovnik.skontrolujPreklad("play", "tetelenie"), "play=tetelenie"); if(result) cout << endl << "All tests - OK"; else cout << endl << "All tests - FAILED"; getchar(); }

  14. Výsledok 4.

  15. Úloha 5. Pre triedu Slovnik vytvorte metódu: string usporiadanyZoznamSlov(); //Metóda vypíše všetky slová v slovníku //usporiadané podľa abecedy a oddelené čiarkou Pomôcka: Pre túto metódu môžete využiť kontajner set<string>.

  16. Úloha 5. int main() { . . . result &= testEqual("and,duel,fine,glamour,glass,lees,love,no,play,playmate,purpose,reason,tea,yes", slovnik.usporiadanyZoznamSlov(), "zoznam slov"); result &= testNonEqual("and", slovnik.usporiadanyZoznamSlov(), "zoznam slov"); if(result) cout << endl << "All tests - OK"; else cout << endl << "All tests - FAILED"; getchar(); }

  17. Výsledok 5.

  18. Všetky testy int main(){ bool result = true; Slovnik slovnik; result &= testEqual(0, slovnik.pocetSlov(), "Pocet slov"); slovnik.vlozSlovo("play=hra,divadlo,volny pohyb"); slovnik.vlozSlovo("playmate=spoluhrac,kamarat"); result &= testEqual(2, slovnik.pocetSlov(), "Pocet slov"); result &= testFalse(slovnik.vlozSlovo("true"), "Zly vstup"); slovnik.vlozSlovo("play=vola,tetelenie"); result &= testEqual(2, slovnik.pocetSlov(), "Pocet slov"); result &= testTrue(slovnik.skontrolujPreklad("play", "tetelenie"), "kontrola"); result &= testEqual("hra,divadlo,volny pohyb,vola,tetelenie", slovnik.vratPreklad("play"), "preklad"); result &= testTrue(slovnik.skontrolujPreklad("play", "volny pohyb"), "kontrola"); result &= testTrue(slovnik.skontrolujPreklad("playmate", "spoluhrac"), "kontrola"); result &= testFalse(slovnik.skontrolujPreklad("play", ""), "kontrola"); result &= testFalse(slovnik.skontrolujPreklad("", ""), "kontrola"); result &= testFalse(slovnik.skontrolujPreklad("girl", "dievca"), "kontrola"); . . .

  19. Všetky testy . . . slovnik.nacitajZoSuboru("slovnik.txt"); result &= testEqual(12, slovnik.pocetSlov(), "pocet hesiel"); result &= testEqual("laska", slovnik.vratPreklad("love"), "preklad"); result &= testEqual("pokuta,poplatok,odstupne", slovnik.vratPreklad("fine"), "preklad"); result &= testEqual("hra,divadlo,volny pohyb,vola,tetelenie,volnost", slovnik.vratPreklad("play"), "preklad"); result &= testTrue(slovnik.skontrolujPreklad("fine", "poplatok"), "fine,poplatok"); result &= testFalse(slovnik.skontrolujPreklad("glass", "napoj"), "glass,napoj"); slovnik.nacitajZoSuboru("slovnik2.txt"); result &= testEqual("sklo,pohar,poharik,napoj", slovnik.vratPreklad("glass"), "preklad"); result &= testTrue(slovnik.skontrolujPreklad("glass", "napoj"), "glass,pohar"); result &= testEqual(14, slovnik.pocetSlov(), "pocet hesiel"); Slovnik opacnySlovnik; opacnySlovnik.nacitajOpacnySlovnik(slovnik); result &= testEqual(34, opacnySlovnik.pocetSlov(), "pocet hesiel"); result &= testTrue(opacnySlovnik.skontrolujPreklad("poharik", "glass"), "poharik=glass"); result &= testEqual("purpose,reason", opacnySlovnik.vratPreklad("zmysel"), "preklad"); result &= testEqual("play", opacnySlovnik.vratPreklad("tetelenie"), "preklad"); result &= testTrue(slovnik.skontrolujPreklad("play", "tetelenie"), "play=tetelenie"); result &= testEqual("and,duel,fine,glamour,glass,lees,love,no,play,playmate,purpose,reason,tea,yes", slovnik.usporiadanyZoznamSlov(), "zoznam slov"); result &= testNonEqual("and", slovnik.usporiadanyZoznamSlov(), "zoznam slov"); if(result) cout << endl << "All tests - OK"; else cout << endl << "All tests - FAILED"; getchar(); }

  20. Výsledok

More Related