Révision 224
Ajouté par gasacco il y a presque 4 ans
branch/sacco/sp4a12/main.c | ||
---|---|---|
0};
|
||
|
||
|
||
float a =10;
|
||
float b = (float) 1;
|
||
float c = (float) 1/6;
|
||
float d = (float) 1/60;
|
||
float e = (float) 1/600;
|
||
float f = (float) 1/6000;
|
||
float g = (float) 1/60000;
|
||
float h = (float) 1/600000;
|
||
|
||
|
||
typedef struct
|
||
{
|
||
float latitude;
|
||
... | ... | |
{
|
||
return ValDecimale;
|
||
}
|
||
}
|
||
|
||
}
|
||
|
||
int trame_cmp(char* a,char* b){
|
||
int i =0;
|
||
... | ... | |
}
|
||
|
||
|
||
float conversion_Latitude_sexa_dec(char *coord)
|
||
float conversion_Lat_sexa_dec(char coord[])
|
||
{
|
||
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++)
|
||
float Coeff_Ent[5] = {a,b,c,d};
|
||
float Coeff_Dec[4] = {e,f,g,h};
|
||
int i =0;
|
||
int k =0;
|
||
float nb_Convert=0;
|
||
int elem;
|
||
for (i=0; i< 9;i++)
|
||
{
|
||
Dec_Coord_Sexa =Dec_Coord_Sexa*10+decode_int(coord[i]);
|
||
if (i <= 3)
|
||
{
|
||
elem = decode_int(coord[i]);
|
||
nb_Convert = nb_Convert + (float) elem * Coeff_Ent[i];
|
||
}
|
||
else if (i>=5)
|
||
{
|
||
elem = decode_int(coord[i]);
|
||
nb_Convert = nb_Convert + (float) elem * Coeff_Dec[k];
|
||
k++;
|
||
}
|
||
}
|
||
float Coord_Dec = (float) Degre_Dec+(float) (Reste_Sexa*10000+Dec_Coord_Sexa)/600000;
|
||
return Coord_Dec;
|
||
return nb_Convert;
|
||
|
||
}
|
||
|
||
float conversion_Long_sexa_dec(char * coord)
|
||
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++)
|
||
float Coeff_Ent[5] = {0,a,b,c,d};
|
||
float Coeff_Dec[4] = {e,f,g,h};
|
||
int i =0;
|
||
int k =0;
|
||
float nb_Convert=0;
|
||
int elem;
|
||
for (i=0; i< 10;i++)
|
||
{
|
||
Dec_Coord_Sexa = Dec_Coord_Sexa*10 + decode_int(coord[i]);
|
||
if (i <= 4)
|
||
{
|
||
elem = decode_int(coord[i]);
|
||
nb_Convert = nb_Convert + (float) elem * Coeff_Ent[i];
|
||
}
|
||
else if (i>=6)
|
||
{
|
||
elem = decode_int(coord[i]);
|
||
nb_Convert = nb_Convert + (float) elem * Coeff_Dec[k];
|
||
k++;
|
||
}
|
||
}
|
||
return nb_Convert;
|
||
|
||
float Coord_Dec = (float) Degre_Dec + (float) Reste_Sexa/60 + (float) Dec_Coord_Sexa/600000;
|
||
return Coord_Dec;
|
||
|
||
}
|
||
|
||
float conversion(char * coord)
|
||
... | ... | |
}
|
||
if (i==4)
|
||
{
|
||
P.latitude = conversion_Latitude_sexa_dec(coord);
|
||
P.latitude = conversion_Lat_sexa_dec(coord);
|
||
return P.latitude;
|
||
}
|
||
else if (i==5)
|
||
... | ... | |
}
|
||
p->latitude = conversion(Lat);
|
||
p->longitude = conversion(Long);
|
||
|
||
return 1;
|
||
}
|
||
else
|
||
{
|
||
return -1;
|
||
return 0;
|
||
}
|
||
}
|
||
|
||
|
||
|
||
//Ajouter vos tests unitaires dans cette fonction.
|
||
void tests_unitaires(void){
|
||
... | ... | |
printf ("Erreur Test unitaire trame_cmp.\n");
|
||
exit(-1);
|
||
}
|
||
if (conversion_Latitude_sexa_dec("3723.2475")-(float) 37.387458>0.0001){
|
||
if (conversion_Lat_sexa_dec("3723.2475")-(float) 37.387458>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){
|
||
if (conversion_Lat_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("00008.0015")-(float)0.133358>0.0001){
|
||
printf("Erreur Test unitaire conversion_Latitude_sexa_dec.\n");
|
||
exit(-1);
|
||
|
||
}
|
||
if (conversion("3723.2475")-(float)37.387458>0.0001){
|
||
printf("Erreur Test unitaire conversion.\n");
|
||
... | ... | |
|
||
// Ne pas modifier cette fonction
|
||
int main(int argc,char ** argv)
|
||
{
|
||
{
|
||
|
||
tests_unitaires();
|
||
test_decode_int();
|
Formats disponibles : Unified diff
Amélioration des fonctions de conversions et fonction decode_trame fonctionnelle