Lezione 6: Array – Organizza i Tuoi Dati Come un Pro


Lezione 6

Lezione 6: Array – Organizza i Tuoi Dati Come un Pro


Bentornato, avventuriero del codice! 👋

Oggi ci tuffiamo nel mondo degli array — perché diciamocelo, a volte una singola variabile non basta. Immagina di essere a una festa e dover ricordare i nomi di tutti. Invece di creare una variabile separata per ogni persona (che sarebbe un delirio), usi un array — una lista ordinata di nomi, tutta bella e in ordine.

Un array è come un blocco note digitale dove puoi tenere un gruppo di dati correlati in un unico posto. Che sia una lista dei tuoi condimenti per la pizza preferiti o i punteggi più alti del tuo ultimo gioco, gli array ti salveranno la giornata!

Prendi il caffè (magari doppio) e cominciamo a mettere un po’ di ordine.


Cos’è un Array?

Un array è fondamentalmente una collezione di variabili, tutte dello stesso tipo, memorizzate in un blocco di memoria contiguo. Pensalo come una fila di armadietti a scuola, dove ogni armadietto può contenere una sola cosa (tipo uno zaino o il pranzo). La chiave è che tutti gli armadietti sono nello stesso corridoio (l’array) e possono contenere solo lo stesso tipo di oggetto.

Ecco la sintassi base per dichiarare un array:

data_type nome_array[dimensione_array];

Supponiamo di voler memorizzare i punteggi di 5 giocatori in un gioco. Possiamo creare un array così:

#include <stdio.h>

int main() {
    int punteggi[5]; // Array per contenere 5 numeri interi

    // Assegniamo i valori
    punteggi[0] = 85;
    punteggi[1] = 92;
    punteggi[2] = 78;
    punteggi[3] = 99;
    punteggi[4] = 88;

    // Stampa dei punteggi
    for(int i = 0; i < 5; i++) {
        printf("Il punteggio del Giocatore %d è: %d\n", i + 1, punteggi[i]);
    }

    return 0;
}

Spiegazione: Abbiamo creato un array punteggi che può contenere 5 numeri interi. Poi abbiamo assegnato a ciascun elemento un punteggio e lo abbiamo stampato con un ciclo for. Facile, vero?


Accesso agli Elementi di un Array

Ogni elemento in un array ha un indice — come il numero di un armadietto nel nostro esempio del corridoio. Il primo elemento di un array è all’indice 0, il secondo è all’indice 1, e così via. Per accedere o modificare un elemento, usi il suo indice.

Ad esempio, se vogliamo aggiornare il punteggio del Giocatore 3 a 80, facciamo così:

punteggi[2] = 80; // Ricorda, gli array iniziano dall'indice 0!

E se vogliamo stampare un elemento specifico, ad esempio il punteggio del Giocatore 4, facciamo così:

printf("Il punteggio del Giocatore 4 è: %d\n", punteggi[3]);

Inizializzazione degli Array

Non è sempre necessario assegnare i valori a un array uno per uno. Puoi inizializzarlo tutto in una volta:

int punteggi[5] = {85, 92, 78, 99, 88};

In questo caso, dichiariamo l’array e lo riempiamo immediatamente con i valori. Puoi anche lasciare che il compilatore determini la dimensione:

int punteggi[] = {85, 92, 78, 99, 88}; // Il compilatore imposta automaticamente la dimensione a 5

Array e Cicli: Amici per la Pelle

Gli array e i cicli sono come pizza e birra: una combinazione perfetta. Quando hai una collezione di dati, i cicli sono il modo ideale per processare ogni elemento. Ecco un esempio per calcolare la media dei punteggi dei nostri giocatori:

#include <stdio.h>

int main() {
    int punteggi[] = {85, 92, 78, 99, 88};
    int somma = 0;
    int numero_giocatori = 5;

    for(int i = 0; i < numero_giocatori; i++) {
        somma += punteggi[i];
    }

    float media = somma / (float)numero_giocatori; // Calcola la media
    printf("La media dei punteggi è: %.2f\n", media);

    return 0;
}

Spiegazione: Usiamo un ciclo per sommare i punteggi e poi calcoliamo la media. Nota come abbiamo fatto il cast di numero_giocatori a float per ottenere una media precisa con decimali.


Array e Funzioni

Puoi anche passare gli array alle funzioni! Ecco un semplice esempio in cui passiamo il nostro array di punteggi a una funzione per trovare il punteggio più alto:

#include <stdio.h>

int trova_massimo(int punteggi[], int numero_giocatori) {
    int massimo = punteggi[0];
    for(int i = 1; i < numero_giocatori; i++) {
        if(punteggi[i] > massimo) {
            massimo = punteggi[i];
        }
    }
    return massimo;
}

int main() {
    int punteggi[] = {85, 92, 78, 99, 88};
    int numero_giocatori = 5;
    int massimo_punteggio = trova_massimo(punteggi, numero_giocatori);

    printf("Il punteggio più alto è: %d\n", massimo_punteggio);
    return 0;
}

Spiegazione: Definiamo una funzione trova_massimo che prende un array di punteggi e il numero di giocatori come argomenti. Questa funzione scorre l’array e restituisce il punteggio più alto.


Array Multidimensionali: Gli Array su Steroidi!

Finora abbiamo lavorato con array monodimensionali (una semplice lista). Ma cosa succede se hai bisogno di memorizzare una griglia o una tabella di dati? Ecco che entrano in gioco gli array multidimensionali. Ecco come puoi dichiarare e utilizzare un array bidimensionale (pensa a una tabella):

#include <stdio.h>

int main() {
    int matrice[3][3] = {
        {1, 2, 3},
        {4, 5, 6},
        {7, 8, 9}
    };

    // Stampa della matrice
    for(int i = 0; i < 3; i++) {
        for(int j = 0; j < 3; j++) {
            printf("%d ", matrice[i][j]);
        }
        printf("\n");
    }

    return 0;
}

Spiegazione: Abbiamo creato una matrice 3x3 (un array 2D). I cicli for scorrono ciascun elemento dell’array e lo stampano come una griglia.


Sfida per Casa: Tracciatore di Temperature!

Crea un programma che:

  1. Dichiari un array per memorizzare le temperature per una settimana (7 giorni).
  2. Chieda all’utente di inserire le temperature.
  3. Trovi e stampi la temperatura più alta, la più bassa e la media.

Considerazioni Finali

Ora hai aggiunto gli array alla tua cassetta degli attrezzi di programmazione, padroneggiando l’arte di gestire più dati in modo strutturato. Gli array sono potenti e abbiamo appena graffiato la superficie di ciò che puoi fare con loro. Nella Lezione 7 ci tufferemo nel mondo delle stringhe — sì, quegli array magici di caratteri! Preparati a dare forma ai tuoi dati come un maestro della scrittura! Ci vediamo lì! 🎉✨


Vedi anche