- 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.
Nenhum comentário:
Postar um comentário