Guida al C/C++
autore: BlackLight
xx/xx/xx
Gli Array:
Gli
array, o vettori, sono le strutture di dati più elementari in informatica. Si tratta di un insieme di variabili dello stesso tipo e accumunate dallo stesso nome (il nome
del'array). Ciò che distingue un elemento dell'array da un altro è l'
indice, ovvero il suo numero, la sua posizione all'interno
dell'array. Possiamo immaginare un array come una cassettiera: rimane sempre una cassettiera, ma all'interno dei suoi cassetti può contenere molte cose. Per spere dove mettere le mani per trovare qualcosa ci serve il numero del cassetto dove cercare (prima cassetto, secondo cassetto...). Così, un array è una raccolta di variabili dello stesso tipo sotto lo stesso nome dove ogni variabile è un "cassettino" identificato da un numero. Ecco come si dichiara un array in C:
tipo nome_array[quantità];
Esempio:
int mio_array[10];
In questo modo dichiaro un array di 10 variabili
int (
N.B. da 0 a 9, non da 1 a 10!) chiamato
mio_array. Se voglio cambiare un valore qualsiasi di questo
array, basterà fare così:
mio_array[0] = 3; // Il primo valore ora vale 3
mio_arrar[1] = 2; // Il secondo valore vale 2
.......
Ovviamente posso anche leggere da tastiera il valore di un elemento dell'array:
printf ("Inserisci il valore del primo elemento: ");
scanf("%d",&mio_array[0]); // Leggo il valore del primo elemento
printf ("Il primo elemento vale %d\n",mio_array[0]);
Posso anche leggere tutti i valori e poi stamparli tramite un ciclo for:
main() {
int mio_array[10];
int i;
for (i=0; i<10; i++) { // Per i volte...
printf ("Elemento n.%d: ",i); // Elemento n.i
scanf("%d",&mio_array[i]); // Leggo un valore int dalla tastiera
// e lo memorizzo nell'elemento numero
// i dell'array.
}
for (i=0; i<10; i++)
printf ("Elemento n.%d: %d\n",i,mio_array[i]); // Stampo tutti i valori
// contenuti nell'array
}
Ok, era giusto per capire il meccanismo degli array.
Vediamo ora un esempio più utile: un programma che calcola la media aritmetica di 5 numeri:
main() {
float numeri[5]; // Array di 5 float
float med=0; // Media aritmetica
int i; // Variabile contatore
for (i=0; i<5; i++) {
printf ("Valore n.%d: ",i);
scanf ("%f",&numeri[i]);
med += numeri[i]; // Sommo fra loro tutti i numeri nell'array
}
med /= 5; // Divido la somma dei numeri per la loro quantità (5)
printf ("Media aritmetica: %f\n",med);