Come programmare in C

Etichette: informatica, programmazione, codice C, sintassi, variabili, operatori, funzioni, compilazione, esecuzione, risorse.

Informazioni preliminari

La programmazione è una competenza fondamentale nel mondo moderno, che consente di creare software e applicazioni per risolvere problemi e automatizzare processi. Uno dei linguaggi di programmazione più popolari e utilizzati è il linguaggio C, sviluppato nel 1972 da Dennis Ritchie presso i laboratori Bell. In questo articolo, forniremo un’introduzione completa alla programmazione in C, concentrandoci sulla sintassi di base, sull’uso dei tipi di dati, sulla definizione di variabili, sugli operatori principali, sui controlli condizionali, sulle funzioni e su come compilare ed eseguire un programma in C.

Sintassi di base

Il linguaggio C è un linguaggio di programmazione strutturato che utilizza una sintassi specifica per definire le istruzioni. Di seguito, sono riportati alcuni elementi di base della sintassi di C:

Statement

In C, un statement rappresenta un’azione o un comando che il programma deve eseguire. Un statement può essere costituito da una singola istruzione o da un blocco di istruzioni racchiuso tra parentesi graffe {}. Ad esempio:

#include <stdio.h>

int main() {
    printf("Ciao, mondo!");
    return 0;
}

In questo esempio, il statement principale è la chiamata alla funzione “printf”, che stampa il messaggio “Ciao, mondo!” sulla console. La funzione “main” indica il punto di ingresso del programma e restituisce il valore 0 per indicare che il programma è stato eseguito correttamente.

La direttiva #include

La direttiva “#include” è utilizzata per includere librerie o file di intestazione nel programma C. Le librerie contengono funzioni e definizioni che possono essere utilizzate nel programma. Ad esempio, “#include <stdio.h>” viene utilizzato per includere la libreria standard di input/output di C, che fornisce funzioni come “printf” per stampare i messaggi sulla console.

Tipi di dati

In C, i tipi di dati sono utilizzati per definire il tipo di valore che una variabile può contenere. Alcuni dei tipi di dati di base di C sono:

  • int: rappresenta un intero
  • float: rappresenta un numero in virgola mobile
  • char: rappresenta un carattere
  • double: rappresenta un numero in virgola mobile a doppia precisione

È anche possibile definire i propri tipi di dati utilizzando la parola chiave “struct”, che rappresenta una collezione di dati correlati.

Definizione di variabili

Le variabili in C sono utilizzate per archiviare e manipolare i dati nel programma. Prima di utilizzare una variabile, è necessario dichiararla, specificando il tipo di dato e il nome della variabile. Ad esempio:

int numero;
float pi = 3.14;
char carattere = 'A';

In questo esempio, “numero” è una variabile di tipo “int” che può contenere valori interi, “pi” è una variabile di tipo “float” che contiene il valore 3.14 e “carattere” è una variabile di tipo “char” che contiene il carattere ‘A’.

Operatori principali

In C, gli operatori sono utilizzati per eseguire operazioni matematiche e manipolare i dati. Alcuni degli operatori principali sono:

  • + (somma)
  • (sottrazione)
  • * (moltiplicazione)
  • / (divisione)

È anche possibile utilizzare operatori di confronto come “<" (minore di), ">” (maggiore di), “==” (uguale a) per confrontare i dati. Gli operatori logici come “&&” (AND), “||” (OR) e “!” (NOT) possono essere utilizzati per combinare le condizioni.

Controlli condizionali

If/else

Le istruzioni if/else sono utilizzate per eseguire azioni condizionali basate su una determinata condizione. La sintassi di base è:

if (condizione) {
    // blocco di codice da eseguire se la condizione è vera
} else {
    // blocco di codice da eseguire se la condizione è falsa
}

Ad esempio, il seguente codice verifica se un numero è positivo o negativo:

int numero = 10;

if (numero > 0) {
    printf("Il numero è positivo");
} else {
    printf("Il numero è negativo");
}

Switch/case

Lo statement switch/case è utilizzato per eseguire azioni diverse in base al valore di una variabile. La sintassi di base è:

switch (espressione) {
    case valore1:
        // blocco di codice da eseguire se espressione == valore1
        break;
    case valore2:
        // blocco di codice da eseguire se espressione == valore2
        break;
    default:
        // blocco di codice da eseguire se nessun caso corrisponde
        break;
}

Ad esempio:

int opzione = 2;

switch (opzione) {
    case 1:
        printf("Opzione 1 selezionata");
        break;
    case 2:
        printf("Opzione 2 selezionata");
        break;
    default:
        printf("Opzione non valida");
        break;
}

Operatori ternari

Gli operatori ternari sono una forma abbreviata per scrivere istruzioni if/else. La sintassi è:

condizione ? valore_se_vero : valore_se_falso;

Ad esempio:

int numero = 10;
int risultato;

risultato = (numero > 0) ? 1 : 0;

In questo esempio, se “numero” è maggiore di zero, “risultato” sarà uguale a 1, altrimenti sarà uguale a 0.

Le funzioni

In C, le funzioni sono utilizzate per organizzare il codice in unità più piccole e riutilizzabili. Una funzione può avere parametri di input e restituire un valore di output. La sintassi di base per la definizione di una funzione è:

tipo_di_dato nome_funzione(tipo_parametro1 nome_parametro1, tipo_parametro2 nome_parametro2, ...) {
    // blocco di codice della funzione
    return valore_da_restituire;
}

Ad esempio:

int somma(int numero1, int numero2) {
    return numero1 + numero2;
}

In questo esempio, la funzione “somma” accetta due parametri di input di tipo “int” e restituisce la somma dei due numeri.

La funzione “speciale” main()

La funzione “main()” è una funzione speciale in C che rappresenta il punto di ingresso del programma. Inizialmente, il programma eseguirà il codice all’interno della funzione “main()”. La sintassi di base per la funzione “main()” è:

int main() {
    // blocco di codice principale
    return 0;
}

Il valore restituito da “main()” viene utilizzato per comunicare al sistema operativo se il programma è stato eseguito correttamente (0) o se si è verificato un errore diverso da zero.

Esempio di codice funzionante

Di seguito è riportato un esempio di codice C completo che calcola la somma di due numeri inseriti dall’utente:

#include <stdio.h>

int somma(int numero1, int numero2) {
    return numero1 + numero2;
}

int main() {
    int numero1, numero2, risultato;

    printf("Inserisci il primo numero: ");
    scanf("%d", &numero1);

    printf("Inserisci il secondo numero: ");
    scanf("%d", &numero2);

    risultato = somma(numero1, numero2);

    printf("La somma dei due numeri è: %d", risultato);

    return 0;
}

In questo esempio, il programma chiede all’utente di inserire due numeri, li somma utilizzando la funzione “somma()” e stampa il risultato sulla console.

Come compilare ed eseguire un programma in C

Per compilare ed eseguire un programma in C, è necessario seguire i seguenti passaggi:

Windows

  1. Apri un editor di testo come Notepad o Visual Studio Code.
  2. Scrivi il codice del programma in C.
  3. Salva il file con estensione “.c”, ad esempio “programma.c”.
  4. Apri il prompt dei comandi e spostati nella directory in cui si trova il file del programma.
  5. Digitare il comando “gcc programma.c -o programma” per compilare il programma. Verrà creato un file eseguibile chiamato “programma.exe”.
  6. Digitare il comando “programma” per eseguire il programma.

macOS/Linux

  1. Apri un editor di testo come TextEdit o Visual Studio Code.
  2. Scrivi il codice del programma in C.
  3. Salva il file con estensione “.c”, ad esempio “programma.c”.
  4. Apri il terminale e spostati nella directory in cui si trova il file del programma.
  5. Digitare il comando “gcc programma.c -o programma” per compilare il programma. Verrà creato un file eseguibile chiamato “programma”.
  6. Digitare il comando “./programma” per eseguire il programma.

Risorse utili

Ecco alcune risorse utili per imparare ulteriormente la programmazione in C:

Ora hai una solida base per iniziare a programmare in C. Buon divertimento!