- Riconoscere le parti di un programma C: direttive, funzione main, istruzioni.
- Usare printf per stampare testo su più righe.
- Applicare le sequenze di escape più comuni.
- Documentare il codice con i commenti e ordinarlo con l'indentazione.
Anatomia di un programma C
File: struttura.c | Obiettivo: leggere un sorgente
Ogni programma C ha la stessa ossatura. Leggiamo un esempio completo, riga per riga:
#include <stdio.h> /* libreria per input e output */
/* Programma di prova: mostra la struttura di base */
int main(void)
{
// stampa due righe di testo
printf("Riga 1\n");
printf("Riga 2\n");
printf("Colonna A\tColonna B\n");
return 0;
}| Elemento | Funzione |
|---|---|
#include <stdio.h> | Direttiva per il preprocessore: rende disponibili le funzioni di input/output standard (standard input output), come printf. |
int main(void) | La funzione principale: l'esecuzione parte sempre da qui. int indica che restituisce un numero intero; void che non riceve parametri. |
{ ... } | Le parentesi graffe delimitano il blocco di istruzioni della funzione. |
printf(...) | Funzione di libreria che stampa a video il testo tra virgolette. |
; | Il punto e virgola chiude ogni istruzione. |
return 0; | Termina main e comunica al sistema operativo che tutto è andato bene (0 = successo). |
Eseguendolo si ottiene:
Riga 1
Riga 2
Colonna A Colonna Bmain: è il punto di ingresso. Le istruzioni al suo interno vengono eseguite dall'alto verso il basso.Commenti, maiuscole e indentazione
Regola: il compilatore ignora i commenti | Obiettivo: codice leggibile
| Tipo | Sintassi | Uso |
|---|---|---|
| Su una riga | // testo | Dal simbolo // fino a fine riga. |
| Su più righe | /* testo */ | Tutto ciò che sta tra /* e */. |
- Un buon commento spiega il perché di una scelta, non ripete ciò che il codice già dice.
- Il C distingue maiuscole e minuscole (case sensitive):
printfè corretto,Printfno. - Spazi e a capo non cambiano il significato del programma, ma l'indentazione (di solito 4 spazi dentro le graffe) lo rende leggibile.
Stampare testo con printf
Funzione: printf | Argomento: stringa tra virgolette
Il testo da stampare va racchiuso tra virgolette doppie. Per i caratteri speciali si usano le sequenze di escape, che iniziano con la barra rovesciata:
| Sequenza | Effetto |
|---|---|
\n | Va a capo (nuova riga). |
\t | Inserisce una tabulazione. |
\\ | Stampa una barra rovesciata. |
\" | Stampa le virgolette doppie. |
printf non va a capo da sola: se dimentichi \n, il testo successivo resta sulla stessa riga. Nei sorgenti evita per ora le lettere accentate (scrivi Eta e non Età): alcune console le mostrano male.Laboratorio guidato — Una scheda personale a video
Obiettivo: scrivere da zero un programma con più printf, sequenze di escape e commenti.
Software: VS Code, gcc, terminale. Tempo previsto: 20 minuti.
Prerequisiti: ambiente della lezione precedente funzionante.
Procedura passo passo
- Nella cartella
corso-ccrea un nuovo filescheda.c. - Scrivi lo scheletro del programma:
#include <stdio.h> int main(void) { /* qui le istruzioni printf */ return 0; } - Al posto del commento aggiungi tre
printfper la parte alta: una riga di=====================, il titoloSCHEDA PERSONALEe di nuovo la riga di=. Ricordati\nalla fine di ogni stringa. - Aggiungi tre
printfperNome,ClasseeMotto. Usa\tdopo i due punti per allineare i valori e\"per mettere il motto tra virgolette. - Compila con
gcc -Wall -Wextra -std=c11 scheda.c -o schedaed esegui./scheda. - Aggiungi sopra la prima
printfun commento// stampa la scheda, ricompila e verifica che l'output non cambi. - Prova guidata dell'errore: togli un punto e virgola, compila e leggi il messaggio del compilatore; poi rimettilo.
Il programma, eseguito, deve produrre una scheda come questa (i valori sono un esempio):
=====================
SCHEDA PERSONALE
=====================
Nome: Mario
Classe: 3A
Motto: "Provare e riprovare"
Verifica del risultato
| Controllo | Che cosa devi riconoscere |
|---|---|
| Bordo e titolo | Tre righe: bordo, titolo, bordo. |
| Allineamento | I valori dopo i due punti sono allineati grazie a \t. |
| Motto | Compare tra virgolette doppie. |
- Il testo finisce tutto su una riga: manca un
\n. - Vedi
\nstampato a video: la barra è stata scritta al contrario (/n). - Errore
missing terminating " character: una stringa non è chiusa; controlla le virgolette. - Errore
undeclared identifieroimplicit declaration of function 'printf': manca#include <stdio.h>.
Esercizio autonomo
Personalizza la scheda con i tuoi dati, aggiungi una riga Hobby e una riga vuota prima del bordo finale (ottenuta con un \n in più).
Soluzione (da aprire solo dopo aver provato)
#include <stdio.h>
int main(void)
{
printf("=====================\n");
printf(" SCHEDA PERSONALE\n");
printf("=====================\n");
printf("Nome:\tMario\n");
printf("Classe:\t3A\n");
printf("Motto:\t\"Provare e riprovare\"\n");
return 0;
}Verifica dei concetti
Tipo: autovalutazione | Argomento: Struttura di un programma C
- Quale funzione è il punto di ingresso di ogni programma C?
- A che cosa serve
#include <stdio.h>? - Che cosa succede se si dimentica il punto e virgola alla fine di un'istruzione?
- Qual è la differenza tra
\ne\t? - In quali due modi si scrive un commento in C?
- Un programma C contiene la funzione
main, da cui parte l'esecuzione. #includerende disponibili le funzioni di una libreria.- Ogni istruzione termina con il punto e virgola e i blocchi sono racchiusi tra graffe.
printfstampa testo; le sequenze di escape come\ncontrollano la formattazione.
- Hai riconosciuto le parti di un sorgente C.
- Hai stampato testo su più righe con
printf. - Hai usato commenti e indentazione.
- Hai letto per la prima volta un messaggio di errore del compilatore.
Parole chiave
I termini principali introdotti in questa guida sono: