Plantillas para trabajar el tema de matrices en programacion

Iniciado por Alexis paniagua, Abril 07, 2025, 08:51:55 PM

Tema anterior - Siguiente tema

0 Miembros y 3 Visitantes están viendo este tema.

#include <iostream>
#include <string>
using namespace std;

// Constantes para las dimensiones de la matriz
const int EMPRESAS = 20;
const int CIUDADES = 6;

// Función para leer los datos de la matriz
void leerDatos(double ventas[EMPRESAS][CIUDADES]) {
    cout << "Ingrese los datos de ventas de las empresas en las ciudades:\n";
    for (int i = 0; i < EMPRESAS; i++) {
        cout << "Empresa " << i + 1 << ":\n";
        for (int j = 0; j < CIUDADES; j++) {
            cout << "Ciudad " << j + 1 << ": ";
            cin >> ventas[j];
        }
    }
}

// Función para calcular el valor total de todas las ventas
double valorTotal(double ventas[EMPRESAS][CIU6DADES]) {
    double total = 0;
    for (int i = 0; i < EMPRESAS; i++) {
        for (int j = 0; j < CIUDADES; j++) {
            total += ventas[j];
        }
    }
    return total;
}

// Función para calcular la venta promedio de todas las empresas
double ventaPromedio(double ventas[EMPRESAS][CIUDADES]) {
    double promedio = valorTotal(ventas) / (EMPRESAS * CIUDADES);
    return promedio;
}

// Función para contar la cantidad de ventas superiores al promedio
int ventasSuperiores(double ventas[EMPRESAS][CIUDADES]) {
    int contador = 0;
    double promedio = ventaPromedio(ventas);
    for (int i = 0; i < EMPRESAS; i++) {
        for (int j = 0; j < CIUDADES; j++) {
            if (ventas[j] > promedio) {
                contador++;
            }
        }
    }
    return contador;
}

// Función para contar la cantidad de ventas inferiores o iguales al promedio
int ventasInferiores(double ventas[EMPRESAS][CIUDADES]) {
    int contador = 0;
    double promedio = ventaPromedio(ventas);
    for (int i = 0; i < EMPRESAS; i++) {
        for (int j = 0; j < CIUDADES; j++) {
            if (ventas[j] <= promedio) {
                contador++;
            }
        }
    }
    return contador;
}

// Función para contar la cantidad de ventas iguales a cero
int ventasCero(double ventas[EMPRESAS][CIUDADES]) {
    int contador = 0;
    for (int i = 0; i < EMPRESAS; i++) {
        for (int j = 0; j < CIUDADES; j++) {
            if (ventas[j] == 0) {
                contador++;
            }
        }
    }
    return contador;
}

// Función para encontrar la mayor venta y sus posiciones
void mayorVenta(double ventas[EMPRESAS][CIUDADES], string ciudades[CIUDADES]) {
    double mayor = ventas[0][0];
    int fila_mayor = 0;
    int columna_mayor = 0;
   
    // Buscamos el mayor valor en la matriz
    for (int i = 0; i < EMPRESAS; i++) {
        for (int j = 0; j < CIUDADES; j++) {
            if (ventas[j] > mayor) {
                mayor = ventas[j];
                fila_mayor = i;
                columna_mayor = j;
            }
        }
    }

    // Mostramos el mayor valor y su posición
    cout << "La mayor venta es: " << mayor << "\n";
    cout << "La empresa que realizó la mayor venta es: " << fila_mayor + 1 << "\n";
    cout << "La ciudad donde se realizó la mayor venta es: " << ciudades[columna_mayor] << "\n";
}

// Función para encontrar la menor venta y sus posiciones
void menorVenta(double ventas[EMPRESAS][CIUDADES], string ciudades[CIUDADES]) {
    double menor = ventas[0][0];
    int fila_menor = 0;
    int columna_menor = 0;
   
    // Buscamos el menor valor en la matriz
    for (int i = 0; i < EMPRESAS; i++) {
        for (int j = 0; j < CIUDADES; j++) {
            if (ventas[j] < menor) {
                menor = ventas[j];
                fila_menor = i;
                columna_menor = j;
            }
        }
    }

    // Mostramos el menor valor y su posición
    cout << "La menor venta es: " << menor << "\n";
    cout << "La empresa que realizó la menor venta es: " << fila_menor + 1 << "\n";
    cout << "La ciudad donde se realizó la menor venta es: " << ciudades[columna_menor] << "\n";
}

// Función para leer el valor de una venta y decir si alguna empresa tiene ese valor exacto y la ciudad
void buscarVenta(double ventas[EMPRESAS][CIUDADES], string ciudades[CIUDADES]) {
    double valor;
    bool encontrado = false;

    // Pedimos al usuario que ingrese el valor a buscar
    cout << "Ingrese el valor de la venta a buscar: ";
    cin >> valor;

    // Recorremos la matriz buscando el valor
    for (int i = 0; i < EMPRESAS; i++) {
        for (int j = 0; j < CIUDADES; j++) {
            if (ventas[j] == valor) {
                // Si encontramos el valor, mostramos la empresa y la ciudad
                cout << "La empresa " << i + 1 << " tiene una venta de " << valor << " en la ciudad de " << ciudades[j] << "\n";
                encontrado = true;
            }
        }
    }

    // Si no encontramos el valor, mostramos un mensaje
    if (!encontrado) {
        cout << "Ninguna empresa tiene una venta de " << valor << "\n";
    }
}

// Función para contar la cantidad de ventas entre $500.000 y $1.000.000 en las primeras 10 empresas
int ventasRango(double ventas[EMPRESAS][CIUDADES]) {
    int contador = 0;

    // Recorremos las primeras 10 filas de la matriz
    for (int i = 0; i < 10; i++) {
        for (int j = 0; j < CIUDADES; j++) {
            // Si la venta está en el rango, incrementamos el contador
            if (ventas[j] >= 500000 && ventas[j] <= 1000000) {
                contador++;
            }
        }
    }

    return contador;
}

// Función para calcular la venta total de las primeras cuatro ciudades
double ventaCiudades(double ventas[EMPRESAS][CIUDADES]) {
    double total = 0;

    // Recorremos las primeras cuatro columnas de la matriz
    for (int i = 0; i < EMPRESAS; i++) {
        for (int j = 0; j < 4; j++) {
            total += ventas[j];
        }
    }

    return total;
}

// Función para contar la cantidad de ventas superiores a $1.000.000 en las ciudades Medellín, Cali y Cartagena
int ventasMillon(double ventas[EMPRESAS][CIUDADES]) {
    int contador = 0;

    // Recorremos las columnas correspondientes a Medellín (0), Cali (2) y Cartagena (4)
    for (int i = 0; i < EMPRESAS; i++) {
        for (int j = 0; j < CIUDADES; j += 2) {
            // Si la venta es superior a un millón, incrementamos el contador
            if (ventas[j] > 1000000) {
                contador++;
            }
        }
    }

    return contador;
}

// Función para calcular la venta total de las 10 últimas empresas
double ventaEmpresas(double ventas[EMPRESAS][CIUDADES]) {
    double total = 0;

    // Recorremos las últimas 10 filas de la matriz
    for (int i = 10; i < EMPRESAS; i++) {
        for (int j = 0; j < CIUDADES; j++) {
            total += ventas[j];
        }
    }

    return total;
}


#include <iostream>
#include <vector>

using namespace std;

// Función para calcular el promedio de un vector de números
double calcularPromedio(const vector<int>& numeros) {
    int suma = 0;
    for (int num : numeros) {
        suma += num;
    }
    return static_cast<double>(suma) / numeros.size();
}

// Función para calcular el total de las compras de las últimas 5 jugueterías
int calcularTotalUltimasJugueterias(const vector<vector<int>>& matriz) {
    int total = 0;
    int numJugueterias = matriz[0].size();
    for (int i = numJugueterias - 5; i < numJugueterias; i++) {
        for (int j = 0; j < 12; j++) {
            total += matriz[j];
        }
    }
    return total;
}

// Función para contar las compras iguales a cero en el primer semestre de las primeras 2 jugueterías
int contarComprasIgualesACero(const vector<vector<int>>& matriz) {
    int count = 0;
    for (int i = 0; i < 2; i++) {
        for (int j = 0; j < 6; j++) {
            if (matriz[j] == 0) {
                count++;
            }
        }
    }
    return count;
}

// Función para encontrar el mes y la juguetería con la mayor compra en la triangular superior
pair<int, int> encontrarMayorCompraTriangularSuperior(const vector<vector<int>>& matriz) {
    int maxCompra = 0;
    pair<int, int> posicionMax;
    int numJugueterias = matriz[0].size();
    for (int i = 0; i < 12; i++) {
        for (int j = i + 1; j < numJugueterias; j++) {
            if (matriz[j] > maxCompra) {
                maxCompra = matriz[j];
                posicionMax = make_pair(i, j);
            }
        }
    }
    return posicionMax;
}

// Función para encontrar la menor compra diferente de cero de las 2 primeras y 2 últimas jugueterías
pair<int, int> encontrarMenorCompra(const vector<vector<int>>& matriz) {
    int minCompra = numeric_limits<int>::max();
    pair<int, int> posicionMin;
    int numJugueterias = matriz[0].size();
    for (int i = 0; i < 2; i++) {
        for (int j = 0; j < 2; j++) {
            if (matriz[j] != 0 && matriz[j] < minCompra) {
                minCompra = matriz[j];
                posicionMin = make_pair(j, i);
            }
        }
        for (int j = numJugueterias - 2; j < numJugueterias; j++) {
            if (matriz[j] != 0 && matriz[j]

#include <iostream>
#include <vector>
#include <string>

using namespace std;

const int NUM_MESES = 12;

struct Jugueteria {
    string nombre;
    vector<vector<int>> compras;
};

void imprimirInformacionMes(const Jugueteria& jugueteria, int mes) {
    if (mes < 1 || mes > NUM_MESES) {
        cout << "Mes inválido." << endl;
        return;
    }

    cout << "Información del mes " << mes << ":" << endl;

    for (int i = 0; i < jugueteria.compras.size(); i++) {
        cout << "Juguetería: " << jugueteria.nombre << endl;
        cout << "Compras: ";

        for (int j = 0; j < jugueteria.compras.size(); j++) {
            cout << jugueteria.compras[j] << " ";
        }

        cout << endl;
    }
}

void imprimirInformacionJugueteria(const vector<Jugueteria>& jugueterias, const string& nombre) {
    bool encontrada = false;

    for (const Jugueteria& jugueteria : jugueterias) {
        if (jugueteria.nombre == nombre) {
            encontrada = true;

            cout << "Información de la juguetería " << nombre << ":" << endl;

            for (int i = 0; i < NUM_MESES; i++) {
                cout << "Mes " << (i + 1) << ": ";

                if (i < jugueteria.compras.size()) {
                    for (int j = 0; j < jugueteria.compras.size(); j++) {
                        cout << jugueteria.compras[j] << " ";
                    }
                } else {
                    cout << "No hay información.";
                }

                cout << endl;
            }

            break;
        }
    }

    if (!encontrada) {
        cout << "La juguetería " << nombre << " no existe." << endl;
    }
}

double calcularPromedio(const vector<int>& datos) {
    if (datos.empty()) {
        return 0.0;
    }

    int suma = 0;

    for (int dato : datos) {
        suma += dato;
    }

    return static_cast<double>(suma) / datos.size();
}

int contarComprasInferiores(const vector<int>& datos, int limite) {
    int contador = 0;

    for (int dato : datos) {
        if (dato < limite) {
            contador++;
        }
    }

    return contador;
}

int encontrarValorMaximo(const vector<int>& datos) {
    int maximo = datos[0];

    for (int dato : datos) {
        if (dato > maximo) {
            maximo = dato;
        }
    }

    return maximo;
}

int encontrarValorMinimoDiferenteDeCero(const vector<int>& datos) {
    int minimo = 0;

    for (int dato : datos) {
        if (dato != 0)


```cpp
#include <iostream>
#include <vector>
#include <string>

using namespace std;

const int NUM_MESES = 12;

struct Jugueteria {
    string nombre;
    vector<vector<int>> compras;
};

void imprimirInformacionMes(const Jugueteria& jugueteria, int mes) {
    if (mes < 1 || mes > NUM_MESES) {
        cout << "Mes inválido." << endl;
        return;
    }

    cout << "Información del mes " << mes << ":" << endl;

    for (int i = 0; i < jugueteria.compras.size(); i++) {
        cout << "Juguetería: " << jugueteria.nombre << endl;

include <iostream>
#include <vector>
#include <string>

// Definición de constantes
const int NUM_MESES = 12;
const int NUM_JUGUETERIAS = 0;  // Aquí debes reemplazar 0 por el valor correspondiente

// Función para verificar si un número es múltiplo de 3
bool esMultiploDe3(int numero) {
    return numero % 3 == 0;
}

// Función para verificar si un número es múltiplo de 10
bool esMultiploDe10(int numero) {
    return numero % 10 == 0;
}

// Función para imprimir el contenido de un vector
void imprimirVector(const std::vector<int>& vector) {
    for (int i = 0; i < vector.size(); ++i) {
        std::cout << vector << " ";
    }
    std::cout << std::endl;
}