Révision 369
Ajouté par anclaud il y a presque 4 ans
main.c | ||
---|---|---|
int i, res = 0;
|
||
for (i=0;i<n;i++)
|
||
{
|
||
res = res + pow(10,n-i-1)*decode_int(ch[i]);
|
||
res = res*10 + decode_int(ch[i]);
|
||
}
|
||
return res;
|
||
}
|
||
... | ... | |
|
||
// Fonction latitude : (format ddmm.mmmm)
|
||
|
||
float conv_latitude(char lat_sexa)
|
||
float conv_latitude(char* lat_sexa)
|
||
{
|
||
float lat_dec=0;
|
||
int degres_lat = 0;
|
||
float minute_lat = 0;
|
||
int i;
|
||
|
||
degres_lat = decode_nombre(lat_sexa,2);
|
||
printf("%d \n", degres_lat);
|
||
minute_lat = (lat_sexa-degres_lat*100)/60;
|
||
printf("%f \n", minute_lat);
|
||
|
||
lat_dec = degres_lat + minute_lat;
|
||
degres_lat = decode_nombre(lat_sexa,4);
|
||
for (i=5;i<9;i++)
|
||
{
|
||
degres_lat += (decode_int(lat_sexa[i]))*pow(10,-i+4);
|
||
}
|
||
lat_dec = (int) (degres_lat/100);
|
||
lat_dec += (degres_lat-lat_dec*100)/60;
|
||
return lat_dec;
|
||
}
|
||
|
||
|
||
// Fonction longitude : (format dddmm.mmmm)
|
||
|
||
float conv_longitude (char lat_sexa)
|
||
float conv_longitude (char* long_sexa)
|
||
{
|
||
float long_dec=0;
|
||
int degres_long = 0;
|
||
int i;
|
||
|
||
degres_long = decode_nombre(long_sexa,5);
|
||
for (i=6;i<10;i++)
|
||
{
|
||
degres_long += (decode_int(long_sexa[i]))*pow(10,-i+5);
|
||
}
|
||
long_dec = (int) (degres_long/100);
|
||
long_dec += (degres_long-long_dec*100)/60;
|
||
return long_dec;
|
||
}
|
||
|
||
|
||
// Fonction test unitaire latitude
|
||
void test_conv_latitude(void)
|
||
{
|
||
... | ... | |
printf("%d \n", res_lat);
|
||
}
|
||
|
||
float Conversion_gen (char * chaine){ //Cette fonction convertie soit une latitude soit une longitude en degr?.
|
||
int cpt = 0;
|
||
while (chaine[cpt]!='\0'){
|
||
cpt++;
|
||
}
|
||
|
||
if (cpt == 9){
|
||
return conv_latitude(chaine);
|
||
}
|
||
else if(cpt==10){
|
||
return conv_longitude(chaine);
|
||
}
|
||
else{
|
||
return 1000.0;
|
||
}
|
||
}
|
||
|
||
// Ne pas modifier cette fonction
|
||
int main(int argc,char ** argv)
|
||
... | ... | |
traitement(trame);
|
||
|
||
return 0;
|
||
}
|
||
}
|
||
|
||
|
||
/*
|
||
float decode_nombre (char * trame) {
|
||
int i=0;
|
||
int j=0,memoire=0;
|
||
long res3=0;
|
||
char tab[9];
|
||
long res4=0;
|
||
while (i<10)
|
||
{
|
||
if (decode_int(trame[i])!=(-1))
|
||
{
|
||
tab [j]=decode_int(trame[i]);
|
||
res3 = res310+tab[j];
|
||
memoire++;
|
||
}
|
||
i++;
|
||
j++;
|
||
}
|
||
/ while (i<12)
|
||
{
|
||
if (decode_int(trame[i]=='S'))
|
||
{
|
||
|
||
res4 = res3 - (2*res3);
|
||
printf("%d\n",res4);
|
||
}
|
||
else
|
||
{
|
||
res4 = res3;
|
||
}
|
||
i++;
|
||
} /
|
||
|
||
switch(trame[memoire+2])
|
||
{
|
||
case 'S' :
|
||
res3 = res3(-1);
|
||
break;
|
||
case 'W' :
|
||
res3 = res3(-1);
|
||
break;
|
||
}
|
||
|
||
|
||
|
||
return res3;
|
||
|
||
}
|
||
float Conversion_sexagesimale(long nb_sexa)
|
||
{
|
||
float result=0, result_min=0;
|
||
int degres=0;
|
||
|
||
degres=nb_sexa/1000000;
|
||
result_min=(nb_sexa-(degres1000000));
|
||
result_min=(reste/10000);
|
||
result=(degres+(reste/60));
|
||
|
||
return result;
|
||
}
|
||
|
||
*/
|
Formats disponibles : Unified diff
Fonctions de conversion longitude et latitude OK