Exercício de lógica de programação

Seu objetivo é construir uma classe denominada Area que calcule tanto a área quadrada (primeiro método) como a área cúbica (segundo método).

Utilize programação orientada a objetos.

Linguagem C++

#include <iostream>
#include <assert.h>

//
// Classe Area
//
class Area {
    //
    // seu código
    //
};

//
// Testes unitários...
//
void testAreaQuadrada() {
    Area area;

    area.lado1 = 3;
    area.lado2 = 9;
    assert(27 == area.quadrada());
}

void testAreaCubica() {
    Area area;

    area.lado1 = 3;
    area.lado2 = 6;
    area.lado3 = 2;
    assert(36 == area.cubica());
}

//
// Início do programa
//
int main() {
    testAreaQuadrada();
    testAreaCubica();
    return 0;
}

Solução na linguagem C++

//
// Classe Area
//
class Area {
public:
    int lado1, lado2, lado3;

    // retorna a área quadrada
    int quadrada() {
        return lado1 * lado2;
    }

    // retorna a área cúbica
    int cubica() {
        return lado1 * lado2 * lado3;
    }
};

Linguagem Python

Abaixo nosso código inicial escrito em Python, utilize ele para resolver o problema.

# -*- coding: utf-8 -*-

#
# Classe
#
class Area(object):
    def quadrada(self):
        pass

    def cubica(self):
        pass

#
# Testes
#
area = Area()

# testando a área quadrada
area.lado1 = 3
area.lado2 = 9
assert 27 == area.quadrada()

# testando a área cúbica
area.lado1 = 3
area.lado2 = 6
area.lado3 = 2
assert 36 == area.cubica()

Solução na linguagem Python

#
# Classe
#
class Area(object):
    def quadrada(self):
        return self.lado1 * self.lado2

    def cubica(self):
        return self.lado1 * self.lado2 * self.lado3

Linguagem JavaScript

Em JavaScript, até especificação ECMAscript 5, não temos classe. Mas as funções podem representar uma classe e mais uma vez (já fizemos isso no exercício anterior) iremos utilizar uma função como classe.

var assert = require('assert');

//
// Classe
//
function Area(){

    //
    // Método
    //
    this.quadrada = function(){

        // sua lógica

    }

    //
    // Método
    //
    this.cubica = function(){

        // sua lógica

    }

};

try {

    var area = new Area();

    // testando a área quadrada
    area.lado1 = 3;
    area.lado2 = 9;
    assert.equal(27, area.quadrada());

    // testando a área cúbica
    area.lado1 = 3;
    area.lado2 = 6;
    area.lado3 = 2;
    assert.equal(36, area.cubica());

} catch(e) {
    console.log(e);
}

Solução na linguagem JavaScript

function Area(){
    this.quadrada = function(){
        return this.lado1 * this.lado2;
    }
    this.cubica = function(){
        return this.lado1 * this.lado2 * this.lado3;
    }
};