Alguien me puede explicar esto del Array?

Iniciado por Senior++, 11 Julio 2011, 20:24 PM

0 Miembros y 1 Visitante están viendo este tema.

Senior++

Bueno esto es un programa que quiero que haga estas 2 cosas:

1.) Tienes un array con un número cualquiera de elementos, averigua cual de las variables de ese array es la que tiene el valor mayor.
2.) La que tiene el valor menor y que no sea cero.


entonces para el primer ejercicio tengo este código:

'Poner este código en el Form_Load
Dim Hora(24) As Integer
Dim i As Integer, Mayor As Integer

'Llenar el array con números...
'(en esta entrega veremos cómo hacerlo de forma aleatoria)
'...
'Comprobar cual es el mayor
For i = 1 To 24
    If Hora(i) > Mayor Then
Mayor = Hora(i)
    End If
Next
Print "El número mayor es:"; Mayor


Y ahora para el segundo ejercicio tengo este código:
'Los mismos comentarios iniciales que el primero
Dim Hora(24) As Integer
Dim i As Integer, Menor As Integer
'
For i = 1 To 24
    If Hora(i) Then 'Sólo si no vale cero
If Menor = 0 Then 'Si aún no tiene un valor
    Menor = Hora(i) 'se lo asignamos
Else
    If Hora(i) < Menor Then 'Si el contenido de Hora(i) es menor
Menor = Hora(i) 'lo asignamos como menor
    End If
End If
    End If
Next
Print "El número menor es "; Menor


Bueno esto lo mire de una pagina por que estoy dando esto de los arrays y eso y quise practicar pero cuando lo probé en mi vb6 y le di al commandButton

me imprimió en el primer ejercicio que  el número mayor es: 0

y cuando probé el código del segundo ejercicio mi imprimió:

que el numero menor es: 0

Cosa que no lo entiendo en todo caso el numero mayor sería el 24
y el numero menor el 0 ¿no?

Si me puedes explicar las lineas se lo agradecería para entenderlo mejor es que me cuesta

Gracias  >:D

Vendo cuenta de LEAGUE OF LEGENDS lvl 30, EU west, muy barata

$Edu$

Es algo insolito lo que estas haciendo lo que pasa, mira.. veo que andas perdido, te recomendaria que busques un buen tutorial de esos grandes, que habra en esta sección y te pongas a estudiar asi como hacen todos ya que parece que tu metodo de aprendizaje no te esta sirviendo.
No lo tomes a mal, solo te digo para que no pierdas el tiempo y aprendas como se debe.

Senior++

Es que raul me aconsejo elguille y por lo que veo es que es bueno pero los ejercicios que manda o no esta bien explicados o manda cosas demasiado dificil o no lo explica muy bien

si alguien me dice un buen manual se lo agradecería pero que se de las APIS y todo eso si puede ser uno bueno
Vendo cuenta de LEAGUE OF LEGENDS lvl 30, EU west, muy barata

79137913

#3
HOLA!!!

Te Recuerdo que no somos una escuelita, por favor hace un buen tutorial (a mi parecer elGuille es muy bueno y no es nada dificil ni mal explicado).

Aca tenes una solucion basica:

Código (vb) [Seleccionar]
Dim Matriz(100) As Long

Private Sub Form_Load()
Dim Min As Long
Dim Max As Long
   Call LlenarArrayAleatoriamente(1000) 'Lleno la matriz
   For x = 0 To UBound(Matriz) 'Busco el mayor
       If Matriz(x) > Max Then Max = Matriz(x)
   Next
   Min = Max 'Inicializo Min = Max
   For x = 0 To UBound(Matriz) 'Busco el minimo
       If Matriz(x) < Min Then If Matriz(x) <> 0 Then Min = Matriz(x)
   Next
   MsgBox "Minimo: " & Min & " Maximo: " & Max, , "Ejemplo para SixToes por 79137913" 'Muestro el resultado
   End 'cierro
End Sub


Private Sub LlenarArrayAleatoriamente(MaxInt As Long)
On Error GoTo Err:
   For x = 0 To UBound(Matriz)
        Randomize Timer 'Hago que sea aleatorio
       Matriz(x) = Int(Rnd() * MaxInt) 'Lleno la matriz
   Next
Err:
End Sub


GRACIAS POR LEER!!!
"Como no se puede igualar a Dios, ya he decidido que hacer, ¡SUPERARLO!"
"La peor de las ignorancias es no saber corregirlas"

79137913                          *Shadow Scouts Team*

BlackZeroX

@7913

Randomize Timer 'Hago que sea aleatorio

metelo dentro del for...

Dulces Lunas!¡.
The Dark Shadow is my passion.

Senior++

ese codigo que pusistes es por que .El que yo puse estaba mal?

es que solo pedi el por que el numero mayor es 0 y el menor tambien 0 yo me creía que el numero mayor DE MI CODIGO es el 24 y el menor el 0 evidentemente

Saludos
Vendo cuenta de LEAGUE OF LEGENDS lvl 30, EU west, muy barata

79137913

HOLA!!!

Gracias Black, Buena idea, modificado.

Si, Sixtoes tu codigo estaba mal y era muy rebuscado.

GRACIAS POR LEER!!!
"Como no se puede igualar a Dios, ya he decidido que hacer, ¡SUPERARLO!"
"La peor de las ignorancias es no saber corregirlas"

79137913                          *Shadow Scouts Team*

$Edu$

Esque cuando vos creaste el array, el tamaño del array es de 24, pero estan vacios, si nunca pusiste ningun dato en ninguno :/ por eso daba 0 siempre

Senior++

Ans ok es que me extrañaba gracias por la ayuda  :P
Vendo cuenta de LEAGUE OF LEGENDS lvl 30, EU west, muy barata

$Edu$

Y el tuto de guille si que es bueno, pero leelo tranquilo, dejando pasar unos dias mientras practicas lo aprendido, etc, porque sino no aprendemos nada