domingo, 15 de septiembre de 2013

17 Vectores (mayor y menor elemento)

Es una actividad común la búsqueda del mayor y 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.;
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 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 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 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.

No hay comentarios:

Publicar un comentario