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

 

 


Tema destacado: Entrar al Canal Oficial Telegram de elhacker.net


  Mostrar Mensajes
Páginas: 1 2 [3] 4
21  Programación / Programación C/C++ / AYUDA CON RECURSIVIDAD en: 8 Enero 2018, 13:08 pm
Hola buenas, tengo un problema con una función recursiva, se mete pero nunca sale. No se si tengo un error en la sintaxis o en la condición de parada. Si alguien ve algún fallo y puede ayudarme...Gracias

Código:
void FncOpenPoint(Tablero Partida, int fil, int col)
{
if(fil>0&&fil<FIL&&col>0&&col<COL)
{
if(Partida[fil][col].mine==false)
if(Partida[fil][col].num=0&&Partida[fil][col].flag==false)
{
Partida[fil][col].visible=true;
/*for(int i=fil-1;i<fil+1;i++)
for(int j=col-1;j<col+1;j++)
FncOpenPoint( Partida,  fil,  col); */
    FncOpenPoint( Partida,  fil-1,  col-1);
FncOpenPoint( Partida,  fil-1,  col);
FncOpenPoint( Partida,  fil-1,  col+1);
FncOpenPoint( Partida,  fil,  col-1);
FncOpenPoint( Partida,  fil,  col+1);
FncOpenPoint( Partida,  fil+1,  col-1);
FncOpenPoint( Partida,  fil+1,  col);
FncOpenPoint( Partida,  fil+1,  col+1);
}
else
if(Partida[fil][col].mine!=true)
Partida[fil][col].visible=true;
}
return;
}
}

Como es un buscaminas tiene que ir recorriendo la matriz de forma recursiva hasta que encuentre una mina o llegue al limite del tablero. Se exige que sea de forma recursiva. Gracias
22  Programación / Programación C/C++ / (STL) Listas e iteradores. No entiendo el error que me da. en: 28 Diciembre 2017, 15:07 pm
Creo que no termino de entender esto de los iteradores porque no entiendo que error que me da, si alguien me puede decir que es lo que entendido mal...El programa es un diccionario, formado por dos clases: la clase palabra y la clase diccionario. La clase diccionario es una list formada de palabras. Mi error viene cuando intento añadir una nueva palabra al diccionario y me salta este error:

[Error] no match for 'operator<' (operand types are 'Palabra' and 'Palabra')

Y se abre una pagina con esto escrito:

Código:
	    if (*__first2 < *__first1) 

Aquí dejo los dos métodos que uso para añadir una palabra:
Código:
bool Diccionario::encuentraPalabra(const string &s, list<Palabra>::iterator &pos)
{
bool encontrado=false;
Palabra aux;
pos=listapal.begin();
while (pos!=listapal.end())
{
aux=*pos;
if(aux.getContenido()==s)
{
encontrado=true;
break;
}
pos++;
}

return encontrado;
}

void Diccionario :: anyadePalabra(const string &s)
{
list<Palabra>::iterator pos;
Palabra aux;
bool existe;
existe=encuentraPalabra(s, pos);
if(existe==true)
{
aux=*pos;
aux.incNumApariciones();
}

else //el error esta aqui
{
listapal.insert(pos,aux);
listapal.sort();
}

}
23  Programación / Programación C/C++ / Re: No consigo imprimir en: 28 Diciembre 2017, 14:57 pm
No acabo de entender que tiene que hacer el programa pero si te ayuda de algo, me he dado cuenta que los 0 y 1 los lees en una varibale tipo int y que luego se lo metes a un vector que es de tipo char (este puede ser un error).Otra cosa es que en la función imprimir imprimes hasta el tamaño maximo del vector aunque no este lleno, esto seguramente te imprime valores que no has metido, como un monton de 0, y por último y por lo que seguramente no te vaya lo de imprimir es porque cuando imprimes un vector tienes que decirle que posición imprimir.

Código:
#include <iostream>
using namespace std;

int const MAX_VECTOR = 30;

typedef int vector[MAX_VECTOR];

void imprimir(vector,int);

int main() {
    //  Variables y constantes
    int num_introducido = 0;
    vector V = {0};
    int contador = 0;
    int contador_vector = 0;
   
    //  Desarrollo del programa
    do{
        cout << "Introduce un bit: " << endl;
        cin >> num_introducido;
        if(num_introducido >= 0 && num_introducido <= 1){
            V[contador] += num_introducido;
            contador_vector++;
        }
        if(contador_vector < 8){
            contador++;
        }
    }while(num_introducido >= 0);
   
    imprimir(V,contador_vector);
   
    return 0;
}

void imprimir(vector _vector,int tam){
    for(int i = 0; i < tam; i++){
        cout << _vector[i] << endl;
    }
}

Así funciona la función imprimir aunque te quedaría hacer lo de los 8 bits pero mírate de que tipo quieres que sea el vector y en lo que le metes. Espero que te sirva de ayuda.
24  Sistemas Operativos / Windows / Re: Recuperar carpeta borrada (URGENTE!!!) en: 21 Noviembre 2017, 00:48 am
en la ram no está y los programas de recuperación deberías usarlos en un live con el disco en solo lectura

Me suponía que en la ram no estaba pero como lo he copiado por si acaso, no se. Con el live te refieres al sistema operativo?

El disco en solo lectura no se que es pero ahora busco por internet.
¿Apagar el ordenador no agravara el problema, no?

Muchas gracias por la ayuda!!
25  Sistemas Operativos / Windows / Recuperar carpeta borrada (URGENTE!!!) en: 21 Noviembre 2017, 00:38 am
Llevo todo el día de hoy terminando un proyecto (en dev-C++, por si sirve de algo) que me había copiado en el escritorio desde un pen (que había hecho los .h y poco más) he intentado mover-lo a la carpeta donde tengo todos los proyectos y sin querer lo he copiado y tonto de mi le he dado a crtl+z y no se que ha pasado si he pulsado demasiado tiempo o algo pero se ha ido el original también . Llevo unas 4 horas probando con todos los programas que he encontrado en internet de recuperación pero me da miedo seguir por si se sobrescriben los archivos o por si siguen por algún rincón en la ram. El proyecto es para la universidad, de ahí la desesperación xd

Si alguien sabe algún modo de como recuperar-lo por complicado o largo que sea.
Muchas gracias.  :D
P.D no esta en la papelera
26  Sistemas Operativos / GNU/Linux / Re: ¿Que programa recomiendan para crear un usb booteable de kali linux? en: 3 Noviembre 2017, 11:58 am

Gracias amigo! ¿Sabes si funciona para windows2000?
27  Sistemas Operativos / GNU/Linux / ¿Que programa recomiendan para crear un usb booteable de kali linux? en: 3 Noviembre 2017, 11:35 am
He probado varios programas antes para ubuntu y fedora pero no me gustaron y además no tenían la opción para instalar kali linux. Me descargué hace poco el PowerISO ( de la página oficial) y sobre quitar el todas las opciones para instalar otros programas aun me instaló una extensión en el navegador y cuando pasé el antivirus me encontró 3 virus ( 2 de ellos troyanos, no se si serian de antes pero mucha casualidad sería), en resumen no lo recomiendo para nada. Si saben de alguno o que alguno que hayan usado que les funcione bien díganmelo. Gracias!  ;D
28  Programación / Programación C/C++ / Re: Como salir del bucle (preferiblemente con algun system()) en: 23 Octubre 2017, 19:45 pm
La función EditVector esta a nivel del while ??

La función esta dentro de un do while con dos condiciones bool y la funcion en principio es un void. Lo que me has pasado es un buen metodo para hacerlo  :D Gracias!

Pero al final lo que he hecho ha sido:
Código:
case 't': case 'T':
system("cls");
cout<<"Gracias por jugar.";
exit(0);
break;

Lo dejo aqui por si le sirve a alguien en un futuro. El exit (0) finaliza el programa directamente sin tener que hacer nada mas, muy simple. Aunque me han dicho que el uso de system () no es muy recomendable no se si con esto ocurrirá lo mismo.
29  Programación / Programación C/C++ / Como salir del bucle (preferiblemente con algun system()) en: 23 Octubre 2017, 13:14 pm
Hola buenas.
Mi problema es que estoy haciendo un función en la que se utilizan las teclas W,A,S,D para moverse por un tablero. La cosa viene cuando intento hacer que al pulsar la telca T salga del programa ( como un boton para salir del juego). Seria facil si la funcion en el main no estuviera dentro de un bucle que le obliga a seguir jugando hasta que la condicon de terminar sea verdadera por medio de otra funcion que revisa si ha terminado el juego. Mi idea era poner algun system () como los system ("pause") pero algo que fuera system ("exit") o algo. Sino tendre que cambiar la funcion para que sea un bool o añadir mas parametros y seria tedioso y bastante largo.

Les comparto la funcion por si les sirve de algo ( recuerden que esta dentro de un while). Ignoren todso los case excepto el case T:
Código:
void EditVector (int ** tablero ,int numfil,int numcol) // en nuestro juego te puedes mover usando las teclas W,A,S,D lo cual nos parece mucho mas comodo
{
char d;
int i,j,aux,j2,f,c;
//system("cls");
for(i=0; i<numfil;i++)
for(j=0;j<numcol;j++)
{
if(tablero[i][j]==0)
{
f=i;
c=j;
}
}
cout<<"Su posicion actual es: ";
cout<<f<<"  "<<c<<endl;
cout<<"Utilize las teclas W,A,S,D para mover el espacio por el tablero."<<endl;
cin>>d;
switch (d)
{
case 'w': case 'W':

if (f==0)
{
cout<<"No se puede realizar el movimiento."<<endl;
system("pause");
break;
}
j2=f-1;
aux=tablero[j2][c];
tablero[f][c]=aux;
tablero[j2][c]=0;
break;
case 's': case 'S':
if (f==numcol-1)
{
cout<<"No se puede realizar el movimiento."<<endl;
system("pause");
break;
}
j2=f+1;
aux=tablero[j2][c];
tablero[f][c]=aux;
tablero[j2][c]=0;
break;
case 'a': case 'A':
if (c==0)
{
cout<<"No se puede realizar el movimiento."<<endl;
system("pause");
break;
}
j2=c-1;
aux=tablero[f][j2];
tablero[f][c]=aux;
tablero[f][j2]=0;
break;
case 'd': case 'D':
if (c==numfil-1)
{
cout<<"No se puede realizar el movimiento."<<endl;
system("pause");
break;
}
j2=c+1;
aux=tablero[f][j2];
tablero[f][c]=aux;
tablero[f][j2]=0;
break;
case 't': case 'T':
system("exit");
break;
}

}
30  Programación / Programación C/C++ / Re: Como crear un vector con 3/4 de probabilidad de exito en: 7 Octubre 2017, 17:32 pm
No conoces el operador 'módulo'?. Módulo es el valor que resta de una división


Si vale ya lo entiendo, si sabia lo que era pero no sabia a que te referias con eso de <>0.
Muchas gracias por tu ayuda. :-* :D
Páginas: 1 2 [3] 4
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines