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

Considerando a tabela abaixo…

total de eleitores = 1000
válidos            = 800
votos brancos      = 150
nulos              = 50

Faça uma classe com 3 métodos que calculam…

  • o percentual do votos válidos em relação ao total de eleitores,
  • o percentual de brancos em relação ao total de eleitores
  • o percentual de nulos em relação ao total de eleitores.

Dica: “em relação ao total” significa que você deve dividir, por exemplo, “nulos” pelo total de eleitores, válidos pelo total de eleitores, etc…

Utilize programação orientada a objetos.

Linguagem C

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

#include <stdio.h>
#include <assert.h>

//
// Classe Votos
//
class Votos {
public:
    float total_eleitores,
          validos,
          brancos,
          nulos;

    Votos(int total){
        total_eleitores = total;
    }

    float percValidos() {
        return 0;
    }

    float percBrancos() {
        return 0;
    }

    float percNulos() {
        return 0;
    }
};


//
// Teste de unidade
//
void testVotos (){

    Votos votos(1000);
    votos.validos = 800;
    votos.brancos = 150;
    votos.nulos   = 50;

    assert(0.8f  == votos.percValidos());
    assert(0.15f == votos.percBrancos());
    assert(0.05f == votos.percNulos());

}

//
// Início do programa
//
int main() {
    // Chamamos o teste unitário
    testVotos();
    return 0;
}

Solução na linguagem C

//
// Classe Votos
//
class Votos {
public:
    float total_eleitores,
          validos,
          brancos,
          nulos;

    Votos(int total){
        total_eleitores = total;
    }

    float percValidos() {
        return validos / total_eleitores;
    }

    float percBrancos() {
        return brancos / total_eleitores;
    }

    float percNulos() {
        return nulos  / total_eleitores;
    }
};

Linguagem Python

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

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

#
# Classe Votos
#
class Votos(object):

    def __init__(self, total_eleitores):
        self.total_eleitores = total_eleitores
        self.validos = 0;
        self.brancos = 0;
        self.nulos   = 0;

    def percValidos(self):
        pass

    def percBrancos(self):
        pass

    def percNulos(self):
        pass


#
# Testes
#
votos = Votos(1000)
votos.validos = 800;
votos.brancos = 150;
votos.nulos   = 50;

assert 0.8  == votos.percValidos(), "'percValidos' deve ser igual a 0.8"
assert 0.15 == votos.percBrancos(), "'percBrancos' deve ser igual a 0.15"
assert 0.05 == votos.percNulos(),   "percNulos deve ser igual a 0.05"

Solução na linguagem Python

#
# Classe Votos
#
class Votos(object):

    def __init__(self, total_eleitores):
        self.total_eleitores = total_eleitores
        self.validos = 0;
        self.brancos = 0;
        self.nulos   = 0;

    def percValidos(self):
        return self.validos / self.total_eleitores

    def percBrancos(self):
        return self.brancos / self.total_eleitores

    def percNulos(self):
        return self.nulos / self.total_eleitores

Linguagem JavaScript (Node.js)

Abaixo nosso código inicial escrito em JavaScript (Node.js), utilize ele para resolver o problema.

var assert = require('assert');

//
// Classe Votos
//
function Votos(total_eleitores) {
    this.total_eleitores = total_eleitores,
    this.validos = 0,
    this.brancos = 0,
    this.nulos   = 0;

    this.percValidos = function() {
        return 0;
    }

    this.percBrancos = function() {
        return 0;
    }

    this.percNulos = function() {
        return 0;
    }

}

//
// Testes
//
try {

    var votos = new Votos(1000);
    votos.validos = 800;
    votos.brancos = 150;
    votos.nulos   = 50;

    assert.equal(0.8,  votos.percValidos());
    assert.equal(0.15, votos.percBrancos());
    assert.equal(0.05, votos.percNulos());
} catch(e) {
    console.log(e);
}

Solução na linguagem JavaScript (Node.js)

//
// Classe Votos
//
function Votos(total_eleitores) {
    this.total_eleitores = total_eleitores,
    this.validos = 0,
    this.brancos = 0,
    this.nulos   = 0;

    this.percValidos = function() {
        return this.validos / this.total_eleitores;
    }

    this.percBrancos = function() {
        return this.brancos / this.total_eleitores;
    }

    this.percNulos = function() {
        return this.nulos / this.total_eleitores;
    }

}