Dev C++

Laboratorio Trovare Un Errore Logico

Uso del debugger per spiegare una media troncata.

LABORATORIO

Trovare un errore logico

Uso del debugger per spiegare una media troncata.

Tempo indicativo: 25 minuti

Software: Dev-C++ su Windows

Il programma di partenza compila ma calcola una media intera prima di assegnarla a double. Il laboratorio deve produrre una spiegazione basata su valori osservati. La correzione viene fatta soltanto dopo aver individuato la divisione responsabile.

Il punto di arresto è sulla riga di media. Prima del passo controlla 7 e 8; dopo il passo osserva 7. La soluzione usa 2.0. Dopo ogni modifica del sorgente chiudi la vecchia sessione e ricostruisci, altrimenti puoi continuare a osservare un programma precedente.

Procedura passo passo

Una sequenza da eseguire sul proprio computer.

  1. Apri media-errata.cpp e prepara una configurazione con informazioni di debug.
  2. Ricostruisci e imposta un breakpoint sulla riga di media.
  3. Avvia il debug e verifica i valori primo=7 e secondo=8.
  4. Avanza oltre il calcolo e annota media=7.
  5. Termina la sessione, sostituisci 2 con 2.0 e ricostruisci.
  6. Ripeti il debug e verifica media=7.5.
  7. Scrivi una spiegazione che distingua il tipo della divisione da quello della variabile risultato.

Codice e risultato

Il codice va aperto e compilato in Dev-C++; il riquadro mostra il risultato previsto.

Sorgente C++

#include <iostream>

int main() {
    int primo = 7;
    int secondo = 8;
    double media = (primo + secondo) / 2;
    std::cout << "Media: " << media << "\n";
    return 0;
}

Risultato atteso

Media: 7
Il risultato richiesto e invece 7.5: esempio volutamente errato.

Questo riquadro è una previsione didattica, non una console che esegue il C++ nel browser.

Scarica l’esempioScarica la soluzione

Controllare il risultato

Confronta ciò che accade con una previsione formulata prima della prova.

ControlloRisultato o criterio
Operandi7 e 8: somma 15
Divisione per 2Il calcolo intero produce 7
Divisione per 2.0Il calcolo produce 7.5

Errori da evitare

Le cause da controllare prima di ripetere l’operazione.

  • Correggere il codice prima di osservare il valore errato.
  • Continuare la sessione vecchia dopo aver modificato il sorgente.
  • Limitarsi a dire che il debugger ha trovato l’errore.

Riferimenti: Debugger: documentazione ufficiale.