11/08/2016

Ejercicio 32

Hacer un algoritmo que encuentre la suma de los números impares comprendidos entre 1 y N.


#include <iostream>
// se incluye la clase Numero para despues llamar a sus metodos 
#include "Numero.h"

using namespace std;

// implementacion del metodo para mostrar los numeros impares 
void mostrarNumerosImpares(int n)
{
    // el metodo requiere de un parametro (n) que sera el numero max de los numeros impares que queremos mostrar 
    cout << "Numeros impares: ";
    // recorremos con el ciclo for desde 1 hasta el valor pasado como parametro (n) 
    for (int i = 1; i <= n; i++)
    {
        // si el modulo o resto entre (i) y 2 es diferente a cero, entonces el numero (i) es impar 
        if (i % 2 != 0)
        {
            // mostramos el numero (i) 
            cout << i << " ";
        }
    }
}

int main(void)
{
    // se crea un objeto de la clase Numero (Instanciaciación) 
    Numero *obj = new Numero();
    // declaramos una variable de tipo entero llamada "num" 
    int num;
    // pedimos el numero 
    cout << "Digite numero: ";
    // guardamos el numero en la variable "num" 
    cin >> num;
    // llamamos al metodo mostrarNumerosImpares() y le asignamos como parametro la variable "num" 
    mostrarNumerosImpares(num);
    // llamamos al metodo sumaNumerosImpares() y le asignamos "num" como parametro para calcular la suma 
    cout << endl << "Suma: " << obj->sumaNumerosImpares(num) << endl;
}

#ifndef NUMERO_H
#define NUMERO_H


class Numero
{
    public:
        Numero();
        virtual ~Numero();
        // declaramos el metodo sumaNumerosImpares() el cual requiere de un parametro de tipo entero 
        int sumaNumerosImpares(int n);
    protected:

    private:
};

#endif // NUMERO_H

#include "Numero.h"

Numero::Numero()
{
    //ctor 
}

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

// implementacion del metodo para calcular la suma de los numeros impares 
int Numero::sumaNumerosImpares(int n)
{
    // el metodo necesita de un parametro (n) que sera el numero max de los numeros impares que le calcularemos la suma 
    int suma = 0; // declaramos la variable suma y la inicializamos en cero 
    // recorremos con el ciclo for desde 1 hasta el valor pasado como parametro (n)
    for (int i = 1; i <= n; i++)
    {
        // si el modulo o resto entre (i) y 2 es diferente a cero, entonces el numero (i) es impar 
        if (i % 2 != 0)
        {
            // le asignamos a "suma" el valor actual de "suma" y de "i" (variable acumuladora) 
            suma = suma + i;
        }
    }
    // retornamos el valor que haya acumulado suma
    return suma;
}

//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
{
    // implementacion del metodo para mostrar los numeros impares 
    public static void mostrarNumerosImpares(int n)
    {
        // el metodo requiere de un parametro (n) que sera el numero max de los numeros impares que queremos mostrar 
        String numeros = "";
        // recorremos con el ciclo for desde 1 hasta el valor pasado como parametro (n) 
        for (int i = 1; i <= n; i++)
        {
            // si el modulo o resto entre (i) y 2 es diferente a cero, entonces el numero (i) es impar 
            if (i % 2 != 0)
            {
                /* le asignamos a "numeros" el valor de "numeros" actual más el valor convertido a string de "i" actual
                 * (se debe convertir a string el valor de "i" porque sino el operador + pensara que estamos
                 * haciendo una operacion, y no estamos haciendo eso, solo estamos acumulando)
                 */ 
                numeros = numeros + " " + String.valueOf(i);
            }
        }
        JOptionPane.showMessageDialog(null, "Numeros impares: " + numeros);
    }
    
    public static void main(String[] args)
    {
        // se crea un objeto de la clase Numero (Instanciaciación) 
        Numero obj = new Numero();
        // pedimos el numero y los guardamos en la variable "num" 
        int num = Integer.parseInt(JOptionPane.showInputDialog("Digite numero:"));
        // llamamos al metodo mostrarNumerosPares() y le asignamos como parametro la variable "num" 
        mostrarNumerosImpares(num);
        // llamamos al metodo sumaNumerosPares() y le asignamos "num" como parametro para calcular la suma 
        JOptionPane.showMessageDialog(null, "Suma: " + obj.sumaNumerosImpares(num));
    }
}

public class Numero
{
    // implementacion del metodo para calcular la suma de los numeros impares 
    public int sumaNumerosImpares(int n)
    {
        // el metodo necesita de un parametro (n) que sera el numero max de los numeros impares que le calcularemos la suma 
        int suma = 0; // declaramos la variable suma y la inicializamos en cero
        // recorremos con el ciclo for desde 1 hasta el valor pasado como parametro (n) 
        for (int i = 1; i <= n; i++)
        {
            // si el modulo o resto entre (i) y 2 es diferente a cero, entonces el numero (i) es impar 
            if (i % 2 != 0)
            {
                // le asignamos a "suma" los valores actuales de "suma" más el valor de "i" (suma es una variable acumuladora) 
                suma = suma + i;
            }
        }
        // retornamos el valor que haya acumulado suma 
        return suma;
    }
}