sabato 5 febbraio 2011

Corso Linguaggio C #5: Array

In questa quinta lezione del mio corso di Linguaggio C tratterò un argomento fondamentale: gli Array

Gli array che possono sembrare difficili da usare ma invece se capiti bene sono davvero molto semplici.



Fino ad adesso abbiamo lavorato con singole variabili e se avevamo bisogno di 10 numeri o di 10 caratteri eravamo costretti a dichiarare 10 variabili diverse.

Con gli array siamo facilitati sotto questo punto di vista, infatti abbiamo la possibilità di lavorare su più elementi dichiarando una sola variabile.

Un array va dichiarato proprio come una normale variabile, infatti:

int array[10];

In questo modo ho dichiarato un array di 10 elementi di tipo intero. E' possibile anche inizializzare un array nel momento in cui lo si dichiara:

int array[]={1,5,9,14,25};

Per inserire elementi in un array si deve usare un ciclo for che parte da 0 e arriva al numero totale del size dell'array. Per esempio:

for(i=0;i<n;i++)
  scanf("%d",&array[i]);


Dove n è il size (numero di elementi) dell'array. Da notare che gli indici dell'array partono da 0 ed è per questo che il for è < e non <= ad n, perchè se un array ha size 10 il ciclo for dovrà arrivare fino al numero 9 (0,1,2,3,4,5,6,7,8,9).

Per quanto riguarda invece le funzioni e le procedure, un array nel main viene passato come una normale variabile (senza mettere le parentesi quadre), mentre invece nell'intestazione va dichiarato con il tipo e le parentesi quadre (ma senza il size nelle parentesi).

int somma_array (int a[], int n); //dichiarazione
somma_array(a,n); //passaggio

Adesso vediamo gli array 2d detti anche matrici, che hanno sia il numero di righe che quello di colonne. L'utilizzo di degli array 2d è molto simile a quello degli array 1d.

int array[10][10]; //dichiarazione


int array[2][3]={{1,5,9},
                 {14,25,30}};  //inizializzazione

for(i=0;i<righe;i++)
  for(j=0;j<colonne;j++)     //inserimento degli elementi nell'array
     scanf("%d",&array[i][j]);

Per quanto riguarda le funzioni e le procedure, gli array 2d vanno passati e dichiarati come quelli 1d, l'unica differenza è che nell'intestazione della funzione l'array 2d deve per forza essere dichiarato inserendo anche il numero di colonne (solo delle colonne)

int somma_array (int a[][10], int n, int m);

E con questo chiudo questa quinta lezione. Nella prossima tratteremo le stringhe affrontando tutte le funzioni più utilizzate in quel campo.

E' stata aperta una sezione per gli esercizi in C che è in continuo aggiornamento.

Alla prossima!

0 commenti:

Posta un commento

Altri articoli interessanti