Foros del Web » Programación para mayores de 30 ;) » C/C++ »

PROBLEMA Ordenar PROGRAMACION FACIL

Estas en el tema de PROBLEMA Ordenar PROGRAMACION FACIL en el foro de C/C++ en Foros del Web. tengo el siguiente Programa @import url("http://static.forosdelweb.com/clientscript/vbulletin_css/geshi.css"); Código C++: Ver original #include<iostream> #include<conio> #include<stdio> #include<string> int op , x , y ; char le [ 27 ...
  #1 (permalink)  
Antiguo 22/08/2014, 11:15
 
Fecha de Ingreso: agosto-2014
Mensajes: 1
Antigüedad: 10 años, 2 meses
Puntos: 0
Pregunta PROBLEMA Ordenar PROGRAMACION FACIL

tengo el siguiente Programa
Código C++:
Ver original
  1. #include<iostream>
  2. #include<conio>
  3. #include<stdio>
  4. #include<string>
  5. int op,x,y;
  6. char le[27],b[24],nombre[24],apellido[24];
  7. string cod[27],nombre2,apellido2;
  8.  
  9. int codificar(){  clrscr();
  10. le[0]='a';le[1]='b';le[2]='c';le[3]='d';le[4]='e';le[5]='f';le[6]='g';le[7]='h';le[8]='i';le[9]='j';le[10]='k';le[11]='l';le[12]='m';le[13]='n';le[14]='o';le[15]='p';le[16]='q';le[17]='r';le[18]='s';le[19]='t';le[20]='u';le[21]='v';le[22]='w';le[23]='x';le[24]='y';le[25]='z';
  11. cod[0]="3E";cod[1]="G5";cod[2]="6T";cod[3]="8U";cod[4]="J9";cod[5]="B2";cod[6]="P2";cod[7]="HD";cod[8]="P4";cod[9]="4K";cod[10]="JK";cod[11]="FG";cod[12]="ML";cod[13]="4G";cod[14]="3G";cod[15]="2G";cod[16]="JP";cod[17]="MP";cod[18]="LO";cod[19]="CO";cod[20]="3K";cod[21]="7P";cod[22]="8D";cod[23]="F3";cod[24]="F5";cod[25]="X2";
  12. cout<<"Ingrese su Nombre: ";
  13. cin>>nombre;
  14. for(y=0;y<24;y++){
  15.     for(x=0;x<27;x++){
  16.     if(nombre[y]==le[x]){
  17.       cout<<cod[x];
  18.       }
  19.    }
  20. }
  21. cout<<"\n\n Ingrese su Apellido: ";
  22. cin>>apellido;
  23. for(y=0;y<24;y++){
  24.     for(x=0;x<27;x++){
  25.     if(apellido[y]==le[x]){
  26.       cout<<cod[x];
  27.       }
  28.    }
  29. }
  30. cout<<"\n";
  31. getch();}
  32.  
  33. int descodificar(){clrscr();
  34. le[0]='a';le[1]='b';le[2]='c';le[3]='d';le[4]='e';le[5]='f';le[6]='g';le[7]='h';le[8]='i';le[9]='j';le[10]='k';le[11]='l';le[12]='m';le[13]='n';le[14]='o';le[15]='p';le[16]='q';le[17]='r';le[18]='s';le[19]='t';le[20]='u';le[21]='v';le[22]='w';le[23]='x';le[24]='y';le[25]='z';
  35. cod[0]="3E";cod[1]="G5";cod[2]="6T";cod[3]="8U";cod[4]="J9";cod[5]="B2";cod[6]="P2";cod[7]="HD";cod[8]="P4";cod[9]="4K";cod[10]="JK";cod[11]="FG";cod[12]="ML";cod[13]="4G";cod[14]="3G";cod[15]="2G";cod[16]="JP";cod[17]="MP";cod[18]="LO";cod[19]="CO";cod[20]="3K";cod[21]="7P";cod[22]="8D";cod[23]="F3";cod[24]="F5";cod[25]="X2";
  36.  
  37. cout<<"Ingrese Un Nombre Codificado\n";
  38. cin>>nombre2;
  39. for(x=0;x<27;x++){
  40. if(nombre2.find(cod[x])!=string::npos){
  41. cout<<le[x];}
  42. }
  43.  
  44.  
  45. cout<<"Ingrese Un Apellido Codificado\n";
  46. cin>>apellido2;
  47. for(x=0;x<27;x++){
  48. if(apellido2.find(cod[x])!=string::npos){
  49. cout<<le[x];}
  50. }
  51.  
  52.  
  53.  
  54.    cout<<"\n";
  55.    getch();
  56. }
  57.  
  58. int main(){
  59.     while(op<3){
  60.     clrscr();
  61.         cout<<"\t\t\t..::MENU::..\n\n1.Codificar\n2.Descodificar\n3.Salir\n\n";
  62.         cin>>op;
  63.    switch(op){
  64.     case 1:{codificar();break;}
  65.       case 2:{descodificar();break;}
  66.                 }
  67.    }
  68. }
Lo que quiero es que me ayuden a la hora de mostrar la palabra descodificada porque me la muestra segun el orden del abecedario y no segun yo lo ingreso habra alguna forma de descodificar mi palabra pero que me la muestre segun el orden en que yo la escriba y no segun el orden del abecedario?? Lo que necesito es que al escribir digamos 4K3GLOJ9 me muestre jose y no ejos GRACIAS POR SU AYUDA estoy empezando con esto apenas
  #2 (permalink)  
Antiguo 24/08/2014, 12:13
Avatar de Drewermerc  
Fecha de Ingreso: febrero-2014
Mensajes: 185
Antigüedad: 10 años, 9 meses
Puntos: 5
Respuesta: PROBLEMA Ordenar PROGRAMACION FACIL

hola amigo.
Bueno pues algo parecido me paso a mi y pues la solución es la misma para tu código y es que hay que manejar los valores ascii para obtener la letra correcta en tu caso a la mayoría de las letras se les tienen que suma 5 al imprimirla pero hay excepciones y hay letras que necesitan otro tipo de suma o resta en este caso ya no me dio tiempo de hacer la prueba con todo el abecedario y solo me enfoque en la palabra jose hay te toca verificar que otras palabras necesitan una suma o resta diferente a 5.

y bueno el código en la parte de decodificar queda así.

Código C++:
Ver original
  1. for(x=0;x<27;x++){
  2.     if(nombre2.find(cod[x])!= string::npos){
  3.         if( (le[x] == 'o') )   
  4.             cout<<le[x+4];
  5.         else if(le[x] == 's')
  6.             cout<<le[x-14];
  7.         else
  8.             cout<<le[x+5];
  9.     }
  10. }

Bueno es el único método que e encontrado si es que encontraste otro espero que lo compartas.
Bueno espero haberte ayudado.
Saludos.
Drewermerc.

Etiquetas: facil, int, programa, programacion, string
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 17:43.