Visual Basic - matrices bidimensionales, ayuda!

Life is soft - evento anual de software empresarial
 
Vista:

matrices bidimensionales, ayuda!

Publicado por raqmed (8 intervenciones) el 20/11/2005 11:22:30
hola, alguien me puede explicar que son las matrices bidimensionales? y ya de paso si sabeis alguna pagina buena en internet de programar en visual basic me la poneis porfa...
bueno sobre todo las matices bidimensionales, en q consisten, como se hacen.. necesito hacer una agenda de nombre, apellido, direccion y telefono y no se como empezar!

gracias por adelantado
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:matrices bidimensionales, ayuda!

Publicado por Arnaldo (53 intervenciones) el 20/11/2005 14:38:34
Hola raqmed. Para hacer tu agenda pordias utilizar un tipo de datos definido por el usuarios(Registro o Estructura). De esa forma podrias utilizar una matris del tipo registro. Te mando un ejemplo y mas abajo te muestro como se manejan las matrices bidimencionales.

Caso uno Matriz de registros.
'Utilizo para el ejemplo Dos Command Button, una matriz de TextBox (text1(0),
'text1(1), text1(2), text1(3)). un TextBox, para ingresar el indice de la matriz que deseo ver (registro de persona).

'Tipo de dato registro, definido por el usuario
Private Type DatosP
Nombre As String * 20 'Longitud Fija
Apellido As String 'Longitud variable
Direccion As String * 60
Telefono As String * 20
End Type

Dim Mat() As DatosP 'Matriz dinamica del tipo registro definido por el usuario
Dim Cont As Integer 'Contador de dimencion logica

'En este paso guardo en mi matriz el registro que contiene los datos de una pers.
Private Sub Command1_Click()
Dim Registros As DatosP

Registros.Nombre = Text1(0).Text
Registros.Apellido = Text1(1).Text
Registros.Direccion = Text1(2).Text
Registros.Telefono = Text1(3).Text

ReDim Preserve Mat(Cont)
Mat(Cont) = Registros

Text3.Text = Cont 'Dejo visible cual es la dimención de la matriz
Cont = Cont + 1 'Recupero el valor para la proxima carga de elementos.
End Sub

'hago visible en las cajas de texto correspondientes, el registro almacenado en la
'matriz de dimencion cont y de elemnto deceado igual a val(text3.text)

Private Sub Command2_Click()
If Val(Text3.Text) <= (Cont - 1) Then
Text1(0).Text = Trim(Mat(Val(Text3.Text)).Nombre)
Text1(1).Text = Trim(Mat(Val(Text3.Text)).Apellido)
Text1(2).Text = Trim(Mat(Val(Text3.Text)).Direccion)
Text1(3).Text = Trim(Mat(Val(Text3.Text)).Telefono)
Else
'Si me elindice ingresado en el texto3 es superior a la dimencion logica de la
'matriz, me habisa que el elemnto buscado no existe.
MsgBox "No existe el elemento"
End If
End Sub

Private Sub Form_Load()
'Inicializo mi contador para controlar la dimencion logica de la matriz
Cont = 0
Text3.Text = Cont
End Sub

Si copias el codigo tal cual esta y agregas los objetos en el formulario, vas a poder ver como funciona, de todas formas trate de expresar las acciones de cada rutina. Te envie ese ejemplo porque tal vez en tu registro necesitas tipos diferentes, como un codigo de persona del tipo entero y el resto cadena de caracteres, o situaciones particlars en las que necesites un registro de diferentes tipos. Las matrices solo pueden contener elementos del mismo tipo. Una matriz de registros, es muy util.

Las matrices de dos dimenciones se definen asi:

Dim Mat1(4,1 to 6) as integer 'Matriz de 5X6. 0..4,1..6

Dim Mat1(1 to 5, 1 to 5) as integer 'Matriz 5X5. 1..5,1..5

Bueno raqmed, espero que ta haya sido de ayuda. Suerte

Arnaldo.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar