///////////////////////////////////////////////////////////////////////
// ITS – Visoka Škola Strukovnih Studija Za Informacione Tehnologije
// https://www.its.edu.rs/
// Predmet: Osnovi Programiranja – Programski jezik C
//
// Primer: Program za izracunavanje obima i povrsine trougla
//           za zadate koordinate tri tacke uz ispitivanje uslova
//           kolinearnosti tih tacaka
///////////////////////////////////////////////////////////////////////

#include <stdio.h>
#include <math.h>

main()
{
 
  double x1, y1, z1, x2, y2, z2, x3, y3, z3, a, b, c, o, s, p;

  // Poruka korisniku
  printf("Unesite koordinate prve tacke <x1,y1,z1>:
");

  // Upis koordinata prve tacke
  scanf("%lf%lf%lf", &x1, &y1, &z1);

  // Poruka korisniku
  printf("
Unesite koordinate druge tacke <x2,y2,z2>:
");

  // Upis koordinata druge tacke
  scanf("%lf%lf%lf", &x2, &y2, &z2);

  // Poruka korisniku
  printf("
Unesite koordinate trece tacke <x3,y3,z3>:
");

  // Upis koordinata trece tacke
  scanf("%lf%lf%lf", &x3, &y3, &z3);

  // Izracunavanje stranice a
  a = sqrt( pow(x1-x2,2) + pow(y1-y2,2) + pow(z1-z2,2) );

  // Izracunavanje stranice b
  b = sqrt( pow(x1-x3,2) + pow(y1-y3,2) + pow(z1-z3,2) );

  // Izracunavanje stranice c
  c = sqrt( pow(x2-x3,2) + pow(y2-y3,2) + pow(z2-z3,2) );

  // Ispis rastojanja izmedju tacaka
  printf("
Rastojanja izmedju tacaka su:
a = %.2f, b = %.2f i c = %.2f

", a, b, c);

  // Uslov za kolinearnost tacaka
  if (a + b == c || a + c == b || b + c == a)

    // Poruka korisniku ukoliko je uslov ispunjen
    printf("Unete tacke su kolinearne i ne mogu da formiraju trougao!

");
 
  // Blok koji se izvrsava ukoliko uslov nije ispunjen
  else

  {

    // Izracunavanje obima trougla
    o = a + b + c;

    // Izracunavanje poluobima trougla
    s = o/2;

    // Izracunavanje povrsine trougla
    p = sqrt ( s * (s – a) * (s – b) * (s – c) );
 
    // Ispis obima trougla
    printf("Obim trougla je %.2f

", o);

    // Ispis povrsine trougla
    printf("Povrsina trougla je %.2f

", p);

  }

}