Mensajes: 9
Temas: 4
Gracias Recibidas: 0 en 0 posts
Gracias Dadas: 3
Registro en: Dec 2020
Bueno(a)s: dias, tardes, noches. Hay alguna alternativa a GetUpperBound (comando de VB.NET) en gambas.
Vean este ejemplo:
Private mat(2, 4) As Integer
Como las matrices son objetos en Visual Basic .Net disponemos de un método llamado GetUpperBound(numero de índice) que le pasamos como parámetro la dimensión y nos retorna el valor de dicha dimensión.
Para la definición de la matriz indicada arriba si accedemos a la primera dimesión con el método GetUpperBound retorna un 2:
Console.WriteLine(mat.GetUpperBound(0))
Si accedemos a la segunda dimesión se imprime un 4:
Console.WriteLine(mat.GetUpperBound(1))
La primer dimensión son la cantidad de filas más uno y la segunda dimensión son la cantidad de columnas más uno de la matriz.
Saludos
Mensajes: 1,416
Temas: 202
Gracias Recibidas: 350 en 257 posts
Gracias Dadas: 258
Registro en: Jul 2020
(03-01-2022, 07:50)dariodr escribió: Private mat(2, 4) As Integer
Para obtener los ítems de una lista como la que pasaste basta con
en gambas se define:
GAMBAS
Print aiMat
[0] 'para obtener el 2 Print aiMat
[1] 'para el 4
1 Saludo.
Los siguientes 1 usuarios dice gracias a tincho por este post:1 usuarios dice Gracias! a tincho por este post
• dariodr
Mensajes: 409
Temas: 7
Gracias Recibidas: 107 en 85 posts
Gracias Dadas: 110
Registro en: May 2020
En este caso tincho, creo que dariodr está hablando de arrays multidimensionales, concretamente de 2 dimensiones y 4 elementos cada dimensión. Una matriz de 2x4.
Ahora mismo estoy desde el móvil y no puedo desarrollar la respuesta, solo diré que es muy fácil manejarse con matrices igual que en VB.net. La sintaxis es array[a][b] y los mismos métodos de arrays simples funcionan para las matrices, que por supuesto son enumerables.
Ahí lo dejo de momento, por si alguien puede completar mi respuesta.
Saludos y Feliz 2022
Por favor, usa el corrector ortográfico antes de pulsar el botón 'Enviar'
Los siguientes 1 usuarios dice gracias a jguardon por este post:1 usuarios dice Gracias! a jguardon por este post
• dariodr
Mensajes: 9
Temas: 4
Gracias Recibidas: 0 en 0 posts
Gracias Dadas: 3
Registro en: Dec 2020
Tengo este codigo en VB.NET y lo quiero pasar a GAMBAS, los unicos problemas son el ReDim y el GetUpperBound, alguien sabe cual es la alternativa. Lo demas ya esta hecho.
Código:
Public Class Matriz5
Private mat(,) As Integer
Public Sub Cargar()
Dim filas, columnas As Integer
Console.Write("Cuantas fila tiene la matriz:")
filas = Console.ReadLine()
Console.Write("Cuantas columnas tiene la matriz:")
columnas = Console.ReadLine()
ReDim mat(filas - 1, columnas - 1)
Dim f, c As Integer
For f = 0 To mat.GetUpperBound(0)
For c = 0 To mat.GetUpperBound(1)
Console.Write("Ingrese componente:")
mat(f, c) = Console.ReadLine()
Next
Next
End Sub
Public Sub Imprimir()
Dim f, c As Integer
For f = 0 To mat.GetUpperBound(0)
For c = 0 To mat.GetUpperBound(1)
Console.Write(mat(f, c) & " ")
Next
Console.WriteLine()
Next
End Sub
Public Sub ImprimirUltimaFila()
Dim c As Integer
Console.WriteLine("Ultima fila")
For c = 0 To mat.GetUpperBound(1)
Console.Write(mat(mat.GetUpperBound(0), c) & " ")
Next
End Sub
End Class
Sub Main()
Dim ma As New Matriz5()
ma.Cargar()
ma.Imprimir()
ma.ImprimirUltimaFila()
Console.ReadKey()
End Sub
Saludos
Mensajes: 362
Temas: 29
Gracias Recibidas: 103 en 78 posts
Gracias Dadas: 13
Registro en: Jul 2020
03-01-2022, 15:12
(Última modificación: 03-01-2022, 19:40 por
vuott.)
(03-01-2022, 12:22)jguardon escribió: arrays multidimensionales,
Si
dariodr prefiere una matrix
anidada:
(03-01-2022, 15:00)dariodr escribió: ReDim
Parecería corresponder al Método ". Resize()" de la Clase
Array.
Pero las matrices multidimensionales no pueden ser redimensionadas:
https://gambaswiki.org/wiki/comp/gb/array/resize?l=es
Yo adoptaría esta estratagema:
GAMBAS
a = 4
b = 5
Print mat.
Bounds[0] ' Parecido a "mat.GetUpperBound(0)" Print mat.
Bounds[1] ' Parecido a "mat.GetUpperBound(1)"
"Los horizontes perdidos nunca regresan. " (F. Battiato, La stagione dell'amore, 1983)
"Las ondas nunca regresan. " (Genesis: Ripples - A trick of the tail, 1976)
Los siguientes 1 usuarios dice gracias a vuott por este post:1 usuarios dice Gracias! a vuott por este post
• dariodr
Mensajes: 9
Temas: 4
Gracias Recibidas: 0 en 0 posts
Gracias Dadas: 3
Registro en: Dec 2020
04-01-2022, 06:38
Gracias vuott ya lo pude pasar a Gambas.
Estare preguntando algunas cosas.
Salu2