Σύγχρονες γλώσσες προγραμματισμού με δυνατότητες εκτέλ σης σε $ενϊρύη% περιβάλλον

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

Download "Σύγχρονες γλώσσες προγραμματισμού με δυνατότητες εκτέλ σης σε $ενϊρύη% περιβάλλον"

Transcript

1 Τ.Ε.Ι ΚΑΒΑΛΑΣ ΣΧΟΛΗ: ΔΙΟΙΚΗΣΗ ΚΑΙ ΟΙΚΟΝΟΜΙΑΣ ΤΜΗΜΑ: ΔΙΑΧΕΙΡΙΣΗ ΠΛΗΡΟΦΟΡΙΩΝ ΠΤΥΧΙΑΚΗ ΕΡΓΑΣΙΑ Σύγχρονες γλώσσες προγραμματισμού με δυνατότητες εκτέλ σης σε $ενϊρύη% περιβάλλον Εισηγητής: κοςστ. Παπαδημητρίου Σπουδαστής: Βασίλειος Μπακάλης Α.Ε.Μ.: 1429 ΚΑΒΑΛΑ 2010

2 / / -τ r λ r r ^ r Σύγχρονες γλώσσες προγραμματισμού με δυνατότητες εκτέλεσης σε Scripting περιβάλλον - ι -

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

4 ΠΙΝΑΚΑΣ ΠΕΡΙΕΧΟΜΕΝΩΝ ΚΕΦΑΛΑΙΟ 1ο 1.1 Τι είναι μια γλώσσα προγραμματισμού; Κοινά χαρακτηριστηκά... 8 ΚΕΦΑΛΑΙΟ 2 ο 1.2 Περιοχές προβλήματος Γλώσσες κελύφους (Εντολή) Επεξεργασία κειμένων και αποτελέσματα εκθέσεων Μαθηματικά και στατιστικές Γλώσσες κόλλας και προγραμματισμός γενικού σκοπού Γλώσσες επέκτασης ΚΕΦΑΛΑΙΟ 3 ο 1.3 Προγραμματισμός World Wide Web Προγράμματα της CGI Ενσωματωμένα από πλευράς προγράμματα Προγράμματα πλευράς πελάτη Java Applets XML και XMHTML...50 ΚΕΦΑΛΑΙΟ 4 ο 1.4 Καινοτόμα χαρακτηριστικά γνωρίσματα Ονόματα και πεδία Χειρισμός συνόλου και σκεδίων Αριθμιτικοί τύποι Προσανατολισμός Αντικειμένου...81 ΚΕΦΑΛΑΙΟ 5 ο 1.5 Συνοπτικές και τελικές παρατηρήσεις ΒΙΒΛΙΟΓΡΑΦΙΑ

5 ΠΡΟΛΟΓΟΣ Οι παραδοσιακές γλώσσες προγραμματισμού προορίζονται πρώτιστα για την κατασκευή των ανεξάρτητων εφαρμογών: προγράμματα που δέχονται κάποιο είδος της εισαγωγής, τα χειρίζονται με κάποιο καλά κατανοητό τρόπο, και παράγουν το κατάλληλο αποτέλεσμα. Αλλά οι περισσότερες πραγματικές χρήσεις των υπολογιστών απαιτούν το συντονισμό πολλαπλών προγραμμάτων. Ένα μεγάλο θεσμικό σύστημα μισθοδοτικών καταστάσεων, παραδείγματος χάριν, πρέπει να επεξεργαστεί τα στοιχεία χρονικής υποβολής εκθέσεων από τους αναγνώστες καρτών, τα ανιχνευμένα έντυπα, και τη χειρωνακτική είσοδο (πληκτρολογίων), εκτελούν χιλιάδες ερωτήσεις βάσεων δεδομένων, επιβάλει τις εκατοντάδες των νομικών και θεσμικών κανόνων, δημιουργεί ένα εκτενές ίχνος χαρτιού για την τήρηση αρχείων, ελέγχει, προετοιμασία φορολογικών, τύπωση επιταγών πληρωμής και επικοινωνία με τους κεντρικούς υπολογιστές γύρω στον κόσμο για τη σε απευθείας σύνδεση άμεσης κατάθεσης, φορολογική παρακράτηση, συσσώρευση συντάξιμων, ιατρική ασφάλεια, και ούτω καθεξής. Αυτοί οι στόχοι είναι πιθανό να περιλάβουν τις δεκάδες ή τις εκατοντάδες των χωριστά εκτελέσιμων προγραμμάτων. Ο συντονισμός μεταξύ αυτών των προγραμμάτων θα απαιτήσει δοκιμές και παραδοχές, τους βρόχους, τις μεταβλητές και τους τύπους, τις υπορουτίνες και τα αυτοαφαιρούμενα είδη των λογικών εργαλείων που μια συμβατική γλώσσα παρέχει μέσα σε μια εφαρμογή. Σε μια πολύ μικρότερη κλίμακα, ένας γραφίστας ή ένας φωτορεπόρτερ μπορεί συνήθως να μεταφορτώσει τις εικόνες από μια ψηφιακή κάμερα να τις μετατρέψει σε μια αγαπημένη μορφή, να περιστρέψει τις εικόνες που γυρίστηκαν στον κάθετο προσανατολισμό, κάτω δείγματα αυτών να δημιουργήσουν εικονίδια αναζητήσημης έκδοσης, να τους συντάξει σε ευρετήριο κατά ημερομηνία, θέμα και ιστόγραμμο χρώματος, να τα κρατήσει εφεδρεία σε απόμακρο αρχείο και έπειτα να επανεκκινήσει την μνήμη της κάμερας. Η εκτέλεση αυτών των βημάτων με το χέρι είναι πιθανό να είναι και κουραστική και επιρρεπής σε λάθη. Σε παρόμοιο πνεύμα, η δημιουργία, μιας δυναμικής ιστοσελίδας μπορεί να απαιτήσει την επικύρωση και την έγκριση, τη συμβούλευση βάσεων δεδομένων, το χειρισμό εικόνας, τη απόμακρη επικοινωνία, και την ανάγνωση και το γράψιμο του κειμένου HTML. Όλα αυτά τα σενάρια προτείνουν μια ανάγκη για προγράμματα που συντονίζουν άλλα προγράμματα. Είναι φυσικά δυνατό να γραφτεί ο κώδικας συντονισμού στην Java, το C, ή κάποια άλλη συμβατική γλώσσα, αλλά είναι όχι πάντα εύκολο. Οι συμβατικές γλώσσες τείνουν να τονίσουν την αποδοτικότητα, τη συντηρησιμότητα, τη φορητότητα, και τη στατική ανίχνευση των λαθών. Τα συστήματα τύπων τους τείνουν να χτιστούν γύρω από τέτοιου επιπέδου hardware έννοιες όπως τους σταθερού μεγέθους ακέραιους αριθμούς, αιωρούμενου σημείου αριθμούς, χαρακτήρες, και σειρές. Σε αντίθεση οι γλώσσες προγραμματισμού τείνουν να τονίσουν την ευελιξία, τη γρήγορη ανάπτυξη, την τοπική προσαρμογή, και το δυναμικό (χρόνος εκτέλεσης) έλεγχο. Τα συστήματα τύπων τους, επιπλέον, τείνουν να αγκαλιάσουν τέτοιες υψηλού επιπέδου έννοιες όπως πίνακες, σχέδια, καταλόγους, και αρχεία. Οι γλώσσες προγραμματισμού γενικού σκοπού όπως το Perl και το Python καλούνται μερικές φορές γλώσσες κόλλας, επειδή είχαν ως αρχικό σκοπό να κολλήσουν τα υπάρχοντα προγράμματα να χτιστεί μαζί ένα μεγαλύτερο σύστημα. Με την αύξηση του World Wide Web, οι γλώσσες προγραμματισμού έχουν κερδίσει νέα διάκριση στην δημιουργία του δυναμικού περιεχομένου. Επίσης χρησιμοποιούνται ευρέως ως γλώσσες επέκτασης, οι οποίες επιτρέπουν στο χρήστη να προσαρμόσει ή να επεκτείνει τη λειτουργία των προγραμματιζόμενων εργαλείων. Εξετάζουμε την ιστορία και τη φύση του προγραμματισμού λεπτομερέστερα στην παράγραφο

6 Γυρίζουμε έπειτα στην παράγραφο 1.2 σε μερικές από τις περιοχές προβλήματος στις οποίες ο προγραμματισμός χρησιμοποιείται ευρέως. Αυτές περιλαμβάνουν την ερμηνεία εντολής (κέλυφος), την επεξεργασία κειμένων και την παραγωγή εκθέσεων, τα μαθηματικά και τις στατιστικές, το συντονισμό προγράμματος γενικού σκοπού, και διαμόρφωση και επέκταση. Στην παράγραφο 1.3 θεωρούμε διάφορες μορφές προγραμματισμού που χρησιμοποιούνται στο World Wide Web, συμπεριλαμβανομένων των προγραμμάτων της CGI, της επεξεργασίας από πλευρά παροχέα και την πλευρά του πελάτη των προγραμμάτων που ενσωματώνονται σε ιστοσελίδες, τα applets της Java, και XSLT. Τέλος, στην παράγραφο 1.4, εξετάζουμε μερικά από πιό ενδιαφέροντα γλωσσικά γνώρισμα, κοινά για πολλές γλώσσες προγραμματισμού, τα οποία τα διακρίνουν από τους παραδοσιακότερους επικρατόντες ξαδέρφους τους. Εξετάζουμε μερικώς την ονομασία, και τη δακτυλογράφηση τον χειρισμό σειράς και σχεδίων και υψηλού επιπέδου δομημένα στοιχεία. Δεν θα παράσχουμε μια λεπτομερή εισαγωγή σε οποιαδήποτε γλώσσα προγραμματισμού, αν και θα εξετάσουμε τα συγκεκριμένα παραδείγματα αρκετά.. Στο μεγαλύτερο μέρος αυτής της εργασίας, η έμφαση θα δοθεί από τις παρακάτω έννοιες

7 ΚΕΦΑΛΑΙΟ Τι είναι μια γλώσσα προγραμματισμού; Οι σύγχρονες γλώσσες προγραμματισμού έχουν δύο κύρια σύνολα προγόνων. Σε ένα σύνολο είναι οι διερμηνείς ή τα κέλυφος εντολής της παραδοσιακής batch και του τερματικού (γραμμής εντολών) υπολογισμού. Στο άλλο σύνολο είναι διάφορα εργαλεία για την επεξεργασία κειμένων και το αποτέλεσμα εκθέσεων. Τα παραδείγματα στο πρώτο σύνολο περιλαμβάνουν το JCL της IBM, το διερμηνέα εντολής MS-DOS, και τη Unix sh και csh τις οικογένειες κελύφους. Τα παραδείγματα στο δεύτερο σύνολο περιλαμβάνουν RPG της IBM, και της Unix sed και awk. Από αυτούς εξελιγμένο Rexx, αναδομημένος εκτεταμένος εκτελεστής της IBM, που χρονολογεί από το 1979, και Perl, που επινοήθηκε αρχικά από τον Larry Wall προς το τέλος της δεκαετίας του '80 και τώρα της ευρύτατα χρησιμοποιημένης γλώσσας προγραμματισμού γενικού σκοπού. Άλλες γλώσσες γενικού προγραμματισμού περιλαμβάνουν Tcl ( γαργάλημα ), Python, το Ruby, VBScript (για τα παράθυρα) και AppleScript (για τη Mac). Με την αύξηση του World Wide Web στα τέλη της δεκαετίας του '90,το Perl υιοθετήθηκε ευρέως για τη δευτερεύουσα προγραμματισμού Ιστού κεντρικών υπολογιστών, στην οποία ένας κεντρικός υπολογιστής δικτύου εκτελεί ένα πρόγραμμα (στη μηχανή του κεντρικού υπολογιστή) να παραχθεί το περιεχόμενο μιας σελίδας. Ένας πρώτος ενθουσιώδης του προγραμματισμού Ιστού ήταν ο Rasmus Lerdorf, ο οποίος δημιούργησε μια συλλογή προγραμμάτων για την πρόσβαση διαδρομής στην προσωπική αρχική σελίδα του. Αρχικά γραπτά σε Perl αλλά σύντομα ξανασχεδιασμένα ως ολοκληρωμένη και ανεξάρτητη γλώσσα, αυτά τα προγράμματα εξελίχθηκαν στα PHP, τώρα η δημοφιλέστερη πλατφόρμα για τον υπολογιστής-δευτερεύουσα προγραμματισμού Ιστού. Οι ανταγωνιστές της PHP περιλαμβάνουν JSP (σελίδες κεντρικών υπολογιστών της Java) και, στις πλατφόρμες της Microsoft, VBScript. Για τον προγραμματισμό στον υπολογιστή πελατών, όλες οι σημαντικές μηχανές αναζήτησης εφαρμόζουν JavaScript, μια γλώσσα που αναπτύχθηκε από την εταιρία Netscape στα μέσα της δεκαετία του '90 και που τυποποιήθηκε από το ECMA (το ευρωπαϊκό σώμα προτύπων) το 1999 [ECM99]. Στο κλασικό έγγραφό του για το προγραμματισμός [Ous98], ο John Ousterhout, ο δημιουργός του Tcl, σημειώνει ότι οι γλώσσες προγραμματισμού υποθέτουν ότι μια συλλογή των χρήσιμων συστατικών υπάρχει ήδη σε άλλες γλώσσες. Προορίζονται όχι για το γράψιμο των εφαρμογών από την αρχή αλλά μάλλον για το συνδυασμό των συστατικών

8 ΣΧΕΔΙΑΣΜΟΣ & ΕΦΑΡΜΟΓΗ Προγραμματισμού στις πλατφόρμες της Microsoft Όπως σε διάφορες άλλες πτυχές του υπολογισμού, η Microsoft τείνει να στηριχθεί στην εσωτερικά αναπτυγμένη τεχνολογία στον τομέα των γλωσσών προγραμματισμού. Οι περισσότερες από τις αιτήσεις προγραμματισμού της είναι βασισμένες σε VBScript, μια διάλεκτος Visual Basic. Συγχρόνως, η Microsoft έχει αναπτύξει μια πολύ γενική διεπαφή προγραμματισμού ( πρόγραμμα παραθύρων) που εφαρμόζεται ομοιόμορφα από το λειτουργικό σύστημα (οικοδεσπότης προγραμμάτων παραθύρων [WSH]), τον κεντρικό υπολογιστή δικτύου (ενεργές σελίδες κεντρικών υπολογιστών [ASP]), και τη μηχανή αναζήτησης του Internet Explorer. Μια εφαρμογή προγραμμάτων παραθύρων JScript, η έκδοση της επιχείρησης JavaScript, έρχεται στις μηχανές παραθύρων, αλλά οι γλώσσες όπως Perl και Python μπορούν να εγκατασταθούν επίσης και να χρησιμοποιηθούν να οδηγήσουν την ίδια διεπαφή. Πολλές άλλες εφαρμογές της Microsoft, συμπεριλαμβανομένου του ολόκληρου πακέτου προγραμμάτων Office, χρησιμοποιούν VBScript ως γλώσσα επέκτασης, αλλά για αυτές το πλαίσιο εφαρμογής (Visual Basic για τις εφαρμογές [VBA]) δεν τις καθιστά εύχρηστες προς άλλες γλώσσες αντ' αυτού. Λαμβάνοντας υπόψη το μερίδιο της Microsoft στην αγορά υπολογισμού υπολογιστών γραφείου, το VBScript είναι μια από τις ευρύτατα χρησιμοποιημένες γλώσσες προγραμματισμού. Δεν χρησιμοποιείται σχεδόν ποτέ σε άλλες πλατφόρμες, εντούτοις, ενώ οι Perl, Tcl, Python, και PHP, και άλλα βλέπουν σημαντική χρήση στα Windows. Για tov προγραμματισμό από πλευράς παροχέα, το PHP υπερισχύει αυτήν την περίοδο: από το Φεβρουάριο του 2005, περίπου 69% των ιστοχώρων 59 εκατομμυρίων δικτυακών τόπων που ερευνήθηκαν από την Netcraft LTD έτρεχαν τον ανοικτής πηγής κεντρικό υπολογιστή δικτύου Apache, και οι περισσότεροι από αυτούς, με ενεργό περιεχόμενο, χρησιμοποιούσαν το PHP. Ο κεντρικός υπολογιστής πληροφοριών Διαδικτύου της Microsoft (IIS) ήταν δεύτερος μετά το Apache, με 21% των περιοχών, και πολλές από εκείνες εγκατέστησαν το PHP επίσης από πλευράς πελατειακού προγραμματισμού, όπου το Internet Explorer ελέγχει περίπου 70% της αγοράς μηχανών αναζήτησης, οι περισσότεροι διαχειριστές ιστοχώρου χρειάζονται το περιεχόμενό τους να είναι ορατό στο άλλο 30%. Ο Explorer υποστηρίζει JavaScript (JScript), αλλά άλλες μηχανές αναζήτησης δεν υποστηρίζουν VBScript. Ο Ousterhout προβλέπει το μέλλον στο οποίο οι προγραμματιστές στηρίζονται όλο και περισσότερο στις γλώσσες προγραμματισμού για την κορυφαία δομή των συστημάτων τους, όπου η σαφήνεια, η ικανότητα επαναχρησιμοποίησης, και η ευκολία της ανάπτυξης είναι κρίσιμες. Οι παραδοσιακές γλώσσες συστημάτων όπως C, C++, ή Java, υποστηρίζει, θα χρησιμοποιηθούν για τα ανεξάρτητα, επαναχρησιμοποιήσιμα τμήματα συστημάτων, τα οποία υπογραμμίζουν τους σύνθε υς αλγορίθμους ή την ταχύτητα εκτέλεσης. Κατά γενικό κανόνα του αντίχειρα, προτείνει ότι ο κώδικας μπορεί να αναπτυχθεί 5 έως 10 φορές γρηγορότερα σε μια γλώσσα προγραμματισμού αλλά θα τρέξει 10 έως 20 χρόνους γρηγορότερα σε μια παραδοσιακή γλώσσα συστημάτων. Μερικοί συντάκτες διατηρούν τον όρο προγραμματισμού για τις γλώσσες κόλλας που χρησιμοποιούνται να συντονίσουν τα πολλαπλάσια προγράμματα. Στην κοινή χρήση, εντούτοις, ο προγραμματισμός είναι μια ευρύτερη και ασαφέστερη έννοια. Περιλαμβάνει σαφώς τον προγραμματισμό Ιστού. Για τους περισσότερους συντάκτες περιλαμβάνει επίσης τις γλώσσες επέκτασης

9 Πολλοί αναγνώστες θα εξοικειωθούν με τις Visual Basic μακροεντολές του Microsoft Office και των σχετικών εφαρμογών. Άλλοι μπορούν να εξοικειωθούν με την ψευδοβασισμένη γλώσσα επέκτασης του συντάκτη κειμένων emacs. Διάφορες γλώσσες, συμπεριλαμβανομένων των Tcl, Rexx, Python, και των διαλέκτων Guile και Elc του Scheme, σχεδιάζουν τις εφαρμογές κατά τέτοιο τρόπο ώστε μπορούν να ενσωματωθούν σε ένα μεγαλύτερο πρόγραμμα και να χρησιμοποιηθούν να επεκτείνουν τα χαρακτηριστικά γνωρίσματά τους. Η επέκταση ήταν στην πραγματικότητα ο αρχικός σκοπός του Tcl. Σε παρόμοιο πνεύμα, διάφορες ευρέως χρησιμοποιημένες εμπορικές εφαρμογές παρέχουν τις ιδιόκτητες γλώσσες επέκτασής τους. Για τον γραφικό προγραμματισμό (GUI) ενδιάμεσων με τον χρήστη, το κουτί εργαλείων Tk, που σχεδιάζεται αρχικά για τη χρήση με Tcl, έχει ενσωματωθεί σε διάφορες γλώσσες προγραμματισμού, συμπεριλαμβανομένου Perl, Python, και του Ruby. Κάποιος μπορεί να δει επίσης το XSLT (εκτατοί γλωσσικοί μετασχηματισμοί stylesheet) ως γλώσσα προγραμματισμού, αν και κάπως διαφορετική από τις άλλες που εξετάζονται σε αυτό το κεφάλαιο. Το XSLT είναι μέλος της αυξανόμενης οικογένειας (γλώσσα επεκτάσιμης σήμανσης) των εργαλείων XML. Το εξετάζουμε περαιτέρω στην παράγραφο της Κοινά χαρακτηριστικά Ενώ είναι δύσκολο να καθοριστούν ακριβώς οι γλώσσες προγραμματισμού, υπάρχουν διάφορα χαρακτηριστικά που τείνουν να έχουν από κοινού. Και ειδική και διαλογική χρήση. Μερικές γλώσσες προγραμματισμού (ειδικότερα το Perl) χρησιμοποιούν έναν επιτόπιο μεταγλωττιστή που επιμένει στην ανάγνωση ολόκληρου του προγράμματος πηγής προτού παραγάγει το οποιοδήποτε αποτέλεσμα. Οι περισσότερες άλλες γλώσσες, εντούτοις, είναι πρόθυμες να συντάξουν ή να ερμηνεύσουν την εισαγωγή τους, γραμμή προς γραμμή. Τα Rexx, Python, Tcl, Guile, το Ruby και (με ένα βραχύ πρόγραμμα αρωγών) θα δεχτούν όλες τις εντολές από το πληκτρολόγιο. Οικονομία της έκφρασης. Να υποστηρίξουν τη γρήγορη ανάπτυξη και τη διαλογική χρήση, οι γλώσσες προγραμματισμού τείνουν να απαιτήσουν ένα ελάχιστο boilerplate. Μερικοί κάνουν τη βαριά χρήση της στίξης και των πολύ κοντών προσδιοριστικών (το Perl είναι πασίγνωστο για αυτό), ενώ άλλοι (π.χ., Rexx, Tcl, και AppleScript) τείνουν να είναι περισσότερο όπως οι Άγγλοι, με πολλά μέρη τους σαν λέξεις και όχι πολλά σημεία στίξης. Όλη η προσπάθεια γίνεται να αποφευχθούν οι εκτενείς δηλώσεις και η κορυφαία δομή κοινή για τις συμβατικές γλώσσες. Όπου ένα τετριμμένο πρόγραμμα μοιάζει με αυτό στην Java: ΠΑΡΑΔΕΙΓΜΑ 1.1. Τετριμμένα προγράμματα στις συμβατικές και γλώσσες προγραμματισμού. class Hello { public static void main(string[] args) { System.out.println("Hello, world!"); } } και σαν αυτό στην Ada: - 8 -

10 with ada.text_io; use ada.text_io; procedure hello is begin put_line("hello, world!"); end hello; στις Perl, Python, η Ruby είναι απλό: print "Hello, world!\n" ΣΧΕΔΑΣΜΟΣ & ΕΦΑΡΜΟΓΗ Σύνταξη των ερμηνευμένων γλωσσών Αρκετές φορές σε αυτό το κεφάλαιο θα κάνουμε να παραπεμφθεί στον μεταγλωττιστή για μια γλώσσα προγραμματισμού. Όπως ότι είδαμε στα παραδείγματα 1.6 και 1.7, οι διερμηνείς δεν εργάζονται σχεδόν ποτέ με τον κωδικό πηγής, ένας προηγούμενος μεταφραστής αντικαθιστά αρχικά εκείνη την πηγή με κάποιο είδος ενδιάμεσης μορφής. Για τις περισσότερες εφαρμογές οι περισσότερες από τις γλώσσες που περιγράφονται σε αυτό το κεφάλαιο, είναι αρκετά σύνθετες στο μπροστινό τους μέρος να αξίζουν το όνομα μεταγλωττιστής. Οι ενδιάμεσες μορφές είναι χαρακτηριστικές αντιπροσωπεύσεις του κώδικα ψηφιολέξεων ενθυμίζουσες εκείνες της Java. ΣΧΕΔΑΣΜΟΣ & ΕΦΑΡΜΟΓΗ Κανονικές εφαρμογές Επειδή εφαρμόζονται με τους διερμηνείς, οι γλώσσες προγραμματισμού, τείνουν να είναι εύκολες στη μεταφορά από το ένα μηχάνημα στο άλλο, ουσιαστικά ευκολότερο από τους μεταγλωττιστές για τους οποίους κάποιος πρέπει να γράψει μια νέα γεννήτρια κώδικα. Λαμβάνοντας υπόψη έναν εγγενή μεταγλωττιστή για τη γλώσσα στην οποία ο διερμηνέας γράφεται, το μόνο δύσκολο μέρος (και μπορεί πράγματι να είναι δύσκολο) είναι να εφαρμοστούν οποιεσδήποτε απαραίτητες τροποποιήσεις στο μέρος του διερμηνέα που παρέχει τη διεπαφή στο λειτουργικό σύστημα. Συγχρόνως, η ευκολία μεταφοράς ενός διερμηνέα σημαίνει ότι διάφορες γλώσσες προγραμματισμού, συμπεριλαμβανομένων των Perl, Python, Tcl, και του Ruby, έχουν μια ενιαία ευρέως χρησιμοποιημένη εφαρμογή, η οποία χρησιμεύει ως ο de facto γλωσσικός καθορισμός. Διαβάζοντας ένα βιβλίο σε Perl, είναι δύσκολο να ειπωθεί πώς ένα λεπτό πρόγραμμα θα συμπεριφερθεί. Σε περίπτωση αμφιβολίας, κάποιος μπορεί να πρέπει να το δοκιμάσει. Το Rexx και JavaScript εμφανίζονται να είναι τα μοναδικά μεταξύ των ευρέως χρησιμοποιημένων γλωσσών προγραμματισμού που έχουν έναν επίσημο καθορισμό που κωδικοποιείται από ένα σώμα διεθνών προτύπων και έναν ανεξάρτητο από οποιαδήποτε εφαρμογή. (Τα sed, awk, και sh έχουν τυποποιηθεί επίσης από POSIX [Int03b], αλλά κανένας από αυτούς δεν έχει την πολυπλοκότητα των Perl, Python, Tcl, ή του Ruby.) - 9 -

11 Έλλειψη δηλώσεων απλοί κανόνες πεδίου. Οι περισσότερες γλώσσες προγραμματισμού διανέμουν με τις δηλώσεις, και παρέχουν απλούς κανόνες να κυβερνηθεί το πεδίο των ονομάτων. Σε μερικές γλώσσες (π.χ., Perl) όλα είναι σφαιρικά εξ ορισμού, οι προαιρετικές δηλώσεις μπορούν να χρησιμοποιηθούν να περιορίσουν μια μεταβλητή σε ένα τοποθετημένο πεδίο. Σε άλλες γλώσσες (π.χ., PHP και Tcl), όλα είναι τοπικά εξ ορισμού σφαιρικά πρέπει να εισαχθούν ρητά. Το Python υιοθετεί τον ενδιαφέροντα κανόνα ότι κάθε μεταβλητή που ορίζει μια αξία είναι τοπική στο φραγμό στον οποίο η ανάθεση εμφανίζεται. Η ειδική σύνταξη απαιτείται να ορίσει μια μεταβλητή σε ένα περιβάλλον πεδίο. Εύκαμπτη δυναμική δακτυλογράφηση. Για την τήρηση των ελλείψεων δηλώσεων, οι περισσότερες γλώσσες προγραμματισμού δακτυλογραφούνται δυναμικά. Σε μερικές (π.χ., PHP, Python, Ruby, και σχέδιο), ο τύπος μιας μεταβλητής ελέγχεται αμέσως πριν από τη χρήση. Σε άλλες (π.χ. Rexx, Perl, και Tcl ), μια μεταβλητή θα ερμηνευθεί διαφορετικά στα διαφορετικά πλαίσια. Παραδείγματος χάριν στο Perl $a = "4"; print $a. 3. "\n"; print $a + 3. "\n"; #. is concatenation # + is addition θα εκτυπώσει 43 7 ΠΑΡΑΔΕΙΓΜΑ 1.2. Εξαναγκασμός προγράμματος σε Perl Αυτή η βασισμένη στα συμφραζόμενα ερμηνεία είναι παρόμοια με τον εξαναγκασμό, εκτός από το ότι δεν υπάρχει απαραιτήτως μια έννοια του φυσικού τύπου από τον οποίο ένα objectmust μετατρέπεται οι διάφορες πιθανές ερμηνείες μπορούν όλες να είναι εξίσου φυσικές. Θα έχουμε περισσότερους που λένε για το πλαίσιο σε Perl στην παράγραφο της Εύκολη πρόσβαση σε άλλα προγράμματα. Οι περισσότερες γλώσσες προγραμματισμού παρέχουν έναν τρόπο να ζητηθεί από το ελλοχεύον λειτουργικό σύστημα να τρέξει ένα άλλο πρόγραμμα, ή να εκτελέσει κάποια λειτουργία άμεσα. Στις γλώσσες προγραμματισμού, εντούτοις, αυτά τα αιτήματα είναι πιο θεμελιώδη, και έχουν αμεσότερη υποστήριξη. Το Perl, είναι ένα, παρέχει καλά πάνω από 100 ενσωματωμένες εντολές που έχουν πρόσβαση στις λειτουργίες λειτουργικών συστημάτων για την εισαγωγή και το αποτέλεσμα, το χειρισμό αρχείων και καταλόγου, τη διαχείριση διαδικασιών, την πρόσβαση βάσεων δεδομένων, τις υποδοχές, την επικοινωνία εσωτερικής διεργασίας και το συγχρονισμό, την προστασία και την έγκριση, το ρολόι χρόνοημέρας, και την επικοινωνία δικτύων. Αυτές οι ενσωματωμένες εντολές είναι γενικά κομμάτι ευκολότερο να χρησιμοποιηθούν από τις αντίστοιχες κλήσεις βιβλιοθηκών στις γλώσσες όπως το C. Περίπλοκος χειρισμός ταιριάσματος σχεδίων και σειράς. Συνεχίζοντας με το κληροδότημα επεξεργασίας κειμένου και παραγωγής αναφορών και να διευκολύνουν το χειρισμό της κειμενικών εισαγωγής και του αποτελέσματος για τα εξωτερικά προγράμματα, οι γλώσσες προγραμματισμού τείνουν να έχουν εξαιρετικά πλούσιες λειτουργίες για το ταίριασμα σχεδίων, την αναζήτηση, και το χειρισμό σειράς. Χαρακτηριστικά αυτές είναι βασισμένες στις εκτεταμένες κανονικές εκφράσεις. Συζητάμε αυτές περαιτέρω στην παράγραφο της

12 Υψηλού επιπέδου τύποι στοιχείων. Οι υψηλού επιπέδου τύποι στοιχείων όπως τα σύνολα, τις τσάντες, τα λεξικά, τους καταλόγους και tuples είναι όλο και περισσότερο κοινοί στις τυποποιημένες συσκευασίες βιβλιοθηκών των συμβατικών γλωσσών προγραμματισμού. Μερικές γλώσσες (ειδικότερα C++) επιτρέπουν στους χρήστες να επαναπροσδιορίσουν τους τυποποιημένους χειριστές επενθημάτων να καταστήσουν αυτούς τους τύπους τόσο εύχρηστους όσο οι πιο πρωτόγονοι, υλικοκεντρικοί τύποι. Οι γλώσσες προγραμματισμού πηγαίνουν ένα βήμα περαιτέρω με την οικοδόμηση των υψηλού επιπέδου τύπων, στη σύνταξη και τη σημασιολογία της ίδιας της γλώσσας. Στις περισσότερες γλώσσες προγραμματισμού, παραδείγματος χάριν, είναι κοινό να υπάρχει μια σειρά που συντάσσεται από τις σειρές χαρακτήρα, με μια ελλοχεύουσα εφαρμογή βασισμένη σε πίνακες hash. Η αποθήκευση είναι αμετάβλητα απορρίμματα συλλεχθέντα. Ένα μεγάλο μέρος της ραγδαίας αλλαγής στις γλώσσες προγραμματισμού σήμερα εμφανίζεται στις γλώσσες προγραμματισμού. Αυτό μπορεί να αποδοθεί σε διάφορες αιτίες, συμπεριλαμβανομένης της συνεχούς αύξησης του Ιστού, του δυναμισμού της κοινότητας ανοικτής πηγής, και της συγκριτικά χαμηλής επένδυσης που απαιτείται να δημιουργήσει μια νέα γλώσσα προγραμματισμού. Όπου μια συνταγμένη, βιομηχανική ποιοτική γλώσσα όπως την Java ή C# απαιτεί μια πολυετή επένδυση από μια πολύ μεγάλης ομάδας προγραμματισμού, ένας μόνο ταλαντούχος σχεδιαστής, που εργάζεται μόνος, μπορεί να δημιουργήσει μια χρησιμοποιήσιμη εφαρμογή μιας νέας γλώσσας προγραμματισμού μόνο σε ένα ή δύο έτη. Οφειλόμενες εν μέρει σε αυτήν την γρήγορη αλλαγή, οι νεότερες γλώσσες προγραμματισμού ήταν σε θέση να ενσωματώσουν μερικές από τις πιο καινοτόμες έννοιες στο γλωσσικό σχέδιο. Το Ruby, παραδείγματος χάριν, έχει ένα ομοιόμορφο πρότυπο αντικειμένου (σαν Smalltalk), τα αληθινά iterators (όπως Clu), τις φέτες σειράς (όπως το FORTRAN 90), το δομημένο χειρισμό εξαίρεσης, τη πολλαπλή ανάθεση, και την αντανάκλαση. Το Python παρέχει επίσης αρκετά από αυτά τα χαρακτηριστικά γνωρίσματα, μαζί με τις ανώνυμες πρώτης τάξεως λειτουργίες, όπως τις κατανοήσεις καταλόγων Haskell. 1.2 Περιοχές προβλήματος ΚΕΦΑΛΑΙΟ 2 Μερικές γλώσσες γενικού σκοπού -Scheme και Visual Basic ιδιαιτέρως- χρησιμοποιούνται ευρέως για τον προγραμματισμό. Αντιθέτως, μερικές γλώσσες προγραμματισμού, συμπεριλαμβανομένου των Perl, Python, και του Ruby, προορίζονται από τους σχεδιαστές τους για χρήση γενικού σκοπού, με χαρακτηριστικά γνωρίσματα που προορίζονται να υποστηρίξουν ευρύτερο προγραμματισμό : ενότητες, χωριστή σύνταξη, αντανάκλαση, περιβάλλοντα ανάπτυξης προγράμματος, και ούτω καθεξής. Ως επί το πλείστον, οι γλώσσες προγραμματισμού τείνουν να δουν την κύρια χρήση τους στις καθορισμένες με σαφήνεια περιοχές προβλήματος. Εξετάζουμε μερικές από αυτούς στις ακόλουθες υποενότητες Γλώσσες Κελύφους (Εντολή) Στις ημέρες της διάτρητης κάρτας υπολογισμού, οι απλές γλώσσες εντολής επέτρεπαν στο χρήστη να πρόγραμματίσει την επεξεργασία μιας στίβας καρτών. Μια κάρτα ελέγχου στην αρχή της στίβας, παραδείγματος χάριν, έδειχνε ότι οι επερχόμενες κάρτες αντιπροσώπευσαν ένα πρόγραμμα που συντάσσεται, ή ίσως μια συμβολική γλώσσα (Assembly) για τον ίδιο τον μεταγλωττιστή, ή εισαγωγή

13 για ένα πρόγραμμα που συντάχθηκε ήδη, αποθηκεύτηκε στον δίσκο. Μια κάρτα ελέγχου που ενσωματώθηκε αργότερα στη στίβα, να εξετάσει τη θέση εξόδων του πρόσφατα εκτελεσμένου προγράμματος και να επιλέξει τι να κάνει έπειτα, βάσιζεται στο εάν εκείνο το πρόγραμμα ολοκληρώθηκε επιτυχώς. Λαμβάνοντας υπόψη τη γραμμική φύση μιας στίβας καρτών, εντούτοις (κάποιος δεν μπορεί σε γενική εφεδρία), οι γλώσσες εντολής για την επεξεργασία κατά δεσμίδες τείνουν να μην είναι πολύ περίπλοκες. Το JCL, παραδείγματος χάριν, δεν έχει καμία δομή επανάληψης Με την ανάπτυξη της διαλογικής κατανομής χρόνου στη δεκαετία του '60 αρχές της δεκαετίας του '70, οι γλώσσες εντολής έγιναν περιπλοκότερες. Ο Louis Pouzin έγραψε έναν απλό διερμηνέα εντολής για CTSS, το Συμβατό Σύστημα Κατανομής Χρόνου στο MIT, το 1963 και το Όταν η εργασία άρχισε στο εφαλτήριο σύστημα Multics το 1964,ο Pouzin σκιαγράφησε το σχέδιο μιας εκτεταμένης γλώσσας εντολής, με την αναφορά και την των μηχανισμών προσπέλασης δηλώσεων, για τους οποίους έπλασε τον όρο κέλυφος. Η επόμενη εφαρμογή που χρησιμεύει ως η έμπνευση για τον Ken Thompson στο σχέδιο του αρχικού κελύφους της Unix το Στα μέσα της δεκαετίας του '70 ο Stephen Bourne και ο John Mashey επέκτειναν ξεχωριστά το κέλυφος Thompson με τη ροή ελέγχου και τις μεταβλητές. Το σχέδιο του Bourne υιοθετήθηκε ως πρότυπο της Unix, που παίρνουν τη θέση (και το όνομα) του κελύφους Thompson, sh. Προς το τέλος της δεκαετίας του '70 ο Bill Joy ανέπτυξε το αποκαλούμενο κέλυφος C (csh), εμπνευσμένος τουλάχιστον εν μέρει με τη σύνταξη Mashey και την εισαγωγή των σημαντικών αυξήσεων για τη διαλογική χρήση, συμπεριλαμβανομένης της ιστορίας, τα ψευδώνυμα, και τον έλεγχο εργασίας. Η έκδοση tcsh του csh προσθέτει συντάκτη γραμμών εντολών και την ολοκλήρωση εντολής. Ο David Korn ενσωμάτωσε αυτούς τους μηχανισμούς σε έναν άμεσο απόγονο του κελύφους Bourne, ksh, το οποίο είναι πολύ παρόμοιο με το τυποποιημένο κέλυφος POSIX [Int03b]. Το δημοφιλές πάλι κέλυφος Bourne, bash, είναι μια ανοικτή έκδοση πηγής ksh. Ενώ το tcsh είναι ακόμα δημοφιλές σε μερικά τέταρτα, τα ksh/bash/posix SH είναι ουσιαστικά καλύτερα για το γράψιμο των προγραμμάτων κελύφους και συγκρίσιμα για τη διαλογική χρήση. Εκτός από τα χαρακτηριστικά γνωρίσματα που σχεδιάζονται για τη διαλογική χρήση, που δεν θα εξετάσουμε περαιτέρω εδώ, οι γλώσσες κελύφους παρέχουν έναν πλούτο μηχανισμών για τον χειρισμό, τα ονόματα αρχείων, τα επιχειρήματα, και τις εντολές, και να κολλήσουν μαζί με άλλα προγράμματα. Τα περισσότερα από αυτά τα χαρακτηριστικά γνωρίσματα διατηρούνται από τις γενικότερες γλώσσες προγραμματισμού. Εξετάζουμε μερικές από αύτες εδώ, χρησιμοποιώντας τη σύνταξη bash. Η συζήτηση αναγκαστικά απλοποιεί βαρέως τα πλήρη στοιχεία που μπορούν να βρεθούν στη σελίδα bash man, ή στις διάφορες απευθείας οδηγίες σύνδεσης. Όνομα αρχείου και μεταβλητή επέκταση Οι περισσότεροι χρήστες ενός κελύφους της Unix εξοικειώνονται με την επέκταση μπαλαντέρ των ονομάτων αρχείων. Η ακόλουθη εντολή θα απαριθμήσει όλα τα αρχεία στον τρέχοντα κατάλογο των οποίων τα ονόματα τελειώνουν σε.pdf. ΠΑΡΑΔΕΙΓΜΑ 1.3. Μπαλαντέρ και globbing ls *.pdf

14 Το κέλυφος επεκτείνει το σχέδιο *.pdf σε έναν κατάλογο όλων των ονομάτων που ταιριάζουν. Εάν υπάρχουν τρεις από τους (πείτε fig1.pdf, fig2.pdf, και fig3.pdf), το αποτέλεσμα είναι ισοδύναμο με ls fig1.pdf fig2.pdf fig3.pdf Η επέκταση ονομάτων αρχείου καλείται μερικές φορές globbing, μετά από την αρχική εντολή glob που την εφάρμοσε η Unix. Εκτός από τους μπαλαντέρ *, κάποιος μπορεί συνήθως να διευκρινίσει ότι αδιαφορώ ή εναλλακτικά χαρακτήρες ή υποσειρές. Το σχέδιο fig?.pdf θα ταιριάξει με (επεκταθεί σε) οποιοδήποτε αρχείο με έναν μονό χαρακτήρα μεταξύ τουg και της τελείας. Το σχέδιο fig?.pdf [0 9] θα απαιτήσει εκείνο τον χαρακτήρα ναείναι ένα ψηφίο. Το σχέδιο fig3. {eps, pdf} θα ταιριάξει και με fig3.eps και fig3.pdf. Η επέκταση ονομάτων αρχείου είναι ιδιαίτερα χρήσιμη στους βρόχους. Τέτοιοι βρόχοι μπορούν να δακτυλογραφηθούν άμεσα από το πληκτρολόγιο, ή να ενσωματωθούν στα προγράμματα προοριζόμενα για την πιό πρόσφατη εκτέλεση. Υποθέστε, παραδείγματος χάριν, ότι επιθυμούμε να δημιουργήσουμε τις εκδόσεις PDF όλων των EPS αριθμών μας: ΠΑΡΑΔΕΙΓΜΑ 1.4. Για τους βρόχους στο κέλυφος for fig in *.eps do ps2pdf $fig done Η δομή for κανονίζει για την μεταβλητή του κελύφους fig να αναλάβει τα ονόματα στην επέκταση *.eps, ένα κάθε φορά, στις διαδοχικές επαναλήψεις του βρόχου. Το σημάδι δολαρίων στη γραμμή 3 αναγκάζει την αξία του fig να επεκταθεί στην εντολή ps2pdf προτού να εκτελεσθεί. (Κατά τρόπο ενδιαφέροντα, ps2pdf είναι το ίδιο ένα πρόγραμμα κελύφους που καλεί το διερμηνέα PostScript gs.) Τα προαιρετικά στηρίγματα μπορούν να χρησιμοποιηθούν να χωρίσουν ένα μεταβλητό όνομα από την ακολουθία των χαρακτήρων, όπως σε $ CP $foo {foo} _backup. Οι πολλαπλάσιες εντολές μπορούν να εισαχθούν σε μια ενιαία γραμμή εάν χωρίζονται από τις άνω τελείες. Ο ακόλουθος, παραδείγματος χάριν, είναι ισοδύναμος με το βρόχο στο προηγούμενο παράδειγμα. ΠΑΡΑΔΕΙΓΜΑ 1.5. Ολόκληρος ένας βρόχος σε μια γραμμή for fig in *.eps; do ps2pdf $fig; done Δοκιμές, ερωτήσεις, και όροι Ο βρόχος του προηγούμενου παραδείγματος θα εκτελέσει ps2pdf για κάθε EPS αρχείο στον τρέχοντα κατάλογο. Υποθέστε, εντούτοις, ότι έχουμε ήδη μερικά αρχεία PDF, και μόνο θέλουμε να δημιουργήσουμε αυτα που λείπουν. for fig in *.eps do target=${fig%.eps}.pdf if [ $fig -nt $target ] then

15 ps2pdf $fig fi done ΠΑΡΑΔΕΙΓΜΑ 1.6. Υπό όρους δοκιμές στο κέλυφος Η τρίτη γραμμή αυτού του προγράμματος είναι μια μεταβλητή ανάθεση. Η έκφραση ${fig%.eps} μέσα στη δεξιά πλευρά επεκτείνει την αξία του fig με οποιοδήποτε ακολουθούμενο.eps να αφαιρείται. Οι παρόμοιες ειδικές επεκτάσεις μπορούν να χρησιμοποιηθούν να εξετάσουν ή να τροποποιήσουν την αξία μιάς μεταβλητής σε πολλούς διαφορετικούς τρόπους. Τις τετράγωνες αγκύλες στη γραμμή τέσσερα οριοθετούν μια υπό όρους δοκιμή. O χειριστής - nt ελέγχει να δει εάν το αρχείο που ονομάζεται από τον αριστερό τελεστή του είναι νεώτερο από το αρχείο που ονομάζεται από το δεξιό τελεστή του (ή εάν ο αριστερός τελεστής υπάρχει αλλά ο δεξιός όχι). Οι παρόμοιοι χειριστές ερώτησης αρχείων μπορούν να χρησιμοποιηθούν να ελέγξουν πολλές άλλες ιδιότητες των αρχείων. Οι πρόσθετοι χειριστές μπορούν να χρησιμοποιηθούν για τις συγκρίσεις αριθμητικής ή σειράς. 4 Το PostScript είναι μια γλώσσα προγραμματισμού που αναπτύχθηκε από την Adobe Systems, ΙΝΟ.για την περιγραφή των εικόνων και των εγγράφων (την εξετάζουμε πάλι στην πλαϊνή μπάρα ). Τοποθετημένο σε κάψα PostScript (EPS) είναι μια περιορισμένη μορφή PostScript προοριζόμενη για τους αριθμούς που πρόκειται να ενσωματωθούν σε άλλα έγγραφα. Η φορητή μορφή εγγράφου (PDF, επίσης από την Adobe) είναι μια ανεξάρτητη μορφή αρχείου που συνδυάζει ένα υποσύνολο PostScript με τους μηχανισμούς ενσωμάτωσης και συμπίεσης γραμματοσειρών. Είναι αυστηρά λιγότερο ισχυρό από το PostScript από μια υπολογιστική προοπτική, αλλά πιό φορητό, και γρηγορότερο και ευκολότερο να αποδώσει. Δίαυλοι και επαναπροσανατολισμός ΠΑΡΑΔΕΙΓΜΑ 1.7. Μια από τις κύριες καινοτομίες της Unix ήταν η δυνατότητα να αλυσοδεθούν οι εντολές μαζί, διοχετεύοντας με σωλήνες το αποτέλεσμα της μιας στην εισαγωγή των επόμενων. Όπως τα περισσότερα κελύφη, bash χρησιμοποιεί τον κάθετο ςχαρακτήρα φραγμών (I) ναδείξει έναν δίαυλο. Ναμετρήσουμε τον αριθμό αριθμών σωλήνων στον κατάλογό μας, χωρίς διάκριση μεταξύ των εκδόσεων EPS και PDF, θα δακτυλογραφήσουμε for fig in *; do echo ${fig%.*}; done Isort -u Iwc -l Εδώ η πρώτη εντολή, βρόχου for, τυπώνει τα ονόματα όλων των αρχείων με τις επεκτάσεις (σημειοεπιθηματικές ) να έχουν αφαιρεθεί. Η εντολή echo μέσα στο βρόχο τυπώνει απλά τα επιχειρήματά της. Η εντολή sort-u μετά από το βρόχο αφαιρεί τα αντίγραφα, και η εντολή wc -l μετρά τις γραμμές. Όπως τα περισσότερα κελύφη, η bash επίσης επιτρέπει στο αποτέλεσμα να κατευθυνθεί σε ένα αρχείο, ή την εισαγωγή που διαβάζεται από ένα αρχείο. Να δημιουργήσουμε έναν κατάλογο αριθμών, θα δακτυλογραφήσουμε for fig in *; do echo ${fig%.*}; done Isort -u > all_figs ΠΑΡΑΔΕΙΓΜΑ 1.8. Επαναπροσανατολισμός αποτέλεσματος

16 ΣΧΕΔΑΣΜΟΣ & ΕΦΑΡΜΟΓΗ Ενσωματωμένες εντολές στο κέλυφος Οι εντολές στο κέλυφος λαμβάνουν γενικά τη μορφή μιας ακολουθίας λέξεων, η πρώτη της οποίας είναι το όνομα της εντολής. Οι περισσότερες εντολές είναι εκτελέσιμα προγράμματα, που βρίσκονται στους καταλόγους για την πορεία αναζήτησης του κελύφους. Ένας μεγάλος αριθμός, εντούτοις (περίπου 50 στο bash) είναι εντολές ενσωματωμένες, που το κέλυφος αναγνωρίζει και εκτελεί το ίδιο, παρά την έναρξη ενός εξωτερικού προγράμματος. Κατά τρόπο ενδιαφέροντα, διάφορες εντολές που είναι διαθέσιμες ως χωριστά προγράμματα αναπαράγονται ως ενσωματωμένες, είτε χάριν της αποδοτικότητας είτε να παρέχουν την πρόσθετη σημασιολογία. Οι υπό όρους δοκιμές, παραδείγματος χάριν, υποστηρίχθηκαν αρχικά από την εξωτερική εντολή δοκιμής (για την οποία οι τετράγωνες αγκύλες είναι συντακτική ζάχαρη), αλλά αυτές εμφανίζονται αρκετά συχνά στα προγράμματα που η ταχύτητα εκτέλεσης βελτιώθηκε σημαντικά όταν προστέθηκε μια ενσωματωμένη έκδοση. Σε αντίθεση, η εντολή kill δεν χρησιμοποιείται πολύ συχνά, η ενσωματωμένη έκδοση επιτρέπει στην διαδικασία να προσδιοριστεί από τον μικρό ακέραιο αριθμό ή τα συμβολικά ονόματα από το μηχανισμό ελέγχου εργασίας του κελύφους. Η εξωτερική έκδοση υποστηρίζει μόνο τα μακρύτερα και συγκριτικά ασήμαντα προσδιοριστικά διαδικασίας που παρέχονται από το λειτουργικό σύστημα. Το σημάδι μεγαλύτερο από δείχνει τον επαναπροσανατολισμό αποτέλεσματος. Εάν διπλασιαστεί (είδος - u >> all_figs) αναγκάζει το αποτέλεσμαναεπισυναφθεί στο διευκρινισμένο αρχείο, παρά την επικάλυψη του προηγούμενου περιεχομένου. Σε παρόμοιο πνεύμα, το σημάδι λιγότερο από δείχνει επαναπροσανατολισμό εισαγωγής. Υποθέστε ότι θέλουμε να τυπώσουμε τον κατάλογο όλων των αριθμών μας σε μια γραμμή, που χωρίζονται από τα διαστήματα, αντί σε πολλαπλές γραμμές. Σε ένα σύστημα της Unix μπορούμε να δακτυλογραφήσουμε: tr \n < all_figs Αυτή η επίκληση της τυποποιημένης εντολής tr μετατρέπει όλους τους χαρακτήρες αλλαγών γραμμής σε διαστήματα. Επειδή το tr γράφτηκε ως απλό φίλτρο, δεν δέχεται έναν κατάλογο αρχείων στη γραμμή εντολής διαβάζει μόνο την τυποποιημένη εισαγωγή. Για οποιοδήποτε πρόγραμμα εκτέλεσης Unix, το λειτουργικό σύστημα παρακολουθεί έναν καταλόγο ανοικτών αρχείων. Από τη σύμβαση, η τυποποιημένη εισαγωγή και το τυποποιημένο αποτέλεσμα (stdin και stdout) είναι αριθμοί αρχείων 0 και 1. Το αρχείο αριθμόυ 2 είναι εκ παραδοχής τυποποιημένο λάθος (stderr), στο οποίο τα προγράμματα είναι υποτιθέμενα να τυπώσουν τα διαγνωστικά μηνύματα λάθους. Ένα από τα πλεονεκτήματα της οικογένειας των κελύφων sh πέρα από την οικογένεια csh είναι η δυνατότητα να επαναπροσανατολίσει stderr και άλλος ανοικτά ανεξάρτητα αρχεία του stdin και stdout. Εξετάστε, παραδείγματος χάριν, το πρόγραμμα ps2pdf. Κάτω από

17 κανονικές περιστάσεις αυτό το πρόγραμμα λειτουργεί σιωπηλά. Εάν αντιμετωπίσει ένα λάθος, εντούτοις, τυπώνει ένα μήνυμα στο stdout και εγκαταλείπει. Αυτή η παραβίαση της σύμβασης (το μήνυμα πρέπει να πάει στο stderr) είναι αβλαβής όταν επικαλείται η εντολή από το πληκτρολόγιο. Εάν ενσωματώνεται σε ένα πρόγραμμα, εντούτοις και το αποτέλεσμα του προγράμματος κατευθύνεται σε ένα αρχείο, το μήνυμα λάθους μπορεί να καταλήξει στο αρχείο αντί στην οθόνη, και να περάσει απαρατήρητο από το χρήστη. Με το bash μπορούμε να δακτυλογραφήσουμε: ps2pdf my_fig.eps 1>&2 ΠΑΡΑΔΕΙΓΜΑ 1.9. Επαναπροσανατολισμός του stderr και stdout Εδώ 1>&2 σημαίνουν κάνε το ps2pdf να στείλει το αρχείο 1 (stdout) στο ίδιο μέρος όπου το περιβάλλον πλαίσιο θα έστελνε κανονικά το αρχείο 2 (stderr). Τέλος, όπως τα περισσότερα κελύφη, bash επιτρέπουν στο χρήστη να παρέχει την εισαγωγή σε μια ευθύγραμμη εντολή: tr \n <<END list of input lines END ΠΑΡΑΔΕΙΓΜΑ 1.10 Heredocs (ευθύγραμμη εισαγωγή) Το <<END δείχνει ότι οι επόμενες γραμμές εισαγωγής, μέχρι μια γραμμή που περιέχει μόνο το END, πρόκειται να παρασχεθούν ως εισαγωγή στο tr. Τέτοια ευθύγραμμη εισαγωγή (παραδοσιακά αποκαλούμενη εδώ έγγραφο ) σπάνια χρησιμοποιείται αμφίδρομα, αλλά είναι ιδιαίτερα χρήσιμη στα προγράμματα κελύφους. Αναφορά και επέκταση Τα κελύφη παρέχουν χαρακτηριστικά αρκετών αναφέρομενων μηχανισμών στις ομάδες λέξεις μαζί στις σειρές. Τα μονά (προς τα εμπρός) αποσπάσματα εμποδίζουν το όνομα αρχείου και τη μεταβλητή επέκταση στο αναφερμένο κείμενο, και την αναγκάζουν να αντιμετωπιστούν ως μεμονωμένη λέξη, ακόμα κι αν περιέχει το άσπρο διάστημα. Τα διπλά αποσπάσματα αναγκάζουν επίσης το περιεχόμενο να αντιμετωπιστεί ως μεμονωμένη λέξη, αλλά δεν εμποδίζει την επέκταση. Κατά συνέπεια foo=bar single= $foo double="$foo" echo $single $double θα τυπώσει $foo bar. ΠΑΡΑΔΕΙΓΜΑ Ενιαία και διπλά αποσπάσματα

18 Διάφορες άλλες δομές αγκυλών στο bash ομαδοποιούν το μέσα κείμενο, για διάφορους λόγους. Οι κατάλογοι εντολής εσωκλειόμενοι σε παρένθεση περνούν σε ένα subshell για αξιολόγηση. Εάν η παρένθεση ανοίγματος προηγείται από ένα σημάδι δολαρίων, το αποτέλεσμα του τοποθετημένου καταλόγου εντολής επεκτείνεται στο περιβάλλον πλαίσιο for fig in $(cat my_figs); do ps2pdf ${fig}.eps; done ΠΑΡΑΔΕΙΓΜΑ Subshells Εδώ η cat είναι η τυποποιημένη εντολή τύπωσης του περιεχόμενου ενός αρχείου. Τα περισσότερα κελύφη χρησιμοποιούν προς τα πίσω τα ενιαία αποσπάσματα για τον ίδιο σκοπό (' cat my_figs '). Η bash υποστηρίζει αυτήν την σύνταξη επίσης, για οπίσθια συμβατότητα. Οι κατάλογοι εντολής που εσωκλείονται στις αγκύλες αντιμετωπίζονται από το bash ως ενιαία μονάδα. Μπορούν να χρησιμοποιηθούν, παραδείγματος χάριν, για να επαναπροσανατολίσουν το αποτέλεσμα μιας ακολουθίας εντολών: { date; ls; } >> file_list ΠΑΡΑΔΕΙΓΜΑ Αναφερόμενα στις αγκύλες πλαίσια μεσα στο κέλυφος Αντίθετα από τους κατάλογους, οι εντολές που εσωκλείονται στις αγκύλες εκτελούνται από το τρέχον κέλυφος. Από μια προοπτική γλωσσών προγραμματισμού, οι παρενθέσεις και οι αγκύλες συμπεριφέρονται ανάποδα από τον τρόπο που κάνουν στο C: οι παρενθέσεις εισάγουν ένα τοποθετημένο δυναμικό πεδίο στο bash, ενώ οι αγκύλες είναι καθαρά για την ομαδοποίηση. Εν μέρη, οι μεταβλητές που ορίζονται, οι νέες τιμές μέσα στο a, ο κατάλογος εντολής θα επανέλθουν στις προηγούμενες τιμές τους μόλις ολοκληρώσει ο κατάλογος την εκτέλεση. ΠΑΡΑΔΕΙΓΜΑ Όταν δεν περιβάλλονται από το άσπρο διάστημα, οι αγκύλες εκτελούν τον βασιζόμενο στο σχέδιο καταλόγο αποτελεσμάτων, κατά τρόπο παρόμοιο με την επέκταση ονομάτων αρχείου αλλά χωρίς τη σύνδεση στο σύστημα αρχείων. Παραδείγματος χάριν, τυπωμένες οι echo abc12xyz abc34xyz abc56xyz abc { } xyz. Επίσης, δεδομένου ότι έχουμε δει, οι αγκύλες χρησιμεύουν για να οριοθετήσουν τα μεταβλητά ονόματα όταν προηγείται η αγκύλη ανοίγματος από ένα σημάδι δολαρίων. Στο παράδειγμα 1.6 χρησιμοποιήσαμε τις τετράγωνες αγκύλες για να εσωκλείσουμε μια υπό όρους έκφραση.οι διπλές τετράγωνες αγκύλες εξυπηρετούν έναν παρόμοιο σκοπό, αλλά με περισσότερη, όπως στην C, σύνταξη έκφρασης, και χωρίς επέκταση ονομάτων αρχείου. Οι διπλές παρενθέσεις χρησιμοποιούνται για να εσωκλείσουν τους αριθμητικούς υπολογισμούς, πάλι με, όπως στην C, σύνταξη. Η παρεμβολή των εντολών στο $ () ή τα ανάποδα εισαγωγικά, τα σχέδια μέσα σε {}, και οι αριθμητικές εκφράσεις μέσα σε (()) είναι όλες οι εξεταζόμενες μορφές επέκτασης, ανάλογως με την επέκταση των ονομάτων αρχείου και τη μεταβλητή επέκταση. Ο διαχωρισμός των σειρών στις λέξεις θεωρείται επίσης μορφή επέκτασης, όπως είναι η αντικατάσταση, σε ορισμένα πλαίσια, των χαρακτήρων tilde (~) με το όνομα του εγχώριου καταλόγου του χρήστη. Όλοι που λέγονται, μας δίνουν επτά διαφορετικά είδη επέκτασης στο bash. Όλες οι διάφορες δομές αγκυλών έχουν κανόνες μέσα σ υς οποίους τα είδη επέκτασης εκτελούνται. Οι

19 κανόνες προορίζονται να είναι όσο το δυνατόν πιό διαισθητικοί, αλλά δεν είναι ομοιόμορφοι στα κατασκευάσματα. Η επέκταση ονομάτων αρχείου, παραδείγματος χάριν, δεν εμφανίζεται μέσα [[]] - βαλμένη σε παρένθεση όροι. Ομοίως, ένας διπλός χαρακτήρας αποσπάσματος μπορεί να εμφανιστεί μέσα σε μια διπλός-αναφερμένη σειρά εάν δραπετεύσει με μια αντίστροφη κάθετο, αλλά ένας ενιαίος χαρακτήρας αποσπάσματος μπορεί να μην εμφανιστεί μέσα σε μια ενιαία-αναφερμένη σειρά. Λειτουργίες Οι χρήστες μπορούν να καθορίσουν τις λειτουργίες στο bash εκείνο το έπειτα εργάζονται όπως τις ενσωματωμένες εντολές. Πολλοί χρήστες, παραδείγματος χάριν, καθορίζουν ll ως συντομότερος δρόμος για το LS - λ, το οποίο απαριθμεί τα αρχεία στον τρέχοντα κατάλογο με το μακροχρόνιο σχήμα: : function ll () { ls -l } ΠΑΡΑΔΕΙΓΜΑ Καθορισμένες από το χρήστη λειτουργίες κελύφους Μέσα στη λειτουργία, $1 αντιπροσωπεύουν την πρώτη παράμετρο, $2 αντιπροσωπεύουν τη δεύτερη, και ούτω καθεξής. Στον καθορισμό του ll, αντιπροσωπεύει τον ολόκληρο κατάλογο παραμέτρου. Οι λειτουργίες μπορούν να είναι αυθαίρετα σύνθετες. In particular^ bash υποστηρίζει και τις τοπικές μεταβλητές και επαναδρομολογήσεις. Τα κελύφη στην οικογένεια csh παρέχουν έναν πιό πρωτόγονο ς μηχανισμό ψευδωνύμων που λειτουργεί μέσω της μακροεπέκτασης. Συνθήκη #! Όπως σημειώνεται ανωτέρω, οι εντολές κελύφους μπορούν να διαβαστούν από ένα αρχείο προγραμμάτων. Για να τους εκτελέσει στο τρέχον κέλυφος, κάποιος χρησιμοποιεί την εντολή τελεία :. my_script ΠΑΡΑΔΕΙΓΜΑ 1.16 Συνθήκη #! στα αρχεία προγραμμάτων. όπου my_script είναι το όνομα του αρχείου. Πολλά λειτουργικά συστήματα, συμπεριλαμβανομένων των περισσότερων εκδόσεων της Unix, επιτρέπουν σε κάποιον να κάνει ένα πρόγραμμα να λειτουργήσει ως εκτελέσιμο πρόγραμμα, έτσι ώστε οι χρήστες μπορούν απλά να δακτυλογραφήσουν ΣΧΕΔΑΣΜΟΣ & ΕΦΑΡΜΟΓΗ Μαγικοί αριθμοί

20 Όταν ο πυρήνας της Unix καλείται να εκτελέσει ένα αρχείο (μέσω της κλήσης συστημάτων execve), ελέγχει τις πρώτες πρώτες ψηφιολέξεις του αρχείου για έναν μαγικό αριθμό που δείχνει τον τύπο του αρχείου. Μερικές τιμές αντιστοιχούν στις άμεσα εκτελέσιμες μορφές αρχείου αντικειμένου. Κάτω από τα Linux, παραδείγματος χάριν, οι πρώτες τέσσερις ψηφιολέξεις ενός αρχείου αντικειμένου είναι 0x7f45_4c46 (delelf στο ASCII). Κάτω από το Mac OS Χ είναι 0xfeed_face. Εάν οι πρώτες δύο ψηφιολέξεις είναι 0x2321 (#! στο ASCII), ο πυρήνας υποθέτει ότι το αρχείο είναι ένα πρόγραμμα, και διαβάζει τους επόμενους χαρακτήρες για να βρεί το όνομα του διερμηνέα.. Η σύμβαση #! στη Unix είναι ο κύριος λόγος που η περισσότερη γλωσσική χρήση προγραμματισμού # ως οριοθετεί σχόλιο ανοίγματος. Οι πρόωρες εκδόσεις του sh χρησιμοποίησαν την εντολή κανένας-op (:) ως τρόπο να εισαγάγουν τα σχόλια. Το κέλυφος C του Joy εισήγαγε το #, όπου τροποποιήθηκαν μερικές εκδόσεις του sh για να προωθήσουν το csh, όταν ζητούμένο να εκτελέσει ένα πρόγραμμα που εμφανίστηκε να αρχίζει με ενα σχόλιο κελύφους C. Αυτός ο μηχανισμός εξελίχθηκε στο γενικότερο μηχανισμό που χρησιμοποιήθηκε σε πολλές (εν τούτοις όχι όλοι)τις σήμερινες παραλλαγές της Unix. Δύο βήματα απαιτούνται. Κατ' αρχάς, το αρχείο πρέπει να χαρακτηριστεί εκτελέσιμο στα μάτια του λειτουργικού συστήματος. Στη Unix κάποιος δακτυλογραφεί chmod +x my_script. Δεύτερον, το αρχείο πρέπει να είναι μονοπεριγραφικό με τέτοιο τρόπο ώστε να επιτρέπει στο λειτουργικό σύστημα να πει ποιο κέλυφος (ή άλλος διερμηνέας) θα καταλάβει το περιεχόμενο. Κάτω από τη Unix, το αρχείο πρέπει να αρχίσει με τους χαρακτήρες #!, ακολουθούμενος από το όνομα του κελύφους. Το χαρακτηριστικό πρόγραμμα bash αρχίζει έτσι με #!/bin/bash Η διευκρίνιση του πλήρους ονόματος πορειών είναι ένα χαρακτηριστικό γνώρισμα ασφάλειας: προσδοκά τη δυνατότητα ότι ο χρήστης μπορεί να έχει μια πορεία αναζήτησης, για τις εντολές στις οποίες κάποιο άλλο πρόγραμμα που ονομάζεται bash,εμφανίζεται πριν από το κέλυφος. (Δυστυχώς, η απαίτηση για τα πλήρη ονόματα πορειών κάνει τις γραμμές#! μη φορητές, δεδομένου ότι τα κέλυφος και άλλοι διερμηνείς μπορούν να εγκατασταθούν σε διαφορετικές θέσεις σε διαφορετικές μηχανές.) ΕΛΕΓΞΑΤΕ ΤΗΝ ΚΑΤΑΝΟΗΣΗ ΣΑΣ 1. Δώστε έναν εύλογο καθορισμό μιας πρότασης της γλώσσας προγραμματισμού. 2. Απαριθμήστε τους κύριους τρόπους με τους οποίους οι γλώσσες προγραμματισμού διαφέρουν από τις συμβατικές γλώσσες συστημάτων. 3. Από ποια δύο κύρια σύνολα προγόνων κατάγονται οι σύγχρονες γλώσσες προγραμματισμού ; 4. Ποια δημιουργία της ΙΒΜ θεωρείται γενικά ως πρώτη γλώσσα προγραμματισμού γενικού σκοπού; 5. Ποια είναι η δημοφιλέστερη γλώσσα για την από πλευρά παροχέα προγραμματισμού Ιστού; 6. Πώς η έννοια του πλαισίου σε Ρογ! διαφέρει από τον εξαναγκασμό;

21 7. Τι είναι σφαιροποίηση; Τι είναι ένας μπαλαντέρ; 8. Τι είναι ένας δίαυλος στη Unix; Τι είναι επαναπροσανατολισμός; 9. Περιγράψτε τα τρείς τυποποιημένες I/O ροές που παρέχονται σε κάθε διαδικασία της Unix. 10. Εξηγήστε τη σημασία της σύμβασης #! στα προγράμματα κελύφους της Unix Επεξεργασία κειμένων και αποτέλεσμα εκθέσεων Οι γλώσσες της Shell τείνουν να προσανατολιστούν βαριά στις σειρές. Οι εντολές είναι σειρές, που αναλύονται στους καταλόγους λέξεων. Οι μεταβλητές εκτιμούνται ανά σειρά. Οι μεταβλητοί μηχανισμοί επέκτασης επιτρέπουν στο χρήστη να εξαγάγουν τα προθέματα, τα επιθήματα, ή τις αυθαίρετες υποσειρές. Η αλληλουχία υποδεικνύεται από την απλή αντιπαράθεση. Υπάρχει επιμερισμός αναφερόμενος στις συμβάσεις. Λίγες συμβατικότερες γλώσσες έχουν παρόμοια υποστήριξη για τις σειρές. # label ( target for branch ): :top /<[hh] [ 123]>.*\[hH] [ 123]>/ { h sa(<v[hh] [123] >\) /\1/ s/ Λ.*\ (<[hh] [123] >\) Λ1/ p g s/<v[hh] [123] > // } b top ;# match whole heading ;# save copy of pattern space ;# delete text after closing tag ;# delete text before closing tag ;# print what remains ;# retrieve saved pattern space ;# delete closing tag ;# and branch to top of script /<[hh] [123]>/ { N b top } d ;# match opening tag (only) ;# extend search to next line ;# and branch to top of script ;# if no match at all, delete Σχήμα 1.1 Πρόγραμμα σε sed για να εξαγάγει τις επιγραφές από ένα αρχείο HTML. Το πρόγραμμα υποθέτει ότι οι ανοιγόμενες και κλείνουσες ετικέττες αντιστοιχούνται καταλλήλως και ότι οι επιγραφές δεν τοποθετούνται. Συγχρόνως, οι γλώσσες κελύφους δεν προορίζονται σαφώς για το είδος του χειρισμού κειμένων που εκτελείται συνήθως στους συντάκτες όπως ο emacs ή vi. Η αναζήτηση και η αντικατάσταση ιδιαίτερα, λείπει και πολλοί άλλοι στόχοι που οι συντάκτες ολοκληρώνουν με μια ενιαία πληκτρολόγηση - εισαγωγή, διαγραφή, αντικατάσταση, υποστήριγμα-που ταιριάζουν με, προς τα εμπρός και οπίσθια κίνηση - θα ήταν αδέξιοι να εφαρμόσουν, ή δεν έχουν απλά κανένα νόημα, στα πλαίσια του κελύφους. Για τον επαναλαμβανόμενο χειρισμό κειμένων είναι φυσικό να θελήσει να αυτοματοποιήσει τη διαδικασία έκδοσης. Τα εργαλεία για να ολοκληρώσουν αυτόν τον στόχο αποτελούν τη δεύτερη κύρια κατηγορία προγόνων για τις σύγχρονες γλώσσες προγραμματισμού

22 Sed Σαν ενα απλό παράδειγμα επεξεργασίας κειμένων, εξετάστε το πρόβλημα για όλες τις επιγραφές από μια ιστοσελίδαχ (ένα αρχείο HTML). Αυτές είναι σειρές που οριοθετούνται από <H1>... </H1>, <H2>... </H2>, και < H 3>. ετικέττες </H3>. ΠΑΡΑΔΕΙΓΜΑ Εξαγωγή των επιγραφών HTML με το sed Ολοκληρώνοντας αυτόν τον στόχο σε έναν συντάκτη όπως το emacs, vil, ή ακόμα και το Microsoft Word είναι απλό αλλά κουραστικό : κάποιος πρέπει να ψάξει για μια ετικέττα ανοίγματος, να διαγράψει το προηγούμενο κείμενο, να αναζητήσει μια κλεισίματος, να χαρακτηρίσει την τρέχουσα θέση (ως αφετηρία για την επόμενη διαγραφή), και να επαναλάβει. Ένα πρόγραμμα που θα εκτελέσει αυτούς τους στόχους σε sed, ο συντάκτης ρευμάτων της Unix, εμφανίζεται στο σχήμα 1. Ο κώδικας αποτελείται από μια κεφαλίδα και τρεις εντολές, από τις οποίες οι δύο είναι σύνθετες. Η πρώτη σύνθετη εντολή τυπώνει την πρώτη επιγραφή που βρίσκεται, ενδεχομένως, στη μερίδα της εισαγωγής που εξετάζεται αυτήν την περίοδο (το sed το καλεί διάστημα σχεδίων). Η δεύτερη σύνθετη εντολή επισυνάπτει μια καινούργια γραμμή στο διάστημα σχεδίων οπότε περιέχει ήδη μια ετικέττα επιγραφής ανοίγματος. Οι δύο σύνθετες εντολές και αρκετές από τις υποεντολές, χρησιμοποιούν τα κανονικά σχέδια έκφρασης, που οριοθετούνται από τις καθέτους. Θα συζητήσουμε για αυτά τα σχέδια περαιτέρω στην παράγραφο της Η τρίτη εντολή (το απομονωμένο d) απλά διαγράφει την τρέχουσα γραμμή. Επειδή κάθε σύνθετη εντολή τελειώνει με έναν κλάδο πίσω στην κορυφή του προγράμματος, ο δεύτερος θα εκτελέσει μόνο εάν ο πρώτος δεν εκτελεστεί, και η διαγραφή θα εκτελέσει μόνο εάν καμία σύνθετη δεν εκτελεστεί. Η κληρονομιά συντακτών του sed είναι σαφής σε αυτό το παράδειγμα. Οι εντολές είναι γενικά ένας χαρακτήρας μακροχρόνιος, και δεν υπάρχει καμία μεταβλητή - καμία κατάσταση οποιουδήποτε είδους πέρα από το μετρητή και το κείμενο προγράμματος που εκδίδεται. Αυτοί οι περιορισμοί κάνουν το sed καταλληλότερο στα προγράμματα μιας γραμμής, χαρακτηριστικά εισαγμένα κατά λέξη από το πληκτρολόγιο με διακόπτη γραμμής εντολών -e. Ο ακόλουθος, παραδείγματος χάριν, θα διαβάσει από την τυποποιημένη εισαγωγή, θα διαγράψει τις κενές γραμμές, και (σιωπηρά) θα τυπώσει τις γραμμές nonblank στο τυποποιημένο αποτέλεσμα. sed -e /A[[:space:]]*$/d ΠΑΡΑΔΕΙΓΜΑ Προγράμματα ένας-γραμμών στο sed Εδώ το Λαντιπροσωπεύει την αρχή της γραμμής και το $ αντιπροσωπεύει το τέλος. Η έκφραση [[: space:]] ταιριάζει με οποιοδήποτε χαρακτήρα άσπρου διαστήματος στον τοπικό χαρακτήρα - set, για να επαναληφθεί σε έναν αυθαίρετο αριθμό χρόνων, όπως υποδεικνύεται από το αστέρι Kleene (*). Το d δείχνει τη διαγραφή. Οι μη διαγραμμένες γραμμές είναι τυπωμένες εξ ορισμού. Awk Σε μία προσπάθεια να εξεταστούν οι περιορισμοί του sed, ο Alfred Aho, ο Peter Weinberger, και ο Brian Kernighan σχεδίασαν το awk το 1977 (το όνομα είναι βασισμένο στα αρχικά γράμματα των επωνύμων τους). Το Awk είναι υπό κάποια έννοια ένας εξελικτικός σύνδεσμος μεταξύ των συντακτών ρευμάτων όπως το sed και των ολοκληρωμένων γλωσσών προγραμματισμού. Διατηρεί γραμμή sed στο

23 πρότυπο φίλτρων του υπολογισμού, αλλά επιτρέπει στο χρήστη να δραπετεύσει αυτό το πρότυπο όταν επιδιώκεται και αντικαθιστά τις εντολές έκδοσης ενιαίου χαρακτήρα με τη σύνταξη ενθυμίζουσα την C. Το Awk παρέχει (τις χωρίς τύπο) μεταβλητές και ποικίλα δομών ροής ελέγχου, συμπεριλαμβανομένων των υπορουτινών. Ένα πρόγραμμα awk αποτελείται από μια ακολουθία σχεδίων, κάθε μια από τις οποίες έχει μια σχετική δράση. Για κάθε γραμμή εισαγωγής, ο διερμηνέας εκτελεί σε σειρά τις ενέργειες, των οποίων τα σχέδια αξιολογούν αληθινά. Ένα παράδειγμα με ένα ενιαίο ζευγάρι σχέδιου δράσης εμφανίζεται στο σχήμα 2. ΠΑΡΑΔΕΙΓΜΑ 1.19 που εξάγει τις επιγραφές HTML με το awk Εκτελεί ουσιαστικά τον ίδιο στόχο με το πρόγραμμα sed του σχήματος 1. Οι γραμμές που δεν περιέχουν καμία ετικέττα ανοίγματος αγνοούνται. Σε μια γραμμή με μια ετικέττα ανοίγματος, διαγράφουμε οποιοδήποτε κείμενο προηγείται της επιγραφής. Τυπώνουμε έπειτα τις γραμμές έως ότου βρίσκουμε την κλείνουσα ετικέττα και επαναλαμβάνουμε εάν υπάρχει μια άλλη ετικέττα ανοίγματος στην ίδια γραμμή. Πέφτουμε πίσω στον κύριο βρόχο του διερμηνέα όταν είμαστε καθαροί από οποιαδήποτε επιγραφή. Διάφορες συμβάσεις μπορούν να είναι φανερές σε αυτό το παράδειγμα. Η τρέχουσα γραμμή εισαγωγής είναι διαθέσιμη στην ψευδομεταβλητή $0. Η λειτουργία getline διαβάζει σε αυτήν την μεταβλητή εξ ορισμού. Η λειτουργία substr (s, α, β) εξάγει τη μερίδα της σειράς s που αρχίζει στη θέση a και με το μήκος b. Εάν το b παραλείπεται, τα αποσπασματικά τρεξίματα μερίδας στο τέλος των όρων του s., Οι συνθήκες, όπως τα σχέδια, μπορούν να χρησιμοποιήσουν τις κανονικές εκφράσεις. Μπορούμε να δούμε ένα παράδειγμα στον βρόχο do... while. Εξ ορισμού, οι κανονικές εκφράσεις ταιριάζουν έναντι του $0. Ίσως οι δύο σημαντικότερες καινοτομίες του awk είναι τομείς και συνειρμικές σειρές, καμία από τις οποες δεν εμφανίζεται στο σχήμα 1.2. Όπως στο κέλυφος,το awk αναλύει κάθε γραμμή εισαγωγής σε μια σειρά λέξεων (τομείς). Εξ ορισμού αυτοί οριοθετούνται από το άσπρο διάστημα, αν και ο χρήστης μπορεί να αλλάξει αυτήν την συμπεριφορά δυναμικά κοντά ορίζει ing μια κανονική έκφραση στο ενσωματωμένο μεταβλητό FS (διαχωριστής τομέων). /[hh] [123] >/ { # execute this block in line contains an opening tag Do { open_tag = match ($0, /<[hh] [123]>/) $0 = substr ($0, open tag) #delete texte before opening tag # $0 is the current input line While )!/<\/[hh] [123]>/) { # print interior lines print # in their entirety } close_tag = match ($0, /<\/[hh] [123]>/) +4 print substr ($0, 0, close_tag) #print through closing tag $0 = substr ($0, close_tag +1) #delete through closing tag } while (/<[hh] [123] >/) # repeat if more opening tags }

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

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

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

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

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

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

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

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

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

Μέρος 3 ο : Βασικές Έννοιες για δυναμικές ιστοσελίδες

Μέρος 3 ο : Βασικές Έννοιες για δυναμικές ιστοσελίδες Μέρος 3 ο : Βασικές Έννοιες για δυναμικές ιστοσελίδες Εισαγωγή-Σκοπός. Τρόποι δημιουργίας δυναμικών ιστοσελίδων. Dynamic Web Pages. Dynamic Web Page Development Using Dreamweaver. Τρόποι δημιουργίας δυναμικών

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Τμήμα Οικιακής Οικονομίας και Οικολογίας. Οργάνωση Υπολογιστών

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

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

UTECO ABEE ΒΙΟΜΗΧΑΝΙΚΟΣ & ΝΑΥΤΙΛΙΑΚΟΣ ΑΥΤΟΜΑΤΙΣΜΟΣ

UTECO ABEE ΒΙΟΜΗΧΑΝΙΚΟΣ & ΝΑΥΤΙΛΙΑΚΟΣ ΑΥΤΟΜΑΤΙΣΜΟΣ IMAGO F3000 Συνοπτική περιγραφή Αυτοί οι ελεγκτές διαδικασίας χτίζονται σε ένα σχεδιασμό επεκτάσιμης μονάδας, και είναι κατάλληλοι για τον έλεγχο ρύθμιση λειτουργίας, ψησίματος, καπνίσματος και ελέγχου

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

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

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

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

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

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

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

Προγραμματισμός και Χρήση Ηλεκτρονικών Υπολογιστών - Βασικά Εργαλεία Λογισμικού

Προγραμματισμός και Χρήση Ηλεκτρονικών Υπολογιστών - Βασικά Εργαλεία Λογισμικού ΕΘΝΙΚΟ ΜΕΤΣΟΒΙΟ ΠΟΛΥΤΕΧΝΕΙΟ ΣΧΟΛΗ ΧΗΜΙΚΩΝ ΜΗΧΑΝΙΚΩΝ ΥΠΟΛΟΓΙΣΤΙΚΟ ΚΕΝΤΡΟ Προγραμματισμός και Χρήση Ηλεκτρονικών Υπολογιστών - Βασικά Εργαλεία Λογισμικού Μάθημα 2ο Aντώνης Σπυρόπουλος v2_061015 Οροι που

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

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

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

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

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

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

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

ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ. Επισκόπηση Λ.Σ. Εργαστηριακές Ασκήσεις

ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ. Επισκόπηση Λ.Σ. Εργαστηριακές Ασκήσεις ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ Επισκόπηση Λ.Σ. Εργαστηριακές Ασκήσεις Υλικό από: Modern Operating Systems Laboratory Exercises, Shrivakan Mishra Σύνθεση Κ.Γ. Μαργαρίτης, Τμήμα Εφαρμοσμένης Πληροφορικής, Πανεπιστήμιο

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

Εκφώνηση άσκησης. Η Κρεμάλα σαν παιχνίδι. Ανάλυση. Μέρος Α Αναφoρά, ανάλυση τακτικής. Υλοποίηση του παιχνιδιού «Κρεμάλα»

Εκφώνηση άσκησης. Η Κρεμάλα σαν παιχνίδι. Ανάλυση. Μέρος Α Αναφoρά, ανάλυση τακτικής. Υλοποίηση του παιχνιδιού «Κρεμάλα» ΚΡΕΜΑΛΑ Project 7 1 Εκφώνηση άσκησης Υλοποίηση του παιχνιδιού «Κρεμάλα» Το Project αυτό συνίσταται στην κατασκευή ενός προγράμματος σεναρίου κελύφους, που θα υλοποιεί το γνωστό παιχνίδι «Κρεμάλα» με δυνατότητα

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

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

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

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

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

ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝΩ ΤΕΧΝΟΛΟΓΙΚΗΣ ΚΑΤΕΥΘΥΝΣΗΣ Γ ΛΥΚΕΙΟΥ ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝΩ ΤΕΧΝΟΛΟΓΙΚΗΣ ΚΑΤΕΥΘΥΝΣΗΣ Γ ΛΥΚΕΙΟΥ ΘΕΜΑ 1 ο : Α. Να αναφέρετε ονομαστικά τις βασικές λειτουργίες (πράξεις) επί των δομών δεδομένων. Μονάδες 8 Β. Στον

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Τεχνικός Εφαρμογών Πληροφορικής

Τεχνικός Εφαρμογών Πληροφορικής Τεχνικός Εφαρμογών Πληροφορικής ΓΛΩΣΣΑ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ ΕΙΣΑΓΩΓΗ Εξάμηνο: 2014Β Διδάσκουσα: Ηλεκτρονική Τάξη: Κανελλοπούλου Χριστίνα_ΠΕ19 Πληροφορικής Περιεχόμενα 1.Τι είναι η Php; 2.Πως γίνετε η γραφή

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

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

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

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

- Εισαγωγή - Επίπεδα μνήμης - Ολοκληρωμένα κυκλώματα μνήμης - Συσκευασίες μνήμης προσωπικών υπολογιστών

- Εισαγωγή - Επίπεδα μνήμης - Ολοκληρωμένα κυκλώματα μνήμης - Συσκευασίες μνήμης προσωπικών υπολογιστών Μάθημα 4.5 Η Μνήμη - Εισαγωγή - Επίπεδα μνήμης - Ολοκληρωμένα κυκλώματα μνήμης - Συσκευασίες μνήμης προσωπικών υπολογιστών Όταν ολοκληρώσεις το μάθημα αυτό θα μπορείς: Να αναφέρεις τα κυριότερα είδη μνήμης

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

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

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

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

6 Εισαγωγή στο Wordpress 3.x

6 Εισαγωγή στο Wordpress 3.x Περιεχόμενα 1 Εγκατάσταση του WordPress... 11 Ελάχιστες απαιτήσεις... 11 Easy PHP... 12 Εγκατάσταση Easy PHP... 12 Βήματα εγκατάστασης EasyPHP με εικόνες... 13 Το EasyPHP στα Ελληνικά... 17 Κατέβασμα και

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

1.5 ΔΡΑΣΤΗΡΙΟΤΗΤΕΣ μικρόκοσμου «Προγραμματισμός Η/Υ»

1.5 ΔΡΑΣΤΗΡΙΟΤΗΤΕΣ μικρόκοσμου «Προγραμματισμός Η/Υ» 1.5 ΔΡΑΣΤΗΡΙΟΤΗΤΕΣ μικρόκοσμου «Προγραμματισμός Η/Υ» 1. Πήγαινε στο μενού Αρχείο και επίλεξε Άνοιγμα. Άνοιξε το αρχείο sample.x. Ανοίγουν δυο παράθυρα. Παρατήρησε τα ονόματα τους: Πηγαίος κώδικας... και

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

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

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

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

ΕΓΧΕΙΡΙΔΙΟ ΟΔΗΓΙΩΝ ΧΡΗΣΤΗ. Ηλεκτρονική Υποβολή Α.Π.Δ.

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

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

Πως θα κατασκευάσω το πρώτο πρόγραμμα;

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

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

Πώς μπορούμε να δημιουργούμε γεωμετρικά σχέδια με τη Logo;

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

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

Λογισμική Εφαρμογή Διαχείρισης Ερωτηματολογίων ΟΔΗΓΟΣ ΧΡΗΣΗΣ System Συμβουλευτική Α.Ε

Λογισμική Εφαρμογή Διαχείρισης Ερωτηματολογίων ΟΔΗΓΟΣ ΧΡΗΣΗΣ System Συμβουλευτική Α.Ε σχετικά με τον έλεγχο της καπνιστικής συνήθειας 1 22 Λογισμικές εφαρμογές καταγραφής και αξιοποίησης πληροφοριών σχετικά με τον έλεγχο της καπνιστικής συνήθειας Λογισμική Εφαρμογή Διαχείρισης Ερωτηματολογίων

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

Εργαλεία ανάπτυξης εφαρμογών internet Ι

Εργαλεία ανάπτυξης εφαρμογών internet Ι IEK ΟΑΕΔ ΚΑΛΑΜΑΤΑΣ ΤΕΧΝΙΚΟΣ ΕΦΑΡΜΟΓΩΝ ΠΛΗΟΦΟΡΙΚΗΣ Εργαλεία ανάπτυξης εφαρμογών internet Ι Διδάσκουσα: Κανελλοπούλου Χριστίνα ΠΕ19 Πληροφορικής Εργαλεία και τεχνικές από την πλευρά του πελάτη Java Applet

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

1 ο ΓΥΜΝΑΣΙΟ ΘΕΡΜΗΣ. Πληροφορική Α' Γυμν. Το Λειτουργικό Σύστημα του Υπολογιστή

1 ο ΓΥΜΝΑΣΙΟ ΘΕΡΜΗΣ. Πληροφορική Α' Γυμν. Το Λειτουργικό Σύστημα του Υπολογιστή 1 ο ΓΥΜΝΑΣΙΟ ΘΕΡΜΗΣ Μάθημα: Ενότητα: Πληροφορική Α' Γυμν. Το του Υπολογιστή 1. Τι ονομάζεται Πρόγραμμα; Είναι οι οδηγίες που δίνονται στον υπολογιστή για να εξηγήσουμε πώς γίνεται μια εργασία (δηλαδή η

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

Πρόσβαση στην NetLibrary.

Πρόσβαση στην NetLibrary. ΝetLibrary Η δικτυακή-ηλεκτρονική βιβλιοθήκη (ΝetLibrary) μας παρέχει πρόσβαση στην συλλογή των ηλεκτρονικών βιβλίων της Κεντρικής Βιβλιοθήκης του Πανεπιστημίου Ιωαννίνων. Επιλέγουμε με το δείκτη μας το

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

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

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

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

ΠΕΡΙΕΧΟΜΕΝΑ. Πρόλογος... 13. Κεφάλαιο 1 ο Αρχές Διαχείρισης πληροφορίας στον Παγκόσμιο Ιστό... 15

ΠΕΡΙΕΧΟΜΕΝΑ. Πρόλογος... 13. Κεφάλαιο 1 ο Αρχές Διαχείρισης πληροφορίας στον Παγκόσμιο Ιστό... 15 ΠΕΡΙΕΧΟΜΕΝΑ Πρόλογος... 13 Κεφάλαιο 1 ο Αρχές Διαχείρισης πληροφορίας στον Παγκόσμιο Ιστό... 15 1.1 Εισαγωγή... 16 1.2 Διαδίκτυο και Παγκόσμιος Ιστός Ιστορική αναδρομή... 17 1.3 Αρχές πληροφοριακών συστημάτων

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

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

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

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

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

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

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

Προγραµµατισµός Η/Υ. Μέρος2

Προγραµµατισµός Η/Υ. Μέρος2 Προγραµµατισµός Η/Υ Μέρος2 Περιεχόμενα Επανάληψη Βασικών Σύμβολων Διαγραμμάτων Ροής Αλγόριθμος Ψευδοκώδικας Παραδείγματα Αλγορίθμων Γλώσσες προγραμματισμού 2 Επανάληψη Βασικών Σύμβολων Διαγραμμάτων Ροής

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

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

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

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

Πρόλογος. if (παράσταση) εντολή1 else εντολή2. Από εδώ και πέρα θα αναφέρεται ως K&R.

Πρόλογος. if (παράσταση) εντολή1 else εντολή2. Από εδώ και πέρα θα αναφέρεται ως K&R. Περιεχόμενα Πρόλογος v ΚΕΦΑΛΑΙΟ 1 Προπαρασκευαστική εισαγωγή 1 ΚΕΦΑΛΑΙΟ 2 Τύποι, τελεστές, και παραστάσεις 43 ΚΕΦΑΛΑΙΟ 3 Η ροή του ελέγχου 59 ΚΕΦΑΛΑΙΟ 4 Συναρτήσεις και δομή του προγράμματος 69 ΚΕΦΑΛΑΙΟ

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

ΜΑΘΗΜΑ: Εργαλεία Ανάπτυξης εφαρμογών internet.

ΜΑΘΗΜΑ: Εργαλεία Ανάπτυξης εφαρμογών internet. ΜΑΘΗΜΑ: Εργαλεία Ανάπτυξης εφαρμογών internet. ΩΡΕΣ ΔΙΔΑΣΚΑΛΙΑΣ: ΕΙΔΟΣ ΜΑΘΗΜΑΤΟΣ: Μικτό Γενικός σκοπός είναι να αποκτήσει ο καταρτιζόμενος τις αναγκαίες γνώσεις σχετικά με εργαλεία και τις τεχνικές για

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

6 Το μικρό βιβλίο για το ελληνικό Word 2010

6 Το μικρό βιβλίο για το ελληνικό Word 2010 Περιεχόμενα Κεφάλαιο 1 Microsoft Word 2010... 7 Κεφάλαιο 2 ημιουργία νέου εγγράφου... 13 Κεφάλαιο 3 Το σύστημα Βοήθειας του Office... 26 Κεφάλαιο 4 Μετακίνηση σε έγγραφο και προβολές εγγράφου... 31 Κεφάλαιο

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

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

ΕΙΣΑΓΩΓΗ ΣΤΟ ΔΟΜΗΜΕΝΟ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟ ΕΙΣΑΓΩΓΗ ΣΤΟ ΔΟΜΗΜΕΝΟ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟ Τρίτη Διάλεξη Εντολές Επιλογής και Επανάληψης Εντολές επιλογής Εντολή if Η πιο απλή μορφή της if συντάσσεται ως εξής: if ( συνθήκη ) Οι εντολές μέσα στα άγκιστρα αποτελούν

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

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

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

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

Β.1. i. Να εξηγήσετε τι εννοούμε με τον όρο μεταφερσιμότητα των προγραμμάτων. Μονάδες 3

Β.1. i. Να εξηγήσετε τι εννοούμε με τον όρο μεταφερσιμότητα των προγραμμάτων. Μονάδες 3 ΑΡΧΗ 1ΗΣ ΣΕΛΙ ΑΣ ΘΕΜΑ 1 ο ΑΠΟΛΥΤΗΡΙΕΣ ΕΞΕΤΑΣΕΙΣ Γ ΤΑΞΗΣ ΗΜΕΡΗΣΙΟΥ ΓΕΝΙΚΟΥ ΛΥΚΕΙΟΥ ΠΕΜΠΤΗ 31 MAΪΟΥ 2007 ΕΞΕΤΑΖΟΜΕΝΟ ΜΑΘΗΜΑ: ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ ΤΕΧΝΟΛΟΓΙΚΗΣ ΚΑΤΕΥΘΥΝΣΗΣ (ΚΥΚΛΟΥ

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

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

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

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

Χρήση του RAW ORF. Κείμενο, παρουσίαση, έρευνα: Ιορδάνης Σταυρίδης DNG ARW X3F DCR NEF CRW RAW RAF CR2 SRF MRW

Χρήση του RAW ORF. Κείμενο, παρουσίαση, έρευνα: Ιορδάνης Σταυρίδης DNG ARW X3F DCR NEF CRW RAW RAF CR2 SRF MRW 8 Χρήση του RAW Κείμενο, παρουσίαση, έρευνα: Ιορδάνης Σταυρίδης DNG X3F ARW ORF DCR NEF CRW RAW RAF CR2 SRF MRW 9 Ένα ακατέργαστο αρχείο εικόνας RAW περιέχει ελάχιστα επεξεργασμένα στοιχεία από τον αισθητήρα

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

Πληρουορική Γ Γσμμασίοσ

Πληρουορική Γ Γσμμασίοσ Πληρουορική Γ Γσμμασίοσ Προγραμματισμός και Αλγόριθμοι Από το και τημ Χελώμα στημ Ευριπίδης Βραχνός http://evripides.mysch.gr/ 2014 2015 1 Προγραμματισμός Ζάννειο Πρότυπο Πειραματικό Γυμνάσιο Πειραιά Ενότητα:

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

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

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

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

Χρήση του πληκτρολογίου

Χρήση του πληκτρολογίου Χρήση του πληκτρολογίου Τρόπος οργάνωσης των πλήκτρων... 2 Πληκτρολόγηση κειμένου... 3 Χρήση συντομεύσεων πληκτρολογίου... 3 Χρήση των πλήκτρων περιήγησης... 5 Χρήση του αριθμητικού πληκτρολογίου... 5

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

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

Προγραμματισμός Ι. Προχωρημένα Θέματα. Δημήτρης Μιχαήλ. Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο Προγραμματισμός Ι Προχωρημένα Θέματα Δημήτρης Μιχαήλ Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο Ανακατεύθυνση Εισόδου/Εξόδου Συνήθως η τυπική είσοδος ενός προγράμματος (stdin) προέρχεται

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

Πλοήγηση www / Με τον Internet Explorer

Πλοήγηση www / Με τον Internet Explorer Πλοήγηση www / Με τον Internet Explorer Περιεχόμενα 1.Eισαγωγή 2.Το περιβάλλον του Internet Explorer 3.Οδηγίες πλοήγησης 4.Αποθήκευση αρχείων 5.Αγαπημένα 6.Ασφαλής σύνδεση 7.Διακομιστής μεσολάβησης 1.Εισαγωγή

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

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

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

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

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

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

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

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

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

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

ΕΓΧΕΙΡΙΔΙΟ ΜΑΘΗΤΗ. της Πλατφόρμας Τηλεκατάρτισης

ΕΓΧΕΙΡΙΔΙΟ ΜΑΘΗΤΗ. της Πλατφόρμας Τηλεκατάρτισης ΕΓΧΕΙΡΙΔΙΟ ΜΑΘΗΤΗ της Πλατφόρμας Τηλεκατάρτισης ΠΕΡΙΕΧΟΜΕΝΑ 1. Εισαγωγή...2 2. Αρχική σελίδα, Εισαγωγή & Περιβάλλον Συστήματος...3 2.1. Αρχική σελίδα εισαγωγής...3 2.2. Εισαγωγή στην Πλατφόρμα Τηλε-κατάρτισης...4

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

ΑΡΧΕΙΟ ΕΚΘΕΣΕΩΝ ΠΡΑΓΜΑΤΟΓΝΩΜΟΣΥΝΗΣ ΕΓΧΕΙΡΙΔΙΟ ΧΡΗΣΗΣ 8 ΝΟΕΜΒΡΙΟΥ 2014

ΑΡΧΕΙΟ ΕΚΘΕΣΕΩΝ ΠΡΑΓΜΑΤΟΓΝΩΜΟΣΥΝΗΣ ΕΓΧΕΙΡΙΔΙΟ ΧΡΗΣΗΣ 8 ΝΟΕΜΒΡΙΟΥ 2014 8 ΝΟΕΜΒΡΙΟΥ 2014 ΑΡΧΕΙΟ ΕΚΘΕΣΕΩΝ ΠΡΑΓΜΑΤΟΓΝΩΜΟΣΥΝΗΣ ΕΓΧΕΙΡΙΔΙΟ ΧΡΗΣΗΣ ΝΙΚΟΛΑΟΣ ΜΙΧΑΛΟΔΗΜΗΤΡΑΚΗΣ ΝΙΚΟΛΑΟΣ ΜΙΧΑΛΟΔΗΜΗΤΡΑΚΗΣ - ΠΡΟΓΡΑΜΜΑΤΙΣΤΗΣ ΥΠΗΡΕΣΙΕΣ ΠΛΗΡΟΦΟΡΙΚΗΣ Σολωμού 41, 71306, Ηράκλειο Κρήτης τηλ/φαξ:

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

Οδηγός γρήγορης εκκίνησης

Οδηγός γρήγορης εκκίνησης Οδηγός γρήγορης εκκίνησης Το Microsoft Word 2013 έχει διαφορετική εμφάνιση από προηγούμενες εκδόσεις. Γι αυτό το λόγο, δημιουργήσαμε αυτόν τον οδηγό για να ελαχιστοποιήσουμε την καμπύλη εκμάθησης. Γραμμή

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

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

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

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

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

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

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

Εγχειρίδιο Συντονιστή Τηλεδιασκέψεων Υπηρεσίας e:presence

Εγχειρίδιο Συντονιστή Τηλεδιασκέψεων Υπηρεσίας e:presence Εγχειρίδιο Συντονιστή Τηλεδιασκέψεων Υπηρεσίας e:presence Έκδοση 1.3 Ιούνιος 2014 Περιεχόμενα Εφαρμογή Διαχείρισης Τηλεδιασκέψεων... 2 Προβολή τηλεδιασκέψεων... 3 Προσθήκη τηλεδιάσκεψης... 4 Τροποποίηση

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

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

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

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

ΟΔΗΓΟΣ ΧΡΗΣΗΣ(ΜΑΝUΑL) ΔΙΑΧΕΙΡΙΣΤΗ-ΧΡΗΣΤΗ.

ΟΔΗΓΟΣ ΧΡΗΣΗΣ(ΜΑΝUΑL) ΔΙΑΧΕΙΡΙΣΤΗ-ΧΡΗΣΤΗ. ΟΔΗΓΟΣ ΧΡΗΣΗΣ(ΜΑΝUΑL) ΔΙΑΧΕΙΡΙΣΤΗ-ΧΡΗΣΤΗ. Οδηγός Διαχειριστή Το m-learning Toolkit είναι μια ολοκληρωμένη πλατφόρμα εξ αποστάσεως εκπαίδευσης που έχει σχεδιαστεί για να υπάρχει η δυνατότητα της πρόσβασης

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

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

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

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

Περιεχόμενα. Λίγα λόγια από το συγγραφέα... 7 1 Microsoft Word 2010... 9. 2 ημιουργία νέου εγγράφου... 17. 3 Το σύστημα Βοήθειας του Office...

Περιεχόμενα. Λίγα λόγια από το συγγραφέα... 7 1 Microsoft Word 2010... 9. 2 ημιουργία νέου εγγράφου... 17. 3 Το σύστημα Βοήθειας του Office... Περιεχόμενα Λίγα λόγια από το συγγραφέα... 7 1 Microsoft Word 2010... 9 2 ημιουργία νέου εγγράφου... 17 3 Το σύστημα Βοήθειας του Office... 31 4 Μετακίνηση σε έγγραφο και προβολές εγγράφου... 37 5 Επιλογή

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

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

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

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

ΘΕΜΑ Α ΑΡΧΗ 1ΗΣ ΣΕΛΙΔΑΣ

ΘΕΜΑ Α ΑΡΧΗ 1ΗΣ ΣΕΛΙΔΑΣ 1ΗΣ ΣΕΛΙΔΑΣ ΘΕΜΑ Α ΑΝΑΚΕΦΑΛΑΙΩΤΙΚΟ ΔΙΑΓΩΝΙΣΜΑ Γ' ΤΑΞΗΣ ΗΜΕΡΗΣΙΟΥ ΓΕΝΙΚΟΥ ΛΥΚΕΙΟΥ ΠΕΜΠΤΗ 26 ΑΠΡΙΛΙΟΥ 2012 ΕΞΕΤΑΖΟΜΕΝΟ ΜΑΘΗΜΑ: ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ ΤΕΧΝΟΛΟΓΙΚΗΣ ΚΑΤΕΥΘΥΝΣΗΣ (ΚΥΚΛΟΥ

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

Εισαγωγή στην Πληροφορική Προγραμματισμός-Λειτουργικά

Εισαγωγή στην Πληροφορική Προγραμματισμός-Λειτουργικά Εισαγωγή στην Πληροφορική Προγραμματισμός-Λειτουργικά Ηλ. Γκρίνιας Τ. Ε. Ι. Σερρών Τμήμα Πληροφορικής και Επικοινωνιών Αλγόριθμοι Ορισμός: ο αλγόριθμος είναι μια σειρά από πεπερασμένα βήματα που καθορίζουν

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

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

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

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

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

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

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

Λειτουργικά Συστήματα Ι. Καθηγήτρια Παπαδάκη Αναστασία

Λειτουργικά Συστήματα Ι. Καθηγήτρια Παπαδάκη Αναστασία Λειτουργικά Συστήματα Ι Καθηγήτρια Παπαδάκη Αναστασία 2013 1 Ηλεκτρονικός Υπολογιστής αποτελείται: 1. Από Υλικό Hardware (CPUs, RAM, Δίσκοι), & 2. Λογισμικό - Software Και μπορεί να εκτελέσει διάφορες

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

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

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

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

Κεφάλαιο 5Β (επανάληψη) Εισαγωγή στην Πληροφορική. Τυπικοί χρόνοι πρόσβασης. Μέσος χρόνος πρόσβασης. Ταχύτητα µεταφοράς δεδοµένων

Κεφάλαιο 5Β (επανάληψη) Εισαγωγή στην Πληροφορική. Τυπικοί χρόνοι πρόσβασης. Μέσος χρόνος πρόσβασης. Ταχύτητα µεταφοράς δεδοµένων Κεφάλαιο 5Β (επανάληψη) Εισαγωγή στην Πληροφορική Χειµερινό Εξάµηνο 2006-07 Απόδοση των οδηγών αποθηκευτικών µέσων Μέσος χρόνος πρόσβασης (Average Access Time) Ταχύτητα µεταφοράς δεδοµένων (Data-Transfer

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

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

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

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

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

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

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

Λογισμικό exe. Οδηγός. Συγγραφική Ομάδα: Κωνςταντίνοσ Τςακάλογλου, Ιωάννησ Εξηνταρίδησ, Κωνςταντίνοσ Τςιμπάνησ, Σταυροφλα Γεωργιάδη

Λογισμικό exe. Οδηγός. Συγγραφική Ομάδα: Κωνςταντίνοσ Τςακάλογλου, Ιωάννησ Εξηνταρίδησ, Κωνςταντίνοσ Τςιμπάνησ, Σταυροφλα Γεωργιάδη Λογισμικό exe Οδηγός Συγγραφική Ομάδα: Κωνςταντίνοσ Τςακάλογλου, Ιωάννησ Εξηνταρίδησ, Κωνςταντίνοσ Τςιμπάνησ, Σταυροφλα Γεωργιάδη Απρίλιοσ 2010 Το SCORM είναι ένα διεθνώς αναγνωρισμένο πρότυπο για μαθησιακά

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

Π Ε Ρ Ι Ε Χ Ο Μ Ε Ν Α

Π Ε Ρ Ι Ε Χ Ο Μ Ε Ν Α Π Ε Ρ Ι Ε Χ Ο Μ Ε Ν Α 1 Windows 8.1 1.1 Βασικές Έννοιες Πληροφορικής και Επικοινωνιών Εισαγωγή 19 Τι είναι ο Ηλεκτρονικός Υπολογιστής 20 Κατηγορίες Υπολογιστών 21 Κύρια μέρη ενός Προσωπικού Υπολογιστή

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

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

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

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

Ανάπτυξη Υπηρεσίας Καταλόγου LDAP με τα στοιχεία του προσωπικού του TEI Πειραιά. Νίκος Πασσαράς. Εισηγητής: Πρεζεράκος Γεώργιος

Ανάπτυξη Υπηρεσίας Καταλόγου LDAP με τα στοιχεία του προσωπικού του TEI Πειραιά. Νίκος Πασσαράς. Εισηγητής: Πρεζεράκος Γεώργιος ΑΝΩΤΑΤΟ ΤΕΧΝΟΛΟΓΙΚΟ ΙΔΡΥΜΑ ΠΕΙΡΑΙΑ ΣΧΟΛΗ ΤΕΧΝΟΛΟΓΙΚΩΝ ΕΦΑΡΜΟΓΩΝ ΤΜΗΜΑ ΗΛΕΚΤΡΟΝΙΚΩΝ ΥΠΟΛΟΓΙΣΤΙΚΩΝ ΣΥΣΤΗΜΑΤΩΝ Ανάπτυξη Υπηρεσίας Καταλόγου LDAP με τα στοιχεία του προσωπικού του TEI Πειραιά Νίκος Πασσαράς

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

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

ΠΤΥΧΙΑΚΗ ΕΡΓΑΣΙΑ «ΣΧΕΔΙΑΣΜΟΣ ΚΑΙ ΑΝΑΠΤΥΞΗ ΔΙΑΔΡΑΣΤΙΚΗΣ ΔΙΑΔΙΚΤΥΑΚΗΣ ΕΦΑΡΜΟΓΗΣ ΓΙΑ ΤΗΝ ΕΞΥΠΗΡΕΤΗΣΗ ΑΣΘΕΝΩΝ ΣΥΜΒΕΒΛΗΜΕΝΟΥΣ ΜΕ ΤΟΝ Ε.Ο.Π.Υ. Τ.Ε.Ι ΚΑΒΑΛΑΣ ΤΜΗΜΑ ΜΗΧΑΝΙΚΩΝ ΠΛΗΡΟΦΟΡΙΚΗΣ ΠΤΥΧΙΑΚΗ ΕΡΓΑΣΙΑ «ΣΧΕΔΙΑΣΜΟΣ ΚΑΙ ΑΝΑΠΤΥΞΗ ΔΙΑΔΡΑΣΤΙΚΗΣ ΔΙΑΔΙΚΤΥΑΚΗΣ ΕΦΑΡΜΟΓΗΣ ΓΙΑ ΤΗΝ ΕΞΥΠΗΡΕΤΗΣΗ ΑΣΘΕΝΩΝ» ΟΝΟΜΑΤΕΠΩΝΥΜΑ ΣΠΟΥΔΑΣΤΩΝ : ~ΔΕΛΗΓΙΑΝΝΗ ΚΥΡΙΑΚΗ, 1925~

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

Εθνικό και Καποδιστριακό Πανεπιστήμιο Αθηνών. Εφαρμογή Εκτύπωσης Ταξιθετικών Ετικετών 2000-2005

Εθνικό και Καποδιστριακό Πανεπιστήμιο Αθηνών. Εφαρμογή Εκτύπωσης Ταξιθετικών Ετικετών 2000-2005 Εθνικό και Καποδιστριακό Πανεπιστήμιο Αθηνών Υπολογιστικό Κέντρο Βιβλιοθηκών Εφαρμογή Εκτύπωσης Ταξιθετικών Ετικετών 2000-2005 Σύντομο εγχειρίδιο χρήσης και λειτουργιών Εισαγωγή Το παρόν κείμενο στόχο

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

Πώς γίνεται το debug? Το debug γίνεται με δύο τρόπους, ως επί το πλείστον. Τουλάχιστον, εγώ δύο έμαθα, και αυτούς αναφέρω.

Πώς γίνεται το debug? Το debug γίνεται με δύο τρόπους, ως επί το πλείστον. Τουλάχιστον, εγώ δύο έμαθα, και αυτούς αναφέρω. Τι είναι το debug μαμα? Με απλά λόγια, debug (αποσφαλμάτωση αλλά που να κάθεσαι να το πεις), είναι η διαδικασία εντοπισμού και διόρθωσης σφαλμάτων που υπάρχουν σε κώδικα (ασχέτως γλώσσας προγραμματισμού).

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

Περιεχόμενα. Δημιουργία σύνδεσης... 27 5. ΤΙ ΕΙΝΑΙ ΙΣΤΟΣΕΛΙΔΕΣ ΚΑΙ ΤΙ ΤΟΠΟΘΕΣΙΕΣ ΙΣΤΟΥ... 37. Γνωριμία με μια ιστοσελίδα:... 38

Περιεχόμενα. Δημιουργία σύνδεσης... 27 5. ΤΙ ΕΙΝΑΙ ΙΣΤΟΣΕΛΙΔΕΣ ΚΑΙ ΤΙ ΤΟΠΟΘΕΣΙΕΣ ΙΣΤΟΥ... 37. Γνωριμία με μια ιστοσελίδα:... 38 Περιεχόμενα ΠΡΟΛΟΓΟΣ... 11 ΔΙΑΔΙΚΤΥΟ... 13 1. ΙΣΤΟΡΙΑ ΤΟΥ ΔΙΑΔΙΚΤΥΟΥ... 15 2. ΤΙ ΕΙΝΑΙ ΤΟ ΔΙΑΔΙΚΤΥΟ INTERNET;... 16 3. ΤΙ ΠΡΟΣΦΕΡΕΙ ΤΟ ΔΙΑΔΙΚΤΥΟ, ΤΙ ΜΠΟΡΕΙ ΝΑ ΒΡΕΙ ΚΑΝΕΙΣ... 19 4. ΤΙ ΑΠΑΙΤΕΙΤΑΙ ΓΙΑ ΝΑ

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

Περιεχόμενα. Περιβάλλον ηλεκτρονικού υπολογιστή...9 Επιφάνεια εργασίας...12 Διαχείριση αρχείων...15 Ιοί Η/Υ...21 Διαχείριση εκτυπώσεων...

Περιεχόμενα. Περιβάλλον ηλεκτρονικού υπολογιστή...9 Επιφάνεια εργασίας...12 Διαχείριση αρχείων...15 Ιοί Η/Υ...21 Διαχείριση εκτυπώσεων... Περιεχόμενα Περιβάλλον ηλεκτρονικού υπολογιστή...9 Επιφάνεια εργασίας...12 Διαχείριση αρχείων...15 Ιοί Η/Υ...21 Διαχείριση εκτυπώσεων...22 Περιβάλλον ηλεκτρονικού υπολογιστή...23 Επιφάνεια εργασίας...26

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

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

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

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

Περιεχόμενα. 1 Προετοιμασία βιβλίου εργασίας 47. 2 Εργασία με δεδομένα και πίνακες Excel 75. Ευχαριστίες...11. Εισαγωγή στο Microsoft Excel 2010...

Περιεχόμενα. 1 Προετοιμασία βιβλίου εργασίας 47. 2 Εργασία με δεδομένα και πίνακες Excel 75. Ευχαριστίες...11. Εισαγωγή στο Microsoft Excel 2010... Περιεχόμενα Ευχαριστίες...11 Εισαγωγή στο Microsoft Excel 2010...13 Τροποποίηση της εμφάνισης της Κορδέλας...29 Χαρακτηριστικά και συμβάσεις του βιβλίου...35 Χρήση των αρχείων εξάσκησης...37 Βοήθεια...41

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