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");
}
Afficher la suite