• Ir al contenido
  • Ir a la navegación
  • Ir al buscador
 
Portada Boludo
ING English
Directorio WAP para móvil, Tablet, iPhone o Smartphone

Centro de Noticias de la Universidad de Oriente

Categorías

 

Inicio  |  Contacto  |  Posts  |  TIENDA PUBLISHOP  |  Sobre nosotros  |  Registro y Planes  |  Pagos  |  Donaciones

Ver Código QR de esta página

Campaña #AyudemosaYuli  |  Campaña #AyudemosaStephany.  |  ¿Interesado(a) en cursos y resolución de ejercicios de materias prácticas? Para más información, contáctenos por: Teléfono: +58 (412) - 8226575. WhatsApp y Telegram: +58 (426) - 6836955 o escriba al correo: [email protected]. Únete al grupo: SISTEMAS (UDOMO).

[»] **Musica para tu celular

WEB TRANSLATOR

LINK for English Language

Use this link for translate into English


+ Buscar en BolUDO

 

Matrices y vectores paralelos

Tweet
 

lunes julio 11, 2016

Dependiendo de la complejidad del problema podemos necesitar el empleo de vectores y matrices paralelos.

Problema 1:

Se tiene la siguiente información: · Nombres de 4 empleados. · Ingresos en concepto de sueldo, cobrado por cada empleado, en los últimos 3 meses. Confeccionar el programa para: a) Realizar la carga de la información mencionada. b) Generar un vector que contenga el ingreso acumulado en sueldos en los últimos 3 meses para cada empleado. c) Mostrar por pantalla el total pagado en sueldos a todos los empleados en los últimos 3 meses d) Obtener el nombre del empleado que tuvo el mayor ingreso acumulado vectores y matrices paralelos

Programa:

#include<iostream>

using namespace std;

class SueldoEmpleados {
private:
    char empleados[4][40];
    int sueldos[4][3];
    int sueldostot[4];
public:
    void cargar();
    void calcularSumaSueldos();
    void imprimirTotalPagado();
    void empleadoMayorSueldo();
};


void SueldoEmpleados::cargar()
{
    for(int f = 0; f < 4; f++)
    {
        cout <<"Ingrese el nombre del empleado:";
        cin.get(empleados[f],40);
        for(int c = 0; c < 3; c++) 
        {
            cout <<"Ingrese sueldo:";
            cin >>sueldos[f][c];
            cin.get();
        }
    }
}

void SueldoEmpleados::calcularSumaSueldos()
{
    for (int f = 0; f < 4; f++)
    {
        int suma = 0;
        for (int c = 0; c < 3; c++)
        {
            suma = suma + sueldos[f][c];
        }
        sueldostot[f] = suma;
    }
}

void SueldoEmpleados::imprimirTotalPagado() 
{
    cout <<"Total de sueldos pagados por empleado." <<"";
    for(int f = 0; f < 4; f++) 
    {
        cout <<empleados[f] <<" - " <<sueldostot[f] <<"";
    }
}

void SueldoEmpleados::empleadoMayorSueldo() 
{
    int may=sueldostot[0];
    char nom[40];
    strcpy_s(nom,40,empleados[0]);
    for(int f = 0; f < 4; f++) 
    {
        if (sueldostot[f] > may) 
        {
            may=sueldostot[f];
            strcpy_s(nom,40,empleados[f]);
        }
    }
    cout <<"El empleado con mayor sueldo es " <<nom  <<" que tiene un sueldo acumulado de " <<may;
    cin.get();
}

void main()
{
    SueldoEmpleados se;
    se.cargar();
    se.calcularSumaSueldos();
    se.imprimirTotalPagado();
    se.empleadoMayorSueldo();
}

Este proyecto lo puede descargar en un zip desde este enlace :

MatrizSueldoEmpleados.zip

Para resolver este problema lo primero que hacemos es definir una matriz donde se almacenarán los sueldos mensuales de cada empleado, un vector de tipo cadena de caracteres donde almacenaremos los nombre de cada empleado (técnicamente es una matriz de caracteres) y finalmente definimos un vector paralelo a la matriz donde almacenaremos la suma de cada fila de la matriz:

    char empleados[4][40];
    int sueldos[4][3];
    int sueldostot[4];

En el método de cargar inicializamos el vector con los nombres de los empleados y la matriz paralela donde se almacenan los últimos tres sueldos:

void SueldoEmpleados::cargar()
{
    for(int f = 0; f < 4; f++)
    {
        cout <<"Ingrese el nombre del empleado:";
        cin.get(empleados[f],40);
        for(int c = 0; c < 3; c++) 
        {
            cout <<"Ingrese sueldo:";
            cin >>sueldos[f][c];
            cin.get();
        }
    }
}

El método sumar sueldos mediante dos for recorremos toda la matriz y sumamos cada fila:

void SueldoEmpleados::calcularSumaSueldos()
{
    for (int f = 0; f < 4; f++)
    {
        int suma = 0;
        for (int c = 0; c < 3; c++)
        {
            suma = suma + sueldos[f][c];
        }
        sueldostot[f] = suma;
    }
}

El método imprimirTotalPagado tiene por objetivo mostrar los dos vectores (el de nombre de los empleados y el que almacena la suma de cada fila de la matriz):

void SueldoEmpleados::imprimirTotalPagado() 
{
    cout <<"Total de sueldos pagados por empleado." <<"";
    for(int f = 0; f < 4; f++) 
    {
        cout <<empleados[f] <<" - " <<sueldostot[f] <<"";
    }
}

Por último para obtener el nombre del empleado con mayor sueldo acumulado debemos inicializar dos variables auxiliares con el primer elemento del vector de empleados y en otra auxiliar guardamos la primer componente del vector sueldostot:

void SueldoEmpleados::empleadoMayorSueldo() 
{
    int may=sueldostot[0];
    char nom[40];
    strcpy_s(nom,40,empleados[0]);
    for(int f = 0; f < 4; f++) 
    {
        if (sueldostot[f] > may) 
        {
            may=sueldostot[f];
            strcpy_s(nom,40,empleados[f]);
        }
    }
    cout <<"El empleado con mayor sueldo es " <<nom  <<" que tiene un sueldo acumulado de " <<may;
    cin.get();
}
  1. Se desea saber la temperatura media trimestral de cuatro paises. Para ello se tiene como dato las temperaturas medias mensuales de dichos paises. Se debe ingresar el nombre del país y seguidamente las tres temperaturas medias mensuales. Seleccionar las estructuras de datos adecuadas para el almacenamiento de los datos en memoria. a - Cargar por teclado los nombres de los paises y las temperaturas medias mensuales. b - Imprimir los nombres de las paises y las temperaturas medias mensuales de las mismas. c - Calcular la temperatura media trimestral de cada país. c - Imprimr los nombres de las provincias y las temperaturas medias trimestrales. b - Imprimir el nombre de la provincia con la temperatura media trimestral mayor.
Solución
#include <iostream>

using namespace std;

class TemperaturaPaises {
private:
    int tempmen[4][3];
    char paises[4][40];
    int temptri[4];
public:
    void cargar();
    void imrimirTempMensuales();
    void calcularTemperaturaTri();
    void imprimirTempTrimestrales();
    void paisMayorTemperaturaTri(); 
};



void TemperaturaPaises::cargar() 
{
    for(int f = 0; f < 4; f++)
    {
        cout <<"Ingrese el nombre del pais:";
        cin.getline(paises[f],40);
        for(int c = 0; c < 3; c++) 
        {
            cout <<"Ingrese temperatura mensual:";
            cin >>tempmen[f][c];
            cin.get();
        }
    }
}

void TemperaturaPaises::imrimirTempMensuales() 
{
    for(int f = 0; f < 4; f++)
    {
        cout <<"Pais:" <<paises[f] <<":" <<"";
        for(int c = 0; c< 3; c++)
        {
            cout <<tempmen[f][c] <<" "<<"";
        }
        cout <<"";
    }    
}

void TemperaturaPaises::calcularTemperaturaTri()
{
    for (int f = 0; f < 4; f++)
    {
        int suma = 0;
        for (int c = 0; c < 3; c++)
        {
            suma = suma + tempmen[f][c];
        }
        temptri[f] = suma / 3;
    }
}

 void TemperaturaPaises::imprimirTempTrimestrales()
{
    cout <<"Temperaturas trimestrales." <<"";
    for(int f = 0; f < 4; f++)
    {
        cout <<paises[f] <<" " <<temptri[f] <<"";
    }
}

void TemperaturaPaises::paisMayorTemperaturaTri() 
{
    int may=temptri[0];
    char nom[40];
    strcpy_s(nom,40,paises[0]);
    for(int f = 0; f < 4; f++)
    {
        if (temptri[f] > may) 
        {
            may=temptri[f];
            strcpy_s(nom,40,paises[f]);
        }
    }
    cout <<"Pais con temperatura trimestral mayor es " <<nom  <<" que tiene una temperatura de " <<may;        
 }

void main()
{
     TemperaturaPaises tp;
     tp.cargar();
     tp.imrimirTempMensuales();
     tp.calcularTemperaturaTri();
     tp.paisMayorTemperaturaTri();
     cin.get();
}

Este proyecto lo puede descargar en un zip desde este enlace :MatrizTemperaturas.zip

— @bolUDOoficial

— Síguenos en Twitter@bolUDOoficial

Categorías: #C++, #


[0] Atrás | Directorio
« Inicio
Apps Infoudo
Apps Infoudo ¡Descarga el icono directo en el menú de tu equipo!
[»] Las mejores Apps para tu celular
[»] Imágenes Gratis


Comenta o lee lo que otros opinan

COMPÁRTELO:

Indica que te gusta y comparte

Me Gusta :)Facebook Tuiteame :)Twitter .WhatsApp .Telegram . LinkedIn

También te puede interesar:

NOCIONES BÁSICAS DE LA PROGRAMACIÓN ORIENTADA A OBJETOS.
Material de Apoyo del Curso de Programación - Lenguaje C++ - Periodo (Feb - May) del año en curso
Parámetros por valor y por referencia de objetos
Parámetros por valor y por referencia de datos simples
Métodos constantes (const)
Parámetros de un método constante (const)
Definición de constantes (const)
Directiva #define
Puntero this
Métodos estáticos de una clase


« Constructor de la clase  |  Vectores paralelos »
 
Apps Infoudo
 
Buscador:
Powered by Google:


Web móvil
Imágenes
La Web

 

Síguenos por RSS


Puedes leerlos mediante el navegador Firefox, lectores de noticias en la computadora o el móvil o usando el servicio de Feedburner de Google para recibir las notificaciones por correo electrónico.
RSS - Suscribirse usando Feedburner de Google

email Recibir las nuevas publicaciones de Boludo por email

Atom


»Ir a URL
.....
Registra Gratis Tu Negocio
....
Sugerir un nuevo sitio WAP

...
¡Bloguea Ya!

..
Registro de Profesionales(Abogados, escritores, doctores, licenciados, ingenieros, etc.)
.
Soporte

Síguenos en las redes sociales

Síguenos en Facebook facebook.com/boludooficial Síguenos en Twitter @bolUDOoficial Síguenos en Instagram @boludooficial Síguenos en Telegram t.me/Boludooficial
Síguenos en WhatsApp BolUDOoficial Síguenos en YouTube youtube.com/@boludo.oficial
Síguenos en Facebook facebook.com/SergioAlemanFans Síguenos en Twitter @SergioAleman1 Síguenos en Instagram @sergioalemanfans
Síguenos en WhatsApp wa.me/qr/Y7Q232VLZPR5O1 Síguenos en Tiktok @sergioalemanoficial Síguenos en Tiktok @sergioalemanfans
Síguenos en Telegram t.me/SergioAlemanOficial Síguenos en YouTube youtube.com/@sergioaleman
Síguenos en Facebook facebook.com/INFOUDO.OFICIAL Síguenos en Twitter @infoudomon Síguenos en Instagram @infoudooficial Síguenos en Telegram t.me/Infoudooficial
Síguenos en Facebook facebook.com/tuinfou Síguenos en Twitter @infoudomonagas
Síguenos en WhatsApp INFO UDO Síguenos en YouTube youtube.com/@infoudooficial

Mis cuentas sociales

FB
Twitter
Pinterest
Instagram
Otras

Móvil: (0426 683 6955 - 0412 8226575) - E-mail: [email protected] - [email protected] - WhatsApp: +58 (0426) 683.69.55


Copyscape
Volver arriba

Protocolo  |  Mapa del Sitio  |  Report Abuse - DMCA  |  Términos y Condiciones  |  Ayuda  |  Privacidad de Datos  |  Política de Cookies  |  Reportar un bug  |  Licencia: CC BY-NC-ND 3.0

Copyright ©2023 Boludo. Todos los derechos reservados. Diseñado y Desarrollado por Sergio Alemán Mi perfil en GitHub


SUBIR