Projet

Général

Profil

« Précédent | Suivant » 

Révision 210

Ajouté par beclement2 il y a presque 4 ans

Fin TP1, la fonction convertir latitude peut être à revoir car on fait une division non entière.

Voir les différences:

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