Ir ao conteúdo

Posts recomendados

Postado

Sofri demais para resolver, consegui resolver mas estou com uma pulga atrás da orelha e sem vontade de voltar a quebrar a cabeça, vou mandar o exercicio e o código q fiz.

Segue o código:

Program b ;
Var Voto: integer; Continuar: string; cont, c1, c2, c3, c4:integer;
 Begin
	   Writeln('ESCOLHA SEU CANDIDATO A VOTAÇÃO ');
	   Writeln('1 - CARLAO'   );
	   Writeln('2 - BORRACHA' );
	   Writeln('3 - BOLSONARO');
	   Writeln('4 - BOULOS'   ); 
	   readln(Voto);       				 				 	       
	    Writeln('Deseja finalizar a votação?'); Readln(Continuar);
	      while (upcase(Continuar)) = 'NAO' do
	        Begin
	          Writeln('ESCOLHA SEU CANDIDATO A VOTAÇÃO ');
	          Writeln('1 - CARLAO'   );
	          Writeln('2 - BORRACHA' );
	          Writeln('3 - BOLSONARO');
	          Writeln('4 - BOULOS'   );
						Readln(voto);
					 If voto = 1 then
						begin
		          inc(Cont);
		          inc(c1,  cont);
		         end
		        else if voto = 2 then
		         begin
		          inc(Cont);
		          inc(c2,  cont);
		         end
		         else if voto = 3 then
		         begin
		          inc(Cont);
		          inc(c3,  cont);
		         end
		        else if voto = 4 then
		         begin
		          inc(Cont);
		          inc(c4,  cont);
		         end;
						   
						   Repeat
						      Writeln(' CARLAO    = ', c1   );
	                Writeln(' BORRACHA  = ', c2   );
	                Writeln(' BOLSONARO = ', c3   );
	                Writeln(' BOULOS    = ', c4   ); 
						     
						     
						     Writeln('Deseja continuar a votação?'); Readln(Continuar);
						    
						   Until (upcase(continuar)) = 'NAO';
						    
								 Continuar:= 'Sim'; 								
				  end;		   
	    		     
 End.

 205729390_WhatsAppImage2019-08-29at10_12_23PM.thumb.jpeg.1e3174ecf998011f5139025f1ab24f6b.jpegfile:///C:/Users/ACER/Downloads/WhatsApp%20Image%202019-08-29%20at%2010.12.23%20PM.jpeg

  • Curtir 1
Postado

@AnonymousLPH     seu código está bom , faltou zerar a variável cont ,  pois do jeito que está ele está somando os votos todos e no final a quantidade está errada , e uma melhor organização seria assim  :

Program b_votacao ;
Var 
  Voto             : integer; 
	Continuar        : string; 
	cont,c1,c2,c3,c4 : integer;
Begin
  while(upcase(Continuar)) <> 'NAO' do
  Begin
    Writeln('ESCOLHA SEU CANDIDATO A VOTAÇÃO ');
    Writeln('1 - CARLAO'   );
    Writeln('2 - BORRACHA' );
    Writeln('3 - BOLSONARO');
    Writeln('4 - BOULOS'   );
    Readln(voto);
    cont := 0;
    case voto of
    1 : begin
          inc(Cont);
          inc(c1);
        end;
    2 : begin
          inc(Cont);
          inc(c2);
        end;
    3 : begin
          inc(Cont);
          inc(c3);
        end;
    4 : begin
          inc(Cont);
          inc(c4);
        end;
    end;
    Writeln('Deseja continuar a votação sim/nao'); 
    Readln(Continuar);
  end;
  textcolor(11);
  Repeat
    Writeln(' CARLAO    --= ',c1);
    Writeln(' BORRACHA  --= ',c2);
    Writeln(' BOLSONARO --= ',c3);
    Writeln(' BOULOS    --= ',c4); 			     
    Writeln('Deseja continuar a votação  sim/nao'); 
    Readln(Continuar);
  Until (upcase(continuar)) = 'NAO';				    
End.

 

  • Membro VIP
Postado

Sobre:

10 horas atrás, devair1010 disse:

faltou zerar a variável cont

 

Zerar para quê? no código original, essa variável estava sendo usada incorretamente mesmo. No seu código, ela não está sendo utilizada. Basta apagar.

 

 

 

Sobre:

10 horas atrás, devair1010 disse:

  Repeat
    Writeln(' CARLAO    --= ',c1);
    Writeln(' BORRACHA  --= ',c2);
    Writeln(' BOLSONARO --= ',c3);
    Writeln(' BOULOS    --= ',c4); 			     
    Writeln('Deseja continuar a votação  sim/nao'); 
    Readln(Continuar);
  Until (upcase(continuar)) = 'NAO';				    

 

Para quê ficar repetindo o resultado final? Deu uma viajada aí, em @devair1010 😁

 

 

Então, para mim o enunciado também ficou um pouco confuso... cheguei a essa estrutura:

program b_votacao ;
uses
  CRT; //necessário para funcionar ClrScr e ReadKey alguns compiladores (PZim não precisa)
var
  voto        :integer;
  continuar   :string;
  c1,c2,c3,c4 :integer;
  o06pediuParaSair:boolean;
begin
o06pediuParaSair := false;
while (UpCase(continuar) <> 'NAO') do
  begin
  ClrScr;
  writeln('ESCOLHA SEU CANDIDATO A VOTAÇÃO ');
  writeln('1 - CARLAO   ');
  writeln('2 - BORRACHA ');
  writeln('3 - BOLSONARO');
  writeln('4 - BOULOS   ');
  readln(voto);
  case voto of
    1 :Inc(c1);
    2 :Inc(c2);
    3 :Inc(c3);
    4 :Inc(c4);
  end; //fim case
  writeln('Deseja continuar a votação (sim/nao)');
  readln(continuar);
  if (UpCase(continuar) = 'NAO') and (not o06pediuParaSair) then
    begin
    o06pediuParaSair := true;
    continuar := 'sim';
    end;
  end;
Textcolor(11);
writeln('');
writeln('RESULTADO DA VOTAÇÃO');
writeln(' CARLAO    --= ',c1);
writeln(' BORRACHA  --= ',c2);
writeln(' BOLSONARO --= ',c3);
writeln(' BOULOS    --= ',c4);
ReadKey();
end.

 

No caso, não vi necessidade de usar 2 laços de repetição.

 

Uma forma poderia ser assim:

program b_votacao ;
uses
  CRT; //necessário para funcionar ClrScr e ReadKey alguns compiladores (PZim não precisa)
var
  voto        :integer;
  continuar   :string;
  c1,c2,c3,c4 :integer;
  o06pediuParaSair:boolean;
begin
o06pediuParaSair := false;
while (UpCase(continuar) <> 'NAO') do
  begin
  repeat
    ClrScr;
    writeln('ESCOLHA SEU CANDIDATO A VOTAÇÃO ');
    writeln('1 - CARLAO   ');
    writeln('2 - BORRACHA ');
    writeln('3 - BOLSONARO');
    writeln('4 - BOULOS   ');
    readln(voto);
    case voto of
      1 :Inc(c1);
      2 :Inc(c2);
      3 :Inc(c3);
      4 :Inc(c4);
    end; //fim case
    if (not ((voto = 1) or (voto = 2) or (voto = 3) or (voto = 4))) then
      begin
      writeln('Voto inválido');
      ReadKey();
      end;
    until (voto = 1) or (voto = 2) or (voto = 3) or (voto = 4);
  writeln('Deseja continuar a votação (sim/nao)');
  readln(continuar);
  if (UpCase(continuar) = 'NAO') and (not o06pediuParaSair) then
    begin
    o06pediuParaSair := true;
    continuar := 'sim';
    end;
  end;
Textcolor(11);
writeln('');
writeln('RESULTADO DA VOTAÇÃO');
writeln(' CARLAO    --= ',c1);
writeln(' BORRACHA  --= ',c2);
writeln(' BOLSONARO --= ',c3);
writeln(' BOULOS    --= ',c4);
ReadKey();
end.

 

 

Ou ainda, mudando a interpretação do enunciado, poderia ser algo como:

program b_votacao ;
uses
  CRT; //necessário para funcionar ClrScr e ReadKey alguns compiladores (PZim não precisa)
var
  voto        :integer;
  continuar   :string;
  c1,c2,c3,c4 :integer;
  o06pediuParaSair:boolean;
begin
o06pediuParaSair := false;
while (not o06pediuParaSair) do
  begin
  repeat
    ClrScr;
    writeln('ESCOLHA SEU CANDIDATO A VOTAÇÃO ');
    writeln('1 - CARLAO   ');
    writeln('2 - BORRACHA ');
    writeln('3 - BOLSONARO');
    writeln('4 - BOULOS   ');
    readln(voto);
    case voto of
      1 :Inc(c1);
      2 :Inc(c2);
      3 :Inc(c3);
      4 :Inc(c4);
    end; //fim case
    if (not ((voto = 1) or (voto = 2) or (voto = 3) or (voto = 4))) then
      begin
      writeln('Voto inválido');
      ReadKey();
      end;
    until (voto = 1) or (voto = 2) or (voto = 3) or (voto = 4);
  writeln('Deseja continuar a votação (sim/nao)');
  readln(continuar);
  if (UpCase(continuar) = 'NAO') then
    begin
    writeln('Mais uma vez: Deseja continuar a votação (sim/nao), ZERO MEIA?');
    readln(continuar);
    if (UpCase(continuar) = 'NAO') then
      o06pediuParaSair := true;
    end;
  end;
Textcolor(11);
writeln('');
writeln('RESULTADO DA VOTAÇÃO');
writeln(' CARLAO    --= ',c1);
writeln(' BORRACHA  --= ',c2);
writeln(' BOLSONARO --= ',c3);
writeln(' BOULOS    --= ',c4);
ReadKey();
end.

 

Se entenderem diferente, avisa aí... pois buguei um pouco!

 

Qualquer dúvida/crítica/sugestão é só postarem.

 

 

  • Curtir 1
Postado

@Simon Viegas         eh ,  esse loop repeat já estava no código do   @AnonymousLPH   , também não vi necessidade dele não , mas no enunciado pede para usar o while e o repeat ;           Creio que poderia usar o repeat para fazer uma pausa no final  ,  tipo assim :

repeat  until keypressed ;

mesmo que se possa usar um read ou readln ou  o readkey , mas apenas para satisfazer o enunciado  .

  • Curtir 1
Postado

@AnonymousLPH    tranquilo ,  você só precisa se acostumar com os comandos ,  e no começo o que é difícil no java é saber que tipo de código fazer , pois tem vários tipos , de console , de interface , e isso precisa ser definido no inicio , na hora de criar o código , então um local onde você consegue iniciar com mais facilidade é no youtube com o professor Guanabara :

https://www.youtube.com/watch?v=ijXXaIYsVx4

ele usa uma IDE boa fácil e gratis , que é o netbeans .

  • Curtir 1
Postado

Galera, o enunciado esta confuso, Vi os códigos, estão quase lá. O enunciado pede tudo isso porém ele pede para que quando o cara vote a primeira vez e dps digite para n terminar a votação reset e ele vote novamente, como se tivesse votado errado

  • Obrigado 1

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...

Ebook grátis: Aprenda a ler resistores e capacitores!

EBOOK GRÁTIS!

CLIQUE AQUI E BAIXE AGORA MESMO!