Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include "stdio.h"
- #include "math.h"
- #define MAXN 10 // największa liczba figur
- #define NW 3 //liczba wierzcholkow figury (tu trójkąta)
- typedef struct Punkt
- {
- double x,y;
- } TPunkt;
- typedef struct Trojkat
- {
- TPunkt p[NW]; // wierzchołki trojkata
- } TTrojkat;
- void wprowadzanie( int *, TTrojkat tt[]);
- void wyprowadzanie( int , TTrojkat tt[] );
- double pole(TTrojkat t);
- void main(void)
- {
- int i;
- double pt;
- int nt; // liczba trojkatow (podaje uzytkownik)
- TTrojkat ttab[MAXN]; // tablica trojkatow
- int ile_trojkatow = 0; // akutalna liczba wpisanych trojkatow oraz numer komorki do ktorej ma trafic kolejny trojkat
- printf("Podaj liczbe trojkatow\n");
- scanf("%d", &nt);
- for ( i = 0; i < nt; i++)
- {
- wprowadzanie(&ile_trojkatow, ttab);
- }
- wyprowadzanie(nt, ttab);
- for ( i = 0; i < nt; i++)
- {
- pt = pole(ttab[i]);
- printf("Pole %d-ego trojkata wynosi %.2lf\n", i+1, pt);
- }
- }
- void wprowadzanie( int *wn, TTrojkat tt[])
- {
- int i ;
- printf("\n");
- for ( i = 0; i < NW; i ++ )
- {
- printf(" Podaj x %d-ego wierzchołka\n", i+1);
- scanf("%lf", &tt[*wn].p[i].x);
- printf(" Podaj y %d-ego wierzchołka\n", i+1);
- scanf("%lf", &tt[*wn].p[i].y);
- }
- (*wn)++;
- }
- void wyprowadzanie( int n, TTrojkat tt[] )
- {
- int i, j;
- for ( j = 0; j < n ; j++ )
- {
- printf("\nTrojkat nr %d:\n", j+1);
- for ( i = 0; i < NW ; i++ )
- {
- printf("x=%.2lf\n", tt[j].p[i].x);
- printf("y=%.2lf\n", tt[j].p[i].y);
- }
- }
- }
- double pole(TTrojkat t)
- {
- double a,b,c,p,h;
- a = sqrt(pow(t.p[0].x-t.p[1].x,2) + pow(t.p[0].y-t.p[1].y,2));
- b = sqrt(pow(t.p[1].x-t.p[2].x,2) + pow(t.p[1].y-t.p[2].y,2));
- c = sqrt(pow(t.p[2].x-t.p[3].x,2) + pow(t.p[2].y-t.p[3].y,2));
- h=(a+b+c)/2;
- p = sqrt ( h * ( h - a ) * (h-b) * (h-c) );
- return p;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement