Projet

Général

Profil

« Précédent | Suivant » 

Révision 401

Ajouté par Clement ROCHE il y a presque 3 ans

distance zone a danger + test ok, programme qui RUN sans pb

Voir les différences:

main.c
typedef struct {
float latitude;
float longitude;
} Position ;
} Position ;
typedef struct { //Definition de la structure zone
Position rpos;
float vitmax;
} Zone;
//Fonction ? modifier !!!!!
void traitement(char * trame)
......
//tests_unitaires();
//test_decode_int();
//test_decode_nombre();
//test_decode_latitude();
//test_decode_longitude();
//test_decode_lat_long();
//test_decode_trame();
//test_calcul_distance();
//test_calcul_vitesse();
//test_distance_a_la_plus_proche_zone();
Position P1,P2 ;
Zone zones[] = {
{{}
}
Position P1,P2; //Iniatialisation des structures pos 1 et 2
Zone zones[] = { //Iniatlisation du tableau de structure Zones
{{44.7891220,-3.013},50},
{{44.7887762,-3.012},70}
};
static int cpt=0;
cpt++;
......
float calcule_vitesse(Position p_1,Position p_2) {
float res;
res = calcule_distance(p_1,p_2) * 3600;
res = calcule_distance(p_1,p_2) * 3600; //*3600 pour passer en km/h
return res;
}
int distance_a_la_plus_proche_zone(Position P, Zone r[], int nb_zones, float *d) {
int i,n;
*d = calcule_distance(P, r[0].rpos);
*d = calcule_distance(P, r[0].rpos); //donne la distance entre P et la 1er zone
nb_zones = 0;
n=sizeof(*r);
n=sizeof(*r); //permet d'utiliser la boucle pour en sachant le nombre de zone dans le tableau
for(i=1;i<n;i++) {
if ( calcule_distance(P, r[i].rpos) < *d ) {
if ( calcule_distance(P, r[i].rpos) < *d ) { //Si en balayant les zones, la distance d devient + petite, alors on a une nouvelle zone dangereuse + proche
*d = calcule_distance(P, r[i].rpos);
nb_zones = i;
}
}
return nb_zones;
}
}
//Ajouter vos tests unitaires dans cette fonction.
/*void tests_unitaires_trame_cmp(void){
void tests_unitaires_trame_cmp(void){
if (5!=5){
printf ("Erreur Test unitaire basique.\n");
exit(-1);
......
printf ("Erreur Test unitaire trame_cmp.\n");
exit(-1);
}
}*/
}
void test_decode_int(void) {
if (decode_int('0')!=0) {
......
}
}
void test_distance_a_la_plus_proche_zone(void) {
float d;
int nb_zones;
Position P1;
Zone r[] = {
{{44.7891220,-3.013},50},
{{44.7887762,-3.012},70}
};
decode_trame("$GPGGA,141915.00,4545.0242,N,00306.6039,E,1,05,3.4,499.5,M,,M,,*75", &P1);
if (distance_a_la_plus_proche_zone(P1,r,nb_zones,&d) != 2 ) {
printf("erreur");
exit(-1);
}
}
// Ne pas modifier cette fonction
int main(int argc,char ** argv)
{

Formats disponibles : Unified diff