1. Η αναπαράσταση της πληροφορίας στον υπολογιστή

Μέγεθος: px
Εμφάνιση ξεκινά από τη σελίδα:

Download "1. Η αναπαράσταση της πληροφορίας στον υπολογιστή"

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

Εισαγωγή στην Πληροφορική & τον Προγραμματισμό

Εισαγωγή στην Πληροφορική & τον Προγραμματισμό ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ Ανώτατο Εκπαιδευτικό Ίδρυμα Πειραιά Τεχνολογικού Τομέα Εισαγωγή στην Πληροφορική & τον Προγραμματισμό Ενότητα 3 η : Κωδικοποίηση & Παράσταση Δεδομένων Ι. Ψαρομήλιγκος Χ. Κυτάγιας Τμήμα

Διαβάστε περισσότερα

Προγραμματισμός Υπολογιστών

Προγραμματισμός Υπολογιστών Προγραμματισμός Υπολογιστών Βασικές γνώσεις Κ. Βασιλάκης, ΣΤΕΦ, ΤΕΙ Κρήτης Η Πληροφορική και τα εργαλεία της Παροχή έγκαιρης και έγκυρης πληροφόρησης. Καταχώριση στοιχείων Αποθήκευση Επεξεργασία ψηφιακών

Διαβάστε περισσότερα

Πληροφορική. Ενότητα 4 η : Κωδικοποίηση & Παράσταση Δεδομένων. Ι. Ψαρομήλιγκος Τμήμα Λογιστικής & Χρηματοοικονομικής

Πληροφορική. Ενότητα 4 η : Κωδικοποίηση & Παράσταση Δεδομένων. Ι. Ψαρομήλιγκος Τμήμα Λογιστικής & Χρηματοοικονομικής ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ Ανώτατο Εκπαιδευτικό Ίδρυμα Πειραιά Τεχνολογικού Τομέα Πληροφορική Ενότητα 4 η : Κωδικοποίηση & Παράσταση Δεδομένων Ι. Ψαρομήλιγκος Τμήμα Λογιστικής & Χρηματοοικονομικής Άδειες Χρήσης

Διαβάστε περισσότερα

ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ ΜΑΡΙΑ Σ. ΖΙΩΓΑ ΚΑΘΗΓΗΤΡΙΑ ΠΛΗΡΟΦΟΡΙΚΗΣ ΕΙΣΑΓΩΓΗ ΣΤΟΝ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟ

ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ ΜΑΡΙΑ Σ. ΖΙΩΓΑ ΚΑΘΗΓΗΤΡΙΑ ΠΛΗΡΟΦΟΡΙΚΗΣ ΕΙΣΑΓΩΓΗ ΣΤΟΝ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟ ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ ΕΠΙΜΕΛΕΙΑ: ΜΑΡΙΑ Σ. ΖΙΩΓΑ ΚΑΘΗΓΗΤΡΙΑ ΠΛΗΡΟΦΟΡΙΚΗΣ ΘΕΩΡΙΑ 6 ΟΥ ΚΕΦΑΛΑΙΟΥ ΕΙΣΑΓΩΓΗ ΣΤΟΝ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟ 6.1 Τι ονοµάζουµε πρόγραµµα υπολογιστή; Ένα πρόγραµµα

Διαβάστε περισσότερα

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

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

Διαβάστε περισσότερα

Δυαδικό Σύστημα Αρίθμησης

Δυαδικό Σύστημα Αρίθμησης Δυαδικό Σύστημα Αρίθμησης Το δυαδικό σύστημα αρίθμησης χρησιμοποιεί δύο ψηφία. Το 0 και το 1. Τα ψηφία ενός αριθμού στο δυαδικό σύστημα αρίθμησης αντιστοιχίζονται σε δυνάμεις του 2. Μονάδες, δυάδες, τετράδες,

Διαβάστε περισσότερα

ΕΙΣΑΓΩΓΗ ΣΤΟΥΣ ΑΛΓΟΡΙΘΜΟΥΣ ΚΑΙ ΣΤΟΝ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟ

ΕΙΣΑΓΩΓΗ ΣΤΟΥΣ ΑΛΓΟΡΙΘΜΟΥΣ ΚΑΙ ΣΤΟΝ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟ ΕΙΣΑΓΩΓΗ ΣΤΟΥΣ ΑΛΓΟΡΙΘΜΟΥΣ ΚΑΙ ΣΤΟΝ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΑΙΓΑΙΟΥ ΤΜΗΜΑ ΠΟΛΙΤΙΣΜΙΚΗΣ ΤΕΧΝΟΛΟΓΙΑΣ ΚΑΙ ΕΠΙΚΟΙΝΩΝΙΑΣ Διδάσκουσα Δρ Β Καβακλή Χειμερινό Εξάμηνο 2001 Στόχοι του Μαθήματος! Ανάπτυξη αναλυτικής

Διαβάστε περισσότερα

ΠΛΗΡΟΦΟΡΙΚΗ Ι JAVA Τμήμα θεωρίας με Α.Μ. σε 8 & 9 11/10/07

ΠΛΗΡΟΦΟΡΙΚΗ Ι JAVA Τμήμα θεωρίας με Α.Μ. σε 8 & 9 11/10/07 ΠΛΗΡΟΦΟΡΙΚΗ Ι JAVA Τμήμα θεωρίας με Α.Μ. σε 8 & 9 11/10/07 Τμήμα θεωρίας: Α.Μ. 8, 9 Κάθε Πέμπτη, 11πμ-2μμ, ΑΜΦ23. Διδάσκων: Ντίνος Φερεντίνος Γραφείο 118 email: kpf3@cornell.edu Μάθημα: Θεωρία + προαιρετικό

Διαβάστε περισσότερα

Επιµέλεια Θοδωρής Πιερράτος

Επιµέλεια Θοδωρής Πιερράτος Εισαγωγή στον προγραµµατισµό Η έννοια του προγράµµατος Ο προγραµµατισµός ασχολείται µε τη δηµιουργία του προγράµµατος, δηλαδή του συνόλου εντολών που πρέπει να δοθούν στον υπολογιστή ώστε να υλοποιηθεί

Διαβάστε περισσότερα

Συστήματα αρίθμησης. = α n-1 *b n-1 + a n-2 *b n-2 + +a 1 b 1 + a 0 όπου τα 0 a i b-1

Συστήματα αρίθμησης. = α 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 Δεκαδικό και Δυαδικό Δυαδικό Σύστημα

Διαβάστε περισσότερα

Τμήμα Χρηματοοικονομικής & Ελεγκτικής ΤΕΙ Ηπείρου Παράρτημα Πρέβεζας. Πληροφορική Ι. Αναπαράσταση αριθμών στο δυαδικό σύστημα. Δρ.

Τμήμα Χρηματοοικονομικής & Ελεγκτικής ΤΕΙ Ηπείρου Παράρτημα Πρέβεζας. Πληροφορική Ι. Αναπαράσταση αριθμών στο δυαδικό σύστημα. Δρ. Τμήμα Χρηματοοικονομικής & Ελεγκτικής ΤΕΙ Ηπείρου Παράρτημα Πρέβεζας Πληροφορική Ι Αναπαράσταση αριθμών στο δυαδικό σύστημα Δρ. Γκόγκος Χρήστος Δεκαδικό σύστημα αρίθμησης Ελληνικό - Ρωμαϊκό Σύστημα αρίθμησης

Διαβάστε περισσότερα

ΕΙΣΑΓΩΓΗ ΣΤOΝ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟ

ΕΙΣΑΓΩΓΗ ΣΤOΝ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟ ΕΙΣΑΓΩΓΗ ΣΤOΝ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟ Στόχοι του μαθήματος Μετά το τέλος του μαθήματος οι μαθητές πρέπει να είναι σε θέση: Να περιγράφουν τι είναι πρόγραμμα Να εξηγούν την αναγκαιότητα για τη δημιουργία γλωσσών

Διαβάστε περισσότερα

Γενικά Στοιχεία Ηλεκτρονικού Υπολογιστή

Γενικά Στοιχεία Ηλεκτρονικού Υπολογιστή Γενικά Στοιχεία Ηλεκτρονικού Υπολογιστή 1. Ηλεκτρονικός Υπολογιστής Ο Ηλεκτρονικός Υπολογιστής είναι μια συσκευή, μεγάλη ή μικρή, που επεξεργάζεται δεδομένα και εκτελεί την εργασία του σύμφωνα με τα παρακάτω

Διαβάστε περισσότερα

ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ

ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ ΕΠΙΜΕΛΕΙΑ: ΜΑΡΙΑ Σ. ΖΙΩΓΑ ΚΑΘΗΓΗΤΡΙΑ ΠΛΗΡΟΦΟΡΙΚΗΣ ΑΣΚΗΣΕΙΣ 6 ΟΥ ΚΕΦΑΛΑΙΟΥ ΕΙΣΑΓΩΓΗ ΣΤΟΝ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟ ΕΡΩΤΗΣΕΙΣ ΣΩΣΤΟ ΛΑΘΟΣ Σημειώστε αν είναι σωστή ή

Διαβάστε περισσότερα

ΚΕΦΑΛΑΙΟ VI. Εισαγωγή στον προγραμματισμό

ΚΕΦΑΛΑΙΟ VI. Εισαγωγή στον προγραμματισμό ΚΕΦΑΛΑΙΟ VI Η επίλυση ενός προβλήματος με τον υπολογιστή περιλαμβάνει, όπως έχει ήδη αναφερθεί, τρία εξίσου σημαντικά στάδια. Τον ακριβή προσδιορισμό του προβλήματος. Την ανάπτυξη του αντίστοιχου αλγορίθμου.

Διαβάστε περισσότερα

6. Εισαγωγή στον προγραµµατισµό

6. Εισαγωγή στον προγραµµατισµό 6. Εισαγωγή στον προγραµµατισµό 6.1 Η έννοια του προγράµµατος. 6.2 Ιστορική αναδροµή. 6.2.1 Γλώσσες µηχανής. ΗΜ04-Θ1Α 1. Ένα πρόγραµµα σε γλώσσα µηχανής είναι µια ακολουθία δυαδικών ψηφίων. 5. Ένα πρόγραµµα

Διαβάστε περισσότερα

Πρόγραμμα Επικαιροποίησης Γνώσεων Αποφοίτων ΑΡΙΘΜΗΤΙΚΑ ΣΥΣΤΗΜΑΤΑ

Πρόγραμμα Επικαιροποίησης Γνώσεων Αποφοίτων ΑΡΙΘΜΗΤΙΚΑ ΣΥΣΤΗΜΑΤΑ Πρόγραμμα Επικαιροποίησης Γνώσεων Αποφοίτων ΕΝΟΤΗΤΑ Μ1 ΨΗΦΙΑΚΑ ΗΛΕΚΤΡΟΝΙΚΑ Εκπαιδευτής: Γ. Π. ΠΑΤΣΗΣ, Επικ. Καθηγητής, Τμήμα Ηλεκτρονικών Μηχανικών, ΤΕΙ Αθήνας ΑΡΙΘΜΗΤΙΚΑ ΣΥΣΤΗΜΑΤΑ 1. Ποια είναι η βάση

Διαβάστε περισσότερα

Συμβολική γλώσσα Εκπαιδευτικού Υπολογιστή - Λογισμικό Υπολογιστών

Συμβολική γλώσσα Εκπαιδευτικού Υπολογιστή - Λογισμικό Υπολογιστών Συμβολική γλώσσα Εκπαιδευτικού Υπολογιστή - Λογισμικό Υπολογιστών Πρόγραμμα σε γλώσσα μηχανής του ΕΚΥ Θέση μνήμης Περιεχόμενα μνήμης Εντολή (assembly) 0 0001 000000000011 lda 3 1 0011 000000000100 ada

Διαβάστε περισσότερα

Αναπαράσταση Μη Αριθμητικών Δεδομένων

Αναπαράσταση Μη Αριθμητικών Δεδομένων Ιόνιο Πανεπιστήμιο Τμήμα Πληροφορικής Εισαγωγή στην Επιστήμη των Υπολογιστών 2014-15 Αναπαράσταση Μη Αριθμητικών Δεδομένων (κείμενο, ήχος και εικόνα στον υπολογιστή) http://di.ionio.gr/~mistral/tp/csintro/

Διαβάστε περισσότερα

10. Με πόσους και ποιους τρόπους μπορεί να αναπαρασταθεί ένα πρόβλημα; 11. Περιγράψτε τα τρία στάδια αντιμετώπισης ενός προβλήματος.

10. Με πόσους και ποιους τρόπους μπορεί να αναπαρασταθεί ένα πρόβλημα; 11. Περιγράψτε τα τρία στάδια αντιμετώπισης ενός προβλήματος. 1. Δώστε τον ορισμό του προβλήματος. 2. Σι εννοούμε με τον όρο επίλυση ενός προβλήματος; 3. Σο πρόβλημα του 2000. 4. Σι εννοούμε με τον όρο κατανόηση προβλήματος; 5. Σι ονομάζουμε χώρο προβλήματος; 6.

Διαβάστε περισσότερα

! Δεδομένα: ανεξάρτητα από τύπο και προέλευση, στον υπολογιστή υπάρχουν σε μία μορφή: 0 και 1

! Δεδομένα: ανεξάρτητα από τύπο και προέλευση, στον υπολογιστή υπάρχουν σε μία μορφή: 0 και 1 Ιόνιο Πανεπιστήμιο Τμήμα Πληροφορικής Εισαγωγή στην Επιστήμη των Υπολογιστών 5-6 Αναπαράσταση Μη Αριθμητικών Δεδομένων (κείμενο, ήχος και εικόνα στον υπολογιστή) http://di.ionio.gr/~mistral/tp/csintro/

Διαβάστε περισσότερα

Β1.1 Αναπαράσταση Δεδομένων και Χωρητικότητα Μονάδων Αποθήκευσης

Β1.1 Αναπαράσταση Δεδομένων και Χωρητικότητα Μονάδων Αποθήκευσης Β1.1 Αναπαράσταση Δεδομένων και Χωρητικότητα Μονάδων Αποθήκευσης Τι θα μάθουμε σήμερα: Να αναφέρουμε τον τρόπο αναπαράστασης των δεδομένων (δυαδικό σύστημα) Να αναγνωρίζουμε πώς γράμματα και σύμβολα από

Διαβάστε περισσότερα

Μ Ε Ρ Ο Σ Γ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΗΛΕΚΤΡΟΝΙΚΩΝ ΥΠΟΛΟΓΙΣΤΩΝ

Μ Ε Ρ Ο Σ Γ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΗΛΕΚΤΡΟΝΙΚΩΝ ΥΠΟΛΟΓΙΣΤΩΝ Μ Ε Ρ Ο Σ Γ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΗΛΕΚΤΡΟΝΙΚΩΝ ΥΠΟΛΟΓΙΣΤΩΝ 6 ΕΙΣΑΓΩΓΗ ΣΤΟΝ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟ 6.1 Γλώσσες Προγραμματισμού 6.1.1 Γλώσσες μηχανής (1 η γενιά) Η γλώσσα στην οποία ένας ηλεκτρονικός υπολογιστής καταλαβαίνει

Διαβάστε περισσότερα

Εισαγωγή στον Προγραμματισμό

Εισαγωγή στον Προγραμματισμό Εισαγωγή στον Προγραμματισμό Ενότητα 3 Λειτουργίες σε Bits, Αριθμητικά Συστήματα Χρήστος Γκουμόπουλος Πανεπιστήμιο Αιγαίου Τμήμα Μηχανικών Πληροφοριακών και Επικοινωνιακών Συστημάτων Φύση υπολογιστών Η

Διαβάστε περισσότερα

Ανάπτυξη Εφαρµογών σε Προγραµµατιστικό Περιβάλλον

Ανάπτυξη Εφαρµογών σε Προγραµµατιστικό Περιβάλλον Ανάπτυξη Εφαρµογών σε Προγραµµατιστικό Περιβάλλον Κεφάλαιο 6ο Εισαγωγή στον Προγραµµατισµό Μέρος Πρώτο (6.1, 6.2 και 6.3) Α. Ερωτήσεις Σωστού Λάθους 1. Η γλώσσα µηχανής είναι µία γλώσσα υψηλού επιπέδου.

Διαβάστε περισσότερα

ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ Κεφάλαιο 6 ο

ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ Κεφάλαιο 6 ο Με τι ασχολείται ο προγραμματισμός; Ο προγραμματισμός ασχολείται με την διατύπωση του αλγορίθμου σε κατανοητή μορφή από τον Η/Υ, δηλ. τη δημιουργία του προγράμματος, του συνόλου των εντολών που πρέπει

Διαβάστε περισσότερα

Τμήμα Λογιστικής. Εισαγωγή στους Ηλεκτρονικούς Υπολογιστές. Μαθήματα 6 και 7 Αναπαράσταση της Πληροφορίας στον Υπολογιστή. 1 Στέργιος Παλαμάς

Τμήμα Λογιστικής. Εισαγωγή στους Ηλεκτρονικούς Υπολογιστές. Μαθήματα 6 και 7 Αναπαράσταση της Πληροφορίας στον Υπολογιστή. 1 Στέργιος Παλαμάς ΤΕΙ Ηπείρου Παράρτημα Πρέβεζας Τμήμα Λογιστικής Εισαγωγή στους Ηλεκτρονικούς Υπολογιστές Μαθήματα 6 και 7 Αναπαράσταση της Πληροφορίας στον Υπολογιστή 1 1. Αριθμοί: Το Δυαδικό Σύστημα Οι ηλεκτρονικοί υπολογιστές

Διαβάστε περισσότερα

2 ΟΥ και 7 ΟΥ ΚΕΦΑΛΑΙΟΥ

2 ΟΥ και 7 ΟΥ ΚΕΦΑΛΑΙΟΥ ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ ΕΠΙΜΕΛΕΙΑ: ΜΑΡΙΑ Σ. ΖΙΩΓΑ ΚΑΘΗΓΗΤΡΙΑ ΠΛΗΡΟΦΟΡΙΚΗΣ ΘΕΩΡΙΑ 2 ΟΥ και 7 ΟΥ ΚΕΦΑΛΑΙΟΥ ΒΑΣΙΚΕΣ ΕΝΝΟΙΕΣ ΑΛΓΟΡΙΘΜΩΝ και ΔΟΜΗ ΑΚΟΛΟΥΘΙΑΣ 2.1 Να δοθεί ο ορισμός

Διαβάστε περισσότερα

ΚΕΦΑΛΑΙΟ 7 ΕΙ Η, ΤΕΧΝΙΚΕΣ ΚΑΙ ΠΕΡΙΒΑΛΛΟΝΤΑ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ

ΚΕΦΑΛΑΙΟ 7 ΕΙ Η, ΤΕΧΝΙΚΕΣ ΚΑΙ ΠΕΡΙΒΑΛΛΟΝΤΑ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ ΚΕΦΑΛΑΙΟ 7 ΕΙ Η, ΤΕΧΝΙΚΕΣ ΚΑΙ ΠΕΡΙΒΑΛΛΟΝΤΑ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ 7.1. Ανάπτυξη Προγράµµατος Τι είναι το Πρόγραµµα; Το Πρόγραµµα: Είναι ένα σύνολο εντολών για την εκτέλεση ορισµένων λειτουργιών από τον υπολογιστή.

Διαβάστε περισσότερα

Αλγοριθμική & Δομές Δεδομένων- Γλώσσα Προγραμματισμού Ι (PASCAL)

Αλγοριθμική & Δομές Δεδομένων- Γλώσσα Προγραμματισμού Ι (PASCAL) Αλγοριθμική & Δομές Δεδομένων- Γλώσσα Προγραμματισμού Ι (PASCAL) Pascal- Εισαγωγή Η έννοια του προγράμματος Η επίλυση ενός προβλήματος με τον υπολογιστή περιλαμβάνει, όπως έχει ήδη αναφερθεί, τρία εξίσου

Διαβάστε περισσότερα

Βασικές Έννοιες Πληροφορικής

Βασικές Έννοιες Πληροφορικής Βασικές Έννοιες Πληροφορικής 1. Τι είναι ο Ηλεκτρονικός Υπολογιστής Ο Ηλεκτρονικός Υπολογιστής είναι οποιαδήποτε συσκευή μεγάλη ή μικρή που επεξεργάζεται δεδομένα και εκτελεί την εργασία του σύμφωνα με

Διαβάστε περισσότερα

ΠΛΗΡΟΦΟΡΙΑΚΑ & ΤΗΛΕΠΙΚΟΙΝΩΝΙΑΚΑ ΣΥΣΤΗΜΑΤΑ

ΠΛΗΡΟΦΟΡΙΑΚΑ & ΤΗΛΕΠΙΚΟΙΝΩΝΙΑΚΑ ΣΥΣΤΗΜΑΤΑ Οικονοµικό Πανεπιστήµιο Αθηνών Τµήµα ιοικητικής Επιστήµης & Τεχνολογίας ΠΛΗΡΟΦΟΡΙΑΚΑ & ΤΗΛΕΠΙΚΟΙΝΩΝΙΑΚΑ ΣΥΣΤΗΜΑΤΑ Κεφάλαιο 2 Αριθµητικά Συστήµατα και Αριθµητική Υπολογιστών Γιώργος Γιαγλής Περίληψη Κεφαλαίου

Διαβάστε περισσότερα

ΕΙΣΑΓΩΓΗ ΣΤΟΝ ΔΟΜΗΜΕΝΟ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟ

ΕΙΣΑΓΩΓΗ ΣΤΟΝ ΔΟΜΗΜΕΝΟ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟ Πανεπιστήμιο Δυτικής Μακεδονίας Τμήμα Μηχανικών Πληροφορικής και Τηλεπικοινωνιών ΕΙΣΑΓΩΓΗ ΣΤΟΝ ΔΟΜΗΜΕΝΟ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟ Εισαγωγή Κώστας Στεργίου Τι είναι ο Η/Υ; Ένας ηλεκτρονικός υπολογιστής (Η/Υ) είναι

Διαβάστε περισσότερα

Δυαδικη παρασταση αριθμων και συμβολων

Δυαδικη παρασταση αριθμων και συμβολων Δυαδικη παρασταση αριθμων και συμβολων Ενα αριθμητικο συστημα χαρακτηριζεται απο την βαση r και τα συμβολα a i που παιρνουν τις τιμες 0,1,...,r-1. (a n,,a 1,a 0. a -1,a -2,,a -m ) r = =a n r n + +a 1 r+a

Διαβάστε περισσότερα

ΕΠΛ 003: ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΕΠΙΣΤΗΜΗ ΤΗΣ ΠΛΗΡΟΦΟΡΙΚΗΣ

ΕΠΛ 003: ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΕΠΙΣΤΗΜΗ ΤΗΣ ΠΛΗΡΟΦΟΡΙΚΗΣ ΕΠΛ 003: ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΕΠΙΣΤΗΜΗ ΤΗΣ ΠΛΗΡΟΦΟΡΙΚΗΣ Δρ. Κόννης Γιώργος Πανεπιστήμιο Κύπρου - Τμήμα Πληροφορικής Προγραμματισμός Στόχοι 1 Να περιγράψουμε τις έννοιες του Υπολογιστικού Προβλήματος και του Προγράμματος/Αλγορίθμου

Διαβάστε περισσότερα

ΕΠΛ 003: ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΕΠΙΣΤΗΜΗ ΤΗΣ ΠΛΗΡΟΦΟΡΙΚΗΣ. Αναπαράσταση δεδομένων

ΕΠΛ 003: ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΕΠΙΣΤΗΜΗ ΤΗΣ ΠΛΗΡΟΦΟΡΙΚΗΣ. Αναπαράσταση δεδομένων ΕΠΛ 003: ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΕΠΙΣΤΗΜΗ ΤΗΣ ΠΛΗΡΟΦΟΡΙΚΗΣ Αναπαράσταση δεδομένων Υπολογιστικά συστήματα: Στρώματα 1 επικοινωνία εφαρμογές λειτουργικό σύστημα προγράμματα υλικό δεδομένα Τύποι δεδομένων 2 Τα δεδομένα

Διαβάστε περισσότερα

[2] Υπολογιστικά συστήματα: Στρώματα. Τύποι δεδομένων. Μπιτ. επικοινωνία εφαρμογές λειτουργικό σύστημα προγράμματα υλικό

[2] Υπολογιστικά συστήματα: Στρώματα. Τύποι δεδομένων. Μπιτ. επικοινωνία εφαρμογές λειτουργικό σύστημα προγράμματα υλικό Υπολογιστικά συστήματα: Στρώματα 1 ΕΠΛ 003: ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΕΠΙΣΤΗΜΗ ΤΗΣ ΠΛΗΡΟΦΟΡΙΚΗΣ επικοινωνία εφαρμογές λειτουργικό σύστημα προγράμματα υλικό δεδομένα Αναπαράσταση δεδομένων 2 Τύποι δεδομένων Τα δεδομένα

Διαβάστε περισσότερα

5 ΕΙΣΑΓΩΓΗ ΣΤΗ ΘΕΩΡΙΑ ΑΛΓΟΡΙΘΜΩΝ

5 ΕΙΣΑΓΩΓΗ ΣΤΗ ΘΕΩΡΙΑ ΑΛΓΟΡΙΘΜΩΝ 5 ΕΙΣΑΓΩΓΗ ΣΤΗ ΘΕΩΡΙΑ ΑΛΓΟΡΙΘΜΩΝ 5.1 Εισαγωγή στους αλγορίθμους 5.1.1 Εισαγωγή και ορισμοί Αλγόριθμος (algorithm) είναι ένα πεπερασμένο σύνολο εντολών οι οποίες εκτελούν κάποιο ιδιαίτερο έργο. Κάθε αλγόριθμος

Διαβάστε περισσότερα

! Εάν ο αριθμός διαθέτει περισσότερα bits, χρησιμοποιούμε μεγαλύτερες δυνάμεις του 2. ! Προσοχή στη θέση του περισσότερο σημαντικού bit!

! Εάν ο αριθμός διαθέτει περισσότερα bits, χρησιμοποιούμε μεγαλύτερες δυνάμεις του 2. ! Προσοχή στη θέση του περισσότερο σημαντικού bit! Ιόνιο Πανεπιστήμιο Τμήμα Πληροφορικής Εισαγωγή στην Επιστήμη των Υπολογιστών 25-6 Πράξεις με δυαδικούς αριθμούς (αριθμητικές ) http://di.ionio.gr/~mistral/tp/csintro/ Αριθμοί Πράξεις με δυαδικούς αριθμούς

Διαβάστε περισσότερα

Προγραµµατισµός Η/Υ. Μέρος2

Προγραµµατισµός Η/Υ. Μέρος2 Προγραµµατισµός Η/Υ Μέρος2 Περιεχόμενα Επανάληψη Βασικών Σύμβολων Διαγραμμάτων Ροής Αλγόριθμος Ψευδοκώδικας Παραδείγματα Αλγορίθμων Γλώσσες προγραμματισμού 2 Επανάληψη Βασικών Σύμβολων Διαγραμμάτων Ροής

Διαβάστε περισσότερα

Κεφάλαιο 4 ο. Ο Προσωπικός Υπολογιστής

Κεφάλαιο 4 ο. Ο Προσωπικός Υπολογιστής Κεφάλαιο 4 ο Ο Προσωπικός Υπολογιστής Μάθημα 4.3 Ο Επεξεργαστής - Εισαγωγή - Συχνότητα λειτουργίας - Εύρος διαδρόμου δεδομένων - Εύρος διαδρόμου διευθύνσεων - Εύρος καταχωρητών Όταν ολοκληρώσεις το μάθημα

Διαβάστε περισσότερα

1. Βάσεις αριθμητικών συστημάτων 2. Μετατροπές μεταξύ ξύβάσεων 3. Αρνητικοί δυαδικοί αριθμοί 4. Αριθμητικές πράξεις δυαδικών αριθμών

1. Βάσεις αριθμητικών συστημάτων 2. Μετατροπές μεταξύ ξύβάσεων 3. Αρνητικοί δυαδικοί αριθμοί 4. Αριθμητικές πράξεις δυαδικών αριθμών ΑΡΧΙΤΕΚΤΟΝΙΚΗ ΥΠΟΛΟΓΙΣΤΩΝ MHXANIKOI Η/Υ ΚΑΙ ΠΛΗΡΟΦΟΡΙΚΗΣ ΥΑ ΙΚΟΙ ΑΡΙΘΜΟΙ (ΑΚΕΡΑΙΟΙ ΑΡΙΘΜΟΙ) Γ. Τσιατούχας Παράρτηµα A ιάρθρωση 1. Βάσεις αριθμητικών συστημάτων 2. Μετατροπές μεταξύ ξύβάσεων 3. Αρνητικοί

Διαβάστε περισσότερα

Συστήµατα Αριθµών, Πληροφορία, και Ψηφιακή Υπολογιστές

Συστήµατα Αριθµών, Πληροφορία, και Ψηφιακή Υπολογιστές ΚΕΦΑΛΑΙΟ 1 Συστήµατα Αριθµών, Πληροφορία, και Ψηφιακή Υπολογιστές Σελίδες 3-21, 24-26 ΚΕΦΑΛΑΙΟ 1 Περιεχόµενα 1.1 ΨΗΦΙΑΚΗ ΥΠΟΛΟΓΙΣΤΕΣ 1.2 Αναπαράσταση Αριθµών 1.3 Αριθµητικές Λειτουργίες 1.4 εκαδικοί Κώδικες

Διαβάστε περισσότερα

Εργαστήριο ΨΗΦΙΑΚΗ ΛΟΓΙΚΗ. Εισαγωγή

Εργαστήριο ΨΗΦΙΑΚΗ ΛΟΓΙΚΗ. Εισαγωγή Εισαγωγή Εργαστήριο ΨΗΦΙΑΚΗ ΛΟΓΙΚΗ Ξεκινάµε την εργαστηριακή µελέτη της Ψηφιακής Λογικής των Η/Υ εξετάζοντας αρχικά τη µορφή των δεδοµένων που αποθηκεύουν και επεξεργάζονται οι υπολογιστές και προχωρώντας

Διαβάστε περισσότερα

ΗΥ 232. Οργάνωση και Σχεδίαση Υπολογιστών. Διάλεξη 1. Εισαγωγή στο μάθημα. Νίκος Μπέλλας Τμήμα Μηχανικών Η/Υ, Τηλεπικοινωνιών και Δικτύων

ΗΥ 232. Οργάνωση και Σχεδίαση Υπολογιστών. Διάλεξη 1. Εισαγωγή στο μάθημα. Νίκος Μπέλλας Τμήμα Μηχανικών Η/Υ, Τηλεπικοινωνιών και Δικτύων ΗΥ 232 Διάλεξη 1 Εισαγωγή στο μάθημα Νίκος Μπέλλας Τμήμα Μηχανικών Η/Υ, Τηλεπικοινωνιών και Δικτύων Διδάσκων: Οργανωτικά Θέματα Νίκος Μπέλλας, Κτήριο Γκλαβάνη, Γραφείο Β3.7, 2 ος όροφος Προσωπική ιστοσελίδα:

Διαβάστε περισσότερα

Ψηφιακοί Υπολογιστές

Ψηφιακοί Υπολογιστές 1 η Θεµατική Ενότητα : υαδικά Συστήµατα Ψηφιακοί Υπολογιστές Παλαιότερα οι υπολογιστές χρησιµοποιούνταν για αριθµητικούς υπολογισµούς Ψηφίο (digit) Ψηφιακοί Υπολογιστές Σήµατα (signals) : διακριτά στοιχεία

Διαβάστε περισσότερα

Διδακτική της Πληροφορικής ΙΙ

Διδακτική της Πληροφορικής ΙΙ Διδακτική της Πληροφορικής ΙΙ Ομάδα Γ Βότσης Ευστάθιος Γιαζιτσής Παντελής Σπαής Αλέξανδρος Τάτσης Γεώργιος Προβλήματα που αντιμετωπίζουν οι αρχάριοι προγραμματιστές Εισαγωγή Προβλήματα Δυσκολίες Διδακτικό

Διαβάστε περισσότερα

ΕΛΛΗΝΙΚΟ ΑΝΟΙΚΤΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΣΧΟΛΗ ΘΕΤΙΚΩΝ ΕΠΙΣΤΗΜΩΝ ΚΑΙ ΤΕΧΝΟΛΟΓΙΑΣ ΠΡΟΓΡΑΜΜΑ ΣΠΟΥΔΩΝ ΠΛΗΡΟΦΟΡΙΚΗΣ ΘΕΜΑΤΙΚΗ ΕΝΟΤΗΤΑ: ΠΛΗ-21

ΕΛΛΗΝΙΚΟ ΑΝΟΙΚΤΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΣΧΟΛΗ ΘΕΤΙΚΩΝ ΕΠΙΣΤΗΜΩΝ ΚΑΙ ΤΕΧΝΟΛΟΓΙΑΣ ΠΡΟΓΡΑΜΜΑ ΣΠΟΥΔΩΝ ΠΛΗΡΟΦΟΡΙΚΗΣ ΘΕΜΑΤΙΚΗ ΕΝΟΤΗΤΑ: ΠΛΗ-21 ΕΛΛΗΝΙΚΟ ΑΝΟΙΚΤΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΣΧΟΛΗ ΘΕΤΙΚΩΝ ΕΠΙΣΤΗΜΩΝ ΚΑΙ ΤΕΧΝΟΛΟΓΙΑΣ ΠΡΟΓΡΑΜΜΑ ΣΠΟΥΔΩΝ ΠΛΗΡΟΦΟΡΙΚΗΣ ΘΕΜΑΤΙΚΗ ΕΝΟΤΗΤΑ: ΠΛΗ-2 ΨΗΦΙΑΚΗ ΣΧΕΔΙΑΣΗ ΑΣΚΗΣΕΙΙΣ ΓΡΑΠΤΩΝ ΕΡΓΑΣΙΙΩΝ & ΘΕΜΑΤΩΝ ΕΞΕΤΑΣΕΩΝ ΣΥΝΤΕΛΕΣΤΕΣ

Διαβάστε περισσότερα

Τα µπιτ και η σηµασία τους. Σχήµα bit. ΚΕΦΑΛΑΙΟ 1: Αποθήκευση εδοµένων (1/2) 1.7 Αποθήκευση κλασµάτων 1.8 Συµπίεση δεδοµένων 1.9 Σφάλµατα επικοινωνίας

Τα µπιτ και η σηµασία τους. Σχήµα bit. ΚΕΦΑΛΑΙΟ 1: Αποθήκευση εδοµένων (1/2) 1.7 Αποθήκευση κλασµάτων 1.8 Συµπίεση δεδοµένων 1.9 Σφάλµατα επικοινωνίας ΚΕΦΑΛΑΙΟ 1: Αποθήκευση εδοµένων (1/2) ΚΕΦΑΛΑΙΟ 1: Αποθήκευση εδοµένων (2/2) 1.1 Τα bits και ο τρόπος που αποθηκεύονται 1.2 Κύρια µνήµη 1.3 Αποθηκευτικά µέσα 1.4 Αναπαράσταση πληροφοριών ως σχηµάτων bits

Διαβάστε περισσότερα

Γλώσσες Προγραμματισμού Μεταγλωττιστές

Γλώσσες Προγραμματισμού Μεταγλωττιστές Γλώσσες Προγραμματισμού Μεταγλωττιστές Πανεπιστήμιο Μακεδονίας Τμήμα Εφαρμοσμένης Πληροφορικής Ηλίας Σακελλαρίου Δομή Γλώσσες Προγραμματισμού Εισαγωγικά Γλώσσα Μηχανής Γλώσσες υψηλού επιπέδου Μεταγλωττιστές

Διαβάστε περισσότερα

Αρχιτεκτονική Υπολογιστών

Αρχιτεκτονική Υπολογιστών Πανεπιστήμιο Δυτικής Μακεδονίας Τμήμα Μηχανικών Πληροφορικής & Τηλεπικοινωνιών Αρχιτεκτονική Υπολογιστών Ενότητα 4: Πολλαπλασιασμός (MUL,IMUL). Διαίρεση (DIV,IDIV). Εμφάνιση αλφαριθμητικού. Εμφάνιση χαρακτήρα.

Διαβάστε περισσότερα

Η ΑΕΠΠ IN A GLANCE! ΦΡΟΝΤΙΣΤΗΡΙΑ ΠΟΛΥΜΕΝΗ

Η ΑΕΠΠ IN A GLANCE! ΦΡΟΝΤΙΣΤΗΡΙΑ ΠΟΛΥΜΕΝΗ Η ΑΕΠΠ IN A GLANCE! Κατανομή μονάδων: 40 μονάδες το 1 ο Θέμα, από 20 τα υπόλοιπα τρία. Μην χαίρεστε όμως γιατί η «καθαρή» θεωρία περιορίζεται συνήθως- σε 5 ερωτήσεις σωστού ή λάθους και σε 1-2 ερωτήσεις

Διαβάστε περισσότερα

Κεφάλαιο 2. Οργάνωση και διαχείριση της Πληροφορίας στον. Υπολογιστή

Κεφάλαιο 2. Οργάνωση και διαχείριση της Πληροφορίας στον. Υπολογιστή ΑΡΧΙΤΕΚΤΟΝΙΚΗ ΥΠΟΛΟΓΙΣΤΩΝ Κεφάλαιο 2 Οργάνωση και διαχείριση της Πληροφορίας στον Υπολογιστή Δεδομένα και Εντολές πληροφορία δεδομένα εντολές αριθμητικά δδ δεδομένα κείμενο εικόνα Επιλογή Αναπαράστασης

Διαβάστε περισσότερα

Εισαγωγή στον Προγραμματισμό

Εισαγωγή στον Προγραμματισμό Εισαγωγή στον Προγραμματισμό Εισαγωγή Δημήτρης Μιχαήλ Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο Ακ. Έτος 2012-2013 Βιβλιογραφία "C Προγραμματισμός", Deitel & Deitel, Πέμπτη Έκδοση, Εκδόσεις

Διαβάστε περισσότερα

ΕΙΣΑΓΩΓΗ ΣΤΟΥΣ ΑΛΓΟΡΙΘΜΟΥΣ ΚΑΙ ΣΤΟΝ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟ

ΕΙΣΑΓΩΓΗ ΣΤΟΥΣ ΑΛΓΟΡΙΘΜΟΥΣ ΚΑΙ ΣΤΟΝ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟ ΕΙΣΑΓΩΓΗ ΣΤΟΥΣ ΑΛΓΟΡΙΘΜΟΥΣ ΚΑΙ ΣΤΟΝ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΑΙΓΑΙΟΥ ΤΜΗΜΑ ΠΟΛΙΤΙΣΜΙΚΗΣ ΤΕΧΝΟΛΟΓΙΑΣ ΚΑΙ ΕΠΙΚΟΙΝΩΝΙΑΣ Διδάσκουσα Δρ Β. Καβακλή Χειμερινό Εξάμηνο 2001 1 Δοκιμή Έλεγχος Αλγορίθμου Για να

Διαβάστε περισσότερα

1 Αριθμητική κινητής υποδιαστολής και σφάλματα στρογγύλευσης

1 Αριθμητική κινητής υποδιαστολής και σφάλματα στρογγύλευσης 1 Αριθμητική κινητής υποδιαστολής και σφάλματα στρογγύλευσης Στη συγκεκριμένη ενότητα εξετάζουμε θέματα σχετικά με την αριθμητική πεπερασμένης ακρίβειας που χρησιμοποιούν οι σημερινοί υπολογιστές και τα

Διαβάστε περισσότερα

Ενότητα 4. Εισαγωγή στην Πληροφορική. Αναπαράσταση δεδοµένων. Αναπαράσταση πληροφορίας. υαδικοί αριθµοί. Χειµερινό Εξάµηνο 2006-07

Ενότητα 4. Εισαγωγή στην Πληροφορική. Αναπαράσταση δεδοµένων. Αναπαράσταση πληροφορίας. υαδικοί αριθµοί. Χειµερινό Εξάµηνο 2006-07 Ενότητα 4 Εισαγωγή στην Πληροφορική Κεφάλαιο 4Α: Αναπαράσταση πληροφορίας Κεφάλαιο 4Β: Επεξεργαστές που χρησιµοποιούνται σε PCs Χειµερινό Εξάµηνο 2006-07 ρ. Παναγιώτης Χατζηδούκας (Π..407/80) Εισαγωγή

Διαβάστε περισσότερα

Κεφάλαιο 4: Λογισμικό Συστήματος

Κεφάλαιο 4: Λογισμικό Συστήματος Κεφάλαιο 4: Λογισμικό Συστήματος Ερωτήσεις 1. Να αναφέρετε συνοπτικά τις κατηγορίες στις οποίες διακρίνεται το λογισμικό συστήματος. Σε ποια ευρύτερη κατηγορία εντάσσεται αυτό; Το λογισμικό συστήματος

Διαβάστε περισσότερα

Οργάνωση και Σχεδίαση Υπολογιστών Η ιασύνδεση Υλικού και Λογισµικού, 4 η έκδοση. Κεφάλαιο 3. Αριθµητική για υπολογιστές

Οργάνωση και Σχεδίαση Υπολογιστών Η ιασύνδεση Υλικού και Λογισµικού, 4 η έκδοση. Κεφάλαιο 3. Αριθµητική για υπολογιστές Οργάνωση και Σχεδίαση Υπολογιστών Η ιασύνδεση Υλικού και Λογισµικού, 4 η έκδοση Κεφάλαιο 3 Αριθµητική για υπολογιστές Ασκήσεις Η αρίθµηση των ασκήσεων είναι από την 4 η έκδοση του «Οργάνωση και Σχεδίαση

Διαβάστε περισσότερα

Η-Υ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ. Εργαστήριο 1 Εισαγωγή στη C. Σοφία Μπαλτζή s.mpaltzi@di.uoa.gr

Η-Υ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ. Εργαστήριο 1 Εισαγωγή στη C. Σοφία Μπαλτζή s.mpaltzi@di.uoa.gr Η-Υ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ Εργαστήριο 1 Εισαγωγή στη C Σοφία Μπαλτζή s.mpaltzi@di.uoa.gr Διαδικαστικά Ιστοσελίδα μαθήματος: http://eclass.uoa.gr/courses/f30/ Υποχρεωτική παρακολούθηση: Παρασκευή 14:00 16:00 στην

Διαβάστε περισσότερα

Αριθμητικά Συστήματα Κώδικες

Αριθμητικά Συστήματα Κώδικες Αριθμητικά Συστήματα Κώδικες 1.1 Εισαγωγή Κεφάλαιο 1 Ένα αριθμητικό σύστημα ορίζει ένα σύνολο τιμών που χρησιμοποιούνται για την αναπαράσταση μίας ποσότητας. Ποσοτικοποιώντας τιμές και αντικείμενα και

Διαβάστε περισσότερα

1. Πότε χρησιμοποιούμε την δομή επανάληψης; Ποιες είναι οι διάφορες εντολές (μορφές) της;

1. Πότε χρησιμοποιούμε την δομή επανάληψης; Ποιες είναι οι διάφορες εντολές (μορφές) της; 1. Πότε χρησιμοποιούμε την δομή επανάληψης; Ποιες είναι οι διάφορες (μορφές) της; Η δομή επανάληψης χρησιμοποιείται όταν μια σειρά εντολών πρέπει να εκτελεστεί σε ένα σύνολο περιπτώσεων, που έχουν κάτι

Διαβάστε περισσότερα

ΑΡΧΙΤΕΚΤΟΝΙΚΗ ΥΠΟΛΟΓΙΣΤΩΝ. Κεφάλαιο 3

ΑΡΧΙΤΕΚΤΟΝΙΚΗ ΥΠΟΛΟΓΙΣΤΩΝ. Κεφάλαιο 3 ΑΡΧΙΤΕΚΤΟΝΙΚΗ ΥΠΟΛΟΓΙΣΤΩΝ Κεφάλαιο 3 Κεντρική Μονάδα Επεξεργασίας Κεντρική Μονάδα Επεξεργασίας Μονάδα επεξεργασίας δεδομένων Μονάδα ελέγχου Μονάδα επεξεργασίας δεδομένων Δομή Αριθμητικής Λογικής Μονάδας

Διαβάστε περισσότερα

Υπάρχουν δύο τύποι μνήμης, η μνήμη τυχαίας προσπέλασης (Random Access Memory RAM) και η μνήμη ανάγνωσης-μόνο (Read-Only Memory ROM).

Υπάρχουν δύο τύποι μνήμης, η μνήμη τυχαίας προσπέλασης (Random Access Memory RAM) και η μνήμη ανάγνωσης-μόνο (Read-Only Memory ROM). Μνήμες Ένα από τα βασικά πλεονεκτήματα των ψηφιακών συστημάτων σε σχέση με τα αναλογικά, είναι η ευκολία αποθήκευσης μεγάλων ποσοτήτων πληροφοριών, είτε προσωρινά είτε μόνιμα Οι πληροφορίες αποθηκεύονται

Διαβάστε περισσότερα

1ο. Η αριθµητική του υπολογιστή

1ο. Η αριθµητική του υπολογιστή 1ο. Η αριθµητική του υπολογιστή 1.1 Τί είναι Αριθµητική Ανάλυση Υπάρχουν πολλά προβλήµατα στη µαθηµατική επιστήµη για τα οποία δεν υπάρχουν αναλυτικές εκφράσεις λύσεων. Στις περιπτώσεις αυτές έχουν αναπτυχθεί

Διαβάστε περισσότερα

ΟΜΑΔΑ Ε ΓΕΩΡΓΙΟΥ ΦΩΤΕΙΝΗ ΗΛΙΟΥΔΗ ΑΦΡΟΔΙΤΗ ΜΕΤΑΛΛΙΔΟΥ ΧΡΥΣΗ ΝΙΖΑΜΗΣ ΑΛΕΞΑΝΔΡΟΣ ΤΖΗΚΑΛΑΓΙΑΣ ΑΝΔΡΕΑΣ ΤΡΙΓΚΑΣ ΑΓΓΕΛΟΣ

ΟΜΑΔΑ Ε ΓΕΩΡΓΙΟΥ ΦΩΤΕΙΝΗ ΗΛΙΟΥΔΗ ΑΦΡΟΔΙΤΗ ΜΕΤΑΛΛΙΔΟΥ ΧΡΥΣΗ ΝΙΖΑΜΗΣ ΑΛΕΞΑΝΔΡΟΣ ΤΖΗΚΑΛΑΓΙΑΣ ΑΝΔΡΕΑΣ ΤΡΙΓΚΑΣ ΑΓΓΕΛΟΣ ΟΜΑΔΑ Ε ΓΕΩΡΓΙΟΥ ΦΩΤΕΙΝΗ ΗΛΙΟΥΔΗ ΑΦΡΟΔΙΤΗ ΜΕΤΑΛΛΙΔΟΥ ΧΡΥΣΗ ΝΙΖΑΜΗΣ ΑΛΕΞΑΝΔΡΟΣ ΤΖΗΚΑΛΑΓΙΑΣ ΑΝΔΡΕΑΣ ΤΡΙΓΚΑΣ ΑΓΓΕΛΟΣ Η ΔΙΔΑΣΚΑΛΙΑ ΤΟΥ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ ΣΤΟ ΛΥΚΕΙΟ Εισαγωγή Η μεγάλη ανάπτυξη και ο ρόλος που

Διαβάστε περισσότερα

ΚΕΦΑΛΑΙΟ 2: Τύποι δεδομένων και εμφάνιση στοιχείων...33

ΚΕΦΑΛΑΙΟ 2: Τύποι δεδομένων και εμφάνιση στοιχείων...33 ΠΕΡΙΕΧΟΜΕΝΑ Πρόλογος του συγγραφέα... 13 Πρόλογος του καθηγητή Τιμολέοντα Σελλή... 15 ΚΕΦΑΛΑΙΟ 1: Εργαλεία γλωσσών προγραμματισμού...17 1.1 Γλώσσες προγραμματισμού τρίτης γεννεάς... 18 τι είναι η γλώσσα

Διαβάστε περισσότερα

Μέρος Α. Λογισµικό & Προγράµµατα συστήµατος και εφαρµογών ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΠΛΗΡΟΦΟΡΙΚΗ. Το σηµερινό µάθηµα. Λογισµικό συστηµάτων & εφαρµογών

Μέρος Α. Λογισµικό & Προγράµµατα συστήµατος και εφαρµογών ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΠΛΗΡΟΦΟΡΙΚΗ. Το σηµερινό µάθηµα. Λογισµικό συστηµάτων & εφαρµογών ΠΑΝΕΠΙΣΤΗΜΙΟ ΑΙΓΑΙΟΥ ΤΜΗΜΑ ΜΗΧΑΝΙΚΩΝ ΟΙΚΟΝΟΜΙΑΣ ΚΑΙ ΙΟΙΚΗΣΗΣ Το σηµερινό µάθηµα ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΠΛΗΡΟΦΟΡΙΚΗ ιδάσκων: Πέτρος Βασιλικός Λογισµικό Υπολογιστικών Συστηµάτων Λογισµικό & Προγράµµατα συστηµάτων

Διαβάστε περισσότερα

κεφάλαιο Βασικές Έννοιες Επιστήμη των Υπολογιστών

κεφάλαιο Βασικές Έννοιες Επιστήμη των Υπολογιστών κεφάλαιο 1 Βασικές Έννοιες Επιστήμη 9 1Εισαγωγή στις Αρχές της Επιστήμης των Η/Υ Στόχοι Στόχος του κεφαλαίου είναι οι μαθητές: να γνωρίσουν βασικές έννοιες και τομείς της Επιστήμης. Λέξεις κλειδιά Επιστήμη

Διαβάστε περισσότερα

Προγραμματισμός Η/Υ 1 (Εργαστήριο)

Προγραμματισμός Η/Υ 1 (Εργαστήριο) Προγραμματισμός Η/Υ 1 (Εργαστήριο) Ενότητα 1: Εισαγωγή στη C - Αλγόριθμοι Καθηγήτρια Εφαρμογών: Τσαγκαλίδου Ροδή Τμήμα: Ηλεκτρολόγων Μηχανικών Τ.Ε. Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε

Διαβάστε περισσότερα

ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ ΕΠΙΜΕΛΕΙΑ: ΜΑΡΙΑ Σ. ΖΙΩΓΑ ΚΑΘΗΓΗΤΡΙΑ ΠΛΗΡΟΦΟΡΙΚΗΣ 1 ΟΥ ΚΕΦΑΛΑΙΟΥ ΑΝΑΛΥΣΗ ΠΡΟΒΛΗΜΑΤΟΣ

ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ ΕΠΙΜΕΛΕΙΑ: ΜΑΡΙΑ Σ. ΖΙΩΓΑ ΚΑΘΗΓΗΤΡΙΑ ΠΛΗΡΟΦΟΡΙΚΗΣ 1 ΟΥ ΚΕΦΑΛΑΙΟΥ ΑΝΑΛΥΣΗ ΠΡΟΒΛΗΜΑΤΟΣ ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ ΕΠΙΜΕΛΕΙΑ: ΜΑΡΙΑ Σ. ΖΙΩΓΑ ΚΑΘΗΓΗΤΡΙΑ ΠΛΗΡΟΦΟΡΙΚΗΣ ΘΕΩΡΙΑ 1 ΟΥ ΚΕΦΑΛΑΙΟΥ ΑΝΑΛΥΣΗ ΠΡΟΒΛΗΜΑΤΟΣ 1.1 Να δοθεί ο ορισμός του προβλήματος καθώς και τρία παραδείγματα

Διαβάστε περισσότερα

ΠΛΗΡΟΦΟΡΙΚΗ ΣΤΟ ΕΝΙΑΙΟ ΛΥΚΕΙΟ

ΠΛΗΡΟΦΟΡΙΚΗ ΣΤΟ ΕΝΙΑΙΟ ΛΥΚΕΙΟ ΥΠΟΥΡΓΕΙΟ ΠΑΙΔΕΙΑΣ ΚΑΙ ΠΟΛΙΤΙΣΜΟΥ ΠΛΗΡΟΦΟΡΙΚΗ ΣΤΟ ΕΝΙΑΙΟ ΛΥΚΕΙΟ ΑΝΑΛΥΤΙΚΟ ΠΡΟΓΡΑΜΜΑ Α ΛΥΚΕΙΟΥ Σεπτέμβριος 2007 ΑΝΑΛΥΤΙΚΟ ΠΡΟΓΡΑΜΜΑ - Α ΕΝΙΑΙΟΥ ΛΥΚΕΙΟΥ Το μάθημα της Πληροφορικής στην Α Λυκείου έχει ως

Διαβάστε περισσότερα

ΙΑΓΩΝΙΣΜΑ ΣΤΗΝ ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΘΕΜΑ 1 Α.

ΙΑΓΩΝΙΣΜΑ ΣΤΗΝ ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΘΕΜΑ 1 Α. ΙΑΓΩΝΙΣΜΑ ΣΤΗΝ ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΘΕΜΑ 1 Α. 1. Αν το Α έχει την τιµή 10 και το Β την τιµή 20 τότε η έκφραση (Α > 8 ΚΑΙ Β < 20) Ή (Α > 10 Ή Β = 10) είναι αληθής 2. Σε περίπτωση εµφωλευµένων βρόχων, ο εσωτερικός

Διαβάστε περισσότερα

Κεφάλαιο 2: Μεταφραστές

Κεφάλαιο 2: Μεταφραστές Κεφάλαιο 2: Μεταφραστές Αρχές Γλωσσών και Προγραμματισμού Λειτουργία Μετάφρασης ΑΡΧΙΚΗ ΓΛΩΣΣΑ (Source) L A ΓΛΩΣΣΑ ΥΛΟΠΟΙΗΣΗΣ ΜΕΤΑΦΡΑΣΤΗ (Implementation) L Y ΤΕΛΙΚΗ ΓΛΩΣΣΑ (Target) L T Αρχικό Πρόγραμμα

Διαβάστε περισσότερα

Περί Προγραμματισμού και Γλωσσών Προγραμματισμού

Περί Προγραμματισμού και Γλωσσών Προγραμματισμού ΚΕΦΑΛΑΙΟ 1 ο Περί Προγραμματισμού και Γλωσσών Προγραμματισμού Προγράμματα και Λειτουργικά Συστήματα Οι ηλεκτρονικοί υπολογιστές είναι ηλεκτρονικές συσκευές (όπως είναι και ένα ραδιόφωνο) που επιτρέπουν

Διαβάστε περισσότερα

Γεώργιος Φίλιππας 23/8/2015

Γεώργιος Φίλιππας 23/8/2015 MACROWEB Προβλήματα Γεώργιος Φίλιππας 23/8/2015 Παραδείγματα Προβλημάτων. Πως ορίζεται η έννοια πρόβλημα; Από ποιους παράγοντες εξαρτάται η κατανόηση ενός προβλήματος; Τι εννοούμε λέγοντας χώρο ενός προβλήματος;

Διαβάστε περισσότερα

ΑΣΚΗΣΕΙΣ ΣΤΑ ΣΥΣΤΗΜΑΤΑ ΑΡΙΘΜΗΣΗΣ (σελ. 30-34 στο ΜΥ1011Χ.pdf)

ΑΣΚΗΣΕΙΣ ΣΤΑ ΣΥΣΤΗΜΑΤΑ ΑΡΙΘΜΗΣΗΣ (σελ. 30-34 στο ΜΥ1011Χ.pdf) ΑΣΚΗΣΕΙΣ ΣΤΑ ΣΥΣΤΗΜΑΤΑ ΑΡΙΘΜΗΣΗΣ (σελ. 30-34 στο ΜΥ1011Χ.pdf) Για να λύνετε εύκολα ασκήσεις στα συστήματα αρίθμησης θα πρέπει να απομνημονεύσετε τα πρώτα 17 βάρη του δυαδικού συστήματος από 2 0 μέχρι 2

Διαβάστε περισσότερα

Αρχιτεκτονική Υπολογιστών Ασκήσεις Εργαστηρίου

Αρχιτεκτονική Υπολογιστών Ασκήσεις Εργαστηρίου Αρχιτεκτονική Υπολογιστών Ασκήσεις Εργαστηρίου Ενότητα: ΕΡΓΑΣΤΗΡΙΑΚΗ ΑΣΚΗΣΗ Νο 02 Δρ. Μηνάς Δασυγένης mdasyg@ieee.org Τμήμα Μηχανικών Πληροφορικής και Τηλεπικοινωνιών Εργαστήριο Ψηφιακών Συστημάτων και

Διαβάστε περισσότερα

9. Συστολικές Συστοιχίες Επεξεργαστών

9. Συστολικές Συστοιχίες Επεξεργαστών Κεφάλαιο 9: Συστολικές συστοιχίες επεξεργαστών 208 9. Συστολικές Συστοιχίες Επεξεργαστών Οι συστολικές συστοιχίες επεξεργαστών είναι επεξεργαστές ειδικού σκοπού οι οποίοι είναι συνήθως προσκολλημένοι σε

Διαβάστε περισσότερα

ΣΗΜΕΙΩΣΕΙΣ ΣΤΗΝ ΠΛΗΡΟΦΟΡΙΚΗ

ΣΗΜΕΙΩΣΕΙΣ ΣΤΗΝ ΠΛΗΡΟΦΟΡΙΚΗ Ο ηλεκτρονικός υπολογιστής είναι μια ηλεκτρονική συσκευή που έχει την ικανότητα να επεξεργάζεται μεγάλο όγκο πληροφοριών και δεδομένων με ταχύτητα και ακρίβεια. Επίσης ένας η/υ μπορεί να αποθηκεύσει πληροφορίες,

Διαβάστε περισσότερα

Κεφάλαιο 5ο: Ακέραιος προγραμματισμός

Κεφάλαιο 5ο: Ακέραιος προγραμματισμός Κεφάλαιο 5ο: Ακέραιος προγραμματισμός 5.1 Εισαγωγή Ο ακέραιος προγραμματισμός ασχολείται με προβλήματα γραμμικού προγραμματισμού στα οποία μερικές ή όλες οι μεταβλητές είναι ακέραιες. Ένα γενικό πρόβλημα

Διαβάστε περισσότερα

7.5 Πρωτόκολλο IP. Τεχνολογία ικτύων Επικοινωνιών ΙΙ

7.5 Πρωτόκολλο IP. Τεχνολογία ικτύων Επικοινωνιών ΙΙ Τεχνολογία ικτύων Επικοινωνιών ΙΙ 7.5 Πρωτόκολλο IP 38. Τι είναι το πρωτόκολλο ιαδικτύου (Internet Protocol, IP); Είναι το βασικό πρωτόκολλο του επιπέδου δικτύου της τεχνολογίας TCP/IP. Βασίζεται στα αυτοδύναµα

Διαβάστε περισσότερα

Αριθμητική εύρεση ριζών μη γραμμικών εξισώσεων

Αριθμητική εύρεση ριζών μη γραμμικών εξισώσεων Αριθμητική εύρεση ριζών μη γραμμικών εξισώσεων Με τον όρο μη γραμμικές εξισώσεις εννοούμε εξισώσεις της μορφής: f( ) 0 που προέρχονται από συναρτήσεις f () που είναι μη γραμμικές ως προς. Περιέχουν δηλαδή

Διαβάστε περισσότερα

Αρχιτεκτονική Υπολογιστών

Αρχιτεκτονική Υπολογιστών Τμήμα Μηχανικών Πληροφορικής & Τηλεπικοινωνιών Αρχιτεκτονική Υπολογιστών Ενότητα 13: (Μέρος Β ) Λειτουργικό Σύστημα Δρ. Μηνάς Δασυγένης mdasyg@ieee.org Εργαστήριο Ψηφιακών Συστημάτων και Αρχιτεκτονικής

Διαβάστε περισσότερα

Λειτουργικά. Τεχνολογικό Εκπαιδευτικό Ίδρυμα Δυτικής Μακεδονίας Σιώζιος Κων/νος - Πληροφορική Ι

Λειτουργικά. Τεχνολογικό Εκπαιδευτικό Ίδρυμα Δυτικής Μακεδονίας Σιώζιος Κων/νος - Πληροφορική Ι Λειτουργικά Συστήματα 1 Λογισμικό του Υπολογιστή Για να λειτουργήσει ένας Η/Υ εκτός από το υλικό του, είναι απαραίτητο και το λογισμικό Το σύνολο των προγραμμάτων που συντονίζουν τις λειτουργίες του υλικού

Διαβάστε περισσότερα

ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝΩ ΤΕΧΝΟΛΟΓΙΚΗΣ ΚΑΤΕΥΘΥΝΣΗΣ Γ ΛΥΚΕΙΟΥ

ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝΩ ΤΕΧΝΟΛΟΓΙΚΗΣ ΚΑΤΕΥΘΥΝΣΗΣ Γ ΛΥΚΕΙΟΥ ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝΩ ΤΕΧΝΟΛΟΓΙΚΗΣ ΚΑΤΕΥΘΥΝΣΗΣ Γ ΛΥΚΕΙΟΥ ΘΕΜΑ 1 ο : Α. Να αναφέρετε ονομαστικά τις βασικές λειτουργίες (πράξεις) επί των δομών δεδομένων. Μονάδες 8 Β. Στον

Διαβάστε περισσότερα

Ανάλυση Απαιτήσεων Απαιτήσεις Λογισµικού

Ανάλυση Απαιτήσεων Απαιτήσεις Λογισµικού ΧΑΡΟΚΟΠΕΙΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ ΚΑΙ ΤΗΛΕΜΑΤΙΚΗΣ Ανάλυση Απαιτήσεων Απαιτήσεις Λογισµικού Μάρα Νικολαϊδου Δραστηριότητες Διαδικασιών Παραγωγής Λογισµικού Καθορισµός απαιτήσεων και εξαγωγή προδιαγραφών

Διαβάστε περισσότερα

ΣΧΕΔΙΟ ΜΑΘΗΜΑΤΟΣ: ΜΑΘΗΜΑΤΙΚΑ ΣΤ ΔΗΜΟΤΙΚΟΥ «ΤΑ ΚΛΑΣΜΑΤΑ»

ΣΧΕΔΙΟ ΜΑΘΗΜΑΤΟΣ: ΜΑΘΗΜΑΤΙΚΑ ΣΤ ΔΗΜΟΤΙΚΟΥ «ΤΑ ΚΛΑΣΜΑΤΑ» ΣΧΕΔΙΟ ΜΑΘΗΜΑΤΟΣ: ΜΑΘΗΜΑΤΙΚΑ ΣΤ ΔΗΜΟΤΙΚΟΥ «ΤΑ ΚΛΑΣΜΑΤΑ» Νικόλαος Μπαλκίζας 1. ΕΙΣΑΓΩΓΗ Σκοπός του σχεδίου μαθήματος είναι να μάθουν όλοι οι μαθητές της τάξης τις έννοιες της ισοδυναμίας των κλασμάτων,

Διαβάστε περισσότερα

5.1 Θεωρητική εισαγωγή

5.1 Θεωρητική εισαγωγή ΨΗΦΙΑΚΑ ΚΥΚΛΩΜΑΤΑ - ΕΡΓΑΣΤΗΡΙΑΚΗ ΑΣΚΗΣΗ 5 ΚΩ ΙΚΟΠΟΙΗΣΗ BCD Σκοπός: Η κατανόηση της µετατροπής ενός τύπου δυαδικής πληροφορίας σε άλλον (κωδικοποίηση/αποκωδικοποίηση) µε τη µελέτη της κωδικοποίησης BCD

Διαβάστε περισσότερα

Λειτουργικά Συστήματα (ΙΙ) (διαχείριση αρχείων)

Λειτουργικά Συστήματα (ΙΙ) (διαχείριση αρχείων) Ιόνιο Πανεπιστήμιο Τμήμα Πληροφορικής Εισαγωγή στην Επιστήμη των Υπολογιστών 2015-16 Λειτουργικά Συστήματα (ΙΙ) (διαχείριση αρχείων) http://di.ionio.gr/~mistral/tp/csintro/ Μ.Στεφανιδάκης Λειτουργικό Σύστημα:

Διαβάστε περισσότερα

Η γλώσσα προγραμματισμού C

Η γλώσσα προγραμματισμού C Η γλώσσα προγραμματισμού C Εισαγωγή στη C Λίγα λόγια για την C Γλώσσα προγραμματισμού υψηλού επιπέδου. Σχεδιάστηκε και υλοποιήθηκε από τον Dennis Richie στις αρχές της δεκαετίας του 1970 (Bell Labs). Η

Διαβάστε περισσότερα

Διάλεξη 2η: Αλγόριθμοι και Προγράμματα

Διάλεξη 2η: Αλγόριθμοι και Προγράμματα Διάλεξη 2η: Αλγόριθμοι και Προγράμματα Τμήμα Επιστήμης Υπολογιστών, Πανεπιστήμιο Κρήτης Εισαγωγή στην Επιστήμη Υπολογιστών Βασίζεται σε διαφάνειες του Κ Παναγιωτάκη Πρατικάκης (CSD) Αλγόριθμοι και Προγράμματα

Διαβάστε περισσότερα

ΦΥΛΛΟ ΕΡΓΑΣΙΑΣ για το Δυαδικό Σύστημα Αρίθμησης

ΦΥΛΛΟ ΕΡΓΑΣΙΑΣ για το Δυαδικό Σύστημα Αρίθμησης Δραστηριότητα 8 ης εβδομάδας ΟΜΑΔΑΣ Α: Γ. Πολυμέρης, Χ. Ηλιούδη, Ν. Μαλλιαρός και Δ. Θεοτόκης ΦΥΛΛΟ ΕΡΓΑΣΙΑΣ για το Δυαδικό Σύστημα Αρίθμησης Περιγραφή Η συγκεκριμένη δραστηριότητα αποτελεί μια πρόταση

Διαβάστε περισσότερα

Κεφάλαιο 1: Εισαγωγή. Αρχές Γλωσσών και Προγραμματισμού και Μεταφραστών. Γιάννης Γαροφαλάκης ΤΜΗΥΠ - Πανεπιστήμιο Πατρών

Κεφάλαιο 1: Εισαγωγή. Αρχές Γλωσσών και Προγραμματισμού και Μεταφραστών. Γιάννης Γαροφαλάκης ΤΜΗΥΠ - Πανεπιστήμιο Πατρών Κεφάλαιο 1: Εισαγωγή Αρχές Γλωσσών και Προγραμματισμού και Μεταφραστών Εισαγωγή (1) Γιατί υπάρχουν τόσες πολλές Γλώσσες Προγραμματισμού (ΓΠ); o Εξέλιξη έχουμε μάθει καλύτερους τρόπους να κάνουμε πράγματα

Διαβάστε περισσότερα

Αρχιτεκτονική Υπολογιστών Εργαστήριο

Αρχιτεκτονική Υπολογιστών Εργαστήριο Αρχιτεκτονική Υπολογιστών Εργαστήριο Ενότητα: ΠΑΡΑΔΕΙΓΜΑ ΑΠΟΣΦΑΛΜΑΤΩΣΗΣ Δρ. Μηνάς Δασυγένης mdasyg@ieee.org Τμήμα Μηχανικών Πληροφορικής και Τηλεπικοινωνιών Εργαστήριο Ψηφιακών Συστημάτων και Αρχιτεκτονικής

Διαβάστε περισσότερα

- Εισαγωγή - Επίπεδα μνήμης - Ολοκληρωμένα κυκλώματα μνήμης - Συσκευασίες μνήμης προσωπικών υπολογιστών

- Εισαγωγή - Επίπεδα μνήμης - Ολοκληρωμένα κυκλώματα μνήμης - Συσκευασίες μνήμης προσωπικών υπολογιστών Μάθημα 4.5 Η Μνήμη - Εισαγωγή - Επίπεδα μνήμης - Ολοκληρωμένα κυκλώματα μνήμης - Συσκευασίες μνήμης προσωπικών υπολογιστών Όταν ολοκληρώσεις το μάθημα αυτό θα μπορείς: Να αναφέρεις τα κυριότερα είδη μνήμης

Διαβάστε περισσότερα

Ιόνιο Πανεπιστήμιο Τμήμα Πληροφορικής. Ακαδημαϊκό Έτος 2007-2008

Ιόνιο Πανεπιστήμιο Τμήμα Πληροφορικής. Ακαδημαϊκό Έτος 2007-2008 Ιόνιο Πανεπιστήμιο Τμήμα Πληροφορικής Ακαδημαϊκό Έτος 2007-2008 ΠΑΡΑΔΟΤΕΟ: Έκθεση Προόδου Υλοποίησης του Μαθήματος Εισαγωγή στην Επιστήμη των Υπολογιστών Διδάσκοντες: Θ.Ανδρόνικος - Μ.Στεφανιδάκης Περιεχόμενα

Διαβάστε περισσότερα

Τμήμα Χρηματοοικονομικής & Ελεγκτικής ΤΕΙ Ηπείρου Παράρτημα Πρέβεζας. Πληροφορική Ι ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΕΠΙΣΤΗΜΗ ΤΩΝ ΥΠΟΛΟΓΙΣΤΩΝ. Δρ.

Τμήμα Χρηματοοικονομικής & Ελεγκτικής ΤΕΙ Ηπείρου Παράρτημα Πρέβεζας. Πληροφορική Ι ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΕΠΙΣΤΗΜΗ ΤΩΝ ΥΠΟΛΟΓΙΣΤΩΝ. Δρ. Τμήμα Χρηματοοικονομικής & Ελεγκτικής ΤΕΙ Ηπείρου Παράρτημα Πρέβεζας Πληροφορική Ι ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΕΠΙΣΤΗΜΗ ΤΩΝ ΥΠΟΛΟΓΙΣΤΩΝ Δρ. Γκόγκος Χρήστος Επιστήμη των υπολογιστών Computer Science (CS) ή Information

Διαβάστε περισσότερα