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

20 κατασκευάστριας εταιρίας και της επιχείρησης (οργανισμού) που θα αγοράσει και θα χρησιμοποιήσει το προϊόν. Γενικά για να γίνει η ανάλυση των απαιτήσεων, χρειάζεται λεπτομερής καταγραφή των δεδομένων (inputs) και των αποτελεσμάτων (outputs), αυστηρή παρακολούθηση της ροής των πληροφοριών, εντοπισμός των σημείων όπου μετασχηματίζονται οι πληροφορίες και ποιες ενέργειες λαμβάνουν χώρα σε κάθε μετασχηματισμό. Με την ανάλυση των απαιτήσεων είμαστε σε θέση να καθορίσουμε τι ακριβώς θα κάνει το λογισμικό (software) και τι υπηρεσίες θα προσφέρει, δίνοντας λεπτομέρειες που αφορούν την διακίνηση των πληροφοριών, τα αποτελέσματα που θα έχουμε, την περιγραφή των λειτουργιών και των ενεργειών, που θα λαμβάνουν χώρα και τον τρόπο επικοινωνίας χρήστη-συστήματος. Έτσι μπορούμε να προετοιμάζουμε και ίσως να προτείνουμε τον σχεδιασμό του συστήματος και να κάνουμε χρήσιμες παρατηρήσεις σχετικά με την κατασκευή αυτού. Σημειώστε ότι σε αυτή την φάση δεν ασχολούμεθα καθόλου με το «πώς» θα γίνει η ανάπτυξη και η κατασκευή του συστήματος. Απλά καταγράφεται το «τι» ακριβώς θα κάνει αυτό (ΚΑΘΟΡΙΣΜΟΣ ΠΡΟΔΙΑΓΡΑΦΩΝ). Ο σχεδιασμός και η κατασκευή του λογισμικού γίνεται σε άλλες φάσεις αργότερα (δείτε τον κύκλο ζωής λογισμικού). Η ανάλυση των απαιτήσεων πρέπει να δίνει απάντηση σε μια σειρά από ερωτήματα: Ποιες είναι οι ανάγκες του χρήστη που ζητά το σύστημα; τι περιμένει ο χρήστης από το σύστημα; ποια είναι τα διαδικαστικά και λειτουργικά προβλήματα; έχουν γίνει αντιληπτές οι επιδράσεις του συστήματος στη επιχείρηση ή τον οργανισμό που θα το εγκαταστήσει; πώς θα γίνει η χρήση του συστήματος; πώς θα γίνει η μεταβίβαση από το χειρωνακτικό (ή το παλιό μηχανογραφικό) σύστημα στο νέο; υπάρχουν άτομα να βοηθήσουν στην εφαρμογή του συστήματος; ποια θα είναι τα τεχνικά χαρακτηριστικά του λογισμικού; σε ποια υποδομή (υλικό, λειτουργικά συστήματα, δίκτυα) θα στηριχθεί το υπό ανάπτυξη σύστημα; ποιο θα είναι το περιβάλλον ανάπτυξης (το προγραμματιστικό περιβάλλον, οι γλώσσες προγραμματισμού, τα εργαλεία που θα χρησιμοποιηθούν); σε ποιο ηλεκτρονικό περιβάλλον εργασίας θα εργάζεται ο χρήστης; με τι είδους πληροφορίες έχουμε να κάνουμε; τι περιορισμοί υπάρχουν; ποια θα πρέπει να είναι η απόδοση του συστήματος; τι κριτήρια πρέπει να μπουν ώστε να γίνει η αξιολόγηση της απόδοσης (η γρήγορη ανταπόκριση είναι αρκετή;) ποια θα είναι η επεκτασιμότητα του συστήματος κλπ κλπ... φυσικά ο κατάλογος των ερωτημάτων δεν εξαντλείται εδώ. Το αποτέλεσμα τις ανάλυσης των προδιαγραφών θα είναι όπως προαναφέραμε ένα γραπτό κείμενο με ακριβείς πληροφορίες για το σύστημα το οποίο θα είναι σημείο αναφοράς για τους κατασκευαστές αλλά και για τους χρήστες. Θα επαναλάβουμε εδώ ότι αυτό το κείμενο θα περιέχει μία απλή καταγραφή των λειτουργιών, χωρίς ν' αναφέρει πώς θα γίνουν αυτές και θα ακολουθεί το λογισμικό καθ' όλη την διάρκεια της ζωής του. Ο Heniger (1980) ισχυρίζεται ότι ένα κείμενο όπου γίνεται ο προσδιορισμός των χαρακτηριστικών ενός συστήματος θα πρέπει: 20

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

ΠΕΡΙΕΧΟΜΕΝΑ ΜΕΡΟΣ Α : ΘΕΜΑΤΑ ΒΑΣΗΣ 1. ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΠΛΗΡΟΦΟΡΙΚΗ...11 2. ΑΡΙΘΜΗΤΙΚΑ ΣΥΣΤΗΜΑΤΑ...30

ΠΕΡΙΕΧΟΜΕΝΑ ΜΕΡΟΣ Α : ΘΕΜΑΤΑ ΒΑΣΗΣ 1. ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΠΛΗΡΟΦΟΡΙΚΗ...11 2. ΑΡΙΘΜΗΤΙΚΑ ΣΥΣΤΗΜΑΤΑ...30 ΠΕΡΙΕΧΟΜΕΝΑ ΜΕΡΟΣ Α : ΘΕΜΑΤΑ ΒΑΣΗΣ 1. ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΠΛΗΡΟΦΟΡΙΚΗ...11 1.1 Τι είναι Πληροφορική;...11 1.1.1 Τι είναι η Πληροφορική;...12 1.1.2 Τι είναι ο Υπολογιστής;...14 1.1.3 Τι είναι το Υλικό και το

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

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

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

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

Πολυμέσα. Ιστορική Αναδρομή Υπερκείμενο

Πολυμέσα. Ιστορική Αναδρομή Υπερκείμενο Πολυμέσα Πολυμέσα είναι κλάδος της πληροφορικής ο οποίος ασχολείται με το συνδυασμό ψηφιακών δεδομένων πολλαπλών μορφών. Τα δομικά στοιχεία των πολυμέσων είναι τα εξής : Κείμενο Εικόνα Ήχος Κινούμενη εικόνα

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

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

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

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

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

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

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

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

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

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

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

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

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

ΠΑΝΕΠΙΣΤΗΜΙΟ ΑΙΓΑΙΟΥ

ΠΑΝΕΠΙΣΤΗΜΙΟ ΑΙΓΑΙΟΥ ΠΑΝΕΠΙΣΤΗΜΙΟ ΑΙΓΑΙΟΥ ΤΜΗΜΑ ΜΗΧΑΝΙΚΩΝ ΠΛΗΡΟΦΟΡΙΑΚΩΝ ΚΑΙ ΕΠΙΚΟΙΝΩΝΙΑΚΩΝ ΣΥΣΤΗΜΑΤΩΝ ΠΡΟΠΤΥΧΙΑΚΟ ΠΡΟΓΡΑΜΜΑ ΣΠΟΥΔΩΝ ΜΑΘΗΜΑ: ΤΕΧΝΟΛΟΓΙΑ ΛΟΓΙΣΜΙΚΟΥ ΔΙΑΔΙΚΑΣΙΕΣ ΠΑΡΑΓΩΓΗΣ ΛΟΓΙΣΜΙΚΟΥ Διδάσκων: Γ. Χαραλαμπίδης,

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

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

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

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

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

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

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

ΤΙ ΕΙΝΑΙ Ο ΥΠΟΛΟΓΙΣΤΗΣ

ΤΙ ΕΙΝΑΙ Ο ΥΠΟΛΟΓΙΣΤΗΣ ΤΙ ΕΙΝΑΙ Ο ΥΠΟΛΟΓΙΣΤΗΣ Ο όρος είναι συντομογραφία του όρου «Αυτόματος, Ηλεκτρονικός Ψηφιακός Υπολογιστής Γενικού Σκοπού» [1]. Αυτόματος Μετά την έναρξη της λειτουργίας του εργάζεται μόνος του εκτελώντας

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

Περιεχόμενο: Δομή υπολογιστή Συστήματα αρίθμησης

Περιεχόμενο: Δομή υπολογιστή Συστήματα αρίθμησης Περιεχόμενο: Δομή υπολογιστή Συστήματα αρίθμησης ΟΜΗ ΤΟΥ ΥΠΟΛΟΓΙΣΤΗ Ένας υπολογιστής αποτελείται από την Κεντρική Μονάδα Επεξεργασίας (ΚΜΕ), τη µνήµη, τις µονάδες εισόδου/εξόδου και το σύστηµα διασύνδεσης

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

ΑΛΓΟΡΙΘΜΟΙ. Τι είναι αλγόριθμος

ΑΛΓΟΡΙΘΜΟΙ. Τι είναι αλγόριθμος ΑΛΓΟΡΙΘΜΟΙ Στο σηµείωµα αυτό αρχικά εξηγείται η έννοια αλγόριθµος και παραθέτονται τα σπουδαιότερα κριτήρια που πρέπει να πληρεί κάθε αλγόριθµος. Στη συνέχεια, η σπουδαιότητα των αλγορίθµων συνδυάζεται

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

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

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

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

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

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

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

Περιληπτικά, τα βήματα που ακολουθούμε γενικά είναι τα εξής:

Περιληπτικά, τα βήματα που ακολουθούμε γενικά είναι τα εξής: Αυτό που πρέπει να θυμόμαστε, για να μη στεναχωριόμαστε, είναι πως τόσο στις εξισώσεις, όσο και στις ανισώσεις 1ου βαθμού, που θέλουμε να λύσουμε, ακολουθούμε ακριβώς τα ίδια βήματα! Εκεί που πρεπει να

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

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

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

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

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

Τμήμα Λογιστικής. Εισαγωγή στους Ηλεκτρονικούς Υπολογιστές. Μάθημα 8. 1 Στέργιος Παλαμάς ΤΕΙ Ηπείρου Παράρτημα Πρέβεζας Τμήμα Λογιστικής Εισαγωγή στους Ηλεκτρονικούς Υπολογιστές Μάθημα 8 Κεντρική Μονάδα Επεξεργασίας και Μνήμη 1 Αρχιτεκτονική του Ηλεκτρονικού Υπολογιστή Μονάδες Εισόδου Κεντρική

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

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

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

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

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

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

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

5η Δραστηριότητα. Λύσε το γρίφο Η Θεωρία της Πληροφορίας. Περίληψη. Λπν τ φνντ π τν πρτσ. Ικανότητες. Ηλικία. Υλικά

5η Δραστηριότητα. Λύσε το γρίφο Η Θεωρία της Πληροφορίας. Περίληψη. Λπν τ φνντ π τν πρτσ. Ικανότητες. Ηλικία. Υλικά 5η Δραστηριότητα Λύσε το γρίφο Η Θεωρία της Πληροφορίας Περίληψη Πόση πληροφορία περιέχεται σε ένα βιβλίο των 1000 σελίδων; Υπάρχει περισσότερη πληροφορία σε έναν τηλεφωνικό κατάλογο των 1000 σελίδων ή

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

Εισαγωγή στην Πληροφορική Υγείας

Εισαγωγή στην Πληροφορική Υγείας Εισαγωγή στην Πληροφορική της Υγείας: Περιεχόμενο μαθήματος, Εισαγωγή, Βασικές έννοιες Διδάσκοντες: Πανίκος Μασούρας & Σωτήρης Αυγουστή Σχετικά με το μάθημα Διεξαγωγή μαθήματος: Θεωρία Εργαστήριο Θεωρία:

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

Μικροεπεξεργαστές - Μικροελεγκτές Ψηφιακά Συστήματα

Μικροεπεξεργαστές - Μικροελεγκτές Ψηφιακά Συστήματα Μικροεπεξεργαστές - Μικροελεγκτές Ψηφιακά Συστήματα 1. Ποια είναι η σχέση της έννοιας του μικροεπεξεργαστή με αυτή του μικροελεγκτή; Α. Ο μικροεπεξεργαστής εμπεριέχει τουλάχιστο έναν μικροελεγκτή. Β. Ο

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

Εκτέλεση πράξεων. Ψηφιακά Ηλεκτρονικά και Δυαδική Λογική. Πράξεις με δυαδικούς αριθμούς. Πράξεις με δυαδικούς αριθμούς

Εκτέλεση πράξεων. Ψηφιακά Ηλεκτρονικά και Δυαδική Λογική. Πράξεις με δυαδικούς αριθμούς. Πράξεις με δυαδικούς αριθμούς Ιόνιο Πανεπιστήμιο Τμήμα Πληροφορικής Εισαγωγή στην Επιστήμη των Υπολογιστών 24-5 Πράξεις με δυαδικούς αριθμούς (λογικές πράξεις) http://di.ionio.gr/~mistral/tp/csintro/ Μ.Στεφανιδάκης ; Ποιες κατηγορίες

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

ΓΕΩΠΟΝΙΚΗ ΣΧΟΛΗ ΑΠΘ Εργαστήριο Πληροφορικής στη Γεωργία

ΓΕΩΠΟΝΙΚΗ ΣΧΟΛΗ ΑΠΘ Εργαστήριο Πληροφορικής στη Γεωργία ΓΕΩΠΟΝΙΚΗ ΣΧΟΛΗ ΑΠΘ Εργαστήριο Πληροφορικής στη Γεωργία Το 1944 με την κατασκευή του υπολογιστή Mark I από τον Howard Aiken και την εταιρεία κατασκευής ηλεκτρονικών υπολογιστών IBM και από το 1950 μπήκανε

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

ΠΕΡΙΕΧΟΜΕΝΑ. Πρόλογος...9 ΚΕΦ. 1. ΑΡΙΘΜΗΤΙΚΑ ΣΥΣΤΗΜΑΤΑ - ΚΩΔΙΚΕΣ

ΠΕΡΙΕΧΟΜΕΝΑ. Πρόλογος...9 ΚΕΦ. 1. ΑΡΙΘΜΗΤΙΚΑ ΣΥΣΤΗΜΑΤΑ - ΚΩΔΙΚΕΣ ΠΕΡΙΕΧΟΜΕΝΑ Πρόλογος...9 ΚΕΦ. 1. ΑΡΙΘΜΗΤΙΚΑ ΣΥΣΤΗΜΑΤΑ - ΚΩΔΙΚΕΣ 1.1 Εισαγωγή...11 1.2 Τα κύρια αριθμητικά Συστήματα...12 1.3 Μετατροπή αριθμών μεταξύ των αριθμητικών συστημάτων...13 1.3.1 Μετατροπή ακέραιων

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

Λίγα λόγια από το συγγραφέα... 7. 91 Βάσεις δεδομένων και Microsoft Access... 9. 92 Microsoft Access... 22

Λίγα λόγια από το συγγραφέα... 7. 91 Βάσεις δεδομένων και Microsoft Access... 9. 92 Microsoft Access... 22 ΕΝΟΤΗΤΑ 5 Περιεχόμενα Λίγα λόγια από το συγγραφέα... 7 91 Βάσεις δεδομένων και Microsoft Access... 9 92 Microsoft Access... 22 93 Το σύστημα Βοήθειας του Microsoft Office... 32 94 Σχεδιασμός βάσης δεδομένων

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

ΚΕΦΑΛΑΙΟ 1ο 3ο. ΚΕΦΑΛΑΙΟ 5ο 6ο. ΚΕΦΑΛΑΙΟ 7ο. Δομημένος Προγραμματισμός - Γενικές Ασκήσεις Επανάληψης

ΚΕΦΑΛΑΙΟ 1ο 3ο. ΚΕΦΑΛΑΙΟ 5ο 6ο. ΚΕΦΑΛΑΙΟ 7ο. Δομημένος Προγραμματισμός - Γενικές Ασκήσεις Επανάληψης ΚΕΦΑΛΑΙΟ 1ο 3ο 1. Συμπληρώστε τα κενά με τη λέξη που λείπει. α. Ένα πρόβλημα το χωρίζουμε σε άλλα απλούστερα, όταν είναι ή όταν έχει τρόπο επίλυσης. β. Η επίλυση ενός προβλήματος προϋποθέτει την του. γ.

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

υαδικό Σύστημα 192.168.0.0-11000000.10101000.00000000.00000000

υαδικό Σύστημα 192.168.0.0-11000000.10101000.00000000.00000000 υαδικό Σύστημα Για να μπορέσουμε να καταλάβουμε πως γίνεται το Subnetting, πρέπει πρώτα να γνωρίζουμε καλά το δυαδικό σύστημα, τις Classes των δικτύων και τι ακριβώς γίνεται στην καθεμία. Όπως γνωρίζουμε

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

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

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

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

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

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

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

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

ΔΙΑΓΩΝΙΣΜΑ ΠΡΟΣΟΜΟΙΩΣΗΣ ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ ΔΙΑΓΩΝΙΣΜΑ ΠΡΟΣΟΜΟΙΩΣΗΣ ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ ΘΕΜΑ 1 (Α) Σημειώστε δίπλα σε κάθε πρόταση «Σ» ή «Λ» εφόσον είναι σωστή ή λανθασμένη αντίστοιχα. 1. Τα συντακτικά λάθη ενός προγράμματος

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

ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ Η/Υ. Εισαγωγή στην FORTRAN. Δρ. Ιωάννης Λυχναρόπουλος 2014-2015

ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ Η/Υ. Εισαγωγή στην FORTRAN. Δρ. Ιωάννης Λυχναρόπουλος 2014-2015 ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ Η/Υ Εισαγωγή στην FORTRAN Δρ. Ιωάννης Λυχναρόπουλος 2014-2015 Fortran FORmula TRANslation: (Μία από τις πρώτες γλώσσες τρίτης γενιάς) Εκδόσεις FORTRAN (1957) FORTRAN II (1958) FORTRAN III

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

Τύποι, Σταθερές και Μεταβλητές

Τύποι, Σταθερές και Μεταβλητές ΚΕΦΑΛΑΙΟ 3 Τύποι, Σταθερές και Μεταβλητές Η έννοια της μεταβλητής Γενικά μπορούμε να πούμε ότι η έννοια της μεταβλητής στον προγραμματισμό είναι άμεσα συνδεδεμένη με την έννοια που αυτή έχει σε μαθηματικό

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

ΔΙΔΑΚΤΙΚΗ της ΠΛΗΡΟΦΟΡΙΚΗΣ

ΔΙΔΑΚΤΙΚΗ της ΠΛΗΡΟΦΟΡΙΚΗΣ ΕΘΝΙΚΟ ΚΑΙ ΚΑΠΟΔΙΣΤΡΙΑΚΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΑΘΗΝΩΝ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ & ΤΗΛΕΠΙΚΟΙΝΩΝΙΩΝ ΔΙΔΑΚΤΙΚΗ της ΠΛΗΡΟΦΟΡΙΚΗΣ Μ. Γρηγοριάδου Ρ. Γόγουλου Ενότητα: Η Διδασκαλία του Προγραμματισμού Περιεχόμενα Παρουσίασης

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

Αναδρομή. Τι γνωρίζετε για τη δυνατότητα «κλήσης» αλγορίθμων; Τι νόημα έχει;

Αναδρομή. Τι γνωρίζετε για τη δυνατότητα «κλήσης» αλγορίθμων; Τι νόημα έχει; ΜΑΘΗΜΑ 7 Κλήση αλγορίθμου από αλγόριθμο Αναδρομή Σ χ ο λ ι κ ο Β ι β λ ι ο ΥΠΟΚΕΦΑΛΑΙΟ 2.2.7: ΕΝΤΟΛΕΣ ΚΑΙ ΔΟΜΕΣ ΑΛΓΟΡΙΘΜΟΥ ΠΑΡΑΓΡΑΦΟI 2.2.7.5: Κλήση αλγορίθμου από αλγόριθμο 2.2.7.6: Αναδρομή εισαγωγη

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

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

ΥΠΟΥΡΓΕΙΟ ΠΑΙΔΕΙΑΣ ΚΑΙ ΠΟΛΙΤΙΣΜΟΥ ΔΙΕΥΘΥΝΣΗ ΑΝΩΤΕΡΗΣ ΚΑΙ ΑΝΩΤΑΤΗΣ ΕΚΠΑΙΔΕΥΣΗΣ ΥΠΗΡΕΣΙΑ ΕΞΕΤΑΣΕΩΝ ΠΑΓΚΥΠΡΙΕΣ ΕΞΕΤΑΣΕΙΣ 2013 ΥΠΟΥΡΓΕΙΟ ΠΑΙΔΕΙΑΣ ΚΑΙ ΠΟΛΙΤΙΣΜΟΥ ΔΙΕΥΘΥΝΣΗ ΑΝΩΤΕΡΗΣ ΚΑΙ ΑΝΩΤΑΤΗΣ ΕΚΠΑΙΔΕΥΣΗΣ ΥΠΗΡΕΣΙΑ ΕΞΕΤΑΣΕΩΝ ΠΑΓΚΥΠΡΙΕΣ ΕΞΕΤΑΣΕΙΣ 2013 ΤΕΧΝΟΛΟΓΙΑ (Ι) ΤΕΧΝΙΚΩΝ ΣΧΟΛΩΝ ΘΕΩΡΗΤΙΚΗΣ ΚΑΤΕΥΘΥΝΣΗΣ Μάθημα : Μικροϋπολογιστές

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

Διδάσκων:Μ.Χατζόπουλος, Παραδόσεις:Τρίτη 4-6, Τετάρτη 1-3; (Αμφιθέατρο Α15) Πληροφορίες στην ιστοσελίδα του μαθήματος http://www.di.uoa.

Διδάσκων:Μ.Χατζόπουλος, Παραδόσεις:Τρίτη 4-6, Τετάρτη 1-3; (Αμφιθέατρο Α15) Πληροφορίες στην ιστοσελίδα του μαθήματος http://www.di.uoa. Πληροφορική 1 Διδάσκων:Μ.Χατζόπουλος, Παραδόσεις:Τρίτη 4-6, Τετάρτη 1-3; (Αμφιθέατρο Α15) Πληροφορίες στην ιστοσελίδα του μαθήματος http://www.di.uoa.gr/~organosi/ 2 Η δομή του μαθήματος Εισαγωγή στην

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

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

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

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

1. ΑΡΧΕΣ ΛΕΙΤΟΥΡΓΙΚΩΝ ΣΥΣΤΗΜΑΤΩΝ

1. ΑΡΧΕΣ ΛΕΙΤΟΥΡΓΙΚΩΝ ΣΥΣΤΗΜΑΤΩΝ 12 Σχεδιασμός Ανάπτυξη Λειτουργία Π.Σ. 1. ΑΡΧΕΣ ΛΕΙΤΟΥΡΓΙΚΩΝ ΣΥΣΤΗΜΑΤΩΝ 1.1 Δυνατότητες Λειτουργικών Συστημάτων 1.1.1 Εισαγωγή Ο όρος Λειτουργικό Σύστημα (Operating System), εκφράζει το σύνολο των προγραμμάτων

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

Πληροφορική Ι (Θεωρία)

Πληροφορική Ι (Θεωρία) Πληροφορική Ι (Θεωρία) ρ Α Εξάμηνο Διδασκαλία: Δευτέρα 16:00-18:00 (Αίθουσα 303) Επίπεδο μαθήματος: Υποχρεωτικό Τμήμα Βιομηχανικού Σχεδιασμού Σκοπός του μαθήματος «ΠΛΗΡΟΦΟΡΙΚΗ Ι» Απόκτηση από τους σπουδαστές

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

ιαφάνειες παρουσίασης #1

ιαφάνειες παρουσίασης #1 ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΗΛΕΚΤΡΟΝΙΚΩΝ ΥΠΟΛΟΓΙΣΤΩΝ http://www.corelab.ece.ntua.gr/courses/programming/ ιδάσκοντες: Στάθης Ζάχος (zachos@cs.ntua.gr) Νίκος Παπασπύρου (nickie@softlab.ntua.gr) ιαφάνειες παρουσίασης

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

Λειτουργικά Συστήματα Κεφάλαιο 2 Οργάνωση Συστήματος Αρχείων 2.1 Διαχείριση Αρχείων και Σύστημα Αρχείων(File System)

Λειτουργικά Συστήματα Κεφάλαιο 2 Οργάνωση Συστήματος Αρχείων 2.1 Διαχείριση Αρχείων και Σύστημα Αρχείων(File System) 2.1.1 Εισαγωγή στη διαχείριση αρχείων Οι Η/Υ αποθηκεύουν τα δεδομένα και τα επεξεργάζονται. Εφαρμογή Προγράμματος C:\Documents and Settings\user\Τα έγγραφά μου\leitourgika.doc Λ.Σ. File System Γι αυτό

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

Εισαγωγή στους Ηλεκτρονικούς Υπολογιστές

Εισαγωγή στους Ηλεκτρονικούς Υπολογιστές Εισαγωγή στους Ηλεκτρονικούς Υπολογιστές 1 ο Εξάμηνο Σπουδών Χειμερινό Εξάμηνο 2012/13 Τμήμα Εφαρμοσμένων Μαθηματικών, Πανεπιστήμιο Κρήτης Διδάσκων: Χαρμανδάρης Ευάγγελος, email: vagelis@tem.uoc.gr, Ιστοσελίδα

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

Επαγγελματικές κάρτες

Επαγγελματικές κάρτες Επαγγελματικές κάρτες Αφροδίτη Οικονόμου Νηπιαγωγός afoikon@uth.gr Η παρουσίαση αναπτύχθηκε για την πλατφόρμα Ταξίδι στον γραμματισμό Θεματική: Τα επαγγέλματα των γονιών της τάξης μας ΤΙΤΛΟΣ ΔΡΑΣΤΗΡΙΟΤΗΤΑΣ:

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

ΜΥΥ- 402 Αρχιτεκτονική Υπολογιστών Μεταγλώτιση, σύνδεση

ΜΥΥ- 402 Αρχιτεκτονική Υπολογιστών Μεταγλώτιση, σύνδεση ΜΥΥ- 402 Αρχιτεκτονική Υπολογιστών Μεταγλώτιση, σύνδεση Αρης Ευθυμίου Ανακοινώσεις! Βαθμοί: 1ης εργαστηριακής άσκησης Βαθμός 0 χωρίς σχόλια δεν έχω πάρει την άσκηση! ελέγξτε μήπως δεν το στέλνετε στο σωστό

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

723 Τεχνολογίας Πληροφορικής και Τηλεπικοινωνιών ΤΕΙ Λάρισας

723 Τεχνολογίας Πληροφορικής και Τηλεπικοινωνιών ΤΕΙ Λάρισας 723 Τεχνολογίας Πληροφορικής και Τηλεπικοινωνιών ΤΕΙ Λάρισας Το Τμήμα Τεχνολογίας Πληροφορικής και Τηλεπικοινωνιών του ΤΕΙ Λάρισας ιδρύθηκε με το Προεδρικό Διάταγμα 200/1999 (ΦΕΚ 179 06/09/99), με πρώτο

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

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

ΥΠΟΥΡΓΕΙΟ ΠΑΙΔΕΙΑΣ ΚΑΙ ΠΟΛΙΤΙΣΜΟΥ ΔΙΕΥΘΥΝΣΗ ΑΝΩΤΕΡΗΣ ΚΑΙ ΑΝΩΤΑΤΗΣ ΕΚΠΑΙΔΕΥΣΗΣ ΥΠΗΡΕΣΙΑ ΕΞΕΤΑΣΕΩΝ ΠΑΓΚΥΠΡΙΕΣ ΕΞΕΤΑΣΕΙΣ 2015 ΥΠΟΥΡΓΕΙΟ ΠΑΙΔΕΙΑΣ ΚΑΙ ΠΟΛΙΤΙΣΜΟΥ ΔΙΕΥΘΥΝΣΗ ΑΝΩΤΕΡΗΣ ΚΑΙ ΑΝΩΤΑΤΗΣ ΕΚΠΑΙΔΕΥΣΗΣ ΥΠΗΡΕΣΙΑ ΕΞΕΤΑΣΕΩΝ ΠΑΓΚΥΠΡΙΕΣ ΕΞΕΤΑΣΕΙΣ 2015 ΤΕΧΝΟΛΟΓΙΑ (Ι) ΤΕΧΝΙΚΩΝ ΣΧΟΛΩΝ ΘΕΩΡΗΤΙΚΗΣ ΚΑΤΕΥΘΥΝΣΗΣ Μάθημα : Μικροϋπολογιστές

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

Συνοπτικός Οδηγός Χρήσης του Moodle για τον Καθηγητή

Συνοπτικός Οδηγός Χρήσης του Moodle για τον Καθηγητή Συνοπτικός Οδηγός Χρήσης του Moodle για τον Καθηγητή 1 Πίνακας Περιεχομένων 1. Εισαγωγή... 4 1.1 Περιβάλλον Moodle...4 1.2 Χρήση ονόματος χρήστη και κωδικού...4 1.3 Δημιουργία νέου μαθήματος...4 1.3.1

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

Περιεχόµενα. I Βασικές Γνώσεις 1

Περιεχόµενα. I Βασικές Γνώσεις 1 Περιεχόµενα I Βασικές Γνώσεις 1 1 Μοντελοποίηση Προγραµµάτων 3 1.1 Ψευδογλώσσα....................... 6 1.2 Διαγράµµατα Ροής..................... 6 1.3 Παραδείγµατα σε Ψευδογλώσσα και Διαγράµµατα Ροής.

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

ΚΕΦΑΛΑΙΟ 18. 18 Μηχανική Μάθηση

ΚΕΦΑΛΑΙΟ 18. 18 Μηχανική Μάθηση ΚΕΦΑΛΑΙΟ 18 18 Μηχανική Μάθηση Ένα φυσικό ή τεχνητό σύστηµα επεξεργασίας πληροφορίας συµπεριλαµβανοµένων εκείνων µε δυνατότητες αντίληψης, µάθησης, συλλογισµού, λήψης απόφασης, επικοινωνίας και δράσης

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

ΡΟΜΠΟΤΙΚΗ ΟΡΑΣΗ. Όταν ένα ρομπότ κινείται σε άγνωστο χώρο ή σε χώρο που μπορεί να αλλάξει η διάταξή του τότε εμφανίζεται η ανάγκη της όρασης μηχανής.

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

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

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

ΕΛΛΗΝΙΚΟ ΑΝΟΙΚΤΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΣΧΟΛΗ ΘΕΤΙΚΩΝ ΕΠΙΣΤΗΜΩΝ ΚΑΙ ΤΕΧΝΟΛΟΓΙΑΣ ΠΡΟΓΡΑΜΜΑ ΣΠΟΥ ΩΝ ΠΛΗΡΟΦΟΡΙΚΗΣ ΑΠΑΝΤΗΣΕΙΣ ΘΕΜΑΤΩΝ ΕΞΕΤΑΣΕΩΝ ΕΛΛΗΝΙΚΟ ΑΝΟΙΚΤΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΣΧΟΛΗ ΘΕΤΙΚΩΝ ΕΠΙΣΤΗΜΩΝ ΚΑΙ ΤΕΧΝΟΛΟΓΙΑΣ ΠΡΟΓΡΑΜΜΑ ΣΠΟΥ ΩΝ ΠΛΗΡΟΦΟΡΙΚΗΣ Θεµατική Ενότητα ΠΛΗ 2: Ψηφιακά Συστήµατα Ακαδηµαϊκό Έτος 24 25 Ηµεροµηνία Εξέτασης 29.6.25 Χρόνος Εξέτασης

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

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

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

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

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

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

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

ΚΕΦΑΛΑΙΟ 3ο ΤΥΧΑΙΟΙ ΑΡΙΘΜΟΙ ΕΛΕΓΧΟΣ ΤΥΧΑΙΟΤΗΤΑΣ

ΚΕΦΑΛΑΙΟ 3ο ΤΥΧΑΙΟΙ ΑΡΙΘΜΟΙ ΕΛΕΓΧΟΣ ΤΥΧΑΙΟΤΗΤΑΣ ΚΕΦΑΛΑΙΟ 3ο ΤΥΧΑΙΟΙ ΑΡΙΘΜΟΙ ΕΛΕΓΧΟΣ ΤΥΧΑΙΟΤΗΤΑΣ 3.1 Τυχαίοι αριθμοί Στην προσομοίωση διακριτών γεγονότων γίνεται χρήση ακολουθίας τυχαίων αριθμών στις περιπτώσεις που απαιτείται η δημιουργία στοχαστικών

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

III. Πως μετατρέπεται το πηγαίο πρόγραμμα σε εκτελέσιμο πρόγραμμα;

III. Πως μετατρέπεται το πηγαίο πρόγραμμα σε εκτελέσιμο πρόγραμμα; ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ ΕΠΑΝΑΛΗΠΤΙΚΟ ΙΑΓΩΝΙΣΜΑ ΟΝΟΜΑΤΕΠΩΝΥΜΟ: Θέμα 1ο I. Τι πρέπει να ικανοποιεί ένα κομμάτι κώδικα ώστε να χαρακτηριστεί ως υποπρόγραμμα; Τα υποπρογράμματα πρέπει

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

ΜΑΘΗΜΑ 3 ΛΟΓΙΣΜΙΚΟ (SOFTWARE)

ΜΑΘΗΜΑ 3 ΛΟΓΙΣΜΙΚΟ (SOFTWARE) ΜΑΘΗΜΑ 3 ΛΟΓΙΣΜΙΚΟ (SOFTWARE) ΣΤΟΧΟΙ: 1. Λογισμικό 2. Λογισμικό Λειτουργικού Συστήματος 3. Προσαρμοστικό Γραφικών Χρήστη 4. Λογισμικών Εφαρμογών 5. Διαφορά Μεταξύ Λογισμικού Λειτουργικού Συστήματος Και

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

ΠΕΡΙΛΗΨΗ. Είναι γνωστό άτι καθημερινά διακινούνται δεκάδες μηνύματα (E~mail) μέσω του διαδικτύου

ΠΕΡΙΛΗΨΗ. Είναι γνωστό άτι καθημερινά διακινούνται δεκάδες μηνύματα (E~mail) μέσω του διαδικτύου GREEKLISH: ΜΙΑ ΝΕΑ ΔΙΑΛΕΚΤΟΣ ΤΟΥ ΔΙΑΔΙΚΤΥΟΥ; Α.Καράκος, Λ.Κωτούλας ΠΕΡΙΛΗΨΗ Είναι γνωστό άτι καθημερινά διακινούνται δεκάδες μηνύματα (E~mail) μέσω του διαδικτύου {INTERNEη από την μια άκρη του κόσμου

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

ιδάσκων: ηµήτρης Ζεϊναλιπούρ

ιδάσκων: ηµήτρης Ζεϊναλιπούρ Κεφάλαιο 1.3-1.4: Εισαγωγή Στον Προγραµµατισµό ( ιάλεξη 2) ιδάσκων: ηµήτρης Ζεϊναλιπούρ Περιεχόµενα Εισαγωγικές Έννοιες - Ορισµοί Ο κύκλος ανάπτυξης προγράµµατος Παραδείγµατα Πότε χρησιµοποιούµε υπολογιστή?

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

ΣΗΜΕΙΩΣΕΙΣ ΓΡΑΦΙΣΤΙΚΗ ΜΕ Η/Υ 1. Του Αποστόλου Παπαποστόλου Επίκουρου Καθηγητή του ΤΕΙ Αθήνας

ΣΗΜΕΙΩΣΕΙΣ ΓΡΑΦΙΣΤΙΚΗ ΜΕ Η/Υ 1. Του Αποστόλου Παπαποστόλου Επίκουρου Καθηγητή του ΤΕΙ Αθήνας ΣΗΜΕΙΩΣΕΙΣ ΓΡΑΦΙΣΤΙΚΗ ΜΕ Η/Υ 1 Του Αποστόλου Παπαποστόλου Επίκουρου Καθηγητή του ΤΕΙ Αθήνας ΕΙΣΑΓΩΓΗ Οι γραφικές παραστάσεις µε υπολογιστές έχουν προχωρήσει πολύ από τότε που οι ε- πιστήµονες που δούλευαν

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

ΣΗΜΕΙΩΣΕΙΣ ΘΕΩΡΙΑΣ MIDI

ΣΗΜΕΙΩΣΕΙΣ ΘΕΩΡΙΑΣ MIDI ΣΗΜΕΙΩΣΕΙΣ ΘΕΩΡΙΑΣ MIDI Τί είναι το MIDI; Το MIDI (Musical Instrument Digital Interface) είναι ένα πρωτόκολλο επικοινωνίας μεταξύ 2 ή περισσοτέρων ηλεκτρονικών μουσικών οργάνων. Μέσω του πρωτοκόλλου αυτού

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

Υλοποίηση ενός προγραμματιστικού κελύφους εργασίας

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

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

Κωδικοποίηση Πηγής. Δρ. Α. Πολίτης

Κωδικοποίηση Πηγής. Δρ. Α. Πολίτης Κωδικοποίηση Πηγής Coder Decoder Μεταξύ πομπού και καναλιού παρεμβάλλεται ο κωδικοποιητής (coder). Έργο του: η αντικατάσταση των συμβόλων πληροφορίας της πηγής με εναλλακτικά σύμβολα ή λέξεις. Κωδικοποίηση

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

Αρχιτεκτονική Υπολογιστών II 16-2-2012. Ενδεικτικές απαντήσεις στα θέματα των εξετάσεων

Αρχιτεκτονική Υπολογιστών II 16-2-2012. Ενδεικτικές απαντήσεις στα θέματα των εξετάσεων Αρχιτεκτονική Υπολογιστών II 6 --0 Ενδεικτικές απαντήσεις στα θέματα των εξετάσεων Θέμα. Τι γνωρίζετε για την τοπικότητα των αναφορών και ποιών μονάδων του υπολογιστή ή τεχνικών η απόδοση εξαρτάται από

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

Projects στο Εργαστήριο Αρχιτεκτονικής Υπολογιστών Version 2 Ισχύει από Φεβρουάριο 2009

Projects στο Εργαστήριο Αρχιτεκτονικής Υπολογιστών Version 2 Ισχύει από Φεβρουάριο 2009 ΤΕΧΝΟΛΟΓΙΚΟ ΕΚΠΑΙ ΕΥΤΙΚΟ Ι ΡΥΜΑ ΣΕΡΡΩΝ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ & ΕΠΙΚΟΙΝΩΝΙΩΝ ΜΑΘΗΜΑ : ΑΡΧΙΤΕΚΤΟΝΙΚΗ ΥΠΟΛΟΓΙΣΤΩΝ 4 ο ΕΞΑΜΗΝΟ Projects στο Εργαστήριο Αρχιτεκτονικής Υπολογιστών Version 2 Ισχύει από Φεβρουάριο

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

(Ιούνιος 2001 ΤΕΕ Ηµερήσιο) Σε κάθε µία από τις παρακάτω περιπτώσεις, να

(Ιούνιος 2001 ΤΕΕ Ηµερήσιο) Σε κάθε µία από τις παρακάτω περιπτώσεις, να Κεεφάάλλααι ιοο:: 3Β ο Τίττλλοοςς Κεεφααλλααί ίοουυ: : Αρχιτεκτονική Ηλ/κου Τµήµατος των Υπολ. Συστηµάτων (Ιούνιος 2001 ΤΕΕ Ηµερήσιο) Σε κάθε µία από τις παρακάτω περιπτώσεις, να αναφέρετε τις τιµές των

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

ΔΙΟΙΚΗΣΗΣ MANAGEMENT INFORMATION SYSTEMS (M.I.S.)

ΔΙΟΙΚΗΣΗΣ MANAGEMENT INFORMATION SYSTEMS (M.I.S.) ΔΙΟΙΚΗΣΗΣ MANAGEMENT INFORMATION SYSTEMS (M.I.S.) 2.1 Κωνσταντίνος Ταραμπάνης Καθηγητής Τμήμα Οργάνωσης και Διοίκησης Επιχειρήσεων Πανεπιστήμιο Μακεδονίας Γρ. 307 2310-891-578 kat@uom.gr ΤΑΞΙΝΟΜΗΣΗ ΤΩΝ

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

Πραγµατικοί αριθµοί κινητής υποδιαστολής Floating Point Numbers. Σ. Τσιτµηδέλης - 2010 ΤΕΙ ΧΑΛΚΙΔΑΣ

Πραγµατικοί αριθµοί κινητής υποδιαστολής Floating Point Numbers. Σ. Τσιτµηδέλης - 2010 ΤΕΙ ΧΑΛΚΙΔΑΣ Πραγµατικοί αριθµοί κινητής υποδιαστολής Floating Point Numbers Σ. Τσιτµηδέλης - 2010 ΤΕΙ ΧΑΛΚΙΔΑΣ Εκθετική Παράσταση (Exponential Notation) Οι επόµενες είναι ισοδύναµες παραστάσεις του 1,234 123,400.0

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

Αρχές Γλωσσών Προγραμματισμού και Μεταφραστών: Εργαστηριακή Άσκηση 2012-2013

Αρχές Γλωσσών Προγραμματισμού και Μεταφραστών: Εργαστηριακή Άσκηση 2012-2013 Αρχές Γλωσσών Προγραμματισμού και Μεταφραστών: Εργαστηριακή Άσκηση 2012-2013 27 Μαρτίου 2013 Περίληψη Σκοπός της παρούσας εργασίας είναι η εξοικείωσή σας με τις θεμελιώδεις θεωρητικές και πρακτικές πτυχές

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

Ανάπτυξη και Σχεδίαση Λογισμικού

Ανάπτυξη και Σχεδίαση Λογισμικού Ανάπτυξη και Σχεδίαση Λογισμικού Η γλώσσα προγραμματισμού C Γεώργιος Δημητρίου Βασικά Στοιχεία Το αλφάβητο της C Οι βασικοί τύποι της C Δηλώσεις μεταβλητών Είσοδος/Έξοδος Βασικές εντολές της C Αλφάβητο

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

Α.2 Μαθησιακά Αποτελέσματα Έχοντας ολοκληρώσει επιτυχώς το μάθημα οι εκπαιδευόμενοι θα είναι σε θέση να:

Α.2 Μαθησιακά Αποτελέσματα Έχοντας ολοκληρώσει επιτυχώς το μάθημα οι εκπαιδευόμενοι θα είναι σε θέση να: ΒΑΣΙΚΕΣ ΠΛΗΡΟΦΟΡΙΕΣ Τίτλος Μαθήματος Μεθοδολογίες και Συστήματα Βιομηχανικής Αυτοματοποίησης Κωδικός Μαθήματος Μ3 Θεωρία / Εργαστήριο Θεωρία + Εργαστήριο Πιστωτικές μονάδες 4 Ώρες Διδασκαλίας 2Θ+1Ε Τρόπος/Μέθοδοι

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

ΕΝΟΤΗΤΑ. Γνωρίζω τον υπολογιστή ως ενιαίο σύστημα

ΕΝΟΤΗΤΑ. Γνωρίζω τον υπολογιστή ως ενιαίο σύστημα ΕΝΟΤΗΤΑ Γνωρίζω τον υπολογιστή ως ενιαίο σύστημα . Κεφάλαιο 1 Ψηφιακός Κόσµος Εισαγωγή Τι εννοούμε με τον όρο «ψηφιακός»; Ψηφιακό είναι ένα σύστημα που παίρνει τιμές από μια ομάδα συγκεκριμένων τιμών.

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

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

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

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

Δομές Δεδομένων (Data Structures)

Δομές Δεδομένων (Data Structures) Δομές Δεδομένων (Data Structures) Ανάλυση - Απόδοση Αλγορίθμων Έλεγχος Αλγορίθμων. Απόδοση Προγραμμάτων. Χωρική/Χρονική Πολυπλοκότητα. Ασυμπτωτικός Συμβολισμός. Παραδείγματα. Αλγόριθμοι: Βασικές Έννοιες

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

Η ΔΙΔΑΣΚΑΛΙΑ ΤΗΣ ΦΥΣΙΚΗΣ ΜΕ ΤΗ ΒΟΗΘΕΙΑ ΤΟΥ ΗΛΕΚΤΡΟΝΙΚΟΥ ΥΠΟΛΟΓΙΣΤΗ. Καραβελάκη Μαρία, Παπαναγιώτου Γιώργος, Γρηγοριάδης Στάθης

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

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

Μάθημα 4.2 Η μητρική πλακέτα

Μάθημα 4.2 Η μητρική πλακέτα Μάθημα 4.2 Η μητρική πλακέτα - Εισαγωγή - Οι βάσεις του επεξεργαστή και της μνήμης - Οι υποδοχές της μητρικής πλακέτας - Άλλα μέρη της μητρική πλακέτας - Τυποποιήσεις στην κατασκευή μητρικών πλακετών Όταν

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

Λογισμικό διδασκαλίας των μαθηματικών της Γ Τάξης Γυμνασίου

Λογισμικό διδασκαλίας των μαθηματικών της Γ Τάξης Γυμνασίου Λογισμικό διδασκαλίας των μαθηματικών της Γ Τάξης Γυμνασίου Δρ. Βασίλειος Σάλτας 1, Αλέξης Ηλιάδης 2, Ιωάννης Μουστακέας 3 1 Διδάκτωρ Διδακτικής Μαθηματικών, Επιστημονικός Συνεργάτης ΑΣΠΑΙΤΕ Σαπών coin_kav@otenet.gr

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

2.5.1 Χρήση δεξιοτήτων αρχειοθέτησης για τη διατήρηση ενός καθιερωμένου συστήματος

2.5.1 Χρήση δεξιοτήτων αρχειοθέτησης για τη διατήρηση ενός καθιερωμένου συστήματος 2.5 Σύστημα αρχειοθέτησης, έγγραφα και βάσεις δεδομένων 2.5.1 Χρήση δεξιοτήτων αρχειοθέτησης για τη διατήρηση ενός καθιερωμένου συστήματος Να είναι σε θέση να διατηρήσει ένα καθιερωμένο, ηλεκτρονικό και

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

ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΣΤΑΤΙΣΤΙΚΗ ΤΩΝ ΕΠΙΧΕΙΡΗΣΕΩΝ. Κεφάλαιο 6. Πιθανότητες

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

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