18 - 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:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace PruebaVector11
{
    class PruebaVector11
    {
        private string[] nombres;
        private float[] sueldos;

        public void Cargar() 
        {
            nombres=new string[5];
            sueldos=new float[5];
            for(int f=0;f < nombres.Length;f++) 
            {
                Console.Write("Ingrese el nombre del empleado:");
                nombres[f] = Console.ReadLine();
                Console.Write("Ingrese el sueldo:");
                string linea;
                linea = Console.ReadLine();
                sueldos[f]=float.Parse(linea);
            }
        }

        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;
                }
            }
            Console.WriteLine("El empleado con sueldo mayor es "+nombres[pos]);
            Console.WriteLine("Tiene un sueldo:"+mayor);
            Console.ReadKey();
        }

        static void Main(string[] args)
        {
            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++) 
            {
                Console.Write("Ingrese el nombre del empleado:");
                nombres[f] = Console.ReadLine();
                Console.Write("Ingrese el sueldo:");
                string linea;
                linea = Console.ReadLine();
                sueldos[f]=float.Parse(linea);
            }

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:

            Console.WriteLine("El empleado con sueldo mayor es "+nombres[pos]);
            Console.WriteLine("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
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace PruebaVector12
{
    class PruebaVector12
    {
        private int[] vec;
        private int menor;

        public void Cargar() 
        {
            Console.Write("Cuantos elementos desea cargar:");
            string linea;
            linea = Console.ReadLine();
            int n=int.Parse(linea);
            vec=new int[n];
            for(int f=0;f < vec.Length;f++) 
            {
                Console.Write("Ingrese componente:");
                linea = Console.ReadLine();
                vec[f]=int.Parse(linea);
            }
        }

        public void MenorElemento() 
        {
            menor=vec[0];
            for(int f=1;f < vec.Length;f++) 
            {
                if (vec[f] < menor) 
                {
                    menor=vec[f];
                }
            }
            Console.WriteLine("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) 
            {
                Console.WriteLine("Se repite el menor en el vector.");    
            }
            else 
            {
                Console.WriteLine("No se repite el menor en el vector.");
            }
            Console.ReadLine();
        }

        static void Main(string[] args)
        {
            PruebaVector12 pv = new PruebaVector12();
            pv.Cargar();
            pv.MenorElemento();
            pv.RepiteMenor();
        }
    }
}


Retornar