Tirando a dúvida do leitor Paulo Vitor sobre o programa em Pascal:
"Este trabalho consiste no desenvolvimento de um programa que fará uma pesquisa sobre as eleições para presidente do Brasil que ocorrerão neste ano.O programa devera ler as respostas dadas por um numero indeterminado de eleitores.Para cada eleitor serão lidos:
Em qual candidato votara em presidente.
1.Jose Serra. 2. Dilma Rousseff. 3. Marina Silva.
A opinião sobre os 8 anos do governo Lula:
1.Ótimo. 4.Ruim.
2.Bom. 5.Péssimo.
3.Regular.
O fim dos dados é indicado por um valor de candidato q não esteja no intervalo de 1 a 3.
Sendo fornecidos esses dados , faça um programa que calcule:
*Numero de eleitores que responderam as questões .
*A porcentagem de eleitores satisfeitos com o governo Lula(resposta =Ótimo e Bom).
*A porcentagem de eleitores como regular o governo Lula.
Um exemplo da execução do programa :
Voto: 1
"BORDER-BOTTOM: medium none; BORDER-LEFT: medium none; PADDING-BOTTOM: 0cm; PADDING-LEFT: 0cm; PADDING-RIGHT: 0cm; BORDER-TOP: medium none; BORDER-RIGHT: medium none; PADDING-TOP: 0cm" class="MsoNormal"> Opinião: 5
Voto: 3
Opinião: 2
..............
Voto : 87
Opinião: 3
Resultados
Total de eleitores consultados: 87.
Porcentagem de eleitores satisfeitos com Lula: 87.00%
Porcentagem de eleitores que responderam como regular: 7.00%
Porcentagem de eleitores insatisfeitos com Lula: 6.00%
O vencedor foi : Dilma com 37.93 dos votos
O segundo colocado foi : Jose Serra com 33.33 dos votos
O terceiro colocado foi: Marina Silva"
Vamos ao Programa:

Código Fonte:
Program Eleicoes_2010;
Uses Crt;
var
vj,vd,vm,vt : Integer; //vj=voto jose vd=dilma vm=marina vt=total
pj,pd,pm : Real;
o1,o2,o3,o4,o5, ot: Integer; // o1=otimo o2=bom... ot=total
p12,p3,p45 : Real;
voto : Integer;
opiniao : Byte;
begin
vj := 0;
vd := 0;
vm := 0;
o1 := 0; o2 := 0; o3 := 0; o4 := 0; o5 := 0;
repeat
ClrScr;
WriteLn ('Pesquisa Eleicoes 2010');
WriteLn;
WriteLn ('1. Jose Serra');
WriteLn ('2. Dilma Rousseff');
WriteLn ('3. Marina Silva');
WriteLn;
WriteLn (' Outro numero para sair ');
Write ('Voto para eleicao :'); ReadLn(voto);
WriteLn;
// soh pede opiniao se votou
if (voto>=1) and (voto<=3) then
begin
if voto=1 then vj := vj + 1
else
if voto=2 then vd := vd + 1
else
vm := vm + 1;
WriteLn ('Opiniao sobre o Governo Lula (8 anos):');
WriteLn ('1.Otimo 2.Bom 3.Regular 4.Ruim 5.Pessimo');
ReadLn (Opiniao);
case Opiniao of
1 : o1 := o1 + 1;
2 : o2 := o2 + 1;
3 : o3 := o3 + 1;
4 : o4 := o4 + 1;
5 : o5 := o5 + 1;
end;
end;
until ((voto<1) or (voto>3)) and ((vj>0)or(vd>0)or(vm>0));
//totais
vt := vj+vd+vm;
ot := o1+o2+o3+o4+o5;
// porcentagens
pj := (vj/vt)*100;
pd := (vd/vt)*100;
pm := (vm/vt)*100;
p12 := ((o1+o2)/ot)*100;
p3 := (o3/ot)*100;
p45 := ((o4+o5)/ot)*100;
ClrScr;
WriteLn ('Resultado da Pesquisa Eleicoes 2010');
WriteLn;
// Serra
if (pj>pd) and (pj>pm) then
begin
WriteLn ('Vencedor foi: Jose Serra :',pj:6:2);
if pd>pm then
begin
WriteLn ('O segundo colocado foi: Dilma Rousseff :',pd:6:2);
WriteLn ('O terceiro colocado foi: Marina Silva :',pm:6:2);
end
else
begin
WriteLn ('O segundo colocado foi: Marina Silva :',pm:6:2);
WriteLn ('O terceiro colocado foi: Dilma Rousseff :',pd:6:2);
end;
end;
// Dilma
if (pd>pj) and (pd>pm) then
begin
WriteLn ('Vencedor foi: Dilma Rousseff :',pd:6:2);
if pj>pm then
begin
WriteLn ('O segundo colocado foi: Jose Serra :',pj:6:2);
WriteLn ('O terceiro colocado foi: Marina Silva :',pm:6:2);
end
else
begin
WriteLn ('O segundo colocado foi: Marina Silva :',pm:6:2);
WriteLn ('O terceiro colocado foi: Jose Serra :',pj:6:2);
end;
end;
// Marina
if (pm>pj) and (pm>pd) then
begin
WriteLn ('Vencedor foi: Marina Silva :',pm:6:2);
if pd>pj then
begin
WriteLn ('O segundo colocado foi: Dilma Rousseff :',pd:6:2);
WriteLn ('O terceiro colocado foi: Jose Serra :',pj:6:2);
end
else
begin
WriteLn ('O segundo colocado foi: Jose Serra :',pj:6:2);
WriteLn ('O terceiro colocado foi: Dilma Rousseff :',pd:6:2);
end;
end;
WriteLn (' Total de Votos :',vt);
WriteLn;
WriteLn ('Avaliacao de Governo:');
WriteLn;
WriteLn (' Satisfeitos : ',p12:6:2);
WriteLn (' Regular : ',p3:6:2);
WriteLn (' Insatisfeitos : ',p45:6:2);
WriteLn;
Write ('Aperte uma tecla para encerrar');
ReadLn;
End.