Projet

Général

Profil

« Précédent | Suivant » 

Révision 29

Ajouté par gasacco il y a environ 4 ans

Codage des fonctions conversions en décimal de la latitude et de la longitude

Voir les différences:

branch/sacco/sp4a12/main.c
Somme =Somme + Entiere*pow(10,n-1-i);
}
printf("%ld", Somme);
return(Somme);
}
float ConversionSexaDec(char coord)
float conversion_Latitude_sexa_dec(char *coord)
{
float Ent_Coord_Sexa = decode_nombre(coord, 4);
float Dec_Coord_Sexa;
for (int i =5;i<9;i++)
int Part_Ent_Sexa = decode_nombre(coord, 4);
int Degre_Dec = decode_nombre(coord, 2);
int Reste_Sexa = Part_Ent_Sexa%100;
int Dec_Coord_Sexa = 0;
for (int i=5;i<9;i++)
{
Dec_Coord_Sexa =Dec_Coord_Sexa*10+decode_int(coord[i]);
}
float Coord_Sexa = (float) Ent_Coord_Sexa +(float) Dec_Coord_Sexa/10000;
float Coord_Dec = (float) Degre_Dec+(float) (Reste_Sexa*10000+Dec_Coord_Sexa)/600000;
return Coord_Dec;
}
float conversion_Long_sexa_dec(char * coord)
{
int Part_Ent_Sexa = decode_nombre(coord, 5);
int Degre_Dec = decode_nombre(coord, 3);
int Reste_Sexa = Part_Ent_Sexa%100;
int Dec_Coord_Sexa = 0;
for (int i = 6; i<10; i++)
{
Dec_Coord_Sexa = Dec_Coord_Sexa*10 + decode_int(coord[i]);
}
float Coord_Dec = (float) Degre_Dec + (float) Reste_Sexa/60 + (float) Dec_Coord_Sexa/600000;
return Coord_Dec;
}
//Ajouter vos tests unitaires dans cette fonction.
......
}
if (trame_cmp("$APRMC...", "GPGGA")!=0){
printf ("Erreur Test unitaire trame_cmp.\n");
exit(-1);
exit(-1);
}
if (conversion_Latitude_sexa_dec("3723.2475")-(float) 37.387459>0.0001){
printf("Erreur Test unitaire conversion_Latitude_sex_dec 1.\n");
exit(-1);
}
if (conversion_Latitude_sexa_dec("0045.0000")-(float) 0.75>0.0001){
printf("Erreur Test unitaire conversion_Latitude_sexa_dec.\n");
exit(-1);
}
if (conversion_Long_sexa_dec("00306.6036")-3.11006>0.0001){
printf("Erreur Test unitaire conversion_Latitude_sexa_dec.\n");
exit(-1);
}
if (conversion_Long_sexa_dec("00008.0015")-0.133358>0.0001){
printf("Erreur Test unitaire conversion_Latitude_sexa_dec.\n");
exit(-1);
}
}
void test_decode_int(void)

Formats disponibles : Unified diff