#include #include struct vecteur { int dimension; char nom; double *coords; }; vecteur* init ( int taille, char nom) { vecteur * ret = new vecteur; ret->dimension= taille; ret->coords = new double[taille]; ret->nom=nom; for ( int i =0; i < taille; i ++) { ret->coords[i]=0; } return ret; } vecteur * oppose ( vecteur * vect) { vecteur * ret = init(vect->dimension, vect->nom); for ( int i =0; i < vect->dimension; i ++) { ret->coords[i]= -vect->coords[i]; } return ret; } vecteur * somme ( vecteur * vect1, vecteur * vect2) { if ( vect1->dimension == vect2->dimension) { char nom = 's'; vecteur * ret=init ( vect1->dimension, nom); for ( int i =0; i < ret->dimension; i ++) { ret->coords[i]= vect1->coords[i]+ vect2->coords[i]; } return ret; } return 0; } double scalaire ( vecteur * u, vecteur * v ) { if ( u->dimension != v->dimension) { std::cout<< " erreur " << std::endl; return 0; } double ret=0; for ( int i = 0; i < u->dimension; i ++) { ret += u->coords[i]*v->coords[i]; } return ret; } double norme ( vecteur * u ) { return sqrt(scalaire ( u,u)); } int main () { vecteur * u = init(2, *"u"); vecteur * v = init(2, *"v"); v->coords[0]= 0; v->coords[1]= 1; u->coords[0]= 45; u->coords[1]= 1; std::cout<< scalaire(u,v)<