Advertisement
RybaSG

Untitled

Jun 7th, 2016
113
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 1.80 KB | None | 0 0
  1. #include "stdio.h"
  2. #include "math.h"
  3.  
  4.  
  5. #define MAXN 10 // największa liczba figur
  6. #define NW 3 //liczba wierzcholkow figury (tu trójkąta)
  7.  
  8. typedef struct Punkt
  9. {
  10.     double x,y;
  11. } TPunkt;
  12. typedef struct Trojkat
  13. {
  14.     TPunkt p[NW]; // wierzchołki trojkata
  15. } TTrojkat;
  16.  
  17. void wprowadzanie( int *, TTrojkat tt[]);
  18. void wyprowadzanie( int , TTrojkat tt[] );
  19. double pole(TTrojkat t);
  20.  
  21. void main(void)
  22. {
  23.     int i;
  24.     double pt;
  25.     int nt; // liczba trojkatow (podaje uzytkownik)
  26.     TTrojkat ttab[MAXN]; // tablica trojkatow
  27.  
  28.     int ile_trojkatow = 0; // akutalna liczba wpisanych trojkatow oraz numer komorki do ktorej ma trafic kolejny trojkat
  29.  
  30.     printf("Podaj liczbe trojkatow\n");
  31.     scanf("%d", &nt);
  32.  
  33.     for ( i = 0; i < nt; i++)
  34.     {
  35.     wprowadzanie(&ile_trojkatow, ttab);
  36.     }
  37.  
  38.     wyprowadzanie(nt, ttab);
  39.     for ( i = 0; i < nt; i++)
  40.     {
  41.         pt = pole(ttab[i]);
  42.         printf("Pole %d-ego trojkata wynosi %.2lf\n", i+1, pt);
  43.     }
  44.  
  45.  
  46. }
  47.  
  48. void wprowadzanie( int *wn, TTrojkat tt[])
  49. {
  50.     int i ;
  51.     printf("\n");
  52.     for ( i = 0; i < NW; i ++ )
  53.     {
  54.         printf(" Podaj x %d-ego wierzchołka\n", i+1);
  55.         scanf("%lf", &tt[*wn].p[i].x);
  56.         printf(" Podaj y %d-ego wierzchołka\n", i+1);
  57.         scanf("%lf", &tt[*wn].p[i].y);
  58.     }
  59.     (*wn)++;
  60. }
  61.  
  62. void wyprowadzanie( int n, TTrojkat tt[] )
  63. {
  64.     int i, j;
  65.  
  66.     for ( j = 0; j < n ; j++ )
  67.     {
  68.         printf("\nTrojkat nr %d:\n", j+1);
  69.         for ( i = 0; i < NW ; i++ )
  70.         {
  71.         printf("x=%.2lf\n", tt[j].p[i].x);
  72.         printf("y=%.2lf\n", tt[j].p[i].y);
  73.         }
  74.     }
  75.  
  76. }
  77.  
  78. double pole(TTrojkat t)
  79. {
  80.     double a,b,c,p,h;
  81.  
  82.     a = sqrt(pow(t.p[0].x-t.p[1].x,2) + pow(t.p[0].y-t.p[1].y,2));
  83.     b = sqrt(pow(t.p[1].x-t.p[2].x,2) + pow(t.p[1].y-t.p[2].y,2));
  84.     c = sqrt(pow(t.p[2].x-t.p[3].x,2) + pow(t.p[2].y-t.p[3].y,2));
  85.  
  86.     h=(a+b+c)/2;
  87.  
  88.     p = sqrt ( h * ( h - a ) * (h-b) * (h-c) );
  89.  
  90.     return p;
  91.  
  92. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement