Révision 403
Ajouté par Awa Semou FAYE il y a presque 3 ans
branch/faye_awasemou/sp4a12/main.c | ||
---|---|---|
|
||
// declaration d'une stucture permettant de decrire une zone renseignant la position et la vitesse limite associ?e
|
||
typedef struct {
|
||
Position rpos;
|
||
float vitmax;
|
||
Position rpos;
|
||
float vitmax;
|
||
} Zone ;
|
||
|
||
//cr?ation d'une table de zone dangereuse
|
||
... | ... | |
//fonction qui calcule la distance ? la plus proche zone
|
||
int distance_a_la_proche_zone(Position p, Zone r[],int nb_zones, float *d)
|
||
{
|
||
float diCalculee;// variables contenant la valeur de la distance calculee entre la position courante et l element[i] du tableau de zones dangereuses
|
||
int i, index;//i=variable pour parcourir tout le tableau de zones et index=i qui minimise le tableau de zones par rapport a la distance calculee
|
||
*d=calcul_distance(p,r[0].rpos);//on calcule la distance entre la position courante du vehicule et le premier element du tableau de zones dangereuses
|
||
if(nb_zones>0)
|
||
{
|
||
for (i=1;i<nb_zones;i++)// on parcoure le tableau de zones de 1 a la valeurs maximales de zones
|
||
{
|
||
diCalculee=calcul_distance(p,r[i].rpos);//on calcule la distance entre la position courante du vehicule et l'element[i] du tableau de zones dangereuses
|
||
if(*d>diCalculee) //si la distance calcul?e a partir du 1ere element du tableau est superieur a la distance calculee avec lelement dindice i du table
|
||
{
|
||
*d=diCalculee;// alors on affecte a la variable d la nouvelle distance la plus proche des zones dangereuses
|
||
index=i;//a index on affecte la valeur de i qui minimise le tableau
|
||
|
||
}
|
||
}
|
||
return index;
|
||
return d;
|
||
|
||
}else
|
||
return -1;// on retourne -1 si la table est vide
|
||
|
||
}
|
||
|
||
|
||
... | ... | |
//tests unutaires de la fonction conversionLatitude
|
||
|
||
if (conversionLatitude("3723.2475")-37,38745833 > 0.0001){
|
||
printf ("Erreur Test unitaire conversion Latitude.\n");
|
||
exit(-1);
|
||
printf ("Erreur Test unitaire conversion Latitude.\n");
|
||
exit(-1);
|
||
}
|
||
|
||
if (conversionLatitude("4545.0000")-45.7500 > 0.0001){
|
||
printf ("Erreur Test unitaire conversion Latitude.\n");
|
||
exit(-1);
|
||
}
|
||
printf ("Erreur Test unitaire conversion Latitude.\n");
|
||
exit(-1);
|
||
}
|
||
|
||
//tests unutaires de la fonction conversionLongitude
|
||
|
||
if (conversionLongitude("00306.6039")- 3.110065 > 0.0001){
|
||
printf ("Erreur Test unitaire conversion Longitude.\n");
|
||
exit(-1);
|
||
printf ("Erreur Test unitaire conversion Longitude.\n");
|
||
exit(-1);
|
||
}
|
||
|
||
|
||
if (conversionLongitude("00306.6036")- 3.11006 > 0.0001){
|
||
printf ("Erreur Test unitaire conversion Longitude.\n");
|
||
exit(-1);
|
||
printf ("Erreur Test unitaire conversion Longitude.\n");
|
||
exit(-1);
|
||
}
|
||
/* //tests unutaires de la fonction decode_trame
|
||
if (decode_trame("00306.6036")- 3.11006 > 0.0001){
|
||
printf ("Erreur Test unitaire decode_trame.\n");
|
||
exit(-1);
|
||
}
|
||
//tests unutaires de la fonction decode_trame
|
||
/* if(decode_trame
|
||
printf("Erreur Test decode trame \n");
|
||
exit(-1);
|
||
}
|
||
//tests unutaires de la fonction calcul_distance
|
||
if (calcul_distance("00306.6036")- 3.11006 > 0.0001){
|
||
printf ("Erreur Test unitaire calcul_distance.\n");
|
||
... | ... | |
printf ("Erreur Test unitaire calcul_distance_a_la_proche_zone.\n");
|
||
exit(-1);
|
||
}*/
|
||
}
|
||
// Test unitaire de la fonction_generique
|
||
if (fonction_generique(",4545.0242") - 45.75040333 > 0.0001 )
|
||
{
|
||
printf("Erreur Test unitaire conversion latitude !!! \n");
|
||
exit(-1);
|
||
}
|
||
if (fonction_generique("00306.6039")- 3.110065 > 0.0001)
|
||
{
|
||
printf("Erreur Test unitaire conversion longitude !!! \n");
|
||
exit(-1);
|
||
}
|
||
}
|
||
|
||
|
||
// Ne pas modifier cette fonction
|
Formats disponibles : Unified diff
modification fonction calcul distancee a la proche zone