Innanzitutto, se ci sono errori di sintassi, devi semplicemente leggere attentamente gli errori del compilatore. Spesso una linea è evidenziata come un errore, ma in realtà era la precedente linea che ha l'errore.
Tieni presente che, per uno studente introduttivo, potrebbero esserci alcuni artefatti di modifica che impediranno la compilazione del programma che non può essere visto. Per esempio, una volta ho visto uno studente (non uno dei miei) che ha usato la barra spaziatrice invece di tornare: il suo codice sembrava normale su un editor che avvolgeva dopo 80 colonne (lo studente era molto paziente) e il codice funzionava fino a quando non ha aggiunto un " // " - commento di stile, che ha commentato tutto il resto del programma. Allo stesso modo, se si copiano campioni di codice da un sito Web, spesso vengono copiati anche caratteri non stampabili (a seconda di come il sito Web ha formattato il codice). In caso di dubbio, digitare nuovamente una riga senza copiare e incollare. [È un po 'stupefacente, ma ultimamente ho visto accadere molto di più.]
Per errori di compilatore sgradevoli, potresti dover far crescere il programma, creando un nuovo file e digitando tutto il codice mentre procedi. Assicurati di compilare dopo ogni passaggio principale prima di passare a quello successivo.
OK, quindi cosa succede se non ci sono errori di sintassi? Quindi è il momento di scorrere il codice! È possibile utilizzare un debugger per questo, ma anche effettuare chiamate a printf in tutto il codice è molto efficace. Ad esempio, se esiste un ciclo for , aggiungere un'istruzione di stampa per il contatore di loop. Nel caso di cicli nidificati di for , potresti scoprire che la variabile errata viene incrementata.
Il vantaggio di usare printf s è la sua capacità di "comprimere" nel tempo / spazio ciò che stai attualmente guardando. Quando si esegue un debugger, si vede anche un sacco di stato irrilevante e può essere più noioso. Inoltre, senza vedere una cronologia di ciò che è stato stampato sulla console, potresti perdere alcuni pattern. Il punto qui è che il debugger e printfs sono tecniche complementari, e nessuno dei due è sempre migliore dell'altro.
Infine, chiedi semplicemente al tuo amico cosa sta succedendo! Invece di guardarlo e dire "uh", chiedi loro cosa stanno facendo: "ora cosa fa n ?" Avviando la finestra di dialogo, potrebbero finire per rispondere alla loro stessa domanda oppure, potresti realizzare il modo in cui concettualizzavano il programma aveva un difetto, che può portarti a una soluzione.
Come commentato altrove, tutto migliora con l'esperienza. Anche se ho programmato per 20 anni, è stato solo negli ultimi 5 anni che ho lavorato con gli studenti che sono migliorato ad aiutarli con i loro errori.