viernes, 20 de septiembre de 2013

CALCULAR ÁREAS Y PERÍMETROS (triángulos y rectángulos)

Problema:
  • Elaborar un programa que calcule el área y perímetro de tres rectángulos y tres triángulos.
Nota: Dividiremos el programa en tres clases: triángulo, rectángulo y solución.

1ra. Clase: Triangulo.

Esta primera clase la construiremos para que haga el cálculo de el área y perímetro de los triángulos, misma clase que después será llamada desde la clase Solución.

  • Diagrama UML:
El diagrama UML es uno de los elementos principales para la solución de problemas en la estructura de datos orientada a objetos, este diagrama facilita el entendimiento del problema, ya que divide en tres partes el mismo, la primera parte es quien lleva el nombre que identifica a la clase; la segunda parte contiene los atributos que tendrá el objeto identificado de nuestra clase, esto acompañado del tipo de dato que tendrá; y por último la tercera parte contiene el nombre de los procedimientos o más bien métodos que se realizarán.

Para facilitar la construcción del diagrama, recomiendo usar ArgoUML, lo pueden descargar desde este link http://argouml.tigris.org/, aquí podemos apoyarnos para aprender a usarlo http://www.youtube.com/watch?v=mHfw4Q5xubU.

Y el diagrama queda así:

Nuestro objeto es el tríangulo, tiene una base, una altura, y porsteriormente serán calculadas su área y su perímetro, para llegar a esto primero capturaremos los datos, después se calcula área, siguiendo con perímetro y se imprimiran los resultados.

  • Programa:
Nota: para construir el programa estoy usando NetBeans, es gratuito y muy recomendable, si no lo tienes puedes descargarlo desde aquí https://netbeans.org/downloads/.

package Areas_Perímetros; // identificamos el paquete en el que se encuentra nuestra clase
import javax.swing.JOptionPane; // Aqui mandamos a llamar la libreria que vamos a usar
public class Triangulo // el nombre de nuestra clase
{ //inicia la clase
    private int base; // se declaran las variables a usar
                       //(atributos que fueron mostrados en el diagrama UML)
    private int altura;
    private int área;
    private int perimetro
        /*vamos a encapsular nuestras variables con get y set se utiliza get para que
        lea o guarde el valor de la variable y set para que se pueda cambiar el valor 
        de la variable. Esto se puede realizar de manera directa simplemente dando click
        derecho en  Refactor/Encapsulate Fields, seleccionas todas las fichas de get y set
        y despues en Refactor, y creara los métodos con set y get.
        */
    public int getBase() { 
        return base; // manda la variable
    }
    public void setBase(int base) { //recibe la variable
        this.base = base; 
    }
    public int getAltura() {
        return altura;
    }
    public void setAltura(int altura) {
        this.altura = altura;
    }
    public int getÁrea() {
        return área;
    }
    public void setÁrea(int área) {
        this.área = área;
    }
    public int getPerimetro() {
        return perimetro;
    }
    public void setPerimetro(int perimetro) {
        this.perimetro = perimetro;
    }
    
    public void Captura(){ // se piden los valores de base y altura de el triangulo
        base=Integer.parseInt(JOptionPane.showInputDialog("BASE:"));
        altura=Integer.parseInt(JOptionPane.showInputDialog("ALTURA:"));
    }
    public void CalcularArea() { 
     área=(base*altura)/2; 
    }
    public void CalcularPerimetro(){
     perimetro=(base*3);//suponiendo que es un triángulo equilátero
    }
    public void Imprimir(){  
    JOptionPane.showMessageDialog(null,"EL ÁREA ES: "+área+"\nEL PERÍMETRO ES: "+perimetro);
    }
}// termina la clase

2da. Clase: Rectangulo

De la misma forma que con la clase triangulo, construiremos la clase Rectángulo:

  • Diagrama UML













  • Programa
package Areas_Perímetros;
import javax.swing.JOptionPane;
public class Rectángulo 
{
    private int base;
    private int altura;
    private int área;
    private int perimetro;
   
    public int getBase() {
        return base;
    }
    public void setBase(int base) {
        this.base = base;
    }
    public int getAltura() {
        return altura;
    }
    public void setAltura(int altura) {
        this.altura = altura;
    }
    public int getÁrea() {
        return área;
    }
    public void setÁrea(int área) {
        this.área = área;
    }
    public int getPerimetro() {
        return perimetro;
    }
    public void setPerimetro(int perimetro) {
        this.perimetro = perimetro;
    }
    
    public void Captura(){
        base=Integer.parseInt(JOptionPane.showInputDialog("BASE:"));
        altura=Integer.parseInt(JOptionPane.showInputDialog("ALTURA:"));
    }
    public void CalcularArea() {
     área=(base*altura);
    }
    public void CalcularPerimetro(){
     perimetro=base+base+altura+altura;
    }
    public void Imprimir(){  
    JOptionPane.showMessageDialog(null,"EL ÁREA ES: "+área+"\n EL PERÍMETRO ES: "+perimetro);
    }
}

3ra. Clase: Solucion

En esta clase se dará uso a las clases anteriores, se le asignan los métodos a los objetos correspondiente a su clase. Para ello deberán declararse y crearse los objetos.

  • Diagrama UML:












  • Programa:
package Areas_Perímetros;
import javax.swing.JOptionPane;
public class Solución {
   
    public static void main (String arr[]){ 
    //se declaran objetos
        Rectángulo rect1, rect2, rect3;
        // se crean los objetos
        rect1=new Rectángulo();
        rect2=new Rectángulo();
        rect3=new Rectángulo();
        
        JOptionPane.showMessageDialog(null,"CALCULO DE AREAS Y PERIMETROS DE LOS RECTANGULOS");
        JOptionPane.showMessageDialog(null,"RECTANGULO #1");
        rect1.Captura(); //el objeto mando a llamar al método que va a usar
        rect1.CalcularArea();
        rect1.CalcularPerimetro();
        rect1.Imprimir();
        
        JOptionPane.showMessageDialog(null,"RECTANGULO #2");
        rect2.Captura();
        rect2.CalcularArea();
        rect2.CalcularPerimetro();
        rect2.Imprimir();
        
        JOptionPane.showMessageDialog(null,"RECTANGULO #3");
        rect3.Captura();
        rect3.CalcularArea();
        rect3.CalcularPerimetro();
        rect3.Imprimir();
   
        Triangulo tri1, tri2, tri3;
        
        tri1=new Triangulo();
        tri2=new Triangulo();
        tri3=new Triangulo();
        
        JOptionPane.showMessageDialog(null,"CALCULO DE AREAS Y PERIMETROS DE LOS TRIANGULOS");
        JOptionPane.showMessageDialog(null,"TRIANGULO #1");
        tri1.Captura();
        tri1.CalcularArea();
        tri1.CalcularPerimetro();
        tri1.Imprimir();
        
        JOptionPane.showMessageDialog(null,"TRIANGULO #2");
        tri2.Captura();
        tri2.CalcularArea();
        tri2.CalcularPerimetro();
        tri2.Imprimir();
        
        JOptionPane.showMessageDialog(null,"TRIANGULO #3");
        tri3.Captura();
        tri3.CalcularArea();
        tri3.CalcularPerimetro();
        tri3.Imprimir();
        
        
    }
}

Ejecutar el programa


Al ejecutarse el programa aparecerá la primera ventana que indica que se realizará el calculo de las áreas y perímetros de los rectángulos...
...después indicará a que número de rectángulo se le realizará el calculo. Recordando que el problema pedía el calculo para tres triángulos y tres rectángulos...

 ... enseguida se realizará la captura de la base de el rectangulo.....
                                    .... lo mismo con la altura...
 .... y por último mostrará los resultados...





.... lo mismo será para los triángulos.











Conclusión:
Una manera mas ordenada, sencilla y entendible de realizar un programa , es dividiéndolo en métodos y clases, recordando siempre que un problema puede dividirse en clases, cada clase tiene un objeto, a su vez, cada objeto tiene atributos o propiedades, unos serán capturados, otros, serán calculados en la clase, para realizar esto basta con crear métodos que hagan las actividades o procedimientos que se necesitan para resolver el problema.





2 comentarios:

  1. Buenos días,

    Puedes enlazar http://triancal.esy.es, mi calculadora de triángulos online en vuestra página.

    Optimizada para el navegador Google Chrome.

    Un saludo.

    ResponderEliminar