Foros del Web » Programación para mayores de 30 ;) » Programación General » Visual Basic clásico »

Anda MAL y dice error de compilacion error de tipo: se esperaba una matriz o un tipo

Estas en el tema de Anda MAL y dice error de compilacion error de tipo: se esperaba una matriz o un tipo en el foro de Visual Basic clásico en Foros del Web. Hola. Me pasa algo que no lo puedo entender. Tengo dos matrices declaras: Dim Pedido() As String Dim Tabla(3, 4) y la quiero ordenar por ...
  #1 (permalink)  
Antiguo 31/01/2010, 03:16
 
Fecha de Ingreso: julio-2007
Mensajes: 79
Antigüedad: 17 años, 4 meses
Puntos: 0
Mensaje Anda MAL y dice error de compilacion error de tipo: se esperaba una matriz o un tipo

Hola. Me pasa algo que no lo puedo entender.
Tengo dos matrices declaras:

Dim Pedido() As String
Dim Tabla(3, 4)

y la quiero ordenar por el metodo burbuja

Public Sub Form_Load()
Call Imprimo(Pedido, CantFalta, RutaFoto, Tamaño, CaratulasoDiscos, i)
End Sub

Public Sub Imprimo(Pedido, Cantidad, RutaFoto, Tamaño, CaratulasoDiscos, i)
Tabla(0, 0) = "6": Tabla(1, 0) = "9": Tabla(2, 0) = "8"
Tabla(3, 0) = "3"
Burbuja Tabla ' si la llamada es asi ANDA PERFECTO
Burbuja Pedido ' Anda MAL y dice error de compilacion error de tipo: se esperaba una matriz o un tipo definido por el usuario
End Sub



Sub Burbuja(Matriz(), Optional Ascendente As Boolean = True)
Dim Index As Long, Temp As Variant, Siguiente As Long
Dim IndiceSuperior As Long, Pasos As Long
Siguiente = LBound(Matriz)
IndiceSuperior = UBound(Matriz)
Do While Siguiente < IndiceSuperior
Index = IndiceSuperior
Do While Index > Siguiente
If Ascendente Then
If Matriz(Index, 0) < Matriz(Index - 1, 0) Then
Temp = Matriz(Index, 0)
Matriz(Index, 0) = Matriz(Index - 1, 0)
Matriz(Index - 1, 0) = Temp
End If
Else
If Matriz(Index, 0) >= Matriz(Index - 1, 0) Then
Temp = Matriz(Index, 0)
Matriz(Index, 0) = Matriz(Index - 1, 0)
Matriz(Index, 0) = Temp
End If
End If
Index = Index - 1
Pasos = Pasos + 1
Loop
Siguiente = Siguiente + 1
Pasos = Pasos + 1
Loop
Debug.Print "Número de pasos : " & Pasos
End Sub


No entiendo porque no puedo ordenarla si esta declarada esa forma.
Para probar hago esto
Tabla() = Pedido()
lo cual me da erroe que no se puede asignar a una matriz,
Al pedido lo cargo desde un TXT por medio de Tabulaciones y me anda perfecto hasta este momento que lo quiero ordenar. Gracias.



Gracias.

Última edición por alekula; 31/01/2010 a las 03:25
  #2 (permalink)  
Antiguo 04/02/2010, 16:15
Avatar de pkj
pkj
 
Fecha de Ingreso: julio-2006
Ubicación: Órbita sincrónica
Mensajes: 899
Antigüedad: 18 años, 4 meses
Puntos: 29
Respuesta: Anda MAL y dice error de compilacion error de tipo: se esperaba una matriz

Solo se me ocurre que la matriz Pedido sea de una sola dimensión, y la sub burbuja es para matrices de 2 dimensiones. Y por cierto, que tipo de matriz es Pedido creo que no lo dices por ningún lado.

Suerte
__________________
No hay preguntas tontas, solo gente estup..., ¡No!, ¿como era? No hay gente que pregunte a tontos... ¡Nooo!... ¡Vaya cabeza!
  #3 (permalink)  
Antiguo 05/02/2010, 04:58
Avatar de pkj
pkj
 
Fecha de Ingreso: julio-2006
Ubicación: Órbita sincrónica
Mensajes: 899
Antigüedad: 18 años, 4 meses
Puntos: 29
Respuesta: Anda MAL y dice error de compilacion error de tipo: se esperaba una matriz

Revisándolo un poco más me dá la impresión de que la sub burbuja es para matrices de 1 sola dimensión, solo que le has añadido un (,0) junto a cada index.
Esto solo consigue ordenarte los valores de la primera dimensión, dejando los valores de la segunda dimensión sin mover.
Ejm:
Tabla(0,0)="b1":Tabla(0,1)="b2":Tabla(1,0)="c1":Ta bla(1,1)="c2":Tabla(2,0)="a1":Tabla(2,1)="a2"

Burbuja Tabla

Nos encontramos con que:
Tabla(0,0)="a1" ' bien
Tabla(0,1)="b2" ' mal, sigue teniendo el valor de antes
Tabla(1,0)="b1" ' bien
Tabla(1,1)="c2" ' mal, sigue teniendo el valor de antes
Tabla(2,0)="c1" ' bien
Tabla(2,1)="a2" ' mal, sigue teniendo el valor de antes

Si quitas los ,0 a la sub te servirá para la matriz Pedidos, pero para la matriz de 2 dimensiones necesitarás una nueva sub.

Suerte
__________________
No hay preguntas tontas, solo gente estup..., ¡No!, ¿como era? No hay gente que pregunte a tontos... ¡Nooo!... ¡Vaya cabeza!

Etiquetas: compilacion, esperaba, mal, matriz, tipo
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 05:18.