Dados tres valores positivos determinar si éstos no forman triángulo o si forman triángulo, decir si éste es: equilátero, isósceles o escaleno y obtener el área del triángulo.

#include <iostream>
// se incluye la clase Triangulo para despues llamar a sus metodos
#include "Triangulo.h"
using namespace std;
int main(void)
{
float a,b,c;
// se crea un objeto de la clase Triangulo (Instanciaciación)
Triangulo *obj=new Triangulo();
cout << "====INTRODUZCA LAS LONGITUDES DEL TRIANGULO====" << endl << endl;
// se pide el primer valor
cout << "Digite longitud A:" << endl;
cout << ">> ";
cin >> a;
// se encapsula la variable a
obj->setValorA(a);
// se pide el segundo valor
cout << "Digite longitud B" << endl;
cout << ">> ";
cin >> b;
// se encapsula la variable b
obj->setValorB(b);
// se pide el tercer valor
cout << "Digite longitud C" << endl;
cout << ">> ";
cin >> c;
// se encapsula la variable c
obj->setValorC(c);
cout << endl;
if (((a+b) > c) && ((a+c) > b) && ((b+c) > a))
{
if ((a == b) && (b == c))
{
cout << "El triangulo es Equilatero." << endl << endl;
}
else if (((a == b) && (a != c)) || ((a == c) && (c != b)) || ((b == c)&& (c != a)) || ((c == a) && (a != b)))
{
cout << "El triangulo es Isoceles." << endl << endl;
}
else
{
cout << "El triangulo es Escaleno." << endl << endl;
}
// se muestra el area del triangulo
cout << "El area del triangulo es: " << obj->area() << endl;
}
else
{
cout << "Las longitudes no forman un triangulo" << endl;
}
}
#ifndef TRIANGULO_H
#define TRIANGULO_H
class Triangulo
{
public:
Triangulo();
virtual ~Triangulo();
// se declaran los metodos publicos
void setValorA(float dat);
float getValorA();
void setValorB(float dat);
float getValorB();
void setValorC(float dat);
float getValorC();
float area();
protected:
private:
// se declaran los atributos privados
float l1;
float l2;
float l3;
};
#endif // TRIANGULO_H
#include "Triangulo.h"
#include "math.h"
Triangulo::Triangulo()
{
// al inicializar el constructor se definiran los valores iniciales de los atributos
l1 = 0;
l2 = 0;
l3 = 0;
}
Triangulo::~Triangulo()
{
//dtor
}
void Triangulo::setValorA(float dat)
{
l1 = dat;
}
float Triangulo::getValorA()
{
return l1;
}
void Triangulo::setValorB(float dat)
{
l2 = dat;
}
float Triangulo::getValorB()
{
return l2;
}
void Triangulo::setValorC(float dat)
{
l3 = dat;
}
float Triangulo::getValorC()
{
return l3;
}
float Triangulo::area()
{
// declaramos una variable que almacena el semiperimetro del triangulo para poder utilizar los lados para obtener el area
float s = (val1 + val2 + val3)/2;
// se utiliza la formula de heron para calcular el area
float area= sqrt(s*(s-val1)*(s-val2)*(s-val3));
// retornamos el resultado
return area;
}
// se importa paquete JOptionPane para dibujar un cuadro de dialogo en pantalla
// que muestre información o para llenar información
import javax.swing.JOptionPane;
public class Main
{
public static void main(String[] args)
{
// se crea un objeto de la clase Convertir (Instanciaciación)
Triangulo obj = new Triangulo();
float a,b,c;
// se pide el valor de A
a = Float.parseFloat(JOptionPane.showInputDialog("Digite el valor de A"));
// se encapsula la variable a
obj.setValorA(a);
// se pide el valor de B
b = Float.parseFloat(JOptionPane.showInputDialog("digite el valor de B"));
// se encapsula la variable b
obj.setValorB(b);
// se pide el valor de C
c = Float.parseFloat(JOptionPane.showInputDialog("Digite el valor de C"));
// se encapsula la variable c
obj.setValorC(c);
// se muestra el resultado del area y el tipo de triangulo
if(((a + b) > c) && ((a + c) > b) && ((b + c) > a))
{
if((a == b) && (b == c))
{
JOptionPane.showMessageDialog(null,"El triangulo es Equilatero." + "\n" + "Area: " + obj.area());
}
else if(((a == b) && (a != c)) || ((a == c) && (c != b)) || ((b == c)&& (c != a)) || ((c == a)&&(a != b)))
{
JOptionPane.showMessageDialog(null,"El triangulo es Isoceles." + "\n" + "Area: " + obj.area());
}
else
{
JOptionPane.showMessageDialog(null,"El triangulo es Escaleno." + "\n" + "Area: " + obj.area());
}
}
else
{
JOptionPane.showMessageDialog(null,"Las longitudes no forman un triangulo.");
}
}
}
public class Triangulo
{
// declaramos los atributos privados
private float l1;
private float l2;
private float l3;
public Triangulo()
{
// al inicializar el constructor se definiran los valores iniciales de los atributos
l1=0;
l2=0;
l3=0;
}
// metodos Setters y Getters de los atributos de la clase
public void setValorA(float val)
{
l1 = val;
}
public float getValorA()
{
return l1;
}
public void setValorB(float val)
{
l2 = val;
}
public float getValorB()
{
return l2;
}
public void setValorC(float val)
{
l3 = val;
}
public float getValorC()
{
return l3;
}
// metodo para hallar el aréa
public double area()
{
// declaramos una variable que almacena el semiperimetro del triangulo para poder utilizar los lados para obtener el area
double s = (l1 + l2 + l3)/2;
// se utiliza la formula de heron para calcular el area
double area= Math.sqrt((s * (s - l1) * (s - l2) * (s - l3)));
// retornamos el resultado
return area;
}
}