Innanzitutto, se ci sono errori di sintassi, devi semplicemente leggere attentamente gli errori del compilatore. Spesso una riga viene evidenziata come errore, ma in realtà era la riga precedente a presentare l'errore.
Tenere presente che, per uno studente introduttivo, potrebbero esserci alcuni artefatti di modifica che impediranno la compilazione del programma che non è possibile visualizzare. Ad esempio, una volta ho visto uno studente (non uno dei miei) che ha usato la barra spaziatrice invece di return: il suo codice sembrava normale su un editor che si svolgeva dopo 80 colonne (lo studente era molto paziente) e il codice ha funzionato fino a quando non ha aggiunto un //
commento in stile " ", che ha commentato tutto il resto del programma. Allo stesso modo, se copi esempi 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 dubbi, digitare nuovamente una riga senza copiare e incollare. [È un po 'sorprendente, ma ho visto succedere molto di più ultimamente.]
Per cattivi errori del compilatore, potrebbe essere necessario aumentare il programma, creando un nuovo file e digitando tutto il codice man mano che procedi. Assicurati di compilare dopo ogni passaggio principale prima di passare al successivo.
OK, e se non ci fossero errori di sintassi? Quindi è il momento di scorrere il codice! È possibile utilizzare un debugger per questo, ma anche effettuare chiamate in printf
tutto il codice è molto efficace. Ad esempio, se esiste un for
loop, aggiungi un'istruzione print per il contatore loop. Nel caso di for
loop nidificati , è possibile che si stia incrementando la variabile errata.
Il vantaggio di usare printf
s è la sua capacità di "comprimere" nel tempo / spazio ciò che stai guardando. Quando passi attraverso un debugger, vedi anche molto stato irrilevante e può essere più noioso. Inoltre, senza vedere una cronologia di ciò che è stato stampato sulla console, potresti perdere alcuni schemi. 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 capire il modo in cui hanno concettualizzato che il programma aveva un difetto, il che può condurti a una soluzione.
Come commentato altrove, tutto ciò 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 nell'aiutarli con i loro errori.