Es una actividad común la búsqueda del mayor y menor elemento de un vector, lo mismo que su posición.
El mayor elemento es el 820 y se encuentra en la posición nº 2.
Confeccionar un programa que permita cargar los nombres de 5 operarios y sus sueldos respectivos. Mostrar el sueldo mayor y el nombre del operario.
Module Module1 Public Class PruebaVector11 Private nombres(4) As String Private sueldos(4) As Single Public Sub Cargar() Dim f As Integer For f = 0 To nombres.GetUpperBound(0) Console.Write("Ingrese el nombre del empleado:") nombres(f) = Console.ReadLine() Console.Write("Ingrese el sueldo:") sueldos(f) = Console.ReadLine() Next End Sub Public Sub MayorSueldo() Dim mayor As Single Dim pos As Integer mayor = sueldos(0) pos = 0 Dim f As Integer For f = 1 To nombres.GetUpperBound(0) If sueldos(f) > mayor Then mayor = sueldos(f) pos = f End If Next Console.WriteLine("El empleado con sueldo mayor es " & nombres(pos)) Console.WriteLine("Tiene un sueldo:" & mayor) Console.ReadKey() End Sub End Class Sub Main() Dim pv As New PruebaVector11() pv.Cargar() pv.MayorSueldo() End Sub End Module
Definimos los dos vectores paralelos donde almacenaremos los nombres y los sueldos de los operarios:
Private nombres(4) As String Private sueldos(4) As Single
Cargamos sus elementos:
Public Sub Cargar() Dim f As Integer For f = 0 To nombres.GetUpperBound(0) Console.Write("Ingrese el nombre del empleado:") nombres(f) = Console.ReadLine() Console.Write("Ingrese el sueldo:") sueldos(f) = Console.ReadLine() Next End Sub
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 hasta la última:
For f = 1 To nombres.GetUpperBound(0)
Accedemos a cada componente para controlar si supera lo que tiene la variable mayor:
If sueldos(f) > mayor Then
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)
Module Module1 Public Class PruebaVector12 Private vec() As Integer Private menor As Integer Public Sub Cargar() Dim n As Integer Console.Write("Cuantos elementos desea cargar:") n = Console.ReadLine() ReDim vec(n - 1) Dim f As Integer For f = 0 To vec.GetUpperBound(0) Console.Write("Ingrese componente:") vec(f) = Console.ReadLine() Next End Sub Public Sub MenorElemento() menor = vec(0) Dim f As Integer For f = 1 To vec.GetUpperBound(0) If vec(f) < menor Then menor = vec(f) End If Next Console.WriteLine("El elemento menor es:" & menor) End Sub Public Sub RepiteMenor() Dim cant As Integer = 0 Dim f As Integer For f = 0 To vec.GetUpperBound(0) If vec(f) = menor Then cant = cant + 1 End If Next If cant > 1 Then Console.WriteLine("Se repite el menor en el vector.") Else Console.WriteLine("No se repite el menor en el vector.") End If Console.ReadKey() End Sub End Class Sub Main() Dim pv As New PruebaVector12() pv.Cargar() pv.MenorElemento() pv.RepiteMenor() End Sub End Module