PROGRAMACIÓN EN C++ – CLASE 15

(Creado por el analista de sistemas y docente Leonel Iván Saafigueroa)


LAS TABLAS DE MULTIPLICAR

Aprender las tablas de multiplicar ayuda en el desenvolvimiento de los alumnos en el área de las matemáticas, en esta clase veremos la forma de crear un programa que ayude a memorizarlas.


Es importante que las tablas de multiplicar se aprendan por repetición, si bien podemos aprender la mitad de memoria y hacer ciertos cálculos mentales para poder calcular el resto, lo cierto es que la mejor forma es practicarlas individualmente y luego todas juntas al azar.


Vamos a crear un programa basado en la función rand() y utilizar un condicional para hacer una corrección automática de la respuesta del usuario:


Veamos el código:

En esta primera versión del programa se utilizará una constante t en donde asignaremos la tabla de multiplicar a practicar; también haremos uso de tres variables: b será utilizada para almacenar un número aleatorio del 1 al 10, la variable resultado guardará el resultado de t por b, por último, el ingreso del usuario se guardará en la variable respuesta.

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
// LAS TABLAS DE MULTIPLICAR. PRACTICANDO LA DEL 2.
#include <iostream>
#include <cstdlib>
#include <ctime>
using namespace std;
int t=2;
int b;
int resultado;
int respuesta;
int main()
{
srand(time(NULL)); // Iniciamos la semilla random con la hora.
b = (rand() % 10)+1; // Genera un valor entre 1 y 10.
resultado = b * t;
cout << "Cuanto es " << t << " X " << b << " ? ";
cin >> respuesta;
if(respuesta==resultado)
{
cout << "Muy bien!" << endl;
}
else
{
cout << "Incorrecto... La respuesta correcta es: " << resultado << endl;
}
return 0;
}
// LAS TABLAS DE MULTIPLICAR. PRACTICANDO LA DEL 2. #include <iostream> #include <cstdlib> #include <ctime> using namespace std; int t=2; int b; int resultado; int respuesta; int main() { srand(time(NULL)); // Iniciamos la semilla random con la hora. b = (rand() % 10)+1; // Genera un valor entre 1 y 10. resultado = b * t; cout << "Cuanto es " << t << " X " << b << " ? "; cin >> respuesta; if(respuesta==resultado) { cout << "Muy bien!" << endl; } else { cout << "Incorrecto... La respuesta correcta es: " << resultado << endl; } return 0; }
// LAS TABLAS DE MULTIPLICAR. PRACTICANDO LA DEL 2.
#include <iostream>
#include <cstdlib>
#include <ctime>

using namespace std;

int t=2;
int b;
int resultado;
int respuesta;

int main()
{
    srand(time(NULL)); // Iniciamos la semilla random con la hora.
    b = (rand() % 10)+1; // Genera un valor entre 1 y 10.
    resultado = b * t;
    cout << "Cuanto es " << t << " X " << b << " ? ";
    cin >> respuesta;
    if(respuesta==resultado)
    {
        cout << "Muy bien!" << endl;
    }
    else
    {
        cout << "Incorrecto... La respuesta correcta es: " << resultado << endl;
    }
    return 0;
}

Vamos a analizar línea por línea este código en C++:

Línea 1: // LAS TABLAS DE MULTIPLICAR. PRACTICANDO LA DEL 2.

  • Este es un comentario de una sola línea, indicando que el programa está diseñado para practicar la tabla de multiplicar del 2.

Línea 2-3: #include <iostream> #include <cstdlib>

  • Estas son las declaraciones de inclusión de dos bibliotecas estandares de C++: iostream proporciona funciones para leer y escribir datos desde la entrada y salida estándar (consola). Y cstdlib proporciona funciones para generar números aleatorios con la función rand().

Línea 4: #include <ctime>

  • Esta es la declaración de inclusión de la biblioteca estandar de C++ que proporciona funciones relacionadas con el tiempo y la fecha.

Línea 6: using namespace std;

  • Esta línea utiliza un nombre espacioso para acceder a las clases y funciones de la biblioteca estandar de C++. En otras palabras, no es necesario escribir std:: antes de cada clase o función que se utilice en el programa.

Línea 8-11: int t=2; int b; int resultado; int respuesta;

  • Estas son las declaraciones de cuatro variables enteras: t es una variable que almacena el valor 2, despues tenemos a b que es una variable que almacena un valor aleatorio entre 1 y 10 (no tiene inicialización explícita), resultado es una variable que almacena el resultado de la multiplicación de 2 por en valor aleatorio almacenado en b. La variable respuesta almacena la respuesta ingresada por el usuario.

Línea 13: int main() {

  • Esta es la función principal del programa, donde se ejecutan las instrucciones principales del programa.

Línea 15: srand(time(NULL));

  • Esta línea inicia la semilla aleatoria con la hora actual. La función time() devuelve el número de segundos.

Línea 16: b = (rand() % 10)+1;

  • Esta línea genera un valor aleatorio entre 1 y 10, que se asigna a la variable b.

Línea 17-18: resultado = b * t; cout << "Cuanto es " << t << " X " << b << " ? ";

  • Estas son las instrucciones para calcular el resultado de la multiplicación de 2 por un valor aleatorio y muestra una pregunta a la pantalla.

Línea 19: cin >> respuesta;

  • Esta línea lee la respuesta ingresada por el usuario y la asigna a la variable respuesta.

Líneas 20-27: if(respuesta==resultado) { ... } else { ... }

  • Estas son las instrucciones para verificar si la respuesta del usuario es correcta o no. Si la respuesta es igual al resultado calculado, se muestra un mensaje de “Muy bien!“. De lo contrario, se muestra un mensaje con la respuesta correcta.

Línea 28: return 0;

Esta línea indica el fin de la función principal y devuelve el valor 0 a indicar que el programa se ejecutó correctamente.


Vamos a modificar el programa para poder practicar todas las tablas de multiplicar al azar:


Veamos el código:

Una vez que se aprenden todas las tablas de multiplicar por separado, lo mejor es practicarlas todas juntas, en esta última versión la variable t será igual que la variable b, se les asignará a ambas un número al azar del 1 al 10, el resultado de la multiplicación de ambos números se guarda en la variable resultado.

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
// LAS TABLAS DE MULTIPLICAR DEL 1 AL 10.
#include <iostream>
#include <cstdlib>
#include <ctime>
using namespace std;
int t;
int a;
int resultado;
int respuesta;
int main()
{
srand(time(NULL)); // Iniciamos la semilla random con la hora.
t = (rand() % 10)+1; // Genera un valor entre 1 y 10.
a = (rand() % 10)+1; // Genera un valor entre 1 y 10.
resultado = a * t;
cout << "Cuanto es " << t << " X " << a << " ? ";
cin >> respuesta;
if(respuesta==resultado)
{
cout << "Muy bien!" << endl;
}
else
{
cout << "Incorrecto... La respuesta correcta es: " << resultado << endl;
}
return 0;
}
// LAS TABLAS DE MULTIPLICAR DEL 1 AL 10. #include <iostream> #include <cstdlib> #include <ctime> using namespace std; int t; int a; int resultado; int respuesta; int main() { srand(time(NULL)); // Iniciamos la semilla random con la hora. t = (rand() % 10)+1; // Genera un valor entre 1 y 10. a = (rand() % 10)+1; // Genera un valor entre 1 y 10. resultado = a * t; cout << "Cuanto es " << t << " X " << a << " ? "; cin >> respuesta; if(respuesta==resultado) { cout << "Muy bien!" << endl; } else { cout << "Incorrecto... La respuesta correcta es: " << resultado << endl; } return 0; }
// LAS TABLAS DE MULTIPLICAR DEL 1 AL 10.
#include <iostream>
#include <cstdlib>
#include <ctime>

using namespace std;

int t;
int a;
int resultado;
int respuesta;

int main()
{
    srand(time(NULL)); // Iniciamos la semilla random con la hora.
    t = (rand() % 10)+1; // Genera un valor entre 1 y 10.
    a = (rand() % 10)+1; // Genera un valor entre 1 y 10.
    resultado = a * t;
    cout << "Cuanto es " << t << " X " << a << " ? ";
    cin >> respuesta;
    if(respuesta==resultado)
    {
        cout << "Muy bien!" << endl;
    }
    else
    {
        cout << "Incorrecto... La respuesta correcta es: " << resultado << endl;
    }
    return 0;
}

TAREA PARA EL HOGAR

  1. Crear un programa que nos pregunte qué tabla de multiplicar queremos practicar.
  2. Crear una nueva versión del programa que nos deje intentar varias veces dar con el resultado correcto.
  3. Modificar el programa anterior para practicar las tablas por rango, por ejemplo, poder ingresar 3 y luego 5, permitiendo practicar las tablas del 3, 4 o 5 aleatoriamente.