Esta es una duda que tenia un equipo. La respuesta la ponemos para que todos la vean:
En efecto si, las entradas a los programas son "desde consola". Exactamente lo que sucede es que se desvía el contenido de un archivo a la entrada estándar del programa. Y también la salida estándar del programa se desvía a otro archivo de salida, para que después el sistema compare este archivo generado con el archivo de salida predeterminado que tiene el sistema Mooshak, para determinar si el programa genera la respuesta correcta (si ambos archivos de salida son iguales).
Si están familiarizados con el sistema operativo Linux (que es el sistema operativo en donde corre el Mooshak), esto se logra llamando al programa en Java de la siguiente manera:
$ java Main < entrada.txt > salida.txt
En donde entrada.txt es un archivo contiene en sus líneas la entrada al programa, y salida.txt será escrito con la salida que genere el programa. Si aún tienen más dudas les recomendamos que consulten con un profesor de su facultad.
Acerca de la duda para saber cuándo termina o no un archivo, para el concurso de alguna u otra forma indicaremos cuántas líneas son necesarias leer. Sin embargo, para terminar de aclarar la duda en el caso que no se indicara lo que se hace es utilizar el servicio ready() que ofrece la clase BufferedReader ( ver http://java.sun.com/javase/6/docs/api/java/io/BufferedReader.html#ready() ).
BufferedReader in;
in = new BufferedReader(new InputStreamReader(System.in));
while( in.ready() ){
......
}
Este ciclo se detendrá automáticamente cuando no haya más que leer de la entrada estándar.
Por último, cuando el programa se cae por alguna razón, Mooshak no compara la salida del programa, sino que le avisará que hubo un error, codificados según enviamos en correos anteriores (ver http://programacionsimbolo.blogspot.com/2010/04/manual-de-mooshak.html).
Mucha suerte.
Subscribe to:
Post Comments (Atom)
No comments:
Post a Comment