Program učitava koordinate temena trougla i računa površinu i obim.
Code:
#include <stdio.h>
#include <math.h>
struct tacka
{
int x;
int y;
};
float razdaljina(struct tacka a, struct tacka b)
{
return sqrt((a.x - b.x) * (a.x - b.x) + (a.y - b.y) * (a.y - b.y));
}
float obimTrougla(struct tacka a, struct tacka b, struct tacka c)
{
return razdaljina(a, b) + razdaljina (a, c) + razdaljina (b, c);
}
float povrsinaTrougla(struct tacka a, struct tacka b, struct tacka c)
{
float poluobim, str1, str2, str3;
poluobim = obimTrougla(a, b, c)/2;
str1 = razdaljina(a, b);
str2 = razdaljina(a, c);
str3 = razdaljina(b, c);
return sqrt(poluobim * (poluobim - str1) * (poluobim - str2) * (poluobim - str3));
}
int main()
{
struct tacka a, b, c;
float p, o;
printf("Unesite koordinate temena A: ");
scanf("%d %d", &a.x, &a.y);
printf("Unesite koordinate temana B: ");
scanf("%d %d", &b.x, &b.y);
printf("Unesite koordinate temena C: ");
scanf("%d %d", &c.x, &c.y);
p = povrsinaTrougla(a, b, c);
o = obimTrougla(a, b, c);
printf("Povrsina = %f, Obim = %f\n", p, o);
}
Isti zadatak kao prethodni, s tim što ćemo sada kreirati strukturu trougao koja će sadržati temena, površinu i obim. Napisaću samo delove koji se razlikuju.
Code:
#include <stdio.h>
#include <math.h>
struct tacka
{
int x;
int y;
};
struct trougao
{
struct tacka A;
struct tacka B;
struct tacka C;
float povrsina;
float obim;
};
//Funkcije kao u prethodnom primeru
int main()
{
struct trougao ABC;
printf("Unesite koordinate temena A: ");
scanf("%d %d", &ABC.A.x, &ABC.A.y);
printf("Unesite koordinate temena B: ");
scanf("%d %d", &ABC.B.x, &ABC.B.y);
printf("Unesite koordinate temena C: ");
scanf("%d %d", &ABC.C.x, &ABC.C.y);
ABC.povrsina = povrsinaTrougla(ABC.A, ABC.B, ABC.C);
ABC.obim = obimTrougla(ABC.A, ABC.B, ABC.C);
printf("Povrsina = %f, Obim = %f\n", ABC.povrsina, ABC.obim);
}
Primer s funkcijom koja vraća strukturu kao rezulat. Izostavio sam funkcije i deklaracije iz prvog/drugog primera.
Code:
struct trougao unesiPodatke(struct tacka a, struct tacka b, struct tacka c)
{
struct trougao ABC;
ABC.A = a;
ABC.B = b;
ABC.C = c;
ABC.povrsina = povrsinaTrougla(a, b, c);
ABC.obim = obimTrougla(a, b, c);
return ABC;
}
int main()
{
struct tacka A, B, C;
struct trougao ABC;
printf("Unesite koordinate temena a: ");
scanf("%d %d", &A.x, &A.y);
printf("Unesite koordinate temena b: ");
scanf("%d %d", &B.x, &B.y);
printf("Unesite koordinate temena c: ");
scanf("%d %d", &C.x, &C.y);
ABC = unesiPodatke(A, B, C);
printf("Povrsina = %f, Obim = %f\n", ABC.povrsina, ABC.obim);
}
Ako budem imao vremena, napisaću i neke primere s pokazivačima.
„Naposletku, suština saznavanja nije u tome gubimo li igru, već kako je gubimo,
šta time spoznajemo, čemu nas je poraz naučio i kako nas to menja. Gubiti na određen
način znači - dobijati.”
Richard Bach