Ajude nosso projeto a se manter online.

Triângulo Equilátero, Isósceles ou Escaleno? Exercício de C++

Neste tutorial de C++, vamos resolver a seguinte questão de nossa lista de exercícios:

  • 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:

  1. Equilátero: todos os lados são iguais
  2. Isósceles: apenas dois lados são iguais
  3. 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