ΠΛΗΡΟΦΟΡΙΚΗ Ι JAVA Τμήμα θεωρίας με Α.Μ. σε 8 & 9 11/10/07 Τμήμα θεωρίας: Α.Μ. 8, 9 Κάθε Πέμπτη, 11πμ-2μμ, ΑΜΦ23. Διδάσκων: Ντίνος Φερεντίνος Γραφείο 118 email: kpf3@cornell.edu Μάθημα: Θεωρία + προαιρετικό εργαστήριο (~10 εργαστήρια το εξάμηνο, 2 ώρες τη βδομάδα, από την εβδομάδα 22/10/07) Ηλεκτρονική τάξη: eclass.uoa.gr Ανακοινώσεις, πληροφορίες για εργαστήρια, παραδόσεις, παλιά θέματα, κτλ. Βιβλίο: Java Μια εισαγωγή στην επίλυση προβλημάτων & στον προγραμματισμό, του W. Savitch, 4 η έκδοση ίσως το καλύτερο βιβλίο για Java Βαθμολογία: τ : τελικός βαθμός μαθήματος (0-10) γ : βαθμός γραπτής εξέτασης (0-10) ε : βαθμός εργαστηρίου (0-3) λ : εργαστηριακή εξέταση (0-2) π : ποσοστό παρακολούθησης εργαστηρίων (0-100%) τ = max { γ, ε + 0.7 γ} { λ + π/100, αν γ 3.5 και π 60% όπου: ε = { { 0, αν γ < 3.5 ή π < 60% ( για παλαιούς φοιτητές: τ = γ ) Άρα, το προαιρετικό εργαστήριο μπορεί να είναι μόνο θετικό, ποτέ αρνητικό, για τον τελικό βαθμό στο μάθημα. Tip #1: μπορεί να γίνουν λιγότερα από 10 εργαστήρια (10 είναι ο στόχος), άρα το π 60 μπορεί να είναι πιο δύσκολο απ όσο φαίνεται για κάποιον που θα χάσει τα πρώτα εργαστήρια. Tip #2: οι παρουσίες των εργαστηρίων ελέγχονται από κεντρικό υπολογιστή, άρα ο χρόνος έναρξης των εργαστηρίων είναι αυστηρός. 1
Σκοπός του μαθήματος: - Εισαγωγή στην πληροφορική - Βασικά στοιχεία αλγοριθμικής επίλυσης προβλημάτων - Εισαγωγή στον προγραμματισμό Η/Υ με Java Τα βασικά μέρη ενός Η/Υ οθόνη, εκτυπωτής,... Μέσα αποθήκευσης Κεντρική Μονάδα Επεξεργασίας (CPU) Μονάδες εξόδου HD, CD, DVD, Μνήμη Μονάδες εισόδου πληκτρολόγιο, mouse, Γενικές ιδιότητες Η/Υ: i) αυτόματο χωρίς εξυπνάδα ii) μεγάλη ταχύτητα iii) ακρίβεια στις πράξεις Λίγη ιστορία: o 1952: mainframes (IBM 650, 7000, 360) o 1965: mini computers (DEC PDP-8) o 1977: PCs (Apple II) 1981: IBM PC 1983-84: Apple Lisa, Apple Macintosh o 1985: Internet o 1990: WWW 2
CPU o Μπορεί να εκτελέσει ένα μικρό σύνολο από οδηγίες/εντολές: αριθμητικές πράξεις διαχείριση μνήμης: διαβάζει και αποθηκεύει δεδομένα λήψη αποφάσεων βασισμένη σε συγκρίσεις έλεγχος του hardware o Εκτελεί απλές εντολές πολύ γρήγορα Μνήμη (RAM Random Access Memory) o Αποθηκεύει πληροφορίες όσο ο υπολογιστής λειτουργεί τα προγράμματα που τρέχουν τα δεδομένα τους και ενδιάμεσα αποτελέσματα το λειτουργικό σύστημα (Windows, Unix, Linux, κτλ.) o Το περιεχόμενό της χάνεται με τη διακοπή του ρεύματος o Έχει σχετικά περιορισμένη χωρητικότητα (σε σχέση π.χ. με τον σκληρό δίσκο) o Οργανώνεται λογικά σε ένα σύνολο αριθμημένων «κουτιών»: κάθε κουτί αποθηκεύει 1 byte = 8 bits πληροφορίας τυχαίας προσπέλασης: η CPU γράφει σε / διαβάζει από όλες τις θέσεις με την ίδια ταχύτητα Άλλο μνήμη (RAM) και άλλο αποθηκευτικά μέσα (δίσκος, CD, κτλ). Κάθε byte της μνήμης έχει έναν αριθμό, τη διεύθυνσή του. Όταν κάποια πληροφορία δεν χωράει σε ένα byte, χρησιμοποιούνται περισσότερα συνεχόμενα bytes θέση μνήμης. Η διεύθυνση μιας θέσης μνήμης είναι η διεύθυνση του πρώτου της byte: byte 2000 byte 2001 byte 2002 byte 2003 byte 2004 byte 2005 01100100 11110101 10001011 00011000 01001001 11101010 θέση μνήμης 3-byte στη διεύθυνση 2000 θέση μνήμης 1-byte στη διεύθυνση 2003 θέση μνήμης 2-byte στη διεύθυνση 2004 3
Bits & Bytes Bit: η μικρότερη μονάδα πληροφορίας o μία από δύο πιθανές καταστάσεις (ναι / όχι, αληθές / ψευδές, on / off) κωδικοποίηση σε 0 ή 1 δυαδικό σύστημα o Το δυαδικό σύστημα επιτρέπει την κατασκευή εξαρτημάτων που έχουν 2 μόνο καταστάσεις υψηλή / χαμηλή τάση (chips) φορά μαγνητικού πεδίου (δίσκοι) ανάκλαση ή όχι φωτεινής δέσμης (CD-ROM, DVD κτλ) παρουσία ή όχι ηλεκτρικού φορτίου (flash) o Η πληροφορία αποθηκεύεται και επεξεργάζεται σαν bits. Byte: 8 bits που λειτουργούν σαν μία ενιαία μονάδα Δεκαδικό σύστημα o Βάση το 10 o 10 ψηφία: 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 ένα δεκαδικό ψηφίο εκφράζει μία από δέκα πιθανές επιλογές (μετράει 10 πράγματα, έχει 10 διακριτές τιμές) δύο δεκαδικά ψηφία εκφράζουν μία από 100 πιθανές επιλογές κτλ. π.χ., 1932 = 1 1000 + 9 100 + 3 10 + 2 1 = 1 10 3 + 9 10 2 + 3 10 1 + 2 10 0 4
Δυαδικό σύστημα o Βάση το 2 o 2 ψηφία: 0, 1 (bits) ένα δυαδικό ψηφίο εκφράζει μία από δύο πιθανές επιλογές (μετράει 2 πράγματα, έχει 2 διακριτές τιμές) δύο δυαδικά ψηφία εκφράζουν μία από 4 πιθανές επιλογές κτλ. π.χ., 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 = 25 (στο δεκαδικό) Δεκαδικοί σε δυαδικούς o Ανάλυση σε δυνάμεις του 2: π.χ., 42 = 32 + 10 = 32 + 8 + 2 = 2 5 + 2 3 + 2 1 = 101010 2 o Διαδοχικές διαιρέσεις με 2 (μόνο για ακέραιους) Πηλίκο 42 21 10 5 2 1 0 Υπόλοιπο 0 1 0 1 0 1 101010 2 Οι δυαδικοί αριθμοί είναι «ογκώδεις» - Οκταδικοί: 0, 1, 2, 3, 4, 5, 6, 7 - Δεκαεξαδικοί: 0-9, A, B, C, D, E, F 2-δικό 8-δικό: κάθε δυαδική τριάδα ένα οκταδικό στοιχείο 001 100 101 001 000. 101 101 100 1 4 5 1 0. 5 5 4 2-δικό 16δικό: κάθε δυαδική τετράδα ένα δεκαεξαδικό στοιχείο 0111 1011 1010 0011. 1011 1100 0100 7 Β Α 3. B C 4 5
Αναπαράσταση πραγματικών αριθμών o Υπολογισμοί με πολύ μεγάλους και πολύ μικρούς αριθμούς μάζα ηλεκτρονίου: 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.141592 αποθηκεύεται σαν f = +3141592 και e = +1. 6
Έστω αναπαράσταση με 3-ψήφιο f και 2-ψήφιο e: Αναπαράσταση μεγεθών από +0.100 10-99 έως +0.999 10 +99 (με 5 ψηφία (3+2) και 2 πρόσημα). 3 5 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 6. Θετικοί αριθμοί ανάμεσα σε 0.100 10-99 και 0.999 10 99 7. Μεγάλοι θετικοί αριθμοί > 0.999 10 99 Οι περιοχές 1, 3, 5, 7 δεν έχουν υπολογιστική αναπαράσταση. IEEE 754 Standard για αναπαράσταση / υπολογισμούς κινητής υποδιαστολής o Δύο ακρίβειες: 32-bit: 64-bit: o Ειδικά σύμβολα: -Inf, +Inf: περιοχές 1 και 7 αντίστοιχα NaN: για αδύνατες πράξεις, π.χ. 0 / 0, 0, / o Δυνατότητα αναπαράστασης και κάποιων αριθμών στις περιοχές 3 και 4. 7
Αναπαράσταση χαρακτήρων Κωδικοποιούνται σαν ακέραιοι: χαρακτήρας ακέραιος Υπάρχουν διάφορα σύνολα χαρακτήρων: ASCII, Unicode, κτλ. ASCII (American Standard Code for Information Interchange): Unicode: Έχει 256 χαρακτήρες απεικόνιση στους ακέραιους 0-255. π.χ., a 97, B 66, 0 48. Οι πρώτοι 128 χαρακτήρες είναι οι πιο σημαντικοί. 128-255: μη λατινικά αλφάβητα και γραφικά σύμβολα. 65536 χαρακτήρες. Οι 128 πρώτες θέσεις είναι ίδιες με του ASCII. Bytes: o byte = 8 bits που λειτουργούν σαν ενιαία μονάδα Η βασική μονάδα επεξεργασίας και αποθήκευσης (μνήμης) 2 8 = 256 τιμές: μικροί ακέραιοι (0-255), χαρακτήρες (ASCII) o 2 bytes μαζί μεγαλύτερη χωρητικότητα 2 bytes (16 bits) 2 16 = 65,536 τιμές (Unicode, μεγαλύτεροι ακέραιοι, χαρακτήρες) o 4 bytes μαζί 32 bits 2 32 = 4,294,967,296 τιμές (μεγαλύτεροι ακέραιοι, πραγματικοί, διευθύνσεις μνήμης) κτλ. Οι σύγχρονοι υπολογιστές: 64-bit (8 bytes) > 18.4 πεντάκις εκατομμύρια τιμές! 8