• Viernes 8 de Noviembre de 2024, 11:47

Autor Tema:  mostrar el mayor y menor elemento de un vector  (Leído 1642 veces)

Jesmi89

  • Nuevo Miembro
  • *
  • Mensajes: 23
    • Ver Perfil
mostrar el mayor y menor elemento de un vector
« en: Domingo 26 de Octubre de 2008, 15:43 »
0
hola, lo que pasa es que he estado haciendo este codigo, lo cual necesito que me muestre el elemneto meyor y menor del vector. Pero lo unico que consigo es que en el caso del menor, me muestra siempre el ultimo valor ingresado, en cambio el de mayor si me funciona.
miren este es el codigo. Si porfa me pueden dar una ayudita

Código: Text
  1. Public Class Form1
  2.     Dim b As Integer
  3.     Dim i As Integer
  4.     Dim c As Integer
  5.  
  6.     Dim a() As Long
  7.     Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
  8.  
  9.         b = TextBox1.Text
  10.         c = TextBox1.Text
  11.  
  12.         ReDim a(b)
  13.  
  14.         For i = 1 To b
  15.             a(i) = InputBox("Ingrese Datos")
  16.  
  17.             c = a(i)
  18.             TextBox2.Text = TextBox2.Text & "  " & c
  19.  
  20.             If a(i) > b Then
  21.                 b = a(i)
  22.             Else
  23.                 If a(i) < c Then
  24.                     c = a(i)
  25.  
  26.                 End If
  27.             End If
  28.         Next
  29.  
  30.         MsgBox("el mayor es  " & b)
  31.         MsgBox("el menor es  " & c)
  32.  
  33.     End Sub
  34.  
  35. End Class
  36.  
  37.  

Gracias ;)

Nebire

  • Miembro HIPER activo
  • ****
  • Mensajes: 670
    • Ver Perfil
Re: mostrar el mayor y menor elemento de un vector
« Respuesta #1 en: Lunes 27 de Octubre de 2008, 12:26 »
0
Antes de responder, te quiero reprender...  :devil: (con buen rollo, claro).

Me obligas a dedicarle más tiempo del necesario a leer tu código, porque usa variables impersonales. Para i que hace de contador va bien, pero no para el resto. Si tus variables tienen el cometido de  'b'= mayor entonces es mejor que llames a la variable mayor o al menos max (si quieres abreviar y que a la vez se entioenda) a la variable 'c' por la misma razón podrías llamarle menor o min y por último a la matriz a podrías llamarle 'mat()', entonces es fácil de leer pués en todo momento estás leyendo el significante y el valor que se expresa en la 'fórmula'. Se dejó atrás los tiempos del VIC-20 donde la memoria eran poco más de 3kb. así que por favor no piensas que llamar a una variable max es derrochar memoria, en estos días derrochar tiempo humano es más 'pecado'  :devil: , que es lo que sucede al tener que trabajar con variables inexpresivas de su contenido...

No he mirado completamente tu código (sólo por encima), me he parado donde he visto el primer sobresalto  :clown: , tu quieres recorrer un vector para obtener el mayor y el menor, según se deduce de tu pregunta. El problema lo tienes en donde le asignas al (espera que mire quien es la variable) ya, ...donde le asignas al menor incondicionalmente que 'c= a(i)', con lo que se destruye el valor del menor que estaba almacenado fruto de los condicionales. La solución consiste en eliminar esa línea... que es a grosso modo como que se ha metido una avispa en medio del mecanismo (iba a decir mosquito, pero dado que tenemos un usuario con ese nombre, quien sabe si pudiera sentirse atacado de alguna manera)... como ha ido a parar ahí ????, supondremos eso, ... que revoloteando... chocó con un cristal y al perder el vuelo fue a caer justo ahí...  :rolleyes:

nota: el primer 'c= a(i)' que aparece antes de 'TextBox2.Text = TextBox2.Text & "  " & c', no el que está condicionado, más abajo.
«Ma non troppo»
----> ModoVacaciones = False<----