Invertire l'ordine dei valori contenuti dagli elementi di un vettore

Da Gambas-it.org - Wikipedia.

Per invertire l'ordine dei valori degli elementi di un vettore, cosicché ad esempio da una situazione iniziale come la seguente: 11, 22, 33, 44, 55, 66, si ottenga la nuova: 66, 55, 44, 33, 22, 11, è sufficiente adottare il Metodo ".Reverse( )" dell'oggetto array.

Mostriamo un semplice esempio:

Public Sub Main()
 
 Dim vett As Integer[] = [11, 22, 33, 44, 55, 66, 77]
 Dim v As Integer
  
  For Each v In vett
    Print v,
  Next
  Print
  
  vett.Reverse()
  
  For Each v In vett
    Print v,
  Next
  Print
  
End


Scrivere un'apposita esplicita funzione

In alternativa è possibile scrivere una esplicita funzione in Gambas, come ad esempio la seguente:

Public Sub Main()
 
 Dim vett As Integer[] = [11, 22, 33, 44, 55, 66, 77]
 Dim v As Integer
  
  For Each v In vett
    Print v,
  Next
  Print
  
  Inversione(vett)     ' Passaggio dell'argomento per "Indirizzo"
  
  For Each v In vett
    Print v,
  Next
  Print
  
End


Private Function Inversione(ii As Integer[])
 
 Dim i, c As Integer
   
   Repeat
     i = ii[ii.Max - c]
     ii[ii.Max - c] = ii[c]
     ii[c] = i
     Inc c
   Until c > (ii.Max - c)
  
End