Pascal/Turbo Pascal - ayua por favor!

   
Vista:

ayua por favor!

Publicado por veronica panuncio (1 intervención) el 22/10/2008 04:16:16
TAD UrnaElectronica;
type exportado urna;

procedure CrearUrna (var u:urna; nombre: string; cant_listas:integer)
// Crea la urna con nombre “nombre” y los códigos de las agrupaciones se numeran de 1 a cant_listas y sin votos

function cantidadListasPosibles(u:urna): integer;
// retorna la cantidad de listas disponibles para votar. Las listas se numeran de 1 a la cantidad

function numeroListaValida (u: urna, num: integer) : boolean;
// retorna si el numero que ingresa como parámetro corresponde a una lista valida

procedure votarPorLaLista(var u: urna; num_lista: integer) ;
// actualiza la urna sumando 1 a la lista cuyo numero 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 cantidadDeVotosPorLaLista(u: urna; num_lista: integer);
// retorna la cantidad de votos que recibió la lista cuyo numero ingresa como parámetro


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 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 ordenada por el DNI del alumno de forma ascendente.

La elección se implementará por medio de una urna electrónica. Dicha urna contabilizará los votos que cada alumno realiza para cada una de las listas que se presentan o si el alumno elige votar en blanco. Para ello se pide realizar un programa que utilizando el TAD “UrnaElectronica”:
1. Cree una Urna con una cantidad de listas que se lee.
2. Simular el proceso de llegada de los alumnos a votar. Cuando el alumno se presenta a votar ingresa su DNI y se debe controlar que el mismo sea válido (esté en el padrón) y que no haya votado aún. En caso de que todo esté correcto, se debe solicitar que el alumno ingrese la lista por la que vota o si vota en blanco. La llegada de alumnos finaliza cuando viene un alumno con DNI “0”.
3. Luego de finalizada la votación calcular e informar la lista ganadora.

Nota: Tener en cuenta que se debe registrar en el padrón si el alumno votó o no.


IMPLEMENTACION

program Elecciones;
uses UrnaElectronica;
type
alumno=record
nro:integer;
dni:string[20];
apeYnom:string[30];
voto:boolean;
end;
lista=^nodoLista;
nodoLista=record
dato:alumno;
sig:lista;
end;

var
cantL:integer;
info:urna;
padron:lista;

procedure votacion(padron:lista;info:urna);
var
dni:string[10];
pri_padron:lista;
voto_nrolista:integer;
begin
read(dni);
while(dni<>'0')do
begin
auxpadron:=padron;
while(auxpadron<>nil)and(auxpadron^.dato.dni<dni)do
auxpadron:=auxpadron^.sig;
if(auxpadron<>nil)and(auxpadron^.dato.dni=dni)then
begin
if(auxpadron^.dato.voto)then
writeln('el alumno no puede volver a votar');
else begin
while (numeroListaValida(info,voto_nrolista)do
begin
writeln('ingresar numero de lista');
read(voto_nrolista);
end;
VotarPorLista(info,nrolista);
end;
auxpadron^.dato.voto:=true;
end;
else
write('el alumno no esta en el padron');
read(dni);
end;
end;

procedure lista_ganadora(info:urna);
var
num_lista,max_vot,max_lista:integer;
begin
max_vot:=-1;
for num_lista to cantidadListasPosible(info)do
if (cantidadDeVotosPorLaLista(info,num_lista)>maz_vot)then
begin
max_vot:=cantidadDeVotosPorLaLista(info,num_lista);
max_lista:=num_lista;
end;
writeln('la lista ganadora es: ',max_lista);
end;

begin
cargarPadron(padron);
read(CantL);
CrearUrna(info,cantL);
Votacion(padron,info);
lista_ganadora(info);
end.




NECESITO RESOLVER LOS PROCEDIMIENTO DEL TAD...ALGUIEN ME AYUDA
SE LO RE AGRADECIRIA =) YA Q A MI ME CUESTANN..
SALUDOS! Y ESPERO UNA PRONTA RESPUESTA...
MUCHAS GRACIAS!
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:ayua por favor!

Publicado por UNLP (1 intervención) el 24/10/2008 00:23:49
Estima alumna:
Lamento que llegues al extremo de pedir ayuda en un foro de programación, la faculta de de informática hoy en día brinda todos los recursos necesarios como para poder resolver este tipo de problemas, no solo los ayudantes de cátedra, y los profesores pueden ayudarte, sino que también hemos puesto a su disposición la plataforma http://webunlp.unlp.edu.ar. A decir verdad es una decepción para nosotros que una alumna llegue a este punto.
Te invito a que reflexiones sobre esto. y te plantees si realmente en la facultad estas encontrando lo que realmente necesitas.

Saludos Cordiales.

Alejandro González.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar