/*****************************************************************
* Corso di Elementi di Informatica - a.a. 2001/2002              *
* M. Esposito - A. Pescapè - G. Ventre                           *
*                                                                *
* Argomenti:                                                     *
*   - definizione di tipi                                        *
*   - i tipi strutturati                                         *
*   - le funzioni                                                *
*                                                                *
* Traccia:                                                       *
* Calcolare la distanza tra due punti di cui siano date le       *
* coordinate in un sistema di riferimento cartesiano             *
* bidimensionale.                                                *
*                                                                *
* Autori: Antonio Pescape' e Marcello Esposito                   *
*****************************************************************/
        
#include <iostream.h>
#include <stdlib.h>
#include <math.h>

typedef float TCoordinata;
typedef float TDistanza;
typedef struct {
  TCoordinata x;
  TCoordinata y;
} TPunto;

TDistanza DistanzaPunti(TPunto p1, TPunto p2);

int main() {
  TPunto p[2]; 

  cout << "Inserisci ascissa punto 1: ";
  cin >> p[0].x;
  cout << "Inserisci ordinata punto 1: ";
  cin >> p[0].y;
  cout << "Inserisci ascissa punto 2: ";
  cin >> p[1].x;
  cout << "Inserisci ordinata punto 2: ";
  cin >> p[1].y;

  TDistanza dist;
  dist = DistanzaPunti(p[0], p[1]);

  cout << "\nLa distanza tra i due punti e': " << dist << endl;

  system("PAUSE");
  return 0;
};

TDistanza DistanzaPunti(TPunto p1, TPunto p2) {
// La formula per la distanza
// tra due punti è: ( (x2 - x1)^2 + (y2 - y1)^2 )^(1/2)

  return sqrt( pow(p2.x - p1.x, 2) + pow(p2.y - p1.y, 2) );
}