MARATON DE PROGRAMACIÓN DE APLICACIONES EN .NET
10 de
noviembre de
2007
Universidad del Cauca 1
MaratóndeProgramación
Microsoft.Net
Tupotencialnuestrapasión
MARATON DE PROGRAMACIÓN DE APLICACIONES EN .NET
10 de
noviembre de
2007
Universidad del Cauca 2
Reglas de la competencia
Restricciones:
1. Los equipos participantes no pueden utilizar ningún tipo de material, ya sea impreso o
digital para la realización de los ejercicios.
2. Ninguno de los miembros del equipo puede hablar con los competidores de los otros
equipos participantes.
3. Los equipos no deben tener conexión a internet en ningún momento.
4. Cada uno de los integrantes del equipo debe apagar sus equipos móviles (Celulares,
Palm’s, portátiles u otros similares.)
5. Los miembros de equipo solo pueden usar el computador asignado un lápiz o lapicero y
hojas en blanco.
Método de trabajo:
1. A cada equipo se le asignara de manera aleatoria uno de los computadores.
2. Los participantes recibirán instrucciones precisas de la forma de trabajo y las reglas del
concurso.
3. Cada uno de los equipos tiene aproximadamente 4 horas para completar la prueba.
4. Los ejercicios pueden ser resueltos en diferente orden.
5. Cada ejercicio tiene igual puntuación.
6. Los equipos se clasificarán por tiempo, es decir se suman los tiempos desde el inicio de la
prueba hasta la solución de cada ejercicio y se organizan los tiempos de menor a mayor.
7. Si alguno de los equipos termina correctamente (y en el menor tiempo) la solución de todos
los ejercicios antes de las 4 horas planeadas se convierte inmediatamente en el ganador
de la prueba.
8. Los equipos solo pueden usar las herramientas de Visual Studio .Net para realizar sus
programas.
9. Si un ejercicio se presenta 3 veces con igual número de intentos fallidos, este ejercicio no
puede volver a ser entregado ya que no será evaluado.
Los jurados tienen plena libertad de sancionar con la
desclasificación cualquier conducta irregular en el
desarrollo de la prueba.
***** EXITOS *****
MARATON DE PROGRAMACIÓN DE APLICACIONES EN .NET
10 de
noviembre de
2007
Universidad del Cauca 3
Problema No. 0 – Ejercicio de Prueba
Programa Ejecutable: C:MaratonProgramasPrograma0debugprog0.exe
Archivo de entrada: prog0.IN Archivo de salida: prog0.OUT
Escriba un programa que acepte como entrada una lista de enteros positivo y por cada número leído genere el mismo
número pero escrito de manera inversa.
Entrada
La entrada consiste de una serie de números enteros, esta lista termina con el número 0.
Salida
Por cada entero positivo en la entrada, la salida consiste de un número que se escribe de manera inversa.
Ejemplo del archivo de entrada
12345
8962
0
Ejemplo del archivo de salida
54321
2698
MARATON DE PROGRAMACIÓN DE APLICACIONES EN .NET
10 de
noviembre de
2007
Universidad del Cauca 4
Problema No. 1 – Números divisibles por 11
Programa Ejecutable: C:MaratonProgramasPrograma1debugprog1.exe
Archivo de entrada: prog1.IN Archivo de salida: prog1.OUT
Escriba un programa que acepte como entrada una lista de enteros positivo y usando el algoritmo escrito abajo verifique si
el entero es o no divisible por 11
Algoritmo:
Mientras el número que se prueba tenga más de dos dígitos, forme un nuevo número
 Borrando el dígito de las unidades
 Restando el dígito borrado del número truncado
El número original es divisible por 11 si y solo si, el número restante final es divisible por 11. Los ceros a la izquierda no son
considerados parte del número y no deben ser impresos.
Entrada
La entrada consiste de una serie de números enteros, esta lista termina con 0, cada entero positivo tiene un máximo de 50
dígitos. Se puede asumir que no hay 0 a la izquierda en los enteros positivos.
Salida
Por cada entero positivo en la entrada, la salida consiste de una serie de números formados cuando el último dígito es
borrado y restado al número truncado, seguido por un mensaje que indica si el número original es o no divisible por 11. Las
salidas para diferentes enteros positivos son separadas por líneas.
Ejemplo del archivo de entrada
12345678901234567900
896245630004
0
Ejemplo del archivo de salida
12345678901234567900
1234567890123456790
123456789012345679
12345678901234558
1234567890123447
123456789012337
12345678901226
1234567890116
123456789005
12345678895
1234567884
123456784
12345674
1234563
123453
12342
1232
121
11
El numero 12345678901234567900 es divisible por 11.
896245630004
89624562996
8962456293
896245626
89624556
8962449
896235
89618
8953
892
87
El numero 896245630004 no es divisible por 11.
MARATON DE PROGRAMACIÓN DE APLICACIONES EN .NET
10 de
noviembre de
2007
Universidad del Cauca 5
Problema No. 2 – Estrellas
Programa Ejecutable: C:MaratonProgramasPrograma2debugprog2.exe
Archivo de entrada: prog2.IN Archivo de salida: prog2.OUT
Trabajas para los Laboratorios de Propulsión por Reacción Sputnik. En este momento es necesario que escribas un
programa que lea una matriz, la cual contiene una representación digitalizada de una fotografía del cielo.
Cada elemento de la matriz representa la cantidad de luz que existe en determinada región de la imagen digitalizada. El
rango de intensidad va de 0 a 20. El programa permitirá localizar las regiones donde se ubica una estrella, partiendo de la
siguiente información:
Una estrella se encuentra en el área cubierta por el elemento i,j de la matriz si se cumple la siguiente condición:
(MD(i,j) + suma de intensidades circundantes)/5 > 10.0
Donde MD representa la matriz digitalizada.
Entrada
La primera línea son dos enteros menores que 10 que indican el número de filas y columnas de la matriz, las siguientes
líneas contienen enteros que representan las intensidades de cada posición de la matriz, separados por un blanco.
Salida
La salida deseada es la matriz que contiene un asterisco en la posición donde está localizada una estrella, y un blanco
donde no la hay. La matriz debe estar circundada por un borde que indique las coordenadas de cada estrella. La
coordenada inicial es 1. Cada elemento de la matriz debe estar separado por un espacio en blanco.
Ejemplo del archivo de entrada
6 8
0 3 4 20 15 0 6 8
5 13 6 8 2 0 2 3
2 6 2 2 3 0 10 0
0 0 4 15 4 1 1 20
0 0 7 2 6 9 10 4
5 0 6 10 6 4 8 0
Ejemplo del archivo de salida
1 2 3 4 5 6 7 8
1 * * 1
2 * * 2
3 * 3
4 * 4
5 * * * 5
6 6
1 2 3 4 5 6 7 8
MARATON DE PROGRAMACIÓN DE APLICACIONES EN .NET
10 de
noviembre de
2007
Universidad del Cauca 6
Problema No. 3 – Histograma
Programa Ejecutable: C:MaratonProgramasPrograma3debugprog3.exe
Archivo de entrada: prog3.IN Archivo de salida: prog3.OUT
Realizar un programa que construya un conjunto de histogramas para una lista de frases, el programa debe tomar cada una
de las frases y por cada letra se debe imprimir un asterisco, simulando una barra del histograma.
Entrada
La primera línea del archivo contiene un número entero que indica el número de histogramas a construir, la segunda línea
contiene el número de barras que debe tener el primer histograma, las siguientes líneas contienen la frase que debe ser
transformada asteriscos. Las frases tienen un tamaño inferior a 100 letras.
Salida
La salida deseada es un conjunto de histogramas, donde la primera línea indica el número del histograma. Cada histograma
debe tener barras representadas por asteriscos correspondientes al número de letras que tiene cada frase del histograma.
Ejemplo del archivo de entrada
2
5
Hola mundo cruel
Programación
Estamos programando
Programación extrema
Célula Unicauca
2
Cauca
Sistemas
Ejemplo del archivo de salida
Histograma 1
*
* *
* *
* *
* * *
* * * *
* * * *
* * * *
* * * *
* * * * *
* * * * *
* * * * *
* * * * *
* * * * *
* * * * *
* * * * *
* * * * *
* * * * *
* * * * *
* * * * *
* * * * *
Histograma 2
*
*
*
* *
* *
* *
* *
* *
MARATON DE PROGRAMACIÓN DE APLICACIONES EN .NET
10 de
noviembre de
2007
Universidad del Cauca 7
Problema No. 4 – Rotación de letras
Programa Ejecutable: C:MaratonProgramasPrograma4debugprog4.exe
Archivo de entrada: prog4.IN Archivo de salida: prog4.OUT
Realice un programa que lea una lista de frases e imprima una matriz que contenga la misma frase con un carácter corrido
hacia la izquierda.
Entrada
La primera línea del archivo contiene un número entero que indica el número de frases contenidas, las siguientes líneas
contienen una frase. Las frases no superan los 100 caracteres.
Salida
Por cada una de las frases de la entrada se debe crear una matriz que contenga la frase de entrada corrida en un carácter
hacia la izquierda. El número de líneas de cada matriz será equivalente al número de caracteres de la frase. Cada una de
las matrices debe ser separada por una línea en blanco.
Ejemplo del archivo de entrada
2
hola mundo
programa
Ejemplo del archivo de salida
hola mundo
ola mundoh
la mundoho
a mundohol
mundohola
mundohola
undohola m
ndohola mu
dohola mun
ohola mund
programa
rogramap
ogramapr
gramapro
ramaprog
amaprogr
maprogra
aprogram
MARATON DE PROGRAMACIÓN DE APLICACIONES EN .NET
10 de
noviembre de
2007
Universidad del Cauca 8
Problema No. 5 – Codificación
Programa Ejecutable: C:MaratonProgramasPrograma5debugprog5.exe
Archivo de entrada: prog5.IN Archivo de salida: prog5.OUT
Realice un programa que realice el cifrado de un texto contenido en archivo, mediante la conversión de cada uno de sus
caracteres al lenguaje, Marciano 1, el cual se describe a continuación:
Carácter Equivalente
(6 caracteres sin
espacios)
A ..-...
B -.....
C .-.-..
D ..-...
E ...-..
F -...-.
G ..-.-.
H .--...
I --..-.
J ...--.
K .---..
L --....
M .---..
N ---...
O --..-.
P -..--.
Q ....-.
R ..-...
S -....-
T .-.-.-
U ..-..-
V ...-.-
W -...--
X ..-.--
Y .--..-
Z --..--
Otro Debe quedar igual
Entrada
La primera línea del archivo contiene un número de palabras a transformar, la siguiente línea contiene cada una de las
palabras a transformar.
MARATON DE PROGRAMACIÓN DE APLICACIONES EN .NET
10 de
noviembre de
2007
Universidad del Cauca 9
Salida
Por cada una de las palabras se debe generar una palabra con la nueva codificación, cada una de las palabras debe estar
separadas por un espacio en blanco. Sin importar si la letra esta en mayúsculas o minúsculas debe ser transformada
usando el código de Marciano 1.
Ejemplo del archivo de entrada
6
Esta es la frase a codificar
Ejemplo del archivo de salida
...-..-....-.-.-.-..-... ...-..-....- --......-... -...-...-.....-...-....-
...-.. ..-... .-.-..--..-...-...--..-.-...-.--..-..-.-....-.....-...

Maraton de-programacion-10-nov-2007

  • 1.
    MARATON DE PROGRAMACIÓNDE APLICACIONES EN .NET 10 de noviembre de 2007 Universidad del Cauca 1 MaratóndeProgramación Microsoft.Net Tupotencialnuestrapasión
  • 2.
    MARATON DE PROGRAMACIÓNDE APLICACIONES EN .NET 10 de noviembre de 2007 Universidad del Cauca 2 Reglas de la competencia Restricciones: 1. Los equipos participantes no pueden utilizar ningún tipo de material, ya sea impreso o digital para la realización de los ejercicios. 2. Ninguno de los miembros del equipo puede hablar con los competidores de los otros equipos participantes. 3. Los equipos no deben tener conexión a internet en ningún momento. 4. Cada uno de los integrantes del equipo debe apagar sus equipos móviles (Celulares, Palm’s, portátiles u otros similares.) 5. Los miembros de equipo solo pueden usar el computador asignado un lápiz o lapicero y hojas en blanco. Método de trabajo: 1. A cada equipo se le asignara de manera aleatoria uno de los computadores. 2. Los participantes recibirán instrucciones precisas de la forma de trabajo y las reglas del concurso. 3. Cada uno de los equipos tiene aproximadamente 4 horas para completar la prueba. 4. Los ejercicios pueden ser resueltos en diferente orden. 5. Cada ejercicio tiene igual puntuación. 6. Los equipos se clasificarán por tiempo, es decir se suman los tiempos desde el inicio de la prueba hasta la solución de cada ejercicio y se organizan los tiempos de menor a mayor. 7. Si alguno de los equipos termina correctamente (y en el menor tiempo) la solución de todos los ejercicios antes de las 4 horas planeadas se convierte inmediatamente en el ganador de la prueba. 8. Los equipos solo pueden usar las herramientas de Visual Studio .Net para realizar sus programas. 9. Si un ejercicio se presenta 3 veces con igual número de intentos fallidos, este ejercicio no puede volver a ser entregado ya que no será evaluado. Los jurados tienen plena libertad de sancionar con la desclasificación cualquier conducta irregular en el desarrollo de la prueba. ***** EXITOS *****
  • 3.
    MARATON DE PROGRAMACIÓNDE APLICACIONES EN .NET 10 de noviembre de 2007 Universidad del Cauca 3 Problema No. 0 – Ejercicio de Prueba Programa Ejecutable: C:MaratonProgramasPrograma0debugprog0.exe Archivo de entrada: prog0.IN Archivo de salida: prog0.OUT Escriba un programa que acepte como entrada una lista de enteros positivo y por cada número leído genere el mismo número pero escrito de manera inversa. Entrada La entrada consiste de una serie de números enteros, esta lista termina con el número 0. Salida Por cada entero positivo en la entrada, la salida consiste de un número que se escribe de manera inversa. Ejemplo del archivo de entrada 12345 8962 0 Ejemplo del archivo de salida 54321 2698
  • 4.
    MARATON DE PROGRAMACIÓNDE APLICACIONES EN .NET 10 de noviembre de 2007 Universidad del Cauca 4 Problema No. 1 – Números divisibles por 11 Programa Ejecutable: C:MaratonProgramasPrograma1debugprog1.exe Archivo de entrada: prog1.IN Archivo de salida: prog1.OUT Escriba un programa que acepte como entrada una lista de enteros positivo y usando el algoritmo escrito abajo verifique si el entero es o no divisible por 11 Algoritmo: Mientras el número que se prueba tenga más de dos dígitos, forme un nuevo número  Borrando el dígito de las unidades  Restando el dígito borrado del número truncado El número original es divisible por 11 si y solo si, el número restante final es divisible por 11. Los ceros a la izquierda no son considerados parte del número y no deben ser impresos. Entrada La entrada consiste de una serie de números enteros, esta lista termina con 0, cada entero positivo tiene un máximo de 50 dígitos. Se puede asumir que no hay 0 a la izquierda en los enteros positivos. Salida Por cada entero positivo en la entrada, la salida consiste de una serie de números formados cuando el último dígito es borrado y restado al número truncado, seguido por un mensaje que indica si el número original es o no divisible por 11. Las salidas para diferentes enteros positivos son separadas por líneas. Ejemplo del archivo de entrada 12345678901234567900 896245630004 0 Ejemplo del archivo de salida 12345678901234567900 1234567890123456790 123456789012345679 12345678901234558 1234567890123447 123456789012337 12345678901226 1234567890116 123456789005 12345678895 1234567884 123456784 12345674 1234563 123453 12342 1232 121 11 El numero 12345678901234567900 es divisible por 11. 896245630004 89624562996 8962456293 896245626 89624556 8962449 896235 89618 8953 892 87 El numero 896245630004 no es divisible por 11.
  • 5.
    MARATON DE PROGRAMACIÓNDE APLICACIONES EN .NET 10 de noviembre de 2007 Universidad del Cauca 5 Problema No. 2 – Estrellas Programa Ejecutable: C:MaratonProgramasPrograma2debugprog2.exe Archivo de entrada: prog2.IN Archivo de salida: prog2.OUT Trabajas para los Laboratorios de Propulsión por Reacción Sputnik. En este momento es necesario que escribas un programa que lea una matriz, la cual contiene una representación digitalizada de una fotografía del cielo. Cada elemento de la matriz representa la cantidad de luz que existe en determinada región de la imagen digitalizada. El rango de intensidad va de 0 a 20. El programa permitirá localizar las regiones donde se ubica una estrella, partiendo de la siguiente información: Una estrella se encuentra en el área cubierta por el elemento i,j de la matriz si se cumple la siguiente condición: (MD(i,j) + suma de intensidades circundantes)/5 > 10.0 Donde MD representa la matriz digitalizada. Entrada La primera línea son dos enteros menores que 10 que indican el número de filas y columnas de la matriz, las siguientes líneas contienen enteros que representan las intensidades de cada posición de la matriz, separados por un blanco. Salida La salida deseada es la matriz que contiene un asterisco en la posición donde está localizada una estrella, y un blanco donde no la hay. La matriz debe estar circundada por un borde que indique las coordenadas de cada estrella. La coordenada inicial es 1. Cada elemento de la matriz debe estar separado por un espacio en blanco. Ejemplo del archivo de entrada 6 8 0 3 4 20 15 0 6 8 5 13 6 8 2 0 2 3 2 6 2 2 3 0 10 0 0 0 4 15 4 1 1 20 0 0 7 2 6 9 10 4 5 0 6 10 6 4 8 0 Ejemplo del archivo de salida 1 2 3 4 5 6 7 8 1 * * 1 2 * * 2 3 * 3 4 * 4 5 * * * 5 6 6 1 2 3 4 5 6 7 8
  • 6.
    MARATON DE PROGRAMACIÓNDE APLICACIONES EN .NET 10 de noviembre de 2007 Universidad del Cauca 6 Problema No. 3 – Histograma Programa Ejecutable: C:MaratonProgramasPrograma3debugprog3.exe Archivo de entrada: prog3.IN Archivo de salida: prog3.OUT Realizar un programa que construya un conjunto de histogramas para una lista de frases, el programa debe tomar cada una de las frases y por cada letra se debe imprimir un asterisco, simulando una barra del histograma. Entrada La primera línea del archivo contiene un número entero que indica el número de histogramas a construir, la segunda línea contiene el número de barras que debe tener el primer histograma, las siguientes líneas contienen la frase que debe ser transformada asteriscos. Las frases tienen un tamaño inferior a 100 letras. Salida La salida deseada es un conjunto de histogramas, donde la primera línea indica el número del histograma. Cada histograma debe tener barras representadas por asteriscos correspondientes al número de letras que tiene cada frase del histograma. Ejemplo del archivo de entrada 2 5 Hola mundo cruel Programación Estamos programando Programación extrema Célula Unicauca 2 Cauca Sistemas Ejemplo del archivo de salida Histograma 1 * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * Histograma 2 * * * * * * * * * * * * *
  • 7.
    MARATON DE PROGRAMACIÓNDE APLICACIONES EN .NET 10 de noviembre de 2007 Universidad del Cauca 7 Problema No. 4 – Rotación de letras Programa Ejecutable: C:MaratonProgramasPrograma4debugprog4.exe Archivo de entrada: prog4.IN Archivo de salida: prog4.OUT Realice un programa que lea una lista de frases e imprima una matriz que contenga la misma frase con un carácter corrido hacia la izquierda. Entrada La primera línea del archivo contiene un número entero que indica el número de frases contenidas, las siguientes líneas contienen una frase. Las frases no superan los 100 caracteres. Salida Por cada una de las frases de la entrada se debe crear una matriz que contenga la frase de entrada corrida en un carácter hacia la izquierda. El número de líneas de cada matriz será equivalente al número de caracteres de la frase. Cada una de las matrices debe ser separada por una línea en blanco. Ejemplo del archivo de entrada 2 hola mundo programa Ejemplo del archivo de salida hola mundo ola mundoh la mundoho a mundohol mundohola mundohola undohola m ndohola mu dohola mun ohola mund programa rogramap ogramapr gramapro ramaprog amaprogr maprogra aprogram
  • 8.
    MARATON DE PROGRAMACIÓNDE APLICACIONES EN .NET 10 de noviembre de 2007 Universidad del Cauca 8 Problema No. 5 – Codificación Programa Ejecutable: C:MaratonProgramasPrograma5debugprog5.exe Archivo de entrada: prog5.IN Archivo de salida: prog5.OUT Realice un programa que realice el cifrado de un texto contenido en archivo, mediante la conversión de cada uno de sus caracteres al lenguaje, Marciano 1, el cual se describe a continuación: Carácter Equivalente (6 caracteres sin espacios) A ..-... B -..... C .-.-.. D ..-... E ...-.. F -...-. G ..-.-. H .--... I --..-. J ...--. K .---.. L --.... M .---.. N ---... O --..-. P -..--. Q ....-. R ..-... S -....- T .-.-.- U ..-..- V ...-.- W -...-- X ..-.-- Y .--..- Z --..-- Otro Debe quedar igual Entrada La primera línea del archivo contiene un número de palabras a transformar, la siguiente línea contiene cada una de las palabras a transformar.
  • 9.
    MARATON DE PROGRAMACIÓNDE APLICACIONES EN .NET 10 de noviembre de 2007 Universidad del Cauca 9 Salida Por cada una de las palabras se debe generar una palabra con la nueva codificación, cada una de las palabras debe estar separadas por un espacio en blanco. Sin importar si la letra esta en mayúsculas o minúsculas debe ser transformada usando el código de Marciano 1. Ejemplo del archivo de entrada 6 Esta es la frase a codificar Ejemplo del archivo de salida ...-..-....-.-.-.-..-... ...-..-....- --......-... -...-...-.....-...-....- ...-.. ..-... .-.-..--..-...-...--..-.-...-.--..-..-.-....-.....-...