1 Πληροφορική Διδάσκων:Μ.Χατζόπουλος, Παραδόσεις:Τρίτη 4-6, Τετάρτη 1-3; (Αμφιθέατρο Α15) Πληροφορίες στην ιστοσελίδα του μαθήματος http://www.di.uoa.gr/~organosi/ Η δομή του μαθήματος Εισαγωγή στην Επιστήμη των Υπολογιστών Προγραμματισμός Υπολογιστών με Γλώσσα C. • Η Επιστήμη των Υπολογιστών J.G.Brookshear • Εισαγωγή στον Προγραμματισμό με την C, Ν.Μισυρλής Διαδικαστικά • Το μάθημα έχει και εργαστήριο (θα δώσετε σήμερα τα ονόματά σας για να δούμε πόσες ομάδες εργαστηρίων θα φτιάξουμε. • Το λογισμικό που θα χρησιμοποιηθεί στο εργαστήριο μπορείτε να το πάρετε και σε δικό σας υπολογιστή (είναι ανοικτό λογισμικό) • Θα δώσετε και ασκήσεις • Η τελική βαθμολογία σας θα διαμορφωθεί από τον τύπο 0.4*(βαθμός ασκήσεων)+0.6*(βαθμός διαγωνίσματος). Όμως για να περάσετε θα πρέπει και τα δύο να είναι >4. Εισαγωγή Εισαγωγή Ο ρόλος των Αλγορίθμων Ιστορική Εξέλιξη των Υπολογιστικών Μηχανών Η επιστήμη των Αλγορίθμων Έννοια της Αφαίρεσης Ο ρόλος των Αλγορίθμων • Χωρίς αυστηρότητα ένας αλγόριθμος είναι ένα σύνολο βημάτων που καθορίζουν τον τρόπο εκτέλεσης μιας εργασίας. • Η αναπαράσταση ενός αλγορίθμου ονομάζεται πρόγραμμα. • Η διαδικασία της ανάπτυξης ενός προγράμματος σε μια μορφή συμβατή με την μηχανή και της εισαγωγής στη μηχανή λέγεται προγραμματισμός. • Λογισμικό (software)- Υλικό (hardware) • Η μελέτη των αλγορίθμων ξεκίνησε σαν μαθηματικό θέμα (διαίρεση, αλγόριθμος του Ευκλείδη). • Θεώρημα πληρότητας του Goedel (σε κάθε μαθηματική θεωρία που περιλαμβάνει το παραδοσιακό αριθμητικό μας σύστημα, υπάρχουν προτάσεις οι οποίες δεν μπορούν ούτε να αποδειχθούν ούτε να διαψευστούν).
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
• Η Επιστήμη των Υπολογιστών J.G.Brookshear• Εισαγωγή στον Προγραμματισμό με την C, Ν.Μισυρλής
Διαδικαστικά
• Το μάθημα έχει και εργαστήριο (θα δώσετε σήμερα ταονόματά σας για να δούμε πόσες ομάδες εργαστηρίων θαφτιάξουμε.
• Το λογισμικό που θα χρησιμοποιηθεί στο εργαστήριομπορείτε να το πάρετε και σε δικό σας υπολογιστή (είναιανοικτό λογισμικό)
• Θα δώσετε και ασκήσεις• Η τελική βαθμολογία σας θα διαμορφωθεί από τον τύπο
0.4*(βαθμός ασκήσεων)+0.6*(βαθμός διαγωνίσματος). Όμως για να περάσετε θα πρέπει και τα δύο να είναι >4.
ΕισαγωγήΕισαγωγήΟ ρόλος των Αλγορίθμων
Ιστορική Εξέλιξη των Υπολογιστικών Μηχανών
Η επιστήμη των Αλγορίθμων
Έννοια της Αφαίρεσης
Ο ρόλος των Αλγορίθμων
• Χωρίς αυστηρότητα ένας αλγόριθμος είναι ένα σύνολο βημάτων πουκαθορίζουν τον τρόπο εκτέλεσης μιας εργασίας.
• Η αναπαράσταση ενός αλγορίθμου ονομάζεται πρόγραμμα.• Η διαδικασία της ανάπτυξης ενός προγράμματος σε μια μορφή
συμβατή με την μηχανή και της εισαγωγής στη μηχανή λέγεταιπρογραμματισμός.
• Λογισμικό (software)- Υλικό (hardware)• Η μελέτη των αλγορίθμων ξεκίνησε σαν μαθηματικό θέμα (διαίρεση,
αλγόριθμος του Ευκλείδη).• Θεώρημα πληρότητας του Goedel (σε κάθε μαθηματική θεωρία που
περιλαμβάνει το παραδοσιακό αριθμητικό μας σύστημα, υπάρχουνπροτάσεις οι οποίες δεν μπορούν ούτε να αποδειχθούν ούτε ναδιαψευστούν).
2
Ιστορική Εξέλιξη
• Άβακας• Μηχανές Pascal, Leibnitz, Babbage• Αναπαράσταση με οπές σε χαρτί (Jacquard γιααργαλειούς). Την ιδέα χρησιμοποίησε ο Herman Hollerithγια αναπαράσταση πληροφοριών με την μορφή οπών σεχάρτινες κάρτες.
• MARK I, ABC, Colossus, ENIAC.• Επιτραπέζιοι (Apple, Commodore, Healthkit, Radio
Shack). • Προσωπικός υπολογιστής (ΙΒΜ).
Μηχανικές Υπολογιστικές Μηχανές
• Blaise Pascal (Pascaline)• Τροχός του Leibnitz• Αργαλειός Jaquard• Διαφορική Μηχανή του Babbage • Μηχανή Hollerith
Υπολογιστές που βασίσθηκαν στηναρχιτεκτονική von Neumann
• EDVAC (Πανεπιστήμιο Pensylvania)• EDSAC (Alan Wilkes Πανεπιστήμιο
Cambridge)
Επιστήμη των Αλγορίθμων
• Ποια προβλήματα μπορούν να επιλυθούν με αλγοριθμικέςδιαδικασίες;
• Πως μπρεί να γίνει ευκολότερη η επινόηση αλγορίθμων;• Με ποιόν τρόπο μπορούν να βελτιωθούν οι τεχνικέςαναπαράστασης και μετάδοσης των αλγορίθμων;
• Με ποιόν τρόπο μπορεί να εφαρμοσθεί η γνώση μας καικαι η τεχνολογία για τους αλγορίθμους ώστε ναδημιουργηθούν καλύτερες μηχανές;
• Πως μπορούν να αναλυθούν και να συγκριθούν ταχαρακτηριστικά διαφορετικών αλγορίθμων;
Αφαίρεση
• Η αφαίρεση αναφέρεται στην διάκριση μεταξύ μεταξύ τωνεξωτερικών ιδιοτήτων μιας οντότητας και τωνλεπτομερειών της εσωτερικής της σύνθεσης.
• Η αφαίρεση δεν περιορίζεται μόνο στην επιστήμη και τηντεχνολογία αλλά αποτελεί σημαντική τεχνική απλοποίησηςμε την οποία η κοινωνία έχει δημιουργήσει ένα τρόποζωής.
• Ο υπολογιστικός εξοπλισμός κατασκευάζεται από επίπεδααφηρημένων εργαλείων.
3
Αποθήκευση Δεδομένων
• Τα μπιτ και ο τρόπος που αποθηκεύονται• Κύρια Μνήμη• Αποθηκευτικά μέσα• Αναπαράσταση Πληροφοριών σε σχήματα μπιτ• Το δυαδικό σύστημα• Αποθήκευση Ακεραίων
Στο εσωτερικό των σύγχρονων υπολογιστών οιπληροφορίες αποθηκεύονται σαν σειρές από 0 και 1. Ταψηφία αυτά ονομάζονται μπιτ (bit). Παρά τον πειρασμό να συσχετισθούν με αριθμητικέςτιμές στην πραγματικότητα αποτελούν σύμβολα που ησημασία τους εξαρτάται από την εφαρμογή. Η αποθήκευση ενός μπιτ σε μια μηχανή προϋποθέτει τηνύπαρξη μιας συσκευής που μπορεί να βρίσκεται σε μιααπό δύο δυνατές καταστάσεις όπως ένας διακόπτης(“on”, “off”) ή άλλες συσκευές.
ΛΟΓΙΚΕΣΠΡΑΞΕΙΣΛΟΓΙΚΕΣΛΟΓΙΚΕΣΠΡΑΞΕΙΣΠΡΑΞΕΙΣ
Μοναδιαίοι και δυαδικοί τελεστές
Λογικοί Τελεστές Πίνακες Αλήθειας
4
Τελεστής NOT Τελεστής AND
Εγγενής κανόνας του τελεστή AND Τελεστής OR
Εγγενής κανόνας του τελεστή OR τελεστής XOR
5
Εγγενής κανόνας του τελεστή XOR
Είσοδος
Είσοδος Έξοδος
0
1
0
1 1
1 1
1
0
1 1
1 1
1
Ή τεχνολογία έχει κατά καιρούς χρησιμοποιήσει διάφορες τεχνικές γιααποθήκευση μπιτ.Αυτή που χρησιμοποιείται σήμερα είναι αυτή των πυκνωτών (βρίσκεταισε δύο καταστάσεις φορτισμένος-αφόρτιστος).Η σύγχρονη τεχνολογία επιτρέπει την κατασκευή εκατομμυρίωνμικροσκοπικών πυκνωτών μαζί με τα απαραίτητα κυκλώματα σε μιαμοναδική συσκευή που ονομάζεται τσιπ. Οι σύγχρονες τεχνολογίες την αποθήκευση μπιτ σε συσκευές των οποίωντο μέγεθος μετριέται σε άνγκστρομ. (όπως η flash memory στιςφωτογραφικές μηχανές).
Τα διάφορα συστήματα αποθήκευσης έχουν διαφορετικούς βαθμούςπτητικότητας.
153,600 bytes per second307,200 bytes per second614,400 bytes per second921,600 bytes per second1,228,800 bytes per second1,843,200 bytes per second2,457,600 bytes per second3,688,400 bytes per second 4,915,200 bytes per second6,144,000 bytes per second
Η αποθήκευση αριθμητικών τιμών με τη μορφήκωδικοποιημένων χαρακτήρων δεν είναι αποδοτική όταν οιπληροφορίες που πρέπει να καταγραφούν είναι καθαράαριθμητικές
• Αν χρησιμοποιήσουμε κωδικοποίηση για ένα διψήφιο θαχρειασθούν 16 μπιτ και ο μεγαλύτερος που μπορεί νααποθηκευθεί είναι ο 99.
• Στο δυαδικό σύστημα αρίθμησης όμως σε 16 μπιτ μπορείνα αποθηκευθεί ένας αριθμός στο διάστημα 0 μέχρι 65535.
• Για τους αριθμούς χρησιμοποιούμε την δυαδικήαναπαράστασή τους.
Διαιρέστε συνεχώς τον αριθμό με το 2 και καταγράψτετο πηλίκο και το υπόλοιπο. Μετακινήστε αριστερά τοπηλίκο και καταγράψτε το υπόλοιπο κάτω από κάθεπηλίκο. Σταματήστε όταν το πηλίκο είναι 0.
0 1 2 4 8 17 35 Dec.
Δυαδικός 1 0 0 0 1 1
Μετατροπή δεκαδικού σε δυαδικό Πεδίο ορισμού των ακεραίων
Ταξινόμηση των ακεραίων ΔιάστημαΔιάστημα τιμώντιμών μημη προσημασμένωνπροσημασμένων ακεραίωνακεραίων
Οι σχεδιαστές έχουν ακολουθήσεις μιαδιαφορετική προσέγγιση χρησιμοποιούν τηναναπαράσταση συμπληρώματος προς 1. Για τηναναπαράσταση των θετικών χρησιμοποιούν τηναναπαράσταση των μη προσημασμένων ενώ γιατους αρνητικούς το συμπλήρωμα προς 1 (προκύπτει αν όλα τα 0 του θετικού μετατραπούνσε 1 και τα 1 σε 0.
Το διάστημα τιμών σε συμπλήρωμα του 1 με N bit είναι:
Στην περίπτωση αυτή χρησιμοποιείται έναςθετικός ο οποίος ονομάζεται “μαγικός”. Ομαγικός αριθμός είναι συνήθως ο (2Ν-1) ή ο(2 Ν-1-1).Για την αναπαράσταση προστίθεται στον αριθμόο μαγικός αριθμός και το αποτέλεσμα σε δυαδικόκαι προστίθενται μηδενικά για να υπάρχουνσυνολικά Ν μπιτ.
20
ΠαράδειγμαΠαράδειγμα
Παραστήστε τον –25 σε πλεόνασμα _127 χρησιμοποιώντας 8-bit.
Για να μετατρέψουμε ένα αριθμό κινητής υποδιαστολήςσε δυαδικό:Μετατρέπουμε το ακέραιο μέρος σε δυαδικόΜετατρέπουμε το κλασματικό μέρος σε δυαδικό.Τοποθετούμε υποδιαστολή μεταξύ των δύο.
Αλλαγή δεκαδικού μέρους σε δυαδικό ΠαράδειγμαΠαράδειγμα
Έστω ένα υδραγωγείο που παρέχει νερό σε μιαπόλη μέσω 8 αντλιών. Η κατάσταση των αντλιών(ανοικτές ή κλειστές) μπορεί να παρασταθεί μεένα σχήμα 8 μπιτ. Για παράδειγμα, το σχήμα11000111 δείχνει ότι οι αντλίες 1 έως 3 (απόδεξιά), 7 και 8 είναι ανοικτές ενώ οι αντλίες 4, 5, και 6 είναι κλειστές. Υποθέστε τώρα ότι κλείνει ηαντλία 7. Πως παριστάνεται αυτό μέσω μιαςμάσκας?
ΧρησιμοποιήστεΧρησιμοποιήστε τητη μάσκαμάσκα 1100111111 111111 γιαγιασύζευξησύζευξη ((ANDAND)) μεμε τοτο σχήμασχήμα προορισμούπροορισμού. . ΤοΤομόνομόνο 0 bit (bit 7) 0 bit (bit 7) στηστη μάσκαμάσκα ακυρώνειακυρώνει τοτο έβδομοέβδομοbit bit στοστο στόχοστόχο..
Οι πράξεις ολίσθησης χρειάζονταιιδιαίτερη προσοχή όταν το σχήμααναπαριστά κάποιον προσημασμένοαριθμό. Μια τέτοια πράξη μπορεί νααλλάξει το πιο αριστερό μπιτ το οποίοαντιπροσωπεύει το πρόσημο.
Μετασχηματισμός δυαδικού σε οκταδικόκαι αντίστροφα
ΠαράδειγμαΠαράδειγμα
Βρέστε το οκταδικό ισοδύναμο του101110010.
ΛύσηΛύση
ΚάθεΚάθε ομάδαομάδα 3 bits 3 bits μετατρέπεταιμετατρέπεται σεσεέναένα οκταδικόοκταδικό ψηφίοψηφίο. . ΤοΤο ισοδύναμοισοδύναμοείναιείναι 0562,0562, o562, or 562o562, or 56288..
ΠαράδειγμαΠαράδειγμα
Βρέστε το οκταδικό ισοδύναμο του1100010.
ΛύσηΛύση
Divide the bit pattern into 3Divide the bit pattern into 3--bit groups (from the bit groups (from the right). In this case, add two extra 0s at the left to right). In this case, add two extra 0s at the left to make the number of bits divisible by 3. So you make the number of bits divisible by 3. So you have 001100010, which is translated to have 001100010, which is translated to 14214288..
ΠαράδειγμαΠαράδειγμα 22
Βρέστε το δεκαεξαδικό ισοδύναμο του μπιτσχήματος 0011100010.