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

 

 


Tema destacado: Introducción a Git (Primera Parte)


  Mostrar Mensajes
Páginas: 1 [2] 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 ... 21
11  Comunicaciones / Redes / Re: ¿Puedo ver desde mi PC el historial de un celular conectado vía wifi a mi red? en: 13 Marzo 2015, 05:26 am
Muchas gracias por la respuesta :) . Investigaré al respecto :D 
12  Comunicaciones / Redes / ¿Puedo ver desde mi PC el historial de un celular conectado vía wifi a mi red? en: 13 Marzo 2015, 05:19 am
Hola a todos :) . Espero que me puedan ayudar a aclarar mi duda. Lo que quiero es saber si es que desde mi ordenador puedo puedo ver el historial o saber qué páginas visita un usuario con su celular (Android, Windows Phone, ...) conectado vía wifi a mi red local. No tengo acceso al celular pero sí tengo el control total de mi red, router, etc. Muchas gracias :)
13  Seguridad Informática / Seguridad / Re: Mi internet se va a cada rato y sospecho que lo ocasiona un malware en: 24 Febrero 2015, 20:43 pm
Hola, uso como antivirus el Avira (Free Antivirus) y el MalwareBytes Antimalware y al realizar los respectivos análisis no me salió nada. Ahora estoy pasándole un antivirus online y por el momento me está saliendo esto:



Sí, cuando inicio mi computadora en "modo seguro" no tengo ningún problema con el internet
14  Seguridad Informática / Seguridad / Mi internet se va a cada rato y sospecho que lo ocasiona un malware en: 24 Febrero 2015, 17:48 pm
Hola. Tengo un problema con la señal de internet en mi computadora. En mi casa hay un router (perdonen mi falta de conocimiento en redes) . De allí se reparte el internet a 4 computadoras y una de ellas es la mía.

Resulta que solo a mí se me va la señal de internet (a los demás no) pero sigo estando en la red. Osea, mi computadora todavía figura en la red pero cuando abro mi navegador de internet, de lo que estaba normal navegando, luego de unos minutos aparece el menaje "resolviendo host" y ya no carga. Luego de unos 5 minutos aproximadamente vuelve la señal y luego de unos minutos funcionando tranquilamente de nuevo sucede lo mismo y así constantemente, se va y vuelve.

Por lo que he visto los cables están bien. Le cambié los conectores de red y sigue pasando lo mismo. Entonces probé con iniciar en "modo a prueba de errores con funciones de red" y allí recién puedo navegar tranquilo y no se me va el internet. ¿Alguien podría sugerirme que podría hacer? Muchas gracias :)
15  Programación / Programación C/C++ / Tengo una duda sobre redefinición de funciones virtuales en C++ en: 20 Febrero 2015, 17:01 pm
Hola :) , estoy intentando hacer el juego de pacman en modo consola en mis ratos de ocio y de pasada me voy recordando algunas cosas que ya me estaba olvidando y afianzando otros conceptos sobre la programación orientada a objetos.

Expondré lo que hice hasta ahora y luego mi duda. No es tanto sobre el código sino más que todo en cuanto a cómo funciona lo de la redefinición de una función virtual.

Resulta que tengo tres clases: PERSONAJE, PACMAN, FANTASMA:

Clase Personaje:
Código
  1. class PERSONAJE {
  2.   private:
  3.      int x, y;   // Coordenadas
  4.      int simbolo;
  5.  
  6.   public:
  7.      PERSONAJE(int = 1, int = 1, int = 1);
  8.      void setX(int);
  9.      void setY(int);
  10.      void setSimbolo(int);
  11.      int getX();
  12.      int getY();
  13.      int getSimbolo();
  14.      virtual void mover(int);
  15.      void pintar();
  16.      void borrar();
  17. };
  18.  
  19. /*
  20. void PERSONAJE::PERSONAJE(int x, int y, char simbolo) {
  21.    this->setX(x);
  22.    this->setY(y);
  23.    this->setSimbolo(simbolo);
  24. }
  25. */
  26.  
  27. PERSONAJE::PERSONAJE(int _x, int _y, int _simbolo) : x(_x), y(_y), simbolo(_simbolo) {
  28.   this->pintar();
  29. }
  30.  
  31. void PERSONAJE::setX(int x) {
  32.   this->x = (x > 0 ? x : 1);
  33.   // x = (x > 0 ? x : 1); // Cuidado con este error logico, alli no estaria modificando al atributo
  34. }
  35.  
  36. void PERSONAJE::setY(int y) {
  37.   this->y = (y > 0 ? y : 1);
  38. }
  39.  
  40. void PERSONAJE::setSimbolo(int simbolo) {
  41.   this->simbolo = simbolo;
  42. }
  43.  
  44. int PERSONAJE::getX() {
  45.   return this->x;
  46. }
  47.  
  48. int PERSONAJE::getY() {
  49.   return this->y;
  50. }
  51.  
  52. int PERSONAJE::getSimbolo() {
  53.   return this->simbolo;
  54. }
  55.  
  56. void PERSONAJE::mover(int tecla) {
  57.  
  58.   if (tecla == NADA) {
  59.      return;
  60.   }
  61.   else {
  62.      this->borrar();
  63.  
  64.      if (tecla == IZQUIERDA) {
  65.         if (x > LIMITE_IZQUIERDO + 1) x--;
  66.      }
  67.  
  68.      if (tecla == DERECHA) {
  69.         if (x < LIMITE_DERECHO - 1) x++;
  70.      }
  71.  
  72.      if (tecla == ABAJO) {
  73.         if (y < LIMITE_INFERIOR - 1) y++;
  74.      }
  75.  
  76.      if (tecla == ARRIBA) {
  77.         if (y > LIMITE_SUPERIOR + 1) y--;
  78.      }
  79.  
  80.      this->pintar();
  81.   }
  82. }
  83.  
  84. void PERSONAJE::pintar() {
  85.   gotoxy(x, y);
  86.   cout << (char)getSimbolo();
  87. }
  88.  
  89. void PERSONAJE::borrar() {
  90.   gotoxy(x, y);
  91.   cout << " ";
  92. }
  93.  
  94.  



Clase Pacman:
Código
  1. class PACMAN : public PERSONAJE {
  2.   private:
  3.  
  4.   public:
  5.      PACMAN(int = LIMITE_IZQUIERDO + 1, int = LIMITE_SUPERIOR + 1, int = 1);
  6.      // No redefinimos el metodo pintar() asi que se llamara al de la superclase
  7. };
  8.  
  9. PACMAN::PACMAN(int x, int y, int simbolo) : PERSONAJE(x, y, simbolo) {
  10. }
  11.  



Clase Fantasma:
Código
  1. class FANTASMA : public PERSONAJE {
  2.   private:
  3.  
  4.   public:
  5.      FANTASMA(int = (LIMITE_IZQUIERDO + LIMITE_DERECHO) / 2, int = (LIMITE_SUPERIOR + LIMITE_INFERIOR) / 2, int = 1);
  6.      void mover();
  7. };
  8.  
  9. FANTASMA::FANTASMA(int x, int y, int simbolo) : PERSONAJE(x, y, simbolo) {
  10. }
  11.  
  12. void FANTASMA::mover() {
  13.   int aleatorio = rand() % 4;
  14.  
  15.   this->borrar();
  16.  
  17.   switch (aleatorio) {
  18.      case 0:
  19.         if (getX() > LIMITE_IZQUIERDO + 1) setX(getX() - 1);
  20.         break;
  21.  
  22.      case 1:
  23.         if (getX() < LIMITE_DERECHO - 1) setX(getX() + 1);
  24.         break;
  25.  
  26.      case 2:
  27.         if (getY() < LIMITE_INFERIOR - 1) setY(getY() + 1);
  28.         break;
  29.  
  30.      case 3:
  31.         if (getY() > LIMITE_SUPERIOR + 1) setY(getY() - 1);
  32.         break;
  33.   }
  34.  
  35.   gotoxy(getX(), getY());
  36.   this->pintar(); // Llama al método heredado pintar
  37. }
  38.  

Algunas constantes en mi código:
Código
  1. // Direccion
  2. #define ARRIBA 105
  3. #define ABAJO 107
  4. #define IZQUIERDA 106
  5. #define DERECHA 'l'
  6.  
  7. // Limites
  8. #define LIMITE_SUPERIOR 2
  9. #define LIMITE_INFERIOR 23
  10. #define LIMITE_DERECHO 70
  11. #define LIMITE_IZQUIERDO 20
  12.  
  13. #define NADA 0
  14.  


Mi duda está en lo siguiente:
En mi clase base PERSONAJE defino una función virtual mover(int) la cual tiene un parámetro. Luego, declado dos clases derivadas: PACMAN y FANTASMA.
Dentro de la clase PACMAN (por el momento) no declaro ninguna otra función por lo que concluyo que va a heredar las ya declaradas en la clase base PERSONAJE.
Dentro de la clase FANTASMA estoy declarando una función llamada mover() sin parámetros. Esta función tiene el mismo nombre que la función virtual declarada en la clase base PERSONAJE pero se diferencia en que no tiene ningún parámetro. Entonces ante la duda de si en este caso estoy redefiniendo la función perteneciente al padre, encontré la siguiente información:

Citar
Para redefinir una función virtual en una clase derivada, las declaraciones en la clase base y en la derivada deben coincidir en cuanto a número y tipo de los parámetros. Excepcionalmente pueden diferir en el tipo devuelto.

Entonces según esto, la función mover() perteneciente a la clase hija FANTASMA es diferente a la función mover(int) de la clase padre PERSONAJE (por su parámetro) por lo que podría concluir que no se estaría redefiniendo nada sino que, la clase FANTASMA contaría con dos funciones miembro diferentes:
    - mover()    : Obtenida por la herencia y declarada en el padre PERSONAJE
    - mover(int) : Declarada en la clase hija FANTASMA

Además de las otras funciones heredadas del padre: getX(), getY(), getSimbolo(), setX(int), setY(int), setSimbolo(int), .. , borrar(), pintar().


Siendo todo esto así, creo que no debería tener problemas al realizar llamadas tanto a las funciones mover() y mover(int) desde un objeto de la clase FANTASMA pero cuando realizo dichas llamadas, el compilador me genera un error márcandome esta llamada: f1.mover(IZQUIERDA);:


Código
  1. FANTASMA f1;
  2. f1.mover();
  3. f1.mover(IZQUIERDA);
  4.  




No sé si me estoy haciendo demasiados rodeos  ;D . Espero que me haya dejado entender. Gracias a los que se tomen la molestia de leer y de ayudarme a entender el por qué me sale ese error :D . (Si pudieran también comentar sobre mi código, acepto sugerencias y críticas para poder mejorar. Respecto a la biblioteca conio tengo claro que no es estándar pero en este caso lo que trato más que todo es centrarme en aplicar correctamente los conceptos de la POO)
16  Programación / Programación C/C++ / Re: Pasar string por referencia o no en: 19 Febrero 2015, 18:41 pm
Si te das cuenta, en el prototipo de tu función declaraste como char *. De la misma forma debes hacerlo en la implementación.

Cambia esto que está así:

Código:
int frecuencia(char *frase[20], char letra)

Por esto:

Código:
int frecuencia(char *frase, char letra)
17  Programación / Programación C/C++ / Re: pregunta sobre enteros en lenguaje c en: 19 Febrero 2015, 18:28 pm
Hola, no sé si es que te entendí bien, pero creo que cuando dices: "el problema es que  me da error al compilar" no te refieres a un error de compilación sino a un error lógico en tiempo de ejecución (eso es lo que me da a mí. Uso Dev C++).

El error que puedo ver es que cuando haces esta asignación:

long numero=2555666777;

La variable "numero" se desborda y no puede guardar un número muy grande.

No sé cómo funcione en tu computador, pero en el mío cuando uso el operador sizeof para ver el tamaño del tipo int y long me sale en ambos 4 bytes. En cambio, el tipo long long tiene un tamaño de 8 bytes, por lo que si declaras la variable de tipo long long no habría desbordamiento al guardar el número 2555666777:

long long numero=2555666777;

Ojalá sea esta tu duda :)
18  Programación / Programación C/C++ / ¿Al compilar y ejecutar en Dev C++ la consola sale siempre muy pequeña? en: 19 Febrero 2015, 18:18 pm
Hola, tengo un pequeño problemita (si es que se le podría llamar así) con la consola cuando se ejecuta desde el Dev C++.
Luego de hacer algún programita, pulso el botón para compilar y ejecutar y al momento de aparecer la consola, aparece demasiado pequeña y tengo que estar cambiándole de tamaño en las propiedades cada vez que compilo-ejecuto un nuevo programa y hacer eso siempre me resulta muy molesto  :-\





Cuando abro directamente el cmd, la ventana me aparece de tamaño normal:




Quisiera saber si existe la forma para que cada vez que compile-ejecute mis programas desde el Dev C++ la consola no me aparezca pequeña y no tener que estar cambiándole el tamaño todas las veces  :-( . Quisiera poder configurarla solo una vez y que se mantenga ese tamaño para todas las demás veces. Si alguien me pudiera ayudar le estaría muy agradecido :)
19  Seguridad Informática / Hacking / Re: Ayuda, redirigir de una URL a otra en: 20 Diciembre 2014, 19:50 pm
Podrías modificar el archivo host
20  Programación / Programación C/C++ / Re: Alternativa a Gets (en C) en: 17 Noviembre 2014, 04:32 am
Te recomiendo que te leas este post de Taringa que explica muy bien lo que necesitas  :)

http://www.taringa.net/post/ciencia-educacion/14450390/Lectura-de-cadenas-en-C.html
Páginas: 1 [2] 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 ... 21
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines