elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Tutorial básico de Quickjs


  Mostrar Mensajes
Páginas: [1]
1  Programación / Programación C/C++ / Re: Ayuda con programa de posición de letras en: 29 Julio 2015, 07:29 am
Gracias gracias   ;D lo probaré por la noche en otros programas que tengo por ahi guardados ;).



Ya pobre el codigo y funcionó excelente, pero no reconoce la ñ y si pongo espacio y despues sigo escribiendo no me toma en cuenta eso, ¿alguna idea de como solucionarlo?
Y lo segundo, monte el código que me proporciono engel lex en un programa que no había terminado, un cifrado basado en rand y tomar posiciones aleatorias del alfabeto, mas o menos funciona pero no al 100 alguien me puede decir que pasa?

Código:
#include <iostream>
#include<cstdlib>
#include <ctype.h>
#include <locale.h>
#include<string.h>

using namespace std;

void desorden(int []);
void desordenarLet(int [], char []);


int main(){
setlocale(LC_CTYPE, "Spanish");

int random[28];
int i, numeroS, longitudmensaje;
char alfabetoDes[28];
    string mensaje;
    locale loc;

cout<<"Teclee su llave numerica: ";
cin>>numeroS;
srand(numeroS);
desorden(random);
desordenarLet(random, alfabetoDes);



cout<<"\nIntroduzca el mensaje a cifrar\n";
cin>>mensaje;
cin.get();

longitudmensaje=(mensaje.size());
int ordenLet[longitudmensaje];

for(i=0;i<mensaje.size();i++){
 
mensaje[i] = tolower(mensaje[i], loc);//a minusculas
 
    if(mensaje[i]>='a' && mensaje[i]<='z'){
 
    if(mensaje[i]>'n'){//para meter la ñ que no está en ascii standard
    mensaje[i]++;
    }
 
mensaje[i]-='a';
cout<<(int)mensaje[i];//para ubicarlo en el orden natural
            //cout<<(int)mensaje[i];//imprimimos casteando como int
//cout<<endl;
 
    }
 
    if(mensaje[i]==-61){//aquí está la ñ de ascii extendido
    i++;//la ñ ocupa 2 char, así que avanzamos 1 de una vez
    if(mensaje[i]==-111 || mensaje[i]==-79){//aseguramos que es ñ
mensaje[i]='n'-'a';//va siguiente a la n y arreglamos su orden natural
//cout<<(int)mensaje[i];//imprimimos casteando como int
//cout<<endl;
    }
    }
 
 
    } 

char mensajeCif[mensaje.size()];
   
    for(i=0;i<mensaje.size();i++){
        mensajeCif[i]=alfabetoDes[mensaje[i]];
    }
   
cout<<"\n";
for(i=0;i<=mensaje.size();i++){
cout<<mensajeCif[i];
}
   

cin.get();
return 0;
}

void desorden(int vector[28]){

int i, j, problema, n;

for(i=0;i<=27;i++){
n=rand() % 28;
problema=0;

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

if(n==vector[j]){
problema=1;
break;
}
}

if(problema==1){
i--;
}else{
vector[i]=n;
}
}
}

void desordenarLet(int r[28], char a[28]){
a[28];
a[r[0]]='a';
a[r[1]]='b';
a[r[2]]='c';
a[r[3]]='d';
a[r[4]]='e';
a[r[5]]='f';
a[r[6]]='g';
a[r[7]]='h';
a[r[8]]='i';
a[r[9]]='j';
a[r[10]]='k';
a[r[11]]='l';
a[r[12]]='m';
a[r[13]]='n';
a[r[14]]='ñ';
a[r[15]]='o';
a[r[16]]='p';
a[r[17]]='q';
a[r[18]]='r';
a[r[19]]='s';
a[r[20]]='t';
a[r[21]]='u';
a[r[22]]='v';
a[r[23]]='w';
a[r[24]]='x';
a[r[25]]='y';
a[r[26]]='z';
a[r[27]]=' ';
}

Posdata: El valor que tiene que regresarme en la a es 0 ya que ese es su lugar en el array. Otra cosa que esta mal es que no me imprime la ñ (que ya me lo esperaba), ni la "t" y tampoco la "y".
2  Programación / Programación C/C++ / Re: Función rand sin repeticiones en: 27 Julio 2015, 22:13 pm
Si claro perdon   :¬¬
Aun asi ya lo resolví. En cuanto vuelva a prender la pc subo el código.



Bueno el codigo es el siguiente:

Código:
  void random(int vector[28]){

int i, j, repeticion, n;

for(i=0;i<=27;i++){
n=rand() % 28;
repeticion=0;

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

if(n==vector[j]){
repeticion=1;
break;
}
}

if(repeticion==1){
i--;
}else{
vector[i]=n;
}
}
}

Bueno el vector que se le pasa en forma de parametro es solo para almacenar los numeros al azar.
3  Programación / Programación C/C++ / Re: Ayuda con programa de posición de letras en: 27 Julio 2015, 05:32 am
Ohh perdon, no lo sabia, ¿Puedo dejar el tema? O tengo que crear uno nuevo
4  Programación / Programación C/C++ / Función rand sin repeticiones en: 27 Julio 2015, 05:19 am
Que tal chic@s del foro, pues supongo que asunto lo explica todo, quiero hacer que la funcion rand me de valores del 0 a x número al azar pero sin repetir ninguno, además quiero usar una semilla diferente usando srand(int i), pero no srand(time(0)).
Gracias por la ayuda   ;-)
5  Programación / Programación C/C++ / Ayuda con programa de posición de letras en: 27 Julio 2015, 05:12 am
Que tal chic@s del foro, pues tengo el codigo que se muestra mas abajo, lo que quiero es hacer un programa que me diga las posiciones del abecedario en que se encuentra  las letras de un texto introducido por ep usuario; aunque aun le faltan detalles al probarlo si abre, pero no me da lo que deberia, me da valores grandes y raros.
¿Alguien que me diga que esta mal?

Código
  1. #include <iostream>
  2. #include <ctype.h>
  3. #include <locale.h>
  4.  
  5. using namespace std;
  6.  
  7. int longitudmensaje, longitudOrden, i, j;
  8. char alfabetoOr[28], mensaje[500];
  9.  
  10. int main(){
  11.  
  12. char alfabetoOr[28]={'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',' '};
  13. cout<<"Introduzca las letras de las que desea conocer su posiposición\n";
  14. cin>>mensaje[500];
  15.  
  16. longitudmensaje=(sizeof(&mensaje));
  17. int ordenLet[longitudmensaje];
  18.  
  19. for(i=0;i<(longitudmensaje);i++)
  20. {
  21.     mensaje[i]=toupper(mensaje[i]);                              
  22.    }
  23.  
  24.     for (i=0;i<(longitudmensaje);i++)
  25.     {
  26.         for (j=0;j<28;j++)
  27.         {
  28.                                    if (mensaje[i]==alfabetoOr[j])
  29.                                       {
  30. if (mensaje[i]!='\0')
  31. {
  32. ordenLet[i]=j;
  33. }
  34.                                       }                                  
  35.         }  
  36.     }  
  37.  
  38. for(i=0;i<(longitudmensaje);i++){
  39. cout<<ordenLet[i]<<"\n";
  40. }
  41.  
  42. cin.get();
  43. return 0;
  44. }


Posdata:
Esta parte del codigo (if (mensaje!='\0') lo vi en youtube, decia que era necesario al comparar los elementos de un array

Mod: los códigos deben ir en etiquetas GeSHi
Páginas: [1]
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines