Ir para conteúdo

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Will.

[Resolvido] Algoritmo para receber valores de triângulo

Recommended Posts

obs: já corrigi o erro, mas não tem como mudar o título do tópico. Perdão.

Solução no final do post.

Fala pessoal!

Peguei um exercício aqui que manda fazer o seguinte:

 

> Faça um algoritmo que receba os valores dos lados de um triângulo e calcule se o triângulo é escaleno (todos os lados diferentes), isósceles (dois lados iguais e um diferente), ou se é equilátero (todos os lados iguais).

 

Ficou meio confuso pra mim, mas consegui desenvolver isso:

 

Program exercicio ;
var n1, n2, n3: integer;
Begin
Writeln('Digite o valor do primeiro lado do triângulo');
Readln(n1);
Writeln('Do segundo');
Readln(n2);
Writeln('Do terceiro');
Readln(n3);

if (n1 <> n2) and (n1 <> n3) and (n2 <> n3) then
	Begin
	Writeln('O triângulo é escaleno: todos os lados são diferentes.');
	Readln;
	End
Else if (n1 = n2) or (n1 = n3) or (n2 = n3) and (n1 <> n2) or (n1 <> n3) or (n2 <> n3) then
	Begin
Writeln('O triângulo é isóscele: dois lados iguais e um diferente.');
Readln;
End
Else if (n1 = n2) and (n2 = n3) then
	Begin
Write('O triângulo é equilátero: todos os lados são iguais.');
Readln;
End;		

End.

 

Até aí tudo bem, eu fiz o teste:

 

primeiro número: 15

segundo número: 20

terceiro: 25

 

todos os lados diferentes, foi certo

 

primeiro: 20

segundo: 20

terceiro: 10

 

dois lados iguais e um diferente, foi certo...mas, quando eu coloco três iguais:

 

primeiro: 15

segundo: 15

terceiro: 15

 

ele diz que são dois lados iguais e um diferente. Alguém poderia apontar meu erro e corrigi-lo? :D

 

Agradeço,

Will.

 

Código corrigido

Program exercicio ;
var n1, n2, n3: integer;
Begin
Writeln('Digite o valor do primeiro lado do triângulo');
Readln(n1);
Writeln('Do segundo');
Readln(n2);
Writeln('Do terceiro');
Readln(n3);

if (n1 <> n2) and (n1 <> n3) and (n2 <> n3) then
//se n1 for diferente de n2 e n1 diferente de n3 e n2 diferente de n3
	Begin
	Writeln('O triângulo é escaleno: todos os lados são diferentes.');
	Readln;
	End
Else if (n1 = n2) and (n2 = n3) and (n1 = n3) then
//se n1 for igual a n2 e n2 for igual a n3 e n1 for igual a n3
	Begin
Writeln('O triângulo é equilátero: todos os lados são iguais.');
Readln;
End
Else if (n1 = n2) or (n2 = n3) and (n1 <> n2) or (n2 <> n3) then
//se n1 for igual a n2 ou n2 for igual a n3
	Begin
Writeln('O triângulo é isóscele: dois lados iguais e um diferente.');
Readln;
End;		

End.

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.