½ ½ ÈÐ ÖÓ ÓÖ Á Javaµ Τμήμα Μαθηματικών, ΕΚΠΑ Ακαδ. έτος 2007 2008 ¾ È Ö Õ Ñ ÒÓ Ñ Ñ ØÓ Εισαγωγή στην πληροφορική με έμφαση σε: αρχιτεκτονική και αριθμητική υπολογιστών αλγοριθμική επίλυση προβλημάτων βασικές δομές δεδομένων και αποτελεσματικότητα αλγορίθμων προγραμματισμό με Java εισαγωγικές έννοιες αντικειμενοστραφούς προγραμματισμού εφαρμογές σε μαθηματικά, και όχι μόνο, προβλήματα...
ËØÓ Õ ÖÕ Ø ØÓÒ Ö Ñ Ø ÙÔÓÐÓ ØôÒ Ì Ñ Ö Ò ÙÔÓÐÓ Ø ΜΟΝΑ ΕΣ ΕΞΟ ΟΥ ΚΕΝΤΡΙΚΗ ΜΟΝΑ Α ΕΠΕΞΕΡΓΑΣΙΑΣ (ΚΜΕ) ΑΠΟΘΗΚΕΥΣΗ (ΑΡΧΕΙΑ) ΜΝΗΜΗ ΜΟΝΑ ΕΣ ΕΙΣΟ ΟΥ ΙΚΤΥΟ
à ÒØÖ ÑÓÒ Ô Ü Ö CPUµ Μπορεί να εκτελέσει ένα μικρό σύνολο από οδηγίες/εντολές αριθμητικέςπράξεις: +,,,,... διαχείριση μνήμης: διαβάζει και αποθηκεύει δεδομένα λήψη αποφάσεων βασισμένη σε συγκρίσεις έλεγχος του hardware: οθόνη, δίσκος, δίκτυο,... Λειτουργεί εκτελώντας απλές εντολές πολύ γρήγορα. Οδηγίες και δεδομένα αποθηκεύονται στην ίδια μνήμη κωδικοποιούνται σαν αριθμοί υλοποιούν κάποιο πρόγραμμα. Συμπεριφέρεται διαφορετικά ανάλογα με τις οδηγίες: μπορεί να«τρέξει» διαφορετικά προγράμματα(γενική χρησιμότητα). ÅÒ Ñ RAMµ Αποθηκεύει πληροφορίες όσο ο υπολογιστής λειτουργεί: τα προγράμματα που τρέχουν τα δεδομένα τους, το λειτουργικό σύστημα(windows, Unix/Linux,...) Το περιεχόμενο της χάνεται με τη διακοπή του ρεύματος. Εχει(σχετικά) περιορισμένη χωρητικότητα. Οργανώνεται λογικά σαν ένα σύνολο αριθμημένων«κουτιών»: κάθε κουτί αποθηκεύει 1 byte = 8 bits πληροφορίας τυχαίας προσπέλασης: η CPU μπορεί να προσπελάσει όλες τις θέσεις με την ίδια ταχύτητα. 0 1 2 1G
Bits & Bytes Bit: η μικρότερη μονάδα πληροφορίας. Αντιπροσωπεύει μία από 2 πιθανές καταστάσεις: ναι/όχι, αληθές/ψευδές, on/off, άνδρας/γυναίκα,... Ολαταπαραπάνω,κωδικοποιούνταισαν0ή1: δυαδικόψηφίο(bit) {0, 1} Το δυαδικό σύστημα επιτρέπει την κατασκευή εξαρτημάτων που έχουν μόνο 2 καταστάσεις: υψηλή/χαμηλή τάση, κυκλοφορία ρεύματος(chips) παρουσία ή όχι ηλεκτρικόυ φορτίου(flash) φορά μαγνητικού πεδίου(δίσκοι) ανάκλαση ή όχι φωτεινής δέσμης(cd-rom, dvd). Η πληροφορία αποθηκεύεται και επεξεργάζεται σαν bits Byte: 8 bits που λειτουργούν σαν μια ενιαία μονάδα. Ø Ñ Ö Ñ Βάσητο10. 10ψηφία:0123456789 1δεκαδικόψηφίοεκφράζει1από10πιθανέςεπιλογές μετράει 10 πράγματα έχει 10 διακριτές τιμές. 2 δεκαδικά ψηφία εκφράζουν 1 από 100 πιθανές επιλογές μετράνε 100 πράγματα έχουν 100 διακριτές τιμές. 3δεκαδικάψηφία... Μέτρημα με δυνάμεις του 10: 1821 = 1 1000 + 8 100 + 2 10 + 1 1 = 1 10 3 + 8 10 2 + 2 10 1 + 1 10 0
Ù Ø Ñ Ö Ñ Βάσητο2. 2ψηφία:01(bits) 1δυαδικόψηφίοεκφράζει1από2πιθανέςεπιλογές μετράει 2 πράγματα έχει 2 διακριτές τιμές. 2δυαδικάψηφίαεκφράζουν1από4πιθανέςεπιλογές μετράνε 4 πράγματα έχουν 4 διακριτές τιμές. 3δυαδικάψηφία... Μέτρημα με δυνάμεις του 2: 11001 2 = 1 16 + 1 8 + 0 4 + 0 2 + 1 1 = 1 2 4 + 1 2 3 + 0 2 2 + 0 2 1 + 1 2 0 Οι ψηφιακές συσκευές χρησιμοποιούν το δυαδικό σύστημα. ½¼ Å Ø ØÖÓÔ Ù Ó Ó 1ος τρόπος 1101 2 = 1 2 3 + 1 2 2 + 0 2 1 + 1 2 0 = 1 8 + 1 4 + 0 2 + 1 1 = 13 2ος τρόπος Γραμμή Bit b d 1 = 1, d n+1 = 2 d n + b n+1, n > 1 1 1 1 2 1 3 3 0 6 4 1 13
Å Ø ØÖÓÔ Ó Ù Ó 1ος τρόπος: ανάλυση σε δυνάμεις του 2. 42 = 32 + (10) = 32 + 8 + (2) = 32 + 8 + 2 = 2 5 + 2 3 + 2 1 = 101010 2 2ος τρόπος: διαδοχικές διαιρέσεις με 2(μόνο για ακεραίους). Πηλίκο 42 21 10 5 2 1 0 Υπόλοιπο 0 1 0 1 0 1 101010 2 ½¾ ³ ÐÐ Ù Ø Ñ Ø Ö ÑôÒ Οι δυαδικοί αριθμοί είναι«ογκώδεις». Στην πληροφορική συχνά χρησιμοποιούνται οι βάσεις: 8:Οκταδικοί 8ψηφία:01234567 16:Δεκαεξαδικοί 16ψηφία:0 9, A B C D E F Μετατροπή ανάμεσα σε δυαδικό-οκταδικό: κάθε δυαδική τριάδα αντιστοιχεί σε ένα οκταδικό ψηφίο και το αντίστροφο. 0 }{{} 0 11 }{{} 0 01 }{{} 0 10 }{{} 0 10 }{{} 0 0. 1 }{{} 0 11 }{{} 0 11 }{{} 0 0 1 4 5 1 0. 5 5 4 Μετατροπή ανάμεσα σε δυαδικό-δεκαεξαδικό: κάθε δυαδική τετράδα αντιστοιχεί σε ένα 16-δικό ψηφίο και το αντίστροφο. 7 B A 3. {}}{{}}{{}}{{}}{{}}{{}}{{}}{ 0 1 1 11 0 1 11 0 1 00 0 1 1. 1 0 1 11 1 0 00 1 0 0 B C 4
ÍÔÓÐÓ Ø Ò Ô Ö Ø Ö ÛÒ Δυαδικοίαριθμοίμε m bits. Προσημασμένο μέγεθος(signed magnitude) Πρόσημοτοπρώτο(απόαριστερά) bit. 0 : +και 1 : Ταυπόλοιπα m 1 bitsγιατομέγεθος(απόλυτητιμή). π.χ. 00101010 2 = 42 10 και 10101010 2 = 42 10 Δύομηδενικά: 00000000 2 και 10000000 2. Συμπλήρωμα ως πρός ένα(ones complement) Πρόσημοτοπρώτο(απόαριστερά) bit. 0 : +και 1 : Ο αντίθετος προκύπτει με αντικατάσταση των 0 από 1 και των 1 από 0(και για το πρόσημο). π.χ. 00101010 2 = 42 10 και 11010101 2 = 42 10 Δύομηδενικά: 00000000 2 και 11111111 2. Ô Ö Ñ Ø Ñ m = 8 ½ ÍÔÓÐÓ Ø Ò Ô Ö Ø Ö ÛÒ ÙÒ Õºµ Δυαδικοίαριθμοίμε m bits. Συμπλήρωμα ως πρός δύο(two s complement) Πρόσημοτοπρώτο(απόαριστερά) bit. 0 : +και 1 : Οαντίθετοςαπόσυμπλήρωμαωςπροςέναμεπρόσθεσητης μονάδας(τυχόν κρατούμενο στο αριστερό bit αγνοείται). π.χ. 00101010 2 = 42 10 και 11010110 2 = 42 10 Μιααναπαράστασηγιατομηδέν: 00000000 2,αλλά: (πλήθος αρνητικών) = (πλήθος θετικών) + 1 Ποιόςείναιοαντίθετοςτου 10000000 2? Εχει επικρατήσει στους σύγχρονους υπολογιστές. Ô Ö Ñ Ø Ñ m = 8
ÍÔÓÐÓ Ø Ò Ô Ö Ø Ö ÛÒ ÙÒ Õºµ Δυαδικοίαριθμοίμε m bits. Πλεόνασμα(excess)κατά 2 m 1 Κάθε αριθμός παριστάνεται από το άθροισμα της πραγματικήςτουτιμήςμετο 2 m 1. Π.χ.για m = 8τοσύστημαλέγεταιπλεονασμα-128καιοι αριθμοί 128 έως +127 απεικονίζονται στους 0 έως 255. Είναιτοσυμπλήρωμαωςπροςτο2μετοπρόσημο αντεστραμμένο: 10101010 2 = 42 10 και 01010110 2 = 42 10 Χρησιμοποιείται στην παράσταση πραγματικών. Ô Ö Ñ Ø Ñ m = 8 ½ Ö Ñ Ø ØÓ Ù Ø Ñ Οπως και στο δεκαδικό σύστημα. Π.χ. η πρόσθεση γίνεται ψηφίο-προς-ψηφίο ξεκινώντας από τα δεξια. 0 + 0 = 0, 0 + 1 = 1, 1 + 0 = 1, 1 + 1 = 10 Αν στην πρόσθεση προκύψει κρατούμενο στο αριστερό bit: στο συμπλήρωμα ως προς ένα προστίθεται στο δεξιότερο bit του αποτελέσματος(τελικό κρατούμενο ή end-around carry). στο συμπλήρωμα ως προς δύο αγνοείται. Δεκαδικό συμπλ-1 συμπλ-2 Προσθετέος 10 00001010 00001010 Αφαιρετέος + 3 11111100 11111101 Αποτέλεσμα +7 1 00000110 1 00000111 00000111 00000111
Ò Ô Ö Ø ÔÖ Ñ Ø ôò Ö ÑôÒ Υπολογισμοί με πολύ μεγάλους και πολύ μικρούς αριθμούς. μάζαηλεκτρονίου: 9 10 28 gr μάζατουηλίου: 2 10 33 gr Αναπαράσταση σταθερής υποδιαστολής(fixed-point) 34 ψηφια 28 ψηφια ΑΚΕΡΑΙΟ ΜΕΡΟΣ ΕΚΑ ΙΚΟ ΜΕΡΟΣ ΘΕΣΗ ΥΠΟ ΙΑΣΤΟΛΗΣ Εχει νόημα? Ανάγκη για σύστημα αναπαράστασης όπου το εύρος των αριθμών του είναι ανεξάρτητο από το πλήθος των σημαντικών ψηφίων: αναπαράσταση κινητής υποδιαστολής(floating-point). ½ Ò Ô Ö Ø Ò Ø ÙÔÓ ØÓÐ Από εκθετική μορφή αλλά με n = f 10 e 0.1 f < 1ήf = 0 όπου f κλασματικό μέρος(mantissa), e εκθέτης(exponent). Χρειάζεται αποθήκευση μόνο των δεκαδικών ψηφίων του f(σαν ακέραιος). Για την αναπαράσταση ενός πραγματικού, χρησιμοποιούνται 2 ακέραιοι: fκαι e. Ο 3.14159 αποθηκεύεται σαν f = +314159 και e = +1.
Ò Ô Ö Ø Ò Ø ÙÔÓ ØÓÐ ÙÒ Õºµ Εστω αναπαράσταση με 3-ψήφιο f και 2-ψήφιο e: Αναπαράστασημεγεθώναπό +0.100 10 99 έως+0.999 10 +99 (199τάξειςμεγέθους)με5ψηφίακαι2 πρόσημα. Πεπερασμένο πλήθος: συνολικά 358201 αριθμοί αν το αποτέλεσμα μιας πράξης δεν είναι ένας από αυτούς, στρογγυλοποιείται στον πλησιέστερο. Η απόσταση μεταξύ διαδοχικών αριθμών δεν είναι σταθερή: ǫ 1 = (0.999 10 99 0.998 10 99 ) (0.999 10 0 0.998 10 0 ) = ǫ 2 αλλά το σχετικό σφάλμα είναι περίπου σταθερό: ǫ 1 0.999 10 99 ǫ 2 0.999 10 0 ¾¼ Ò Ô Ö Ø Ò Ø ÙÔÓ ØÓÐ ÙÒ Õºµ 1 ΑΡΝΗΤΙΚΗ ΥΠΕΡΧΕΙΛΙΣΗ { 2 ΑΡΝΗΤΙΚΟΙ ΑΡΙΘΜΟΙ ΜΕ ΥΠΟΛ. ΑΝΑΠΑΡΑΣΤΑΣΗ {............ 3 ΑΡΝΗΤΙΚΗ ΥΠΕΚΧΕΙΛΙΣΗ 4 ΜΗ ΕΝ 5 ΘΕΤΙΚΗ ΥΠΕΚΧΕΙΛΙΣΗ { { 6 ΘΕΤΙΚΟΙ ΑΡΙΘΜΟΙ ΜΕ ΥΠΟΛ. ΑΝΑΠΑΡΑΣΤΑΣΗ {............ 1E100 1E 100 0 1E 100 1E100 1. Μεγάλοι αρνητικοίαριθμοι < 0.999 10 99. 2.Αρνητικοίαριθμοιαπό 0.999 10 99 έως 0.100 10 99. 3. Μικροί αρνητικοίαριθμοίμεμέτρο < 0.100 10 99. 4.Τομηδέν. 5.Μικροίθετικοίαριθμοίμεμέτρο < 0.100 10 99. 7 ΘΕΤΙΚΗ ΥΠΕΡΧΕΙΛΙΣΗ { 6.Θετικοίαριθμοιανάμεσασε 0.100 10 99 και 0.999 10 99. 7.Μεγάλοιθετικοίαριθμοι > 0.999 10 99. Οι περιοχές 1, 3, 5, 7 δεν έχουν υπολογιστική αναπαράσταση.
IEEE 754 Standard για αναπαράσταση/υπολογισμούς κινητής υποδιαστολής. Δύο ακρίβειες(και μια για πράξεις στη CPU) Bits 1 8 23 ΕΚΘΕΤΗΣ ΚΛΑΣΜΑ ΠΡΟΣΗΜΟ ΑΠΛΗ ΑΚΡΙΒΕΙΑ (float) Bits 1 11 52 ΕΚΘΕΤΗΣ ΚΛΑΣΜΑ ΠΡΟΣΗΜΟ ΙΠΛΗ ΑΚΡΙΒΕΙΑ (double) Ειδικά συμβολα: -Inf, +Infγιααποτελέσματαστιςπεριοχές1και7 αντίστοιχα. NaNγιααδύνατεςπράξεις,π.χ.: 0/0, 0, / Δυνατότητα αναπαράστασης και κάποιων αριθμών στις περιοχές3και5. ¾¾ Ö ÑÓ Ô Ô Ö Ñ Ò Ö Οι υπολογιστές κάνουν πράξεις σε πεπερασμένη ακρίβεια. Υπολογιστικά, το σύνολο των ακεραίων δεν είναι κλειστό ως προς +. Π.χ. για 3ψήφιους θετικόυς ακεραίους: Υπερχείλιση(overflow): 600 + 600 = 1200, 050 050 = 2500 Υπεκχείλιση(underflow): 003 005 = 2 Υπολογιστικά, δεν ισχύουν οι κανόνες της άλγεβρας. Π.χ. Προσεταιριστική ιδιότητα: Επιμεριστική ιδιότητα: 700 + (400 300) (700 + 400) 300 5 (210 195) 5 210 5 195 Οι υπολογισμοί από κλασσικής μαθηματικής άποψης είναι λάθος!!!
Ò Ô Ö Ø Õ Ö Ø ÖÛÒ Κωδικοποιούνται σαν ακέραιοι: χαρακτήρας ακέραιος Διάφορα σύνολα χαρακτήρων ανάλογα με την αντιστοιχία και τον αριθμό των υποστηριζόμενων συμβόλων(ascii, Unicode,...). ASCII (American Standard Code for Information Interchange)με 256 χαρακτήρες που απεικονίζονται στους ακέραιους 0 255: a 97, B 66, 0 48 Οι πρώτοι 128 χαρακτήρες είναι standard και πιο σημαντικοί. Οι θέσεις 128 255 διαθέσιμες για απεικόνιση χαρακτήρων από μη λατινικά αλφάβητα, ή γραφικών συμβόλων. Unicode με 65535 χαρακτήρες(πρακτικά όλα τα αλφάβητα). Ταυτίζεται με το ASCII στις 128 πρώτες θέσεις τους. ¾ Ç ÈÒ ASCII 0 1 2 3 4 5 6 7 8 9 -------------------------------------------------- 0 \000 \001 \002 \003 \004 \005 \006 \a \b \t 10 \n \v \f \r \016 \017 \020 \021 \022 \023 20 \024 \025 \026 \027 \030 \031 \032 \033 \034 \035 30 \036 \037! " # $ % & 40 ( ) * +, -. / 0 1 50 2 3 4 5 6 7 8 9 : ; 60 < = >? @ A B C D E 70 F G H I J K L M N O 80 P Q R S T U V W X Y 90 Z [ \ ] ^ _ a b c 100 d e f g h i j k l m 110 n o p q r s t u v w 120 x y z { } ~ \177
Bytes byte = 8 bits που λειτουργούν σαν μια ενιαία μονάδα. Η βασική μονάδα επεξεργασίας και αποθήκευσης(μνήμης). 2 8 = 256τιμές:μικροίακέραιοι(0 255),χαρακτήρες(ASCII). 2 bytes μαζί για μεγαλύτερη χωρητικότητα. 2 bytes (16 bits)για 2 16 = 65, 536τιμές:μεγαλύτεροι ακέραίοι, περισσότεροι χαρακτήρες(unicode) 4 bytes μαζί για ακόμα μεγαλύτερη χωρητικότητα. 4 bytes (32 bits)για 2 32 = 4, 294, 967, 296τιμές:ακόμα μεγαλύτεροι ακέραιοι, πραγματικοί αριθμοί, διευθύνσεις μνήμης. κ.ο.κ. Οι πιο σύγχρονοι υπολογιστές χρησιμοποιούν 64-bit για ακεραίους και διευθύνσεις μνήμης(8 bytes) 2 64 = 18, 446, 744, 073, 709, 551,616 ¾ Â Ñ Ð ô Αρχιτεκτονική von Neumann (John von Neumann, 1945) Η λειτουργία της καθορίζεται από τις οδηγίες στη μνήμη. Διαφορετικές οδηγίες διαφορετική συμπεριφορά. Οι οδηγίες και τα δεδομένα αποθηκεύονται στην ίδια μνήμη ξεχωρίζουν μόνο από τον τρόπο διαχείρισης τους. Ηλογικήδομήδενέχειαλλάξειστατελευταία60+χρόνια. Η φυσική δομή αλλάζει ραγδαία. Μηχανές Turing (Alan Turing, 1936) Ολοι οι υπολογιστές έχουν ακριβώς τις ίδιες υπολογιστικές δυνατότητες διαφέρουν μόνο στην ταχύτητα υπολογισμού. Κάθε υπολογιστής μπορεί να προσομοιώσει οποιονδήποτε άλλον. Ενα πρόγραμμα μπορεί να προσομοιώσει έναν υπολογιστή.