Πρώτο μάθημα. Στάδιο 0: Κρατούμενο Κ = 0. Κρατούμενο Κ 0 Προσθετέος Π Προσθετέος Ρ Αποτέλεσμα Α

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

Download "Πρώτο μάθημα. Στάδιο 0: Κρατούμενο Κ = 0. Κρατούμενο Κ 0 Προσθετέος Π 0 5 6 7 Προσθετέος Ρ 0 9 4 7 Αποτέλεσμα Α"

Transcript

1 Πρώτο μάθημα Αλγόριθμοι: Κεντρική θέση στο θέμα του μαθήματος (αλλά και στην επιστήμη της Πληροφορικής γενικότερα) κατέχουν έννοιες όπως αλγόριθμοι, δεδομένα, τύποι και αναπαράσταση δεδομένων, πρόγραμμα, ανάλυση και σχεδιασμός, γλώσσες προγραμματισμού κλπ. Αυτές τις έννοιες θα συναντήσουμε και εξετάσουμε λεπτομερειακά στην πορεία. Ξεκινάμε με την έννοια του αλγόριθμου γιατί με αυτή είμαστε εξοικειωμένοι ακόμη και αν δεν έχουμε οποιαδήποτε ειδική σχέση με Πληροφορική και υπολογιστές. Λίγο ή πολύ, μπορούμε να πούμε ότι αλγόριθμο ονομάζουμε μια διαδοχή από προκαθορισμένα βήματα για την επίλυση ενός προβλήματος. Αυτό όμως δεν αρκεί για να μας δώσει να καταλάβουμε τη σημασία των αλγόριθμων ούτε και όλες τις πλευρές αυτής της έννοιας. Ας αρχίσουμε με μερικά απλά παραδείγματα: Πρόσθεση Για να εκτελέσουμε την πρόσθεση δύο πολυψήφιων αριθμών με τον τρόπο που ξέρουμε από το σχολείο ακολουθούμε μία συγκεκριμένη διαδικασία με καθορισμένα βήματα. Όπως ξέρουμε, η πρόσθεση γίνεται διατάσσοντας τους προσθετέους με τις μονάδες του ενός κάτω από τις μονάδες του άλλου και παρόμοια για τις δεκάδες, εκατοντάδες και ανώτερες τάξεις μεγέθους. Ύστερα, με μια επαναληπτική διαδικασία προσθέτουμε τα ψηφία της ίδιας τάξης, καθώς και το κρατούμενο απο το προηγούμενο στάδιο, αν υπάρχει. Εφόσον το αποτέλεσμα έχει ψηφίο της αμέσως επόμενης τάξης μεγέθους, το μεταφέρουμε στο επόμενο στάδιο ως νέο κρατούμενο. Για παράδειγμα ας θεωρήσουμε την πρόσθεση δύο τριψήφιων αριθμών, του Π = 567 με τον Ρ = 947. Για συντομία, θα συμβολίσουμε τα ψηφία με το γράμμα του αριθμού, Π ή Ρ ή Α για το άθροισμα, και ένα δείκτη για κάθε στάδιο της πρόσθεσης. Θεωρώντας ότι το κρατούμενο ψηφίο Κ είναι μηδέν, έχουμε τα παρακάτω στάδια: Στάδιο 0: Κρατούμενο Κ = 0. Κρατούμενο Κ 0 Προσθετέος Π Προσθετέος Ρ Αποτέλεσμα Α Στάδιο 1: Χ = Κ + Π1 + Ρ1 = = 14 Α1 = 4 (τελευταίο ψηφίο του Χ) Κ = 1 (πρώτο ψηφίο του Χ) Κρατούμενο Κ 1 Προσθετέος Π Προσθετέος Ρ Αποτέλεσμα Α 4 Στάδιο 2: Χ = Κ + Π2 + Ρ2 = = 11 Α2 = 1 (τελευταίο ψηφίο του Χ) Κ = 1 (πρώτο ψηφίο του Χ) Κρατούμενο Κ 1 Προσθετέος Π Προσθετέος Ρ Αποτέλεσμα Α / 1 15

2 Στάδιο 3: Χ = Κ + Π3 + Ρ3 = = 15 Α3 = 5 (τελευταίο ψηφίο του Χ) Κ = 1 (πρώτο ψηφίο του Χ) Κρατούμενο Κ 1 Προσθετέος Π Προσθετέος Ρ Αποτέλεσμα Α Στάδιο 4: Α4 = Κ Κρατούμενο Κ 1 Προσθετέος Π Προσθετέος Ρ Αποτέλεσμα Α Η περιγραφή των παραπάνω σταδίων δεν είναι τόσο γενική όσο θα επέβαλλαν περιπτώσεις όπως η πρόσθεση περισσότερων από δύο αριθμούς, ωστόσο αυτό μας επιτρέπει να δούμε πιο καθαρά ορισμένα ενδιαφέροντα χαρακτηριστικά της διαδικασίας. Το ένα είναι η επανάληψη.τα στάδια 1, 2 και 3 μπορούν να γραφούν με την εξής γενική μορφή: Στάδιο n: Χ = Κ + Π n + Ρ n Α n = τελευταίο ψηφίο του Χ Κ = πρώτο ψηφίο του Χ Έχουμε δηλαδή μία βασική δομή που επαναλαμβάνεται αναλλοίωτη, ως προς τα βασικά της χαρακτηριστικά. Αυτό επιτρέπει επίσης να γενικεύσουμε την παραπάνω διαδικασία για οσοδήποτε μεγάλο αριθμό ψηφίων έχουν οι προσθετέοι. Στο εσωτερικό αυτής της επαναληπτικής δομής, παρατηρούμε τη διαδοχή τριών στοιχειωδέστερων ενεργειών. Αυτές επίσης έχουν μία γενική μορφή από κοινού: Ποσότητα στο αριστερό μέλος = τιμή παράστασης ή αποτέλεσμα ενεργειών στο δεξί μέλος. Το δεύτερο ενδιαφέρον χαρακτηριστικό της διαδικασίας της πρόσθεσης επομένως, είναι η διαδοχική εκτέλεση ενεργειών (άθροιση κρατουμένου και ομολόγων ψηφίων, καταγραφή ψηφίου για το αποτέλεσμα και φύλαξη νέου κρατουμένου) που έχουν ως κοινό σημείο την απόδοση μιας τιμής σε μία παράμετρο του προβλήματος. Εκτός από τα παραπάνω δύο στοιχεία (επανάληψη, διαδοχή ενεργειών απόδοσης τιμής) υπάρχουν και άλλες ενδιαφέρουσες πλευρές της διαδικασίας όπως η απόδοση αρχικής τιμής στο κρατούμενο ψηφίο Κ (στάδιο 0) και η ύπαρξη μιας ενδιάμεσης, βοηθητικής παραμέτρου τοπικής εμβέλειας (Χ) στην επαναληπτική δομή εύρεσης των ψηφίων. Τέλος, υπάρχει μία ακόμα ενδιαφέρουσα πλευρά η οποία δεν είναι άμεσα ορατή στη παραπάνω παρουσίαση της διαδικασίας της πρόσθεσης και αυτή είναι η λήψη απόφασης για τη συνέχιση ή λήξη της πράξης της πρόσθεσης, ανάλογα με το αν υπάρχουν ή όχι άλλα ψηφία σε τουλάχιστον έναν από τους προσθετέους. Αυτό όμως, θα μπορούσαμε να το διατυπώσουμε εναλλακτικά λέγοντας ότι όταν προσθέτουμε τους αριθμούς μετράμε τα ψηφία που μένουν και όταν ο μετρητής μηδενιστεί τότε η πρόσθεση τελειώνει. Παίρνοντας υπ' όψιν όλα τα παραπάνω θα μπορούσαμε να διατυπώσουμε τα βήματα για τη διαδικασία της πρόσθεσης δύο το πολύ n-ψήφιων αριθμών ως εξής: Θέσε μετρητή υπόλοιπων ψηφίων Ψ = n Θέσε Κ = 0 Για όσο ισχύει Ψ > 0 κάνε: Θέσε Χ = Κ + Π n + Ρn Θέσε Α n = τελευταίο ψηφίο του Χ Θέσε Κ = πρώτο ψηφίο του Χ 2 / 1 15

3 Μείωσε το Ψ κατά 1. Αn+1 = Κ Προτεινόμενη Ασκηση 1: Αναλύστε με τρόπο ανάλογο όπως πιο πάνω, τη διαδικασία για την αφαίρεση ενός αριθμού από έναν άλλο και διατυπώστε με συνοπτική και γενική μορφή τα βήματα αυτής. Μήπως χρειάζεται να εισάγετε άλλα στοιχεία εκτός από διαδοχή απόδοσης τιμών και επανάληψη; Τριώνυμο Η απόφαση για συνέχιση ή μη μιας σειράς ενεργειών είναι ειδική περίπτωση της επιλογής ανάμεσα σε πολλές εναλλακτικές οδούς όπου η σχετική απόφαση παίρνεται με βάση κάποιο κριτήριο. 'Ενα απλό παράδειγμα όπου η επιλογή και λήψη απόφασης βρίσκεται στην καρδιά του προβλήματος είναι η επίλυση της δευτεροβάθμιας εξίσωσης. Γενικά, το πρόβλημα τίθεται ως εξής: με δεδομένο τριώνυμο με συντελεστές a, b, c και μεγιστοβάθμιο συντελεστή διάφορο του μηδενός να βρεθούν οι ρίζες του. Αυτό απαιτεί τον υπολογισμός της διακρίνουσας =b 2 4 a c. Αν η διακρίνουσα είναι θετική τότε έχουμε δύο πραγματικές ρίζες, αν είναι μηδέν υπάρχει μία πραγματική ρίζα και τέλος, αν είναι αρνητική έχουμε δύο μιγαδικές συζυγείς ρίζες (ή καμία ρίζα, αν δε δεχόμαστε μιγαδικούς αριθμούς για το πρόβλημα που μας ενδιαφέρει). Το σημείο μιας μαθηματικής ή άλλης διαδικασίας όπου εμφανίζεται η ανάγκη της επιλογής μεταξύ πολλών δυνατών ενεργειών αναφέρεται συχνά ως σημείο διακλάδωσης. Αυτό γίνεται κατανοητό αν την αλγεβρική παρουσίαση των βημάτων επίλυσης που χρησιμοποιήσαμε στο παράδειγμα της πρόσθεσης, την αντικαταστήσουμε με μια οπτική αναπαράσταση της διαδικασίας λύσης του προβλήματος. Θα χρησιμοποιήσουμε λοιπόν, ένα λογικό διάγραμμα ή διάγραμμα ροής της λύσης, όπως φαίνεται στην Εικόνα 1. Σε αυτή την εικόνα διακρίνουμε τις ενέργειες απόδοσης τιμής στις παραμέτρους ή μεταβλητές του προβλήματος, Δ, ρ, ρ1 και ρ2 σε ορθογώνια πλαίσια ενώ η επιλογή εντοπίζεται στους ρόμβους όπου γράφεται και η συνθήκη ή το κριτήριο που επιβάλλει τη μία ή την άλλη κατεύθυνση προς την τελική λύση. Η ύπαρξη διαφορετικών διαδρομών προς τη λύση που ξεκινούν από το σημείο όπου εμφανίζεται η επιλογή και η ανάγκη λήψης απόφασης ανάλογα με τα δεδομένα και τις συνθήκες που αυτά ικανοποιούν δικαιολογεί τον όρο διακλάδωση. Παρατηρούμε επίσης, ότι εκτός από την απόδοση τιμών και την επιλογή υπάρχουν και κάποιες βοηθητικές ενέργειες, και συγκεκριμένα η ανάγνωση των δεδομένων (εδώ: συντελεστές του τριωνύμου που το χαρακτηρίζουν πλήρως) και η απόδοση (π.χ. εκτύπωση) των αποτελεσμάτων. Οι δύο τρόποι αναπαράστασης που χρησιμοποιήσαμε ως εδώ για να αναπαραστήσουμε τα δύο παραδείγματα αλγόριθμων, δηλαδή ένα είδος συνοπτικής γλώσσας για την αναφορά στις στοιχειώδεις ενέργειες που λαμβάνουν χώρα και το διάγραμμα ροής χρησιμοποιούνται ευρέως για την περιγραφή αλγορίθμων. Η πρώτη αναπαράσταση έχει και αυτή όνομα και λέγεται αναπαράσταση σε ψευδογλώσσα. Η επίλυση της δευτεροβάθμιας μπορεί να διατυπωθεί και αυτή σε ψευδογλώσσα: Διάβασε a, b, c Αν (a 0) τότε ρ = -b/2/a Δ = b*b-4*a*c Αν (Δ > 0) τότε ρ1 = ρ + Δ/2/a ρ1 = ρ - Δ/2/a αλλοιώς αν (Δ = 0) τότε ρ1 = ρ2 = ρ αλλοιώς ρ1 = ρ + i Δ /2/a ρ1 = ρ i Δ /2/a Τύπωσε ρ1, ρ2 αλλοιώς Τύπωσε Δεν είναι τριώνυμο! 3 / 1 15

4 Αρχή Διάβασε a, b, c a = 0? = 0 0 Δ = b*b-4*a*c ρ = -b/2/a Δεν είναι τριώνυμο! Δ? 0 > 0 = 0 < 0 ρ1=ρ+ Δ/2/a ρ1=ρ- Δ/2/a ρ1 = ρ ρ1 = ρ ρ1=ρ+ Δ/2/a ρ1=ρ- Δ/2/a Τύπωσε ρ1, ρ2 Τέλος Εικόνα 1: λογικό διάγραμμα επίλυσης δευτεροβάθμιας εξίσωσης Εύρεση μέγιστου και ελάχιστου από ένα πλήθος αριθμών. Έστω μία ακολουθία αριθμών που μπορεί να είναι οι καταγεγραμμένες θερμοκρασίες σε μια πόλη για ένα ορισμένο διάστημα, οι τιμές μιας μετοχής στο χρηματιστήριο ή το ύψος ή το βάρος καθενός από μια ομάδα ανθρώπων κλπ. Σε πολλές τέτοιες περιπτώσεις ενδιαφερόμαστε να εντοπίσουμε τον μέγιστο και τον ελάχιστο αριθμό, όπως επίσης και άλλα χαρακτηριστικά του υπό μελέτη δείγματος (μέση τιμή, διασπορά κλπ). Ένας απλός τρόπος για να βρούμε το μέγιστο και τον ελάχιστο είναι ο εξής: Διαβάζομε τον πρώτο αριθμό και θεωρούμε ότι ταυτίζεται με το μέγιστο και τον ελάχιστο συγχρόνως. Επομένως, πρώτα δίνουμε αρχική τιμή στο μέγιστο και στον ελάχιστο. Διαβάζουμε τους υπόλοιπους αριθμούς έναν-έναν. Συγκρίνοντας τον εκάστοτε αριθμό με την τρέχουσα τιμή του μέγιστου και του ελάχιστου τις ενημερώνουμε ανάλογα με το αν ο νέος αριθμός είναι μεγαλύτερος από την πρώτη, μικρότερος από τη δεύτερη ή τίποτε από τα δύο. Θεωρώντας και το πρόβλημα του να καθοριστεί η θέση του ελάχιστου και μέγιστου στη δεδομένη ακολουθία αριθμών, ο αλγόριθμος θα μπορούσε να γραφεί σε ψευδογλώσσα κάπως έτσι: 4 / 1 15

5 Διάβασε πρώτο αριθμό Χ0 Θέσε μετρητή Ι = 1 Θέσε μετρητές θέσης μέγιστου και ελάχιστου ΙΜΙΝ = ΙΜΑΧ = 1 Θέσε ΜΙΝ = ΜΑΧ = Χ0 Όσο υπάρχει επόμενος αριθμός Χ κάνε: Αύξησε Ι κατά 1 Αν Χ < ΜΙΝ τότε θέσε ΜΙΝ = Χ ΙΜΙΝ = Ι Αν Χ > ΜΑΧτότε θέσε ΜΑΧ = Χ ΙΜΑΧ = Ι Γράψε ΙΜΙΝ, ΜΙΝ, ΙΜΑΧ, ΜΑΧ Είναι πολύ εύκολο να επαληθευτεί η εγκυρότητα της παραπάνω διαδικασίας με απλά παραδείγματα που δε χρειάζεται να δοθούν εδώ. Θα τονίσουμε μόνο ότι για άλλη μια φορά συναντούμε τις δομές της επανάληψης (έλεγχος για κάθε επόμενο αριθμό) και της επιλογής (αναλόγως αν ο αριθμός είναι μικρότερος από ΜΙΝ ή μεγαλύτερος από ΜΑΧ ενημερώνουμε τις μεταβλητές του προβλήματος). Όλα τα παραπάνω και πολλά άλλα προβλήματα λύνονται μέσα από διαδικασίες κατά τις οποίες ακολουθούμε βήματα ορισμένα με σαφήνεια για την επεξεργασία των δεδομένων. Αυτού του είδους οι διαδικασίες λέγονται αλγόριθμοι. Ορισμός: Αλγόριθμος είναι μία πεπερασμένη ακολουθία από σαφώς ορισμένες οδηγίες για την εκτέλεση ενός σκοπού, η οποία, για δεδομένη αρχική κατάσταση, οδηγεί σε σαφώς ορισμένες διαδοχικές καταστάσεις και πιθανά σε μία τελική κατάσταση. Παρατηρούμε ότι σε όλες τις περιπτώσεις υπάρχουν οι εξής βασικές δομές: συνένωση ή παράθεση ή πιο απλά, διαδοχική εκτέλεση βημάτων, επιλογή επανάληψη ή ανακύκλωση. Τα βήματα που συνενώνονται με τη διαδοχική τους παράθεση μπορεί να είναι σύνθετα και να αποτελούνται με τη σειρά τους από άλλες δομές συνένωσης διαδοχικών βημάτων, επιλογής και επανάληψης (ή και συνδυασμούς τους) που και αυτές επίσης αναλύονται σε άλλες απλούστερες. Στο κατώτερο δυνατό επίπεδο θα συναντήσουμε απλές λειτουργίες ανάθεσης μιας τιμής σε μια από τις μεταβλητές του προβλήματος. Αυτή η τιμή μπορεί να προέρχεται από τον υπολογισμό μιας παράστασης ή να είναι η τρέχουσα τιμή μιας άλλης μεταβλητής ή ακόμη και κάποια σταθερά (π.χ. ένας αριθμός). Οι παραπάνω τρεις βασικές δομές αποδεικνύεται ότι μπορούν να αποτελέσουν τους δομικούς λίθους για όλων των ειδών τους αλγόριθμους. Επίσης, είναι εύλογο ότι: Τα σύνθετα προβλήματα με άγνωστη προς το παρόν λύση αντιμετωπίζονται ευκολώτερα αν τα σπάσουμε σε μικρότερα για τα οποία ξέρουμε τη λύση. Προτεινόμενη Άσκηση 2: Αναλύστε και διατυπώστε με τρόπο ανάλογο όπως στην Άσκηση 1 τη διαδικασία για τον πολλαπλασιασμό και τη διαίρεση δύο αριθμών. Πώς μπορείτε να αναλύσετε το πρόβλημα σε υποπροβλήματα; Υποθέστε π.χ. ότι αφού το πρόβλημα της πρόσθεσης πολυψήφιων αριθμών έχει λυθεί, έχετε στη διάθεσή σας μια διαδικασία Πρόσθεση(Π, m, Ρ, n) που δίνει το άθροισμα δύο αριθμών Π και Ρ με m και n ψηφία αντιστοίχως το οποίο μπορείτε να αποδώσετε σε μια παράμετρο Χ ως εξής: Χ = Πρόσθεση(Π, m, Ρ, n). Για σύνθετα προβλήματα που απαιτούν πολύ χρόνο (επίλυση πολυσύνθετων συστημάτων εξισώσεων) ή διαχείριση μεγάλου όγκου δεδομένων (π.χ. τραπεζικές συναλλαγές κλπ) θα ήταν ευχής έργο να μπορέσουμε να τυποποιήσουμε και να αυτοματοποιήσουμε τις παραπάνω διαδικασίες. Με την τυποποίηση μπορούμε να τις διατυπώσουμε με γενική μορφή και να εφαρμόσουμε έναν 5 / 1 15

6 αλγόριθμο για πολλά και διαφορετικά προβλήματα που η ανάλυσή τους δείχνει ότι έχουν την ίδια τυπική μορφή, ανεξάρτητα από το συγκεκριμένο τους περιεχόμενο. Η αυτοματοποίηση της διαδικασίας με κάποια μηχανικά μέσα επιταχύνει την επεξεργασία των δεδομένων και βέβαια μας απαλλάσσει από την υποχρέωση να ασχοληθούμε με το κοπιαστικό και πληκτικό μέρος της διαδικασίας επιτρέποντάς μας να ασχολούμαστε με πιο ουσιώδη πράγματα και να ζούμε μια πιο εύκολη και άνετη ζωή. Προτεινόμενη Άσκηση 3: Διερωτηθείτε γιατί, παρά τις τεράστιες δυνατότητες των σύγχρονων υπολογιστών, η ζωή μας παραμένει δύσκολη και πολύπλοκη. Προτείνετε τουλάχιστον τρεις πιθανές αιτίες. Συμπεραίνετε ότι οι υπολογιστές και η πληροφορική είναι σε τελική ανάλυση πράγματα άχρηστα και ίσως και επιβλαβή ή όχι και γιατί; Ένα πρώτο βήμα προς την κατεύθυνση της τυποποίησης και αυτοματοποίησης είναι η διατύπωση των αλγορίθμων σε μια ενιαία κωδικοποιημένη Ψευδογλώσσα για την αναπαράστασή τους. Θα μπορούσαμε να χρησιμοποιήσουμε μια τέτοια συμβολική ή συνθηματική γλώσσα για να ορίσουμε τα απαραίτητα βήματα εκτέλεσης ενός αλγορίθμου, όπως άλλωστε είδαμε πιο πάνω και με συγκεκριμένα παραδείγματα. Μετά, με κάποιον τρόπο, θα έπρεπε να μπορούμε να εκτελέσουμε το κάθε βήμα αυτόματα. Αυτό, προφανώς είναι η δουλειά των σύγχρονων υπολογιστών στους οποίους πρέπει να περάσουμε με κάποιο τρόπο τις εντολές αυτής της γλώσσας. Αυτό στην πράξη επιτυγχάνεται με τη βοήθεια των γλωσσών προγραμματισμού που μας επιτρέπουν να γράψουμε προγράμματα, δηλαδή να διατυπώσουμε με συγκεκριμένες λέξεις-κλειδιά τα διαδοχικά βήματα εκτέλεσης των αλγορίθμων. Το πώς ακριβώς γίνεται αυτό, το πώς ο υπολογιστής παραλαμβάνει τα προγράμματα που γράφουμε και εκτελεί τις εντολές που του δίνουμε μέσω αυτών θα το κατανοήσουμε αν εμβαθύνουμε για λίγο στην εσωτερική δομή του υπολογιστή (αρχιτεκτονική) που σχετίζεται με την αποθήκευση, επεξεργασία και ανάκτηση της πληροφορίας. Ηλεκτρονική Επεξεργασία Πληροφορίας Αρχιτεκτονική Ψηφιακού Ηλεκτρονικού Υπολογιστή: Έναν υπολογιστή μπορούμε να τον εξετάσουμε από την άποψη της υλικής δομής του, όπως και από την άποψη της πληροφορίας που αποθηκεύει και χειρίζεται με ποικίλους τρόπους. Υλικό (hardware): Ως τέτοιο ορίζεται το σύνολο των μηχανικών, ηλεκτρικών και ηλεκτρονικών μερών του υπολογιστή, καθώς και των συσκευών που συνδέονται με αυτόν. Λογισμικό (software): Με τον όρο αυτόν αναφερόμαστε στα προγράμματα που χρησιμεύουν στη συντονισμένη λειτουργία των μερών του υπολογιστή και στην επικοινωνία με το χρήστη (λειτουργικό σύστημα), καθώς και τα προγράμματα είτε του κατασκευαστή είτε δικά μας, που μας εξυπηρετούν σε διάφορους σκοπούς και στην επίλυση ποικίλων προβλημάτων (εφαρμογές). Υλικό Από την άποψη του υλικού μπορούμε να διακρίνουμε τα εξής κύρια συστατικά μέρη ή κατηγορίες: Κύρια Μνήμη Κεντρική Μονάδα Επεξεργασίας (CPU). Αυτή με τη σειρά της υποδιαιρείται στα ακόλουθα δύο μέρη: Αριθμητική και Λογική Μονάδα Μονάδα Ελέγχου Ελεγκτές και Περιφερειακές συσκευές Μνήμη. Η πληροφορία προς χρήση αποθηκεύεται στα ηλεκτρονικά κυκλώματα που αποτελούν τη μνήμη του υπολογιστή. Η πληροφορία αυτή και συνεπώς και η χωρητικότητα της μνήμης, μπορεί να μετρηθεί. Η βασική μονάδα πληροφορίας και, αντιστοίχως, χωρητικότητας της μνήμης είναι το bit (=binary digit). Αυτό έχει καθιερωθεί ως μονάδα αποθηκευμένης πληροφορίας λόγω της ευκολίας υλοποίησής του σε 6 / 1 15

7 ηλεκτρονικά κυκλώματα, και συγκεκριμένα ως στοιχειώδες κύκλωμα που μπορεί να βρεθεί σε δυο διακριτές καταστάσεις: φορτισμένο-αφόρτιστο, χαμηλή τάση-υψηλή τάση, κλπ. (παρεμπιπτόντως, οπτικά κυκλώματα που λειτουργούν με laser μπορούν να αποθηκεύσουν πληροφορία και σε άλλα συστήματα πέραν του δυαδικού. Η σχετική έρευνα φιλοδοξεί να οδηγήσει σε νέου τύπου αρχιτεκτονικές). Λόγω της χρήσης δυαδικού συστήματος για την αποθήκευση της πληροφορίας, οι δυνάμεις του 2 παίζουν σημαντικό ρόλο στη μέτρηση της μνήμης ενός υπολογιστικού συστήματος. Για να επικοινωνήσει ο άνθρωπος με τη μηχανή χρειάζεται να μεταδώσει πληροφορία εκφρασμένη σε σύμβολα όπως γράμματα και αριθμοί τα οποία πρέπει να μετατραπούν σε αντίστοιχες δυαδικές αναπαραστάσεις. Ανάλογα με τον αριθμό των συμβόλων που πρέπει να αποθηκευτούν, τα στοιχειώδη τμήματα της μνήμης, τα bits, πρέπει να ομαδοποιηθούν κατά τέτοιο τρόπο ώστε μία ομάδα να μπορεί να αναπαραστήσει όλα τα σύμβολα ανάλογα με το συνδυασμό των καταστάσεων, 0 ή 1, στις οποίες βρίσκονται τα επί μέρους bits. Αυτές οι ομαδοποιήσεις λέγονται κελλιά (cells) ή λέξεις (words) και συνήθως αποτελούνται από 8 bits επειδή οι δυνατοί συνδυασμοί των 0 και 1 είναι 2 8 =256 που είναι επαρκείς για την αναπαράσταση των δεκαδικών ψηφίων, των γραμμάτων του λατινικού αλφαβήτου και άλλων συμβόλων αν χρειαστεί. Η λέξη των 8 bits λέγεται και byte. Αν χρειαστεί αποθήκευση πληροφορίας περισσότερης από όση μπορούν να παράσχουν οι 256 συνδυασμοί θα χρησιμοποιηθούν τα αμέσως γειτονικά bytes. Η χωρητικότητα της μνήμης εκφράζεται σε μονάδες byte και σε δυνάμεις του 2. Έτσι, 1 kilobyte (kb), 1 MegaByte (MB), 1 GigaByte (GB) σημαίνουν αντίστοιχα 2 10 = 1024, 2 20 = και 2 30 = bytes, αντίστοιχα. Παρατηρείστε τη διαφορά ανάμεσα στους παραπάνω αριθμούς και τη συνήθη χρήση των προθεμάτων kilo, Mega και Giga που συνήθως υποδηλώνουν ακριβώς 1000, και αντίστοιχα. Τέλος, πρέπει να πούμε ότι κάθε byte της μνήμης χαρακτηρίζεται από μία διεύθυνση, δηλαδή έναν ακέραιο αριθμό που καθορίζει επακριβώς τη θέση της μέσα στη μνήμη. Αυτό είναι ένα στοιχείο που εκμεταλλεύονται πολλές γλώσσες προγραμματισμού για να επιτύχουν ταχύτερη επεξεργασία των δεδομένων, κάνοντας χρήση των διευθύνσεων μνήμης όπου είναι αποθηκευμένες οι χρήσιμες πληροφορίες αντί για τα ίδια τα δεδομένα τα οποία και χειρίζονται μόνο όταν αυτό καταστεί απαραίτητο. Αυτό ισχύει γενικότερα και για τα διάφορα λειτουργικά συστήματα και τον τρόπο με τον οποίο αποθηκεύουν, ανακαλούν και διαγράφουν δεδομένα. Έτσι, αν ένα αρχείο με χρήσιμες πληροφορίες έχει αποθηκευτεί σε μια περιοχή της μνήμης που αρχίζει στη διεύθυνση Α και τελειώνει στη διεύθυνση Β, τότε αυτό το αρχείο χαρακτηρίζεται μοναδικά από τη διεύθυνση της αρχής του, Α που είναι και η διεύθυνση του αρχείου. Όταν θελήσουμε να ανοίξουμε ή να επεξεργαστούμε το αρχείο, τότε ο υπολογιστής θα ανατρέξει στη διεύθυνση Α για να αρχίσει την ανάγνωση των bytes επειδή την έχει σημειώσει σε άλλη περιοχή της μνήμης που είναι αφιερωμένη σε αυτό το σκοπό (δηλαδή παίζει το ρόλο καταλόγου ή ευρετηρίου), οπότε ξέρει ότι εκεί θα βρει το συγκεκριμένο αρχείο. Παρόμοια, αν θελήσουμε να σβήσουμε το αρχείο, ο υπολογιστής θα διαγράψει απλώς τη διεύθυνση από το ευρετήριο δηλώνοντας έτσι ότι η περιοχή που αρχίζει από το σημείο Α και εκτείνεται μέχρι μια ορισμένη απόσταση είναι ελεύθερη για χρήση, χωρίς να χρειαστεί να σβήσει όλα τα δεδομένα μεταξύ Α και Β. Τα κυκλώματα της μνήμης διακρίνονται σε RAM (Random Access Memory μνήμη τυχαίας προσπέλασης) και σε ROM (Read Only Memory μνήμη μόνο για ανάγνωση). Η πρώτη είναι αυτή με την οποία κάνουμε τη δουλειά μας όταν χρησιμοποιούμε τον υπολογιστή: εκεί φορτώνονται τα προγράμματα για να εκτελεστούν και τα δεδομένα που θα χειριστούν. Αλλά τα δεδομένα αυτά σβήνονται και χάνονται όταν ο υπολογιστής σβήνει. Το αντίθετο συμβαίνει με τη ROM. Αυτή περιέχει δεδομένα χρήσιμα για τη λειτουργία του υπολογιστή τα οποία διατηρούνται ακόμη και με σβηστό υπολογιστή. Η Κύρια Μνήμη συνδέεται μέσω διαύλου (bus) με την Κεντρική Μονάδα Επεξεργασίας, την οποία και εξετάζουμε στη συνέχεια. Κεντρική Μονάδα Επεξεργασίας (ΚΜΕ) Η ΚΜΕ διαθέτει καταχωρητές (registers) για την αποθήκευση συγκεκριμένης πληροφορίας που είναι 7 / 1 15

8 κελλιά εντελώς ανάλογα με τις λέξεις της μνήμης. Μονάδα Ελέγχου (Control Unit): Αυτή διαβάζει τη μνήμη, δεδομένα και εντολές προγραμμάτων, τα μεταφέρει στους καταχωρητές, πληροφορεί την Αριθμητική Λογική Μονάδα (ΑΛΜ) για τις διευθύνσεις των καταχωρητών όπου βρίσκονται τα δεδομένα καθώς και αυτές όπου θα αποθηκευτούν τυχόν αποτελέσματα, όπως επίσης και για τις πράξεις που πρέπει να επιτελεστούν ανάλογα με τις αποκωδικοποιημένες εντολές που διάβασε από τη μνήμη και μεταβάλλει τα δεδομένα ανάλογα με τις οδηγίες που θα πάρει από την ΑΛΜ. Αριθμητική Λογική Μονάδα, ΑΛΜ (Arithmetic Logic Unit, ALU). Εκτελεί τις στοιχειώδεις πράξεις της αριθμητικής και της λογικής (COMPARE, AND, OR, SHIFT, ROTATE). Περιφερειακά: Μπορούμε να τα διακρίνουμε σε μαζικής αποθήκευσης (ταινίες, CD, σκληροί δίσκοι κλπ) και εισόδου/εξόδου (i/o οθόνες, πληκτρολόγια, ποντίκια κλπ). Στις συσκευές μαζικής αποθήκευσης η πληροφορία αποθηκεύεται με βάση τις ίδιες αρχές όπως και στην ΚΜ του ΗΥ (δυαδικό σύστημα κλπ) αν και ο συγκεκριμένος τρόπος υλοποίησης διαφέρει (μαγνήτιση/απομαγνήτιση, σημάδια ή καθαρές περιοχές στην επιφάνεια του CD κλπ). Σε σχέση με την ΚΜ είναι: πιο αργά, μεταφέρονται, αποθηκεύουν περισσότερη πληροφορία και τη διατηρούν μετά τη διακοπή της ηλεκτρικής τροφοδοσίας. Ελεγκτές συντονίζουν τις ενέργειες των περιφερειακών με αυτές του καθαυτό υπολογιστή. Αναπαράσταση συμβόλων και αριθμών. Πώς αναπαρίσταται η πληροφορία στους ΗΥ; Αυτό ποικίλλει ανάλογα με το είδος της πληροφορίας: Χαρακτήρες και σύμβολα: κώδικας ASCII (ο πιο συνηθισμένος προσωπικοί υπολογιστές), EBCDIC (mainframes). Κάθε byte έχει διάφορους συνδυασμούς ψηφίων 0 ή 1. Αν αυτά τα δούμε σαν αναπαράσταση ενός αριθμού στο δυαδικό σύστημα τότε κάθε byte μπορεί να περιέχει έναν αριθμό από 0 ως 255. Αν αντιστοιχίσουμε κάθε τέτοιο αριθμό σε ένα σύμβολο ή χαρακτήρα (όπου περιλαμβάνουμε και τα αριθμητικά ψηφία θεωρούμενα ως χαρακτήρες) έχουμε ένα σύστημα κωδικοποίησης. Αν ο υπολογιστής ξέρει με κάποιο τρόπο ότι σε ένα συγκεκριμένο byte θέλουμε να αποθηκεύονται χαρακτήρες και αυτός ο υπολογιστής χρησιμοποιεί π.χ. κωδικοποίηση ASCII, τότε κάθε τιμή που θα βρει σε αυτό το byte θα την ερμηνεύσει ως τον αντίστοιχο χαρακτήρα. Ακέραιοι: δυαδικό σύστημα. Δυνάμεις του 2 από 0 και άνω. Π.χ = Αντίθετα από τους χαρακτήρες, οι ακέραιοι είναι ακατέργαστα δεδομένα, δηλαδή αν ο υπολογιστής ξέρει ότι σε κάποιο συγκεκριμένο byte αποθηκεύονται ακέραιοι, θα εκλάβει την αριθμητική τιμή που θα βρει εκεί ως τέτοια και όχι ως κωδικοποίηση κάποιου συμβόλου. Οι αριθμοί που μπορούν να αποθηκευτούν σε ένα byte κυμαίνονται από 0 μέχρι 255, αλλά αυτό δεν επιτρέπει την αναπαράσταση των αρνητικών. Διέξοδος: το πρώτο bit να είναι το bit προσήμου: 1 = αρνητικός και 0 = θετικός. Τότε το εύρος γίνεται από -127 μέχρι 127. Εναλλακτική λύση που χρησιμοποιείται ευρέως είναι το συμπλήρωμα ως προς 2. Ο αριθμός των διαθέσιμων bits επηρεάζει το μέγεθος των ακέραιων αριθμών που μπορούν να αποθηκευτούν. Η γλώσσα C επιτρέπει τη χρήση διαφορετικών τύπων ακεραίων που μπορεί να έχουν ή να μην έχουν πρόσημο καθώς και να καταλαμβάνουν 8 ή περισσότερα bits. Πραγματικοί: Δυαδικό. Δυνάμεις του 2 από 0 και άνω αριστερά της υποδιαστολής και από -1 και κάτω δεξιά της υποδιαστολής. Χρήση επιστημονικής γραφής: mantissa Χ βάση ^ εκθέτης. Απαιτείται διαθέσιμη μνήμη για: mantissa, εκθέτη, πρόσημο αυτών των δυο. Ο αριθμός των διαθέσιμων bits επηρεάζει τόσο το μέγεθος όσο και την ακρίβεια των πραγματικών αριθμών που μπορούν να αποθηκευτούν. Διευθύνσεις μνήμης: Τίποτε το παράξενο. Μπορούν να αναπαρασταθούν και αποθηκευτούν ως ακέραιοι 8 / 1 15

9 αριθμοί σε δυαδική μορφή. Έτσι, αν για κάποιο λόγο, πρέπει να αποθηκεύσουμε τη διεύθυνση Α ενός κελλιού μνήμης, θα την καταγράψουμε σε δυαδική μορφή σε κάποιο άλλο κελλί με τη δική του, βεβαίως, διεύθυνση Β (που δεν έχει καμία ιδιαίτερη σχέση με την Α). Εντολές: Ο επεξεργαστής (ΚΜΕ) έχει ηλεκτρονικά κυκλώματα που υλοποιούν στοιχειώδεις πράξεις μεταξύ των bits που της μεταφέρονται ή γενικότερα εντολές που αφορούν αυτά τα bits (οι γνωστές αριθμητικές πράξεις και στοιχειώδεις λογικές πράξεις). Αυτές είναι επίσης αποθηκευμένες με δυαδική μορφή (σαν πίνακες αλήθειας). Οι στοιχειώδεις αυτές πράξεις ή εντολές, αποτελούν αυτό που ονομάζουμε γλώσσα μηχανής και μπορούν να χρησιμεύσουν στην υλοποίηση πιο σύνθετων διαδικασιών οι οποίες με τη σειρά τους συντίθενται σε ένα ανώτερο επίπεδο για να δώσουν σύνθετες εντολές κάποιας γλώσσας προγραμματισμού ή κάποιας εντολής που μεταβιβάζεται στον ΗΥ μέσω κάποιου περιφερειακού. Αντίστροφα, οι εντολές που με οποιονδήποτε τρόπο διαβιβάζονται στην ΚΜΕ, μετατρέπονται σε δυαδικό κώδικα που παριστάνει μια ακολουθία από τέτοιες στοιχειώδεις εντολές του επεξεργαστή. Συμπέρασμα: η πληροφορία που αποθηκεύεται στη μνήμη είναι κωδικοποιημένη σε δυαδικό σύστημα. Η σύμβαση όμως με την οποία μεταφράζεται ο δυαδικός κώδικας για να μας δώσει πίσω την πληροφορία, διαφέρει ανάλογα με το είδος των δεδομένων μας: σύμβολα, ακέραιοι αριθμοί, πραγματικοί αριθμοί, διευθύνσεις μνήμης, εντολές. Έτσι, όταν δίνουμε μια εντολή για τον χειρισμό του περιεχομένου μνήμης μιας συγκεκριμένης διεύθυνσης, πρέπει να προσδιορίσουμε τι είδους πληροφορία υπάρχει σε αυτή τη μνήμη: ακέραιος, πραγματικός, σύμβολο κλπ. Επίσης, πρέπει να προσδιορίσουμε σε τι έκταση μνήμης εκτείνεται η προς επεξεργασία πληροφορία (πόσα bits καταλαμβάνει). Διαφορετικά, ο υπολογιστής δεν θα ξέρει τι ακριβώς να κάνει με αυτή. Οι διάφορες γλώσσες προγραμματισμού, όπως η C, περιλαμβάνουν ειδικές εντολές δήλωσης μεταβλητών που αποσκοπούν στο να δεσμεύσουν περιοχές της μνήμης για αποθήκευση συγκεκριμένου είδους πληροφορίας όπως το έχει ορίσει ο χρήστης-προγραμματιστής. Σημείωση: όταν για κάποιο λόγο θέλουμε να καταγράψουμε δυαδικές ακολουθίες σε μορφή πιο ευανάγνωστη, συνηθίζεται να χρησιμοποιούμε δεκαεξαδικό (ή και οκταδικό) σύστημα. Γλώσσες Προγραμματισμού Περί επιπέδων: Μπορούμε να τις κατατάξουμε σε διάφορα επίπεδα. Στο πιο χαμηλό επίπεδο βρίσκεται η γλώσσα μηχανής που προαναφέρθηκε και η οποία διαφέρει από ΗΥ σε ΗΥ λόγω της διαφορετικής αρχιτεκτονικής που χρησιμοποιείται σε κάθε είδους επεξεργαστή. Περιλαμβάνει στοιχειώδεις αριθμητικές και λογικές πράξεις καθώς και άλλου είδους χειρισμό δεδομένων, όπως μεταφορά από μια θέση μνήμης σε άλλη, π.χ. για τη μεταφορά δεδομένων από τα περιφερειακά στην Κύρια Μνήμη και από εκεί στους καταχωρητές του επεξεργαστή. Στο αμέσως ανώτερο επίπεδο, βρίσκεται η συμβολική γλώσσα (assembly) η οποία δεν είναι παρά η έναπρος-ένα αντιστοιχία μεταξύ του δυαδικού κώδικα κάθε εντολής της γλώσσας μηχανής και ειδικών συντετμημένων λέξεων της αγγλικής γλώσσας. Αυτό επέτρεπε στους πρώτους προγραμματιστές πριν αρκετές δεκαετίες να γράψουν τα πρώτα τους προγράμματα με μια σχετική ευκολία. Πώς όμως αντιλαμβάνεται ο υπολογιστής τις εντολές της συμβολικής γλώσσας; Είναι εξοπλισμένος με ένα πρόγραμμα, τον συμβολομεταφραστή (assembler) που μετατρέπει τις συμβολικές εντολές σε κατάλληλο δυαδικό κώδικα. Όπως και η γλώσσα μηχανής, έτσι και η συμβολική γλώσσα είναι εξειδικευμένη στο συγκεκριμένο τύπο υπολογιστή. Σε ακόμη ανώτερα επίπεδα βρίσκονται οι διάφορες σύγχρονες γλώσσες προγραμματισμού που λέγονται και γλώσσες υψηλού επιπέδου. Αυτές δικαιολογημένα αποκαλούνται γλώσσες γιατί έχουν το δικό τους συντακτικό και τη δική τους γραμματική δηλαδή ένα σύνολο από κανόνες που πρέπει να ακολουθούνται με συνέπεια κατά τη συγγραφή προγραμμάτων. Έχουν επίσης το δικό τους λεξιλόγιο, ένα σύνολο από δεσμευμένες λέξεις, ενώ ο χρήστης μπορεί να προσθέσει δικά του ονόματα για τις κάθε είδους ποσότητες και πληροφορίες που υπεισέρχονται στο πρόβλημα και αποτελούν τις σταθερές και μεταβλητές του προγράμματος. Οι προτάσεις που διατυπώνονται σε αυτές τις γλώσσες είναι εντολές προς τον ΗΥ που αναλύονται σε πολλές στοιχειώδεις εντολές σε γλώσσα μηχανής για την ύπαρξη και την εκτέλεση των οποίων δε χρειάζεται να απασχολείται ο προγραμματιστής. Έτσι, για 9 / 1 15

10 παράδειγμα, όταν έχουμε να λύσουμε μία εξίσωση δεύτερου βαθμού δε θα γράψουμε από την αρχή τον αλγόριθμο για τις αριθμητικές πράξεις (πρόσθεση, αφαίρεση κλπ) αλλά ο υπολογιστής θα ξέρει ότι τα αντίστοιχα σύμβολα (+, - κλπ) ερμηνεύονται ως μια ακολουθία στοιχειωδών εντολών στη γλώσσα μηχανής, που είναι αποθηκευμένες και έτοιμες για χρήση, στην ΚΜΕ. Συνεπώς, εμείς θα γράψουμε μόνο τις βασικές εντολές που αναφέρονται στο χειρισμό των αριθμών που μας δίνονται και τα υπόλοιπα γίνονται από μόνα τους. Οι εντολές των γλωσσών προγραμματισμού υψηλού επιπέδου αντιστοιχούν στις τρεις βασικές δομές εκτέλεσης των αλγορίθμων όσο και σε άλλες παρεμφερείς, συμπληρωματικές και βοηθητικές λειτουργίες (π.χ. δήλωση μεταβλητών = δέσμευση περιοχών της μνήμης). Και πώς μεταφράζονται τα προγράμματα σε γλώσσα μηχανής; Εδώ υπεισέρχεται ο μεταγλωττιστής (compiler), που είναι το αντίστοιχο του συμβολομεταφραστή, μόνο που είναι ένα πρόγραμμα πιο πολύπλοκο. Ο μεταγλωττιστής διαβάζει το πρόγραμμα που έχουμε συντάξει σε μια γλώσσα προγραμματισμού και παράγει ένα άλλο πρόγραμμα γραμμένο σε δυαδικό κώδικα, το εκτελέσιμο, το οποίο και εκτελεί ο υπολογιστής. Ο μεταγλωττιστής μπορεί να διαφέρει από σύστημα σε σύστημα, όμως ένα πρόγραμμα που έχει γραφεί σε μία γλώσσα υψηλού επιπέδου, κατά κανόνα μπορεί να εκτελεστεί απαράλλαχτο ή το πολύ-πολύ με μικρές τροποποιήσεις σε άλλα συστήματα, αρκεί να υπάρχει σε αυτά εγκατεστημένος ο αντίστοιχος μεταγλωττιστής. Δηλαδή τα προγράμματα σε γλώσσες υψηλού επιπέδου χαρακτηρίζονται από μεταφερσιμότητα ή φορητότητα (portability). Ο μεταγλωττιστής μπορεί να εντοπίσει ορισμένα λάθη στο πρόγραμμα και να ενημερώσει το χρήστη ώστε να τα διορθώσει. Δε μπορεί να ανακαλύψει βέβαια όλα τα λάθη, δηλαδή τα λάθη λογικής στην κατάστρωση του αλγορίθμου, τα οποία είναι ευθύνη του προγραμματιστή να τα ανακαλύψει. Ερώτηση: ο μεταγλωττιστής πώς και σε ποια γλώσσα γράφεται; Απάντηση: Σε πολλές γλώσσες είναι δυνατό να γραφεί ένας μεταγλωττιστής, συχνά όμως, χρησιμοποιείται η διαδικασία που είναι γνωστή ως bootstrapping: αρχικά γράφεται ένα μικρό μέρος της γλώσσας που θέλουμε να αναπτύξουμε σε κάποια προϋπάρχουσα, ενδεχομένως και assembly, και στη συνέχεια, αυτός ο μεταγλωττιστής χρησιμοποιείται για να γράψει έναν άλλο πιο προηγμένο στην ίδια του τη γλώσσα όπου προσθέτει περισσότερα στοιχεία. Αξίζει να πούμε ότι εκτός από τους μεταγλωττιστές υπάρχουν και οι μεταφραστές ή διερμηνευτές (interpreters) που δεν παράγουν εκτελέσιμο πρόγραμμα αλλά διαβάζουν μία-μία τις εντολές του αρχικού προγράμματος, τις μεταφράζουν σε δυαδικό κώδικα που εκτελείται και μετά πάνε στην επόμενη εντολή. Έτσι λειτουργούσε π.χ. η γλώσσα BASIC. Αυτός ο τρόπος δεν είναι τόσο γρήγορος όσο η μεταγλώττιση. Οι γλώσσες υψηλού επιπέδου χωρίζονται και αυτές σε διάφορες κατηγορίες. Η κατάταξη των γλωσσών με βάση όλα τα δυνατά κριτήρια θα ήταν αρκετά πολύπλοκη καθώς υπάρχουν και πολλές αλληλεπικαλύψεις μεταξύ των διαφόρων κατηγοριών. Μια απλουστευμένη εικόνα, με μερικά γνωστά παραδείγματα, θα μπορούσε να είναι αυτή που παρουσιάζεται στον επόμενο πίνακα. Αξίζει να πούμε ότι οι κατηγορίες αυτές δεν είναι απολύτως ξένες μεταξύ τους. Π.χ. η γλώσσα C++ μπορεί να χρησιμοποιηθεί και για διαδικαστικό προγραμματισμό, αντίθετα από τη Java που είναι καθαρά αντικειμενοστρεφής. Το παρόν μάθημα θα βασιστεί στην υλοποίηση αλγορίθμων με τη βοήθεια της διαδικαστικής γλώσσας C. 10 / 1 15

11 Κατηγορία Αγγλικός όρος Παραδείγματα γλωσσών Διαδικαστικές ή προστακτικές Βασίζονται σε διαδοχική εκτέλεση εντολών. Οι σύγχρονες διαδικαστικές γλώσσες έχουν εντολές που επιτρέπουν τη σαφή και ευκρινή διατύπωση των βασικών αλγοριθμικών δομών κ«ι ευνοούν το δομημένο προγραμματισμό. Αντικειμενοστρεφείς Βασίζονται σε ορισμό γενικευμένων τύπων ή κατηγοριών (κλάσεων) που περιγράφουν τα δεδομένα ως αντικείμενα ικανά να ανταλλάσουν πληροφορία μέσω συναρτήσεων-μελών. Procedural, imperative Fortran77, Quick Basic, C, Pascal, Fortran 90/95 (?) Object oriented Συναρτησιακές Functional Lisp Δηλωτικές Declarative Prolog Simula, Smalltalk, C++, Java, Fortran 90/95 (?), Fortran 2003 Είχαμε πει στην ενότητα για τους αλγόριθμους, ότι πολύ συχνά συμφέρει να υποδιαιρούμε το πρόβλημα προς επίλυση σε άλλα επιμέρους που είναι πιο εύκολα ή έχουν γνωστή λύση. Οι γλώσσες υψηλού επιπέδου επιτρέπουν τη συγγραφή ξεχωριστών ενοτήτων (συναρτήσεις, ρουτίνες, procedures, υποπρογράμματα) που να υλοποιούν συγκεκριμένους αλγόριθμους και μετά, τη συνένωση αυτών με τον τρόπο που έχει καθορίσει ο προγραμματιστής σε ένα μεγαλύτερο πρόγραμμα που θα επιτελεί συγκεκριμένες λειτουργίες. Μέσα στις υποενότητες ή υποπρογράμματα, μπορούμε να δομήσουμε το πρόγραμμα έτσι ώστε να αποτελείται από ευανάγνωστα μπλοκ εντολών που υλοποιούν στοιχειώδεις δομές (διαδοχή, επιλογή, επανάληψη). Εξ άλλου, ήδη ορισμένοι αλγόριθμοι που εξυπηρετούν τη χρήση του ΗΥ και των περιφερειακών του (π.χ. λήψη πληροφοριών από το πληκτρολόγιο, εκτύπωση αποτελεσμάτων στην οθόνη) είναι προ-μεταγλωττισμένοι και συνδέονται και αυτοί με το κύριο πρόγραμμα για να αποτελέσουν μια ενιαία πρακτική εφαρμογή. Στην ιδανική περίπτωση, τόσο τα διάφορα υποπρογράμματα, όσο και τα επιμέρους τμήματα που τα αποτελούν έχουν μία είσοδο δεδομένων και μία έξοδο αποτελεσμάτων, ώστε αν κάποιος διαβάσει ένα τέτοιο πρόγραμμα να μη χρειαστεί να κάνει άλματα και πισωγυρίσματα στο εσωτερικό κάθε ενότητας ή μεταξύ των διαφόρων ενοτήτων. Αυτού του είδους τα άλματα ήταν κάτι που εμφανιζόταν συχνά σε παλιότερα προγράμματα, κατά τα πρώτα χρόνια του προγραμματισμού σε γλώσσες υψηλού επιπέδου, καθιστώντας τα δύσκολα στην κατανόηση όσο και στην αναβάθμισή τους. Γι' αυτό το λόγο αναπτύχθηκαν γλώσσες που επιτρέπουν ένα άλλο στυλ προγραμματισμού, το οποίο ευνοεί την υποδιαίρεση κάθε προγράμματος σε αυτάρκεις ενότητες με την έννοια που περιγράψαμε, οι οποίες κατόπιν μπορούν να συνδυαστούν εύκολα μεταξύ τους για να δώσουν μια ποικιλία εφαρμογών. Αυτό το ιδανικό προσπαθεί να προσεγγίσει η φιλοσοφία του δομημένου προγραμματισμού. Μπορούμε να διακρίνουμε ισχυρή και ασθενή έννοια του δομημένου προγραμματισμού (ή κατά Dijkstra και Knuth, αντιστοίχως). Στην πρώτη περίπτωση προσπαθούμε να κάνουμε υποπρογράμματα και τμήματα κώδικα που να έχουν πάντα μόνο μία είσοδο και μόνο μία έξοδο. Στη δεύτερη περίπτωση, χαλαρώνουμε αυτό τον περιορισμό και επιτρέπουμε περισσότερες εξόδους και ακόμη και την εντολή goto σε ορισμένα πλαίσια (θα παρουσιαστεί σε επόμενο μάθημα) που είναι προγενέστερη των δομημένων γλωσσών και η υπερβολική χρήση της οδηγούσε συχνά σε πολύπλοκα και ακατανόητα προγράμματα. Η ανάγκη για ένα πιο χαλαρό ορισμό του δομημένου προγραμματισμού προέκυψε από το γεγονός ότι η απόλυτη προσήλωση στους αρχικούς κανόνες κάποιες φορές οδηγούσε σε στριφνό κώδικα που ακύρωνε τα επιδιωκόμενα πλεονεκτήματα. 11 / 1 15

12 Η θεωρητική δικαιολόγηση του δομημένου προγραμματισμού ως εφικτού τρόπου προγραμματισμού στηρίζεται στο Θεώρημα Jacopini. Αυτό πρακτικά λέει ότι κάθε πρόγραμμα μπορεί να αναπτυχθεί αναλυόμενο σε υποπρογράμματα και αυτά με τη σειρά τους σε μπλοκ εντολών που βασίζονται στις τρεις θεμελιώδεις δομές (διαδοχή, επιλογή, επανάληψη). Επίσης από πρακτική άποψη μπορούμε να πούμε ότι ο Ιδανικός δομημένος κώδικας είναι αυτός που μπορούμε να διαβάσουμε και να καταλάβουμε χωρίς ούτε μια φορά να γυρίσουμε πίσω ή να προτρέξουμε. Λογισμικό Στον ΗΥ δεν αποθηκεύονται μόνο προγράμματα γραμμένα από τους χρήστες σε μια γλώσσα προγραμματισμού και δεδομένα προς επεξεργασία. Όπως ξέρουμε από την εμπειρία μας υπάρχουν πολλά άλλα προγράμματα τα οποία καθιστούν τον ΗΥ κατάλληλο προς χρήση διότι βοηθούν την επικοινωνία με τους χρήστες, αλλά και εξασφαλίζουν την αποδοτικότερη αξιοποίηση των περιφερειακών. Το σύνολό τους αποτελεί το λογισμικό (software) του ΗΥ κατ' αντιδιαστολή προς το υλικό (hardware). Αυτό μπορούμε να το κατατάξουμε σε λογισμικό συστήματος και λογισμικό εφαρμογών. Λογισμικό Συστήματος: Λειτουργικά Συστήματα: multi-tasking, ενός χρήστη, πολλών χρηστών, γραφικά περιβάλλοντα. Αρμοδιότητα τους είναι η επικοινωνία με το χρήστη και η αποδοτική χρήση των πόρων (μνήμη, επεξεργαστική ισχύς) και περιφερειακών συσκευών. Προγράμματα εξυπηρέτησης (utilities): Βοηθητικά προγράμματα που εκτελούν βασικές λειτουργίες υπό μορφή εντολών ή κλήσεων με άλλα μέσα (π.χ. ποντίκι), όπως αντιγραφή ή μεταφορά αρχείων, αποθήκευση, σβήσιμο,ταξινόμηση και πολλά άλλα. Συχνά οι χρήστες μπορούν να προμηθευτούν και νέα ή να δημιουργήσουν τα δικά τους βοηθητικά προγράμματα εξυπηρέτησης. Μεταφραστές γλωσσών: Εκτελούν τη μεταγλώττιση σε γλώσσα μηχανής. Πριν την καθαυτό μεταγλώττιση υπάρχει το στάδιο της προεπεξεργασίας (preprocessing). Σε αυτό, το αρχικό κείμενο με τις εντολές, δηλαδή ο πηγαίος κώδικας υφίσταται προσθήκες αρχείων που είτε έχουν κατασκευαστεί από το χρήστη είτε προϋπάρχουν στο σύστημα, καθώς επίσης και γίνονται τροποποιήσεις στον κώδικα, σύμφωνα με οδηγίες που έχουν δοθεί με κατάλληλο συμβολισμό από το χρήστη, π.χ. για να κάνουν τον κώδικα ταχύτερο και αποτελεσματικότερο. Μετά ακολουθεί η μεταγλώττιση του τροποποιημένου πηγαίου κώδικα σε δυαδικό κώδικα (αντικειμενικός, object, κώδικας), σύνδεση από τον linker των επί μέρους ενοτήτων (συναρτήσεων), αλλά και βιβλιοθηκών του συστήματος που εκτελούν βασικές λειτουργίες κοινές σε πολλά προγράμματα (χρήση περιφερειακών, στοιχειώδεις μαθηματικές συναρτήσεις κλπ) και για τις οποίες δε θα ήταν σκόπιμο ο προγραμματιστής να απασχολείται κάθε φορά και τέλος, δημιουργία του εκτελέσιμου αρχείου. Λάθη κατά τον προγραμματισμό Στην ανάπτυξη ενός προγράμματος μπορεί να παρουσιαστούν τριών ειδών λάθη: Συντακτικά (αναγνωρίζονται κατά τη μεταγλώττιση και εμποδίζουν την ολοκλήρωσή της), Λάθη χρόνου εκτέλεσης (run time errors διαφεύγουν της μεταγλώττισης και δεν την εμποδίζουν αλλά αναγνωρίζονται κατά την εκτέλεση), Λογικά (δε μπορεί να τα εντοπίσει ο μεταγλωττιστής γιατί έχουν να κάνουν με τον ίδιο τον αλγόριθμο, την υλοποίησή του και κατά πόσον αυτός είναι σωστός για το πρόβλημα που μας ενδιαφέρει). Ο compiler μπορεί να βρει τα δύο πρώτα είδη και να μας δώσει ανάλογα μηνύματα, αλλά το τρίτο είναι ευθύνη του προγραμματιστή. Πρώτα ελέγχονται τα δεδομένα αν είναι σωστά και αν δεν έχουν πρόβλημα τότε το πρόγραμμα έχει λάθος και πρέπει να τροποποιηθεί. Εδώ μπορεί να βοηθήσει και ένα πρόγραμμα διόρθωσης ή αποσφαλμάτωσης (debugger) που επιτρέπει τη βήμα-με-βήμα παρακολούθηση της εκτέλεσης. Σχεδίαση ή Τεχνολογία Λογισμικού (Software Engineering) Η ανάπτυξη ενός προγράμματος έχει τυποποιηθεί σε βαθμό που να μπορεί να θεωρηθεί και αυτή η ίδια 12 / 1 15

13 ένας αλγόριθμος που περιλαμβάνει τα βασικά στοιχεία των διαδοχικών εκτελέσεων, επαναλήψεων και επιλογών, όπως θα εξηγηθεί στη συνέχεια. Ένας από τους πιο καθιερωμένους τέτοιους αλγόριθμους ανάπτυξης λογισμικού βασίζεται στο ιεραρχικό μοντέλο. Σύμφωνα με αυτό, πρώτα ορίζουμε σε αδρές γραμμές τη συνολική λειτουργία του προγράμματος. Μετά καθορίζουμε τις υπολειτουργίες ως επιμέρους ενότητες (modules) που μπορούν να σχεδιαστούν χωριστά. Για κάθε ενότητα, η ίδια διαδικασία μπορεί να επαναληφθεί διασπώντας την σε ακόμη βασικότερες και ευκολώτερες στην υλοποίηση υποενότητες. Σε αυτή τη διαδικασία, βασικά εργαλεία είναι τα διαγράμματα δομής που απεικονίζουν την ιεραρχική δομή του λογισμικού με το κύριο πρόγραμμα στην κορυφή και από κάτω σε διάφορα επίπεδα, τις υποενότητες αυτού` και τα διαγράμματα ροής που δείχνουν τη ροή και τους μετασχηματισμούς των δεδομένων από ενότητα σε ενότητα. Τέλος, χρησιμότατη είναι και η τεκμηρίωση του προγράμματος, δηλαδή όλα τα έγγραφα που εξηγούν το πρόβλημα και τη μεθοδολογία επίλυσής του, τη δομή του προγράμματος και του αλγορίθμου που αυτό υλοποιεί, τα διαγράμματα δομής και ροής, ακόμη και τα σχόλια που παρεμβάλλονται στο ίδιο το πρόγραμμα ώστε να είναι ευανάγνωστο για κάθε τρίτον. Βάσει των παραπάνω, ο αλγόριθμος ανάπτυξης λογισμικού σύμφωνα με το ιεραρχικό μοντέλο είναι σε γενικές γραμμές ο εξής: 1. Ορισμός προβλήματος και απαιτήσεων (τι είσοδο έχουμε και τι έξοδο θέλουμε) 2. Δομή προγράμματος και ροή δεδομένων 3. Ανάλυση σε υποενότητες με τις δικές τους απαιτήσεις σε όρους εξόδου για δεδομένη είσοδο που συνεργάζονται μεταξύ τους αλλά μπορούν να αναπτυχθούν ανεξάρτητα, και μάλιστα από διαφορετικά πρόσωπα που θα εργάζονται παράλληλα. 4. Όσο δεν έχει ολοκληρωθεί το πρόγραμμα ώστε να λειτουργεί σύμφωνα με τις απαιτήσεις: 4-1. Όσο δεν έχουν ολοκληρωθεί οι υποενότητες ώστε να λειτουργούν σύμφωνα με τις επιμέρους απαιτήσεις τους: Ανάπτυξη κώδικα κάθε ενότητας Δοκιμή κάθε υποενότητας 4-2. Ολοκλήρωση ανάπτυξης κάθε υποενότητας με τεκμηρίωση 4-3. Συνένωση των ενοτήτων και ανάπτυξη κώδικα κύριου προγράμματος για να συνεργαστούν 4-4. Δοκιμή όλου του προγράμματος. 5. Ολοκλήρωση ανάπτυξης τελικού προγράμματος με τεκμηρίωση. 6. Χρήση προγράμματος Αυτός ο αλγόριθμος ανάπτυξης μπορεί με τη σειρά του να επαναλαμβάνεται για την ανάπτυξη καινούριων εκδόσεων του προγράμματος με βάση τις προτάσεις για βελτίωση και αναβάθμιση που προκύπτουν κατά τη χρήση του και που επιβάλλουν επιστροφή στο βήμα 1 για επανακαθορισμό του προβλήματος. Η γλώσσα C Υψηλού επιπέδου, αλλά με δυνατότητα πρόσβασης σε λειτουργίες χαμηλού επιπέδου. Από τις γλώσσες υψηλού επιπέδου, η C είναι η πιο κοντινή στη γλώσσα μηχανής. Ωστόσο, είναι γενική και portable. Δεν εξαρτάται σχεδόν καθόλου από τη συγκεκριμένη πλατφόρμα. Τα προγράμματα γραμμένα σε αυτή, γενικά αναμένεται να τρέχουν παντού. Για τους λόγους αυτούς, είναι ιδανική για την ανάπτυξη εφαρμογών συστήματος που ήταν άλλωστε και ο αρχικός σκοπός για τη δημιουργία της (λειτουργικό σύστημα UNIX). Οι υποενότητες του προγράμματος που θέλουμε να κάνουμε, στη C ονομάζονται συναρτήσεις (functions). Κάθε πρόγραμμα σε C έχει τουλάχιστον μία συνάρτηση και γενικά μία συνάρτηση είναι το κύριο πρόγραμμα που καλεί και τις υπόλοιπες, σύμφωνα με το ιεραρχικό μοντέλο. Γενικά, οι συναρτήσεις στη C χωρίζονται σε συναρτήσεις βιβλιοθήκης και συναρτήσεις ορισμένες από το χρήστη. Οι πρώτες είναι υπεύθυνες για συχνά επαναλαμβανόμενες τυπικές λειτουργίες ώστε να απαλλαχθεί ο προγραμματιστής από το σχετικό βάρος και να ασχοληθεί αποκλειστικά με τις δεύτερες που θα οδηγήσουν και στη λύση του εκάστοτε προβλήματος. 13 / 1 15

14 Ένα απλό πρόγραμμα σε C γενική μορφή: #include <stdio.h> οδηγία προς τον προεπεξεργαστή για να περιληφθούν τα περιεχόμενα από αρχείο σχετικό με λειτουργίες εισόδου/εξόδου int main(void) όνομα συνάρτησης { έναρξη τμήματος (μπλοκ) κώδικα δηλώσεις μεταβλητών; δέσμευση περιοχών μνήμης για αποθήκευση πληροφορίας εντολή; σώμα συνάρτησης κάθε δήλωση και εντολή τελειώνει με ; εντολή; εντολή; } τέλος τμήματος (μπλοκ) κώδικα Συγκεκριμένο πρόγραμμα: #include <stdio.h> void main(void) { /* this is a comment! */ printf ( \nhello world! ); } Αν και δεν ορίσαμε καμία δική μας συνάρτηση, η printf είναι μια συνάρτηση βιβλιοθήκης εντελώς ανάλογη με αυτές που θα μπορούσαμε να ορίσουμε εμείς και με συγκεκριμένο σκοπό (μορφοποιημένη εκτύπωση). Γενικά, όπου υπάρχει κάτι στη μορφή όνομα(κάτι) είναι κλήση της συνάρτησης όνομα με όρισμα κάτι. Στυλ γραψίματος: ισχύει ελεύθερο format αρκεί να μη σπάνε τα tokens (δεσμευμένες λέξεις και ονόματα μεταβλητών και συναρτήσεων). Αλλά πρέπει να προτιμούμε ένα συνεπές και τακτοποιημένο στυλ για να είναι ευανάγνωστο και κατανοητό και να βρίσκονται πιο εύκολα τυχόν σφάλματα (δεν αρκεί ο δομημένος προγραμματισμός! Πρέπει να βοηθάμε κι εμείς!) Προσοχή! Case sensitive!!! Τα κεφαλαία και τα μικρά γράμματα θεωρούνται διαφορετικά. Αν γράψουμε κάτι, π.χ. όνομα μιας μεταβλητής με συγκεκριμένο συνδυασμό κεφαλαίων και μικρών, αυτό το συνδυασμό πρέπει να διατηρούμε σε όλο το πρόγραμμα, όποτε αναφερόμαστε σε αυτή τη μεταβλητή και όχι να το αλλάζουμε όπως μας έρθει! Το τμήμα κώδικα αρχίζει με { και τελειώνει με } και δεν πρέπει να συγχέεται με τις ενότητες (συναρτήσεις) γιατί είναι πιο γενικό. Μία συνάρτηση μπορεί να έχει περισσότερα του ενός τμήματα κώδικα που περικλείονται στα δικά τους { και }. /* Σχόλια */ Σε ένα πρόγραμμα έχουμε τη δυνατότητα να παρεμβάλλουμε επεξηγηματικά σχόλια ώστε όποιος το διαβάζει να καταλαβαίνει καλύτερα τα σημεία του προγράμματος που η λειτουργία τους δεν είναι προφανής. Αυτά τα σχόλια αγνοούνται από τον υπολογιστή σα να μην υπάρχουν. Απλός κανόνας: ανοίγουν με /*, κλείνουνε με */ και από εκεί και πέρα, τελείως ελεύθερο φορμάτ και ελευθερία τοποθέτησης με μόνους περιορισμό να μη σπάσουν κάποιο token και να μην είναι ένθετα σε άλλα σχόλια. Π.χ. μπορούμε να γράψουμε σε μια σειρά το σύμβολο αρχής σχολίου /*, να γράψουμε... την ιστορία της ζωής μας σε πολλές επόμενες σειρές και στο τέλος να κλείσουμε το σχόλιο με το σύμβολο τέλους σχολίου */. Απλά δεν επιτρέπεται να βάζουμε σχόλια μέσα σε σχόλια. 14 / 1 15

15 Για να αποφύγουμε μερικά συχνά λάθη προσέχουμε τα εξής: οι εντολές να τελειώνουν με ; να κλείνουν τα άγκιστρα (για κάθε { να υπάρχει και ένα }) Παρομοίως να κλείνουν τα σχόλια (/* και */) και να μην υπάρχουν ένθετα σχόλια 15 / 1 15

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

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

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

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

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

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

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

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

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

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

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

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

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

ΥΠΟΥΡΓΕΙΟ ΠΑΙΔΕΙΑΣ ΚΑΙ ΠΟΛΙΤΙΣΜΟΥ ΔΙΕΥΘΥΝΣΗ ΑΝΩΤΕΡΗΣ ΚΑΙ ΑΝΩΤΑΤΗΣ ΕΚΠΑΙΔΕΥΣΗΣ ΥΠΗΡΕΣΙΑ ΕΞΕΤΑΣΕΩΝ ΠΑΓΚΥΠΡΙΕΣ ΕΞΕΤΑΣΕΙΣ 2009 ΑΠΑΝΤΗΣΕΙΣ ΥΠΟΥΡΓΕΙΟ ΠΑΙΔΕΙΑΣ ΚΑΙ ΠΟΛΙΤΙΣΜΟΥ ΔΙΕΥΘΥΝΣΗ ΑΝΩΤΕΡΗΣ ΚΑΙ ΑΝΩΤΑΤΗΣ ΕΚΠΑΙΔΕΥΣΗΣ ΥΠΗΡΕΣΙΑ ΕΞΕΤΑΣΕΩΝ ΠΑΓΚΥΠΡΙΕΣ ΕΞΕΤΑΣΕΙΣ 2009 Μάθημα : Μικροϋπολογιστές Τεχνολογία Τ.Σ. Ι, Θεωρητικής κατεύθυνσης Ημερομηνία

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

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

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

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

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

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

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

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

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

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

Αρχιτεκτονική Eckert-von Neumann. Πως λειτουργεί η ΚΜΕ; Κεντρική μονάδα επεξεργασίας [3] ΕΠΛ 031: ΕΙΣΑΓΩΓΗ ΣΤΟΝ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟ

Αρχιτεκτονική Eckert-von Neumann. Πως λειτουργεί η ΚΜΕ; Κεντρική μονάδα επεξεργασίας [3] ΕΠΛ 031: ΕΙΣΑΓΩΓΗ ΣΤΟΝ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟ Αρχιτεκτονική Eckert-von Neumann εισόδου μεταφορά δεδομένων από έξω προς τον Η/Υ εξόδου μεταφορά δεδομένων από τον Η/Υ προς τα έξω ΕΠΛ 031: ΕΙΣΑΓΩΓΗ ΣΤΟΝ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟ Κύκλος Μηχανής κεντρικός έλεγχος/πράξεις

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Μ Ε Ρ Ο Σ Γ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΗΛΕΚΤΡΟΝΙΚΩΝ ΥΠΟΛΟΓΙΣΤΩΝ Μ Ε Ρ Ο Σ Γ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΗΛΕΚΤΡΟΝΙΚΩΝ ΥΠΟΛΟΓΙΣΤΩΝ 6 ΕΙΣΑΓΩΓΗ ΣΤΟΝ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟ 6.1 Γλώσσες Προγραμματισμού 6.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 Τι είναι το Υλικό και το

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Στοιχεία αρχιτεκτονικής μικροεπεξεργαστή

Στοιχεία αρχιτεκτονικής μικροεπεξεργαστή Στοιχεία αρχιτεκτονικής μικροεπεξεργαστή Αριθμός bit δίαυλου δεδομένων (Data Bus) Αριθμός bit δίαυλου διευθύνσεων (Address Bus) Μέγιστη συχνότητα λειτουργίας (Clock Frequency) Τύποι εντολών Αριθμητική

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

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

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

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

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

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

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

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

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

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

Εισαγωγή στην επιστήμη των υπολογιστών. Υλικό Υπολογιστών Κεφάλαιο 5ο Οργάνωση υπολογιστών

Εισαγωγή στην επιστήμη των υπολογιστών. Υλικό Υπολογιστών Κεφάλαιο 5ο Οργάνωση υπολογιστών Εισαγωγή στην επιστήμη των υπολογιστών Υλικό Υπολογιστών Κεφάλαιο 5ο Οργάνωση υπολογιστών 1 Οργάνωση υπολογιστών ΚΜΕ Κύρια Μνήμη Υποσύστημα εισόδου/εξόδου 2 Κεντρική Μονάδα Επεξεργασίας (ΚΜΕ) R1 R2 ΑΛΜ

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

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

ΥΠΟΥΡΓΕΙΟ ΠΑΙΔΕΙΑΣ ΚΑΙ ΠΟΛΙΤΙΣΜΟΥ ΔΙΕΥΘΥΝΣΗ ΑΝΩΤΕΡΗΣ ΚΑΙ ΑΝΩΤΑΤΗΣ ΕΚΠΑΙΔΕΥΣΗΣ ΥΠΗΡΕΣΙΑ ΕΞΕΤΑΣΕΩΝ ΠΑΓΚΥΠΡΙΕΣ ΕΞΕΤΑΣΕΙΣ 2006 ΑΠΑΝΤΗΣΕΙΣ ΥΠΟΥΡΓΕΙΟ ΠΑΙΔΕΙΑΣ ΚΑΙ ΠΟΛΙΤΙΣΜΟΥ ΔΙΕΥΘΥΝΣΗ ΑΝΩΤΕΡΗΣ ΚΑΙ ΑΝΩΤΑΤΗΣ ΕΚΠΑΙΔΕΥΣΗΣ ΥΠΗΡΕΣΙΑ ΕΞΕΤΑΣΕΩΝ ΠΑΓΚΥΠΡΙΕΣ ΕΞΕΤΑΣΕΙΣ 2006 Μάθημα : Μικροϋπολογιστές Τεχνολογία Τ.Σ. Ι, Θεωρητικής κατεύθυνσης Ημερομηνία

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

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

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

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

Εισαγωγή στην επιστήµη των υπολογιστών. Υλικό Υπολογιστών Κεφάλαιο 5ο Οργάνωση υπολογιστών

Εισαγωγή στην επιστήµη των υπολογιστών. Υλικό Υπολογιστών Κεφάλαιο 5ο Οργάνωση υπολογιστών Εισαγωγή στην επιστήµη των υπολογιστών Υλικό Υπολογιστών Κεφάλαιο 5ο Οργάνωση υπολογιστών Εισαγωγή Θα δούµε την οργάνωση ενός υπολογιστή Στον επόµενο µάθηµα θα δούµε πως συνδέονται πολλοί Η/Υ για να σχηµατίσουν

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

MULTIPLE CHOICE REVISION: ΜΑΘΗΜΑ 1-2

MULTIPLE CHOICE REVISION: ΜΑΘΗΜΑ 1-2 MULTIPLE CHOICE REVISION: ΜΑΘΗΜΑ 1-2 1. Ποιος τύπος Η/Υ χρησιμοποιείται για την λειτουργία συστημάτων και βάσεων δεδομένων μεγάλων εταιρειών; a) Επιτραπέζιος Η/Υ b) Προσωπικός Ψηφιακός Βοηθός c) Μεγάλο

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

3 Αλληλεπίδραση Αντικειμένων

3 Αλληλεπίδραση Αντικειμένων Αφαίρεση και Αρθρωσιμότητα 3 Αλληλεπίδραση Αντικειμένων Πώς συνεργάζονται τα αντικείμενα που δημιουργούμε Αφαίρεση (abstraction) είναι η δυνατότητα να αγνοούμε τις λεπτομέρειες και να εστιάζουμε την προσοχή

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Το «κλειστό» σύστημα. Ανοικτές επικοινωνίες... Εισαγωγή στην Τεχνολογία της Πληροφορικής. Εισαγωγή στην τεχνολογία της πληροφορικής

Το «κλειστό» σύστημα. Ανοικτές επικοινωνίες... Εισαγωγή στην Τεχνολογία της Πληροφορικής. Εισαγωγή στην τεχνολογία της πληροφορικής ΕΘΝΙΚΟ ΚΑΙ ΚΑΠΟΔΙΣΤΡΙΑΚΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΑΘΗΝΩΝ Εισαγωγή στην Τεχνολογία της Πληροφορικής ΓΙΩΡΓΟΣ Ν. ΓΙΑΝΝΟΠΟΥΛΟΣ Λέκτορας στο Πανεπιστήμιο Αθηνών gyannop@law.uoa.gr Το «κλειστό» σύστημα ΕΙΣΟΔΟΣ ΕΠΕΞΕΡΓΑΣΙΑ

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

ΕΡΓΑΣΤΗΡΙΟ 3: Προγραμματιστικά Περιβάλλοντα και το Πρώτο Πρόγραμμα C

ΕΡΓΑΣΤΗΡΙΟ 3: Προγραμματιστικά Περιβάλλοντα και το Πρώτο Πρόγραμμα C ΕΡΓΑΣΤΗΡΙΟ 3: Προγραμματιστικά Περιβάλλοντα και το Πρώτο Πρόγραμμα C Στο εργαστήριο αυτό, θα ασχοληθούμε με δύο προγραμματιστικά περιβάλλοντα για τη γλώσσα C: τον gcc μεταγλωττιστή της C σε περιβάλλον

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

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

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

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

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

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

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

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

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

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

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

ΤΜΗΜΑΤΑ ΗΛΕΚΤΡΟΝΙΚΟΥ ΥΠΟΛΟΓΙΣΤΗ ΤΜΗΜΑΤΑ ΗΛΕΚΤΡΟΝΙΚΟΥ ΥΠΟΛΟΓΙΣΤΗ Τα τμήματα ενός ηλεκτρονικού υπολογιστή είναι: 1. Επεξεργαστής 2. Μνήμη RAM και ROM 3. Κάρτα γραφικών 4. Μητρική Πλακέτα 5. Σκληρός Δίσκος 6. DVD / Blue Ray 7. Τροφοδοτικό

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

Οργάνωση Υπολογιστών (Ι)

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

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

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

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

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

ΠΕΡΙΕΧΟΜΕΝΑ. 1.1. Υλικό και Λογισμικό.. 1 1.2 Αρχιτεκτονική Υπολογιστών.. 3 1.3 Δομή, Οργάνωση και Λειτουργία Υπολογιστών 6

ΠΕΡΙΕΧΟΜΕΝΑ. 1.1. Υλικό και Λογισμικό.. 1 1.2 Αρχιτεκτονική Υπολογιστών.. 3 1.3 Δομή, Οργάνωση και Λειτουργία Υπολογιστών 6 ΠΕΡΙΕΧΟΜΕΝΑ 1. Εισαγωγή στην Δομή, Οργάνωση, Λειτουργία και Αξιολόγηση Υπολογιστών 1.1. Υλικό και Λογισμικό.. 1 1.2 Αρχιτεκτονική Υπολογιστών.. 3 1.3 Δομή, Οργάνωση και Λειτουργία Υπολογιστών 6 1.3.1 Δομή

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

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

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

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

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

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

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

ΠΛΗΡΟΦΟΡΙΚΗ: ΥΠΟΛΟΓΙΣΤΕΣ & ΤΕΧΝΟΛΟΓΙΕΣ ΔΙΑΔΙΚΤΥΟΥ

ΠΛΗΡΟΦΟΡΙΚΗ: ΥΠΟΛΟΓΙΣΤΕΣ & ΤΕΧΝΟΛΟΓΙΕΣ ΔΙΑΔΙΚΤΥΟΥ ΠΛΗΡΟΦΟΡΙΚΗ: ΥΠΟΛΟΓΙΣΤΕΣ & ΤΕΧΝΟΛΟΓΙΕΣ ΔΙΑΔΙΚΤΥΟΥ kv@hua.gr Στόχος Μαθήματος Εισαγωγή σε Βασικούς Όρους Πληροφορικής και Τηλεματικής. Εφαρμογές Τηλεματικής. Αναφορά στις κοινωνικές επιπτώσεις των Υπολογιστών.

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

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

ΤΟ ΕΣΩΤΕΡΙΚΟ ΤΟΥ ΥΠΟΛΟΓΙΣΤΗ ΤΟ ΕΣΩΤΕΡΙΚΟ ΤΟΥ ΥΠΟΛΟΓΙΣΤΗ ΕΙΣΑΓΩΓΗ Οι υπολογιστές αποτελούνται από πολλά ηλεκτρονικά εξαρτήματα. Κάθε εξάρτημα έχει ειδικό ρόλο στη λειτουργία του υπολογιστή. Όλα όμως έχουν σχεδιαστεί, για να συνεργάζονται,

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

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

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

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

Κατασκευή προγράμματος για επίλυση Φυσικομαθηματικών συναρτήσεων

Κατασκευή προγράμματος για επίλυση Φυσικομαθηματικών συναρτήσεων Κατασκευή προγράμματος για επίλυση Φυσικομαθηματικών συναρτήσεων Ιωάννης Λιακόπουλος 1, Χαράλαμπος Λυπηρίδης 2 1 Μαθητής B Λυκείου, Εκπαιδευτήρια «Ο Απόστολος Παύλος» liakopoulosjohn0@gmail.com, 2 Μαθητής

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

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

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

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

ΕΙΣΑΓΩΓΗ ΣΤΟΥΣ ΑΛΓΟΡΙΘΜΟΥΣ ΚΑΙ ΣΤΟΝ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΑΙΓΑΙΟΥ ΤΜΗΜΑ ΠΟΛΙΤΙΣΜΙΚΗΣ ΤΕΧΝΟΛΟΓΙΑΣ ΚΑΙ ΕΠΙΚΟΙΝΩΝΙΑΣ. Διδάσκουσα Δρ Β.

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

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

B Γυμνασίου. Ενότητα 9

B Γυμνασίου. Ενότητα 9 B Γυμνασίου Ενότητα 9 Γραμμικές εξισώσεις με μία μεταβλητή Διερεύνηση (1) Να λύσετε τις πιο κάτω εξισώσεις και ακολούθως να σχολιάσετε το πλήθος των λύσεων που βρήκατε σε καθεμιά. α) ( ) ( ) ( ) Διερεύνηση

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Ηλεκτρονικοί Υπολογιστές και Επεξεργασία Πληροφοριών

Ηλεκτρονικοί Υπολογιστές και Επεξεργασία Πληροφοριών Ενότητα 6 Ηλεκτρονικοί Υπολογιστές και Επεξεργασία Πληροφοριών Πληροφοριακά Συστήματα Διοίκησης Ι Διδάσκων: Νίκος Καρακαπιλίδης 6-1 Στόχοι και αντικείμενο ενότητας Βασικές λειτουργίες ενός υπολογιστικού

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

Πληροφορίες. Εισαγωγή στην Πληροφορική. Κατηγορίες υλισµικού. Περίληψη µαθήµατος (συνέχεια) Επεξεργαστής Μνήµη. Χειµερινό Εξάµηνο 2006-07

Πληροφορίες. Εισαγωγή στην Πληροφορική. Κατηγορίες υλισµικού. Περίληψη µαθήµατος (συνέχεια) Επεξεργαστής Μνήµη. Χειµερινό Εξάµηνο 2006-07 Πληροφορίες Εισαγωγή στην Πληροφορική Χειµερινό Εξάµηνο 2006-07 ρ. Παναγιώτης Χατζηδούκας (Π..407/80) Μόνο για την επόµενη Τετάρτη 25/10, το µάθηµα (12-13) δεν θα πραγµατοποιηθεί. Τα εργαστήρια θα ξεκινήσουν

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

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

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

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

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

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

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

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

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

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

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

ΕΙΣΑΓΩΓΗ ΣΤΟΥΣ ΥΠΟΛΟΓΙΣΤΕΣ. ΜΑΘΗΜΑ 4 ο ΟΡΓΑΝΩΣΗ ΤΗΣ ΜΝΗΜΗΣ ΠΕΡΙΦΕΡΕΙΑΚΗ ΜΝΗΜΗ ΕΙΣΑΓΩΓΗ ΣΤΟΥΣ ΥΠΟΛΟΓΙΣΤΕΣ ΜΑΘΗΜΑ 4 ο ΟΡΓΑΝΩΣΗ ΤΗΣ ΜΝΗΜΗΣ ΠΕΡΙΦΕΡΕΙΑΚΗ ΜΝΗΜΗ ΧΕΙΜΩΝΑΣ 2009 ΕΙΣΑΓΩΓΗ ΣΤΟΥΣ ΥΠΟΛΟΓΙΣΤΕΣ 1 Γενική οργάνωση του υπολογιστή Ο καταχωρητής δεδομένων της μνήμης (memory data register

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

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

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

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

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

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

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

Διδάσκων:Μ.Χατζόπουλος, Παραδόσεις:Τρίτη 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 Η δομή του μαθήματος Εισαγωγή στην

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

Δυναμικές Ιστοσελίδες Εισαγωγή στην Javascript για προγραμματισμό στην πλευρά του client

Δυναμικές Ιστοσελίδες Εισαγωγή στην Javascript για προγραμματισμό στην πλευρά του client ΕΣΔ 516 Τεχνολογίες Διαδικτύου Δυναμικές Ιστοσελίδες Εισαγωγή στην Javascript για προγραμματισμό στην πλευρά του client Περιεχόμενα Περιεχόμενα Javascript και HTML Βασική σύνταξη Μεταβλητές Τελεστές Συναρτήσεις

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

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

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

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

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

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

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

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

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

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

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

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

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

Κεφάλαιο 10. Υποπρογράμματα

Κεφάλαιο 10. Υποπρογράμματα Κεφάλαιο 10 Υποπρογράμματα 10.1 Γενικός διδακτικός σκοπός Ο γενικός σκοπός του κεφαλαίου είναι να καταστούν ικανοί οι μαθητές να χρησιμοποιούν υποπρογράμματα για τη δημιουργία συνθέτων προγραμμάτων. 194

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

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

ΔΟΜΗΜΕΝΟΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΕΡΩΤΗΣΕΙΣ 1. Τι καλείται ψευδοκώδικας; 2. Τι καλείται λογικό διάγραμμα; 3. Για ποιο λόγο είναι απαραίτητη η τυποποίηση του αλγόριθμου; 4. Ποιες είναι οι βασικές αλγοριθμικές δομές; 5. Να περιγράψετε τις

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

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

ΣΧΕΔΙΟ ΜΑΘΗΜΑΤΟΣ : ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ : Γ ΕΝΙΑΙΟΥ ΛΥΚΕΙΟΥ ΤΕΧΝΟΛΟΓΙΚΗ ΚΑΤΕΥΘΥΝΣΗ : ΒΑΣΙΚΕΣ ΕΝΝΟΙΕΣ ΑΛΓΟΡΙΘΜΩΝ ΣΧΕΔΙΟ ΜΑΘΗΜΑΤΟΣ ΜΑΘΗΜΑ ΤΑΞΗ ΚΕΦΑΛΑΙΟ 2 ο ΕΙΣΗΓΗΤΗΣ : ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ : Γ ΕΝΙΑΙΟΥ ΛΥΚΕΙΟΥ ΤΕΧΝΟΛΟΓΙΚΗ ΚΑΤΕΥΘΥΝΣΗ : ΒΑΣΙΚΕΣ ΕΝΝΟΙΕΣ ΑΛΓΟΡΙΘΜΩΝ : ΚΑΖΑΝΤΖΗΣ ΧΡΗΣΤΟΣ 1. Γενικός

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

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

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

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

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

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

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

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

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

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

Κ.Α.ΕΛ.Ε. Σημειώσεις επάνω στο Λειτουργικό Σύστημα Windows XP. Εισηγητής: Χαριτωνίδης Γεώργιος. Βόλος, Νοέμβριος 2008

Κ.Α.ΕΛ.Ε. Σημειώσεις επάνω στο Λειτουργικό Σύστημα Windows XP. Εισηγητής: Χαριτωνίδης Γεώργιος. Βόλος, Νοέμβριος 2008 Κ.Α.ΕΛ.Ε. Σημειώσεις επάνω στο Λειτουργικό Σύστημα Windows XP Βόλος, Νοέμβριος 2008 Τα Windows είναι ένα Λειτουργικό Σύστημα που χρησιμοποιείται σε εκατομμύρια υπολογιστές στον κόσμο. Μας βοηθούν στο να

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

ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ Κεφάλαιο 2 ο Αν χ και y μεταβλητές με τιμές 5 και 10 αντίστοιχα να εξηγηθούν οι ακόλουθες εντολές εξόδου.

ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ Κεφάλαιο 2 ο Αν χ και y μεταβλητές με τιμές 5 και 10 αντίστοιχα να εξηγηθούν οι ακόλουθες εντολές εξόδου. 2.1 Αν χ και y μεταβλητές με τιμές 5 και 10 αντίστοιχα να εξηγηθούν οι ακόλουθες εντολές εξόδου. 1) Η τιμή του χ είναι,χ Ητιμή του χ είναι 5 Ηεντολή εμφανίζει ότι υπάρχει στα διπλά εισαγωγικά ως έχει.

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

εξισώσεις-ανισώσεις Μαθηματικά α λυκείου Φροντιστήρια Μ.Ε. ΠΑΙΔΕΙΑ σύνολο) στα Μαθηματικά, τη Φυσική αλλά και σε πολλές επιστήμες

εξισώσεις-ανισώσεις Μαθηματικά α λυκείου Φροντιστήρια Μ.Ε. ΠΑΙΔΕΙΑ σύνολο) στα Μαθηματικά, τη Φυσική αλλά και σε πολλές επιστήμες Με τον διεθνή όρο φράκταλ (fractal, ελλ. μορφόκλασμα ή μορφοκλασματικό σύνολο) στα Μαθηματικά, τη Φυσική αλλά και σε πολλές επιστήμες ονομάζεται ένα γεωμετρικό σχήμα που επαναλαμβάνεται αυτούσιο σε άπειρο

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

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

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

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

Τεχνολογία Υπολογιστικών Συστηµάτων & Λειτουργικά Συστήµατα Κεφάλαιο 3

Τεχνολογία Υπολογιστικών Συστηµάτων & Λειτουργικά Συστήµατα Κεφάλαιο 3 Τεχνολογία Υπολογιστικών Συστηµάτων & Λειτουργικά Συστήµατα Κεφάλαιο 3 Κεφάλαιο 3 Οργάνωση και Λειτουργία Επεξεργαστών Σκοπός του κεφαλαίου αυτού είναι να περιγράψει την εσωτερική οργάνωση των υπολογιστών,

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

ΣΤΑΤΙΚΕΣ ΚΑΙ ΔΥΝΑΜΙΚΕΣ ΜΝΗΜΕΣ ΤΥΧΑΙΑΣ ΠΡΟΣΠΕΛΑΣΗΣ (Static and Dynamic RAMs). ΔΙΑΡΘΡΩΣΗ ΤΟΥ ΜΑΘΗΜΑΤΟΣ ΘΕΜΑΤΙΚΕΣ ΕΝΟΤΗΤΕΣ

ΣΤΑΤΙΚΕΣ ΚΑΙ ΔΥΝΑΜΙΚΕΣ ΜΝΗΜΕΣ ΤΥΧΑΙΑΣ ΠΡΟΣΠΕΛΑΣΗΣ (Static and Dynamic RAMs). ΔΙΑΡΘΡΩΣΗ ΤΟΥ ΜΑΘΗΜΑΤΟΣ ΘΕΜΑΤΙΚΕΣ ΕΝΟΤΗΤΕΣ ΣΤΑΤΙΚΕΣ ΚΑΙ ΔΥΝΑΜΙΚΕΣ ΜΝΗΜΕΣ ΤΥΧΑΙΑΣ ΠΡΟΣΠΕΛΑΣΗΣ (Static and Dynamic RAMs). ΔΙΑΡΘΡΩΣΗ ΤΟΥ ΜΑΘΗΜΑΤΟΣ ΘΕΜΑΤΙΚΕΣ ΕΝΟΤΗΤΕΣ ΒΑΣΙΚΑ ΣΤΟΙΧΕΙΑ ΗΜΙΑΓΩΓΙΚΩΝ ΜΝΗΜΩΝ. ΒΑΣΙΚΗ ΛΕΙΤΟΥΡΓΙΑ RAM CMOS. ΤΥΠΟΙ ΚΥΤΤΑΡΩΝ ΑΡΧΕΣ

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

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

Εισαγωγή στον Προγραμματισμό Εισαγωγή στον Προγραμματισμό Ενότητα 1 - Εισαγωγή Χρήστος Γκουμόπουλος Πανεπιστήμιο Αιγαίου Τμήμα Μηχανικών Πληροφοριακών και Επικοινωνιακών Συστημάτων Στόχοι Μαθήματος H ανάπτυξη ικανοτήτων και η απόκτηση

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

Εισαγωγή στο προγραμματισμό Η/Υ

Εισαγωγή στο προγραμματισμό Η/Υ Εισαγωγή στο προγραμματισμό Η/Υ Fortran 90/95/2003 Silverfrost FTN95: Fortran for Windows http://www.silverfrost.com/default.aspx http://users.auth.gr/~ppi/fortran/ Ηλεκτρονικός Υπολογιστής Hardware Software

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