Ejercicios con matrices en C++

Matrices en C++

En esta entrada vamos a resolver el siguiente ejercicio con matrices en C++. Recordemos que una matriz es un array o arreglo, el cual es una estructura de datos cuyos elementos son del mismo tipo. Un arreglo tiene dimensiones. A los arreglos de una dimensión se les conoce como vectores; a los de dos dimensiones se les suele llamar matrices o tablas y a los de 3 a más dimensiones simplemente arreglos de N dimensiones.

matrices en c++

Operaciones en C++

A continuación se presenta un resumen de algunas de las operaciones más comunes:

  1. Declaración de una matriz: Para declarar una matriz en C++, se utiliza la siguiente sintaxis:
				
					tipo nombre_matriz [num_filas] [num_columnas];
				
			

Donde “tipo” es el tipo de dato de los elementos de la matriz, “nombre_matriz” es el nombre que se le da a la matriz, “num_filas” es el número de filas de la matriz y “num_columnas” es el número de columnas de la matriz.

  1. Inicialización de una matriz: Para inicializar una matriz en C++, se utiliza la siguiente sintaxis:
				
					tipo nombre_matriz [num_filas] [num_columnas] = {{valores_fila1}, {valores_fila2}, ... , {valores_filaN}};

				
			

Donde “tipo” es el tipo de dato de los elementos de la matriz, “nombre_matriz” es el nombre que se le da a la matriz, “num_filas” es el número de filas de la matriz, “num_columnas” es el número de columnas de la matriz y “valores_filaX” son los valores que se le asignan a la fila X.

  1. Acceso a elementos de una matriz: Para acceder a un elemento específico de una matriz en C++, se utiliza la siguiente sintaxis:
				
					nombre_matriz[fila][columna]

				
			

Donde “nombre_matriz” es el nombre de la matriz, “fila” es el número de la fila del elemento que se quiere acceder y “columna” es el número de la columna del elemento que se quiere acceder.

  1. Suma de matrices: La suma de matrices se realiza sumando los elementos correspondientes de las dos matrices. Para realizar esta operación en C++, se puede utilizar el siguiente código:
				
					for (int i = 0; i < num_filas; i++) {
    for (int j = 0; j < num_columnas; j++) {
        matriz_resultado[i][j] = matriz1[i][j] + matriz2[i][j];
    }
}

				
			
  1. Multiplicación de matrices: La multiplicación de matrices se realiza multiplicando cada elemento de una fila de la primera matriz por cada elemento de una columna de la segunda matriz y sumando los resultados. Para realizar esta operación en C++, se puede utilizar el siguiente código:
				
					for (int i = 0; i < num_filas_matriz1; i++) {
    for (int j = 0; j < num_columnas_matriz2; j++) {
        matriz_resultado[i][j] = 0;
        for (int k = 0; k < num_columnas_matriz1; k++) {
            matriz_resultado[i][j] += matriz1[i][k] * matriz2[k][j];
        }
    }
}

				
			

Estas son solo algunas de las operaciones que se pueden realizar con matrices en C++. Es importante tener en cuenta que las matrices deben ser del mismo tamaño para poder realizar algunas de estas operaciones.

Ejercicio de programación usando matrices en C++

El siguiente ejercicio nos permitirá poner a prueba los conocimientos que tengamos sobre el uso de matrices en C++. Se necesitarán conocer conceptos básicos como matriz, diagonal principal y transpuesta de una matriz.

Escriba un programa en C++ que permita realizar lo siguiente (usando matrices):

    a) Almacene números aleatorios (menores o iguales a 10) en una matriz de 5 * 6. 
    b) Recorra la matriz: mostrando sus elementos
    c) Imprima la suma de los números almacenados en la matriz. 
    d) Imprima la suma de los números pares almacenados en la matriz
    e) Imprima la suma de los números impares almacenados en la matriz
    f) Imprima la suma de cada columnas
    g) Imprima la suma de cada fila
    h) Imprima la suma de los elementos de la diagonal principal
    i) Imprima la transpuesta de la matriz

Captura de pantalla del programa

Código fuente

				
					/* Hacer un algoritmo que:
	a) Almacene números aleatorios (menores o iguales a 10) en una matriz de 5 * 6. 
	b) Recorra la matriz: mostrando sus elementos
	c) Imprima la suma de los números almacenados en la matriz. 
	d) Imprima la suma de los números pares almacenados en la matriz
	e) Imprima la suma de los números impares almacenados en la matriz
	f) Imprima la suma de cada columnas
	g) Imprima la suma de cada fila
	h) Imprima la suma de los elementos de la diagonal principal
	i) Imprima la transpuesta de la matriz
	*/

#include <iostream>
#include <cstdlib>
#include <ctime>

#define FILAS 5
#define COLUMNAS 6
#define MAX_VALOR 10

using namespace std;

void llenarMatriz(int matriz[FILAS][COLUMNAS], int filas, int columnas);
void mostrarMatriz(int matriz[FILAS][COLUMNAS], int filas, int columnas);
int sumarElementosMatriz(int matriz[FILAS][COLUMNAS], int filas, int columnas);
int sumarParesMatriz(int matriz[FILAS][COLUMNAS], int filas, int columnas);
int sumarImparesMatriz(int matriz[FILAS][COLUMNAS], int filas, int columnas);
void mostrarSumaColumnas(int matriz[FILAS][COLUMNAS], int filas, int columnas);
void mostrarSumaFilas(int matriz[FILAS][COLUMNAS], int filas, int columnas);
void mostrarMatrizTranspuesta(int matriz[FILAS][COLUMNAS], int filas, int columnas);

int main() {
	srand(time(NULL));

	// Se declara la matriz
	int matriz[FILAS][COLUMNAS];
	int suma = 0;
	int sumaPares = 0;
	int sumaImpares = 0;
	int sumaDiagonalPrincipal = 0;

	// a) Almacene números aleatorios (menores que 100) en una matriz de 5 * 6. 
	llenarMatriz(matriz, FILAS, COLUMNAS);

	// b) Recorra la matriz: mostrando sus elementos
	mostrarMatriz(matriz, FILAS, COLUMNAS);

	// c) Imprima la suma de los números almacenados en la matriz
	suma = sumarElementosMatriz(matriz, FILAS, COLUMNAS);
	cout << "\nLa suma de los elementos de la matriz es: " << suma << endl;

	// d) Imprima la suma de los números pares almacenados en la matriz
	sumaPares = sumarParesMatriz(matriz, FILAS, COLUMNAS);
	cout << "\nLa suma de los numeros PARES de la matriz es: " << sumaPares << endl;
	
	// e) Imprima la suma de los números impares almacenados en la matriz
	sumaImpares = sumarImparesMatriz(matriz, FILAS, COLUMNAS);
	cout << "\nLa suma de los numeros IMPARES de la matriz es: " << sumaImpares << endl;

	// f) Imprima la suma de cada columnas
	mostrarSumaColumnas(matriz, FILAS, COLUMNAS);
	
	// g) Imprima la suma de cada fila
	mostrarSumaFilas(matriz, FILAS, COLUMNAS);

	// i) Imprima la transpuesta de la matriz
	mostrarMatrizTranspuesta(matriz, FILAS, COLUMNAS);
	return 0;
}

void llenarMatriz(int matriz[FILAS][COLUMNAS], int filas, int columnas) {
	for (int i = 0; i < filas; ++i) {
		for (int j = 0; j < columnas; ++j) {
			matriz[i][j] = rand() % (MAX_VALOR + 1); // números aleatorios menores o iguales a MAX_VALOR
		}
	}
}

void mostrarMatriz(int matriz[FILAS][COLUMNAS], int filas, int columnas) {
	cout << "La matriz es: " << endl;
	for (int i = 0; i < filas; ++i) {
		for (int j = 0; j < columnas; ++j) {
			cout << "\t" << matriz[i][j];
		}
		cout << endl;
	}
}

int sumarElementosMatriz(int matriz[FILAS][COLUMNAS], int filas, int columnas) {
	int suma = 0;
	for (int i = 0; i < filas; ++i) {
		for (int j = 0; j < columnas; ++j) {
			suma += matriz[i][j];
		}
	}

	return suma;
}

int sumarParesMatriz(int matriz[FILAS][COLUMNAS], int filas, int columnas) {
	int suma = 0;
	for (int i = 0; i < filas; ++i) {
		for (int j = 0; j < columnas; ++j) {
			if (matriz[i][j] % 2 == 0) {
				suma += matriz[i][j];
			}
		}
	}

	return suma;
}

int sumarImparesMatriz(int matriz[FILAS][COLUMNAS], int filas, int columnas) {
	int suma = 0;
	for (int i = 0; i < filas; ++i) {
		for (int j = 0; j < columnas; ++j) {
			if (matriz[i][j] % 2 != 0) {
				suma += matriz[i][j];
			}
		}
	}

	return suma;
}

void mostrarSumaColumnas(int matriz[FILAS][COLUMNAS], int filas, int columnas) {
	int suma = 0;
	cout << "\n";
	for (int j = 0; j < columnas; ++j) {
		suma = 0;
		for (int i = 0; i < filas; ++i) {
			suma += matriz[i][j];
		}
		cout << "La suma de la columna " << j << " es: " << suma << endl;
	}
}

void mostrarSumaFilas(int matriz[FILAS][COLUMNAS], int filas, int columnas) {
	int suma = 0;
	cout << "\n";
	for (int i = 0; i < filas; ++i) {
		suma = 0;
		for (int j = 0; j < columnas; ++j) {
			suma += matriz[i][j];
		}
		cout << "La suma de la fila " << i << " es: " << suma << endl;
	}
}

void mostrarMatrizTranspuesta(int matriz[FILAS][COLUMNAS], int filas, int columnas) {
	cout << "\nLa matriz transpuesta es: " << endl;
	for (int j = 0; j < columnas; ++j) {
		for (int i = 0; i < filas; ++i) {
			cout << "\t" << matriz[i][j];
		}
		cout << endl;
	}
}
				
			

Plantillas de menús de Opciones en Pseint con pseudocódigo y diagramas de flujo

Menús de opciones en Pseint

Un menú de opciones es una lista de opciones que se muestran al usuario, y el usuario puede seleccionar una de ellas para realizar una acción determinada.

En esta publicación te voy a mostrar algunas plantillas básicas de menús de opciones en Pseint los cuales podrás estudiarlos o utilizarlos en tus proyectos de programación. Si deseas ver la publicación sobre menú de opciones en lenguaje C++ lo encuentras en este enlace: https://algoritmosyalgomas.com/plantilla-de-un-menu-de-opciones-en-c/

Menús de opciones en Pseint​

1. Menú de opciones simple en Pseint

Comenzamos con la plantilla inicial para el menú de opciones más simple de todos. Este menú consta de un título descriptivo, un conjunto de opciones entre las que no debe faltar la opción para SALIR y por último, la línea en donde se le pide al usuario que ingrese una opción. 

Ejemplo:

Título: Menu de opciones

Opciones:

  • Opcion 1
  • Opcion 2
  • Opcion 3
  • Opcion 4
  • SALIR

Texto: “Ingrese una opcion”. Inmediatamente después de imprimir este texto, se realiza la lectura de lo que el usuario introduzca.

1.1 Pseudocódigo en Pseint

				
					Proceso Menu1
	Definir opcion como Entero
	Definir repite Como Logico
	Definir linea como Caracter
    
	repite = Verdadero
	Hacer
		Escribir "MENU DE OPCIONES"
		Escribir "1. Opcion 1"
		Escribir "2. Opcion 2"
		Escribir "3. Opcion 3"
		Escribir "4. Opcion 4"
		Escribir "0. SALIR"
		
		Escribir "Ingrese una opcion: "
		Leer opcion
		
		Segun opcion Hacer
			1:
				Escribir "Instrucciones de la opcion 1"
				Leer linea
			2:
				Escribir "Instrucciones de la opcion 2"
				Leer linea
			3:
				Escribir "Instrucciones de la opcion 3"
				Leer linea
			4:
				Escribir "Instrucciones de la opcion 4"
				Leer linea
			0:
				repite = Falso
		Fin Segun
		
	Hasta Que (repite = Falso)
    
FinProceso
				
			

1.2 Diagrama de flujo

2. Menú de opciones con operaciones matemáticas

Para esta segunda parte vamos a poner en práctica la realización de un menú de opciones en donde para cada opción se realice una operación matemática básica (opción 1: sumar, opción 2: restar, opción 3: multiplicar, opción 4: dividir y opción 5: salir).

Para ello contamos con la siguiente estructura:

Título: Menu de opciones

Opciones:

    • Sumar dos números
    • Restar dos números
    • Multiplicar dos números
    • Dividir dos números
    • SALIR

Texto para pedir ingreso por teclado de la opción deseada: “Ingrese una opcion”.

Inmediatamente después de pedir al usuario que ingrese la opción deseada, se realiza la lectura de la opción y se almacena en una variable entera.

2.1 Pseudocódigo en Pseint

				
					
Proceso Menu2
	Definir opcion como Entero
	Definir repite Como Logico
	Definir linea como Caracter
	Definir numero1, numero2 Como Entero
	Definir resultado Como Real
    
	repite = Verdadero
	Hacer
		Escribir "MENU DE OPCIONES"
		Escribir "1. Sumar dos numeros"
		Escribir "2. Restar dos numeros"
		Escribir "3. Multiplicar dos numeros"
		Escribir "4. Dividir dos numeros"
		Escribir "0. SALIR"
		
		Escribir "Ingrese una opcion: "
		Leer opcion
		
		Segun opcion Hacer
			1:
				Escribir "Ingrese primer numero: "
				Leer numero1
				
				Escribir "Ingrese segundo numero: "
				Leer numero2
				
				resultado <- numero1 + numero2;
				
				Escribir "Resultado: ", resultado
				Leer linea
			2:
				Escribir "Ingrese primer numero: "
				Leer numero1
				
				Escribir "Ingrese segundo numero: "
				Leer numero2
				
				resultado <- numero1 - numero2;
				
				Escribir "Resultado: ", resultado
				Leer linea
			3:
				Escribir "Ingrese primer numero: "
				Leer numero1
				
				Escribir "Ingrese segundo numero: "
				Leer numero2
				
				resultado <- numero1 * numero2;
				
				Escribir "Resultado: ", resultado
				Leer linea
			4:
				Escribir "Ingrese primer numero: "
				Leer numero1
				
				Escribir "Ingrese segundo numero: "
				Leer numero2
				
				Si numero2 = 0 Entonces
					Escribir "No se puede dividir por cero"
				SiNo
					resultado <- numero1 / numero2
					Escribir "Resultado: ", resultado
				Fin Si
				
				Leer linea
			0:
				repite = Falso
		Fin Segun
		
	Hasta Que (repite = Falso)
    
FinProceso
				
			

2.2 Diagrama de flujo

3. Menú de opciones con llamadas a subprocesos

Este ejemplo es un poco más elaborado ya que se empieza a dividir el código total en otros subprocesos Esto permite separar la lógica entera del programa en subprogramas más pequeños.

3.1 Pseudocódigo en Pseint

				
					SubProceso sumar()
	Definir numero1, numero2 Como Entero
	Definir resultado Como Real
	
	Escribir "Ingrese primer numero: "
	Leer numero1
	
	Escribir "Ingrese segundo numero: "
	Leer numero2
	
	resultado <- numero1 + numero2;
	
	Escribir "Resultado: ", resultado
Fin SubProceso

SubProceso restar()
	Definir numero1, numero2 Como Entero
	Definir resultado Como Real
	
	Escribir "Ingrese primer numero: "
	Leer numero1
	
	Escribir "Ingrese segundo numero: "
	Leer numero2
	
	resultado <- numero1 - numero2;
	
	Escribir "Resultado: ", resultado
Fin SubProceso

SubProceso multiplicar()
	Definir numero1, numero2 Como Entero
	Definir resultado Como Real
	
	Escribir "Ingrese primer numero: "
	Leer numero1
	
	Escribir "Ingrese segundo numero: "
	Leer numero2
	
	resultado <- numero1 * numero2;
	
	Escribir "Resultado: ", resultado
Fin SubProceso

SubProceso dividir()
	Escribir "Ingrese primer numero: "
	Leer numero1
	
	Escribir "Ingrese segundo numero: "
	Leer numero2
	
	Si numero2 = 0 Entonces
		Escribir "No se puede dividir por cero"
	SiNo
		resultado <- numero1 / numero2
		Escribir "Resultado: ", resultado
	Fin Si
Fin SubProceso

Proceso Menu3
	Definir opcion como Entero
	Definir repite Como Logico
	Definir linea como Caracter
	Definir numero1, numero2 Como Entero
	Definir resultado Como Real
    
	repite = Verdadero
	Hacer
		Escribir "MENU DE OPCIONES"
		Escribir "1. Sumar dos numeros"
		Escribir "2. Restar dos numeros"
		Escribir "3. Multiplicar dos numeros"
		Escribir "4. Dividir dos numeros"
		Escribir "0. SALIR"
		
		Escribir "Ingrese una opcion: "
		Leer opcion
		
		Segun opcion Hacer
			1:
				sumar()
				Leer linea
			2:
				restar()
				Leer linea
			3:
				multiplicar()
				Leer linea
			4:
				dividir()
				Leer linea
			0:
				repite = Falso
		Fin Segun
		
	Hasta Que (repite = Falso)
    
FinProceso

				
			

3.2 Diagrama de flujo

4. Menú de opciones con submenús usando subprocesos​

Este es un ejemplo de menú de opciones más avanzando. Se utilizan subprocesos para el menú principal, los submenus y las operaciones de cada una de las opciones de los menús. Además se puede ir navegando avanzando y retrocediendo por todas las opciones.

4.1 Pseudocódigo en Pseint

				
					SubProceso menuOperacionesBasicas
	Definir opcion como Entero
	Definir repite Como Logico
	Definir linea como Caracter
    
	repite = Verdadero
	Hacer
		Escribir "MENU OPERACIONES BÁSICAS"
		Escribir "------------------------"
		Escribir "1. Sumar"
		Escribir "2. Restar"
		Escribir "3. Multiplicar"
		Escribir "4. Dividir"
		Escribir "0. REGRESAR"
		
		Escribir "Ingrese una opcion: "
		Leer opcion
		
		Segun opcion Hacer
			1:
				sumar()
			2:
				restar()
			3:
				multiplicar()
			4:
				dividir()
			0:
				repite = Falso
		Fin Segun
		
	Hasta Que (repite = Falso)
Fin SubProceso

SubProceso menuOperacionesVariadas
	Definir opcion como Entero
	Definir repite Como Logico
	Definir linea como Caracter
    
	repite = Verdadero
	Hacer
		Escribir "MENU OPERACIONES VARIADAS"
		Escribir "-------------------------"
		Escribir "1. Número y día"
		Escribir "2. Suma de los primeros n números naturales"
		Escribir "3. Factorial de un número"
		Escribir "4. Invertir un número de 4 cifras"
		Escribir "0. REGRESAR"
		
		Escribir "Ingrese una opcion: "
		Leer opcion
		
		Segun opcion Hacer
			1:
				numeroDia()
			2:
				sumaPrimerosNumeros()
			3:
				factorial()
			4:
				invertirNumero4Cifras()
			0:
				repite = Falso
		Fin Segun
		
	Hasta Que (repite = Falso)
Fin SubProceso

SubProceso sumar()
	Definir numero1, numero2 Como Entero
	Definir resultado Como Real
	
	Escribir "Ingrese primer numero: "
	Leer numero1
	
	Escribir "Ingrese segundo numero: "
	Leer numero2
	
	resultado <- numero1 + numero2;
	
	Escribir "Resultado: ", resultado
	Leer linea
Fin SubProceso

SubProceso restar()
	Definir numero1, numero2 Como Entero
	Definir resultado Como Real
	
	Escribir "Ingrese primer numero: "
	Leer numero1
	
	Escribir "Ingrese segundo numero: "
	Leer numero2
	
	resultado <- numero1 - numero2;
	
	Escribir "Resultado: ", resultado
	Leer linea
Fin SubProceso

SubProceso multiplicar()
	Definir numero1, numero2 Como Entero
	Definir resultado Como Real
	
	Escribir "Ingrese primer numero: "
	Leer numero1
	
	Escribir "Ingrese segundo numero: "
	Leer numero2
	
	resultado <- numero1 * numero2;
	
	Escribir "Resultado: ", resultado
	Leer linea
Fin SubProceso

SubProceso dividir()
	Escribir "Ingrese primer numero: "
	Leer numero1
	
	Escribir "Ingrese segundo numero: "
	Leer numero2
	
	Si numero2 = 0 Entonces
		Escribir "No se puede dividir por cero"
	SiNo
		resultado <- numero1 / numero2
		Escribir "Resultado: ", resultado
	Fin Si
	Leer linea
Fin SubProceso

SubProceso numeroDia()
	Definir dia como Entero
	
	Escribir "CONVIERTE NUMERO A DIA"
	Escribir "Ingrese el numero de día: "
	Leer dia
	
	Segun dia Hacer
		1:
			Escribir "Lunes"
		2:
			Escribir "Martes"
		3:
			Escribir "Miércoles"
		4:
			Escribir "Jueves"
		5:
			Escribir "Viernes"
		6:
			Escribir "Sábado"
		7:
			Escribir "Domingo"
		
		De Otro Modo:
			Escribir "Ingresa un día de 1 a 7"
	Fin Segun
	Leer linea
Fin SubProceso

SubProceso sumaPrimerosNumeros()
	Definir n, suma como Entero
	
	Escribir "SUMA DE LOS PRIMEROS N NUMEROS"
	Escribir "Ingrese número n: "
	Leer n
	
	suma <- n * (n + 1) / 2
	Escribir "La suma de los primeros n números es = ", suma
	Leer linea
Fin SubProceso

SubProceso factorial()
	Definir numero, i como Entero
	Definir facto como Real
	
	Escribir "FACTORIAL DE UN NÚMERO"
	Escribir "Ingrese el número: "
	Leer numero
	
	
	facto <- 1
	Para i<-1 Hasta numero Con Paso 1 Hacer
		facto <- facto * i
	Fin Para
	
	Escribir "Factorial de ", numero, " es ", facto
	Leer linea
Fin SubProceso

SubProceso invertirNumero4Cifras()
	Definir numero como Entero
	Definir u, d, c, um, a, b, resultado como Entero
	
	Escribir "INVERTIR NÚMERO DE 4 CIFRAS"
	Escribir "Ingrese un número de cuatro cifras: "
	Leer numero
	
	um <- trunc(numero / 1000)
	a <- trunc(numero / 100)
	c <- a mod 10
	b <- trunc(numero / 10)
	d <- b mod 10
	u <- numero mod 10
	resultado = u * 1000 + d * 100 + c * 10 + um
	
	Escribir u, d, c, um
	Escribir "El numero invertido es: ", resultado
	Leer linea
Fin SubProceso

Proceso Menu4
	Definir opcion como Entero
	Definir repite Como Logico
	Definir linea como Caracter
	Definir numero1, numero2 Como Entero
	Definir resultado Como Real
    
	repite = Verdadero
	Hacer
		Escribir "MENU PRINCIPAL"
		Escribir "--------------"
		Escribir "1. Operaciones básicas"
		Escribir "2. Operaciones variadas"
		Escribir "0. SALIR"
		
		Escribir "Ingrese una opcion: "
		Leer opcion
		
		Segun opcion Hacer
			1:
				menuOperacionesBasicas()
			2:
				menuOperacionesVariadas()
			0:
				repite = Falso
		Fin Segun
		
	Hasta Que (repite = Falso)
    
FinProceso

				
			

4.2 Diagrama de flujo

4.3 Explicación del pseudocódigo

Este pseudocódigo contiene un menú de opciones que permite realizar diferentes operaciones básicas y variadas. El código principal se divide en dos subprocesos, menuOperacionesBasicas y menuOperacionesVariadas, que contienen cada uno un menú de opciones específico.

El SubProceso menuOperacionesBasicas muestra un menú de opciones para operaciones básicas (líneas 1-33). El usuario debe ingresar una opción para seleccionar la operación que desea realizar. Luego, un bloque Segun (líneas 19-30) selecciona el procedimiento correspondiente en función de la opción ingresada. Cada procedimiento muestra un mensaje para ingresar dos números y luego realiza la operación correspondiente (suma, resta, multiplicación o división). El resultado se muestra en pantalla y se espera a que el usuario presione cualquier tecla para continuar.

El SubProceso menuOperacionesVariadas muestra un menú de opciones para operaciones más variadas (líneas 35-67). Al igual que en el menú anterior, el usuario debe ingresar una opción para seleccionar la operación que desea realizar. Luego, un bloque Segun (líneas 53-64) selecciona el procedimiento correspondiente en función de la opción ingresada. Cada procedimiento realiza una operación específica como convertir un número en un día de la semana o calcular la suma de los primeros n números naturales.

Los subprocesos sumar, restar, multiplicar y dividir realizan las operaciones básicas correspondientes (líneas 69-131). Cada uno de ellos solicita al usuario que ingrese dos números, realiza la operación correspondiente y muestra el resultado en pantalla. El subproceso dividir incluye una comprobación para evitar la división por cero.