Advertisement
Guest User

Konewka

a guest
Apr 28th, 2015
253
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 5.14 KB | None | 0 0
  1. #include<stdio.h>
  2. #include<stdlib.h>
  3. #include<math.h>
  4. #define N 2
  5. class trapez{
  6. private:
  7.     float dlugoscA;
  8.     float dlugoscB;
  9.  
  10.     float x1;
  11.     float x2;
  12.     float y1;
  13.     float y2;
  14.  
  15. public:
  16.     void ustalanie(float dla,float dlb,float xx,float yy){
  17.         //Sprawdzam czy wartosci nie sa ujemne lub rowne zero. Jak w poleceniu
  18.         if(dla<=0)
  19.             dlugoscA=10;
  20.         else
  21.             dlugoscA=dla;
  22.         if(dlb<=0)
  23.             dlugoscB=5;
  24.         else
  25.             dlugoscB=dlb;
  26.         //ustawiane przez uzytkownika
  27.         x2=xx;
  28.         y2=yy;
  29.  
  30.         /*zalozenie z polecenia. Zaczynam z poczatku ukladu wspolrzednych
  31.         "ozwalający na jednoznaczne określenie jej położenia na płaszczyźnie względem początku układu współrzędnych"*/
  32.         x1=0;
  33.         y1=0;
  34.     }
  35.  
  36.  
  37.     void wyswietl(){
  38.         printf("\n********\n");
  39.         printf("\nDlugosc dolnej podstawy to: %.2f",dlugoscA);
  40.         printf("\nDlugosc gornej podstawy to: %.2f",dlugoscB);
  41.         printf("\nWysokosc trapezu to: %.2f",fabs(y1-y2));
  42.         printf("\nA(%.2f,%.2f)\nB(%.2f,%.2f)\nC(%.2f,%.2f)\nD(%.2f,%.2f)",x1,y1,x1+dlugoscA,y1,x2+dlugoscB,y2,x2,y2);
  43.     }
  44.     void symetria(float sx,float sy){
  45.         float tempX = x1, tempY = y1;
  46.  
  47.  
  48.         //punkt (x1,y1) będzie (x2-długość mniejszej podstawy, y2)
  49.         x1 = (2*sx - x2) - dlugoscB;
  50.         y1 = 2*sy - y2;
  51.  
  52.         //punkt (x2,y2) będzie (x1-długość większej podstawy, y1)
  53.         x2 = (2*sx - tempX) - dlugoscA;
  54.         y2 = 2*sy - tempY;
  55.  
  56.         //podmienia miejscami podstawy
  57.         float temp = dlugoscA;
  58.         dlugoscA = dlugoscB;
  59.         dlugoscB = temp;
  60.  
  61.     }
  62.     //Kod ponizej bedzie dopisany wedlug zadania na labki 10
  63.     void setter(float dl){
  64.         if (dl>0)
  65.         dlugoscA = dl;
  66.     }
  67.     float getter(){
  68.         return dlugoscA;
  69.     }
  70.     trapez(){
  71.         dlugoscA = 15;
  72.         dlugoscB = 10;
  73.         x1 = 0;
  74.         x2 = 0;
  75.         y1 = 5;
  76.         y2 = 5;
  77.     }
  78.     trapez(float dla, float dlb, float xx, float yy){
  79.         dlugoscA = dla;
  80.         dlugoscB = dlb;
  81.         x1 = 0;
  82.             x2 = xx;
  83.             y2 = yy;
  84.             if (y2 <= 0)
  85.                 y1 = y2 - 1;
  86.             else
  87.                 y1 = 0;
  88.            
  89.     }
  90.     trapez(trapez &kopiuj){
  91.         dlugoscA = kopiuj.dlugoscA;
  92.         dlugoscB = kopiuj.dlugoscB;
  93.         x1 = kopiuj.x1;
  94.         x2 = kopiuj.x2;
  95.         y1 = kopiuj.y1;
  96.         y2 = kopiuj.y2;
  97.     }
  98. };
  99.  
  100. class prostokat{
  101. private:
  102.     float x;
  103.     float y;
  104.     float dla;
  105.     float dlb;
  106.  
  107. public:
  108.     void ustal(float xx,float yy,float aa,float bb){
  109.     x=xx;
  110.     y=yy;
  111.     if(aa<=0)
  112.         dla=10;
  113.     else
  114.     dla=aa;
  115.  
  116.     if(bb<=0)
  117.         dlb=2;
  118.     else
  119.     dlb=bb;
  120.     }
  121.     void wypisz(){
  122.         printf("\n\nProstokat\n");
  123.         printf("\nA(%.2f,%.2f)  B(%.2f,%.2f)  C(%.2f,%.2f)  D(%.2f,%.2f)",x,y,x+dla,y,x+dla,y+dlb,x,y+dlb);
  124.         printf("\nDLugosc Boku AB-DC: %.2f",fabs(dla));
  125.         printf("\nDLugosc Boku AD-BC: %.2f",fabs(dlb));
  126.     }
  127.     void skalowanie(float k){
  128.         dla*=k;
  129.         dlb*=k;
  130.         wypisz();
  131.     }
  132.     //dopisuje Ci to na labki 10 co nalezy zrobic
  133.     void setter(float dl){
  134.         if (dl>0)
  135.         dla = dl;
  136.     }
  137.     float getter(){
  138.         return dla;
  139.     }
  140.     prostokat(){
  141.         x = 0;
  142.         y = 0;
  143.         dla = 5;
  144.         dlb = 2;
  145.     }
  146.     prostokat(float xx, float yy, float aa, float bb){
  147.         x=xx;
  148.         y=yy;
  149.         dla=aa;
  150.         dlb=bb;
  151.  
  152.     }
  153.     prostokat(prostokat &kopiuj){
  154.         x = kopiuj.x;
  155.         y = kopiuj.y;
  156.         dla = kopiuj.dla;
  157.         dlb = kopiuj.dlb;
  158.     }
  159. };
  160. int main(){
  161.     /*float a,b,x,y,sx,sy;
  162.     int i;
  163.     prostokat tab[N];  
  164.     trapez tab2[N];
  165.     tab[0].ustal(0,0,5,2);
  166.     tab[1].ustal(4,5,6,3);
  167.     int wybor;
  168.     printf("Program: Labolatorium 9");
  169.     printf("\nAutor: Mateusz Ryszawa");
  170.     printf("\nTrapez mozna tylko wpisac recznie, prostokat wybiera sie jeden z dwoch");
  171.     printf("\nNiestety ");
  172.     printf("\nWybierz\n1)Trapez\n2)Prostokat\n: ");
  173.     scanf("%d",&wybor);
  174.     switch(wybor){
  175.     case 1:
  176.         printf("\nPodaj ktory prostokat chcesz edytowac 1, 2 czy 3\n");
  177.         scanf("%d",&i);
  178.         printf("\nPodaj dlugosc dolnej podstawy: ");
  179.         scanf("%f",&a);
  180.         printf("\nPodaj dlugosc gornej podstawy: ");
  181.         scanf("%f",&b);
  182.         printf("\nPodaj wspolrzedne wierzcholka D\nx(musi byc inne niz 0): ");
  183.         scanf("%f",&x);
  184.         printf("\ny(musi byc inne niz 0): ");
  185.         scanf("%f",&y);
  186.         tab2[i].ustalanie(a,b,x,y);
  187.         tab2[i].wyswietl();
  188.         printf("\n\nPodaj punkt srodkowej symetrii.\nX: ");
  189.         scanf("%f",&sx);
  190.         printf("\nY: ");
  191.         scanf("%f",&sy);
  192.         tab2[i].symetria(sx,sy);
  193.         tab2[i].wyswietl();
  194.         tab2[i].symetria(sx,sy);
  195.         tab2[i].wyswietl();
  196.         break;
  197.     case 2:
  198.         printf("\nPodaj ktory prostokat chcesz edytowac 1 czy 2\n");
  199.         scanf("%d",&i);
  200.         tab[i-1].wypisz();
  201.         float ii;
  202.         printf("\nPodaj wartosc skalowania: ");
  203.         scanf("%f",&ii);
  204.         tab[i-1].skalowanie(ii);
  205.  
  206.  
  207.         break;
  208.     }
  209.     */
  210.  
  211.     //Dopisuje Kod do maina ktory bedzie potrzebny na labki 10
  212.  
  213.     trapez t;
  214.     trapez t1(5,2,8,4);
  215.     trapez t2(t1);
  216.     //wyswietlenie nie jest raczej konieczne ale sam juz sobie zdecydujesz
  217.     t.wyswietl();
  218.     t1.wyswietl();
  219.     t2.wyswietl();
  220.     t.setter(888);
  221.     t1.setter(-55);
  222.     t2.setter(4);
  223.     printf("\n\nwyswietlam t\ndlugosc: %0.2f\n",t.getter());
  224.     printf("\nwyswietlam t1\ndlugosc: %0.2f\n", t1.getter());
  225.     printf("\nwyswietlam t2\ndlugosc: %0.2f\n", t2.getter());
  226.     prostokat p;
  227.     prostokat p1(2,1,10,5);
  228.     prostokat p2(p1);
  229.     p.wypisz();
  230.     p1.wypisz();
  231.     p2.wypisz();
  232.     p.setter(-77);
  233.     p1.setter(45);
  234.     p2.setter(11);
  235.     printf("\n\nwyswietlam p\ndlugosc: %0.2f\n", p.getter());
  236.     printf("\nwyswietlam p1\ndlugosc: %0.2f\n", p1.getter());
  237.     printf("\nwyswietlam p2\ndlugosc: %0.2f\n", p2.getter());
  238.  
  239.     printf("\n\nKoniec programu\n");
  240.     return 0;
  241. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement