Μετάβαση στο περιεχόμενο

Βρες το λάθος

Κάθε πρόγραμμα έχει λάθη· ο προγραμματιστής είναι αυτός που τα βρίσκει.

20 λεπτά

Θα μάθεις να

  1. Να εξηγείς τι είναι ένα bug σε ένα πρόγραμμα.
  2. Να συγκρίνεις τι έκανε ένα πρόγραμμα με αυτό που περίμενες, για να βρεις πού αρχίζει η διαφορά.
  3. Να διορθώνεις ένα λάθος αλλάζοντας ένα πράγμα τη φορά και ξανατρέχοντας το πρόγραμμα.
  4. Να καταλαβαίνεις ότι το σημείο όπου σταματά ένα πρόγραμμα δεν είναι πάντα το σημείο του λάθους.

Τι είναι ένα bug

Γράφεις ένα πρόγραμμα, πατάς «Τρέξε»… και ο χαρακτήρας πάει αλλού, το σκορ δείχνει λάθος αριθμό ή δεν γίνεται τίποτα. Κάπου μέσα στο πρόγραμμα υπάρχει ένα λάθος.

Οι προγραμματιστές σε όλο τον κόσμο το λένε bug (μπαγκ), δηλαδή «ζουζούνι». Και τη δουλειά του να το βρεις και να το διορθώσεις τη λένε debugging — «ξεζουζούνιασμα», θα λέγαμε.

Η λέξη έχει και μια διάσημη ιστορία. Το 1947, μια ομάδα που δούλευε σε έναν από τους πρώτους υπολογιστές, στις ΗΠΑ, βρήκε μέσα στο μηχάνημα έναν σκόρο που είχε κολλήσει και το χαλούσε. Τον κόλλησαν στο ημερολόγιό τους και έγραψαν ότι βρήκαν «πραγματικό ζουζούνι». Η λέξη «bug» για τα λάθη υπήρχε ήδη από πριν — αλλά η ιστορία του σκόρου έμεινε.

Πώς βρίσκεις ένα bug

Το να κοιτάς το πρόγραμμα και να ελπίζεις ότι θα σου «πεταχτεί» το λάθος σπάνια δουλεύει. Δουλεύει μια μέθοδος σε τέσσερα βήματα:

  1. Τρέξε το πρόγραμμα και δες τι κάνει στ' αλήθεια.
  2. Σύγκρινε με αυτό που περίμενες. Βρες το πρώτο σημείο όπου τα δύο διαφέρουν.
  3. Άλλαξε ένα πράγμα — μόνο ένα — εκεί που νομίζεις ότι είναι το λάθος.
  4. Τρέξε ξανά. Διορθώθηκε; Αν όχι, γύρνα στο βήμα 2.
Τι περίμεναΤι έγινεΤι μου λέει
Ο γάτος πάει δεξιάΟ γάτος πάει αριστεράΚοίτα την εντολή κίνησης ή την κατεύθυνση.
Το σκορ ανεβαίνειΤο σκορ μένει 1Κοίτα πώς αλλάζει η μεταβλητή.
Μήνυμα «Κέρδισες!»Κανένα μήνυμαΚοίτα τη συνθήκη του «αν».

Βρες το λάθος του ρομπότ

Κάποιος έγραψε ένα πρόγραμμα για να φτάσει το ρομπότ από την κάτω αριστερή γωνία στο αστέρι πάνω δεξιά, ανάμεσα από τους μαύρους τοίχους. Το πρόγραμμα είναι ήδη γραμμένο — αλλά έχει ένα bug.

Το ρομπότ δεν φτάνει στο αστέρι

Πάτα «Τρέξε» και δες πού σταματά. Μετά σβήσε από το τέλος μέχρι το λάθος βελάκι και ξαναγράψε από εκεί.

Το πρόγραμμα

 

Όταν το τρέξεις, το ρομπότ θα σταματήσει στην ένατη εντολή, ένα ↑, και αυτή θα γίνει κόκκινη. Όμως ένα ↑ δεν είναι λάθος από μόνο του — ο δρόμος προς το αστέρι έχει κι αυτός ↑.

Ρώτα τον εαυτό σου: ήταν το ρομπότ εκεί που έπρεπε, λίγο πριν χτυπήσει; Ακολούθησε τη διαδρομή με το δάχτυλο, εντολή προς εντολή, και βρες πού ξέφυγε πρώτη φορά.

Ας το κάνουμε μαζί

Παράδειγμα 1

Ένα πρόγραμμα πρέπει να σχεδιάσει τετράγωνο: «επανάλαβε 3 φορές: προχώρα 50 βήματα, στρίψε δεξιά 90 μοίρες». Βγαίνει ένα σχήμα με τρεις πλευρές, ανοιχτό από τη μία μεριά. Πού είναι το bug;

Δοκίμασέ το πρώτα. Μετά δες τη λύση.

Παράδειγμα 2

Στο κουίζ της τάξης, όποιος φέρει 10 πόντους ή περισσότερους πρέπει να δει «Μπράβο!». Το πρόγραμμα λέει: «αν πόντοι μεγαλύτεροι από 10 τότε πες «Μπράβο!»». Η Άννα φέρνει ακριβώς 10 και δεν βλέπει τίποτα. Βρες το bug.

Δοκίμασέ το πρώτα. Μετά δες τη λύση.

Ασκήσεις

Πρώτα ερωτήσεις με επιλογές: διαλέγεις, πατάς «Έλεγξε» και μαθαίνεις αμέσως αν το βρήκες και γιατί. Στο τέλος, λίγες ασκήσεις χωρίς επιλογές — εκεί κρύβεται μόνο η απάντηση.

Πολλαπλή επιλογήΆσκηση 1 από 12
Τι είναι ένα bug;

Τα κατάφερες;

  • Να εξηγείς τι είναι ένα bug σε ένα πρόγραμμα.
  • Να συγκρίνεις τι έκανε ένα πρόγραμμα με αυτό που περίμενες, για να βρεις πού αρχίζει η διαφορά.
  • Να διορθώνεις ένα λάθος αλλάζοντας ένα πράγμα τη φορά και ξανατρέχοντας το πρόγραμμα.
  • Να καταλαβαίνεις ότι το σημείο όπου σταματά ένα πρόγραμμα δεν είναι πάντα το σημείο του λάθους.

Λύσε τις ασκήσεις πιο πάνω και θα δεις εδώ πού στέκεσαι.