Révision 396
Ajouté par Mafall FALL il y a presque 3 ans
main.c | ||
---|---|---|
#include <stdio.h>
|
||
#include <stdlib.h>
|
||
#include <stdlib.h>
|
||
#include <math.h>
|
||
#include <strings.h>
|
||
#include "trame.h"
|
||
|
||
... | ... | |
int decode_int(char c) // declaration de la fonction qui renvoie le nombre associ? au caractere
|
||
{
|
||
int i=0;
|
||
i=c-'0';
|
||
i=c-'0'; // calcule du nombre
|
||
return i;
|
||
}
|
||
|
||
... | ... | |
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 ;// contienchar* chainet le nombre d?cod?
|
||
int somme=0 ;// contien char* chain et le nombre d?cod?
|
||
for (i=0;i<n;i++)
|
||
{
|
||
somme=(somme*10) + decode_int(ch[i]);
|
||
... | ... | |
}
|
||
|
||
|
||
float convert_latitude( char chaine[] )
|
||
float convers_latitude( char *lat )/* fonction qui convertie une longitude en nombre flottant */
|
||
|
||
{
|
||
int i=0,vir=0;
|
||
float lat=0;
|
||
for (i=0; i!='\n';i++){
|
||
if (chaine[i]==',')
|
||
{
|
||
vir+=1;
|
||
}
|
||
if (vir==2){
|
||
/*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(lat,4);// on d?code les 4 premiers caract?res en chiffres
|
||
for (i=5;i<9;i++)
|
||
{
|
||
val_sexa+= (decode_int(lat[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;
|
||
|
||
lat=decode_nombre(chaine[],2);
|
||
}
|
||
|
||
}
|
||
|
||
|
||
|
||
|
||
}
|
||
|
||
float convert_longitude( )
|
||
... | ... | |
//Ajouter vos tests unitaires dans cette fonction.
|
||
void tests_unitaires(void){
|
||
|
||
|
||
|
||
|
||
if (convers_latitude("3723.2475,N") - 37.387459 > 0.0001 )
|
||
{
|
||
printf("Erreur test latitude !!! \n");
|
||
exit(-1);
|
||
}
|
||
|
||
|
||
if ( decode_nombre("3103", 2)!= 31){
|
||
printf("Erreur Test unitaire decode_nombre.\n");
|
||
exit(-1);
|
Formats disponibles : Unified diff
Conversion latitude marche bien