Download Ejercicio 2: En este ejercicio se evaluará principalmente la correcta

Document related concepts
no text concepts found
Transcript
Ejercicio 1: En este ejercicio se evaluará principalmente la correcta división del problema en subproblemas.
Se desea gestionar la información de las elecciones municipales. Cada mesa de votación se va a identificar con un
número natural (entre 1 y N) y cada partido político con otro natural (entre 1 y P).
De cada mesa se conoce de un censo previo la cantidad de electores, la cual se encuentra almacenada en un archivo de
enteros, llamado censo.dat, tal que en la posición i está la cantidad de electores de cada mesa (1 ≤ i ≤ N).
La información sobre los votos se encuentra almacenada en un archivo de texto, llamado votos.txt, donde cada línea
representa una mesa y en cada línea se almacenan P números con el recuento de votos de cada partido, más un número
adicional con los votos en blanco. Por ejemplo, para N=6 mesas de votación y P=4 partidos políticos.
censo.dat
15 10 22 26 27 19 <eof>
1
1
2
0
10
13
5
1
2
3
4
5
6
2
3
5
4
10
2
14
10
4
5
Votos.txt
5
1
1
3
10
1
3
0
0
0
1
2
6
0
0
1
1
0
0
<eoln>
<eoln>
<eoln>
<eoln>
<eoln>
<eof>
Representa que la mesa 1 tiene 15 votantes, la mesa 2 tiene 10
votantes, la 3 tiene 22, etc.
En votos.txt la primera línea representa que en la mesa 1, el partido 1
obtuvo 1 voto, el partido 2 obtuvo 5 votos, el 3 obtuvo 5 votos, el 4
sólo uno, y no hubo votos en blanco. La tercera línea representa que en
la mesa 3, el partido 1 obtuvo 0 votos, el 2 obtuvo 10 votos, el 3 obtuvo
10, el 4 obtuvo 1, y hay un voto en blanco. Observe que en la mesa 1
votaron en total 12 personas de un total de 15 posibles (esto es el 80%)
y en la mesa 3 votaron todos (el 100% de los votantes).
Suponga que los archivos censo.dat y votos.txt están bien formados.
Asuma ya implementada una función cantidad_de_mesas:integer (sin parámetros) que a partir de la cantidad de
elementos en censo.dat retorna la cantidad de mesas de votantes, y una función cantidad_de_partidos:integer
que leyendo la primera línea de votos.txt retorna el número de partidos políticos.
Realice un programa en Pascal con lo siguiente:
a) Escriba un procedimiento RESULTADO que muestre por pantalla el resultado final de la votación, esto es, la cantidad
total obtenida por cada partido. Las primitivas en las cuales divida este problema deberá implementarlas.
b) Escriba un procedimiento MESA que solicite al usuario una mesa y muestre cuál fue el porcentaje de votantes.
i.
ii.
Escriba el encabezado de todas aquellas primitivas que considere útiles
para implementar este procedimiento y describa brevemente en qué
consisten.
Suponiendo que dispone de las primitivas de (i) implemente el
procedimiento MESA.
Por ejemplo, para los datos anteriores al ejecutarse el programa debería
mostrar:
Partido 1: obtuvo 31 votos.
Partido 2: obtuvo 45 votos.
Partido 3: obtuvo 20 votos.
Partido 4: obtuvo 7 votos.
Ingrese una mesa: 1
Mesa 1: votó el 80%
Ejercicio 2: Manejo de Archivos y Descomposición en Subproblemas
Una empresa dispone almacenado en sus archivos información sobre posibles candidatos para ser incorporados a su
staff. De cada candidato se identifica por número de registro, su apellido y un nombre (todos obligatorios), dicha
información se almacena en un archivo de caracteres llamado candidatos.dat.
Cada candidato presenta como parte de su curriculum vitae un listado de cursos realizados, los cuales se almacenan
en el archivo de enteros llamado cursos.dat. Dicho archivo tendrá información sólo de aquellos candidatos que
presenten certificados que avalen su asistencia a los cursos, por lo tanto, puede ser que existan candidatos que no se
encuentren en este archivo (cursos.dat) porque no presentan ningún certificado. Por cada candidato que registre
cursos, se agregará la siguiente información:
 En primer lugar el numero de registro del candidato (R),
 luego la cantidad de cursos que registra (N),
 y a continuación los N códigos de todos los cursos que registra
Así por ejemplo, 9843 5 101 104 302 210 502 se refiere a que el candidato registro 9843 registra 5 cursos
con los códigos 101 104 302 210 502.
Se dispone luego de otro archivo de enteros llamado puntajes.dat, con los puntajes que la empresa asigna a cada
curso. Si un curso no es de interés para la empresa, el mismo no aparecerá en el archivo. Así, por ejemplo, el archivo
puntaje.dat podría consistir de la siguiente información 302 10 104 10 103 15 502 20, donde establece
que el curso 302 vale 10 puntos, el 104 vale 10 puntos, el 103 vale 15 puntos y el 502 vale 20 puntos. Si un
curso no está en el archivo (como 101 o 210) su puntaje es 0.
Realice un programa que genere un archivo de caracteres llamado resultado.dat en el cual por cada candidato, se
guarde el número de registro, su apellido y nombre, y el puntaje total que obtiene si se suman todos los puntajes de
los cursos que ha asistido.
Obs: En este ejercicio se pondrá especial atención en que se divida el problema en subproblemas correctamente.
Recuerde hacer los ejercicios en hojas separadas, indente el código y escriba en forma clara.
Ejercicio 3: Un Instituto Meteorológico posee cuatro estaciones para medir temperaturas en una región,
ubicadas a una determinada distancia del centro de procesamiento en dirección Norte, Sur, Este y Oeste. Cada
una de estas estaciones almacena las temperaturas medidas en archivos de números reales.
Al finalizar el día, se desea realizar una comparación de temperaturas para informar el promedio de cada
estación, y cuál fue la temperatura máxima y la mínima de la región.
Por ej. NORTE.DAT= 3.5 2.9 1.4 -0.5 -2 0 3.4 10.6 15.1 18.0 12.8 8.2
<eof>
SUR.DAT= 2.5 1.8 -1.4 -2.5 -2 0.7 3.8 7.6 10.1 11.4 <eof>
ESTE.DAT= 4.5 8.5 9.2 9.5 8.2 6.3 7.0 7.6 5.1 5.0 4.8 3.2 4.2<eof>
OESTE.DAT= 4.9 6.9 7.5 9.5 11.3 13.1 9.4 9.6 6.6 6.0 4.8 4.2 <eof>
Las Temperaturas promedio son:
Estación Norte: 6.1
Estación Sur:
3.2
Estación Este: 6.4
Estación Oeste: 7.8
La temperatura máxima fue de 18.0 y la mínima de -2.5