Aide morse

cobra176 Messages postés 86 Date d'inscription mercredi 1 novembre 2000 Statut Membre Dernière intervention 21 janvier 2009 - 10 oct. 2006 à 16:26
gregou9 Messages postés 44 Date d'inscription jeudi 16 mars 2006 Statut Membre Dernière intervention 19 décembre 2013 - 23 oct. 2006 à 17:34
bonjour a tous
je dois faire un programme qui changer les lettres normal en morse et inversement

voici le debut  de mon code

# include <stdio.h>
# include <string.h>
# include <conio.h>


struct morse
{
       char caract;
       char carmorse[7];
       }




main()
 {
 
struct morse table [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',"--..",'0',"-----",
                     '1',"----",'2',"..---",'3',"...--",
                     '4',"....-",'5',".....",'6',"-....",'7',"--...",'8',"---..",'9'," ----.",'.',".-.-.-",' ',"????"};
 
}
char phrase;


printf ("sasir la phrase a trahuir en morse ");
gets (phrase);

et aprés je seche
merci de votre aide

15 réponses

mad_love_disease Messages postés 64 Date d'inscription lundi 20 octobre 2003 Statut Membre Dernière intervention 1 juillet 2010 3
10 oct. 2006 à 16:52
Yo cobra176,

pourtant tu es très bien partit. Tu as d'un coté une table de traduction que tu as appelé morse, et de l'autre une phrase à traduire. il est vrai que c'est plus compliqué d'aller du morse à l'alphabet. Fait d'abord l'inverse, une phrase en français en morse, puis tente l'inverse. passe du morse en français, la je t'aiderai (si je le peux bien sur....)

Mad_Love_Disease
0
BunoCS Messages postés 15475 Date d'inscription lundi 11 juillet 2005 Statut Modérateur Dernière intervention 23 avril 2024 103
10 oct. 2006 à 18:20
Pour info, "char phrase" veut dire que "phrase" est un caractère, et non pas une chaine de caractères.
par exemple, si tu veux une chaine de 250 caractères, il te faudra déclarer phrase comme ceci:
char phrase[251]; /* +1 pour ne pas oublier le caractère de fin de chaine */

Une fois que tu auras récupérer la chaine saisie par l'utilisateur, tu la parcours et, pour chaque lettre, tu vas chercher le code morse correspondant.

Bon courage

Buno
----------------------------------------
L'urgent est fait, l'impossible est en cours. Pour les miracles, prévoir un délai...
Le site de mon mariage
0
goutbouyo Messages postés 429 Date d'inscription mardi 6 juillet 2004 Statut Membre Dernière intervention 12 janvier 2008
10 oct. 2006 à 18:24
Moi je ferais comme ça:
Du français vers le morse : pour chaque lettre du mot (phrase[0], phrase[1], ...) tu cherches l'équivalent en morse dans ta table.
Du morse vers le français : je suppose qu'il y a un espace entre chaque symbole morse représentant une lettre, donc tu parses la chaine phrase en fonction des espaces et ensuite tu convertis les lettres morse en français.
0
nightlord666 Messages postés 746 Date d'inscription vendredi 17 juin 2005 Statut Membre Dernière intervention 23 mai 2007 10
10 oct. 2006 à 18:31
Et ton tableau "morse" est mal déclaré, il faut rajouter des accolades autour des membres de la structure.
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
goutbouyo Messages postés 429 Date d'inscription mardi 6 juillet 2004 Statut Membre Dernière intervention 12 janvier 2008
10 oct. 2006 à 18:37
Elles y sont les accolades.
En quoi est-il mal initialisé ???
Par contre il manque le point virgule à la fin de la définition de la structure, non ???
0
niketou Messages postés 295 Date d'inscription dimanche 4 mai 2003 Statut Membre Dernière intervention 6 décembre 2010
10 oct. 2006 à 21:26
#include <stdio.h>
#include <stdlib.h>
#include <conio.h>
#include <string>
using namespace std;




int main(int argc, char *argv[])
{
 char Car[38]={'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','0',
'1','2','3','4','5','6','7','8','9','.',' '};

char * table[38]  =  {".-","-...","-.-.","-..",".","..-.","--.","....","..",
                     ".---","-.-",".-..","--","-.","---",".--.",
                     "--.-",".-.","...",
                     "-","..-","...-",".---","-..-","-.--","--..","-----",
                     "----","..---","...--",
                     "....-",".....","-....","--...","---.."," ----.",".-.-.-"," "};


char  p[250];
unsigned short i;
unsigned short j;
unsigned short k;


printf ("sasir la phrase a trahuir en morse:");
printf ("\n");
gets(p);
i=strlen(p);


for(j=0;j<i;j++){


 for (k=0;k<38;k++){
  if (p[j]==Car[k]){
printf (table[k]);
  }
 }


}
printf ("\n");
system("pause");
  return 0;
}
0
nightlord666 Messages postés 746 Date d'inscription vendredi 17 juin 2005 Statut Membre Dernière intervention 23 mai 2007 10
10 oct. 2006 à 21:42
struct morse table [37] = {{'a',".-"},{'b',"-..."},{'c',"-.-."} .... {' ',"????"}};

Comme ça c'est mieux dans la syntaxe.

<hr size="2" width="100%" />Sachant qu'on peut toujours enlever une ligne à un programme, et que dans un programme il y a toujours un bug, un programme peut se résumer à une ligne avec un bug.
0
goutbouyo Messages postés 429 Date d'inscription mardi 6 juillet 2004 Statut Membre Dernière intervention 12 janvier 2008
10 oct. 2006 à 22:43
Mais ce n'est pas obligatoire, n'est ce pas ???
0
tibob51 Messages postés 268 Date d'inscription vendredi 30 avril 2004 Statut Membre Dernière intervention 13 mai 2013 2
11 oct. 2006 à 00:43
Une idée pour t'aider!
Je pense que tu devrai rajouter le nombre de caractére de chaque signe morse!
Ensuite récupère le nombre de caractère entré pour la phrase a convertir(pour les boucles a faire (avec for(int a=0....)
Tu fait une première boucle  sur la chaine entrée,pour calculer la taille du "char" qui te servira a afficher ta conversion(ex: a=2,b=4...)
Tu créé le "char"
(ex:
char *Texte_traduit;
Texte_traduit= new char[nb_carac];
)
la deuxième boucle effectue la copie de chaque "carmorse" vers Texte_traduit.
Grace à strcpy et strcat.

Voilà j'éspère t'avoir mis sur la voie et surtout été compréhensible.
@++
0
mad_love_disease Messages postés 64 Date d'inscription lundi 20 octobre 2003 Statut Membre Dernière intervention 1 juillet 2010 3
11 oct. 2006 à 09:17
Ils ont tous raisons sur les points de syntaxe, quant à la traduction du morse vers le Français, un problème peut se poser.
Si des espaces séparent les séquences de tirets et de points tu pourra facilement faire la traduction à l'inverse. Si ce n'est pas le cas, alors la traduction ne me semble pas possible

Exemple:
tu as la chaine TE et la chaine N
la traduction en morse te donne -. pour TE
 ainsi que -. pour N

si tu as la code morse -. a traduire, vas tu choisir N ou TE? Tu as besoins des expaces.....

Mad_Love_Disease
0
BunoCS Messages postés 15475 Date d'inscription lundi 11 juillet 2005 Statut Modérateur Dernière intervention 23 avril 2024 103
11 oct. 2006 à 09:55
tibob51> Que Nenni! T'en foutrait moi des boucles pour convertir une chaine!! Bonjour les perfo!
Bon, plus sérieusement, je ne vois pas les problèmes qu'il peut y avoir...si on fixe des hypothèses:
- pour la chaine morse, il faut impérativement des séparateurs entre chaque "lettre"
- il faut une chaine de caractères de référence: "abcdef...."
- il faut une chaine de "caractères morses" de référence, changée dans le même ordre que le précédent

Pour le passage ASCII->Morse:
- parcourir la chaine saisie par l'utilisateur à l'aide d'un pointeur
- si la variable pointée par le pointeur est différente du caractère de fin de chaine, mettre dans la chaine de sortie le caractère morse correspondant au caractère pointé

Pour le passage Morse->ASCII:
- parcourir la chaine saisie par l'utilisateur à l'aide de 2 pointeurs (un pour le début de caractère, un pour la fin)
- init: positionner les 2 pointeurs au début de la chaine saisie
- step:
  - déplacer le 2nd pointeur jusqu'à rencontrer un séparateur ou le caractère de fin de chaine
  - rechercher, dans la référence morse, l'index de la chaine se trouvant entre les 2 pointeurs
  - copier dans la chaine de sortie le caractère ASCII correspondant
  - déplacer le 1er pointeur au début du caractère suivant

J'espère que j'ai été clair, et que je n'ai pas fait de faute. Perso, c'est comme ça que je ferais.
Bon courage...

Buno
----------------------------------------
L'urgent est fait, l'impossible est en cours. Pour les miracles, prévoir un délai...
Le site de mon mariage
0
cs_Matt67 Messages postés 549 Date d'inscription samedi 6 septembre 2003 Statut Membre Dernière intervention 6 mars 2010 3
14 oct. 2006 à 21:44
Bonsoir,

Juste une question, cela doit être obligatoirement en C ou alors tu peux le faire en C++ ???

Matt...
0
tibob51 Messages postés 268 Date d'inscription vendredi 30 avril 2004 Statut Membre Dernière intervention 13 mai 2013 2
14 oct. 2006 à 22:32
buno>Ben j'ai donné une version qui est plus adaptée en mode fenétré,c'est a dire je créé ma variable pour l'afficher ensuite dans un label ou ce que tu veux (je dois donc connaitre sa taille)d'où la première boucle, puis la deuxième pour ecrire dedans.
Sinon sur qu'en mode console ya qu'a faire faire afficher les carractères correspondants.
0
cs_Matt67 Messages postés 549 Date d'inscription samedi 6 septembre 2003 Statut Membre Dernière intervention 6 mars 2010 3
16 oct. 2006 à 21:05
Bonsoir,

Ben alors cobra176, j'ai l'impression que tu as posé une question et que tu te contrefiches royalement des réponses apportées...
Un "Ok, merci pour vos réponses", pas pour la mienne car c'était une question, mais pour les autres intervenants ou alors, "c'est bon, j'ai trouvé" ou bien répondre aux questions qui t'ont été posées pour t'aider ... Ca serait un minimum.

Matt...
0
gregou9 Messages postés 44 Date d'inscription jeudi 16 mars 2006 Statut Membre Dernière intervention 19 décembre 2013 1
23 oct. 2006 à 17:34
alors deja merci a cobra176 davoir mis ce sujet sur le forum pkil ma servi g le mm exo a faire en c é jétai bloké pr laffichage de la traduction. bref moi g un pti pb g fai com lui la declaration de mon tableau de structure (et com vs lavez indiké) sauf kil me met une erreur : "two or more data types in declaration of 'tabmorse' "       (tabmorse etant le nom de mon tableau de structure)
merci davance pr les reponses ki y seront apportées!
0
Rejoignez-nous