DiQ

abc

DiQ
Dec 5th, 2014
189
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 20.57 KB | None | 0 0
  1. 1.
  2. #include <iostream>
  3. #include <string>
  4. #include <cstdlib>
  5. #include <ctime>
  6. using namespace std;
  7.  
  8.  
  9.     class Trojkat
  10.     {public:
  11.         int a;
  12.         int b;
  13.         int c;
  14.         void czy_prostokatny()
  15.         {
  16.             bool prost;
  17.             if((a*a)+(b*b)==c*c || (a*a)+(c*c)==(b*b) || (b*b)+(c*c)==(a*a))
  18.                 prost=true;
  19.             else
  20.                 prost=false;
  21.             if(prost==true)
  22.                 cout << "trojkat jest prostokatny" << endl;
  23.             else if(prost == false)
  24.                 cout << "trojkat nie jest prostokatny" << endl;
  25.         }
  26.         void obwod()
  27.         {
  28.             int Obw;
  29.             Obw=a+b+c;
  30.             cout << "obwod: " << Obw;
  31.         }
  32.     };
  33.  
  34.     int main()
  35.     {
  36.         srand(time(NULL));
  37.         Trojkat obiekt1;
  38.         Trojkat obiekt2;
  39.         Trojkat obiekt3;
  40.         obiekt1.a=rand()%100+1;
  41.         obiekt1.b=rand()%100+1;
  42.         obiekt1.c=rand()%100+1;
  43.         obiekt2.a=rand()%100+1;
  44.         obiekt2.b=rand()%100+1;
  45.         obiekt2.c=rand()%100+1;
  46.         obiekt3.a=rand()%100+1;
  47.         obiekt3.b=rand()%100+1;
  48.         obiekt3.c=rand()%100+1;
  49.         cout << obiekt1.a << endl;
  50.         cout << obiekt1.b << endl;
  51.         cout << obiekt1.c << endl;
  52.         cout << endl;
  53.         cout << obiekt2.a << endl;
  54.         cout << obiekt2.b << endl;
  55.         cout << obiekt2.c << endl;
  56.         cout << endl;
  57.         cout << obiekt3.a << endl;
  58.         cout << obiekt3.b << endl;
  59.         cout << obiekt3.c << endl;
  60.         cout << endl;
  61.         obiekt1.czy_prostokatny();
  62.         cout << endl;
  63.         obiekt2.czy_prostokatny();
  64.         cout << endl;
  65.         obiekt3.czy_prostokatny();
  66.         cout << endl;
  67.         obiekt1.obwod();
  68.         cout << endl;
  69.         obiekt2.obwod();
  70.         cout << endl;
  71.         obiekt3.obwod();
  72.         cout << endl;
  73.         system("pause");
  74.         return 0;
  75.     }
  76.  
  77. ///////////////////////////////////////////////
  78. 2.
  79. #include <iostream>
  80. #include <cstdlib>
  81. #include <ctime>
  82. #include <math.h>
  83. #include <cmath>
  84. using namespace std;
  85.  
  86. class Punkt
  87. {public:
  88.     double x, y;
  89. Punkt()
  90. {
  91.     x=rand()%100-50;
  92.     y=rand()%100-50;
  93. }
  94. double odleglosc()
  95. {
  96.     double odl= sqrt(x*x+y*y);
  97.     return odl;
  98. }
  99. };
  100.  
  101. int main()
  102. {
  103.     srand(time(NULL));
  104.     Punkt tablica[10];
  105.     double min=tablica[0].odleglosc();
  106.     int miejsce;
  107.     for(int i=0; i<10; i++)
  108.     {
  109.         if(min>tablica[i].odleglosc())
  110.             {min=tablica[i].odleglosc();
  111.         miejsce=i;}
  112.     }
  113.     cout << "minimalna odleglosc to: " << min << endl;
  114.     cout << "jest na miejscu nr: " << miejsce << endl;
  115.     system("pause");
  116.     return 0;
  117. }
  118.  
  119. ///////////////////////////////////////
  120. 3.
  121. #include <iostream>
  122. #include <ctime>
  123. #include <cstdlib>
  124. #include <math.h>
  125. using namespace std;
  126.  
  127. class Zespolona{
  128. private:
  129.     int i, v;
  130. public:
  131.  
  132.     Zespolona()
  133.     {
  134.         i=rand()%21-10;
  135.         v=rand()%21-10;
  136.         cout << v << " + " << i << "i" << ", ";
  137.     }
  138.     Zespolona(const Zespolona &zes)
  139.     {
  140.         i=zes.i;
  141.         v=zes.v;
  142.     }
  143.     double modul()
  144.     {
  145.         double mod;
  146.         return mod=pow(i*i+v*v, 1./2);
  147.     }
  148.     ~Zespolona() { cout << "destruktor" << endl;}
  149.     friend ostream & operator+( ostream &x, const Zespolona &y);
  150. };
  151. ostream & operator+(ostream &x, const Zespolona &y)
  152. {
  153.     x.v = x.v +y.v;
  154.     x.i = x.i + y.i;
  155. }
  156.  
  157. int main()
  158. {
  159.     srand(time(NULL));
  160.         cout << "liczby zespolone to: " << endl;
  161.     Zespolona *tab;
  162.     tab = new Zespolona[10];
  163.     /*for(int i=0; i<10; i++)
  164.         *(tab+i);*/
  165.     cout << endl << "ich moduly to: " << endl;
  166.     for(int i=0; i<10; i++)
  167.         cout << tab[i].modul() << " ";
  168.     cout << endl;
  169.  
  170.     system("pause");
  171.     return 0;
  172. }
  173.  
  174.  
  175. /////////////////////////////////////////
  176. 4.
  177. #include <iostream>
  178. #include <cstdlib>
  179. #include <ctime>
  180. #include <math.h>
  181. #include <string>
  182.  
  183. using namespace std;
  184.  
  185. class Ulamek
  186. {
  187. public:
  188.     int licznik, mianownik;
  189.     void odwrotnosc()
  190.     {
  191.     cout << "metoda odwrotnosc" << endl;
  192.     if(licznik == 0)
  193.         cout << "nie da sie odwrocic tego ulamka" << endl;
  194.     else
  195.     {
  196.     int temp;
  197.     temp=licznik;
  198.     licznik=mianownik;
  199.     mianownik=temp;
  200. //    cout << licznik << "/" << mianownik << endl;
  201.     }
  202.  
  203.     }
  204.     void uprosc()
  205.     {
  206.             cout << "metoda uprosc" << endl;
  207.     int a, b;
  208.     a=licznik;
  209.     b=mianownik;
  210.     while(a!=b)
  211.        if(a>b)
  212.            a-=b;
  213.        else
  214.            b-=a;
  215.     licznik/=a;
  216.     mianownik/=a;
  217.         }
  218.     Ulamek()
  219.     {
  220.  //   cout << "\nKonstrukor domyslny";
  221.  
  222.     licznik = (rand() % 100);
  223.  
  224.    do{
  225.        mianownik=(rand()%100);
  226.    }while(mianownik==0);
  227.     }
  228.     Ulamek(Ulamek & ulam)
  229.         {
  230.    // cout << "\nKonstrukor kopiujacy";
  231.  
  232.     licznik = ulam.licznik;
  233.     mianownik = ulam.mianownik;
  234.         }
  235.     Ulamek(int pier, int druga)
  236.         {
  237.   //  cout << "\nKonstruktor z parametrem";
  238.  
  239.     licznik = pier;
  240.  
  241.     if(druga != 0)
  242.         mianownik = druga;
  243.     else
  244.     {
  245.         cout << "\nMianownik nie moze byc zerem!";
  246.  
  247.         while(druga == 0)
  248.         {
  249.             cout << "\nPodaj niezerowy mianownik: ";
  250.             cin >> druga;
  251.         }
  252.         mianownik = druga;
  253.     }
  254. }
  255.     ~Ulamek() {}
  256. };
  257.  
  258. void zwieksz(Ulamek *&tab, unsigned int &rozmiar, unsigned int ile)
  259. {
  260.     unsigned int nowy = rozmiar + ile;
  261.     Ulamek *tmp = new Ulamek[nowy];
  262.     for(unsigned int i = 0; i < rozmiar; i++)
  263.         *(tmp + i) = *(tab + i);
  264.  
  265.     rozmiar = nowy;
  266.     delete [] tab;
  267.     tab = tmp;
  268. }
  269. void zwieksz_o_jeden(Ulamek *&tab, unsigned int &rozmiar, Ulamek *wskObiektu)
  270. {
  271.     unsigned int nowy = rozmiar + 1;
  272.     Ulamek *tmp = new Ulamek[nowy];
  273.  
  274.     for(unsigned int i = 0; i < rozmiar; i++)
  275.         *(tmp + i) = *(tab + i);
  276.  
  277.     *(tmp + (nowy - 1)) = *wskObiektu;
  278.  
  279.     rozmiar = nowy;
  280.     delete [] tab;
  281.     tab = tmp;
  282. }
  283. void pokaz(Ulamek *tab, unsigned int rozmiar)
  284. {
  285.     cout << endl;
  286.  
  287.     for(unsigned int i = 0; i < rozmiar; i++)
  288.     {
  289.             cout << "Ulamek " << i+1 << ": " << (tab+i) -> licznik << "/" << (tab+i) -> mianownik << endl;
  290.     }
  291. }
  292.  
  293. int main()
  294. {
  295.     srand(time(NULL));
  296.  
  297.     unsigned int rozmiar;
  298.     cout << "Prosze podac rozmiar tablicy: ";
  299.     cin >> rozmiar;
  300.  
  301.     Ulamek *tab = new Ulamek[rozmiar];
  302.  
  303.     Ulamek *&wsk = tab;
  304.     pokaz(wsk, rozmiar);            //wyświetlenie tablicy
  305.  
  306.     unsigned int zmiana;
  307.     cout << "\nProsze podac wielkosc, o jaka tablica zostanie rozszerzona: ";
  308.     cin >> zmiana;
  309.  
  310.     zwieksz(wsk, rozmiar, zmiana);
  311.     pokaz(tab, rozmiar);
  312.  
  313.     int li, mian;                //dodanie elementu na koniec tablicy
  314.     cout << "\nProsze podac licznik ulamka, ktory zostanie dodany na koniec tablicy : ";
  315.     cin >> li;
  316.     cout << "Prosze podac mianownik ulamka, ktory zostanie dodany na koniec tablicy: ";
  317.     cin >> mian;
  318.     Ulamek ostatni(li, mian);
  319.     Ulamek *wskObiekt = &ostatni;
  320.  
  321.     zwieksz_o_jeden(wsk, rozmiar, wskObiekt);
  322.     pokaz(tab, rozmiar);
  323.  
  324.     cout << "\n\nFunkcja odwracajaca: \n";
  325.     int odw;
  326.     cout << "ktory ulamek odwrocic? "; cin >> odw;
  327.             do{
  328.         cin >> odw;
  329.         cout << "nie ma takiego ulamka! ";
  330.     }while(odw-1>rozmiar);
  331.             odw-=1;
  332.     cout << "\n\Przed odwroceniem:\n";
  333.     cout << "Ulamek: " << (tab+odw) -> licznik << "/" << (tab+odw) -> mianownik << endl;
  334.  
  335.     (tab+odw) -> odwrotnosc();
  336.  
  337.  
  338.     cout << "\n\Po odwroceniu:\n";
  339.     cout << "Ulamek: " << (tab+odw) ->licznik << "/" << (tab+odw) ->mianownik << endl;
  340.         (tab+odw) -> odwrotnosc();
  341.     int Ul;
  342.     cout << "ktory ulamek skrocic? ";
  343.     cin >> Ul;
  344.     if(Ul-1>rozmiar)
  345.     {do{
  346.        
  347.         cout << "nie ma takiego ulamka! ";
  348.         cin >> Ul;
  349.     }while(Ul-1>rozmiar);}
  350.     Ul-=1;
  351.  
  352.     Ulamek skracanie((tab+Ul) ->licznik,(tab+Ul)->mianownik);                    // Funkcja uprosc
  353.  
  354.     cout << "\n\nUlamek przed skroceniem: " << skracanie.licznik << "/" << skracanie.mianownik << endl;
  355.  
  356.     skracanie.uprosc();
  357.  
  358.     cout << "\nPo skroceniu: " << skracanie.licznik << "/" << skracanie.mianownik << endl;
  359.  
  360.  
  361.     delete [] wsk;                // Zwolnienie  pamieci
  362.     system("pause");
  363.     return 0;
  364. }
  365.  
  366.  
  367. ////////////////////////////////
  368. 5.
  369. #include <iostream>
  370. #include <cstdlib>
  371. #include <ctime>
  372. #define _USE_MATH_DEFINES
  373. #include <math.h>
  374. using namespace std;
  375.  
  376. class Figura{
  377. public:
  378.     virtual double pole()=0;
  379.     virtual double obwod()=0;
  380. };
  381.  
  382. class Kwadrat : public Figura
  383. {public:
  384.     double a;
  385.     Kwadrat(){
  386.         a= rand()%100;
  387.     }
  388.     double pole()
  389.     {
  390.         return a*a;
  391.     };
  392.     double obwod()
  393.     {
  394.         return 4*a;
  395.     }
  396. };
  397.  
  398. class Prostokat : public Figura
  399. {
  400. public:
  401.     int a, b;
  402.     Prostokat()
  403.     {
  404.         a=rand()%100;
  405.         b=rand()%100;
  406.     }
  407.     double pole()
  408.     {
  409.         return a*b;
  410.     }
  411.     double obwod()
  412.     {
  413.         return (2*a+2*b);
  414.     }
  415. };
  416.  
  417. class Okrag : public Figura
  418. {
  419. public:
  420.     int x, y, r;
  421.     Okrag()
  422.     {
  423.         x=rand()%100;
  424.         y=rand()%100;
  425.         r=rand()%100;
  426.     }
  427.     double pole()
  428.     {
  429.         double pole;
  430.         return pole = M_PI*pow(r,2);
  431.     }
  432.     double obwod()
  433.     {
  434.         return (2*M_PI*r);
  435.     }
  436. };
  437.  
  438. int main()
  439. {
  440.     srand(time(NULL));
  441.     Kwadrat ob1;
  442.     Prostokat ob2;
  443.     Okrag ob3;
  444.     Okrag *wsk;
  445.     wsk = new Okrag[10];
  446.     cout << "pole kwadratu: " << ob1.pole() << endl;
  447.     cout << "obwod kwadratu: " << ob1.obwod() << endl;
  448.     cout << endl;
  449.     cout << "pole prostokata: " << ob2.pole() << endl;
  450.     cout << "obwod prostokata: " << ob2.obwod() << endl;
  451.     cout << endl;
  452.     cout << "pole okregu: " << ob3.pole() << endl;
  453.     cout << "obwod okregu: " << ob3.obwod() << endl;
  454.     system("pause");
  455.     for(int i=0; i<10; i++)
  456.     {
  457.         for(int j=10; j>0; j--)
  458.         {
  459.         }
  460.     return 0;
  461. }
  462.  
  463.  
  464. ///////////////////////////////
  465. 6.
  466. #include <iostream>
  467. #include <string>
  468. using namespace std;
  469.  
  470. class Osoba{
  471. public:
  472.     string imie;
  473.     string nazwisko;
  474.     string adres;
  475.     string pesel;
  476. };
  477.  
  478. class Student : virtual public Osoba
  479. {
  480. public:
  481.     string indeks;
  482.     double mat;
  483.     double fiz;
  484.     double inf;
  485.     double srednia()
  486.     {
  487.         double sred = (mat+fiz+inf)/3;
  488.         return sred;
  489.     }
  490. };
  491.  
  492. class Prowadzacy : virtual public Osoba
  493. {public:
  494.     string tytul;
  495. };
  496.  
  497. class Doktorant : public Student, public Prowadzacy
  498. {public:
  499.     string tytul_rozprawy;
  500. };
  501.  
  502. class Obsluga_tech: public Osoba
  503. {public:
  504.     string godziny_pracy;
  505. };
  506.  
  507. class Sala
  508. {public:
  509.     float numer;
  510.     string budynek;
  511.     int ilosc_miejsc;
  512. };
  513.  
  514. class Labolatorium : public Sala
  515. {public:
  516.     int ilosc_komputerow;
  517. };
  518.  
  519. int main()
  520. {
  521.     Osoba ob1;
  522.     ob1.imie = "Jan";
  523.     ob1.nazwisko= "Kowalski";
  524.     ob1.adres = "Wroclaw, ul. Wroclawska 111";
  525.     ob1.pesel = "12345678910";
  526.  
  527.     Student ob2;
  528.     ob2.imie = "Jan";
  529.     ob2.nazwisko= "Kowal";
  530.     ob2.adres = "Wroclaw, ul. Wroka 145";
  531.     ob2.pesel = "49726547813";
  532.     ob2.indeks = "456789";
  533.     ob2.mat = 4;
  534.     ob2.fiz = 3.5;
  535.     ob2.inf = 5.5;
  536.     ob2.srednia();
  537.  
  538.     Prowadzacy ob3;
  539.     ob3.imie = "Kazimierz";
  540.     ob3.nazwisko= "Nowak";
  541.     ob3.adres = "Wroclaw, ul. Legnicka 11";
  542.     ob3.pesel = "11554433987";
  543.     ob3.tytul = "Prof. dr. hab. inz.";
  544.  
  545.     Doktorant ob4;
  546.     ob4.imie = "Marcin";
  547.     ob4.nazwisko= "Kower";
  548.     ob4.adres = "Wroclaw, ul. Lic 1";
  549.     ob4.pesel = "12654789910";
  550.     ob4.indeks = "320014";
  551.     ob4.mat = 5;
  552.     ob4.fiz = 5;
  553.     ob4.inf = 3;
  554.     ob4.srednia();
  555.     ob4.tytul = "magister";
  556.     ob4.tytul_rozprawy = "Programowanie c++";
  557.  
  558.     Obsluga_tech ob5;
  559.     ob5.imie = "Mieczyslaw";
  560.     ob5.nazwisko = "Techniczny";
  561.     ob5.adres = "Wroclaw, ul. Techniczna 45";
  562.     ob5.pesel = "78945612302";
  563.     ob5.godziny_pracy = "8-16";
  564.  
  565.     Sala ob6;
  566.     ob6.numer = 2.06;
  567.     ob6.budynek = "C-13";
  568.     ob6.ilosc_miejsc = 20;
  569.  
  570.     Labolatorium ob7;
  571.     ob7.numer = 2.07;
  572.     ob7.budynek = "C-13";
  573.     ob7.ilosc_miejsc = 15;
  574.     ob7.ilosc_komputerow = 15;
  575.  
  576.     cout << "Osoba: " << endl;
  577.     cout << "imie: " << ob1.imie << endl;
  578.     cout << "nazwisko: " << ob1.nazwisko << endl;
  579.     cout << "adres: " << ob1.adres << endl;
  580.     cout << "PESEL: " << ob1.pesel << endl;
  581.     cout << endl;
  582.  
  583.     cout << "Student: " << endl;
  584.     cout << "imie: " << ob2.imie << endl;
  585.     cout << "nazwisko: " << ob2.nazwisko << endl;
  586.     cout << "adres: " << ob2.adres << endl;
  587.     cout << "PESEL: " << ob2.pesel << endl;
  588.     cout << "numer indeksu: " << ob2.indeks << endl;
  589.     cout << "ocena z matematyki: " << ob2.mat << endl;
  590.     cout << "ocena z fizyki: " << ob2.fiz << endl;
  591.     cout << "ocena z informatyki: " << ob2.inf << endl;
  592.     cout << "srednia ocen: " << ob2.srednia() << endl;
  593.     cout << endl;
  594.  
  595.     cout << "Prowadzacy: " << endl;
  596.     cout << "imie: " << ob3.imie << endl;
  597.     cout << "nazwisko: " << ob3.nazwisko << endl;
  598.     cout << "adres: " << ob3.adres << endl;
  599.     cout << "PESEL: " << ob3.pesel << endl;
  600.     cout << "tytul: " << ob3.tytul << endl;
  601.     cout << endl;
  602.  
  603.     cout << "Doktorant: " << endl;
  604.     cout << "imie: " << ob4.imie << endl;
  605.     cout << "nazwisko: " << ob4.nazwisko << endl;
  606.     cout << "adres: " << ob4.adres << endl;
  607.     cout << "PESEL: " << ob4.pesel << endl;
  608.     cout << "numer indeksu: " << ob4.indeks << endl;
  609.     cout << "ocena z matematyki: " << ob4.mat << endl;
  610.     cout << "ocena z fizyki: " << ob4.fiz << endl;
  611.     cout << "ocena z informatyki: " << ob4.inf << endl;
  612.     cout << "srednia ocen: " << ob4.srednia() << endl;
  613.     cout << "tytul: " << ob4.tytul << endl;
  614.     cout << "tytul rozprawy doktorskiej: " << ob4.tytul_rozprawy << endl;
  615.     cout << endl;
  616.  
  617.     cout << "Obsluga techniczna: " << endl;
  618.     cout << "imie: " << ob5.imie << endl;
  619.     cout << "nazwisko: " << ob5.nazwisko << endl;
  620.     cout << "adres: " << ob5.adres << endl;
  621.     cout << "PESEL: " << ob5.pesel << endl;
  622.     cout << "godziny pracy: " << ob5.godziny_pracy << endl;
  623.     cout << endl;
  624.  
  625.     cout << "Sala: " << endl;
  626.     cout << "numer: " << ob6.numer << endl;
  627.     cout << "budynek: " << ob6.budynek << endl;
  628.     cout << "ilosc miejsc: " << ob6.ilosc_miejsc << endl;
  629.     cout << endl;
  630.  
  631.     cout << "Labolatorium: " << endl;
  632.     cout << "numer: " << ob7.numer << endl;
  633.     cout << "budynek: " << ob7.budynek << endl;
  634.     cout << "ilosc miejsc: " << ob7.ilosc_miejsc << endl;
  635.     cout << "ilosc komputerow: " << ob7.ilosc_komputerow << endl;
  636.     cout << endl;
  637.  
  638.     system("pause");
  639.     return 0;
  640. }
  641.  
  642.  
  643. /////////////////////////////////////////
  644. 7.
  645.  
  646. #include <iostream>
  647. #include <cstdlib>
  648. #include <ctime>
  649. #define _USE_MATH_DEFINES
  650. #include <math.h>
  651. using namespace std;
  652.  
  653. class Figura{
  654. public:
  655.     virtual double pole()=0;
  656.     virtual double obwod()=0;
  657. };
  658.  
  659. class Kwadrat : public Figura
  660. {public:
  661.     double a; // bok kwadratu
  662.     Kwadrat(){
  663.         a= rand()%40+1;
  664.     }
  665.     double pole()
  666.     {
  667.         return a*a;
  668.     };
  669.     double obwod()
  670.     {
  671.         return 4*a;
  672.     }
  673. };
  674.  
  675. class Prostokat : public Figura
  676. {
  677. public:
  678.     int a, b; // boki prostokata
  679.     Prostokat()
  680.     {
  681.         a=rand()%40+1;
  682.         b=rand()%40+1;
  683.     }
  684.     double pole()
  685.     {
  686.         return a*b;
  687.     }
  688.     double obwod()
  689.     {
  690.         return (2*a+2*b);
  691.     }
  692. };
  693.  
  694. class Okrag : public Figura
  695. {
  696. public:
  697.     int S1, S2;
  698.     int x, y, r;
  699.     Okrag()
  700.     {
  701.         x=rand()%10; // wspolrzedna x srodka okregu
  702.         y=rand()%10; // wspolrzedna y srodka okregu
  703.         r=rand()%10+1; // promien okregu
  704.     }
  705.     double pole()
  706.     {
  707.         double pole;
  708.         return pole = M_PI*pow(r,2);
  709.     }
  710.     double obwod()
  711.     {
  712.         return (2*M_PI*r);
  713.     }
  714. };
  715.  
  716. int main()
  717. {
  718.     srand(time(NULL));
  719.     Kwadrat kwadrat;
  720.     Prostokat prostokat;
  721.     Okrag okrag;
  722.     Okrag tab[10];
  723.     Okrag *wsk;
  724.     wsk = tab;
  725.     cout << "bok kwadratu: " << kwadrat.a << endl;
  726.     cout << "pole kwadratu: " << kwadrat.pole() << endl;
  727.     cout << "obwod kwadratu: " << kwadrat.obwod() << endl;
  728.     cout << endl;
  729.     cout << "1. bok prostokata: " << prostokat.a << endl;
  730.     cout << "2. bok prostakata: " << prostokat.b << endl;
  731.     cout << "pole prostokata: " << prostokat.pole() << endl;
  732.     cout << "obwod prostokata: " << prostokat.obwod() << endl;
  733.     cout << endl;
  734.     cout << "srodek wylosowanego okregu w punkcie (" << okrag.x << ", " << okrag.y << "), a promien: " << okrag.r << endl;
  735.     cout << "pole okregu: " << okrag.pole() << endl;
  736.     cout << "obwod okregu: " << okrag.obwod() << endl;
  737.     cout << endl;
  738.     cout << "rownania okregow: " << endl;
  739.         for(int i=0; i<10; i++)
  740.     {
  741.         cout << i+1 << ". (S - " << (wsk+i) -> x << ")^2 + (Z - " << (wsk+i) -> y << ")^2 = " << pow((wsk+i) -> r,2) << endl;
  742.     }
  743.         cout << endl;
  744.     cout << "punkty wspolne okregow: " << endl;
  745.         /*cout << "punkty wspolne okregow: " << endl;
  746.         for(int i=0; i<10; i++)
  747.         {
  748.         for(int j=9; j>i; j--)
  749.         {
  750.             if(sqrt(pow((((wsk+j) -> x)-((wsk+i) -> x)),2)+pow((((wsk+j) -> y)-((wsk+i) -> y)),2)) == abs(((wsk+i)->r)+((wsk+j)->r)) || sqrt(pow((((wsk+j) -> x)-((wsk+i) -> x)),2)+pow((((wsk+j) -> y)-((wsk+i) -> y)),2)) == abs(((wsk+i)->r)+((wsk+j)->r)))
  751.                 cout << "jeden punkt wspolny ma okrag " << i+1 << " i " << j+1;// << " maja jeden punkt wspolny";
  752.             else if(sqrt(pow((((wsk+j) -> x)-((wsk+i) -> x)),2)+pow((((wsk+j) -> y)-((wsk+i) -> y)),2)) > abs(((wsk+i)->r)+((wsk+j)->r)) || sqrt(pow((((wsk+j) -> x)-((wsk+i) -> x)),2)+pow((((wsk+j) -> y)-((wsk+i) -> y)),2)) < abs(((wsk+i)->r)-((wsk+j)->r)))
  753.                 cout << "okrag " << i+1 << " i " << j+1 << " nie maja punktow wspolnych" << endl;
  754.             else
  755.                 cout << "okrag " << i+1 << " i " << j+1 << " maja dwa punkty wspolne" << endl;
  756.  
  757.         }
  758.         }*/
  759.     for(int i=0; i<9; i++){
  760.         for(int j=i+1;j<10;j++){
  761.  
  762.         double sumaprom = tab[i].r + tab[j].r;
  763.         double deltax = tab[j].x - tab[i].x;
  764.         double deltay = tab[j].y - tab[i].y;
  765.         double deltar = tab[j].r - tab[i].r;
  766.         double odlsr = sqrt(pow(deltax, 2.0) + pow(deltay, 2.0) );
  767.  
  768.         if(sumaprom>=odlsr && odlsr>=abs(deltar)) {
  769.             double x1, x2, y1, y2, x0, y0, Q, W, E, delta;
  770.             double D = pow(tab[i].r, 2.0) - pow(tab[j].r, 2.0) - pow(tab[i].x, 2.0) - pow(tab[i].y, 2.0) + pow(tab[j].x, 2.0) + pow(tab[j].y, 2.0);
  771.             cout<<endl;
  772.             if (deltay!=0 ){
  773.  
  774.                 Q = 1 + pow(deltax, 2.0)/pow(deltay, 2.0);
  775.                 W = -2.0*tab[i].x - (D*deltax)/pow(deltay, 2.0) + 2.0*(tab[i].y*deltax)/deltay;
  776.                 E = pow(tab[i].x, 2.0) - pow(tab[i].r, 2.0) + pow(D, 2)/(4*(pow(deltay, 2.0)))  + pow(tab[i].y, 2.0) - (tab[i].y*D)/deltay;
  777.                 delta = pow(W, 2.0) - 4*Q*E;
  778.                
  779.                 if (delta > 0)
  780.                 {
  781.                     x1 = (-W-sqrt(delta))/(2*Q);
  782.                     x2 = (-W+sqrt(delta))/(2*Q);
  783.                     y1 = (-x1*deltax + D/2)/deltay;
  784.                     y2 = (-x2*deltax + D/2)/deltay;
  785.                     cout<<"Okregi: "<<i<<" i "<<j<<endl;
  786.                     cout<<"x: "<<x1<<"  y: "<<y1<<endl;
  787.                     cout<<"x: "<<x2<<"  y: "<<y2<<endl;
  788.                     cout<<endl;
  789.                 } else if (delta == 0)
  790.                 {
  791.                     x0 = (-W)/(2*Q);
  792.                     y0 = (D-2*x0*deltax)/(2*deltay);  
  793.                     cout<<"Okregi: "<<i<<" i "<<j<<endl;
  794.                     cout<<"x: "<<x0<<"  y: "<<y0<<endl;
  795.                     cout<<endl;
  796.                 }
  797.             } else if (deltay==0 && deltax!= 0)
  798.             {
  799.                 x1 = D/(2*deltax);
  800.                 x2 = x1;
  801.                 x0 = x1;
  802.                 double u = x1 - tab[i].x;
  803.                 double p = sqrt(pow(tab[i].r, 2) - pow(u, 2));
  804.                 if (p == 0){
  805.                     cout<<"Okregi: "<<i<<" i "<<j<<endl;
  806.                     cout<<"x: "<<x1<<"  y: "<<tab[i].y<<endl;
  807.                     cout<<endl;
  808.                 } else
  809.                 {
  810.                     y1 = tab[i].y + p;
  811.                     y2 = tab[i].y - p;
  812.                     cout<<"Okregi: "<<i<<" i "<<j<<endl;
  813.                     cout<<"x: "<<x1<<"  y: "<<y1<<endl;
  814.                     cout<<"x: "<<x2<<"  y: "<<y2<<endl;
  815.                     cout<<endl;
  816.                 }
  817.             } else if (deltax==0 && deltay==0)
  818.             {
  819.                 if(tab[i].r == tab[i+1].r)
  820.                 {
  821.                     cout<<"Okregi "<<i<<" i "<<j<<" sa identyczne"<<endl;
  822.                     cout<<endl;
  823.                 }
  824.             }
  825.         }
  826.         }
  827.     }
  828.     system("pause");
  829.     return 0;
  830. }
Advertisement
Add Comment
Please, Sign In to add comment