Allora
facciamo che il vettore è il seguente:
vettore[10]=[10,30,50,22,65,34,88,2,322,54]
la lunghezza del vettore è 10 quindi ...
1>dichiari una variabile "cont" come "integer"
2> fai un cicl che faccia partire il valore della variabile da 0 e lo faccia arrivare a 10/2 ( 5 )
Mentre fai il ciclo devi invertire il valore contenuto in vettore[cont] col valore contenuto in vettore[10-cont]
Cioè ad esempio all'inizio del ciclo la variabile cont come ho detto sarà inizializzata a 0.
Quindi inverti vettore[cont] , ovvero 0, con vettore[10-cont] , ovvero 10.
quindi il vettore
[10,30,50,22,65,34,88,2,322,54]
diventa
[54,30,50,22,65,34,88,2,322,10]
al ciclo successivo cont è uguale a 1 e inverti nuovamente vettore[cont] con vettore[10-cont]
quindi ora l'array è
[54,322,50,22,65,34,88,2,30,10]
ripeti il processo fino a 5 ( N / 2 in questo caso N è uguale a 10 ( N sarebbe la dimensione del vettore ) ) e te lo trovi ordinato il vettore.
Ora la funzione per invertire un numero è questa:
Ad esempio supponendo che cont valga "0" all'inizio del ciclo, si fa così:
dichiari la variabile Temporany come integer e poi
Temporany := vettore[cont] ;
vettore[cont]:=vettore[10-cont];
vettore[10-cont]:=Temporany;
Capito ora?
Prova a fare sta funzione a mente col vettore e vedi che capisci
|