Perimetro de cuadrado

Iniciado por matver, 9 Febrero 2018, 15:32 PM

0 Miembros y 1 Visitante están viendo este tema.

matver

Hola estoy tratando de resolver ejercicios con la POO y ahora trato de resolver el perimetro de un cuadrado pero el compilador gcc me da error:
Código (cpp) [Seleccionar]

#include <iostream>
using namespace std;
class Cuadrado {
    public:
      int Base;
      int Altura;

};

int main (){
Cuadrado cuadrado1;
int perimetro=0;
cuadrado1.Base=2;
cuadrado1.Altura=2;
perimetro= Base* Altura;
cout<<"El perimetro del cuadrado es:"<<perimetro<<endl;

return 0;




Error: error: 'Base' was not declared in this scope
perimetro= Base* Altura;
            ^
perimetro.cpp:15:18: error: 'Altura' was not declared in this scope
perimetro= Base* Altura;
                  ^

matver

#1
El error estaba en la linea 15 que debería ser así:
perimetro=cuadrado1.Base*cuadrado1.Altura;

Machacador

No hagas doble post... utiliza el botón modificar que tienes arriba a la derecha en tu post...

:rolleyes: :o :rolleyes:

Saludos.
"Solo tu perro puede admirarte mas de lo que tu te admiras a ti mismo"

A.I.

Tienes algunos conceptos sobre los cuadrados equivocados. En un cuadrado la base y la altura son iguales. Además el perímetro se calcularía multiplicando un lado por 4. Si haces lado^2 estás calculando el área.

Por otro lado la rutina para calcular el perímetro probablemente debería ser un método de la clase cuadrado.

Saludos!

marcebond

Compi, no se trata de que en 'main'' hagas todo el trabajo, debes repasar conceptos como 'encapsulación', los objetos son los que saben sobre sí mismos y como comportarse, echa un ojo, en main simplemente los creas y los muestras, incluso podríamos haberles dado la capacidad de imprimirse ellos solos (incluso sobrecargando el operador <<) pero es demasiado, repasa...

Código (cpp) [Seleccionar]

#include <iostream>

using namespace std;

class Cuadrado {
private:
    float lado;

public:

    Cuadrado(float lado) {
        this->lado = lado;
    }

    float obtenerLado() {
        return this->lado;
    }

    float obtenerArea() {
        return this->lado * this->lado;
    }

    float obtenerPerimetro() {
        return this->lado * 4;
    }

};

int main(void) {
    Cuadrado c1(2), c2(7);

    cout
        << "Cuadrado 'c1'" << endl
        << "Lado: " << c1.obtenerLado() << endl
        << "Área: " << c1.obtenerArea() << endl
        << "Perímetro: " << c1.obtenerPerimetro() << endl << endl;

    cout
        << "Cuadrado 'c2'" << endl
        << "Lado: " << c2.obtenerLado() << endl
        << "Área: " << c2.obtenerArea() << endl
        << "Perímetro: " << c2.obtenerPerimetro() << endl << endl;
}