Está en la página 1de 11

Dados el nombre del punto de votación y la cantidad de votos obtenidos por cuatro

candidatos (A, B, C y D) al centro de estudiantes, en cada uno de los puntos de


votación. Realice un programa en Pascal usando módulos que:
1. Determine si hay un ganador y quien es; en la elección hay un ganador sí y sólo
si alcanza más del 50% de los votos.
2. Si ningún candidato recibe más del 50% de los votos, el programa debe indicar
cuáles son los dos candidatos con más votos que irán a la segunda vuelta.
3. El punto de votación en el que cada candidato recibió más votos.

Program examen;
var
i,CandidatoA, CandidatoB, CandidatoC, CandidatoD,n,m:integer;
procedure entrada (var  CandidatoA, CandidatoB, CandidatoC, CandidatoD,m:integer );
var A,B,C,D,centro: integer;
begin 
write('indique el numero de votantes por el candidato A');
readln(A);
write('indique el numero de votantes por el candidato B');
readln(B);
write('indique el numero de votantes por el candidato C');
readln(C);
write('indique el numero de votantes por el candidato D');
readln(D);
centro:=0;
CandidatoA:=CandidatoA + A;CandidatoB:=CandidatoB + B;CandidatoC:=CandidatoC
+ C; CandidatoD:=CandidatoD + D;
if(centro<A+B+C+D) then
m:=i;
centro:=A+B+C+D;
end;
Procedure ganador( var  CandidatoA, CandidatoB, CandidatoC, acumD:integer);
var
total,k1,k2:integer;
mitad:real;
victoria1,victoria2:char; 
begin
total:= CandidatoA+ CandidatoB+CandidatoC+ acumD;
mitad:=total/2;
k1:=CandidatoA;
victoria1:='A';
if(CandidatoB>k1) then
begin
victoria2:=victoria1; victoria1:='B'; 
k2:=k1;
k1:=CandidatoB;
end else
begin
k2:=CandidatoB;
victoria2:='B';
end;
if(CandidatoC>k1) then
begin
victoria2:=victoria1; victoria1:='C'; 
k2:=k1;
k1:=CandidatoC;
end else if (CandidatoC>k2) then
begin
k2:=CandidatoC;
victoria2:='C';
end;
if (CandidatoD>k1) then
begin
victoria2:=victoria1; victoria1:='D';
k2:=k1;
k1:=CandidatoD;
end else if (CandidatoC>k2) then
begin
k2:= CandidatoD;
victoria2:='D';
end;
if(k1>mitad)then
writeln(' hay un unico ganador el ', victoria1, ' con ', k1 ,' votos')
else 
writeln('las elecciones se van a segunda vuelta, entre los candidatos ', victoria1 ,' con
',k1,' votos y ', victoria2,' con ',k1,' votos');
end;
begin{principal}
write ('indique el numero del centros de votacion');
readln(n);
CandidatoA:=0; CandidatoB:=0; CandidatoC:=0; CandidatoD:=0;
m:=0;
for i:=1 to n do
begin
writeln('centro de votacion num ',i);
entrada (CandidatoA, CandidatoB, CandidatoC, CandidatoD,m);
end;
ganador(CandidatoA, CandidatoB, CandidatoC, CandidatoD);
writeln('el centro de votacion con mas voto es el num ', m);
read()
end.
Escribir un programa en Pascal mediante uso de funciones que permita calcular el
valor de  mediante, donde x es un número real y n es un número natural.

program Cosh;
var
valor:real;
i,maximo:integer;
function pot(m:integer;n:real):real;
var i:integer;
begin
pot:=1;
for i:=1 to 2*m do  
pot:= pot*n;
end;
function factorial(m:integer):real;
var i:integer;
begin
factorial:=1;
for i:=1 to 2*m do
factorial:= factorial*i;
end;
function suma(valor:real;maximo:integer):real;
begin
suma:=0;
for i:=0 to maximo do
suma:=(pot(i,valor)/factorial(i))+suma;
end;
begin
write('indique el valor maximo de la serie ');
readln(maximo);
write('indique el valor a evaluar');
readln(valor);
write('el resultado es ',suma(valor,maximo));
read();
end.

program elecciones;

Uses crt;

type

vector = array [1..20] of integer;

nombre = array [1..5] of string;

Var

B:nombre;

C1,C2,C3,C4,C5,M:vector;

i,j,k,centro,aux,max,n:integer;

medio:real;
aux1:string;

begin

for i:=1 to 5 do

begin

writeln('introduzca el nombre del candidato num ',i);

readln(B[i]);

end;

writeln('indique el num de centros de votaciones');

readln(k);

for i:=1 to k do

begin

write('indique el numero de votantes por el candidato ',B[1]);

readln(C1[i]);

write('indique el numero de votantes por el candidato ',B[2]);

readln(C2[i]);

write('indique el numero de votantes por el candidato ',B[3]);

readln(C3[i]);

write('indique el numero de votantes por el candidato ',B[4]);

readln(C4[i]);

write('indique el numero de votantes por el candidato ',B[5]);

readln(C5[i]);

centro:=0;

if(centro<C1[i]+C2[i]+C3[i]+C4[i]+C5[i]) then

begin
n:=i;

centro:=C1[i]+C2[i]+C3[i]+C4[i]+C5[i];

end

end;

for i:=1 to k do

M[i]:=0;

for i:=1 to k do

begin

M[1]:=C1[i]+M[1];

M[2]:=C2[i]+M[2];

M[3]:=C3[i]+M[3];

M[4]:=C4[i]+M[4];

M[5]:=C5[i]+M[5];

end;

for i:=1 to 5-1 do

for j:=i+1 to 5+1 do

begin

if M[i] > M[j] then

begin

aux:=M[i];

M[i]:=M[j];

M[j]:=aux;

aux1:=B[i];
B[i]:=B[j];

B[j]:=aux1;

end

end;

writeln('resultados: ');

for i:=1 to 5 do

Writeln(B[i], ' con ',M[i], ' votos');

max:=M[1]+M[2]+M[3]+M[4]+M[5];

medio:=max/2;

if(M[1]>medio) then

writeln('el ganador es: ',M[1])

else

write('como ningun candidato obtuvo mas del 50% se va a segunda ronda entre los dos con mayor
votacion');

writeln('el centro con mayor cantidad de votacion es ',n)

end.

Moises

program votaciones;

Uses crt;

type

vector = array [1..20] of integer;

nombre = array [1..5] of string;

Var
B:nombre;

candidato1,candidato2,candidato3,candidato4,candidato5,cuenta:vector;

i,j,k,centro,aux,max,n:integer;

medio:real;

aux1:string;

begin

for i:=1 to k do

cuenta[i]:=0;

for i:=1 to 5 do

begin

writeln('introduzca el nombre del candidato num ',i);

readln(B[i]);

end;

writeln('indique el num de centros de votaciones');

readln(k);

for i:=1 to k do

begin

write('indique el numero de votantes por el candidato ',B[1]);

readln(candidato1[i]);

cuenta[1]:=candidato1[i]+cuenta[1];

write('indique el numero de votantes por el candidato ',B[2]);

readln(candidato2[i]);

cuenta[2]:=candidato2[i]+cuenta[2];

write('indique el numero de votantes por el candidato ',B[3]);


readln(candidato3[i]);

cuenta[3]:=candidato3[i]+cuenta[3];

write('indique el numero de votantes por el candidato ',B[4]);

readln(candidato4[i]);

cuenta[4]:=candidato4[i]+cuenta[4];

write('indique el numero de votantes por el candidato ',B[5]);

readln(candidato5[i]);

cuenta[5]:=candidato5[i]+cuenta[5];

centro:=0;

if(centro<candidato1[i]+candidato2[i]+candidato3[i]+candidato4[i]+candidato5[i]) then

begin

n:=i;

centro:=candidato1[i]+candidato2[i]+candidato3[i]+candidato4[i]+candidato5[i];

end

end;

for i:=1 to 5-1 do

for j:=i+1 to 5+1 do

begin

if cuenta[i] > cuenta[j] then

begin

aux:=cuenta[i];

cuenta[i]:=cuenta[j];

cuenta[j]:=aux;

aux1:=B[i];
B[i]:=B[j];

B[j]:=aux1;

end

end;

writeln('resultados: ');

for i:=1 to 5 do

Writeln(B[i], ' con ',cuenta[i], ' votos');

max:=cuenta[1]+cuenta[2]+cuenta[3]+cuenta[4]+cuenta[5];

medio:=max/2;

if(cuenta[1]>medio) then

writeln('el ganador es: ',cuenta[1])

else

write('como ningun candidato obtuvo mas del 50% se va a segunda ronda entre los dos con mayor
votacion');

writeln('el centro de votaciones con mayor cantidad de votacion es ',n)

end.

También podría gustarte