Advertisement
Jacobs7

Lab6

Dec 6th, 2022
150
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 7.90 KB | None | 0 0
  1. ///////////////////////zad1
  2. #include <iostream>
  3. #include <exception>
  4. #include <cmath>
  5.  
  6. using namespace std;
  7.  
  8. class funkcjaKwadratowa {
  9. private:
  10.     int a,b,c;
  11. public:
  12.  
  13.     int delta() {
  14.         return b*b-4*a*c;
  15.     }
  16.  
  17.     void podajDane() {
  18.         cout<<"Podaj a: ";
  19.         cin>>a;
  20.         cout<<"Podaj b: ";
  21.         cin>>b;
  22.         cout<<"Podaj c: ";
  23.         cin>>c;
  24.     }
  25.  
  26.     void wyswietlPierwiastki() {
  27.         try {
  28.             if(delta()<0) throw "Delta ujemna. Brak rozwiazania (Pierwiastek z liczby ujemnej)\n";
  29.             if(a==0) throw "a=0 - Dzielenie przez zero\n";
  30.  
  31.             double x1, x2;
  32.             x1=(-b-sqrt(delta()))/(2*a);
  33.             x2=(-b+sqrt(delta()))/(2*a);
  34.             if(x1==x2) cout<<"Funkcja ma jedno rozwiazanie: x1="<<x1<<endl;
  35.             else cout<<"Funkcja ma dwa rozwiazania: " <<"x1=" <<x1<<", x2=" <<x2<<endl;
  36.         }
  37.         catch (const char *s) {
  38.             cout<<"Wyjatek!" <<s<<endl;
  39.         }
  40.     }
  41. };
  42.  
  43. int main() {
  44.     funkcjaKwadratowa funkcja;
  45.     funkcja.podajDane();
  46.     funkcja.wyswietlPierwiastki();
  47.     return 0;
  48. }
  49.  
  50.  
  51. //////////////////////////////////zad2
  52. #include <iostream>
  53. #include <exception>
  54. #include <cmath>
  55.  
  56. using namespace std;
  57.  
  58. class DzielZero:public exception {
  59.     virtual const char* what() const throw() {
  60.         return "Nie dziel przez zero - w mianowniku jest 0";
  61.     }
  62. };
  63.  
  64. class Pierwiastek:public exception {
  65.     virtual const char* what() const throw() {
  66.         return "Liczba ujemna pod pierwiastkiem";
  67.     }
  68. };
  69.  
  70. int main() {
  71.     int a,b;
  72.     Pierwiastek pierwiastek;
  73.     DzielZero dzielenie;
  74.  
  75.     cout<<"Podaj A: ";
  76.     cin>>a;
  77.     cout<<"Podaj B: ";
  78.     cin>>b;
  79.  
  80.     try {
  81.         if(a<0) throw pierwiastek;
  82.         if(b==0) throw dzielenie;
  83.  
  84.         cout<<"Wynik to: "<<sqrt(a)/b<<endl;
  85.     }
  86.     catch (exception &e) {
  87.         cout<<"Wyjatek - "<<e.what()<<endl;
  88.     }
  89.  
  90.     return 0;
  91. }
  92.  
  93.  
  94.  
  95.  
  96.  
  97. ///////////////////////////////////////////zad3
  98. #include <iostream>
  99. #include <list>
  100.  
  101. using namespace std;
  102.  
  103. class pustyStos: public exception {
  104.     virtual const char* what() const throw() {
  105.         return "Stos jest pusty!!!!\n";
  106.     }
  107. };
  108.  
  109. class usunElement: public exception {
  110.     virtual const char* what() const throw() {
  111.         return "Stos pusty - nie ma czego usunac\n";
  112.     }
  113. };
  114.  
  115.  
  116. class numerOperacji: public exception {
  117.     virtual const char* what() const throw() {
  118.         return "Wybrales zly numer operacji\n";
  119.     }
  120. };
  121.  
  122. class Stos {
  123.     private:
  124.         list<int> lista;
  125.         int element;
  126.     public:
  127.         void dodaj() {
  128.             try {
  129.                 cout << "Podaj nowy element ";
  130.                 cin >> element;
  131.                 lista.push_back(element);
  132.             }
  133.              catch(exception &e) {
  134.                 cout<<"\nWyjatek - " <<e.what();
  135.             }
  136.         }
  137.  
  138.         void usun() {
  139.             usunElement usun;
  140.             try {
  141.                 if(lista.empty()) throw usun;
  142.                 lista.pop_back();
  143.                 cout << "Pomyslnie usunieto element ze szczytu stosu! " << endl;
  144.             }
  145.             catch(exception &e) {
  146.                 cout<<"\nWyjatek - " <<e.what();
  147.             }
  148.         }
  149.  
  150.         void wyswietl() {
  151.             pustyStos pusty;
  152.             try{
  153.                 if(lista.empty()) throw pusty;
  154.                 list<int>::reverse_iterator it;
  155.                 for(it = lista.rbegin(); it!=lista.rend(); ++it) {
  156.                 cout << *it << endl;
  157.                 }
  158.             }
  159.             catch(exception &e) {
  160.                 cout<<"\nWyjatek - " <<e.what();
  161.             }
  162.         }
  163. };
  164. int main()
  165. {
  166.     Stos obiekt;
  167.     numerOperacji operacja;
  168.     bool petla = true;
  169.     int wybor;
  170.     while(petla) {
  171.         try {
  172.             cout << endl<<"Wybierz jedna z ponizszych opcji "<<endl;
  173.             cout << "1. Dodaj element na stos " << endl;
  174.             cout << "2. Usun element ze stosu " << endl;
  175.             cout << "3. Wyswietl elementy stosu " << endl;
  176.             cout << "4. Zakoncz program " << endl;
  177.             cout<<"Numer operacji: ";
  178.             cin>>wybor;
  179.             switch(wybor) {
  180.                 case 1:
  181.                     obiekt.dodaj();
  182.                 break;
  183.                 case 2:
  184.                     obiekt.usun();
  185.                 break;
  186.                 case 3:
  187.                     obiekt.wyswietl();
  188.                 break;
  189.                 case 4:
  190.                     petla = false;
  191.                 break;
  192.                 default:
  193.                     throw operacja;
  194.                 break;
  195.             }
  196.         }
  197.         catch(exception &e) {
  198.             cout<<"\nWyjatek - " <<e.what();
  199.         }
  200.     }
  201.  
  202.     return 0;
  203. }
  204.  
  205.  
  206.  
  207.  
  208.  
  209.  
  210.  
  211. ///////////////////////////////////////////////////zad4
  212. #include <iostream>
  213. #include <set>
  214. #include <string>
  215. #include <conio.h>
  216.  
  217. using namespace std;
  218.  
  219. class pustaLista: public exception {
  220.     virtual const char* what() const throw() {
  221.         return "Nie ma zadnych uczniow na liscie\n";
  222.     }
  223. };
  224.  
  225. class usunUcznia: public exception {
  226.     virtual const char* what() const throw() {
  227.         return "Nie dodano zadnego ucznia wczesniej!\n";
  228.     }
  229. };
  230.  
  231.  
  232. class numerOperacji: public exception {
  233.     virtual const char* what() const throw() {
  234.         return "Wybrales zly numer operacji\n";
  235.     }
  236. };
  237.  
  238. class Uczniowie {
  239.     private:
  240.         set<string> uczen;
  241.         set<string>::reverse_iterator it;
  242.         string nowy_uczen;
  243.     public:
  244.         void dodaj() {
  245.             cout << "Wprowadz imie i nazwisko ucznia: ";
  246.             getline(cin,nowy_uczen);
  247.             uczen.insert(nowy_uczen);
  248.         }
  249.  
  250.         void usun() {
  251.             usunUcznia wyjatek_usun;
  252.             try {
  253.                 if(uczen.empty()) {
  254.                     throw wyjatek_usun;
  255.                 }
  256.                 else{
  257.                     cout << "Wprowadz imie i nazwisko ucznia do usuniecia: ";
  258.                     getline(cin,nowy_uczen);
  259.                     int pomoc;
  260.                     for(it = uczen.rbegin(); it!=uczen.rend(); ++it) {
  261.                         int znaleziono = (*it).compare(nowy_uczen);
  262.                         if(znaleziono==0) pomoc = 1;
  263.                     }
  264.                     if(pomoc==1) uczen.erase(nowy_uczen);
  265.                     return;
  266.                 }
  267.             }
  268.             catch(exception &e) {
  269.                 cout<<"\nWyjatek: " <<e.what()<<endl;
  270.             }
  271.  
  272.         }
  273.  void wyswietl() {
  274.             pustaLista pusto;
  275.             try {
  276.                 if(uczen.empty()) throw pusto;
  277.                 cout << "Lista uczniow: " << endl;
  278.                 for(it = uczen.rbegin(); it!=uczen.rend(); ++it) {
  279.                     cout << *it << endl;
  280.                 }
  281.             }
  282.             catch(exception &e) {
  283.                 cout<<"\nWyjatek: " <<e.what()<<endl;
  284.             }
  285.         }
  286. };
  287.  
  288. int main() {
  289.     Uczniowie obiekt;
  290.     numerOperacji operacja;
  291.     char wybor;
  292.     bool petla = true;
  293.     while(petla) {
  294.         try {
  295.             cout << endl<<"Wybierz jedna z ponizszych opcji "<<endl;
  296.             cout << "1. Dodaj ucznia " << endl;
  297.             cout << "2. Usun wybranego ucznia " << endl;
  298.             cout << "3. Wyswietl liste uczniow " << endl;
  299.             cout << "4. Zakoncz program " << endl;
  300.             wybor = getch();
  301.             switch(wybor) {
  302.                 case '1':
  303.                     obiekt.dodaj();
  304.                 break;
  305.                 case '2':
  306.                     obiekt.usun();
  307.                 break;
  308.                 case '3':
  309.                     obiekt.wyswietl();
  310.                 break;
  311.                 case '4':
  312.                     petla = false;
  313.                 break;
  314.                 default:
  315.                      throw operacja;
  316.                 break;
  317.             }
  318.         }
  319.         catch(exception &e) {
  320.             cout<<"\nWyjatek: " <<e.what()<<endl;
  321.         }
  322.     }
  323.     return 0;
  324. }
  325.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement