blob: f53abed27de07cbc4762dcba9ca4c16ece00e73e (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
|
#include<iostream>
#include<cmath>
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)<<std::endl;
std::cout<< " Norme de u : " << norme(u)<<std::endl;
return 0;
}
|