Révision 210
Ajouté par beclement2 il y a presque 4 ans
branch/CLEMENT/sp4a12/main.c | ||
---|---|---|
|
||
}
|
||
|
||
float latitude(char * chaine){
|
||
float conv_lat(char * latitude){
|
||
float val = decode_nombre(latitude,4);
|
||
float res = 0;
|
||
for (int i = 5; i < 9;i++){
|
||
val += (decode_int(latitude[i]))*pow(10,-i+4);
|
||
}
|
||
res = (int)(val/100);
|
||
res += (val - res*100)/60;
|
||
return res;}
|
||
|
||
int i = 0;
|
||
int j = 0;
|
||
float resultat = 0;
|
||
int temporaire = 0;
|
||
char tempo;
|
||
|
||
while(chaine[i] != NULL){ //Calcul de la taille de la chaine type
|
||
i++;
|
||
float conv_long(char * longitude){
|
||
float val = decode_nombre(longitude,5);
|
||
float res = 0;
|
||
for (int i = 6; i < 10;i++){
|
||
val += (decode_int(longitude[i]))*pow(10,-i+5);
|
||
}
|
||
res = (int)(val/100);
|
||
res += (val - res*100)/60;
|
||
return res;}
|
||
|
||
for(j=0; j<4; j++){ //On v?rifie que les premiers caract?res sont identiques
|
||
if (chaine[j] != "."){
|
||
temporaire = temporaire + decode_int(chaine[j]) * pow(10,(3-j));
|
||
}
|
||
|
||
|
||
|
||
|
||
float conversion(char * chaine){
|
||
int cpt = 0;
|
||
while (chaine[cpt]!='\0'){
|
||
cpt++;
|
||
}
|
||
|
||
return resultat;
|
||
|
||
|
||
|
||
|
||
if (cpt == 9){
|
||
return conv_lat(chaine);
|
||
}
|
||
else if(cpt==10){
|
||
return conv_long(chaine);
|
||
}
|
||
else{
|
||
return 1000.0;
|
||
}
|
||
}
|
||
|
||
|
||
float longitude(float ch)
|
||
{
|
||
|
||
|
||
|
||
}
|
||
|
||
//Ajouter vos tests unitaires dans cette fonction.
|
||
void tests_unitaires(void){
|
||
if (5!=5){
|
||
... | ... | |
printf ("Erreur Test unitaire test_decode_int.\n");
|
||
exit(-1);
|
||
}
|
||
if(test_decode_nombre() != 987){
|
||
printf ("Erreur Test unitaire test_decode_nombre.\n");
|
||
if (fabs(conv_lat("3723.2475")-37.387458)>= pow(10,-6)){ // On s'arrange pour avoir le m?me arrondis que code blocks.
|
||
printf ("Erreur Test unitaire conv_lat.\n");
|
||
exit(-1);
|
||
}
|
||
if (fabs(conversion("00306.6036")-3.11006)>= pow(10,-6)){ // On s'arrange pour avoir le m?me arrondis que code blocks.
|
||
printf ("Erreur Test unitaire conversion.\n");
|
||
exit(-1);
|
||
}
|
||
if (fabs(conversion("3723.2475")-37.387458)>= pow(10,-6)){ // On s'arrange pour avoir le m?me arrondis que code blocks.
|
||
printf ("Erreur Test unitaire conversion.\n");
|
||
exit(-1);
|
||
}
|
||
|
||
|
||
}
|
||
|
||
// Ne pas modifier cette fonction
|
||
int main(int argc,char ** argv)
|
||
{
|
||
printf("Test %f", latitude("3723.2475"));
|
||
{
|
||
|
||
tests_unitaires();
|
||
|
Formats disponibles : Unified diff
Fin TP1, la fonction convertir latitude peut être à revoir car on fait une division non entière.