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 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137
| #include <stdio.h>
#include <math.h>
//je déclare deux tableaux que je vais remplir par la suite.
float coordinatesX [80];
float coordinatesY [80];
int main(int argc, char *argv[]){
int i,x,y,z;
for(i=0;i<20;i++){
coordinatesX [i]= 50;
} // Rempli le tableau coordinateX avec pour les 20 premiers elements la valeur 50 et le reste indefini
for(x=20;x<40;x++){
coordinatesX [x]= 50+(x-19);
}// Le meme tableau de 20 a 29 avec des valeurs de 51 a 71
for(y=40;y<60;y++){
coordinatesX [y]= 70;
} // de 50 a 60 avec la valeur 70
for(z=60;z<80;z++){
coordinatesX [z]= 70 -(z-59);
}// de 60 a 80 avec les valeurs 71 a 49
//Je remplis également le tableaux des coordonnées Y à l'aide de boucle "for" mais avec de valeurs différentes
for(i=0;i<20;i++){
coordinatesY [i] = 5-i;
}
for(x=20;x<40;x++){
coordinatesY [x] = -15;
}
for(y=40;y<60;y++){
coordinatesY [y] = -15+(y-40);
}
for(z=60;z<80;z++){
coordinatesY [z] = 5;
}
vecteurAP(coordinatesY);// j'envoie le tab. de coordonnées Y au vecteur AP
vecteurBP(coordinatesY);//j'envoie le tab. de coordonnées Y au vecteur BP
normeAP(coordinatesX);//J'envoie le tab. de coordonnées X à la fct. norme pour calculer la norme AP
normeBP(coordinatesX);//J'envoie le tab. de coordonnées X à la fct. norme pour calculer la norme BP
}//je désir que les tableaux que j'envoie restent tel que je l'ai remplis indépendemment des calculs que je fais avec à posteriori.
void vecteurAP(float coordinatesY[]);//je déclare ma vonction AP
void vecteurBP(float coordinatesY[]);//Je déclare ma fonction vecteur BP
// Cette fonction prend un tableau a une dimension (un vecteur) de coordonnees et rempli
// Le tableau coordinates YAP avec les elements de ce vecteur auxquels on a soustrait 35.
void vecteurAP (float coordinatesY[]){
float coordinatesYAP [80];//je déclare un nouveau tab. que je vais remplir à l'aide de celui que j'ai remplis précedemment c-à-d coordonnées Y
float l = 70;
int i;
for(i=0;i<80;i++){
coordinatesYAP [i] = coordinatesY [i]-(l/2);
}
normeAP(coordinatesYAP);//une fois mon vecteurYAP remplis à l'aide des coordonnées Y je l'envoie à la fct. norme AP
}//de même que pour la fct vecteur AP mais cette fois ci pour le vecteur BP
void vecteurBP (float coordinatesY[]){
float coordinatesYBP [80];
float l = 70;
int i;
for(i=0;i<80;i++){
coordinatesYBP [i] = coordinatesY [i]+(l/2);
}
normeBP(coordinatesYBP);//une fois mon vecteurYAP remplis à l'aide des coordonnées Y je l'envoie à la fct. norme AP
}
void normeAP(float coordinatesYAP[],float coordinatesX[]);//je déclare mes fcts. normes
void normeBP(float coordinatesYBP[],float coordinatesX[]);
//je les remplis à l'aide des coordonnées X et du vecteur YAP, que j'ai remplis avant, la norme AP
void normeAP (float coordinatesYAP[], float coordinatesX[]){
float normeAP [80];//déclaration du tableau normeAp
int a;
for(a=0;a<80;a++){
normeAP[a] = coordinatesX[a]*coordinatesX[a] + coordinatesYAP[a]*coordinatesYAP[a];
}
for(a=0;a<80;a++){
normeAP[a]= sqrtf(normeAP[a]);
}
// angleAlpha1(normeAP);
angleAlpha2(normeAP);//j'envoi la norme que j'ai calculé à l'angle alpha 2
// angleBeta1(normeAP);
angleBeta2(normeAP);//j'envoi la mème norme que j'ai calculé à l'angle beta 2
}
void normeBP (float coordinatesYBP[], float coordinatesX[]){//même chose que pour la norme AP mais avec les coordonnées YBP et X pour la calculer
float normeBP [80];//déclaration du tab.norme BP
int a;
for(a=0;a<80;a++){
normeBP[a] = coordinatesX[a]*coordinatesX[a] + coordinatesYBP[a]*coordinatesYBP[a];
}
for(a=0;a<80;a++){
normeBP[a]= sqrtf(normeBP[a]);
}
// angleAlpha1(normeBP);
angleAlpha2(normeBP);//j'envoi la norme que j'ai calculé à l'angle alpha 2
// angleBeta1(normeBP);
angleBeta2(normeBP);
}
//void angleAlpha1(float normeAP[], float normeBP []);
void angleAlpha2(float normeAP[], float normeBP []);//Je déclare mes fcts. d'angles
//void angleBeta1(float normeAP[], float normeBP[]);
void angleBeta2(float normeAP[], float normeBP[]);
//et j'utilise les tableaux que j'ai remplis avant pour remplir un autre tab. avec les angles
void angleAlpha2 (float normeAP[], float normeBP[]){
float angleAlpha2[80];
float l = 70;
int a;
for(a=0;a<80;a++){
angleAlpha2[a]= (powf(l,2) + powf(normeAP[a],2) - powf(normeBP[a],2)) /
(2 * l * normeAP[a]);
}
}
void angleBeta2 (float normeAP[], float normeBP[]){
float angleBeta2[80];
float l = 70;
int a;
for(a=0;a<80;a++){
angleBeta2[a]= (powf(l,2) + powf(normeBP[a],2) - powf(normeAP[a],2)) /
(2 * l * normeBP[a]);
}
impression(angleBeta2);//j'envoie mon tab. d'angles à la fct imprimer
}
//comme étape intermédiaire je décide d'imprimer les supposés angles grace à cette fct...mais ça ne marche pas.
void impression(float angleBeta2[]);
void impression(float angleBeta2[]){
int a;
for(a=0;a<80;a++){
printf("%f\n", angleBeta2[a]);
}
} |
Partager