Projet

Général

Profil

« Précédent | Suivant » 

Révision 397

Ajouté par Mafall FALL il y a presque 3 ans

fonction Conversion longitude

Voir les différences:

main.c
int decode_nombre(char * ch, int n) // fonction qui recupere les n premiers chiffres d'une chaine
{
int i; // pour parcourir les caract?res
int somme=0 ;// contien char* chain et le nombre d?cod?
int somme=0 ;// contient char* chain et le nombre d?cod?
for (i=0;i<n;i++)
{
somme=(somme*10) + decode_int(ch[i]);
......
}
float convert_longitude( )
float convers_longitude( char* longi )
{
/*3723.2475,N signifie 37?23,2475' de
latitude Nord (c.-?-d. 37? et 23,2475 minutes or il ya 60 minutes dans 1?), ou
encore +37,387458?), en d?cimal*/
float res_convers=0; // variable contenant le resultat de la conversion
int i;
float val_sexa= decode_nombre(longi,5);// on d?code les 4 premiers caract?res en chiffres
for (i=6;i<10;i++)
{
val_sexa+= (decode_int(longi[i]))*pow(10,-i+4);// d?codage de la partie d?cimale
}
res_convers=(int)(val_sexa/100);// on recueille les degr?s (exemple 37)
res_convers= res_convers + (val_sexa - res_convers*100)/60;// conversion des minutes en degr? et ajout ? la somme
return res_convers;
......
void tests_unitaires(void){
if (convers_longitude("00306.6036,E")- 3.110060 != 0.000000)
{
printf("Erreur test longitude !!! \n");
exit(-1);
if (convers_latitude("3723.2475,N") - 37.387459 > 0.0001 )
{
printf("Erreur test latitude !!! \n");

Formats disponibles : Unified diff