// Calcolo dell'angolo e della distanza tra due vettori // Si utilizzano funzioni e variabili locali // Le funzioni Scalare() e Distanza() sono definite in metrica.C // La compilazione e` gestita da Makefile #include #include #include using namespace std; // Dichiarazione Funzione Prodotto Scalare double Scalare(double *, double *, int); // Dichiarazione Funzione Distanza double Distanza(double *, double *, int); // Funzione Main int main(){ double a[3], b[3]; double ab, na, nb; double ang, dist; fstream f; f.open("vettori.dat",ios::in); if ( f.fail() ){ cout << "Errore nell'apertura di 'vettori.dat' ==> Esco" << endl; return -1; } f >> a[0] >> a[1] >> a[2] >> b[0] >> b[1] >> b[2]; while( ! f.eof() ){ cout << "A B" << endl; cout << "-------" << endl; for ( int i = 0; i < 3; i++ ) cout << a[i] << " " << b[i] << endl; ab = Scalare(a,b,3); na = sqrt( Scalare(a,a,3) ); nb = sqrt( Scalare(b,b,3) ); ang = acos( ab/(na*nb) ); dist = Distanza(a,b,3); cout << "Angolo = " << ang << endl; cout << "Distanza = " << dist << endl; cout << "-----------" << endl; f >> a[0] >> a[1] >> a[2] >> b[0] >> b[1] >> b[2]; } f.clear(); f.close(); return 0; }