Πρώτο μάθημα. Στάδιο 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

<<ΔΗΜΗΤΡΗΣ ΜΑΝΩΛΗΣ ΦΥΣΙΚΟΣ ΜCs>> 1

<<ΔΗΜΗΤΡΗΣ ΜΑΝΩΛΗΣ ΦΥΣΙΚΟΣ ΜCs>> 1 ΚΕΦΑΛΑΙΟ 7 ο ΠΡΟΓΡΑΜΜΑ : Το πρόγραμμα αποτελείται από μια σειρά οδηγιών, που ονομάζονται εντολές, για την εκτέλεση τέτοιου είδους πράξεων, καθώς επίσης και από ένα σύνολο πρόσθετων οδηγιών ελέγχου, που

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

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

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

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

Υπολογιστές Ι. Άδειες Χρήσης. Εισαγωγή. Διδάσκοντες: Αν. Καθ. Δ. Παπαγεωργίου, Αν. Καθ. Ε. Λοιδωρίκης

Υπολογιστές Ι. Άδειες Χρήσης. Εισαγωγή. Διδάσκοντες: Αν. Καθ. Δ. Παπαγεωργίου, Αν. Καθ. Ε. Λοιδωρίκης ΠΑΝΕΠΙΣΤΗΜΙΟ ΙΩΑΝΝΙΝΩΝ ΑΝΟΙΚΤΑ ΑΚΑΔΗΜΑΪΚΑ ΜΑΘΗΜΑΤΑ Άδειες Χρήσης Υπολογιστές Ι Εισαγωγή Διδάσκοντες: Αν. Καθ. Δ. Παπαγεωργίου, Αν. Καθ. Ε. Λοιδωρίκης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης

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

Κεφάλαιο 2.3: Προγραμματισμός. Επιστήμη ΗΥ Κεφ. 2.3 Καραμαούνας Πολύκαρπος

Κεφάλαιο 2.3: Προγραμματισμός. Επιστήμη ΗΥ Κεφ. 2.3 Καραμαούνας Πολύκαρπος Κεφάλαιο 2.3: Προγραμματισμός 1 2.3.1 Αναφορά σε γλώσσες προγραμματισμού και «Προγραμματιστικά Υποδείγματα» 2.3.1.1 Πρόγραμμα και Γλώσσες Προγραμματισμού Πρόγραμμα: σύνολο εντολών που χρειάζεται να δοθούν

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

ΑΕΠΠ Ερωτήσεις θεωρίας

ΑΕΠΠ Ερωτήσεις θεωρίας ΑΕΠΠ Ερωτήσεις θεωρίας Κεφάλαιο 1 1. Τα δεδομένα μπορούν να παρέχουν πληροφορίες όταν υποβάλλονται σε 2. Το πρόβλημα μεγιστοποίησης των κερδών μιας επιχείρησης είναι πρόβλημα 3. Για την επίλυση ενός προβλήματος

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

Στοιχεία από την αρχιτεκτονική των μικροϋπολογιστών

Στοιχεία από την αρχιτεκτονική των μικροϋπολογιστών Στοιχεία από την αρχιτεκτονική των μικροϋπολογιστών Η επεξεργασία των δεδομένων ακολουθεί μια στερεότυπη διαδρομή: τα δεδομένα εισάγονται στο υπολογιστικό σύστημα, υφίστανται μια ορισμένη επεξεργασία και

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

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

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

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

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

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

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

Τετάρτη 5-12/11/2014. ΣΗΜΕΙΩΣΕΙΣ 3 ου και 4 ου ΜΑΘΗΜΑΤΟΣ ΕΙΔΙΚΟΤΗΤΑ: ΤΕΧΝΙΚΟΣ ΕΦΑΡΜΟΓΩΝ ΠΛΗΡΟΦΟΡΙΚΗΣ ΜΑΘΗΜΑ: ΑΡΧΙΤΕΚΤΟΝΙΚΗ Η/Υ Α ΕΞΑΜΗΝΟ

Τετάρτη 5-12/11/2014. ΣΗΜΕΙΩΣΕΙΣ 3 ου και 4 ου ΜΑΘΗΜΑΤΟΣ ΕΙΔΙΚΟΤΗΤΑ: ΤΕΧΝΙΚΟΣ ΕΦΑΡΜΟΓΩΝ ΠΛΗΡΟΦΟΡΙΚΗΣ ΜΑΘΗΜΑ: ΑΡΧΙΤΕΚΤΟΝΙΚΗ Η/Υ Α ΕΞΑΜΗΝΟ Τετάρτη 5-12/11/2014 ΣΗΜΕΙΩΣΕΙΣ 3 ου και 4 ου ΜΑΘΗΜΑΤΟΣ ΕΙΔΙΚΟΤΗΤΑ: ΤΕΧΝΙΚΟΣ ΕΦΑΡΜΟΓΩΝ ΠΛΗΡΟΦΟΡΙΚΗΣ ΜΑΘΗΜΑ: ΑΡΧΙΤΕΚΤΟΝΙΚΗ Η/Υ Α ΕΞΑΜΗΝΟ ΕΚΠΑΙΔΕΥΤΗΣ: ΤΡΟΧΙΔΗΣ ΠΑΝΑΓΙΩΤΗΣ 1. Παράσταση και οργάνωση δεδομένων

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

Προγραμματισμός Η/Υ. Προτεινόμενα θέματα εξετάσεων Εργαστήριο. Μέρος 1 ό. ΤΕΙ Λάρισας- Σχολή Τεχνολογικών Εφαρμογών Τμήμα Πολιτικών Έργων Υποδομής

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

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

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

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

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

Μαλούτα Θεανώ Σελίδα 1

Μαλούτα Θεανώ Σελίδα 1 ΕΙΣΑΓΩΓΗ ΣΤΙΣ ΑΡΧΕΣ ΤΗΣ ΕΠΙΣΤΗΜΗΣ ΤΩΝ ΥΠΟΛΟΓΙΣΤΩΝ Α. ΕΡΩΤΗΣΕΙΣ ΘΕΩΡΙΑΣ ΦΥΛΛΑΔΙΟ 6 ο ( Ενότητες 2.3 ) 1.Τι είναι πρόγραμμα; 2. Ποια είναι τα πλεονεκτήματα των γλωσσών υψηλού επιπέδου σε σχέση με τις γλώσσες

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

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

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

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

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

ΕΙΔΗ,ΤΕΧΝΙΚΕΣ ΚΑΙ ΠΕΡΙΒΑΛΛΟΝΤΑ ΠΡΟΓΡΑΜΜΑΤΙ- ΣΜΟΥ Κεφάλαιο 7 ΕΙΔΗ,ΤΕΧΝΙΚΕΣ ΚΑΙ ΠΕΡΙΒΑΛΛΟΝΤΑ ΠΡΟΓΡΑΜΜΑΤΙ- ΣΜΟΥ Ερωτήσεις 1. Να αναφέρετε διαφορές μεταξύ γλωσσών μηχανής και γλωσσών χαμηλού επιπέδου. Οι γλώσσες μηχανής κωδικοποιούν τις εντολές τους με ομάδες

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

Μάθημα 3.2: Κεντρική Μονάδα Επεξεργασίας

Μάθημα 3.2: Κεντρική Μονάδα Επεξεργασίας Κεφάλαιο 3 ο Αρχιτεκτονική Υπολογιστών Μάθημα 3.: Κεντρική Μονάδα Επεξεργασίας Όταν ολοκληρώσεις το κεφάλαιο θα μπορείς: Να σχεδιάζεις την εσωτερική δομή της ΚΜΕ και να εξηγείς τη λειτουργία των επιμέρους

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

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

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

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

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

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

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

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

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

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

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

ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΠΛΗΡΟΦΟΡΙΚΗ ΤΕΙ ΙΟΝΙΩΝ ΝΗΣΩΝ ΤΜΗΜΑ ΕΦΑΡΜΟΓΩΝ ΠΛΗΡΟΦΟΡΙΚΗΣ ΣΤΗ ΔΙΟΙΚΗΣΗ ΚΑΙ ΣΤΗΝ ΟΙΚΟΝΟΜΙΑ 9 Ο ΜΑΘΗΜΑ ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΠΛΗΡΟΦΟΡΙΚΗ ΑΠΟΣΤΟΛΙΑ ΠΑΓΓΕ Περιεχόμενα 2 Η λειτουργία του υπολογιστή Κατηγορίες Εντολών Μορφή Εντολών

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

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

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

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

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

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

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

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

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

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

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

ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ Καθηγητής Πληροφορικής ΠΕ19 1 ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ ΚΕΦΑΛΑΙΟ 6 ο : ΕΙΣΑΓΩΓΗ ΣΤΟΝ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟ ΙΣΤΟΣΕΛΙΔΑ ΜΑΘΗΜΑΤΟΣ: http://eclass.sch.gr/courses/el594100/ Η έννοια του προγράμματος

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Κεφάλαιο 3 Αρχιτεκτονική Ηλεκτρονικού Τμήματος (hardware) των Υπολογιστικών Συστημάτων ΕΡΩΤΗΣΕΙΣ ΑΣΚΗΣΕΙΣ

Κεφάλαιο 3 Αρχιτεκτονική Ηλεκτρονικού Τμήματος (hardware) των Υπολογιστικών Συστημάτων ΕΡΩΤΗΣΕΙΣ ΑΣΚΗΣΕΙΣ Κεφάλαιο 3 Αρχιτεκτονική Ηλεκτρονικού Τμήματος (hardware) των Υπολογιστικών Συστημάτων ΕΡΩΤΗΣΕΙΣ ΑΣΚΗΣΕΙΣ 1. Τι εννοούμε με τον όρο υπολογιστικό σύστημα και τι με τον όρο μικροϋπολογιστικό σύστημα; Υπολογιστικό

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

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

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

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

Σύνοψη Θεωρίας ΟΡΙΣΜΟΣ ΚΑΙ ΧΑΡΑΚΤΗΡΙΣΤΙΚΑ ΑΛΓΟΡΙΘΜΩΝ

Σύνοψη Θεωρίας ΟΡΙΣΜΟΣ ΚΑΙ ΧΑΡΑΚΤΗΡΙΣΤΙΚΑ ΑΛΓΟΡΙΘΜΩΝ 1 ο ΓΥΜΝΑΣΙΟ ΘΕΡΜΗΣ Τάξη: Γ Μάθημα: Πληροφορική Εξεταστέα ύλη: Παρ11.1 & 11.2 Σύνοψη Θεωρίας ΟΡΙΣΜΟΣ ΚΑΙ ΧΑΡΑΚΤΗΡΙΣΤΙΚΑ ΑΛΓΟΡΙΘΜΩΝ Αλγόριθμος είναι μια πεπερασμένη σειρά ενεργειών που περιγράφει τη διαδικασία

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

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

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

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

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

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

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

Σου προτείνω να τυπώσεις τις επόμενες τέσσερις σελίδες σε ένα φύλο διπλής όψης και να τις έχεις μαζί σου για εύκολη αναφορά.

Σου προτείνω να τυπώσεις τις επόμενες τέσσερις σελίδες σε ένα φύλο διπλής όψης και να τις έχεις μαζί σου για εύκολη αναφορά. AeppAcademy.com facebook.com/aeppacademy Γεια. Σου προτείνω να τυπώσεις τις επόμενες τέσσερις σελίδες σε ένα φύλο διπλής όψης και να τις έχεις μαζί σου για εύκολη αναφορά. Καλή Ανάγνωση & Καλή Επιτυχία

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

ΚΕΦΑΛΑΙΟ 6 ΕΙΣΑΓΩΓΗ ΣΤΟΝ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟ. 03/01/09 Χαράλαμπος Τζόκας 1

ΚΕΦΑΛΑΙΟ 6 ΕΙΣΑΓΩΓΗ ΣΤΟΝ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟ. 03/01/09 Χαράλαμπος Τζόκας 1 ΚΕΦΑΛΑΙΟ 6 ΕΙΣΑΓΩΓΗ ΣΤΟΝ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟ 03/01/09 Χαράλαμπος Τζόκας 1 Πρόγραμμα - Προγραμματισμός Πρόγραμμα: Σύνολο εντολών που πρέπει να δοθούν στον Υπολογιστή, ώστε να υλοποιηθεί ο αλγόριθμος της επίλυσης

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

Αναπαράσταση Δεδομένων. ΜΥΥ-106 Εισαγωγή στους Η/Υ και στην Πληροφορική

Αναπαράσταση Δεδομένων. ΜΥΥ-106 Εισαγωγή στους Η/Υ και στην Πληροφορική Αναπαράσταση Δεδομένων ΜΥΥ-106 Εισαγωγή στους Η/Υ και στην Πληροφορική Αναπαράσταση δεδομένων Κατάλληλη συμβολική αναπαράσταση δεδομένων, για απλοποίηση βασικών πράξεων, όπως πρόσθεση Πόσο εύκολο είναι

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

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

ΑΡΧΙΤΕΚΤΟΝΙΚΗ HARDWARE ΥΠΟΛΟΓΙΣΤΙΚΩΝ ΣΥΣΤΗΜΑΤΩΝ ΨΗΦΙΑΚΑ ΣΥΣΤΗΜΑΤΑ ΚΕΦΑΛΑΙΟ 7ο ΑΡΧΙΤΕΚΤΟΝΙΚΗ HARDWARE ΥΠΟΛΟΓΙΣΤΙΚΩΝ ΣΥΣΤΗΜΑΤΩΝ Γενικό διάγραμμα υπολογιστικού συστήματος Γενικό διάγραμμα υπολογιστικού συστήματος - Κεντρική Μονάδα Επεξεργασίας ονομάζουμε

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

Το υλικό του υπολογιστή

Το υλικό του υπολογιστή Το υλικό του υπολογιστή Ερωτήσεις 1. Τι αντιλαμβάνεστε με τον όρο υλικό; Το υλικό(hardware) αποτελείται από το σύνολο των ηλεκτρονικών τμημάτων που συνθέτουν το υπολογιστικό σύστημα, δηλαδή από τα ηλεκτρονικά

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

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

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

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

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

ΕΠΛ 001: ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΕΠΙΣΤΗΜΗ ΤΗΣ ΠΛΗΡΟΦΟΡΙΚΗΣ ΕΠΛ 001: ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΕΠΙΣΤΗΜΗ ΤΗΣ ΠΛΗΡΟΦΟΡΙΚΗΣ Δρ. Χριστόφορος Χριστοφόρου Πανεπιστήμιο Κύπρου - Τμήμα Πληροφορικής Υλικό (Hardware)/Δομή του υπολογιστή Υπολογιστικά συστήματα: Στρώματα 1 Επικοινωνία

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

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

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

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

ΚΕΦΑΛΑΙΟ 5. Κύκλος Ζωής Εφαρμογών ΕΝΟΤΗΤΑ 2. Εφαρμογές Πληροφορικής. Διδακτικές ενότητες 5.1 Πρόβλημα και υπολογιστής 5.2 Ανάπτυξη εφαρμογών

ΚΕΦΑΛΑΙΟ 5. Κύκλος Ζωής Εφαρμογών ΕΝΟΤΗΤΑ 2. Εφαρμογές Πληροφορικής. Διδακτικές ενότητες 5.1 Πρόβλημα και υπολογιστής 5.2 Ανάπτυξη εφαρμογών 44 Διδακτικές ενότητες 5.1 Πρόβλημα και υπολογιστής 5.2 Ανάπτυξη εφαρμογών Διδακτικοί στόχοι Σκοπός του κεφαλαίου είναι οι μαθητές να κατανοήσουν τα βήματα που ακολουθούνται κατά την ανάπτυξη μιας εφαρμογής.

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

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

ΔΟΜΗΜΕΝΟΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ 1 ΔΟΜΗΜΕΝΟΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ Μάθημα 1ο Τμήμα Διοίκησης Επιχειρήσεων α εξάμηνο Β. Φερεντίνος Ορισμός Wikipedia.org 2 Δομημένος προγραμματισμός (structured programming) ή διαδικαστικός προγραμματισμός (procedural

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

Κεφάλαιο 2 ο Βασικές Έννοιες Αλγορίθμων (σελ )

Κεφάλαιο 2 ο Βασικές Έννοιες Αλγορίθμων (σελ ) Κεφάλαιο 2 ο Βασικές Έννοιες Αλγορίθμων (σελ. 25 48) Τι είναι αλγόριθμος; Γ ΛΥΚΕΙΟΥ Αλγόριθμος είναι μία πεπερασμένη σειρά ενεργειών, αυστηρά καθορισμένων και εκτελέσιμων σε πεπερασμένο χρονικό διάστημα,

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

ΕΠΛ 003: ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΕΠΙΣΤΗΜΗ ΤΗΣ ΠΛΗΡΟΦΟΡΙΚΗΣ. Επανάληψη

ΕΠΛ 003: ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΕΠΙΣΤΗΜΗ ΤΗΣ ΠΛΗΡΟΦΟΡΙΚΗΣ. Επανάληψη ΕΠΛ 003: ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΕΠΙΣΤΗΜΗ ΤΗΣ ΠΛΗΡΟΦΟΡΙΚΗΣ Επανάληψη 1 Ο νόμος του Moore λέει ότι a) Η πυκνότητα των κυκλωμάτων της Μνήμης είναι πάντα τριπλάσια αυτής των ολοκληρωμένων κυκλωμάτων. b) Κάθε 18 μήνες

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

Κεφάλαιο 7. ΕΠΑΛ Σύμης Εφαρμογές πληροφορικής Ερωτήσεις επανάληψης

Κεφάλαιο 7. ΕΠΑΛ Σύμης Εφαρμογές πληροφορικής Ερωτήσεις επανάληψης ΕΠΑΛ Σύμης Εφαρμογές πληροφορικής Ερωτήσεις επανάληψης Κεφάλαιο 7 1. Σε τι διαφέρει ο Η/Υ από τις υπόλοιπες ηλεκτρικές και ηλεκτρονικές συσκευές; Που οφείλεται η δυνατότητά του να κάνει τόσο διαφορετικές

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

Πληροφορική 2. Γλώσσες Προγραμματισμού

Πληροφορική 2. Γλώσσες Προγραμματισμού Πληροφορική 2 Γλώσσες Προγραμματισμού 1 2 Γλώσσες προγραμματσιμού Επιτρέπουν την κωδικοποίηση των αλγορίθμων Η εκτέλεση ενός προγράμματος θα πρέπει να δίνει τα ίδια αποτελέσματα με την νοητική εκτέλεση

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

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

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

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

Μάθημα 4: Κεντρική Μονάδα Επεξεργασίας

Μάθημα 4: Κεντρική Μονάδα Επεξεργασίας Μάθημα 4: Κεντρική Μονάδα Επεξεργασίας 4.1 Γενικά Ο υπολογιστής επεξεργάζεται δεδομένα ακολουθώντας βήμα βήμα, τις εντολές ενός προγράμματος. Το τμήμα του υπολογιστή, που εκτελεί τις εντολές και συντονίζει

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

Δομημένος Προγραμματισμός

Δομημένος Προγραμματισμός Ανοικτά Ακαδημαϊκά Μαθήματα στο ΤΕΙ Ιονίων Νήσων Δομημένος Προγραμματισμός Ενότητα 1: Εισαγωγή Το περιεχόμενο του μαθήματος διατίθεται με άδεια Creative Commons εκτός και αν αναφέρεται διαφορετικά Το έργο

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

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

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

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

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

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

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

Εισαγωγή στην πληροφορική

Εισαγωγή στην πληροφορική Τμήμα Μηχανικών Πληροφορικής & Τηλεπικοινωνιών Εισαγωγή στην πληροφορική Ενότητα 3: Δυαδικά Συστήματα Αγγελίδης Παντελής Τμήμα Μηχανικών Πληροφορικής και Τηλεπικοινωνιών Άδειες Χρήσης Το παρόν εκπαιδευτικό

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

Διαδικασιακός Προγραμματισμός

Διαδικασιακός Προγραμματισμός Τμήμα ΜΗΧΑΝΙΚΩΝ ΠΛΗΡΟΦΟΡΙΚΗΣ ΤΕ ΤΕΙ ΔΥΤΙΚΗΣ ΕΛΛΑΔΑΣ Διαδικασιακός Προγραμματισμός Διάλεξη 2 η Τύποι Δεδομένων Δήλωση Μεταβλητών Έξοδος Δεδομένων Οι διαλέξεις βασίζονται στο βιβλίο των Τσελίκη και Τσελίκα

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

ΠΛΗΡΟΦΟΡΙΚΗ I Ενότητα 6

ΠΛΗΡΟΦΟΡΙΚΗ I Ενότητα 6 ΠΛΗΡΟΦΟΡΙΚΗ I Ενότητα 6 ΑΡΙΘΜΗΤΙΚΑ ΣΥΣΤΗΜΑΤΑ Bits & Bytes Bit: η μικρότερη μονάδα πληροφορίας μία από δύο πιθανές καταστάσεις (ναι / όχι, αληθές / ψευδές, n / ff) κωδικοποίηση σε 0 ή 1 δυαδικό σύστημα

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

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

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

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

ΕΠΛ 001: ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΕΠΙΣΤΗΜΗ ΤΗΣ ΠΛΗΡΟΦΟΡΙΚΗΣ. Επανάληψη

ΕΠΛ 001: ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΕΠΙΣΤΗΜΗ ΤΗΣ ΠΛΗΡΟΦΟΡΙΚΗΣ. Επανάληψη ΕΠΛ 001: ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΕΠΙΣΤΗΜΗ ΤΗΣ ΠΛΗΡΟΦΟΡΙΚΗΣ Επανάληψη 1 Ο νόμος του Moore λέει ότι: a) Η πυκνότητα των κυκλωμάτων της μνήμης είναι πάντα τριπλάσια αυτής των ολοκληρωμένων κυκλωμάτων. b) Κάθε 18 μήνες

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

Κεφ. 1: Εισαγωγή στην έννοια του Αλγορίθμου και στον Προγραμματισμό. Η έννοια του προβλήματος

Κεφ. 1: Εισαγωγή στην έννοια του Αλγορίθμου και στον Προγραμματισμό. Η έννοια του προβλήματος Η έννοια του προβλήματος 1. Αναφέρετε μερικά από τα προβλήματα που συναντάτε στην καθημερινότητά σας. Απλά προβλήματα Ποιο δρόμο θα ακολουθήσω για να πάω στο σχολείο; Πως θα οργανώσω μια εκδρομή; Πως θα

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

Επιλέξτε Σωστό ή Λάθος για καθένα από τα παρακάτω:

Επιλέξτε Σωστό ή Λάθος για καθένα από τα παρακάτω: Επιλέξτε Σωστό ή Λάθος για καθένα από τα παρακάτω: 1ο ΓΕΛ Καστοριάς Βασικές Έννοιες Αλγορίθμων Δομή Ακολουθίας (κεφ. 2 και 7 σχολικού βιβλίου) 1. Οι μεταβλητές αντιστοιχίζονται από τον μεταγλωττιστή κάθε

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

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

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

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

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

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

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

ΚΕΦΑΛΑΙΟ 6 ΕΙΣΑΓΩΓΗ ΣΤΟΝ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟ. Η επίλυση ενός προβλήματος με τον υπολογιστή περιλαμβάνει τρία εξίσου σημαντικά στάδια.

ΚΕΦΑΛΑΙΟ 6 ΕΙΣΑΓΩΓΗ ΣΤΟΝ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟ. Η επίλυση ενός προβλήματος με τον υπολογιστή περιλαμβάνει τρία εξίσου σημαντικά στάδια. ΚΕΦΑΛΑΙΟ 6 ΕΙΣΑΓΩΓΗ ΣΤΟΝ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟ Η επίλυση ενός προβλήματος με τον υπολογιστή περιλαμβάνει τρία εξίσου σημαντικά στάδια. Τον ακριβή προσδιορισμό του προβλήματος. Την ανάπτυξη του αντίστοιχου αλγορίθμου.

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

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

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

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

ΚΕΦΑΛΑΙΟ 8 Η ΓΛΩΣΣΑ PASCAL

ΚΕΦΑΛΑΙΟ 8 Η ΓΛΩΣΣΑ PASCAL 8.1. Εισαγωγή ΚΕΦΑΛΑΙΟ 8 Η ΓΛΩΣΣΑ PACAL Πως προέκυψε η γλώσσα προγραμματισμού Pascal και ποια είναι τα γενικά της χαρακτηριστικά; Σχεδιάστηκε από τον Ελβετό επιστήμονα της Πληροφορικής Nicklaus Wirth to

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

ΗΜΥ 100 Εισαγωγή στην Τεχνολογία

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

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

Ερωτήσεις πολλαπλής επιλογής - Κεφάλαιο 2. Α1. Ο αλγόριθμος είναι απαραίτητος μόνο για την επίλυση προβλημάτων πληροφορικής

Ερωτήσεις πολλαπλής επιλογής - Κεφάλαιο 2. Α1. Ο αλγόριθμος είναι απαραίτητος μόνο για την επίλυση προβλημάτων πληροφορικής Ερωτήσεις πολλαπλής επιλογής - Κεφάλαιο 2 Α1. Ο αλγόριθμος είναι απαραίτητος μόνο για την επίλυση προβλημάτων πληροφορικής Α2. Ο αλγόριθμος αποτελείται από ένα πεπερασμένο σύνολο εντολών Α3. Ο αλγόριθμος

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

Π ρ ο γ ρ α μ μ α τ ι σ μ ό ς Β α σ ι κ έ ς έ ν ν ο ι ε ς Ι σ τ ο ρ ι κ ή α ν α δ ρ ο μ ή Η έννοια του προγράμματος Ιστορική αναδρομή

Π ρ ο γ ρ α μ μ α τ ι σ μ ό ς Β α σ ι κ έ ς έ ν ν ο ι ε ς Ι σ τ ο ρ ι κ ή α ν α δ ρ ο μ ή Η έννοια του προγράμματος Ιστορική αναδρομή Προγραμματισμός Βασικές έννοιες Ιστορική αναδρομή Η έννοια του προγράμματος Η περιγραφή της λύσης ενός προβλήματος, ως γνωστόν, γίνεται με τη βοήθεια ενός αλγορίθμου. Έτσι οι εντολές ενός προγράμματος

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

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

ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΥΠΟΛΟΓΙΣΤΩΝ & ΥΠΟΛΟΓΙΣΤΙΚΗ ΦΥΣΙΚΗ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΥΠΟΛΟΓΙΣΤΩΝ & ΥΠΟΛΟΓΙΣΤΙΚΗ ΦΥΣΙΚΗ Μέρος 2ο ΝΙΚΟΛΑΟΣ ΣΤΕΡΓΙΟΥΛΑΣ ΤΜΗΜΑ ΦΥΣΙΚΗΣ ΑΡΙΣΤΟΤΕΛΕΙΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΕΣΣΑΛΟΝΙΚΗΣ 1 ΣΦΑΛΜΑΤΑ ΜΕΤΑΓΛΩΤΤΙΣΗΣ Η γλώσσα C κάνει αυστηρή διάκριση μεταξύ πεζών

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

Κεφάλαιο 6 ο Εισαγωγή στον Προγραμματισμό 1

Κεφάλαιο 6 ο Εισαγωγή στον Προγραμματισμό 1 Κεφάλαιο 6 ο Εισαγωγή στον Προγραμματισμό 1 Ποιες γλώσσες αναφέρονται ως φυσικές και ποιες ως τεχνητές; Ως φυσικές γλώσσες αναφέρονται εκείνες οι οποίες χρησιμοποιούνται για την επικοινωνία μεταξύ ανθρώπων,

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

Εισαγωγή στους Η/Υ και Εφαρμογές

Εισαγωγή στους Η/Υ και Εφαρμογές Πανεπιστήμιο Πατρών Τμήμα Οικονομικών Επιστημών Εισαγωγή στους Η/Υ και Εφαρμογές tzagara@upatras.gr daskalou@upatras.gr https://eclass.upatras.gr/courses/econ1242/ Θέμα Μαθήματος Δομή και λειτουργία (Αρχιτεκτονική)

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

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

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

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

ΑΕΠΠ Ερωτήσεις τύπου Σωστό-Λάθος

ΑΕΠΠ Ερωτήσεις τύπου Σωστό-Λάθος ΑΕΠΠ Ερωτήσεις τύπου Σωστό-Λάθος Κεφάλαιο 1 1. Πρόβλημα είναι μια μαθηματική κατάσταση που πρέπει να αντιμετωπίσουμε 2. Αν υποβάλλουμε τα δεδομένα σε επεξεργασία παίρνουμε πληροφορίες 3. Ο υπολογιστής

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

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

Εισαγωγή στον προγραμματισμό Ενότητες: Εισαγωγή στον προγραμματισμό Η έννοια του προγράμματος Ιστορική αναδρομή Φυσικές και τεχνητές γλώσσες Τεχνικές σχεδίασης προγραμμάτων Ιεραρχική Σχεδίαση Τμηματικός Προγραμματισμός Δομημένος προγραμματισμός

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

ΜΕΤΑΓΛΩΤΤΙΣΤΕΣ. Στην αναγκαιότητα ύπαρξης των μεταγλωττιστών

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

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

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

Εισαγωγή στον Προγραμματισμό Εισαγωγή στον Προγραμματισμό 6.1 Η έννοια του προγράμματος Η επίλυση ενός προβλήματος με τον υπολογιστή περιλαμβάνει, τρία σημαντικά στάδια: 1. Τον ακριβή προσδιορισμό του προβλήματος. 2. Την ανάπτυξη

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

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

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

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

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

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

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

ΦΥΛΛΟ ΠΛΗΡΟΦΟΡΙΩΝ. Μονάδες μέτρησης χωρητικότητας μνήμης - Η περιφερειακή μνήμη

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

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

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

ΕΙΣΑΓΩΓΗ ΣΤΟ ΔΟΜΗΜΕΝΟ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟ ΕΙΣΑΓΩΓΗ ΣΤΟ ΔΟΜΗΜΕΝΟ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟ Δεύτερη Διάλεξη Βασικά στοιχεία της γλώσσας προγραμματισμού C Μία γλώσσα προγραμματισμού όπως και μια ανθρώπινη γλώσσα μπορεί να μελετηθεί ως προς το αλφάβητό της,

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

Κεφάλαιο 1 Προγραμματισμός Υπολογιστή. Εφαρμογές Πληροφορικής Κεφ. 7 Καραμαούνας Πολύκαρπος 1

Κεφάλαιο 1 Προγραμματισμός Υπολογιστή. Εφαρμογές Πληροφορικής Κεφ. 7 Καραμαούνας Πολύκαρπος 1 Κεφάλαιο 1 Προγραμματισμός Υπολογιστή Καραμαούνας Πολύκαρπος 1 7.1 Η προγραμματιζόμενη μηχανή Από τις βασικότερες διαφορές ανάμεσα στον υπολογιστή και στις περισσότερες ηλεκτρονικές συσκευές είναι η δυνατότητα

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

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

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

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

Τμήμα Πληροφορικής & Επικοινωνιών Δρ. Θεόδωρος Γ. Λάντζος

Τμήμα Πληροφορικής & Επικοινωνιών Δρ. Θεόδωρος Γ. Λάντζος Τμήμα Πληροφορικής & Επικοινωνιών Δρ. Θεόδωρος Γ. Λάντζος http://www.teiser.gr/icd/staff/lantzos lantzos@teiser.gr Κανόνες Ομαλής Λειτουργίας Ερχόμαστε στην ώρα μας Δεν καπνίζουμε και τρώμε εντός της αίθουσας

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

ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ. Στέφανος Ουγιάρογλου

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

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

Σχεδίαση με Ηλεκτρονικούς Υπολογιστές (ΗΥ)

Σχεδίαση με Ηλεκτρονικούς Υπολογιστές (ΗΥ) ΑΡΙΣΤΟΤΕΛΕΙΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΕΣΣΑΛΟΝΙΚΗΣ ΑΝΟΙΧΤΑ ΑΚΑΔΗΜΑΙΚΑ ΜΑΘΗΜΑΤΑ Σχεδίαση με Ηλεκτρονικούς Υπολογιστές (ΗΥ) Ενότητα # 1: Εισαγωγή Ιωάννης Γ. Παρασχάκης Τμήμα Αγρονόμων & Τοπογράφων Μηχανικών Άδειες Χρήσης

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

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

Ανάπτυξη Εφαρμογών σε Προγραμματιστικό Περιβάλλον Ανάπτυξη Εφαρμογών σε Προγραμματιστικό Περιβάλλον ΚΕΦΑΛΑΙΟ 2 2.4 Βασικές συνιστώσες/εντολές ενός αλγορίθμου 2.4.1 Δομή ακολουθίας ΚΕΦΑΛΑΙΟ 7 7.1 7.9 Σταθερές (constants): Προκαθορισμένες τιμές που παραμένουν

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

Αναπαράσταση Δεδομένων (2 ο μέρος) ΜΥΥ-106 Εισαγωγή στους Η/Υ και στην Πληροφορική

Αναπαράσταση Δεδομένων (2 ο μέρος) ΜΥΥ-106 Εισαγωγή στους Η/Υ και στην Πληροφορική Αναπαράσταση Δεδομένων (2 ο μέρος) ΜΥΥ-106 Εισαγωγή στους Η/Υ και στην Πληροφορική «Λογικές» πράξεις, μάσκες Πώς βρίσκουμε το υπόλοιπο μιας διαίρεσης με το 4; διαίρεση με 4 = δεξιά ολίσθηση 2 bits Το υπόλοιπο

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

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

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

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

Μικροεπεξεργαστές. Σημειώσεις Μαθήματος Υπεύθυνος: Δρ Άρης Παπακώστας,

Μικροεπεξεργαστές. Σημειώσεις Μαθήματος Υπεύθυνος: Δρ Άρης Παπακώστας, Μικροεπεξεργαστές Σημειώσεις Μαθήματος 2013-14 Υπεύθυνος: Δρ Άρης Παπακώστας, Η γλώσσα assembly είναι μια γλώσσα προγραμματισμού χαμηλού επιπέδου για συγκεκριμένους υπολογιστές ή άλλη προγραμματιζόμενη

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

Αλγόριθμοι Αναπαράσταση αλγορίθμων Η αναπαράσταση των αλγορίθμων μπορεί να πραγματοποιηθεί με:

Αλγόριθμοι Αναπαράσταση αλγορίθμων Η αναπαράσταση των αλγορίθμων μπορεί να πραγματοποιηθεί με: Αλγόριθμοι 2.2.1. Ορισμός: Αλγόριθμος είναι μια πεπερασμένη σειρά εντολών, αυστηρά καθορισμένων και εκτελέσιμων σε πεπερασμένο χρόνο, που στοχεύουν στην επίλυση ενός προβλήματος. Τα κυριότερα χρησιμοποιούμενα

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

ΤΕΙ ΙΟΝΙΩΝ ΝΗΣΩΝ ΣΧΟΛΗ ΔΙΟΙΚΗΣΗΣ ΚΑΙ ΟΙΚΟΝΟΜΙΑΣ ΤΜΗΜΑ ΔΙΟΙΚΗΣΗΣ ΕΠΙΧΕΙΡΗΣΕΩΝ - ΕΙΣ

ΤΕΙ ΙΟΝΙΩΝ ΝΗΣΩΝ ΣΧΟΛΗ ΔΙΟΙΚΗΣΗΣ ΚΑΙ ΟΙΚΟΝΟΜΙΑΣ ΤΜΗΜΑ ΔΙΟΙΚΗΣΗΣ ΕΠΙΧΕΙΡΗΣΕΩΝ - ΕΙΣ ΤΕΙ ΙΟΝΙΩΝ ΝΗΣΩΝ ΣΧΟΛΗ ΔΙΟΙΚΗΣΗΣ ΚΑΙ ΟΙΚΟΝΟΜΙΑΣ ΤΜΗΜΑ ΔΙΟΙΚΗΣΗΣ ΕΠΙΧΕΙΡΗΣΕΩΝ - ΕΙΣ. ΚΑΤΕΥΘΥΝΣΗ ΔΙΟΙΚΗΣΗΣ ΤΟΥΡΙΣΤΙΚΩΝ ΕΠΙΧΕΙΡΗΣΕΩΝ ΚΑΙ ΕΠΙΧΕΙΡΗΣΕΩΝ ΦΙΛΟΞΕΝΙΑΣ Πληροφορική I "Προγραμματισμός" B. Φερεντίνος

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

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

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

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

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

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

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

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

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

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

Συστήματα Αρίθμησης. Συστήματα Αρίθμησης 1. PDF created with FinePrint pdffactory Pro trial version

Συστήματα Αρίθμησης. Συστήματα Αρίθμησης 1. PDF created with FinePrint pdffactory Pro trial version Συστήματα Αρίθμησης Στην καθημερινή μας ζωή χρησιμοποιούμε το δεκαδικό σύστημα αρίθμησης. Στο σύστημα αυτό χρησιμοποιούμε δέκα διαφορετικά σύμβολα τα :,, 2, 3, 4, 5, 6,7 8, 9. Για τον αριθμό 32 θα χρειαστούμε

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

Εισαγωγή στην επιστήμη των υπολογιστών

Εισαγωγή στην επιστήμη των υπολογιστών Εισαγωγή στην επιστήμη των υπολογιστών Λογισμικό Υπολογιστών Γλώσσες Προγραμματισμού 1 Εξέλιξη Οι γλώσσες προγραμματισμού είναι σύνολα από προκαθορισμένες λέξεις οι οποίες συνδυάζονται σε προγράμματα σύμφωνα

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

Δομή Ηλεκτρονικού υπολογιστή

Δομή Ηλεκτρονικού υπολογιστή Δομή Ηλεκτρονικού υπολογιστή Η κλασσική δομή του μοντέλου που πρότεινε το 1948 ο Von Neumann Κεντρική Μονάδα Επεξεργασίας Είσοδος Αποθήκη Αποθήκη - Έξοδος Εντολών Δεδομένων Κλασσικό μοντέλο Von Neumann

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

Θεωρία Προγραμματισμού

Θεωρία Προγραμματισμού Θεωρία Προγραμματισμού 1) Τι ονομάζουμε Αλγόριθμο; Ονομάζεται μια ακολουθία από πεπερασμένο αριθμό εντολών, που αν εκτελεστούν με ακρίβεια, οδηγούν στη πραγματοποίηση μιας εργασίας. 2) Τι ονομάζουμε ανάλυση

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

Εισαγωγή στην επιστήμη των υπολογιστών

Εισαγωγή στην επιστήμη των υπολογιστών Εισαγωγή στην επιστήμη των υπολογιστών Υπολογιστές και Δεδομένα Κεφάλαιο 3ο Αναπαράσταση Αριθμών www.di.uoa.gr/~organosi 1 Δεκαδικό και Δυαδικό Δεκαδικό σύστημα 2 3 Δεκαδικό και Δυαδικό Δυαδικό Σύστημα

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

Οργάνωση επεξεργαστή (1 ο μέρος) ΜΥΥ-106 Εισαγωγή στους Η/Υ και στην Πληροφορική

Οργάνωση επεξεργαστή (1 ο μέρος) ΜΥΥ-106 Εισαγωγή στους Η/Υ και στην Πληροφορική Οργάνωση επεξεργαστή (1 ο μέρος) ΜΥΥ-106 Εισαγωγή στους Η/Υ και στην Πληροφορική Κώδικας μηχανής (E) Ο επεξεργαστής μπορεί να εκτελέσει το αρχιτεκτονικό σύνολο εντολών (instruction set architecture) Οι

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

1. Τι ονομάζουμε αλγόριθμο; Δώστε παράδειγμα.

1. Τι ονομάζουμε αλγόριθμο; Δώστε παράδειγμα. 1. Τι ονομάζουμε αλγόριθμο; Δώστε παράδειγμα. ΑΠΑΝΤΗΣΗ Ορισμός: Αλγόριθμος είναι μια πεπερασμένη σειρά ενεργειών, αυστηρά καθορισμένων και εκτελέσιμων σε πεπερασμένο χρόνο, που στοχεύουν στην επίλυση ενός

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