Probleme svp cpp

Résolu
mrdevil Messages postés 14 Statut Membre -  
mrdevil Messages postés 14 Statut Membre -
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

3 réponses

  1. Char Snipeur Messages postés 10112 Date d'inscription   Statut Contributeur Dernière intervention   1 331
     
    ç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
  2. mrdevil Messages postés 14 Statut Membre 1
     
    merci beaucoup ca a marcher je ny ai pas pensé
    0
  3. mrdevil Messages postés 14 Statut Membre 1
     
    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