Menú

Mostrar Mensajes

Esta sección te permite ver todos los mensajes escritos por este usuario. Ten en cuenta que sólo puedes ver los mensajes escritos en zonas a las que tienes acceso en este momento.

Mostrar Mensajes Menú

Temas - Error 404:

#1
Programación C/C++ / Programa de fuerza bruta:
10 Febrero 2015, 16:54 PM
Hola a todos.
Os cuento, me gustaría desarrollar un programa que sirva para descubrir claves wifi.
Tengo en mente hacerlo por fuerza bruta. Mi duda no está en esa parte del código en sí. Quiero decir, sé como hacer que genere pass para probar todas las combinaciones posibles.
Lo que no sé, es cómo acceder desde el código para que introduzca esa pass para intentar validar y conectarse. Es decir, mi idea es, genero la posible pass con la que probar a conectarse, pero, no se el código que habría que poner para llegar a introducir esa pass.
Si me pudiérais guiar un poco sobre los conceptos que debo estudiar y demás os lo agradecería mucho.
Gracias a todos de antemano.
#2
Programación C/C++ / Existe esta funcion???
16 Diciembre 2014, 21:42 PM
Hola a todos;
os cuento, tengo un problema, estoy intentando desarrollar el famoso juego de la serpiente en modo consola, pero tengo un problema a la hora de borrar el rastro que deja.
Para mi duda no hace falta que ponga nada de código del que llevo, asi que me lo ahorro  :rolleyes: .

Qerría saber si existe alguna función que colocando el cursor en alguna coordenada de la consola me diga si en esa posición hay un cierto carácter. Es decir, asignarle lo que haya en esa posición a una variable para poder compararla y demás.
Si existe me podríais decir en qué biblioteca está y cómo se usa y funciona???
Muchas gracias por adelantado.
#3
Programación C/C++ / Pequeño juego de naves:
7 Diciembre 2014, 23:32 PM
Hola a todos. Veréis estoy programando un minijuego de naves siguiendo un pequeño tutorial, pero tengo ciertos problemillas. Les cuento:
En primer lugar es que nunca pone game_over a falso en el último if (el que comprueba si las vidas son 0) y no entiendo porque la verdad  :huh: .
Luego, es que va demasiado trabado y no dispara cuando le doy, debo dejarlo mucho rato pulsando la tecla 'a' (tecla de disparo) para que dispare alguna vez, y pasa lo mismo con el movimiento.
Por si es un dato importante, les diré que probando a poner varias veces dentro del bucle while lo de nave_1.Mover() si que se movía mejor, sin embargo, disparaba aún menos... :-( .

Les agradecería cualquier ayuda por favor. Pero no me indiquen solo lo que debo cambiar, agradecería aún más si me indican por qué está mal lo que deba cambiar y porque sí que funciona o es mejor opción lo que me recomendéis.

Muchas gracias por adelantado.

PD:Los signos y números que aparecen en mitad de los comentarios son acentos.

Código (cpp) [Seleccionar]


#include <stdio.h>
#include <windows.h>
#include <conio.h>
#include <stdlib.h>
#include <list>

using namespace std;

/*Para colocar el cursor en la posición que queramos de la consola. Para ello utilizamos una clase definida
en la biblioteca windows.h la HANDLE y la COORD y creamos dos objetos. También hacemos uso de de
la función SetConsoleCursorPosition()*/
void gotoxy(int x, int y){
HANDLE hCon;    //indentificador de la consola
hCon = GetStdHandle(STD_OUTPUT_HANDLE);
COORD dwPos;
dwPos.X = x;
dwPos.Y = y;   //Las coordenadas "Y" están invertidas

SetConsoleCursorPosition(hCon, dwPos);
}

/*Para evitar que el cursor esté parpadeando en pantalla. Utilizamos
  una entrada semejante a la de la función gotoxy, y utilizamos la
  función SetConsoleCursorInfo que sirve para mofificar las caracteristicas
  del cursor (hacerlo más pequeño, grande, quitarlo,etc). Debemos crear
  un objeto de la clase CONSOLE_CURSOR_INFO que debemos mandar como parametro
  de la función, y modificaremos sus datos miembros que son dos: dwSize para
  controlar el tamaño y bVisible para que se muestre el cursor o no. Al pasar
  el objeto a la función SetConsoleCursorInfo hay qeu hacerlo usando un "&".*/
void OcultarCursor(){
HANDLE hCon;    //indentificador de la consola
hCon = GetStdHandle(STD_OUTPUT_HANDLE);
CONSOLE_CURSOR_INFO cci;
cci.dwSize = 2;
cci.bVisible = FALSE;

SetConsoleCursorInfo(hCon, &cci);
}

/*Esta clase servirá para crear e interactuar con nuestro objeto nave.*/
class Nave{
private:
int x, y;
const char ARRIBA;
const char ABAJO;
const char IZQUIERDA;
const char DERECHA;
int corazones;
int vidas;
public:

/*Constructor para asignar una posición inicial*/
Nave(int coordenada_x, int coordenada_Y, int _corazones, int _vidas, char sube, char baja, char giro_derecha, char giro_izquierda)
:ARRIBA(sube), ABAJO(baja), IZQUIERDA(giro_izquierda), DERECHA(giro_derecha)

x = coordenada_x;
y = coordenada_Y;
corazones = _corazones;
vidas = _vidas;
}

/*Este método sirve como su nombre indica para pintar la nave en pantalla,
  para ello hemos usado caracteres ASCII.*/
void Pintar(){
gotoxy(x,y); printf("  %c",30);
gotoxy(x,y+1); printf(" %c%c%c",40,207,41);
gotoxy(x,y+2); printf("%c%c %c%c",30,190,190,30);
}

/*Este método borra el rastro de la posición anterior la nave*/
void BorrarNave(){
gotoxy (x,y);   printf("   ");
gotoxy (x,y+1); printf("    ");
gotoxy (x,y+2); printf("     ");
}

/*Este método sirve para borrar un rastro más grande como el que deja la explosión*/
void BorrarExplosion(){
gotoxy (x,y);   printf("       ");
gotoxy (x,y+1); printf("       ");
gotoxy (x,y+2); printf("       ");
}

/*Este método sirve para mover la nave mediante las teclas.
  Para detectar cuando pulsamos alguna tecla, y hacer algo en
  de que tecla pulsemos. Usamos la función kbhit() incluida en
  la biblioteca conio.h. También es necesario usar la función
  getch() para recuperar la tecla que pulsemos y asignarla a
  una variable. Al principio debemos imprimir un espacio en blanco
  para borrar la posición anterior.*/
void Mover(){
if(kbhit()){     
char tecla = getch();
BorrarNave();
if (tecla == IZQUIERDA && x>3)
x--;
else if(tecla == DERECHA && x<73)
x++;
else if(tecla == ARRIBA && y>3)
y--;
else if(tecla == ABAJO &&  y<25)
y++;
Pintar();
}
}

/*Este método sirve para marcar los límites y que la nave no pueda sobrepasar
  los bordes establecidos y dibujados*/
void PintarLimites(){
int ancho;
int alto;
for (ancho = 2; ancho < 79; ancho++){
gotoxy(ancho, 28); printf("%c",205);
gotoxy(ancho, 2); printf("%c",205);

}
for (alto=2; alto < 29; alto++){
gotoxy(2, alto); printf("%c",186);
gotoxy(78, alto); printf("%c",186);
}
gotoxy(2,2); printf("%c",201);
gotoxy(78,2); printf("%c",187);
gotoxy(2,28); printf("%c",200);
gotoxy(78,28); printf("%c",188);
}

/*Este método sirve para dibujar los corazones que simbolizarán la vida de
  nuestra nave*/
void PintarVidaSalud(){
gotoxy(50,1); printf("Vidas:%d",vidas);
gotoxy(64,1); printf("Salud:");
gotoxy(70,1); printf("       ");
for(int i=0; i<corazones; i++){
gotoxy(70+i,1); printf("%c",3);
}
}

/*Este método es el encargado de quitar los corazones cuando los asteroides
  colisionen con la nave*/
void QuitaCorazones(){
corazones--;
}

/*Este método sirve para pintar una recreación de una explosión para
  simular la muerte de la nave*/
void Morir(){
if(corazones==0){
BorrarExplosion();
gotoxy(x,y); printf("   **   ");
gotoxy(x,y+1); printf("  ****  ");
gotoxy(x,y+2); printf("   **   ");
Sleep(200);

BorrarExplosion();
gotoxy(x,y); printf(" * ** * ");
gotoxy(x,y+1); printf("  ****  ");
gotoxy(x,y+2); printf(" * ** * ");
Sleep(200);

BorrarExplosion();
gotoxy(x,y); printf("   **   ");
gotoxy(x,y+1); printf("  ****  ");
gotoxy(x,y+2); printf("   **   ");
Sleep(200);

BorrarExplosion();
gotoxy(x,y); printf(" * ** * ");
gotoxy(x,y+1); printf("  ****  ");
gotoxy(x,y+2); printf(" * ** * ");
Sleep(200);
BorrarExplosion();

vidas--;
corazones=3;
PintarVidaSalud();
}
}

/*Este método sirve para que al llamarlo podamos obtener la cordenada X*/
int CoordenadaX(){
return x;
}

/*Este método sirve para que al llamarlo podamos obtener la cordenada Y*/
int CoordenadaY(){
return y;
}

/*Este método sirve para obtener el número de vidas.*/
int Vidas(){
return vidas;
}
};

/*Esta clase servirá para crear e interáctuar con los asterioides*/
class Asteroide{
private:
int x, y;
public:
/*Este método es el constructor de los objetos asteroides*/
Asteroide(int _x, int _y){
x = _x;
y = _y;
}

/*Este método se encarga de pintar los asteroides*/
void Pintar(){
gotoxy(x,y); printf("%c",184);
}

/*Este método es el encargado del movimiento de los asteroides*/
void Mover(){
gotoxy(x,y); printf(" ");
y++;
if(y > 27){
x= rand() %71 + 4;
y=4;
}
Pintar();
Sleep(5);
}

/*Este método es el encargado de detectar si el asteroide colisiona con la nave.
  Se lo debemos pasar por referencia (&) ya que vamos a modificar los valores del objeto*/
void Colision(Nave &n){
if(x >= n.CoordenadaX() && x <= n.CoordenadaX()+5 && y >= n.CoordenadaY() && y < n.CoordenadaY()+2){
n.QuitaCorazones();
n.Pintar();
n.PintarVidaSalud();

Mover();             
Pintar();
}
}

/*Este método sirve para que al llamarlo podamos obtener la cordenada X*/
int CoordenadaX(){
return x;
}

/*Este método sirve para que al llamarlo podamos obtener la cordenada Y*/
int CoordenadaY(){
return y;
}
};

/*Esta clase sirve para crear e interactuar con la bala de nuestra nave*/
class Bala{
private:
int x,y;
public:
/*Este método es el constructor del objeto bala.*/
Bala(int _x, int _y){
x = _x;
y = _y;
}

/*Este método es el encargado de mover la bala.*/
void Mover(){
gotoxy(x,y); printf(" ");
if(y > 3)
y--;
gotoxy(x,y); printf("*");
}

/*Comprueba si la bala ha llegado arriba del todo.*/
bool Fuera(){
if (y==3)
return true;
else return false;
}

/*Este método sirve para que al llamarlo podamos obtener la cordenada X*/
int CoordenadaX(){
return x;
}

/*Este método sirve para que al llamarlo podamos obtener la cordenada Y*/
int CoordenadaY(){
return y;
}
};
int main(){
bool game_over = false;
int numero_meteoritos = 5;
int puntos = 0;

Nave nave_1(50,25,3,3,72,80,77,75); //Los cuatro ultimos numeros son los que hacen referencia a los valores ASCII de las flechas.

OcultarCursor();
nave_1.Pintar();
nave_1.PintarLimites();
nave_1.PintarVidaSalud();

/*Esto es una lista que contiente punteros a objetos de la clase Bala. Esto nos permitirá crear objetos.
  También definitmos "it" lo cual nos servirá para recorrer todos los objetos que creemos y ejecutar sus acciones
  ya que cada it será un puntero a un objeto. Haremos lo mismo con los meteoritos.*/
list<Bala*>B;
list<Bala*>::iterator itB;

list <Asteroide*>A;
list<Asteroide*>::iterator itA;

/*Para crear los objetos de la clase Asteroide.*/
for(int i=0; i<numero_meteoritos; i++){
A.push_back(new Asteroide(rand()%75 + 3, rand()%5+4));
}

/*Rutina de ejecución del juego. Al final colocamos la función Sleep(x) para detener el procesador
  durante x milisegundos, para no forzarlo a trabajar demasiado, ya que mejora su rendimiento
  y el tiempo de parada no es apreciable para los usuarios.*/
while(!game_over){

gotoxy(4,1);
printf("Puntos %d",puntos);

nave_1.Mover();
nave_1.PintarVidaSalud();
nave_1.Morir();

if(kbhit()){
char tecla = getch();
if (tecla == 'a')
/*Para crear el objeto bala, y que empiece en el centro de la nave.*/
B.push_back(new Bala(nave_1.CoordenadaX()+2, nave_1.CoordenadaY()-1));
}

/*Para recorrer los elementos de la lista. Dentro del for cada "it" actúa como
  un puntero a bala, por lo que al volver a poner "*it", el puntero se desreferencia
  teniendo así su contenido y no su dirección. Cada (*it) es un objeto de la clase
  Bala, y al ser un puntero, llamamos al método mover con "->". Necesitamos borrar la bala
  ya que se queda arriba parada. Para ello comprobamos que esté arriba para ver si tenemos que
     borrarla, si está alli dibujamos un espacio, y queda así borrada. Ahora nos falta borrar ese objeto
     de la memoria (usando delete), y para que el iterador no pierda el hilo de por donde
  debe seguir igualamos it a la siguiente iteración mediante la llamada al método "erase".*/
for(itB=B.begin(); itB!=B.end(); itB++){
(*itB)->Mover();
if ((*itB)->Fuera()){
gotoxy((*itB)->CoordenadaX(), (*itB)->CoordenadaY());
printf(" ");
delete (*itB);
itB=B.erase(itB);
}
}

/*Recorremos todos los objetos de la clase Asteroide para moverlos y comprobar
  si han colisionado con la nave.*/
for(itA=A.begin(); itA!=A.end(); itA++){
(*itA)->Mover();
(*itA)->Colision(nave_1);
}

/*Recorremos todos los objetos de la clase Asteroide, y para cada uno de ellos, recorremos los de
  la clase Bala para comprobar si colisiona una bala con un meteorito. Al igual que antes al borrar
  la bala debemos borrar también al puntero e igualar el it al siguiente espacio para que el iterador
  no pierda el hilo. Al borrar el meteorito debemos crear otro, o llegaría un punto en el que al
  destruirlos todos nos quedaríamos sin ninguno.*/
for(itA=A.begin(); itA!=A.end(); itA++){
for(itB=B.begin(); itB!=B.end(); itB++){
if((*itA)->CoordenadaX()==(*itB)->CoordenadaX() && ((*itA)->CoordenadaY()+1==(*itB)->CoordenadaY() || (*itA)->CoordenadaY()==(*itB)->CoordenadaY())){
gotoxy((*itB)->CoordenadaX(), (*itB)->CoordenadaY());
printf(" ");
delete(*itB);
itB=B.erase(itB);

A.push_back(new Asteroide(rand()%74+3, 4));

gotoxy((*itA)->CoordenadaX(), (*itA)->CoordenadaY());
printf(" ");
delete(*itA);
itA=A.erase(itA);

puntos += 5;
}
}
}

if(nave_1.Vidas() <= 0)
game_over = false;

Sleep(5);
}
return 0;
}

#4
Hola a todos, veréis tengo una duda desde hace ya un tiempo y no consigo encontrar la respuesta. Veréis, esque cuando pongo por ejemplo en que lenguaje está programado algún videojuego o programa con cierto nivel de complejidad, pone por poner alguno que está en c++, java y algún lenguaje. Mi pregunta es, ¿cómo se mezclan varios lenguajes en un mismo software? Porque se supone que tiene que haber algún punto de unión entre las partes de los diferentes lenguajes no??
Agradecería muchísimo cualquier aclaración al respecto.
PD: no se si esta duda debe ir en esta parte porque no es estrictamente de C o C++, pero al ser de programación en general no sabía donde ponerla.
#5
Programación C/C++ / Un objeto que sea un vector:
29 Noviembre 2014, 20:20 PM
Hola a todos, como el título indica, me gustaría crear un objeto de una clase, y que ese objeto actúe como vector. Es decir, para un clase x, crear un objeto vector y
He probado haciendo:
Código (cpp) [Seleccionar]

class x{
   ...
   x (...){
   ...
   }
...
};
int main(){
   ...
   X y[i](...)
   ...
}

Donde i es una variable que va en aumento para crear objetos diferentes ( y[1[], y[2]...)
Pero al intentar compilar me sale el siguiente error:
   [Error] variable-sized object 'sucursal' may not be initialized


Espero puedan ayudarme por favor, gracias por adelantado.
#6
Programación C/C++ / Problema en una clase en C++:
23 Noviembre 2014, 16:36 PM
Hola a todos, os explico:
debo hacer un programa que simule las ventas de tres sucursales. Cada una debe ser un objeto de la clase Ventas. Para referirnos a ellas usamos los valores 1, 2 y 3.
Debemos introducir el tipo de producto que han vendido y a cantidad de veces (aunque realmente el tipo de producto luego no se usa para nada).
Luego me debe decir que sucursal es la que mas productos ha vendido y cuantos (no hay que distinguir entre tipos de productos) y aquí es donde me sale el problema

Pues bien, ya llevo bastante avanzado pero me sale un error que no entiendo, me pone
(dirección del programa) [Error] 'ganador' does not name a type  :huh:

Les dejo el código:
Código (cpp) [Seleccionar]

#include <iostream>
using namespace std;

class Ventas{
private:
int sucursal;
char producto;
int cantidad;
int cantidad_ganadora;
public:
Ventas(int identificador_sucursal){
sucursal = identificador_sucursal;
cantidad = 0;
}
void SetUnidades(int unidades){
cantidad +=unidades;
}
int SucursalGanadora(Ventas sucursal_1,Ventas sucursal_2, Ventas sucursal_3){
if (sucursal_1.cantidad > sucursal_2.cantidad && sucursal_1.cantidad > sucursal_3.cantidad)
cantidad_ganadora = sucursal_1.cantidad;
return 1;
if (sucursal_2.cantidad > sucursal_1.cantidad && sucursal_2.cantidad > sucursal_3.cantidad)
cantidad_ganadora = sucursal_2.cantidad;
return 2;
if (sucursal_3.cantidad > sucursal_1.cantidad && sucursal_3.cantidad > sucursal_2.cantidad)
cantidad_ganadora = sucursal_3.cantidad;
return 3;
}
int CantidadGanadora(){
    return cantidad_ganadora;
}
};

int main(){
int identif_sucursal;
const int TERMINADOR = -1;
bool fichero_vacio;
char cod_producto;
int unidades_vendidas;
int ganador;

Ventas sucursal_ganadora(0);
Ventas sucursal_1(1);
Ventas sucursal_2(2);
Ventas sucursal_3(3);

while (identif_sucursal != TERMINADOR){
cout << "\nIntroduce la sucursal: ";
cin >> identif_sucursal;

fichero_vacio = identif_sucursal == TERMINADOR;
if (!fichero_vacio){
cout << "Introduce el identificador del producto: ";
cin >> cod_producto;
cout << "Introduce la cantidad vendida de dicho producto: ";
cin >> unidades_vendidas;

if (identif_sucursal == 1)
sucursal_1.SetUnidades(unidades_vendidas);
else if (identif_sucursal == 2)
sucursal_2.SetUnidades(unidades_vendidas);
else sucursal_3.SetUnidades(unidades_vendidas);
}
}
}

ganador = sucursal_ganadora.SucursalGanadora(sucursal_1, sucursal_2, sucursal_3); //Aquí sale el error
cout << "|nLa sucursal que mas productos ha vendido es la " << ganador;
ganador = sucursal_ganadora.CantidadGanadora();//Y aquí también el mismo
cout << "\nQue ha vendido " << ganador << "productos."
}

Agradeceria la ayuda, muchas gracias a todos.
#7
Programación C/C++ / Duda básica sobre C:
8 Septiembre 2014, 23:22 PM
Hola a todos, veréis, en el manual que estoy leyendo sobre C, viene todo muy bien explicado y eso, pero hay un detalle que se han saltado, y que me tiene bastante confuso. Cuando ponen por ejemplo:

printf( "%2d! = %ld\n",i, factorial( i ) );

Lo que no entiendo para qué sirve es el 2 y el 1 que hay delante de la "d" y detrás del "%".
Me ha pasado bastantes veces, no solo en este caso, siempre en los printf en los que se pone el signo "%", lo que hay detrás me confunde un poco.
No me malinterpreten, se que la "d" por ejemplo es para un número entero, pero no los números, y otras letras que se ponen en ocasiones, creo que la "s" es para una cadena no??
Si me pudieran explicar esto un poco os lo agradecería muchísimo.
Un saludo.
#8
Programación C/C++ / Duda en programación C:
6 Septiembre 2014, 11:55 AM
Hola a todos de nuevo, veréis, me he atascado en un programita de C, es un ejercicio de un manual que estoy haciendo. El enunciado dice así:

1)Escriba un programa que imprima los patrones siguientes de manera separada, uno debajo del otro. Utilice ciclos
for para generar los patrones. Todos los asteriscos (*) deben imprimirse mediante una sola instrucción printf
de la forma printf("*"); (esto provoca que los asteriscos se impriman uno al lado del otro). Pista: Los dos últimos
patrones requieren que cada línea comience con el número apropiado de espacios en blanco.
Los dibujos están en el código en forma de comentario, hay 4 aunque solo aparecen 3 pues es en el que tengo la duda, y una vez sepa el 3, el 4 yo creo que podré sacarlo.
Dejo también los dos primeros, aunque esos si me han salido sin problema, aunque si veis algo que podría optimizarse un poco o cualquier observación, siempre se agradece  :rolleyes:
Ahí va:



#include<stdio.h>
int main(){
int i,j=10;
int espacios;



/* A)
*
**
***
****
*****
******
*******
********
*********
*/
for(i=1;i<=10;i++){
for(j=1;j<=i;j++){
printf("*");
    }
printf("\n");
}
printf("\n\n");


/* B)
**********
*********
********
*******
******
*****
****
***
**
*
*/
   for(i=1;i<=10;i++){
for(j=10;j>=i;j--){
printf("*");
    }
    printf("\n");
}
printf("\n\n");


/* C)
**********
*********
  ********
   *******
    ******
     *****
      ****
       ***
        **
         *
*/
   for(i=1;i<=10;i++){
      for(espacios=1;espacios<=10-j;espacios++)
     printf(" ");
      for(j=10;j>=i;j--){
     printf("*");
  }
      printf("\n");
   }   

return 0;
}


La figura C) es la que me falla, me sale una representación bastante distinta, es algo así:

**********
                *********
               ********
              *******
            *******
          *******
        *****
......
y así
Gracias por las ayudas de antemano.
#9
Programación C/C++ / Duda con anidamiento de "for":
5 Septiembre 2014, 10:58 AM
Hola a todos, os cuento mi problema, he visto que multitud de programas contienen anidamientos de varias instrucciones "for" y la verdad es que no entiendo como funcionan estos anidamientos  :huh: . Creo que es bastante importante entenderlos por la cantidad de opciones que ofrecen, como por ejemplo el ordenamiento en burbuja, asi que si alguien me lo pudiera explicar con algún ejemplo que me indique paso a paso lo que hace o como crea que es la manera más correcta  para aprenderlo bien lo agradecería muchísimo.
Muchas gracias de antemano por su tiempo.
#10
Hola a todos, antes de nada, ya se que saqué este hilo hace algún tiempo, pero sigo teniendo un problema al que no consigo darle la solución. El objetivo del programa que estoy intentando crear es que al introducir una cadena de caracteres, éste te diga si esa cadena es o no un palíndromo (que se lee igual de izquierda a derecha y de derecha a izquierda (ejemplo otto)).
He conseguido compilar el código sin que me salga ningún error ni ningún warning, sin embargo cuando lo ejecuto, al introducir la cadena, no hace nada  :huh:
Les dejo el código por si me pudieran ayudar. Gracias de antemano a todos.
Código (cpp) [Seleccionar]


#include <iostream>
#include <cstring>

using namespace std;

bool palindromo(char cadena[100]);

int main(){

    char cadena[100];

    cout << "Introduzca una palabra o cadena de ellas sin utilizar espacios y/o" << endl;

    cout << " mayusculas, minusculas, acentos, etc. El programa le dira si la" << endl;

    cout << " cadena introducida es un palindromo."<< endl;

   

    cin >> cadena;

    cin.get();

    if (palindromo(cadena)) cout<< "Es un palindromo.";

    else cout<< " No es un palindromo.";


cin.get();

return 0;

}

bool palindromo(char cadena[100])
{

     int n;

     int j = sizeof(cadena)/sizeof(cadena[0]);

     int k = 0;

     do{

         if (cadena[k]!=cadena[j])(n=0);

         else {                                     

              k++;

              j--;

              n=1;

              }

         } while(k != j-1 || n!=0);

         if (n==1) return true; else return false;

}

#11
Hola a todos
Os cuento, hoy me he puesto a hacer un programa bastante básico, que consiste en introducir una palabra o una frase y te devuelve si es un palíndromo o no.
Puesto que aún tengo un nivel muy muy básico (por no decir malo) al principio he aclarado que nunca se utilicen espacios, ni mayúsculas, ni acentos, y en fin, cualquier cosa que dificulte mucho más la programación.
Bueno os dejo el programa y la localización y el fallo que me pone, supongo que es importante decir que utilizo DEV-C++.
Espero que me d¡gáis una pista o algo de como solucionarlo, gracias.

#include <iostream>
#include <cstring>
using namespace std;
int n;
bool palindromo;
int j;
int main(){
    int i;
    char cadena;
   
    cout << "Introduzca una palabra o cadena de ellas sin utilizar espacios y/o" << endl;
    cout << " mayusculas, minusculas, acentos, etc. El programa le dira si la" << endl;
    cout << " cadena introducida es un palindromo."<< endl;
   
    cin >> cadena;
    cin.get();
    if (palindromo) cout<< "Es un palindromo.";
    else cout<< " No es un palindromo.";

cin.get();
return 0;
}

bool palindromo
{        //AQUI MARCA EL FALLO Y PONE: INVALID FUNCTION DECLARATION
     int j = sizeof(cadena)/sizeof(cadena[1]);
     int k = 1;
     do{
         if(strcmp(cadena[k],cadena[j])==0) k++ j-- n=1;
         else n=0;
         } while( k != j+1 && n!=0);
         if (n==1) return true; else return false;
}


Gracias por adelantado.
#12
Desafíos - Wargames / Duda lenguaje HTML
17 Septiembre 2013, 12:03 PM
Hola a todos, intentaré ir al grano. En el reto de Zona 0; se que hay que mirar el codigo fuente y luego darle a javascript, el problema es que no se basicamente nada de lenguaje html, y e estado buscando manuales y no he encontrado lo que yo estoy buscando, porque sinceramente no me interesa demasiado aprender en su totalidad html (sobretodo porque actualmente estoy prendiendo C++); asi que me pregunto si sabeis de un manual que solo explique esa parte  del lenguaje, es decir la que se usa para comparar contraseñas, cifrarlas, etc... :huh:
Muchas gracias por adelantado  :)
#13
Hola a todos ( de nuevo ), siento tener que preguntar demasiadas cosas pero espero que tengan paciencia con este novato  :-[
El problema es el siguiente, tengo que hacer el siguiente ejercicio para el manual que me estoy leyendo:

Escribir un programa con una funcion que calcule la longitud de una cadena de caracteres. El nombre de la funcion sera LongitudCadena, debe devolver un "int", y como parametros de entrada debe tener un puntero a "char". (En "main" probar con distintos tipos de cadenas:arrays y punteros. )<--- Esto no lo pillo xd.

Ahora mismo llevo esto pero no me sale, agradeceria ayuda porque la verdad lo de los punteros me esta resultando bastante dificil   :-(

No estoy pidiendo que me manden el codigo del programa entero!!! (que sino no aprendo xd), sino que me digan mi error y si es posible un ejemplo de bien usado, pero en un miniejemplo no el programa.

Muchas gracias por adelantado ;)
PD: EN EL CODIGO DONDE PONE &#241; ES UNA --->Ñ<--- QUE EL C++ NO ME LEE XD
Código (cpp) [Seleccionar]


#include <iostream>
using namespace std;
bool LongitudCadena(char* cadena);
int main() {
    char cadena[100];
    char resp[4];
     char c;
     cadena=c;
    do{
         cout << endl << endl;
         cout << "Introduce la cadena de la que desees saber su tamaño:" << endl<< endl;
         cin >> cadena ;cout << endl << endl; cin.get();
         cout << "Tamaño de la cadena: "  << c <<endl<<endl;
         system("PAUSE");
         cout << "Desea reiniciar a otra cadena: "; cin >> resp;cin.get();
         
    }
      while(resp[0]==('s'|| 'S' || 'y' || 'Y'));
   
    cin.get();
    return 0;
}
bool LongitudCadena(char* n){
     for (i=0;i<100;i++)
     do (sizeof(cadena[i])); while( cin.get());
     }


Algo me tiene que fallar en el puntero, no se si es la declaracion o que exactamente pero algo me falla...  :huh:
Gracias de nuevo ;)
#14
Hola a todos muy buenas, me estoy iniciando en el mundillo de la programacion y me ha surgido un problemilla y es que no consigo hacer que un programa me compare dos  cadenas. Este es el codigo agradeceria una ayudita sobre en que me he confundido.  [Tiene muchos "cout << endl", es por pura estetica xd]
La finalidad del programa es que introduzcas un nombre y un telefono de 4 personas, y luego poder realizar la busqueda introduciendo su nombre (y te da el numero) o introduciendo el numero ( y te da el nombre). Pero cuando meto algun nombre o numero siempre me da la respuesta del primero que he introducido, y no el que corresponde :huh:. Gracias por adelantado   :rolleyes:


#include <iostream>
#include <cstring>
using namespace std;
struct A {
      char Nombre[40];
      int Telefono;
      } Fulanito[4];
int main()
{
   int i;
   int z;
   char buscaNombre[40];
   int buscaTel;
 for (i = 0; i < 4; i++)  
 {
    cout << " Introduce el nombre de la persona: ";cin >> Fulanito[i].Nombre; cout << endl;
    cout << " Introduce el numero telefonico de " << Fulanito[i].Nombre<< ": "; cin >> Fulanito[i].Telefono; cout << endl << endl; cin.get();
 }
 
 cout << endl << endl << endl; cout << endl << endl << endl; cout << endl << endl << endl; cout << endl << endl << endl; cout << endl << endl << endl; cout << endl << endl << endl; cout << endl << endl << endl; cout << endl << endl << endl; cout << endl << endl << endl; cout << endl << endl << endl; cout << endl << endl << endl; cout << endl << endl << endl; cout << endl << endl << endl; cout << endl << endl << endl; cout << endl << endl << endl; cout << endl << endl << endl; cout << endl << endl << endl; cout << endl << endl << endl; cout << endl << endl << endl; cout << endl << endl << endl; cout << endl << endl << endl; cout << endl << endl << endl; cout << endl << endl << endl; cout << endl << endl << endl; cout << endl << endl << endl; cout << endl << endl << endl; cout << endl << endl << endl; cout << endl << endl << endl; cout << endl << endl << endl; cout << endl << endl << endl; cout << endl << endl << endl; cout << endl << endl << endl; cout << endl << endl << endl; cout << endl << endl << endl; cout << endl << endl << endl; cout << endl << endl << endl; cout << endl << endl << endl; cout << endl << endl << endl; cout << endl << endl << endl; cout << endl << endl << endl; cout << endl << endl << endl; cout << endl << endl << endl;
 

Bucle:
 cout << "   ******************** MENU *********************      " << endl << endl; cout << endl << endl << endl;
 cout << "           1) Buscar por nombre                 " << endl << endl;
 cout << "           2) Buscar por numero                 " << endl << endl;
 cout << "           3) Salir                             " << endl << endl;


cout << endl << endl << endl; cout << endl << endl << endl; cout << endl << endl << endl; cout << endl << endl << endl;
 cout << " Que desea realizar: "; cin >> z; cout << endl << endl << endl; cout << endl << endl << endl; cout << endl << endl << endl; cout << endl << endl << endl; cout << endl << endl << endl; cout << endl << endl << endl; cout << endl << endl << endl; cout << endl << endl << endl; cout << endl << endl << endl; cout << endl << endl << endl; cout << endl << endl << endl; cout << endl << endl << endl; cout << endl << endl << endl; cout << endl << endl << endl; cout << endl << endl << endl; cout << endl << endl << endl; cout << endl << endl << endl; cout << endl << endl << endl; cout << endl << endl << endl; cout << endl << endl << endl; cout << endl << endl << endl; cout << endl << endl << endl; cout << endl << endl << endl; cout << endl << endl << endl; cout << endl << endl << endl; cout << endl << endl << endl; cout << endl << endl << endl; cout << endl << endl << endl; cout << endl << endl << endl; cout << endl << endl << endl; cout << endl << endl << endl; cout << endl << endl << endl; cout << endl << endl << endl; cout << endl << endl << endl; cout << endl << endl << endl; cout << endl << endl << endl; cout << endl << endl << endl; cout << endl << endl << endl; cout << endl << endl << endl; cout << endl << endl << endl;
 
 
 if (z == 3) return 0;
 
 if (z == 1)
 {
       cout << " Introduce el nombre de la persona que desea buscar: ";
       cin >> buscaNombre; cout << endl << endl; cin.get();
       
       for (i = 0; i < 4 ;i++)
       {
           if (strcmp(Fulanito[i].Nombre, buscaNombre)==0); cout <<"    Telefono de "<< Fulanito[i].Nombre <<": " << Fulanito[i].Telefono; cout << endl << endl << endl;        
             cin.get(); goto Bucle;
       }
 }
 if (z == 2)
 {
       cout << " Introduce el numero de la persona que desea buscar: ";
       cin >> buscaTel; cout << endl << endl; cin.get();
       for (i = 0; i<4 ;i++)
       {
           if ((buscaTel, Fulanito[i].Telefono)==0); cout << " Nombre: " << Fulanito[i].Nombre; cout << endl << endl << endl;
             cin.get(); goto Bucle;
       }
 }
 cin.get();
 return 0;
}






PD: es en c++ jeje :silbar:
#15
Ingeniería Inversa / Problema con Exdec
23 Marzo 2013, 22:25 PM
Hola a todos, mi problema es el siguiente; estoy haciendo el  tutorial de ricardo narvaja y estoy empezando.con los pcode, y tengo que usar exdec pero no me analiza nada; cuando le doy a a abrir no me hace nada simplemente me sigue poniendo abajo "ready" pero no me dice nada. Me gustaria que si alguno sabe que puedo hacer o si a alguno le a pasado antes algo similar me ayudara. Por favor y garcias por.adelantado.
#16
WarZone / Crackme de Warzone
18 Marzo 2013, 23:23 PM
Hola a todos, como me descargo los crackme es que no me sale ninguna opcion de descargar... gracias  :-\
#17
WarZone / Crackme de Warzone
18 Marzo 2013, 16:26 PM
Hola a todos, mi problema es que en el primer crackme que activo en la warzone tras superar la prueba de criptografia... En fin el problema es que no se como abrirlo, me explico, yo estoy acostumbrado a crackear programas en OllyDBG pero debo de tenerlos en el pc, en cambio si es desde internet como puedo llegar a abrirlos¿?? Me gustaria solo que me enseñen a eso, buscar la contraseña confio en saber (soy alumno de los grandiosos tutoriales de Ricardo Narvaja). No se si me e explicado bien, basicamente es ¿como puedo abrir ese crackme (el fuckme) con el OllyDBG, y si no se puede como se hace para verlo¿?
Gracias por adelantado les estare muy agradecido de que enseñen a un new para que sepa algo mas  ;)
#18
Desarrollo Web / Seguridad de PHP
17 Marzo 2013, 01:27 AM
Hola a todos, vereis me voy a iniciar en la programacion de web en lenguaje PHP, en el tutorial que estoy viendo me indica como hacerme un servidor y tal. Mi duda es que no se si el hecho de tener un servidor local puede facilitar el que entren virus, troyanos, gusanos, etc a mi pc (si, aun soy muy novato  :rolleyes: )
Basicamente mi pregunta es: ¿El hecho de hacerte un servidor hace que tu pc sea mas accesible a los ciberdelincuentes?
Gracias por adelantado y perdonen mi ignorancia pero la verdad es que me estoy iniciando ahora en los temas de programacion y servidores.   :silbar:
#19
Hola, como he dico en otros post estoy haciendo el curso de ingenieria inversa con OllyDBG de Ricardo Narvaja pero me a salido un problemilla  :o
y es que en la leccion 19 enseña un metodo anti-debuggin  (eso me sale perfectamente) que realiza en el ty's 123 crackme easy pero luego no pone como hacerlo ni ninguna pista. Y la verdad es que no consigo resolverlo y no se si no lo explica porque no es aun para el nivel o porque da por echo que sabemos hacerlo, porque por ejemplo en la leccion 20 que continua con metodos anti-debuggin te lo dice claro que solo haremos que el programa corra ya que aun tiene un nivel elevado para el que estamos. En fin agradeceria un pequeño tutorial sobre ese crackme, puede estar muy resumido, solo los pasos que realizar. Por si quieren descargarlo para hacerlo metiendose en la pag de Ricardo Narvaja descargan la parte 19 y viene adjunto el crackme, agradeceria muchisimo su ayuda.
PD: aqui el enlace descarguen la parte 19.
http://ricardonarvaja.info/WEB/INTRODUCCION%20AL%20CRACKING%20CON%20OLLYDBG%20DESDE%20CERO/SIN%20PASSWORD/
#20
Ingeniería Inversa / OllyDBG problema
23 Febrero 2013, 18:40 PM
Hola a todos y gracias por adelantado. Ire al grano estoy haciendo el tutorial de Ricardo Narvaja pero he tenido un problema cuando miro en view-memory luego search y pongo la password que puse ( ya que el programa no tiene boton check y debo buscar en la memoria) me sale que le demos a Ctrl+L pero me pone abajo 'item not found', y entonces no me sale como en el tutorial. Bueno espero vuestra ayuda y gracias por ayudar a un novato  :P
#21
Seguridad / Ayuda por favo!!!
28 Diciembre 2012, 20:42 PM
Hola; este es mi primer post aqui, no se si va en esta categoria; sino es y quereis moverlo losiento: bueno os cuento...
Hace dos dias me descargue el webcracker4.0 de esta web y al instalarlo la computadora comenzo a hacerme ruidos extraños y se termino de instalar y se abrio automaticamente , pero duro abierto 2  segundos y se cerro todo.. Luego no se podia abrir asi que rapidamente fui a eliminarlo perotampoco se podia asi que lo desinstale y no a vuelto a dar problemas pero hoy a empezado a fallar la computadora y no me permite abrir nada que tenga que ver con elelinterernet ni siquiera el cmd... Me e visto obligado a escribir mi primer post desde el movil :S bueno muchas gracias por adelantado y espero que me digais una solucion lo antes posible por favor.. Muchas gracias...