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

 

 


Tema destacado: Curso de javascript por TickTack


  Mostrar Temas
Páginas: [1]
1  Programación / Java / final class en: 6 Enero 2016, 23:42 pm
Hola,
Si declaramos una clase final, sus métodos son automáticamente definidos como finales o hay que declararlo explicitamente?

Gracias anticipadas.

Un saludo.
2  Programación / Java / Método list Clase File en: 29 Diciembre 2015, 13:35 pm
Hola,

Tengo un problema con este método, os  pongo el código que tengo:

Código
  1. public class TestFile {
  2.    public static void main(String[] args) {
  3.        File f = new File("Files\\red");
  4.        f.mkdirs();
  5.        f = new File(f, "red.txt");
  6.        String[] m = f.list();
  7.  
  8.        for (String str : m) {
  9.            System.out.println(str);
  10.        }
  11.    }
  12. }
  13.  

El resultado es:
Exception in thread "main" java.lang.NullPointerException

Alguien sabe por qué falla?
3  Programación / Programación C/C++ / Ordenación método de la burbuja en: 9 Diciembre 2015, 22:02 pm
Hola,

Por qué en el caso medio tenemos 3(n^2-n)/4. Entiendo que viene de (n-1)/2 * (3/2)*n
Pero no entiendo por qué el (3/2) * n.

Gracias anticipadas.

Un cordial saludo
4  Programación / Programación C/C++ / Error al incrementar un índice de una matriz en: 8 Diciembre 2015, 16:28 pm
Hola,
Tengo esta porción de código:

Código
  1. while( (dest[ind] = orig[ind++]) != 0)
  2.  

El compilador me saca este error:

Unsequenced modification and access to 'ind'.

¿Alguien sabe el por qué de este error?

Gracias anticipadas.

Un cordial saludo
5  Programación / Java / @Override en: 8 Diciembre 2015, 16:25 pm
Hola,
¿Cuál es la utilidad de poner Override encima de un método? No lo llego a entender bien, supuestamente es para sobreescribir la funcionalidad de un método heredado, pero si lo escribimos tal cuál está definido ya se sobreescribe, ej:

Código
  1. class A {
  2.    public String toString() {
  3.        return "hola mundo";
  4.    }
  5. }
  6.  
  7. public class TestOverride {
  8.    public static void main(String[] args) {
  9.        System.out.println(new A());
  10.    }
  11. }
  12.  


Gracias anticipadas.

Un cordial saludo
6  Programación / Java / Leer bytes en: 6 Diciembre 2015, 21:42 pm
Hola,
Tengo este código:

Código
  1. package research;
  2.  
  3. import java.io.IOException;
  4.  
  5. public class ArrayBytes {
  6.    public static void main(String[] args) {
  7.        byte[] b = new byte[10];
  8.  
  9.        try {
  10.            System.in.read(b);
  11.        } catch (IOException e) {}
  12.  
  13.        for (int i = 0; i < b.length; i++) {
  14.            System.out.println(b[i]);
  15.        }
  16.    }
  17. }
  18.  


Cuando lo ejecuto e introduzco á obtengo lo siguiente:
Código:
á
-61
-95
10
0
0
0
0
0
0
0

No entiendo por qué sale -61 y -95. Alguien podría explicarme el por qué de esto.

Gracias anticipadas.

Un cordial saludo
7  Programación / Bases de Datos / Problema con relación 1:1 en: 25 Noviembre 2015, 14:01 pm
Tengo esta base de datos:

Código
  1. CREATE TABLE ehbd.Clientes (
  2. idClientes INT NOT NULL AUTO_INCREMENT ,
  3.    nombre VARCHAR(64) NOT NULL,
  4.    PRIMARY KEY (idClientes),
  5.    FOREIGN KEY (idUsuarios) REFERENCES ehbd.Usuarios(idUsuarios)
  6. ) engine=innodb;
  7.  
  8. CREATE TABLE ehbd.Usuarios (
  9. idUsuarios INT NOT NULL AUTO_INCREMENT ,
  10.    username VARCHAR(64) NOT NULL,
  11.    email VARCHAR(64) NOT NULL,
  12.    PRIMARY KEY(idUsuarios),
  13.    FOREIGN KEY(idClientes) REFERENCES ehbd.Clientes(idClientes)
  14. ) engine=innodb;
  15.  
  16.  

Necesito relacionar estas dos bases de datos con una relación 1:1. Esto me da error porque en la primera tabla defino una foreign key a una tabla Usuarios que todavía no existe.

¿Cómo podría hacer esto sin juntar las tablas?

Gracias anticipadas.

Un cordial saludo
8  Programación / Programación C/C++ / Problema al leer registros en ficheros en: 25 Noviembre 2015, 13:35 pm
Hola,
Tengo un problema con este programa. Como podéis ver cuando muestro los registros del fichero los duplica.

Código
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. #include <string.h>
  4.  
  5. #include "MemoryManager.h"
  6.  
  7. #define N 80
  8. #define SALIR 4
  9.  
  10. typedef struct {
  11. char nombre[N];
  12. char direccion[N];
  13. int telefono;
  14. } t_persona;
  15.  
  16.  
  17. int tolower(int);
  18. int menu(void);
  19. void crearFichero(FILE **pf);
  20. void introducirRegistros(FILE *pf);
  21. void visualizarFichero(FILE *pf);
  22.  
  23. /**
  24.  * Punto de entrada y salida al programa principal
  25.  */
  26. int main()
  27. {
  28. int op = 0;
  29. FILE *pf = NULL;
  30.  
  31. do {
  32. op = menu();
  33.  
  34. switch (op)
  35. {
  36. case 1: // crear fichero
  37. crearFichero(&pf);
  38. break;
  39.  
  40. case 2: // introducir registros
  41. introducirRegistros(pf);
  42. break;
  43.  
  44. case 3: // visualizar registros
  45. visualizarFichero(pf);
  46. break;
  47.  
  48. case 4: // salir
  49. printf("bye bye\n");
  50. break;
  51. }
  52. } while (op != SALIR);
  53.  
  54. fclose(pf);
  55. MemoryManager_DumpMemoryLeaks();
  56. return 0;
  57. }
  58.  
  59. int tolower(int c)
  60. {
  61. const int dsp = 'a' - 'A';
  62.  
  63. if (c >= 'A' && c <= 'Z')
  64. return c + dsp;
  65. return c;
  66. }
  67.  
  68. int menu(void)
  69. {
  70. int op = 0;
  71. char linea[N] = { 0 };
  72.  
  73. do {
  74. printf("\n");
  75. printf("1. Crear fichero\n");
  76. printf("2. Introducir registros\n");
  77. printf("3. visualizar registros\n");
  78. printf("4. salir\n");
  79.  
  80. printf("\topcion: ");
  81. fgets(linea, N, stdin);
  82. sscanf(linea, "%d", &op);
  83. } while (op < 1 || op > 4);
  84.  
  85. return op;
  86. }
  87.  
  88. void crearFichero(FILE **pf)
  89. {
  90. char nomFichero[N] = { 0 };
  91. char resp = 0;
  92. char linea[N] = { 0 };
  93.  
  94. printf("Nombre del fichero: ");
  95. fgets(nomFichero, N, stdin);
  96. nomFichero[strlen(nomFichero) - 1] = 0;
  97.  
  98. if (*pf != NULL) {
  99.  
  100. // existe, preguntar si se sobreesribe
  101. do {
  102. printf("Desea sobreescribir el fichero");
  103. fgets(linea, N, stdin);
  104. sscanf(linea, "%c", &resp);
  105. } while (tolower(resp) != 's'
  106. && tolower(resp) != 'n');
  107.  
  108. if (tolower(resp) == 'n')
  109. return;
  110. }
  111.  
  112. *pf = fopen(nomFichero, "w+b");
  113. }
  114.  
  115. void introducirRegistros(FILE *pf)
  116. {
  117. char resp = 0;
  118. char linea[N] = { 0 };
  119.  
  120. t_persona *p_per = malloc(sizeof(t_persona));
  121. memset(p_per, 0, sizeof(t_persona));
  122. if (p_per == NULL)
  123. {
  124. printf("memoria insuficiente");
  125. exit(-1);
  126. }
  127.  
  128.  
  129. do {
  130. printf("\n------\n");
  131. printf("Nombre: ");
  132. fgets(p_per->nombre, N, stdin);
  133. p_per->nombre[strlen(p_per->nombre) - 1] = 0;
  134.  
  135. printf("Direccion: ");
  136. fgets(p_per->direccion, N, stdin);
  137. p_per->direccion[strlen(p_per->direccion) - 1] = 0;
  138.  
  139. printf("Telefono: ");
  140. fgets(linea, N, stdin);
  141. sscanf(linea, "%d", &p_per->telefono);
  142.  
  143. rewind(pf);
  144. fwrite(p_per, sizeof(t_persona), 1, pf);
  145.  
  146. do {
  147. printf("\nDesea introducir otro registro: ");
  148. fgets(linea, N, stdin);
  149. sscanf(linea, "%c", &resp);
  150. } while (tolower(resp) != 's'
  151. && tolower(resp) != 'n');
  152. } while (tolower(resp) == 's');
  153.  
  154. free(p_per);
  155. }
  156.  
  157. void visualizarFichero(FILE *pf)
  158. {
  159. char linea[N] = { 0 };
  160. int pos = 0;
  161.  
  162. t_persona *p_per = malloc(sizeof(t_persona));
  163. if (p_per == NULL)
  164. {
  165. printf("memoria insuficiente");
  166. exit(-1);
  167. }
  168.  
  169. rewind(pf);
  170.  
  171. while (!feof(pf) && !ferror(pf)) {
  172. fread(p_per, sizeof(t_persona), 1, pf);
  173. printf("%s\n", p_per->nombre);
  174. printf("%s\n", p_per->direccion);
  175. printf("%d\n", p_per->telefono);
  176. }
  177.  
  178. free(p_per);
  179. }
  180.  


Código:
1. Crear fichero
2. Introducir registros
3. visualizar registros
4. salir
        opcion: 1
Nombre del fichero: red.datos

1. Crear fichero
2. Introducir registros
3. visualizar registros
4. salir
        opcion: 2

------
Nombre: Marina
Direccion: vereda
Telefono: 234
Desea introducir otro registro: n

1. Crear fichero
2. Introducir registros
3. visualizar registros
4. salir
        opcion: 3

Marina
vereda
234
Marina
vereda
234

Gracias anticipadas.

Un cordial saludo
9  Programación / Programación C/C++ / Segmentation fault (core dumped) en: 3 Mayo 2012, 16:03 pm
Código
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. #include <string.h>
  4.  
  5. #define SUP 33799
  6.  
  7. int main()
  8. {
  9.    int *cad = NULL;
  10.    int i;
  11.  
  12.    cad = malloc(sizeof(int) * 2);
  13.  
  14.    for (i = 0; i < SUP; i++) {
  15.        cad[i] = i;
  16.        printf("%d ", cad[i]);
  17.    }
  18.    printf("\n");
  19.  
  20.    return EXIT_SUCCESS;
  21. }
  22.  

Si SUP es, por ejemplo, 20, no hay Segment fault. Si le doy un valor, por ejemplo, 33799 lanza este error al ejecutar el programa.

¿Por qué no da error de segmento a partir de cad[2]?

Gracias de antemano
Páginas: [1]
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines