Ir ao conteúdo

Problema com algoritmo no VisuAlg


Ankur Prem

Posts recomendados

Postado

Olá galera,

Estou inserindo um algoritmo no VisuAlg que me parece realmente certo, contudo o programa não roda da forma esperada.

Segue o enunciado do problema:

Dados 3 valores A, B e C, verificar se eles podem ser os comprimentos dos lados de um triângulo e, se forem, verificar se compõem um triângulo eqüilátero, isósceles ou escaleno. Informar se não compuserem nenhum triângulo.

O que é um triângulo?

R: Figura geométrica de 3 lados, onde cada um é menor do que a soma dos outros dois

O que é um triângulo eqüilátero? R. Um triângulo com 3 lados iguais.

O que é um triângulo isóscele? R. Um triângulo com 2 lados iguais.

O que é um triângulo escaleno? Um triângulo com todos os lados diferentes.

Agora, o algoritmo que elaborei:


algoritmo "semnome"
//Dados 3 valores A, B e C, verificar se eles podem ser os comprimentos dos
//lados de um triângulo e, se forem, verificar se compõem um triângulo
//eqüilátero, isósceles ou escaleno. Informar se não compuserem nenhum
//triângulo.
var
l1, l2, l3: real
validade: logico
inicio
escreva ("Insira o lado 1 do triângulo: ")
leia (l1)
escreva ("Insira o lado 2 do triângulo: ")
leia (l2)
escreva ("Insira o lado 3 do triângulo: ")
leia (l3)

se (l1 < (l2 + l3)) e (l2 < (l1 + l3)) e (l3 < (l1 + l2)) então
validade <- VERDADEIRO
senao
validade <- FALSO
fimse

se (validade = VERDADEIRO) então
se (l1 = l2) e (l1 = l3) e (l2 = l3) então
escreva ("Triângulo equilátero")
fimse
se (l1 <> l2) xou (l1 <> l3) xou (l2 <> l3) então
escreva ("Triângulo isóceles")
fimse
se (l1 <> l2) e (l1 <> l3) e (l2 <> l3) então
escreva ("Triângulo escaleno")
fimse
senao
escreva ("Não é um triângulo")
fimse

fimalgoritmo

O que acontece:

- se as medidas não formam um triângulo, ok, a mensagem correta é retornada.

- se é um triângulo equilátero, também ok, a mensagem correta é retornada.

- se é um triângulo isóceles, nada aparece!

- se é um triângulo escaleno, aparece as mensagens tanto do isóceles como do escaleno.

E ai meus caros, o que acham? Pra mim o algoritmo está ok!

Caso resolvido!

O problema é realmente do algoritmo...

Vejam:

No caso de um triângulo isóceles, aonde...

l1=5

l2=5

l3=3

... não somente o l1 é diferente do l3, mas o l2 também é diferente do l3!

Como o XOU é excludente, ele retorna como FALSO ao encontrar duas proposições verdadeiras.

O erro é de lógica: apenas um dos lados é diferente, mas ele é diferente dos outros dois lados!

Ah, e quem se interessar pela solução:


//Dados 3 valores A, B e C, verificar se eles podem ser os comprimentos dos
//lados de um triângulo e, se forem, verificar se compõem um triângulo
//eqüilátero, isósceles ou escaleno. Informar se não compuserem nenhum
//triângulo.
var
l1, l2, l3: real
validade: logico
inicio
escreva ("Insira o lado 1 do triângulo: ")
leia (l1)
escreva ("Insira o lado 2 do triângulo: ")
leia (l2)
escreva ("Insira o lado 3 do triângulo: ")
leia (l3)

se (l1 < (l2 + l3)) e (l2 < (l1 + l3)) e (l3 < (l1 + l2)) então
validade <- VERDADEIRO
senao
validade <- FALSO
fimse

se (validade = VERDADEIRO) então
se (l1 = l2) e (l1 = l3) e (l2 = l3) então
escreva ("Triângulo equilátero")
fimse
se ((l1 = l2) e (l1 <> l3)) xou ((l1 = l3) e (l1 <> l2)) xou ((l2 = l3) e (l2 <> l1)) então
escreva ("Triângulo isóceles")
fimse
se (l1 <> l2) e (l1 <> l3) e (l2 <> l3) então
escreva ("Triângulo escaleno")
fimse
senao
escreva ("Não é um triângulo")
fimse

fimalgoritmo
algoritmo "semnome"

  • Moderador
Postado

Caso o autor do tópico necessite, o mesmo será reaberto, para isso deverá entrar em contato com a moderação solicitando o desbloqueio.

Arquivado

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

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

LANÇAMENTO!

eletronica2025-popup.jpg


CLIQUE AQUI E BAIXE AGORA MESMO!