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

Da Gambas-it.org - Wikipedia.
Versione del 10 giu 2024 alle 04:18 di Vuott (Discussione | contributi)

(diff) ← Versione meno recente | Versione attuale (diff) | Versione più recente → (diff)

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