Σημειώσεις θεωρίας για το μάθημα "Κατανεμημένα Συστήματα Ελέγχου"

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

Download "Σημειώσεις θεωρίας για το μάθημα "Κατανεμημένα Συστήματα Ελέγχου""

Transcript

1 ΤΕΙ ΧΑΛΚΙΔΑΣ ΤΜΗΜΑ ΑΥΤΟΜΑΤΙΣΜΟΥ Σημειώσεις θεωρίας για το μάθημα "Κατανεμημένα Συστήματα Ελέγχου" Χειμερινό εξάμηνο Χ. Οικονομάκος 1

2 Κεφάλαιο 1: Τεχνολογίες Λογισμικού Ανοιχτής Αρχιτεκτονικής για Συστήματα SCADA 1.1 Τα Συστήματα SCADA Ο όρος SCADA προέρχεται από τα αρχικά των λέξεων Supervisory Control and Data Acquisition (Εποπτικός Έλεγχος και Συλλογή Δεδομένων). Εχει καθιερωθεί στη διεθνή ορολογία των συστημάτων αυτοματισμού και δηλώνει τα συστήματα εκείνα, που επιτρέπουν στο χειριστή μιας κατανεμημένης στο χώρο διεργασίας να συλλέγει πληροφορίες από διάφορα σημεία σε ένα κεντρικό υπολογιστή, από τον οποίο μπορεί επίσης να εκτελεί χειρισμούς ή να στέλνει εντολές ελέγχου έχοντας εποπτεία (δηλαδή βλέποντας τη συνολική εικόνα) της διαδικασίας. Τα SCADA χρησιμοποιούνται κυρίως στη βιομηχανία για την αυτοματοποίηση της παραγωγής και των σχετικών με αυτή διαδικασιών. Συστήματα SCADA χρησιμοποιούνται ακόμη στα δίκτυα των επιχειρήσεων και οργανισμών κοινής ωφελείας (δίκτυα μεταφοράς και διανομής ηλεκτρικής ενέργειας, νερού ή φυσικού αερίου, δίκτυα αποχέτευσης), στα συστήματα αυτοματισμού πολυώροφων κτιρίων (π.χ. νοσοκομεία, ξενοδοχεία) ή άλλων μεγάλων εγκαταστάσεων (π.χ. αεροδρόμια), στα σιδηροδρομικά δίκτυα, στη γεωργία (δίκτυα άρδευσης, αυτοματοποίηση μεγάλων γεωργικών μονάδων) και αλλού. Ένα πολύ σημαντικό κομάτι ενός συστήματος SCADA είναι το λογισμικό του κέντρου ελέγχου. Η ποιότητα του λογισμικού αυτού είναι καθοριστικής σημασίας για την καλή λειτουργία ολόκληρου του συστήματος. Όταν το λογισμικό του κέντρου ελέγχου είναι απαλλαγμένο από σφάλματα και δυσλειτουργίες, ανταποκρίνεται σωστά και αξιόπιστα σε οτιδήποτε μπορεί να συμβεί κατά τη λειτουργία του συστήματος, είναι εύχρηστο, ευέλικτο και μπορεί να δεχτεί όλες τις απαιτούμενες επεκτάσεις, τότε το σύστημα SCADA είναι ένα πραγματικό εργαλείο, που διευκολύνει τη ζωή των χειριστών και τους επιτρέπει να εκτελούν την εργασία τους πολύ πιο αποδοτικά. Αντίθετα, όταν το λογισμικό του κέντρου ελέγχου δεν έχει τα παραπάνω χαρακτηριστικά, τότε το σύστημα SCADA αδυνατεί να καλύψει τις ανάγκες, για τις οποίες σχεδιάστηκε. Επιπλέον, τυχόν ελλείψεις ή αστοχίες στις συσκευές πεδίου, τους τοπικούς ελεγκτές ή το σύστημα επικοινωνίας μπορούν να διορθωθούν σχετικά εύκολα με απομάκρυνση των βαθμίδων, που δεν λειτουργούν ικανοποιητικά και αντικατάστασή τους από άλλες, διαφορετικής τεχνολογίας ή ανώτερης ποιότητας. Η αντικατάσταση αυτή δεν συνιστά αλλαγή συστήματος SCADA, υπό την προυπόθεση φυσικά ότι το υπάρχον κέντρο ελέγχου υποστηρίζει τις νέες βαθμίδες. Αντίθετα, αν το κέντρο ελέγχου δεν λειτουργεί ικανοποιητικά και πρέπει να αντικατασταθεί από άλλο, τότε δεν μιλάμε για διόρθωση ή αναβάθμιση του υπάρχοντος συστήματος αλλά για προμήθεια νέου συστήματος. Για το λόγο αυτό ο όρος SCADA χρησιμοποιείται συχνά στην πράξη με μια ειδικότερη έννοια και σημαίνει απλώς το λογισμικό του κέντρου ελέγχου και όχι ολόκληρο το σύστημα. Το κέντρο ελέγχου ενός συστήματος SCADA είναι ένα εξαιρετικά πολύπλοκο πρόγραμμα. Χρειάζεται να διαχειρίζεται σωστά έναν όγκο πληροφοριών πραγματικού χρόνου και να τις δρομολογεί σωστά με τέτοιο τρόπο ώστε ο κάθε χρήστης του συστήματος και η κάθε μηχανή, που συνδέεται σε αυτό, να έχει την πληροφορία, που χρειάζεται, τη στιγμή, που τη χρειάζεται και στη μορφή, που τη χρειάζεται. Επιπλέον, καθώς τόσο οι ανάγκες της επιχείρισης όσο και οι διαθέσιμες τεχνολογικές λύσεις δεν παραμένουν σταθερές σε όλη τη διάρκεια της ζωής του συστήματος αλλά μεταβάλλονται με την πάροδο του χρόνου, το λογισμικό του κέντρου ελέγχου πρέπει 2

3 να είναι αρκετά ευέλικτο και επεκτάσιμο, ώστε να μπορεί να προσαρμόζεται εύκολα και ομαλά στις καινούργιες κάθε φορά συνθήκες. Όπως έχει αποδειχτεί στην πράξη, οι απαιτήσεις από το λογισμικό των SCADA είναι πολλές φορές τόσο πολύπλοκες και τόσο πολύ διαφορετικές μεταξύ τους, ώστε να είναι αδύνατον να καλυφθούν από τις δυνατότητες ενός μόνου εργαλείου, όσο πλούσιο και αν είναι αυτό. Για το λόγο αυτό σήμερα θεωρείται πολύ σημαντικό ένα πρόγραμμα SCADA να μπορεί να συνεργάζεται με άλλα προγράμματα και να ενσωματώνει στις εφαρμογές του εξειδικευμένο λογισμικό άλλων κατασκευαστών όποτε χρειαστεί. Η αγορά ζητά κέντρα ελέγχου ανοιχτής αρχιτεκτονικής, βασισμένα σε καθιερωμένα διεθνή πρότυπα, τα οποία επιτέπουν τη συνένωση και τη συνεργασία ανεξάρτητων μεταξύ τους προϊόντων υλικού ή λογισμικού, τα οποία ενδεχομένως προέρχονται από διαφορετικούς κατασκευαστές. Η σύνδεση των διαφορετικών αυτών κοματιών και η ενσωμάτωσή τους σε ένα ολοκληρωμένο σύστημα πραγματοποιείται με τη βοήθεια ειδικών τεχνολογιών, που περιγράφονται συνολικά με τον όρο «τεχνολογίες ολοκλήρωσης» (integration technologies). Στις επόμενες ενότητες θα γνωρίσουμε κάποιες βασικές τέτοιες τεχνολογίες. Πιο συγκεκριμένα, θα δούμε τα κυριότερα χαρακτηριστικά τους και θα κάνουμε μια εισαγωγή στον προγραμματισμό με χρήση αυτών των τεχνολογιών. Πριν ασχοληθούμε όμως με συγκεκριμένες τεχνολογίες ολοκλήρωσης, ας αναφέρουμε λίγα πράγματα για τα χαρακτηριστικά και τις δυνατότητες των κέντρων ελέγχου των συστημάτων SCADA. 1.2 Συνηθισμένα Χαρακτηριστικά του Κέντρου Ελέγχου Ένα σημαντικό κομάτι του κέντρου ελέγχου είναι η βαθμίδα επικοινωνίας με το χειριστή (user interface UI). Σε παλαιότερες εποχές η βαθμίδα αυτή περιλάμβανε μιμικά διαγράμματα, που πολλές φορές ήταν τόσο μεγάλα ώστε κάλυπταν τους τοίχους ενός δωματίου. Τα διαγράμματα αυτά απεικόνιζαν σχηματικά ολόκληρη τη διεργασία και ήταν εφοδιαμένα με ένα μεγάλο αριθμό από ενδεικτικές λυχνίες, όργανα μέτρησης και κουμπιά χειρισμών, με τη βοήθεια των οποίων οι χειριστές έπαιρναν πληροφορίες ή έδιναν εντολές. Τα τελευταία χρόνια τα μιμικά διαγράμματα έχουν αντικατασταθεί από προγράμματα γραφικής απεικόνισης των πληροφοριών στην οθόνη του ηλεκτρονικού υπολογιστή. Οι οθόνες ενός μοντέρνου user interface αποτελούνται γενικά από στατικά και δυναμικά στοιχεία. Στατικά στοιχεία είναι εκείνα, που η εικόνα τους στην οθόνη δεν μεταβάλλεται κατά τη διάρκεια της λειτουργίας του προγράμμτος. Παραδείγματα τέτοιων στοιχείων είναι διάφοροι τίτλοι ή λογότυπα, που μπορεί να εμφανίζονται στις οθόνες και οι γραφικές απεικονίσεις των σταθερών τμημάτων της εγκατάστασης (σωληνώσεων, καλωδίων, λεβήτων, φούρνων, δεξαμενών, κλπ). Δυναμικά στοιχεία είναι αυτά, που η εμφάνισή τους στην οθόνη αλλάζει ανάλογα με τις τιμές των σημάτων της διαδικασίας ή ανάλογα με τις ενέργειες του χειριστή. Συνηθισμένα παραδείγματα δυναμικών στοιχείων είναι η απεικόνιση της κατάστασης ενός διακόπτη, της στάθμης μιας δεξαμενής, της θερμοκρασίας ενός λέβητα, των ωρών λειτουργίας μιας αντλίας, κ.λ.π. 1 1 Μερικές φορές στα δυναμικά στοιχεία της οθόνης συμπεριλαμβάνουμε και όσα αντικείμενα αντιδρούν με κάποιο τρόπο όταν ο χρήστης κάνει «κλικ» πάνω τους με το ποντίκι, έστω και άν η μορφή τους δεν μεταβάλλεται. 3

4 Προφανώς το μέγεθος μιας οθόνης υπολογιστή είναι πολύ μικρό για να μπορεί να χωρέσει ολόκληρη την εικόνα μιας εγκατάστασης με όλες τις λεπτομέρειες, που μπορεί να χρειαστούν οι χρήστες. Για το λόγο αυτό τα προγράμματα SCADA χρησιμοποιούν διάφορες τεχνικές τμηματικής παρουσίασης της πληροφορίας στην οθόνη. Μια συνηθισμένη τέτοια τεχνική είναι η δημιουργία μιας κεντρικής οθόνης, η οποία εμφανίζει τη συνολική εικόνα της εγκατάστασης, με ελάχιστες πληροφορίες για τα επιμέρους τμήματα. Από την οθόνη αυτή ο χρήστης μπορεί να επιλέξει ένα συγκεκριμένο τμήμα και να καλέσει μια άλλη οθόνη, η οποία εμφανίζει πιο αναλυτικά στοιχεία για τις βαθμίδες του τμήματος αυτού. Αν χρειάζεται, ο χρήστης μπορεί να προχωρήσει σε περισσότερο βάθος, ζητώντας πληροφορίες για μια από τις μηχανές του συγκεκριμένου τμήματος, για έναν από τους αισθητήρες, που βρίσκονται στη συγκλεκριμένη μηχανή, κ.οκ. Υπάρχει δηλαδή ένα ολόκληρο σύνολο από οθόνες, καθεμιά από τις οποίες εμφανίζει ένα διαφορετικό τμήμα της εγκατάστασης και οι οποίες είναι δομημένες ιεραρχικά με τρόπο ώστε τα διαφορετικά επίπεδα της ιεραρχίας να αντιστοιχούν σε διαφορετικά επίπεδα λεπτομέρειας της παρουσίασης. Μια άλλη πολύ συνηθισμένη τεχνική είναι η απεικόνιση τμημάτων της εγκατάστασης με τη βοήθεια ενός «παραθύρου», το οποίο μπορεί να μετακινείται ελεύθερα στο συνολικό διάγραμμα της εγκατάστασης. Στην οθόνη του χειριστή φαίνεται πάντα το περιεχόμενο του παραθύρου. Το μέγεθος του παραθύρου είναι δυνατόν να αυξομειώνεται με χρήση λειτουργιών μεγέθυνσης/σμίκρυνσης (zoom). Η λειτουργία μετακίνησης του παραθύρου αναφέρεται συχνά ως pan ή panning. Πολλά συστήματα SCADA περιλαμβάνουν και το λεγόμενο «χάρτη πλοήγησης» (navigation map). Πρόκειται για μια μικρογραφία του συνολικού διαγράμματος της εγκατάστασης, που εμφανίζεται συνήθως σε μια γωνιά της οθόνης και δείχνει κάθε φορά την τρέχουσα θέση και το μέγεθος του παραθύρου του χρήστη. Μια άλλη λειτουργία, που σχετίζεται με την αλλαγή μεγέθους του παραθύρου (zoom), είναι το λεγόμενο decluttering. Με τον όρο αυτό εννοούμε τη δυνατότητα του συστήματος να εμφανίζει στο χειριστή διαφορετικά επίπεδα λεπτομέρειας, ανάλογα με την ανάλυση της εικόνας. Ακριβέστερα, όσο περισσότερο ο χειριστής επικεντρώνεται σε ένα κομμάτι της εγκατάστασης κάνοντας zoom στην εικόνα, τόσο περισσότερα στοιχεία βλέπει για το κομάτι αυτό. Για παράδειγμα, η συνολική εικόνα μιας εγκατάστασης μπορεί να εμφανίζει κάποιους λέβητες με τις σωληνώσεις, που τους συνδέουν, και να εμφανίζει σχηματικά τη στάθμη του υγρού σε κάθε λέβητα. Κάνοντας zoom σε ένα τμήμα μπορεί να βλέπουμε επιπλέον και τις βαλβίδες, που υπάρχουν στο τμήμα αυτό. Μεγαλώνοντας περισσότερο την ανάλυση μπορεί να βλέπουμε επιπλέον και τη ροή κάθε βαλβίδας. Αν συνεχίσουμε να μεγαλώνουμε την ανάλυση μπορεί να δούμε κατά σειρά και τις ενδείξεις πίεσης και θερμοκρασίας, τα τεχνικά χαρακτηριστικά των βαλβίδων, κ.λ.π. 2 Όπως προαναφέραμε, σε ένα σύγχρονο SCADA, τα προγράμματα του κέντρου ελέγχου δεν κατασκευάζονται από το μηδέν αλλά συνθέτονται από προκατασκευασμένα κομάτια λογισμικού, που υποστηρίζουν τυποποιημένους τρόπους διασύνδεσης. Οι κατασκευαστές δεν παράγουν έτοιμες λύσεις αλλά ευέλικτες πλατφόρμες, που μπορούν να προσαρμόζονται στις ανάγκες και τις απαιτήσεις της κάθε εφαρμογής. Η τελική λύση δημιουργείται για κάθε πρόβλημα ξεχωριστά, διαμορφώνοντας, συμπληρώνοντας ή διασυνδέοντας τμήματα από τις βασικές αυτές πλατφόρμες. Οι εργασία αυτή μπορεί να γίνεται είτε από τον ίδιο τον κατασκευαστή της πλατφόρμας είτε από μια ξεχωριστή εταιρεία ανάπτυξης 2 Το παράδειγμα αυτό περιλαμβάνεται στο πρόγραμμα επίδειξης του Genesis, που χρησιμοποιείται στο εργαστήριο του μαθήματος. 4

5 ολοκληρωμένων συστημάτων (system integrator) είτε από τον τελικό χρήστη. Έτσι το κέντρο ελέγχου (και κατ επέκταση το όλο σύστημα SCADA) μπορεί να «χτίζεται» κατά παραγγελία για κάθε εφαρμογή, επιλέγοντας κάθε φορά από ένα σύνολο των υπαρχόντων τμημάτων εκείνα, τα οποία απαιτούνται για την κάλυψη των αναγκών της συγκεκριμένης εφαρμογής. Για το λόγο αυτό όλα τα προγράμματα SCADA (π.χ. το Genesis της εταιρείας Iconics, που παρουσιάζεται στο εργαστήριο του μαθήματος, το WinCC της εταιρείας Siemens κ.οκ.) περιλαμβάνουν και ένα περιβάλλον ανάπτυξης εφαρμογών, με το οποίο μπορεί να γίνει η σύνθεση και η διαμόρφωση των οθονών του κάθε συγκεκριμένου συστήματος. Το περιβάλλον ανάπτυξης επιτρέπει στο σχεδιαστή να τοποθετεί και να διαμορφώνει τα διάφορα στατικά και δυναμικά στοιχεία της κάθε οθόνης. Επιπλέον είναι συνήθως εφοδιασμένο με κάποιο είδος γλώσσας προγραμματισμού, με τη βοήθεια της οποίας μπορούν να υλοποιούνται σύνθετες δυναμικές συμπεριφορές, να προγραμματίζονται αυτόματες ενέργειες του συστήματος και να εκτελούνται αλγόριθμοι ελέγχου. Χάρη στις δυνατότητές τους αυτές τα προγράμματα SCADA επιτρέπουν στο σχεδιαστή της κάθε εφαρμογής να δημιουργεί με εύκολο και γρήγορο τρόπο εκείνες ακριβώς τις οθόνες, που χρειάζονται οι χειριστές της συγκεκριμένης εφαρμογής. 1.3 Ανάγκη για Τεχνολογίες Ολοκλήρωσης στα SCADA Τα SCADA είναι συνήθως εξειδικευμένα συστήματα, που σχεδιάζονται για να εξυπηρετούν πολύ συγκεκριμένες εφαρμογές (π.χ. την αυτοματοποίηση ενός εργοστασίου κατασκευής χαρτιού). Είναι σπάνιες οι περιπτώσεις, που ένα σύστημα μπορεί να εξυπηρετήσει και άλλες εφαρμογές εκτός από αυτή, για την οποία σχεδιάστηκε, χωρίς να υποστεί αλλαγές ή τροποποιήσεις. Από την άλλη μεριά, το λογισμικό του κέντρου ελέγχου ενός SCADA χρειάζεται συχνά να είναι εξαιρετικά πολύπλοκο, καθώς πρέπει να παρακολουθεί σύνθετες διαδικασίες, να λαμβάνει υπόψιν όλες τις περιπτώσεις, που μπορεί να συμβούν στην πράξη και να δίνουν στον κάθε χρήστη την πληροφορία, που χρειάζεται, τη στιγμή, που τη χρειάζεται και με τέτοιο τρόπο ώστε να μπορεί να την καταλάβει και να την αξιοποιήσει. Για παράδειγμα, δεν έχει νόημα να παρουσιάζει κανείς στον υπεύθυνο ασφαλείας μιας εγκατάστασης μια ατέλειωτη σειρά από αριθμούς, που παριστάνουν τις μετρήσεις όλων των μεταβλητών ανά πεντάλεπτο και να περιμένει από αυτόν να δεί αν κάποια τιμή έχει ξεφύγει από τα όρια ασφαλούς λειτουργίας. Για να είναι πραγματικά χρήσιμο ένα αυτόματο σύστημα θα πρέπει να ελέγχει τις τιμές, που μετράει και να ενημερώνει το προσωπικό μόνο όταν εντοπίσει κάποιο πρόβλημα. Ένα άλλο χαρακτηριστικό των SCADA είναι ότι πρέπει να μπορούν να υποστηρίζουν ένα μεγάλο αριθμό από διαφορετικές συσκευές πεδίου, που συναντούνται στην πράξη (PLC, ενσωματωμένα συστήματα, βιομηχανικά δίκτυα, προηγμένα αισθητήρια όργανα, κ.λ.π). Οι διαφορετικές αυτές συσκευές μπορεί να έχουν ποικίλα τεχνικά χαρακτηριστικά και να χρησιμοποιούν διάφορα πρωτόκολλα επικοινωνίας. Επιπλέον ένα σύστημα SCADA πρέπει να μπορεί να τροποποιείται εύκολα ώστε να παρακολουθεί τις τεχνολογικές εξελίξεις και να προσαρμόζεται κάθε φορά στα καινούργια δεδομένα της αγοράς (νέα τεχνολογικά πρότυπα ή πρωτόκολλα επικοινωνίας, καινούργιοι κανονισμοί ασφαλείας, κ.λ.π.). Κάτι πολύ σημαντικό είναι οι τροποποιήσεις και οι προσαρμογές αυτές να μπορούν να γίνονται με όσο το δυνατόν λιγότερες επεμβάσεις στον κώδικα λογισμικού του συστήματος. Οι αλλαγές του λογισμικού είναι διαδικασία δαπανηρή και χρονοβόρα καθώς απαιτούν ανθρώπους με πολύ εξειδικευμένες γνώσεις και μεγάλο αριθμό δοκιμών προκειμένου 5

6 να αποφευχθούν ανεπιθύμητες παρενέργειες όπως η εισαγωγή λογικών σφαλμάτων, που μπορεί να προκαλέσουν προβλήματα στην αξιοπιστία και την ασφαλή λειτουργία του συστήματος. Από την παραπάνω ανάλυση είναι προφανές ότι όσο καλή και αν είναι μια εφαρμογή λογισμικού (δηλαδή ένα πρόγραμμα φτιαγμένο για να λειτουργεί με ένα συγκεκριμένο τρόπο) δεν μπορεί να εξυπηρετήσει από μόνη της τις ανάγκες ενός SCADA κάποιας πολυπλοκότητας. Για να μπορεί ένα λογισμικό να χρησιμεύσει ως κέντρο ελέγχου ενός τέτοιου SCADA και ταυτόχρονα να έχει ένα λογικό κόστος, είναι πολύ σημαντικό να συγκροτείται από ανεξάρτητες μονάδες, καθεμιά από τις οποίες (α) εξυπηρετεί μια συγκεκριμένη λειτουργία, (β) μπορεί να τροποποιηθεί αλλάζοντας κάποιες παραμέτρους και όχι τον κώδικα και (γ) συνεργάζεται με τις άλλες μονάδες χρησιμοποιώντας γνωστά πρωτόκολλα και διαδικασίες. Όπως αναφέραμε και στην εισαγωγή, αυτό επιτυγχάνεται με τη χρήση κατάλληλων τεχνολογιών ολοκλήρωσης. Στο χώρο των Windows οι πιο διαδεδομένες τέτοιες τεχνολογίες είναι αυτές, που βασίζονται στο πρότυπο COM της Microsoft (OLE, Automation, ActiveX). Οι τεχνολογίες αυτές είναι γενικής χρήσεως, μπορούν δηλαδή να χρησιμοποιηθούν σε διάφορα είδη λογισμικού. Ειδικά για τα συστήματα SCADA έχει αναπτυχθεί και η τεχνολογία OPC (OLE for Process Control), η οποία βασίζεται επίσης στο πρότυπο COM. Ένα κοινό χαρακτηριστικό των τεχνολογιών αυτών είναι ότι επιτρέπουν σε ετερογενείς μονάδες υλικού ή λογισμικού από διάφορους κατασκευαστές να συνδέονται μεταξύ τους και να σχηματίζουν ολοκληρωμένα συστήματα. Αυτό έχει ως αποτέλεσμα να απλοποιείται σημαντικά η κατασκευή των συστημάτων, καθώς μεγάλο μέρος των εργασιών σχεδίασης και υλοποίησης ανάγεται στην αναζήτηση και επιλογή των κατάλληλων έτοιμων μονάδων από το εμπόριο. Έτσι είναι δυνατόν να κατασκευαστούν σε σύντομο χρονικό διάστημα και με μικρό σχετικά κόστος πολύπλοκα και εξειδικευμένα συστήματα, τα οποία λειτουργούν με ασφάλεια και αξιοπιστία και είναι πλήρως προσαρμοσμένα στις ανάγκες και τις ιδιαιτερότητες της κάθε εφαρμογής. 1.4 Η Τεχνολογία COM Η τεχνολογία COM συνδυάζει δύο βασικές φιλοσοφίες, που κυριαρχούν στην τεχνολογία του λογισμικού την τελευταία δεκαπενταετία: τον αντικειμενοστρεφή προγραμματισμό και τη δημιουργία επαναχρησιμοποιήσιμου κώδικα. Οι δύο αυτές φιλοσοφίες εντάσσονται στα πλαίσια μιας γενικότερης προσπάθειας για την αντιμετώπιση της αύξησης της πολυπλοκότητας των εφαρμογών, η οποία μεγαλώνει πολύ το κόστος των προγραμμάτων ενώ ταυτόχρονα μειώνει και την αξιοπιστία τους. Με τον αντικειμενοστρεφή προγραμματισμό προσπαθούμε να λύσουμε ένα σύνθετο πρόβλημα χωρίζοντάς το σε απλούστερα υποπροβλήματα, καθένα από τα οποία αντιστοιχεί σε ένα ανεξάρτητο αντικείμενο λογισμικού. Ο επαναχρησιμοποιήσιμος κώδικας, από την άλλη μεριά, αφορά τμήματα λογισμικού, που έχουν κατασκευαστεί με συγκεκριμένη τυποποίηση, η οποία τους επιτρέπει να χρησιμοποιούνται από πολλές διαφορετικές εφαρμογές. Οι δύο αυτές φιλοσοφίες δεν είναι εντελώς ανεξάρτητες μεταξύ τους καθώς ο επαναχρησιμοποιήσιμος κώδικας αποτελείται συνήθως από αντικείμενα. Το COM (Component Object Model) είναι η πιο καθιερωμένη από τις αντικειμενοστρεφείς τεχνολογίες επαναχρησιμοποιήσιμου κώδικα. Με απλά λόγια 6

7 μπορούμε να πούμε ότι το COM είναι ένας τυποποιημένος τρόπος για να φτιάχνουμε αντικείμενα λογισμικού, τα οποία να μπορούν να συνεργάζονται μεταξύ τους έστω και αν έχουν γραφτεί σε διαφορετικές γλώσσες προγραμματισμού ή διαφορετικά περιβάλλοντα ανάπτυξης. Το COM αναπτύχθηκε από τη Microsoft για τα λειτουργικά συστήματα της οικογένειας των Windows. Αντίστοιχες τεχνολογίες, που έχουν σχεδιαστεί από διεθνείς οργανισμούς τυποποίησης ή ενώσεις χρηστών δεν θέτουν περιορισμούς ως προς το λειτουργικό σύστημα (π.χ. μπορούν να χρησιμοποιηθούν και στο Unix). Η πιο γνωστή από τις τεχνολογίες αυτές είναι το CORBA (Component Object Request Broker Architecture) του οργανισμού Object Management Group. Στην πράξη όμως το COM έχει κατορθώσει να καθιερωθεί πολύ περισσότερο από τις άλλες τεχνολογίες. Αυτό δεν οφείλεται μόνο στα τεχνικά χαρακτηριστικά του αλλά και στη συστηματική προσπάθεια της Microsoft να το προωθήσει εμπορικά και να το υποστηρίξει ενσωματώντάς το σε όλα τα προϊόντα της. Η μεγάλη επιτυχία του COM ανάγκασε πολλούς κατασκευαστές να αναπτύξουν προϊόντα, που επιτρέπουν σε εφαρμογές άλλων λειτουργικών συστημάτων να συνεργάζονται με αντικείμενα Windows βασισμένα στο COM. Τέτοια προϊόντα υπάρχουν, για παράδειγμα, για τα λειτουργικά συστήματα ΑΙΧ και OS/400 της IBM, Solaris της SUN, OpenVMS, HP/UX, SINIX της Siemens Nixdorf, Linux κ.α. Αν και αποτελεί πνευματική ιδιοκτησία της Microsoft, το COM είναι ένα ανοιχτό πρότυπο, που μπορεί να χρησιμοποιηθεί από οποιονδήποτε. Οι πλήρεις προδιαγραφές του υπάρχουν στο διαδίκτυο και είναι στη διάθεση του κάθε ενδιαφερόμενου. Οι προδιαγραφές αυτές απευθύνονται κυρίως σε προγραμματιστές και περιγράφουν με λεπτομέρειες τα χαρακτηριστικά, που θα πρέπει να έχει ένα αντικείμενο λογισμικού για να μπορεί να συνεργαστεί με άλλα αντικείμενα σύμφωνα με τους κανόνες του COM. Η ιδέα του να διασυνδέονται διαφορετικές εφαρμογές των Windows έτσι ώστε να αποτελούν ένα ολοκληρωμένο σύστημα είναι αρκετά παλιά. Πριν εμφανιστεί το COM η Microsoft είχε εισάγει την τεχνολογία OLE (Object Linking and Embedding). Το OLE επιτρέπει στο χρήστη να τοποθετεί "αντικείμενα περιεχομένου" (content objects), που έχουν δημιουργηθεί από μια εφαρμογή μέσα σε "έγγραφα" (documents) μιας άλλης εφαρμογής. Για παράδειγμα, το OLE επιτρέπει την ενσωμάτωση ενός φύλλου εργασίας του Excel μέσα σε ένα κείμενο του Word. Στην περίπτωση αυτή το Excel ενεργεί ως εξυπηρετητής OLE (OLE server), που προσφέρει το αντικείμενο περιεχομένου "φύλλο εργασίας" και το Word ενεργεί ως "περίβλημα OLE" (OLE container), που "φιλοξενεί" (host) το αντικείμενο. Το πρωτόκολλο του OLE είναι αρκετά πολύπλοκο και περιγράφει πώς ένας εξυπηρετητής OLE μπορεί να μιλάει με ένα περίβλημα OLE και αντίστροφα. Η αρχική μορφή του OLE (έκδοση 1.0) βασιζόταν στην τεχνολογία DDE (Dynamic Data Exchange). Το DDE ήταν ένας μηχανισμός των Windows, που επέτρεπε σε μια εφαρμογή να στέλνει δεδομένα ή εντολές σε μια άλλη εφαρμογή (υπό την προϋπόθεση φυσικά ότι και οι δύο εφαρμογές είχαν σχεδιαστεί έτσι ώστε να υποστηρίζουν το DDE). Με τον καιρό αποδείχτηκε ότι το DDE δεν ήταν όσο ισχυρό χρειαζόταν. Οι δυνατότητές του ήταν πολύ περιορισμένες και δεν μπορούσαν να καλύψουν τις ανάγκες της αγοράς. Για το λόγο αυτό οι ειδικοί της Microsoft επινόησαν το COM. Ταυτόχρονα εμφάνισαν και μια νέα έκδοση του OLE (έκδοση 2.0), που δεν χρησιμοποιούσε DDE για την επικοινωνία μεταξύ των διαφορετικών εφαρμογών αλλά στηριζόταν στο καινούργιο πρότυπο COM. Για αρκετό καιρό μάλιστα η Microsoft επέμενε να χρησιμοποιεί τον όρο OLE για κάθε νέα τεχνολογία, που βασιζόταν στο COM. Έτσι μιλούσε για OLE 7

8 Automation, OLE Controls 3, κ.ο.κ. Σύμφωνα με τα τότε λεγόμενα της Microsoft το OLE δεν ήταν πια ένα ακρώνυμο αλλά ένας νέος τεχνικός όρος, ο οποίος περιέγραφε συνολικά όλες τις τεχνολογίες, που χρησιμοποιούσαν το πρότυπο COM. Η κατάσταση άλλαξε γύρω στο 1995 οπότε η Microsoft καθιέρωσε τα ActiveX και δήλωσε ότι o όρος OLE επανέρχεται στην αρχική του σημασία (Object Linking and Embedding). Αποτέλεσμα όλης αυτής της ιστορίας ήταν να δημιουργηθεί μια σύγχυση και πολλοί τεχνικοί να χρησιμοποιούν εσφαλμένα τον όρο OLE σαν συνώνυμο του COM. Για να ξεκαθαρίσουμε λοιπόν την κατάσταση τονίζουμε ότι OLE και COM είναι δύο διαφορετικά πράγματα. Το COM είναι ένα μοντέλο αντικειμένων (object model), δηλαδή μια τυποποίηση, στην οποία στηρίζονται τεχνολογίες όπως το Automation ή το ActiveX. To OLE είναι ο μηχανισμός, που μας επιτρέπει να ενσωματώνουμε π.χ. ένα φύλλο εργασίας του Excel μέσα σε ένα κείμενο του Word. Κάθε αντικείμενο COM παρέχει στις διάφορες εφαρμογές, που θέλουν να το χρησιμοποιήσουν, έναν αριθμό από μεθόδους. Όπως είναι γνωστό, ο όρος "μέθοδοι" στον αντικειμενοστρεφή προγραμματισμό δηλώνει τα υποπρογράμματα (συναρτήσεις), που υλοποιούν τις λειτουργίες ενός αντικειμένου. Οι μέθοδοι ενός αντικειμένου COM είναι οργανωμένες σε μια ή περισσότερες ομάδες, που ονομάζονται interfaces. Συνήθως οι μέθοδοι, που ανήκουν στο ίδιο interface, υλοποιούν λειτουργίες, που έχουν κάποιο κοινό χαρακτηριστικό (π.χ. ένα interface μπορεί να περιλαμβάνει τις μεθόδους, που εκτελούν αριθμητικές πράξεις, ένα άλλο interface τις μεθόδους, που ζωγραφίζουν κάτι στην οθόνη, κ.ο.κ.). Σχηματικά τα interfaces ενός αντικειμένου COM παριστάνονται με τον τρόπο, που δείχνει το σχ. 1. Interfaces Αντικείμενο COM Σχήμα 1: Ένα αντικείμενο COM και τα interfaces του Η Microsoft έχει προκαθορίσει πάνω από 100 διαφορετικά interfaces, που μπορούν να υποστηρίζονται από οποιοδήποτε αντικείμενο COM. Τα interfaces αυτά ονομάζονται standard interfaces. Επιπλέον οι προγραμματιστές COM είναι ελεύθεροι να ορίζουν και οτιδήποτε άλλα interfaces χρειάζονται για την εφαρμογή τους. Τα interfaces αυτά ονομάζονται custom interfaces. Ένα αντικείμενο COM μπορεί να χρησιμοποιεί είτε standard interfaces είτε custom interfaces είτε ένα συνδυασμό από standard και custom interfaces. Όλα τα αντικείμενα COM πρέπει να υλοποιούν ένα ειδικό standard interface, που ονομάζεται IUnknown 4. To IUnknown περιλαμβάνει τρείς μεθόδους: την QueryInterface, την AddRef και την Release. H QueryInterface μας επιστρέφει ένα δείκτη (pointer) προς ένα άλλο interface του αντικειμένου. Με απλά λόγια μπορούμε να πούμε ότι ο δείκτης αυτός δεν είναι τίποτε άλλο παρά η διεύθυνση μιας περιοχής μνήμης, στην οποία μπορούμε να βρούμε τις διευθύνσεις του κώδικα των μεθόδων του interface ώστε να μπορέσουμε να τις καλέσουμε. Οι μέθοδοι AddRef και Release 3 Οι τεχνολογίες αυτές περιγράφονται συνοπτικά παρακάτω. 4 Το να ξεκινούν τα ονόματα των interfaces με ένα κεφαλαίο I αποτελεί τη συνηθισμένη πρακτική στον προγραμματισμό των αντικειμένων COM. 8

9 διαχειρίζονται ένα μετρητή, που μας δείχνει σε κάθε στιγμή πόσα προγράμματα χρησιμοποιούν το συγκεκριμένο αντικείμενο COM. Όταν ο μετρητής αυτός φτάσει στο μηδέν σημαίνει ότι το αντικείμενο COM δεν χρησιμοποιείται από κανένα πρόγραμμα και συνεπώς μπορεί να απομακρυνθεί από τη μνήμη του υπολογιστή. Κάθε interface χαρακτηρίζεται από ένα μοναδικό αριθμό 128 bit, που ονομάζεται IID (Interface Identifier). Επίσης κάθε κλάση (class 5 ) αντικειμένων COM χαρακτηρίζεται από έναν παρόμοιο αριθμό 128 bit, που ονομάζεται CLSID (class ID). Στη βιβλιογραφία του προγραμματισμού COM χρησιμοποιείται ακόμη ο όρος GUID (globally unique identifier), ο οποίος δηλώνει γενικά έναν αριθμό 128 bit, που χρησιμεύει ως ταυτότητα (identifier) για κάποιο είδος οντοτήτων. Με άλλα λόγια τόσο τα IID όσο και τα CLSID είναι ειδικές περιπτώσεις GUID. Το πρότυπο COM βασίζεται στην αρχιτεκτονική πελάτη/εξυπηρετητή (client/server). Το αντικείμενο COM είναι ο εξυπηρετητής ενώ το πρόγραμμα, που καλεί τις μεθόδους του COM, είναι ο πελάτης. Ακριβέστερα, η Microsoft ορίζει ως εξυπηρετητή COM ένα εκτελέσιμο αρχείο, που υλοποιεί ένα αντικείμενο COM. To registry των windows και συγκεκριμένα η περιοχή HKEY_CLASSES_ROOT\CLSID περιέχει πληροφορίες, που συσχετίζουν τα CLSID με τα εκτελέσιμα αρχεία των αντικειμένων COM. Υπάρχουν δύο βασικές παραλλαγές εξυπηρετητών COM: οι inprocess servers και οι out-of-process servers. Οι in-process servers είναι αρχεία τύπου DLL (dynamically linked libraries). Ονομάζονται in-process διότι εκτελούνται στην ίδια διαδικασία (process 6 ) με τον πελάτη (με άλλα λόγια δηλαδή μοιράζονται τον ίδιο χώρο μνήμης με τον πελάτη). Αντίθετα, οι out-of-process servers είναι αρχεία EXE, που εκτελούνται σε ξεχωριστή διαδικασία από τον πελάτη. Οι in-process servers είναι συνήθως πολύ πιο γρήγοροι από τους out-of-process servers. Η κλήση μιας μεθόδου ενός in-process server δεν διαφέρει πολύ από την κλήση μιας υπορουτίνας του πελάτη. Αντίθετα, η κλήση μιας μεθόδου ενός out-of-process server μπορεί να είναι μέχρι και 1000 φορές πιο αργή, καθώς για να πραγματοποιηθεί πρέπει να ενεργοποιηθούν διάφορες ρουτίνες του λειτουργικού συστήματος, που διαχειρίζονται την επικοινωνία μεταξύ διαφορετικών διαδικασιών. Από την άλλη μεριά, οι out-ofprocess servers παρέχουν μεγαλύτερη ασφάλεια καθώς ο πελάτης και ο εξυπηρετητής χρησιμοποιούν διαφορετικές περιοχές της μνήμης. Η έκδοση 4.0 των Windows NT εισήγαγε μια νέα τεχνολογία, που ονομάστηκε Distributed COM (DCOM). Το DCOM επιτρέπει στους out-of-process εξυπηρετητές COM να εκτελούνται σε διαφορετικούς υπολογιστές από αυτόν του πελάτη. Αργότερα το service pack 2 των Windows NT 4.0 επέτρεψε και στους οι in-process εξυπηρετητές COM να εκτελούνται σε διαφορετικούς υπολογιστές χρησιμοποιώντας έναν μηχανισμό, ο οποίος βασίζεται σε κάποια ειδικά αρχεία EXE, που ονομάζονται "τοποτηρητές" (surrogate) και επιτρέπουν την εκτέλεση DLLs από απομακρυσμένους υπολογιστές. Για να διακρίνουν τους out-of-proc servers, που εκτελούνται στον ίδιο υπολογιστή με τον πελάτη από αυτούς, που εκτελούνται σε διαφορετικό υπολογιστή, οι προγραμματιστές COM χρησιμοποιούν συχνά του όρους τοπικός εξυπηρετητής (local server) και απομακρυσμένος εξυπηρετητής (remote server). Έτσι λοιπόν έχουμε τρείς κατηγορίες εξυπηρετητών COM: 5 Η έννοια του class θεωρείται γνωστή από τον αντικειμενοστρεφή προγραμματισμό. 6 Υπενθυμίζεται ότι στην ορολογία του λογισμικού μια διαδικασία (process) είναι ένα πρόγραμμα, που έχει φορτωθεί στη μνήμη του υπολογιστή. 9

10 (α) in-process servers, που εκτελούνται στην ίδια διαδικασία με τον πελάτη (δηλαδή μοιράζονται τον ίδιο χώρο μνήμης). (β) τοπικούς out-of-process servers, που εκτελούνται σε διαφορετική διαδικασία του ίδιου υπολογιστή. (γ) απομακρυσμένους out-of-process servers, που εκτελούνται σε διαφορετικό υπολογιστή. Ένα άλλο σημείο, που θα πρέπει να τονιστεί είναι ότι η δομή ενός τοπικού εξυπηρετητή out-of-process δεν διαφέρει σε τίποτα από αυτή ενός απομακρυσμένου. Αντίθετα ένας εξυπηρετητής τύπου in-process διαφέρει σημαντικά από έναν εξυπηρετητή τύπου out-of-process. Όπως προαναφέραμε, η κλήση μιας μεθόδου ενός εξυπηρετητή in-process δεν διαφέρει πολύ από την κλήση μιας υπορουτίνας του πελάτη. Αντίθετα, όταν ένας πελάτης καλεί μια μέθοδο ενός εξυπηρετητή out-of-process, ενεργοποιούνται οι μηχανισμοί του COM, οι οποίοι καθιστούν δυνατή την επικοινωνία μεταξύ των διαφορετικών διαδικασιών. Η βασική ιδέα των μηχανισμών αυτών εικονίζεται στο σχ. 2. Χώρος μνήμης διαδικασίας πελάτη Χώρος μνήμης διαδικασίας εξυπηρετητή Πελάτης Proxy Stub Εξυπηρετητής Σχήμα 2: Ο βασικός μηχανισμός κλήσης μιας μεθόδου ενός out-of-process εξυπηρετητή COM Όπως βλέπουμε, στο χώρο μνήμης της διαδικασίας του πελάτη υπάρχει ένα αντικείμενο proxy, που έχει τα ίδια interfaces με τον εξυπηρετητή. Αντίστοιχα, στο χώρο μνήμης της διαδικασίας του εξυπηρετητή, υπάρχει ένα άλλο αντικείμενο (stub), που επικοινωνεί με τον proxy χρησιμοποιώντας κάποιο μηχανισμό IPC (inter-process communication). Όταν ο πελάτης θέλει να χρησιμοποιήσει κάποια από τις μεθόδους του εξυπηρετητή, καλεί την αντίστοιχη μέθοδο του proxy. Ο proxy μεταβιβάζει την κλήση στο stub, το οποίο καλεί τη μέθοδο του εξυπηρετητή. Μετά την ολοκλήρωση της μεθόδου το stub επιστρέφει το αποτέλεσμα στον proxy και ο proxy στον πελάτη. Το COM περιέχει έτοιμα αντικείμενα proxy και stub για όλα τα standard interfaces. Στην περίπτωση, που ο εξυπηρετητής υλοποιεί κάποια custom interfaces, τα αντικείμενα proxy και stub πρέπει να δημιουργηθούν από τον προγραμματιστή. Για το σκοπό αυτό η Microsoft χρησιμοποιεί μια ειδική γλώσσα, που ονομάζεται IDL (Interface Definition Language). 1.5 Η Τεχνολογία Automation Όπως γίνεται φανερό από την παραπάνω παρουσίαση, το βασικό πρόβλημα του COM είναι ότι είναι αρκετά δύσχρηστο. Για να το χρησιμοποιήσει κανείς χρειάζεται να ξέρει ένα πλήθος τεχνικές λεπτομέρειες για ένα αριθμό από interfaces, καθένα από τα οποία αποτελείται από πολλές διαφορετικές συναρτήσεις. Για το λόγο αυτό η Microsoft έχει δημιουργήσει μια ολόκληρη οικογένεια από τεχνολογίες, που 10

11 βασίζονται στο COM αλλά είναι πιο φιλικές προς το χρήστη. Οι τεχνολογίες αυτές επιτρέπουν στους προγραμματιστές των εφαρμογών να χρησιμοποιούν το COM χωρίς να γνωρίζουν όλες τις τεχνικές του λεπτομέρειες. Η βασική τεχνολογία της κατηγορίας αυτής είναι το automation. Το automation επιτρέπει στους προγραμματιστές να επικοινωνούν με αντικείμενα COM χρησιμοποιώντας απλές εντολές σε συνηθισμένες γλώσσες προγραμματισμού. Αρχικά η μόνη τέτοια γλώσσα προγραμματισμού, που συνεργαζόταν με την τεχνολογία automation ήταν η Visual Basic 7. Σήμερα η τεχνολογία automation υποστηρίζεται από τις περισσότερες γλώσσες και περιβάλλοντα προγραμματισμού, που χρησιμοποιούνται στα Windows 8 (Delphi, APL, Java, JScript, VBScript, Perl, Php, Python, Ruby, Matlab, κ.λ.π.). Επιπλέον μπορεί κανείς να χρησιμοποιήσει το automation και από τις γλώσσες C ή С++. Κάτι τέτοιο όμως δεν συνιστάται, καθώς η σύνταξη των εντολών είναι αρκετά περίπλοκη και απαιτεί εξιδεικευμένες γνώσεις και εμπειρία ανάλογη με αυτή του COM. Αντίθετα, οι γλώσσες και τα περιβάλλοντα, που προαναφέραμε, αποκρύπτουν την πολυπλοκότητα και προσφέρουν στον προγραμματιστή έναν εύκολο τρόπο για να χρησιμοποιεί τις δυνατότητες των εξυπηρετητών automation 9. Οι εξυπηρετητές automation είναι στην πραγματικότητα εξυπηρετητές COM, που μπορεί να είναι είτε in-process είτε out-of-process. Το ιδιαίτερο χαρακτηριστικό τους είναι ότι υλοποιούν ένα συγκεκριμένο interface, που ονομάζεται IDispatch. H σημαντικότερη από της μεθόδους του IDispatch είναι η Invoke, η οποία επιτρέπει στους πελάτες να καλούν μεθόδους ή να διαχειρίζονται ιδιότητες του εξυπηρετητή. Για το σκοπό αυτό κάθε μέθοδος και κάθε ιδιότητα ενός εξυπηρετητή automation χαρακτηρίζεται από έναν ακέραιο αριθμό, που ονομάζεται dispatch ID (ή dispid). Έτσι όταν ο πελάτης θέλει να επικοινωνήσει με τον εξυπηρετητή, καλεί τη μέθοδο Invoke δίνοντάς της σαν παράμετρο το dispid της συγκεκριμένης μεθόδου ή ιδιότητας, που θέλει να χρησιμοποιήσει. Μια άλλη παράμετρος της Invoke oρίζει αν ο πελάτης θέλει να καλέσει μια μέθοδο του εξυπηρετητή, να διαβάσει μια ιδιότητα ή να γράψει μια ιδιότητα. Τα dispid των διαφόρων μεθόδων και ιδιοτήτων μπορούν να βρεθούν από μια άλλη μέθοδο του IDispatch interface, που ονομάζεται GetIDsOfNames. H μέθοδος αυτή δέχεται σαν παράμετρο το συμβολικό όνομα μιας μεθόδου ή μιας μεταβλητής και επιστρέφει σαν αποτέλεσμα το αντίστοιχο dispid. Το πλεονέκτημα της τεχνολογίας automation είναι ότι ο συνηθισμένος προγραμματιστής δεν χρειάζεται να ξέρει τίποτα για όλη αυτή τη διαδικασία. Όλος ο χειρισμός των interfaces και των μεθόδων του COM γίνεται αυτόματα από τo περιβάλλον της γλώσσας προγραμματισμού. Όπως είπαμε, η τεχνολογία COM είναι καθαρά αντικειμενοστρεφής (χρησιμοποιεί αποκλειστικά και μόνον αντικείμενα λογισμικού). Το ίδιο ισχύει και για όλες τις τεχνολογίες, που στηρίζονται στο COM. Βασική λοιπόν προϋπόθεση για 7 Και η VBA (Visual Basic for Applications), μια έκδοση της Visual Basic, που είναι ενσωματωμένη σε άλλες εφαρμογές (π.χ. Excel, Word, Powerpoint, κλπ) και χρησιμεύει για τον προγραμματισμό μακρο-εντολών, που αυτοματοποιούν την εκτέλεση διαφόρων εργασιών με τις εφαρμογές αυτές. Από αυτή τη δυνατότητα αυτοματοποίησης της λειτουργίας των διαφόρων εφαρμογών πήρε και το όνομά της η τεχνολογία automation. 8 Σε κάποια από τα περιβάλλοντα αυτά η δυνατότητα υποστήριξης της τεχνολογίας Automation μπορεί να απαιτεί την εγκατάσταση πρόσθετου λογισμικού. Ειδικά στη Java, η απευθείας ενσωμάτωση μιας τεχνολογίας των Windows (ή οποιουδήποτε άλλου λειτουργικού συστήματος) θα ερχόταν σε αντίθεση με τη βασική φιλοσοφία της γλώσσας, που είναι η ανεξαρτησία από τις ιδιαιτερότητες της πλατφόρμας, στην οποία εκτελείται το πρόγραμμα. 9 Δηλαδή των εξυπηρετητών СOM, που υποστηρίζουν πρόσβαση μέσω της τεχνολογίας automation. 11

12 να μπορεί μια γλώσσα (ή ένα περιβάλλον) προγραμματισμού να υποστηρίζει τεχνολογίες COM είναι να επιτρέπει το χειρισμό αντικειμένων. Πρέπει δηλαδή να είναι αντικειμενοστρεφής ή τουλάχιστον να έχει κάποια αντικειμενοστρεφή χαρακτηριστικά. Ειδικότερα, όλα τα περιβάλλοντα, που χρησιμοποιούν automation, επιτρέπουν στον προγραμματιστή (α) να δημιουργεί και να διαχειρίζεται αντικείμενα, (β) να καλεί μεθόδους των αντικειμένων αυτών (γ) να χρησιμοποιεί ιδιότητες.των αντικειμένων αυτών και (δ) να χρησιμοποιεί «συλλογές» (collections) από αντικείμενα. Στη συνέχεια θα παρουσιάσουμε αναλυτικότερα τις λειτουργίες αυτές χρησιμοποιώντας συγκεκριμένα παραδείγματα από δύο περιβάλλοντα ανάπτυξης: τη Visual Basic και το Matlab. Επιλέξαμε τα συγκεκριμένα περιβάλλοντα διότι η μεν Visual Basic είναι μια από τις πιο απλές και πιο συνηθισμένες γλώσσες προγραμματισμού για εφαρμογές Windows, το δε Matlab είναι ιδιαίτερα οικείο στους σπουδαστές του Τμήματος Αυτοματισμού καθώς χρησιμοποιείται σε πολλά εργαστηριακά μαθήματα. Στα παραδείγματα, που θα παρουσιάσουμε, η σύνταξη των εντολών αφορά τις εκδόσεις 6.3 της Visual Basic (η έκδοση, που περιλαμβάνεται στην έκδοση 7 του Genesis, που χρησιμοποιείται στο εργαστήριο του μαθήματος) και 7.1 του Matlab. Αλλες εκδόσεις των προγραμμάτων ενδέχεται να χρειάζονται λίγο διαφορετική σύνταξη, η οποία περιγράφεται επακριβώς στα εγχειρίδια των κατασκευαστών Δημιουργία και διαχείριση αντικειμένων Όλα τα περιβάλλοντα προγραμματισμού, που υποστηρίζουν την τεχνολογία automation, επιτρέπουν στον προγραμματιστή να δημιουργεί αντικείνενα, που αντιστοιχούν σε εξυπηρετητές και να ορίζει μεταβλητές, για να αναφέρεται στα αντικείμενα αυτά. Μια από τις ευκολίες του automation είναι ότι οι κλάσεις των αντικειμένων μπορούν να προσδιορίζονται με συμβολικά ονόματα αντί για τους αριθμούς 128 bit (CLSID) του COM. Τα συμβολικά αυτά ονόματα ονομάζονται progid και ορίζονται για κάθε κλάση αντικειμένων από τον κατασκευαστή της. Τα progid όλων των κλάσεων, που έχουν εγκατασταθεί σε ένα σύστημα Windows, φυλάσσονται στο registry μαζί με τα αντίστοιχα CLSID. Για παράδειγμα, το progid του excel είναι excel.application, το progid του Matlab είναι matlab.application, ενώ το progid του GraphWorx είναι GWX32.Display. Στη Visual Basic, ο πιο απλός τρόπος για να δημιουργήσουμε ένα αντικείμενο automation είναι να χρησιμοποιήσουμε την εντολή CreateObject με παράμετρο το progid του αντικειμένου. Συνήθως δηλώνουμε και μια μεταβλητή τύπου object για να αναφερόμαστε στο αντικείμενο. Η δήλωση της μεταβλητής γίνεται με την εντολή Dim και η σύνδεσή της με το αντικείμενο γίνεται με την εντολή Set. Για παράδειγμα, αν θέλουμε να δημιουργήσουμε ένα αντικείμενο Excel (δηλαδή να ξεκινήσουμε το Excel ως εξυπηρετητή automation) και να το συνδέσουμε με μια μεταβλητή a θα πρέπει να δώσουμε τις εντολές Dim a as Object Set a = CreateObject("excel.application") Όταν ολοκληρώσουμε την εργασία μας με το Excel μπορούμε να δώσουμε την εντολή Set a = Nothing 12

13 για να απελευθερώσουμε τη μνήμη, που είχε δεσμευθεί για την επικοινωνία με τον εξυπηρετητή automation, ώστε να μπορεί να χρησιμοποιηθεί από άλλα προγράμματα. Στο Matlab η δημιουργία του αντικειμένου (και η σύνδεσή του με μια μεταβλητή, αν θέλουμε) γίνεται με την εντολή actxserver. Έτσι, το παράδειγμα, που είδαμε προηγουμένως, υλοποιείται στο Matlab με την εντολή a = actxserver('excel.application') Επιπλέον το Matlab έχει τη δυνατότητα, μέσω της τεχνολογίας automation, να τοποθετεί αντικείμενα άλλων εφαρμογών μέσα σε παράθυρα εικόνων του (figure). Αυτό επιτυγχάνεται με την εντολή actxcontrol. Για παράδειγμα, η εντολή a = actxcontrol('gwxswitch.gwxswitchctrl.1') ανοίγει ένα νέο παράθυρο εικόνας του Matlab και τοποθετεί σε αυτό ένα αντικείμενο από τη κλάση, που έχει το progid GWXSWITCH.GWXSwitchCtrl.1. (Το συγκεκριμένο αντικείμενο είναι ο διακόπτης on-off, που χρησιμοποιούμε στις οθόνες του GraphWorx σε κάποιες εργαστηριακές ασκήσεις, δηλαδή ένα αντικείμενο του Genesis). Αν θέλουμε, μπορούμε να αναφερόμαστε σε ένα αντικείμενο και με περισσότερες από μία μεταβλητές. Για παράδειγμα, αν η μεταβλητή a έχει σαν τιμή ένα αντικείμενο, τότε η εντολή b = a κάνει και τη μεταβλητή b να αναφέρεται στο ίδιο αντικείμενο. Σημειώνεται ότι στο Matlab δεν χρειάζεται να δώσουμε κάποια ειδική εντολή για να απελευθερώσουμε τη μνήμη, που έχει δεσμευθεί για κάποιο αντικείμενο 10. Η μνήμη αυτή απελευθερώνεται αυτόματα μόλις το αντικείμενο πάψει να είναι προσβάσιμο. Για παράδειγμα, αν η μόνη μεταβλητή, που μας δίνει πρόσβαση στο συγκεκριμένο αντικείμενο είναι η a και δώσουμε την εντολή a = 5 τότε η μεταβλητή a παίρνει μια νέα τιμή (το 5) και δεν έχουμε πια κανένα τρόπο για να ανφερόμαστε στο αντικείμενο. Στην περίπτωση αντικειμένων, που τοποθετούνται σε παράθυρα εικόνας με την εντολή actxcontrol, η πρόσβαση στο αντικείμενο χάνεται όταν κλείσουμε το παράθυρο εικόνας Κλήση μεθόδων Όπως είναι γνωστό από τον αντικειμενοστρεφή προγραμματισμό, οι μέθοδοι ενός αντικειμένου μπορούν να παίρνουν ορίσματα (παραμέτρους) και/ή να επιστρέφουν κάποιο αποτέλεσμα. Οι προδιαγραφές του automation καθορίζουν τους τύπους δεδομένων, που μπορούν να λαμβάνουν ως παραμέτρους ή να επιστρέφουν ως αποτέλεσμα οι διάφορες μέθοδοι. Από εκεί και πέρα το κάθε περιβάλλον προγραμματισμού έχει τους δικούς του κανόνες σχετικά με το ποιούς από αυτούς τους τύπους δεδομένων υποστηρίζει καθώς και για το πώς γίνεται η μετατροπή από τους τύπους δεδομένων της συγκεκριμένης γλώσσας προγραμματισμού στους τύπους δεδομένων της τεχνολογίας automation και αντίστροφα. 10 Τέτοια εντολή υπάρχει (είναι η εντολή clear) αλλά δεν είναι απαραίτητο να τη δώσουμε, αν δεν έχουμε κάποιο άλλο λόγο να καθαρίσουμε τη μνήμη. 13

14 Γενικά για να καλέσουμε μια μέθοδο γράφουμε το αντικείμενο ακολουθούμενο από μια τελεία και μετά το όνομα της μεθόδου και τις τυχόν παραμέτρους μέσα σε παρένθεση. Η σύνταξη αυτή μπορεί να χρησιμοποιηθεί σε όλα σχεδόν τα περιβάλλοντα προγραμματισμού, συμπεριλαμβάνοντας τη Visual Basic και το Matlab 11. Ας δούμε μερικά παραδείγματα 12. (α) Κλήση μεθόδου χωρίς παραμέτρους, που δεν επιστρέφει κάποιο αποτέλεσμα Ας υποθέσουμε ότι η μεταβλητή a αναφέρεται σε ένα αντικείμενο (εξυπηρετητή) automation, που αντιστοιχεί στο Excel (ένα στιγμιότυπο της κλάσης, που έχει το progid Excel.application, όπως είδαμε παραπάνω). Η εντολή a.quit (στη Visual Basic, στο Matlab ή σε κάποιο άλλο περιβάλλον προγραμματισμού) καλεί τη μέθοδο Quit, η οποία τερματίζει την εφαρμογή (ισοδυναμεί δηλαδή με την επιλογή File Exit από το μενού του προγράμματος). Αντίστοιχα, η εντολή a.findfile εμφανίζει το γνωστό παράθυρο των εφαρμογών Windows, από το οποίο επιλέγουμε το αρχείο, που θέλουμε να ανοίξουμε (ισοδυναμεί δηλαδή με την επιλογή File Open του μενού). (β) Κλήση μεθόδου χωρίς παραμέτρους, που επιστρέφει κάποιο αποτέλεσμα. Έστω ότι η μεταβλητή a αναφέρεται σε μια οθόνη του GraphWorx (ένα στιγμιότυπο της κλάσης με progid GWX32.Display, όπως αναφέραμε παραπάνω). Η μέθοδος GetNumberOfTopLevelVisibles μας λέει πόσα σχεδιαστικά αντικείμενα (γραμμές, τετράγωνα, κύκλοι κ.λ.π) 13 έχουμε τοποθετήσει στην οθόνη. Έτσι, η παρακάτω εντολή Matlab μας εμφανίζει στην οθόνη το πλήθος των αντικειμένων αυτών. a.getnumberοftoplevelvisibles Φυσικά μπορούμε να αποθηκεύσουμε το αποτέλεσμα της μεθόδου σε μια μεταβλητή n, χρησιμοποιώντας τη σύνταξη n = a.getnumberοftoplevelvisibles Η ίδια αυτή σύνταξη ισχύει και στη Visual Basic (όπως και σε όλα σχεδόν τα περιβάλλοντα προγραμματισμού, που υποστηρίζουν automation). Σύμφωνα με τα εγχειρίδια (Help files) του Genesis, το αποτέλεσμα, που επιστρέφει η μέθοδος GetNumberOfTopLevelVisibles, είναι τύπου Long (ακέραιος αριθμός 32 bit). Αυτό θα πρέπει να το λαμβάνουμε υπόψη όταν χρησιμοποιούμε κάποιο περιβάλλον, που 11 Υπάρχουν και εναλλακτικοί τρόποι σύνταξης, με τους οποίους όμως δεν θα ασχοληθούμε για λόγους απλότητας της παρουσίασης και οικονομίας χώρου. Για περισσότερες πληροφορίες ο αναγνώστης παραπέμπεται στα εγχειρίδια των αντίστοιχων προγραμμάτων. 12 Εδώ θα παραθέσουμε απλώς ενδεικτικά μερικές περιπτώσεις χρήσης κάποιων μεθόδων. Αναλυτική περιγραφή των μεθόδων αυτών καθώς και όλων των μεθόδων, που υποστηρίζουν τα αντίστοιχα αντικείμενα, υπάρχουν στα εγχειρίδια και τα help files των προγραμμάτων. 13 Στο περιβάλλον του Genesis όλα αυτά τα αντικείμενα θεωρούνται ότι ανήκουν σε μια κλάση με όνομα GWXVisible. 14

15 απαιτεί να δηλώνουμε τον τύπο των μεταβλητών. Για παράδειγμα, στη Visual Basic χρειάζεται να έχουμε δηλώσει τη μεταβλητή n στην αρχή του προγράμματος δίνοντας την εντολή Dim n as Long (γ) Κλήση μεθόδου με παραμέτρους, που δεν επιστρέφει κάποιο αποτέλεσμα Όπως και στο προηγούμενo παράδειγμα, ας υποθέσουμε ότι η μεταβλητή a αναφέρεται σε ένα στιγμιότυπο της κλάσης GWX32.Display (μια οθόνη του GraphWorx). Η μέθοδος CreateLayer παίρνει σαν παράμετρο μια συμβολοσειρά (string) και δημιουργεί ένα καινούργιο επίπεδο σχεδίασης (Layer 14 ) με όνομα τη συμβολοσειρά αυτή. Η σύνταξη της αντίστοιχης εντολής στο Matlab είναι a.createlayer('new Layer') όπου υποθέσαμε ότι το όνομα του νέου επιπέδου είναι New Layer. Στη Visual Basic η εντολή θα ήταν ακριβώς η ίδια, με τη διαφορά ότι η συμβολοσειρά θα γραφόταν με διπλά και όχι με μονά εισαγωγικά, σύμφωνα με τους κανόνες της γλώσσας. Φυσικά θα μπορούσαμε εναλλακτικά να είχαμε βάλει τη συμβολοσειρά New Layer σε μια μεταβλητή (π.χ. s) και να δίναμε την εντολή (Matlab, Visual basic, ή άλλο περιβάλλον) a.createlayer(s) Όπως εξηγήσαμε και παραπάνω, στην περίπτωση της Visual Basic χρειάζεται να δηλώσουμε τον τύπο της μεταβλητής s στην αρχή του προγράμματος με την εντολή Dim s as String (δ) Κλήση μεθόδου με παραμέτρους, που επιστρέφει κάποιο αποτέλεσμα Στο παράδειγμα αυτό ας υποθέσουμε ότι η μεταβλητή a αναφέρεται σε έναν εξυπηρετητή automation, που αντιστοιχεί στο Matlab. Η μέθοδος Execute δέχεται ως παράμετρο μια συμβολοσειρά, που παριστάνει μια οποιαδήποτε εντολή του Matlab, και επιστρέφει ως αποτέλεσμα μια άλλη συμβολοσειρά, που παριστάνει το αποτέλεσμα της εκτέλεσης της εντολής, όπως θα εμφανιζόταν στη γραμμή εντολών του Matlab. Για παράδειγμα, υποθέτοντας ότι s είναι μια μεταβλητή τύπου String, η εντολή Visual Basic s = a.execute("2+2") μας επιστρέφει στη μεταβλητή s τη συμβολοσειρά ans = 4. Ως δεύτερο παράδειγμα ας θεωρήσουμε ότι η μεταβλητή a αναφέρεται σε μια οθόνη του GraphWorx (δηλαδή έναν εξυπηρετητή automation με progid GWX32.Display, όπως προαναφέραμε). Έστω ότι η οθόνη αυτή περιέχει ν σχεδιαστικά αντικείμενα. Η μέθοδος GetVisibleObjectFromIndex δέχεται ως παράμετρο έναν αριθμό από το 0 έως το ν 1 και επιστρέφει ως αποτέλεσμα το 14 Η έννοια των επιπέδων σχεδίασης του GraphWorx θεωρείται γνωστή από το εργαστήριο του μαθήματος. 15

16 αντίστοιχο σχεδιαστικό αντικείμενο 15. Έτσι, π.χ. στη Visual Basic, υποθέτοντας ότι o είναι μια μεταβλητή τύπου object, η εντολή 16 Set o = a.getvisibleobjectfromindex(1) κάνει τη μεταβλητή o να αναφέρεται στο δεύτερο στη σειρά σχεδιαστικό αντικείμενο της οθόνης. Η ίδια δουλειά μπορεί να γίνει και στο Matlab με την εντολή o = a.getvisibleobjectfromindex(1) (ε) Κλήση μεθόδου πάνω σε αντικείμενο, που επιστρέφει άλλη μέθοδος Σε όλα τα παραδείγματα, που είδαμε μέχρι τώρα, χρησιμοποιούσαμε μια μεταβλητή για να αναφερόμαστε στο αντικείμενο, του οποίου τις μεθόδους καλούσαμε. Αυτό δεν είναι απαραίτητο. Υπάρχουν περιπτώσεις, που το αντικείμενο αυτό μας το επιστρέφει ως αποτέλεσμα μια μέθοδος, που καλούμε σε κάποιο άλλο αντικείμενο. Για παράδειγμα, ας υποθέσουμε ότι δίνουμε την παρακάτω εντολή Visual Basic μέσα από το περιβάλλον του Genesis. n = ThisDisplay.GetVisibleObjectFromIndex(0).GetNumberOfDynamics Για να καταλάβουμε τί κάνει αυτή η εντολή, ας την εξετάσουμε κομμάτι-κομμάτι. Η έκφραση ThisDisplay είναι μια μεταβλητή του GraphWorx, η οποία χρησιμεύει για να αναφερόμαστε κάθε φορά στο αντικείμενο GWX32.Display, που αντιστοιχεί στην οθόνη, που χρησιμοποιούμε. Επομένως, σύμφωνα με όσα αναφέραμε στο προηγούμενο παράδειγμα, η έκφραση ThisDisplay.GetVisibleObjectFromIndex(0) μας επιστρέφει το πρώτο στη σειρά σχεδιαστικό αντικείμενο της οθόνης. Επομένως η έκφραση ThisDisplay.GetVisibleObjectFromIndex(0).GetNumberOfDynamics σημαίνει κλήση της μεθόδου GetNumberOfDynamics στο πρώτο σχεδιαστικό αντικείμενο της οθόνης. Η μέθοδος αυτή είναι μια μέθοδος, που έχουν όλα τα αντικείμενα της κλάσης GWXVisible και μας επιστρέφει έναν ακέραιο αριθμό 32 bit (τύπος δεδομένων long), ο οποίος δηλώνει το πλήθος των δυναμικών συμπεριφορών, που έχουμε συνδέσει με το συγκεκριμένο αντικείμενο (αν δεν έχουμε συνδέσει καμία δυναμική συμπεριφορά τοτε η μέθοδος επιστρέφει τον αριθμό 0). Έτσι, η εντολή n = ThisDisplay.GetVisibleObjectFromIndex(0).GetNumberOfDynamics 15 Όλα τα σχεδιαστικά αντικείμενα, που βάζουμε στις οθόνες του GraphWorx παίρνουν μια αύξουσα αρίθμηση, που ξεκινάει από το 0. Η αρίθμηση αυτή μπαίνει αυτόματα από το πρόγραμμα και μεταβάλλεται όταν κάποια αντικείμενα μετακινούνται μπροστά από άλλα. Κάθε αντικείμενο έχει μικρότερο αύξοντα αριθμό από αυτά, που βρίσκονται μπροστά του. Το αντικείμενο με αύξοντα αριθμό 0 είναι πάντα αυτό, που βρίσκεται πιο πίσω από όλα. 16 Στην έκδοση 6 της Visual Basic, που χρησιμοποιεί το GraphWorx, για να δώσουμε τιμή σε μια μεταβλητή τύπου object πρέπει οπωσδήποτε να χρησιμοποιούμε την εντολή set. Μια απλή εντολή ανάθεσης της μορφής o=a.getvisibleobjectfromindex(1) δεν γίνεται δεκτή. Τέτοιες εντολές ανάθεσης μπορούν να χρησιμοποιηθούν μόνο για αριθμητικά δεδομένα και συμβολοσειρές. Νεότερες εκδόσεις της Visual Basic χρησιμοποιούν εντολές ανάθεσης και για αντικείμενα. 16

17 βάζει στη μεταβλητή n τον αριθμό των δυναμικών συμπεριφορών, που έχουμε συνδέσει με το πρώτο στη σειρά σχεδιαστικό αντικείμενο της οθόνης. (Φυσικά η μεταβλητή n θα πρέπει να έχει δηλωθεί τύπου Long στην αρχή του προγράμματος). Η ίδια τεχνική μπορεί να χρησιμοποιηθεί και στο Matlab. Πολλά τέτοια παραδείγματα θα δούμε στην ενότητα 1.8.3, σε συνδυασμό με την τεχνολογία OPC 17. Θα ολοκληρώσουμε το θέμα των μεθόδων αναφέροντας ότι το Matlab μας προσφέρει μια σειρά από εντολές, με τις οποίες μπορούμε να βλέπουμε ποιές μεθόδους υποστηρίζει το κάθε αντικείμενο. Η πιο χρήσιμη ίσως από τις εντολές αυτές είναι η invoke με παράμετρο το αντικείμενο. Για παράδειγμα, αν η μεταβλητή a του Matlab αναφέρεται σε ένα αντικείμενο και δώσουμε την εντολή invoke(a) τότε θα εμφανιστεί στην οθόνη μια λίστα με τις μεθόδους, που υποστηρίζει το αντικείμενο αυτό, όπου θα αναγράφονται αναλυτικά για κάθε μέθοδο το όνομά της και οι τύποι δεδομένων, που δέχεται ως παραμέτρους και/ή επιστρέφει ως αποτελέσμα. Μια ιδιαιτερότητα της εντολής invoke είναι ότι σε κάθε μέθοδο εμφανίζει ως πρώτη παράμετρο ένα αντικείμενο (που στο Matlab παριστάνεται με τον τύπο δεδομένων handle). Η παράμετρος αυτή δηλώνει το ίδιο το αντικείμενο, του οποίου τη μέθοδο θέλουμε να καλέσουμε και χρησιμοποιείται μόνο όταν θέλουμε να καλέσουμε μεθόδους σε αντικείμενα με χρήση της εντολής invoke 18. Οταν εργαζόμαστε με τον τρόπο, που περιγράψαμε στην ενότητα αυτή, μπορούμε να την αγνοήσουμε Χρήση ιδιοτήτων Στον αντικειμενοστρεφή προγραμματισμό με τον όρο «ιδιότητες» εννοούμε τις μεταβλητές, στις οποίες τα αντικείμενα αποθηκεύουν τα δεδομένα τους 19. Η δυνατότητα άμεσης πρόσβασης σε ιδιότητες είναι μια επιπλέον ευκολία, που παρέχει στους προγραμματιστές η τεχνολογία automation. Στο COM ο πελάτης μπορεί να επικοινωνεί με τον εξυπηρετητή αποκλειστικά και μόνο καλώντας μεθόδους. Αντίθετα, οι εξυπηρετητές automation επιτρέπουν στους πελάτες τους να διαβάζουν ιδιότητες των αντικειμένων, ή να δίνουν τιμές σε αυτές. Αυτή η δυνατότητα 17 Το συγκεκριμένο παράδειγμα, που είδαμε εδώ, δεν μπορεί να μεταφέρθεί απευθείας στο Matlab. Ο λόγος είναι ότι η κλάση αντικειμένων GWXVisible (και οι υπόλοιπες κλάσεις αντικειμένων του GraphWorx, εκτός από την GWX32.Display) δεν έχουν δηλωθεί στο registry των Windows σαν κλάσεις COM αλλά σαν interfaces. Αυτό έχει σαν αποτέλεσμα η απλή σύνταξη αντικείμενο.μέθοδος, που είδαμε ως τώρα να μην δουλεύει στο Matlab για τα αντικείμενα αυτά. Τονίζεται ότι αυτό ισχύει μόνο για τα αντικείμενα του ίδιου του GraphWorx (στατικά στοιχεία και δυναμικές συμπεριφορές) και όχι για τυχόν άλλα αντικείμενα ActiveX, που μπορούμε να ενσωματώσουμε σε οθόνες του GraphWorx (π.χ. o διακόπτης με το progid GWXSwitch.GWXSwitchCtrl.1, που αναφέραμε στην ενότητα 1.5.1). Για να καλέσουμε μεθόδους αντικειμένων του GraphWorx από το Matlab θα πρέπει να χρησιμοποιήσουμε την εντολή invoke με πρώτο όρισμα το αντικείμενο και δεύτερο όρισμα το όνομα της μεθόδου. Για περισσότερες λεπτομέρειες σχετικά με αυτή τη χρήση της εντολής invoke παραπέμπουμε τον αναγνώστη στα εγχειρίδια του Matlab. 18 Αυτός είναι ένας άλλος τρόπος κλήσης μεθόδων, που μπορεί να χρησιμοποιηθεί μόνο στο Matlab. Επιλέξαμε να μην τον περιγράψουμε στην σημειώσεις αυτές και να επικεντρωθούμε στη συνηθισμένη σύνταξη αντικείμενο.μέθοδος, που χρησιμοποιείται σε όλα τα αντικειμενοστρεφή περιβάλλοντα. προγραμματισμού. Σε ορισμένες περιπτώσεις όμως είναι χρήσιμος (βλ. προηγούμενη υποσημείωση). 19 Τα δεδομένα αυτά μπορούν γενικά να αφορούν είτε την κατάσταση του αντικειμένου (π.χ. η τελευταία τιμή, που διαβάσαμε από έναν αισηθτήρα) είτε τις παραμέτρους λειτουργίας του (π.χ. πόσο συχνά θα διαβάζεται ο αισθητήρας, σε τι χρώμα θα απεικονίζεται η ένδειξη στην οθόνη ή ποιά γραμματοσειρά θα χρησιμοποιείται). 17

18 απλουστεύει σημαντικά τη σύνταξη των προγραμμάτων σε πολλές περιπτώσεις. Οι προδιαγραφές του automation ορίζουν τους τύπους δεδομένων, που μπορούν να έχουν οι τιμές των ιδιοτήτων. Από εκεί και πέρα, το κάθε περιβάλλον προγραμματισμού έχει τους δικούς του κανόνες, όσον αφορά το ποιούς από τους τύπουςς αυτούς υποστηρίζει και πώς γίνεται η μετατροπή από τους τύπους δεδομένων της γλώσσας προγραμματισμού στους τύπους δεδομένων του automation και αντίστροφα. Γενικά τα αντικειμενοστρεφή περιβάλλοντα προγραμματισμού αναφέρονται στις ιδιότητες των αντικειμένων χρησιμοποιώντας τη σύνταξη αντικείμενο.ιδιότητα. Για παράδειγμα, το αντικείμενο, που αντιστοιχεί στο Excel (progid excel.application ) έχει μια ιδιότητα, που ονομάζεται Visible και είναι τύπου Bolean. Οταν η ιδιότητα αυτή έχει τιμή True, τότε το παράθυρο του Excel φαίνεται στην οθόνη του υπολογιστή. Αντίθετα, όταν η ιδιότητα Visible έχει τιμή False, τότε το παράθυρο του Excel είναι κρυμμένο αν και το πρόγραμμα συνεχίζει να εκτελείται κανονικά. Έτσι, υποθέτοντας ότι η μεταβλητή a έχει ως τιμή ένα αντικείμενο Excel, η εντολή a.visible = true εμφανίζει το παράθυρο του Excel στην οθόνη ενώ η εντολή a.visible = false το εξαφανίζει. Η εντολή b = a.visible αντιγράφει στην μεταβλητή b την τιμή της ιδιότητας Visible. Οι παραπάνω εντολές μπορεί να χρησιμοποιηθούν είτε στη Visual Basiс είτε στο Matlab. Όπως και στα παραδείγματα της προηγούμενης ενότητας, στην περίπτωση της Visual Basic η τρίτη εντολή προϋποθέτει να έχουμε δηλώσει προηγουμένως τη μεταβλητή b ως Boolean. Μια ιδιότητα είναι δυνατόν να έχει ως τιμή ένα αντικείμενο. Για παράδειγμα, η ιδιότητα ActiveCell του αντικειμένου Excel.Application έχει ως τιμή ένα αντικείμενο τύπου Range 20, που αντιστοιχεί στο εκάστοτε επιλεγμένο κελί του φύλλου εργασίας του Excel. Έτσι, υποθέτοντας όπως και προηγουμένως ότι η μεταβλητή a έχει ως τιμή ένα αντικείμενο Excel, η έκφραση a.activecell παριστάνει το αντικείμενο Range, που αντιστοιχεί στο επιλεγμένο κελί του φύλλου εργασίας και μπορούμε να τη χρησιμοποιήσουμε για να προσπελάσουμε μεθόδους και ιδιότητες του αντικειμένου. Για παράδειγμα, η εντολή a.activecell.clear καλεί τη μέθοδο Clear της κλάσης Range, η οποία καθαρίζει το περιεχόμενο του επιλεγμένου κελιού. Αντίστοιχα, η εντολή 20 Η κλάση Range είναι μια από τις κλάσεις αντικειμένων, που συμμετέχουν σε ένα φύλλο εργασίας του Excel. Παριστάνει μια περιοχή κελιών. Αναλυτικές πληροφορίες για όλες τις κλάσεις αντικειμένων του Excel, καθώς και για τις μεθόδους και ιδιότητες καθενός από αυτά, υπάρχουν στα εγχειρίδια και τα help files του προγράμματος. 18

19 s = a.activecell.address μεταφέρει στη μεταβλητή s την τιμή της ιδιότητας Address του αντικειμένου Range, δηλαδή μια συμβολοσειρά, που παριστάνει την διεύθυνση του επιλεγμένου κελιού (π.χ. A2 ). Με τον ίδιο τρόπο εργαζόμαστε και όταν θέλουμε να χρησιμοποιήσουμε ιδιότητες ενός αντικειμένου, που το παίρνουμε ως αποτέλεσμα από την κλήση μιας μεθόδου ενός άλλου αντικειμένου. Για παράδειγμα, είδαμε στην προηγούμενη ενότητα ότι η μέθοδος GetVisibleObjectFromIndex της κλάσης GWX32.Display μας επιστρέφει ένα στιγμιότυπο της κλάσης GWXVisible, που αντιστοιχεί σε ένα από τα σχεδιαστικά αντικείμενα της οθόνης. Σύμφωνα με τα εγχειρίδια του Genesis, κάθε αντικείμενο από την κλάσης GWXVisible έχει μια ιδιότητα με όνομα isfilled, η οποία είναι τύπου Boοlean και μας προσδιορίζει εάν το σχήμα του αντικειμένου στην οθόνη είναι γεμάτο με χρώμα ή αν φαίνεται μόνο το περίγραμμα. Έτσι, αν μια οθόνη του GraphWorx έχει τρία σχεδιαστικά αντικείμενα, η εντολή Visual Basic ThisDisplay.GetVisibleObjectFromIndex(1).isFilled = False μέσα από το περιβάλλον του GraphWorx θα έχει ως αποτέλεσμα το δεύτερο κατά σειρά από τα τρία αντικείμενα να εμφανιστεί στην οθόνη με μόνο το περίγραμμα. Επίσης, η εντολή b = ThisDisplay.GetVisibleObjectFromIndex(2).isFilled μεταφέρει στη μεταβλητή b (που θα πρέπει να έχει δηλωθεί Boolean) την τιμή της ιδιότητας isfilled του τρίτου κατά σειρά από τα αντικείμενα της οθόνης. Ας σημειωθεί ότι κάποιες ιδιότητες των αντικειμένων automation μπορεί να έχουν το χαρακτηρισμό read-only. Αυτό σημαίνει ότι οι προγραμματιστές μπορούν να χρησιμοποιήσουν την τιμή αυτών των ιδιοτήτων στα προγράμματά τους, αλλά δεν επιτρέπεται να την αλλάξουν. Παράδειγμα τέτοιας ιδιότητας είναι η ιδιότητα ActiveCell του αντικειμένου Excel.Application, που είδαμε παραπάνω. Το περιβάλλον του Matlab μας δίνει μια σειρά από εντολές, με τις οποίες μπορούμε να βλέπουμε ποιές ιδιότητες έχουν τα αντικείμενα automation, που χρησιμοποιούμε. Μια τέτοια εντολή είναι η εντολή get. Αν a είναι μια μεταβλητή του Matlab, που έχει ως τιμή ένα αντικείμενο, τότε η εντολή get(a) εμφανίζει στην οθόνη ένα πίνακα με τα ονόματα όλων των ιδιοτήτων του αντικειμένου και τις τρέχουσες τιμές τους Χρήση συλλογών Στην ορολογία της τεχνολογίας Automation μια συλλογή (collection) είναι μια ομάδα από ομοειδή αντικείμενα (δηλαδή αντικείμενα, που ανήκουν στην ίδια κλάση). Οι συλλογές αντικειμένων χρησιμοποιούνται ευρύτατα στα Windows. Για παράδειγμα, μπορεί να μιλάμε για τη συλλογή των ανοιχτών παραθύρων μιας εφαρμογής, τη συλλογή των χειριστηρίων μιας φόρμας, ή τη συλλογή των κόμβων (υπολογιστών) ενός δικτύου. Κάθε συλλογή πρέπει υποχρεωτικά να υποστηρίζει: 19

20 (1) μια ιδιότητα με όνομα count, η οποία επιστρέφει το πλήθος των αντικειμένων της συλλογής. Η ιδιότητα αυτή είναι τύπου read-only (επιτρέπει πρόσβαση μόνο για ανάγνωση), πράγμα που σημαίνει ότι οι πελάτες μπορούν μόνο να διαβάσουν την τιμή της αλλά όχι και να την αλλάξουν. (2) μια μέθοδο με όνομα item, η οποία επιστρέφει ένα από τα αντικείμενα της συλλογής. Η μέθοδος αυτή χρειάζεται πάντα ως παράμετρο εισόδου έναν αριθμό, που δηλώνει τη θέση του αντικειμένου, που θέλουμε να ανακτήσουμε. Αν δηλαδή θέλουμε το πρώτο αντικείμενο της συλλογής δίνουμε item(1), αν θέλουμε το δεύτερο δίνουμε item(2), κ.ο.κ. Οι περισσότερες συλλογές έχουν ακόμη μια μέθοδο με όνομα add (ή μερικές φορές additem), η οποία δημιουργεί ένα νέο αντικείμενο και το προσθέτει στο τέλος της συλλογής. Η μέθοδος αυτή, αν και πολύ σημαντική, δεν είναι υποχρεωτική σύμφωνα με τις προδιαγραφές της τεχνολογίας Automation. Πρόσβαση στις συλλογές αποκτάμε συνήθως μέσω μιας ιδιότητας τύπου readonly ή μέσω μιας μεθόδου, που μας επιστρέφει μια συλλογή. Για παράδειγμα, to αντικείμενο Excel.Application έχει μια ιδιότητα read-only με όνομα Workbooks, η τιμή της οποίας είναι μια συλλογή από αντικείμενα Workbook 21, καθένα από τα οποία αντιστοιχεί σε ένα ανοιχτό αρχείο Excel. Έτσι, αν η μεταβλητή a έχει ως τιμή ένα αντικείμενο Excel.Application, η εντολή n = a.workbooks.count γράφει στη μεταβλητή n το πλήθος των αρχείων Excel, που έχουμε ανοίξει. Η εντολή s = a.workbooks.item(1).fullname μεταφέρει στη μεταβλητή s την τιμή της ιδιότητας FullName του πρώτου από τα αντικείμενα Workbook της συλλογής (το όνομα του πρώτου από τα αρχεία Excel, που έχουμε ανοίξει) ενώ η εντολή a.workbooks.item(2).close καλεί τη μέθοδο Close στο δεύτερο από τα αντικείμενα Workbook της συλλογής (κλείνει δηλαδή το δεύτερο από τα αρχεία Excel, που έχουμε ανοίξει). Παραδείγματα μεθόδων, που επιστρέφουν συλλογές θα δούμε στην ενότητα 1.8.3, σε συνδυασμό με την τεχνολογία OPC. 1.6 ActiveX Ο όρος ActiveX πρωτοχρησιμοποιήθηκε από τη Microsoft το 1995, όταν η εταιρεία αποφάσισε να στρέψει την προσοχή της στο διαδίκτυο. Τότε η Microsoft χαρακτήρισε ως ActiveX μια ολόκληρη οικογένεια από τεχνολογίες, που σκοπό είχαν να κάνουν τις διαδικτυακές εφαρμογές και ειδικώτερα τις εφαρμογές του παγκόσμιου ιστού (World Wide Web) περισσότερο διαδραστικές (interactive). Η πιο γνωστή από 21 Η κλάση Workbook είναι μια ακόμη από τις κλάσεις, που χρησιμοποιούνται στο Excel. Παριστάνει ένα αρχείο Excel, το οποίο έχουμε ανοίξει. Από το αντικείμενο αυτό χρησιμοποιούμε εδώ μόνο την ιδιότητα FullName, η οποία μας επιστρέφει το πλήρες όνομα του αρχείου και τη μέθοδο Close, η οποία κλείνει το αρχείο. Πλήρης περιγραφή όλων των ιδιοτήτων και των μεθόδων του αντικειμένου υπάρχει στα εγχειρίδια και τα Help files του Excel. 20

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

ΠΟΛΥΤΕΧΝΕΙΟ ΚΡΗΤΗΣ ΤΜΗΜΑ ΜΗΧΑΝΙΚΩΝ ΠΑΡΑΓΩΓΗΣ ΚΑΙ ΔΙΟΙΚΗΣΗΣ ΠΟΛΥΤΕΧΝΕΙΟ ΚΡΗΤΗΣ ΤΜΗΜΑ ΜΗΧΑΝΙΚΩΝ ΠΑΡΑΓΩΓΗΣ ΚΑΙ ΔΙΟΙΚΗΣΗΣ ΤΗΛΕΜΕΤΡΙΑ ΚΑΙ ΑΠΟΜΑΚΡΥΣΜΕΝΟΣ ΕΛΕΓΧΟΣ ΣΕ ΣΥΣΤΗΜΑΤΑ ΑΥΤΟΜΑΤΟΥ ΕΛΕΓΧΟΥ ΜΕ ΧΡΗΣΗ ΥΠΗΡΕΣΙΩΝ ΔΙΑΔΙΚΤΥΟΥ Web-Based OPC Client ΔΙΠΛΩΜΑΤΙΚΗ ΕΡΓΑΣΙΑ του

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

Αρχιτεκτονική του πληροφοριακού συστήµατος Cardisoft Γραµµατεία 2003 ιαχείριση Προσωπικού

Αρχιτεκτονική του πληροφοριακού συστήµατος Cardisoft Γραµµατεία 2003 ιαχείριση Προσωπικού Αρχιτεκτονική του πληροφοριακού συστήµατος Cardisoft Γραµµατεία 2003 ιαχείριση Προσωπικού Γενικά Η αρχιτεκτονική ανάπτυξης τους πληροφοριακού συστήµατος Γραµµατεία 2000 υποσύστηµα διαχείρισης προσωπικού

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

Προγραμματισμός ΙI (Θ)

Προγραμματισμός ΙI (Θ) Τεχνολογικό Εκπαιδευτικό Ίδρυμα Κεντρικής Μακεδονίας - Σέρρες Τμήμα Μηχανικών Πληροφορικής Προγραμματισμός ΙI (Θ) Δρ. Δημήτρης Βαρσάμης Επίκουρος Καθηγητής Μάρτιος 2017 Δρ. Δημήτρης Βαρσάμης Μάρτιος 2017

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

Υπολογιστικά Συστήματα

Υπολογιστικά Συστήματα Υπολογιστικά Συστήματα Ενότητα 3: Βασικά στοιχεία της γλώσσας προγραμματισμού Visual Basic for Applications (VBA) Σαπρίκης Ευάγγελος Τμήμα Διοίκησης Επιχειρήσεων (Γρεβενά) Άδειες Χρήσης Το παρόν εκπαιδευτικό

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

ΚΕΦΑΛΑΙΟ 10 ΥΠΟΠΡΟΓΡΑΜΜΑΤΑ

ΚΕΦΑΛΑΙΟ 10 ΥΠΟΠΡΟΓΡΑΜΜΑΤΑ ΚΕΦΑΛΑΙΟ 10 Όπως είδαμε και σε προηγούμενο κεφάλαιο μια από τις βασικότερες τεχνικές στον Δομημένο Προγραμματισμό είναι ο Τμηματικός Προγραμματισμός. Τμηματικός προγραμματισμός ονομάζεται η τεχνική σχεδίασης

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

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

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

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

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

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

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

Συντάχθηκε απο τον/την Administrator Δευτέρα, 22 Φεβρουάριος :11 - Τελευταία Ενημέρωση Παρασκευή, 26 Φεβρουάριος :52

Συντάχθηκε απο τον/την Administrator Δευτέρα, 22 Φεβρουάριος :11 - Τελευταία Ενημέρωση Παρασκευή, 26 Φεβρουάριος :52 «Εκτέλεση Αλγορίθμων σε ψευδογλώσσα μέσα στο Word και στο Excel» (κατέβασμα του αρχείου algori8mos.zip ) ΠΕΡΙΛΗΨΗ Ενώ ο μαθητής μπορεί να μάθει την λειτουργία των εντολών της ψευδογλώσσας και να τις χρησιμοποιήσει

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

Aρχές Σπονδυλωτού Προγραµµατισµού σε Kατανεµηµένα Συστήµατα. Kεφάλαιο Έξη - Συνδετικά Kριτήρια Aντικειµένων και Συστατικών

Aρχές Σπονδυλωτού Προγραµµατισµού σε Kατανεµηµένα Συστήµατα. Kεφάλαιο Έξη - Συνδετικά Kριτήρια Aντικειµένων και Συστατικών Kεφάλαιο Έξη - Συνδετικά Kριτήρια Aντικειµένων και Συστατικών 1 6.1 Προέλευση H διαλειτουργικότητα του λογισµικού περιοριζόταν στην κλήση συνθηκών στο επίπεδο διεργασιών. Κανένα λειτουργικό δεν υποστήριζε

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

1 η Εργαστηριακή Άσκηση MATLAB Εισαγωγή

1 η Εργαστηριακή Άσκηση MATLAB Εισαγωγή ΤΕΧΝΟΛΟΓΙΚΟ ΕΚΠΑΙΔΕΥΤΙΚΟ ΙΔΡΥΜΑ ΗΠΕΙΡΟΥ ΤΜΗΜΑ ΜΗΧΑΝΙΚΩΝ ΠΛΗΡΟΦΟΡΙΚΗΣ Τ.Ε. Εργαστήριο Επεξεργασία Εικόνας & Βίντεο 1 η Εργαστηριακή Άσκηση MATLAB Εισαγωγή Νικόλαος Γιαννακέας Άρτα 2018 1 Εισαγωγή Το Matlab

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

Περιεχόμενα. Κεφάλαιο 1 Γνωριμία με το Excel... 9

Περιεχόμενα. Κεφάλαιο 1 Γνωριμία με το Excel... 9 Περιεχόμενα Κεφάλαιο 1 Γνωριμία με το Excel... 9 Τα στοιχεία του παραθύρου του Excel... 10 Κελιά και διευθύνσεις... 13 Σε ποιο κελί θα τοποθετηθούν τα δεδομένα;... 14 Καταχώριση δεδομένων... 15 Τι καταλαβαίνει

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

Περιεχόμενα. Κεφάλαιο 1 Γνωριμία με το Excel...9

Περιεχόμενα. Κεφάλαιο 1 Γνωριμία με το Excel...9 Περιεχόμενα Κεφάλαιο 1 Γνωριμία με το Excel...9 Τα στοιχεία του παραθύρου του Excel... 10 Κελιά και διευθύνσεις... 13 Σε ποιο κελί θα τοποθετηθούν τα δεδομένα;... 14 Καταχώριση δεδομένων... 15 Τι καταλαβαίνει

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

Ράβδος Εργαλείων, σχεδόν τα ίδια εργαλεία και εικονίδια υπάρχουν όπως στα άλλα προγράμματα που έχετε μάθει μέχρι σήμερα.

Ράβδος Εργαλείων, σχεδόν τα ίδια εργαλεία και εικονίδια υπάρχουν όπως στα άλλα προγράμματα που έχετε μάθει μέχρι σήμερα. Σαχπατζίδης Αβραάμ Καθηγητής Πληροφορικής Π.Ε 20 Master of Arts (M.A) in "Gender, New Forms of Education, New Forms of Employment and New Technologies in the Information Age". Η Γλώσσα Προγραμματισμού

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

Microsoft Excel Κεφάλαιο 1. Εισαγωγή. Βιβλίο εργασίας

Microsoft Excel Κεφάλαιο 1. Εισαγωγή. Βιβλίο εργασίας Περιεχόμενα Κεφάλαιο 1 Microsoft Excel 2010... 7 Κεφάλαιο 2 Η δομή ενός φύλλου εργασίας... 19 Κεφάλαιο 3 ημιουργία νέου βιβλίου εργασίας και καταχώριση δεδομένων... 24 Κεφάλαιο 4 Συμβουλές για την καταχώριση

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

Εισαγωγή στην Access 2007

Εισαγωγή στην Access 2007 Βάσεις Δεδομένων Ι 3 Εισαγωγή στην Access 2007 Τμήμα Διοίκησης Επιχειρήσεων (Μεσολόγγι) ΤΕΙ Δυτικής Ελλάδας ΝΙΚΟΣ ΚΑΡΟΥΣΟΣ - ΔΙΟΝΥΣΗΣ ΚΑΡΟΥΣΟΣ XE 2015-2016 Βάση Δεδομένων και Access Ένα οργανωμένο σύνολο

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

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

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

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

Πανεπιστήμιο Δυτικής Μακεδονίας. Τμήμα Μηχανικών Πληροφορικής & Τηλεπικοινωνιών. Ηλεκτρονική Υγεία. Εργαστήριο 4 ο : MATLAB

Πανεπιστήμιο Δυτικής Μακεδονίας. Τμήμα Μηχανικών Πληροφορικής & Τηλεπικοινωνιών. Ηλεκτρονική Υγεία. Εργαστήριο 4 ο : MATLAB Τμήμα Μηχανικών Πληροφορικής & Τηλεπικοινωνιών Ηλεκτρονική Υγεία Εργαστήριο 4 ο : MATLAB Αν. καθηγητής Αγγελίδης Παντελής e-mail: paggelidis@uowm.gr Τμήμα Μηχανικών Πληροφορικής και Τηλεπικοινωνιών Άδειες

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

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

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

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

Πρόλογος... 7 ΕΙΔΙΚΟΣ ΕΦΑΡΜΟΓΩΝ ΠΛΗΡΟΦΟΡΙΚΗΣ

Πρόλογος... 7 ΕΙΔΙΚΟΣ ΕΦΑΡΜΟΓΩΝ ΠΛΗΡΟΦΟΡΙΚΗΣ ΠΕΡΙΕΧΟΜΕΝΑ Πρόλογος... 7 ΕΙΔΙΚΟΣ ΕΦΑΡΜΟΓΩΝ ΠΛΗΡΟΦΟΡΙΚΗΣ ΘΕΜΑΤΙΚΗ ΕΝΟΤΗΤΑ Α Δομή και λειτουργία προσωπικού υπολογιστή...11 ΘΕΜΑΤΙΚΗ ΕΝΟΤΗΤΑ Β Δομή και χρήση λειτουργικών συστημάτων DOS, UNIX και λειτουργικού

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

Κεφάλαιο 14: Συμβουλές προς έναν νέο προγραμματιστή

Κεφάλαιο 14: Συμβουλές προς έναν νέο προγραμματιστή Κεφάλαιο 14: Συμβουλές προς έναν νέο προγραμματιστή Φτάσαμε σιγά σιγά στο τέλος του βιβλίου. Αντί για κάποιον επίλογο σκέφτηκα να συλλέξω κάποια πράγματα που θα ήθελα να πω σε κάποιον ο οποίος αρχίζει

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

ΥΠΟΠΡΟΓΡΑΜΜΑΤΑ. Κάθε υποπρόγραμμα έχει μόνο μία είσοδο και μία έξοδο. Κάθε υποπρόγραμμα πρέπει να είναι ανεξάρτητο από τα άλλα.

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

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

Συνοπτικό εγχειρίδιο χρήσης του Microsoft Visual Studio 2010

Συνοπτικό εγχειρίδιο χρήσης του Microsoft Visual Studio 2010 Τμήμα Πληροφορικής & Επικοινωνιών Τομέας Υπολογιστικών Τεχνικών & Συστημάτων Συνοπτικό εγχειρίδιο χρήσης του Microsoft Visual Studio 2010 Ιωάννης Γεωργουδάκης - Πάρις Μαστοροκώστας Σεπτέμβριος 2011 ΠΕΡΙΕΧΟΜΕΝΑ

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

Σενάριο 17: Παιχνίδι μνήμης με εικόνες

Σενάριο 17: Παιχνίδι μνήμης με εικόνες Σενάριο 17: Παιχνίδι μνήμης με εικόνες Φύλλο Εργασίας Τίτλος: Παιχνίδι μνήμης με εικόνες Γνωστικό Αντικείμενο: Εφαρμογές Πληροφορικής-Υπολογιστών Διδακτική Ενότητα: Διερευνώ - Δημιουργώ Ανακαλύπτω, Συνθετικές

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

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

Κεφάλαιο 10 ο Υποπρογράµµατα Κεφάλαιο 10 ο Υποπρογράµµατα Ανάπτυξη Εφαρµογών σε Προγραµµατιστικό Περιβάλλον Η αντιµετώπιση των σύνθετων προβληµάτων και η ανάπτυξη των αντίστοιχων προγραµµάτων µπορεί να γίνει µε την ιεραρχική σχεδίαση,

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

Περιεχόμενα. Κεφάλαιο 1 Εισαγωγή στην Access Κεφάλαιο 2 Χειρισμός πινάκων... 27

Περιεχόμενα. Κεφάλαιο 1 Εισαγωγή στην Access Κεφάλαιο 2 Χειρισμός πινάκων... 27 Περιεχόμενα Κεφάλαιο 1 Εισαγωγή στην Access... 9 Γνωριμία με την Access... 12 Δημιουργία βάσης δεδομένων... 22 Άνοιγμα και κλείσιμο βάσης δεδομένων... 24 Ερωτήσεις ανακεφαλαίωσης... 25 Πρακτική εξάσκηση...

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

Επικοινωνία Client/Server Απομακρυσμένη Κλήση Διαδικασιών

Επικοινωνία Client/Server Απομακρυσμένη Κλήση Διαδικασιών Επικοινωνία Client/Server Απομακρυσμένη Κλήση Διαδικασιών Χάρης Μανιφάβας Τμήμα Εφ. Πληροφορικής & Πολυμέσων ΤΕΙ Κρήτης Επικοινωνία -RPC 1 Υλοποίηση RPC Προκειμένου να επιτευχθεί διαφάνεια στην κλήση RPC,

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

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

ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ ΕΠΙΜΕΛΕΙΑ: ΜΑΡΙΑ Σ. ΖΙΩΓΑ ΚΑΘΗΓΗΤΡΙΑ ΠΛΗΡΟΦΟΡΙΚΗΣ ΘΕΩΡΙΑ 10 ΟΥ ΚΕΦΑΛΑΙΟΥ ΥΠΟΠΡΟΓΡΑΜΜΑΤΑ 1. Πως ορίζεται ο τμηματικός προγραμματισμός; Τμηματικός προγραμματισμός

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

Περιεχόμενα. Κεφάλαιο 1 Εισαγωγή στην Access...9. Κεφάλαιο 2 Χειρισμός πινάκων... 25

Περιεχόμενα. Κεφάλαιο 1 Εισαγωγή στην Access...9. Κεφάλαιο 2 Χειρισμός πινάκων... 25 Περιεχόμενα Κεφάλαιο 1 Εισαγωγή στην Access...9 Γνωριμία με την Access... 12 Δημιουργία βάσης δεδομένων... 18 Άνοιγμα και κλείσιμο βάσης δεδομένων... 21 Ερωτήσεις ανακεφαλαίωσης... 22 Πρακτική εξάσκηση...

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

ΕΡΓΑΣΙΑ ΣΤΟ ΜΑΘΗΜΑ ΤΗΣ ΠΛΗΡΟΦΟΡΙΚΗΣ

ΕΡΓΑΣΙΑ ΣΤΟ ΜΑΘΗΜΑ ΤΗΣ ΠΛΗΡΟΦΟΡΙΚΗΣ ΕΡΓΑΣΙΑ ΣΤΟ ΜΑΘΗΜΑ ΤΗΣ ΠΛΗΡΟΦΟΡΙΚΗΣ ΟΝΟΜΑ: Άννα-Μαρία Παδιού Τάξη:Α 2 Σχολ.έτος:2015-16 Σχολείο:9 ο Γυμνάσιο Τρικάλων Υπεύθυνος καθηγητής: Μπουλογεώργος Στέφανος Το γραφικό περιβάλλον Επικοινωνίας (Γ.Π.Ε)

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

4/2014 ΣΥΝΟΠΤΙΚΗ ΠΑΡΟΥΣΙΑΣΗ ΥΔΡΟΛΗΨΙΕΣ ΑΤΤΙΚΗΣ ΑΠΟΚΕΝΤΡΩΜΕΝΗ ΔΙΟΙΚΗΣΗ ΑΤΤΙΚΗΣ ΔΙΕΥΘΥΝΣΗ ΠΛΗΡΟΦΟΡΙΚΗΣ ΚΑΙ ΕΠΙΚΟΙΝΩΝΙΩΝ

4/2014 ΣΥΝΟΠΤΙΚΗ ΠΑΡΟΥΣΙΑΣΗ ΥΔΡΟΛΗΨΙΕΣ ΑΤΤΙΚΗΣ ΑΠΟΚΕΝΤΡΩΜΕΝΗ ΔΙΟΙΚΗΣΗ ΑΤΤΙΚΗΣ ΔΙΕΥΘΥΝΣΗ ΠΛΗΡΟΦΟΡΙΚΗΣ ΚΑΙ ΕΠΙΚΟΙΝΩΝΙΩΝ 4/2014 ΣΥΝΟΠΤΙΚΗ ΠΑΡΟΥΣΙΑΣΗ ΥΔΡΟΛΗΨΙΕΣ ΑΤΤΙΚΗΣ ΑΠΟΚΕΝΤΡΩΜΕΝΗ ΔΙΟΙΚΗΣΗ ΑΤΤΙΚΗΣ ΔΙΕΥΘΥΝΣΗ ΠΛΗΡΟΦΟΡΙΚΗΣ ΚΑΙ ΕΠΙΚΟΙΝΩΝΙΩΝ ΥΔΡΟΛΗΨΙΕΣ ΑΤΤΙΚΗΣ Η εφαρμογή "Υδροληψίες Αττικής" είναι ένα πληροφοριακό σύστημα (αρχιτεκτονικής

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

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

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

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

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

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

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

Atlantis - Νέο user interface

Atlantis - Νέο user interface New Desktop 1 Atlantis - Νέο user interface ATLANTIS - ΝΕΟ USER INTERFACE... 2 ΓΕΝΙΚΗ ΠΑΡΟΥΣΙΑΣΗ... 3 ΓΡΑΜΜΗ ΣΥΣΤΗΜΑΤΟΣ... 4 ΜΠΑΡΑ ΧΡΗΣΤΗ (USER TOOLBAR)... 5 ΚΕΝΤΡΙΚΟ ΜΕΝΟΥ ΤΟΥ ΣΥΣΤΗΜΑΤΟΣ... 6 Κεντρικό

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

ΠΛΗΡΟΦΟΡΙΚΗ Ι Εργαστήριο 1 MATLAB ΠΛΗΡΟΦΟΡΙΚΗ Ι ΕΡΓΑΣΤΗΡΙΟ 1. Θέμα εργαστηρίου: Εισαγωγή στο MATLAB και στο Octave

ΠΛΗΡΟΦΟΡΙΚΗ Ι Εργαστήριο 1 MATLAB ΠΛΗΡΟΦΟΡΙΚΗ Ι ΕΡΓΑΣΤΗΡΙΟ 1. Θέμα εργαστηρίου: Εισαγωγή στο MATLAB και στο Octave ΠΛΗΡΟΦΟΡΙΚΗ Ι ΕΡΓΑΣΤΗΡΙΟ 1 Θέμα εργαστηρίου: Εισαγωγή στο MATLAB και στο Octave Περιεχόμενο εργαστηρίου: - Το περιβάλλον ανάπτυξης προγραμμάτων Octave - Διαδικασία ανάπτυξης προγραμμάτων MATLAB - Απλά

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

Σχεδιάζοντας Εφαρμογές για το Διαδίκτυο

Σχεδιάζοντας Εφαρμογές για το Διαδίκτυο Το περιβάλλον εργασίας Ανοίγοντας την Ελληνική Έκδοση του FrontPage, για πρώτη φορά, η εικόνα που θα συναντήσουμε είναι αυτή της Εικόνας 1 με τα Μενού Εντολών και τη Γραμμή Εργαλείων, στο πάνω μέρος της

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

ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ Η/Υ. Ενότητα: Εισαγωγή ΚΥΡΟΠΟΥΛΟΣ ΚΩΝΣΤΑΝΤΙΝΟΣ. Τμήμα Διοίκηση Επιχειρήσεων (Κοζάνη)

ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ Η/Υ. Ενότητα: Εισαγωγή ΚΥΡΟΠΟΥΛΟΣ ΚΩΝΣΤΑΝΤΙΝΟΣ. Τμήμα Διοίκηση Επιχειρήσεων (Κοζάνη) ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ Η/Υ Ενότητα: Εισαγωγή ΚΥΡΟΠΟΥΛΟΣ ΚΩΝΣΤΑΝΤΙΝΟΣ Τμήμα Διοίκηση Επιχειρήσεων (Κοζάνη) Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative Commons. Για εκπαιδευτικό

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

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

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

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

Θερμοδυναμική - Εργαστήριο

Θερμοδυναμική - Εργαστήριο Θερμοδυναμική - Εργαστήριο Ενότητα 2: Εισαγωγή σε έννοιες προγραμματισμού με υπολογιστή Κυρατζής Νικόλαος Τμήμα Μηχανικών Περιβάλλοντος και Μηχανικών Αντιρρύπανσης ΤΕ Άδειες Χρήσης Το παρόν εκπαιδευτικό

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

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

Κεφάλαιο 6 Λογισμικό Εφαρμογών. Εφαρμογές Πληροφορικής Κεφ.6 Καραμαούνας Πολύκαρπος 1 Κεφάλαιο 6 Λογισμικό Εφαρμογών Καραμαούνας Πολύκαρπος 1 Λογισμικό Εφαρμογών (application software) Είναι όλα τα προγράμματα που μετατρέπουν τον ΗΥ σε εξειδικευμένο μηχάνημα για συκεκριμένες εργασίες. Περιέχει

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

Σχεδιάζοντας Εφαρμογές για το Διαδίκτυο

Σχεδιάζοντας Εφαρμογές για το Διαδίκτυο FrontPage 2003 Πρακτικός Οδηγός Χρήσης Το FrontPage είναι ένα πρόγραμμα δημιουργίας ιστοσελίδων και δικτυακών τόπων που επιτρέπει το σχεδιασμό ιστοσελίδων μέσα από γραφικό περιβάλλον αλλά και την ταυτόχρονη

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

3ο σετ σημειώσεων - Πίνακες, συμβολοσειρές, συναρτήσεις

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

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

POWERPOINT 2003. Είναι το δημοφιλέστερο πρόγραμμα παρουσιάσεων.

POWERPOINT 2003. Είναι το δημοφιλέστερο πρόγραμμα παρουσιάσεων. POWERPOINT 2003 1. Τι είναι το PowerPoint (ppt)? Είναι το δημοφιλέστερο πρόγραμμα παρουσιάσεων. 2. Τι δυνατότητες έχει? Δημιουργία παρουσίασης. Μορφοποίηση παρουσίασης. Δημιουργία γραφικών. Δημιουργία

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

Γ) Χρήση Λογισμικού για την υλοποίηση πρακτικών εφαρμογών της Ασαφούς Λογικής

Γ) Χρήση Λογισμικού για την υλοποίηση πρακτικών εφαρμογών της Ασαφούς Λογικής Γ) Χρήση Λογισμικού για την υλοποίηση πρακτικών εφαρμογών της Ασαφούς Λογικής Η διαδικασία δόμησης εφαρμογών γίνεται με τη χρήση γλωσσών προγραμματισμού όπως η C, η Pascal, η Basic ή με τη χρήση άλλων

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

3 ο Εργαστήριο Μεταβλητές, Τελεστές

3 ο Εργαστήριο Μεταβλητές, Τελεστές 3 ο Εργαστήριο Μεταβλητές, Τελεστές Μια μεταβλητή έχει ένα όνομα και ουσιαστικά είναι ένας δείκτης σε μια συγκεκριμένη θέση στη μνήμη του υπολογιστή. Στη θέση μνήμης στην οποία δείχνει μια μεταβλητή αποθηκεύονται

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

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

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

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

Η Υλοποίηση της Επικοινωνίας. Κατανεµηµένα Συστήµατα

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

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

Διαφορές single-processor αρχιτεκτονικών και SoCs

Διαφορές single-processor αρχιτεκτονικών και SoCs 13.1 Τα συστήματα και η επικοινωνία μεταξύ τους γίνονται όλο και περισσότερο πολύπλοκα. Δεν μπορούν να περιγραφούνε επαρκώς στο επίπεδο RTL καθώς αυτή η διαδικασία γίνεται πλέον αρκετά χρονοβόρα. Για αυτό

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

Προγραμματισμός Διαχείρισης Συστημάτων Ι

Προγραμματισμός Διαχείρισης Συστημάτων Ι Προγραμματισμός Διαχείρισης Συστημάτων Ι Μάθημα 7ο X Window System Μιχαηλίδης Παναγιώτης Tι είναι παραθυρικό σύστημα; Ένα παραθυρικό σύστημα (window system) είναι μια γραφική διεπαφή χρήστη (Graphical

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

Visual Flowchart Γενικά

Visual Flowchart Γενικά Visual Flowchart 3.020 -Γενικά Το Visual Flowchart ή «Data-Flow Visual Programming Language 3.020» (http://www. emu8086.com/fp) είναι ένα περιβάλλον ανάπτυξης και εκτέλεσης αλγορίθμων απευθείας σε μορφή

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

ΑΝΤΙΓΡΑΦΗ ΑΡΧΕΙΟΥ ΣΕ ΔΙΣΚΕΤΑ ΑΝΤΙΓΡΑΦΗ ΑΡΧΕΙΟΥ ΑΠΟ ΔΙΣΚΕΤΑ. Από τον κατάλογο που εμφανίζεται επιλέγω: Αποστολή προς Δισκέτα (3,5)

ΑΝΤΙΓΡΑΦΗ ΑΡΧΕΙΟΥ ΣΕ ΔΙΣΚΕΤΑ ΑΝΤΙΓΡΑΦΗ ΑΡΧΕΙΟΥ ΑΠΟ ΔΙΣΚΕΤΑ. Από τον κατάλογο που εμφανίζεται επιλέγω: Αποστολή προς Δισκέτα (3,5) ΑΝΤΙΓΡΑΦΗ ΑΡΧΕΙΟΥ ΣΕ ΔΙΣΚΕΤΑ ΑΝΤΙΓΡΑΦΗ ΑΡΧΕΙΟΥ ΑΠΟ ΔΙΣΚΕΤΑ Τοποθετώ μια δισκέτα στον οδηγό τη δισκέτας του υπολογιστή. Τοποθετώ τη δισκέτα που έχει το αρχείο μου στον οδηγό τη δισκέτας του υπολογιστή.

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

Τυπικές χρήσεις της Matlab

Τυπικές χρήσεις της Matlab Matlab Μάθημα 1 Τι είναι η Matlab Ολοκληρωμένο Περιβάλλον Περιβάλλον ανάπτυξης Διερμηνευμένη γλώσσα Υψηλή επίδοση Ευρύτητα εφαρμογών Ευκολία διατύπωσης Cross platform (Wintel, Unix, Mac) Τυπικές χρήσεις

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

Περιεχόμενα. Μέρος 1: Βασικές έννοιες Πληροφορικής και επικοινωνιών Μέρος 2: Χρήση υπολογιστή και διαχείριση αρχείων Πρόλογος...

Περιεχόμενα. Μέρος 1: Βασικές έννοιες Πληροφορικής και επικοινωνιών Μέρος 2: Χρήση υπολογιστή και διαχείριση αρχείων Πρόλογος... Περιεχόμενα Πρόλογος...11 Μέρος 1: Βασικές έννοιες Πληροφορικής και επικοινωνιών... 13 1.1 Εισαγωγή στους υπολογιστές... 15 1.2 Μονάδες μέτρησης... 27 1.3 Οι βασικές λειτουργίες ενός ηλεκτρονικού υπολογιστή...

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

Περιεχόμενα ΓΕΩΠΥΛΗ ΟΔΗΓΙΕΣ ΧΡΗΣΗΣ ΚΕΝΤΡΙΚΟ SITE. ΧΑΡΤΗΣ... 2 Είσοδος στην εφαρμογή «Χάρτης»... 2 Λειτουργίες εφαρμογής «Χάρτης»...

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

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

Προγραμματισμός Η/Υ (ΤΛ2007 )

Προγραμματισμός Η/Υ (ΤΛ2007 ) Τμήμα Ηλεκτρονικών Μηχανικών Τ.Ε.Ι. Κρήτης Προγραμματισμός Η/Υ (ΤΛ2007 ) Δρ. Μηχ. Νικόλαος Πετράκης (npet@chania.teicrete.gr) Ιστοσελίδα Μαθήματος: https://eclass.chania.teicrete.gr/ Εξάμηνο: Εαρινό 2015-16

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

αντίστοιχο γεγονός. Όταν όντως το κουμπί

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

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

Κατανεμημένα Συστήματα

Κατανεμημένα Συστήματα Κατανεμημένα Συστήματα Σημειώσεις εργαστηρίου Lab#7 - Διεργασίες, Nήματα, Πολυνημάτωση στη Python Νεβράντζας Βάιος-Γερμανός Λάρισα, Φεβρουάριος 2013 Lab#7 - Διεργασιές, Νη ματα, Πολυνημα τωση στη Python,

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

Το λειτουργικό σύστημα. Προγραμματισμός II 1

Το λειτουργικό σύστημα. Προγραμματισμός II 1 Το λειτουργικό σύστημα Προγραμματισμός II 1 lalis@inf.uth.gr Συστήματα υπολογιστών Ειδικού σκοπού συστήματα για μια συγκεκριμένη εφαρμογή η εφαρμογή είναι γνωστή εκ των προτέρων περιορισμένοι υπολογιστικοί

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

Σχεδιαστικά Προγράμματα Επίπλου

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

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

ΤΕΙ ΚΑΒΑΛΑΣ. Πτυχιακή εργασία ΕΙΣΑΓΩΓΗ. Μιλτιάδης Κακλαμάνης

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

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

ΜΕΤΑΦΟΡΑ ΑΡΧΕΙΩΝ FTP

ΜΕΤΑΦΟΡΑ ΑΡΧΕΙΩΝ FTP ΜΕΤΑΦΟΡΑ ΑΡΧΕΙΩΝ FTP Το FTP (File Transfer Protocol) είναι το εξειδικευμένο πρωτόκολλο μεταφοράς αρχείων στα σύγχρονα δίκτυα δεδομένων όπως το Διαδίκτυο. Δίνει τη δυνατότητα μεταφοράς αρχείων από τον υπολογιστή

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

Ενημέρωση σε Windows 8.1 από τα Windows 8

Ενημέρωση σε Windows 8.1 από τα Windows 8 Ενημέρωση σε Windows 8.1 από τα Windows 8 Τα Windows 8.1 και τα Windows RT 8.1 είναι βασισμένα στα Windows 8 και στα Windows RT, για να σας προσφέρουν βελτιώσεις στην εξατομίκευση, την αναζήτηση, τις εφαρμογές,

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

Αυτοματισμοί και Συστήματα Αυτομάτου Ελέγχου. Ενότητα 2

Αυτοματισμοί και Συστήματα Αυτομάτου Ελέγχου. Ενότητα 2 Αυτοματισμοί και Συστήματα Αυτομάτου Ελέγχου Ενότητα 2 Τι είναι το PLC ΠΕΡΙΕΧΟΜΕΝΑ 2 Τι είναι το PLC. 2.1 Πλεονεκτήματα των PLC. 2.2 Η δομή ενός PLC. 2.3 Τα PLC της αγοράς. 2.4 Αρχή λειτουργίας ενός PLC.

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

Δομημένος Προγραμματισμός (ΤΛ1006)

Δομημένος Προγραμματισμός (ΤΛ1006) Τεχνολογικό Εκπαιδευτικό Ίδρυμα Κρήτης Σχολή Εφαρμοσμένων Επιστημών Τμήμα Ηλεκτρονικών Μηχανικών Τομέας Αυτοματισμού και Πληροφορικής Δομημένος Προγραμματισμός (ΤΛ1006) Δρ. Μηχ. Νικόλαος Πετράκης, Καθηγητής

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

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

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

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

Οι νεότερες εξελίξεις στον GM EPC

Οι νεότερες εξελίξεις στον GM EPC Οι νεότερες εξελίξεις στον GM EPC Πλοήγηση με χρήση γραφικών στοιχείων Ο κατάλογος επόμενης γενιάς GM Next Gen EPC διαθέτει διάφορες λειτουργίες που έχουν σχεδιαστεί για ταχύτερη και ευκολότερη εύρεση

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

53 Χρόνια ΦΡΟΝΤΙΣΤΗΡΙΑ ΜΕΣΗΣ ΕΚΠΑΙΔΕΥΣΗΣ Σ Α Β Β Α Ϊ Δ Η Μ Α Ν Ω Λ Α Ρ Α Κ Η

53 Χρόνια ΦΡΟΝΤΙΣΤΗΡΙΑ ΜΕΣΗΣ ΕΚΠΑΙΔΕΥΣΗΣ Σ Α Β Β Α Ϊ Δ Η Μ Α Ν Ω Λ Α Ρ Α Κ Η 53 Χρόνια ΦΡΟΝΤΙΣΤΗΡΙΑ ΜΕΣΗΣ ΕΚΠΑΙΔΕΥΣΗΣ Σ Α Β Β Α Ϊ Δ Η Μ Α Ν Ω Λ Α Ρ Α Κ Η ΠΑΓΚΡΑΤΙ: Φιλολάου & Εκφαντίδου 26 : 210/76.01.470 210/76.00.179 ΘΕΜΑ Α Α1. Να γράψετε στο τετράδιό σας τον αριθμό καθεμιάς

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

Σκοπός. Εργαστήριο 6 Εντολές Επανάληψης

Σκοπός. Εργαστήριο 6 Εντολές Επανάληψης Εργαστήριο 6 Εντολές Επανάληψης Η δομή Επιλογής στη PASCAL H δομή Επανάληψης στη PASCAL. Ρεύμα Εισόδου / Εξόδου.. Ρεύμα Εισόδου / Εξόδου. To πρόγραμμα γραφικών gnuplot. Γραφικά στη PASCAL. Σκοπός 6.1 ΕΠΙΔΙΩΞΗ

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

Αρχιτεκτονικές κατανεμημένων συστημάτων. I. Sommerville 2006 Βασικές αρχές Τεχνολογίας Λογισμικού, 8η αγγ. έκδοση Κεφ. 12

Αρχιτεκτονικές κατανεμημένων συστημάτων. I. Sommerville 2006 Βασικές αρχές Τεχνολογίας Λογισμικού, 8η αγγ. έκδοση Κεφ. 12 Αρχιτεκτονικές κατανεμημένων συστημάτων Στόχοι Εξήγηση των πλεονεκτημάτων και των μειονεκτημάτων των αρχιτεκτονικών κατανεμημένων συστημάτων Εξέταση των αρχιτεκτονικών συστημάτων πελάτηδιακομιστή και των

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

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

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

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

Αρχιτεκτονικές κατανεμημένων συστημάτων. I. Sommerville 2006 Βασικές αρχές Τεχνολογίας Λογισμικού, 8η αγγ. έκδοση Κεφ. 12

Αρχιτεκτονικές κατανεμημένων συστημάτων. I. Sommerville 2006 Βασικές αρχές Τεχνολογίας Λογισμικού, 8η αγγ. έκδοση Κεφ. 12 Αρχιτεκτονικές κατανεμημένων συστημάτων Στόχοι Εξήγηση των πλεονεκτημάτων και των μειονεκτημάτων των αρχιτεκτονικών κατανεμημένων συστημάτων Εξέταση των αρχιτεκτονικών συστημάτων πελάτηδιακομιστή και των

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

Ανάπτυξη & Σχεδίαση Λογισμικού (ΗΥ420)

Ανάπτυξη & Σχεδίαση Λογισμικού (ΗΥ420) Ανάπτυξη & Σχεδίαση Λογισμικού (ΗΥ420) Διάλεξη 8: Σχεδίαση Συστήματος Σχεδίαση Συστήματος 2 Διεργασία μετατροπής του προβλήματος σε λύση. Από το Τί στο Πώς. Σχέδιο: Λεπτομερής περιγραφή της λύσης. Λύση:

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

GreekLUG Ελεύθερο Λογισμικό & Λογισμικό Ανοικτού Κώδικα

GreekLUG Ελεύθερο Λογισμικό & Λογισμικό Ανοικτού Κώδικα GreekLUG Ελεύθερο Λογισμικό & Λογισμικό Ανοικτού Κώδικα Μάθημα 6ο Σουίτα Γραφείου LibreOffice 2 Ύλη Μαθημάτων V Μαθ. 5/6 : Σουίτα Γραφείου LibreOffice LibreOffice Γενικά, Κειμενογράφος - LibreOffice Writer,

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

-I/O-SYSTEM 750 BMS ΕΛΕΓΧΟΣ ΚΤΙΡΙΑΚΩΝ ΕΓΚΑΤΑΣΤΑΣΕΩΝ ΚΑΙ ΚΛΙΜΑΤΙΣΜΟΥ

-I/O-SYSTEM 750 BMS ΕΛΕΓΧΟΣ ΚΤΙΡΙΑΚΩΝ ΕΓΚΑΤΑΣΤΑΣΕΩΝ ΚΑΙ ΚΛΙΜΑΤΙΣΜΟΥ VER.DATE: 10/04/2014 -I/O-SYSTEM 750 BMS ΕΛΕΓΧΟΣ ΚΤΙΡΙΑΚΩΝ ΕΓΚΑΤΑΣΤΑΣΕΩΝ ΚΑΙ ΚΛΙΜΑΤΙΣΜΟΥ η φιλοσοφία To σύστημα ελέγχου WAGO έχει σχεδιαστεί με σκοπό την ευκολία στην σχεδίαση και στην εκτέλεση ενός project

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

Unity Editor #02 Κεντρικό Μενού: File, Build Settings και Build & Run

Unity Editor #02 Κεντρικό Μενού: File, Build Settings και Build & Run Unity Editor #02 Κεντρικό Μενού: File, Build Settings και Build & Run Καλώς ήλθες. Στο προηγούμενο μάθημα είδαμε τις λειτουργίες του μενού File του Editor της Unity. Όπως είπαμε οι δύο επιλογές που διαφέρουν

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

Εργαστήριο Τεχνολογίας Λογισμικού και Ανάλυσης Συστημάτων

Εργαστήριο Τεχνολογίας Λογισμικού και Ανάλυσης Συστημάτων ΠΑΝΕΠΙΣΤΗΜΙΟ ΠΕΙΡΑΙΩΣ ΤΜΗΜΑ ΨΗΦΙΑΚΩΝ ΣΥΣΤΗΜΑΤΩΝ 3 ο ΕΞΑΜΗΝΟ Εργαστήριο Τεχνολογίας Λογισμικού και Ανάλυσης Συστημάτων - 6 ο Εργαστήριο - ΕΠΙΜΕΛΕΙΑ ΜΑΘΗΜΑΤΟΣ: Πρέντζα Ανδριάννα ΕΠΙΜΕΛΕΙΑ ΕΡΓΑΣΤΗΡΙΟΥ: Στουγιάννου

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

. Μεθοδολογία Προγραμματισμού. Εισαγωγή. Νικόλαος Πεταλίδης. Εισαγωγή Εαρινό Εξάμηνο 2014

. Μεθοδολογία Προγραμματισμού. Εισαγωγή. Νικόλαος Πεταλίδης. Εισαγωγή Εαρινό Εξάμηνο 2014 .. Μεθοδολογία Προγραμματισμού Νικόλαος Πεταλίδης Τμήμα Μηχανικών Η/Υ ΤΕΙ Κεντρικής Μακεδονίας Εαρινό Εξάμηνο 2014 Ν. Πεταλίδης (ΤΕΙ Κεντρικής Μακεδονίας) Μεθοδολογία Προγραμματισμού 1 / 24 Μεθοδολογία

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

Σχεδιασµός βασισµένος σε συνιστώσες

Σχεδιασµός βασισµένος σε συνιστώσες Σχεδιασµός βασισµένος σε συνιστώσες 1 Ενδεικτικά περιεχόµενα του κεφαλαίου Ποια είναι τα "άτοµα", από τα οποία κατασκευάζονται οι υπηρεσίες; Πώς οργανώνουµε τις συνιστώσες σε ένα αρµονικό σύνολο; Τι είναι

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

Εισαγωγή στην Επιστήμη της Πληροφορικής Εργαστήριο. UNIX Μέρος 1

Εισαγωγή στην Επιστήμη της Πληροφορικής Εργαστήριο. UNIX Μέρος 1 Πανεπιστήμιο Κύπρου Τμήμα Πληροφορικής Εισαγωγή στην Επιστήμη της Πληροφορικής και Πληροφοριακά Συστήματα Εργαστήριο - ΕΠΛ003 Εισαγωγή στην Επιστήμη της Πληροφορικής Εργαστήριο UNIX Μέρος 1 Παναγιώτης

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

Οδηγός Εγκατάστασης και Χρήσης του Arebas Easy

Οδηγός Εγκατάστασης και Χρήσης του Arebas Easy Σ ε λ ί δ α 1 Οδηγός Εγκατάστασης και Χρήσης του Arebas Easy Περιεχόμενα 1. Download Arebas Easy... 2 2. Εγκατάσταση Arebas Easy... 3 3. Εγγραφή στον Arebas Server... 7 4. Παραμετροποίηση Arebas Easy...

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

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

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

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

ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΕΦΗΣ ΑΝΑΛΥΣΗ Διαγράμματα Συνεργασίας. Ιωάννης Σταμέλος Βάιος Κολοφωτιάς Πληροφορική

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

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

Ερωτήσεις- Απαντήσεις Πολυμέσα Απο το Βιβλίο Εφαρμογές Η/Υ Α,Β,Γ Λυκείου

Ερωτήσεις- Απαντήσεις Πολυμέσα Απο το Βιβλίο Εφαρμογές Η/Υ Α,Β,Γ Λυκείου Ερωτήσεις- Απαντήσεις Πολυμέσα Απο το Βιβλίο Εφαρμογές Η/Υ Α,Β,Γ Λυκείου 1. Τι ονομάζουμε κόμβο και τι σύνδεσμο σε μια μη γραμμικά διαρθρωμένη ύλη; Με την έννοια σύνδεσμος (link) σε μια μη γραμμικά διαρθρωμένη

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

Εργασία «Διαχείριση Δικτύων» Ιούνιος 2014, Θεσ/νίκη

Εργασία «Διαχείριση Δικτύων» Ιούνιος 2014, Θεσ/νίκη Εργασία «Διαχείριση Δικτύων» Ιούνιος 2014, Θεσ/νίκη 01 Εισαγωγή Μια απλή και γρήγορη εισαγωγή Το Splunk > είναι ένα πρόγραμμα το οποίο πρωτοεμφανίστηκε στην αγορά το 2003 και αποτελεί ένα πρόγραμμα εξόρυξης

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

Εισαγωγή στην εφαρμογή Βασική Σελίδα (Activity) Αναζήτηση Πελάτη... 6 Προβολή Πελάτη... 7 Επεξεργασία Πελάτη... 10

Εισαγωγή στην εφαρμογή Βασική Σελίδα (Activity) Αναζήτηση Πελάτη... 6 Προβολή Πελάτη... 7 Επεξεργασία Πελάτη... 10 Περιεχόμενα Εισαγωγή στην εφαρμογή... 2 Βασική Σελίδα (Activity)... 3 Ρυθμίσεις... 3 Πελάτες... 6 Αναζήτηση Πελάτη... 6 Προβολή Πελάτη... 7 Επεξεργασία Πελάτη... 10 Αποθήκη... 11 Αναζήτηση προϊόντος...

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

TO ΥΠΟΠΡΟΓΡΑΜΜΑ ΣΥΝΑΡΤΗΣΗ

TO ΥΠΟΠΡΟΓΡΑΜΜΑ ΣΥΝΑΡΤΗΣΗ Μάθημα 7 - Υποπρογράμματα Εργαστήριο 11 Ο TO ΥΠΟΠΡΟΓΡΑΜΜΑ ΣΥΝΑΡΤΗΣΗ Βασικές Έννοιες: Υποπρόγραμμα, Ανάλυση προβλήματος, top down σχεδίαση, Συνάρτηση, Διαδικασία, Παράμετρος, Κλήση συνάρτησης, Μετάβαση

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

ΑΡΧΙΜΗΔΗΣ ΙΙΙ Ενίσχυση Ερευνητικών Ομάδων στο ΤΕΙ Δυτικής Μακεδονίας» - MIS

ΑΡΧΙΜΗΔΗΣ ΙΙΙ Ενίσχυση Ερευνητικών Ομάδων στο ΤΕΙ Δυτικής Μακεδονίας» - MIS ΑΡΧΙΜΗΔΗΣ ΙΙΙ Ενίσχυση Ερευνητικών Ομάδων στο ΤΕΙ Δυτικής Μακεδονίας» - MIS 383583 Υποέργο 11: 3D Προσομοίωση της κατεργασίας της διάτρησης, βασισμένη στον προγραμματισμό συστήματος CAD Παραδοτέο του Π.Ε.1:

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

Τιμή Τιμή. σκορ. ζωές

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

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

ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ ΙΙ - UNIX. Συστήματα Αρχείων. Διδάσκoντες: Καθ. Κ. Λαμπρινουδάκης Δρ. Α. Γαλάνη

ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ ΙΙ - UNIX. Συστήματα Αρχείων. Διδάσκoντες: Καθ. Κ. Λαμπρινουδάκης Δρ. Α. Γαλάνη ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ ΙΙ - UNIX Μάθημα: Λειτουργικά Συστήματα Συστήματα Αρχείων Διδάσκoντες: Καθ. Κ. Λαμπρινουδάκης (clam@unipi.gr) Δρ. Α. Γαλάνη (agalani@unipi.gr) Λειτουργικά Συστήματα 1 Αρχεία με Χαρτογράφηση

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

Εισαγωγή στο MATLAB. Κολοβού Αθανασία, ΕΔΙΠ,

Εισαγωγή στο MATLAB. Κολοβού Αθανασία, ΕΔΙΠ, Εισαγωγή στο MATLAB Κολοβού Αθανασία, ΕΔΙΠ, akolovou@di.uoa.gr Εγκατάσταση του Matlab Διανέμεται ελεύθερα στα μέλη του ΕΚΠΑ το λογισμικό MATLAB με 75 ταυτόχρονες (concurrent) άδειες χρήσης. Μπορείτε να

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

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

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

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

Δομές Ακολουθίας- Επιλογής - Επανάληψης. Δομημένος Προγραμματισμός

Δομές Ακολουθίας- Επιλογής - Επανάληψης. Δομημένος Προγραμματισμός Δομές Ακολουθίας- Επιλογής - Επανάληψης Δομημένος Προγραμματισμός 1 Βασικές Έννοιες αλγορίθμων Σταθερές Μεταβλητές Εκφράσεις Πράξεις Εντολές 2 Βασικές Έννοιες Αλγορίθμων Σταθερά: Μια ποσότητα που έχει

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

Τίτλος Πλατφόρµα Ασύγχρονης Τηλεκπαίδευσης. Συντάκτης. Ακαδηµαϊκό ιαδίκτυο GUnet Οµάδα Ασύγχρονης Τηλεκπαίδευσης

Τίτλος Πλατφόρµα Ασύγχρονης Τηλεκπαίδευσης. Συντάκτης. Ακαδηµαϊκό ιαδίκτυο GUnet Οµάδα Ασύγχρονης Τηλεκπαίδευσης Τίτλος Πλατφόρµα Ασύγχρονης Τηλεκπαίδευσης Συντάκτης Ακαδηµαϊκό ιαδίκτυο GUnet Οµάδα Ασύγχρονης Τηλεκπαίδευσης Ηµεροµηνία Μάιος 2004 Πίνακας Περιεχοµένων ΕΙΣΑΓΩΓΗ 3 ΦΙΛΟΣΟΦΙΑ ΠΛΑΤΦΟΡΜΑΣ 4 ΒΑΣΙΚΑ ΣΤΟΙΧΕΙΑ

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

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

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

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

Εισαγωγή. Διαλέξεις στο μάθημα: Μεταφραστές Γιώργος Μανής

Εισαγωγή. Διαλέξεις στο μάθημα: Μεταφραστές Γιώργος Μανής Εισαγωγή Διαλέξεις στο μάθημα: Μεταφραστές Γιώργος Μανής Μεταγλωττιστής Αρχικό πρόγραμμα (source program) Μεταγλωττιστής Τελικό πρόγραμμα (object program) Διαγνωστικά μηνύματα Μεταγλωττιστής Παίρνει σαν

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

ΕΡΓΑΣΤΗΡΙΟ 1: 1 Εισαγωγή, Χρήσιμες Εφαρμογές

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

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

Εγκατάσταση του Lazarus

Εγκατάσταση του Lazarus Εισαγωγή στο Προγραμματισμό με τη PASCAL ΠΕΡΙΕΧΟΜΕΝΑ: Πώς να κατεβάσετε και να εγκαταστήσετε το περιβάλλον προγραμματισμού Lazarus. Εισαγωγή στη PASCAL. Εγκατάσταση του Lazarus Γιατί η PASCAL? Έτσι, η

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

Σύντομες εισαγωγικές σημειώσεις για την. Matlab

Σύντομες εισαγωγικές σημειώσεις για την. Matlab Σύντομες εισαγωγικές σημειώσεις για την Matlab Δήλωση Μεταβλητών Για να εισάγει κανείς δεδομένα στη Matlab υπάρχουν πολλοί τρόποι. Ο πιο απλός είναι στη γραμμή εντολών να εισάγουμε αυτό που θέλουμε και

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

Kεφάλαιο 11 Λίστες και Ανάλυση Δεδομένων Kεφάλαιο 12 Εργαλεία ανάλυσης πιθανοτήτων Kεφάλαιο 13 Ανάλυση δεδομένων...

Kεφάλαιο 11 Λίστες και Ανάλυση Δεδομένων Kεφάλαιο 12 Εργαλεία ανάλυσης πιθανοτήτων Kεφάλαιο 13 Ανάλυση δεδομένων... Μέρος 2 Kεφάλαιο 11 Λίστες και Ανάλυση Δεδομένων... 211 Kεφάλαιο 12 Εργαλεία ανάλυσης πιθανοτήτων... 241 Kεφάλαιο 13 Ανάλυση δεδομένων... 257 Kεφάλαιο 14 Συναρτήσεις Μέρος Β... 285 Kεφάλαιο 15 Ευρετήριο

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

ΤΕΧΝΟΛΟΓΙΑ ΔΙΚΤΥΩΝ ΕΠΙΚΟΙΝΩΝΙΩΝ

ΤΕΧΝΟΛΟΓΙΑ ΔΙΚΤΥΩΝ ΕΠΙΚΟΙΝΩΝΙΩΝ Όπως έχουμε ήδη αναφέρει, τα δίκτυα τεχνολογίας / χρησιμοποιούν διεύθυνση 32 bits, προκειμένου να δρομολογήσουν ένα αυτοδύναμο πακέτο στο προορισμό του. Κατά σύμβαση έχει επικρατήσει οι διευθύνσεις να

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

Περιεχόμενα. Λίγα λόγια από τον συγγραφέα Microsoft Excel Η δομή ενός φύλλου εργασίας... 21

Περιεχόμενα. Λίγα λόγια από τον συγγραφέα Microsoft Excel Η δομή ενός φύλλου εργασίας... 21 ENOTHTA 4 Περιεχόμενα Λίγα λόγια από τον συγγραφέα... 7 1 Microsoft Excel 2010... 9 2 Η δομή ενός φύλλου εργασίας... 21 3 ημιουργία νέου βιβλίου εργασίας και καταχώριση δεδομένων... 27 4 Συμβουλές για

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