Ir ao conteúdo

Posts recomendados

Postado
Program exercicio_4 ;
VAR
ALTURA, BASE, INDICE : INTEGER;
AREA, cont : REAL;

Begin
	 clrscr;
	 area := 1;
	 INDICE := INDICE+1;
   REPEAT
   WRITE('DIGITE A BASE');
   read(BASE);
   WRITE('DIGITE A ALTURA');
   READ(ALTURA);
   cont := BASE*ALTURA/2;
   WRITELN('AREA = ', indice:0:2);
   until(INDICE >6);
   readln;
  
End.

queria saber como arrumar o erro com o calculo, sempre a resposta é 1,00 independente do numero digitado

  • Amei 1
Postado

@flávio pedroza obrigado, funcionou agora.

program exercicio_4 ;
var
altura, base, indice, s, n : integer;
area, cont : real;

begin
	 clrscr;
	 area := +1;
	 indice := indice+1;
   repeat
   write('digite a base');
   read(base);
   write('digite a altura');
   read(altura);
   area := (base*altura) / 2.0;
   writeln('area = ', area:0:2);
   until(indice >6);
   writeln('deseja continuar (s/n)');
  
end.

 

Agora preciso limitar a repetição em 6 vezes apenas, tem alguma dica de como posso fazer isso?

  • Curtir 1
  • Membro VIP
Postado

@HUNTER020,

 

 

Para uma melhor referência, seu código apenas reindentado:

program exercicio_4;
var
   altura, base, indice, s, n : integer;
   area, cont : real;
begin
   ClrScr;
   area := +1;
   indice := indice+1;
   repeat
      write('digite a base');
      read(base);
      write('digite a altura');
      read(altura);
      area := (base*altura) / 2.0;
      writeln('area = ', area:0:2);
   until (indice >6);
   writeln('Deseja continuar (s/n)');
end.

 

Em relação a esse código temos alguns pontos iniciais em relação a sintaxe do Pascal:

  1. Você declarou as variáveis s e n, mas não está utilizando elas. Remova elas da declaração;
  2. Em vez de read(), utilize apenas readln(). Coloque lá o "ln" nos 2 comandos;

 

Em relação a lógica em si e ao que você que fazer:

Em 24/05/2019 às 21:31, HUNTER020 disse:

Agora preciso limitar a repetição em 6 vezes apenas, tem alguma dica de como posso fazer isso?

 

  1. Essa instrução na segunda linha (area := +1;) após o begin principal não tem utilidade. Basta removê-la;
  2. Como você está utilizando a variável indice como parâmetro para o until, é necessário que essa variável se altere em algum momento durante os laços de repetições. Resumidamente coloque a linha indice := indice+1; dentro do repeat, ou seja, a cada loop vai atualizar esse valor...
  3. Se você quer repetir 6 vezes, o correto seria ">=6" lá no until, utilizando ">6" vai repetir 7 vezes.
  4. Remova a penúltima linha. Ela não tem utilidade. (além disso faltou a "?"; ela deveria ficar dentro do repeat; e faltou ler a resposta). Mas de qualquer sorte, como você mesmo definiu, quem vai controlar o repeat é a quantidade de loops, que está sendo "contado" na variável indice. (e não uma resposta dessa pergunta).

 

Sugiro corrigir esses 6 pontos. Após, poste o código completo para reanalisarmos.

 

No aguardo.

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

GRÁTIS: ebook Redes Wi-Fi – 2ª Edição

EBOOK GRÁTIS!

CLIQUE AQUI E BAIXE AGORA MESMO!