tutorial acerca del uso del sistema de calificacion

16
ACM Chapter Cusco Página 1 TUTORIAL ACERCA DEL USO DEL SISTEMA DE CALIFICACION Programming Contest Control (PC 2 ) System A continuación explicaré detalladamente el uso del sistema de calificación con un par de ejemplos en los 4 lenguajes disponibles. Previamente debes asignar el IP del servidor para establecer la conexión y así poder realizar los envíos (server=localhost: 50002) cambiar por (server=IPdelServer: 50002), esto se tiene que editar en el archivo pc2v9.ini dentro del directorio bin de pc2.

Upload: acmchaptercusco

Post on 13-Jun-2015

495 views

Category:

Technology


0 download

TRANSCRIPT

Page 1: Tutorial acerca del uso del sistema de calificacion

ACM Chapter Cusco Página 1

TUTORIAL ACERCA DEL USO DEL SISTEMA DE

CALIFICACION

Programming Contest Control (PC2) System

A continuación explicaré detalladamente el uso del sistema de calificación con un par

de ejemplos en los 4 lenguajes disponibles.

Previamente debes asignar el IP del servidor para establecer la conexión y así poder

realizar los envíos (server=localhost: 50002) cambiar por (server=IPdelServer:

50002), esto se tiene que editar en el archivo pc2v9.ini dentro del directorio bin de pc2.

Page 2: Tutorial acerca del uso del sistema de calificacion

ACM Chapter Cusco Página 2

En el desarrollo del concurso, podrás ver el estado del concurso en el scoreboard, para

ello hacer doble click en pc2board.bat dentro del directorio bin de pc2, con un usuario

y contraseña suministrada por los organizadores, por default es

user: scoreboard1

pass: scoreboard1.

Ahora si todo salió bien se generará un directorio html dentro de esta carpeta bin

seleccionar summary.html y podrás tener el status de los envíos en general actualizado

según eventos de envíos de los problemas, aunque se actualiza el archivo html, no se

verá estos cambios hasta que refresques el archivo en el navegador, tendrás que

actualizarlo cada vez para ver los cambios, si deseas que esto se realice

automáticamente sugiero que uses Firefox con un complemento llamado “reloadevery”

luego reiniciar el navegador, dar anticlick en la pestaña del summary.html e indicar la

frecuencia de actualización de este archivo del scoreboard.

Page 3: Tutorial acerca del uso del sistema de calificacion

ACM Chapter Cusco Página 3

Ahora cargamos nuestra ventana principal, la ventana de Team, para esto doble click en

pc2team.bat y luego ingresar nuestro nombre de equipo y la contraseña suministrados

por los organizadores del concurso.

Page 4: Tutorial acerca del uso del sistema de calificacion

ACM Chapter Cusco Página 4

Luego del login tendremos nuestra ventana principal para realizar nuestros envíos de

nuestros códigos de solución a los problemas.

Como vemos, tenemos la opción de enviar en varios lenguajes de programación.

Ahora vamos con el siguiente ejemplo, donde realizaremos la prueba de

funcionamiento.

Seleccionamos el problema al cual dimos solución y queremos enviarlo para su

respectiva verificación por parte de los jueces con los datos de prueba.

Page 5: Tutorial acerca del uso del sistema de calificacion

ACM Chapter Cusco Página 5

El problema de los primos, dice en líneas generales así:

Determinar la cantidad de números primos entre 2 números dados.

La primera línea es N, numero de casos de prueba, las siguientes N líneas son

a y b.

La salida imprime la cantidad de números primos entre a y b incluidos.

Input.

3

2 4

2 5

5 7

Output.

2

3

2

La solución en C++.

Ahora realizamos la prueba de nuestro código, invocando al compilador desde la línea de

comandos.

Page 6: Tutorial acerca del uso del sistema de calificacion

ACM Chapter Cusco Página 6

Para el caso de compilar y ejecutar nuestros programas desde línea de comandos,

debemos agregar al path del sistema, las rutas de estos compiladores, esto se explicará con

más detalle el día del concurso por que es opcional, puedes probar sin problemas desde tu

IDE favorito aunque usarlo desde consola tiene algunas ventajas que les mostraré a

continuación.

Simplemente lo llamamos desde línea de comandos asi.

En C/C++ se genera automáticamente un ejecutable a.exe, entonces luego de compilar lo

ejecutamos.

Ingresamos N = 2, luego la primera línea es a = 4 y b = 5, nos devuelve 1, luego vuelve a leer 2

números a = 3, b = 3 nos devuelve 1 también, ya se hizo 2 iteraciones, entonces nuestro

programa termina con resultado esperado.

Page 7: Tutorial acerca del uso del sistema de calificacion

ACM Chapter Cusco Página 7

A continuación un archivo de prueba *.in que es una forma más cómoda de probar grandes

cantidades de datos, sin necesidad de estar digitando cada vez que queremos probar nuestro

programa, también un archivo *.out este se encontrará en el servidor para la comparación de

resultados.

Entonces es hora de probar con nuestra otra forma en la cual no necesitamos digitar cada vez

que ejecutamos, simplemente lo cargamos así (recordar que primos.cpp y primos.in se

encuentran en el mismo directorio, sino se especifica su ruta):

Enter.

Page 8: Tutorial acerca del uso del sistema de calificacion

ACM Chapter Cusco Página 8

Ahora realizaremos el Envío con nuestra pantalla del Team.

Seleccionamos el archivo con el lenguaje realizado previamente, para compilar el

código en el server / judge.

Page 9: Tutorial acerca del uso del sistema de calificacion

ACM Chapter Cusco Página 9

Nos llegará ese mensaje de confirmación, esperando por nuestro resultado, que puede ser varios,

por ejemplo Wrong Answer, Time Limit Exceed, Compilation Error o Accepted.

Page 10: Tutorial acerca del uso del sistema de calificacion

ACM Chapter Cusco Página 10

Una vista del panel del Judge, mientras se realiza el testeo de la validez de nuestro programa.

Antes de recibir respuesta nuestro ScoreBoard se encuentra asi:

Page 11: Tutorial acerca del uso del sistema de calificacion

ACM Chapter Cusco Página 11

Luego en el Judge, luego de compilar e ingresar su propio *.in datos de entrada y luego

comparado con su propio *.out se verá lo siguiente.

Listo para dar el veredicto el juez da en:

Y recibiremos:

Page 12: Tutorial acerca del uso del sistema de calificacion

ACM Chapter Cusco Página 12

Actualizamos nuestro Scoreboard y tenemos:

El mismo algoritmo en C, quedaría de la siguiente forma.

Y la compilación es similar a lo visto con C++ pero en lugar de usar g++, usamos gcc.

Page 13: Tutorial acerca del uso del sistema de calificacion

ACM Chapter Cusco Página 13

Para el caso de C# a diferencia que C/C++ donde no importaban si los datos estaban separados

en varias líneas o incluso si estaban con saltos de línea porque solo buscaban el siguiente token,

debemos tener presente el formato de entrada, ya que en C# solo podemos leer líneas, si estas

líneas tiene varios datos separados por espacios, debemos trozar utilizando algunas funciones

que se muestran a continuación.

La función importante es la de una variable string, en este caso “línea” , invocamos a su método

Split que nos devuelve un arreglo de tokens separados por el char especificado en el parámetro,

en este caso el separador es un espacio.

Asumimos que como siempre tendremos 2 datos en la línea (salvo para N, ver código)

recuperamos los valores del índice “0” y del índice “1”.

Esto lo puedes editar con tu IDE favorito, no necesariamente con un notepad++.

Page 14: Tutorial acerca del uso del sistema de calificacion

ACM Chapter Cusco Página 14

La misma idea Aplica para C# previamente haber agregado al path de la variable del sistema la

ruta del compilador de C#, el “csc” y luego se genera las salidas con el archivo primos.in.

Cabe aclarar que todo esto es opcional, puedes probar con unos cuantos datos manuales desde tu

IDE favorito, pero esta forma con un archivo *.in te permite probar más casos sin necesidad de

escribirlo a cada rato.

El código en Java.

Page 15: Tutorial acerca del uso del sistema de calificacion

ACM Chapter Cusco Página 15

Y en la línea de comandos se procede de manera parecida para realizar la prueba con el archivo

de entrada primos.in.

Y finalmente en Pascal.

Page 16: Tutorial acerca del uso del sistema de calificacion

ACM Chapter Cusco Página 16

Nota: no se usó “uses crt;” debido a que hay problemas con el archivo *.in pero el juez tolera

ese inconveniente.

Nota 2: Se uso longInt debido a que los valores que utilizamos en los casos de prueba son

grandes, se recomienda, si usas pascal usar longInt en lugar de integer.