Introducción a la Programación
Trimestre 2005 Invierno --- Tarea 8

Viernes 1 de Abril de 2005 a las 22:00 hrs

Eligiendo Representantes

Como habrás notado por la cantidad de propaganda pegada a lo largo y ancho de la universidad, estos días se están escogiendo todo tipo de representantes universitarios. Para evitar problemas a la hora del conteo, te han pedido que les escribas un programa que calcule cuantos votos recibió cada candidato y cuantos votos nulos hubo. Para ello, te darán un archivo que contiene la siguiente información: (a) el número de candidatos y sus nombres y (b) el número de votos y los nombres por los que se votó. Se ha decidido que un voto contará por un candidato sólamente si su nombre está escrito correctamente, aunque se permite que las mayúsculas y las minúsculas estén cambiadas. En caso contrario, se considerará un voto nulo. No hay candidatos con el mismo nombre y los nombres constan únicamente de letras (es decir, no contienen espacios, etc.). Tú deberás entregar un archivo que contenga los nombres de los candidatos junto con el número de votos que recibieron, además del número de votos nulos.

Especificación

La entrada consiste del archivo de texto eleccion.txt que contiene en su primer renglón dos números M y N (con 0 < M < 100 y 0 < N < 1000), en los siguientes M renglones los nombres de los M candidatos (uno en cada renglón) y en los siguientes N renglones los N votos registrados. Los nombres pueden constar de 1 a 10 letras mayúsculas o minúsculas. La salida estará en el archivo de texto votos.txt y consiste de M líneas cada una con el nombre (en mayúsculas) y número de votos de cada candidato (separados por un espacio y en el mismo orden que aparecen en la entrada) seguida de una línea indicando el número de votos nulos. El nombre de tu programa deberá ser electoNN.c, donde NN es el número de equipo que les fue asignado. Los archivos electoNN.o y electoNN.exe no deben ser entregados. Notas: (a) Su programa no deberá leer ni escribir nada además de los datos mencionados, particularmente no deberá leer nada del teclado ni escribir nada en la pantalla. (b) Su programa no deberá usar nada que no hayamos visto en clase. (c) Para compilar su programa en UNIX usen la instrucción gcc electoNN.c -o electo y para probarlo usen la instrucción ./electo sin olvidar que antes deben crear un archivo de texto de nombre eleccion.txt que contenga algunos caracteres.

Ejemplo

Entrada en eleccion.txt    Salida en votos.txt
3 7                        HUGO 1
huGo                       PACO 2
PaCo                       LUIS 1
LUis                       NULOS 3
Hugo
Luisa
PACO
juanito
paco
luIS
Ninguno