Υπεύθυνη ήλωση : Βεβαιώνω ότι είμαι συγγραφέας αυτής της πτυχιακής εργασίας

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

Download "Υπεύθυνη ήλωση : Βεβαιώνω ότι είμαι συγγραφέας αυτής της πτυχιακής εργασίας"

Transcript

1

2 Υπεύθυνη ήλωση : Βεβαιώνω ότι είμαι συγγραφέας αυτής της πτυχιακής εργασίας και ότι κάθε βοήθεια την οποία είχα για την προετοιμασία της, είναι πλήρως αναγνωρισμένη και αναφέρεται στην πτυχιακή εργασία. Επίσης έχω αναφέρει τις όποιες πηγές από τις οποίες έκανα χρήση δεδομένων, ιδεών ή λέξεων, είτε αυτές αναφέρονται ακριβώς είτε παραφρασμένες. Επίσης βεβαιώνω ότι αυτή η πτυχιακή εργασία προετοιμάστηκε από εμένα προσωπικά ειδικά για τις απαιτήσεις του προγράμματος σπουδών του Τμήματος Πληροφορικής & Επικοινωνιών του Τ.Ε.Ι. Σερρών.

3 Περίληψη Στο μάθημα της Γ Λυκείου (Τεχνολογικής κατεύθυνσης) «Ανάπτυξη Εφαρμογών σε Προγραμματιστικό Περιβάλλον» διδάσκεται η ψευδογλώσσα «ΓΛΩΣΣΑ», μια ελληνική γλώσσα προγραμματισμού η οποία αποτελεί μια Ελληνική έκδοση της γλώσσας Pascal. Για την υλοποίηση της εφαρμογής χρειάστηκε να ενοποιηθούν 4 πράγματα. Ο συντάκτης (editor), ο αναλυτής του κώδικα (precompiler), ο Compiler που μετατρέπει τις εντολές που είναι σε «ΓΛΩΣΣΑ» σε εντολές Pascal και τέλος ο Compiler της Pascal όπου θα δημιουργήσει το τελικό εκτελέσιμο αρχείο ώστε να εμφανιστούν τα αποτελέσματα στην οθόνη. Πιο συγκεκριμένα με την έναρξη της εκτέλεσης του προγράμματος, λαμβάνεται ο κώδικας που περιέχεται μέσα στον συντάκτη και αποστέλλεται σε μορφή συμβολοσειράς (string) στον CodeParser ο οποίος αναλαμβάνει να το κάνει λίστα για εύκολη διαχείριση. Έπειτα από εκεί ο κώδικας περνάει για λογική, συντακτική και σημασιολογική ανάλυση όπου θα διαπιστωθεί η ορθότητα με βάση τους κανόνες της «ΓΛΩΣΣΑΣ». Αν δεν βρεθεί κανένα σφάλμα, ο κώδικας περνάει στον Compiler για την διαδικασία της αντικατάστασης των εντολών «ΓΛΩΣΣΑΣ» με αντίστοιχες εντολές Pascal. Αφού ολοκληρωθεί και αυτό το βήμα αποθηκεύεται ο κώδικας με τις εντολές Pascal σε ένα προσωρινό αρχείο (files/pascal.pas) όπου καλείται ο Compiler της Pascal και μεταγλωττίζει το αρχείο ώστε να παραχθεί το εκτελέσιμο (files/pascal.exe) όπου στην συνέχεια θα καλεστεί, ώστε να εμφανιστεί η εφαρμογή που δημιουργήθηκε, στον τελικό χρήστη. Summary At lesson Developing Applications in a programming environment of Third Class at High School (Technological Direction) is teaching a pseudo language named GLWSSA, a Greek programming Language which is a Greek version of Pascal.

4 In order to implemented this application it has to merge 4 different sections. One is the editor, which the code is writed into, next is the code analyzer which is like a precompiler, third is the Compiler for all required transactions between GLL and Pascal commands, and last is the Pascal Compiler which will create the final executable file for the results that should be displayed. In a closer look, when program runs, code from editor will be exported as a string and sent it to CodeParser which is responsible to made this code easy accessible (vector of command line objects). After that, CodeParser sending each line for logic, syntax and semantic analyzing processes, to found out, if the code is logically and syntactically correct associated with correct meaning which is semantically acceptable. If no error found, GLL Compiler begins transactions of GLWSSA commands with Pascal commands. After this step completed, Pascal code will be saved in a temporary file (files/pascal.pas) which is called by the Pascal Compiler to build and make the executable file (files/pascal.exe), and finally call it to show the application at user.

5 Περιεχόμενα Εισαγωγή...7 Πτυχές της «ΓΛΩΣΣΑΣ»...8 Το αλφάβητο...8 Το λεξιλόγιο...8 Το συντακτικό ( syntax )...8 Η σημασιολογία ( Semantics )...9 Εισαγωγή στην «ΓΛΩΣΣΑ» Το Αλφάβητο Το συντακτικό Σταθερές Μεταβλητές Εντολή εκχώρησης Εντολές εισόδου εξόδου Εντολές Προγράμματος Εντολές / ομές Επιλογής Εντολές / ομές Επανάληψης Πίνακες Εισαγωγή στην GLL Εισαγωγή H Ροή του Compiler Ανάλυση CodeParser RuleController Command... 21

6 ProgramCommand DataTypeCommand SelectionCommand RepetitiveCommand SyntaxRule Εκτέλεση Επίλογος... 40

7 Εισαγωγή To «GLL» είναι μία εφαρμογή η οποία δέχεται κώδικα γραμμένο σε ΓΛΩΣΣΑ, τον οποίο τον ελέγχει για λογικά λάθη, έπειτα κάνει συντακτική και σημασιολογική ανάλυση γραμμή γραμμή και αφού περάσει χωρίς κανένα σφάλμα τον μετατρέπει σε κώδικα Pascal και με την χρήση του Compiler της δημιουργεί το εκτελέσιμο και έπειτα το εμφανίζει στον χρήστη. Η ανάπτυξη του προγράμματος έχει γίνει σε περιβάλλον C++Builder 6 και όλες οι αναλύσεις, το parsing το ταίριασμα των εντολών της «ΓΛΩΣΣΑΣ» έχει γίνει με την χρήση Regular Expressions και συγκεκριμένα με την χρήση της βιβλιοθήκης Deelx.

8 Πτυχές της «ΓΛΩΣΣΑΣ» Το αλφάβητο Αλφάβητο μίας γλώσσας καλείται το σύνολο των στοιχείων που χρησιμοποιείται από τη γλώσσα. Είναι το λεγόμενο primitive constructs που σημαίνει όλα τα στοιχεία που απαρτίζουν μία γλώσσα προγραμματισμού ( νούμερα, χαρακτήρες, λέξεις και τελεστές/σύμβολα ). Το λεξιλόγιο Το λεξιλόγιο αποτελείται από ένα υποσύνολο όλων των ακολουθιών που δημιουργούνται από τα στοιχεία του αλφαβήτου, τις λέξεις που είναι δεκτές από την γλώσσα. Για παράδειγμα η ακολουθία των γραμμάτων ΠΡΟΓΡΑΜΜΑ είναι δεκτή αφού αποτελεί εντολή, αλλά η ακολουθία ΠΡΟΓΡΑΜΑ δεν αποτελεί εντολή της γλώσσας, άρα δεν είναι δεκτή. Το συντακτικό ( syntax ) Η γραμματική αποτελείται από το τυπικό ή τυπολογικό (accidence) και το συντακτικό (syntax). Τυπικό είναι το σύνολο των κανόνων που ορίζει τις μορφές με τις οποίες μία εντολή είναι αποδεκτή. Για παράδειγμα οι εντολές ΑΡΧΗ, Αρχή, αρχη είναι δεκτές, ενώ η λέξη αρχι δεν είναι αποδεκτή. Συντακτικό είναι το σύνολο των κανόνων που καθορίζει ποιες ακολουθίες χαρακτήρων και τελεστών είναι σωστά κατανεμημένες. Για παράδειγμα η έκφραση: είναι συντακτικά αποδεκτή σύμφωνα με τους κανόνες της γλώσσας ενώ η έκφραση: Πρόγραμμα αρχή τέλος δεν είναι συντακτικά αποδεκτή, για τον λόγω ότι οι εντολές δεν είναι σωστά κατανεμημένες σύμφωνα με τους κανόνες της γλώσσας. Η γνώση του συντακτικού επιτρέπει την δημιουργία σωστών προτάσεων στις φυσικές γλώσσες ενώ στις γλώσσες προγραμματισμού τη δημιουργία σωστών εντολών.

9 Η σημασιολογία ( Semantics ) Η σημασιολογία (Semantics) είναι το σύνολο των κανόνων που καθορίζει το νόημα των λέξεων και κατά επέκταση των εκφράσεων και προτάσεων που χρησιμοποιούνται σε μία γλώσσα. Για παράδειγμα η πρόταση «Εγώ είμαστε ψηλός» έχει την σύνταξη: <ουσιαστικό> <ρήμα> <ουσιαστικό>, η οποία είναι συντακτικά αποδεκτή, όμως σημασιολογικά δεν είναι αποδεκτή αφού η λέξη «Εγώ» αναφέρεται σε ενικό αριθμό ενώ η λέξη «είμαστε» αναφέρεται σε πληθυντικό. Οπότε σημασιολογικό σφάλμα μπορεί να εμφανιστεί σε μία ακολουθία εντολών που είναι συντακτικά αποδεκτή αλλά έχει λάθος νόημα. Στην γλώσσα για παράδειγμα η εντολή : Μεταβλητή <- 2.3 / ημήτρης είναι συντακτικά αποδεκτή αφού ακολουθεί την φόρμα <variable> <- <literal><operator><literal>, όμως σημασιολογικά δεν είναι σωστή γιατί δεν μπορείς να διαιρέσεις έναν αριθμό με χαρακτήρα. Στις γλώσσες προγραμματισμού οι οποίες είναι τεχνητές γλώσσες, ο δημιουργός της γλώσσας αποφασίζει τη σημασιολογία των λέξεων της γλώσσας.

10 Εισαγωγή στην «ΓΛΩΣΣΑ» Το Αλφάβητο Γράμματα Κεφαλαία ελληνικού αλφαβήτου (Α-Ω) Πεζά ελληνικού αλφαβήτου (α-ω) Κεφαλαία λατινικού αλφαβήτου (A-Z) Πεζά λατινικού αλφαβήτου (a-z) Ψηφία 0 9 Ειδικοί χαρακτήρες %+ - * / = ( ).,! : & κενός χαρακτήρας ^ Το συντακτικό Σταθερές Σύνταξη ΣΤΑΘΕΡΕΣ Όνομα_1 = σταθερά_τιμή_1 Όνομα_2 = σταθερά_τιμή_2..

11 . Όνομα_ν = σταθερά_τιμή_ν Παράδειγμα ΣΤΑΘΕΡΕΣ ΠΙ = 3.14 ΦΠΑ = 0.23 ΟΝΟΜΑ = Δημήτρης Τα ονόματα των σταθερών μπορούν να αποτελούνται από γράμματα πεζά ή κεφαλαία του ελληνικού (α-ωα-ω) ή του λατινικού (a-za-z) αλφαβήτου, ψηφία (0 9) καθώς και τον χαρακτήρα κάτω παύλα (underscore _ ), ενώ πρέπει να ξεκινούν υποχρεωτικά με γράμμα. Επίσης δεν επιτρέπεται η χρησιμοποίηση δεσμευμένων λέξεων για την δήλωση σταθερών, όπως Πρόγραμμα, αρχή κτλ. Αποδεκτές σταθερές: Όνομα, Α100, ΦΠΑ Μη αποδεκτές: 100Α, 1ΦΠΑ Μεταβλητές Σύνταξη ΜΕΤΑΒΛΗΤΕΣ τύπος_1 : λίστα_μεταβλητών_1 τύπος_2 : λίστα_μεταβλητών_2... τύπος_ν : λίστα_μεταβλητών_ν Παράδειγμα ΜΕΤΑΒΛΗΤΕΣ ΠΡΑΓΜΑΤΙΚΕΣ : Σύνολο, Α ΑΚΕΡΑΙΕΣ : Τιμή, Ν ΧΑΡΑΚΤΗΡΕΣ : Όνομα ΛΟΓΙΚΕΣ : Έλεγχος

12 Όπως αναφερθήκαμε πριν για τα ονόματα των σταθερών και ποια ακολουθία χαρακτήρων είναι αποδεκτή, το ίδιο ισχύει και για τις μεταβλητές. Εντολή εκχώρησης Σύνταξη Όνομα_μεταβλητής <- έκφραση Παράδειγμα Α <- 132 ΜΗΝΑΣ <- Ιανουάριος ΕΜΒΑΔΟΝ <- Α * Β Στις εντολές εκχώρησης μεγάλη προσοχή πρέπει να δίνεται στον τύπο που προσπαθούμε να εκχωρήσουμε. Για παράδειγμα στην μεταβλητή ΜΗΝΑΣ δεν μπορούμε να βάλουμε νούμερο η μια μαθηματική έκφραση. Εντολές εισόδου εξόδου Σύνταξη ΔΙΑΒΑΣΕ λίστα_μεταβλητών Παράδειγμα ΔΙΑΒΑΣΕ Ποσότητα, Τιμή Η εκτέλεση της εντολής οδηγεί στην είσοδο τιμών από το πληκτρολόγιο και την εκχώρηση τους στις μεταβλητές που αναφέρονται. Σύνταξη ΓΡΑΨΕ λίστα_στοιχείων Παράδειγμα ΓΡΑΨΕ Η τετραγωνική ρίζα του,α, είναι:,ριζα Χρησιμοποιείται για την εμφάνιση σταθερών τιμών καθώς και των τιμών των μεταβλητών που αναφέρονται στη λίστα.

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

14 Σύνταξη ΑΝ συνθήκη_1 ΚΑΙ συνθήκη_2 ΤΟΤΕ Εντολή_1 Εντολή_2 Εντολή_ν ΑΛΛΙΩΣ_ΑΝ συνθήκη_3 ΤΟΤΕ Εντολή_1 Εντολή_2 Εντολή_ν ΑΛΛΙΩΣ Εντολή_1 Εντολή_2 Εντολή_ν ΤΕΛΟΣ_ΑΝ Παράδειγμα ΑΝ αριθμός > 0 ΤΟΤΕ ΓΡΑΨΕ Ο αριθμός είναι θετικός ΑΛΛΙΩΣ_ΑΝ αριθμός < 0 ΤΟΤΕ ΓΡΑΨΕ Ο αριθμός είναι αρνητικός ΑΛΛΙΩΣ ΓΡΑΨΕ Ο αριθμός είναι 0 ΤΕΛΟΣ_ΑΝ Αν η συνθήκη ισχύει, τότε εκτελούνται οι εντολές που βρίσκονται μεταξύ των λέξεων ΤΟΤΕ και ΑΛΛΙΩΣ, διαφορετικά εκτελούνται οι εντολές μεταξύ ΑΛΛΙΩΣ και ΤΕΛΟΣ_ΑΝ. Η εκτέλεση του προγράμματος συνεχίζεται με την εντολή που ακολουθεί τη δήλωση ΤΕΛΟΣ_ΑΝ. Σύνταξη ΕΠΙΛΕΞΕ ΠΕΡΙΠΤΩΣΗ έκφραση_1 Εντολές_1 ΠΕΡΙΠΤΩΣΗ έκφραση_2 Εντολές_2

15 .. ΠΕΡΙΠΤΩΣΗ ΑΛΛΙΩΣ Εντολές_αλλιώς ΤΕΛΟΣ_ΕΠΙΛΟΓΩΝ Παράδειγμα ΔΙΑΒΑΣΕ αριθμός ΕΠΙΛΕΞΕ αριθμός ΠΕΡΙΠΤΩΣΗ 0 ΓΡΑΨΕ Μηδέν ΠΕΡΙΠΤΩΣΗ 1,3,5,7,9 ΓΡΑΨΕ Ο αριθμός είναι μονός ΠΕΡΙΠΤΩΣΗ 2,4,6,8 ΓΡΑΨΕ Ο αριθμός είναι ζυγός ΠΕΡΙΠΤΩΣΗ ΑΛΛΙΩΣ ΓΡΑΨΕ Άλλος αριθμός ΤΕΛΟΣ_ΕΠΙΛΟΓΩΝ Υπολογίζεται η τιμή της έκφρασης και εκτελούνται οι εντολές που ανήκουν στην αντίστοιχη περίπτωση τιμών. Αν η τιμή της έκφρασης δεν αντιστοιχεί σε καμία περίπτωση, τότε εκτελούνται οι εντολές αλλιώς. Εντολές / ομές Επανάληψης Σύνταξη ΟΣΟ συνθήκη ΕΠΑΝΕΛΑΒΕ Εντολή_1 Εντολή_2 Εντολή_ν ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ Παράδειγμα Άθροισμα <- 0 ΟΣΟ Άθροισμα < 1000 ΕΠΑΝΕΛΑΒΕ ΔΙΑΒΑΣΕ Α

16 Άθροισμα <- Άθροισμα + Α ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ Ελέγχεται η συνθήκη και αν είναι Αληθής, εκτελούνται οι εντολές που βρίσκονται ανάμεσα στις ΟΣΟ_ΕΠΑΝΕΛΑΒΕ και ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ. Στη συνέχεια ελέγχεται πάλι η συνθήκη και αν ισχύει, εκτελούνται πάλι οι ίδιες εντολές. Όταν η λογική έκφραση γίνει Ψευδής, τότε σταματάει η επανάληψη και εκτελείται η εντολή μετά το ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ. Σύνταξη ΑΡΧΗ_ΕΠΑΝΑΛΗΨΗΣ Εντολή_1 Εντολή_2 Εντολή_ν ΜΕΧΡΙΣ_ΟΤΟΥ λογική_έκφραση Παράδειγμα ΑΡΧΗ_ΕΠΑΝΑΛΗΨΗΣ ΔΙΑΒΑΣΕ Α Άθροισμα <- Άθροισμα + Α ΜΕΧΡΙΣ_ΟΤΟΥ Άθροισμα >= 1000 Εκτελούνται οι εντολές μεταξύ των ΑΡΧΗ_ΕΠΑΝΑΛΗΨΗΣ και ΜΕΧΡΙΣ_ΟΤΟΥ. Στη συνέχεια ελέγχεται η λογική έκφραση και αν δεν ισχύει(είναι ψευδής), τότε οι εντολές που βρίσκονται ανάμεσα στις ΑΡΧΗ_ΕΠΑΝΑΛΗΨΗΣ και ΜΕΧΡΙΣ_ΟΤΟΥ, εκτελούνται πάλι. Ελέγχεται ξανά η λογική έκφραση και αν δεν ισχύει, επαναλαμβάνεται η εκτέλεση των ίδιων εντολών. Σύνταξη ΓΙΑ μεταβλητή ΑΠΟ τιμή1 ΜΕΧΡΙ τιμή2 ΜΕ ΒΗΜΑ βήμα Εντολή_1 Εντολή_2 Εντολή_ν ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ Παράδειγμα

17 ΓΙΑ Αριθμό ΑΠΟ 1 ΜΕΧΡΙ 100 ΜΕ ΒΗΜΑ 2 Άθροισμα <- Άθροισμα + Αριθμό ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ Οι εντολές του βρόχου εκτελούνται για όλες τις τιμές της μεταβλητής από την αρχική τιμή μέχρι την τελική τιμή, αυξανόμενες με την τιμή του βήματος. Αν το βήμα είναι ίσο με 1, τότε παραλείπεται. Πίνακες ήλωση Μονοδιάστατου ΜΕΤΑΒΛΗΤΕΣ ΠΡΑΓΜΑΤΙΚΕΣ : θερμοκρασία[30] ήλωση Πολυδιάστατου ΜΕΤΑΒΛΗΤΕΣ ΠΡΑΓΜΑΤΙΚΕΣ : θερμοκρασία[30,10] Ανάγνωση/Εγγραφή σε Μονοδιάστατο πίνακα ΔΙΑΒΑΣΕ θερμοκρασία[i] ΓΡΑΨΕ Η θερμοκρασία είναι:,θερμοκρασία[i] Ανάγνωση/Εγγραφή σε Πολυδιάστατο πίνακα ΔΙΑΒΑΣΕ θερμοκρασία[i,j] ΓΡΑΨΕ Η θερμοκρασία είναι:,θερμοκρασία[i,j] Η χρήση πινάκων είναι ένας βολικός τρόπος για τη διαχείριση πολλών δεδομένων ιδίου τύπου.

18 Εισαγωγή στην GLL Εισαγωγή Ο Compiler της GLL είναι χτισμένος ολοκληρωτικά με Κλάσεις και έχει γίνει και χρήση του γνωστού σχεδιαστικού μοτίβου MVC. Με αυτόν τον τρόπο μπορούμε πολύ εύκολα να διαχωρίσουμε το interface (views) από τους Controllers και τα Μodels. H Ροή του Compiler Η γενική ροή του προγράμματος είναι: Φορτώνεται σε ένα string όλος ο κώδικας του Memo που γίνεται η συγγραφή του κώδικα Έπειτα ο CodeParser ένας Controller κάνει όλη την δουλειά ώστε να φέρει τον κώδικα σε μορφή εύκολα και γρήγορα επεξεργάσιμη, Συνδέεται με όλους τους άλλους Controllers που είναι υπεύθυνοι για την λογική και την συντακτική ανάλυση στέλνοντας τους κάθε φορά μία γραμμή κώδικα, Αν επιστραφεί λάθος από κάποιον Controller τότε σταματάει την εκτέλεση και επιστρέφει στο Front End (interface) όπου γίνεται η εμφάνιση των σφαλμάτων. Αν δεν βρεθεί σφάλμα τότε συνδέεται με τον Compiler ο οποίος με την σειρά του αναλαμβάνει τα transactions μεταξύ των εντολών ΓΛΩΣΣΑΣ σε εντολές Pascal. Με την ολοκλήρωση και του παραπάνω βήματος αποθηκεύεται το αρχείο με τις εντολές Pascal σε ένα προσωρινό αρχείο και εκτελείται το βήμα του Linker όπου καλείται ο Compiler της Pascal ώστε να δημιουργηθεί το εκτελέσιμο.

19 Αφού δημιουργηθεί το εκτελέσιμο καλείται και εμφανίζεται στον χρήστη.

20 Ανάλυση CodeParser Είναι αυτός που κάνει το parsing του κώδικα και «συνδέεται» άμεσα με όλους τους Controllers και τα Views. Κατά βάση θεωρείται Controller γιατί συνδέεται άμεσα με Models και Views. Αποτελείται από δύο κύριες μεθόδους: Source *CodeParser::parseSourceCode(int totallines, string unparsedcode) Αυτή η function παίρνει την συμβολοσειρά unparsedcode η οποία περιέχει όλο τον κώδικα σε μορφή string, και γνωρίζοντας τις συνολικές γραμμές (totallines) «παρσάρεται» το string. Στην φάση αυτή γίνεται εξαγωγή της κάθε γραμμής κώδικα ξεχωριστά όπου σε συνεργασία με την Κλάση Tool καθαρίζεται η γραμμή κώδικα από περιττά κενά, tabs, comments κλπ και έπειτα γίνεται εκχώρηση ως αντικείμενο τύπου Command στο splittedcommands, ένα vector από Commands το οποίο εισάγεται ως παράμετρος στον Constructor στης Κλάσης SourceCode. Το αντικείμενο αυτό είναι η επιστρεφόμενη τιμή της συνάρτησης αυτής. Με λίγα λόγια η παραπάνω συνάρτηση παίρνει ως όρισμα κώδικα ως string και τον εξάγει σε μορφή αντικειμένου όπου μέσα του περιέχεται μια λίστα (vector) από αντικείμενα τύπου Command. bool CodeParser::raiseFalses(SourceCode *sourcecode) Η συνάρτηση που είναι υπεύθυνη να κάνει ανάγνωση όλο το vector<command> και για κάθε commandline να καλέσει τους Controllers που είναι υπεύθυνοι για την Λογική, Συντακτική και σημασιολογική ανάλυση. Επιστρέφει bool τιμές, true σε περίπτωση που βρεθούν σφάλματα όπου και σταματάει την εκτέλεση του προγράμματος. Σε αντίθετη περίπτωση επιστρέφει false οπότε έχει διαβάσει όλο το vector. void CodeParser::runCompiler(SourceCode *sourcecode)

21 Αφού δεν έχει επιστραφεί κάποιο σφάλμα καλείται η παραπάνω συνάρτηση για να γίνει η εναλλαγή κώδικα ΓΛΩΣΣΑΣ σε κώδικα Pascal. Στην πραγματικότητα αυτή η συνάρτηση λειτουργεί ως Controller της Κλάσης Compiler. RuleController Μία κλάση ορίου η οποία συνδέεται με κλάσης οντότητας LogicRule, SyntaxRule & SemanticRule. Στην ουσία είναι η κύρια κλάση που «καλεί» τις κατάλληλες συναρτήσεις για την λογική, συντακτική και σημασιολογική ανάλυση του κώδικα. bool RuleController::logicRules(int line, string codeline) Συνάρτηση υπεύθυνη να καλεί τις διαδικασίες για την λογική ανάλυση του κώδικα. Καλείται για κάθε νέα γραμμή κώδικα (codeline). bool RuleController::syntaxRules(int line, string codeline) Ίσως η πιο βασική συνάρτηση του προγράμματος διότι είναι αυτή που δρομολογεί το είδος της εντολής που «παρσάρετε» και σύμφωνα με αυτό καλεί τις κατάλληλες διαδικασίες για συντακτική ανάλυση και ορθότητα του κώδικα. Και αυτή καλείται επίσης για κάθε νέα γραμμή κώδικα (codeline). Στην ουσία είναι συνάρτηση route γιατί δρομολογεί την εκτέλεση με βάση το ποια είναι η εντολή που περιέχεται μέσα στο codeline εκείνη την στιγμή. Command Η κλάση Command όπου περιέχει την βασική δομή και τα attributes που χρειάζεται μία γραμμή κώδικα ώστε να δηλωθεί. Από την συγκεκριμένη κλάση κληρονομούν όλοι οι τύποι εντολών που θα αναλύσουμε παρακάτω.

22 ProgramCommand Τυχαίνει το όνομα να παραπέμπει στην εντολή πρόγραμμα, αλλά είναι εξυπηρετεί όλες τις εντολές προγράμματος. Η γενική ιδέα που ακολουθήθηκε σε όλη την εργασία είναι η χρησιμοποίηση κλάσεων για σετ εντολών.

23 01: bool ProgramCommand::isProgramCommand(string codeline){ 02: char charcodeline[255]; 03: strcpy(charcodeline,codeline.c_str()); 04: 05: CRegexpT <char> regexp(programcmd); 06: MatchResult result = regexp.match(charcodeline); 07: if(result.ismatched()) 08: return true; 09: 10: return false; 11: } Ανάλυση Στην γραμμή 03 αντιγράφουμε την γραμμή κώδικα μία μεταβλητή τύπου char που έχουμε δηλώσει στην γραμμή 02. Αυτό γίνεται γιατί η βιβλιοθήκη deelx ζητάει μεταβλητή τύπου const char. Έπειτα στην γραμμή 05 γίνεται η αρχικοποίηση του regular expression που βρίσκεται στην μεταβλητή programcmd. Στην γραμμή 06 με βάση το regular expression που δημιουργήθηκε γίνεται το match και τα αποτελέσματα πάνε στο αντικείμενο result. Το οποίο χρησιμοποιείται στην γραμμή 07 για να επαληθευτεί αν βρέθηκε το pattern μέσα στο charcodeline. Με την χρήση regural expression οπότε επιστρέφει true σε περίπτωση που η εντολή που είναι στην αρχή μέσα στο codeline είναι η εντολή πρόγραμμα. Αναφορά στο regex που χρησιμοποιήθηκε: char programcmd[] = "^(π Π)(ρ Ρ)(ο ό Ο Ό)(γ Γ)(ρ Ρ)(α Α)(μ Μ){2}(α Α)(\n $)"; ^ : αρχή γραμμής (π Π)(ρ Ρ) κ.ο.κ : π ή Π, ρ ή Ρ κ.ο.κ το ότι είναι δίπλα δίπλα σημαίνει ότι μεταξύ τους δεν μπορεί να βρεθεί άλλος χαρακτήρας. {2} : επανάληψη 2 φορές την προηγούμενη καν. έκφραση δηλ. ισοδύναμο με (μ Μ)(μ Μ) (\n $) : \n αλλαγή γραμμής, κενός χαρακτήρας (στην c είναι το κενό), $ τέλος γραμμής

24 Στην ουσία η παραπάνω κανονική έκφραση θα ταιριάσει με όλους τους συνδυασμούς που δίνουν την λέξη πρόγραμμα (πχ προγραμμα, ΠΡΟΓΡΑΜΜΑ, Πρόγραμμα κ.ο.κ.) και μετά να ακολουθεί κενό και οποιοσδήποτε χαρακτήρας ή αλλαγή γραμμής ή τέλος γραμμής. Ομοίως έχουμε τις συναρτήσεις για τις εντολές ΑΡΧΗ & ΤΕΛΟΣ_ΠΡΟΓΡΑΜΜΑΤΟΣ αντίστοιχα : bool ProgramCommand::isStartCommand(string codeline) * bool ProgramCommand::isEndCommand(string codeline) * string ProgramCommand::convertProgramCommand(string codeline) Η παραπάνω εντολή χρησιμοποιείται για τα transactions μεταξύ των δύο γλωσσών. Αφού κάνει match την εντολή μέσα στο codeline την αντικαθιστά με την εντολή PROGRAM. Ομοίως έχουμε τις συναρτήσεις για τις εντολές ΑΡΧΗ & ΤΕΛΟΣ_ΠΡΟΓΡΑΜΜΑΤΟΣ αντίστοιχα : string ProgramCommand::convertStartCommand(string codeline) * string ProgramCommand::convertEndCommand(string codeline) * * Για λόγους συντομίας και επειδή έχουν παρόμοιες λειτουργίες η ανάλυση παραλείπεται. DataTypeCommand Ανάλυση Περιλαμβάνει όλες τις εντολές που είναι για την δήλωση τύπων δεδομένων. Επίσης σ αυτήν ανήκει και δήλωση σταθερών με την τιμή τους. Έχει τις συναρτήσεις που ανιχνεύουν το αν η εντολή είναι μία από τις: ΣΤΑΘΕΡΕΣ, ΜΕΤΑΒΛΗΤΕΣ, ΑΚΕΡΕΑΙΕΣ, ΠΡΑΓΜΑΤΙΚΕΣ οι οποίες δουλεύουν όμοια με τις εντολές is της ProgramCommand. Υπάρχει ακόμα μία συνάρτηση που ανιχνεύει την ύπαρξη ανάθεσης τιμής σε όνομα σταθεράς, και θα αναλύσω το regular expression που είναι: char setconstvar[] = "^[a za Zα ωα ΩΆΈΉΊΌΎΏάέήίόύώς_0 9]+( )?=( )?[a za ZαωΑ ΩΆΈΉΊΌΎΏάέήίόύώς_0 9\'\"\.]*(\n $)";

25 ^ : αρχή γραμμής [a za Z.]+ : ότι περιέχεται μέσα στα brackets θα το κάνει match, οτιδήποτε άλλο όχι. Το + δηλώνει ότι η προηγούμενη κανονική έκφραση θα βρεθεί μία φορά τουλάχιστον. ( )?=( )? : μία ή καμία φορά το κενό, μετά ακολουθεί =, και μετά πάλι το ίδιο [a za Zα ωα ΩΆΈΉΊΌΎΏάέήίόύώς_0 9\'\"\.]*: αυτό θα κάνει match με αριθμούς γράμματα και τα μονά και διπλά αυτάκια και την τελεία, καμία ή περισσότερες φορές. Στην ουσία η παραπάνω κανονική έκφραση θα ταιριάσει με όλους τους συνδυασμούς : Φπα = 0.18, Τεστ = δοκιμή, Name = Dimitris Αλλά και με εσφαλμένες δηλώσεις όπως: Test = 45 wrong, Όνομα = ημήτρης Οι οποίες θα αναλυθούν συντακτικά παρακάτω και θα τυπωθεί το σφάλμα. Στην συνέχεια της συγκεκριμένης κλάσης έχουμε τα transaction: "^(σ Σ)(τ Τ)(α Α)(θ Θ)(ε Ε)(ρ Ρ)(ε έ Έ Ε)(σ ς Σ)" αντικαθίσταται με το CONST "^(μ Μ)(ε Ε)(τ Τ)(α Α)(β Β)(λ Λ)(η Η)(τ Τ)(ε έ Έ Ε)(σ ς Σ)" με το VAR "^(α Α)(κ Κ)(ε έ Έ Ε)(ρ Ρ)(α Α)(ι Ι)(ε Ε)(σ ς Σ)" αντικαθιστάται με το LONGINT "^(π Π)(ρ Ρ)(α Α)(γ Γ)(μ Μ)(α Α)(τ Τ)(ι Ι)(κ Κ)(ε έ Έ Ε)(σ ς Σ)" με το REAL και "^(χ Χ)(α Α)(ρ Ρ)(α Α)(κ Κ)(τ Τ)(η ή Ή Η)(ρ Ρ)(ε Ε)(σ ς Σ)" με το CHAR IOCommand Ανάλυση Περιλαμβάνει όλες τις εντολές που είναι εντολές εισόδου εξόδου : isreadcommand αν είναι η εντολή ΙΑΒΑΣΕ iswritecommand αν είναι η εντολή ΓΡΑΨΕ isnotwritelncommand αυτή επιστρέφει πότε η εντολή ΓΡΑΨΕ δεν είναι με ορίσματα, δηλ αν κάνει match σημαίνει ότι είναι καθαρή ΓΡΑΨΕ που τυπώνει ένα μήνυμα μόνο.

26 isassignmentcommand η εντολή εκχώρησης ( Μεταβλητή <- τιμή ) Και οι συναρτήσεις μετατροπής: convertreadcommand, convertwritecommand, convertwritelncommand, convertwritelnvariables, convertvariables, addrestrequired και addassignrestrequired είναι οι απαραίτητες συναρτήσεις για την μετατροπή όλων των εντολών εισόδου εξόδου σε γλώσσα Pascal. ΓΡΑΨΕ 'Μήνυμα χωρίς ορίσματα' ΓΡΑΨΕ 'Μήνυμα με όρισμα',όρισμα ΔΙΑΒΑΣΕ Τιμή_μονάδος Κόστος <- Ποσότητα*Τιμή_μονάδος WRITE(' Μήνυμα χωρίς ορίσματα'); WRITELN(' Μήνυμα με όρισμα,orisma); READLN(Timh_monados); Kostos := Posothta*Timh_monados; SelectionCommand Ανάλυση Περιλαμβάνει όλες τις εντολές που είναι εντολές / δομές επιλογής : isifcommand αν είναι η εντολή αν iselsecommand αν είναι η εντολή αλλιώς iselseifcommand αν είναι η εντολής αλλιώς_αν isendifcommand αν είναι η εντολή τέλος_αν isswitchcommand η εντολή επίλεξε iscasecommand η εντολή περίπτωση και η περίπτωση αλλιώς isendcasecommand η εντολή τελος_επιλογών Και οι συναρτήσεις μετατροπής: convertifcommand, convertelsecommand, convertelseifcommand και convertendifcommand σε συνδυασμό μετατρέπουν με 2 4 βήματα έναν ολόκληρο βρόχο της εντολής ΑΝ, ανεξαρτήτως τις εντολές που υπάρχουν ενδιάμεσα. ΑΝ Ποσότητα < 5 ΤΟΤΕ Γραψε 'Μήνυμα1' ΑΛΛΙΩΣ IF Posothta < 5 THEN BEGIΝ WRITE('Μήνυμα1 ); END ELSE BEGIN

27 ΤΕΛΟΣ_ΑΝ Γραψε 'Μήνυμα2' WRITE('Μήνυμα2'); END; Ομοίως οι συναρτήσεις: convertswitchcommand, convertcasecommand και convertendcasecommand μετατρέπουν βρόχους της δομής επιλογής ΕΠΙΛΕΞΕ. ΕΠΙΛΕΞΕ Ποσότητα ΠΕΡΙΠΤΩΣΗ 1,2,3 Γραψε 'Μήνυμα1' ΠΕΡΙΠΤΩΣΗ ΑΛΛΙΩΣ Γραψε 'Μήνυμα2' ΤΕΛΟΣ_ΠΕΡΙΠΤΩΣΕΩΝ CASE Posothta OF 1,2,3: BEGIN WRITE('Μήνυμα1 ); END; ELSE BEGIN WRITE('Μήνυμα2'); END; END; RepetitiveCommand Ανάλυση Περιλαμβάνει όλες τις εντολές που είναι εντολές / δομές επιλογής : iswhilecommand αν είναι η εντολή όσο isendrepeatcommand αν είναι η εντολή τελος_επανάλληψης isstartrepeatcommand αν είναι η εντολής αρχή_επανάληψης isuntilcommand αν είναι η εντολή μέχρις_ότου isforcommand η εντολή για Και οι συναρτήσεις μετατροπής: convertwhilecommand, convertendrepeatcommand, convertstartrepeatcommand, convertuntilcommand και convertforcommand που σε συνδυασμό μετατρέπουν όλους τους τύπους επαναληπτικών διαδικασιών σε κώδικα Pascal. Η εντολή για από..μεχρι τελος_επανάληψης: ΓΙΑ i ΑΠΟ 1 ΜΕΧΡΙ 10 FOR i:=1 TO 10 DO

28 ΓΙΑ j ΑΠΟ 1 ΜΕΧΡΙ 30 FOR j:=1 TO 10 ΓΡΑΨΕ 'Θερμοκρασία: ',i WRITELN(' Θερμοκρασία:', i,'',j); ΔΙΑΒΑΣΕ Θερμοκρασία[i,j] READLN(Uermokrasia[i,j]); ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ END. ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ END; Η εντολή όσο επανέλαβε τελος_επανάληψης: i <- 1 i := 1; ΟΣΟ i < 10 ΕΠΑΝΕΛΑΒΕ WHILE i < 10 DO BEGIN ΓΡΑΨΕ 'Η τιμή του i: ', i WRITELN('Η τιμή του i: ', i); i <- i + 1 i := i + 1; ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ END; Η εντολή αρχή_επανάληψης μέχρις_ότου: i <- 1 i := 1; ΑΡΧΗ_ΕΠΑΝΑΛΗΨΗΣ REPEAT ΓΡΑΨΕ 'Η τιμή του i: ', i WRITELN('Η τιμή του i: ', i); i <- i + 1 i := i + 1; ΜΕΧΡΙΣ_ΟΤΟΥ i > 10 UNTIL i > 10; SyntaxRule Ίσως η ποιο βασική Κλάση του προγράμματος. Και αυτό γιατί στην συγκεκριμένη κλάση γίνεται όλη η συντακτική ανάλυση του κώδικα. Χωρίς της οποίας δεν μπορεί να παραχθεί το εκτελέσιμο, αφού πρέπει πρώτα να διαπιστωθεί η ορθότητα του κώδικα ώστε αφού γίνει το transaction μεταξύ ΓΛΩΣΣΑΣ και Pascal να καλεστεί ο Compiler της και να παραχθεί το εκτελέσιμο. Για λόγους συντομίας και αποφυγής άσκοπης επαναλαμβανόμενης ανάλυσης, και λόγω του μεγάλου όγκου συναρτήσεων που διαθέτει η εν λόγω Κλάση, θα

29 παραλειφθούν οι περισσότερες συναρτήσεις ώστε να επικεντρωθούμε στις πιο σημαντικές. bool progcmdfirstrule(string codeline, int line) Ελέγχει πριν τσεκάρει με regular exp την γραμμή κώδικα αν έχουν βρεθεί εντολές πριν από αυτήν, αν ναι εμφανίζει το κατάλληλο σφάλμα. bool progcmdsecondrule(string codeline, int line) Αρχικά βλέπει αν έχει «παρσαριστεί» ήδη η εντολή πρόγραμμα οπότε υπάρχει σφάλμα. Στην συνέχεια αν ταιριάξει ακριβώς με την εντολή πρόγραμμα και το τίτλο προγράμματος προχωράει σε νέο έλεγχο του τίτλου προγράμματος ώστε να εξασφαλιστεί ότι δεν είναι δεσμευμένη λέξη ή κάποια μη επιτρεπόμενη. Αν δεν ταιριάξει ακριβώς τότε προσπαθεί να βρει τι λείπει ή τι είναι επιπλέον δηλωμένο και τυπώνει το ανάλογο τύπο λάθους. Με παρόμοια λογική λειτουργούν οι συναρτήσεις: startcmdfirstrule, startcmdsecondrule, endcmdfirstrule, endcmdsecondrule, constcmdfirstrule, constcmdsecondrule, setconstvarfirstrule, varcmdfirstrule, varcmdsecondrule. bool setconstvarsecondrule(string codeline, int line) /** * Αν κάνει match τότε έχει 3 cases να τσεκάρει * 1. Να τσεκάρει αν το όνομα της σταθεράς είναι αποδεκτό * 2. Να τσεκάρει αν η σύνταξη είναι σωστή * 3. Έπειτα να δει αν το όνομα της σταθεράς έχει ήδη χρησιμοποιηθεί * 4. Τέλος αν περάσει όλους τους ελέγχους τοποθετείτε το όνομα της σταθεράς * στο vector με τις σταθερές σύμφωνα με τον τύπο που έχει η τιμή που τις * ανατίθενται. */ Σε περίπτωση που δεν ταιριάξει με την σωστή συντακτική δομή για κάθε επιπλέον λέξη ή εντολή που βρίσκεται μετά την δήλωση της σταθεράς θα τυπωθεί ένα σφάλμα. bool intcmdsecondrule(string codeline, int line); bool floatcmdsecondrule(string codeline, int line); bool charcmdsecondrule(string codeline, int line);

30 Οι τρεις παραπάνω συναρτήσεις δουλεύουν με τον ίδιο τρόπο. Αναλύουν συντακτικά την δήλωση των μεταβλητών ανά τύπο. Θα αναλύσουμε το regular expression που χρησιμοποιήθηκε: char validsyntax[] ="^(α Α)(κ Κ)(ε έ Έ Ε)(ρ Ρ)(α Α)(ι Ι)(ε Ε)(σ ς Σ)( )?:( )?[a za Zα ωα ΩΆΈΉΊΌΎΏάέήίόύώς_0 9]+(\\[[0 9,]+\\])*((( )?,( )?[a za Zα ωα ΩΆΈΉΊΌΎΏάέήίόύώς_0 9]+(\\[[0 9,]+\\])*)+$ $)"; Ανάλυση ^(α Α)(κ Κ)(ε έ Έ Ε)(ρ Ρ)(α Α)(ι Ι)(ε Ε)(σ ς Σ) : Ταιριάζει με την εντολή ακέραιες ( )?:( )? : Ταιριάζει με 0 ή 1 κενό : 0 ή 1 κενό [a za Zα ωα ΩΆΈΉΊΌΎΏάέήίόύώς_0 9]+ : όνομα μεταβλητής με 1 ή περισσότερα από αυτά (\\[[0 9,]+\\])* : Αυτό είναι για τους πίνακες, το \\[ σημαίνει ότι θα κάνει ακριβώς match τον χαρακτήρα [. Μετά είναι το [0-9,]+ που σημαίνει αριθμός και κόμμα μπορεί να υπάρχει μία ή περισσότερες φορές και \\] κλείνει η αγκύλη. Το * σημαίνει να ταιριάξει είτε υπάρχει τέτοια ακολουθία είτε όχι. ((( )?,( )?[a za Zα ωα ΩΆΈΉΊΌΎΏάέήίόύώς_0 9]+(\\[[0 9,]+\\])*)+$ $) Αυτό δηλώνει ότι μετά από την πρώτη μεταβλητή μπορεί να κάνει match αυτό ( )?,( )?[a za Zα ωα ΩΆΈΉΊΌΎΏάέήίόύώς_0 9]+(\\[[0 9,]+\\])*)+$ ή να μην υπάρχει τίποτε άλλο, αλλά να είναι τέλος γραμμής $. Αν δεν είναι τέλος γραμμής θα πρέπει να ταιριάζει το ίδιο με το προηγούμενο που αναλύσαμε με την διαφορά ότι πριν από κάθε μεταβλητή πρέπει απαραίτητα να προηγείται κόμμα -> ( )?,( )? συνοδευόμενη ή και μη από κενά. Το παραπάνω μπορεί να ταιριάξει όσες φορές χρειάζεται. Ομοίως υπάρχουν οι αντίστοιχες κανονικές εκφράσεις για τους χαρακτήρες και για τους πραγματικούς αριθμούς. bool readcmdsecondrule(string codeline, int line) Εδώ γίνεται ο έλεγχος της εντολής «ΙΑΒΑΣΕ». Η εντολή αυτή ακολουθείτε πάντα από μία ή περισσότερες μεταβλητές ή πίνακες. Επομένως η κανονική έκφραση έχει μία

31 βασική μορφή και μετά τέλος γραμμής ή συνεχίζει με κόμμα και έπειτα μεταβλητή όσες φορές χρειάζεται. Αρχικά ελέγχεται αν είναι συντακτικά αποδεκτή η γραμμή κώδικα. Έπειτα και εφόσον δεν υπάρχει συντακτικό σφάλμα, ελέγχονται όλες οι μεταβλητές μία προς μία αν έχουν δηλωθεί. Σε περίπτωση που βρεθεί στην λίστα μεταβλητών της εντολής ΙΑΒΑΣΕ μεταβλητή η οποία είναι δηλωμένη ως σταθερά τότε εμφανίζεται συντακτικό σφάλμα ότι δεν επιτρέπεται η χρήση της σταθεράς ως μεταβλητή. Αν δεν δηλωθεί η μεταβλητή τότε εμφανίζεται μήνυμα μην αναγνωρίσιμης μεταβλητής. Σε περίπτωση που η μεταβλητή είναι πίνακας ελέγχεται κάθε μετρητής που περιέχεται μέσα στις αγκύλες, για το αν έχει δηλωθεί ως μεταβλητή και αν είναι αποδεκτού τύπου. Αν δεν είναι αποδεκτού τύπου (ακέραιος) τότε εμφανίζεται σφάλμα «μην αποδεκτός τύπος μεταβλητής ως μετρητής στον πίνακα». Η κανονική έκφραση που χρησιμοποιήθηκε σ αυτήν την συνάρτηση για την εγκυρότητα της σύνταξης είναι παρόμοια με την παραπάνω με την διαφορά ότι για το ταίριασμα των πινάκων χρησιμοποιεί αντί για: (\\[[0 9,]+\\])* την έκφραση: (\\[[a za Z,]+\\])* και αυτό γιατί η εντολή ΙΑΒΑΣΕ δέχεται τιμές τις οποίες τις καταχωρεί μέσα στους πίνακες. Οπότε ο πίνακας πρέπει να έχει μέσα στις αγκύλες τον μετρητή του και όχι κάποιο νούμερο. Για παράδειγμα το σωστό είναι «ΙΑΒΑΣΕ Τιμές[i]» και όχι το «ΙΑΒΑΣΕ Τιμές[20]». bool writecmdsecondrule(string codeline, int line) Είναι η συνάρτηση για την συντακτική ανάλυση της εντολής ΓΡΑΨΕ χωρίς να ακολουθούν μεταβλητές/πίνακες. Η συγκεκριμένη εκτελείται μόνο για τις εντολές όπως «ΓΡΑΨΕ Μήνυμα». Γι αυτό τον λόγω εξηγείται ότι η κανονική έκφραση του validsyntax τελειώνει με το $, που σημαίνει ότι μετά το «μήνυμα» είναι το τέλος γραμμής. bool writelncmdsecondrule(string codeline, int line) Βασική συνάρτηση για την ανάλυση των εντολών ΓΡΑΨΕ με μηνύματα και λίστες μεταβλητών ή πινάκων. Επειδή η σύνταξη αυτής της εντολής είναι σε μορφή: <ΓΡΑΨΕ> 'message1',var1,'message2',var2,'message3',var3...,'messagen',varn$

32 Γνωρίζοντας την κανονική έκφραση που ταιριάζει με κάθε διαφορετική οντότητα (εντολή, μήνυμα, μεταβλητή κ.λπ) δηλαδή (γ Γ)(ρ Ρ)(α ά Ά Α)(ψ Ψ)(ε Ε) : για την εντολή ΓΡΑΨΕ, γράψε κλπ. \=]+\'): για κάθε μήνυμα μέσα σε μονά αυτάκια Μήνυμα και (\'[a za Zα ωα ΩΆΈΉΊΌΎΏάέήίόύώς0 9 ([a za Zα ωα ΩΆΈΉΊΌΎΏάέήίόύώς_0 9]+(\\[[a za Zα ωα ΩΆΈΉΊΌΎΏάέήίόύώς_0 9,]+\\])*) : για κάθε μεταβλητή ή πίνακα Τιμή[i], Κόστος_1. πρέπει να δημιουργηθεί μία κανονική έκφραση η οποία οσαδήποτε και αν είναι τα μηνύματα και οι μεταβλητές να μπορεί να ταιριάζει όταν είναι σωστή η σύνταξη της εντολής. Οπότε βήμα-βήμα δημιουργήθηκε ένα regex που να ταιριάζει με μήνυμα μεταβλητή : CASE 1: <γράψε> 'A message followed by variable',variable$ έπειτα επίσης να μπορεί να ταιριάξει και με μήνυμα μεταβλητή μήνυμα : CASE 2: <γράψε> 'Msg1 before variable',variable,'msg2 after variable'$ αλλά και με μήνυμα μεταβλητή μήνυμα μεταβλητή : CASE 3: <γράψε> 'Msg1 before var1',var1,'msg2 after var1 & before var2',var2$ και τέλος με την πολλαπλή εμφάνιση μηνυμάτων και μεταβλητών. Σύμφωνα με όλα τα παραπάνω η κανονική έκφραση ταιριάζει με όλες τις πιθανές περιπτώσεις. Προστέθηκε επίσης στην έκφραση το {0, } που σημαίνει η κανονική έκφραση να ταιριάξει όσες φορές είναι εφικτό, αλλά και 0 αν δεν μπορεί καθόλου ( το πρώτο case ). Όπως και στην «ΙΑΒΑΣΕ» έτσι και σ αυτήν, κάθε μεταβλητή/πίνακας ελέγχεται για το αν έχει δηλωθεί και αν πληροί όλους τους κανόνες της ΓΛΩΣΣΑΣ. bool assigncommandrule(string codeline, int line); Αυτή η συνάρτηση αναλύει συντακτικά τις εντολές εκχώρησης. Ο πρώτος έλεγχος που γίνεται στην συνάρτηση αυτή είναι ο τύπος της μεταβλητής στην οποία γίνεται η εκχώρηση τιμής. Εμφάνιση σφάλματος γίνεται αν δεν είναι μεταβλητή αλλά σταθερά, όπου δεν επιτρέπεται εκχώρηση τιμής σε σταθερά. Επίσης ελέγχεται αν υπάρχει η μεταβλητή. Έπειτα ελέγχεται αν πρόκειται για εκχώρηση μίας τιμής σε μεταβλητή ( Κόστος <- 0, Τιμή[i] <- 10 ) ή εκχώρηση αποτελέσματος μαθηματικής πράξης μεταξύ

33 μεταβλητών/αριθμών/πινάκων ( Κόστος <- Τιμή + 10 ). Και στις δύο περιπτώσεις γίνεται πρώτα έλεγχος για μην αναγνωρίσιμες μεταβλητές και για σημασιολογικά σφάλματα όπως ασυμφωνία τύπων. Αν για παράδειγμα προσπαθεί να γίνει εκχώρηση ενός χαρακτήρα σε μεταβλητή τύπου ακεραίου. Εκφράσεις: "^[a za Zα ωα ΩΆΈΉΊΌΎΏάέήίόύώς_0 9]+(\\[[a za Z,]+\\])*" : ταιριάζει με μεταβλητές και πίνακες. "( )?< ( )?": ταιριάζει με τον τελεστή ανάθεσης ( <- ) Αφού χρησιμοποιηθούν οι παραπάνω εκφράσεις για την μεταβλητή που γίνεται η ανάθεση έπειτα ακολουθούν οι εκφράσεις για τις τιμές/μεταβλητές. (^([0 9])+$) ή : ταιριάζει μόνο τους αριθμούς ακεραίους (^[0 9])+(\\.)?([0 9])+$) ή : ταιριάζει δεκαδικούς αριθμούς (^\'([a za Zα ωα ΩΆΈΉΊΌΎΏάέήίόύώς0 9])*\'$) ή : ταιριάζει χαρακτήρες (^[a za Zα ωα ΩΆΈΉΊΌΎΏάέήίόύώς_0 9]+(\\[[a za Z,]+\\])*$): μεταβλητές/πίνακες bool ifcmdfirstrule(string codeline, int line) Συνάρτηση για την ανάλυση της εντολής ΑΝ συνθήκη ΤΟΤΕ αλλά όπως επίσης και για την ΑΝ συνθήκη1 ΚΑΙ συνθήκη2 ΤΟΤΕ. Η διαδικασία σε αυτήν την συνάρτηση πάει ως εξής: Σε πρώτη φάση και εφόσον είναι συντακτικά σωστή όλη η γραμμή κώδικα, ελέγχονται όλοι οι τελεστές σύγκρισης των συνθηκών. Σε περίπτωση που δεν είναι σωστός ο τελεστής σύγκρισης δημιουργείτε σφάλμα μη αναγνωρίσουμε τελεστή σύγκρισης. Έπειτα με την χρήση της κ.ε : ((α ά Ά Α)(ν Ν)) ((κ Κ)(α Α)(ι Ι)) ((τ Τ)(ο ό Ό Ο)(τ Τ)(ε Ε)) αφαιρούνται οι εντολές που υπάρχουν στην γραμμή και μένουν μόνο οι συνθήκες όπου με χρήση νέας κ.ε εξάγονται σε μια λίστας όπου κάθε λίστα έχει 2 string μέσα. Στο ένα έχει το αριστερό μέρος της συνθήκης και στο άλλο το δεξιό. Οπότε μετά για κάθε συνθήκη και αφού υπάρχουν σε μορφή λίστας γίνεται ο περεταίρω έλεγχος για τον αν είναι δηλωμένες μεταβλητές, τον τύπο που γίνεται η σύγκριση κλπ.

34 bool elsecmdfirstrule(string codeline, int line) Εκτελείται όταν στο codeline υπάρχει η εντολή ΑΛΛΙΩΣ. Κάνει 2 ελέγχους. Αν καλεστεί και δεν έχει περαστεί (παρσαριστεί) η εντολή ΑΝ τότε υπάρχει σφάλμα ή αν οι συνολικές ΑΝ που είναι ανοιχτές είναι ίσες με τις ΑΝ που έχουν κλείσει τότε σημαίνει πως η εντολή ΑΛΛΙΩΣ δεν είναι μέσα σε εντολή ΑΝ, οπότε δημιουργείτε νέο σφάλμα. Σε αντίθετη περίπτωση και αφού δεν ισχύει τίποτα από τα παραπάνω κάνε ένα τελευταίο έλεγχο για το αν έχει ήδη περάσει από εντολή αλλιώς στην ίδια ΑΝ, που επίσης είναι λάθος.

35 bool elsecmdsecondrule(string codeline, int line); Σαν συνέχεια της προηγούμενης αν ταιριάζει ακριβώς με την εντολή ΑΛΛΙΩΣ και δεν υπάρχει κάτι άλλο δίπλα της συνεχίζεται η εκτέλεση κανονικά. Αν υπάρχει οτιδήποτε δημιουργείται συντακτικό σφάλμα. Ο έλεγχος για τη εξακρίβωση αν υπάρχει κάτι δίπλα από την εντολή γίνεται με την κ.ε :.* που σημαίνει οποιοσδήποτε χαρακτήρας εκτός του χαρακτήρα αλλαγής γραμμής. bool elseifcmdfirstrule(string codeline, int line); Γίνονται οι ίδιοι έλεγχοι όπως και στην περίπτωση της εντολής ΑΛΛΙΩΣ. bool elseifcmdsecondrule(string codeline, int line); Αυτή η συνάρτηση έχει ακριβώς την ίδια λογική και υλοποίηση με την συνάρτηση ifcmdfirstrule για τον λόγω ότι ισχύουν ακριβώς τα ίδια όσο αναφορά τους κανόνες σύνταξης και σημασιολογίας. Η μόνη διαφορά που υπάρχει είναι στην αρχική εντολή που είναι αντί της ΑΝ η ΑΛΛΙΩΣ_ΑΝ. bool endifcmdfirstrule(string codeline, int line) Εκτελείται όταν στο codeline υπάρχει η εντολή ΤΕΛΟΣ_ΑΝ Ελέγχει αν δεν έχει δηλωθεί εντολή ΑΝ οπότε και εμφανίζει σχετικό σφάλμα ή αν οι εντολές ΑΝ που ανοίχτηκαν είναι ίσες με τις εντολές ΤΕΛΟΣ_ΑΝ (οι αν που έκλεισαν δηλ.) που σημαίνει ότι δεν υπάρχει εντολή ΑΝ ανοιχτή, πράγμα το οποίο δημιουργεί σφάλμα. bool endifcmdsecondrule(string codeline, int line) Σαν συνέχεια της προηγούμενης αν ταιριάζει ακριβώς με την εντολή ΤΕΛΟΣ_ΑΝ και δεν υπάρχει κάτι άλλο δίπλα της συνεχίζεται η εκτέλεση κανονικά. Αν υπάρχει οτιδήποτε δημιουργείται συντακτικό σφάλμα. Παρόμοια υλοποίηση με την εντολή ΑΛΛΙΩΣ. bool switchcmdfirstrule(string codeline, int line) Εκτελείται όταν στο codeline περιέχεται η εντολή ΕΠΙΛΕΞΕ. Αρχικά ελέγχεται για την ορθότητα της σύνταξης και στην συνέχεια για τον αν έχει δηλωθεί η μεταβλητή/σταθερά που έρχεται μετά την εντολή ως παράμετρος επιλογής.

36 bool casecmdfirstrule(string codeline, int line) Εκτελείται όταν βρεθεί η εντολή ΠΕΡΙΠΤΩΣΗ ή ΠΕΡΙΠΤΩΣΗ ΑΛΛΙΩΣ ως συνέχεια της εντολής ομής επιλογής ΕΠΙΛΕΞΕ. Αρχικά ελέγχεται αν έχει περαστεί εντολή ΕΠΙΛΕΞΕ. Αν δεν ισχύει το παραπάνω ελέγχει αν είναι η εντολή ΠΕΡΙΠΤΩΣΗ ΑΛΛΙΩΣ και επιπλέον αν έχει ήδη περαστεί αυτή η εντολή. Που σημαίνει ότι στην ίδια δομή επιλογής υπάρχουν περισσότερες από μία ΠΕΡΙΠΤΩΣΗ ΑΛΛΙΩΣ εντολές. Σε περίπτωση που δεν ισχύει τίποτα από τα παραπάνω, που σημαίνει ότι η εντολή είναι η ΠΕΡΙΠΤΩΣΗ, ελέγχει αν έχει περάσει ήδη η εντολή ΠΕΡΙΠΤΩΣΗ ΑΛΛΙΩΣ. Αν ισχύει δημιουργείται σφάλμα ότι έχει γίνεται χρήση της εντολής ΠΕΡΙΠΤΩΣΗ ενώ έχει ήδη δηλωθεί η εντολή ΠΕΡΙΠΤΩΣΗ ΑΛΛΙΩΣ. bool casecmdsecondrule(string codeline, int line) Εκτελείται μετά από τον έλεγχο της προτεραιότητας των εντολών και κάνει συντακτική και σημασιολογική ανάλυση για τις εντολές «ΠΕΡΙΠΤΩΣΗ λίστα-τιμών» αλλά και για την εντολή «ΠΕΡΙΠΤΩΣΗ ΑΛΛΙΩΣ». Σε περίπτωση που είναι η πρώτη «σπάει» την λίστα τιμών με βάση το κόμμα (,) και για κάθε μία τιμή ελέγχει αν είναι εντολές, αν είναι ίδιου τύπου με την μεταβλητή που έχει δοθεί ως παράμετρος επιλογής στην εντολή ΕΠΙΛΕΞΕ και αναλόγως δημιουργεί τα ανάλογα σφάλματα. bool endcasecmdfirstrule(string codeline, int line) Η εντολή ΤΕΛΟΣ_ΕΠΙΛΟΓΩΝ. Ελέγχει αν δεν έχει δηλωθεί καθόλου εντολή ΕΠΙΛΕΞΕ εμφανίζοντας το σχετικό σφάλμα. Γεγονός το οποίο σημαίνει ότι προσπαθεί να κλείσει μία δομή επιλογής (ΕΠΙΛΕΞΕ) που δεν έχει καν ανοιχτεί. bool endcasecmdsecondrule(string codeline, int line) Ως συνέχεια της firstrule ελέγχει αν υπάρχει άγνωστη εντολή δίπλα από την εντολή ΤΕΛΟΣ_ΕΠΙΛΟΓΩΝ. Αλλιώς ταιριάζει ακριβώς που σημαίνει ότι είναι συντακτικά σωστή. bool whilecmdfirstrule(string codeline, int line) Εκτελείται για την εντολή ΟΣΟ συνθήκη ΕΠΑΝΕΛΑΒΕ. Αρχικά ελέγχεται αν είναι συντακτικά αποδεκτή η γραμμή κώδικα, αν είναι τότε για κάθε συνθήκη εξάγονται σε μία λίστα οι τελεστές και ελέγχονται αν είναι αποδεκτή. Αν δεν είναι δημιουργείται

37 λογικό σφάλμα. Έπειτα αφαιρούνται με την χρήση κ.ε οι εντολές ΟΣΟ και ΕΠΑΝΕΛΑΒΕ από το codeline ούτως ώστε να μείνουν μόνο οι συνθήκες για συντακτική και σημασιολογική ανάλυση. Γίνεται ένα «σπάσιμο» των συνθηκών με βάση τον τελεστή σύγκρισης ώστε να εξαχθούν οι μεταβλητές του που χρησιμοποιούνται στην κάθε συνθήκη. Εκεί γίνεται για κάθε μεταβλητή έλεγχος για την ύπαρξη των μεταβλητών και την σωστή σύγκριση μεταξύ τους ως προς τον τύπο τους. bool endwhilecmdfirstrule(string codeline, int line) Εκτελείται για την εντολή ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ. Εδώ γίνεται αρχικά έλεγχος αν έχει περαστεί η εντολή ΟΣΟ ή η ΓΙΑ. Αυτό γίνεται επειδή η εντολή αυτή είναι καθορίζει το τέλος επανάληψης και της εντολής ΟΣΟ αλλά και της εντολής ΓΙΑ. Οπότε αν καμία από τις δύο δεν έχει περαστεί πριν την εκτέλεση της δημιουργείται συντακτικό σφάλμα για εσφαλμένη χρήση της εντολής. bool endwhilecmdsecondrule(string codeline, int line) Ελέγχει συντακτικά την εντολή ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ για μη αναγνωρίσιμες εντολές ή λέξεις δηλωμένες δίπλα σ αυτήν την εντολή. Ίδια υλοποίηση με τις εντολές ΤΕΛΟΣ_ΑΝ, ΤΕΛΟΣ_ΕΠΙΛΟΓΩΝ κλπ. bool dostartcmdfirstrule(string codeline, int line) Η εντολή ΑΡΧΗ_ΕΠΑΝΑΛΗΨΗΣ, όπως είναι στην c η εντολή do.while. Η συνάρτηση αναλαμβάνει την συντακτική ανάλυση της εντολής όπου η υλοποίηση είναι παρόμοια με αυτήν των εντολών ΤΕΛΟΣ_ΑΝ, ΤΕΛΟΣ_ΕΠΙΛΟΓΩΝ, ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ. bool untilcmdfirstrule(string codeline, int line) Εκτελείται όταν στο codeline υπάρχει η εντολή ΜΕΧΡΙΣ_ΟΤΟΥ. Η συνάρτηση χρειάζεται να κάνει μόνο έναν έλεγχο ώστε να διαπιστωθεί αν δεν έχει περαστεί καθόλου εντολή ΑΡΧΗ_ΕΠΑΝΑΛΗΨΗΣ. Αυτό σημαίνει σφάλμα για εσφαλμένη χρήστης της εντολής. bool untilcmdsecondrule(string codeline, int line)

38 Η ΜΕΧΡΙΣ_ΟΤΟΥ έχει παρόμοια υλοποίηση με την εντολή ΟΣΟ γιατί και οι 2 περιέχουν συνθήκες. Οπότε γίνεται έλεγχος των συγκριτών, και έπειτα των συνθηκών και των μεταβλητών κ.ο.κ. bool forcmdfirstrule(string codeline, int line) Η συνάρτηση που εκτελείται για την εντολή ΓΙΑ τιμή ΑΠΟ αρχή ΜΕΧΡΙ τέλος. Αρχικά γίνεται έλεγχος για την συντακτική ορθότητα της εντολής. Αφού περάσει, γίνεται διαχωρισμός της εντολής με βάση το κενό όπου το codeline μετατρέπεται πλέον σε λίστα από strings. Πρακτικά το πρώτο στοιχείο του vector (list.at(0) θα είναι η εντολή ΓΙΑ. Στο δεύτερο περιέχεται η μεταβλητή που χρησιμοποιείται στην εντολή ως μετρητής. Το τρίτο στοιχείο είναι η εντολή ΑΠΟ και στο 4 είναι η τιμή εκκίνησης της δομής. Στο 5 και στο 6 βρίσκονται η εντολή ΜΕΧΡΙ και τιμή τερματισμού αντίστοιχα. Σύμφωνα με την παραπάνω λίστα ξεκινάει μία διαδικασία ελέγχου για την μεταβλητή, την τιμή εκκίνησης και τερματισμού. Η μεταβλητή ελέγχεται για το αν έχει δηλωθεί και μάλιστα πρέπει να είναι απαραίτητα ακεραίου τύπου ειδάλλως δημιουργείται σημασιολογικό σφάλμα «μη επιτρεπόμενος τύπος μεταβλητής ή σταθεράς ως μετρητή στην εντολή ΓΙΑ». Έπειτα γίνεται έλεγχος της εντολής ΜΕ ΒΗΜΑ αν υπάρχει στο codeline ως προς την ορθότητα της. Τέλος ελέγχονται οι τύποι των τιμών εκκίνησης και τερματισμού της εντολής ΓΙΑ ότι είναι ακέραιοι. Εκτέλεση Με την ολοκλήρωση της συντακτικής ανάλυσης του κώδικα και αφού δεν υπάρχει κανένα λογικό, συντακτικό ή σημασιολογικό σφάλμα, η εκτέλεση περνάει στην φάση της μετάβασης από κώδικα «ΓΛΩΣΣΑ» σε κώδικα Pascal. Αυτή η διαδικασία εκτελείται είτε ο χρήστης πατήσει το κουμπί Μεταγλώττιση είτε το κουμπί Εκτέλεση. Η διαφορά είναι ότι στην μεταγλώττιση η εκτέλεση σταματάει αφού ολοκληρωθεί η μετατροπή, χωρίς να συνεχίζει στην κλήση του Compiler της Pascal για την δημιουργία του εκτελέσιμου. Αφού δεν βρεθεί κάποιο σφάλμα ο CodeParser καλεί μία δικιά του εσωτερική διαδικασία, την runcompiler. void CodeParser::runCompiler(SourceCode *sourcecode)

39 Ξανά διαβάζει όλα τα vector που περιέχουν μέσα τις εντολές «ΓΛΩΣΣΑΣ» και για κάθε μία εντολή καλεί τον Compiler (GLL έναν Controller στην ουσία) δίνοντας του την κάθε γραμμή κώδικα ως παράμετρο στην συνάρτηση preparepascalcommand. Με την σειρά του μετά ο Compiler και αναγνωρίζοντας ποια εντολή περιέχεται κάθε φορά στο codeline, εκτελεί τις αντίστοιχες συναρτήσεις convert για κάθε τύπο εντολής. Ως επιστρεφόμενη τιμή ο Compiler περιμένει την converted ποια εντολή σε μορφή string, την οποία με την σειρά του οφείλει να αποθηκεύσει στο pascalcmds ένα vector από strings που «κρατάει» όλες τις εντολές Pascal κάθε φορά που εκτελείται το πρόγραμμα. Με το που ολοκληρωθεί η διαδικασία της μετατροπής και αφού έχει γεμίσει η λίστα με τις εντολές Pascal, όλη η εκτέλεση επιστρέφεται στην main. Eκεί διαβάζεται το vector με τις εντολές και δημιουργείται ένα προσωρινό string με όνομα finalpas όπου γεμίζει με τις γραμμές κώδικα Pascal. Γίνεται καθαρισμός των προσωρινών αρχείων (files/pascal.exe & files/pascal.o) από προηγούμενη εκτέλεση και αποθηκεύεται το string finalpos σε ένα προσωρινό αρχείο pascal.pas στον φάκελο files. Έπειτα με την βοήθεια του system καλούμε τον Compiler της Pascal δίνοντας του ως παράμετρο το αρχείο που θέλουμε να μεταγλωττίσει και ανακατεύθυνση τα errors σ ένα αρχείο files/error.log. Αφού εκτελεστεί η παραπάνω εντολή με αυτές τις παραμέτρους έχει δημιουργηθεί μέσα στον φάκελο files ένα αρχείο pascal.o & το εκτελέσιμο pascal.exe. Οπότε με την χρήση και πάλι της system κάνουμε «κλήση» του εκτελέσιμου και εμφανίζονται τα αποτελέσματα σε DOS παράθυρο, όπως αν τρέχαμε το αρχείο με ένα Virtual Pascal Compiler.

40 Επίλογος Για να κλείσω θέλω να πω λίγα πράγματα σχετικά με αυτή την εργασία. Για να είμαι ειλικρινής όταν ανέλαβα την Πτυχιακή και γνωρίζοντας μερικά πράγματα για την «ΓΛΩΣΣΑ» θεώρησα ότι θα είναι εύκολη υπόθεση. Σε αντίθεση όμως με αυτά που νόμιζα ήταν μια πολύ δύσκολη εργασία με αρκετές δεκάδες ατελείωτες ώρες αδιεξόδων. Στην πραγματικότητα όμως αυτή η εργασία με βοήθησε στο να ξαναθυμηθώ την C++, αλλά και μου αύξησε την όρεξη να ασχοληθώ πιο εκτενέστερα με τους Compilers και το Parsing. Με αφορμή λοιπόν αυτήν την Πτυχιακή ευελπιστώ να ασχοληθώ περισσότερο με την βελτίωση αυτής της εφαρμογής σε πολύ μεγαλύτερο επίπεδο, ώστε να κατασκευαστεί ένας κανονικός Compiler για την «ΓΛΩΣΣΑ», ή και ότι άλλο προκύψει! Για όποιον θέλει και νομίζει ότι είναι ενδιαφέρον θέμα να ασχοληθεί, το project είναι under version στο : svn://bouzikas.com/home/bouzikas/myrepo/ptyxiaki

41 Βιβλιογραφία Μεταγλωττιστές Γλωσσών προγραμματισμού: Θεωρία & Πράξη ( Κωνσταντίνος Ε. Λάζος, Παναγιώτης Θ. Κατσαρός, Ζαφείρης Καραίσκος ) DEELX Regular Expression Laboratory ( Official Regular expression Engine at ) Cplusplus Official Website with C++ Documentation ( ) Free Pascal Online Documentation ( - Also Downloaded Free Compiler Release: Intel/i386 ) Οπτικός Προγραμματισμός ( Σημειώσεις Θεωρίας ρ. Σπύρος Καζαρλής ) Ανάπτυξη Εφαρμογών σε Προγραμματιστικό Περιβάλλον ( Αθηνά Βακάλη, Ηλίας Γιαννόπουλος, Νέστωρ Ιωαννίδης, Χρήστος Κοιλιάς )

42

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

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

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

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

2 ΟΥ και 8 ΟΥ ΚΕΦΑΛΑΙΟΥ ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ ΕΠΙΜΕΛΕΙΑ: ΜΑΡΙΑ Σ. ΖΙΩΓΑ ΚΑΘΗΓΗΤΡΙΑ ΠΛΗΡΟΦΟΡΙΚΗΣ ΘΕΩΡΙΑ 2 ΟΥ και 8 ΟΥ ΚΕΦΑΛΑΙΟΥ ΒΑΣΙΚΕΣ ΕΝΝΟΙΕΣ ΔΟΜΗ ΕΠΑΝΑΛΗΨΗΣ 1) Πότε χρησιμοποιείται η δομή επανάληψης

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ. Πως γίνεται ο ορισμός μιας διαδικασίας; Να δοθούν σχετικά παραδείγματα. ΑΡΧΗ Εντολές ΤΕΛΟΣ_ΔΙΑΔΙΚΑΣΙΑΣ

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

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

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

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

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

Γενικές εξετάσεις 2014 Ανάπτυξη εφαρμογών σε προγραμματιστικό περιβάλλον Τεχνολογική Κατεύθυνση

Γενικές εξετάσεις 2014 Ανάπτυξη εφαρμογών σε προγραμματιστικό περιβάλλον Τεχνολογική Κατεύθυνση Φροντιστήρια δυαδικό 1 ΦΡΟΝΤΙΣΤΗΡΙΑ δυαδικό Γενικές εξετάσεις 2014 Ανάπτυξη εφαρμογών σε προγραμματιστικό περιβάλλον Τεχνολογική Κατεύθυνση Τα θέματα επεξεργάστηκαν οι καθηγητές των Φροντιστηρίων «δυαδικό»

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

Η-Υ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ. Εργαστήριο 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 στην

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

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

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

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

Εντολή Δεδομένα Περιεχόμενα μετά την εκτέλεση 1 read(x) 122 x= 2 read(a,b,c) 133 244 355 a= b= c= 3 read(d,e) 166 277 3888

Εντολή Δεδομένα Περιεχόμενα μετά την εκτέλεση 1 read(x) 122 x= 2 read(a,b,c) 133 244 355 a= b= c= 3 read(d,e) 166 277 3888 ΕΡΩΤΗΣΕΙΣ 1. Να αναφέρετε μερικά από τα ιδιαίτερα χαρακτηριστικά της Pascal. 2. Ποιο είναι το αλφάβητο της Pascal; 3. Ποια είναι τα ονόματα-ταυτότητες και σε τι χρησιμεύουν; 4. Σε τι χρησιμεύει το συντακτικό

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

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

ΠΛΗΡΟΦΟΡΙΚΗ Ι JAVA Τμήμα θεωρίας με Α.Μ. σε 3, 7, 8 & 9 22/11/07 Ακαδ έτος 2007-2008 ΠΛΗΡΟΦΟΡΙΚΗ Ι Φερεντίνος 22/11/07 ΠΛΗΡΟΦΟΡΙΚΗ Ι JAVA Τμήμα θεωρίας με ΑΜ σε 3, 7, 8 & 9 22/11/07 Παράδειγμα με if/else if και user input: import javautil*; public class Grades public

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

7. Βασικά στοιχεία προγραμματισμού

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

ΟΜΟΣΠΟΝ ΙΑ ΕΚΠΑΙ ΕΥΤΙΚΩΝ ΦΡΟΝΤΙΣΤΩΝ ΕΛΛΑ ΟΣ (Ο.Ε.Φ.Ε.) ΕΠΑΝΑΛΗΠΤΙΚΑ ΘΕΜΑΤΑ ΕΠΑΝΑΛΗΠΤΙΚΑ ΘΕΜΑΤΑ 2012 ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ ΤΑΞΗ: ΚΑΤΕΥΘΥΝΣΗ: ΜΑΘΗΜΑ: ΘΕΜΑ Α Γ ΓΕΝΙΚΟΥ ΛΥΚΕΙΟΥ ΤΕΧΝΟΛΟΓΙΚΗ (2ος Κύκλος) ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ Ηµεροµηνία: Κυριακή 22 Απριλίου 2012 ΕΚΦΩΝΗΣΕΙΣ Α1. Να γράψετε στο τετράδιό

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

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

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

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

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

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

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

ΑΡΧΗ 1ΗΣ ΣΕΛΙ ΑΣ Γ ΗΜΕΡΗΣΙΩΝ

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

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

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

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

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

ΑΡΧΗ 2ΗΣ ΣΕΛΙΔΑΣ Γ Α... Β

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

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

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

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

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

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

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

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

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

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

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

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

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

ΑΡΧΗ 1ΗΣ ΣΕΛΙ ΑΣ Γ ΗΜΕΡΗΣΙΩΝ

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

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

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

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

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

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

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

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

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

Αλγοριθμική & Δομές Δεδομένων- Γλώσσα Προγραμματισμού Ι (PASCAL) Βασικές αλγοριθμικές δομές Αλγοριθμική & Δομές Δεδομένων- Γλώσσα Προγραμματισμού Ι (PASCAL) Βασικές αλγοριθμικές δομές Βασικές Αλγοριθμικές Δομές 2 Εισαγωγή Οι αλγοριθμικές δομές εκφράζουν διαφορετικούς τρόπους γραφής ενός αλγορίθμου.

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

Φροντιστήρια Επίγνωση Προτεινόμενα Θέματα Πανελλαδικών ΑΕΠΠ 2015

Φροντιστήρια Επίγνωση Προτεινόμενα Θέματα Πανελλαδικών ΑΕΠΠ 2015 Φροντιστήρια Επίγνωση Προτεινόμενα Θέματα Πανελλαδικών ΑΕΠΠ 2015 Βάλβης Δημήτριος Μηχανικός Πληροφορικής ΘΕΜΑ Α Α1. Να γράψετε στο τετράδιό σας τον αριθμό καθεμιάς από τις παρακάτω προτάσεις 1-5 και δίπλα

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

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

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

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

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

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

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

ΕΠΑΝΑΛΗΠΤΙΚΑ ΘΕΜΑΤΑ 2013 ΕΚΦΩΝΗΣΕΙΣ

ΕΠΑΝΑΛΗΠΤΙΚΑ ΘΕΜΑΤΑ 2013 ΕΚΦΩΝΗΣΕΙΣ ΤΑΞΗ: ΚΑΤΕΥΘΥΝΣΗ: ΜΑΘΗΜΑ: Γ ΓΕΝΙΚΟΥ ΛΥΚΕΙΟΥ ΤΕΧΝΟΛΟΓΙΚΗ (2ος Κύκλος) ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ ΕΚΦΩΝΗΣΕΙΣ ΘΕΜΑ Α Α1. Να γράψετε στο τετράδιό σας τον αριθµό καθεµιάς από τις παρακάτω

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

ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ Κεφάλαιο 2 ο Να περιγραφεί η δομή επανάληψης Αρχή_επανάληψης Μέχρις_ότου

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

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

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

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

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

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

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

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

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

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

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

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

2 ΟΥ και 8 ΟΥ ΚΕΦΑΛΑΙΟΥ ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ ΕΠΙΜΕΛΕΙΑ: ΜΑΡΙΑ Σ. ΖΙΩΓΑ ΚΑΘΗΓΗΤΡΙΑ ΠΛΗΡΟΦΟΡΙΚΗΣ ΘΕΩΡΙΑ 2 ΟΥ και 8 ΟΥ ΚΕΦΑΛΑΙΟΥ ΒΑΣΙΚΕΣ ΕΝΝΟΙΕΣ ΔΟΜΗ ΕΠΙΛΟΓΗΣ 1) Ποιοι είναι οι τελεστές σύγκρισης και

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

ΘΕΜΑ 1. 1. Συμβολική γλώσσα 2. Γλώσσες υψηλού επιπέδου 3. Γλώσσες τέταρτής γενιάς 4. Γλώσσα μηχανής

ΘΕΜΑ 1. 1. Συμβολική γλώσσα 2. Γλώσσες υψηλού επιπέδου 3. Γλώσσες τέταρτής γενιάς 4. Γλώσσα μηχανής ΘΕΜΑ 1 Α1Να γράψετε στο τετράδιο σας τον αριθμό καθεμίας από τις παρακάτω προτάσεις και δίπλα τη λέξη Σώστο,αν είναι σωστή και τη λέξη Λάθος, αν είναι λανθασμένη. 1.ο αλγόριθμος του πολλαπλασιασμού αλά

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

ΓΕΝΙΚΟ ΛΥΚΕΙΟ ΚΑΡΠΕΝΗΣΙΟΥ ΔΙΩΡΟ ΕΠΑΝΑΛΗΠΤΙΚΟ ΔΙΑΓΩΝΙΣΜΑ ΣΤΗΝ ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ 19/12/2008. Τμήμα ΓΤ1 Όνομα:...

ΓΕΝΙΚΟ ΛΥΚΕΙΟ ΚΑΡΠΕΝΗΣΙΟΥ ΔΙΩΡΟ ΕΠΑΝΑΛΗΠΤΙΚΟ ΔΙΑΓΩΝΙΣΜΑ ΣΤΗΝ ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ 19/12/2008. Τμήμα ΓΤ1 Όνομα:... ΓΕΝΙΚΟ ΛΥΚΕΙΟ ΚΑΡΠΕΝΗΣΙΟΥ ΔΙΩΡΟ ΕΠΑΝΑΛΗΠΤΙΚΟ ΔΙΑΓΩΝΙΣΜΑ ΣΤΗΝ ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ 19/12/2008 Τμήμα ΓΤ1 Όνομα:... ΘΕΜΑ 1 ο. Α) Να γράψετε στο φύλλο απαντήσεών σας Σ εάν κρίνετε ότι η πρόταση είναι σωστή και

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

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

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

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

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

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

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

Επιλογή και επανάληψη. Λογική έκφραση ή συνθήκη

Επιλογή και επανάληψη. Λογική έκφραση ή συνθήκη Επιλογή και επανάληψη Η ύλη που αναπτύσσεται σε αυτό το κεφάλαιο είναι συναφής µε την ύλη που αναπτύσσεται στο 2 ο κεφάλαιο. Όπου υπάρχουν διαφορές αναφέρονται ρητά. Προσέξτε ιδιαίτερα, πάντως, ότι στο

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

ΣΕΙΡΑ: ΗΜΕΡΟΜΗΝΙΑ: 18/02/2013 ΑΠΑΝΤΗΣΕΙΣ ΘΕΜΑ Α

ΣΕΙΡΑ: ΗΜΕΡΟΜΗΝΙΑ: 18/02/2013 ΑΠΑΝΤΗΣΕΙΣ ΘΕΜΑ Α ΜΑΘΗΜΑ / ΤΑΞΗ : ΑΕΠΠ / ΑΠΟΦΟΙΤΟΙ ΣΕΙΡΑ: ΗΜΕΡΟΜΗΝΙΑ: 18/02/2013 ΘΕΜΑ Α ΑΠΑΝΤΗΣΕΙΣ Α1. α. Παραβιάζει τα κριτήρια της καθοριστικότητας και της περατότητας β. Αιτιολόγηση: ο αλγόριθμος παραβιάζει το κριτήριο

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

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

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

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

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

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

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

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

Ανάπτυξη Εφαρμογών σε Προγραμματιστικό Περιβάλλον Ανάπτυξη Εφαρμογών σε Προγραμματιστικό Περιβάλλον ΘΕΜΑ Α Α1. Να χαρακτηρίσετε καθεμιά από τις προτάσεις που ακολουθούν γράφοντας στο τετράδιό σας, δίπλα από τον αριθμό κάθε πρότασης, το γράμμα Σ, αν αυτή

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

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

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

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

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

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

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

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

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

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

Εξοικείωση με το πρόγραμμα DEV C++ Επικοινωνία Χρήστη - Υπολογιστή

Εξοικείωση με το πρόγραμμα DEV C++ Επικοινωνία Χρήστη - Υπολογιστή Εξοικείωση με το πρόγραμμα DEV C++ Επικοινωνία Χρήστη - Υπολογιστή Δημιουργία Νέου αρχείου Από το μενού προγραμμάτων ανοίγετε το DEV C++ Επιλέγετε File-> New-> Source File (συντόμευση πληκτρολογίου Ctrl+N)

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

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

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

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

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

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

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

2 Ορισμός Κλάσεων. Παράδειγμα: Μηχανή για Εισιτήρια. Δομή μιας Κλάσης. Ο Σκελετός της Κλάσης για τη Μηχανή. Ορισμός Πεδίων 4/3/2008

2 Ορισμός Κλάσεων. Παράδειγμα: Μηχανή για Εισιτήρια. Δομή μιας Κλάσης. Ο Σκελετός της Κλάσης για τη Μηχανή. Ορισμός Πεδίων 4/3/2008 Παράδειγμα: Μηχανή για Εισιτήρια 2 Ορισμός Κλάσεων Σύνταξη κλάσης: πεδία, κατασκευαστές, μέθοδοι Ένας αυτόματος εκδότης εισιτηρίων είναι μια μηχανή που δέχεται χρήματα και εκδίδει ένα εισιτήριο. Εκδίδει

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

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

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

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

ΘΕΜΑ Α. 1. Στην εντολή εκχώρησης Χ ΨΕΥΔΗΣ η μεταβλητή Χ είναι τύπου χαρακτήρες.

ΘΕΜΑ Α. 1. Στην εντολή εκχώρησης Χ ΨΕΥΔΗΣ η μεταβλητή Χ είναι τύπου χαρακτήρες. ΑΡΧΗ 1ΗΣ ΣΕΛΙΔΑΣ Γ ΤΑΞΗ ΓΕΝΙΚΟΥ ΛΥΚΕΙΟΥ ΚΑΙ ΕΠΑΛ (ΟΜΑΔΑ Β ) ΤΕΤΑΡΤΗ 08/04/2015- ΕΞΕΤΑΖΟΜΕΝΟ ΜΑΘΗΜΑ: Ανάπτυξη Εφαρμογών σε Προγραμματιστικό Περιβάλλον ΣΥΝΟΛΟ ΣΕΛΙΔΩΝ: ΕΞΙ (6) ΘΕΜΑ Α Α1. Να γράψετε στο τετράδιο

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

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

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

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

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

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

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

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

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

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

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

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

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

ΑΠΑΝΤΗΣΕΙΣ ΘΕΜΑ Α Α1. 1 ΣΩΣΤΟ 2 ΛΑΘΟΣ 3 ΛΑΘΟΣ 4 ΛΑΘΟΣ 5 - ΣΩΣΤΟ Α5. Α3.

ΑΠΑΝΤΗΣΕΙΣ ΘΕΜΑ Α Α1. 1 ΣΩΣΤΟ 2 ΛΑΘΟΣ 3 ΛΑΘΟΣ 4 ΛΑΘΟΣ 5 - ΣΩΣΤΟ Α5. Α3. ΑΡΧΗ 1ΗΣ ΣΕΛΙΔΑΣ Γ ΤΑΞΗ ΓΕΝΙΚΟΥ ΛΥΚΕΙΟΥ ΚΑΙ ΕΠΑΛ (ΟΜΑΔΑ Β ) ΤΕΤΑΡΤΗ 08/04/2015 - ΕΞΕΤΑΖΟΜΕΝΟ ΜΑΘΗΜΑ: Ανάπτυξη Εφαρμογών σε Προγραμματιστικό Περιβάλλον ΣΥΝΟΛΟ ΣΕΛΙΔΩΝ: ΔΕΚΑ (10) ΑΠΑΝΤΗΣΕΙΣ ΘΕΜΑ Α Α1. 1

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

ÑÏÕËÁ ÌÁÊÑÇ. Β. Να αναφέρετε τις κυριότερες τυποποιηµένες τεχνικές σχεδίασης αλγορίθµων. ΜΟΝΑ ΕΣ 3

ÑÏÕËÁ ÌÁÊÑÇ. Β. Να αναφέρετε τις κυριότερες τυποποιηµένες τεχνικές σχεδίασης αλγορίθµων. ΜΟΝΑ ΕΣ 3 1 Γ' ΛΥΚΕΙΟΥ ΤΕΧΝΟΛΟΓΙΚΗ ΚΑΤΕΥΘΥΝΣΗ ΘΕΜΑ 1 Ο ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ Α. Να γράψετε στο τετράδιό σας τον αριθµό καθεµιάς από τις παρακάτω προτάσεις 1-5 και δίπλα τη λέξη Σωστό

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

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

ΦΡΟΝΤΙΣΤΗΡΙΑ ΜΕΣΗΣ ΕΚΠΑΙΔΕΥΣΗΣ ΠΡΟΟΔΟΣ ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ ΔΙΑΓΩΝΙΣΜΑ ΟΚΤΩΒΡΙΟΥ 2015 ΦΡΟΝΤΙΣΤΗΡΙΑ ΜΕΣΗΣ ΕΚΠΑΙΔΕΥΣΗΣ ΠΡΟΟΔΟΣ ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ ΔΙΑΓΩΝΙΣΜΑ ΟΚΤΩΒΡΙΟΥ 2015 Θέμα 1 (Α) Να απαντήσετε στις παρακάτω προτάσεις χαρακτηρίζοντάς τες με το γράμμα Σ αν

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

ΜΑΘΗΜΑ / ΤΑΞΗ : ΔΟΜΗΜΕΝΟΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ / Γ ΕΠΑΛ ΣΕΙΡΑ: ΗΜΕΡΟΜΗΝΙΑ: 27/01/2013

ΜΑΘΗΜΑ / ΤΑΞΗ : ΔΟΜΗΜΕΝΟΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ / Γ ΕΠΑΛ ΣΕΙΡΑ: ΗΜΕΡΟΜΗΝΙΑ: 27/01/2013 ΜΑΘΗΜΑ / ΤΑΞΗ : ΔΟΜΗΜΕΝΟΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ / Γ ΕΠΑΛ ΣΕΙΡΑ: ΗΜΕΡΟΜΗΝΙΑ: 27/01/2013 ΘΕΜΑ Α Α1. Να χαρακτηρίσετε τις προτάσεις που ακολουθούν, γράφοντας δίπλα στο γράμμα που αντιστοιχεί σε κάθε πρόταση τη

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

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

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

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

ΑΡΧΗ 1ΗΣ ΣΕΛΙ ΑΣ Γ ΗΜΕΡΗΣΙΩΝ

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

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

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

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

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

ΠΡΟΣ: Τηλέφωνο: 210-3443422 Ινστιτούτο Εκπαιδευτικής Πολιτικής ΚΟΙΝ.:

ΠΡΟΣ: Τηλέφωνο: 210-3443422 Ινστιτούτο Εκπαιδευτικής Πολιτικής ΚΟΙΝ.: ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ ΥΠΟΥΡΓΕΙΟ ΠΑΙΔΕΙΑΣ, ΕΡΕΥΝΑΣ ΚΑΙ ΘΡΗΣΚΕΥΜΑΤΩΝ ----- Βαθμός Ασφαλείας: Να διατηρηθεί μέχρι: Βαθ. Προτεραιότητας: ΓΕΝΙΚΗ ΔΙΕΥΘΥΝΣΗ ΣΠΟΥΔΩΝ Π/ΘΜΙΑΣ ΚΑΙ Δ/ΘΜΙΑΣ ΕΚΠΑΙΔΕΥΣΗΣ ΔΙΕΥΘΥΝΣΗ ΣΠΟΥΔΩΝ,

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

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

ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ ΤΕΧΝΟΛΟΓΙΚΗΣ ΚΑΤΕΥΘΥΝΣΗΣ Γ ΛΥΚΕΙΟΥ 29 ΜΑΪΟΥ 2013 ΕΚΦΩΝΗΣΕΙΣ ΘΕΜΑ Α ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ ΤΕΧΝΟΛΟΓΙΚΗΣ ΚΑΤΕΥΘΥΝΣΗΣ Γ ΛΥΚΕΙΟΥ 29 ΜΑΪΟΥ 2013 ΕΚΦΩΝΗΣΕΙΣ Α1. Να γράψετε στο τετράδιό σας τον αριθµό καθεµιάς από τις παρακάτω προτάσεις 1-6 και

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

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

ΠΑΝΕΠΙΣΤΗΜΙΟ ΠΕΙΡΑΙΩΣ ΤΜΗΜΑ ΒΙΟΜΗΧΑΝΙΚΗΣ ΙΟΙΚΗΣΗΣ ΚΑΙ ΤΕΧΝΟΛΟΓΙΑΣ ΠΑΝΕΠΙΣΤΗΜΙΟ ΠΕΙΡΑΙΩΣ ΤΜΗΜΑ ΒΙΟΜΗΧΑΝΙΚΗΣ ΙΟΙΚΗΣΗΣ ΚΑΙ ΤΕΧΝΟΛΟΓΙΑΣ ΙΑΧΕΙΡΙΣΗ Ε ΟΜΕΝΩΝ ΚΑΙ ΓΛΩΣΣΕΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ (Β ΕΞΑΜΗΝΟ) ιδάσκων: Επ. Καθηγητής Γρηγόρης Χονδροκούκης ΣΗΜΕΙΩΣΕΙΣ ΜΑΘΗΜΑΤΟΣ Η ΓΛΩΣΣΑ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ

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

Μονάδες 12 ΑΡΧΗ 1ΗΣ ΣΕΛΙΔΑΣ

Μονάδες 12 ΑΡΧΗ 1ΗΣ ΣΕΛΙΔΑΣ ΑΡΧΗ 1ΗΣ ΣΕΛΙΔΑΣ ΠΑΝΕΛΛΑΔΙΚΕΣ ΕΞΕΤΑΣΕΙΣ ΗΜΕΡΗΣΙΩΝ ΚΑΙ ΕΣΠΕΡΙΝΩΝ ΕΠΑΓΓΕΛΜΑΤΙΚΩΝ ΛΥΚΕΙΩΝ (ΟΜΑΔΑ A ) ΚΑΙ ΜΑΘΗΜΑΤΩΝ ΕΙΔΙΚΟΤΗΤΑΣ ΕΠΑΓΓΕΛΜΑΤΙΚΩΝ ΛΥΚΕΙΩΝ (ΟΜΑΔΑ Β ) ΠΑΡΑΣΚΕΥΗ 5 ΙΟΥΝΙΟΥ 2015 ΕΞΕΤΑΖΟΜΕΝΟ ΜΑΘΗΜΑ:

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

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

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

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

Pascal - Βασικές Έννοιες

Pascal - Βασικές Έννοιες Pasal - Βασικές Έννοιες «Ο ΠΗΛΟΣ ΑΝ ΜΗ ΑΡΗ ΚΕΡΑΜΟΣ ΟΥ ΓΙΝΕΤΑΙ» Σηµαίνει: «Η λάσπη αν δε ζυµωθεί δε γίνετε κεραµίδι» ηλαδή: «Χωρίς τη δοκιµασία της πρακτικής εξάσκησης δεν αποκτάς ικανότητα, πείρα». (Αρχαία

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

2015 1-5 1. 5 5 4. 10 2. . 3. 6 3. . 6

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

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

ΓΕΝΙΚΟ ΛΥΚΕΙΟ ΚΑΡΠΕΝΗΣΙΟΥ ΙΩΡΟ ΕΠΑΝΑΛΗΠΤΙΚΟ ΙΑΓΩΝΙΣΜΑ ΣΤΗΝ ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ 16/12/2008. Τµήµα ΓΤ2 Όνοµα:...

ΓΕΝΙΚΟ ΛΥΚΕΙΟ ΚΑΡΠΕΝΗΣΙΟΥ ΙΩΡΟ ΕΠΑΝΑΛΗΠΤΙΚΟ ΙΑΓΩΝΙΣΜΑ ΣΤΗΝ ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ 16/12/2008. Τµήµα ΓΤ2 Όνοµα:... ΓΕΝΙΚΟ ΛΥΚΕΙΟ ΚΑΡΠΕΝΗΣΙΟΥ ΙΩΡΟ ΕΠΑΝΑΛΗΠΤΙΚΟ ΙΑΓΩΝΙΣΜΑ ΣΤΗΝ ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ 16/12/2008 Τµήµα ΓΤ2 Όνοµα:... ΘΕΜΑ 1 ο. Α) Να γράψετε στο φύλλο απαντήσεών σας Σ εάν κρίνετε ότι η πρόταση είναι σωστή και

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

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

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

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

10 Α2. 5 Α3. (ΟΧΙ = 20-4*2^2)) H (X>Ψ ΚΑΙ X > Ψ

10 Α2. 5 Α3. (ΟΧΙ = 20-4*2^2)) H (X>Ψ ΚΑΙ X > Ψ Α Π Α Ν Τ Η Σ Ε Ι Σ Θ Ε Μ Α Τ Ω Ν Π Α Ν Ε Λ Λ Α Δ Ι Κ Ω Ν Ε Ξ Ε Τ Α Σ Ε Ω Ν 2 0 1 4 Α Ν Α Π Τ Υ Ξ Η Ε Φ Α Ρ Μ Ο Γ Ω Ν Σ Ε Π Ρ Ο Γ Ρ Α Μ Μ Α Τ Ι Σ Τ Ι Κ Ο Π Ε Ρ Ι Β Α Λ Λ Ο Ν Τ Ε Χ Ν Ο Λ Ο Γ Ι Κ Η Σ Κ Α

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

ΣΕΙΡΑ: ΗΜΕΡΟΜΗΝΙΑ: 05/03/2012 ΑΠΑΝΤΗΣΕΙΣ. ΘΕΜΑ Α Α1. Α2. 1. ΣΩΣΤΟ 1 στ 2. ΛΑΘΟΣ 2 δ 3. ΣΩΣΤΟ 3 ε 4. ΛΑΘΟΣ 4 β 5. ΣΩΣΤΟ 5 γ

ΣΕΙΡΑ: ΗΜΕΡΟΜΗΝΙΑ: 05/03/2012 ΑΠΑΝΤΗΣΕΙΣ. ΘΕΜΑ Α Α1. Α2. 1. ΣΩΣΤΟ 1 στ 2. ΛΑΘΟΣ 2 δ 3. ΣΩΣΤΟ 3 ε 4. ΛΑΘΟΣ 4 β 5. ΣΩΣΤΟ 5 γ ΜΑΘΗΜΑ / ΤΑΞΗ : ΑΕΠΠ / ΑΠΟΦΟΙΤΟΙ ΣΕΙΡΑ: ΗΜΕΡΟΜΗΝΙΑ: 05/03/2012 ΑΠΑΝΤΗΣΕΙΣ ΘΕΜΑ Α Α1. Α2. 1. ΣΩΣΤΟ 1 στ 2. ΛΑΘΟΣ 2 δ 3. ΣΩΣΤΟ 3 ε 4. ΛΑΘΟΣ 4 β 5. ΣΩΣΤΟ 5 γ Α3. α. (σελ. 183-184) Στοίβα: ώθηση, απώθηση Ουρά:

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

Α5. Να γράψετε στο τετράδιό σας τους αριθμούς της στήλης Α και δίπλα το γράμμα της στήλης Β που αντιστοιχεί σωστά. 1. χαρακτήρες α.

Α5. Να γράψετε στο τετράδιό σας τους αριθμούς της στήλης Α και δίπλα το γράμμα της στήλης Β που αντιστοιχεί σωστά. 1. χαρακτήρες α. Α Π Α Ν Τ Η Σ Ε Ι Σ Θ Ε Μ Α Τ Ω Ν Π Α Ν Ε Λ Λ Α Δ Ι Κ Ω Ν Ε Ξ Ε Τ Α Σ Ε Ω Ν 2 0 1 3 Α Ν Α Π Τ Υ Ξ Η Ε Φ Α Ρ Μ Ο Γ Ω Ν Σ Ε Π Ρ Ο Γ Ρ Α Μ Μ Α Τ Ι Σ Τ Ι Κ Ο Π Ε Ρ Ι Β Α Λ Λ Ο Ν Τ Ε Χ Ν Ο Λ Ο Γ Ι Κ Η Σ Κ Α

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

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

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

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

μεταβλητής Χ Χ ΑΛΗΘΗΣ Χ 11.0 13.0 Χ 7 > 4 Χ ΨΕΥ ΗΣ Μονάδες 10 EKΠΑΙΔΕΥΣΗ: Με Οράματα και Πράξεις για την Παιδεία -1-

μεταβλητής Χ Χ ΑΛΗΘΗΣ Χ 11.0 13.0 Χ 7 > 4 Χ ΨΕΥ ΗΣ Μονάδες 10 EKΠΑΙΔΕΥΣΗ: Με Οράματα και Πράξεις για την Παιδεία -1- ΠΑΝΕΛΛΗΝΙΕΣ ΕΞΕΤΑΣΕΙΣ Γ' ΤΑΞΗΣ ΗΜΕΡΗΣΙΟΥ ΓΕΝΙΚΟΥ ΛΥΚΕΙΟΥ ΠΑΡΑΣΚΕΥΗ 1 ΙΟΥΝΙΟΥ 2012 ΕΞΕΤΑΖΟΜΕΝΟ ΜΑΘΗΜΑ: ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ ΤΕΧΝΟΛΟΓΙΚΗΣ ΚΑΤΕΥΘΥΝΣΗΣ(ΚΥΚΛΟΣ ΠΛΗΡΟΦΟΡΙΚΗΣ & ΥΠΗΡΕΣΙΩΝ)

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

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

ΑΠΟΛΥΤΗΡΙΕΣ ΕΞΕΤΑΣΕΙΣ ΤΗΣ Γ' ΛΥΚΕΙΟΥ ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ ΤΕΧΝΟΛΟΓΙΚΗΣ ΚΑΤΕΥΘΥΝΣΗΣ ΑΠΟΛΥΤΗΡΙΕΣ ΕΞΕΤΑΣΕΙΣ ΤΗΣ Γ' ΛΥΚΕΙΟΥ ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ ΤΕΧΝΟΛΟΓΙΚΗΣ ΚΑΤΕΥΘΥΝΣΗΣ ΟΙ ΛΥΣΕΙΣ ΤΩΝ ΘΕΜΑΤΩΝ ΑΠΟ ΤΟΝ ΚΑΘΗΓΗΤΗ κύριο ΤΑΣΟ ΓΙΑΝΝΟΥΛΑΚΗ του ΦΡΟΝΤΙΣΤΗΡΙΟΥ ΘΕΜΑ Α Α1.

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

ΜΑΘΗΜΑ / ΤΑΞΗ : ΔΟΜΗΜΕΝΟΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ / ΕΠΑΛ ΣΕΙΡΑ: ΗΜΕΡΟΜΗΝΙΑ: 26-01-2014

ΜΑΘΗΜΑ / ΤΑΞΗ : ΔΟΜΗΜΕΝΟΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ / ΕΠΑΛ ΣΕΙΡΑ: ΗΜΕΡΟΜΗΝΙΑ: 26-01-2014 ΜΑΘΗΜΑ / ΤΑΞΗ : ΔΟΜΗΜΕΝΟΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ / ΕΠΑΛ ΣΕΙΡΑ: ΗΜΕΡΟΜΗΝΙΑ: 26-01-2014 ΘΕΜΑ Α Α1. Να γράψετε στο τετράδιό σας τον αριθμό καθεμιάς από τις παρακάτω προτάσεις 1-5 και δίπλα τη λέξη Σωστό, αν είναι

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

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

ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ Γ ΛΥΚΕΙΟΥ ΤΕΧΝΟΛΟΓΙΚΗΣ ΚΑΤΕΥΘΥΝΣΗΣ (ΚΥΚΛΟΥ ΠΛΗΡΟΦΟΡΙΚΗΣ & ΥΠΗΡΕΣΙΩΝ) 2007 ΕΚΦΩΝΗΣΕΙΣ ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ Γ ΛΥΚΕΙΟΥ ΤΕΧΝΟΛΟΓΙΚΗΣ ΚΑΤΕΥΘΥΝΣΗΣ (ΚΥΚΛΟΥ ΠΛΗΡΟΦΟΡΙΚΗΣ & ΥΠΗΡΕΣΙΩΝ) 2007 ΘΕΜΑ 1ο ΕΚΦΩΝΗΣΕΙΣ Α. Να γράψετε στο τετράδιό σας τον αριθµό καθεµιάς από τις

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

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

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

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

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

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

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

ΑΠΑΝΤΗΣΕΙΣ. H διαδικασία ανεύρεσης λογικών λαθών περιλαμβάνει : β- Σωστό. Διαπίστωση του είδους του λάθους γ- Σωστό δ- Λάθος

ΑΠΑΝΤΗΣΕΙΣ. H διαδικασία ανεύρεσης λογικών λαθών περιλαμβάνει : β- Σωστό. Διαπίστωση του είδους του λάθους γ- Σωστό δ- Λάθος ΑΡΧΗ 1ΗΣ ΣΕΛΙΔΑΣ Γ ΤΑΞΗ ΕΠΑΛ (ΟΜΑΔΑ Α ) & ΜΑΘΗΜΑΤΩΝ ΕΙΔΙΚΟΤΗΤΑΣ ΕΠΑΛ (ΟΜΑΔΑ Β ) ΤΕΤΑΡΤΗ 08/04/2015 - ΕΞΕΤΑΖΟΜΕΝΟ ΜΑΘΗΜΑ: ΔΟΜΗΜΕΝΟΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΣΥΝΟΛΟ ΣΕΛΙΔΩΝ: ΟΚΤΩ (8) ΘΕΜΑ Α ΑΠΑΝΤΗΣΕΙΣ Α1. Α2. α-

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

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

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

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

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

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

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

Α1. Στον προγραµµατισµό χρησιµοποιούνται δοµές δεδοµένων. 1. Τι είναι δυναµική δοµή δεδοµένων; Μονάδες 3 2. Τι είναι στατική δοµή δεδοµένων;

Α1. Στον προγραµµατισµό χρησιµοποιούνται δοµές δεδοµένων. 1. Τι είναι δυναµική δοµή δεδοµένων; Μονάδες 3 2. Τι είναι στατική δοµή δεδοµένων; ΦΡΟΝΤΙΣΤΗΡΙΑΚΟΣ ΟΡΓΑΝΙΣΜΟΣ ΘΕΜΑ Α ΔΙΑΓΩΝΙΣΜΑ ΠΡΟΣΟΜΟΙΩΣΗΣ ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ Γ ΛΥΚΕΙΟΥ ΤΕΧΝΟΛΟΓΙΚΗ 01/03/2015 Α1. Στον προγραµµατισµό χρησιµοποιούνται δοµές δεδοµένων. 1.

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

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

Εισαγωγή στον Προγραμματισμό Εισαγωγή στον Προγραμματισμό Ενότητα 5 Δομές Ελέγχου Πανεπιστήμιο Αιγαίου Τμήμα Μηχανικών Πληροφοριακών και Επικοινωνιακών Συστημάτων Δομές Ελέγχου Οι Boehm και Jacopini απέδειξαν ότι οποιοσδήποτε αλγόριθμος

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

ΠΡΟΤΕΙΝΟΜΕΝΟ ΔΙΑΓΩΝΙΣΜΑ ΑΕΠΠ. (Α) Να απαντήσετε στη παρακάτω ερώτηση : Τι είναι ένα υποπρόγραμμα; Τι γνωρίζετε για τα χαρακτηριστικά του; (10 Μονάδες)

ΠΡΟΤΕΙΝΟΜΕΝΟ ΔΙΑΓΩΝΙΣΜΑ ΑΕΠΠ. (Α) Να απαντήσετε στη παρακάτω ερώτηση : Τι είναι ένα υποπρόγραμμα; Τι γνωρίζετε για τα χαρακτηριστικά του; (10 Μονάδες) ΠΡΟΤΕΙΝΟΜΕΝΟ ΔΙΑΓΩΝΙΣΜΑ ΑΕΠΠ ΘΕΜΑ 1 ο (Α) Να απαντήσετε στη παρακάτω ερώτηση : Τι είναι ένα υποπρόγραμμα; Τι γνωρίζετε για τα χαρακτηριστικά του; (10 Μονάδες) (Β) Να σημειώσετε με κατάλληλο τρόπο ανάλογα

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

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

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

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