Publicidade

Entre para seguir isso  
Seguidores 0
Will.

[Resolvido] Algoritmo para receber valores de triângulo

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.

0

Compartilhar este post


Link para o post
Compartilhar em outros sites

Crie uma conta ou entre para comentar

Você precisar ser um membro 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
Entre para seguir isso  
Seguidores 0

  • Próximos Eventos

    • 0
      22 fevereiro 2017 22:00
      Até
      23 fevereiro 2017 01:30