Index: branch/MORSY/sp4a12/main.c
===================================================================
--- branch/MORSY/sp4a12/main.c	(revision 441)
+++ branch/MORSY/sp4a12/main.c	(revision 442)
@@ -1,330 +1,795 @@
-#include <stdio.h>
-#include <stdlib.h>
-#include <strings.h>
-#include<math.h>
+#include <stdio.h>
+
+#include <stdlib.h>
+
+#include <string.h>
+
+#include<math.h>
+
 #include "trame.h"
 
 
- #define PI 3.14159
 
 
+
+#define PI 3.14159
+
+
+
+
+
+
+
 typedef struct {
+
     float latitude;
-    float longtitude;
-    }position;
 
+    float longtude;
 
-
-//Trames de tests à modifier si nécessaire.
-char * trames[]=  {"$GPGSV,3,2,10,15,03,077,,18,04,041,42,19,85,271,,20,08,214,*7C",
-                    "$GPGSV,3,3,10,22,39,053,50,28,15,320,*7E",
-                    "$GPRMC,141914.00,A,4545.6424,N,00306.6036,E,0.4,99.4,010206,,*0C",
-                    "$GPGLL,4545.6424,N,00306.6036,E,141914.00,A*0E",
-                    "$GPGGA,141914.00,4545.0000,N,00306.6036,E,1,05,3.4,499.3,M,,M,,*7D",
-                    "$GPGSA,A,3,,03,,22,14,,01,,18,,,,3.9,3.4,1.9*39",
-                    "$GPVTG,99.4,T,,M,0.4,N,0.7,K*57",
-                    "$GPZDA,141914.00,01,02,2006,00,00*69",
-                    0};
-
-//Fonction à modifier !!!!!
+    }position;
+
+
+
+
+
+typedef struct {
+
+    position pos;
+
+    float vitesse;
+
+    }zone;
+
+
+
+//Trames de tests à modifier si nécessaire.
+
+char * trames[]=  {"$GPGSV,3,2,10,15,03,077,,18,04,041,42,19,85,271,,20,08,214,*7C",
+
+                    "$GPGSV,3,3,10,22,39,053,50,28,15,320,*7E",
+
+                    "$GPRMC,141914.00,A,4545.6424,N,00306.6036,E,0.4,99.4,010206,,*0C",
+
+                    "$GPGLL,4545.6424,N,00306.6036,E,141914.00,A*0E",
+
+                    "$GPGGA,141914.00,4545.0000,N,00306.6036,E,1,05,3.4,499.3,M,,M,,*7D",
+
+                    "$GPGSA,A,3,,03,,22,14,,01,,18,,,,3.9,3.4,1.9*39",
+
+                    "$GPVTG,99.4,T,,M,0.4,N,0.7,K*57",
+
+                    "$GPZDA,141914.00,01,02,2006,00,00*69",
+
+                    0};
+
+
+
+//defenir la variable zone por la fonction distance_a_la_proche_zpne
+
+zone zones[]= {
+
+    {{44.788776, -3.01200}, 50},
+
+    {{44.789122, -3.01300}, 70},
+
+    {{45.896654, 3.224569}, 60},
+
+    {{46.251478, 4.000000}, 80},
+
+    {{47.353711, 5.199235}, 90},
+
+};
+
+int nombre_zone=5;// defenir nombre de zones qui es la taille du variable zones
+
+//Fonction à modifier !!!!!
+
 void traitement(char * trame)
+
 {
+
     static int cpt=0;
+
     cpt++;
+
     position p;
 
-    if (trame_cmp(trame, "GPGGA")==1){
+
+
+    if (trame_cmp(trame, "GPGGA")==1){// verfifer les trames qui commencent par "GPGGA"
+
             printf("%s\n",trame);
+
             decode_trame(trame,&p);
-            printf("latitude= %f , longtude= %f \n",p.latitude,p.longtitude);
+
+            printf("latitude= %f , longtude= %f \n",p.latitude,p.longtude);//afficher longtude et latitude de chaque trame en valeur flottant
+
     }
 
+
+
 }
-int decode_int(char c){
+
+int decode_int(char c){  //conversion caractere en ascii en nombre entier
+
     int y;
+
     int x=c;
-    if (x>=48 && x<=58){
+
+    if (x>=48 && x<=58){         //les chiffres de 0 a 9 sont rntre 48 et 58 dans le code Ascii
+
          y=x-48;
+
     }
+
     else{
+
         y =-1;
+
     }
+
     return y;
+
 }
 
+
+
 int trame_cmp(char*trame , char*type){
+
     int i=0,s=0,y;
-    while(trame[i+1]==type[i] && type[i]!="/0"){
+
+    while(trame[i+1]==type[i] && type[i] != '/0' ){
+
         i=i+1;
+
         s=s+1;
+
     }
+
     int x=strlen(type);
+
     if(s==x){
+
         y=1;
+
     }
+
     else{
+
         y=0;
+
     }
 
+
+
     return y;
 
- }
-
-int decode_nombre(char *ch,int n){
-    int i,j,p;
+
+
+}
+
+
+
+int decode_nombre(char *ch,int n){ // renvoie les valeur decimales de n premiers caracteres
+
+   int i,j,p;
+
     int s=0;
+
     for (i=0;i<n;i++){
+
             p=1;
+
         for(j=0;j<n-1-i;j++){
+
             p=p*10;
+
         }
+
         int a=decode_int(ch[i]);
+
         s=s+a*p;
+
     }
+
     return s;
+
 }
 
-/*float latitude (char*c){
-    int i=0,degre;
-    float secondes=0,sommes,minute=0;
-    degre=decode_int(c[0])*10+decode_int(c[1]) ;
-    secondes=(decode_int(c[5])*1000+decode_int(c[6])*100+decode_int(c[7])*10+decode_int(c[5]))/10000;
-    minute=(decode_int(c[2])*10+decode_int(c[3])+secondes)/60;
-    sommes=degre+minute;
-    return sommes;
-}*/
 
 
+int decode_nombre2(char *ch,int i,int n)  // renvoie les valeurs decimales du n caracteres a partir de i
 
-/*float longtitude (char*c){
-    int i=0,degre;
-    float secondes=0,sommes,minute=0;
-    degre=decode_int(c[0])*100+decode_int(c[1])*10+decode_int(c[2]) ;
-    secondes=secondes+(decode_int(c[6])*1000+decode_int(c[7])*100+decode_int(c[8])*10+decode_int(c[9]))/10000;
-    minute=minute+(decode_int(c[3])*10+decode_int(c[4])+secondes)/60;
-    sommes=sommes+degre+minute;
-    return sommes;
-}*/
+{
 
-
-float lat_long (char c[]) {
-    int n=0, degre=0,i=1,b;
-    float min=0, secondes=0, res=0,p;
+    int res=0;
 
+    int j;
 
-    do{
-        n++;
-    } while (c[n]!='.');
+    for(j=i;j<i+n;j++)
 
-    if (n==4) {
-        degre = (c[0]-48)*10+(c[1]-48);
-        min = (c[2]-48)*10+(c[3]-48);
-    } else {
-        degre = (c[0]-48)*100+(c[1]-48)*10+(c[2]-48);
-        min = (c[3]-48)*10+(c[4]-48);
+    {
+
+        res=(res*10)+decode_int(ch[j]);
+
     }
 
-    n++;
-    do {
-        p=1;
-        for (b=0;b<i;b++) {
-            p=p*0.1;
+    return res;
+
+}
+
+
+
+float latitude (char*c){            //retrouver la valeur du latitude codee en sexagesimal en nombre flottants
+
+
+
+    int i=0,degre, secondes, minute;
+
+    double sommes;
+
+    while (c[i]!='.'){
+
+        i+=1;
+
+    }
+
+    if (i==4){
+
+        degre=decode_int(c[0])*10+decode_int(c[1]) ;//retrouver les degrés en sexagesimal en nombre entier
+
+        secondes=(decode_int(c[5])*1000+decode_int(c[6])*100+decode_int(c[7])*10+decode_int(c[8]));//retrouver les secondes en sexagesimal en nombre flottants
+
+        minute=(decode_int(c[2])*10+decode_int(c[3]));      //retrouver les minutes en sexagesimal en nombre flottants
+
+        sommes = degre + (minute*10000 + secondes)/(600000.0);
+
+        printf("\n degre1 : %d minute : %d secondes : %d somme : %2.10f somme direct : %2.10f \n",
+
+        degre, minute, secondes, sommes, degre + (minute*10000 + secondes)/(600000.0) );
+
+        return (float) sommes;
+
+    }
+
+    else{
+
+    }
+
+}
+
+
+
+
+
+
+
+float longtude (char*c){            //retrouver la valeur du longitudecodee en sexagesimal en nombre flottants
+
+
+
+
+
+    int i=0,degre, secondes, minute;
+
+    double sommes;
+
+    while (c[i]!='.'){
+
+        i+=1;
+
+    }
+
+    if (i==5){
+
+        degre=decode_int(c[0])*100+decode_int(c[1])*10+decode_int(c[2]) ; //retrouver les degrés en sexagesimal en nombre entier
+
+        secondes=(decode_int(c[6])*1000+decode_int(c[7])*100+decode_int(c[8])*10+decode_int(c[9]));//retrouver les secondes en sexagesimal en nombre flottants
+
+        minute=(decode_int(c[3])*10+decode_int(c[4]));//retrouver les minutes en sexagesimal en nombre flottants
+
+        sommes = degre + (minute*10000 + secondes)/(600000.0);
+
+        printf("\n degre2 : %d minute : %d secondes : %d somme : %2.10f somme direct : %2.10f \n",
+
+        degre, minute, secondes, sommes, degre + (minute*10000 + secondes)/(600000.0) );
+
+        return (float) sommes;
+
+    }
+
+    else{
+
+
+
+    }
+
+}
+
+
+
+
+
+float lat_long (char *c) { // comme la fonction latitude et longitude
+
+    int i=0,degre, secondes, minute;
+
+    double sommes;
+
+
+
+    while (c[i]!='.'){
+
+            i+=1;
+
         }
-        secondes= secondes + (c[n]-48)*p;
-        i++;
-        n++;
-    } while (c[n]!='\0');
 
-     res = degre + (min+secondes)/60;
 
-    return res;
 
+    if (i==4) {
+
+        degre=decode_int(c[0])*10+decode_int(c[1]) ;
+
+        secondes=(decode_int(c[5])*1000+decode_int(c[6])*100+decode_int(c[7])*10+decode_int(c[8]));
+
+        minute=(decode_int(c[2])*10+decode_int(c[3]));
+
+        sommes = degre + (minute*10000 + secondes)/(600000.0);
+
+        printf("\n degre3 : %d minute : %d secondes : %d somme : %2.10f somme direct : %2.10f \n",
+
+        degre, minute, secondes, sommes, degre + (minute*10000 + secondes)/(600000.0) );
+
+    }
+
+    else{
+
+        degre=decode_int(c[0])*100+decode_int(c[1])*10+decode_int(c[2]) ;
+
+        secondes=(decode_int(c[6])*1000+decode_int(c[7])*100+decode_int(c[8])*10+decode_int(c[9]));
+
+        minute=(decode_int(c[3])*10+decode_int(c[4]));
+
+        sommes = degre + (minute*10000 + secondes)/(600000.0);
+
+        printf("\n degre4 : %d minute : %d secondes : %d somme : %2.10f somme direct : %2.10f \n",
+
+        degre, minute, secondes, sommes, degre + (minute*10000 + secondes)/(600000.0) );
+
+    }
+
+    return (float) sommes;
+
 }
 
-void decode_trame(char*c,position *p){
-    int i=0,degre_long,degre_lat;
-    float secondes_long=0,secondes_lat=0,sommes_lat=0,sommes_long=0,minute_lat=0,minute_long=0;
+
+
+void decode_trame(char*c,position *p){   //fonction qui renvoie la valeurs du lattitude et longitudesdans la trames en nombre flottants et  les enregistre dans la structure Position
+
+    int i=0,degre_long,degre_lat,secondes_long=0,secondes_lat=0,minute_lat=0,minute_long=0;
+
+    double sommes_lat=0,sommes_long=0;
+
     degre_long=decode_int(c[29])*100+decode_int(c[30])*10+decode_int(c[31]) ;
-    secondes_long=decode_int(c[35])*0.1+decode_int(c[36])*0.01+decode_int(c[37])*0.001+decode_int(c[38])*0.0001;
-    minute_long=(decode_int(c[32])*10+decode_int(c[33])+secondes_long)/60;
-    sommes_long=degre_long+minute_long;
 
+    secondes_long=decode_int(c[35])*1000+decode_int(c[36])*100+decode_int(c[37])*10+decode_int(c[38]);
+
+    minute_long=decode_int(c[32])*10+decode_int(c[33]);
+
+    sommes_long=degre_long+(minute_long*10000+secondes_long)/600000.0;
+
+    if(c[27]=='S')     // la latitude est nord ou sud
+
+    {
+
+        sommes_lat = -sommes_lat;
+
+    }
+
+
+
     degre_lat=decode_int(c[17])*10+decode_int(c[18]) ;
-    secondes_lat=(decode_int(c[21])*1000+decode_int(c[22])*100+decode_int(c[23])*10+decode_int(c[24]))/10000;
-    minute_lat=(decode_int(c[19])*10+decode_int(c[20])+secondes_lat)/60;
-    sommes_lat=degre_lat+minute_lat;
 
+    secondes_lat=decode_int(c[22])*1000+decode_int(c[23])*100+decode_int(c[24])*10+decode_int(c[25]);
+
+    minute_lat=decode_int(c[19])*10+decode_int(c[20]);
+
+    sommes_lat=degre_lat+(minute_lat*10000+secondes_lat)/600000.0;
+
+    if(c[40]=='W') // longitude ouest ou est
+
+    {
+
+        sommes_long= -sommes_long;
+
+    }
+
+
+
    p ->latitude=sommes_lat;
-   p ->longtitude=sommes_long;
 
+   p ->longtude=sommes_long;
 
 
+
+
+
 }
-float calcul_distance(position*p1,position*p2){
-    float distance;
-    distance=acos(sin(PI * p1 ->latitude/180)*sin(PI * p2 ->latitude/180)+cos(PI* p1 ->latitude/180)*cos(PI* p2 ->latitude/180)*cos(PI*(fabs(p1 ->longtitude - p2 ->longtitude))/180))*6371;
-    return distance;
+
+float calcul_distance(position*p1,position*p2)
+
+// calculer la distance entre deux points avec Méthode du loi des sinus
+
+{
+
+    double distance;
+
+    distance=acos(sin(PI * p1 ->latitude/180.0)*sin(PI * p2 ->latitude/180.0)+cos(PI* p1 ->latitude/180.0)*cos(PI* p2 ->latitude/180.0)*cos(PI*(fabs(p1 ->longtude - p2 ->longtude))/180.0))*6371;
+
+    return (float) distance;
+
 }
 
+
+
+float calcul_vitesse(position*p1,position*p2)     //calcul de la vitesse avec la fonction calcul_distance entre 2 points séparés d'une seconde
+
+{
+
+    float vitesse;
+
+    vitesse= calcul_distance(&p1,&p2)*3600; // vitesse c (m/s) pour cela on a multiplie par 3600
+
+    return vitesse;
+
+}
+
+
+
+int distance_a_la_proche_zone(position p, zone r[],int nb_zones, float *d){
+
+    int i=0,dist,res;
+
+    dist=calcul_distance(&p,&r[0].pos);     //la vriable dist est un variable pour nous aider a compares les distances
+
+    for(i=0;i<nb_zones;i++){
+
+            *d=calcul_distance(&p,&r[i].pos);
+
+            printf("\n distance: %f \n",*d);
+
+            if(-*d<dist<*d){                //comapres les distances et dis prends la plus pettes distances
+
+                dist=*d;
+
+                res=i;                      // recupere l'indice de la plus petite distance
+
+            }
+
+    }
+
+    return res;
+
+
+
+}
+
 //Ajouter vos tests unitaires dans cette fonction.
 
+
+
 void tests_unitaires(void){
+
         position p,p1,p2;
+
         p1.latitude=35.968723;
-        p1.longtitude=256.652056;
-        p2.longtitude=156.831330;
+
+        p1.longtude=170.652056;
+
+        p2.longtude=156.831330;
+
         p2.latitude=55.806160;
+
+        float distance=0.0;
+
+
+
      if (5!=5){
+
      printf ("Erreur Test unitaire basique.\n");
+
      exit(-1);
+
      }
+
      if (trame_cmp("$GPGGA suite chaine","GPGGA")!=1){
+
      printf ("Erreur Test unitaire trame_cmp.\n");
+
      exit(-1);
+
      }
+
      if (trame_cmp("$GPRMC suite chaine","GPGGA")!=0){
-     printf ("Erreur Test unitaire trame_cmp.\n");
+
+     printf ("Erreur Test unitaire trame_cmp1.\n");
+
      exit(-1);
+
      }
+
      if (trame_cmp("$GPRMC... ", "GPRMC" )!=1){
-     printf ("Erreur Test unitaire trame_cmp.\n");
+
+     printf ("Erreur Test unitaire trame_cmp2.\n");
+
      exit(-1);
+
      }
+
      if (trame_cmp("$APRMC...", "GPGGA")!=0){
-     printf ("Erreur Test unitaire trame_cmp.\n");
+
+     printf ("Erreur Test unitaire trame_cmp3.\n");
+
      exit(-1);
+
      }
 
+
+
      //****************************
 
-     if (5!=5){
-     printf ("Erreur Test unitaire basique.\n");
-     exit(-1);
-     }
+    if(decode_int('6')!= 6){
 
-    if(decode_int('5')!= 5){
-         printf ("Erreur Test unitaire trame_cmp50.\n");
+         printf ("Erreur Test unitaire decode_int.\n");
+
          exit(-1);
+
     }
 
+
+
      if(decode_int('a')!= -1){
-            printf ("Erreur Test unitaire trame_cmp3.\n");
+
+            printf ("Erreur Test unitaire decode_int1.\n");
+
             exit(-1);
+
      }
 
+     //***********************
+
+     if(decode_nombre2("8697",0,2)!=86){
+
+        printf ("Erreur Test unitaire decode_nombre20.\n");
+
+        exit(-1);
+
+    }
+
+    if(decode_nombre2("78565",2,3)!=565){
+
+        printf ("Erreur Test unitaire decode_nombre21.\n");
+
+        exit(-1);
+
+    }
+
+
+
+
+
+
+
      //**********************
 
-     if (5!=5){
-         printf ("Erreur Test unitaire basique.\n");
-         exit(-1);
-     }
      if (decode_nombre("35789",3)!=357){
-            printf ("Erreur Test unitaire trame_cmp16.\n");
+
+            printf ("Erreur Test unitaire decode_nombre.\n");
+
             exit(-1);
+
          }
 
+
+
      if (decode_nombre("25986452235",7)!=2598645){
-            printf ("Erreur Test unitaire trame_cmp2.\n");
+
+            printf ("Erreur Test unitaire decode_nombre2.\n");
+
             exit(-1);
+
          }
+
      if (decode_nombre("2",1)!=2){
-            printf ("Erreur Test unitaire trame_cmp3.\n");
+
+            printf ("Erreur Test unitaire decode_nombre3.\n");
+
             exit(-1);
+
          }
+
      if (decode_nombre("25986452235",7)==2578963){
-            printf ("Erreur Test unitaire trame_cmp4.\n");
+
+            printf ("Erreur Test unitaire decode_nombre4.\n");
+
             exit(-1);
+
          }
+
 //********************************
-       /* if (5!=5){
-         printf ("Erreur Test unitaire basique.\n");
-         exit(-1);
-        }
-        if (longtitude("13558.8889")-135,981481<0.000001 && 135,981481-longtitude("13558.8889")<0.000001){
+
+        if (longtude("13558.8889")-135,981481<0.000001 && 135,981481-longtude("13558.8889")<0.000001){
+
             printf ("Erreur Test unitaire trame_cmp1.\n");
+
             exit(-1);
+
          }
-        if (longtitude("10112.1415")-101,202358<0.000001 && 101,202358-longtitude("10112.1415")<0.000001){
+
+        if (longtude("10112.1415")-101,202358<0.000001 && 101,202358-longtude("10112.1415")<0.000001){
+
             printf ("Erreur Test unitaire trame_cmp2.\n");
+
             exit(-1);
-         }*/
+
+         }
+
 //***********************************
-       /* if (5!=5){
-             printf ("Erreur Test unitaire basique.\n");
-             exit(-1);
+
+          if (latitude("3558.8889")-35,981481>0.000001 && 35,981481-latitude("3558.8889")<0.000001){
+
+            printf ("Erreur Test unitaire latitude.\n");
+
+            exit(-1);
+
          }
-          if (latitude("3558.8889")-35,981481<0.000001 && 35,981481-latitude("3558.8889")<0.000001){
-            printf ("Erreur Test unitaire trame_cmp1.\n");
+
+          if (latitude("0112.1415")-01,202358>0.000001 && 01,202358-latitude("0112.1415")<0.000001){
+
+            printf ("Erreur Test unitaire latitude1.\n");
+
             exit(-1);
+
          }
-          if (latitude("0112.1415")-01,202358<0.000001 && 01,202358-latitude("0112.1415")<0.000001){
-            printf ("Erreur Test unitaire trame_cmp2.\n");
-            exit(-1);
-         }*/
+
+
+
 //*****************************
-        if (5!=5){
-         printf ("Erreur Test unitaire basique.\n");
-         exit(-1);
-         }
+
          if (lat_long("13558.8889")-135.981481>0.000001 && 135.981481-lat_long("13358.8889")<0.000001){
-                printf ("Erreur Test unitaire trame_cmp18.\n");
+
+                printf ("Erreur Test unitaire lat-long.\n");
+
                 exit(-1);
+
              }
-        /* if (lat_long("10112.1415")-101.2023583>0.000001 && 101.2023583-lat_long("10112.1415")<0.000001){
-                printf ("Erreur Test unitaire trame_cmp21.\n");
+
+        if (fabs(lat_long("101122.1415")-101.202358 >10-6)) {
+
+                printf ("Erreur Test unitaire lat_long1.\n");
+
                 exit(-1);
-         }*/
-         /* if (lat_long("3558.8889")-35.981481>0.000001 && 35.981481-lat_long("3558.8889")<0.000001){
-                printf ("Erreur Test unitaire trame_cmp12.\n");
+
+         }
+
+         if (lat_long("3558.8889")-35.981481>10-6 && 35.981481-lat_long("3558.8889")<10-6){
+
+                printf ("Erreur Test unitaire lat_long2.\n");
+
                 exit(-1);
-             }*/
+
+             }
+
          if (lat_long("0112.1415")-01.202358>0.000001 && 01.202358-lat_long("0112.1415")<0.000001){
-                printf ("Erreur Test unitaire trame_cmp22.\n");
+
+                printf ("Erreur Test unitaire lat_long3.\n");
+
                 exit(-1);
+
              }
+
          /////////////////////////////////////////
+
         decode_trame("$GPGGA,141914.00,3558.8889,N,10112.1415,E,1,05,3.4,499.3,M,,M,,*7D",&p);
+
         if(fabs(fabs(p.latitude)-46.759373 >10-6)){
+
             printf ("Erreur Test unitaire trame_cmp21\n");
+
             exit(-1);
+
         }
+
         decode_trame("$GPGGA,141914.00,4645.5624,N,10112.1415,E,1,05,3.4,499.3,M,,M,,*7D",&p);
-        if(fabs(fabs(p.longtitude)-101.202358 >10-6)){
+
+        if(fabs(fabs(p.longtude)-101.202358 >10-6)){
+
             printf ("Erreur Test unitaire trame_cmp25\n");
+
             exit(-1);
+
     }
-    //////////
 
-      if(fabs(calcul_distance(&p1,&p2)-7328.429126) >0.000001){
-            printf ("Erreur Test unitaire trame_cmp30\n");
-             printf("a");
+    ///////////////////////////////////////
+
+
+
+      if(calcul_distance(&p1,&p2)<2441 && calcul_distance(&p1,&p2)>2442){
+
+            printf ("\n Erreur Test unitaire trame_cmp30\n");
+
             exit(-1);
 
+      }
 
+      float a =calcul_distance(&p1,&p2);
+
+      printf("\n %f \n",a);
+
+      /////////////////////////////////////
+
+      if(calcul_vitesse(&p1,&p2)-8787832.909>0.01 && 8787832.909-calcul_distance(&p1,&p2)<0.01){
+
+            printf ("\n Erreur Test unitaire calcul_vitesse30.\n");
+
+            exit(-1);
+
       }
-      float a= calcul_distance(&p1,&p2);
-      printf("%f",a);
 
-     }
-// Ne pas modifier cette fonction
-int main(int argc,char ** argv)
-{
-
+    /////////////////////////////////////
+
+      if(distance_a_la_proche_zone(p1,zones,nombre_zone,&distance)!=4){
+
+        printf ("Erreur Test unitaire calcul distance_a_la_proche_zone.\n");
+
+        exit(-1);
+
+    }
+
+}
+
+
+
+// Ne pas modifier cette fonction
+
+int main(int argc,char ** argv)
+
+{
+
+
+
     tests_unitaires();
-
-    // Affichage des trames definies dans la table trames.
-    printf ("Trames de tests tableau trames:\n");
-    int i=0;
-    while (trames[i])
-        traitement(trames[i++]);
-
-    if (!trame_init())
-        exit(-1);
-    // Affichage des trames du fichier gps.log
-    char *trame;
-    printf ("Trames de tests du fichier gps.log\n");
-    while  ((trame = trame_suivante()))
-        traitement(trame);
-
-    return 0;
-}
+
+
+
+    // Affichage des trames definies dans la table trames.
+
+    printf ("Trames de tests tableau trames:\n");
+
+    int i=0;
+
+    while (trames[i])
+
+        traitement(trames[i++]);
+
+
+
+    if (!trame_init())
+
+        exit(-1);
+
+    // Affichage des trames du fichier gps.log
+
+    char *trame;
+
+    printf ("Trames de tests du fichier gps.log\n");
+
+    while  ((trame = trame_suivante()))
+
+        traitement(trame);
+
+
+
+    return 0;
+
+}
