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

 

 


Tema destacado: Recuerda que debes registrarte en el foro para poder participar (preguntar y responder)


  Mostrar Mensajes
Páginas: 1 2 3 [4] 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 ... 45
31  Programación / Java / (Consulta) Posible BUG en Java en: 2 Octubre 2017, 09:16 am
Hola, buenas.

Estoy haciendo ejercicios de un libro de Java. En un ejercicio, se me pedía el uso de archivos:

Citar
Realiza un programa que nos diga si hay probabilidad de que nuestra pareja
nos está siendo infiel. El programa irá haciendo preguntas que el usuario
contestará con verdadero o falso. Cada pregunta contestada como verdadero
sumará 3 puntos. Las preguntas contestadas con falso no suman puntos. Utili-
za el fichero
test_infidelidad.txt
para obtener las preguntas y las conclusiones
del programa.

El problema que tengo no es de compilación (compila bien), sino de ejecución. Cuando lo ejecuto, se lee la primera línea del archivo, se imprime, y se pausa el programa para la entrada (como es de esperar). El problema es que al introducir un valor de entrada (booleana, por ejemplo, true), en una nueva línea se imprime true y el programa se para de nuevo. Si introduzco la entrada de nuevo, el programa hace lo que debería, pero en cada entrada hay que introducir dos entradas. Ejemplo:

Código:
¿Ha sido fiel a su pareja? true          # Ese true lo introduje por teclado. Pulso enter
true                                      # Se imprime mágicamente
true                                      # Tengo que introducir de nuevo la respuesta
¿Quiere a su pareja?

Los "# [...]" son comentarios que os hago para entender la ejecución.

Este es el código que tengo:

Código
  1. import java.io.RandomAccessFile;
  2. import java.io.IOException;
  3. import java.util.Scanner;
  4.  
  5. public class Ejercicio_16 {
  6.    public static void main(String[] args) {
  7.        try {
  8.            RandomAccessFile archivo =
  9.                new RandomAccessFile ("test_infidelidad.txt", "r");
  10.            Scanner scanner = new Scanner(System.in);
  11.            String linea;
  12.            boolean respuesta_correcta;
  13.            boolean respuesta;
  14.            int puntuacion, puntuacion_maxima;
  15.  
  16.            puntuacion = 0;
  17.            puntuacion_maxima = 0;
  18.  
  19.            while(null != (linea = archivo.readLine())) {
  20.                respuesta_correcta = archivo.readBoolean();
  21.  
  22.                System.out.print(linea + " ");
  23.                respuesta = scanner.nextBoolean();
  24.  
  25.                if(respuesta == respuesta_correcta)
  26.                    puntuacion += 3;
  27.  
  28.                puntuacion_maxima += 3;
  29.            }
  30.  
  31.            System.out.println("Ha sacado " + puntuacion + "/" + puntuacion_maxima + " de puntuación");
  32.  
  33.            archivo.close();
  34.        } catch (IOException e) {
  35.            System.out.println(e);
  36.        }
  37.    }
  38. }

test_infidelidad.txt
Código:
¿Ha sido fiel a su pareja?
true
¿Quiere a su pareja?
true
¿Tiene su pareja o sus hijos algún entrenador personal?
false
¿Pone su pareja excusas para acostarse?
false

Gracias por leer.
32  Programación / Programación C/C++ / Re: No me compila el for en C en: 30 Septiembre 2017, 22:51 pm
En tu código tienes la condición "N<=i". Inicialmente, i vale 0 (es lo que has indicado en el for). N vale lo que el usuario haya introducido (en este ejemplo, 2). Entonces, la comparación inicial sería "2<=0". Como puedes ver, eso va a dar false. Por eso no se ejecuta el for.

No estoy seguro porque tengo C algo olvidado, pero intenta...

en vez de esto

for(int i=0;N<=i;i++)
{

declara la variable fuera del for, asi:

int i;
for( i=0; i<=N; i++)
{
...
}

y en el segundo bucle:
for( i=0; i<=N; i++)
{...}

y además supongo que lo de N<=i ¿es un lapsus? y querías poner i<=N
ya que de no ser así, en la primera iteración se cumpliría que N es mayor que i (si el usuario ha introducido un valor mayor que 0) y se saldría del bucle


Respecto a eso, si que se permite declarar variables dentro del campo de inicialización del for en C (a partir de una versión que no recuerdo)
33  Programación / Programación C/C++ / Re: En una condicion IF tener un OR para dos resultados || en: 20 Septiembre 2017, 18:18 pm
El problema es que has declarado el numero como bool. En la mayoria de compiladores (creo yo) y sistemas se interpreta un valor diferente de 0 como true (1). Es decir, si introduces un valor distinto de 0, lo mas probable es que se almacene un 1 (true)
34  Programación / Programación C/C++ / Re: Redefinition in listas en: 20 Septiembre 2017, 18:12 pm
En las cabeceras has puesto eliminar en vez de Eliminar. ¿Hago mal en asumir un copia-pega? :D
35  Programación / Programación C/C++ / Re: Numeros Primos sin bucles en: 14 Septiembre 2017, 20:35 pm
Si buscas una forma eficiente de saber si un número es primo o no, haciéndolo en unas pocas instrucciones, he de decirque que dudo de la existencia de tal algoritmo. Determinar si un número es primo o no es una tarea "compleja" a nivel computacional, la cual solo se puede resolver comprobando los divisores. Se puede optimizar la cantidad de divisores, también si se hace una lista de primos..., pero ya está.
36  Foros Generales / Foro Libre / Re: Cual es su editor favorito? en: 10 Julio 2017, 11:27 am
Puede que para comenzar este no sea el mejor editor, pero en mi opinión es muy bueno. Me refiero a Emacs. Emacs es un editor antiquísimo pero muy bueno. Este es un editor muy extendido el cual se puede complementar con paquetes. Hay muchísimos paquetes disponibles para cualquier cosa que se te pueda ocurrir. Lo complicado de este programa es aprender a cómo usarlo, ya que se basa en un sistema de comandos que se ejecutan con combinaciones de teclas. Te voy a poner un ejemplo. Si quieres abrir un archivo, tienes que ejecutar el comando find-file con la combinación de teclas C-x C-f. Se lee así: mantén pulsado la tecla control, y pulsa las teclas x y luego la f. Cuando inicias Emacs, puedes seleccionar abrir el tutorial, el cual explica todas estas cosas. Este tutorial está en español, así que no habrá problemas con eso. Además, el programa es multiplataforma.

Si te decides por este programa, y ya llevas un tiempo con el, puedes programar tus propias funcionalidades (incluso tus propios paquetes) en un lenguaje llamado eLisp (Emacs Lisp). En mi opinión, es un lenguaje no demasiado amigable, pero una vez te acostumbras a el, es muy potente.
37  Foros Generales / Dudas Generales / (Consulta) (Emacs) Navegador de archivos simplista pero efectivo en: 3 Julio 2017, 03:08 am
Hola, muy buenas.

Antes de formatear, tenía, en emacs un paquete que me permitía seleccionar la ruta con las flechas del ratón (ver imagen abajo), pero ahora no encuentro dicho paquete (porque no me acuerdo de su nombre). Si alguien sabe el nombre del paquete, por favor, dígalo. El navegador se puede ver en la parte de abajo

38  Programación / Programación General / Re: (Consulta) Mejor forma de implementar el algoritmo con programación concurrente en: 2 Julio 2017, 20:37 pm
De acuerdo, muchas gracias!
39  Programación / Programación General / Re: (Consulta) Mejor forma de implementar el algoritmo con programación concurrente en: 2 Julio 2017, 19:36 pm
Si, tienes razón! Debería empezar por algo más sencillo. ¿Por dónde recomendarías empezar? ¿Sabes de una buena página con buenos ejercicios? Eché un ojo pero no vi demasiados buenos ejercicios. Gracias
40  Programación / Programación General / (Consulta) Mejor forma de implementar el algoritmo con programación concurrente en: 2 Julio 2017, 15:28 pm
Hola a tod@s. Estoy introduciéndome en el mundo de la programación concurrente usando los hilos de POSIX. Estoy intentando implementar de forma segura lo siguiente:

Thread 1 (hilo POSIX): actualizar framebuffer (búfer de pantalla)
Thread 2 (hilo principal): actualizar imagen con una proveniente de una cámara.

El framebuffer se actualiza con la imagen leida de la cámara. Entonces, una secuencia de ejecución sería algo parecido a:

|-----Actualizar imagen-----|-----Actualizar imagen-----|-----Actualizar imagen-----|
|--------Actualizar framebuffer--------|--------Actualizar framebuffer--------|--------Actualizar framebuffer--------|

Es posible que actualizar el framebuffer ocupe menos tiempo que actualizar la imagen, no se sabe.

Entonces mi pregunta es: ¿cuál creen que es la mejor forma de actualizar el framebuffer sin que haya tearing (se mezcle el frame anterior con el actual)?

Lo ideal sería que fuera lo más eficientemente posible, es decir, que si ya se ha leido una imagen, el actualizador del framebuffer no tenga que esperar a que se lea otra imagen.

No pido que me den código, solo pregunto cual sería la idea de implementación (no sé si me explico)
Páginas: 1 2 3 [4] 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 ... 45
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines