Probleme svp cpp

Résolu
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. Contributeur
    ç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.
    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");

      }