
jpv424
|
Salut à tous et merci pour votre travail !! Le site est génial.
En grapillant à droite à gauche des source sur le morse j'ai fabriqué le code ci-dessous. Le problème est qu'on me demande d'utiliser les structures et là je ne suis pas du tout famillier avec sa... Comment pourrais-je convertir mon code en y mettant cette fois des structures ?
Merci beaucoup !!!
Dans main.c :
/*Déclarations*/ #include<stdio.h> #include<conio.h> #include<string.h> #include"fonctions_morse.h"
/*Programme*/ int main() { char t[37]={'a','b','c','d','e','f','g','h','i','j','k','l','m','n','o','p','q','r', 's','t','u','v','w','x','y','z','1','2','3','4','5','6','7','8','9','0', ' '}, m[37][6]={{".-"},{"-..."},{"-.-."},{"-.."},{"."},{"..-."},{"--."},{"...."},{".."}, {".---"},{"-.-"},{".-.."},{"--"},{"-."},{"---"},{".--."},{"--.-"},{".-."}, {"..."},{"-"},{"..-"},{"...-"},{".--"},{"-..-"},{"-.--"},{"--.."},{".----"}, {"..---"},{"...--"},{"....-"},{"....."},{"-...."},{"--..."},{"---.."},{"---."}, {"-----"},{"//"}}, c[80];
int k=1;
do { printf("1 : Coder un texte en morse\n"); printf("2 : Decoder un texte morse\n"); printf("3 : Quitter le programme\n\n");
switch(getch()) { case'1': s_texte(c,m,t);break; case'2': s_morse(c,m,t);break; case'3': k=0;break; default: printf("Choix inconnu\n\n");break; } }while(k!=0); return 0; }
Dans fonction_morse.h :
void s_morse(char[],char[37][6],char[]); void s_texte(char[]); void a_morse(char[],char[],char[37][6]); void a_texte(char[],char[],int);
Dans f_saisie.c :
/*Saisie de Texte vers Morse*/ void s_texte(char c[],char m[37][6],char t[]) { printf("Phrase a coder en morse (80 caracteres max)\n\n"); printf(" -> "); gets(c);
if(strlen(c)>80) printf("\nTrop de caractères !\n\n"); else a_morse(c,t,m); }
/*Saisie de Morse vers Texte*/ void s_morse(char c[],char m[37][6],char t[]) { char z[1][6],x[80]; int i,k=0,ok;
printf("Caracteres morse à décoder\n\n"); printf(" -> "); gets(z[0]); for(i=0;i<37;i++) { if(strcmp(z[0],m[i])==0) { x[k]=i; k++; ok=1; i=37; } else ok=0; } if(ok==0) printf("\nCaractere morse inconnu !"); else printf(" => "); a_texte(t,x,k); }
Dans f_affichage.c :
/*Afficher le texte*/ void a_texte(char t[],char x[],int k) { int i;
for(i=0;i<k;i++) printf("%c",t[x[i]]); printf("\n\n"); }
/*Afficher le code morse*/ void a_morse(char c[],char t[],char m[37][6]) { int i,j;
printf(" => "); for(i=0;i<strlen(c);i++) { for(j=0;j<37;j++) { if(c[i]==t[j]) { if(c[i]==' ') printf(" "); printf("%s",m[j]); if((c[i+1]!='\0')&&(c[i+1]!=' ')&&(c[i]!=' ')) printf(" | "); if(c[i]==' ') printf(" "); } } } printf("\n\n"); }
|