4/15/2017

Ejercicio 54

Haga un algoritmo que encuentre el área de un polígono para un n dado.

Un polígono es sólo un cuadrado con un lado de longitud 1. Un polígono se obtiene tomando el polígono n-1 y añadiendo polígonos a su borde, uno al lado del otro. Puede ver los polígonos 1, 2, 3 y 4 en la imagen de abajo.

Area de un polígono


#include <iostream>
// se incluye la clase Calcular para despues llamar a sus métodos 
#include "Calcular.h"

using namespace std;

int main(void)
{
    // se crea un objeto de la clase Calcular (Instanciación) 
    Calcular *obj = new Calcular();
    // se declara una variable de tipo entero llamada n  
    int n;
    // pedimos el valor de n  
    cout << "Digite el valor de n" << endl;
    cout << ">> ";
    cin >> n;
    // se encapsula la variable n  
    obj->setN(n);
    // mostramos el area del poligono 
    cout << "Area: " << obj->area() << endl;
}

#ifndef CALCULAR_H
#define CALCULAR_H

class Calcular
{
    public:
        Calcular();
        virtual ~Calcular();
        // se declaran los métodos publicos 
        void setN(int val);
        int getN();
        int area();
    protected:

    private:
        // se declara el atributo privado 
        int n;
};

#endif // CALCULAR_H 

#include "Calcular.h"

Calcular::Calcular()
{
    // se le asigna un valor por defecto al atributo en el contructor 
    n = 0;
}

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

// métodos Set y Get del atributo de la clase 
void Calcular::setN(int val)
{
    n = val;
}

int Calcular::getN()
{
    return n;
}

// método para calcular el area del poligono 
int Calcular::area()
{
    // el calculo del area es muy simple, solo vamos a calcular primero la multiplicacion entre (n-1) y (2*n - 1) 
    // y lo sumamos con el valor de la variable n  
    return n +(n-1) * (2*n - 1);
}

// 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 Calcular (Instanciación) 
        Calcular obj = new Calcular();
        // pedimos el valor de n  
        int n = Integer.parseInt(JOptionPane.showInputDialog("Digite el valor de n:"));
        // encapsulamos el valor de n  
        obj.setN(n);
        // mostramos el area 
        JOptionPane.showMessageDialog(null, "El area es: " + obj.area());
    }
}

public class Calcular
{
    // declara un atributo privado 
    private int n;
    
    public Calcular()
    {
        // se le asigna un valor por defecto al atributo en el contructor 
        n = 0;
    }
    
    // métodos Set y Get del atributo de la clase 
    public void setN(int val)
    {
        n = val;
    }
    
    public int getN()
    {
        return n;
    }
    
    // método para calcular el area del poligono 
    public int area()
    {
        // el calculo del area es muy simple, solo vamos a calcular primero la multiplicacion entre (n-1) y (2*n - 1) 
        // y lo sumamos con el valor de la variable n  
        return n + (n-1) * (2*n - 1);
    }
}