Ir para o conteúdo

Publicidade

 Estatísticas do Fórum

  • 0 Usuários ativos

    0 membro(s), 0 visitante(s) e 0 membros anônimo(s)

Foto:

[Resolvido] Algoritmo para receber valores de triângulo

  • Por favor, faça o login para responder
Não há respostas para este tópico

#1 Will.

Will.

    Jovem Padawan

  • Membros
  • 4 posts

Postado 19 maio 2011 - 22:20

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




Publicidade

/ins>