//OSCAR ALBERTO LEON SOBERANES
#include <iostream>
#include <cmath>
#include <algorithm> // Para std::sort
#include <vector> // Para std::vector
#ifndef M_PI
#define M_PI 3.14159265358979323846
#endif
using namespace std;
// Función para calcular el área de un círculo dado su radio
double calcularAreaCirculo(double radio) {
return M_PI * radio * radio;
}
// Función para calcular el área de un rectángulo dado su base y altura
double calcularAreaRectangulo(double base, double altura) {
return base * altura;
}
// Función para calcular el área de un triángulo dado su base y altura
double calcularAreaTriangulo(double base, double altura) {
return (base * altura) / 2.0;
}
// Función para ordenar un vector de números de mayor a menor
void ordenarDeMayorAMenor(vector<int>& numeros) {
sort([Link](), [Link](), greater<int>());
}
// Función para sumar dos matrices cuadradas 2x2
void sumarMatrices(int matriz1[2][2], int matriz2[2][2], int resultado[2][2]) {
for (int i = 0; i < 2; ++i) {
for (int j = 0; j < 2; ++j) {
resultado[i][j] = matriz1[i][j] + matriz2[i][j];
}
}
}
// Función principal del programa
int main() {
int opcion;
double radio;
double base, altura;
double resultado;
int num1, num2;
vector<int> numeros;
int matriz1[2][2], matriz2[2][2], matrizResultado[2][2];
do {
// Mostrar menú
cout << "------ MENU ------" << endl;
cout << "1. Calcular area de un circulo" << endl;
cout << "2. Calcular area de un rectangulo" << endl;
cout << "3. Calcular area de un triangulo" << endl;
cout << "4. Operaciones basicas" << endl;
cout << "5. Ordenar numeros de mayor a menor" << endl;
cout << "6. Sumar matrices 2x2" << endl;
cout << "7. Salir" << endl;
cout << "Ingrese su opcion: ";
cin >> opcion;
switch (opcion) {
case 1:
// Calcular area de un circulo
cout << "Ingrese el radio del circulo: ";
cin >> radio;
resultado = calcularAreaCirculo(radio);
cout << "El area del circulo es: " << resultado << endl;
break;
case 2:
// Calcular area de un rectangulo
cout << "Ingrese la base y altura del rectangulo separadas por espacio:
";
cin >> base >> altura;
resultado = calcularAreaRectangulo(base, altura);
cout << "El area del rectangulo es: " << resultado << endl;
break;
case 3:
// Calcular area de un triangulo
cout << "Ingrese la base y altura del triangulo separadas por espacio:
";
cin >> base >> altura;
resultado = calcularAreaTriangulo(base, altura);
cout << "El area del triangulo es: " << resultado << endl;
break;
case 4:
// Operaciones básicas
cout << "Ingrese dos numeros enteros: ";
cin >> num1 >> num2;
cout << "Suma: " << num1 + num2 << endl;
cout << "Resta: " << num1 - num2 << endl;
cout << "Multiplicacion: " << num1 * num2 << endl;
if (num2 != 0) {
cout << "Division: " << num1 / num2 << endl;
}
else {
cout << "No se puede dividir por cero." << endl;
}
break;
case 5:
// Ordenar números de mayor a menor
int n;
cout << "Ingrese la cantidad de numeros a ordenar: ";
cin >> n;
[Link]();
cout << "Ingrese los numeros separados por espacio: ";
for (int i = 0; i < n; ++i) {
int num;
cin >> num;
numeros.push_back(num);
}
ordenarDeMayorAMenor(numeros);
cout << "Numeros ordenados de mayor a menor: ";
for (int num : numeros) {
cout << num << " ";
}
cout << endl;
break;
case 6:
// Sumar matrices 2x2
cout << "Ingrese los elementos de la primera matriz 2x2:" << endl;
for (int i = 0; i < 2; ++i) {
for (int j = 0; j < 2; ++j) {
cin >> matriz1[i][j];
}
}
cout << "Ingrese los elementos de la segunda matriz 2x2:" << endl;
for (int i = 0; i < 2; ++i) {
for (int j = 0; j < 2; ++j) {
cin >> matriz2[i][j];
}
}
sumarMatrices(matriz1, matriz2, matrizResultado);
cout << "La suma de las matrices es:" << endl;
for (int i = 0; i < 2; ++i) {
for (int j = 0; j < 2; ++j) {
cout << matrizResultado[i][j] << " ";
}
cout << endl;
}
break;
case 7:
// Salir del programa
cout << "Saliendo del programa." << endl;
break;
default:
cout << "Opcion invalida. Por favor ingrese una opcion valida." <<
endl;
break;
}
// Limpiar el buffer de entrada
[Link]();
[Link](numeric_limits<streamsize>::max(), '\n');
// Preguntar si desea continuar
if (opcion != 7) {
cout << "Presione Enter para continuar...";
[Link]();
cout << endl;
}
} while (opcion != 7);
return 0;
}