Skip to content

Debugging ed Esercizi Pratici

La capacità di diagnosticare e risolvere i difetti del software (debugging) è fondamentale. Affidarsi ciecamente all’inserimento di messaggi testuali (il cosiddetto “printf debugging”) è poco scalabile. I moderni IDE offrono debugger professionali.

  • Debug: Il binario include speciali metadati di tracciamento e disabilita le ottimizzazioni. È la configurazione con cui sviluppare e ispezionare fedelmente le variabili.
  • Release: Il compilatore applica ottimizzazioni aggressive (es. eliminazione di variabili intermedie) rendendo difficile rintracciare gli stati. Utile per il rilascio finale.
  1. Breakpoint (Punto di arresto): Arresta l’esecuzione quando il programma raggiunge la riga contrassegnata.
  2. Step Over: Esegue la riga corrente senza “entrare” all’interno delle funzioni chiamate. (F10 in VS, F6 in Xcode, next in GDB).
  3. Step Into: “Entra” all’interno del corpo della funzione chiamata. (F11 in VS, F7 in Xcode, step in GDB).
  4. Step Out: Completa l’esecuzione della funzione corrente e ritorna al chiamante. (Shift+F11 in VS, F8 in Xcode, finish in GDB).

Usa le finestre di ispezione (come Autos in VS o info locals in GDB) per intercettare chiaramente l’assenza di inizializzazione della memoria.


Metti in pratica le basi sintattiche che hai appreso. L’editor sottostante compilerà il tuo C++ nel cloud in un container Piston e confronterà il risultato con l’expectedOutput.

Implementa la logica interna per calcolare il valore assoluto di un int:

  • Se x≥0x \ge 0, restituisci xx.
  • Se x<0x < 0, restituisci x×−1x \times -1.

Esercizio 2: Calcolo delle Spedizioni (Avanzato e Realistico)

Section titled “Esercizio 2: Calcolo delle Spedizioni (Avanzato e Realistico)”

Combiniamo assieme variabili, condizionali e chiamate di funzione.

Nel sistema backend di un e-commerce, calcoliamo le tariffe di spedizione:

  • Importo carrello ≥50\ge 50 euro ➔ spedizione gratuita (0 euro).
  • Importo compreso tra 20 e 49 euro inclusi ➔ spedizione 5 euro.
  • Importo <20< 20 euro ➔ spedizione 10 euro.

Implementa la funzione calcola_spedizione(int carrello) e stampane il risultato nel main.


Il linguaggio è normato da un comitato internazionale ISO (ISO/IEC 14882). La notazione formale nei documenti fa riferimento alle macro-sezioni usando le parentesi quadre (es. [intro.object]). Per gli standard, documentazione ufficiale e bozze, risorse come cppreference.com sono essenziali.