include iostream h template class met class Bersaglio
#include <iostream. h> template <class met> class Bersaglio { public: Bersaglio (met, met); void new. Pos (); met operator - (Bersaglio); met get. X (); met get. Y (); private: met x, y, vx, vy; }; template <class met> Bersaglio<met>: : Bersaglio (met x 0, met y 0, met vx 0, met vy 0) { x= x 0; y= y 0; vx= vx 0; 1 vy= vy 0; }
template <class met> met Bersaglio<met>: : operator - (Bersaglio point) { return (x-point. x)*(x-point. x)+(y-point. y)*(y-point. y); } template <class met> met Bersaglio<met>: : get. X () { return x; } template <class met> met Bersaglio<met>: : get. Y () { return y; } template <class met> void Bersaglio<met>: : new. Pos (){ x= x+vx; y= y+vy; } 2
template <class T> void test. Bersagli (T p 1 x, T p 1 y, T v 1 x, T v 1 y, T p 2 x, T p 2 y, T v 2 x, T v 2 y, T soglia, T dist 0, char *tipo){ cout<<"Introdurre le coordinate di p 1 in valori "<<tipo <<": n"<<"p 1 x= "; cin>>p 1 x; cout<<"n"<<"p 1 y= "; cin>>p 1 y; cout<<"n"<<"v 1 x= "; cin>>v 1 x; cout<<"n"<<"v 1 y= "; cin>>v 1 y; cout<<"Introdurre le coordinate di p 2: "<<"n"<<"p 2 x= "; cin>>p 2 x; cout<<"n"<<"p 2 y= "; cin>>p 2 y; cout<<"n"<<"v 2 x= "; cin>>v 2 x; cout<<"n"<<"v 2 y= "; cin>>v 2 y; cout<<"Introdurre il valore di soglia in distanza: "<<"n” 3 <<"soglia= "; cin>>soglia;
Bersaglio<T> p 1(p 1 x, p 1 y, v 1 x, v 1 y); Bersaglio<T> p 2(p 2 x, p 2 y, v 2 x, v 2 y); dist= p 1 -p 2; cout<<"p 1= "<<p 1. get. X()<<", "<<p 1. get. Y()<<"n" <<"p 2= "<<p 2. get. X()<<", "<<p 2. get. Y()<<"n" <<"Distanza= "<<dist<<"n"; while (dist>soglia) { p 1. new. Pos(); p 2. new. Pos(); dist 0= dist; dist= p 1 -p 2; cout<<"p 1= "<<p 1. get. X()<<", "<<p 1. get. Y()<<"n" <<"p 2= "<<p 2. get. X()<<", "<<p 2. get. Y()<<"n" <<"Distanza= "<<dist<<"n"; if (dist>dist 0){ cout<<"Bersagli divergenti"<<"n"; return ; }} cout<<"Bersagli in collisione"<<"n"; 4 return ; }
int main () { test. Bersagli(0, 0, 0, "interi"); test. Bersagli(0. 0, 0. 0, "float"); return 0; } 5
Introdurre le coordinate di p 1 in valori interi: p 1 x= 1 p 1 y= 1 v 1 x= 2 v 1 y= 1 Introdurre le coordinate di p 2: p 2 x= 9 p 2 y= 9 v 2 x= -1 v 2 y= -2 Introdurre il valore di soglia in distanza: soglia= 2 6
p 1= 1, 1 p 2=9, 9 Distanza= 128 p 1= 3, 2 p 2= 8, 7 Distanza= 58 p 1= 5, 3 p 2= 7, 5 Distanza= 8 p 1= 7, 4 p 2= 6, 3 Distanza= 2 Bersagli in collisione 7
Introdurre le coordinate di p 1 in valori float: p 1 x= 1. 1 p 1 y= 0. 8 v 1 x= 1. 98 v 1 y= 0. 95 Introdurre le coordinate di p 2: p 2 x= 8. 7 p 2 y= 9. 2 v 2 x= -0. 95 v 2 y= -2. 05 Introdurre il valore di soglia in distanza: soglia= 0. 5 8
p 1= 1. 1, 0. 8 p 2= 8. 7, 9. 2 Distanza= 128. 32 p 1= 3. 08, 1. 75 p 2= 7. 75, 7. 15 Distanza= 50. 9689 p 1= 5. 06, 2. 7 p 2= 6. 8, 5. 1 Distanza= 8. 7876 p 1= 7. 04, 3. 65 p 2= 5. 85, 3. 05 Distanza= 1. 7761 p 1= 9. 02, 4. 6 p 2= 4. 9, 1 Distanza= 29. 9344 Bersagli divergenti 9
- Slides: 9