Differenze tra le versioni di "Invertire l'ordine dei valori contenuti dagli elementi di un vettore"

Da Gambas-it.org - Wikipedia.
 
(Una versione intermedia di uno stesso utente non è mostrata)
Riga 1: Riga 1:
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.
+
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:
 
Mostriamo un semplice esempio:
  '''Public''' Sub Main()
+
  Public Sub Main()
 
    
 
    
 
   Dim vett As Integer[] = [11, 22, 33, 44, 55, 66, 77]
 
   Dim vett As Integer[] = [11, 22, 33, 44, 55, 66, 77]
 
   Dim v As Integer
 
   Dim v As Integer
 
    
 
    
  For Each v In vett
+
  For Each v In vett
    Print v,
+
    Print v,
  Next
+
  Next
  Print
+
  Print
 
    
 
    
  vett.<FONT Color=#B22222>Reverse()</font>
+
  vett.<FONT Color=#B22222>Reverse()</font>
 
    
 
    
  For Each v In vett
+
  For Each v In vett
    Print v,
+
    Print v,
  Next
+
  Next
  Print
+
  Print
 
    
 
    
  '''End'''
+
  End
  
  
 
===Scrivere un'apposita esplicita funzione===
 
===Scrivere un'apposita esplicita funzione===
 
In alternativa è possibile scrivere una esplicita funzione in Gambas, come ad esempio la seguente:
 
In alternativa è possibile scrivere una esplicita funzione in Gambas, come ad esempio la seguente:
  '''Public''' Sub Main()
+
  Public Sub Main()
 
    
 
    
 
   Dim vett As Integer[] = [11, 22, 33, 44, 55, 66, 77]
 
   Dim vett As Integer[] = [11, 22, 33, 44, 55, 66, 77]
 
   Dim v As Integer
 
   Dim v As Integer
 
    
 
    
  For Each v In vett
+
  For Each v In vett
    Print v,
+
    Print v,
  Next
+
  Next
  Print
+
  Print
 
+
 
  Inversione(vett)    <FONT Color=gray>' ''Passaggio del l'argomento per "Indirizzo"''</font>
+
  Inversione(vett)    <FONT Color=gray>' ''Passaggio dell'argomento per "Indirizzo"''</font>
 
    
 
    
  For Each v In vett
+
  For Each v In vett
 
     Print v,
 
     Print v,
  Next
+
  Next
  Print
+
  Print
 
    
 
    
  '''End'''
+
  End
 
   
 
   
 
   
 
   
  '''Private''' Function Inversione(ii As Integer[])
+
  Private Function Inversione(ii As Integer[])
 
    
 
    
 
   Dim i, c As Integer
 
   Dim i, c As Integer
 
      
 
      
    Repeat
+
  Repeat
      i = ii[ii.Max - c]
+
    i = ii[ii.Max - c]
      ii[ii.Max - c] = ii[c]
+
    ii[ii.Max - c] = ii[c]
      ii[c] = i
+
    ii[c] = i
      Inc c
+
    Inc c
    Until c > (ii.Max - c)
+
  Until c > (ii.Max - c)
 
    
 
    
  '''End'''
+
  End

Versione attuale delle 04:18, 10 giu 2024

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