Deutsch

Εκσφαλμάτωση (Debugging)

Μάθημα 3: Τεχνικές Εκσφαλμάτωσης (Debugging)

Διάρκεια: 45 Λεπτά
Στόχος: Να γίνουμε "ντετέκτιβ" κώδικα και να βρίσκουμε λάθη που δεν εντοπίζει ο υπολογιστής.

Η ιστορία της "Νυχτοπεταλούδας"

Ήξερες ότι ο όρος "Bug" (ζουζούνι) βγήκε κυριολεκτικά από ένα έντομο; Το 1947, η Grace Hopper βρήκε μια νυχτοπεταλούδα κολλημένη μέσα σε έναν υπολογιστή Mark II, η οποία μπλόκαρε τη λειτουργία του!

1. Οι 3 Εχθροί του Προγραμματιστή

Δεν είναι όλα τα λάθη ίδια. Κάποια τα βρίσκει ο υπολογιστής αμέσως, και κάποια μπορεί να μας παιδεύουν για μέρες.

Είδος Λάθους Τι συμβαίνει; Παράδειγμα
Συντακτικό
(Syntax Error)
Παραβιάζουμε τη γραμματική της γλώσσας. Ο κώδικας δεν τρέχει καν. ΓΡΑΨΕ "Γεια
(Λείπουν τα εισαγωγικά)
Εκτέλεσης
(Runtime Error)
Ο κώδικας ξεκινάει, αλλά κρασάρει ξαφνικά σε μια εντολή. X <- 5 / 0
(Αδύνατη πράξη)
Λογικό
(Logical Error)
Το πιο επικίνδυνο! Το πρόγραμμα τρέχει κανονικά, αλλά βγάζει λάθος αποτέλεσμα. MO <- A + B / 2
(Λείπουν παρενθέσεις)

Checkpoint #1: Βρες τα Συντακτικά Λάθη

Ο παρακάτω αλγόριθμος είναι γεμάτος ορθογραφικά και συντακτικά λάθη. Μπορείς να τα εντοπίσεις;

Κάνε κλικ πάνω στις λέξεις που πιστεύεις ότι είναι λάθος.

2. Τα Όπλα μας: Πίνακας Τιμών &... Πάπιες;

Α. Ο Πίνακας Τιμών (Trace Table)

Για να βρούμε λογικά λάθη, πρέπει να γίνουμε εμείς ο υπολογιστής ("Play Computer").

  1. Φτιάχνουμε έναν πίνακα με στήλες για κάθε μεταβλητή.
  2. Εκτελούμε μία-μία τις εντολές.
  3. Κάθε φορά που αλλάζει μια μεταβλητή, γράφουμε τη νέα τιμή από κάτω.

Rubber Duck Debugging

Οι προγραμματιστές συχνά εξηγούν τον κώδικά τους, γραμμή-γραμμή, σε ένα... πλαστικό παπάκι! Μιλώντας φωναχτά, συχνά καταλαβαίνεις πού έχεις κάνει λάθος.

Checkpoint #2: Συμπλήρωσε τον Πίνακα

Δίνεται ο παρακάτω αλγόριθμος που υπολογίζει ένα άθροισμα.

x <- 2
Για i από 1 μέχρι 3
x <- x + 2
Τέλος_επανάληψης
Εμφάνισε x

Συμπλήρωσε τις τιμές των μεταβλητών i και x όπως θα εξελίσσονται σε κάθε βήμα.

Checkpoint #2 (B): Drag and Drop

Τέλος Ενότητας!

Τώρα ξέρεις να χειρίζεσαι Στοίβες, Ουρές και να διορθώνεις Bugs. Είσαι έτοιμος για προγραμματισμό!