Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- ************************************
- Corregido ayer martes 7/12 por prof.
- ************************************
- A) Implemente el TAD UrnaElectronica, cuya interface se muestra a continuación. Tener en cuenta al momento de implementar que una
- UrnaElectronica puede manejar a lo sumo 50 agrupaciones.
- TAD UrnaElectronica; type exportado urna;
- procedure CrearUrna (var u:urna; nombre: string; cant_Agrupaciones:integer)
- // Crea la urna con nombre “nombre”, los códigos de las agrupaciones enumeradas de 1 a cant_Agrupaciones y sin votos
- function cantidadAgrupacionesPosibles(u:urna): integer;
- // Retorna la cantidad de agrupaciones disponibles para votar.
- function numeroAgrupacionValida (u: urna, num: integer) : boolean;
- // Retorna si el número que ingresa como parámetro corresponde a una agrupación válida.
- procedure votarPorAgrupacion(var u: urna; num_Agrupacion: integer) ;
- // Actualiza la urna sumando 1 a la agrupación cuyo número ingresa como parámetro.
- procedure votarEnBlanco(var u:urna);
- // Actualiza la urna sumando 1 al contador de votos en blanco.
- function cantidadDeVotosEnBlanco(u:urna): integer;
- // Retorna la cantidad de votos en blanco que se emitieron.
- function cantidadDeVotosPorAgrupacion(u: urna; num_Agrupacion: integer);
- // Retorna la cantidad de votos que recibió la agrupación cuyo número ingresa como parámetro.
- B) Utilizando el TAD UrnaElectronica resolver el siguiente problema:
- La facultad de Informática va a implementar las elecciones por medio de voto electrónico. Para ello dispone de una estructura
- eficiente que representa el padrón de alumnos que cumplen las condiciones necesarias para votar en las elecciones estudiantiles
- de la facultad. De cada alumno se conoce: Número de Alumno, DNI y Apellido y Nombre. La estructura se encuentra ordena por el DNI
- del alumno.
- {Implementación}
- Implementation
- urna = record // urna es el tipo exportado.
- nombreurna:string;
- agrupaciones:vector;
- votosenblanco:integer;
- cantidaddeagrup:integer;
- end;
- vector = array [1..50] of integer // Cada posición es el código de la agrupación
- (...)
- {Programa Principal}
- program Elecciones_Ejercicio_6_Práctica17Repaso;
- uses UrnaElectronica; // nombre del TAD
- type
- arbol=^nodo_arbol;
- nodo_arbol=record
- datosalumno : padron; // Ver Nota 1)
- izq:arbol;
- der:arbol;
- end;
- padron=record
- dni:integer;
- nro_alumno:integer;
- apellido:string;
- nombre:string;
- voto:boolean;
- end;
- Nota 1)
- Según la prof. es indistinto que este DNI en el arbol, puede estar en el padron y cuando recorro el árbol, accedo directamente desde el registro (arbol^.datosalumno.dni), puesto que, esta ordenado por DNI y esta estructura ya se dispone.
- Sino otra forma también valida es:
- {Otra forma de declarar la estructura}
- (...)
- arbol=^nodo_arbol;
- nodo_arbol=record
- DNI:integer; // Esto cambia
- datosalumno:padron;
- izq:arbol;
- der:arbol;
- end;
- padron=record
- nro_alumno:integer; // Si ponemos también DNI aquí, estaría duplicado y por ende, incorrecto.
- apellido:string;
- nombre:string;
- voto:boolean;
- end;
- Las dos formas de hacerlo son válidas.
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement