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


Tema destacado: ¿Eres usuario del foro? Ahora tienes un Bot con IA que responde preguntas. Lo puedes activar en tu Perfil


  Mostrar Mensajes
Páginas: 1 ... 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 [20] 21 22 23
191  Programación / Programación C/C++ / Re: extraer un vector de una matriz en: 20 Enero 2012, 00:57 am
¡Buenas pastyto!

Para hacer eso, necesitas crearte una matriz N-4xN. Una vez creada debes rellenarla con los valores de la matriz original. Asi que necesitas recorrer la matriz original con 2 bucles for() y cojer el valor y ponerlo en la matriz nueva.

Código:
for(i=0;i<n-4;i++){
    for(j=0;j<n;j++){
           //cojer valor y poner en la matriz nueva en la posicion (i,j)
    }
}

Espero haberte servido de ayuda, un saludo.
192  Programación / Programación C/C++ / Re: Variables globales en ficheros .h en: 20 Enero 2012, 00:49 am
Buenas Kherom !

Hasta donde yo se, no se puede hacer declaraciones de variables en las cabeceras (.h) de los programas. En las cabeceras solo estan los nombres de las funciones y procedimientos a las que otro modulo o clase puede llamar.

Si quieres crear una variable global para un modulo, deberas declararla en el .c fuera de cualquier funcion. Asi esa variable sera global para ese modulo.

Si lo que quieres hacer es crear una variable global para todos los modulos, creo que esto no se puede hacer.

De todas formas, no te recomiendo el uso de variables globales, ya que cuando una funcion f1() usa esa variable deja la variable con basura y si luego la funcion f2() la usa, puede que la funcion f2() no te muestre un resultado correcto. Asi que debes tener mucho cuidado con las variables globales.

Espero haberte servido de ayuda, un saludo.
193  Programación / Programación C/C++ / Re: Es necesario saber diagramar en: 20 Enero 2012, 00:18 am
¡Buenas Anastacio!
Creo que estas confundiendo programador software con diseñador software.

El diseñador software es el encargado de de hablar con el cliente que quiere el software, luego lo divide en modulos y hace los diagramas. Y el programador es el que tiene que programar los modulos que el diseñador software te diga que programes.

Si eres tu el que quiere hacer el programa, el usar papel y boli como dice DickGumshoe
 te podria ayudar mucho. Si el programa es pequeño podrias pasar sin hacerte los diagramas, pero si estamos hablando de un programa complejo con muchas funciones y demas, es muy aconsejable hacer los diagramas ya que te puede ayudar mucho con las tareas de mantenimiento del software, que es lo mas complicado de todo!

Espero haberte servido de ayuda, un saludo!
194  Programación / Programación C/C++ / Re: Duda sobre Cuatro en línea en: 18 Enero 2012, 19:05 pm
¡Buenas DickGumshoe!

Tu problema es sencillode resolver.
La variable fila no la tienes inicializada al principio, si no que la inicializas dentro del bucle, cuando en realidad deberias hacerlo fuera.

Código:
fila=7;
do{

//codigo del juego...
fila--;

}while(s==1);

Si fila=7 lo metes dentro del bucle, fila solo toma los valores 7 y 6.....
Ademas, tu variable fila es un int, eso significa que si el bucle se repite 8 veces, fila sera igual a "-1"......asi que deberas poner un:
Código:
if(fila==0)//la fila esta llena, entonces no insertar

¡Espero haberte ayudado, un saludo!

PD: Deberias tabular y comentar el codigo, asi te sera mas facil a ti y a los demas ver donde estan los fallos.
195  Programación / Programación C/C++ / Re: Troyano en c en: 18 Enero 2012, 15:58 pm
¡Buenas Satu!

Tu idea no es ninguna tonteria, de hecho, yo tambien habia pensado hacerlo asi pero....me gustaria hacerlo sin tener ninguna interaccion con el exterior del programa...

¡Pero muchas gracias por tu respuesta!
196  Programación / Programación C/C++ / Re: C:Calcular montañas en los datos almacenados en una matriz en: 17 Enero 2012, 17:20 pm
Buenas defik!
Para hacer ese procedimiento debes recorrer la matriz que se hace con 2 bucles for anidados:

Código:
for(i=0;i<N;i++){
     for(j=0;j<M;j++){
    
          //codigo de comprobacion de los valores

     }
}

Y para comprobar los valores debes usar condicionales, como ejemplo cojamos esta matriz 3x3

        0   1   2  (i)
    
    0  2   4   5
  
    1  3   9   6

    2  1   3   2
   (j)

En el caso del 9, para comprobar si es mayor que los demas debes comparar las posicion (1,1) con las posiciones: (0,0) , (0,1) , (0,2) , (1,0) , (1,2) , (2,0) , (2,1) , (2,2)

O lo que es lo mismo dada una posicion (i,j) lo tienes que comparar con las posiciones: (i-1,j-1) , (i,j-1) , (i+1,j-11) , (i-1,j) , (i+1,j) , (i-1,j+1) , (i,j+1) , (i+1,j+1)

Si al hacer todas estas comparaciones te sale que la posicion (i,j) es mayor, entonces es una montaña.

Asi que dentro de los 2 bucles debes meter 8 if() que haga cada una de estas comparaciones y los 8 resultados te deben salir positivos.

Y Para que te funcione con los laterales lo unico que debes hacer es que cuando compares las posiciones  (i,j) con por ejemplo (i-1,j), debes comprobar que i-1 no es menor que 0.

Y con esto tienes hecho el procemiento. Es un poco lioso porque tiene muchas condiciones pero bueno...

Espero haberte servido de ayuda, un saludo.
197  Programación / Programación C/C++ / Re: Troyano en c en: 17 Enero 2012, 16:59 pm
Esa es la idea que tengo pensada, pero mi problema no esta en la ejecucion de ordenes si no en la visualizacion de la salida de esa orden en el cliente, es decir:

El cliente envia un "dir", y el servidor hace system("dir"), pero el resultado lo muestra en el servidor y yo lo que quiero es que el resultado del dir lo muestre en el cliente. Para ello, el servidor despues de ejecutar el dir tiene que guardar el resultado en una variable de tipo cadena, para que luego pueda enviar esa cadena al cliente.

Lo que queria preguntar antes es: ¿Como puedo guardar el resultado de system("dir") en una cadena?

¡Gracias, un saludo!
198  Programación / Programación C/C++ / Troyano en c en: 17 Enero 2012, 15:57 pm
¡Buenas a todos!
Estoy haciendo un troyano sencillo en c, y nteog un problemilla.

Por ahora soy capaz de hacer que el servidor ejecute las ordenes (system(orden)) que le mando desde el cliente...el problema esta en que ahora quiero que me retorne el rel resultado al cliente para visualizarlo (ejemplo: dir)

Si uso "system()" como no retorna ningun valor pues no me sirve de mucho...y he estado pensado en usar createprocess().

Mi pregunta es....¿una vez hecho el createprocess("cmd",....,...) como puedo pasarle ordenes al cmd para luego guardar la salida de cmd en una variable?

¡Muchas gracias, un saludo!
199  Programación / Programación C/C++ / Re: Ayuda. Programas para reconocer Números palíndromos. en: 9 Enero 2012, 14:04 pm
Ooook! ya le he hechado un vistazo al codigo y es !CORRECTO¡, lo unico que los numeros con una base superior a 10 (11-16) tienen numero representados por letras y esos como palindromos no los detecta.

En el ejemplo que te puse antes...
AB1BA es capicua por las letras pero al introducir el numero en base 10 (700858) y luego al hacer el cambio a base 16 el numero que sale es:

  10  11  1  11  10 : no es capicua
   A   B   1   B   A : si es capicua

Entonces este tipo de numero nos los coge. Pero vamos si esto es una practica, el profesor no creo que te la haya tirado por esto ya que solucionar esto es un poco enrevesado. Yo creo que el verdadero motivo por el que te la ha tirado es por que el enunciado dice:
Citar
Básicamente el problema consiste en ingresar numero n. (0<n<50000)

y tu codigo pone:
Código:
if(n == 0) break;

Cuando en realidad deberia poner:
Código:
if(n==0 || n>=50000) break;

Ademas de que el codigo no esta comentado y no usas variables con nombres significativos....

Y bueno este es el codigo que yo he hecho para tu programa. Aun asi tiene el mismo fallo que el tuyo de los numeros representados en una base mayor que 10...

Código:
#include <iostream>

using namespace std;


int cambioBase(int n, int base) {
    // Funcion para el cambio de base
   int n_base=0, coef=1;
   while (n!=0) {
      n_base+=coef*(n%base);
      coef*=10;
      n/=base;
   }
   return n_base;
}

bool esCapicua (int numero){
     //Funcion para comprobar si un numero es capicua
     bool resultado=false;
     int capb=numero;
     int capd=0;
     int capc=0;

     while(capb!=0){
         capc=capb%10;
         capd=capd*10+capc;
         capb=capb/10;
     }
     if(capd==numero) resultado = true;
    
     return resultado;
}

int main(){
    
    //Declaracion de variables
    int numero, aux1;
    int baseIni=2;
    int baseFin=16;
    bool capicua=false;
    bool check =false;
    
    //Codigo principal
    cout<<"Escribe un numero en base 10: ";
    cin>>numero;
    
    if(numero==0 || numero>=50000){
        // Si el numero introducido exede el limite finalizo el programa
        cout<<"El numero introducido supera el limite\n";
        system("pause");
        return 0;
    }
    
    for (baseIni; baseIni <= baseFin; baseIni++){
        //Comprobamos si el numero es capicua para todas las bases
        aux1 = cambioBase(numero, baseIni);   //Cambio de base
        capicua = esCapicua(aux1);            //es capicua?
        if(capicua){
             //Si es capicua imprimios el resultado y ponemos check a true
             cout<<"\nEl numero: "<<numero<<" es capicua para la base: "<<baseIni<<"\n";
             capicua = false;
             check = true;      
        }
    }
    //Si ningun numero es capicua check seguira con su valor inicial (false)
    if(!check) cout<<"\nEl numero: "<<numero<<" no es capicua para ninguna base entre 2-16\n";

    system("pause");
    return 0;
}

Espero haberte servido de ayuda, un saludo!
200  Seguridad Informática / Hacking / Re: Espionaje de pc en: 7 Enero 2012, 04:53 am
Como dice gilgamesh_84, siguiendo sus pasos tu PC quedara desinfectado.

 De todas formas, yo cuando creo que tengo un virus o algolo que hago es abrir el administrador de tareas (ALT+CTRL+SUPR) y ver que procesos tengo abiertos y los que no conozco los busco en google y si al buscar leo que ese proceso es de windows o de un programa mio pues lo dejo y si leo que es un virus o troyano o demas, finalizo el proceso (por ejemplo virus.exe) , luego hago una busqueda de virus.exe y borro todos los archivos con ese nombre y por ultimo doy inicio->ejecutar y escribo msconfig y en la pestaña "inicio" sale una lista con todos los pragamas que se ejecutan al arrancar el ordenador y deshabilito el virus.exe.

Si encuentras el virus y no puedes borrarlo, prueba a entrar en modo a prueba de fallos. Para ello reinicia el ordenador  y dale a F8 varias veces antes de que cargue windows y te saldra una lista de los distintos tipos de arranque. Eliges el modo aprueba de erros o modo seguro, y ya podras buscar y borrar el virus.exe y quitarlo del msconfig.
Páginas: 1 ... 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 [20] 21 22 23
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines