9/28/2016

Ejercicio 19

Dado el valor del lado en un triángulo equilátero, haga un algoritmo que obtenga el perímetro, el valor de la altura y 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)
{
    //Se crea un objeto de la clase Triangulo (Instanciaciación) 
    Triangulo *obj = new Triangulo();

    float l;//se define la variable l de tipo float
    //se pide el lado del triangulo 
    cout << "Digite lado del triangulo equilatero: " << endl;
    cin >> l;//se guarda el lado en la variable l 
    obj->setLado(l);//se encapsula la variable l 

    //se muestra el perimetro 
    cout << "El perimetro es: " << obj->perimetro() << endl;
    //se muestra el area 
    cout << "El area es: " << obj->area() << endl;
    //se muestra la altura 
    cout << "La altura es: " << obj->altura() << endl;
}
     

#ifndef TRIANGULO_H
#define TRIANGULO_H


class Triangulo
{
    public:
        Triangulo();//metodo constructor 
        virtual ~Triangulo();//metodo destructor 

        //Se definen los metodos publicos: 
        float perimetro();//perimetro() de tipo float 
        float area();//area() de tipo float 
        float altura();//altura() de tipo float 

        //Se definen los metodos Setters y Getters del atributo lado 
        void setLado(float val);
        float getLado();
    protected:

    private:
        float lado;
};

#endif // TRIANGULO_H 
     

#include "Triangulo.h"
//se incluira la libreria "math.h" para utilizar el metodo sqrt()
//y poder realizar la raiz cuadrada, ya que es importante para calcular
//el area, perimetro y altura del triangulo. 
#include "math.h"

Triangulo::Triangulo()
{
    //se le asigna 0 a "lado" en el constructor 
    lado = 0;
}

Triangulo::~Triangulo()
{
    //dtor 
}

//implementacion metodo perimetro() 
float Triangulo::perimetro()
{
    //el perimetro de un triangulo es multiplicar su lado 3 veces 
    return 3 * lado;
}

//existe un metodo que puede calcular la raiz cuadrada de un numero, esta en la clase
//"math.h" y se llama sqrt() solo se debe asignar como parametro el numero a calcular
//dentro del metodo.

//existe otro metodo para elevar numeros, en este caso queremos elevar lado a la 2.
//utilizaremos el metodo pow(), de la clase "math.h", solo se debe ingresar como
//parametro el numero que se va a elevar seguido de una coma con el numero al que se
//elevara. La función pow retorna el resultado de lado^2. 
float Triangulo::area()
{
    //para calcular el area se debe utilizar la siguiente formula:
    // √3/4 * lado^2 (raiz cuadrada de 3 sobre 4, por el lado elevado a la 2). 
    return sqrt(3) / 4 * pow(lado, 2);
}

//Implementacion del metodo altura() 
float Triangulo::altura()
{
    //para calcular la altura se debe sacar la raiz de 3 por el lado entre 2
    // √3*lado/2 
    return sqrt(3 * lado) / 2;
}

//Se implemetan los metodos Setters y Getters del atributo  lado 
void Triangulo::setLado(float val)
{
    //a lado se le asigna val 
    lado = val;
}

float Triangulo::getLado()
{
    //se retorna lado 
    return lado;
}
     

//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 Triangulo (Instanciaciación) 
        Triangulo obj = new Triangulo();

        //se pide el lado del triangulo y se guarda en la variable l 
        double l = Double.parseDouble(JOptionPane.showInputDialog(null, "Digite lado del triangulo: "));
        obj.setLado(l);//se encapsula la variable "l" 
        
        //se muestra el perimetro del triangulo 
        JOptionPane.showInputDialog(null, "Perimetro del triangulo: " + obj.perimetro());
        //se muestra el area del triangulo 
        JOptionPane.showInputDialog(null, "Area del triangulo: " + obj.area());
        //se muestra la altura del triangulo 
        JOptionPane.showInputDialog(null, "Altura del triangulo: " + obj.altura());
    }
}
     

import static java.lang.Math.pow;
import static java.lang.Math.sqrt;

public class Triangulo
{
    public Triangulo()
    {
        //se le asigna 0 a la variable lado en el constructor de la clase Triangulo 
        lado = 0;
    }
    
    //Se define el atributo "lado" de tipo double 
    private double lado;
    
    //implementacion metodo perimetro() 
    public double perimetro()
    {
        //el perimetro de un triangulo es multiplicar su lado 3 veces
        return 3 * lado;
    }

    //existe un metodo que puede calcular la raiz cuadrada de un numero, esta en el paquete
    //Math de java, se llama sqrt() solo se debe asignar como parametro el numero a calcular
    //dentro del metodo.

    //existe otro metodo para elevar numeros, en este caso queremos elevar lado a la 2.
    //utilizaremos el metodo pow(), del paquete Math de java, solo se debe ingresar como
    //parametro el numero que se va a elevar seguido de una coma con el numero al que se
    //elevara. La función pow retorna el resultado de lado^2. 
    public double area()
    {
        //para calcular el area se debe utilizar la siguiente formula:
        // √3/4 * lado^2 (raiz cuadrada de 3 sobre 4, por el lado elevado a la 2). 
        return sqrt(3) / 4 * pow(lado, 2);
    }

    //Implementacion del metodo altura() 
    public double altura()
    {
        //para calcular la altura se debe sacar la raiz de 3 por el lado entre 2
        // √3*lado/2 
        return sqrt(3 * lado) / 2;
    }

    //Se implemetan los metodos Setters y Getters del atributo  lado 
    public void setLado(double val)
    {
        //a lado se le asigna val 
        lado = val;
    }

    public double getLado()
    {
        //se retorna lado 
        return lado;
    }
}