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

Εκσφαλμάτωση

Συντακτικά και λογικά λάθη — και ο πίνακας τιμών που τα βρίσκει.

30 λεπτά

Θα μάθεις να

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

Τρία είδη λαθών

ΕίδοςΠότε εμφανίζεταιΠοιος το βρίσκει
Συντακτικόστη μεταγλώττισηο μεταγλωττιστής, αυτόματα
Λάθος εκτέλεσηςενώ το πρόγραμμα τρέχειτο ίδιο το σύστημα, διακόπτοντας
Λογικόποτέ — το πρόγραμμα τρέχει κανονικάμόνο εσύ
  • Συντακτικό: παράβαση των κανόνων της γλώσσας. Ξεχασμένο ΤΕΛΟΣ_ΑΝ, μεταβλητή που δεν δηλώθηκε, εκχώρηση σε σταθερά.
  • Λάθος εκτέλεσης: η σύνταξη είναι σωστή αλλά η ενέργεια αδύνατη. Διαίρεση με μηδέν, δείκτης πίνακα εκτός ορίων.
  • Λογικό: όλα νόμιμα, το αποτέλεσμα λάθος. Λάθος τελεστής, λάθος σειρά εντολών, λάθος όριο βρόχου.

Ένα λογικό λάθος, βήμα βήμα

Άθροισμα των αριθμών από 1 έως n — με ένα σφάλμα
  1. ΔΙΑΒΑΣΕ n
  2. S 0
  3. i 1
  4. ΟΣΟ i < n ΕΠΑΝΑΛΑΒΕ
  5. S S + i
  6. i i + 1
  7. ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ
  8. ΓΡΑΨΕ S

Το πρόγραμμα μεταγλωττίζεται καθαρά, τρέχει, τερματίζει και τυπώνει έναν αριθμό. Με n = 5 τυπώνει 1010, ενώ η σωστή απάντηση είναι 1515.

Ο πίνακας τιμών που βρίσκει το σφάλμα

Τρέξε τον μέχρι το τέλος και σύγκρινε με το αναμενόμενο 15. Η γραμμή όπου χάνεται το 5 δείχνει και τη γραμμή του κώδικα που φταίει.

Βήμαii < 5SΣχόλιο
Ζωντανή ενημέρωση

Τεχνικές εκσφαλμάτωσης

ΤεχνικήΤι κάνει
Ξηρή εκτέλεση (πίνακας τιμών)εκτέλεση στο χαρτί, χωρίς υπολογιστή
Εκτυπώσεις ελέγχουπροσωρινές ΓΡΑΨΕ σε κρίσιμα σημεία
Σημεία διακοπήςτο πρόγραμμα σταματά σε γραμμή που όρισες
Βηματική εκτέλεσημία εντολή τη φορά
Παρακολούθηση μεταβλητώνοι τιμές φαίνονται ζωντανά όσο τρέχει

Έλεγχος με ακραίες τιμές

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

  • Τα όρια: η πρώτη και η τελευταία έγκυρη τιμή.
  • Ακριβώς έξω από τα όρια: μία λιγότερη και μία περισσότερη.
  • Το μηδέν και οι αρνητικοί, όπου έχουν νόημα.
  • Το άδειο σύνολο: μηδέν δεδομένα.
  • Ένα μόνο στοιχείο, που σπάει τους βρόχους σύγκρισης ζευγών.

Λυμένα παραδείγματα

Παράδειγμα 1

Το πρόγραμμα τυπώνει 10 αντί για 15 στο άθροισμα 1 έως 5. Τι είδους λάθος, και πού;

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

Παράδειγμα 2

Κατάταξε τα λάθη: (α) ξεχασμένο ΤΕΛΟΣ_ΑΝ, (β) διαίρεση με μηδέν, (γ) πρόσθεση αντί για αφαίρεση.

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

Παράδειγμα 3

Ποια δεδομένα θα δοκίμαζες σε πρόγραμμα που βρίσκει τον μέσο όρο ν αριθμών;

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

Παράδειγμα 4

Γιατί ο πίνακας τιμών βρίσκει λάθη που ο μεταγλωττιστής δεν βρίσκει;

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

Ασκήσεις

Από την πιο απλή στην πιο δύσκολη. Κρυμμένη είναι μόνο η απάντηση — ο δρόμος ως εκεί είναι δική σου δουλειά.

ΒασικήΆσκηση 1 από 4

Ποιο είδος λάθους δεν το εντοπίζει κανένα εργαλείο αυτόματα;

Τεστ

Δεν μετράει βαθμός — μετράει να δεις τι κατάλαβες. Προσπέρασε όποια θες και γύρνα πίσω όποτε θες.

Ερώτηση 1 από 8

Ξεχασμένο ΤΕΛΟΣ_ΑΝ είναι λάθος:

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

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

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