30
ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ Η/Υ Βασικές Έννοιες Προγραμματισμού Τμήμα Μηχανολόγων Μηχανικών Πανεπιστήμιο Θεσσαλίας Ιωάννης Λυχναρόπουλος Μαθηματικός, MSc, PhD

ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣΗ/Υ · 2017-10-11 · Η Προσαρμογή του τρόπου ... τη συντήρηση του προγράμματος ... κυκλώματα

  • Upload
    others

  • View
    1

  • Download
    0

Embed Size (px)

Citation preview

Page 1: ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣΗ/Υ · 2017-10-11 · Η Προσαρμογή του τρόπου ... τη συντήρηση του προγράμματος ... κυκλώματα

ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ Η/ΥΒασικές Έννοιες Προγραμματισμού

Τμήμα Μηχανολόγων ΜηχανικώνΠανεπιστήμιο Θεσσαλίας

Ιωάννης ΛυχναρόπουλοςΜαθηματικός, MSc, PhD

Page 2: ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣΗ/Υ · 2017-10-11 · Η Προσαρμογή του τρόπου ... τη συντήρηση του προγράμματος ... κυκλώματα

Αριθμητικά συστήματα“Υπάρχουν 10 τύποι ανθρώπων:

Αυτοί που καταλαβαίνουν το δυαδικό αριθμητικό σύστημα και αυτοί που δεν το καταλαβαίνουν”

• Τα αριθμητικά συστήματα αναπτύχθηκαν για να εξυπηρετήσουν διαφορετικές ανάγκες απεικόνισης των αριθμών

• Τα πιο διαδεδομένα στον προγραμματισμό Η/Υ είναι • Δυαδικό π.χ. (01001011)2

• Οκταδικό π.χ. (47025)8

• Δεκαδικό π.χ. (13594)10

• Δεκαεξαδικό π.χ. (3ΑFB9)16

Page 3: ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣΗ/Υ · 2017-10-11 · Η Προσαρμογή του τρόπου ... τη συντήρηση του προγράμματος ... κυκλώματα

Μετατροπή Ακεραίων Μεταξύ Συστημάτων ΑρίθμησηςΑπό το δεκαδικό στο δυαδικό

2) Σταματούμε τη διαδικασία όταν φτάσουμε σε πηλίκο 0

3) Καταγράφουμε τα υπόλοιπα με αντίστροφη σειρά εμφάνισης

1) Διαιρούμε επανειλημμένα με την βάση του συστήματος στο οποίο θέλουμε να μεταβούμε (δηλ. το 2)

366:2 = 183 με υπόλοιπο 0183:2 = 91 με υπόλοιπο 191:2 = 45 με υπόλοιπο 145:2 = 22 με υπόλοιπο 122:2 = 11 με υπόλοιπο 011:2 = 5 με υπόλοιπο 15:2 = 2 με υπόλοιπο 12:2 = 1 με υπόλοιπο 01:2 = 0 με υπόλοιπο 1

(366)10 = (101101110)2

Page 4: ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣΗ/Υ · 2017-10-11 · Η Προσαρμογή του τρόπου ... τη συντήρηση του προγράμματος ... κυκλώματα

Μετατροπή Ακεραίων Μεταξύ Συστημάτων ΑρίθμησηςΑπό το δεκαδικό στο δεκαεξαδικό

2) Σταματούμε τη διαδικασία όταν φτάσουμε σε πηλίκο 0

3) Καταγράφουμε τα υπόλοιπα με αντίστροφη σειρά εμφάνισης θέτονταςόπου 10 το Αόπου 11 το Βόπου 12 το Cόπου 13 το Dόπου 14 το Eόπου 15 το F

1) Διαιρούμε επανειλημμένα με την βάση του συστήματος στο οποίο θέλουμε να μεταβούμε (δηλ. το 16)

366:16 = 22 με υπόλοιπο 1422:16 = 1 με υπόλοιπο 61:16 = 0 με υπόλοιπο 1

(366)10 = (16E)16

Page 5: ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣΗ/Υ · 2017-10-11 · Η Προσαρμογή του τρόπου ... τη συντήρηση του προγράμματος ... κυκλώματα

Μετατροπή Ακεραίων Μεταξύ Συστημάτων Αρίθμησης

00

11

11 ... bxbxbxbxx n

nn

n ++++= −−

(101101110)2 = 1*28+0*27+1*26+1*25+0*24+1*23+1*22+1*21+0*20 =

256+64+32+8+4+2 = (366)10

(16E)16 = 1*162+6*161+14*160 = 256+96+14 = (366)10

b: η βάση του συστήματοςn: η θέση του ψηφίουxn: το ψηφίο στη θέση n

Από οποιοδήποτε σύστημα προς το δεκαδικό

Page 6: ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣΗ/Υ · 2017-10-11 · Η Προσαρμογή του τρόπου ... τη συντήρηση του προγράμματος ... κυκλώματα

Μετατροπή δεκαδικών ψηφίων από και προς το δυαδικό σύστημα

Από το δεκαδικό στο δυαδικό Από το δυαδικό στο δεκαδικό(0.8125)10 = (0.1101)2

0.8125 * 2 = 1 .6250.625 * 2 = 1 .250.25 * 2 = 0 .50.5 * 2 = 1 .0

(0.1101)2=1*2-1+1*2-2+0*2-3+1*2-4

= 0.5+0.25+0.0625 = (0.8125)10

Παρατήρηση: Ένας αριθμός με πεπερασμένο πλήθος δεκαδικών ψηφίων στο δεκαδικό σύστημα, μπορεί να έχει άπειρο πλήθος δεκαδικών ψηφίων στο δυαδικό σύστημα.Για παράδειγμα: (0.1)10 = (0.000110011001100…)2

0.1 * 2 = 0.20.2 * 2 = 0.40.4 * 2 = 0.80.8 * 2 = 1.60.6 * 2 = 1.20.2 * 2 = 0.4.... ….

Σταματούμε τη διαδικασία όταν φτάσουμε σε .0

http://www.mathsisfun.com/binary-decimal-hexadecimal-converter.html

Page 7: ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣΗ/Υ · 2017-10-11 · Η Προσαρμογή του τρόπου ... τη συντήρηση του προγράμματος ... κυκλώματα

BIN DEC HEX BIN DEC HEX BIN DEC HEX0 0 0 10000 16 10 100000 32 201 1 1 10001 17 11 100001 33 21

10 2 2 10010 18 12 100010 34 2211 3 3 10011 19 13 100011 35 23

100 4 4 10100 20 14 100100 36 24101 5 5 10101 21 15 100101 37 25110 6 6 10110 22 16 100110 38 26111 7 7 10111 23 17 100111 39 27

1000 8 8 11000 24 18 101000 40 281001 9 9 11001 25 19 101001 41 291010 10 A 11010 26 1A 101010 42 2A1011 11 B 11011 27 1B 101011 43 2B1100 12 C 11100 28 1C 101100 44 2C1101 13 D 11101 29 1D 101101 45 2D1110 14 E 11110 30 1E 101110 46 2E1111 15 F 11111 31 1F 101111 47 2F

Παράδειγμα: ΑΡΙΘΜΟΙ 0-47 ΒΙΝ, DEC, HEX

Page 8: ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣΗ/Υ · 2017-10-11 · Η Προσαρμογή του τρόπου ... τη συντήρηση του προγράμματος ... κυκλώματα

Βit - ByteΑναφερόμενοι στην ψηφιακή τεχνολογία ορίζουμε• bit ή b (binary digit)- ένα δυαδικό ψηφίο (δηλ. 0 ή 1)- απεικόνιση της κατάστασης του ηλ. σήματος

• Byte ή Β (Βinary term)- είναι μια συνεχής ακολουθία από bits- έχει καθορισμένο μήκος (8 bits στα PC)- μονάδα μέτρησης όγκου δεδομένων

• Λέξεις (Words)- είναι μια ακολουθία από bytes την οποία ο

επεξεργαστής μπορεί να χειριστεί σαν μονάδα- προκαθορισμένο μήκος κατά περίπτωση (4,8 Bytes)

Page 9: ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣΗ/Υ · 2017-10-11 · Η Προσαρμογή του τρόπου ... τη συντήρηση του προγράμματος ... κυκλώματα

Βασικά πολλαπλάσια του Byte

• KB (Kilobyte) = 210 Bytes = 1024 Bytes

• MB (Megabyte) = 220 Bytes = 1,048,576 Bytes

• GB (Gigabyte) = 230 Bytes = 1,073,741,824 Bytes

• TB (Terabyte) = 240 Bytes = 1,099,511,627,776 Bytes

Page 10: ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣΗ/Υ · 2017-10-11 · Η Προσαρμογή του τρόπου ... τη συντήρηση του προγράμματος ... κυκλώματα

Αναπαράσταση Μνήμης RAM Διεύθυνση Δεδομένα00000000 Β300000001 FA00000002 4600000003 3B00000004 0000000005 F400000006 FF… …FFFFFFFF D8

Κάθε διεύθυνση μνήμης αντιστοιχεί σε 1 Byte δεδομένων (Τα νούμερα εμφανίζονται στο δεκαεξαδικό σύστημα)

Για 32bit σύστημα

Page 11: ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣΗ/Υ · 2017-10-11 · Η Προσαρμογή του τρόπου ... τη συντήρηση του προγράμματος ... κυκλώματα

Βασικές Μαθηματικές Απεικονίσεις Αριθμών

Έστω ο αριθμός 57600000• Εκθετική ή Επιστημονική 5760 x 104

• a x 10b

• Κανονικοποιημένη Επιστημονική 5.760 x 107

• a x 10b με 1<= |a| < 10

• Μηχανικής 57.60 x 106

• a x 10b με 1<= |a| < 1000 και το b να διαιρείται με το 3

Page 12: ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣΗ/Υ · 2017-10-11 · Η Προσαρμογή του τρόπου ... τη συντήρηση του προγράμματος ... κυκλώματα

Εσωτερική αναπαράσταση ΑριθμώνΗ αποθήκευση γίνεται στο δυαδικό σύστημα• Ακέραιοι (1,2,4,8 bytes)

• Θετικοί• π.χ. (38)10 =(100110)2 (1 Byte)

• Αρνητικοί (Συμπλήρωμα ως προς 2)• π.χ. (-38)10 =(11011010)2 (1 Byte)

• Κινητής υποδιαστολής (4,8,10 bytes) (IEEE 754 Standard)• π.χ. (12.375)10 = (1100.011)2 = (-1)0 23(1.100011)2 (4 Bytes)

0 0 1 0 0 1 1 0

1 1 0 1 1 0 1 0

0 10000010 100011000000000000000001 Bit 8 Bits 23 Bits

Πρόσημο (1=αρνητικό) Εκθέτης +127(exponent)

Δεκαδικό μέρος (mantissa)

Page 13: ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣΗ/Υ · 2017-10-11 · Η Προσαρμογή του τρόπου ... τη συντήρηση του προγράμματος ... κυκλώματα

Ειδικές Αριθμητικές Τιμές• Inf (Άπειρο)

• π.χ. 4/0

• NaN (Not a Number → Απροσδιόριστος αριθμός)

• π.χ. 0/0

Παρατήρηση: Στο σύστημα ΙΕΕΕ 574 υπάρχουν δύο μηδέν (το +0 και το -0)

Website: http://www.h-schmidt.net/FloatConverter/IEEE754.html

0 11111111 000000000000000000000001 Bit 8 Bits 23 Bits

0 11111111 100000000000000000000001 Bit 8 Bits 23 Bits

Page 14: ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣΗ/Υ · 2017-10-11 · Η Προσαρμογή του τρόπου ... τη συντήρηση του προγράμματος ... κυκλώματα

• Κάθε χαρακτήρας μετατρέπεται σε ακέραιο μη προσημασμένο αριθμόχρησιμοποιώντας κάποιο στάνταρντ κωδικοποίησης, όπως για παράδειγμα ASCII, Unicode, κτλ, και στη συνέχεια αυτός ο αριθμός αποθηκεύεται στην μνήμη (στο δυαδικό σύστημα)

• Πίνακας ASCII

Εσωτερική αναπαράσταση Χαρακτήρων

Στην κωδικοποίηση ASCII (American Standard Code for Information Interchange)κάθε χαρακτήρας αντιστοιχεί σε ένα Byte δεδομένων.

Page 15: ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣΗ/Υ · 2017-10-11 · Η Προσαρμογή του τρόπου ... τη συντήρηση του προγράμματος ... κυκλώματα

Γλώσσες Προγραμματισμούμέσο επικοινωνίας μεταξύ ανθρώπου και υπολογιστή

• Έχουν αυστηρούς κανόνες• Λεξιλόγιο (εντολές, τύπους, ...)• Σύνταξη• Δομή

• Για την εκμάθησή τους και την υλοποίηση εφαρμογών είναι απαραίτητα

• Η Εξάσκηση• Η Προσαρμογή του τρόπου σκέψης• Η Φαντασία

Page 16: ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣΗ/Υ · 2017-10-11 · Η Προσαρμογή του τρόπου ... τη συντήρηση του προγράμματος ... κυκλώματα

Γενιές Γλωσσών Προγραμματισμού• 1η Γενιά

• Γλώσσα Μηχανής

• 2η Γενιά• Συμβολικές γλώσσες (Assembly)

• 3η Γενιά• Γλώσσες υψηλού επιπέδου (C++, Fortran, Pascal, Basic, Python)

• 4η Γενιά• Επικοινωνία με βάσεις δεδομένων, εξειδικευμένες γλώσσες (SQL,

SPSS, Mathematica. Matlab)

• 5η Γενιά• Γλώσσες Τεχνητής Νοημοσύνης (Prolog)

Page 17: ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣΗ/Υ · 2017-10-11 · Η Προσαρμογή του τρόπου ... τη συντήρηση του προγράμματος ... κυκλώματα

Παράδειγμα Γλώσσα Μηχανής - ΑssemblyH αριθμητική πράξη 2+3 σε Γλώσσα Μηχανής (για 32bit PC):10111000 00000010 00000000 00000000 0000000010111011 00000011 00000000 00000000 0000000011110000 11000000

Τα νούμερα συνήθως τα γράφουμε στο δεκαεξαδικό σύστημα για ευκολία στον χειρισμό τους:B8 02 00 00 00BB 03 00 00 0003 C3

Το ίδιο πρόγραμμα σε AssemblyMOV EAX,2MOV EBX,3ADD EAX,EBX

Page 18: ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣΗ/Υ · 2017-10-11 · Η Προσαρμογή του τρόπου ... τη συντήρηση του προγράμματος ... κυκλώματα

Τύποι ΔεδομένωνΒασικοί

τύποι

Αριθμητικοί Μη αριθμητικοί

λογικοί χαρακτήρες Ή αλφαριθμητικοί

μιγαδικοίακέραιοι

πραγματικοί

Παράγωγοιτύποι

Page 19: ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣΗ/Υ · 2017-10-11 · Η Προσαρμογή του τρόπου ... τη συντήρηση του προγράμματος ... κυκλώματα

Μεταβλητές - Σταθερές

Μεταβλητές Σταθερές

Ρητές

Επώνυμες

Όνομα Τύπος Τιμή

Όνομα Τύπος Τιμή

Τύπος Τιμή

Page 20: ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣΗ/Υ · 2017-10-11 · Η Προσαρμογή του τρόπου ... τη συντήρηση του προγράμματος ... κυκλώματα

Τελεστές

Τελεστές

Αριθμητικοί ΑλφαριθμητικοίΛογικοί Σχεσιακοί

Οι τελεστές εκτελούνται με συγκεκριμένη σειρά προτεραιότητας

+, -, *, /, ** .OR., .AND., … <, >, ==, … //

Page 21: ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣΗ/Υ · 2017-10-11 · Η Προσαρμογή του τρόπου ... τη συντήρηση του προγράμματος ... κυκλώματα

Εκφράσεις

Εκφράσεις

Αριθμητικές ΑλφαριθμητικέςΛογικές

Συναρτήσεις

Page 22: ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣΗ/Υ · 2017-10-11 · Η Προσαρμογή του τρόπου ... τη συντήρηση του προγράμματος ... κυκλώματα

Έλεγχος ροής

Έλεγχος ροής

Εκτέλεση υπό

συνθήκη

Εκτέλεση κατ’

επανάληψη

Page 23: ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣΗ/Υ · 2017-10-11 · Η Προσαρμογή του τρόπου ... τη συντήρηση του προγράμματος ... κυκλώματα

Δομημένος Προγραμματισμός• Είναι μία μεθοδολογία προγραμματισμού με στόχο την

ευκολία• στη συγγραφή του κώδικα• την αποσφαλμάτωση του• τη συντήρηση του προγράμματος

• Αποφεύγει την εντολή GOTO (κώδικας spaghetti)• Κάνει εκτεταμένη χρήση υποπρογραμμάτων• Στηρίζεται στο Θεώρημα του Δομημένου

Προγράμματος (ή Θεώρημα Βöhm - Jacopini) (1966), κατά το οποίο κάθε αλγόριθμος μπορεί να διατυπωθεί χρησιμοποιώντας μόνον τρεις βασικές δομές ελέγχου • Δομή ακολουθίας• Δομή επιλογής• Δομή επανάληψης

Page 24: ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣΗ/Υ · 2017-10-11 · Η Προσαρμογή του τρόπου ... τη συντήρηση του προγράμματος ... κυκλώματα

Ακρίβεια – Ευστοχία πειραματικών μετρήσεων

• Ακρίβεια (precision ): πόσο κοντά είναι οι μετρήσεις μεταξύ τους (διασπορά).

• Ευστοχία (accuracy ): πόσο κοντά είναι οι μετρήσεις (ο μέσος όρους τους) στην πραγματική τιμή

• π.χ.

Μεγάλη ευστοχία, μικρή ακρίβεια Μεγάλη ακρίβεια, μικρή ευστοχία

Page 25: ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣΗ/Υ · 2017-10-11 · Η Προσαρμογή του τρόπου ... τη συντήρηση του προγράμματος ... κυκλώματα

Σημαντικά ΨηφίαΠαρέχουν ένα μέτρο της ακρίβειας των πειραματικών μετρήσεων. Το πλήθος τους ισούται με όλα τα ακριβή ψηφία μιας μέτρησης συν ένα προσεγγιστικό ψηφίο.• Όλα τα μη μηδενικά ψηφία είναι σημαντικά• Μηδενικά ανάμεσα σε σημαντικά ψηφία είναι σημαντικά• Όλα τα μηδενικά αριστερά από το πρώτο μη μηδενικό ψηφίο δεν είναι

σημαντικά• Όλα τα μηδενικά δεξιά από το τελευταίο σημαντικό ψηφίο είναι

σημαντικά αν υπάρχει υποδιαστολή• Στην επιστημονική απεικόνιση, οι δυνάμεις του 10 δεν είναι σημαντικέςπ.χ. Αριθμός Σημαντικά Ψηφία

0.040600 51500 ? Τουλάχιστον 21500 3

150 x 101 31500. 4

Page 26: ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣΗ/Υ · 2017-10-11 · Η Προσαρμογή του τρόπου ... τη συντήρηση του προγράμματος ... κυκλώματα

Σημαντικά Ψηφία (συνέχεια)

• Στον πολλαπλασιασμό και τη διαίρεση το αποτέλεσμα περιλαμβάνει τόσα σημαντικά ψηφία όσα ο παράγοντας με την μικρότερη ακρίβεια

π.χ. 154.5 x 0.43 = 66.435 => 66

• Στην πρόσθεση και την αφαίρεση το αποτέλεσμα γράφεται μέχρι τη δεκαδική θέση που δίνεται από τον αριθμό με την μικρότερη ακρίβεια

π.χ. 642.62+15 = 657.62 => 658435.5 – 432.38 = 3.2

Page 27: ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣΗ/Υ · 2017-10-11 · Η Προσαρμογή του τρόπου ... τη συντήρηση του προγράμματος ... κυκλώματα

Αριθμητικά Σφάλματα• Σφάλματα Μοντελοποίησης• Σφάλματα Μεθοδολογίας

• Σφάλματα Αποκοπής• Σφάλματα Διακριτοποίησης

• Σφάλματα Δεδομένων Εισόδου (Μετρήσεων)• Σφάλματα Στρογγυλοποίησης (Ακρίβειας)

• Machine Epsilon: O μικρότερος πραγματικός αριθμός ε για τον οποίο ισχύει 1+ε > 1. Χαρακτηρίζει την ακρίβεια ενός Η/Υ. Σε αριθμούς απλής ακρίβειας ε = 2-23 = 1.19209x10-7

• Ενέργειες που αυξάνουν τα σφάλματα στρογγυλοποίησης• Πρόσθεση ή αφαίρεση δύο αριθμών που διαφέρουν πολύ σε μέγεθος• Αφαίρεση δύο σχεδόν ίσων αριθμών• Μεγάλος αριθμός πράξεων

Page 28: ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣΗ/Υ · 2017-10-11 · Η Προσαρμογή του τρόπου ... τη συντήρηση του προγράμματος ... κυκλώματα

Τρόποι Μέτρησης Αριθμητικών ΣφαλμάτωνΈστω x η πραγματική τιμή και x' η αριθμητική τιμή μιας ποσότητας, τότε ορίζουμε:• Απόλυτο σφάλμα

• (Απόλυτο) Σχετικό σφάλμα

• Ποσοστιαίο σφάλμα

' '1x x xx xσε−

= = −

'x xαε = −

'1 100%xxπε = −

2(0.5 10 )%nπε

−< ×

Συνθήκη για να είναι ένα αποτέλεσμα σωστό σε τουλάχιστον n σημαντικά ψηφία

π.χ. για n=3 πρέπει 0.05%πε <

Page 29: ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣΗ/Υ · 2017-10-11 · Η Προσαρμογή του τρόπου ... τη συντήρηση του προγράμματος ... κυκλώματα

Προγραμματιστικά Λάθη

• Συντακτικά Λάθη• Δεν επιτρέπουν την εκτέλεση του προγράμματος

• Λάθη Χρόνου Εκτέλεσης• Διακόπτουν μη ομαλά τη λειτουργία του προγράμματος

• Λογικά Λάθη• Δίνουν λανθασμένα αποτελέσματα

Page 30: ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣΗ/Υ · 2017-10-11 · Η Προσαρμογή του τρόπου ... τη συντήρηση του προγράμματος ... κυκλώματα

Αποσφαλμάτωση (Debugging)• Εύρεση και επιδιόρθωση λαθών σε ένα πρόγραμμα.

• Ο όρος debugging, κατά μία ερμηνεία, αποδίδεται στην αφαίρεση ενός σκόρου (bug=έντομο) από τα ηλεκτρονικά κυκλώματα του υπολογιστή Mark II το 1940. Ο σκόρος εμπόδιζε τη σωστή λειτουργία του υπολογιστή.

• Για την αποσφαλμάτωση σύνθετων προγραμμάτων, χρησιμοποιούνται ειδικά προγράμματα που καλούνται debuggers και παρέχουν τη δυνατότητα εκτέλεσης του προγράμματος εντολή προς εντολή με ταυτόχρονη παρουσίαση των αλλαγών στη μνήμη RAM του υπολογιστή.