Probleme svp cpp

Résolu/Fermé
mrdevil Messages postés 13 Date d'inscription lundi 6 décembre 2010 Statut Membre Dernière intervention 3 juin 2012 - Modifié par irongege le 6/12/2010 à 09:22
mrdevil Messages postés 13 Date d'inscription lundi 6 décembre 2010 Statut Membre Dernière intervention 3 juin 2012 - 8 déc. 2010 à 10:34
Bonjour,



bon je suis un débutant en programmation et j'ai besoin de votre aide pour un problème
de programme c++ qui permet de traduire un message en code morse en caractères
en tous cas voici ma proposition :



#include <cstdlib>
#include <iostream>
#include<conio.h>
#include<string.h>
#include<cstring>


using namespace std;
main()
{
char alpha[]={'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'};
string code[]={".-","-...","-.-.","-..",".","..-.","--.","....","..", ".---", "-.-", ".-..", "--", "-.","---",".--.","--.-",".-.","...","-","..-","...-",".--","-..-", "-.--", "--..",".-.-.",".-.-.-", "-----", ".----", "..---", "...--", "....-", ".....", "-....", "--...", "---..", "----."};
int h,i,j;
string b,r;

cout<<"saisir un message code : ";
getline(cin,b);
h=b.length();
cout<<endl;
cout<<"la phrase saisi est: "<<endl<<endl;

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

if(b[j]==code[i])

r=alpha[i];
}

} cout<<r;
cout<<endl<<endl;





system("pause");
}






merci de votre aide
A voir également:

3 réponses

Char Snipeur Messages postés 9696 Date d'inscription vendredi 23 avril 2004 Statut Contributeur Dernière intervention 3 octobre 2023 1 297
6 déc. 2010 à 08:28
ça serait bien de poser une question.
pistes pour toi :
- un "caractère" morse est fait de plusieurs caractère. Le premier travail consiste donc à isoler le morse (je suppose qu'ils sont séparés par des espaces, non ?)
- utilise un tableau de string et la classe sstream pour récupérer le morse et le traiter facilement.
0
mrdevil Messages postés 13 Date d'inscription lundi 6 décembre 2010 Statut Membre Dernière intervention 3 juin 2012 1
6 déc. 2010 à 18:32
merci beaucoup ca a marcher je ny ai pas pensé
0
mrdevil Messages postés 13 Date d'inscription lundi 6 décembre 2010 Statut Membre Dernière intervention 3 juin 2012 1
8 déc. 2010 à 10:34
bon voila un resultat just pour ceux qui aimerain bien voir une reponse
- case 1 : traduire un caractère en morse
- case2 : traduire un code morse en caractère
- case 3 : traduire une phrase en message morse
- case 4 : traduire message code en caractère





#include <cstdlib>
#include <iostream>
#include<conio.h>
#include<string.h>
#include<cstring>



using namespace std;

char car[50]={'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'};
string morse[50]={".-","-...","-.-.","-..",".","..-.","--.","....","..",".---","-.-",".-..","--","-.","---",".--.","--.-",".-.","...","-","..-","...-",".--","-..-","-.--","--.."," ",".-.-.",".-.-.-","-----",".----","..---","...--","....-",".....","-....","--...","---..","----."};


void car_morse(char b)
{ string c ;
for(int i=0;i<45;i++)
{if (b==car[i])
c=morse[i];
}
cout<<"le code morse equivalent au caractere saisis est : "<<c<<endl;
}
void morse_car(string b)
{ string c;
for (int j=0;j<45;j++)
{ if(b==morse[j])
c=car[j];
}
cout<<"le caractere equivalent au code morse saisis est : "<<c<<endl;
}
void phr_morse(string b)
{ string e;
for(int h=0;h<b.length();h++)
{for(int j=0;j<49;j++)

{ if(b[h]==car[j])
e=e+morse[j]+" ";
}
}

cout<<"La traduction du phrase en code morse est :\n ";
cout<<e<<endl;
}

void cde_message(string cm)
{
string ph, mess,z;
cm+=" ";
for(int i=0;i<=cm.length();i++)
if(cm[i]!=' ')
mess+=cm[i];
else
for(int j=0;j<=45;j++)
if(mess==morse[j])
{ph+=car[j];
mess="";
}

cout<<"La traduction du code morse phrase est :\n ";

cout<<ph<<endl;
}



main()
{
string h;
int choix;string rep ;
do
{
system("cls");
cout<<endl;
cout<<"\t \t "<<"MENUE GENERALE"<<endl;
cout<<"\t 1- Traduire un caractere en code morse"<<endl;
cout<<"\t 2- Traduire un code morse en caractere "<<endl;
cout<<"\t 3- Traduire une phrase en code morse"<<endl;
cout<<"\t 4- Traduire un message code en phrase"<<endl;
cout<<"saisir votre choix : ";
cin>>choix;
while((choix<1) ||(choix>4))
{cout<<"saisir une choix valide svp !! : ";
cin>>choix;
cout<<endl;
}
switch (choix)
{
case 1:
{
char a ;
cout<<"Saisir un caractere : ";
cin>>a;
car_morse(a);
break;
}
case 2:
{
string a;
cout<<"Saisir un code morse : ";
cin>>a;
morse_car(a);
break;
}
case 3:
{
string a;
char t[100];
cout<<"Saisir un message svp: \n ";
cin.ignore(1,'\n');
cin.get(t,100);
a=t;
phr_morse(a);
break;
}
case 4:
{
string cd;
char t[100];
cout<<"Saisir une phrase en code morse (metter un espace a la fin de chaque code saisis!!!) : \n";
cin.ignore(1,'\n');
cin.get(t,100);
cd=t;
cde_message(cd);
break;
}

}
cout<<"Voulez cous continuer o/n : ";
cin>>rep;
for(int g=0;g<10;g++)
rep[g]=tolower(rep[g]);
} while(rep=="o");



cout<<endl;
system("PAUSE");

}
0