Differenze tra le versioni di "Perl/Variabili vettori"

Jump to navigation Jump to search
nessun oggetto della modifica
{{Perl}}
 
I vettori o array si possono immaginare come un treno.Ogni treno ha un certo numero di vagoni.
Ogni treno ha un certo numero di vagoni.
Analogamente gli array sono in insieme di scalari.Come nel treno le carrozze sono numerate , così negli array per identificare una informazione si usa un numero intero.La numerazione parte da 0 ed arriva fino al numero di elementi - 1.Cioè la prima carrozza ha il numero 0 (e non 1)
Analogamente gli array sono in insieme di scalari.
Analogamente gli array sono in insieme di scalari.Come nel treno le carrozze sono numerate , così negli array per identificare una informazione si usa un numero intero.La numerazione parte da 0 ed arriva fino al numero di elementi - 1.Cioè la prima carrozza ha il numero 0 (e non 1)
La numerazione parte da 0 ed arriva fino al numero di elementi - 1.
Cioè la prima carrozza ha il numero 0 (e non 1)
Quindi un vettore con 5 elementi, l'ultimo sarà identificato come 4 infatti 0,1,2,3,4 sono 5 elementi.
Vediamo un altro esempio di 100 elementi:
 
treno - vagoni : 1 2 3 4 5 ... 100
===Il nome===
 
Come per le variabili scalari , per identificare una variabile vettore (più valori in fila) occorre anteporre al nome il carattere @ (sigillo). Il nome di una variabile DEVE iniziare con "lettere", "_" , "'", mentre dal secondo carattere oltre ai precedenti si possono usare i "numeri" fino ad un massimo di 256 caratteri.
NOTA: Essendo un linguaggio "case sensitive" le lettere maiuscole e le lettere minuscole sono differenti.
questo scriverà : 3 per il primo array, 1 per il secondo array, mercoledì per il terzo array.
 
NotateNotare che la gestione dei simboli è corretta: se intendo gestire l'array nella sua "totalità" uso il simbolo @ mentre se ne voglio unoun elemeto, quindi una variabile scalare, allora uso "$" con il nome del vettore e l'identificatore della posizione racchiuso fra parentesi quadre.
 
Il Perl ha adottato la particolarità del contesto per sapere di quanti elementi è composto un array:
</source>
Ora @a ha ben 10 elementi, di scalari di valore undef.
 
'''NOTA''' se l'array ha un numero inferiore di elementi rispetto a quelli presenti , gli elementi che sono stati "aggiunti" hanno valore undef.
Questo è possibile perché è possibile identificare sintatticamente più informazioni.
#nel caso della notazione [ x , y , z ] si indicano gli elementi alla posizione x,y,z (nell'esempio 3 ma possono essere di più o di meno!).
#nel caso della notazione [ x .. y ] si indicano tutti gli elementi che vanno all'elemento x a y.Se l'elemento x e Y sono numeri sono tutti i numeri (incrementati di 1) che intercorrono fra x e y.Nel caso di stringhe sono tutti i caratteri far una stringa e l'altra: 'a' .. 'f' equivale ad a, b, c, d, e, f.
Se l'elemento x e y sono numeri sono tutti i numeri (incrementati di 1) che intercorrono fra x e y.
Nel caso di stringhe sono tutti i caratteri far una stringa e l'altra: 'a' .. 'f' equivale ad a, b, c, d, e, f.
 
@alfabeto = ('A' .. 'Z');
in giorni del mese ci saranno tutti i numeri da 01 a 31 (compreso 05, 11 , 21 etc)
 
in @ACD contiene ( 'A' , 'C' , 'D' ) prelevate da alfabeto dalle posizioni 0,2,3
 
in @s contiene ( undef , undef , 'PIPPO' , 'pluto' , undef , 'CIAO' )
 
in @k contiene ( 'mario' , 'giuseppe' )
NOTA: in quest'ultimo assegnamento lo si poteva ottenere anche con il seguente codice:
 
@k = ( 'mario' , 'giuseppe' );
 
=== funzioni per immettere informazioni nei vettori===
 
Oltre ai metodi precedentemente esposti è possibile utilizzare delle funzioni che trattano i vettori come file dalle quali estrarre informazioni dall'inizio o dalla coda
ecco che inizia a delinearsi la possibilità di utilizzare in modo flessibile le informazioni senza dover utilizzare dei "cicli" per inserire dei valori.
Le funzioni sono push, pop, shift e unshift.
 
===push ,e pop , shift , unshift=== lavorano sulla "coda del treno".
shift e unshift lavorano sulla "testa del treno".
 
push mette le informazioni in fondo
Queste funzioni consentono l'inserimento/estrazione di valori in un array in "testa" o in "coda" .
pop estrae le informazioni dal fondo
push
shift estrae le informazioni dalla testa
e pop lavorano sulla "coda del treno".
unshift mette le informazioni dalla testa
shift e unshift lavorano sulla "testa".
 
@a = ( 2 , 3, 4, 5 );
@p = split ( " " , "questo testo verrà diviso in ogni parola" );
$c = delete ( $p[3] );
print "$c , ".join("_" , @p)."\n";
che mostrerà:
diviso , questo testo verrà in ogni parolaquesto_testo_verrà__in_ogni_parola
 
'''NOTA''': da notare lo spazio"__" fra la parola "verrà" e la parola "in" : in quel punto c'è un elemento undef e quindi vengono aggiunti 2 spazi"_" (uno per il valore "undef" e uno per lail parolavalore "in")
 
[[Categoria:Perl|Vettori]]
195

contributi

Menu di navigazione