Clase auxiliar: Lunes 24 de Mayo
Recuento de votos
El archivo "votos.txt" contiene los resultados de una elección en el
siguiente formato.
Juan
Pedro
Juan
Patricia
Patricia
...
Cada línea indica el nombre del candidato preferido de un votante.
Los candidatos son desconocidos. Escriba un programa que haga el recuento
de votos y despliegue la siguiente información:
Juan: 12 votos
Pedro: 4 votos
Patricia: 15 votos
...
Indicaciones:
- Utilice el patrón de lectura de archivos para leer los
nombres contenidos en el archivo "votos.txt".
- Cree un arreglo (con llaves enteras) que contenga como valores los
nombres de los candidatos. Inicialmente este arreglo parte vacío.
Para cuando se haya leído el nombre Patricia en el archivo, el
contenido del arreglo de candidatos será:
Llave | Valor
|
---|
1 | Juan
|
2 | Pedro
|
3 | Patricia
|
- Utilice la variable ncand para mantener cuantos candidatos se
han encontrado en el archivo hasta una línea determinada. Por
ejemplo, para el arreglo anterior, ncand es 3.
- Busque cada nombre leído del archivo en el arreglo de candidatos
(con llaves entre 1 y ncand). Si el nombre no aparece en el arreglo,
agréguelo. Para ello, incremente ncand en 1 y asocie el nuevo nombre
a la llave ncand.
- Para hacer el recuento de votos, cree un segundo arreglo de
votos. El valor asociado a la llave i deber ser el número
de votos que ha obtenido el candidato i (el nombre que aparece asociado
a la llave i en el arreglo de candidatos). Por ejemplo, para el
caso anterior el contenido del arreglo de votos debe ser:
- Cuando encuentre en el archivo de votos un voto para el candidato i,
incremente en 1 el número de votos que aparece asociado a la llave i en
el arreglo de votos.
- Finalmente, utilice el patrón de recorrido de arreglos para
desplegar el número de votos que obtuvo cada candidato.
Determinar los primeros 10000 números primos
Un número k es primo sí y solo sí k no es divisible por ningún
número primo inferior a k. Utilice este teorema para determinar
eficientemente los primeros 10000 números primos.
Indicaciones: