expr 2+2 expr 14.1*6 expr (3 > 4) (6 <= 7) button.b -text "Hello, world!" -command exit pack.b ΕΙΣΑΓΩΓΗ ΣΤΗΝ TCL TK

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

Download "expr 2+2 expr 14.1*6 expr (3 > 4) (6 <= 7) button.b -text "Hello, world!" -command exit pack.b ΕΙΣΑΓΩΓΗ ΣΤΗΝ TCL TK"

Transcript

1 ΕΙΣΑΓΩΓΗ ΣΤΗΝ TCL TK Η Tcl είναι µια µικρή γλώσσα προγραµµατισµού µε σκοπό να ενσωµατωθεί σε άλλα προγράµµατα. Το Tk είναι ένα κουτί εργαλείων συστηµάτων Χ windows που παρέχει τις γραφικές εγκαταστάσεις ενδιάµεσων µε τον χρήστη σχετικά µε Tcl. Και οι δύο εφαρµογές αναπτύχθηκαν από τον John Ousterhout στο πανεπιστήµιο της Καλιφόρνιας στο Μπέρκλευ. Για να τρέξετε µια εφαρµογή TCL πρέπει να εγκαταστήσετε το TCL κέλυφος(tcl shell) στο σύστηµά σας. Για παράδειγµα αν δώσετε την εντολή : expr 2+2 η TCL δίνει το αποτέλεσµα 4. Η παραπάνω εφαρµογή είναι µια από τις πιο απλές εφαρµογές στην TCL. Η πρώτη λέξη σε µια εντολή TCL είναι το όνοµά της εντολής και ακολουθούν τα διάφορα ορίσµατα. Η λέξη expr που χρησιµοποιήσαµε είναι µια από τις εντολές πυρήνα της TCL. Κάθε εντολή TCL επιστρέφει ένα αποτέλεσµα. Στο παραπάνω παράδειγµα την τιµή της έκφρασης. Συνήθως σε κάθε γραµµή γράφουµε µια εντολή αλλά έχουµε τη δυνατότητα σε µια γραµµή να έχουµε περισσότερες από µια εντολές αν τις χωρίσουµε µε " ; ". Εκτός από τις βασικές πράξεις µε την expr έχουµε και άλλες δυνατότητες όπως φαίνεται στα παρακάτω παραδείγµατα : expr 14.1*6 expr (3 > 4) (6 <= 7) Για να φύγετε από το TCL κέλυφος πληκτρολογήστε την εντολή : exit Παρόλο που η TCL παρέχει ένα πλήρες σύνολο από προγραµµατιστικά χαρακτηριστικά όπως µεταβλητές, loops και συναρτήσεις, έχει σκοπό να χρησιµοποιηθεί ως µέρος εφαρµογών και όχι ως µοναδικό προγραµµατιστικό περιβάλλον Το Tk παρέχει ένα ιδιαίτερα ενδιαφέρον σύνολο εντολών που χρησιµοποιούνται µαζί µε τα προγραµµατιστικά εργαλεία της TCL. Για την δηµιουργία Tk εφαρµογών χρησιµοποιούµε µια εφαρµογή που ονοµάζεται wish, η οποία είναι παρόµοια µε το κέλυφος της TCL αλλά περιέχει επιπλέον και τις εντολές που ορίστηκαν για το Tk button.b -text "Hello, world!" -command exit pack.b Για παράδειγµα αν πληκτρολογήσουµε τις παραπάνω εντολές θα δηµιουργηθεί ένα κουµπί (button) το οποίο γράφει "Hello, world!" και όταν το πατήσουµε ενεργοποιείται η εντολή exit και φεύγουµε από την εφαρµογή. Οι λέξεις button, pack είναι εντολές Tk. Οι εντολές TCL και Tk έχουν ακριβώς την ίδια δοµή. Η εντολή pack είναι υπεύθυνη για την εµφάνιση του button µε το όνοµα.b σε αυτή την περίπτωση.

2 ΣΥΝΤΑΞΗ ΤΗΣ ΓΛΩΣΣΑΣ TCL Η σύνταξη της Tcl αποτελείται περίπου από µερικούς κανόνες που καθορίζουν πώς αναλύονται οι εντολές. Η σύνταξη της Tcl είναι η ίδια για κάθε εντολή. Ένα πρόγραµµα Tcl αποτελείται από µια ή περισσότερες εντολές. Οι εντολές χωρίζονται από τις αλλαγές γραµµής ή τα ελληνικά ερωτηµατικά. Παραδείγµατος χάριν ο παρακάτω κώδικας : set a 24 set b 15 είναι ένα πρόγραµµα µε δύο εντολές που χωρίζονται από έναν χαρακτήρα αλλαγής γραµµής. Το ίδιο πρόγραµµα θα µπορούσε να γραφτεί σε µια γραµµή χρησιµοποιώντας για διαχωριστή το ελληνικό ερωτηµατικό set a 24; set b 15 Κάθε εντολή αποτελείται από µια ή περισσότερες λέξεις, όπου η πρώτη λέξη είναι το όνοµα µιας εντολής και οι πρόσθετες λέξεις είναι ορίσµατα της εντολής. Οι λέξεις χωρίζονται από τα κενά διαστήµατα. Κάθε µία από τις εντολές στα παραπάνω παραδείγµατα έχει τρεις λέξεις. Μπορεί να υπάρχει οποιοσδήποτε αριθµός λέξεων σε µια εντολή. ΜΕΤΑΒΛΗΤΕΣ Η TCL επιτρέπει την αποθήκευση τιµών σε µεταβλητές και τη χρήση τους στις διάφορες εντολές. Για παράδειγµα η εντολή: set a 44 δίνει στην µεταβλητή a την τιµή 44 και µε τη βοήθεια της expr δίνοντας την εντολή: expr $a*4 παίρνουµε το αποτέλεσµα 176 Παρατηρούµε ότι για να αποδοθεί στη µεταβλητή a η τιµή της κατά τον υπολογισµό µιας έκφρασης που την περιέχει χρησιµοποιούµε µπροστά από αυτην το σύµβολο $. H TCL επίσης επιτρέπει σε µια µεταβλητή να πάρει την τιµή µιας έκφρασης όπως φαίνεται στο παρακάτω παράδειγµα. set a 44 set b [expr $a*4] Η µεταβλητή b παίρνει την τιµή της έκφρασης expr $a*4 και ισούται µε 176. Μια απλή µεταβλητή της Tcl αποτελείται από δύο µέρη: ένα όνοµα και µια τιµή. Τόσο το όνοµα όσο και η τιµή µπορούν να είναι αυθαίρετα string. Παραδείγµατος χάριν, είναι δυνατό να ονοµαστεί µια µεταβλητή xyz!#22.στην πράξη τα ονόµατα µεταβλητών αρχίζουν συνήθως µε ένα γράµµα και αποτελούνται από έναν συνδυασµό γραµµάτων, ψηφίων, και χαρακτήρων. Οι µεταβλητές µπορούν να δηµιουργηθούν, να διαβαστούν, και να τροποποιηθούν µε καθορισµένη εντολή, η οποία παίρνει ένα ή δύο ορίσµατα. Το πρώτο όρισµα είναι το όνοµα της µεταβλητής και το δεύτερο, εάν υπάρχει, είναι µια νέα τιµή για τη µεταβλητή: set a {Eggs: $2.18/dozen Eggs: $2.18/dozen set a Η πρώτη εντολή δηµιουργεί µια νέα µεταβλητή a και την θέτει ίση µε Eggs: $2.18/dozen. Το αποτέλεσµα της εντολής είναι η τιµή της µεταβλητής. Η δεύτερη εντολή έχει ένα όρισµα a. Με αυτήν την µορφή επιστρέφει απλά την τρέχουσα τιµή της µεταβλητής. Η τρίτη εντολή αλλάζει την τιµή του a σε 44 και επιστρέφει την νέα τιµή. Οι µεταβλητές της Tcl

3 µπορούν να χρησιµοποιηθούν για να αντιπροσωπεύσουν πολλά πράγµατα, όπως ακέραιους αριθµούς, αριθµούς κινητής υποδιαστολής, ονόµατα,κατάλογους, τα οποία αποθηκεύονται πάντα ως string. Αυτή η χρήση µιας ενιαίας αντιπροσώπευσης για όλες τις τιµές επιτρέπει στις διαφορετικές τιµές να χειρίζονται µε τον ίδιο τρόπο και να επικοινωνούν εύκολα. Οι µεταβλητές της Tcl δηµιουργούνται αυτόµατα όταν ορίζονται οι τιµές τους. εν υπάρχουν τύποι µεταβλητών οπότε δε χρειάζεται να ορίζονται πρώτα όπως συµβαίνει σε άλλες διαδικαστικές γλώσσες. Η εντολή UNSET Η εντολή unset καταστρέφει τις µεταβλητές. Παίρνει οποιοδήποτε αριθµό ορισµάτων, κάθε ένα από τα οποία είναι µια µεταβλητή, και έχει ως αποτέλεσµα να αφαιρούνται όλες οι µεταβλητές που ακολουθούν την εντολή unset. Οποιαδήποτε προσπάθεια διαβάσµατος κάποιας από τις κατεστραµένες µεταβλητές θα είναι αποτυχηµένη. Τα ορίσµατα της unset µπορούν να είναι είτε απλές µεταβλητές, είτε στοιχεία πίνακα, είτε ολόκληροι πίνακες, όπως στο ακόλουθο παράδειγµα: unset a earnings(january) b Σε αυτήν την περίπτωση οι µεταβλητές a και b αφαιρούνται εξ ολοκλήρου όπως και το στοιχείο January του πίνακα earnings. Ο πίνακας earnings συνεχίζει να υπάρχει µετά από την εντολή unset. Εάν τα a ή b είναι ένας πίνακας όλα τα στοιχεία του πίνακα αφαιρούνται και φυσικά και ο πίνακας. Η εντολή RENAME Με την εντολή rename µπορούµε να αλλαξουµε το όνοµα µια µεταβλητης,όπως φαίνεται στο παρακάτω παράδειγµα: set x rename x a Έτσι µετονοµάζουµε τη µεταβλητή x σε a. Αν στην εντολή rename δεν δώσουµε δεύτερο όρισµα τότε διαγράφουµε τη µεταβλητή που είναι ως πρώτο όρισµα. rename x Έτσι διαγράφεται η µεταβλητή x. ΑΝΤΙΚΑΤΑΣΤΑΣΗ Η Tcl παρέχει τρεις µορφές αντικατάστασης: αντικατάσταση µεταβλητής, αντικατάσταση εντολής και backslash αντικατάσταση. Κάθε αντικατάσταση αναγκάζει µερικούς από τους αρχικούς χαρακτήρες µιας λέξης να αντικατασταθούν µε κάποια άλλη τιµή. Οι αντικαταστάσεις µπορούν να εµφανιστούν σε οποιαδήποτε λέξη µιας εντολής, συµπεριλαµβανοµένου του ονόµατος εντολής και µπορεί να υπάρξει οποιοσδήποτε αριθµός αντικαταστάσεων µέσα σε µια µεµονωµένη λέξη. Η πρώτη µορφή αντικατάστασης είναι η αντικατάσταση µεταβλητής. Προκαλείται από έναν χαρακτήρα δολάριο $ και δίνει τη δυνατότητα σε µια µεταβλητή να χρησιµοποιηθεί σε µια παράσταση. Παραδείγµατος χάριν, εξετάστε τις ακόλουθες εντολές : set kgrams 20

4 expr $kgrams* Η πρώτη εντολή θέτει την αξία των µεταβλητών kgrams σε 20. Η δεύτερη εντολή υπολογίζει το αντίστοιχο βάρος σε λίµπρες µε τον πολλαπλασιασµό της αξίας των kgrams µε Αυτό γίνεται χρησιµοποιώντας την αντικατάσταση µεταβλητής. Η έκφραση $kgrams αντικαθίσταται µε την τιµή της µεταβλητής kgrams, έτσι ώστε το λαµβανόµενο από τη διαδικασία όρισµα της εντολής expr είναι 20* Η αντικατάσταση µεταβλητής µπορεί να εµφανιστεί οπουδήποτε µέσα σε µια εντολή όπως φαίνεται στην ακόλουθη εντολή : set result 20;set base 40 expr $result*$base Η δεύτερη µορφή αντικατάστασης παρεχόµενη από την Tcl είναι η αντικατάσταση εντολής. Η αντικατάσταση εντολής αναγκάζει ένα µέρος ή όλη την εντολή να αντικατασταθεί µε το αποτέλεσµα µιας άλλης εντολής Tcl. Η αντικατάσταση εντολής πραγµατοποιείται όπως φαίνεται στο παρακάτω παράδειγµα: set kgrams 20 set lbs [expr $kgrams*2.2046] Εδώ η εντολή expr εκτελείται δίνοντας αποτέλεσµα , το οποίο είναι η τιµή που θέτουµε στην µεταβλητή lbs. Η τελευταία µορφή αντικατάστασης στην Tcl είναι η backslash αντικατάσταση. Χρησιµοποιείται για να παρεµβάλει ειδικούς χαρακτήρες όπως οι αλλαγές γραµµής στις λέξεις και επίσης για να παρεµβάλει τους χαρακτήρες όπως [ και το $ χωρίς αυτά να αντιµετωπίζονται ως χαρακτήρες κλειδιά από την Tcl. Παραδείγµατος χάριν, εξετάστε την ακόλουθη εντολή : set msg Eggs:\$2.18/dozen\nGasoline:\$1.49/gallon Eggs:$2.18/dozen Gasoline:$1.49/gallon Υπάρχουν δύο backslash ακολουθούµενες από το $ µε αποτέλεσµα οι χαρακτήρες δολαρίων να αντιµετωπίζονται όπως τους συνηθισµένους χαρακτήρες (δεν προκαλούν την αντικατάσταση µεταβλητής). Η backslash ακολουθούµενη από το n αντικαθίσταται µε έναν χαρακτήρα αλλαγής γραµµής. Ο παρακάτω πίνακας απαριθµεί τις σηµαντικότερες ακολουθίες backslash που υποστηρίζονται από την Tcl : Ακολουθία backslash Αντικαθίσταται µε \n νέα γραµµή \t Tab \space κενός χαρακτήρας \a ηχητικό µήνυµα \b backspace \v κάθετο Tab

5 Αντικατάσταση Μεταβλητών Προηγούµενα εισάγαµε τη χρήση του χαρακτήρα $ για την αντικατάσταση των µεταβλητών από τις τιµές τους. Αυτό το τµήµα περιγράφει το µηχανισµό λεπτοµερέστερα. Η αντικατάσταση µεταβλητής προκαλείται από την παρουσία ενός χαρακτήρα $ σε µια εντολή Tcl. Οι χαρακτήρες µετά από το δολάριο $ θεωρούνται ως µεταβλητό όνοµα, και αντικαθίστανται από την τιµή της µεταβλητής. Η Tcl παρέχει τρεις µορφές αντικατάστασης µεταβλητής. Μέχρι τώρα έχετε δει µόνο την απλούστερη µορφή, η οποία χρησιµοποιείται όπως φαίνεται παρακάτω : set a 2 expr $a+2 Με αυτήν την µορφή το δολάριο $ ακολουθείται από ένα όνοµα µεταβλητής. Η δεύτερη µορφή αντικατάστασης µεταβλητής επιτρέπει στα στοιχεία πίνακα να αντικατασταθούν από την τιµή τους. Αυτή η µορφή είναι όπως την πρώτη εκτός από το ότι το µεταβλητό όνοµα ακολουθείται αµέσως από ένα όνοµα στοιχείου εσωκλειόµενο σε παρένθεση. Παραδείγµατος χάριν, εξετάστε τις ακόλουθες εντολές : set esoda(january) 100 set esoda(february) 200 set Total [expr $esoda(january)+$esoda(february) Έχουµε τον πίνακα µε το όνοµα esoda και δύο τιµές του. Χρησιµοποιούµε το $ για να πάρουµε τις τιµές των δύο στοιχείων του πίνακα. Η τελευταία µορφή αντικατάστασης χρησιµοποιείται για απλές µεταβλητές όπου το όνοµα της µεταβλητής ακολουθείται από ένα γράµµα ή αριθµό ή underscore. Παραδείγµατος χάριν, υποθέστε ότι επιθυµείτε να περάσετε µια τιµή όπως 100m (όπου µε το m δηλώνουµε τα millimeters) σε µια εντολή ως όρισµα. Εάν προσπαθείτε να αντικαταστήσετε τη µεταβλητή τιµή µε µια µορφή όπως $sizem η Tcl θα µεταχειριστεί το m ως τµήµα του µεταβλητού ονόµατος. Για να ξεπεράσετε αυτό το πρόβληµα µπορείτε να εσωκλείσετε το µεταβλητό όνοµα σε αγκύλες όπως στις ακόλουθες εντολές : set size 100 button.a -width ${sizem pack.a Με τις παραπάνω εντολές µπορούµε να καθορίσουµε το πλάτος του παραθύρου που δηµιουργούµε σε millimeters. Ο µηχανισµός αντικατάστασης µεταβλητών της Tcl προορίζεται για να χειριστεί τις πιό απλές καταστάσεις.υπάρχουν περιπτώσεις όπου καµία από τις ανωτέρω µορφές αντικατάστασης δεν επιτυγχάνει την επιθυµητή επίδραση. Οι πιο περίπλοκες καταστάσεις µπορούν να αντιµετωπιστούν µε µια ακολουθία εντολών. ΣΧΟΛΙΑ Εάν ο πρώτος µη-κενός χαρακτήρας µιας εντολής είναι ο χαρακτήρας # όλοι οι χαρακτήρες που ακολουθούν µέχρι την αρχή της επόµενης εντολής θεωρούνται ως σχόλια και απορρίπτονται. Σηµειώστε ότι ο χαρακτήρας # πρέπει να εµφανιστεί σε µια θέση όπου η Tcl

6 αναµένει τον πρώτο χαρακτήρα µιας εντολής. Εάν ο χαρακτήρας # εµφανίζεται οπουδήποτε αλλού αντιµετωπίζεται ως συνηθισµένος χαρακτήρας που αποτελεί µέρος µιας έκφρασης : # This is a comment set b 101; # This is a comment Ο τελευταίος χαρακτήρας # αντιµετωπίζεται ως χαρακτήρας σχολίου, δεδοµένου ότι εµφανίζεται αµέσως αφότου ολοκληρωθεί µία εντολή µε ελληνικό ερωτηµατικό. ΠΙΝΑΚΕΣ Εκτός από τις απλές µεταβλητές η Tcl παρέχει επίσης τους πίνακες. Ένας πίνακας είναι µια συλλογή στοιχείων, κάθε ένα από τα οποία είναι µια µεταβλητή µε το όνοµά της και την τιµή της. Το όνοµα ενός στοιχείου πίνακα έχει δύο µέρη : το όνοµα του πίνακα και το όνοµα του στοιχείου. Τα στοιχεία πίνακα αναφέρονται για παράδειγµα µε τη µορφή esoda(january) όπου το όνοµα του πίνακα είναι το esoda και ακολουθείται από το όνοµα του στοιχείου σε παρένθεση (January).Οι πίνακες µπορούν να χρησιµοποιηθούν οπουδήποτε όπως και οι απλές µεταβλητές. Για παράδειγµα : set esoda(january) set esoda(february) set esoda(january) Η πρώτη εντολή δηµιουργεί έναν πίνακα που ονοµάζεται esoda, εάν αυτός δεν υπάρχει ήδη. Κατόπιν δηµιουργεί ένα στοιχείο January µέσα στον πίνακα και του ορίζει την τιµή Η δεύτερη εντολή ορίζει µια τιµή στο στοιχείο February του πίνακα και η τρίτη εντολή επιστρέφει την τιµή του στοιχείου January. Πολυδιάστατοι Πίνακες Η Tcl υποστηρίζει µόνο µονοδιάστατους πίνακες, αλλά οι πολυδιάστατοι πίνακες µπορούν να προσοµοιωθούν µε τη σύνδεση πολλαπλών δεικτών σε ένα µοναδικό στοιχείο. Το παρακάτω πρόγραµµα προσοµοιώνει ένα δισδιάστατο πίνακα : set pinakas(1,1) 100 set pinakas(1,2) 200 set pinakas(1,3) 300 set i 1 set j 2 set stoixeio $pinakas($i,$j) Ο pinakas είναι ένας πίνακας µε τρία στοιχεία των οποίων τα ονόµατα είναι "1,1", "1,2" και "1,3". Ο πίνακας συµπεριφέρεται ακριβώς σαν να ήταν ένας δισδιάστατος πίνακας. Ειδικότερα, η αντικατάσταση µεταβλητής πραγµατοποιείται έτσι ώστε οι τιµές του i και του j να συνδυάζονται δίνοντας αυτός ο συνδυασµός ένα στοιχείο κάθε φορά.

7 ιαχείριση Πίνακα Η εντολή array παρέχει πληροφορίες για τα στοιχεία που έχουν οριστεί σε έναν πίνακα. Οι πληροφορίες παρέχονται µε διάφορους τρόπους, ανάλογα µε το πρώτο όρισµα που παίρνουµε στην εντολή. Η εντολή array size επιστρέφει έναν αριθµό που προσδιορίζει πόσα στοιχεία υπάρχουν σε έναν πίνακα ενώ η εντολή array names επιστρέφει έναν κατάλογο µε τα ονόµατα των στοιχείων ενός πίνακα : set nomisma(france) franc set nomisma(greatbritain) pound set nomisma(germany) mark array size nomisma 3 array names nomisma GreatBritain Germany France Για κάθε µια από αυτές τις εντολές το τελικό όρισµα πρέπει να είναι το όνοµα του πίνακα που µας ενδιαφέρει. ΕΚΦΡΑΣΕΙΣ Οι εκφράσεις συνδυάζουν τις τιµές µε τους τελεστές για να παράγουν νέες τιµές. Παραδείγµατος χάριν, η έκφραση 4+2 περιέχει δύο τελεστέους, 4 και 2, και ένα τελεστή +. Πολλές εντολές της Tcl αναµένουν ένα ή περισσότερα από τα ορίσµατά τους να είναι εκφράσεις. Η απλούστερη εντολή είναι η expr, η οποία υπολογίζει το αποτέλεσµα της πράξης που ορίζουν τα ορίσµατά της. Για παράδειγµα : expr {(2+4) * 3.6 Ένα άλλο παράδειγµα είναι η εντολή if, η οποία αφού αξιολογεί το πρώτο της όρισµα χρησιµοποιεί το αποτέλεσµα για να αποφασίσει αν πρέπει να πραγµατοποιηθεί το δεύτερο όρισµά της : if $x<2 then {set x 2 ΟΙ ΕΝΤΟΛΕΣ INCR ΚΑΙ APPEND Οι εντολές incr και append παρέχουν απλούς τρόπους αλλαγής της τιµής µιας µεταβλητής. Η incr παίρνει δύο ορίσµατα, τα οποία είναι το όνοµα µιας µεταβλητής και ένας ακέραιος αριθµός, ο οποίος προστίθεται στην τιµή της µεταβλητής. Για παράδειγµα : set x 4 incr x 2 Ο αριθµός µπορεί να έχει είτε θετική είτε αρνητική τιµή. Μπορεί επίσης να παραλειφθεί, οπότε σε αυτή την περίπτωση θεωρείται ο αριθµός 1 : set x 4 incr x Η αρχική τιµή της µεταβλητής και ο αριθµός που προστίθεται πρέπει να είναι ακέραιοι αριθµοί σε δεκαδικό, οκταδικό ή δεκαεξαδικό σύστηµα.

8 Η εντολή append προσθέτει κάποιο κείµενο στο τέλος µιας µεταβλητής. Παίρνει δύο ορίσµατα, τα οποία είναι το όνοµα της µεταβλητής και το νέο κείµενο που θα προστεθεί. Επισυνάπτει το νέο κείµενο στη µεταβλητή και επιστρέφει τη νέα τιµή της µεταβλητής. set x hello append x Kavala ΤΕΛΕΣΤΕΣ ΚΑΙ ΠΡΟΤΕΡΑΙΟΤΗΤΑ Η παρακάτω λίστα απαριθµεί όλους τους τελεστές που υποστηρίζονται στις εκφράσεις της Tcl. -a Αντίθετος του a!a Λογικό NOT: 1 αν το a είναι µηδέν, 0 σε άλλη περίπτωση ~a Συµπλήρωµα του a a*b a/b Πολλαπλασιασµός a και b ιαίρεση a µε b a%b Ακέραιο υπόλοιπο κατά τη διαίρεση a µε b a+b a-b Πρόσθεση a και b Αφαίρεση του b από το a a<<b Κύλιση του αριθµού a κατά b bits προς τα αριστερά a>>b Κύλιση του αριθµού a κατά b bits προς τα δεξιά a<b 1 αν a µικρότερο του b, αλλιώς 0 a>b 1 αν a µεγαλύτερο του b, αλλιώς 0 a<=b 1 αν a µικρότερο ή ίσο του b, αλλιώς 0 a>=b 1 αν a µεγαλύτερο ή ίσο του b, αλλιώς 0 a==b 1 αν a ίσο του b, αλλιώς 0 a!=b 1 αν a διάφορο του b, αλλιώς 0 a&b Παράγει µια τιµή της οποίας κάθε δυαδικό ψηφίο είναι 1 αν και τα δύο αντίστοιχα δυαδικά ψηφία των δύο τελεστέων είναι 1

9 a^b Αποκλειστικό or. Παράγει µια τιµή της οποίας κάθε δυαδικό ψηφίο είναι 1, µόνο αν το ένα ή το άλλο από τα αντίστοιχα δυαδικά ψηφία των δύο τελεστέων είναι 1 a b OR. Παράγει µια τιµή της οποίας κάθε δυαδικό ψηφίο είναι 1, αν ένα ή και τα δύο αντίστοιχα δυαδικά ψηφία των δύο τελεστέων είναι 1 a&&b Λογικό AND : 1 αν τα a και b διάφορα του 0, αλλιώς 0 a b Λογικό OR : 1 αν το a ή το b διάφορο του 0, αλλιώς 0 a?b:c Επιλογή : αν a διάφορο του 0 τότε b, αλλιώς c Οι τελεστές µε την υψηλότερη προτεραιότητα εµφανίζονται στο πάνω τµήµα της λίστας και όσο προχωράµε έχουν και µικρότερη προτεραιότητα, τα κενά κελιά στον πίνακα χωρίζουν τις οµάδες τελεστών των διαφόρων προτεραιοτήτων. Παραδείγµατος χάριν, η έκφραση 4*2<7 ισούται µε 0 επειδή ο τελεστής * έχει υψηλότερη προτεραιότητα από τον τελεστή <. Χρησιµοποιώντας παρενθέσεις µπορούµε να ορίσουµε εµείς την προτεραιότητα µε την οποία θα πραγµατοποιηθούν οι πράξεις σε µια έκφραση. Οι τελεστές µε την ίδια προτεραιότητα εκτελούνται από αριστερά προς τα δεξιά. Παραδείγµατος χάριν, είναι το ίδιο όπως (10-4)+3. ΜΑΘΗΜΑΤΙΚΕΣ ΣΥΝΑΡΤΗΣΕΙΣ Οι εκφράσεις Tcl υποστηρίζουν διάφορες µαθηµατικές συναρτήσεις, όπως οι sin και exp. Οι µαθηµατικές συναρτήσεις εκτελούνται ως εξής : expr {2*sin($x) expr {hypot($x, $y) + $z Στον παρακάτω πίνακα φαίνονται οι µαθηµατικές συναρτήσεις που υποστηρίζονται από την TCL : Συνάρτηση Αποτέλεσµα abs(x) Απόλυτη τιµή του x. acos(x) Τόξο του συνx στο διάστηµα 0 έως π. asin(x) Τόξο του ηµx στο διάστηµα -π/2 έως π /2. atan(x) Τόξο της εφx στο διάστηµα -π/2 έως π /2. atan2(x,y) Τόξο της εφ(x/y) στο διάστηµα -π/2 έως π /2. ceil(x) Ο µικρότερος ακέραιος που είναι µεγαλύτερος από το x. cos(x) Συνηµίτονο του x.

10 cosh(x) Yπερβολικό συνx. double(i) Μετατροπή σε πραγµατικό αριθµό του ακεραίου i. exp(x) e εις την x. floor(x) Ο µεγαλύτερος ακέραιος που είναι µικρότερος από το x. fmod(x,y) Υπόλοιπο της διαίρεσης x/y. hypot(x,y) Τετραγωνική ρίζα του (x2 + y2 ). int(x) Μετατροπή του x σε ακέραιο. log(x) Φυσικός λογάριθµος του x. log10(x) Λογάριθµος του x µε βάση το 10. pow(x,y) Η δύναµη x εις την y. round(x) Η ακέραια τιµή του x που προκύπτει από στρογγυλοποίηση. sin(x) Ηµίτονο του x. sinh(x) Υπερβολικό ηµx. sqrt(x) Τετραγωνική ρίζα του x. tan(x) Εφαπτοµένη του x. tanh(x) Υπερβολική εφx. ΑΚΡΙΒΕΙΑ Κατά τη διάρκεια της αξιολόγησης µιας έκφρασης η Tcl αντιπροσωπεύει τους ακέραιους αριθµούς εσωτερικά µε τον τύπο int της C, ο οποίος παρέχει τουλάχιστον 32 bit ακρίβειας στις περισσότερες µηχανές. Οι πραγµατικοί αριθµοί αντιστοιχούν µε τους double της C, που συνήθως αναπαρίστανται από 64 bit τιµές χρησιµοποιώντας τα ieee πρότυπα κινητής υποδιαστολής. Οι αριθµοί µετατρέπονται σε string µόνο όταν είναι απαραίτητο όπως για παράδειγµα όταν χρησιµοποιούνται σε µια εντολή expr. Όταν µια πραγµατική τιµή µετατρέπεται σε string µόνο τα δώδεκα πιο σηµαντικά ψηφία διατηρούνται εξ ορισµού : expr { Εάν θα επιθυµούσατε περισσότερα ψηφία να εµφανίζονται µπορείτε να χρησιµοποιήσετε την εντολή tcl_precision ως γενική µεταβλητή µε τον επιθυµητό αριθµό σηµαντικών ψηφίων : set tcl_precision 15 expr { Η µεταβλητή tcl_precision χρησιµοποιείται όχι µόνο για την εντολή expr αλλά οπουδήποτε σε µια εφαρµογή Tcl όπου ένας πραγµατικός αριθµός µετατρέπεται σε string.

11 ΚΑΝΟΝΙΚΕΣ ΚΑΙ ΕΚΤΑΚΤΕΣ ΕΠΙΣΤΡΟΦΕΣ ΣΤΗΝ TCL Μια εντολή Tcl µπορεί να ολοκληρωθεί µε διάφορους τρόπους. Μια κανονική επιστροφή που είναι η πιο συνηθισµένη περίπτωση σηµαίνει ότι η εντολή ολοκληρώνεται επιτυχώς και η επιστροφή περιλαµβάνει το αποτέλεσµα της εφαρµογής που εκτελέσαµε. Η Tcl υποστηρίζει επίσης τις έκτακτες επιστροφές από τις εντολές. Η συχνότερη µορφή έκτακτης επιστροφής είναι ένα λάθος. Όταν µια επιστροφή λάθους εµφανίζεται, σηµαίνει ότι η εντολή δεν µπορούσε να ολοκληρώσει την προοριζόµενη λειτουργία της. Η εντολή αποβάλλεται και οποιεσδήποτε εντολές που ακολουθούν στον κώδικα αγνοούνται. Μια επιστροφή λάθους περιλαµβάνει ένα string προσδιορίζοντας το λάθος στην εφαρµογή. Παραδείγµατος χάριν, η ακόλουθη καθορισµένη εντολή παράγει ένα λάθος επειδή έχει πάρα πολλά ορίσµατα : set state Kavala Drama wrong # args: should be "set varname?newvalue?" Στην παραπάνω περίπτωση είναι απαραίτητα τα διπλά εισαγωγικά, αφού η τιµή της µεταβλητής αποτελείται από περισσότερες από µία λέξεις. Το µήνυµα λάθους δεν είναι πάντοτε το ίδιο, αλλά διαφέρει από λάθος σε λάθος. Παραδείγµατος χάριν, η εντολή expr δέχεται οποιοδήποτε αριθµό ορισµάτων αλλά απαιτεί µια ιδιαίτερη σύνταξη διαφορετικά παράγει λάθος, όπως για παράδειγµα αν δεν κλείσει η παρένθεση : expr 3 * (20+4 syntax error in expression "3 * (20+4" ΑΡΙΘΜΗΤΙΚΟΙ ΤΕΛΕΣΤΑΙΟΙ Οι τελεσταίοι έκφρασης είναι ακέραιοι αριθµοί ή πραγµατικοί αριθµοί. Οι ακέραιοι αριθµοί ορίζονται συνήθως στο δεκαδικό σύστηµα, αλλά εάν ο πρώτος χαρακτήρας είναι 0 (µηδέν) ο αριθµός διαβάζεται στο οκταδικό σύστηµα (η βάση 8) και εάν οι πρώτοι δύο χαρακτήρες είναι 0x, ο αριθµός διαβάζεται σε δεκαεξαδικό (βάση 16). Παραδείγµατος χάριν, ο 335 είναι ένας δεκαδικός αριθµός, ο 0517 είναι ένας οκταδικός αριθµός µε την ίδια αξία, και ο 0x14f είναι ένας δεκαεξαδικός αριθµός µε την ίδια αξία. Οι πραγµατικοί τελεσταίοι µπορούν να οριστούν όπως και στην Ansi C, συµπεριλαµβανοµένων και των ακόλουθων παραδειγµάτων : e+16 6E4 3. ΠΡΟΣΒΑΣΗ ΣΕ ΑΡΧΕΙΑ Αυτό το κεφάλαιο περιγράφει τις εντολές της Tcl που αφορούν στα αρχεία. Οι εντολές σας επιτρέπουν να διαβάσετε ή να γράψετε αρχεία κατά σειρά ή µε ένα τυχαίο τρόπο. Επίσης σας επιτρέπουν να ανακτήσετε πληροφορίες για τα αρχεία που κρατούνται από το σύστηµα, όπως η ώρα της τελευταίας πρόσβασης. Τέλος µπορούν να χρησιµοποιηθούν για τον χειρισµό των ονοµάτων των αρχείων. Για παράδειγµα µπορείτε να αφαιρέσετε την επέκταση ενός ονόµατος αρχείου ή να βρείτε τα ονόµατα όλων των αρχείων που ταιριάζουν µε ένα συγκεκριµένο δείγµα. Ονόµατα Αρχείων Τα ονόµατα των αρχείων καθορίζονται στην Tcl χρησιµοποιώντας την απλή σύνταξη του UNIX. Για παράδειγµα το όνοµα αρχείου x/y/z αναφέρεται σε αρχείο που ονοµάζεται z, που είναι τοποθετηµένο σε ένα κατάλογο που ονοµάζεται y, ο οποίος µε τη σειρά του είναι

12 τοποθετηµένος σε ένα κατάλογο που ονοµάζεται x, και ο οποίος πρέπει να είναι στον τρέχοντα κατάλογο στον οποίο δουλεύουµε. Το όνοµα αρχείου /top αναφέρεται σε ένα αρχείο top στον αρχικό κατάλογο. Επίσης µπορείτε να χρησιµοποιήσετε το σύµβολο ~ για να καθορίσετε ένα όνοµα αρχείου σχετικό µε ένα συγκεκριµένο κατάλογο του χρήστη. Για παράδειγµα το όνοµα ~ouster/mbox αναφέρεται σε ένα αρχείο µε τον όνοµα mbox στον κατάλογο του χρήστη ouster και το όνοµα ~/mbox αναφέρεται σε ένα αρχείο που ονοµάζεται mbox στον κατάλογο του χρήστη που τρέχει στο Tcl script. Αυτοί οι κανόνες αντιστοιχούν σε όλες τις εντολές της Tcl που παίρνουν ονόµατα αρχείων ως ορίσµατα. Βασικό Αρχείο I/O Οι εντολές Tcl για τα αρχεία I/O είναι παρόµοιες µε τις διαδικασίες της τυπικής βιβλιοθήκης Ι/Ο της C, και στα ονόµατα και στην συµπεριφορά. Παρακάτω φαίνεται ένα script που καλείται tgrep που παρουσιάζει τα περισσότερα από τα βασικά χαρακτηριστικά του αρχείου Ι/Ο : #!/usr/local/bin/tclsh if {$argc!= 2 { else { error "Usage: tgrep pattern filename" set f [open [lindex $argv 1] r] set pat [lindex $argv 0] while {[gets $f line] >= 0 { close $f if [regexp $pat $line] {puts stdout $line Αυτό το script συµπεριφέρεται πολύ σαν το πρόγραµµα grep του UNIX: µπορείτε να το καλέσετε από το κελί σας µε δυο ορίσµατα, ένα δείγµα κανονικής έκφρασης και ένα όνοµα αρχείου, και θα τυπώσει όλες τις σειρές του αρχείου που ταιριάζουν µε το δείγµα. Όταν εκτελείται η tclsh εξετάζει το script και κάνει τα ορίσµατα γραµµής εντολών διαθέσιµα σαν ένα κατάλογο στην µεταβλητή argv, µαζί µε το µήκος αυτού του καταλόγου στην µεταβλητή argc. Αφού σιγουρευτεί ότι έλαβε αρκετά ορίσµατα το script καλεί την εντολή open. Η open παίρνει δυο ορίσµατα, το όνοµα του αρχείου και την µέθοδο πρόσβασης. Η µέθοδος πρόσβασης παρέχει πληροφορίες όπως για το αν θα διαβάζεται το αρχείο ή θα γράφεται, και αν θα θέλετε να ενσωµατώσετε το αρχείο ή να το προσπελάσετε από την αρχή. Η µέθοδος πρόσβασης µπορεί να έχει µια από τις παρακάτω τιµές : r Άνοιγµα µόνο για διάβασµα. Το αρχείο πρέπει να υπάρχει ήδη. Αυτή είναι η προεπιλογή σε περίπτωση που δεν καθορίζεται η µέθοδος πρόσβασης. r+ Άνοιγµα για διάβασµα και εγγραφή. Το αρχείο πρέπει να υπάρχει ήδη. w Άνοιγµα µόνο για εγγραφή. Μετατρέπει το αρχείο να υπάρχει ήδη, αλλιώς δηµιουργεί ένα νέο άδειο αρχείο. w+ Άνοιγµα για διάβασµα και εγγραφή. Μετατρέπει το αρχείο να υπάρχει ήδη αλλιώς δηµιουργεί ένα νέο άδειο αρχείο. a Άνοιγµα για εγγραφή µόνο και τοποθέτηση της αρχικής θέσης πρόσβασης στο τέλος του αρχείου. Αν το αρχείο δεν υπάρχει τότε δηµιουργεί ένα νέο άδειο αρχείο.

13 a+ Άνοιγµα του αρχείου για διάβασµα και εγγραφή και τοποθέτηση της αρχικής θέσης πρόσβασης στο τέλος του αρχείου. Αν το αρχείο δεν υπάρχει τότε δηµιουργεί ένα νέο άδειο αρχείο. Η εντολή open επιστρέφει ένα string όπως για παράδειγµα file3 αναγνωρίζει το ανοιγµένο αρχείο. Αυτός ο αναγνωριστής χρησιµοποιείτε όταν καλούνται άλλες εντολές για να χειριστεί το άνοιγµα του φακέλου, όπως η gets, η puts και η close. Υπάρχουν τρεις αναγνωριστές αρχείων ο stdin, ο stdout και ο stderrror οι οποίοι αναφέρονται στα τυπικά κανάλια εισόδου, εξόδου και λάθους για την διαδικασία στην οποία εκτελείται το Tcl script. Μετά το άνοιγµα του αρχείου στο οποίο γίνεται το ψάξιµο, το tgrep script διαβάζει µια σειρά του αρχείου την φορά µε την εντολή gets. Η gets παίρνει κανονικά δυο ορίσµατα έναν αναγνωριστή αρχείων και το όνοµα µιας µεταβλητής. ιαβάζει την επόµενη γραµµή του ανοιγµένου αρχείου, αποθηκεύει την γραµµή στην ονοµασµένη µεταβλητή και επιστρέφει το σύνολο του αριθµού των χαρακτήρων που αποθηκεύτηκαν στην µεταβλητή. Αν το τέλος του αρχείου φτάσει πριν διαβαστούν χαρακτήρες τότε η gets αποθηκεύει ένα άδειο string στην µεταβλητή και επιστρέφει -1. Για κάθε γραµµή του αρχείου το tgrep script αντιστοιχίζει την γραµµή του δείγµατος και την τυπώνει µε την puts αν ταιριάζουν. Η εντολή puts παίρνει δυο ορίσµατα, που είναι ένας αναγνωριστής αρχείου και ένα string για να τυπωθεί. Η puts προσθέτει έναν χαρακτήρα αλλαγής γραµµής στο τέλος του string και εξάγει την σειρά στο δοσµένο αρχείο. Το script χρησιµοποιεί τον αναγνωριστή stdout έτσι ώστε η σειρά να τυπωθεί σαν τυπική έξοδος. Όταν η tgrep φτάσει στο τέλος του αρχείου τότε η gets επιστρέφει -1, και έτσι τελειώνει ο βρόχος while. Το script στη συνέχεια κλείνει το αρχείο µε την εντολή close, πράγµα που απελευθερώνει τους πόρους που σχετίζονταν µε το ανοιγµένο αρχείο. Στα περισσότερα συστήµατα υπάρχει ένα όριο στο ποσά αρχεία µπορούν να είναι ανοιγµένα την ίδια στιγµή από µια εφαρµογή, όποτε είναι σηµαντικό να κλείνετε τα αρχεία αµέσως µόλις τελειώσετε το διάβασµα ή την εγγραφή σε αυτά. Στο παραπάνω παράδειγµα η εντολή close είναι περιττή διότι το αρχείο θα κλείσει αυτόµατα από τη στιγµή που θα τελειώσει η εφαρµογή. Ο Τρέχων Κατάλογος Εργασίας Η Tcl παρέχει δυο εντολές που βοηθούν στη διαχείριση του τρέχοντα καταλόγου εργασίας: την pwd και cd. Η pwd δε παίρνει κανένα όρισµα και επιστρέφει ολόκληρο το path name του τρέχοντος καταλόγου εργασίας. Η cd παίρνει ένα όρισµα και µετατρέπει τον τρέχοντα κατάλογο εργασίας στην τιµή αυτού του ορίσµατος. Αν η cd κληθεί χωρίς όρισµα τότε µετατρέπει τον τρέχοντα κατάλογο εργασίας στον προσωπικό κατάλογο του χρηστή που τρέχει το Tcl script. ιαχείριση Ονοµάτων Αρχείων : glob και file Η Tcl έχει δυο εντολές για την διαχείριση των ονοµάτων αρχείων : την glob και την file. Η glob παίρνει ένα ή περισσότερα δείγµατα ως ορίσµατα και επιστρέφει ένα κατάλογο από όλα τα ονόµατα αρχείων που ταιριάζουν µε τα δείγµατα : glob *.c *.h main.c hash.c hash.h Στο παραπάνω παράδειγµα η glob επιστρέφει τα ονόµατα όλων των αρχείων στον τρέχοντα κατάλογο που τελειώνουν σε.c ή.h. Η glob επίσης επιτρέπει στα δείγµατα να περιέχουν χωρισµένους µε κόµµατα καταλόγους ανάµεσα σε αγκύλες, όπως φαίνεται στο παρακάτω παράδειγµα : glob {{src,backup/*.[ch] src/main.c src/hash.c src/hash.h backup/hash.c

14 Η glob µεταχειρίζεται αυτό το δείγµα σαν να ήταν πολλά δείγµατα µαζί, µε κάθε ένα να περιέχει κάθε ένα από τα string, όπως στο επόµενο παράδειγµα : glob {src/*.[ch] {backup/*.[ch] Αν ένα δείγµα της glob τελειώνει µε µια κάθετο τότε ταιριάζει µόνο µε τα ονόµατα των καταλόγων. Για παράδειγµα η εντολή: glob */ θα επιστρέψει µια λίστα όλων των υποκαταλόγων του τρέχοντος καταλόγου. Αν η λίστα των ονοµάτων αρχείων που θα επιστραφούν από την glob είναι άδεια τότε παράγεται λάθος. Η δεύτερη εντολή για την διαχείριση των ονοµάτων αρχείων είναι η file. Η file είναι µια γενικού σκοπού εντολή µε πολλές επιλογές οι οποίες µπορούν χρησιµοποιηθούν τόσο για τον χειρισµό των ονοµάτων αρχείων όσο και για την ανάκτηση πληροφοριών από τα αρχεία. Οι εντολές σε αυτό το τµήµα λειτουργούν καθαρά πάνω στα ονόµατα αρχείων. εν κάνουν κλήσεις συστήµατος και δεν ελέγχουν να δυο αν τα ονόµατα αντιστοιχούν πραγµατικά σε φακέλους. Η file dirname επιστρέφει το όνοµα του καταλόγου που περιέχει ένα συγκεκριµένο αρχείο : file dirname /a/b/c /a/b file dirname main.c Η file extension επιστρέφει την επέκταση για ένα όνοµα αρχείου ή ένα κενό string αν το όνοµα δεν έχει καµία επέκταση : file extension src/main.c c Η file rootname επιστρέφει τα πάντα από ένα όνοµα αρχείου εκτός από την επέκταση : file rootname src/main.c src/main file rootname foo foo Τέλος η file tail επιστρέφει το τελευταίο στοιχείο σε ένα όνοµα αρχείου : file tail /a/b/c c file tail foo foo Εντολές για Πληροφορίες Αρχείων Η εντολή file χρησιµοποιείτε για την ανάκτηση πληροφοριών για τα αρχεία. Κάθε µια από τις επιλογές που προσφέρει εκτός από την stat και την lstat έχουν την εξής µορφή: file option name όπου η option καθορίζει την πληροφορία που επιθυµείται, όπως exist ή readable ή size, και η name είναι το όνοµα του αρχείου. Οι επιλογές exists, isfile, isdirectory και type επιστρέφουν πληροφορίες για την φύση του αρχείου. Η file exists επιστρέφει 1 αν υπάρχει το αρχείο µε το όνοµα που δίνεται και 0 αν δεν υπάρχει κανένα αρχείο µε τέτοιο όνοµα ή αν ο τρέχων χρηστής δεν έχει δικαίωµα να ψάξει στους καταλόγους που οδηγούν προς αυτό. Η file isfile επιστρέφει 1 αν το αρχείο είναι ένα συνηθισµένο αρχείο δίσκου και 0 αν είναι κάτι άλλο, όπως ένας κατάλογος ή ένα device αρχείο. Η file isdirectory επιστρέφει 1 αν το αρχείο είναι ένας κατάλογος και 0 αλλιώς. Η file type επιστρέφει ένα string, όπως file, directory ήsocket που αναγνωρίζει τον τύπο του αρχείου. Οι επιλογές readable, writable και executable επιστρέφουν

15 0 ή 1 για να υποδείξουν αν ο τρέχων χρήστης έχει την άδεια να πραγµατοποιήσει τις ενέργειες αυτές στα αρχεία. Η επιλογή owned επιστρέφει 1 αν ο τρέχων χρήστης είναι ο ιδιοκτήτης του αρχείου και 0 αλλιώς. Η επιλογή size επιστρέφει ένα δεκαδικό string που δίνει το µέγεθος του αρχείου σε bytes. Η file mtime επιστρέφει την ώρα της τελευταίας τροποποίησης του αρχείου. Η επιλογή atime επιστρέφει την ώρα της τελευταίας πρόσβασης στο αρχείο. Η επιλογή stat παρέχει έναν απλό τρόπο για να πάρετε πολλές πληροφορίες για ένα αρχείο µε µια φορά. Η file stat επίσης παρέχει προσθετές πληροφορίες τις οποίες δεν µπορείτε να πάρετε µε τις υπόλοιπες επιλογές. Παίρνει δυο προσθετά ορίσµατα, που είναι το όνοµα ενός αρχείου και το όνοµα µιας µεταβλητής, όπως στο παράδειγµα που ακολουθεί : file stat main.c info Σε αυτή την περίπτωση το όνοµα του αρχείου είναι main.c και το όνοµα της µεταβλητής είναι info. Η µεταβλητή θα µεταχειριστεί σαν ένας πίνακας και τα ακόλουθα στοιχεία θα καθοριστούν, το καθένα σαν ένα δεκαδικό string : atime Η ώρα της τελευταίας πρόσβασης. ctime Η ώρα της τελευταίας αλλαγής κατάστασης. dev gid ino Αναγνωριστής των συσκευών που περιέχουν αρχεία. Αναγνωριστής των οµαδοποιηµένων αρχείων. Σειριακός αριθµός για το αρχείο µέσα στη συσκευή του. mode Κατάσταση των bits στο αρχείο. mtime Η ώρα της τελευταίας µετατρoπής. nlink size uid Ο αριθµός των δεσµών στο αρχείο. Το µέγεθος του αρχείου σε bytes. Αναγνωριστής του ιδιοκτήτη χρήστη του αρχείου. Οι επιλογές lstat και readlink µπορούν να χρησιµοποιηθούν για τον χειρισµό συµβολικών δεσµών και µόνο σε συστήµατα που υποστηρίζουν συµβολικούς δεσµούς. Η file lstat είναι ίδια µε την stat για τα κανονικά αρχεία, ενώ η readlink επιστρέφει το περιεχόµενο ενός συµβολικού δεσµού. Λάθη στις Κλήσεις Συστήµατος Οι περισσότερες από τις εντολές που περιγράφηκαν σε αυτό το κεφαλαίο προκαλούν κλήσεις στο λειτουργικό σύστηµα και σε πολλές περιπτώσεις αυτές οι κλήσεις µπορεί να επιστρέψουν λάθη. Αυτό µπορεί να συµβεί αν καλέσετε την open ή την file stat για ένα αρχείο που δεν υπάρχει ή αν ένα Ι/Ο λάθος συµβεί κατά το διάβασµα ενός αρχείου. Οι εντολές Tcl ανιχνεύουν αυτά τα λάθη των κλήσεων συστήµατος στις περισσότερες περιπτώσεις και επιστρέφουν οι ίδιες λάθος. Το µήνυµα λάθους θα αναγνωρίσει το λάθος που παρουσιάστηκε : open hi couldn't open "hi": no such file or directory Όταν ένα λάθος εµφανίζεται σε µια κλήση συστήµατος η Tcl παρέχει την εντολή errorcode που δίνει περισσότερες πληροφορίες για το λάθος. Μπορεί να βρείτε αυτές τις πληροφορίες χρήσιµες για την ανάκτηση από ένα λάθος, όπως για παράδειγµα να καταλάβετε ακριβώς γιατί

16 το αρχείο δεν είναι προσπελάσιµο. Αν ένα λάθος κλήσης συστήµατος έχει εµφανιστεί τότε η errorcode θα αποτελείται από τρία στοιχεία : set errorcode POSIX ENOENT {no such file or directory Το πρώτο στοιχείο είναι το POSIX για να επισηµάνει ότι το λάθος εµφανίστηκε σε µια POSIX κλήση συστήµατος. Το δεύτερο στοιχείο είναι το επίσηµο όνοµα του λάθους. Το τρίτο στοιχείο είναι το µήνυµα λάθους που αντιστοιχεί στο συγκεκριµένο λάθος. ΑΝΑΦΟΡΑ Η Tcl παρέχει διάφορους τρόπους για να αποτραπεί η ειδική ερµηνεία στους χαρακτήρες όπως το $ και το ελληνικό ερωτηµατικό. Αυτές οι τεχνικές καλούνται αναφορά. Έχετε δει ήδη µια µορφή αναφοράς µε την backslash αντικατάσταση. Εκτός από την backslash αντικατάσταση η Tcl παρέχει δύο άλλες µορφές αναφοράς : τα διπλά εισαγωγικά " " και τις αγκύλες {. Τα διπλά εισαγωγικά θέτουν εκτός λειτουργίας τους διαχωριστές λέξης και εντολής, ενώ οι αγκύλες θέτουν εκτός λειτουργίας σχεδόν όλους τους ειδικούς χαρακτήρες. Εάν µια λέξη εσωκλείεται σε διπλά εισαγωγικά, το ελληνικό ερωτηµατικό, οι αλλαγές γραµµής, και οι υπόλοιποι χαρακτήρες κλειδιά στην TCL αντιµετωπίζονται ως συνηθισµένοι χαρακτήρες µέσα στην έκφραση. Ένα προηγούµενο παράδειγµα µπορεί να ξαναγραφεί πιο καθαρά µε τα διπλά εισαγωγικά ως εξής : set team "players:\$15\ncoaches:\$1 " players:$15 coaches:$1 Σηµειώστε ότι τα διπλά εισαγωγικά δεν είναι µέρος της έκφρασης. Παραδείγµατος χάριν, το ακόλουθο χειρόγραφο θέτει στο s ένα string που περιέχει το όνοµα µιας µεταβλητής, την τιµή της, και την τιµή του τετραγώνου της : set a 2 set s "a ison $a; to tetragono toy a einai [expr $a*$a]" a is 2; the square of a is 4 Εάν θα επιθυµούσατε να περιλάβετε διπλά εισαγωγικά σε µια έκφραση, χρησιµοποιήστε την backslash αντικατάσταση. Οι αγκύλες { παρέχουν µια ριζικότερη µορφή αναφοράς όπου όλοι οι ειδικοί χαρακτήρες χάνουν την έννοιά τους. Εάν µια λέξη εσωκλείεται σε αγκύλες οι χαρακτήρες µεταξύ τους είναι η τιµή της έκφρασης κατά λέξη. Καµία αντικατάσταση δεν εκτελείται στη λέξη και οι ειδικοί χαρακτήρες αντιµετωπίζονται ως συνηθισµένοι χαρακτήρες. Ένα παράδειγµα µπορεί να ξαναγραφεί µε αγκύλες ως εξής : set msg { players:\$15\ncoaches:\$1 players:\$15\ncoaches:\$1 Το δολάριο στην έκφραση δεν προκαλεί την αντικατάσταση µεταβλητής και η αλλαγή γραµµής δεν ενεργεί ως διαχωριστής εντολής. Σε αυτήν την περίπτωση η έκφραση \n δεν µπορεί να χρησιµοποιηθεί για να παρεµβάλει µια αλλαγή γραµµής. ΛΙΣΤΕΣ Οι λίστες χρησιµοποιούνται στην Tcl για να διαχειριστούν τις συλλογές των πραγµάτων, όπως όλοι οι χρήστες σε ένα group ή όλα τα αρχεία σε έναν κατάλογο ή όλες τις επιλογές για ένα widget. Οι λίστες επιτρέπουν σε σας να συγκεντρώσετε οποιοδήποτε αριθµό

17 τιµών σε ένα µέρος, να διαµοιράσουν τη συλλογή ως ενιαία οντότητα, και να πάρουν αργότερα τις συστατικές τιµές πάλι πίσω. Μια λίστα είναι µια διατεταγµένη συλλογή στοιχείων όπου κάθε στοιχείο µπορεί να έχει τιµή ένα οποιοδήποτε string, όπως ένα αριθµό, ένα όνοµα ατόµου, το όνοµα ενός παραθύρου ή µια λέξη µιας εντολής Tcl. Οι λίστες αντιπροσωπεύονται ως strings µε µια ιδιαίτερη δοµή, αυτό σηµαίνει ότι µπορείτε να αποθηκεύσετε τους καταλόγους σε µεταβλητές, να τους δακτυλογραφήσετε σε εντολές, και να τους τοποθετήσετε ως στοιχεία άλλων καταλόγων. Παρακάτω θα περιγράφει η δοµή των λιστών και παρουσιάζονται δώδεκα βασικές εντολές για το χειρισµό των λιστών. Οι εντολές αυτές εκτελούν διαδικασίες όπως τη δηµιουργία λιστών, την εισαγωγή και την εξαγωγή στοιχείων, και την έρευνα για συγκεκριµένα στοιχεία. Μια περίληψη αυτών των εντολών φαίνεται στον παρακάτω πίνακα : Concat list?list...? Ενώνει πολλαπλές λίστες σε µία ενιαία (κάθε στοιχείο κάθε λίστας γίνεται ένα στοιχείο της τελικής λίστας ) και επιστρέφει την νέα λίστα. join list?joinstring? Συνδέει τα στοιχεία µιας λίστας µε το joinstring ως διαχωριστή και επιστρέφει το αποτέλεσµα. lappend varname value?value...? Αντιστοιχίζει κάθε τιµή στην µεταβλητή varname ως ένα στοιχείο της λίστας και επιστρέφει τη νέα τιµή της µεταβλητής. ηµιουργεί τη µεταβλητή εάν δεν υπάρχει ήδη. lindex list index Επιστρέφει το στοιχείο της λίστας µε δείκτη index. linsert list index value?value...? Επιστρέφει µια νέα λίστα που διαµορφώνεται τοποθετώντας όλα τα ορίσµατα τιµών ως στοιχεία λίστας πριν από το στοιχείο µε τον δείκτη της λίστας. list value?value...? Επιστρέφει µια λίστα της οποίας τα στοιχεία είναι τα ορίσµατα των τιµών. llength list Επιστρέφει των αριθµό των στοιχείων µιας λίστας. lrange list first last Επιστρέφει έναν κατάλογο που αποτελείται από στοιχεία από την αρχή ως το τέλος του καταλόγου. lreplace list first last?value value...? Επιστρέφει µια νέα λίστα που διαµορφώνεται µε την αντικατάσταση των στοιχείων από την

18 αρχή ως το τέλος της λίστας µε κανένα ή περισσότερα νέα στοιχεία, κάθε ένα από τα οποία διαµορφώνεται από ένα όρισµα τιµής. lsearch?-exact??-glob??-regexp? list pattern Επιστρέφει τον δείκτη του πρώτου στοιχείου της λίστας ή 1 αν δεν υπάρχει. lsort?-ascii??-integer??-real??-command command? \?-increasing??-decreasing? list Επιστρέφει µια νέα λίστα που σχηµατίζεται από την ταξινόµηση των στοιχείων µιας λίστας. split string?splitchars? Επιστρέφει µια λίστα που διαµορφώνεται χωρίζοντας τα string σε στιγµές του SplitChars και µετατρέπει τους χαρακτήρες ανάµεσα σε αυτές τις στιγµές σε στοιχεία λίστας. Η Βασική οµή των Καταλόγων και η Εντολή lindex Mε την απλούστερη µορφή της µια λίστα είναι ένα string που περιέχει οποιοδήποτε αριθµό στοιχείων που χωρίζονται από κενά ή tabs. Για παράδείγµα το string Giannis Anna Maria Dimitris είναι µια λίστα µε τέσσερα στοιχεία. Μπορεί να υπάρξει οποιοσδήποτε αριθµός στοιχείων σε µια λίστα, και κάθε στοιχείο µπορεί να είναι ένα αυθαίρετο string. Η εντολή lindex εξάγει ένα στοιχείο από µια λίστα : lindex { Giannis Anna Maria Dimitris 1 Η lindex παίρνει δύο ορίσµατα, µια λίστα και έναν δείκτη, και επιστρέφει το επιλεγµένο στοιχείο της λίστας. O δείκτης 0 αντιστοιχεί στο πρώτο στοιχείο της λίστας, ο 1 αντιστοιχεί στο δεύτερο στοιχείο και ούτω καθεξής. Εάν ο δείκτης είναι έξω από το εύρος της λίστας επιστρέφεται ένα κενό string. Όταν µια λίστα εισάγεται σε µια εντολή Tcl η λίστα εσωκλείεται συνήθως σε άγκιστρα, όπως στο παραπάνω παράδειγµα. Τα άγκιστρα δεν είναι µέρος της λίστας, αλλά απαιτούνται στη γραµµή εντολής για να περάσουν ολόκληρη τη λίστα στην εντολή ως µεµονωµένη λέξη. Όταν οι λίστες αποθηκεύονται στις µεταβλητές ή εκτυπώνονται, δεν υπάρχουν άγκιστρα γύρω τους : set x { Giannis Anna Maria Dimitris Τα άγκιστρα και τα backslashes µέσα στα στοιχεία λιστών αντιµετωπίζονται από τις εντολές λιστών µε τον ίδιο τρόπο που ο parser της εντολής Tcl τα µεταχειρίζεται στις λέξεις. Αυτό σηµαίνει ότι µπορείτε να εσωκλείσετε ένα στοιχείο λίστας σε άγκιστρα εάν περιέχει διαστήµατα, και µπορείτε να χρησιµοποιήσετε backslashes για να πάρετε ειδικούς χαρακτήρες όπως αγκύλες στα στοιχεία καταλόγων. Τα άγκιστρα χρησιµοποιούνται συχνά για να τοποθετούν λίστες µέσα σε λίστες, όπως στο ακόλουθο παράδειγµα : lindex { a b { c d e f 2 Σε αυτή την περίπτωση το στοιχείο 2 της λίστας είναι από µόνο του µια λίστα µε τρία στοιχεία. εν υπάρχει κανένα όριο στο πόσο βαθιά οι λίστες µπορούν να τοποθετηθούν.

19 ηµιουργία Λιστών : concat, list και llength Η Tcl παρέχει δύο εντολές που συνδυάζουν τα strings για να παράγουν λίστες: concat και list. Κάθε µια από αυτές τις εντολές δέχεται έναν αυθαίρετο αριθµό ορισµάτων, και κάθε µια παράγει µια λίστα σαν αποτέλεσµα. Εντούτοις, διαφέρουν στον τρόπο µε τον οποίο συνδυάζουν τα ορίσµατά τους. Η εντολή concat παίρνει µια ή περισσότερες λίστες ως ορίσµατα και ενώνει όλα τα στοιχεία των λιστών ορισµάτων σε µια ενιαία µεγάλη λίστα: concat { a b c { d e f { g h i a b c d e f g h i Η concat αναµένει από τα ορίσµατά της να έχουν τη σωστή δοµή λιστών, εάν τα ορίσµατα δεν είναι καλοσχηµατισµένες λίστες τότε το αποτέλεσµα µπορεί να µην είναι επίσης µια καλοσχηµατισµένη λίστα. Στην πραγµατικότητα, αυτό που κάνει η concat είναι να συνδέει τα string ορισµάτων της σε ένα µεγάλο string τοποθετώντας κενά ανάµεσα στα ορίσµατα. Το ίδιο αποτέλεσµα µε την concat µπορεί να επιτευχθεί χρησιµοποιώντας διπλά εισαγωγικά: set x {a b c set y {d e set z [concat $x $y] set z "$x $y" Η εντολή λιστας list ενώνει τα ορίσµατα της έτσι ώστε κάθε όρισµα να γίνεται ένα ευδιάκριτο στοιχείο της λίστας που προκύπτει : list {a b c {d e f {g h i Σε αυτήν την περίπτωση, η λίστα που προκύπτει περιλαµβάνει µόνο τέσσερα στοιχεία. Η εντολή list παραγάγει πάντα έναν κατάλογο µε την κατάλληλη δοµή, ανεξάρτητα από τη δοµή των ορισµάτων της (προσθέτει άγκιστρα ή backslashes όπως απαιτούνται), και η εντολή lindex µπορεί πάντα να χρησιµοποιηθεί για να εξαγάγει τα αρχικά στοιχεία µιας λίστας που δηµιουργήθηκε µε την εντολή list. Τα ορίσµατα για την list δεν χρειάζεται να είναι καλοσχηµατισµένες λίστες. Η εντολή llength επιστρέφει τον αριθµό στοιχείων σε µια λίστα : llength {{a b c {d e f {g h i llength a llength { Όπως µπορείτε να δείτε από τα παραδείγµατα, ένα απλό string όπως το a είναι µια λίστα µε ένα στοιχείο και ένα κενό string είναι µια λίστα µε µηδέν στοιχεία. Τροποποίηση Λιστών : linsert, lreplace, lrange και lappend Η εντολή linsert δηµιουργεί µια νέα λίστα προσθέτοντας ένα ή περισσότερα στοιχεία σε µια ήδη υπάρχουσα λίστα : set x {a b {c d e a b {c d e linsert $x 2 X Y Z a b X Y Z {c d e linsert $x 0 {X Y Z

20 {X Y Z a b {c d e Η linsert παίρνει τρία ή περισσότερα ορίσµατα. Το πρώτο είναι µια λίστα, το δεύτερο είναι ένας δείκτης σε ένα στοιχείο αυτής της λίστας και το τρίτο και τα επιπλέον ορίσµατα είναι τα νέα στοιχεία που προστίθενται στη λίστα. Η επιστροφή από την εντολή linsert είναι µια λίστα που δηµιουργείται τοποθετώντας τα νέα στοιχεία ακριβώς πριν από το στοιχείο που υποδεικνύεται από τον δείκτη. Αν ο δείκτης είναι το 0 τότε τα νέα στοιχεία τοποθετούνται στην αρχή της λίστας, αν είναι το 1 τότε τα νέα στοιχεία τοποθετούνται αµέσως µετά από το πρώτο στοιχείο της αρχικής λίστας και ούτω καθεξής. Αν ο δείκτης είναι µεγαλύτερος ή ίσος µε τον αριθµό των στοιχείων τότε τα νέα στοιχεία τοποθετούνται στο τελος της αρχικής λίστας. Η εντολή lreplace διαγράφει στοιχεία από µια λίστα και προαιρετικά προσθέτει νέα στοιχεία στη θέση τους. Παίρνει τρία ή περισσότερα ορίσµατα. Το πρώτο όρισµα είναι µια λίστα και τα δεύτερα και τρίτα ορίσµατα δίνουν τους δείκτες των πρώτων και τελευταίων στοιχείων που διαγράφονται. Εάν µόνο τρία ορίσµατα καθορίζονται τότε το αποτέλεσµα είναι µια νέα λίστα που παράγεται µε τη διαγραφή της δεδοµένης σειράς των στοιχείων από την αρχική λίστα: lreplace {a b {c d e 2 3 a b Αν καθορίζονται επιπλέον ορίσµατα για την εντολή lreplace όπως στο παρακάτω παράδειγµα τότε αυτά τοποθετούνται στη λίστα στην θέση των στοιχείων που διαγράφηκαν : lreplace {a b {c d e 1 2 {W X Y Z a {W X Y Z e Η εντολή lrange εξάγει µια σειρά των στοιχείων από µια λίστα. Παίρνει ως ορίσµατα µια λίστα και δύο δείκτες και επιστρέφει µια νέα λίστα που αποτελείται από τη σειρά των στοιχείων που βρίσκονται µεταξύ των δύο δεικτών : set x {a b {c d e a b {c d e lrange $x 1 3 b {c d e lrange $x 0 1 a b Η εντολή lappend παρέχει έναν αποδοτικό τρόπο να προσαρτηθούν νέα στοιχεία σε µια λίστα που αποθηκεύεται σε µια µεταβλητή. Παίρνει ως ορίσµατα το όνοµα µιας µεταβλητής και κάθε αριθµό πρόσθετων ορισµάτων. Κάθε ένα από τα πρόσθετα ορίσµατα προστίθεται στην τιµή της µεταβλητής ως ένα νέο στοιχείο λίστας και η lappend επιστρέφει τη νέα τιµή της µεταβλητής : set x {a b {c d e a b {c d e lappend x XX {YY ZZ a b {c d e XX {YY ZZ set x a b {c d e XX {YY ZZ

21 Αναζήτηση σε Λίστες : lsearch Η εντολή lsearch ψάχνει σε µια λίστα για ένα στοιχείο µε µια συγκεκριµένη τιµή. Παίρνει δύο ορίσµατα, το πρώτο από τα οποία είναι µια λίστα και το δεύτερο είναι ένα δείγµα : set x { Giannis Anna Maria Dimitris lsearch $x Maria 2 lsearch $x Philipas -1 Η lsearch επιστρέφει το δείκτη του πρώτου στοιχείου στη λίστα που ταιριάζει µε το δείγµα ή -1 εάν δεν υπήρξε κανένα στοιχείο που να ταιριάζει. Μία από τις τρεις διαφορετικές τεχνικές ταιριάσµατος του δείγµατος µπορεί να επιλεχτεί µε τον καθορισµό µιας από τις εντολές - exact, - glob, και - regexp πριν από το όρισµα της λίστας: lsearch -glob $x A* 1 Οι τρεις παραπάνω εντολές περιγράφονται πιο αναλυτικά παρακάτω. Ταξινόµηση Λιστών : lsort Η εντολή lsort παίρνει µια λίστα ως όρισµα και επιστρέφει µια νέα λίστα µε τα ίδια στοιχεία, αλλά ταξινοµηµένο µε την αυξανόµενη αλφαβητική σειρά : lsort { Giannis Anna Maria Dimitris Anna Dimitris Giannis Maria Μπορείτε να χρησιµοποιήσετε οποιαδήποτε από τις αρκετές εντολές που υπάρχουν, πριν από τη λίστα, για να ελέγξετε το είδος της ταξινόµησης. Για παράδειγµα, η - decreasing διευκρινίζει ότι το αποτέλεσµα πρέπει να έχει το "µεγαλύτερο" στοιχείο πρώτα και η - integer διευκρινίζει ότι τα στοιχεία πρέπει να αντιµετωπιστούν ως ακέραιοι αριθµοί και να ταξινοµηθούν σύµφωνα µε την αξία ακέραιων αριθµών : lsort -decreasing { Giannis Anna Maria Dimitris Maria Giannis Dimitris Anna lsort { lsort -integer { Μετατροπές Ανάµεσα σε string και σε Λίστες : split και join Η εντολή split χωρίζει ένα string σε συστατικά κοµµάτια έτσι ώστε να µπορείτε να επεξεργαστείτε τα κοµµάτια ανεξάρτητα. ηµιουργεί µια λίστα της οποίας τα στοιχεία είναι τα κοµµάτια, έτσι ώστε µπορείτε να χρησιµοποιήσετε οποιαδήποτε από τις εντολές καταλόγων για να επεξεργαστείτε τα κοµµάτια. Για παράδειγµα, υποθέστε ότι µια µεταβλητή περιέχει ένα όνοµα αρχείου UNIX µε συστατικά που χωρίζονται από κάθετους, και θέλετε να το µετατρέψετε σε έναν κατάλογο µε ένα στοιχείο για κάθε συστατικό : set x a/b/c

22 set y /usr/include/sys/types.h split $x / a b c split $y / { usr include sys types.h Το πρώτο όρισµα στην split είναι το string που χωρίζεται και το δεύτερο όρισµα περιέχει έναν ή περισσότερους χαρακτήρες διάσπασης. Η split εντοπίζει όλες τις περιπτώσεις οποιουδήποτε από τους χαρακτήρες διάσπασης στο string. ηµιουργεί έπειτα µια λίστα της οποίας τα στοιχεία αποτελούνται από τα substrings µεταξύ των χαρακτήρων διάσπασης. Οι άκρες των strings αντιµετωπίζονται επίσης ως χωρισµένοι χαρακτήρες. Εάν υπάρχουν διαδοχικοί χαρακτήρες διάσπασης ή αν το string αρχίζει ή τελειώνει µε έναν χαρακτήρα διάσπασης όπως στο δεύτερο παράδειγµα, τότε τα κενά στοιχεία παράγονται στη λίστα που προκύπτει. Οι ίδιοι χαρακτήρες διάσπασης απορρίπτονται. Αρκετοί χαρακτήρες διάσπασης µπορούν να καθοριστούν, όπως στο ακόλουθο παράδειγµα: split xabzabhi ab Εάν ένα κενό string ορίζεται για χαρακτήρας διάσπασης τότε κάθε χαρακτήρας του string µετατρέπεται σε ένα χωριστό στοιχείο λίστας: split {a b c { Η εντολή join είναι περίπου το αντίστροφο της split. Συνδέει τα στοιχεία λιστών µαζί µε ένα δεδοµένο string µεταξύ τους : join {{ usr include sys types.h / /usr/include/sys/types.h set x { expr [join $x +] 22 Η join παίρνει δύο ορίσµατα: µια λίστα και ένα string σύνδεσης. Εξάγει όλα τα στοιχεία από τη λίστα και τα συνδέει µαζί µε το string σύνδεσης µεταξύ κάθε ζεύγους στοιχείων. Το string σύνδεσης µπορεί να περιέχει οποιοδήποτε αριθµό χαρακτήρων, συµπεριλαµβανοµένου και του κενού. Στο πρώτο παράδειγµα επάνω ένα όνοµα αρχείου παράγεται µε την ένωση των στοιχείων λίστας µε /. Στο δεύτερο παράδειγµα µια έκφραση Tcl παράγεται µε την ένωση των στοιχείων λίστας µε +". Μια από τις πιο κοινές χρήσεις της split και της join είναι για την διαχείριση ονοµάτων αρχείων όπως παρουσιάζονται παραπάνω. Μια άλλη κοινή χρήση είναι για την διάσπαση κειµένου σε γραµµές µε τη χρησιµοποίηση της αλλαγής γραµµής ως χαρακτήρα διάσπασης. Λίστες και Εντολές Υπάρχει µια πολύ σηµαντική σχέση µεταξύ των λιστών και των εντολών στην Tcl. Οποιαδήποτε λίστα είναι επίσης και µια καλοσχηµατισµένη εντολή Tcl. Εάν µια λίστα αξιολογείται ως ένα Tcl script τότε θα αποτελείται από µια απλή εντολή της οποίας οι λέξεις είναι τα στοιχεία της λίστας. Με άλλα λόγια, ο Tcl parser δεν θα εκτελέσει καµία αντικατάσταση : θα εξαγάγει απλά τα στοιχεία της λίστας µε κάθε στοιχείο να µετατρέπεται σε µια λέξη της εντολής. Αυτή η ιδιότητα είναι πολύ σηµαντική επειδή σας επιτρέπει να παράγετε εντολές Tcl που είναι εγγυηµένες να αναλυθούν µε ένα ιδιαίτερο τρόπο ακόµα κι αν µερικές από τις λέξεις των εντολών περιέχουν ειδικούς χαρακτήρες όπως διαστήµατα ή το $. Παραδείγµατος χάριν, υποθέστε ότι δηµιουργείτε ένα button σε Tk, και όταν πατά ο χρήστης στο widget να επιθυµείτε να επαναφέρετε µια µεταβλητή σε µια συγκεκριµένη τιµή. Μπορείτε να δηµιουργήσετε ένα τέτοιο widget µε µια εντολή όπως αυτή :

23 button.b -text press -command {set x 100 pack.b Το Tcl script set x 100 θα ενεργοποιηθεί όποτε ο χρήστης πατήσει το κουµπί press. Τώρα υποθέστε ότι η τιµή που αποθηκεύεται στη µεταβλητή δεν είναι σταθερή, αλλά υπολογίζεται αµέσως πριν από την εντολή button και πρέπει να ληφθεί από µία µεταβλητή value. Επιπλέον, υποθέστε ότι η value θα µπορούσε να περιέχει οποιοδήποτε string. Μπορείτε να ξαναγράψετε την εντολή ως εξής : button.b -text press -command {set x $value pack.b Το Tcl script set x $value θα αξιολογηθεί όταν ο χρήστης πατά το κουµπί press. Εντούτοις, θα χρησιµοποιηθεί η τιµή της value την στιγµή που ο χρήστης πατά το κουµπί, η οποία µπορεί να µην είναι ίδια µε την τιµή που υπήρχε όταν δηµιουργήθηκε το κουµπί. Για παράδειγµα, η ίδια µεταβλητή µπορεί να χρησιµοποιηθεί για να δηµιουργήσει διάφορα κουµπιά, κάθε ένα µε διαφορετική προοριζόµενη τιµή. Για να λύσετε αυτό το πρόβληµα πρέπει να παράγετε µια εντολή Tcl που να περιέχει την τιµή της value µεταβλητής, όχι το όνοµά της, και να χρησιµοποιήσετε αυτή την εντολή ως µέρος του τµήµατος -command της εντολής button. Εάν η τιµή της value είναι κάτι απλό όπως 47 τότε αυτό θα λειτουργήσει άριστα : η προκύπτουσα εντολή θα είναι set x 47, η οποία θα παράγει το επιθυµητό αποτέλεσµα. Παρόλα αυτά, τι θα γίνει εάν η value περιέχει την τιµή nea smyrni. Σε αυτήν την περίπτωση η προκύπτουσα εντολή θα είναι set x nea smyrni, η οποία έχει τέσσερις λέξεις. Η set θα παράγει λάθος επειδή υπάρχουν πάρα πολλά ορίσµατα. Ακόµα χειρότερα βέβαια, αν η value περιέχει ειδικούς χαρακτήρες όπως το $ ή το [. Αυτοί οι χαρακτήρες θα µπορούσαν να προκαλέσουν ανεπιθύµητες αντικαταστάσεις να προκύψουν όταν αξιολογείται η εντολή. Η µόνη λύση που είναι εγγυηµένη να λειτουργήσει για οποιαδήποτε τιµή της value είναι να χρησιµοποιηθεί εντολή λίστας για να παραχθεί η εντολή, όπως στο ακόλουθο παράδειγµα: button.b -text press -command [list set x $value] pack.b Το αποτέλεσµα της εντολής λίστας είναι µια εντολή Tcl της οποίας η πρώτη λέξη θα είναι η set, η δεύτερη λέξη θα είναι x, και η τρίτη λέξη θα είναι η τιµή της value. Η εντολή θα παράγει πάντα το επιθυµητό αποτέλεσµα και οποιαδήποτε τιµή που αποθηκεύεται στην value την στιγµή που τίθεται σε λειτουργία το button θα αποθηκευτεί στην x όταν το widget τίθεται σε λειτουργία. ΕΛΕΓΧΟΣ ΡΟΗΣ Το παρακάτω κείµενο περιγράφει τις εντολές Tcl για τον έλεγχο της ροής της εκτέλεσης σε ένα χειρόγραφο. Οι Tcl εντολές ελέγχου ροής είναι παρόµοιες µε τις δηλώσεις ελέγχου ροής στη γλώσσα προγραµµατισµού C και csh,όπως είναι οι if, while, for, foreach, switch και eval.

ιαχείριση Πληροφοριών στο ιαδίκτυο

ιαχείριση Πληροφοριών στο ιαδίκτυο ιαχείριση Πληροφοριών στο ιαδίκτυο Εργαστήριο (Φυλλάδιο 8) ΤΕΙ Καβάλας - Σχολή ιοίκησης & Οικονοµίας Τµήµα ιαχείρισης Πληροφοριών ιδάσκων: Μαρδύρης Βασίλειος, ιπλ. Ηλ. Μηχανικός & Μηχ. Υπολογιστών, MSc

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

a = 10; a = k; int a,b,c; a = b = c = 10;

a = 10; a = k; int a,b,c; a = b = c = 10; C: Από τη Θεωρία στην Εφαρµογή Κεφάλαιο 4 ο Τελεστές Γ. Σ. Τσελίκης Ν. Δ. Τσελίκας Ο τελεστής εκχώρησης = Ο τελεστής = χρησιµοποιείται για την απόδοση τιµής (ή αλλιώς ανάθεση τιµής) σε µία µεταβλητή Π.χ.

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

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

ΑΣΚΗΣΗ 2: ΔΟΜΗ ΠΡΟΓΡΑΜΜΑΤΟΣ C, ΧΕΙΡΙΣΜΟΣ ΜΕΤΑΒΛΗΤΩΝ ΚΑΙ ΣΥΝΑΡΤΗΣΕΙΣ ΕΙΣΟΔΟΥ ΚΑΙ ΕΞΟΔΟΥ ΑΣΚΗΣΗ 2: ΔΟΜΗ ΠΡΟΓΡΑΜΜΑΤΟΣ C, ΧΕΙΡΙΣΜΟΣ ΜΕΤΑΒΛΗΤΩΝ ΚΑΙ ΣΥΝΑΡΤΗΣΕΙΣ ΕΙΣΟΔΟΥ ΚΑΙ ΕΞΟΔΟΥ Σκοπός της Άσκησης Ο σκοπός αυτής της εργαστηριακής άσκησης είναι η ανάλυση των βασικών χαρακτηριστικών της Γλώσσας

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

C: Από τη Θεωρία στην Εφαρµογή 2 ο Κεφάλαιο

C: Από τη Θεωρία στην Εφαρµογή 2 ο Κεφάλαιο C: Από τη Θεωρία στην Εφαρµογή Κεφάλαιο 2 ο Τύποι Δεδοµένων Δήλωση Μεταβλητών Έξοδος Δεδοµένων Γ. Σ. Τσελίκης Ν. Δ. Τσελίκας Μνήµη και Μεταβλητές Σχέση Μνήµης Υπολογιστή και Μεταβλητών Η µνήµη (RAM) ενός

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

2.1. Εντολές. 2.2. Σχόλια. 2.3. Τύποι Δεδομένων

2.1. Εντολές. 2.2. Σχόλια. 2.3. Τύποι Δεδομένων 2 Βασικές Εντολές 2.1. Εντολές Οι στην Java ακολουθούν το πρότυπο της γλώσσας C. Έτσι, κάθε εντολή που γράφουμε στη Java θα πρέπει να τελειώνει με το ερωτηματικό (;). Όπως και η C έτσι και η Java επιτρέπει

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

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

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

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

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

Εισαγωγή στον Προγραμματισμό Εισαγωγή στον Προγραμματισμό Αριθμητική Δημήτρης Μιχαήλ Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο Ακ. Έτος 2012-2013 Δεύτερο Πρόγραμμα 1 / * Second Simple Program : add 2 numbers * / 2

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

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

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

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

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

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

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

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

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

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

Εισαγωγή στην γλώσσα προγραμματισμού C

Εισαγωγή στην γλώσσα προγραμματισμού C Εισαγωγή στην γλώσσα προγραμματισμού C Χαρακτηριστικά της C Ιδιαίτερα δημοφιλής Έχει χρησιμοποιηθεί για τον προγραμματισμό ευρέος φάσματος συστημάτων και εφαρμογών Γλώσσα μετρίου επιπέδου Φιλοσοφία: Ο

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

Εισαγωγή στην C. Μορφή Προγράµµατος σε γλώσσα C

Εισαγωγή στην C. Μορφή Προγράµµατος σε γλώσσα C Εισαγωγή στην C Μορφή Προγράµµατος σε γλώσσα C Τµήµα Α Με την εντολή include συµπεριλαµβάνω στο πρόγραµµα τα πρότυπα των συναρτήσεων εισόδου/εξόδου της C.Το αρχείο κεφαλίδας stdio.h είναι ένας κατάλογος

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

Η δήλωση πού δηµιουργεί αποθήκευση τών δεδοµένων ονοµαζεται ορισµός τής µεταβλητής.

Η δήλωση πού δηµιουργεί αποθήκευση τών δεδοµένων ονοµαζεται ορισµός τής µεταβλητής. Από το βιβλίο C: Βήµα-Πρός-Βήµα, Κεφάλαιο 3ο Συγγραφείς: Οµάδα Waite, Mitchell Waite και Stephen Prata Εκδότης: Μ. Γκιούρδας Ανατύπωση σε ηλεκτρονική µορφή: Αλέξανδρος Στεφανίδης 3.4 Τύποι εδοµένων τής

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

S, (5, -3, 34, -23, 7) ( /, @, *, _

S, (5, -3, 34, -23, 7) ( /, @, *, _ 1 Τι είναι αρχείο Οι πληροφορίες που καλείται να διαχειριστεί ο Η/Υ είναι τόσες πολλές που η μνήμη του δεν φτάνει να τις επεξεργαστεί όλες μαζί. Γι αυτό τον λόγο αποθηκεύονται σε μονάδες αποθήκευσης (π.χ

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

Λειτουργικά Συστήματα

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

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

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

Εισαγωγή στον Προγραμματισμό Εισαγωγή στον Προγραμματισμό Πίνακες Δημήτρης Μιχαήλ Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο Ακ. Έτος 2012-2013 Πίνακες Πολλές φορές θέλουμε να κρατήσουμε στην μνήμη πολλά αντικείμενα

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

Διάλεξη 3η: Τύποι Μεταβλητών, Τελεστές, Είσοδος/Έξοδος

Διάλεξη 3η: Τύποι Μεταβλητών, Τελεστές, Είσοδος/Έξοδος Διάλεξη 3η: Τύποι Μεταβλητών, Τελεστές, Είσοδος/Έξοδος Τμήμα Επιστήμης Υπολογιστών, Πανεπιστήμιο Κρήτης Εισαγωγή στην Επιστήμη Υπολογιστών Βασίζεται σε διαφάνειες του Κ Παναγιωτάκη Πρατικάκης (CSD) Μεταβλητές,

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

Προγραμματισμός Ι. Προεπεξεργαστής. Δημήτρης Μιχαήλ. Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο

Προγραμματισμός Ι. Προεπεξεργαστής. Δημήτρης Μιχαήλ. Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο Προγραμματισμός Ι Προεπεξεργαστής Δημήτρης Μιχαήλ Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο Διαδικασία Μεταγλώττισης πρόγραµµα επεξεργασίας κειµένου if a

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

Μερικές άλλες χρήσιμες εντολές

Μερικές άλλες χρήσιμες εντολές 1 Μερικές άλλες χρήσιμες εντολές whoami (Εμφανίζει το όνομα του τρέχοντος χρήστη) pwd (Εμφανίζει το όνομα του τρέχοντος καταλόγου) cat text file name (Παρουσιάζει στην οθόνη το περιεχόμενο ενός αρχείου

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

Προγραμματισμός Ι. Είσοδος/Έξοδος. Δημήτρης Μιχαήλ. Ακ. Έτος 2009-2010. Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο

Προγραμματισμός Ι. Είσοδος/Έξοδος. Δημήτρης Μιχαήλ. Ακ. Έτος 2009-2010. Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο Προγραμματισμός Ι Είσοδος/Έξοδος Δημήτρης Μιχαήλ Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο Ακ. Έτος 2009-2010 Είσοδος/Έξοδος Μέχρι τώρα όποτε θέλαμε να διαβάσουμε χρησιμοποιούσαμε πάντα

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

Shell Scripts: loops / if / test

Shell Scripts: loops / if / test Shell Scripts: loops / if / test Loops with for while until for variable in list_of_values ne while εντολή (επιτυχής) ne until εντολή (επιτυχής) ne For in exi times apo ayti ti lista in 1 2 alla kai alles

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

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

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

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

Θέτοντας και επιστρέφοντας την τιµή της προτεραιότητας διεργασίας

Θέτοντας και επιστρέφοντας την τιµή της προτεραιότητας διεργασίας Θέτοντας και επιστρέφοντας την τιµή της προτεραιότητας διεργασίας Το επίπεδο προτεραιότητας µιας διεργασίας µπορεί να αλλάξει µε χρήση της συνάρτησης nice. Κάθε διεργασία διαθέτει µια τιµή που καλείται

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

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

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

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

Διάλεξη 2. Μεταβλητές - Δομές Δεδομένων - Eίσοδος δεδομένων - Έξοδος: Μορφοποίηση - Συναρτήσεις. Διοργάνωση : ΚΕΛ ΣΑΤΜ

Διάλεξη 2. Μεταβλητές - Δομές Δεδομένων - Eίσοδος δεδομένων - Έξοδος: Μορφοποίηση - Συναρτήσεις. Διοργάνωση : ΚΕΛ ΣΑΤΜ Διάλεξη 2 Μεταβλητές - Δομές Δεδομένων - Eίσοδος δεδομένων - Έξοδος: Μορφοποίηση - Συναρτήσεις Διοργάνωση : ΚΕΛ ΣΑΤΜ Διαφάνειες: Skaros, MadAGu Παρουσίαση: MadAGu Άδεια: Creative Commons 3.0 2 Internal

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

Φροντιστήριο 1ο Εισαγωγή στο FLEX. Flex. Regular Expressions (1/4)

Φροντιστήριο 1ο Εισαγωγή στο FLEX. Flex. Regular Expressions (1/4) HY340 : ΓΛΩΣΣΕΣ ΚΑΙ ΜΕΤΑΦΡΑΣΤΕΣ ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΡΗΤΗΣ, ΣΧΟΛΗ ΘΕΤΙΚΩΝ ΕΠΙΣΤΗΜΩΝ, ΤΜΗΜΑ ΕΠΙΣΤΗΜΗΣ ΥΠΟΛΟΓΙΣΤΩΝ HY340 : ΓΛΩΣΣΕΣ ΚΑΙ ΜΕΤΑΦΡΑΣΤΕΣ Φροντιστήριο 1ο Εισαγωγή στο FLEX Ι ΑΣΚΩΝ Αντώνιος Σαββίδης Slide

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

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

Ανάπτυξη και Σχεδίαση Λογισμικού Ανάπτυξη και Σχεδίαση Λογισμικού Η γλώσσα προγραμματισμού C Γεώργιος Δημητρίου Εκφράσεις και Λίγες Εντολές Οι εκφράσεις της C Τελεστές Απλές και σύνθετες εντολές Εντολές ελέγχου (επιλογής) Εισαγωγή σε

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

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

Εισαγωγή στον Προγραμματισμό Εισαγωγή στον Προγραμματισμό Έλεγχος Δημήτρης Μιχαήλ Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο Ακ. Έτος 2012-2013 Σχεσιακοί Τελεστές και Ισότητας Ένα πρόγραμμα εκτός από αριθμητικές πράξεις

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

ΜΑΗΣ 2007 - ΕΞΕΤΑΣΤΙΚΟ ΔΟΚΙΜΙΟ

ΜΑΗΣ 2007 - ΕΞΕΤΑΣΤΙΚΟ ΔΟΚΙΜΙΟ ΜΑΗΣ 2007 - ΕΞΕΤΑΣΤΙΚΟ ΔΟΚΙΜΙΟ ΟΔΗΓΙΕΣ: ΝΑ ΑΠΑΝΤΗΣΕΤΕ ΣΕ ΟΛΕΣ ΤΙΣ ΕΡΩΤΗΣΕΙΣ. Το εξεταστικό δοκίμιο αποτελείται από δύο Ενότητες Α και Β. ΕΝΟΤΗΤΑ Α - Αποτελείται από δέκα (10) ερωτήσεις. Κάθε ορθή απάντηση

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

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

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

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

Visual Basic Βασικές Έννοιες

Visual Basic Βασικές Έννοιες Visual Basi Βασικές Έννοιες «Είδα στον ύπνο µου ότι η ζωή είναι χαρά. Ξύπνησα και είδα ότι είναι χρέος. Αγωνίστηκα και είδα ότι τo χρέος είναι χαρά.» Ραµπριτανάθ Ταγκόρ Κουλλάς Χρίστος www.oullas.om oullas

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

ΕΡΓΑΣΤΗΡΙΟ 6: Συναρτήσεις και Αναδρομή

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

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

Ανάπτυξη Μεγάλων Εφαρµογών στη Γλώσσα C (2)

Ανάπτυξη Μεγάλων Εφαρµογών στη Γλώσσα C (2) Ανάπτυξη Μεγάλων Εφαρµογών στη Γλώσσα C (2) Στην ενότητα αυτή θα µελετηθούν τα εξής επιµέρους θέµατα: Οργάνωση Προγράµµατος Header Files Μετάφραση και σύνδεση αρχείων προγράµµατος ΕΠΛ 132 Αρχές Προγραµµατισµού

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

ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ Η/Υ Ακαδημαϊκό έτος 2001-2002 ΤΕΤΡΑΔΙΟ ΕΡΓΑΣΤΗΡΙΟΥ #4

ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ Η/Υ Ακαδημαϊκό έτος 2001-2002 ΤΕΤΡΑΔΙΟ ΕΡΓΑΣΤΗΡΙΟΥ #4 ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ Η/Υ Ακαδημαϊκό έτος 2001-2002 ΤΕΤΡΑΔΙΟ ΕΡΓΑΣΤΗΡΙΟΥ #4 «Προγραμματισμός Η/Υ» - Τετράδιο Εργαστηρίου #4 2 Γενικά Στο Τετράδιο #4 του Εργαστηρίου θα αναφερθούμε σε θέματα διαχείρισης πινάκων

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

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

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

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

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

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

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

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

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

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

Στοιχεία Προγραμματισμού Σε Γραφικό Περιβάλλον Φύλλο εργασίας 1 ο

Στοιχεία Προγραμματισμού Σε Γραφικό Περιβάλλον Φύλλο εργασίας 1 ο Τετάρτη, 30 Οκτωβρίου 2013 Στοιχεία Προγραμματισμού Σε Γραφικό Περιβάλλον Φύλλο εργασίας 1 ο Λύστε στο Visual Basic Express 2010 τις παρακάτω ασκήσεις: 1. Να δημιουργήσετε ένα νέο Project του είδους Console

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

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

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

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

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

ΥΠΟΥΡΓΕΙΟ ΠΑΙΔΕΙΑΣ ΚΑΙ ΠΟΛΙΤΙΣΜΟΥ ΔΙΕΥΘΥΝΣΗ ΑΝΩΤΕΡΗΣ ΚΑΙ ΑΝΩΤΑΤΗΣ ΕΚΠΑΙΔΕΥΣΗΣ ΥΠΗΡΕΣΙΑ ΕΞΕΤΑΣΕΩΝ ΠΑΓΚΥΠΡΙΕΣ ΕΞΕΤΑΣΕΙΣ 2006 ΥΠΟΥΡΓΕΙΟ ΠΑΙΔΕΙΑΣ ΚΑΙ ΠΟΛΙΤΙΣΜΟΥ ΔΙΕΥΘΥΝΣΗ ΑΝΩΤΕΡΗΣ ΚΑΙ ΑΝΩΤΑΤΗΣ ΕΚΠΑΙΔΕΥΣΗΣ ΥΠΗΡΕΣΙΑ ΕΞΕΤΑΣΕΩΝ ΠΑΓΚΥΠΡΙΕΣ ΕΞΕΤΑΣΕΙΣ 2006 Μάθημα: ΠΛΗΡΟΦΟΡΙΚΗ Ημερομηνία και ώρα εξέτασης: Τρίτη, 6 Ιουνίου 2006 07:30 10:30

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

ΧΑΡΟΚΟΠΕΙΟ ΠΑΝΕΠΙΣΤΗΜΙΟ

ΧΑΡΟΚΟΠΕΙΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΧΑΡΟΚΟΠΕΙΟ ΠΑΝΕΠΙΣΤΗΜΙΟ Τμημα Πληροφορικης και Τηλεματικης Τσάμη Παναγιώτα ΑΜ: 20833 ΚΑΤΑΝΕΜΗΜΕΝΑ ΣΥΣΤΗΜΑΤΑ Άσκηση 1 Αθήνα 13-12-2011 Αναφορά Ενότητα 1 A Δημιουργήστε στο φλοιό 3 εντολές (alias) που η

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

Διάλεξη 3: Προγραμματισμός σε JAVA I. Διδάσκων: Παναγιώτης Ανδρέου

Διάλεξη 3: Προγραμματισμός σε JAVA I. Διδάσκων: Παναγιώτης Ανδρέου Διάλεξη 3: Προγραμματισμός σε JAVA I Στην ενότητα αυτή θα μελετηθούν τα εξής επιμέρους θέματα: Εισαγωγή στις έννοιες: - Στοιχειώδης Προγραμματισμός - Προγραμματισμός με Συνθήκες - Προγραμματισμός με Βρόγχους

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

Αβδέλαρου Κωνσταντίνα

Αβδέλαρου Κωνσταντίνα ΧΑΡΟΚΟΠΕΙΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ & ΤΗΛΕΜΑΤΙΚΗΣ Αβδέλαρου Κωνσταντίνα 1 η Εργασία στο μάθημα Λειτουργικά Συστήματα Ταύρος, 9 Δεκεμβρίου 2014 Άσκηση 1.1 Το shell script που δημιουργήθηκε είναι:

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

Εισαγωγή στον Προγραμματισμό Εργαστήριο 3: Βοηθητικά προγράμματα του Linux CLI. Οκτώβριος 2014 Χ. Αλεξανδράκη Γ. Δημητρακάκης

Εισαγωγή στον Προγραμματισμό Εργαστήριο 3: Βοηθητικά προγράμματα του Linux CLI. Οκτώβριος 2014 Χ. Αλεξανδράκη Γ. Δημητρακάκης Εισαγωγή στον Προγραμματισμό Εργαστήριο 3: Βοηθητικά προγράμματα του Linux CLI Οκτώβριος 2014 Χ. Αλεξανδράκη Γ. Δημητρακάκης Περίληψη Προηγούμενου Επισκόπηση αρχείων και επεξεργασία κειμένου Εντολές file,

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

Κεφάλαιο 3.5-3.6, 3.2: Συναρτήσεις II. ( ιάλεξη 12) ιδάσκων: ηµήτρης Ζεϊναλιπούρ

Κεφάλαιο 3.5-3.6, 3.2: Συναρτήσεις II. ( ιάλεξη 12) ιδάσκων: ηµήτρης Ζεϊναλιπούρ Κεφάλαιο 3.5-3.6, 3.2: Συναρτήσεις II ( ιάλεξη 12) ιδάσκων: ηµήτρης Ζεϊναλιπούρ 12-1 Ανασκόπηση οµής Προγράµµατος µε Συναρτήσεις #include 1 void PrintMessage (); Πρότυπο ( ήλωση) Συνάρτησης (

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

ΤΕΧΝΟΛΟΓΙΑ ΛΟΓΙΣΜΙΚΟΥ Ι

ΤΕΧΝΟΛΟΓΙΑ ΛΟΓΙΣΜΙΚΟΥ Ι ΤΕΧΝΟΛΟΓΙΑ ΛΟΓΙΣΜΙΚΟΥ Ι κ. ΠΕΤΑΛΙΔΗΣ ΤΜΗΜΑ ΜΗΧΑΝΙΚΩΝ ΠΛΗΡΟΦΟΡΙΚΗΣ ΤΕ 1 Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative Commons. Για εκπαιδευτικό υλικό, όπως εικόνες, που υπόκειται

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

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

Η γλώσσα προγραμματισμού C Η γλώσσα προγραμματισμού C Συναρτήσεις εισόδου/εξόδου, τελεστές Η συνάρτηση scanf() είσοδος δεδομένων Διαβάζει από το πληκτρολόγιο (stdin) μορφοποιημένες τιμές μεταβλητών. scanf (ΣΕΙΡΑ_ΕΛΕΓΧΟΥ, δείκτης_μεταβλητής-1,

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

Προγραμματισμός Ι. Δυναμική Διαχείριση Μνήμης. Δημήτρης Μιχαήλ. Ακ. Έτος 2011-2012. Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο

Προγραμματισμός Ι. Δυναμική Διαχείριση Μνήμης. Δημήτρης Μιχαήλ. Ακ. Έτος 2011-2012. Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο Προγραμματισμός Ι Δυναμική Διαχείριση Μνήμης Δημήτρης Μιχαήλ Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο Ακ. Έτος 2011-2012 Ανάγκη για Δυναμική Μνήμη Στατική Μνήμη Μέχρι τώρα χρησιμοποιούσαμε

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

Κεφάλαιο 1. Τι θα μάθουμε σήμερα: -AND, OR, NOT. -Ενσωματωμένες συναρτήσεις. -Μαθηματικοί τελεστές -ΤΕΛΕΣΤΕΣ DIV ΚΑΙ MOD. -Προτεραιότητα πράξεων

Κεφάλαιο 1. Τι θα μάθουμε σήμερα: -AND, OR, NOT. -Ενσωματωμένες συναρτήσεις. -Μαθηματικοί τελεστές -ΤΕΛΕΣΤΕΣ DIV ΚΑΙ MOD. -Προτεραιότητα πράξεων Κεφάλαιο 1 Αρχή ήμισυ παντός. Πλάτων, 427-347 π.χ., Φιλόσοφος Τι θα μάθουμε σήμερα: -AND, OR, NOT -Ενσωματωμένες συναρτήσεις -Μαθηματικοί τελεστές -ΤΕΛΕΣΤΕΣ DIV ΚΑΙ MOD -Προτεραιότητα πράξεων 1 Λογικές

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

Κεφάλαιο 2.6: Είσοδος / Έξοδος εδοµένων, Μορφοποίηση εδοµένων Εξόδου. ( ιάλεξη 7) ιδάσκων: ηµήτρης Ζεϊναλιπούρ

Κεφάλαιο 2.6: Είσοδος / Έξοδος εδοµένων, Μορφοποίηση εδοµένων Εξόδου. ( ιάλεξη 7) ιδάσκων: ηµήτρης Ζεϊναλιπούρ Κεφάλαιο 2.6: Είσοδος / Έξοδος εδοµένων, Μορφοποίηση εδοµένων Εξόδου ( ιάλεξη 7) ιδάσκων: ηµήτρης Ζεϊναλιπούρ 1 Είσοδος/ Έξοδος Σε σχεδόν όλα τα προγράµµατα πρέπει να πάρουµε κάποια δεδοµένα και να δώσουµε

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

Παράρτημα A: PHP, HTML φόρμες και το πρωτόκολλο HTTP.

Παράρτημα A: PHP, HTML φόρμες και το πρωτόκολλο HTTP. Εργαστήριο #5 Τι πρέπει να έχετε ολοκληρώσει από το προηγούμενο εργαστήριο. Θα πρέπει να ξέρετε να εισάγετε ένα βασικό πρόγραμμα PHP μέσα σε μια ιστοσελίδα, τη χρήση της echo και τον χειρισμό απλών μεταβλητών

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

o AND o IF o SUMPRODUCT

o AND o IF o SUMPRODUCT Πληροφοριακά Εργαστήριο Management 1 Information Συστήματα Systems Διοίκησης ΤΕΙ Τμήμα Ελεγκτικής Ηπείρου Χρηματοοικονομικής (Παράρτημα Πρέβεζας) και Αντικείµενο: Μοντελοποίηση προβλήµατος Θέµατα που καλύπτονται:

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

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

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

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

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

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

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

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

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

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

Ομάδα Γ. Ο υπολογιστής ως επιστημονικό εργαλείο

Ομάδα Γ. Ο υπολογιστής ως επιστημονικό εργαλείο Ομάδα Γ. Ο υπολογιστής ως επιστημονικό εργαλείο Η Mathematica είναι ένα ολοκληρωμένο μαθηματικό πακέτο με πάρα πολλές δυνατότητες σε σχεδόν όλους τους τομείς των μαθηματικών (Άλγεβρα, Θεωρία συνόλων, Ανάλυση,

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

http://users.auth.gr/~ppi/mathematica

http://users.auth.gr/~ppi/mathematica http://users.auth.gr/~ppi/mathematica ΜΑΘΗΜΑΤΙΚΟΙ ΥΠΟΛΟΓΙΣΜΟΙ ΑΡΙΘΜΗΤΙΚΟΙ ΥΠΟΛΟΓΙΣΜΟΙ Γλώσσες Προγραμματισμού Fortran, C++, Java,. ΑΛΓΕΒΡΙΚΟΙ ή ΣΥΜΒΟΛΙΚΟΙ ΥΠΟΛΟΓΙΣΜΟΙ Computer Algebra Systems Mathematica,

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

Μεταφερσιμότητα Τα προγράμματα μεταφέρονται εύκολα σε διαφορετικά λειτουργικά συστήματα

Μεταφερσιμότητα Τα προγράμματα μεταφέρονται εύκολα σε διαφορετικά λειτουργικά συστήματα Η ΓΛΩΣΣΑ C Η C είναι μια γλώσσα προγραμματισμού υψηλού επιπέδου η οποία αναπτύχθηκε στις αρχές της δεκαετίας του 70 από τον Dennis Ritchie στα Bell Labs. Η σημερινή μορφή της γλώσσας ακολουθεί το πρότυπο

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

ΕΓΧΕΙΡΙΔΙΟ ΟΔΗΓΙΩΝ. Πρόγραμμα Διαχείρισης Α.Π.Δ.

ΕΓΧΕΙΡΙΔΙΟ ΟΔΗΓΙΩΝ. Πρόγραμμα Διαχείρισης Α.Π.Δ. ΕΓΧΕΙΡΙΔΙΟ ΟΔΗΓΙΩΝ Πρόγραμμα Διαχείρισης Α.Π.Δ. Περιεχόμενα ΚΕΦΑΛΑΙΟ 1 Εγκατάσταση του προγράμματος 1 ΚΕΦΑΛΑΙΟ 2 Οδηγίες χρήσης προγράμματος με παράδειγμα 2 ΚΕΦΑΛΑΙΟ 3 Αντιγραφή Α.Π.Δ. προηγούμενης περιόδου

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

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

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

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

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

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

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

Singular Report Generator. Σχ 1 ηµιουργία Καταστάσεων SRG

Singular Report Generator. Σχ 1 ηµιουργία Καταστάσεων SRG Μια από τις πιο σηµαντικές ανάγκες που αντιµετωπίζει µια επιχείρηση κατά την εγκατάσταση ενός λογισµικού «πακέτου» (Οικονοµικής & Εµπορικής ιαχείρισης), είναι ο τρόπος µε τον οποίο πρέπει να ανταποκριθεί

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

Δομές Δεδομένων και Αλγόριθμοι

Δομές Δεδομένων και Αλγόριθμοι Δομές Δεδομένων και Αλγόριθμοι Χρήστος Γκόγκος ΤΕΙ Ηπείρου Χειμερινό Εξάμηνο 2014-2015 Παρουσίαση 19 Hashing - Κατακερματισμός 1 / 23 Πίνακες απευθείας πρόσβασης (Direct Access Tables) Οι πίνακες απευθείας

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

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

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

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

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

Εισαγωγή στο Πρόγραμμα Maxima Εισαγωγή στο Πρόγραμμα Maxima Το Maxima είναι ένα πρόγραμμα για την εκτέλεση μαθηματικών υπολογισμών, συμβολικών μαθηματικών χειρισμών, αριθμητικών υπολογισμών και γραφικών παραστάσεων. Το Maxima λειτουργεί

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

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

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

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

Εισαγωγή στο Περιβάλλον Επιστημονικού Προγραμματισμού MATLAB-Simulink. Δημήτριος Τζεράνης Λεωνίδας Αλεξόπουλος

Εισαγωγή στο Περιβάλλον Επιστημονικού Προγραμματισμού MATLAB-Simulink. Δημήτριος Τζεράνης Λεωνίδας Αλεξόπουλος Εισαγωγή στο Περιβάλλον Επιστημονικού Προγραμματισμού MATLAB-Simulink Δημήτριος Τζεράνης Λεωνίδας Αλεξόπουλος 1 Τι είναι τα Matlab και Simulink? Το Matlab (MATrix LABoratory) είναι ένα περιβάλλον επιστημονικού

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

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

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

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

ΚΕΦΑΛΑΙΟ 2: Χειρισµός εδοµένων

ΚΕΦΑΛΑΙΟ 2: Χειρισµός εδοµένων ΚΕΦΑΛΑΙΟ 2: Χειρισµός εδοµένων 2.1 Αρχιτεκτονική Υπολογιστών 2.1 Αρχιτεκτονική Υπολογιστών 2.2 Γλώσσα Μηχανής 2.3 Εκτέλεση προγράµµατος 2.4 Αριθµητικές και λογικές εντολές 2.5 Επικοινωνία µε άλλες συσκευές

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

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

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

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

Εντολές της LOGO (MicroWorlds Pro)

Εντολές της LOGO (MicroWorlds Pro) Εντολές της LOGO (MicroWorlds Pro) Εντολές εμφάνισης (εξόδου) και αριθμητικές πράξεις δείξε Εμφανίζει στην οθόνη έναν αριθμό, το αποτέλεσμα πράξεων, μια λέξη ή μια λίστα (ομάδα) λέξεων. δείξε 200 200 δείξε

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

Εργαστήριο 2ο. Περίγραμμα Εργαστηριακής Άσκησης

Εργαστήριο 2ο. Περίγραμμα Εργαστηριακής Άσκησης Γλώσσες Προγραμματισμού Εργαστήριο 2ο Τύποι Δεδομένων - Είσοδος / Έξοδος Εργαστήριο 2ο Περίγραμμα Εργαστηριακής Άσκησης Εργαστήριο 2ο...1 Θεωρία εργαστηρίου...2 Τύποι δεδομένων...2 Η συνάρτηση printf()...3

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

Μεταφορά Αρχείων µε χρήση της Υπηρεσίας FTP σελ. 1

Μεταφορά Αρχείων µε χρήση της Υπηρεσίας FTP σελ. 1 Μεταφορά Αρχείων µε χρήση της Υπηρεσίας FTP Περιεχόµενα Τι είναι η υπηρεσία FTP;...2 FTP από τη γραµµή εντολών των Windows...2 Το πρόγραµµα WS-FTP...4 Μεταφορά Αρχείων µε χρήση της Υπηρεσίας FTP σελ. 1

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

Διάλεξη 18η: Διαχείρηση Αρχείων

Διάλεξη 18η: Διαχείρηση Αρχείων Διάλεξη 18η: Διαχείρηση Αρχείων Τμήμα Επιστήμης Υπολογιστών, Πανεπιστήμιο Κρήτης Εισαγωγή στην Επιστήμη Υπολογιστών Πρατικάκης (CSD) Αρχεία CS100, 2015-2016 1 / 24 Η βιβλιοθήκη Εισόδου/Εξόδου Στο stdioh

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

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

ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ ΕΠΑΝΑΛΗΠΤΙΚΟ ΔΙΑΓΩΝΙΣΜΑ ΣΧΟΛΙΚΟΥ ΕΤΟΥΣ 2013-2014 ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ ΕΠΑΝΑΛΗΠΤΙΚΟ ΔΙΑΓΩΝΙΣΜΑ ΣΧΟΛΙΚΟΥ ΕΤΟΥΣ 2013-2014 Επιμέλεια: Ομάδα Διαγωνισμάτων από το Στέκι των Πληροφορικών Θέμα Α A1. Να γράψετε στο τετράδιό σας τους

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

Αντικειμενοστραφής Προγραμματισμός I (5 ο εξ) Εργαστήριο #2 ο : Ανατομία προγραμμάτων εφαρμογών, η

Αντικειμενοστραφής Προγραμματισμός I (5 ο εξ) Εργαστήριο #2 ο : Ανατομία προγραμμάτων εφαρμογών, η Αντικειμενοστραφής Προγραμματισμός I (5 ο εξ) Εργαστήριο #2 ο : Ανατομία προγραμμάτων εφαρμογών, η μέθοδος main(), εμφάνιση μηνυμάτων, Java προγράμματα που εκτελούν αριθμητικές πράξεις Γαβαλάς Δαμιανός

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

3ο Εργαστήριο Βασικές εντολές διαχείρισης αρχείων σε LINUX

3ο Εργαστήριο Βασικές εντολές διαχείρισης αρχείων σε LINUX ΤΕΙ ΔΥΤΙΚΗΣ ΕΛΛΑΔΑΣ Τμήμα Μηχανικών Πληροφορικής ΤΕ Λειτουργικά Συστήματα (Εργαστήριο) Διδάσκων: I. Τσακνάκης 3ο Εργαστήριο Βασικές εντολές διαχείρισης αρχείων σε LINUX Αρχικός φάκελος χρήστη Home directory

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

if(συνθήκη) {... // οµάδα εντολών } C: Από τη Θεωρία στην Εφαρµογή 5 ο Κεφάλαιο

if(συνθήκη) {... // οµάδα εντολών } C: Από τη Θεωρία στην Εφαρµογή 5 ο Κεφάλαιο C: Από τη Θεωρία στην Εφαρµογή Κεφάλαιο 5 ο Έλεγχος Προγράµµατος Γ. Σ. Τσελίκης Ν. Δ. Τσελίκας Η εντολή if (Ι) Η εντολή if είναι µία από τις βασικότερες δοµές ελέγχου ροής στη C, αλλά και στις περισσότερες

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

ΓΡΑΠΤΕΣ ΠΡΟΑΓΩΓΙΚΕΣ ΕΞΕΤΑΣΕΙΣ ΙΟΥΝΙΟΥ

ΓΡΑΠΤΕΣ ΠΡΟΑΓΩΓΙΚΕΣ ΕΞΕΤΑΣΕΙΣ ΙΟΥΝΙΟΥ ΓΡΑΠΤΕΣ ΠΡΟΑΓΩΓΙΚΕΣ ΕΞΕΤΑΣΕΙΣ ΙΟΥΝΙΟΥ ΜΑΘΗΜΑ : Πληροφορική Κατεύθυνσης ΤΑΞΗ : Β Αρ. σελίδων : 11 Ηµεροµηνία : 10/6/2008 Ώρα Έναρξης : 7:45 π.µ ιάρκεια : 2 ώρες Ονοµατεπώνυµο :...Τµήµα : Αριθµός :...Βαθµός

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

ΕΓΧΕΙΡΙ ΙΟ ΧΡΗΣΗΣ MODULE: ΝΕΑ - ΑΝΑΚΟΙΝΩΣΕΙΣ

ΕΓΧΕΙΡΙ ΙΟ ΧΡΗΣΗΣ MODULE: ΝΕΑ - ΑΝΑΚΟΙΝΩΣΕΙΣ ΕΓΧΕΙΡΙ ΙΟ ΧΡΗΣΗΣ MODULE: ΝΕΑ - ΑΝΑΚΟΙΝΩΣΕΙΣ VERSION CMS 4.0 ΕΚ ΟΣΗ ΕΓΧΕΙΡΙ ΙΟΥ 4.0.1-2009 ΤΕΛΕΥΤΑΙΑ ΕΝΗΜΕΡΩΣΗ ΙΑΝΟΥΑΡΙΟΣ 2009 Το παρόν εγχειρίδιο διατίθεται µαζί µε την πλατφόρµα ηλεκτρονικού επιχειρείν

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

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

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

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

ΒΑΣΙΚΟΙ ΤΥΠΟΙ ΔΕΔΟΜΕΝΩΝ

ΒΑΣΙΚΟΙ ΤΥΠΟΙ ΔΕΔΟΜΕΝΩΝ Η ΓΛΩΣΣΑ PASCAL ΒΑΣΙΚΟΙ ΤΥΠΟΙ ΔΕΔΟΜΕΝΩΝ Απλοί ή στοιχειώδης Τ.Δ. Ακέραιος τύπος Πραγματικός τύπος Λογικός τύπος Χαρακτήρας Σύνθετοι Τ.Δ. Αλφαριθμητικός 1. Ακέραιος (integer) Εύρος: -32768 έως 32767 Δήλωση

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

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

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

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

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

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

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

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

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

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

Εργαστήριο Δομημένος Προγραμματισμός (C#) Τμήμα Μηχανολογίας Νικόλαος Ζ. Ζάχαρης Καθηγητής Εφαρμογών

Εργαστήριο Δομημένος Προγραμματισμός (C#) Τμήμα Μηχανολογίας Νικόλαος Ζ. Ζάχαρης Καθηγητής Εφαρμογών Εργαστήριο Δομημένος Προγραμματισμός (C#) Τμήμα Μηχανολογίας Νικόλαος Ζ. Ζάχαρης Καθηγητής Εφαρμογών Σκοπός Να αναπτύξουν ένα πρόγραμμα όπου θα επαναλάβουν τα βήματα ανάπτυξης μιας παραθυρικής εφαρμογής.

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

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

Γ' ΛΥΚΕΙΟΥ ΤΕΧΝΟΛΟΓΙΚΗ ΚΑΤΕΥΘΥΝΣΗ ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ ΕΚΦΩΝΗΣΕΙΣ ÏÅÖÅ 1 Γ' ΛΥΚΕΙΟΥ ΤΕΧΝΟΛΟΓΙΚΗ ΚΑΤΕΥΘΥΝΣΗ ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ ΘΕΜΑ 1 ο ΕΚΦΩΝΗΣΕΙΣ Α. Να γράψετε στην κόλλα σας τον αριθµό καθεµιάς από τις παρακάτω προτάσεις 1 5 και δίπλα τη λέξη

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

Κεφάλαιο 5ο: Εντολές Επανάληψης

Κεφάλαιο 5ο: Εντολές Επανάληψης Χρήστος Τσαγγάρης ΕΕ ΙΠ Τµήµατος Μαθηµατικών, Πανεπιστηµίου Αιγαίου Κεφάλαιο 5ο: Εντολές Επανάληψης Η διαδικασία της επανάληψης είναι ιδιαίτερη συχνή, αφού πλήθος προβληµάτων µπορούν να επιλυθούν µε κατάλληλες

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

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

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

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

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

Συστήματα αρίθμησης. = α n-1 *b n-1 + a n-2 *b n-2 + +a 1 b 1 + a 0 όπου τα 0 a i b-1 Συστήματα αρίθμησης Δεκαδικό σύστημα αρίθμησης 1402 = 1000 + 400 +2 =1*10 3 + 4*10 2 + 0*10 1 + 2*10 0 Γενικά σε ένα σύστημα αρίθμησης με βάση το b N, ένας ακέραιος αριθμός με n ψηφία παριστάνεται ως:

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

Έναρξη Τερματισμός του MatLab

Έναρξη Τερματισμός του MatLab Σύντομος Οδηγός MATLAB Β. Χ. Μούσας 1/6 Έναρξη Τερματισμός του MatLab Η έναρξη της λειτουργίας του MatLab εξαρτάται από το λειτουργικό σύστημα. Στα συστήματα UNIX πληκτρολογούμε στη προτροπή του συστήματος

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

Τοµέας Εϖιµόρφωσης & Κατάρτισης

Τοµέας Εϖιµόρφωσης & Κατάρτισης ικαιούχος Φορέας Συµπράττοντες Επιστηµονικοί Φορείς Οδηγίες για την πιστοποίηση των εκπαιδευτικών Τοµέας Εϖιµόρφωσης & Κατάρτισης Αθήνα, Νοέµβριος 2010 Περιεχόµενα 1 ΓΕΝΙΚΕΣ Ο ΗΓΙΕΣ... 3 1.1 Η εξέταση...

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

ΕΠΙΜΟΡΦΩΣΗ ΕΚΠΑΙ ΕΥΤΙΚΩΝ ΣΤΗΝ ΧΡΗΣΗ ΚΑΙ ΑΞΙΟΠΟΙΗΣΗ ΤΩΝ ΤΠΕ ΣΤΗΝ ΕΚΠΑΙ ΕΥΤΙΚΗ Ι ΑΚΤΙΚΗ ΙΑ ΙΚΑΣΙΑ. Οδηγίες για την πιστοποίηση των εκπαιδευτικών

ΕΠΙΜΟΡΦΩΣΗ ΕΚΠΑΙ ΕΥΤΙΚΩΝ ΣΤΗΝ ΧΡΗΣΗ ΚΑΙ ΑΞΙΟΠΟΙΗΣΗ ΤΩΝ ΤΠΕ ΣΤΗΝ ΕΚΠΑΙ ΕΥΤΙΚΗ Ι ΑΚΤΙΚΗ ΙΑ ΙΚΑΣΙΑ. Οδηγίες για την πιστοποίηση των εκπαιδευτικών ΕΠΕΑΕΚ ΙΙ, Άξονας Προτεραιότητας 2, Μέτρο 2.1 ΕΠΙΜΟΡΦΩΣΗ ΕΚΠΑΙ ΕΥΤΙΚΩΝ ΣΤΗΝ ΧΡΗΣΗ ΚΑΙ ΑΞΙΟΠΟΙΗΣΗ ΤΩΝ ΤΠΕ ΣΤΗΝ ΕΚΠΑΙ ΕΥΤΙΚΗ Ι ΑΚΤΙΚΗ ΙΑ ΙΚΑΣΙΑ Οδηγίες για την πιστοποίηση των εκπαιδευτικών Τοµέας Επιµόρφωσης

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

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

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

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

[11] Υπολογιστικά συστήματα: Στρώματα. Περιεχόμενα. Εισαγωγή. επικοινωνία εφαρμογές λειτουργικό σύστημα προγράμματα υλικό

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

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

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

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

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

Κεφάλαιο 4ο: Εντολές επιλογής

Κεφάλαιο 4ο: Εντολές επιλογής Χρήστος Τσαγγάρης ΕΕ ΙΠ Τµήµατος Μαθηµατικών, Πανεπιστηµίου Αιγαίου Κεφάλαιο 4ο: Εντολές επιλογής Μέχρι τώρα παρατηρήσαµε ότι τα προβλήµατα που αντιµετωπίσαµε είχαν σειριακή κίνηση, δηλαδή η µία εντολή

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

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

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

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

Είδη εντολών. Απλές εντολές. Εντολές ελέγχου. Εκτελούν κάποια ενέργεια. Ορίζουν τον τρόπο με τον οποίο εκτελούνται άλλες εντολές

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

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

ΕΓΧΕΙΡΙ ΙΟ ΧΡΗΣΗΣ MODULE: NEWSLETTER

ΕΓΧΕΙΡΙ ΙΟ ΧΡΗΣΗΣ MODULE: NEWSLETTER ΕΓΧΕΙΡΙ ΙΟ ΧΡΗΣΗΣ MODULE: NEWSLETTER VERSION CMS 4.0 ΕΚ ΟΣΗ ΕΓΧΕΙΡΙ ΙΟΥ 4.0.1-2009 ΤΕΛΕΥΤΑΙΑ ΕΝΗΜΕΡΩΣΗ ΙΑΝΟΥΑΡΙΟΣ 2009 Το παρόν εγχειρίδιο διατίθεται µαζί µε την πλατφόρµα ηλεκτρονικού επιχειρείν altab2x

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