Differenze tra le versioni di "Invertire l'ordine dei valori contenuti dagli elementi di un vettore"
Da Gambas-it.org - Wikipedia.
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 " | + | 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() | |
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 | |
− | + | Print v, | |
− | + | Next | |
− | + | Print | |
− | + | vett.<FONT Color=#B22222>Reverse()</font> | |
− | + | For Each v In vett | |
− | + | Print v, | |
− | + | Next | |
− | + | Print | |
− | + | 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() | |
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 | |
− | + | Print v, | |
− | + | Next | |
− | + | Print | |
− | + | ||
− | + | Inversione(vett) <FONT Color=gray>' ''Passaggio dell'argomento per "Indirizzo"''</font> | |
− | + | For Each v In vett | |
Print v, | Print v, | ||
− | + | Next | |
− | + | Print | |
− | + | End | |
− | + | Private Function Inversione(ii As Integer[]) | |
Dim i, c 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 |
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