1. Η αναπαράσταση της πληροφορίας στον υπολογιστή
|
|
- Κηφεύς Καλύβας
- 9 χρόνια πριν
- Προβολές:
Transcript
1 1. Η αναπαράσταση της πληροφορίας στον υπολογιστή 1.1 bits, Bytes και words. Οι ηλεκτρονικοί υπολογιστές, σαν ψηφιακές ηλεκτρομηχανές που είναι, αυτό που μπορούν σαφώς ν' αντιληφθούν είναι το αν περνά ή όχι ρεύμα μέσα από τα κυκλώματα τους. Η πληροφορία λοιπόν μέσα στον υπολογιστή μπορεί να αναπαρασταθεί ψηφιακά, με 0 και 1 (για παράδειγμα 0 όταν δεν περνά ρεύμα, 1 όταν περνά). Τα πάντα κωδικοποιούνται και εκφράζονται με αυτόν τον τρόπο (π.χ. οι εντολές, οι χαρακτήρες, οι αριθμοί). bit: H μικρότερη μονάδα μέτρησης μέσα στον υπολογιστή (Binary digit) Το bit παίρνει τις τιμές 0 ή 1 0 : δεν περνά ρεύμα, 1 : περνά ρεύμα. Το bit ουσιαστικά εκφράζει αυτές τις 2 διακριτές καταστάσεις (τιμές 0 και 1). Τα πάντα μέσα στον υπολογιστή εκφράζονται με bits Το Byte είναι η μονάδα μέτρησης μνήμης και αποτελείται από 8 bits. Το word (ψηφιολέξη), είναι ο μεγαλύτερος χώρος μνήμης (μήκος) σε bits στον οποίον η Κεντρική Μονάδα Επεξεργασίας μπορεί να αναφερθεί με μία της ενέργεια, δηλαδή έναν κύκλο. Γι' αυτόν τον λόγο η Κύρια Μνήμη είναι οργανωμένη σε σταθερού μήκους χώρους, που στον καθένα τους αντιστοιχεί μία μοναδική διεύθυνση. Το εύρος του word ποικίλει από επεξεργαστή σε επεξεργαστή. Γενικά όταν έχουμε, έναν 64-bit υπολογιστή εννοούμε ότι το word του επεξεργαστή έχει εύρος 64 bit, έναν 32-bit υπολογιστή εννοούμε ότι το word του επεξεργαστή έχει εύρος 32 bit, έναν 16-bit υπολογιστή εννοούμε ότι το word του επεξεργαστή έχει εύρος 16 bit και έναν 8-bit υπολογιστή εννοούμε ότι το word του επεξεργαστή έχει εύρος 8 bit Όπως καταλαβαίνετε όσο πιο μεγάλο word έχει η Κεντρική Μονάδα Επεξεργασίας ενός υπολογιστή τόσο πιο πολλές δυνατότητες έχει αυτός ο υπολογιστής (διότι έχει την ικανότητα σ' ένα κύκλο λειτουργίας να μεταφέρει περισσότερες πληροφορίες-εντολές ή δεδομένα άρα είναι ταχύτερος). 1.2 Αριθμητικά συστήματα Οι υπολογιστές όπως γνωρίζουμε χρησιμοποιούν το δυαδικό σύστημα για την αναπαράσταση των πληροφοριών (αριθμούς, γράμματα/χαρακτήρες). Οι άνθρωποι χρησιμοποιούν το δεκαδικό σύστημα αρίθμησης για να εκφράσουν κάποιον αριθμό (η βάση είναι το 10). Το δεκαδικό σύστημα είναι ένα σύστημα αρίθμησης αλλά όχι το μοναδικό. Κάθε αριθμητικό σύστημα για να παραστήσει τους αριθμούς χρησιμοποιεί ένα συγκεκριμένο αριθμό συμβόλων, που ονομάζονται ψηφία. Ο αριθμός αυτός λέγεται βάση του συστήματος και χαρακτηρίζει το αριθμητικό σύστημα ενώ επίσης από τον αριθμό αυτό προέρχεται και το όνομα του συστήματος. Παραδείγματα: Το δεκαδικό σύστημα έχει ως βάση τον αριθμό 10 και περιλαμβάνει τα ψηφία 0,1,2,3,4,5,6,7,8,9. Το οκταδικό σύστημα έχει ως βάση του το 8 και περιλαμβάνει 8 ψηφία (0-7). Το δεκαεξαδικό σύστημα έχει ως βάση του τον αριθμό 16 και περιλαμβάνει τα 10 ψηφία του δεκαδικού ενώ τα υπόλοιπα 6 συμβολίζονται με A, B, C, D, E, F. Το δυαδικό σύστημα έχει ως βάση τον αριθμό 2 και περιλαμβάνει τα ψηφία 0 και 1. 1
2 Πίνακας αντιστοιχίας αριθμητικών συστημάτων 2-δικό δικό δικό A B C D Ε F δικό Κάθε αριθμός Α μπορεί να γραφεί σε ένα αριθμητικό σύστημα βάσης β ως εξής: Παραδείγματα: a n-1 b n-1 + a n-2 b n a 1 b 1 + a 0 b 0 + a -1 b -1 + a -2 b όπου n, m φυσικοί αριθμοί με n 1 και m 0 Ο πραγματικός αριθμός ,93 (10) με βάση το 10 αναλύεται ως εξής: + a m-1 b m-1 + a m b m 5* * * * * * * *10-2 Ο ακέραιος αριθμός (10) με βάση το 10 αναλύεται ως εξής: 8* * * * * * *10 0 Ο ακέραιος αριθμός (2) με βάση το 2 αναλύεται ως εξής: 1* * * * * * * *2 0 - πρόκειται για τον 185 (10) Ο ακέραιος αριθμός (8) με βάση το 8 αναλύεται ως εξής: 4* * * * * *8 0 - πρόκειται για τον (10) Ο ακέραιος αριθμός 25C53 (16) με βάση το 16 αναλύεται ως εξής (C=14): 2* * * * * πρόκειται για τον (10) 1.3 Μετατροπές Αριθμητικών Συστημάτων Εδώ θα δούμε μερικούς τρόπους για να μετατρέψουμε αριθμούς που εκφράζονται στο 10-δικό σύστημα σε 2-δικούς αριθμούς και αντίστροφα. Θα ασχοληθούμε επίσης και με την μετατροπή των 8-δικών και των 16-δικών αριθμών σε αντίστοιχους 10-δικούς και 2-δικούς (οι 8-δικοί και οι 16- δικοί αριθμοί όπως θα δούμε παρακάτω, είναι πολύ εύκολες αναπαραστάσεις των 2-δικών αριθμών και χρησιμοποιούνται συχνότερα αντί αυτών) Μετατροπή από οποιοδήποτε σύστημα σε δεκαδικό Για την μετατροπή αριθμού από οποιοδήποτε σύστημα σε 10-δικό, εφαρμόζεται η μέθοδος: Παράδειγμα: αν ο k-δικός αριθμός είναι: X 1 X 2 X 3...X ν (k), όπου k η βάση τότε ο αντίστοιχος 10-δικός είναι: Χ 1 *k (ν-1) + Χ 2 *k (ν-2) + Χ 3 *k (ν-3) Χ (ν-1) *k 1 + X ν *k 0 ο 16-δικός 3ΑC1 (16) είναι ο 10-δικός 1504 (10) : 3* * * *16 0 = 1504 (10) και ο δυαδικός είναι ο 10-δικός 44: 1* * * * *2 1 +0*2 0 = 44 (10) 2
3 1.3.2 Μετατροπή 16-δικού σε 2-δικό και αντίστροφα Όπως παρατηρούμε από τον πίνακα αντιστοιχίας αριθμητικών συστημάτων σε κάθε 16-δικό ψηφίο αντιστοιχούν τέσσερα δυαδικά. Η μέθοδος λοιπόν είναι η ανάλυση κάθε 16-δικού ψηφίου σε τέσσερις 2-δικούς. Παράδειγμα: για τον 16-δικό αριθμό 4Α5D (16) έχουμε: το 16-δικό ψηφίο 4 = δικό, ψηφίο Α = 1010 " ψηφίο 5 = 0101 " και ψηφίο D = 1101 " ο αντίστοιχος δυαδικός λοιπόν αριθμός είναι ο (2) (ΠΡΟΣΟΧΗ: διατηρούνται τα μηδέν στη αρχή κάθε τετράδας) Για να μετατρέψουμε τώρα ένα δυαδικό αριθμό σε 16-δικό εφαρμόζουμε το αντίστροφο: Έστω ο 2-δικός αριθμός (2). Τον αναλύουμε σε τετράδες αρχίζοντας από το τέλος Σε κάθε τετράδα τώρα αντιστοιχεί ένα 16-δικό ψηφίο 2-δικό 1 => => => 1 16-δικό 1101 => D και 0111 => 7 ο ζητούμενος 16-δικός είναι ο 121D7 (16) Μετατροπή 8-δικού αριθμού σε 2-δικό και αντίστροφα Δουλεύουμε με τον ίδιο τρόπο όπως προηγουμένως με την διαφορά ότι τώρα έχουμε να κάνουμε με τριάδες αντί για τετράδες. Παράδειγμα: μετατροπή του 8-δικού (8) σε δυαδικό, έχουμε: 8-δικό 2-δικό 6 => => => => => 010 (ΠΡΟΣΟΧΗ: διατηρούνται τα μηδέν στη αρχή κάθε τριάδας) ο δυαδικός αριθμός είναι: (2) Αντίστροφα αν αναλύσουμε τον παραπάνω δυαδικό αριθμό σε τριάδες και βρούμε τ' αντίστοιχα 8-δικά ψηφία σε κάθε τριάδα έχουμε, δηλαδή τον 8-δικό (2). 3
4 1.3.4 Μετατροπή 10-δικού δε 2-δικό. Με την μέθοδο της συνεχούς διαίρεσης του δεκαδικού αριθμού με το το 2 έως ότου το πηλίκο γίνει 0. Ο ζητούμενος 2-δικός αριθμός είναι τα υπόλοιπα των διαιρέσεων αρχίζοντας αντίθετα. Παράδειγμα: για τον αριθμό 73 (10), 78 : 2 = 39 υπόλοιπο 0 19 : 2 = 9 >> 1 9 : 2 = 4 >> 1 4 : 2 = 2 >> 0 2 : 2 = 1 >> 0 1 : 2 = 0 >> 1 ο αντίστοιχος δυαδικός είναι: (2) Πράξεις στο δυαδικό σύστημα. Γίνονται με τον ίδιο τρόπο όπως στο δεκαδικό σύστημα. Οι κανόνες όμως φυσικά αλλάζουν. Για παράδειγμα στην πρόσθεση έχουμε, Στο δεκαδικό Στο δυαδικό Παράδειγμα: = = = = = = = = 10 ( 2 δηλαδή!) = = = = Δεδομένα και πληροφορία Δεδομένα είναι ένα σύνολο διακριτών στοιχείων σχετικά με ένα συμβάν ή μια διαδικασία χωρίς κάποια άμεση σημασία. Τα δεδομένα είναι ουσιαστικά οντότητες και ιδιότητες που προκύπτουν από παρατηρήσεις, καταγραφές ή υπολογισμούς και μπορεί να είναι χαρακτήρες, κείμενο, αριθμοί, σύμβολα, σχήματα, εικόνες κλπ και γενικότερα χαρακτηριστικά, μετρήσεις, ιδιότητες που προκύπτουν από παρατηρήσεις, πειραματισμούς ή υπολογισμούς. Ψηφιακά δεδομένα (data) είναι δεδομένα που έχουν αναπαρασταθεί με κάποιο τρόπο (κωδικοποίηση), είναι αποθηκευμένα σε υπολογιστή και είναι δυνατόν να επεξεργαστούν. Τα ψηφιακά δεδομένα εισάγονται με πρωτοβουλία του χρήστη (πληκτρολόγιο) ή αυτόματα (αρχεία, αισθητήρες κλπ) και είτε επεξεργάζονται άμεσα από κάποιο πρόγραμμα, είτε αποθηκεύονται σε αρχεία δηλαδή σε συλλογές δεδομένων που έχουν κάποια σχέση μεταξύ τους (κείμενο, εγγραφές, βάσεις δεδομένων). Η πληροφορία παράγεται από την επεξεργασία ή/και την ερμηνεία των ψηφιακών δεδομένων, η οποία γίνεται από προγράμματα και μας βοηθά στη λήψη αποφάσεων. Ουσιαστικά πρόκειται για επεξεργασμένα δεδομένα στα οποία έχει δοθεί κάποιο νόημα. Η επεξεργασία δεδομένων αφορά συνήθως σε συλλογή, αναζήτηση, ομαδοποίηση, ταξινόμηση, σύγκριση, επιλογή δεδομένων και σε εκτέλεση αριθμητικών/λογικών υπολογισμών. Γενικότερα ισχύει: δεδομένα + επεξεργασία / ερμηνεία πληροφορία. Συνεπώς τα δεδομένα είναι απαραίτητα στοιχεία ενός προγράμματος. 4
5 Παράδειγμα: Έστω οι αριθμοί 8, 5, 7, 6 και 7. Αυτοί οι αριθμοί 8, 5, 7, 6, 7 σαν απλά δεδομένα δεν έχουν κάποιο νόημα. Αν πρόκειται για βαθμούς εργασιών ενός φοιτητή σε ένα μάθημα αποκτούν σημασία, διότι ο μέσος όρος αυτών μπορεί να μας οδηγήσει στην απόφαση αν ο φοιτητής περνά το μάθημα ή όχι. Αν όλες οι εργασίες μετρούν το ίδιο, τότε ο μέσος όρος της βαθμολογίας μας δίνει τη πληροφορία που θέλουμε (περνά ή όχι το μάθημα). Ο υπολογισμός του μέσου όρου με κάποιο πρόγραμμα, είναι η επεξεργασία δεδομένων. Αν ο μέσος όρος είναι 5 τότε έχουμε τη πληροφορία ότι ο φοιτητής περνάει το μάθημα Η αναπαράσταση δεδομένων. Όπως είδαμε προηγουμένως οι υπολογιστές είναι σε θέση να αναγνωρίζουν 2 διακριτές καταστάσεις (αν περνά ή όχι ρεύμα). Τα πάντα μέσα σ ένα υπολογιστικό σύστημα κωδικοποιούνται με αυτές τις 2 καταστάσεις (0/1): Οι εντολές που εκτελούνται (CPU instructions). Μία εντολή που μπορεί να εκτελεστεί από τον επεξεργαστή συνήθως καταλαμβάνει χώρο όσο 1 word. Ο αριθμός των εντολών, o συνδυασμός και ο αριθμός των bits που καταλαμβάνουν και η μορφή (format) τους διαφέρει από επεξεργαστή σε επεξεργαστή. Τα δεδομένα που επεξεργάζονται από τα προγράμματα του υπολογιστή. Έχουν διαφορετικές εσωτερικές αναπαραστάσεις ανάλογα με τον τύπο τους (κείμενο, αριθμοί, αναλογικό σήμα, εικόνες, video κλπ). Κάποιες αναπαραστάσεις είναι κοινές σε όλα τα συστήματα, ενώ άλλες, ακόμα και για τον ίδιο τύπο δεδομένων, διαφέρουν. Συνεπώς, κωδικοποιήσεις που βασίζονται στο δυαδικό σύστημα συνιστούν τρόπους αναπαράστασης των δεδομένων στους υπολογιστές. Οι κωδικοποιήσεις αυτές λαμβάνουν υπόψη τους το είδος των δεδομένων που πρόκειται να αναπαρασταθούν. Αφιερώνουν συγκεκριμένο αριθμό από bits για κάθε στοιχείο των δεδομένων που πρόκειται ν αναπαραστήσουν. Διάφοροι τύποι δεδομένων έχουν διαφορετική εσωτερική αναπαράσταση ο ένας από τον άλλο και η Κεντρική Μονάδα Επεξεργασίας (CPU) με τους μηχανισμούς που διαθέτει, είναι σε θέση να αντιληφθεί την διαφορά μεταξύ τους. Πόσα bits χρειαζόμαστε; Παράδειγμα. Πόσα bits χρειαζόμαστε για την αναπαράσταση των σημείων του ορίζοντα (βοράς, νότος, ανατολή, δύση); Απαιτούνται 4 διακριτές καταστάσεις: Παράδειγμα: με 1 bit έχουμε 2 διακριτές καταστάσεις: 0 και 1 δεν επαρκούν! με 2 bits έχουμε 4 διαφορετικές καταστάσεις επαρκούν! Αυτές είναι: 00, 01,10 και 11. Πόσα bits χρειαζόμαστε για την αναπαράσταση των 24 κεφαλαίων γραμμάτων της αλφαβήτου; Απαιτούνται 24 διακριτές καταστάσεις: με 1 bit έχουμε 2 διαφορετικές καταστάσεις δεν επαρκούν! με 2 bits έχουμε 4 διαφορετικές καταστάσεις δεν επαρκούν! με 3 bits έχουμε 8 διαφορετικές καταστάσεις δεν επαρκούν! με 4 bits έχουμε 16 διαφορετικές καταστάσεις δεν επαρκούν! με 5 bits έχουμε 32 διαφορετικές καταστάσεις επαρκούν για τα 24 γράμματα (περισσεύουν 8). Έχουμε λοιπόν Α: 0000, Β:0001, C:0010,., X:10110, Y:10111, Z:11000 Γενικότερα, με Κ bits μπορούμε ν αναπαραστήσουμε Ν=2 Κ διαφορετικές καταστάσεις (K=log 2 N). Σε μία δυαδική αναπαράσταση: Το τελευταίο δεξιά ψηφίο είναι το λιγότερο σημαντικό ψηφίο (Least Significant Bit - LSB) της δυαδικής αναπαράστασης Το πρώτο αριστερά ψηφίο είναι το περισσότερο σημαντικό ψηφίο (Most Significant Bit MSB) της δυαδικής αναπαράστασης. 5
6 1.4.2 Αναπαράσταση κειμένου (χαρακτήρων) Η αναπαράσταση κειμένου αφορά σε χαρακτήρες που μπορούν να εκτυπωθούν: A-Z, a-z, #, $, %, ^, &, *, (, ), _, -, +, /, κλπ. Επίσης, αφορά και σε κάποιους χαρακτήρες ελέγχου που δεν εκτυπώνονται (αλλαγή γραμμής, πλήκτρο <enter>, πλήκτρο <backspace> κλπ). Σε κάθε χαρακτήρα αντιστοιχεί ένας συγκεκριμένος μοναδικός συνδυασμός από bits (ένας δυαδικός αριθμός) κωδικοποίηση. Σε κάθε κωδικοποίηση χρησιμοποιείται ένας συγκεκριμένος αριθμός από bits, ανάλογα με το αριθμό των χαρακτήρων που πρόκειται να αναπαρασταθούν. Υπάρχουν πολλές αναπαραστάσεις χαρακτήρων κειμένου. Οι πιο γνωστές: ASCII, ISO & UNICODE. Κωδικοποίηση κατά ASCII Πρόκειται για τη πρώτη κοινή αναπαράσταση χαρακτήρων κειμένου για όλους τους κατασκευαστές υπολογιστών (ASCII: American Standard Code for Information Interchange). Η κωδικοποίηση κατά ASCΙI χρησιμοποιεί 7 bits για την αναπαράσταση των λατινικών χαρακτήρων που χρησιμοποιούνται στην αγγλική γλώσσα και ένα όγδοο bit για λόγους έλεγχου στη μετάδοση των bits. Συνεπώς, υπήρχαν 128 (2 7 ) διαφορετικοί συνδυασμοί των 7 bits και ένα ακόμη bit ελέγχου (8 bits). Αυτή η πρώιμη οκτάδα από bits που χρησιμοποιήθηκε για την αναπαράσταση των χαρακτήρων προκάλεσε και τον ορισμό του Byte που καθιερώθηκε σαν μονάδα μέτρησης μνήμης. Αρχικά το ASCII περιελάμβανε μόνο το λατινικό αλφάβητο. Οι υπόλοιποι 128 (2 8 =256 συνολικά) συνδυασμοί χρησιμοποιήθηκαν αργότερα για ειδικούς γραφικούς χαρακτήρες ή για χαρακτήρες άλλων αλφάβητων από τον ISO (International Standardization Organization -Διεθνής Οργανισμός Τυποποίησης). Χρησιμοποιήθηκε για πρώτη φορά το 1963 και ευρέως από το 1968 και μετά. Έχει επικρατήσει και σαν ορολογία περιγραφής αρχείων κειμένου (αρχείο ASCII). Κωδικοποίηση ISO Το ISO 8859 είναι μία 8-bit επέκταση του ASCΙΙ που χρησιμοποιεί και τα 8 bits. Η κωδικοποίηση ASCII αναπαριστά ικανοποιητικά τους λατινικούς χαρακτήρες της Αγγλικής γλώσσας, αλλά δεν συμπεριλαμβάνει εθνικούς χαρακτήρες άλλων χωρών. Για παράδειγμα με 8-bits μπορούν ν' αναπαρασταθούν 256 διαφορετικοί χαρακτήρες, που είναι αρκετοί για να καλύψουν το Λατινικό και το Ελληνικό (μονοτονικό) αλφάβητο. Το ISO 8859 είναι μία σειρά από 8-bits τυποποιήσεις χαρακτήρων (8859-1, , κλπ). Για τους ελληνικούς χαρακτήρες (μονοτονικό σύστημα) υπάρχει το ISO που προέρχεται από το πρότυπο ΕΛΟΤ-928 με το οποίο αναπαριστώνται όλοι οι λατινικοί και οι Ελληνικοί χαρακτήρες (κεφαλαία και πεζά γράμματα). Έτσι έχουμε: το Α λατινικό είναι , το a είναι λατινικό είναι , το Α ελληνικό είναι , το α είναι ελληνικό είναι το B λατινικό είναι , το b είναι λατινικό είναι , το Β ελληνικό είναι , το β είναι ελληνικό είναι , κλπ Μπορείτε να αναφερθείτε στο πίνακα ISO 8859 και να βρείτε όλες τις αναπαραστάσεις των Ελληνικών χαρακτήρων. Κωδικοποίηση UNICODE H κωδικοποίηση UNICODE χρησιμοποιεί 8, 16 ή και 32 bits για την αναπαράσταση χαρακτήρων (28, 216 και 232 διαφορετικούς χαρακτήρες). Η κωδικοποίηση UNICODE περιλαμβάνει 2 κατηγορίες αναπαραστάσεων: UTF (Unicode Transformation Format) και UCS (Universal Character Set) 6
7 Η κωδικοποίηση ISO 8859 Bits b8b7b6b b4b3b2b1 HEX A B C D Ε F SP P ` p NBSP ΐ Π ΰ π ! 1 A Q a q ` ± Α Ρ α ρ " 2 B R b r ² Β β ς # 3 C S c s ³ Γ Σ γ σ $ 4 D T d t Δ Τ δ τ % 5 E U e u Ε Υ ε υ & 6 F V f v Ά Ζ Φ ζ φ ' 7 G W g w Η Χ η χ ( 8 H X h x Έ Θ Ψ θ ψ ) 9 I Y I y Ή Ι Ω ι ω 1010 A * : J Z j z Ί Κ Ϊ κ ϊ 1011 B + ; K [ k { Λ Ϋ λ ϋ 1100 C, < L \ l Ό Μ ά μ ό 1101 D - = M ] m } SHY ½ Ν έ ν ύ 1110 E. > N ^ n - Ύ Ξ ή ξ ώ 1111 F /? O - o DEL Ώ Ο ί ο 7
8 1.4.3 Αναπαράσταση ακεραίων αριθμών Ποιοι είναι οι ακέραιοι: όλοι οι φυσικοί με πρόσημο και το μηδέν Εύρος: Φυσικά δεν υπάρχει υπολογιστικό σύστημα που μπορεί να αναπαραστήσει όλους τους ακεραίους. Όπως έχουμε δει πριν (πόσα bits χρειάζομαι), ο αριθμός των bits που χρησιμοποιείται για την αναπαράσταση των ακεραίων καθορίζει και το εύρος τους (μικρότερος μεγαλύτερος). Υπάρχουν διαφορετικές αναπαραστάσεις για: ακεραίους χωρίς πρόσημο (μη προσημασμένοι: από 0 έως ). ακεραίους με πρόσημο (προσημασμένοι: από - έως + ) Μη προσημασμένοι ακέραιοι Ο αριθμός Ν των bits που χρησιμοποιείται για την αναπαράσταση καθορίζει και τον μεγαλύτερο αριθμό που μπορεί να αναπαρασταθεί. Παραδείγματα: 4 bits: ο μεγαλύτερος ακέραιος είναι =15 10 (2 4-1). Εύρος: από 0 έως bits: ο μεγαλύτερος ακέραιος είναι = = Εύρος: από 0 έως 255. Γενικά, για Ν bits το εύρος των τιμών που έχουμε για ακεραίους χωρίς πρόσημο είναι: από 0 έως 2 Ν -1. Συνεπώς, για ν αποθηκευτεί σε υπολογιστή ένας μη προσημασμένος ακέραιος αριθμός, απλά μετατρέπεται στο δυαδικό σύστημα Παραδείγματα μη προσημασμένων: Έστω Ν ο αριθμός των bits που χρησιμοποιείται για την αναπαράσταση: Αν Ν=8, ο αριθμός ( ) αποθηκεύεται ως Αν Ν=16, ο αριθμός ( ) αποθηκεύεται ως Αν Ν=8, ο αριθμός ( ) δεν μπορεί ν αποθηκευτεί. Αν προσπαθήσουμε να τον αποθηκεύσουμε σε 8 bits τότε έχουμε το φαινόμενο της υπερχείλισης (overflow). Αν Ν=16, ο αριθμός ( ) αποθηκεύεται ως Αν Ν=32, ο αριθμός ( ) αποθηκεύεται ως Προσημασμένοι ακέραιοι Απαιτείται ένδειξη για το πρόσημο του ακεραίου. Αφιερώνεται λοιπόν ένα bit για την ένδειξη του πρόσημου: 0 --> θετικός, 1 --> αρνητικός Τα υπόλοιπα bits χρησιμοποιούνται για τη παράσταση του μέτρου του ακεραίου (απόλυτη τιμή). Προφανώς με ένα bit λιγότερο (αυτό του πρόσημου) το μέτρο των αριθμών υποδιπλασιάζεται. Η αναπαράσταση των θετικών ακεραίων είναι η ίδια σε όλες τις κωδικοποιήσεις που θα εξετάσουμε στην συνέχεια. Αλλάξει μόνο ο τρόπος αναπαράστασης των αρνητικών αριθμών. Θα εξεταστούν 3 κωδικοποιήσεις αρνητικών αριθμών: Πρόσημο και μέτρο Συμπλήρωμα ως προς 1 Συμπλήρωμα ως προς 2 8
9 1.4.6 Κωδικοποίηση Πρόσημου-Μέτρου Το τελευταίο αριστερά bit (Most Significant Bit MSB) χρησιμοποιείται για την ένδειξη του πρόσημου. Τα εναπομείναντα ψηφία χρησιμοποιούνται για το μέτρο του αριθμού: > (8 bits αναπαράσταση) > (8 bits αναπαράσταση) > (16 bits αναπαράσταση) > (16 bits αναπαράσταση Ο μέγιστος προσημασμένος ακέραιος που μπορεί να παρασταθεί με Ν bits και κωδικοποίηση πρόσημου-μέτρου είναι: = +(2 Ν-1-1) 10 Ο ελάχιστος προσημασμένος ακέραιος που μπορεί να παρασταθεί με Ν bits και κωδικοποίηση πρόσημου-μέτρου είναι: = -(2 Ν-1-1) 10 Γενικά, με Ν bits, το εύρος τιμών που έχουμε με κωδικοποίηση πρόσημου-μέτρου είναι: Παραδείγματα: από -2 (N-1) - 1 έως +2 (Ν-1) - 1 Με 8 bits το εύρος τιμών είναι: έως (-127 έως +127). Με 16 bits το εύρος τιμών είναι: έως ( έως ) Έχουμε όμως 2 παραστάσεις για το μηδέν (+0) και (-0) Κωδικοποίηση συμπληρώματος ως προς 1 Και εδώ το MSB χρησιμοποιείται για την ένδειξη του πρόσημου (0 -> θετικός, 1-> αρνητικός). Για τη παράσταση των αρνητικών ακεραίων χρησιμοποιούμε το συμπλήρωμα της δυαδικής παράστασης του αριθμού ως προς 1. Το συμπλήρωμα ως προς 1 ενός δυαδικού αριθμού βρίσκεται εύκολα αν αντικατασταθούν όλα τα 1 του αριθμού με 0 και όλα τα 0 με 1. Παράδειγμα: ο αριθμός ( ) θα παρασταθεί σε 8 bits ως: (ίδια με την κωδικοποίηση πρόσημου-μέτρου). ο αριθμός θα παρασταθεί ως: Μέγιστος θετικός: = +(2 (Ν-1) - 1) 10 Ελάχιστος αρνητικός: = -(2 (Ν-1) - 1) 10 Και πάλι το μηδέν αποθηκεύεται με 2 τρόπους: και (συμπλήρωμα του ως προς 1) Κωδικοποίηση συμπληρώματος ως προς 2 Και πάλι το MSB χρησιμοποιείται για την ένδειξη του πρόσημου (0 -> θετικός, 1->αρνητικός). Για τη παράσταση των αρνητικών ακεραίων χρησιμοποιούμε το συμπλήρωμα της δυαδικής παράστασης του αριθμού ως προς 2. 9
10 Το συμπλήρωμα ως προς 2 ενός δυαδικού αριθμού βρίσκεται εύκολα αν αντικατασταθούν όλα τα 1 του αριθμού με 0 και όλα τα 0 με 1 και στη συνέχεια προσθέσουμε 1. Δηλαδή αν προσθέσουμε 1 στο συμπλήρωμα του. Παράδειγμα: ο αριθμός ( ) θα παρασταθεί σε 8 bits ως: (ίδια με την κωδικοποίηση πρόσημου-μέτρου). ο αριθμός θα παρασταθεί ως: = Έχουμε ένα (1) μόνο μηδέν: Το εύρος τιμών που έχουμε με κωδικοποίηση συμπληρώματος ως προς 2: από -2 (N-1) έως +2 (Ν-1) - 1 Πρόκειται για τον τρόπο αναπαράστασης ακεραίων με πρόσημο. Π-Μ Συμπ. - 1 Συμπ
11 2.1 Γενικά 2. Οι γλώσσες προγραμματισμού Φυσικά οι υπολογιστές δεν καταλαβαίνουν τις ανθρώπινες γλώσσες και κατά συνέπεια δεν είναι δυνατόν να τους δώσουμε εντολές/οδηγίες στην ομιλούμενη γλώσσα. Ο σχεδιασμός και η κατασκευή κάθε υπολογιστή στηρίζεται στην δική του Κεντρική Μονάδα Επεξεργασίας, η οποία είναι σε θέση να αναγνωρίσει και να εκτελέσει ένα συγκεκριμένο σύνολο εντολών (ψηφιακό ρεύμα) που ανθρωποκεντρικά εκφράζονται στο δυαδικό, οκταδικό ή δεκαεξαδικό σύστημα και ονομάζεται Γλώσσα (Κώδικας) Μηχανής (machine language). Ένα πρόγραμμα που έχει διατυπωθεί με αυτό το συγκεκριμένο σύνολο εντολών της γλώσσας μηχανής ονομάζεται Δυαδικός Κώδικας, είναι αντιληπτό από την Κεντρική Μονάδα Επεξεργασίας και κατά κανόνα είναι δυνατόν να εκτελεστεί (εκτελέσιμο πρόγραμμα- executable). Συνεπώς κάθε υπολογιστής είναι δυνατόν να εκτελέσει προγράμματα που είναι εκφρασμένα στην Γλώσσα Μηχανής που αντιστοιχεί στην δικιά του δομή (Κεντρική Μονάδα Επεξεργασίας και Αρχιτεκτονική). Επειδή όμως είναι εξαιρετικά επίπονος εργασία η ανάπτυξη προγραμμάτων, που είναι εκφρασμένα σε Γλώσσα Μηχανής και τα οποία θα καθοδηγούν τον υπολογιστή, έχουν δημιουργηθεί διάφορες ειδικές Γλώσσες Προγραμματισμού που προσεγγίζουν την ανθρώπινη λογική (τουλάχιστον αυτή που εκφράζεται με μαθηματικό τρόπο). Αυτές οι Γλώσσες Προγραμματισμού έχουν προκαθορισμένο λεξιλόγιο (γραμματική, λέξεις και σύμβολα), συγκεκριμένη συντακτική ανάλυση, και λογικούς κανόνες και είναι κατανοητές από τον άνθρωπο (ανθρωποκεντρικές). Μέσω αυτών των Γλωσσών Προγραμματισμού μπορούμε να δώσουμε οδηγίες/εντολές σε κάποιο σύστημα ηλεκτρονικού υπολογιστή, δημιουργώντας προγράμματα που είναι διατυπωμένα σε αυτές τις γλώσσες. Όλα τα προγράμματα είναι γραμμένα σε κάποια γλώσσα προγραμματισμού. Οι γλώσσες προγραμματισμού χωρίζονται σε δύο βασικές κατηγορίες: σε γλώσσες χαμηλού επιπέδου, οι οποίες έχουν στενή σχέση με τις εντολές της Κεντρικής Μονάδας Επεξεργασίας σε γλώσσες υψηλού επιπέδου, που φαινομενικά μοιάζουν με τις ανθρώπινες γλώσσες (τουλάχιστον είναι πιο κατανοητές). Οι περισσότερες γλώσσες προγραμματισμού είναι αλγοριθμικές (ή διαδικαστικές), δηλαδή έχουν την δυνατότητα να εκφράσουν ένα λογικό τρόπο σκέψης που μας οδηγεί στην λύση κάποιου προβλήματος (αλγόριθμος: μια διαδικασία, μια διατεταγμένη σειρά από ενέργειες ή εντολές, που μας οδηγούν σε συγκεκριμένο αποτέλεσμα - η λύση του προβλήματος- από ένα ορισμένο αριθμό δεδομένων). Υπάρχουν όμως και γλώσσες προγραμματισμού που δεν είναι αλγοριθμικές ή δεν είναι μόνο αλγοριθμικές. Πολύ γνωστές είναι οι αντικειμενοστραφείς (object oriented) γλώσσες προγραμματισμού, όπου η αναπαράσταση της πληροφορίας, γίνεται σε οντότητες (αντικείμενα) που περιλαμβάνουν τη δομή της πληροφορίας, τις διαδικασίες που την πλαισιώνουν και τον τρόπο επικοινωνίας. Επίσης ενδιαφέρον παρουσιάζουν οι περιγραφικές γλώσσες προγραμματισμού, με τις οποίες δημιουργείται μία βάση γνώσεων (knowledge base) που αφορούν κάποιο πρόβλημα και η επίλυση του προβλήματος έχει να κάνει με την πληρότητα της Βάσης Γνώσεων. Συνήθως αυτές οι γλώσσες προγραμματισμού διαθέτουν Μηχανισμούς Εξαγωγής Συμπερασμάτων (inference engine) από την Βάση Γνώσεων. 2.2 Οι μεταγλωττιστές/διερμηνευτές (compilers) Οι compilers παίρνουν ένα πρόγραμμα γραμμένο σε κάποια γλώσσα προγραμματισμού και το μετατρέπουν σε πρόγραμμα κώδικα (γλώσσα) μηχανής, το οποίο μπορεί να εκτελεστεί από ένα Ηλεκτρονικό Υπολογιστή. Οι compilers είναι και αυτοί προγράμματα (που φυσικά διαφέρουν από σύστημα σε σύστημα) τα οποία διαθέτουν μηχανισμούς διόρθωσης των γραμματικών και συντακτικών λαθών και σύνδεσης του προγράμματος με άλλα βοηθητικά προγράμματα (linkers). Όταν λέμε για παράδειγμα ότι ένα συγκεκριμένο σύστημα Α διαθέτει την γλώσσα προγραμματισμού FORTRAN εννοούμε ότι αυτό το σύστημα διαθέτει ένα compiler της γλώσσας FORTRAN και ότι προγράμματα που είναι γραμμένα στην γλώσσα προγραμματισμού FORTRAN 11
12 μπορούν να αναλυθούν και να μετατραπούν σε εντολές κατανοητές από τον υπολογιστή (εντολές γλώσσας μηχανής) και συνεπώς να εκτελεστούν σε αυτό το σύστημα. Η διαδικασία είναι η εξής: 1. Γράφουμε ένα πρόγραμμα διατυπωμένο σε κάποια γλώσσα προγραμματισμού (πηγαίο) 2. Με την βοήθεια του compiler δημιουργούμε το εκτελέσιμο πρόγραμμα 3. Δίνουμε το εκτελέσιμο πρόγραμμα για εκτέλεση μαζί με τα δεδομένα Πρόγραμμα σε κάποια γλώσσα προγραμματισμού Compiler Εκτελέσιμο Πρόγραμμα Δεδομένα Εκτελέσιμο Πρόγραμμα Λειτουργικό Σύστημα Αποτελέσματα Εκτός των compilers υπάρχουν και οι interpreters, oι οποίοι συνήθως είναι ενσωματωμένοι σε ορισμένα περιβάλλοντα εργασίας για την σύνταξη προγραμμάτων σε κάποια γλώσσα προγραμματισμού. Η διαφορά του από τον compiler είναι ότι ταυτόχρονα με τον έλεγχο και την ανάλυση του πηγαίου προγράμματος γίνεται και η εκτέλεση αυτού δεν παράγεται αυτόνομος εκτελέσιμος κώδικας. 2.3 Χαμηλού επιπέδου γλώσσες προγραμματισμού Η γλώσσα μηχανής (machine language) Είναι ουσιαστικά οι βασικές εντολές της Κεντρικής Μονάδας Επεξεργασίας. Πρόκειται για την πρώτη γλώσσα προγραμματισμού. Φυσικά διαφορετικού τύπου υπολογιστές έχουν διαφορετικές γλώσσες μηχανής, καθώς αυτοί διαθέτουν διαφορετικούς επεξεργαστές (CPU s) και διαφορετική αρχιτεκτονική. Οι γλώσσες μηχανής είναι γενικά δύσχρηστες καθώς τα προγράμματα τους είναι δυσανάγνωστα (εκφράζονται σε δυαδική ή οκταδική ή δεκαεξαδική μορφή), με εξαιρετική δυσκολία στον εντοπισμό λαθών και μπορούν να εκτελεστούν μόνο στην συγκεκριμένη μηχανή. Σπάνια σήμερα (εκτός ίσως των κατασκευαστών υπολογιστικών συστημάτων) χρησιμοποιούνται. Η γλώσσα assembly (συμβολική) Πρόκειται για μία συμβολική αντιστοιχία της γλώσσας μηχανής. Δηλαδή χρησιμοποιούνται σύμβολα και χαρακτήρες για την αναπαράσταση κάποιας εντολής αντί της δυαδικής αναπαράστασης αυτής στη γλώσσα μηχανής. Η Γλώσσα Προγραμματισμού assembly διαφέρει από μηχανή σε μηχανή. Είναι και αυτή δύσχρηστη, αλλά βρίσκει εφαρμογές κυρίως στην κατασκευή System Software, καθώς είναι πιο εύχρηστη από την γλώσσα μηχανής και είναι σε θέση να ελέγξει εξ' ίσου καλά το hardware. O Assembler (Συμβολομεταφραστής;) Ο assembler παίρνει ένα πρόγραμμα γραμμένο σε γλώσσα assembly και το μετατρέπει σε κώδικα μηχανής. Αυτός ο κώδικας (object code) μηχανής μπορεί να δοθεί (load) στην Κύρια Μνήμη του Ηλεκτρονικού Υπολογιστή, για εκτέλεση ή μπορεί να αποθηκευτεί στην Περιφερειακή Μνήμη (π.χ. δίσκους) σαν αρχείο. Ο assembler κάποιας μηχανής παράγει κώδικα που πρόκειται να εκτελεστεί στη συγκεκριμένη μηχανή (CPU) και όχι σε άλλη. Εν τούτοις πολλές φορές είναι δυνατόν να παραχθεί κώδικας για άλλη CPU. Για παράδειγμα σε ένα συμβατό μηχάνημα (IBM-compatible) που χρησιμοποιεί 12
13 επεξεργαστή της σειράς '86 (8086, 80286, 80386, 80486) της INTEL μπορούμε να παράγουμε κώδικα για μηχανή Μ68000 της ΜΟTOROLA με την βοήθεια ενός ειδικού assembler. Ένας τέτοιος assembler ονομάζεται cross-assembler. O emulator ενός assembler προχωράει λίγο παραπέρα. Είναι ένα πρόγραμμα (τι άλλο;) που δίνει την δυνατότητα σε ένα χρήστη να εκτελέσει κώδικα ενός επεξεργαστή A σε ένα σύστημα που χρησιμοποιεί ένα άλλο επεξεργαστή Β. Δηλαδή σε ένα υπολογιστή με επεξεργαστή της INTEL μπορούμε κατά αρχάς με την βοήθεια ενός cross-assembler να παράγουμε κώδικα για την μηχανή M68000 της ΜOTOROLA και με ένα emulator να "τρέξουμε" αυτόν τον κώδικα στην ίδια μηχανή (αυτή με τον 80486). Αυτό είναι ίσως πιό αργή διαδικασία αλλά μας δίνει την δυνατότητα να ελέγξουμε το πρόγραμμα και να δούμε πως συμπεριφέρεται, πριν αυτό εκτελεστεί πραγματικά σε μία Μ68000 μηχανή. Είναι επίσης πολύ χρήσιμο όταν δεν διαθέτουμε την μηχανή με το Μ68000 επεξεργαστή Οι υπόλοιπες γλώσσες προγραμματισμού Η FORTRAN (FOrmula TRANslator) Η πρώτη γλώσσα προγραμματισμού (1957) υψηλού επιπέδου κατάλληλη για επιστημονικούς υπολογισμούς και δυνατότητες έκφρασης μαθηματικής σκέψης, αλλά με προβλήματα στην είσοδο και έξοδο των δεδομένων. Αν και παλιά υπάρχουν μεταγενέστερες εκδόσεις της και θεωρείται ακόμη και σήμερα κατάλληλη για εφαρμογές όπου απαιτούνται πολλοί υπολογισμοί. Η COBOL (COmmon Business Oriented Language) Γλαφυρή γλώσσα προγραμματισμού που παρουσιάστηκε την δεκαετία του 50, με πολλές δυνατότητες στην διαχείριση των αρχείων και γενικότερα στην αναπαράσταση της πληροφορίας στις περιφερειακές μονάδες. Με πολύ πλούσιο λεξιλόγιο και με ανανεωμένες εκδόσεις είναι η κατ' εξοχήν γλώσσα για εμπορικές εφαρμογές, αλλά όχι για υπολογισμούς και επιστημονικές εφαρμογές. Αν και δεν εφαρμόζει σύγχρονες αντιλήψεις ανάπτυξης λογισμικού, δύσκολα θα φύγει από την αγορά, διότι έχουν γίνει τεράστιες επενδύσεις σε προγράμματα COBOL. Η PASCAL Πολύ καλά δομημένη γλώσσα, με εξαιρετική τυποποίηση των μεταβλητών και αυστηρούς κανόνες, προσφέρεται για διδασκαλία μαθημάτων προγραμματισμού. Χρησιμοποιείται ιδιαίτερα στα τριτοβάθμια ιδρύματα. Δυστυχώς δεν είχε μεγάλη εξέλιξη και αν και διδάσκεται αρκετά και δεν θεωρείται "εμπορική" γλώσσα, καθώς παρουσιάζει δυσκολίες στην διαχείριση των αρχείων. Μεγάλη άνθηση γνώρισε με την είσοδο των προσωπικών υπολογιστών στην ζωή μας μια και πολύ νωρίς δημιουργήθηκαν compilers για αυτήν. Υπάρχουν και αντικειμενοστραφείς εκδόσεις (TURBO Pascal). Η ΒΑSIC (Beginner s All-purpose Symbolic Instruction Code) Όπως διακρίνεται από τον τίτλο της, απευθύνεται σε αρχάριους και γενικότερα σε άτομα που δεν έχουν εξειδικευμένες γνώσεις σε θέματα Πληροφορικής. Στην πραγματικότητα είναι μία γλώσσα προγραμματισμού χωρίς καμία δομή και περιττές λεπτομέρειες, διαλογική και ευέλικτη. Θεωρείται πολύ καλή για την διδασκαλία προγραμματισμού σε αρχάριους. Συνήθως προσφέρεται μέσω ενιαίου περιβάλλοντος ανάπτυξης προγραμμάτων που έχει ενσωματωμένο κάποιον interpreter. Και αυτή γνώρισε μεγάλη άνθηση λόγω των προσωπικών υπολογιστών και της ευκολίας εκμάθησης. Δεν προσφέρεται όμως για τίποτα παραπάνω. Οι αντικειμενοστραφείς εκδόσεις της (Visual Basic) είναι αρκετά δημοφιλείς τα τελευταία χρόνια. Η C Γλώσσα μάλλον χαμηλού επιπέδου που όμως διαθέτει τις δομές και την λειτουργικότητα γλωσσών υψηλού επιπέδου. Η C αναπτύχθηκε ειδικά για την δημιουργία του Λειτουργικού Συστήματος UNIX και τα τελευταία χρόνια γνωρίζει μεγάλη ανάπτυξη, λόγω των δυνατοτήτων που διαθέτει για τον έλεγχο του hardware. To μεγαλύτερο ποσοστό του System Software παράγεται κάνοντας χρήση της C. Αν και κάπως δύσχρηστη, προσφέροντας όμως μεγάλη ελευθερία στον προγραμματιστή και τις δυνατότητες μιάς γλώσσας χαμηλού επιπέδου, θεωρείται η πιό επαγγελματική γλώσσα προγραμματισμού σήμερα. Η C++ είναι από τις πρώτες αντικειμενοστραφείς γλώσσες προγραμματισμού, αρκετά δημοφιλής, υπερσύνολο της αρχικής γλώσσας C. 13
14 Η LISP (LISt Programming) Αρκετά παλιά Γλώσσα Προγραμματισμού (1958) με σημαντικές διαφορές από τις υπόλοιπες καθώς έχει την ικανότητα να περιγράφει διαδικασίες. Θεωρείται πρόδρομος των μεταγενέστερων Γλωσσών Προγραμματισμού 5ης γενιάς. Εκδόσεις της γλώσσας χρησιμοποιούνται κυρίως για ερευνητικούς σκοπούς στο τομέα της Τεχνητής Νοημοσύνης (Artificial Intelligence). H PROLOG Προέρχεται από την LISP. Δεν είναι αλγοριθμική γλώσσα αλλά περιγραφική, στηρίζεται στην τυπική λογική και χρησιμοποιείται και αυτή στην τεχνητή νοημοσύνη και σε εφαρμογές αυτής. Ο κατάλογος των γλωσσών προγραμματισμού δεν σταματά εδώ. Υπάρχουν πολλές ακόμα (Ada, Μοdula, Algol, PL/1, Logo, Snobol, APL, Smalltalk, οι σύγχρονες HTML και JAVA κτλ, σίγουρα πάνω από 100) κάθε μία με τα πλεονεκτήματα και τα μειονεκτήματα της, αλλά δεν είναι δυνατόν ν' αναφερθούμε σε όλες. Παρουσιάσαμε απλώς τις πιο διαδεδομένες. Άλλες γλώσσες προγραμματισμού Ενδιαφέρον παρουσιάζουν οι γλώσσες 4ης γενιάς που παρουσιάστηκαν την δεκαετία του 80, οι οποίες είναι ουσιαστικά ολοκληρωμένα περιβάλλοντα ανάπτυξης εφαρμογών με σημαντικές ευκολίες πρόσβασης σε Βάσεις Δεδομένων (Data Bases), δυνατότητες συνεργασίας με Συστήματα Διαχείρισης Βάσεων Δεδομένων (DBMS - Data Base Management Systems) και δυνατότητες τεκμηριωμένης ανάπτυξης λογισμικού και εύκολης συντήρησης αυτού. Παρά τα αρχικά τους προβλήματα (διαφορετικός τρόπος ανάπτυξης εφαρμογών, περιορισμοί στο προγραμματιστικό περιβάλλον) με την καθιέρωση των MS-Windows, σαν κύριο περιβάλλον εργασίας και την ευρεία διάδοση των τεχνικών και μεθοδολογιών ανάπτυξης εφαρμογών με client-server αρχιτεκτονική (στις αρχές του 90), σήμερα εκδόσεις γλωσσών 4ης γενιάς θεωρούνται τα βασικά εργαλεία ανάπτυξης λογισμικού εφαρμογών. Οι διάφορες γλώσσες προγραμματισμού δεν μοιάζουν μεταξύ τους καθώς έχουν διαφορετικό λεξιλόγιο και διαφορετική συντακτική ανάλυση η κάθε μία. Όμως, εκτός ίσως από τις γλώσσες 4ης και 5ης γενιάς, όλες τους συνήθως ακολουθούν ορισμένους κανόνες και οι τεχνικές προγραμματισμού βρίσκουν εφαρμόζονται χωρίς δυσκολία. Οι γλώσσες 5ης γενιάς είναι μη αλγοριθμικές και ευρίσκονται σε ερευνητικό στάδιο ακόμα με ελάχιστες εφαρμογές για την ώρα. Εδώ ο προγραμματιστής αναφέρεται περισσότερο σε γεγονότα και στις μεταξύ τους σχέσεις και σκοπός του προγράμματος είναι να βγάλει διάφορα συμπεράσματα (τεχνητή νοημοσύνη). 14
15 3.1 H μηχανική λογισμικού. 3. Ανάπτυξη λογισμικού Με τον όρο "ανάπτυξη λογισμικού" εννοούμε την θεωρία και τις πρακτικές τεχνικές και συγκεκριμένες μεθόδους που μπορούν να χρησιμοποιηθούν σε διάφορες εφαρμογές ανάπτυξης και συντήρησης έργων λογισμικού (software), είτε αυτές είναι εμπορικές εφαρμογές, είτε επιστημονικές, είτε εφαρμογές έλεγχου συστημάτων (system software). Είναι όμως η ανάπτυξη λογισμικού συνώνυμο του "κατασκευάζω προγράμματα ηλεκτρονικών υπολογιστών"; Στην πράξη οι περισσότεροι προγραμματιστές, αν και υποστηρίζουν ότι δουλεύουν βάσει κάποιας επιστημονικής μεθόδου στην ανάπτυξη των προγραμμάτων τους, ακολουθούν την πρακτική "κάνω κάτι και βλέπω τι θα γίνει στην συνέχεια". Ακολουθούν οι "κλασικοί" μηχανικοί (οι πολιτικοί ή οι ηλεκτρολόγοι) αυτήν την μέθοδο; Ασφαλώς όχι! Κανένας πολιτικός μηχανικός, για παράδειγμα, δεν αρχίζει να κτίζει ένα οίκημα, αν δεν έχει κάνει πρώτα τις απαραίτητες μελέτες που αφορούν το συγκεκριμένο έργο. Μελέτες που αφορούν το έδαφος στο οποίο θα στηριχθεί το οίκημα, την χωροταξία, τα θεμέλια, τον σκελετό, την τελική όψη του οικήματος και την διαμόρφωση του περιβάλλοντος γύρω από αυτό. Εφαρμόζει δοκιμασμένες τεχνικές και μεθόδους, χρησιμοποιεί τις απαιτούμενες γνώσεις του από την Φυσική, την Χημεία και τα Μαθηματικά και προτείνει κατά κανόνα συγκεκριμένα υλικά και τρόπους κατασκευής. Πριν ξεκινήσει η κατασκευή του οικήματος οι εργασίες που πρόκειται να γίνουν και ο τρόπος με τον οποίο θα εκτελεστούν περιγράφονται αναλυτικά σε μελέτες και σχέδια που έχουν εκπονηθεί. Ποιος προγραμματιστής εργάζεται με τον ίδιο τρόπο όταν πρόκειται να αναπτύξει ένα έργο λογισμικού; Ακολουθώντας το παράδειγμα του μηχανικού στην ανάπτυξη λογισμικού, προσπαθούμε να χρησιμοποιήσουμε γνωστές τεχνικές και μεθόδους για την ολοκλήρωση ενός Συστήματος Πληροφορικής. Δυστυχώς όμως η τυποποίηση των τεχνικών και των μεθόδων στην πληροφορική δεν είναι ακόμα στο ίδιο επίπεδο με αυτό των άλλων μηχανικών. Είναι απαραίτητο οι επιστήμονες πληροφορικής να εργάζονται με το ίδιο τρόπο που εργάζονται οι υπόλοιποι μηχανικοί, όταν πρόκειται να αναπτύξουν κάποιο έργο λογισμικού με σκοπό να κατασκευάσουν ένα σύστημα πληροφορικής; Ένα σύστημα πληροφορικής δεν είναι τώρα πια ένα απλό εργαλείο κάποιου χρήστη ή μίας επιχείρησης, όπως είναι ίσως μία ταμειακή μηχανή ή ένα κοινό φωτοτυπικό μηχάνημα. Είναι το σύστημα μέσω του οποίου αποθηκεύονται, επεξεργάζονται και διακινούνται όλες οι πληροφορίες μιας επιχείρησης ή ενός οργανισμού. Τυχόν λάθη σε αυτό το σύστημα έχουν άμεσο αντίκτυπο στην μελλοντική πορεία του οργανισμού ή της επιχείρησης. Η δημιουργία του τομέα της πληροφορικής ο οποίος ασχολείται με το αντικείμενο που περιγράψαμε προηγουμένως, ήταν επιβεβλημένη από την στιγμή που παρουσιάστηκε η ανάγκη κατασκευής μεγάλων έργων λογισμικού. Οι τεχνικές και οι μέθοδοι που χρησιμοποιούνται στην ανάπτυξη μικρών έργων λογισμικού (π.χ. παρακολούθηση πελατών ιατρείου) δεν βρίσκουν πάντα εφαρμογή σε μεγάλα έργα λογισμικού (π.χ. στην κατασκευή σχεδιαστικού πακέτου ή στην ανάπτυξη ενός λειτουργικού συστήματος). Ο αριθμός των μεγάλων έργων (projects) λογισμικού τα οποία δεν αποδίδουν τ' αναμενόμενα αποτελέσματα, που είναι αναξιόπιστα, δύσκολο να συντηρηθούν και με υψηλό κόστος κατασκευής, αυξάνει συνεχώς παρά την μεγάλη εξέλιξη της Πληροφορικής, και την παρουσία νέων εργαλείων ανάπτυξης λογισμικού. Ο τομέας της Πληροφορικής που ασχολείται με την τυποποίηση της ανάπτυξης του λογισμικού ονομάζεται Μηχανική Λογισμικού. Είναι γενικά παραδεκτό ότι η τεχνολογία ανάπτυξης λογισμικού δεν ακολουθεί τους ρυθμούς εξέλιξης του υλικού (hardware). Τo κόστος του υπολογιστικών συστημάτων και των περιφερειακών μειώνεται δραματικά, προσφέροντας πολύ ισχυρότερα συστήματα. Από την άλλη μεριά το κόστος υλοποίησης λογισμικού (software) ιδιαίτερα σε νέες εφαρμογές αυξάνει σημαντικά, χωρίς να προσφέρεται αντίστοιχη ποιότητα. Σκοπός λοιπόν της Μηχανικής Λογισμικού είναι η τυποποίηση των διαφόρων τεχνικών και μεθόδων που έχουν κατά καιρούς παρουσιαστεί στην ανάπτυξη του λογισμικού και να υποδείξει την εφαρμογή αυτών σε διάφορα έργα λογισμικού με τελικούς στόχους: (α) το χαμηλό κόστος παραγωγής λογισμικού 15
16 (β) την υψηλή ποιότητα και αποτελεσματικότητα του τελικού προϊόντος (γ) την αξιοπιστία του συστήματος (δ) την ευκολία συντήρησης του συστήματος (ε) τη δυνατότητα μεταφοράς σε άλλο υπολογιστικό σύστημα και τέλος - πολύ βασικό - (στ) το προϊόν να είναι έτοιμο μέσα στα προκαθορισμένα χρονικά όρια. Κάθε ένας από τους παραπάνω στόχους είναι παράλληλα και ένα πρόβλημα, καθώς η Μηχανική Λογισμικού δεν έχει καταφέρει μέχρι σήμερα να συστηματοποιήσει αποτελεσματικά την κατασκευή μεγάλων συστημάτων πληροφορικής και να προτείνει συγκεκριμένες μεθοδολογίες για πετύχει αυτούς τους στόχους O κύκλος ζωής λογισμικού. Όλα τα μεγάλα συστήματα λογισμικού εκτός από τον χρόνο που χρειάζεται για να σχεδιαστούν και να κατασκευαστούν, για ένα μεγάλο χρονικό διάστημα θα χρησιμοποιηθούν (αυτός εξ' άλλου είναι και ο σκοπός των). Οι περισσότεροι ειδήμονες συμφωνούν λίγο-πολύ ότι τα στάδια της ζωής ενός έργου λογισμικού είναι: Η ανάλυση και ο καθορισμός προδιαγραφών του συστήματος Ο σχεδιασμός του συστήματος Η ανάπτυξη και η κατασκευή (υλοποίηση) των προγραμμάτων Ο έλεγχος της σωστής λειτουργίας Η χρήση και η συντήρηση του συστήματος Η αρχική ιδέα του κύκλου ζωής ενός έργου λογισμικού δεν είναι καινούργια (Royce 1970) και υπάρχουν διάφορες παραλλαγές αυτής οι οποίες όμως δεν ξεφεύγουν του αρχικού σχεδιασμού. Για παράδειγμα κάποιοι προτείνουν κάθε στάδιο να χωρίζεται σε διάφορα υπο-στάδια. Καθώς η ανάπτυξη ενός έργου λογισμικού είναι μία συνεχής διαδικασία, τα αποτελέσματα κάθε φάσης χρησιμοποιούνται σαν δεδομένα (feedback) για την επόμενη φάση (στάδιο). Αυτό έχει σαν αποτέλεσμα (και είναι σύνηθες το φαινόμενο) σε κάθε στάδιο να εντοπίζονται λάθη που έχουν γίνει στα προηγούμενα στάδια. Γι' αυτό ορισμένα μοντέλα (μεθοδολογίες) ανάπτυξης λογισμικού, προβλέπουν την επιστροφή σε προηγούμενο στάδιο του κύκλου ζωής ενός λογισμικού με σκοπό την διόρθωση των λαθών (Waterfall model) και επανεξέταση προηγουμένων φάσεων. Άλλοι πάλι συνιστούν η διαδικασία ελέγχου να γίνεται σε κάθε στάδιο ανάπτυξης του λογισμικού και προτείνουν συγκεκριμένους τρόπους ή πρακτικές για επιτευχθεί αυτό. Η μέθοδος πρωτοτύπων (prototyping) για τον έγκαιρο εντοπισμό των λαθών προτείνει, σε ορισμένα στάδια τουλάχιστον, την κατασκευή ενός πρωτότυπου προϊόντος (με την βοήθεια για παράδειγμα μιας γλώσσας 4ης γενεάς - 4GL), το οποίο θα τίθεται στην διάθεση των μελλοντικών χρηστών του λογισμικού. Τα σχόλια των χρηστών, που θα προκύψουν από αυτή την δοκιμαστική λειτουργία, βοηθούν στην διάγνωση τυχόν λαθών. Γενικά η εμφάνιση λαθών, ιδιαίτερα σε στάδια όπου έχει τελειώσει η ανάπτυξη, σημαίνει αναξιοπιστία, παραπάνω κόστος και εγκυμονούν κινδύνους μη έγκαιρης παράδοσης του έργου. Με την ευρεία της έννοια η Μηχανική Λογισμικού ασχολείται με όλες τις φάσεις της ζωής ενός λογισμικού, αλλά τα στάδια που κυρίως την ενδιαφέρουν είναι αυτά του σχεδιασμού, της κατασκευής και του ελέγχου του προϊόντος. Η ανάλυση και ο καθορισμός των προδιαγραφών. Στο στάδιο αυτό καταγράφονται αναλυτικά οι προδιαγραφές του συστήματος. Υπάρχουν: οι λειτουργικές προδιαγραφές, οι οποίες δηλώνουν το τι πρέπει να επιτυγχάνει το σύστημα και οι μη λειτουργικές προδιαγραφές οι οποίες οριοθετούν τους διάφορους περιορισμούς που διέπουν το σύστημα. 16
17 Εδώ γίνεται η ανάλυση των στοιχείων που δίδονται στο σύστημα (δεδομένα), με κάθε λεπτομέρεια και περιγράφονται συνοπτικά οι ενέργειες που θα λάβουν χώρα, για να ικανοποιηθούν οι απαιτήσεις των χρηστών, καθώς και οι αλληλεπιδράσεις που θα προκύψουν μεταξύ αυτών. Επίσης περιγράφονται αναλυτικά τα αποτελέσματα που θα μας παρέχει η λειτουργία του συστήματος. Τέλος σε αυτό το στάδιο, λαμβάνονται αποφάσεις σχετικά τα μεγέθη και το είδος του hardware που πρόκειται να χρησιμοποιηθεί, καθώς και για το περιβάλλον εργασίας στο οποίο θα αναπτυχθεί το έργο (software) και ο τρόπος λειτουργίας. Όλα αυτά γίνονται με την στενή συνεργασία των μελλοντικών χρηστών του συστήματος οι οποίοι περιγράφουν τις ανάγκες και τις απαιτήσεις τους. O σχεδιασμός του συστήματος. Τα αποτελέσματα της ανάλυσης χρησιμοποιούνται για να γίνει ο σχεδιασμός του συστήματος. Καταγράφονται και περιγράφονται αναλυτικά ο τρόπος που θα γίνει η κάθε λειτουργία και οι τυχόν αλληλεπιδράσεις αυτών. Η περιγραφή αυτή πρέπει να είναι αρκετά αναλυτική και ίσως χρειαστεί να φτάσει μέχρι τον τρόπο κατασκευής ορισμένων προγραμμάτων (προδιαγραφές κώδικα). Τέλος ο τρόπος επικοινωνίας χρήστη / συστήματος επίσης καθορίζεται σε αυτό το στάδιο. Η Μηχανική λογισμικού είναι σε θέση σήμερα να προτείνει αρκετές μεθοδολογίες, οι οποίες μπορούν να εφαρμοστούν για να περιγραφεί κάποιος τυπικός σχεδιασμός (άρα ο έλεγχος του είναι δυνατός) ενός συστήματος. Η υλοποίηση. Γίνεται η κωδικοποίηση του σχεδιασμού του συστήματος σε κάποια γλώσσα προγραμματισμού και ενδεχομένως με την βοήθεια διαφόρων εργαλείων (έτοιμα προγράμματα, βιβλιοθήκες υποπρογραμμάτων, συστήματα διαχείρισης βάσεων δεδομένων, εργαλεία λειτουργικών συστημάτων κτλ). Η ανάπτυξη των αλγόριθμων και η δομή των προγραμμάτων περιγράφεται σε αυτή την φάση, πάντα έχοντας σαν οδηγό τον σχεδιασμό του συστήματος. Ο έλεγχος. Πρόκειται για χρονοβόρα αλλά απαραίτητη διαδικασία. Το προϊόν όμως πρέπει να ελεγχθεί, να γίνει επιβεβαίωση των όσων κάνει (είναι πραγματικά αυτά που χρειάζεται ο χρήστης) και αν τα κάνει σωστά (επαλήθευση). Αν δηλαδή το λογισμικό πραγματικά ικανοποιεί τις προδιαγραφές και τις απαιτήσεις του χρήστη. Παρόλα αυτά όμως, συχνό είναι το φαινόμενο, να παρουσιάζονται λάθη ακόμα και κατά την διάρκεια της επόμενης φάσης. Η χρήση και η συντήρηση. Ασφαλώς είναι η μεγαλύτερη σε διάρκεια φάση κάποιου έργου λογισμικού και η φυσική συνέπεια της κατασκευής αυτού (εκμετάλλευση). Μετά το πέρας της τελικής φάσης του ελέγχου του συστήματος, αυτό εγκαθίσταται στο κατάλληλο hardware (υπολογιστές, δίκτυα κτλ) και αρχίζει η λειτουργία και η χρήση του. Τυχόν λάθη διορθώνονται και τυχόν αλλαγές (πάντα θα υπάρχουν αλλαγές) θα γίνονται όταν το επιβάλουν οι περιστάσεις (συντήρηση). Η βελτίωση εξ' άλλου ενός συστήματος, το οποίο βρίσκεται σε λειτουργία, είναι μία συνεχής απαίτηση του πελάτη και θα αποτελεί πάντα μία πρόκληση για τον κατασκευαστή. 17
18 3.3 Ο καθορισμός απαιτήσεων/προδιαγραφών Δεν υπάρχει λόγος να ξεκινήσουμε την διαδικασία ανάπτυξης και κατασκευής ενός έργου λογισμικού, αν δε γνωρίζουμε ακριβώς ποια θα είναι η χρησιμότητα του. Δηλαδή τι ακριβώς θα κάνει, ποιο πρόβλημα (διαδικαστικό, διοικητικό, οικονομικό, πρόβλημα υπαρκτό γενικά) πρόκειται, το μελλοντικό σύστημα λογισμικού να λύσει και ποιες απαιτήσεις θα ικανοποιήσει. Το πρόβλημα αυτό μπορεί να είναι από μία απλή παρακολούθηση του λογιστηρίου μίας επιχείρησης ή ενός οργανισμού, έως την διοίκηση ενός πύργου ελέγχου κάποιου αεροδρομίου ή ακόμα τον έλεγχο και την διαχείριση ενός διαστημικού ταξιδιού, όπου η αξιοπιστία του συστήματος παίζει σημαντικό ρόλο και τυχόν λάθος μεταφράζεται σε αρκετά υψηλό κόστος. Η κατανόηση του "φυσικού" προβλήματος από τους κατασκευαστές του λογισμικού (software developers) μπορεί να είναι έργο πολύ δύσκολο. Η εξέταση και η καταγραφή των υπηρεσιών και των αποτελεσμάτων, που θα είναι σε θέση να προσφέρει το υπό κατασκευή σύστημα πληροφορικής και ο προσδιορισμός των περιορισμών κάτω από τους οποίους πρέπει να λειτουργήσει αυτό ονομάζεται ΑΝΑΛΥΣΗ ΤΩΝ ΑΠΑΙΤΗΣΕΩΝ (Requirement Analysis). Αυτή την ανάλυση θα χρησιμοποιήσουν οι κατασκευαστές του συστήματος για να καθορίσουν τις προδιαγραφές και τα χαρακτηριστικά του. Ο ΚΑΘΟΡΙΣΜΟΣ ΤΩΝ ΠΡΟΔΙΑΓΡΑΦΩΝ ενός συστήματος (System Specification) είναι, όπως έχουμε αναφέρει, η πρώτη δραστηριότητα (φάσηστάδιο) που λαμβάνει χώρα στο κύκλο ζωής ενός έργου λογισμικού. Η δραστηριότητα αυτή, του κύκλου ανάπτυξης ενός έργου λογισμικού, είναι πολύ σημαντική και επηρεάζει απόλυτα την περαιτέρω κατασκευή και την τελική συμπεριφορά του λογισμικού. Ένας από τους πιο συνηθισμένους λόγους αποτυχίας ενός έργου λογισμικού είναι αυτός της λανθασμένης ανάλυσης των απαιτήσεων και κατά συνέπεια του κακού προσδιορισμού των υπηρεσιών που θα προσφέρει (προδιαγραφές του συστήματος). Ο Βoar (το 1984) για παράδειγμα παρατηρεί ότι, το 50-80% των λαθών στην κατασκευή ενός συστήματος λογισμικού, οφείλονται στον "φτωχό" προσδιορισμό των αναγκών του χρήστη (πελάτη). Ο James Martin (1982) σημειώνει ότι το 80% των σφαλμάτων που παρουσιάζονται μετά την κατασκευή ενός συστήματος λογισμικού έχουν αφετηρία από αυτήν την πρώτη φάση της ανάπτυξης του λογισμικού. Το μήνυμα είναι σαφές: «αν γίνουν λάθη στο στάδιο του καθορισμού των απαιτήσεων και προδιαγραφών, τότε τα λάθη αυτά ακολουθούν το λογισμικό σε όλη την διάρκεια του κύκλου της ζωής του. Και στον σχεδιασμό και στην κατασκευή και στη συντήρηση του (κυρίως στην τελευταία)». 18
19 Και το κυριότερο: τα λάθη αυτά κοστίζουν ακριβά! Αντιμετώπιση. Ο προσδιορισμός των απαιτήσεων και των προδιαγραφών δεν είναι καθόλου εύκολη υπόθεση. Συνήθως συνέρχονται μικτές ομάδες εργασίας που αποτελούνται από χρήστες (οι οποίοι ξέρουν καλά τις διαδικασίες) και από κατασκευαστές λογισμικού (οι οποίοι φυσικά έχουν σπουδάσει πληροφορική ή έχουν καλή γνώση από συστήματα πληροφορικής). Αυτές οι ομάδες εργασίας αναλαμβάνουν να φέρουν εις πέρας την ανάλυση των απαιτήσεων και τον καθορισμό των προδιαγραφών του συστήματος. Πολύ γρήγορα βέβαια γίνεται αντιληπτό ότι αυτοί (δηλ. οι κατασκευαστές και οι χρήστες) "μιλούν" μεταξύ τους διαφορετικές γλώσσες (gap analysis). Είναι πολύ δύσκολο για ένα επιστήμονα πληροφορικής να προσεγγίσει το "φυσικό" πρόβλημα με τον ίδιο τρόπο που το αντιλαμβάνονται οι χρήστες. Από την άλλη μεριά οι χρήστες δεν είναι σε θέση φυσικά να προετοιμάσουν τις προδιαγραφές για ένα μελλοντικό σχεδιασμό του συστήματος το οποίο θα οδηγήσει στην τελική κατασκευή του λογισμικού, χωρίς να έχουν τις απαιτούμενες γνώσεις. Μια άλλη πολύ μεγάλη δυσκολία που παρουσιάζεται συνήθως είναι αυτή της έλλειψης εμπιστοσύνης και της δυσπιστίας, που δείχνουν οι μεν στους δε. Εκφράσεις όπως, "δεν ξέρουν τι πραγματικά θέλουν", "είναι άσχετοι", "αυτοί", "εμείς", "αδύνατον να καταλάβουν" κτλ, είναι πολύ συνηθισμένες. Οι ιδανικές συνθήκες για να γίνει ένας σωστός καθορισμός των απαιτήσεων και των προδιαγραφών, είναι ίσως δυνατόν να επιτευχθούν στις εξής δύο περιπτώσεις: 1. Ο (ή οι) κατασκευαστής(ές) του λογισμικού να εργαστεί(ούν) κάτω από πραγματικές συνθήκες και να διαπιστώσει(ουν) ο(οι) ίδιος(οι) τις ανάγκες που παρουσιάζονται, τις απαιτήσεις που πρέπει να ικανοποιηθούν και να καταγράψει(ουν) τις διαδικασίες οι οποίες λαμβάνουν χώρα. Αυτό όμως κοστίζει ακριβά, μια και χρειάζεται αρκετό χρονικό διάστημα και απαιτούνται πολλές φορές και ειδικές γνώσεις (δηλαδή ο κατασκευαστής θα πρέπει ανάλογα με το πρόβλημα να γίνεται λογιστής, διευθυντής, οικονομολόγος, τεχνικός κτλ) και φυσικά σπάνια (για να ακριβολογούμε μάλλον ποτέ) δεν εφαρμόζεται. 2. Κάποιος(οι) από τους χρήστες να έχει(ουν) σπουδάσει την επιστήμη της πληροφορικής ή να έχει(ουν) αποκτήσει, με κάποιο τρόπο τις απαιτούμενες γνώσεις. Ούτε αυτό όμως είναι πάντα εφικτό. Είναι και αυτό πολύ σπάνιο φαινόμενο, που μπορεί να παρουσιαστεί κυρίως στα μικρά έργα κατασκευής λογισμικού. Έχουν αναπτυχθεί (είναι δραστηριότητα της Μηχανικής Λογισμικού αυτή) και προτείνονται διάφορες τεχνικές και στρατηγικές, οι οποίες έχουν σκοπό να βοηθήσουν σε αυτή την επικοινωνία των χρηστών και των αναλυτών του συστήματος. Για παράδειγμα μία έξυπνη ιδέα, για να αποφευχθούν παρεξηγήσεις και να τεθούν οι βάσεις για ένα σωστό καθορισμό των απαιτήσεων και των προδιαγραφών του λογισμικού, είναι η κατασκευή και η χρήση ενός "πρότυπου συστήματος". Με αυτό τον τρόπο είναι δυνατόν να γίνει πολύ εύκολα η ΕΠΙΚΥΡΩΣΗ των προδιαγραφών (είναι πραγματικά σωστές αυτές οι προδιαγραφές και οι απαιτήσεις του συστήματος;) το οποίο είναι ένα από τα μεγάλα προβλήματα που πρέπει να λύσει η Μηχανική Λογισμικού. Και γραπτή τεκμηρίωση. Έχοντας άμεση σχέση με το πρόβλημα ο καθορισμός των προδιαγραφών μπορεί να εκφραστεί, είτε σαν ελεύθερο κείμενο γραμμένο σε απλή γλώσσα, είτε σαν τυπικές μαθηματικές εκφράσεις. Και στις δύο περιπτώσεις απαιτείται γραπτό κείμενο (document) το οποίο θα συνοδεύεται από επεξηγηματικά (και για τις δύο πλευρές) παραρτήματα και σχεδιαγράμματα. Αυτό το έγγραφο (document) μπορεί να είναι από μερικές δεκάδες έως μερικές εκατοντάδες σελίδες (υπάρχουν και κείμενα που είναι μερικές χιλιάδες σελίδες!). Σε αυτό περιγράφονται αναλυτικά, αλλά και περιληπτικά (για τους χρήστες, για παράδειγμα που δεν είναι σε θέση να καταλάβουν τεχνικούς όρους) οι προδιαγραφές του συστήματος και οι απαιτήσεις που περιμένουμε να ικανοποιήσει αυτό. Επίσης πρέπει να είναι η βάση από την οποία θα ξεκινήσει ο σχεδιασμός (και μερικές φορές τον υποδεικνύει) και η κατασκευή του λογισμικού, να περιέχει αναλυτικές πληροφορίες για το σύστημα, οι οποίες θα είναι κατανοητές από τον χρήστη και στοιχεία, τα οποία θα χρειάζονται για την μελλοντική συντήρηση και επέκταση του έργου. Τέλος θα πρέπει να είναι το βασικό έγγραφο για την δημιουργία συμβολαίου υλοποίησης μεταξύ της 19
20 κατασκευάστριας εταιρίας και της επιχείρησης (οργανισμού) που θα αγοράσει και θα χρησιμοποιήσει το προϊόν. Γενικά για να γίνει η ανάλυση των απαιτήσεων, χρειάζεται λεπτομερής καταγραφή των δεδομένων (inputs) και των αποτελεσμάτων (outputs), αυστηρή παρακολούθηση της ροής των πληροφοριών, εντοπισμός των σημείων όπου μετασχηματίζονται οι πληροφορίες και ποιες ενέργειες λαμβάνουν χώρα σε κάθε μετασχηματισμό. Με την ανάλυση των απαιτήσεων είμαστε σε θέση να καθορίσουμε τι ακριβώς θα κάνει το λογισμικό (software) και τι υπηρεσίες θα προσφέρει, δίνοντας λεπτομέρειες που αφορούν την διακίνηση των πληροφοριών, τα αποτελέσματα που θα έχουμε, την περιγραφή των λειτουργιών και των ενεργειών, που θα λαμβάνουν χώρα και τον τρόπο επικοινωνίας χρήστη-συστήματος. Έτσι μπορούμε να προετοιμάζουμε και ίσως να προτείνουμε τον σχεδιασμό του συστήματος και να κάνουμε χρήσιμες παρατηρήσεις σχετικά με την κατασκευή αυτού. Σημειώστε ότι σε αυτή την φάση δεν ασχολούμεθα καθόλου με το «πώς» θα γίνει η ανάπτυξη και η κατασκευή του συστήματος. Απλά καταγράφεται το «τι» ακριβώς θα κάνει αυτό (ΚΑΘΟΡΙΣΜΟΣ ΠΡΟΔΙΑΓΡΑΦΩΝ). Ο σχεδιασμός και η κατασκευή του λογισμικού γίνεται σε άλλες φάσεις αργότερα (δείτε τον κύκλο ζωής λογισμικού). Η ανάλυση των απαιτήσεων πρέπει να δίνει απάντηση σε μια σειρά από ερωτήματα: Ποιες είναι οι ανάγκες του χρήστη που ζητά το σύστημα; τι περιμένει ο χρήστης από το σύστημα; ποια είναι τα διαδικαστικά και λειτουργικά προβλήματα; έχουν γίνει αντιληπτές οι επιδράσεις του συστήματος στη επιχείρηση ή τον οργανισμό που θα το εγκαταστήσει; πώς θα γίνει η χρήση του συστήματος; πώς θα γίνει η μεταβίβαση από το χειρωνακτικό (ή το παλιό μηχανογραφικό) σύστημα στο νέο; υπάρχουν άτομα να βοηθήσουν στην εφαρμογή του συστήματος; ποια θα είναι τα τεχνικά χαρακτηριστικά του λογισμικού; σε ποια υποδομή (υλικό, λειτουργικά συστήματα, δίκτυα) θα στηριχθεί το υπό ανάπτυξη σύστημα; ποιο θα είναι το περιβάλλον ανάπτυξης (το προγραμματιστικό περιβάλλον, οι γλώσσες προγραμματισμού, τα εργαλεία που θα χρησιμοποιηθούν); σε ποιο ηλεκτρονικό περιβάλλον εργασίας θα εργάζεται ο χρήστης; με τι είδους πληροφορίες έχουμε να κάνουμε; τι περιορισμοί υπάρχουν; ποια θα πρέπει να είναι η απόδοση του συστήματος; τι κριτήρια πρέπει να μπουν ώστε να γίνει η αξιολόγηση της απόδοσης (η γρήγορη ανταπόκριση είναι αρκετή;) ποια θα είναι η επεκτασιμότητα του συστήματος κλπ κλπ... φυσικά ο κατάλογος των ερωτημάτων δεν εξαντλείται εδώ. Το αποτέλεσμα τις ανάλυσης των προδιαγραφών θα είναι όπως προαναφέραμε ένα γραπτό κείμενο με ακριβείς πληροφορίες για το σύστημα το οποίο θα είναι σημείο αναφοράς για τους κατασκευαστές αλλά και για τους χρήστες. Θα επαναλάβουμε εδώ ότι αυτό το κείμενο θα περιέχει μία απλή καταγραφή των λειτουργιών, χωρίς ν' αναφέρει πώς θα γίνουν αυτές και θα ακολουθεί το λογισμικό καθ' όλη την διάρκεια της ζωής του. Ο Heniger (1980) ισχυρίζεται ότι ένα κείμενο όπου γίνεται ο προσδιορισμός των χαρακτηριστικών ενός συστήματος θα πρέπει: 20
Προγραμματισμός Υπολογιστών
Προγραμματισμός Υπολογιστών Αναπαράσταση Πληροφορίας Κ. Βασιλάκης, ΣΤΕΦ, ΤΕΙ Κρήτης Δεδομένα και πληροφορία Δεδομένα είναι ένα σύνολο διακριτών στοιχείων σχετικά με ένα συμβάν ή μια διαδικασία χωρίς κάποια
Δεδομένα & Αναπαράσταση Πληροφορίας
Προγραμματισμός Η/Υ Ι Δεδομένα & Αναπαράσταση Πληροφορίας ΕΛΕΥΘΕΡΙΟΣ ΚΟΣΜΑΣ ΕΑΡΙΝΟ ΕΞΑΜΗΝΟ 2018-2019 ΤΜΗΜΑ ΗΛΕΚΤΡΟΛΟΓΩΝ ΜΗΧΑΝΙΚΩΝ Τ.Ε. 1 Περίληψη Σήμερα... θα μιλήσουμε για δεδομένα, ψηφιακά δεδομένα και
Εισαγωγή στην Πληροφορική & τον Προγραμματισμό
ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ Ανώτατο Εκπαιδευτικό Ίδρυμα Πειραιά Τεχνολογικού Τομέα Εισαγωγή στην Πληροφορική & τον Προγραμματισμό Ενότητα 3 η : Κωδικοποίηση & Παράσταση Δεδομένων Ι. Ψαρομήλιγκος Χ. Κυτάγιας Τμήμα
Ανάπτυξη Εφαρμογών σε Προγραμματιστικό Περιβάλλον κεφ.6 Εισαγωγή στον Προγραμματισμό
Ανάπτυξη Εφαρμογών σε Προγραμματιστικό Περιβάλλον κεφ.6 Εισαγωγή στον Προγραμματισμό Μάριος Αραποστάθης Καθηγητής πληροφορικής Βαρβάκειου Λύκειου http://users.sch.gr/mariosarapostathis 6.1 Η έννοια του
Προγραμματισμός Υπολογιστών
Προγραμματισμός Υπολογιστών Βασικές γνώσεις Κ. Βασιλάκης, ΣΤΕΦ, ΤΕΙ Κρήτης Η Πληροφορική και τα εργαλεία της Παροχή έγκαιρης και έγκυρης πληροφόρησης. Καταχώριση στοιχείων Αποθήκευση Επεξεργασία ψηφιακών
Πληροφορική. Ενότητα 4 η : Κωδικοποίηση & Παράσταση Δεδομένων. Ι. Ψαρομήλιγκος Τμήμα Λογιστικής & Χρηματοοικονομικής
ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ Ανώτατο Εκπαιδευτικό Ίδρυμα Πειραιά Τεχνολογικού Τομέα Πληροφορική Ενότητα 4 η : Κωδικοποίηση & Παράσταση Δεδομένων Ι. Ψαρομήλιγκος Τμήμα Λογιστικής & Χρηματοοικονομικής Άδειες Χρήσης
Κεφάλαιο 2.3: Προγραμματισμός. Επιστήμη ΗΥ Κεφ. 2.3 Καραμαούνας Πολύκαρπος
Κεφάλαιο 2.3: Προγραμματισμός 1 2.3.1 Αναφορά σε γλώσσες προγραμματισμού και «Προγραμματιστικά Υποδείγματα» 2.3.1.1 Πρόγραμμα και Γλώσσες Προγραμματισμού Πρόγραμμα: σύνολο εντολών που χρειάζεται να δοθούν
Εισαγωγή στις Αρχές της Επιστήμης των ΗΥ
Εισαγωγή στις Αρχές της Επιστήμης των ΗΥ 2.3.1.1. Παπαγιάννη Νάσια Ηλεκτρολόγος Μηχανικός και Μηχανικός Υπολογιστών ΕΜΠ 1 περιλαμβάνει: Η έννοια του προγράμματος Επίλυση προβλήματος 1. Ακριβή προσδιορισμό
Μάθημα 2: Παράσταση της Πληροφορίας
Μάθημα 2: Παράσταση της Πληροφορίας 2.1 Παράσταση δεδομένων Κάθε υπολογιστική μηχανή αποτελείται από ηλεκτρονικά κυκλώματα που η λειτουργία τους βασίζεται στην αρχή ανοιχτό-κλειστό. Η συμπεριφορά τους
Κ15 Ψηφιακή Λογική Σχεδίαση 2: Δυαδικό Σύστημα / Αναπαραστάσεις
Κ15 Ψηφιακή Λογική Σχεδίαση 2: Δυαδικό Σύστημα / Αναπαραστάσεις Γιάννης Λιαπέρδος TEI Πελοποννήσου Σχολή Τεχνολογικών Εφαρμογών Τμήμα Μηχανικών Πληροφορικής ΤΕ Δυαδικό Σύστημα Αρίθμησης Περιεχόμενα 1 Δυαδικό
Αναπαράσταση Δεδομένων. ΜΥΥ-106 Εισαγωγή στους Η/Υ και στην Πληροφορική
Αναπαράσταση Δεδομένων ΜΥΥ-106 Εισαγωγή στους Η/Υ και στην Πληροφορική Αναπαράσταση δεδομένων Κατάλληλη συμβολική αναπαράσταση δεδομένων, για απλοποίηση βασικών πράξεων, όπως πρόσθεση Πόσο εύκολο είναι
Αριθμητικά Συστήματα Η ανάγκη του ανθρώπου για μετρήσεις οδήγησε αρχικά στην επινόηση των αριθμών Κατόπιν, στην επινόηση συμβόλων για τη παράσταση
Αριθμητικά Συστήματα Η ανάγκη του ανθρώπου για μετρήσεις οδήγησε αρχικά στην επινόηση των αριθμών Κατόπιν, στην επινόηση συμβόλων για τη παράσταση τους Κατόπιν, στην επινόηση συμβόλων για τη παράσταση
10-δικό δικό
Προγραμματισμός Η/Υ - Ι Εαρινό Εξάμηνο 2018-2019 Τμήμα Ηλεκτρολόγων Μηχανικών Τ.Ε. Αριθμητικά Συστήματα 1. Εισαγωγή Όπως γνωρίζουμε, οι υπολογιστές χρησιμοποιούν το δυαδικό σύστημα για την αναπαράσταση
ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ ΜΑΡΙΑ Σ. ΖΙΩΓΑ ΚΑΘΗΓΗΤΡΙΑ ΠΛΗΡΟΦΟΡΙΚΗΣ ΕΙΣΑΓΩΓΗ ΣΤΟΝ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟ
ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ ΕΠΙΜΕΛΕΙΑ: ΜΑΡΙΑ Σ. ΖΙΩΓΑ ΚΑΘΗΓΗΤΡΙΑ ΠΛΗΡΟΦΟΡΙΚΗΣ ΘΕΩΡΙΑ 6 ΟΥ ΚΕΦΑΛΑΙΟΥ ΕΙΣΑΓΩΓΗ ΣΤΟΝ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟ 6.1 Τι ονοµάζουµε πρόγραµµα υπολογιστή; Ένα πρόγραµµα
Τετάρτη 5-12/11/2014. ΣΗΜΕΙΩΣΕΙΣ 3 ου και 4 ου ΜΑΘΗΜΑΤΟΣ ΕΙΔΙΚΟΤΗΤΑ: ΤΕΧΝΙΚΟΣ ΕΦΑΡΜΟΓΩΝ ΠΛΗΡΟΦΟΡΙΚΗΣ ΜΑΘΗΜΑ: ΑΡΧΙΤΕΚΤΟΝΙΚΗ Η/Υ Α ΕΞΑΜΗΝΟ
Τετάρτη 5-12/11/2014 ΣΗΜΕΙΩΣΕΙΣ 3 ου και 4 ου ΜΑΘΗΜΑΤΟΣ ΕΙΔΙΚΟΤΗΤΑ: ΤΕΧΝΙΚΟΣ ΕΦΑΡΜΟΓΩΝ ΠΛΗΡΟΦΟΡΙΚΗΣ ΜΑΘΗΜΑ: ΑΡΧΙΤΕΚΤΟΝΙΚΗ Η/Υ Α ΕΞΑΜΗΝΟ ΕΚΠΑΙΔΕΥΤΗΣ: ΤΡΟΧΙΔΗΣ ΠΑΝΑΓΙΩΤΗΣ 1. Παράσταση και οργάνωση δεδομένων
Τμήμα Μηχανολόγων Μηχανικών Πανεπιστήμιο Θεσσαλίας ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ Η/Υ. Βασικές Έννοιες Προγραμματισμού. Ιωάννης Λυχναρόπουλος Μαθηματικός, MSc, PhD
Τμήμα Μηχανολόγων Μηχανικών Πανεπιστήμιο Θεσσαλίας ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ Η/Υ Βασικές Έννοιες Προγραμματισμού Ιωάννης Λυχναρόπουλος Μαθηματικός, MSc, PhD Αριθμητικά συστήματα Υπάρχουν 10 τύποι ανθρώπων: Αυτοί
Προγραμματισμός Η/Υ. Προτεινόμενα θέματα εξετάσεων Εργαστήριο. Μέρος 1 ό. ΤΕΙ Λάρισας- Σχολή Τεχνολογικών Εφαρμογών Τμήμα Πολιτικών Έργων Υποδομής
Προγραμματισμός Η/Υ Προτεινόμενα θέματα εξετάσεων Εργαστήριο Μέρος 1 ό ΤΕΙ Λάρισας- Σχολή Τεχνολογικών Εφαρμογών Τμήμα Πολιτικών Έργων Υποδομής Ιανουάριος 2011 Καλογιάννης Γρηγόριος Επιστημονικός/ Εργαστηριακός
Δυαδικό Σύστημα Αρίθμησης
Δυαδικό Σύστημα Αρίθμησης Το δυαδικό σύστημα αρίθμησης χρησιμοποιεί δύο ψηφία. Το 0 και το 1. Τα ψηφία ενός αριθμού στο δυαδικό σύστημα αρίθμησης αντιστοιχίζονται σε δυνάμεις του 2. Μονάδες, δυάδες, τετράδες,
ΗΜΥ 100 Εισαγωγή στην Τεχνολογία
ΗΜΥ 100 Εισαγωγή στην Τεχνολογία Στέλιος Τιμοθέου ΤΜΗΜΑ ΗΛΕΚΤΡΟΛΟΓΩΝ ΜΗΧΑΝΙΚΩΝ ΚΑΙ ΜΗΧΑΝΙΚΩΝ ΥΠΟΛΟΓΙΣΤΩΝ ΠΟΛΥΤΕΧΝΙΚΗ ΣΧΟΛΗ ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΥΠΡΟΥ ΤΑ ΘΕΜΑΤΑ ΜΑΣ ΣΗΜΕΡΑ Συστήματα αρίθμησης Δυαδικό αριθμητικό
Εισαγωγή στον προγραμματισμό
Ενότητες: Εισαγωγή στον προγραμματισμό Η έννοια του προγράμματος Ιστορική αναδρομή Φυσικές και τεχνητές γλώσσες Τεχνικές σχεδίασης προγραμμάτων Ιεραρχική Σχεδίαση Τμηματικός Προγραμματισμός Δομημένος προγραμματισμός
ΥΠΟΛΟΓΙΣΤΕΣ Ι. Τα επιμέρους τμήματα Η ΟΜΗ TOY ΥΠΟΛΟΓΙΣΤΗ. Αναπαράσταση μεγεθών. Αναλογική αναπαράσταση ΚΕΝΤΡΙΚΗ ΜΝΗΜΗ ΜΟΝΑ Α ΕΛΕΓΧΟΥ
ΥΠΟΛΟΓΙΣΤΕΣ Ι Η ΟΜΗ TOY ΥΠΟΛΟΓΙΣΤΗ Τα επιμέρους τμήματα ΕΙΣΟ ΟΣ ΚΕΝΤΡΙΚΗ ΜΝΗΜΗ ΕΛΕΓΧΟΥ ΑΡΙΘΜΗΤΙΚΗ ΛΟΓΙΚΗ ΕΞΟ ΟΣ ΚΕΝΤΡΙΚΗ ΕΠΕΞΕΡΓΑΣΙΑΣ 1 2 Αναπαράσταση μεγεθών ΜΕΤΡΟΥΜΕΝΟ ΜΕΓΕΘΟΣ ΑΝΑΛΟΓΙΚΗ ΑΝΑΠΑΡΑΣΤΑΣΗ
Ε Ι Α Γ Ω Γ Η Σ Ο Ν Π Ρ Ο Γ Ρ Α Μ Μ Α Σ Ι Μ Ο Κ Ε Υ Α Λ Α Ι Ο 6. Σο πρόγραμμα γράφεται σε κάποια γλώσσα προγραμματισμού.
Κεφάλαιο 6 6.1 Η έννοια του προγράμματος Η επίλυση ενός προβλήματος με τον υπολογιστή περιλαμβάνει τρία σημαντικά στάδια : Σον ακριβή προσδιορισμό του προβλήματος Σην ανάπτυξη του αντίστοιχου αλγορίθμου
ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΠΛΗΡΟΦΟΡΙΚΗ
ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΠΛΗΡΟΦΟΡΙΚΗ Κ. Δεμέστιχας Εργαστήριο Πληροφορικής Γεωπονικό Πανεπιστήμιο Αθηνών Επικοινωνία μέσω e-mail: cdemest@aua.gr, cdemest@cn.ntua.gr 1 2. ΑΡΙΘΜΗΤΙΚΗ ΥΠΟΛΟΓΙΣΤΩΝ ΜΕΡΟΣ Α 2 Τεχνολογία
6. 1 Η έννοια του προγράμματος
6. 1 Η έννοια του προγράμματος Η επίλυση ενός προβλήματος με τον υπολογιστή περιλαμβάνει, τρία στάδια. 1.Τον ακριβή προσδιορισμό του προβλήματος. 2.Την ανάπτυξη του αντίστοιχου αλγορίθμου. 3.Τη διατύπωση
ΕΙΣΑΓΩΓΗ ΣΤΟΥΣ ΑΛΓΟΡΙΘΜΟΥΣ ΚΑΙ ΣΤΟΝ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟ
ΕΙΣΑΓΩΓΗ ΣΤΟΥΣ ΑΛΓΟΡΙΘΜΟΥΣ ΚΑΙ ΣΤΟΝ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΑΙΓΑΙΟΥ ΤΜΗΜΑ ΠΟΛΙΤΙΣΜΙΚΗΣ ΤΕΧΝΟΛΟΓΙΑΣ ΚΑΙ ΕΠΙΚΟΙΝΩΝΙΑΣ Διδάσκουσα Δρ Β Καβακλή Χειμερινό Εξάμηνο 2001 Στόχοι του Μαθήματος! Ανάπτυξη αναλυτικής
Υπολογιστές Ι. Άδειες Χρήσης. Εισαγωγή. Διδάσκοντες: Αν. Καθ. Δ. Παπαγεωργίου, Αν. Καθ. Ε. Λοιδωρίκης
ΠΑΝΕΠΙΣΤΗΜΙΟ ΙΩΑΝΝΙΝΩΝ ΑΝΟΙΚΤΑ ΑΚΑΔΗΜΑΪΚΑ ΜΑΘΗΜΑΤΑ Άδειες Χρήσης Υπολογιστές Ι Εισαγωγή Διδάσκοντες: Αν. Καθ. Δ. Παπαγεωργίου, Αν. Καθ. Ε. Λοιδωρίκης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης
ΕΙΔΗ,ΤΕΧΝΙΚΕΣ ΚΑΙ ΠΕΡΙΒΑΛΛΟΝΤΑ ΠΡΟΓΡΑΜΜΑΤΙ- ΣΜΟΥ
Κεφάλαιο 7 ΕΙΔΗ,ΤΕΧΝΙΚΕΣ ΚΑΙ ΠΕΡΙΒΑΛΛΟΝΤΑ ΠΡΟΓΡΑΜΜΑΤΙ- ΣΜΟΥ Ερωτήσεις 1. Να αναφέρετε διαφορές μεταξύ γλωσσών μηχανής και γλωσσών χαμηλού επιπέδου. Οι γλώσσες μηχανής κωδικοποιούν τις εντολές τους με ομάδες
ΠΛΗΡΟΦΟΡΙΚΗ Ι JAVA Τμήμα θεωρίας με Α.Μ. σε 8 & 9 11/10/07
ΠΛΗΡΟΦΟΡΙΚΗ Ι JAVA Τμήμα θεωρίας με Α.Μ. σε 8 & 9 11/10/07 Τμήμα θεωρίας: Α.Μ. 8, 9 Κάθε Πέμπτη, 11πμ-2μμ, ΑΜΦ23. Διδάσκων: Ντίνος Φερεντίνος Γραφείο 118 email: kpf3@cornell.edu Μάθημα: Θεωρία + προαιρετικό
Αριθμητικά Συστήματα
Αριθμητικά Συστήματα Οργάνωση Δεδομένων (1/2) Bits: Η μικρότερη αριθμητική μονάδα ενός υπολογιστικού συστήματος, η οποία δείχνει δύο καταστάσεις, 0 ή 1 (αληθές η ψευδές). Nibbles: Μονάδα 4 bit που παριστά
Εισαγωγή στον Προγραμματισμό
Εισαγωγή στον Προγραμματισμό 6.1 Η έννοια του προγράμματος Η επίλυση ενός προβλήματος με τον υπολογιστή περιλαμβάνει, τρία σημαντικά στάδια: 1. Τον ακριβή προσδιορισμό του προβλήματος. 2. Την ανάπτυξη
Επιµέλεια Θοδωρής Πιερράτος
Εισαγωγή στον προγραµµατισµό Η έννοια του προγράµµατος Ο προγραµµατισµός ασχολείται µε τη δηµιουργία του προγράµµατος, δηλαδή του συνόλου εντολών που πρέπει να δοθούν στον υπολογιστή ώστε να υλοποιηθεί
Συστήματα αρίθμησης. = α n-1 *b n-1 + a n-2 *b n-2 + +a 1 b 1 + a 0 όπου τα 0 a i b-1
Συστήματα αρίθμησης Δεκαδικό σύστημα αρίθμησης 1402 = 1000 + 400 +2 =1*10 3 + 4*10 2 + 0*10 1 + 2*10 0 Γενικά σε ένα σύστημα αρίθμησης με βάση το b N, ένας ακέραιος αριθμός με n ψηφία παριστάνεται ως:
Εισαγωγή στην επιστήμη των υπολογιστών
Εισαγωγή στην επιστήμη των υπολογιστών Υπολογιστές και Δεδομένα Κεφάλαιο 3ο Αναπαράσταση Αριθμών www.di.uoa.gr/~organosi 1 Δεκαδικό και Δυαδικό Δεκαδικό σύστημα 2 3 Δεκαδικό και Δυαδικό Δυαδικό Σύστημα
Αλγόριθμος. Αλγόριθμο ονομάζουμε τη σαφή και ακριβή περιγραφή μιας σειράς ξεχωριστών οδηγιών βημάτων με σκοπό την επίλυση ενός προβλήματος.
Αλγόριθμος Αλγόριθμο ονομάζουμε τη σαφή και ακριβή περιγραφή μιας σειράς ξεχωριστών οδηγιών βημάτων με σκοπό την επίλυση ενός προβλήματος. Εντολές ή οδηγίες ονομάζονται τα βήματα που αποτελούν έναν αλγόριθμο.
ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ Ανώτατο Εκπαιδευτικό Ίδρυμα Πειραιά Τεχνολογικού Τομέα. Αρχιτεκτονική-Ι. Ενότητα 1: Εισαγωγή στην Αρχιτεκτονική -Ι
ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ Ανώτατο Εκπαιδευτικό Ίδρυμα Πειραιά Τεχνολογικού Τομέα Αρχιτεκτονική-Ι Ενότητα 1: Εισαγωγή στην Αρχιτεκτονική -Ι Ιωάννης Έλληνας Τμήμα Η/ΥΣ Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό
ΠΛΗΡΟΦΟΡΙΚΗ I. 4 η ΔΙΑΛΕΞΗ Αριθμητικά Συστήματα
ΣΧΟΛΗ ΔΙΟΙΚΗΣΗΣ ΚΑΙ ΟΙΚΟΝΟΜΙΑΣ - ΤΜΗΜΑ ΔΙΟΙΚΗΣΗΣ ΕΠΙΧΕΙΡΗΣΕΩΝ ΕΙΣΑΓΩΓΙΚΗ ΚΑΤΕΥΘΥΝΣΗ ΤΟΥΡΙΣΤΙΚΩΝ ΕΠΙΧΕΙΡΗΣΕΩΝ ΚΑΙ ΕΠΙΧΕΙΡΗΣΕΩΝ ΦΙΛΟΞΕΝΙΑΣ ΠΛΗΡΟΦΟΡΙΚΗ I 4 η ΔΙΑΛΕΞΗ Αριθμητικά Συστήματα ΧΑΣΑΝΗΣ ΒΑΣΙΛΕΙΟΣ
Κεφ. 2 Θέματα Θεωρητικής Επιστήμης Υπολογιστών. Κοντογιάννης Βασίλειος ΠΕ19
Κεφ. 2 Θέματα Θεωρητικής Επιστήμης Υπολογιστών Κεφ. 2 Θεωρητική Επιστήμη Υπολογιστών 2.3.1.1 Έννοια προγράμματος Τι είναι πρόγραμμα και τι προγραμματισμός; Πρόγραμμα είναι το σύνολο εντολών που χρειάζεται
Εισαγωγή στην επιστήμη των υπολογιστών. Υπολογιστές και Δεδομένα Κεφάλαιο 2ο Αναπαράσταση Δεδομένων
Εισαγωγή στην επιστήμη των υπολογιστών Υπολογιστές και Δεδομένα Κεφάλαιο 2ο Αναπαράσταση Δεδομένων 1 2.1 Τύποι Δεδομένων Τα δεδομένα σήμερα συναντώνται σε διάφορες μορφές, στις οποίες περιλαμβάνονται αριθμοί,
ΚΕΦΑΛΑΙΟ 6 ΕΙΣΑΓΩΓΗ ΣΤΟΝ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟ. Η επίλυση ενός προβλήματος με τον υπολογιστή περιλαμβάνει τρία εξίσου σημαντικά στάδια.
ΚΕΦΑΛΑΙΟ 6 ΕΙΣΑΓΩΓΗ ΣΤΟΝ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟ Η επίλυση ενός προβλήματος με τον υπολογιστή περιλαμβάνει τρία εξίσου σημαντικά στάδια. Τον ακριβή προσδιορισμό του προβλήματος. Την ανάπτυξη του αντίστοιχου αλγορίθμου.
ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ. Στέφανος Ουγιάρογλου
ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ Κεφάλαιο 6 «Εισαγωγή στον Προγραμματισμό» Στέφανος Ουγιάρογλου Διαφάνειες από υλικό του Χ. Μουρατίδη Προγραμματισμός Η/Υ Ο προγραμματισμός είναι η διατύπωση
ΚΕΦΑΛΑΙΟ 6 - ΕΙΣΑΓΩΓΗ ΣΤΟΝ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟ
ΚΕΦΑΛΑΙΟ 6 - ΕΙΣΑΓΩΓΗ ΣΤΟΝ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟ Προγραµµατισµός Η/Υ Ο προγραµµατισµός είναι η διατύπωση του αλγορίθµου σε µορφή κατανοητή από τον Η/Υ ώστε να τον εκτελέσει («τρέξει» όπως λέµε στην ορολογία της
ΘΕΜΑ : ΣΥΣΤΗΜΑΤΑ ΑΡΙΘΜΗΣΗΣ. ΔΙΑΡΚΕΙΑ: 1 περιόδους. 22/1/ :11 Όνομα: Λεκάκης Κωνσταντίνος καθ. Τεχνολογίας
ΘΕΜΑ : ΣΥΣΤΗΜΑΤΑ ΑΡΙΘΜΗΣΗΣ ΔΙΑΡΚΕΙΑ: 1 περιόδους 22/1/2010 10:11 καθ. Τεχνολογίας 22/1/2010 10:12 Παραδείγματα Τι ονομάζουμε αριθμητικό σύστημα? Το σύνολο από ψηφία (αριθμοί & χαρακτήρες). Που χρησιμεύουν
Π ρ ο γ ρ α μ μ α τ ι σ μ ό ς Β α σ ι κ έ ς έ ν ν ο ι ε ς Ι σ τ ο ρ ι κ ή α ν α δ ρ ο μ ή Η έννοια του προγράμματος Ιστορική αναδρομή
Προγραμματισμός Βασικές έννοιες Ιστορική αναδρομή Η έννοια του προγράμματος Η περιγραφή της λύσης ενός προβλήματος, ως γνωστόν, γίνεται με τη βοήθεια ενός αλγορίθμου. Έτσι οι εντολές ενός προγράμματος
ΒΑΣΙΚΕΣ ΕΝΝΟΙΕΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ ΥΠΟΛΟΓΙΣΤΩΝ
Εισαγωγή ΒΑΣΙΚΕΣ ΕΝΝΟΙΕΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ ΥΠΟΛΟΓΙΣΤΩΝ Όπως για όλες τις επιστήμες, έτσι και για την επιστήμη της Πληροφορικής, ο τελικός στόχος της είναι η επίλυση προβλημάτων. Λύνονται όμως όλα τα προβλήματα;
Γλώσσες υψηλού επιπέδου Περιέχουν περισσότερες εντολές για την εκτέλεση πολύπλοκων εργασιών Τα προγράµµατα µεταφράζονται σε γλώσσα µηχανής είτε από το
Σηµαντικά σηµεία κεφαλαίου Τα τρία στάδια επίλυσης ενός προβλήµατος: Ακριβής προσδιορισµό του προβλήµατος Ανάπτυξη του αντίστοιχου αλγορίθµου. ιατύπωση του αλγορίθµου σε κατανοητή µορφή από τον υπολογιστή.
Εισαγωγή στον Προγραμματισμό
Εισαγωγή στον Προγραμματισμό Ακαδημαϊκό Έτος 2010-2011 Επιμέλεια Ξενοφών Βασιλάκος Περιεχόμενα Φροντιστηρίου 1. Κωδικοποίηση και Δυαδική Αναπαράσταση 2. Κωδικοποίηση ASCII Κωδικοποίηση Unicode Εισαγωγή
Κεφάλαιο 2. Συστήματα Αρίθμησης και Αναπαράσταση Πληροφορίας. Περιεχόμενα. 2.1 Αριθμητικά Συστήματα. Εισαγωγή
Κεφάλαιο. Συστήματα Αρίθμησης και Αναπαράσταση Πληροφορίας Περιεχόμενα. Αριθμητικά συστήματα. Μετατροπή αριθμών από ένα σύστημα σε άλλο.3 Πράξεις στο δυαδικό σύστημα.4 Πράξεις στο δεκαεξαδικό σύστημα.5
Α. Ερωτήσεις Ανάπτυξης
οµηµένος Προγραµµατισµός-Κεφάλαιο 7 Σελίδα 1 α ό 10 ΕΝΟΤΗΤΑ ΙΙΙ (ΠΡΟΓΡΑΜΜΑΤΑ) ΚΕΦΑΛΑΙΟ 7: Είδη, Τεχνικές και Περιβάλλοντα Προγραµµατισµού Α. Ερωτήσεις Ανάπτυξης 1. Τι ονοµάζουµε γλώσσα προγραµµατισµού;
Κεφάλαιο 7 : Είδη, Τεχνικές, και Περιβάλλοντα Προγραµµατισµού
ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΥΠΟΛΟΓΙΣΤΩΝ Κεφάλαιο 7 : Είδη, Τεχνικές, και Περιβάλλοντα Προγραµµατισµού ( Απαντήσεις & Λύσεις Βιβλίου) 1. Σκοποί κεφαλαίου Κύκλος ανάπτυξης προγράµµατος Κατηγορίες γλωσσών προγραµµατισµού
Κεφάλαιο 1. Συστήματα αρίθμησης και αναπαράστασης
Κεφάλαιο 1 Συστήματα αρίθμησης και αναπαράστασης 1.1 Εισαγωγή Οι υπολογιστές αναπαριστούν όλα τα είδη πληροφορίας ως δυαδικά δεδομένα. Έτσι, για την ευκολότερη και ταχύτερη επεξεργασία των διαφόρων πληροφοριών,
ΠΛΗΡΟΦΟΡΙΚΗ I Ενότητα 6
ΠΛΗΡΟΦΟΡΙΚΗ I Ενότητα 6 ΑΡΙΘΜΗΤΙΚΑ ΣΥΣΤΗΜΑΤΑ Bits & Bytes Bit: η μικρότερη μονάδα πληροφορίας μία από δύο πιθανές καταστάσεις (ναι / όχι, αληθές / ψευδές, n / ff) κωδικοποίηση σε 0 ή 1 δυαδικό σύστημα
ΚΕΦΑΛΑΙΟ 6 ΕΙΣΑΓΩΓΗ ΣΤΟΝ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟ. 03/01/09 Χαράλαμπος Τζόκας 1
ΚΕΦΑΛΑΙΟ 6 ΕΙΣΑΓΩΓΗ ΣΤΟΝ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟ 03/01/09 Χαράλαμπος Τζόκας 1 Πρόγραμμα - Προγραμματισμός Πρόγραμμα: Σύνολο εντολών που πρέπει να δοθούν στον Υπολογιστή, ώστε να υλοποιηθεί ο αλγόριθμος της επίλυσης
Αριθμητικά Συστήματα
Αριθμητικά Συστήματα Σε οποιοδήποτε αριθμητικό σύστημα, με βάση τον αριθμό Β, ένας ακέραιος αριθμός με πλήθος ψηφίων ν, εκφράζεται ως ακολούθως: α ν-1 α ν-2 α 1 α 0 = α ν-1 Β ν-1 + α ν-2 Β ν-2 + + α 1
Εισαγωγή στην Πληροφορική ΓΕΝΙΚΟ ΤΜΗΜΑ ΘΕΤΙΚΩΝ ΕΠΙΣΤΗΜΩΝ TEI ΧΑΛΚΙ ΑΣ
Εισαγωγή στην Πληροφορική 1 Περιεχόµενα - Κωδικοποιήσεις - Αριθµητικά Συστήµατα 2 Ηλεκτρονικός Υπολογιστής Είπαµε ότι είναι, µία Ηλεκτρονική Μηχανή, που δουλεύει κάτω από τον έλεγχο εντολών αποθηκευµένων
Σύνοψη Θεωρίας ΟΡΙΣΜΟΣ ΚΑΙ ΧΑΡΑΚΤΗΡΙΣΤΙΚΑ ΑΛΓΟΡΙΘΜΩΝ
1 ο ΓΥΜΝΑΣΙΟ ΘΕΡΜΗΣ Τάξη: Γ Μάθημα: Πληροφορική Εξεταστέα ύλη: Παρ11.1 & 11.2 Σύνοψη Θεωρίας ΟΡΙΣΜΟΣ ΚΑΙ ΧΑΡΑΚΤΗΡΙΣΤΙΚΑ ΑΛΓΟΡΙΘΜΩΝ Αλγόριθμος είναι μια πεπερασμένη σειρά ενεργειών που περιγράφει τη διαδικασία
Ψηφιακά Κυκλώματα Ι. Μάθημα 1: Δυαδικά συστήματα - Κώδικες. Λευτέρης Καπετανάκης
ΤΛ2002 Ψηφιακά Κυκλώματα Ι Μάθημα 1: Δυαδικά συστήματα - Κώδικες Λευτέρης Καπετανάκης ΤΕΧΝΟΛΟΓΙΚΟ ΕΚΠΑΙΔΕΥΤΙΚΟ ΙΔΡΥΜΑ ΚΡΗΤΗΣ ΤΜΗΜΑ ΗΛΕΚΤΡΟΝΙΚΗΣ Άνοιξη 2011 ΤΛ-2002: L1 Slide 1 Ψηφιακά Συστήματα ΤΛ-2002:
ΕΙΣΑΓΩΓΗ ΣΤOΝ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟ
ΕΙΣΑΓΩΓΗ ΣΤOΝ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟ Στόχοι του μαθήματος Μετά το τέλος του μαθήματος οι μαθητές πρέπει να είναι σε θέση: Να περιγράφουν τι είναι πρόγραμμα Να εξηγούν την αναγκαιότητα για τη δημιουργία γλωσσών
<<ΔΗΜΗΤΡΗΣ ΜΑΝΩΛΗΣ ΦΥΣΙΚΟΣ ΜCs>> 1
ΚΕΦΑΛΑΙΟ 7 ο ΠΡΟΓΡΑΜΜΑ : Το πρόγραμμα αποτελείται από μια σειρά οδηγιών, που ονομάζονται εντολές, για την εκτέλεση τέτοιου είδους πράξεων, καθώς επίσης και από ένα σύνολο πρόσθετων οδηγιών ελέγχου, που
Περιεχόµενα. οµή Η/Υ: Αναπαράσταση εδοµένων. υαδικό σύστηµα. Συστήµατα Αρίθµησης υαδικό Οκταδικό εκαεξαδικό Παραδείγµατα
οµή Η/Υ: Αναπαράσταση εδοµένων Συστήµατα Αρίθµησης υαδικό Οκταδικό εκαεξαδικό Παραδείγµατα Περιεχόµενα Κωδικοποίηση δεδοµένων Κώδικας ASCII Άλλοι κώδικες Παραδείγµατα Συστήµατα Αρίθµησης Τα συνηθέστερα
Τμήμα Χρηματοοικονομικής & Ελεγκτικής ΤΕΙ Ηπείρου Παράρτημα Πρέβεζας. Πληροφορική Ι. Αναπαράσταση αριθμών στο δυαδικό σύστημα. Δρ.
Τμήμα Χρηματοοικονομικής & Ελεγκτικής ΤΕΙ Ηπείρου Παράρτημα Πρέβεζας Πληροφορική Ι Αναπαράσταση αριθμών στο δυαδικό σύστημα Δρ. Γκόγκος Χρήστος Δεκαδικό σύστημα αρίθμησης Ελληνικό - Ρωμαϊκό Σύστημα αρίθμησης
Εισαγωγή στους Ηλεκτρονικούς Υπολογιστές. 5 ο Μάθημα. Λεωνίδας Αλεξόπουλος Λέκτορας ΕΜΠ. url:
στους Ηλεκτρονικούς Υπολογιστές 5 ο Μάθημα Λεωνίδας Αλεξόπουλος Λέκτορας ΕΜΠ email: leo@mail.ntua.gr url: http://users.ntua.gr/leo Άδεια Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative
ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΠΛΗΡΟΦΟΡΙΚΗ
ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΠΛΗΡΟΦΟΡΙΚΗ Κ. Δεμέστιχας Εργαστήριο Πληροφορικής Γεωπονικό Πανεπιστήμιο Αθηνών Επικοινωνία μέσω e-mail: cdemest@aua.gr, cdemest@cn.ntua.gr 3. ΑΡΙΘΜΗΤΙΚΗ ΥΠΟΛΟΓΙΣΤΩΝ ΜΕΡΟΣ Β Παράσταση Προσημασμένων
Εισαγωγή στους Η/Υ. Γιώργος Δημητρίου. Μάθημα 7 και 8: Αναπαραστάσεις. Πανεπιστήμιο Θεσσαλίας - Τμήμα Πληροφορικής
Γιώργος Δημητρίου Μάθημα 7 και 8: Αναπαραστάσεις Αναπαράσταση Πληροφορίας Η/Υ Αριθμητικά δεδομένα Σταθερής υποδιαστολής Κινητής υποδιαστολής Μη αριθμητικά δεδομένα Χαρακτήρες Ειδικοί κώδικες Εντολές Γλώσσα
4. Συντακτικό μιας γλώσσας είναι το σύνολο των κανόνων που ορίζει τις μορφές με τις οποίες μια λέξη είναι αποδεκτή.
ΑΕσΠΠ-Κεφ6. Εισαγωγή στον προγραμματισμό 1 ΣΩΣΤΟ ΛΑΘΟΣ 1. Οι γλώσσες προγραμματισμού αναπτυχθήκαν με σκοπό την επικοινωνία ανθρώπου μηχανής. 2. Αλγόριθμος = Πρόγραμμα + Δομές Δεδομένων 3. Ένα πρόγραμμα
ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ
ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ ΕΠΙΜΕΛΕΙΑ: ΜΑΡΙΑ Σ. ΖΙΩΓΑ ΚΑΘΗΓΗΤΡΙΑ ΠΛΗΡΟΦΟΡΙΚΗΣ ΑΣΚΗΣΕΙΣ 6 ΟΥ ΚΕΦΑΛΑΙΟΥ ΕΙΣΑΓΩΓΗ ΣΤΟΝ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟ ΕΡΩΤΗΣΕΙΣ ΣΩΣΤΟ ΛΑΘΟΣ Σημειώστε αν είναι σωστή ή
Γενικά Στοιχεία Ηλεκτρονικού Υπολογιστή
Γενικά Στοιχεία Ηλεκτρονικού Υπολογιστή 1. Ηλεκτρονικός Υπολογιστής Ο Ηλεκτρονικός Υπολογιστής είναι μια συσκευή, μεγάλη ή μικρή, που επεξεργάζεται δεδομένα και εκτελεί την εργασία του σύμφωνα με τα παρακάτω
Υπολογιστές και Πληροφορία 1
ΗΜΥ-20: Σχεδιασμός Ψηφιακών Συστημάτων Σκοπός του μαθήματος Λογικός Σχεδιασμός και Σχεδιασμός Η/Υ Εισαγωγή, Υπολογιστές και Πληροφορία Διδάσκουσα: Μαρία Κ. Μιχαήλ Βασικές έννοιες & εργαλεία που χρησιμοποιούνται
Ψηφιακά Συστήματα. 1. Συστήματα Αριθμών
Ψηφιακά Συστήματα 1. Συστήματα Αριθμών Βιβλιογραφία 1. Φανουράκης Κ., Πάτσης Γ., Τσακιρίδης Ο., Θεωρία και Ασκήσεις Ψηφιακών Ηλεκτρονικών, ΜΑΡΙΑ ΠΑΡΙΚΟΥ & ΣΙΑ ΕΠΕ, 2016. [59382199] 2. Floyd Thomas L.,
ΑΕΠΠ Ερωτήσεις θεωρίας
ΑΕΠΠ Ερωτήσεις θεωρίας Κεφάλαιο 1 1. Τα δεδομένα μπορούν να παρέχουν πληροφορίες όταν υποβάλλονται σε 2. Το πρόβλημα μεγιστοποίησης των κερδών μιας επιχείρησης είναι πρόβλημα 3. Για την επίλυση ενός προβλήματος
Εισαγωγή στην πληροφορική
Τμήμα Μηχανικών Πληροφορικής & Τηλεπικοινωνιών Εισαγωγή στην πληροφορική Ενότητα 3: Δυαδικά Συστήματα Αγγελίδης Παντελής Τμήμα Μηχανικών Πληροφορικής και Τηλεπικοινωνιών Άδειες Χρήσης Το παρόν εκπαιδευτικό
Συστήματα Αρίθμησης. Συστήματα Αρίθμησης 1. PDF created with FinePrint pdffactory Pro trial version
Συστήματα Αρίθμησης Στην καθημερινή μας ζωή χρησιμοποιούμε το δεκαδικό σύστημα αρίθμησης. Στο σύστημα αυτό χρησιμοποιούμε δέκα διαφορετικά σύμβολα τα :,, 2, 3, 4, 5, 6,7 8, 9. Για τον αριθμό 32 θα χρειαστούμε
1. ΣΥΣΤΗΜΑΤΑ ΑΡΙΘΜΩΝ. α i. (α i β i ) (1.3) όπου: η= το πλήθος ακεραίων ψηφίων του αριθμού Ν. n-1
1. ΣΥΣΤΗΜΑΤΑ ΑΡΙΘΜΩΝ 1.1 Εισαγωγή Το δεκαδικό σύστημα (Decimal System) αρίθμησης χρησιμοποιείται από τον άνθρωπο και είναι κατάλληλο βέβαια γι αυτόν, είναι όμως εντελώς ακατάλληλο για τις ηλεκτρονικές
2. ΑΡΙΘΜΗΤΙΚΗ ΤΟΥ ΥΠΟΛΟΓΙΣΤΗ. 2.1 Αριθμητικά συστήματα
2. ΑΡΙΘΜΗΤΙΚΗ ΤΟΥ ΥΠΟΛΟΓΙΣΤΗ 2.1 Αριθμητικά συστήματα Κάθε πραγματικός αριθμός χ μπορεί να παρασταθεί σε ένα αριθμητικό σύστημα με βάση β>1 με μια δυναμοσειρά της μορφής, -οο * = ± Σ ψ β " (2 1) η - ν
Περιεχόµενα. Ανασκόπηση - Ορισµοί. Ο κύκλος ανάπτυξης προγράµµατος. Γλώσσες Προγραµµατισµού Ασκήσεις
Προγραµµατισµός Η/Υ Ανασκόπηση - Ορισµοί Περιεχόµενα Ο κύκλος ανάπτυξης προγράµµατος Περιγραφή προβλήµατος Ανάλυση προβλήµατος Λογικό ιάγραµµα Ψευδοκώδικας Κωδικοποίηση Συντήρηση Γλώσσες Προγραµµατισµού
ΜΕΡΙΚΑ ΣΤΟΙΧΕΙΑ ΓΙΑ ΤΙΣ ΓΛΩΣΣEΣ ΠPOΓPAMMATIΣMOY
ΜΕΡΙΚΑ ΣΤΟΙΧΕΙΑ ΓΙΑ ΤΙΣ ΓΛΩΣΣEΣ ΠPOΓPAMMATIΣMOY Mία γλώσσα προγραμματισμού συνίσταται από ένα περιορισμένο υποσύνολο της αγγλικής γλώσσας και το οποίο αποτελείται από εκφράσεις σαφώς ορισμένες, χωρίς παρερμηνεία.
Αναπαράσταση Μη Αριθμητικών Δεδομένων
Ιόνιο Πανεπιστήμιο Τμήμα Πληροφορικής Εισαγωγή στην Επιστήμη των Υπολογιστών 2014-15 Αναπαράσταση Μη Αριθμητικών Δεδομένων (κείμενο, ήχος και εικόνα στον υπολογιστή) http://di.ionio.gr/~mistral/tp/csintro/
! Δεδομένα: ανεξάρτητα από τύπο και προέλευση, στον υπολογιστή υπάρχουν σε μία μορφή: 0 και 1
Ιόνιο Πανεπιστήμιο Τμήμα Πληροφορικής Εισαγωγή στην Επιστήμη των Υπολογιστών 5-6 Αναπαράσταση Μη Αριθμητικών Δεδομένων (κείμενο, ήχος και εικόνα στον υπολογιστή) http://di.ionio.gr/~mistral/tp/csintro/
ΠΛΗΡΟΦΟΡΙΚΗ Ι Ενότητα 8: Συστήματα αρίθμησης
ΠΛΗΡΟΦΟΡΙΚΗ Ι Ενότητα 8: Συστήματα αρίθμησης Μιχάλης Δρακόπουλος Σχολή Θετικών επιστημών Τμήμα Μαθηματικών ΠΛΗΡΟΦΟΡΙΚΗ Ι (MATLAB) Ενότητα 8 Σημειώσεις βασισμένες στο βιβλίο Το MATLAB στην Υπολογιστική
ΚΕΦΑΛΑΙΟ VI. Εισαγωγή στον προγραμματισμό
ΚΕΦΑΛΑΙΟ VI Η επίλυση ενός προβλήματος με τον υπολογιστή περιλαμβάνει, όπως έχει ήδη αναφερθεί, τρία εξίσου σημαντικά στάδια. Τον ακριβή προσδιορισμό του προβλήματος. Την ανάπτυξη του αντίστοιχου αλγορίθμου.
ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΠΛΗΡΟΦΟΡΙΚΗ
ΤΕΙ ΙΟΝΙΩΝ ΝΗΣΩΝ ΤΜΗΜΑ ΕΦΑΡΜΟΓΩΝ ΠΛΗΡΟΦΟΡΙΚΗΣ ΣΤΗ ΔΙΟΙΚΗΣΗ ΚΑΙ ΣΤΗΝ ΟΙΚΟΝΟΜΙΑ 9 Ο ΜΑΘΗΜΑ ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΠΛΗΡΟΦΟΡΙΚΗ ΑΠΟΣΤΟΛΙΑ ΠΑΓΓΕ Περιεχόμενα 2 Η λειτουργία του υπολογιστή Κατηγορίες Εντολών Μορφή Εντολών
Συμβολική γλώσσα Εκπαιδευτικού Υπολογιστή - Λογισμικό Υπολογιστών
Συμβολική γλώσσα Εκπαιδευτικού Υπολογιστή - Λογισμικό Υπολογιστών Πρόγραμμα σε γλώσσα μηχανής του ΕΚΥ Θέση μνήμης Περιεχόμενα μνήμης Εντολή (assembly) 0 0001 000000000011 lda 3 1 0011 000000000100 ada
Δύο είναι οι κύριες αιτίες που μπορούμε να πάρουμε από τον υπολογιστή λανθασμένα αποτελέσματα εξαιτίας των σφαλμάτων στρογγυλοποίησης:
Ορολογία bit (binary digit): δυαδικό ψηφίο. Τα δυαδικά ψηφία είναι το 0 και το 1 1 byte = 8 bits word: η θεμελιώδης μονάδα σύμφωνα με την οποία εκπροσωπούνται οι πληροφορίες στον υπολογιστή. Αποτελείται
Ελίνα Μακρή
Ελίνα Μακρή elmak@unipi.gr Μετατροπή Αριθμητικών Συστημάτων Πράξεις στα Αριθμητικά Συστήματα Σχεδίαση Ψηφιακών Κυκλωμάτων με Logism Άλγεβρα Boole Λογικές Πύλες (AND, OR, NOT, NAND, XOR) Flip Flops (D,
ΠΛΗ21 Κεφάλαιο 2. ΠΛΗ21 Ψηφιακά Συστήματα: Τόμος Α Κεφάλαιο: Παράσταση Προσημασμένων Αριθμών Συμπληρώματα
Ψηφιακά Συστήματα: Τόμος Α Κεφάλαιο: 2 2.3.4 Παράσταση Προσημασμένων Αριθμών Συμπληρώματα Στόχοι του κεφαλαίου είναι να γνωρίσουμε: Τι είναι ένας Συμπλήρωμα ενός αριθμού πρακτικά Τι είναι Συμπλήρωμα ως
Εισαγωγή στους Ηλεκτρονικούς Υπολογιστές
Εισαγωγή στους Ηλεκτρονικούς Υπολογιστές http://courseware.mech.ntua.gr/ml23021/ 3 ο Μάθημα Λεωνίδας Αλεξόπουλος Λέκτορας ΕΜΠ E-mail: leo@mail.ntua.gr URL: http://users.ntua.gr/leo 1 Κωδικοποίηση & Αποκωδικοποίηση
Εισαγωγή στους Ηλεκτρονικούς Υπολογιστές. 3 ο Μάθημα. Λεωνίδας Αλεξόπουλος Λέκτορας ΕΜΠ. url:
Εισαγωγή στους Ηλεκτρονικούς Υπολογιστές 3 ο Μάθημα Λεωνίδας Αλεξόπουλος Λέκτορας ΕΜΠ email: leo@mail.ntua.gr url: http://users.ntua.gr/leo Άδεια Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες
Κεφ. 1: Εισαγωγή στην έννοια του Αλγορίθμου και στον Προγραμματισμό. Η έννοια του προβλήματος
Η έννοια του προβλήματος 1. Αναφέρετε μερικά από τα προβλήματα που συναντάτε στην καθημερινότητά σας. Απλά προβλήματα Ποιο δρόμο θα ακολουθήσω για να πάω στο σχολείο; Πως θα οργανώσω μια εκδρομή; Πως θα
ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ Π ΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ Π ΕΡΙΒΑΛΛΟΝ
ΥΠΟΥΡΓΕΙΟ ΕΘΝΙΚΗΣ ΠΑΙΔΕΙΑΣ ΚΑΙ ΘΡΗΣΚΕΥΜΑΤΩΝ ΠΑΙΔΑΓΩΓΙΚΟ ΙΝΣΤΙΤΟΥΤΟ ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ Π ΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ Π ΕΡΙΒΑΛΛΟΝ Κ Υ Κ Λ Ο Υ Π Λ Η Ρ Ο Φ Ο Ρ Ι Κ Η Σ Κ Α Ι Υ Π Η Ρ Ε Σ Ι Ω Ν Τ Ε Χ Ν Ο Λ Ο Γ Ι Κ Η
6. Εισαγωγή στον προγραµµατισµό
6. Εισαγωγή στον προγραµµατισµό 6.1 Η έννοια του προγράµµατος. 6.2 Ιστορική αναδροµή. 6.2.1 Γλώσσες µηχανής. ΗΜ04-Θ1Α 1. Ένα πρόγραµµα σε γλώσσα µηχανής είναι µια ακολουθία δυαδικών ψηφίων. 5. Ένα πρόγραµµα
Πρόγραμμα Επικαιροποίησης Γνώσεων Αποφοίτων ΑΡΙΘΜΗΤΙΚΑ ΣΥΣΤΗΜΑΤΑ
Πρόγραμμα Επικαιροποίησης Γνώσεων Αποφοίτων ΕΝΟΤΗΤΑ Μ1 ΨΗΦΙΑΚΑ ΗΛΕΚΤΡΟΝΙΚΑ Εκπαιδευτής: Γ. Π. ΠΑΤΣΗΣ, Επικ. Καθηγητής, Τμήμα Ηλεκτρονικών Μηχανικών, ΤΕΙ Αθήνας ΑΡΙΘΜΗΤΙΚΑ ΣΥΣΤΗΜΑΤΑ 1. Ποια είναι η βάση
10. Με πόσους και ποιους τρόπους μπορεί να αναπαρασταθεί ένα πρόβλημα; 11. Περιγράψτε τα τρία στάδια αντιμετώπισης ενός προβλήματος.
1. Δώστε τον ορισμό του προβλήματος. 2. Σι εννοούμε με τον όρο επίλυση ενός προβλήματος; 3. Σο πρόβλημα του 2000. 4. Σι εννοούμε με τον όρο κατανόηση προβλήματος; 5. Σι ονομάζουμε χώρο προβλήματος; 6.
Εισαγωγή στον Προγραμματισμό
Εισαγωγή στον Προγραμματισμό Ενότητα 3 Λειτουργίες σε Bits, Αριθμητικά Συστήματα Χρήστος Γκουμόπουλος Πανεπιστήμιο Αιγαίου Τμήμα Μηχανικών Πληροφοριακών και Επικοινωνιακών Συστημάτων Φύση υπολογιστών Η
Ανάπτυξη Εφαρμογών σε Προγραμματιστικό Περιβάλλον
Ανάπτυξη Εφαρμογών σε Προγραμματιστικό Περιβάλλον ΚΕΦΑΛΑΙΟ 6 ΕΙΣΑΓΩΓΗ ΣΤΟΝ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟ Η έννοια του προγράμματος Η επίλυση ενός πρβλήματος περιλαμβάνει Προσδιορισμό προβλήματος Ανάπτυξη αλγορίθμου Διατύπωση
Εισαγωγή στην Επιστήμη των Υπολογιστών
Εισαγωγή στην Επιστήμη των Υπολογιστών Ενότητα 2: Αποθήκευση Δεδομένων: Αριθμητική του Υπολογιστή, Αριθμητικά Συστήματα Μετατροπές, 2ΔΩ Τμήμα: Αγροτικής Οικονομίας & Ανάπτυξης Διδάσκων: Θεόδωρος Τσιλιγκιρίδης
Ενότητα 2 ΕΙΣΑΓΩΓΗ ΣΤΟΝ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟ
Ενότητα 2 ΕΙΣΑΓΩΓΗ ΣΤΟΝ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟ ΕΠΙΛΥΣΗ ΠΡΟΒΛΗΜΑΤΩΝ ΜΕ ΥΠΟΛΟΓΙΣΤΗ: Στάδιο 1: Ακριβής Προσδιορισμός του Προβλήματος Στάδιο 2: Ανάπτυξη του Αντίστοιχου Αλγόριθμου Στάδιο 3: Διατύπωση του αλγόριθμου
ΚΕΦΑΛΑΙΟ 5. Κύκλος Ζωής Εφαρμογών ΕΝΟΤΗΤΑ 2. Εφαρμογές Πληροφορικής. Διδακτικές ενότητες 5.1 Πρόβλημα και υπολογιστής 5.2 Ανάπτυξη εφαρμογών
44 Διδακτικές ενότητες 5.1 Πρόβλημα και υπολογιστής 5.2 Ανάπτυξη εφαρμογών Διδακτικοί στόχοι Σκοπός του κεφαλαίου είναι οι μαθητές να κατανοήσουν τα βήματα που ακολουθούνται κατά την ανάπτυξη μιας εφαρμογής.
ΕΠΛ 003: ΕΠΙΣΤΗΜΗ ΤΗΣ ΠΛΗΡΟΦΟΡΙΚΗΣ ΚΑΙ ΠΛΗΡΟΦΟΡΙΚΑ ΣΥΣΤΗΜΑΤΑ. Δρ. Κουζαπάς Δημήτριος Πανεπιστήμιο Κύπρου - Τμήμα Πληροφορικής. Αναπαράσταση Δεδομένων
ΕΠΛ 003: ΕΠΙΣΤΗΜΗ ΤΗΣ ΠΛΗΡΟΦΟΡΙΚΗΣ ΚΑΙ ΠΛΗΡΟΦΟΡΙΚΑ ΣΥΣΤΗΜΑΤΑ Δρ. Κουζαπάς Δημήτριος Πανεπιστήμιο Κύπρου - Τμήμα Πληροφορικής Αναπαράσταση Δεδομένων Υπολογιστικά συστήματα: Στρώματα 1 Επικοινωνία Εφαρμογές
Εισαγωγή στην επιστήµη των υπολογιστών ΑΡΙΘΜΗΤΙΚΑ ΣΥΣΤΗΜΑΤΑ
Εισαγωγή στην επιστήµη των υπολογιστών ΑΡΙΘΜΗΤΙΚΑ ΣΥΣΤΗΜΑΤΑ 1 Αριθµητικό Σύστηµα! Ορίζει τον τρόπο αναπαράστασης ενός αριθµού µε διακεκριµένα σύµβολα! Ένας αριθµός αναπαρίσταται διαφορετικά σε κάθε σύστηµα,
Σχεδίαση με Ηλεκτρονικούς Υπολογιστές (ΗΥ)
ΑΡΙΣΤΟΤΕΛΕΙΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΕΣΣΑΛΟΝΙΚΗΣ ΑΝΟΙΧΤΑ ΑΚΑΔΗΜΑΙΚΑ ΜΑΘΗΜΑΤΑ Σχεδίαση με Ηλεκτρονικούς Υπολογιστές (ΗΥ) Ενότητα # 1: Εισαγωγή Ιωάννης Γ. Παρασχάκης Τμήμα Αγρονόμων & Τοπογράφων Μηχανικών Άδειες Χρήσης
Μ Ε Ρ Ο Σ Γ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΗΛΕΚΤΡΟΝΙΚΩΝ ΥΠΟΛΟΓΙΣΤΩΝ
Μ Ε Ρ Ο Σ Γ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΗΛΕΚΤΡΟΝΙΚΩΝ ΥΠΟΛΟΓΙΣΤΩΝ 6 ΕΙΣΑΓΩΓΗ ΣΤΟΝ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟ 6.1 Γλώσσες Προγραμματισμού 6.1.1 Γλώσσες μηχανής (1 η γενιά) Η γλώσσα στην οποία ένας ηλεκτρονικός υπολογιστής καταλαβαίνει