Ενοτητα 5 Σχ Βιβ Πληροφορική Flashcards
Πού οφείλεται η εμφάνιση των λαθών σε ένα πρόγραμμα;
Απάντηση:
Η εμφάνιση των λαθών σε ένα πρόγραμμα, οφείλεται σε απρόβλεπτες καταστάσεις, σε κακούς χειρισμούς ή σε λογικά λάθη στο σχεδιασμό των προγραμμάτων.
- Κατά πόσο επηρεάζουν τα λάθη τη λειτουργία ενός προγράμματος;
Απάντηση:
Τα λάθη που παρουσιάζονται κατά την εκτέλεση ενός προγράμματος, μερικές φορές μπορεί να είναι ασήμαντα, όπως για παράδειγμα η εσφαλμένη στοίχιση των αποτελεσμάτων, μπορεί όμως να είναι και ιδιαίτερα κρίσιμα, ώστε να οδηγούν στην κατάρρευση των εφαρμογών ή του συστήματος.
- Ποιοι έλεγχοι πρέπει να διεξάγονται σε ένα πρόγραμμα πριν δοθεί σε πραγματική λειτουργία;
Απάντηση:
Ένα πρόγραμμα πριν παραδοθεί για πραγματική λειτουργία, πρέπει να ελέγχεται και να είναι βεβαιωμένο ότι εργάζεται απρόσκοπτα και παράγει σωστά αποτελέσματα. Ο προγραμματιστής οφείλει κατά τη φάση της υλοποίησης, να δοκιμάζει το πρόγραμμα σε διαφορετικές συνθήκες και με ποικιλία δεδομένων, να διορθώνει όποια λάθη παρουσιαστούν και να συγκρίνει τα παραγόμενα αποτελέσματα με τα αναμενόμενα, ώστε να προλαμβάνει απρόσμενες καταστάσεις λάθους, πριν εμφανιστούν σε πραγματική λειτουργία.
- Σε ποιες βασικές κατηγορίες χωρίζουμε τα λάθη που είναι δυνατόν να παρουσιαστούν σε ένα πρόγραμμα;
Απάντηση:
Τα λάθη που μπορούν να παρουσιαστούν σε ένα πρόγραμμα τα χωρίζουμε στιςμεξής κατηγορίες:
○Λάθη κατά την υλοποίηση ή αλλιώς συντακτικά λάθη.
○Λάθη κατά την εκτέλεση ή αλλιώς λάθη που οδηγούν σε αντικανονικό τερματισμό του προγράμματος.
○ Λογικά λάθη ή αλλιώς λογικά λάθη που παράγουν λανθασμένα αποτελέσματα,
- Πως δημιουργούνται τα συντακτικά λάθη σε ένα πρόγραμμα;
Απάντηση:
Τα συντακτικά λάθη προκαλούνται κυρίως από λανθασμένη σύνταξη εντολών προγράμματος κατά τον χρόνο υλοποίησης του. Τέτοια λάθη μπορεί να είναι η λανθασμένη συγγραφή μιας δεσμευμένης λέξης ή η παράλειψη μιας δεσμευμένης λέξης της γλώσσας προγραμματισμού ή η χρήση μιας δομής ελέγχου χωρίς την εντολή τερματισμού της ή η παράλειψη δήλωσης μιας μεταβλητής
- Ποιος εντοπίζει/ανιχνεύει τα συντακτικά λάθη;
Απάντηση:
Ένα λάθος που προκαλείται κατά τη συγγραφή του προγράμματος (συντακτικό λάθος) ανιχνεύεται κατά τη φάση της μεταγλώττισης, από τον μεταγλωττιστή ο οποίος εμφανίζει προς τον προγραμματιστή κάποιο προειδοποιητικό μήνυμα. Αν το πρόγραμμα περιέχει συντακτικά λάθη δεν επιτρέπεται η εκτέλεση του μέχρι να τα διορθώσει ο προγραμματιστης
Πώς τα σύγχρονα προγραμματιστικά περιβάλλοντα μας προφυλάσσουν από τα συντακτικά λάθη;
Τα σύγχρονα προγραμματιστικά περιβάλλοντα μας προφυλάσσουν αυτόματα από τα συντακτικά λάθη (λάθη κατά την υλοποίηση), καθώς ανιχνεύουν και προτείνουν τη διόρθωσή τέτοιων λαθών μέσα από εργαλεία αυτόματου ελέγχου σύνταξης των Εντολών. Επίσης παρακολουθούν τον προγραμματιστή κατά τη συγγραφή του προγράμματος και μόλις διαπιστώσουν κάποιο συντακτικό λάθος, σταματούν και απαιτούν τη διόρθωσή του. Συνήθως αντιλαμβάνονται ακριβώς το λάθος που δημιουργήθηκε και προτείνουν αναλυτικά τον τρόπο διόρθωσής του, εμφανίζοντας σε ενημερωτικό πλαίσιο την ορθή σύνταξη της εντολής στην οποία προκλήθηκε το λάθος.
- Γιατί είναι πιο επώδυνα τα λάθη κατά την εκτέλεση του προγράμματος και πότε εμφανίζονται;
Απάντηση:
Τα λάθη που προκαλούνται κατά το χρόνο εκτέλεσης του προγράμματος είναι πιο επώδυνα γιατί συνήθως εμφανίζονται σε πραγματικό περιβάλλον εκτέλεσης και τις περισσότερες φορές προκαλούν τον αντικανονικό τερματισμό του προγράμματος και το «κρέμασμα» του συστήματος.
- Πως αντιμετωπίζονται τα λάθη που εμφανίζονται κατά την εκτέλεση του προγράμματος;
Απάντηση:
Όταν ένα λάθος προκληθεί κατά την εκτέλεση του προγράμματος, αντιμετωπίζεται μόνο με τη χρήση κατάλληλων εντολών προγράμματος που το παγιδεύουν και στη συνέχεια εκτελούν τις κατάλληλες διαδικασίες χειρισμού του.
- Γιατί είναι δύσκολη η αντιμετώπιση των λαθών που εμφανίζονται κατά την εκτέλεση του προγράμματος;
Απάντηση:
Η πρόληψη των λαθών που εμφανίζονται κατά την εκτέλεση του προγράμματος είναι αρκετά δύσκολη, αφού συνήθως οφείλονται σε καταστάσεις που δεν είναι εύκολο να ελεγχθούν από τον προγραμματιστή, ενώ πολλές φορές εμφανίζονται μετά από μεγάλο χρονικό διάστημα.
- Που οφείλονται τα λογικά λάθη τα οποία παρουσιάζονται σε ένα πρόγραμμα;
Απάντηση:
Τα λογικά λάθη είναι συνήθως λάθη που οφείλονται στον σχεδιασμό του προγράμματος. Ένα πρόγραμμα μπορεί να περιέχει λογικά λάθη και να μην παρουσιάζει συντακτικά λάθη. Στην περίπτωση αυτή ο μεταγλωττιστής της γλώσσας προγραμματισμού δεν ανιχνεύει κανένα συντακτικό λάθος, με αποτέλεσμα ενώ κατά την εκτέλεση του προγράμματος να μην παρουσιάζονται ανεπιθύμητες καταστάσεις σφαλμάτων, τελικά να παράγονται λανθασμένα αποτελέσματα. Δηλαδή τα λογικά λάθη δεν προκαλούν διακοπή της εκτέλεσης ενός προγράμματος και έχουν ως συνέπεια το πρόγραμμα σε κάποιες περιπτώσεις να εξάγει λανθασμένα αποτελέσματα.
- Πώς μπορούν να εντοπιστούν τα λογικά λάθη τα οποία παρουσιάζονται σε ένα πρόγραμμα
Τα λογικά λάθη δεν είναι δυνατό να ανιχνευτούν από κάποιο εργαλείο του υπολογιστή αλλά διαπιστώνονται μόνο με τη διαδικασία ελέγχου και την ανάλυση των αποτελεσμάτων των προγραμμάτων. Δηλαδή κάνοντας δοκιμαστικές εκτελέσεις του προγράμματός και ελέγχοντας αν για συγκεκριμένες τιμές εισόδου, το πρόγραμμά εξάγει σωστά αποτελέσματα.
- Τι ονομάζουμε εκσφαλμάτωση προγράμματος και τι στόχο έχει;
Απάντηση:
Εκσφαλμάτωση ονομάζουμε τη διαδικασία ελέγχου, εντοπισμού και διόρθωσης των σφαλμάτων ενός προγράμματος. Στόχος της διαδικασίας εκσφαλμάτωσης είναι ο εντοπισμός των σημείων του προγράμματος που προκαλούν προβλήματα στη λειτουργία του.
- Τι γνώσεις απαιτούνται για να γίνει η εκσφαλμάτωση ενός προγράμματος;
Απάντηση:
Η εργασία της εκσφαλμάτωσης, απαιτεί βαθιά γνώση της γλώσσας προγραμματισμού που χρησιμοποιήθηκε για τη δημιουργία του προγράμματος και ικανότητες από τον προγραμματιστή. Για τον εντοπισμό ενός λάθους δεν χρησιμοποιούμε ιδιαίτερα μυστικά και τρικ. Η εκσφαλμάτωση είναι ένα πρόβλημα λογικής και όσο πιο καλά αντιλαμβάνεται ο προγραμματιστής τον τρόπο που εργάζεται το πρόγραμμα, τόσο πιο σύντομα και πιο εύκολα θα εντοπίσει τα λάθη που προκαλούν δυσλειτουργίες.
- Τι είδους λάθη εντοπίζουμε κατά την εκσφαλμάτωση ενός προγράμματος;
.
Απάντηση:
Τα λάθη με τα οποία ασχολούμαστε στη φάση της εκσφαλμάτωσης είναι τα λογικά λάθη και τα λάθη που παρουσιάζονται κατά το χρόνο εκτέλεσης του προγράμματος. Η εκσφαλμάτωση αυτών των λαθών μπορεί να γίνει μέσα από εργαλεία εκσφαλμάτωσης ή από ειδικές εντολές ή συναρτήσεις που προσφέρει το περιβάλλον προγραμματισμού.
- Τα συντακτικά λάθη εντοπίζονται κατά τη διαδικασία της εκσφαλμάτωσης;
Απάντηση:
Τα συντακτικά λάθη δεν μας απασχολούν κατά τη διαδικασία της εκσφαλμάτωσης καθώς σε ένα σύγχρονο προγραμματιστικό περιβάλλον αυτά τα λάθη τις περισσότερες φορές το περιβάλλον προγραμματισμού τα ανιχνεύει αυτόματα και προτείνει τη διόρθωσή τους. Ακόμη και αν το περιβάλλον δεν προτείνει τη διόρθωση τους ο μεταγλωττιστής συλλαμβάνει και περιγράφει το λάθος και στη συνέχεια ο προγραμματιστής μπορεί να το διορθώσει.
- Σε μια δομή επιλογής που μπορούν να εμφανιστούν λογικά λάθη;
Απάντηση:
Σε μια δομή επιλογής μπορεί να εμφανιστούν λογικά λάθη που σχετίζονται με τη συνθήκη ή τις συνθήκες και με τις ομάδες εντολών που εκτελούνται όταν μια συνθήκη είναι αληθής ή ψευδής.
Επίσης, κατά την εκτέλεση της δομής επιλογής ορισμένες φορές εμφανίζονται λανθασμένα αποτελέσματα, τα οποία όμως σχετίζονται με λογικά λάθη που υπάρχουν σε προηγούμενες εντολές που επηρεάζουν την τιμή που λαμβάνει η συνθήκη και όχι στην ίδια τη συνθήκη
Πώς γίνεται ο έλεγχος ορθότητας ενός προγράμματος και ο εντοπισμός λογικών λαθών σε μια δομή επιλογής;
Απάντηση:
Για τον έλεγχο της ορθότητας ενός προγράμματος σχηματίζουμε σενάρια ελέγχου, δηλαδή πραγματοποιούμε δοκιμαστικές εκτελέσεις του προγράμματος χρησιμοποιώντας ως τιμές εισόδου, δεδομένα που αντιπροσωπεύουν όλες τις περιπτώσεις που ελέγχονται με τη δομή επιλογής. (Περισσότερα για τα σενάρια ελέγχου στην 26η ερώτηση).
- Πώς αποτυπώνεται η εκτέλεση των σεναρίων ελέγχου;
Απάντηση:
Κάθε σενάριο ελέγχου αντιστοιχεί σε μια δοκιμή με τιμές εισόδου και τα αποτελέσματα αποτυπώνονται στον παρακάτω πίνακα:
|Α/Α|Τιμές εισόδου|Αναμενόμενο αποτέλεσμα με βάση την εκφώνηση|Αποτέλεσμα συνθήκης|Έξοδος προγράμματος|Ορθότητα αποτελέσματος|
Κάθε γραμμή του πίνακα αντιστοιχεί στην εκτέλεση ενός σεναρίου ελέγχου για συγκεκριμένες τιμές εισόδου. Καταγράφουμε, το αναμενόμενο αποτέλεσμα για τις συγκεκριμένες τιμές εισόδου με βάση την εκφώνηση, το αποτέλεσμα κάθε συνθήκης (Αληθής ή Ψευδής), την έξοδο του προγράμματος και στην τελευταία στήλη του πίνακα «Ορθότητα αποτελέσματος» καταγράφουμε, τη λέξη «Σωστό» αν το αποτέλεσμα της εξόδου του προγράμματος είναι ίδιο με το αναμενόμενο αποτέλεσμα με βάση την εκφώνηση, ή τη λέξη «Λάθος» αν το αποτέλεσμα της εκφώνησης είναι διαφορετικό.
- Ποια λογικά λάθη μπορούν να εμφανιστούν σε μια δομή επανάληψης;
Απάντηση:
Σε μια δομή επανάληψης μπορεί να εμφανιστούν λογικά λάθη που σχετίζονται με:
□τη συνθήκη επανάληψης ή τερματισμού,
□την αρχικοποίηση της συνθήκης,
□την ενημέρωση της συνθήκης εντός του βρόχου επανάληψης,
□τις εντολές που περιλαμβάνονται εντός του βρόχου.
- Τι πρέπει να προσέχουμε κατά την εκσφαλμάτωση των δομών επανάληψης;
Απάντηση:
Κατά την εκσφαλμάτωση των δομών επανάληψης χρειάζεται να προσέχουμε στα εξής
♤στους συγκριτικούς και τους λογικούς τελεστές των συνθηκών επανάληψης ή τερματισμού,
♤στην αρχικοποίηση της συνθήκης,
♤στην ενημέρωση της συνθήκης εντός του βρόχου,
♤στην αλληλουχία των εντολών του βρόχου και στη σειρά εκτέλεσής τους,
♤στο κριτήριο της περατότητας,
♤στην πρώτη επανάληψη και στην περίπτωση που ο βρόχος επανάληψης δεν πρέπει να εκτελεστεί ούτε μία φορά,
♤στην τελευταία επανάληψη.
- Τι πρέπει να προσέχουμε κατά την εκσφαλμάτωση προγραμμάτων που χρησιμοποιούν πίνακες
Απάντηση:
Κατά την εκσφαλμάτωση προγραμμάτων που χρησιμοποιούν πίνακες χρειάζεται να προσέχουμε:
♡ στο μέγεθος των πινάκων κατά τη δήλωσή τους,
♡ στους δείκτες των πινάκων κατά την προσπέλασή τους,
♡ στη μη υπέρβαση των ορίων του πίνακα.
- Τι πρέπει να προσέχουμε κατά την εκσφαλμάτωση προγραμμάτων που χρησιμοποιούν υποπρογράμματα;
Απάντηση:
Κατά την εκσφαλμάτωση προγραμμάτων που χρησιμοποιούν υποπρογράμματα χρειάζεται να δίνουμε προσοχή στον εντοπισμό λογικών λαθών που σχετίζονται με:
♧ την κλήση του υποπρογράμματος και το πέρασμα των παραμέτρων
♧ τα λοιπά λογικά λάθη που εμφανίζονται και στα προγράμματα.
- Ποια πρακτική χρησιμοποιείται για τον εντοπισμό λαθών και τι μειονέκτημα παρουσιάζει;
Απάντηση:
Κάθε πρόγραμμα πρέπει να ελεγχθεί για τη σωστή λειτουργία του, δηλαδή να επιβεβαιωθεί ότι παράγει τα αποτελέσματα που πρέπει. Κατά το στάδιο της υλοποίησης, μια κοινή πρακτική που εφαρμόζεται για τον εντοπισμό συνηθισμένων λαθών είναι να πραγματοποιούνται ανασκοπήσεις κώδικα από ομάδες προγραμματιστών προκειμένου να εντοπιστούν τα λάθη αυτά. Αυτή η τεχνική όμως δεν εξασφαλίζει τον εντοπισμό όλων των λαθών και γι’ αυτό ακολουθείται πιο συστηματική προσέγγιση με τη χρήση σεναρίων ελέγχου.