how to compress thhe code while getting the same results?

This is a small program I wrote with what I have learned since I started codeing in C++ about a week ago.

¿how to compress the code to minimum, while getting the same results?

ejercicio2.cpp

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
#include<iostream>
#include"opciones.h"
#include"multi.h"
#include"mensaje.h"
#include"div.h"
#include"cuadricula.h"

using namespace std;

int main()

{
    int val1;
    int val2;
    int repe;

    mensaje miMensaje1;
    miMensaje1.mostrarMensaje();

    while( repe != 2 )

    {
        cout << "Introduce el primer valor : ";
        cin  >> val1;

        cout << "\n\nIntroduce el segundo valor : ";
        cin  >> val2;

        cout << "\n\n";

        opciones opc1( val1, val2 );
        multi multiple1( val1, val2 );
        div divicion1( val1, val2 );
        cuadricula miCuadricula;

        cout << "El resultado de la suma es : " << opc1.obtenerResultado() << "!" << endl;

        cout << "\n\nEL resultado de la multiplicacion es : " << multiple1.obtenerResultado() << "!" << endl;

        cout << "\n\nEl resultado de la division es : " << divicion1.obtenerResultado() << "!" << endl;

        cout << "\n\n\n\n";

        miCuadricula.mostrarCuadricula();

        cout << "\n\nDeseas seguir usando el programa? : ( 1 )SI  ( 2 )NO  :  ";

        cin  >> repe;

    }

    miMensaje1.mostrarDespedida();
}


opciones.h

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
#define OPCIONES_H_INCLUDED
#endif // OPCIONES_H_INCLUDED

class opciones

{
    public:

        explicit opciones( int, int );

        void establecerDatos( int, int );

        int obtenerResultado() const;

    private:

        int opcion1;
        int opcion2;
        int resultado;

};


opciones.cpp

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
#include<iostream>
#include"opciones.h"

using namespace std;

opciones::opciones( int op1, int op2 )

    :opcion1( op1 ), opcion2( op2 ), resultado(opcion1 + opcion2)

{

}

void opciones::establecerDatos( int op1, int op2 )

{
    opcion1 = op1;
    opcion2 = op2;
    resultado = opcion1 + opcion2;
}

int opciones::obtenerResultado() const

{
    return resultado;
}


multi.h

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
#define MULTI_H_INCLUDED
#endif // MULTI_H_INCLUDED

class multi

{
    public:

        explicit multi( int, int );

        void establecerDatos( int, int );

        int obtenerResultado() const;

    private:

        int opcion1;
        int opcion2;
        int resultado;

};


multi.cpp

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
#include<iostream>
#include"multi.h"

using namespace std;

multi::multi( int op1, int op2 )

    :opcion1( op1 ), opcion2( op2 ), resultado(opcion1 * opcion2)

{

}

void multi::establecerDatos( int op1, int op2 )

{
    opcion1 = op1;
    opcion2 = op2;
    resultado = opcion1 * opcion2;
}

int multi::obtenerResultado() const

{
    return resultado;
}


mensaje.h

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
#ifndef MENSAJE_H_INCLUDED
#define MENSAJE_H_INCLUDED
#endif // MENSAJE_H_INCLUDED

#include<string>

class mensaje

{
    public:

        explicit mensaje();

        void mostrarMensaje() const;

        void mostrarDespedida() const;

    private:

        std::string texto;

};


mensaje.cpp

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
#include<iostream>
#include"mensaje.h"

using namespace std;

mensaje::mensaje()

{
}

void mensaje::mostrarMensaje() const

{
    cout << "Bienvenido a calculos v1.0 ! \n\n";
}

void mensaje::mostrarDespedida() const

{
    cout << "\n\nGracias por usar calculos v1.0 ! \n\n";
}


div.h

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
#ifndef DIV_H_INCLUDED
#define DIV_H_INCLUDED
#endif // DIV_H_INCLUDED

class div

{
    public:

        explicit div( double, double );

        void establecerDatos( double, double );

        double obtenerResultado() const;

    private:

        double opcion1;
        double opcion2;
        double resultado;

};


div.cpp

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
#include<iostream>
#include"div.h"

using namespace std;

div::div( double op1, double op2 )

    :opcion1( op1 ), opcion2( op2 ), resultado(opcion1 / opcion2)

{

}

void div::establecerDatos( double op1, double op2 )

{
    opcion1 = op1;
    opcion2 = op2;
    resultado = opcion1 / opcion2;
}

double div::obtenerResultado() const

{
    return resultado;
}


cuadricula.h

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
#ifndef CUADRICULA_H_INCLUDED
#define CUADRICULA_H_INCLUDED
#endif // CUADRICULA_H_INCLUDED


class cuadricula

{
    public:

        explicit cuadricula();

        void mostrarCuadricula() const;

    private:

        char simbolo = '*';
};


cuadricula.cpp

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
#include<iostream>
#include"cuadricula.h"

using namespace std;

cuadricula::cuadricula()

{
}

void cuadricula::mostrarCuadricula() const

{
    int x;

    cout << "*********************************************************\n";

    for( x = 0; x < 8; x++ )

    {
        cout << simbolo << "      " << simbolo << "      " << simbolo << "      " << simbolo << "      "
             << simbolo << "      " << simbolo << "      " << simbolo << "      " << simbolo << "      " << simbolo << "\n";
        cout << simbolo << "      " << simbolo << "      " << simbolo << "      " << simbolo << "      "
             << simbolo << "      " << simbolo << "      " << simbolo << "      " << simbolo << "      " << simbolo << "\n";
        cout << simbolo << "      " << simbolo << "      " << simbolo << "      " << simbolo << "      "
             << simbolo << "      " << simbolo << "      " << simbolo << "      " << simbolo << "      " << simbolo << "\n";
        cout << "*********************************************************\n";

    }
}
minimal code is over-rated, it won't run faster if it does the same work and it can be hard to read.

regardless, consider:

1
2
3
4
void div::establecerDatos( double op1, double op2 )
{
    resultado = op1 / op2;
}


or -- not 100% sure if this is identical, but can you condense that print somehow LIKE this?
1
2
3
4
5
6
for( x = 0; x < 8; x++ )
{
for(int j = 0; j < 9; j++)
   cout <<  cout << simbolo << "      ";
  }
cout << endl;


There isnt a lot of algorithm or iteration or such work here to reduce. I mean you can combine lines like
int a,b,c;
or if(cond) statement;
to save physical space but that is not really useful.
Last edited on
thanks I will try out the "for" loop right away, and btw another question I have is: ¿is it necesary to use the code below?

1
2
3
4
5
6
7
opciones::opciones( int op1, int op2 )

    :opcion1( op1 ), opcion2( op2 ), resultado(op1 + op2)

{

}


and

1
2
3
4
5
void opciones::establecerDatos( int op1, int op2 )

{
    resultado = op1 + op2;
}


or just:

1
2
3
4
5
void opciones::establecerDatos( int op1, int op2 )

{
    resultado = op1 + op2;
}

will do?

and btw the code you shared:

1
2
3
4
5
6
for( x = 0; x < 8; x++ )
{
    for(int j = 0; j < 9; j++)
    cout <<  cout << simbolo << "      ";
}
cout << endl;


has cout << cout

I'll try to fix it to make it work :D

I found the solution:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
void cuadricula::mostrarCuadricula() const

{
    int x;
    int y;
    int z;

    cout << "*********************************************************\n";

    for( x = 0; x < 8; x++ )

    {
        for( z = 0; z < 3; z++ )

        {

            for( y = 0; y < 9; y++ )

            {
                cout << simbolo << "      ";
            }

            cout << "\n";

        }

        cout << "*********************************************************\n";
    }
}
Last edited on
Topic archived. No new replies allowed.