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