- 10. Faça um programa que recebe os três lados de um triângulo e diz se é equilátero, isósceles ou escaleno.
Tipos de triângulo em C++
Existem três tipos de triângulo:- Equilátero: todos os lados são iguais
- Isósceles: apenas dois lados são iguais
- Escaleno: todos os lados são diferentes
Então tudo que temos que fazer é pedir três lados de um triângulo, e sair testando se os lados são todos iguais, ou tem dois iguais ou se é tudo diferente.
Uma maneira de fazer é testando se é tudo igual em um IF, pra saber se é equilátero:
- if( (a==b) && (b==c) )
Depois se são todos diferentes, pra saber se é escaleno:
- if( (a!=b) && (a!=c) && (b!=c) )
Se não for nenhuma das alternativas acima, é porque ele é isósceles.
Nosso código fica assim:
#include <iostream> using namespace std; int main() { int a, b, c; cout << "Lado a: "; cin >> a; cout << "Lado b: "; cin >> b; cout << "Lado c: "; cin >> c; if( (a==b) && (b==c) ) cout<<"Equilátero\n"; else if( (a!=b) && (a!=c) && (b!=c)) cout<<"Escaleno\n"; else cout<<"Isósceles\n"; }
Equilátero, Isósceles ou Escaleno ?
Uma coisa interessante sobre a programação é que o código é uma espécie de impressão digital.Cada um faz do seu jeito, cada um tem seus métodos, linhas de raciocínio e criatividade.
As vezes é comum fazermos um código grande, feio e confuso.
Depois, vemos alguém usando metade das linhas que usamos, fazendo algo bem mais bonito e abrangente.
Por isso a importância de estudar por livros, sites, tutoriais e códigos de outras pessoas, pra 'pegar' o raciocínio dos outros. Nunca perca esse costume, ok?
Vamos para mais uma solução.
Primeiro, vamos testar se tem dois lados iguais:
- (a==b) || (a==c) || (b==c)
Se tiver, das duas uma: ou é equilátero ou só isósceles.
Então, testamos se os três lados são iguais:
- (a==b) && (b==c)
Se for, dizemos que é equilátero. Senão, cai no ELSE aninhado e dizemos que é isósceles.
Se não tiver pelo menos dois lados iguais, é escaleno.
Veja:
#include <iostream> using namespace std; int main() { int a, b, c; cout << "Lado a: "; cin >> a; cout << "Lado b: "; cin >> b; cout << "Lado c: "; cin >> c; if( (a==b) || (a==c) || (b==c)) if( (a==b)&&(b==c) ) cout<<"Equilátero\n"; else cout<<"Isósceles\n"; else cout<<"Escaleno\n"; }
Teste hacker C++
Hacker é aquele que acha brechas, erros, problemas em códigos.
Tem um problema no código acima: as condições de existência de um triângulo.
Não é só digitar três valores e temos um triângulo, não.
Pesquise sobre as condições de existência de um triângulo, e antes de decidir se é equilátero, isósceles ou escaleno, veja se o triângulo pode sequer existir.
Poste seu código nos comentários.
/*
ResponderExcluirFaça um programa que recebe os três lados de um triângulo
e diz se é equilátero, isósceles ou escaleno.
*/
#include
using namespace std;
int main()
{
unsigned int a, b, c;
cout << "\nLado A: ";
cin >> a;
cout << "\nLado B: ";
cin >> b;
cout << "\nLado C: ";
cin >> c;
if((a + b <= c) || (a + c <= b ) || (b + c <= a))
cout << "\nNao e um triangulo.";
else if ((a == b) && (a == b) && (b == c))
cout << "\nTriangulo equilatero.";
else if((a == b ) || (a == c) || (b == c)){
cout << "\nTriangulo isosceles.";
}else
cout << "\nTriangulo escaleno.";
return 0;
}
algoritmo "Triangulos"
ResponderExcluirvar
L1, L2, L3: Real
EQ, ES, IS: Logico
inicio
Escreva("Digite o primeiro lado: ")
Leia(L1)
Escreva("Digite o segundo lado: ")
Leia(L2)
Escreva("Digite o terceiro lado: ")
Leia(L3)
EQ <- (L1 = L2) e (L2 = L3)
ES <- (L1 <> L2) e (L2 <> L3) e (L1 <> L3)
IS <- (EQ <> Verdadeiro) e (ES <> Verdadeiro)
Escreval ("O triangulo é EQUILATERO? ", EQ)
Escreval ("O triangulo é ESCALENO? ", ES)
Escreval ("O triangulo é ISÓSCELES?", IS)
fimalgoritmo
algoritmo "Triangulos"
ResponderExcluirvar
L1, L2, L3: Real
EQ, ES, IS: Logico
inicio
Escreva("Digite o primeiro lado: ")
Leia(L1)
Escreva("Digite o segundo lado: ")
Leia(L2)
Escreva("Digite o terceiro lado: ")
Leia(L3)
EQ <- (L1 = L2) e (L2 = L3)
ES <- (L1 <> L2) e (L2 <> L3) e (L1 <> L3)
IS <- (EQ <> Verdadeiro) e (ES <> Verdadeiro)
Escreval ("O triangulo é EQUILATERO? ", EQ)
Escreval ("O triangulo é ESCALENO? ", ES)
Escreval ("O triangulo é ISÓSCELES?", IS)
fimalgoritmo