Oppure

Loading
04/04/08 13:47
pietro_
salve sn nuovo e nn sò tanto cm funziona...cmq vorrei sapere come posso fare avendo un vettore di tipo integer x esempio [1,3,6,9,19] a cambiarlo in [19,9,6,3,1] spero di essere stato chiaro...:d
aaa
04/04/08 17:28
roma_91
non so se ho capito bene,.. tu vuoi invertire i valori dell'array giusto??
Se devi solo stamparli allora puo usare il FOR DOWNTO:

for i:=(numero elementi array) DOWNTO 1 DO
write(array[i]);


Ultima modifica effettuata da roma_91 04/04/08 18:23
aaa
04/04/08 18:07
FHF93
no semplicemente vuole invertire l'array , e per farlo basta fare così più o meno:
Dato un vettore di N size

1> fai un ciclo che va da 0 a N/2 e memorizza il valore nell'intero "a"
2> Swappi (inverti) vettore[a] con vettore[n-a] ...
per swappare ( vabbè scrivo in C ma tanto si capisce)
int x=vettore[a];
vettore[a]=vettore[n-a];
vettore[n-a]=x;

questo è tutto
Ultima modifica effettuata da FHF93 04/04/08 18:13
aaa
04/04/08 18:09
pietro_
no nn intendevo questo..nn mi sn saputo spiegare (colpa mia).. io intendevo un programma del genere...esempio: noi abbiamo un vettore in cui inseriamo i valori...ad esempio
for i:=1 to 5 do
read(vet[i]);
supponendo che il nostro vettore alla fine risulti il seguente [1,3,5,6,8]
in seguito io lo vorrei cambiare in modo che alla fine del programma risulti sempre lo stesso vettore ma con i valori inversi..cioè [8,6,5,3,1] spero di essere stato chiaro :d
aaa
04/04/08 18:12
FHF93
:D e io sopra che ti ho detto ? :rotfl:
aaa
04/04/08 18:12
pietro_
ecco bravo!! vorrei semplicemente che il vettore risulti invertito alla fine del programma!!però nn ti seguo bene..scusa ma sono alle prime armi nel pascal 8-|
aaa
04/04/08 18:25
FHF93
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







aaa
04/04/08 18:46
pietro_
ok fatto...grazie mille..6 un grande...8-| :k:
aaa