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

 

 


Tema destacado: Introducción a la Factorización De Semiprimos (RSA)


  Mostrar Temas
Páginas: 1 2 [3] 4 5 6
21  Sistemas Operativos / GNU/Linux / (Consulta) Instalar Dual-Boot desde Ubuntu 16.04 en: 12 Noviembre 2016, 22:52 pm
Hola, muy buenas. En mi afán por preservar Windows, pero a su vez poder usar Ubuntu sin una molesta máquina virtual, decidí instalar Ubuntu desde Windows. Después de una serie de problemas (básicamente Ubuntu no detectaba Windows 8.1), desde Windows creé una partición para Ubuntu, creé desde el instalador de Ubuntu las particiones swap, el directorio raíz, y un MB de partición para (supongo) la MBR (seleccioné algo de BIOS). El caso es que no esperaba que directamente me dejara la opción de seleccionar sistema operativo, pero lo que si esperaba es que el ordenador arrancara desde Windows. No es un problema grave (creo), porque no he perdido mis datos.

En resumidas cuentas, me gustaría saber cómo puedo instalar algo parecido (sino este) al Dual-Boot desde Ubuntu. Muchas gracias!

______________________________________

Cuando ejecuto "sudo fdisk -l | grep sda", me sale:

Código:
Disk /dev/sda: 465,8 GiB, 500107862016 bytes, 976773168 sectors
/dev/sda1       2048    616447    614400   300M Windows recovery environment
/dev/sda2     616448    821247    204800   100M EFI System
/dev/sda3     821248   1083391    262144   128M Microsoft reserved
/dev/sda4    1083392 554534911 553451520 263,9G Microsoft basic data
/dev/sda5  554534912 554536959      2048     1M BIOS boot
/dev/sda6  970913792 976771071   5857280   2,8G Linux swap
/dev/sda7  554536960 970913791 416376832 198,6G Linux filesystem
22  Foros Generales / Dudas Generales / (wxMaxima) Consulta sobre enunciado de un ejercicio (conjuntos y ordenación) en: 4 Noviembre 2016, 00:04 am
Hola, muy buenas. Antes de nada, quiero aclarar que no voy a pedir que se me haga el ejercicio. Simplemente me gustaría que se me explicase una parte del enunciado que, sinceramente, no entiendo.

El enunciado es el siguiente:
Código:
Sea X = {1, 2, 3, 4, 5, 6, 7}, e Y = X x X x X. Consideramos en X el orden lexicográfico.
Dadas las siguientes parejas x,y pertenecientes a Y determina quien es mayor, y encuentra
el conjunto de todos los elementos de Y comprendidos entre x e y.

* x = (4, 2, 1), y = (5, 6, 2)
* x = (1, 4, 7), y = (7, 4, 1)
* x = (6, 4, 5), y = (2, 4, 1)

El ejercicio lo tengo que hacer en wxMaxima, el cual es un programa para el manejo de varios objetos matemáticos, como conjuntos, listas, funciones (aplicaciones)...

Bien, la parte que no entiendo que quiere decir es esta: Consideramos en X el orden lexicográfico

¿Qué quiere decir con que consideremos en X el orden lexicográfico? Sé lo que es el orden lexicográfico, pero no sé qué quiere decir eso de "consideremos en X ..."

¡Muchas gracias por su ayuda!
23  Programación / Programación C/C++ / (Consulta) Inicializar arreglo de estructura en C en: 27 Octubre 2016, 11:40 am
Hola, muy buenas. Querría saber cómo iniciaizar un arreglo de estructura. Lo que hago es esto:

Código
  1. typedef struct {
  2.   float coord[3];
  3. } vec3;
  4.  
  5. ...
  6.  
  7. vec3 vertices[4] = {
  8.    {-size, -size, 0.0f},
  9.    { size, -size, 0.0f},
  10.    {-size,  size, 0.0f},
  11.    { size,  size, 0.0f}
  12. };

Pero el compilador me lanza los siguientes avisos:

Código:
../src/model.c: In function ‘load_quad’:
../src/model.c:8:9: warning: missing braces around initializer [-Wmissing-braces]
         {-size, -size, 0.0f},
         ^
../src/model.c:8:9: note: (near initialization for ‘vertices[0]’)
../src/model.c:9:9: warning: missing braces around initializer [-Wmissing-braces]
         { size, -size, 0.0f},
         ^
../src/model.c:9:9: note: (near initialization for ‘vertices[1]’)
../src/model.c:10:9: warning: missing braces around initializer [-Wmissing-braces]
         {-size,  size, 0.0f},
         ^
../src/model.c:10:9: note: (near initialization for ‘vertices[2]’)
../src/model.c:11:9: warning: missing braces around initializer [-Wmissing-braces]
         { size,  size, 0.0f}
         ^
../src/model.c:11:9: note: (near initialization for ‘vertices[3]’)
../src/model.c:7:24: warning: missing braces around initializer [-Wmissing-braces]
     vec3 vertices[4] = {
                        ^
../src/model.c:7:24: note: (near initialization for ‘vertices’)

Querría saber como initcializar adecuadamente ese arreglo. Muchas gracias
24  Programación / Programación C/C++ / (Code::Blocks) Los ficheros objetos compilan bien pero no se crean los archivos en: 26 Octubre 2016, 08:42 am
Hola, muy buenas. Me está pasando una cosa muy extraña. Estoy intentando compilar un programa con codeblocks el cual tiene varios ficheros .c El problema que tengo es que cada .c compila bien (no me marca ningún error), pero luego me dice que no se puede encontrar el archivo .o Cuando voy a la carpeta obj/Debug, efectivamente, no hay ningún fichero objeto...

Este es el log de compilación:
Código:
gcc -Wall -g  -c /home/carlos/Escritorio/Programación/Proyectos/Juego/camera.c -o obj/Debug/camera.o
gcc -Wall -g  -c /home/carlos/Escritorio/Programación/Proyectos/Juego/gl_math.c -o obj/Debug/gl_math.o
gcc -Wall -g  -c /home/carlos/Escritorio/Programación/Proyectos/Juego/main.c -o obj/Debug/main.o
gcc -Wall -g  -c /home/carlos/Escritorio/Programación/Proyectos/Juego/model.c -o obj/Debug/model.o
gcc -Wall -g  -c /home/carlos/Escritorio/Programación/Proyectos/Juego/shader.c -o obj/Debug/shader.o
gcc -Wall -g  -c /home/carlos/Escritorio/Programación/Proyectos/Juego/system.c -o obj/Debug/system.o
gcc -Wall -g  -c /home/carlos/Escritorio/Programación/Proyectos/Juego/texture.c -o obj/Debug/texture.o
gcc -Wall -g  -c /home/carlos/Escritorio/Programación/Proyectos/Juego/tools.c -o obj/Debug/tools.o
g++  -o bin/Debug/Juego obj/Debug/camera.o obj/Debug/gl_math.o obj/Debug/main.o obj/Debug/model.o obj/Debug/shader.o obj/Debug/system.o obj/Debug/texture.o obj/Debug/tools.o   
g++: error: obj/Debug/camera.o: No existe el archivo o el directorio
g++: error: obj/Debug/gl_math.o: No existe el archivo o el directorio
g++: error: obj/Debug/main.o: No existe el archivo o el directorio
g++: error: obj/Debug/model.o: No existe el archivo o el directorio
g++: error: obj/Debug/shader.o: No existe el archivo o el directorio
g++: error: obj/Debug/system.o: No existe el archivo o el directorio
g++: error: obj/Debug/texture.o: No existe el archivo o el directorio
g++: error: obj/Debug/tools.o: No existe el archivo o el directorio
g++: fatal error: no input files
compilation terminated.

Es algo muy extraño o no veo la obviedad... Gracias por su ayuda
25  Informática / Software / (Consulta) ¿Están mis marcadores de Chrome asociados a mi cuenta de gmail? en: 23 Octubre 2016, 13:19 pm
Hola, muy buenas. Me gustaría saber si los marcadores que tenía en un dispositivo están asociados a mi cuenta de correo. De ser así, ¿cómo podría recuperar esos marcadores sin usar Chrome (desde Mozilla Firefox, en Ubuntu)?
26  Comunicaciones / Dispositivos Móviles (PDA's, Smartphones, Tablets) / La pantalla de mi móvil se retroilumina pero se ve en negro en: 30 Agosto 2016, 05:10 am
Hola, muy buenas. El caso es que tengo un Jiayu G4. De repente, mientras estaba jugando un juego de puzles, la pantalla se pone en negro (pero retroiluminada). A partir de ese momento, la pantalla no ha respondido más. El móvil sigue funcionando porque los sonidos siguen funcionando, y el ordenador lo reconoce como dispositivo USB.

Sé que no soy demasiados datos, pero no sé que más podría decir. Muchas gracias de antemano.
27  Programación / ASM / [NASM] (Duda) El registro DS no funciona como debería en: 25 Agosto 2016, 03:07 am
Hola, muy buenas. Estaba viendo cómo se hacía una unidad de arranque desde ensamblador (NASM), pero tengo problemas con el registro DS. Muestro este código para mostrar mi duda:

Código
  1. BITS 16
  2.  
  3. start:
  4. xor ax, ax                 ; Set data segment to where we're loaded
  5. mov ds, ax
  6.  
  7. mov ax, text_string
  8. add ax, 7C00h
  9. mov si, ax                 ; Put string position into SI
  10. call print_string          ; Call our string-printing routine
  11.  
  12. jmp $                      ; Jump here - infinite loop!
  13.  
  14.  
  15. text_string: db 'This is my cool new OS!', 0
  16.  
  17.  
  18. print_string:                      ; Routine: output string in SI to screen
  19. mov ah, 0Eh                ; int 10h 'print char' function
  20.  
  21. .repeat:
  22. lodsb                      ; Get character from string
  23. cmp al, 0
  24. je .done                   ; If char is zero, end of string
  25. int 10h                    ; Otherwise, print it
  26. jmp .repeat
  27.  
  28. .done:
  29. ret
  30.  
  31.  
  32. times 510-($-$$) db 0      ; Pad remainder of boot sector with 0s
  33. dw 0xAA55

Es un código sencillito, pero funciona. El problema está en que si hago que el registro DS valga 0x07C0, el ordenador no arranca con esta unidad de arranque, pero si calculo manualmente la dirección de la cadena de texto y hago que DS valga 0, el ordenador si que arranca con esta unidad.

Código con el que funciona:
Código
  1. BITS 16
  2.  
  3. start:
  4. xor ax, ax                 ; Lo ponemos como 0
  5. mov ds, ax
  6.  
  7. mov ax, text_string        ; Calculo manualmente la dirección de la caedna
  8. add ax, 7C00h
  9. mov si, ax                 ; La guardo en SI
  10.  
  11.        ...

Código con el que no funciona:
Código
  1. BITS 16
  2.  
  3. start:
  4. mov ax 0x07C0          ; Lo ponemos como 0
  5. mov ds, ax
  6.  
  7. mov ax, text_string    ; El cálculo debería ser DS * 0x10 + SI, lo que es lo mismo que
  8.                               ; 0x07C0 * 0x10 + SI, lo que es lo mismo que 0x7C00 + SI, que
  9.                               ; a su vez es lo mismo que el cálculo manual antes expuesto
  10. mov si, ax             ; La guardo en SI
  11.  
  12.        ...

O hay algo que se me escapa, o es muy extraño todo... Gracias de antemano!



Vale, me he dado cuenta de que xor limpia parte/todo el registro FLAGS

He obtenido el registro con LAHF. Antes de usar xor, LAHF retornaba, en binario, 01000110, y después de usar xor, LAHF retornaba 00000000. He intentado hacer lo siguiente, pero sigue sin funcionar:

Código
  1. mov ah, 0x00
  2. SAHF
  3. CLC
  4. CLD
  5. CLTS
  6. mov ax, 0x07C0
  7. mov ds, ax

Pero con este código si que funciona (algo hace XOR de lo que no me doy cuenta...):
Código
  1. xor ax, ax            ; Algo más tiene que hacer XOR, porque aun reemplazando el valor de ax, sin XOR no funciona
  2. mov ax, 0x07C0        ; Aquí reemplazamos todo ax
  3. mov ds, ax

Espero que me puedan ayudar :D
28  Programación / Programación General / (Consulta) (Bajo nivel) ¿Las variables se guardan en la pila o en el ejecutable? en: 24 Agosto 2016, 23:54 pm
Hola, muy buenas, me explico. La pregunta que tengo es dónde se guardan las variables. Yo tenía entendido que se guardan en un especie de bloque de memoria asignado para cada programa llamado 'pila', pero según estoy leyendo por ahí, las variables pueden ser guardadas entre código y código del ejecutable. En ensamblador, por ejemplo, podríamos escribir 'mylabel: db 'Message here', 0' (ejemplo de Internet). En ese espacio del ejecutable, se guarda una serie de bytes que contienen "Message here", por lo que podrías decir que esa memoria está entre código y código, no en la 'pila'

Espero que mi duda se haya entendido, no sabía muy bien como explicarla... ¡Muchas gracias de antemano!
29  Programación / Programación C/C++ / Cómo codificar con estilo (broma) en: 24 Agosto 2016, 20:44 pm
Si eres como esas personas que codifican sin poner tabulaciones, espacios, deja los códigos super comprimidos y la gente no le gusta tu estilo, ¡¡aquí te traigo la forma de seguir con tu estilo y además de una forma bonita!!

Código
  1.          #include<stdio.h>
  2.  
  3.  
  4.  
  5.  
  6.                 int
  7.                main(
  8.               ){float
  9.              rad=0.0f;
  10.             float peri;
  11.            float   areac
  12.           =.0f;     const
  13.          float       pi_2=
  14.         1.5707f;char*areas=
  15.        "Area";fprintf(stdout
  16.       ,"Radio: ");scanf("%f",
  17.      &rad);              peri=
  18.     4.00f                 *pi_2
  19.    *rad;                   areac
  20.   =2.0f                     *pi_2
  21.  *rad*                       *&rad
  22. ;fprintf                     (stdout,
  23.  
  24.  
  25.  
  26.  
  27. "Perimeter: %f\n",peri);fprintf(stdo\
  28. ut,"%s: %f",areas, areac); return 0;}

Para aquel que se lo pregunte, como si no estuviera claro, este código te pide un radio para calcular su perímetro y área asociado

¡Espero que adoptéis este estilo tan maravilloso de programación!
30  Programación / Programación C/C++ / [C] (Aporte) Estructura de pila y cola con memoria dinámica en: 22 Agosto 2016, 21:01 pm
Hola, muy buenas. Dado un tema reciente decidí implementar en C una estructura que funcione como cola y otra como pila (estructuras FIFO y LIFO respectivamente). Bueno, parece que son muchas líneas, pero entre comentarios, y saltos de líneas "innecesarios", el código no es tan largo. Aquí se los dejo.

NOTA: Ya sé que ya se ha subido la implementación de estas estructuras, pero eso fue en C++, no en C.

Código
  1. #include <stdlib.h>
  2. #include <stdio.h>
  3.  
  4. // Para generalizar, uso un tipo de datos predefinido, así puedo
  5. // cambiar entre int y el tipo de datos que quiera
  6. typedef int tipo;
  7.  
  8. typedef struct ElementoLista{
  9. tipo dato;
  10. struct ElementoLista *siguiente;
  11. } Elemento;
  12.  
  13. // En la estructura de una pila, solo necesitamos la referencia al
  14. // último elemento agregado
  15. typedef struct {
  16. Elemento *ultimo;
  17. unsigned int num_elementos;
  18. } Pila;
  19.  
  20. // Pero en la estructura de una cola, también necesitaremos la
  21. // referencia del primer elemento
  22. typedef struct {
  23. Elemento *primero;
  24. Elemento *ultimo;
  25. unsigned int num_elementos;
  26. } Cola;
  27.  
  28. // Si alguna de estas dos funciones retorna 0, significa que
  29. // ha ocurrido un error, de lo contrario, retornará un valor
  30. // diferente de 0
  31. int agregar_a_pila(Pila *pila, tipo dato);
  32. int agregar_a_cola(Cola *cola, tipo dato);
  33.  
  34. // Destruye el último elemento y retorna los datos almacenados en el
  35. tipo quitar_a_pila(Pila *pila);
  36. tipo quitar_a_cola(Cola *cola);
  37.  
  38. // Para demostrar el uso de 'quitar_a_pila' y 'quitar_a_cola'
  39. // estas funciones destruyen la pila y la cola respectivamente
  40. // al mostrarlas
  41. void mostrar_pila(Pila *pila);
  42. void mostrar_cola(Cola *cola);
  43.  
  44. int main() {
  45. // No hay que olvidarse de inicializar, porque si no,
  46. // no hay manera de determinar si un puntero a memoria
  47. // dinámica es válido o no...
  48. Pila pila = {NULL, 0};
  49. Cola cola = {NULL, NULL, 0};
  50. tipo dato;
  51.  
  52. // Para probar que todo funciona perfectamente, hacemos que el
  53. // usuario introduzca enteros para almacenarlos tanto en una cola
  54. // como en una pila.
  55. fprintf(stdout, "Introduzca una serie de numeros (0 para acabar): ");
  56. fscanf(stdin, "%d", &dato);
  57. while(0 != dato) {
  58. agregar_a_pila(&pila, dato);
  59. agregar_a_cola(&cola, dato);
  60. fscanf(stdin, "%d", &dato);
  61. }
  62.  
  63. // Mostramos la pila y la cola (destruyendo a su vez los datos
  64. // de las mismas)
  65. mostrar_pila(&pila);
  66. fputc('\n', stdout);
  67. mostrar_cola(&cola);
  68.  
  69. return 0;
  70. }
  71.  
  72. int agregar_a_pila(Pila *pila, tipo dato) {
  73. Elemento *elemento;
  74.  
  75. // Creamos elemento y guardamos datos...
  76. elemento = malloc(sizeof(Elemento));
  77. if(NULL == elemento)
  78. return 0;
  79.  
  80. elemento->dato = dato;
  81.  
  82. // Reconfiguramos pila...
  83. if(NULL == pila->ultimo) {
  84. elemento->siguiente = NULL;
  85. pila->num_elementos = 1;
  86. pila->ultimo = elemento;
  87. } else {
  88. elemento->siguiente = pila->ultimo;
  89. pila->num_elementos += 1;
  90. pila->ultimo = elemento;
  91. }
  92.  
  93. return 1;
  94. }
  95.  
  96. int agregar_a_cola(Cola *cola, tipo dato) {
  97. Elemento *elemento;
  98.  
  99. // Creamos elemento y guardamos datos...
  100. elemento = malloc(sizeof(Elemento));
  101. if(NULL == elemento)
  102. return 0;
  103.  
  104. elemento->dato = dato;
  105. elemento->siguiente = NULL;
  106.  
  107. // Reconfiguramos cola...
  108. if(NULL == cola->primero) {
  109. cola->num_elementos = 1;
  110. cola->primero = elemento;
  111. cola->ultimo = elemento;
  112. } else {
  113. cola->ultimo->siguiente = elemento;
  114. cola->num_elementos += 1;
  115. cola->ultimo = elemento;
  116. }
  117.  
  118. return 1;
  119. }
  120.  
  121. tipo quitar_a_pila(Pila *pila) {
  122. Elemento *temp;
  123. tipo dato;
  124.  
  125. if(NULL != pila->ultimo) {
  126. dato = pila->ultimo->dato;
  127. temp = pila->ultimo;
  128. pila->ultimo = pila->ultimo->siguiente;
  129. pila->num_elementos -= 1;
  130. free(temp);
  131. } else {
  132. dato = -1;
  133. }
  134.  
  135. return dato;
  136. }
  137.  
  138. tipo quitar_a_cola(Cola *cola) {
  139. Elemento *temp;
  140. tipo dato;
  141.  
  142. // Hacemos esta asignación, porque si el primer elemento de la cola y
  143. // el último son iguales, destruiremos el primer elemento, dejando al último
  144. // sin memoria asignada, por lo que directamente al último elemento le
  145. // asignamos NULL para que no haya errores
  146. if(cola->primero == cola->ultimo)
  147. cola->ultimo = NULL;
  148.  
  149. if(NULL != cola->primero) {
  150. dato = cola->primero->dato;
  151. temp = cola->primero;
  152. cola->primero = cola->primero->siguiente;
  153. cola->num_elementos -= 1;
  154. free(temp);
  155. } else {
  156. dato = -1;
  157. }
  158.  
  159. return dato;
  160. }
  161.  
  162. void mostrar_pila(Pila *pila) {
  163. tipo dato;
  164.  
  165. while(NULL != pila->ultimo) {
  166. dato = quitar_a_pila(pila);
  167. fprintf(stdout, "%d ", dato);
  168. }
  169. }
  170.  
  171. void mostrar_cola(Cola *cola) {
  172. tipo dato;
  173.  
  174. while(NULL != cola->primero) {
  175. dato = quitar_a_cola(cola);
  176. fprintf(stdout, "%d ", dato);
  177. }
  178. }
Páginas: 1 2 [3] 4 5 6
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines