Révision 285
Ajouté par Yaye Oumy NDONG il y a environ 3 ans
branch/Ndong_Yaye_Oumy/sp4a12/main.c | ||
---|---|---|
"$GPZDA,141914.00,01,02,2006,00,00*69",
|
||
0};
|
||
|
||
int trame_cmp(char* trame,char *type){
|
||
int trame_cmp(char* trame,char *type){ // fonction qui renvoie 1 si la trame commence par la cha?ne de caract?re type et z?ro dans les autres cas
|
||
int i, ok =1 ;
|
||
for(i=0 ;i<=4 ;i=i+1){
|
||
if (trame[i+1] !=type[i]){
|
||
ok=0;
|
||
if (trame[i+1] !=type[i]){ //comparaison de la premi?re chaine (sans le '$') et de la deuxi?me chaine pass?es en param?tre
|
||
ok=0; // si des caract?res diff?rent lors de la comparaison ok=0 et on en conclut que les deux chaines compar?es ne sont pas pareils
|
||
}
|
||
}
|
||
return ok;
|
||
}
|
||
|
||
int decode_int(char car){
|
||
int decode_int(char car){ //qui renvoie la valeur d?cimale associ?e ? un caract?re donn? en param?tre
|
||
int entier;
|
||
if(car<='9' && car>='0'){
|
||
entier= car-48;
|
||
entier= car-48; // on soustrait au code ascii du caract?re le code ascii du caract?re '0'
|
||
}else{
|
||
entier=-1;
|
||
entier=-1; // si le caractere entr? ne correspond pas ? un chiffre on renvoie -1
|
||
}
|
||
return entier;
|
||
}
|
||
|
||
|
||
int decode_nombre (char *ch,int n){
|
||
int decode_nombre (char *ch,int n){ // fonction qui renvoie qui renvoie la valeur d?cimale des n premiers caract?res de la cha?ne ch
|
||
|
||
int i,s=0;
|
||
for(i=0;i<n;i++){
|
||
... | ... | |
return s;
|
||
}
|
||
|
||
float conv_lat_flottant(char * ch) { // fonction qui convertit les latitudes en flottant
|
||
float latitude;
|
||
int val_degree,valEnt_min,valDec_min;
|
||
val_degree=decode_nombre(ch,2); // Recuperation de la partie entiere correspondant aux degrees
|
||
valEnt_min=decode_nombre(&ch[2],2);// recuperation de la partie entiere des minututes
|
||
valDec_min=decode_nombre(&ch[5],4); // recuperation de la partie decimale des minututes
|
||
latitude=val_degree + ((valEnt_min+valDec_min*0.0001)/60); // conversion en flottant
|
||
return latitude;
|
||
}
|
||
|
||
|
||
//Fonction ? modifier !!!!!
|
||
void traitement(char * trame)
|
||
{
|
||
static int cpt=0;
|
||
cpt++;
|
||
|
||
cpt++;
|
||
}
|
||
|
||
//Ajouter vos tests unitaires dans cette fonction.
|
||
... | ... | |
printf ("Erreur Test unitaire trame_cmp.\n");
|
||
exit(-1);
|
||
}
|
||
if(conv_lat_flottant("3723.2475")-37.387458>0.0001){ // prise en compte de l'erreur sur la pr?cision
|
||
printf ("Erreur Test unitaire trame_cmp.\n");
|
||
exit(-1);
|
||
}
|
||
|
||
}
|
||
|
Formats disponibles : Unified diff
Question 8 séance 1 (conversion latitude en flottant) + ajouts des commentaires