Questo sito utilizza cookies solo per scopi di autenticazione sul sito e nient'altro. Nessuna informazione personale viene tracciata. Leggi l'informativa sui cookies.
Username: Password: oppure
Pascal - vettori
Forum - Pascal - vettori

Avatar
pietro_ (Normal User)
Newbie


Messaggi: 4
Iscritto: 04/04/2008

Segnala al moderatore
Postato alle 15:47
Venerdì, 04/04/2008
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

PM Quote
Avatar
roma_91 (Ex-Member)
Newbie


Messaggi: 17
Iscritto: 11/03/2008

Segnala al moderatore
Postato alle 19:28
Venerdì, 04/04/2008
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);



Ultima modifica effettuata da roma_91 il 04/04/2008 alle 20:23
PM Quote
Avatar
FHF93 (Ex-Member)
Pro


Messaggi: 132
Iscritto: 13/11/2007

Segnala al moderatore
Postato alle 20:07
Venerdì, 04/04/2008
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 il 04/04/2008 alle 20:13
PM Quote
Avatar
pietro_ (Normal User)
Newbie


Messaggi: 4
Iscritto: 04/04/2008

Segnala al moderatore
Postato alle 20:09
Venerdì, 04/04/2008
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);
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

PM Quote
Avatar
FHF93 (Ex-Member)
Pro


Messaggi: 132
Iscritto: 13/11/2007

Segnala al moderatore
Postato alle 20:12
Venerdì, 04/04/2008
:D e io sopra che ti ho detto ? :rotfl:

PM Quote
Avatar
pietro_ (Normal User)
Newbie


Messaggi: 4
Iscritto: 04/04/2008

Segnala al moderatore
Postato alle 20:12
Venerdì, 04/04/2008
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-|

PM Quote
Avatar
FHF93 (Ex-Member)
Pro


Messaggi: 132
Iscritto: 13/11/2007

Segnala al moderatore
Postato alle 20:25
Venerdì, 04/04/2008
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








PM Quote
Avatar
pietro_ (Normal User)
Newbie


Messaggi: 4
Iscritto: 04/04/2008

Segnala al moderatore
Postato alle 20:46
Venerdì, 04/04/2008
ok fatto...grazie mille..6 un grande...8-| :k:

PM Quote