Accueil > Forum > > > > Problème code morse
Problème code morse
mardi 27 novembre 2007 à 20:38:18 |
Problème code morse

jpv424
|
Bonjour tout le monde et encore merci pour votre aide  J'ai fait un programme de conversion Code Morse => Français et l'inverse. De francais à code morse, le programme marche très bien (c'est le case 1) Par contre pour le case 2, ce que je comprend, c'est qu'il faut utiiser un pointeur qui pointe sur le début de la chaine et un autre qui va s'arrêter à l'espace entre les code morse... Ensuite on les comparent et on affiche les caractères... mais je m'embrouille un peu.. Je vous joint le code, j'espère que vous m'aiderez à le finir ou à l'optimiser... Merci # include <stdio.h> # include <string.h> # include <conio.h> # define TAILLE 37
void main(){
struct code{ char lettre; char *morse; };
struct code table [TAILLE]={ {'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 ligne [80], car, *d=ligne[0], *f=ligne[' '], a; int i,j,test=1, nbl;
clrscr();
printf("******************\n"); printf("*Traducteur Morse*\n"); printf("******************\n");
printf("\n1. Francais => Morse"); printf("\n2. Morse => Francais"); printf("\n0. Quitter"); printf("\n\n-> ");
do{
switch(getch()){
case '1': printf("\n\n80 caract¦res max. -> : "); gets(ligne); printf("\n=> : ");
for(i=0; i<=80; i++){ if(ligne[i]=='\0') break; if(ligne[i] <= 122 && ligne[i] >= 97) ligne[i]-=32; else ligne[i]; }
for (i=0;i<strlen(ligne);i++){
j=0; while (ligne[i]!=table[j].lettre && j++<TAILLE-1); if (j<TAILLE) printf(" %s", table[j].morse); else printf(" ??????"); if (!((i+1)%10)) printf("\n "); } break;
case '2': printf("\n\n-> : "); gets(ligne); printf("\n=> : ");
for (i=0;ligne[i]!='\0';i++){
strncpy(car, d, (f-d)); a=strcmp(car, table->morse); if(a==0) printf("%c", table[i].lettre); else printf(" ?????? "); } break;
case '0': test=0; break;
default: printf("Entrez 1 ou 2"); }
}while(test==1);
getch(); }
|
|
mercredi 28 novembre 2007 à 02:20:57 |
Re : Problème code morse

SAKingdom
|
strncpy(car, d, (f-d));
Tu es conscient que car est un char et que tu essais de copier une chaine dedans ? d=ligne[0]f=ligne[' '] Ça compile ça ?
for (i=0;i<strlen(ligne);i++) À ne jamais faire. On calcule la taille une fois avant la boucle.
a = strcmp(...)
strcmp retourne int pas un char.
C++ (@++)
|
|
mercredi 28 novembre 2007 à 12:04:19 |
Re : Problème code morse

jpv424
|
Ok merci pour ces details sa compile et en plus sa m'affiche quelques chose pour le case2  Merci beaucoup !!! Mais je ne comprend pas bien comme faire pour que les pointeurs debut et fin jouent leur rôle. (comparez la chaine entrée dans ligne et voir si le code existe dans le tableau et ensuite l'afficher...) Re-code : # include <stdio.h> # include <string.h> # include <conio.h> # define TAILLE 37
void main(){
struct code{ char lettre; char *morse; };
struct code table [TAILLE]={ {'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 ligne [80], car[80], *d=ligne, *f=ligne; int i,j,test=1, nbl, a, longligne;
clrscr();
printf("******************\n"); printf("*Traducteur Morse*\n"); printf("******************\n");
printf("\n1. Francais => Morse"); printf("\n2. Morse => Francais"); printf("\n0. Quitter"); printf("\n\n-> ");
do{
switch(getch()){
case '1': printf("\n\n80 caract¦res max. -> : "); gets(ligne); printf("\n=> : ");
for(i=0; i<=80; i++){ if(ligne[i]=='\0') break; if(ligne[i] <= 122 && ligne[i] >= 97) ligne[i]-=32; else ligne[i]; }
longligne=strlen(ligne);
for (i=0;i<longligne;i++){
j=0; while (ligne[i]!=table[j].lettre && j++<TAILLE-1); if (j<TAILLE) printf(" %s", table[j].morse); else printf(" ??????"); if (!((i+1)%10)) printf("\n "); } break;
case '2': printf("\n\n-> : "); gets(ligne); printf("\n=> : ");
for (i=0;ligne[i]!='\0';i++){
strncpy(car, d, (f-d)); a=strcmp(car, table->morse); if(a==0) printf("%c", table[i].lettre); else printf(" ?????? "); } break;
case '0': test=0; break;
default: printf("Entrez 1 ou 2"); }
}while(test==1);
getch(); }
|
|
vendredi 30 novembre 2007 à 23:53:16 |
Re : Problème code morse

jpv424
|
Bonsoir tout le monde !!!  Personne ne peut m'aider à finir ce petit programme ? Svp  
|
|
Cette discussion est classée dans : ligne, code, case, printf, morse
Répondre à ce message
Sujets en rapport avec ce message
Protocole ICMP (ping) [ par bouzakaria ]
bonjour j'utilise actuellement le programme pingueur.c pour simuler la commande dos ping (protocole ICMP), lorsque l'adresse IP est correcte le prog
programme pingueur.c [ par bouzakaria ]
bonjour j'utilise actuellement le programme pingueur.c pour similer la commande dos ping (protocole ICMP), lorsque l'adresse IP est correcte le progr
problem dans un code sudoko en c [ par sassi1985 ]
svp jai un mini projet c sur le code de jeux sodoku je fait le code mais j ai problème de la fichage il affiche des grand entier aléatoire voila mon
construire une ligne en C++ [ par zora700 ]
svp j'ai besoin de votre aide aperçu de la classe Cellule: [code=cpp]class Cellule { public: friend ostream & operator > (istream &is, Cellule
débuter en gtk+ [ par fgh39 ]
Bonjour Je débute le language GTK+ avec code:block. Je recherche a afficher des nombres qui s'incrémentes ou décrémentes a partir d'un boucle while.
rectification dune code C et/ou aide sur l'algorithme [ par negets ]
bonjour, besoin d'aide; j'aimerai dégager l'algorithme de ce code afin de le programmer sous matlab je connais plus rien en C et C++(je commence à lir
Problème de code en C [ par Guillaume170194 ]
Bonjour à tous Je ne vois pas le problème que peut avoir le code. Je choisi le niveau mais après cela ne correspond pas. Merci de votre aide Voici l
Erreurs C2065 et C2143 [ par thomas71 ]
Bonjour, J'ai un petit problème avec le bout de code ci-dessous. Je travaille sous Visual Studio 2010. Deux erreur apparaissent lors de la compilatio
Livres en rapport
|
Derniers Blogs
POUR RAPPEL ! LES SPéCIFICATIONS DES PROTOCOLES OFFICE ET SHAREPOINT SONT DISPONIBLES SUR MSDNPOUR RAPPEL ! LES SPéCIFICATIONS DES PROTOCOLES OFFICE ET SHAREPOINT SONT DISPONIBLES SUR MSDN par neodante
Quelle est le point commun entre : Microsoft il y a 10 ans et Apple aujourd'hui ? Réponse: avoir une politique de protocoles propriétaires et fermés :) Car pour rappel (si si je vous assure c'est important de le rappeler), la majorité des spécifications e...
Cliquez pour lire la suite de l'article par neodante JOYEUX ANNIVERSAIRE NIXJOYEUX ANNIVERSAIRE NIX par ebartsoft
Souhaitons un bon et joyeux anniversaire à notre hôte à tous, Nix.
Je ne le répéterais jamais assez mais sans lui rien ne serait possible. Il défit en permanence les lois de la gravité et comme il le dit si bien, si tu lui fais confiance ça devra...
Cliquez pour lire la suite de l'article par ebartsoft IMAGINE CUP 2012, MAKE A SIGN EN FINALEIMAGINE CUP 2012, MAKE A SIGN EN FINALE par junarnoalg
Voilà qui est fait, la nouvelle est officielle ! L'équipe belge "Make a Sign" va au pays des kangourous défendre son projet dans la catégorie Software Design. http://www.imaginecup.com/CompetitionsContent/Competition/WorldwideFinalists.aspx V...
Cliquez pour lire la suite de l'article par junarnoalg KINECT 1.5 IS OUT !KINECT 1.5 IS OUT ! par Vko
La version 1.5 du Kinect For Microsoft vient tout juste de sortir ! Plein de nouveautés: Tracking de squelette en Near Mode Détection en position assise Détection faciale avec un SDK dédié Documentation et des guideline (enfin) Un out...
Cliquez pour lire la suite de l'article par Vko LES ACTUALITéS DE LA SEMAINE SUR C2I.FR (14 MAI - 20 MAI) LES ACTUALITéS DE LA SEMAINE SUR C2I.FR (14 MAI - 20 MAI) par richardc
Mise à jour des Web API du 14 Mai
Réservez dès maintenant votre journée du 20 juin pour le Windows Azure Dev Camp 2012 à Paris
Mise à jour de Team Foundation Service
MechCommander 2 sur Windows 8
Entity Framework 5 Release Candidate e...
Cliquez pour lire la suite de l'article par richardc
Logiciels
sDEVIS-FACTURES vlPRO (8.1.0.3)SDEVIS-FACTURES VLPRO (8.1.0.3)sDEVIS-FACTURES vlPRO a été mis au point pour les particuliers, créateurs, entrepreneurs, artisa... Cliquez pour télécharger sDEVIS-FACTURES vlPRO 974 Application Server (12.2.4.6)974 APPLICATION SERVER (12.2.4.6)Développez de puissantes applications dans un environnement de 'cloud computing', clusterisé, séc... Cliquez pour télécharger 974 Application Server vPicture (1.4.2.1)VPICTURE (1.4.2.1)Avec vPicture, hébergez vos images facilement et rapidement.
vPicture est un utilitaire simple, ... Cliquez pour télécharger vPicture Easy-Planning (2.2.1.6)EASY-PLANNING (2.2.1.6)Easy-Planning permet de créer des plannings sous la représentation de diagrammes et est adapté au... Cliquez pour télécharger Easy-Planning COM-BACKUP (2.0)COM-BACKUP (2.0)
COM-BACKUP est un logiciel de sauvegarde qui permet de planifier les sauvegardes de vos dossiers ...
Cliquez pour télécharger COM-BACKUP
|