Projet

Général

Profil

« Précédent | Suivant » 

Révision 359

Ajouté par Lilian MEMBRE il y a environ 3 ans

Latitude/Longitude en un ok

Voir les différences:

branch/MEMBRE/sp4a12/main.c
}
return longi;
}
//Fonction latitude/longitude nombre flottant
float decode_lat_long (char c[]) {
int n=0, degre=0,i=1,b;
float min=0, secondes=0, res=0,p;
do{
n++;
} while (c[n]!='.');
if (n==4) {
degre = (c[0]-48)*10+(c[1]-48);
min = (c[2]-48)*10+(c[3]-48);
} else {
degre = (c[0]-48)*100+(c[1]-48)*10+(c[2]-48);
min = (c[3]-48)*10+(c[4]-48);
}
n++;
do {
p=1;
for (b=0;b<i;b++) {
p=p*0.1;
}
secondes= secondes + (c[n]-48)*p;
i++;
n++;
} while (c[n]!='\0');
res = degre + (min+secondes)/60;
return res;
}
//Test de latitude
int test_latitude()
......
exit(-1);
}
}
//Test de latitude/longitude
void test_decode_lat_long(void) {
float a,b,c,e;
a= 37.387458 - decode_lat_long("3723.2475");
c= 45.760703 - decode_lat_long("4545.6422");
b=3.11006 - decode_lat_long("00306.6036");
e= 3.110077 - decode_lat_long("00306.6046");
if (a*a > 0.000001){
printf("erreur");
exit(-1);
}
if (b*b > 0.000001){
printf("erreur2");
exit(-1);
}
if (c*c > 0.000001){
printf("erreur2");
exit(-1);
}
if (e*e > 0.000001){
printf("erreur2");
exit(-1);
}
}
//Fonction ? modifier !!!!!
void traitement(char * trame)
......
{
printf("Erreur test latitude");
exit(-1);
}
/* test latitude/longitude */
float a,b,c,e;
a= 37.387458 - decode_lat_long("3723.2475");
c= 45.760703 - decode_lat_long("4545.6422");
b=3.11006 - decode_lat_long("00306.6036");
e= 3.110077 - decode_lat_long("00306.6046");
if (a*a > 0.000001){
printf("erreur");
exit(-1);
}
if (b*b > 0.000001){
printf("erreur2");
exit(-1);
}
if (c*c > 0.000001){
printf("erreur2");
exit(-1);
}
if (e*e > 0.000001){
printf("erreur2");
exit(-1);
}
}

Formats disponibles : Unified diff