- Vectores (mayor y menor elemento)


Es una actividad común la búsqueda del mayor y menor elemento de un vector, lo mismo que su posición.

vector

El mayor elemento es el 820 y se encuentra en la posición nº 2.

Problema 1:

Confeccionar un programa que permita cargar los nombres de 5 operarios y sus sueldos respectivos. Mostrar el sueldo mayor y el nombre del operario.

Programa:

import java.util.Scanner;
public class PruebaVector11 {
    private Scanner teclado;
    private String[] nombres;
    private float[] sueldos;

    public void cargar() {
        teclado=new Scanner(System.in);
        nombres=new String[5];
        sueldos=new float[5];
        for(int f=0;f<nombres.length;f++) {
            System.out.print("Ingrese el nombre del empleado:");
            nombres[f]=teclado.next();
            System.out.print("Ingrese el sueldo:");
            sueldos[f]=teclado.nextFloat();
        }
    }
    
    public void mayorSueldo() {
        float mayor;
        int pos;
        mayor=sueldos[0];
        pos=0;
        for(int f=1;f<nombres.length;f++) {
            if (sueldos[f]>mayor) {
                mayor=sueldos[f];
                pos=f;
            }
        }
        System.out.println("El empleado con sueldo mayor es "+nombres[pos]);
        System.out.println("Tiene un sueldo:"+mayor);
    }
    
    public static void main(String[] ar) {
        PruebaVector11 pv=new PruebaVector11();
        pv.cargar();
        pv.mayorSueldo();
    }
}

Definimos los dos vectores paralelos donde almacenaremos los nombres y los sueldos de los operarios:

	private String[] nombres;
	private float[] sueldos;

Creamos los dos vectores y procedemos a cargar sus elementos:

        nombres=new String[5];
        sueldos=new float[5];
        for(int f=0;f<nombres.length;f++) {
            System.out.print("Ingrese el nombre del empleado:");
            nombres[f]=teclado.next();
            System.out.print("Ingrese el sueldo:");
            sueldos[f]=teclado.nextFloat();
        }

Para obtener el mayor sueldo y el nombre del operario realizar los siguientes pasos:
Inicializamos una variable mayor con la primer componente del vector sueldos:

        mayor=sueldos[0];

Inicializamos una variable pos con el valor 0, ya que decimos primeramente que el mayor es la primer componente del vector:

        pos=0;

Recorremos las componentes del vector que faltan analizar, o sea, de la 1 a la 4:

        for(int f=1;f<nombres.length;f++) {

Accedemos a cada componente para controlar si supera lo que tiene la variable mayor:

            if (sueldos[f]>mayor) {

En caso de ser verdadera la condición asignamos a la variable mayor este nuevo valor sueldos[f]

                mayor=sueldos[f];

y a la variable pos le cargamos la variable f que indica la componente que estamos analizando:

                pos=f

Cuando salimos de la estructura repetitiva imprimimos la variable mayor que contiene el mayor sueldo y para imprimir el nombre del operario conociendo la posición del mayor sueldo imprimimos el elemento que ocupa la posición que indica la variable pos en el vector paralelo:

        System.out.println("El empleado con sueldo mayor es "+nombres[pos]);
        System.out.println("Tiene un sueldo:"+mayor);

Problemas propuestos

  1. Cargar un vector de n elementos. imprimir el menor y un mensaje si se repite dentro del vector.
Solución
import java.util.Scanner;
public class PruebaVector12 {
    private Scanner teclado;
    private int []vec;
    private int menor;

    public void cargar() {
        teclado=new Scanner(System.in);
        System.out.print("Cuantos elementos desea cargar:");
        int n=teclado.nextInt();
        vec=new int[n];
        for(int f=0;f<vec.length;f++) {
            System.out.print("Ingrese componente:");
            vec[f]=teclado.nextInt();
        }
    }
    
    public void menorElemento() {
        menor=vec[0];
        for(int f=1;f<vec.length;f++) {
            if (vec[f]<menor) {
                menor=vec[f];
            }
        }
        System.out.println("El elemento menor es:"+menor);        
    }
    
    public void repiteMenor() {
        int cant=0;
        for(int f=0;f<vec.length;f++) {
            if (vec[f]==menor) {
                cant++;
            }
        }
        if (cant>1) {
            System.out.println("Se repite el menor en el vector.");    
        } else {
            System.out.println("No se repite el menor en el vector.");
        }
    }
    
    public static void main(String[] ar) {
        PruebaVector12 pv=new PruebaVector12();
        pv.cargar();
        pv.menorElemento();
        pv.repiteMenor();
    }
}

Retornar