3D e 3E: Lezione teorica sui vettori (array, variabili indicizzate)

Lezione sui vettori (array, variabile indicizzata sono la stessa cosa)



Il vettore è una variabile indicizzata, una struttura astratta omogenea (salvata in memoria centrale) contenente "n" elementi a ciascuno dei quali deve essere associato un numero intero detto indice.

Per gestire un vettore abbiamo bisogno di dichiarare nel programma (a livello di linguaggio di programmazione):

nome del vettore con dimensione e caratteristica (normalmente di tipo int, float e string.

variabile della dimensione che deve essere sempre int

la variabile indice contatore che deve essere sempre int


E' importante tenere presente che il caricamento al'interno dell'array non può essere superiore alla dimensione

dichiarata inizialmente. Nel senso che se dichiaro il vettore stipendi[10] vuol dire che devo caricare massimo dieci stipendi.

Se supero questa dimensione, "sporco" la memoria e rischio di salvare elementi fuori dal vettore e difficilmente potrò usarli correttamente.

Ogni volta che devo caricare gli elementi del vettore posso farlo in tre modi differenti:

1) in modo statico, ad esempio stipendi[5]float {950,1300,1200,800,1400}

2) in modo random, il programma assegna in modo casuale un numero tra un range di due numeri, ad esempio:

stipendi[5]=rand(500, 5000) ( verrà memorizzato un valore tra 500 e 5000)

3) con l'utilizzo di istruzioni di input ad esempio prompt(in Javascript), cin e scanf (C e Cpp)



Il sistema migliore di caricamento degli elementi in un vettore è il ciclo di iterazione.

Sono tre e possono essere usati tranquillamente.

for i=0; i<n; i++

{

istruzione ....

istruzione ....

istruzione  ....

}


Il ciclo While definito precondizionale perchè il controllo viene effettuato all'inizio del ciclo


While (i<n) {

istruzione ...

istruzione ...

istruzione ...

i++

}


Il ciclo Do While definito post condizionale prchè il controllo viene effettuato alla fine del ciclo


Do {

i++

istruzione ...

istruzione ...

istruzione ...

While (i<n)

}

Salvare (caricare)  numeri e stringhe nei vettori

Caricare elementi nell'array con il For

for i=0; i<n; i++

{

"caricare gli elementi nel vettore" vettore[i] --- ovviamente dovete usare le istruzioni del linguaggio utilizzato in laboratorio (in Javascript "prompt" e in Cpp "cin o scanf")

}

Caricare elementi nell'array con il While (precondizionale)

i=0

While (i<n) {

"caricare gli elementi nel vettore" vettore[i] --- ovviamente dovete usare le istruzioni del linguaggio utilizzato in laboratorio (in Javascript "prompt" e in Cpp "cin o scanf")

i++

}


Caricare elementi nel vettore con il Do While (post condizionale)

i=0

Do

{

i++

"caricare gli elementi nel vettore" vettore[i] --- ovviamente dovete usare le istruzioni del linguaggio utilizzato in laboratorio (in Javascript "prompt" e in Cpp "cin o scanf")

While (i<n)

}


Stampare a video la sequenza del contenuto presente negli elementi nel vettore


Stampare gli elementi salvati nell'array con il For

for i=0; i<n; i++

{

"stampare gli elementi nel vettore" vettore[i] --- ovviamente dovete usare le istruzioni del linguaggio utilizzato in laboratorio (in Javascript "document.write o alert" e in Cpp "cout o printf")

}

Stampare gli elementi salvati nell'array con il While (precondizionale)

i=0

While (i<n) {

"stampare gli elementi nel vettore" vettore[i] --- ovviamente dovete usare le istruzioni del linguaggio utilizzato in laboratorio (in Javascript "document.write o alert" e in Cpp "cout o printf")

i++

}

Stampare gli elementi salvati nell'array con il Do While (post condizionale)

i=0

Do

{

i++

"stampare gli elementi nel vettore" vettore[i] --- ovviamente dovete usare le istruzioni del linguaggio utilizzato in laboratorio (in Javascript "document.write o alert" e in Cpp "cout o printf")

While (i<n)

}

Calcoli durante la lettura di un vettore (esempio calcolare il prodotto dei singoli elementi del vettore quantita[i] per l'importo[i] e salvarli nel vettore totale[i]:

for i=0; i<n; i++

{

totale[i]= quantita[i]*importo[i]

}


Calcolare il totale complessivo dell'array totale[i]

i=0

While (i<n) {

totale_complessivo=totale_complessivo+totale[i]

i++

}


Attenzione!!! l'errore più frequente è calcolare il totale senza tenere il valore precedente

calcolo esatto: totale_complessivo=totale_complessivo+totale[i]

calcolo errato: totale_complessivo=totale[i] (in questo caso la variabile conterrà solo l'ultimo elemento del vettore totale[i]


Le variabili stringa sono in realtà degli array di stringa

Se chiedessimo di inserire ad esempio un cognome in una variabile stringa che chiameremo "parola" potremmo stampare una lettera del cognome semplicemente scrivendo

inserisco il cognome nella variabile "parola" ad esempio= Francesco

se chiedessi di stampare la variabile parola[5] avremmo come output "c" perchè "c" è il quinto

elemento di "Francesco"


Cercare un elemento in un vettore


Ad esempio se volessi cercare un numero all'interno del vettore numeri[i]
devo inserire in una variabile il numero da cercare

numero= 4


a questo punto bisogna leggere con un'iterazione il vettore (dalla prima posizione fino all'ultima)

For i=0; i<n; i++ {

if numeri[i]==numero {
"il numero si trova alla posizione", i
}
else {
"il numero non e' presente nel vettore"
}

Commenti

Post popolari in questo blog

Simulazioni di reti (con Cisco Packet Tracer)

Esercizi sulla rappresentazione della virgola mobile IEEE 754 (Floating Point)