Ir ao conteúdo
  • Cadastre-se

Pascal/Delphi Código para trabalho universitário


Posts recomendados

program Eleicao;
var 
  x , n
begin
cd1 := 0;
cd2 := 0;
cd3 := 0;
cd4 := 0;
for i=1 to N do
  begin
  writeln('Para votar no candidato 1 digite -1');
  writeln('Para votar no candidato 2 digite -2');
  writeln('Para votar no candidato 3 digite -3');
  writeln('Para votar no candidato 4 digite -4'); 
  readln(x);
  if (x = '1') then
    cd1:= cd1+1
  else if (x = '2') then
    cd2 := cd2+1
  else if (x = '3') then
    cd3 := cd3+1
  else if (x ='4')then
    cd4 := cd4+1 ;
end.

 

Em uma eleição presidencial existem quatro candidatos e x eleitores. Os votos são informados através de códigos. Os dados utilizados para a contagem dos votos obedecem à seguinte codificação:

 

  • 1, 2, 3, 4 = voto para os respectivos candidatos;
  • 5 = voto nulo;
  • 6 = voto em branco;

 

Elabore um programa que leia o código do candidato em um voto. Calcule e escreva:

  • - total de votos para cada candidato;
  • - total de votos nulos;
  • - total de votos em branco;
  • - ganhador da eleição - último candidato da eleição
  • - diferença de percentual de votos entre o primeiro e o último candidato

 

Gostaria de saber como faço o for = 1 to X do pois n sei já que n tem critério de parada e também como apresentar o maior e menor dos 4 candidatos 

 

Att, João 

  • Curtir 1
Link para o comentário
Compartilhar em outros sites

@Joao didy

 

uses
  SysUtils; // necessário para converter de inteiro para string


{var x , N  // Necessário declarar o tipo de variávle}

var
  Candidatos : array[1..6] of integer;
  Eleitores : integer;
  i : integer;

  Valido : Boolean;

  x  : integer;

Begin
 {os candidatos não foram declarados
  cd1:=0;
  cd2:=0;
  cd3:=0;
  cd4:=0;
  }

// inicializando a pontuação dos candidatos
for i := low(candidatos) to high(candidatos) do
candidatos[i] := 0;

  writeln('Informe o número de eleitores:');
  Readln(Eleitores);


{for i=1 to N do
// sintaxe errada: i=1, use i:=1
// variável "i" não declarada
// variável N não foi inicializada, portanto ela pode assumir qualquer valor}

  writeln('Para votar no candidato 1 digite -1');
  writeln('Para votar no candidato 2 digite -2');
  writeln('Para votar no candidato 3 digite -3');
	writeln('Para votar no candidato 4 digite -4');

for i := 1 to Eleitores do // percorrer o número de eleitores
Begin
    Repeat // verificar se o eleitor digiou um voto válido
    	readln(x);

	{if (x='1')then // '1' é do tipo string, incompatível com o tipo inteiro
  cd1:= cd1+1;  // o correto seria
               //  if (x=1) then
                aqui você poderia usar:
               // case x of
               // 1: inc(cd1);
               // 2: cd2 := cd2+1;
               // end;
  }

     Valido := (x >= low(candidatos)) and (x <= high(candidatos));
  // low(candidatos) = o menor valor aceito para o array candidatos
  // high(candidatos) = o maior valor aceito para o array candidatos
  // se x, estiver entre o menor e o maior valor aceito, então a variável valido = true;
  // isso é a mesma coisa que escrever:
  //if (x >= 1) and (x <= 6) then valido := true else valido := false;




  if Valido then
  begin
      inc(candidatos[x]); // computa o voto
      writeln('Voto computado');
  end
  else
     writeln('Voto inválido, tente novamente');

until Valido; // se o valido = true, então continua a votação, se ele não for, volta no REPEAT



end; // end, laço: eleitores

writeln('Resultado:');
for i := low(candidatos) to 4 do
writeln('       Candidato '+inttostr(i)+': '+inttostr(candidatos[i])); // converter de inteiro para string

writeln('       Votos nulo: '+inttostr(candidatos[5]));
writeln('       Votos em branco: '+inttostr(candidatos[6]));



Readln;


//gostaria de saber como faço o for = 1 to X do pois n sei já que n tem critério de parada
//  o criterio de parada não é o numero de eleitores?
//  se não tiver criterio, você pode usar o WHILE

//e também como apresentar o maior e menor dos 4 candidatos
// crie uma variavel,Candidato_Maior e Candidato_Menor, percorra um laço For entre os candidatos e verifique se ele tem uma pontuação maior do que a do candidato



End.

Fique à vontade para perguntar!

  • Curtir 2
Link para o comentário
Compartilhar em outros sites

Crie uma conta ou entre para comentar

Você precisa ser um usuário para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar agora

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...