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

Μέγεθος: 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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

ΠΛΗΡΟΦΟΡΙΚΗ Ι 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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

ΚΕΦΑΛΑΙΟ 1ο 3ο. ΚΕΦΑΛΑΙΟ 5ο 6ο. ΚΕΦΑΛΑΙΟ 7ο. Δομημένος Προγραμματισμός - Γενικές Ασκήσεις Επανάληψης

ΚΕΦΑΛΑΙΟ 1ο 3ο. ΚΕΦΑΛΑΙΟ 5ο 6ο. ΚΕΦΑΛΑΙΟ 7ο. Δομημένος Προγραμματισμός - Γενικές Ασκήσεις Επανάληψης ΚΕΦΑΛΑΙΟ 1ο 3ο 1. Συμπληρώστε τα κενά με τη λέξη που λείπει. α. Ένα πρόβλημα το χωρίζουμε σε άλλα απλούστερα, όταν είναι ή όταν έχει τρόπο επίλυσης. β. Η επίλυση ενός προβλήματος προϋποθέτει την του. γ.

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

ΣΕΙΡΑ: ΗΜΕΡΟΜΗΝΙΑ: 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) Στοίβα: ώθηση, απώθηση Ουρά:

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

ΔΟΜΗΜΕΝΟΣ ΟΠΤΙΚΟΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΣΕ ΠAΡΑΘΥΡΙΚΟ ΠΕΡΙΒΑΛΛΟΝ με τη Γλώσσα Προγραμματισμού VISUAL BASIC (1 ο ΕΠΙΠΕΔΟ)

ΔΟΜΗΜΕΝΟΣ ΟΠΤΙΚΟΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΣΕ ΠAΡΑΘΥΡΙΚΟ ΠΕΡΙΒΑΛΛΟΝ με τη Γλώσσα Προγραμματισμού VISUAL BASIC (1 ο ΕΠΙΠΕΔΟ) Γενικός Σκοπός Το αναλυτικό πρόγραμμα έχει ως γενικό σκοπό να δώσει στους μαθητές τις απαιτούμενες γνωστικές, κριτικές και αναλυτικές δεξιότητες ώστε να είναι ικανοί να χρησιμοποιούν τους υπολογιστές για

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

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

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

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

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

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

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

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

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

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

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 και, δίπλα, τη λέξη ΣΩΣΤΟ, αν

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

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 Α Ν Α Π Τ Υ Ξ Η Ε Φ Α Ρ Μ Ο Γ Ω Ν Σ Ε Π Ρ Ο Γ Ρ Α Μ Μ Α Τ Ι Σ Τ Ι Κ Ο Π Ε Ρ Ι Β Α Λ Λ Ο Ν Τ Ε Χ Ν Ο Λ Ο Γ Ι Κ Η Σ Κ Α

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

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

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

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

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

ΣΥΝΟΠΤΙΚΟΣ ΟΔΗΓΟΣ ΓΛΩΣΣΑΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ C ΣΥΝΟΠΤΙΚΟΣ ΟΔΗΓΟΣ ΓΛΩΣΣΑΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ C 1 Εισαγωγή Ο προγραμματισμός είναι μια διαδικασία επίλυσης προβλημάτων με χρήση Η/Υ. Ένα πρόγραμμα είναι ένα σύνολο εντολών κάποιας γλώσσας προγραμματισμού,

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

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

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

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

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

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

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

Γ' ΛΥΚΕΙΟΥ ΤΕΧΝΟΛΟΓΙΚΗ ΚΑΤΕΥΘΥΝΣΗ ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ. Óõíåéñìüò ΕΚΦΩΝΗΣΕΙΣ

Γ' ΛΥΚΕΙΟΥ ΤΕΧΝΟΛΟΓΙΚΗ ΚΑΤΕΥΘΥΝΣΗ ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ. Óõíåéñìüò ΕΚΦΩΝΗΣΕΙΣ 1 ΘΕΜΑ 1 o Γ' ΛΥΚΕΙΟΥ ΤΕΧΝΟΛΟΓΙΚΗ ΚΑΤΕΥΘΥΝΣΗ ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ ΕΚΦΩΝΗΣΕΙΣ Α. Να γράψετε στην κόλλα σας τον αριθµό καθεµιάς από τις παρακάτω προτάσεις 1 5 και δίπλα τη λέξη

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

ÏÅÖÅ. Β. Να αναφέρετε τις κυριότερες τυποποιηµένες τεχνικές σχεδίασης αλγορίθµων. ΜΟΝΑ ΕΣ 3

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

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

ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ Γ' ΛΥΚΕΙΟΥ ΤΕΧΝ/ΚΗΣ ΚΑΤ/ΝΣΗΣ (Πλ. & Υπ.) 2006 ΕΚΦΩΝΗΣΕΙΣ

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

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

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

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

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

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

ΠΑΝΕΠΙΣΤΗΜΙΟ ΜΑΚΕΔΟΝΙΑΣ ΟΙΚΟΝΟΜΙΚΩΝ ΚΑΙ ΚΟΙΝΩΝΙΚΩΝ ΕΠΙΣΤΗΜΩΝ ΤΜΗΜΑ ΕΦΑΡΜΟΣΜΕΝΗΣ ΠΛΗΡΟΦΟΡΙΚΗΣ ΘΕΩΡΙΑ ΥΠΟΛΟΓΙΣΜΩΝ ΚΑΙ ΑΥΤΟΜΑΤΩΝ ΠΑΝΕΠΙΣΤΗΜΙΟ ΜΑΚΕΔΟΝΙΑΣ ΟΙΚΟΝΟΜΙΚΩΝ ΚΑΙ ΚΟΙΝΩΝΙΚΩΝ ΕΠΙΣΤΗΜΩΝ ΤΜΗΜΑ ΕΦΑΡΜΟΣΜΕΝΗΣ ΠΛΗΡΟΦΟΡΙΚΗΣ ΘΕΩΡΙΑ ΥΠΟΛΟΓΙΣΜΩΝ ΚΑΙ ΑΥΤΟΜΑΤΩΝ Τελικές εξετάσεις 3 Ιανουαρίου 27 Διάρκεια εξέτασης: 3 ώρες (2:-5:) ΘΕΜΑ ο

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

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

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

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

ΙΑΓΩΝΙΣΜΑ ΣΤΗΝ ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΘΕΜΑ 1 Α.

ΙΑΓΩΝΙΣΜΑ ΣΤΗΝ ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΘΕΜΑ 1 Α. ΙΑΓΩΝΙΣΜΑ ΣΤΗΝ ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΘΕΜΑ 1 Α. 1. Αν το Α έχει την τιµή 10 και το Β την τιµή 20 τότε η έκφραση (Α > 8 ΚΑΙ Β < 20) Ή (Α > 10 Ή Β = 10) είναι αληθής 2. Σε περίπτωση εµφωλευµένων βρόχων, ο εσωτερικός

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

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

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

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

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

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

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

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

ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΡΗΤΗΣ ΤΜΗΜΑ ΕΠΙΣΤΗΜΗΣ ΥΠΟΛΟΓΙΣΤΩΝ ΓΛΩΣΣΕΣ ΚΑΙ ΜΕΤΑΦΡΑΣΤΕΣ ΗΥ340 ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΡΗΤΗΣ ΤΜΗΜΑ ΕΠΙΣΤΗΜΗΣ ΥΠΟΛΟΓΙΣΤΩΝ ΓΛΩΣΣΕΣ ΚΑΙ ΜΕΤΑΦΡΑΣΤΕΣ ΗΥ340 ΕΑΡΙΝΟ ΕΞΑΜΗΝΟ 2008 ΔΙΔΑΣΚΩΝ: ΑΝΤΩΝΙΟΣ ΣΑΒΒΙΔΗΣ ΒΑΣΙΚΗ ΕΡΓΑΣΙΑ ΦΑΣΗ 2η από 5 Παράδοση: Πέμπτη 10 Απριλίου 2008, 24:00 (μεσάνυχτα)

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

ΕΝΙΑΙΟ ΛΥΚΕΙΟ ΚΑΛΑΜΠΑΚΑΣ ΣΧΟΛ. ΕΤΟΣ 2012-2013

ΕΝΙΑΙΟ ΛΥΚΕΙΟ ΚΑΛΑΜΠΑΚΑΣ ΣΧΟΛ. ΕΤΟΣ 2012-2013 ΕΝΙΑΙΟ ΛΥΚΕΙΟ ΚΑΛΑΜΠΑΚΑΣ ΣΧΟΛ. ΕΤΟΣ 2012-2013 ΕΚΠΑΙΔΕΥΤΙΚΉ ΠΡΟΣΟΜΟΙΩΣΗ ΕΞΕΤΑΣΕΩΝ Γ ΛΥΚΕΙΟΥ ΤΕΧΝΟΛΟΓΙΚΗ ΚΑΤΕΥΘΥΝΣΗ ΕΞΕΤΑΖΟΜΕΝΟ ΜΑΘΗΜΑ: ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ ΘΕΜΑ Α Α1. Να γράψετε

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

8. Επιλογή και επανάληψη

8. Επιλογή και επανάληψη 8. Επιλογή και επανάληψη 8.1 Εντολές Επιλογής ΕΣΕΠ06-Θ1Β5 Η ιεραρχία των λογικών τελεστών είναι µικρότερη των αριθµητικών. ΕΣ07-Θ1Γ5 Η σύγκριση λογικών δεδοµένων έχει έννοια µόνο στην περίπτωση του ίσου

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

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

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

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

Αν τότε. αλλιώς. Τέλος_αν. Τέλος_αν

Αν τότε. αλλιώς. Τέλος_αν. Τέλος_αν Α Π Α Ν Τ Η Σ Ε Ι Σ Θ Ε Μ Α Τ Ω Ν Π Α Ν Ε Λ Λ Α Δ Ι Κ Ω Ν Ε Ξ Ε Τ Α Σ Ε Ω Ν 2 0 1 5 Α Ν Α Π Τ Υ Ξ Η Ε Φ Α Ρ Μ Ο Γ Ω Ν Σ Ε Π Ρ Ο Γ Ρ Α Μ Μ Α Τ Ι Σ Τ Ι Κ Ο Π Ε Ρ Ι Β Α Λ Λ Ο Ν Τ Ε Χ Ν Ο Λ Ο Γ Ι Κ Η Σ Κ Α

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

Α Β (ΟΧΙ Α) Η Β Α ΚΑΙ Β Α Η Β ΨΕΥ ΗΣ ΑΛΗΘΗΣ

Α Β (ΟΧΙ Α) Η Β Α ΚΑΙ Β Α Η Β ΨΕΥ ΗΣ ΑΛΗΘΗΣ ΑΡΧΗ 1ΗΣ ΣΕΛΙ ΑΣ ΑΠΟΛΥΤΗΡΙΕΣ ΕΞΕΤΑΣΕΙΣ Σ ΕΣΠΕΡΙΝΟΥ ΕΝΙΑΙΟΥ ΛΥΚΕΙΟΥ ΠΑΡΑΣΚΕΥΗ 2 ΙΟΥΝΙΟΥ 2006 ΕΞΕΤΑΖΟΜΕΝΟ ΜΑΘΗΜΑ ΤΕΧΝΟΛΟΓΙΚΗΣ ΚΑΤΕΥΘΥΝΣΗΣ (ΚΥΚΛΟΣ ΠΛΗΡΟΦΟΡΙΚΗΣ ΚΑΙ ΥΠΗΡΕΣΙΩΝ): ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ

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

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

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

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

Α2. ίνεται το παρακάτω τμήμα αλγορίθμου: Για i από 3 μέχρι Α με_βήμα Β Εμφάνισε i Τέλος_επανάληψης ΑΡΧΗ 1ΗΣ ΣΕΛΙ ΑΣ ΤΕΛΟΣ 1ΗΣ ΑΠΟ 6 ΣΕΛΙ ΕΣ

Α2. ίνεται το παρακάτω τμήμα αλγορίθμου: Για i από 3 μέχρι Α με_βήμα Β Εμφάνισε i Τέλος_επανάληψης ΑΡΧΗ 1ΗΣ ΣΕΛΙ ΑΣ ΤΕΛΟΣ 1ΗΣ ΑΠΟ 6 ΣΕΛΙ ΕΣ ΑΡΧΗ 1ΗΣ ΣΕΛΙ ΑΣ ΑΠΟΛΥΤΗΡΙΕΣ ΕΞΕΤΑΣΕΙΣ ΤΑΞΗΣ ΕΣΠΕΡΙΝΟΥ ΓΕΝΙΚΟΥ ΛΥΚΕΙΟΥ ΚΑΙ ΠΑΝΕΛΛΑ ΙΚΕΣ ΕΞΕΤΑΣΕΙΣ ΕΣΠΕΡΙΝΟΥ ΕΠΑΛ (ΟΜΑ ΑΣ Β ) ΣΑΒΒΑΤΟ 22 ΜΑΪΟΥ 2010 ΕΞΕΤΑΖΟΜΕΝΟ ΜΑΘΗΜΑ ΤΕΧΝΟΛΟΓΙΚΗΣ ΚΑΤΕΥΘΥΝΣΗΣ (ΚΥΚΛΟΣ ΠΛΗΡΟΦΟΡΙΚΗΣ

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

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

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

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

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

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

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

Α3. Ποια είναι τα πλεονεκτήματα του Δομημένου προγραμματισμού; (Μονάδες 10)

Α3. Ποια είναι τα πλεονεκτήματα του Δομημένου προγραμματισμού; (Μονάδες 10) ΜΑΘΗΜΑ / ΤΑΞΗ : ΔΟΜΗΜΕΝΟΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ / Γ ΕΠΑΛ ΣΕΙΡΑ: ΗΜΕΡΟΜΗΝΙΑ: 08 / 02 / 2015 ΕΠΙΜΕΛΕΙΑ ΔΙΑΓΩΝΙΣΜΑΤΟΣ: Ι. ΜΙΧΑΛΕΑΚΟΣ Γ.ΝΙΤΟΔΑΣ ΘΕΜΑ Α Α1. Να γράψετε στο τετράδιό σας τον αριθμό καθεμιάς από τις

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

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

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

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

ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ Η/Υ. Εισαγωγή στην FORTRAN. Δρ. Ιωάννης Λυχναρόπουλος 2014-2015

ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ Η/Υ. Εισαγωγή στην FORTRAN. Δρ. Ιωάννης Λυχναρόπουλος 2014-2015 ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ Η/Υ Εισαγωγή στην FORTRAN Δρ. Ιωάννης Λυχναρόπουλος 2014-2015 Fortran FORmula TRANslation: (Μία από τις πρώτες γλώσσες τρίτης γενιάς) Εκδόσεις FORTRAN (1957) FORTRAN II (1958) FORTRAN III

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

Άσκηση 1 (α) Να διατυπώσετε την πιο κάτω λογική έκφραση στη Visual Basic κάνοντας χρήση μεταβλητών:

Άσκηση 1 (α) Να διατυπώσετε την πιο κάτω λογική έκφραση στη Visual Basic κάνοντας χρήση μεταβλητών: Άσκηση 1 (α) Να διατυπώσετε την πιο κάτω λογική έκφραση στη Visual Basic κάνοντας χρήση μεταβλητών: (Μον.2) Η ηλικία είναι μεταξύ των 15 και 18 συμπεριλαμβανομένων (β) Αν Χ= 4, Υ=2, Κ=2 να βρείτε το αποτέλεσμα

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

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

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

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

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

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

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

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

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

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

ΓΡΑΠΤΕΣ ΠΡΟΑΓΩΓΙΚΕΣ ΕΞΕΤΑΣΕΙΣ ΜΑΪΟΥ-ΙΟΥΝΙΟΥ 2015

ΓΡΑΠΤΕΣ ΠΡΟΑΓΩΓΙΚΕΣ ΕΞΕΤΑΣΕΙΣ ΜΑΪΟΥ-ΙΟΥΝΙΟΥ 2015 ΛΥΚΕΙΟ ΑΡΧ. ΜΑΚΑΡΙΟΥ Γ - ΔΑΣΟΥΠΟΛΗ ΣΧΟΛΙΚΟ ΕΤΟΣ 2014-2015 ΓΡΑΠΤΕΣ ΠΡΟΑΓΩΓΙΚΕΣ ΕΞΕΤΑΣΕΙΣ ΜΑΪΟΥ-ΙΟΥΝΙΟΥ 2015 ΜΑΘΗΜΑ: ΠΛΗΡΟΦΟΡΙΚΗ ΗΜΕΡΟΜΗΝΙΑ: 10 /6 / 2015 ΒΑΘΜΟΣ:... ΤΑΞΗ: Β ΧΡΟΝΟΣ: 2 ώρες ΥΠ. ΚΑΘΗΓΗΤΗ:...

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

ΑΡΧΗ 1ΗΣ ΣΕΛΙ ΑΣ ΤΕΛΟΣ 1ΗΣ ΑΠΟ 6 ΣΕΛΙ ΕΣ

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

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

Διάλεξη 06: Συνδεδεμένες Λίστες & Εφαρμογές Στοιβών και Ουρών

Διάλεξη 06: Συνδεδεμένες Λίστες & Εφαρμογές Στοιβών και Ουρών ΕΠΛ231 Δομές Δεδομένων και Αλγόριθμοι 1 Διάλεξη 06: Συνδεδεμένες Λίστες & Εφαρμογές Στοιβών και Ουρών Στην ενότητα αυτή θα μελετηθούν τα εξής επιμέρους θέματα: - Υλοποίηση ΑΤΔ με Συνδεδεμένες Λίστες -

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

ΕΠΑΝΑΛΗΠΤΙΚΑ ΘΕΜΑΤΑ 2015 Β ΦΑΣΗ ÁÈÇÍÁ ΑΠΑΝΤΗΣΕΙΣ

ΕΠΑΝΑΛΗΠΤΙΚΑ ΘΕΜΑΤΑ 2015 Β ΦΑΣΗ ÁÈÇÍÁ ΑΠΑΝΤΗΣΕΙΣ ΤΑΞΗ: ΚΑΤΕΥΘΥΝΣΗ: ΜΑΘΗΜΑ: ΘΕΜΑ Α Α1. 1. Λάθος 2. Λάθος 3. Σωστό 4. Λάθος 5. Σωστό Γ ΓΕΝΙΚΟΥ ΛΥΚΕΙΟΥ ΤΕΧΝΟΛΟΓΙΚΗ (2ος Κύκλος) ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ Ηµεροµηνία: Κυριακή 19 Απριλίου

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

ΑΡΧΗ 1ΗΣ ΣΕΛΙΔΑΣ Δ ΕΣΠΕΡΙΝΩΝ

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

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

www.lazarinis.gr ΑΕΠΠ - ΗΜΕΡΗΣΙΑ ΛΥΚΕΙΑ 2011 - ΘΕΜΑΤΑ ΚΑΙ ΛΥΣΕΙΣ

www.lazarinis.gr ΑΕΠΠ - ΗΜΕΡΗΣΙΑ ΛΥΚΕΙΑ 2011 - ΘΕΜΑΤΑ ΚΑΙ ΛΥΣΕΙΣ Σελίδα 1 από 12 www.lazarinis.gr ΑΕΠΠ - ΗΜΕΡΗΣΙΑ ΛΥΚΕΙΑ 2011 - ΘΕΜΑΤΑ ΚΑΙ ΛΥΣΕΙΣ Σε συνεργασία µε τις εκδόσεις ΕΛΛΗΝΟΕΚ ΟΤΙΚΗ κυκλοφορούν τα βοηθήµατα «Ανάπτυξη Εφαρµογών σε Προγραµµατιστικό Περιβάλλον:

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

ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ Η/Υ ΥΠΟΠΡΟΓΡΑΜΜΑΤΑ. Δρ. Ιωάννης Λυχναρόπουλος 2014-2015. Τμήμα Μηχανολόγων Μηχανικών Πανεπιστήμιο Θεσσαλίας

ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ Η/Υ ΥΠΟΠΡΟΓΡΑΜΜΑΤΑ. Δρ. Ιωάννης Λυχναρόπουλος 2014-2015. Τμήμα Μηχανολόγων Μηχανικών Πανεπιστήμιο Θεσσαλίας ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ Η/Υ ΥΠΟΠΡΟΓΡΑΜΜΑΤΑ Δρ. Ιωάννης Λυχναρόπουλος 2014-2015 Τμήμα Μηχανολόγων Μηχανικών Πανεπιστήμιο Θεσσαλίας Τι είναι τα υποπρογράμματα Αυτόνομες μονάδες κώδικα Γραμμένα από τον χρήστη Η δομή

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

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

7. Βασικά στοιχεία προγραµµατισµού. 7. Βασικά στοιχεία προγραµµατισµού. ΗΜ01-Θ1Γ Δίνονται οι παρακάτω έννοιες: 1. Λογικός τύπος δεδοµένων 2. Επιλύσιµο 3. Ακέραιος τύπος δεδοµένων 4. Περατότητα 5. Μεταβλητή 6. Ηµιδοµηµένο 7. Πραγµατικός τύπος

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

ΤΕΧΝΟΓΛΩΣΣΙΑ VIII ΛΟΓΙΚΟΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΔΙΔΑΣΚΟΝΤΕΣ: ΜΑΪΣΤΡΟΣ ΓΙΑΝΗΣ, ΠΑΠΑΚΙΤΣΟΣ ΕΥΑΓΓΕΛΟΣ ΑΣΚΗΣΗ: ΔΙΟΡΘΩΣΗ ΕΚΦΡΑΣΕΩΝ (Β )

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

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

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

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

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

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

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

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

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

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

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

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

ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΡΗΤΗΣ ΤΜΗΜΑ ΕΠΙΣΤΗΜΗΣ ΥΠΟΛΟΓΙΣΤΩΝ ΓΛΩΣΣΕΣ ΚΑΙ ΜΕΤΑΦΡΑΣΤΕΣ ΗΥ340 ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΡΗΤΗΣ ΤΜΗΜΑ ΕΠΙΣΤΗΜΗΣ ΥΠΟΛΟΓΙΣΤΩΝ ΓΛΩΣΣΕΣ ΚΑΙ ΜΕΤΑΦΡΑΣΤΕΣ ΗΥ340 ΕΑΡΙΝΟ ΕΞΑΜΗΝΟ 2010 Ι ΑΣΚΩΝ: ΑΝΤΩΝΙΟΣ ΣΑΒΒΙ ΗΣ ΒΑΣΙΚΗ ΕΡΓΑΣΙΑ ΦΑΣΗ 2η από 5 Ανάθεση: Πέµπτη 15 Απριλίου 2010, 11:00 (πρωί)

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

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

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

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

ΚΕΦΑΛΑΙΟ VI. Εισαγωγή στον προγραμματισμό

ΚΕΦΑΛΑΙΟ VI. Εισαγωγή στον προγραμματισμό ΚΕΦΑΛΑΙΟ VI Η επίλυση ενός προβλήματος με τον υπολογιστή περιλαμβάνει, όπως έχει ήδη αναφερθεί, τρία εξίσου σημαντικά στάδια. Τον ακριβή προσδιορισμό του προβλήματος. Την ανάπτυξη του αντίστοιχου αλγορίθμου.

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

ιδάσκων: ηµήτρης Ζεϊναλιπούρ

ιδάσκων: ηµήτρης Ζεϊναλιπούρ Κεφάλαιο 1.3-1.4: Εισαγωγή Στον Προγραµµατισµό ( ιάλεξη 2) ιδάσκων: ηµήτρης Ζεϊναλιπούρ Περιεχόµενα Εισαγωγικές Έννοιες - Ορισµοί Ο κύκλος ανάπτυξης προγράµµατος Παραδείγµατα Πότε χρησιµοποιούµε υπολογιστή?

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

Παιχνίδια σε Javascript

Παιχνίδια σε Javascript Παιχνίδια σε Javascript Μάθημα 1ο Μια Γρήγορη Εισαγωγή στη Γλώσσα Τα Εργαλεία Την Javascript μπορούμε (όπως και την HTML) να τη γράψουμε σε ένα απλό συντάκτη κειμένου, ή σε ένα περιβάλλον όπως το Bluefish

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

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

ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ ΕΚΦΩΝΗΣΕΙΣ ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ ΤΕΧΝΟΛΟΓΙΚΗΣ ΚΑΤΕΥΘΥΝΣΗΣ (ΚΥΚΛΟΥ ΠΛΗΡΟΦΟΡΙΚΗΣ & ΥΠΗΡΕΣΙΩΝ) 2010 ΕΚΦΩΝΗΣΕΙΣ ΘΕΜΑ Α Α1. ίνονται τα παρακάτω τµήµατα αλγορίθµου σε φυσική γλώσσα. 1. Αν η

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

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

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

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

Τα δεδομένα στη C++ χωρίζονται σε 3 κατηγορίες: τους αριθμούς (numbers), τους χαρακτήρες (characters) και τις συμβολοσειρές (strings).

Τα δεδομένα στη C++ χωρίζονται σε 3 κατηγορίες: τους αριθμούς (numbers), τους χαρακτήρες (characters) και τις συμβολοσειρές (strings). Για να λύσουμε ένα πρόβλημα στη C++ χρειαζόμαστε δυο βασικές έννοιες. Η μια είναι οι οδηγίες εντολές, ο αλγόριθμος δηλαδή, που πρέπει να ακολουθήσουμε για να λύσουμε το πρόβλημά μας και η άλλη είναι τα

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

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

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

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

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

ΔΟΜΗΜΕΝΟΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΕΡΩΤΗΣΕΙΣ 1. Τι καλείται ψευδοκώδικας; 2. Τι καλείται λογικό διάγραμμα; 3. Για ποιο λόγο είναι απαραίτητη η τυποποίηση του αλγόριθμου; 4. Ποιες είναι οι βασικές αλγοριθμικές δομές; 5. Να περιγράψετε τις

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

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

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

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

ΠΑΝΕΠΙΣΤΗΜΙΟ ΙΩΑΝΝΙΝΩΝ ΤΜΗΜΑ ΜΑΘΗΜΑΤΙΚΩΝ

ΠΑΝΕΠΙΣΤΗΜΙΟ ΙΩΑΝΝΙΝΩΝ ΤΜΗΜΑ ΜΑΘΗΜΑΤΙΚΩΝ ΠΑΝΕΠΙΣΤΗΜΙΟ ΙΩΑΝΝΙΝΩΝ ΤΜΗΜΑ ΜΑΘΗΜΑΤΙΚΩΝ ΕΡΓΑΣΤΗΡΙΟ ΒΑΣΕΩΝ Ε ΟΜΕΝΩΝ ΜΕΡΟΣ ΠΕΜΠΤΟ Triggers, Stored procedures Γιώργος Μαρκοµανώλης Περιεχόµενα Triggers-Ενηµέρωση δεδοµένων άλλων πινάκων... 1 Ασφάλεια...

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

Εργαστήριο Σημασιολογικού Ιστού

Εργαστήριο Σημασιολογικού Ιστού Εργαστήριο Σημασιολογικού Ιστού Ενότητα 8: Εισαγωγή στη SPARQL Βασική Χρήση Μ.Στεφανιδάκης 3-5-2015. Η γλώσσα ερωτημάτων SPARQL Ερωτήσεις (και ενημερώσεις) σε σετ δεδομένων RDF Και σε δεδομένα άλλης μορφής

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

Ξεκινώντας με το MIT Αρρ Inventor. 1 η Εργασία

Ξεκινώντας με το MIT Αρρ Inventor. 1 η Εργασία Ξεκινώντας με το MIT Αρρ Inventor 1 η Εργασία Απαιτήσεις 1. Σύνδεση στο Διαδίκτυο (διότι οι εφαρμογές δημιουργούνται online) 2. Εγκατεστημένος ο Browser Google Chrome 3. Υπαρκτός λογαριασμός Gmail 4. Κατεβάστε

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

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

ΘΕΜΑ 1 ο ΑΡΧΗ 1ΗΣ ΣΕΛΙ ΑΣ ΑΡΧΗ 1ΗΣ ΣΕΛΙ ΑΣ ΘΕΜΑ 1 ο ΑΠΟΛΥΤΗΡΙΕΣ ΕΞΕΤΑΣΕΙΣ Γ ΤΑΞΗΣ ΗΜΕΡΗΣΙΟΥ ΓΕΝΙΚΟΥ ΛΥΚΕΙΟΥ ΤΕΤΑΡΤΗ 27 MAΪΟΥ 2009 ΕΞΕΤΑΖΟΜΕΝΟ ΜΑΘΗΜΑ: ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ ΤΕΧΝΟΛΟΓΙΚΗΣ ΚΑΤΕΥΘΥΝΣΗΣ (ΚΥΚΛΟΥ

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

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

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

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

Runtime Checking (1/3) Runtime Checking (2/3) Runtime Checking (3/3) ΗΥ 340 Γλώσσες και Μεταφραστές Φροντιστήριο

Runtime Checking (1/3) Runtime Checking (2/3) Runtime Checking (3/3) ΗΥ 340 Γλώσσες και Μεταφραστές Φροντιστήριο ΗΥ 340 Γλώσσες και Μεταφραστές Φροντιστήριο Runtime Checking (1/3) Η γλώσσα alpha είναι μια dynamic typing γλώσσα (ο τύπος μιας μεταβλητής αλλάζει ακολουθώντας τον τύπο της τιμής που κάθε φορά αποθηκεύεται

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

1. Να αναφέρετε ονοµαστικά τις λειτουργίες µε τις οποίες ο υπολογιστής µπορεί να επιτελέσει µε επιτυχία οποιαδήποτε επεξεργασία. Ï.Å.Ö.Å.

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

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

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

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

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

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

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

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

Εισαγωγή στις Συναρτήσεις

Εισαγωγή στις Συναρτήσεις Εισαγωγή στις Συναρτήσεις Η φιλοσοφία σχεδίασης της C βασίζεται στη χρήση των συναρτήσεων. Έχουμε ήδη δει και χρησιμοποιήσει πολλές συναρτήσεις που έχει το σύστημα, όπως είναι οι printf(), scanf(),αλλά

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

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

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

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

ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ Ονοματεπώνυμο: Βαθμός:

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

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

Διάλεξη 6: Δείκτες και Πίνακες

Διάλεξη 6: Δείκτες και Πίνακες Τμήμα Πληροφορικής Πανεπιστήμιο Κύπρου ΕΠΛ132 Αρχές Προγραμματισμού II Διάλεξη 6: Δείκτες και Πίνακες (Κεφάλαιο 12, KNK-2ED) Δημήτρης Ζεϊναλιπούρ http://www.cs.ucy.ac.cy/courses/epl132 6-1 Περιεχόμενο

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

ΟΔΗΓΙΕΣ ΕΓΚΑΤΑΣΤΑΣΗΣ & ΧΡΗΣΗΣ ΟΛΟΚΛΗΡΩΜΕΝΟΥ ΠΕΡΙΒΑΛΛΟΝΤΟΣ ΑΝΑΠΤΥΞΗΣ BloodShed Dev-C++

ΟΔΗΓΙΕΣ ΕΓΚΑΤΑΣΤΑΣΗΣ & ΧΡΗΣΗΣ ΟΛΟΚΛΗΡΩΜΕΝΟΥ ΠΕΡΙΒΑΛΛΟΝΤΟΣ ΑΝΑΠΤΥΞΗΣ BloodShed Dev-C++ ΟΔΗΓΙΕΣ ΕΓΚΑΤΑΣΤΑΣΗΣ & ΧΡΗΣΗΣ ΟΛΟΚΛΗΡΩΜΕΝΟΥ ΠΕΡΙΒΑΛΛΟΝΤΟΣ ΑΝΑΠΤΥΞΗΣ BloodShed Dev-C++ Α. ΠΡΙΝ ΤΗΝ ΕΓΚΑΤΑΣΤΑΣΗ Το πρόγραμμα BloodShed Dev-C++ είναι ένα ολοκληρωμένο περιβάλλον ανάπτυξης* κώδικα για γλώσσες

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