Pagina 1 di 1

Interrogazione dimensioni Matrice

Inviato: giovedì 13 settembre 2018, 11:54
da Logical Passion
Buongiorno a tutti,

gentilmente qualcuno potrebbe indicarmi se in OpenOffice Basic esiste (e quale sia) una istruzione o comando per conoscere le dimensioni di una matrice?

Grazie, Marco

Re: Interrogazione dimensioni Matrice

Inviato: giovedì 13 settembre 2018, 14:05
da charlie
Ciao e benvenuto sul forum.
Se intanto ti vuoi presentare puoi farlo qui: viewforum.php?f=16
Per una panoramica delle regole del forum consulta il Manuale di sopravvivenza: http://forum.openoffice.org/it/forum/vi ... hp?f=1&t=2
Buon proseguimento.

Re: Interrogazione dimensioni Matrice

Inviato: giovedì 13 settembre 2018, 16:24
da Logical Passion
Buongiorno charlie,

ti ringrazio per l'accoglienza. Ho provveduto a presentarmi ed ho ridato uno sguardo ai titoli delle sezioni del manuale di sopravvivenza (n.d.r.: Titolo originale e simpatico!) che ritengo tutti atteggiamenti di buon senso.

Per quanto riguarda la richiesta che ha generato questo nuovo argomento, per chiarire l'ambito della domanda, aggiungo che nella guida di OpenOffice ho trovato i comandi LBound ed UBound che restituiscono i confini, inferiore e superiore, di una singola dimensione della matrice (un vettore della matrice).
Per conoscere il numero di dimensioni si potrbbe effettuare un ciclo di chiamate di uno di questi due comandi fino alla restituzione di un errore per aver eseguito l'interrogazione su di una dimensione inesistente ma, naturalmente, sarebbe molto più pratico poter ottenere il numeo di dimensioni (ed i relativi confini, magari anche solo il superiore, assumendo l'inferiore per defaul uguale a zero) con una singola istruzione.

Re: Interrogazione dimensioni Matrice

Inviato: giovedì 13 settembre 2018, 17:32
da patel
Di solito è il programmatore che dimensiona le matrici che intende utilizzare, talvolta la matrice è il risultato di una lettura da un range di celle ed in questo caso è necessario utilizzare LBound ed UBound, ma la matrice è sempre bidimensionale. Potresti fare un esempio che illustra il tuo problema ?
Comunque prova questa macro

Codice: Seleziona tutto

Sub testing()
  Dim arr(1 To 3, 1 To 10, 1 To 5)
  MsgBox NumberOfDimensions(arr)
End Sub

Function NumberOfDimensions(arr As Variant) As Long
  If IsArray(arr) Then
    On Error GoTo Done
    Do
      NumberOfDimensions = NumberOfDimensions + 1
    Loop While IsNumeric(UBound(arr, NumberOfDimensions))
  End If
Done: NumberOfDimensions = NumberOfDimensions - 1
End Function

Re: Interrogazione dimensioni Matrice

Inviato: venerdì 14 settembre 2018, 9:44
da Logical Passion
Ciao Patel,

ti ringrazio per la tua risposta, credo tu abbia colto il nocciolo della questione quando hai scritto "talvolta la matrice è il risultato di una lettura da un range di celle ed in questo caso è necessario utilizzare LBound ed UBound" che effettivamente già svolgono la funzione di cui necessito.
Ignorando l'esistenza di questi due comandi mi stavo documentando sulle matrici e, quando sono giunto ad essi, avendo prima letto riguardo la possibile pluralità di dimensioni oltre le due classiche, ho iniziato a chiedermi se fosse possibile eseguire interrogazioni anche in merito al numero delle dimensioni.