Matrices y vectores paralelos
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:
· 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
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
Programa:
import java.util.Scanner; public class Matriz9 { private Scanner teclado; private String[] empleados; private int[][] sueldos; private int[] sueldostot; public void cargar() { teclado=new Scanner(System.in); empleados=new String[4]; sueldos=new int[4][3]; for(int f=0;f<empleados.length;f++){ System.out.print("Ingrese el nombre del empleado:"); empleados[f]=teclado.next(); for(int c=0;c<sueldos[f].length;c++) { System.out.print("Ingrese sueldo:"); sueldos[f][c]=teclado.nextInt(); } } } public void calcularSumaSueldos() { sueldostot=new int[4]; for(int f=0;f<sueldos.length;f++) { int suma=0; for(int c=0;c<sueldos[f].length;c++) { suma=suma+sueldos[f][c]; } sueldostot[f]=suma; } } public void imprimirTotalPagado() { System.out.println("Total de sueldos pagados por empleado."); for(int f=0;f<sueldostot.length;f++) { System.out.println(empleados[f]+" - "+sueldostot[f]); } } public void empleadoMayorSueldo() { int may=sueldostot[0]; String nom=empleados[0]; for(int f=0;f<sueldostot.length;f++) { if (sueldostot[f]>may) { may=sueldostot[f]; nom=empleados[f]; } } System.out.println("El empleado con mayor sueldo es "+ nom + " que tiene un sueldo de "+may); } public static void main(String[] ar){ Matriz9 ma=new Matriz9(); ma.cargar(); ma.calcularSumaSueldos(); ma.imprimirTotalPagado(); ma.empleadoMayorSueldo(); } }
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 String donde almacenaremos los nombre de cada empleado y
finalmente definimos un vector paralelo a la matriz donde almacenaremos
la suma de cada fila de la matriz:
private String[] empleados; private int[][] sueldos; private int[] sueldostot;
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 (previo a cargar procedemos a crear el vector y la matriz):
empleados=new String[4]; sueldos=new int[4][3]; for(int f=0;f<empleados.length;f++){ System.out.print("Ingrese el nombre del empleado:"); empleados[f]=teclado.next(); for(int c=0;c<sueldos[f].length;c++) { System.out.print("Ingrese sueldo:"); sueldos[f][c]=teclado.nextInt(); } }
El método sumar sueldos crea el vector donde se almacenará la suma de
cada fila de la matriz. Mediante dos for recorremos toda la matriz y
sumamos cada fila:
sueldostot=new int[4]; for(int f=0;f<sueldos.length;f++) { int suma=0; for(int c=0;c<sueldos[f].length;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):
for(int f=0;f<sueldostot.length;f++) { System.out.println(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:
int may=sueldostot[0]; String nom=empleados[0]; for(int f=0;f<sueldostot.length;f++) { if (sueldostot[f]>may) { may=sueldostot[f]; nom=empleados[f]; } } System.out.println("El empleado con mayor sueldo es "+ nom + " que tiene un sueldo de "+may);
No hay comentarios.:
Publicar un comentario