Εργασία Προγραµµατισµού

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

Download "Εργασία Προγραµµατισµού"

Transcript

1 ΠΟΛΥΤΕΧΝΕΙΟ ΚΡΗΤΗΣ Τµήµα Ηλεκτρονικών Μηχανικών και Μηχανικών Υπολογιστών ΠΛΗ 401 ΘΕΩΡΙΑ ΥΠΟΛΟΓΙΣΜΟΥ Εργασία Προγραµµατισµού ιδάσκων Μιχαήλ Γ. Λαγουδάκης Επιµέλεια εργασίας Σπύρος Αργυρόπουλος Χειµερινό Εξάµηνο σελ. 1/15

2 1. Εισαγωγή Η εργασία προγραµµατισµού του µαθήµατος «ΠΛΗ Θεωρία Υπολογισµού» έχει ως στόχο τη βαθύτερη κατανόηση της χρήσης και εφαρµογής θεωρητικών εργαλείων, όπως οι κανονικές εκφράσεις και οι γραµµατικές χωρίς συµφραζόµενα, στο πρόβληµα της µεταγλώττισης (compilation) γλωσσών προγραµµατισµού. Συγκεκριµένα, η εργασία αφορά στη σχεδίαση και υλοποίηση των αρχικών σταδίων ενός µεταγλωττιστή (compiler) για τη φανταστική γλώσσα FhP, η οποία περιγράφεται αναλυτικά παρακάτω. Για την υλοποίηση της εργασίας θα χρησιµοποιήσετε τη γλώσσα C και τα εργαλεία flex και bison τα οποία είναι διαθέσιµα ως ελεύθερο λογισµικό. Η εργασία θα περιλαµβάνει δύο τµήµατα: 1. Υλοποίηση λεκτικού αναλυτή για την γλώσσα FhP µε χρήση flex 2. Υλοποίηση συντακτικού αναλυτή για τη γλώσσα FhP µε χρήση bison Η προθεσµία παράδοσης της εργασίας είναι η Τρίτη 18 εκεµβρίου 2007, 11:59µµ. Παρατηρήσεις 1. Η εργασία θα εκπονηθεί από οµάδες φοιτητών το πολύ δύο ατόµων. Τα ονόµατα των οµάδων και οι αντίστοιχοι αριθµοί µητρώου πρέπει να δηλωθούν µέχρι το τέλος Νοεµβρίου µε σας στο 2. Για την εκπόνηση της εργασίας µπορούν να χρησιµοποιηθούν υπολογιστές του Εργαστηρίου Συστηµάτων Λογισµικού (softnet) ή εναλλακτικά υπολογιστές του Μηχανογραφικού Κέντρου και προσωπικοί υπολογιστές. Για λογαριασµούς πρόσβασης στο softnet απευθυνθείτε στον κ. Αργυρόπουλο. Μπορείτε επίσης να χρησιµοποιήσετε τους δικούς σας υπολογιστές στο σπίτι είτε σε περιβάλλον Linux είτε σε Windows (µέσω CygWin). 3. Η παράδοση της εργασίας θα γίνει ηλεκτρονικά µέσα από την ιστοσελίδα του µαθήµατος. Το παραδοτέο αρχείο (.zip,.tar,.rar) θα πρέπει να φέρει τα επώνυµα της οµάδας στο filename (π.χ. Argyropoulos_Lagoudakis.zip). 4. Εκτός από τον κώδικα, το παραδοτέο σας θα πρέπει να περιλαµβάνει και µια συνοπτική αναφορά (δακτυλογραφηµένη, PDF µορφή) που θα εξηγεί τις τεχνικές που χρησιµοποιήθηκαν και τις ιδιαιτερότητες της εργασίας σας. 5. Η αξιολόγηση της εργασίας θα γίνει ατοµικά και θα περιλαµβάνει εξέταση καλής λειτουργίας του παραδοτέου προγράµµατος καθώς και προφορική εξέταση στο χώρο του Εργαστηρίου Συστηµάτων Λογισµικού (softnet) στις 20 και 21 εκεµβρίου σε ώρες που θα ανακοινωθούν. Είναι αποκλειστικά δική σας ευθύνη να εξασφαλίσετε τη σωστή λειτουργία του παραδοτέου προγράµµατος στους υπολογιστές του εργαστηρίου. 6. Οι ηµεροµηνίες παράδοσης είναι αυστηρές και οι εκπρόθεσµες εργασίες δε θα γίνονται δεκτές. Μη παράδοση της εργασίας οδηγεί σε απώλεια του αντιστοίχου ποσοστού από τον τελικό βαθµό του µαθήµατος. σελ. 2/15

3 2. Η γλώσσα προγραµµατισµού FhP Η γλώσσα FhP βασίζεται στη γλώσσα PHP. Λόγω οµοιοτήτων της FhP µε την PHP, η περιγραφή τονίζει κυρίως σηµεία όπου οι δύο γλώσσες διαφέρουν. Σε περιπτώσεις πιθανής ασάφειας µπορείτε να ανατρέξετε στην περιγραφή της PHP. Κάθε πρόγραµµα σε γλώσσα FhP είναι ένα σύνολο από λεκτικές µονάδες, οι οποίες είναι διατεταγµένες µε βάση κάποιους συντακτικούς κανόνες, όπως περιγράφονται παρακάτω. 2.1 Λεκτικές Μονάδες Οι λεκτικές µονάδες της γλώσσας FhP χωρίζονται στις παρακάτω κατηγορίες: Τις λέξεις κλειδιά, οι οποίες είναι οι παρακάτω: if else while for do switch case continue default return exit break integer int float real double boolean bool string echo print function true false and or xor Ειδικά για τις λέξεις κλειδιά, τα πεζά γράµµατα θεωρούνται ίδια µε τα αντίστοιχα κεφαλαία, εποµένως για παράδειγµα η λέξη κλειδί else θα πρέπει να µπορεί να αναγνωριστεί και σαν Else ή ELSe ή ElsE κ.τ.λ. Τα αναγνωριστικά (ονόµατα µεταβλητών και συναρτήσεων), τα οποία αποτελούνται από ένα πεζό ή κεφαλαίο γράµµα του λατινικού αλφαβήτου, πιθανώς ακολουθούµενο από µια σειρά πεζών ή κεφαλαίων γραµµάτων, δεκαδικών ψηφίων ή χαρακτήρων υπογράµµισης (underscore). Tα αναγνωριστικά δεν πρέπει να συµπίπτουν µε τις λέξεις κλειδιά που αναφέρθηκαν παραπάνω. Παραδείγµατα: x y1 angle my_value Distance_02 Οι ακέραιες σταθερές χωρίς πρόσηµο, που αποτελούνται από ένα ή περισσότερα δεκαδικά ψηφία χωρίς περιττά µηδενικά στην αρχή. Παραδείγµατα: Οι πραγµατικές σταθερές χωρίς πρόσηµο, που αποτελούνται από ένα ακέραιο µέρος, ένα κλασµατικό µέρος και ένα προαιρετικό εκθετικό µέρος. Το ακέραιο µέρος αποτελείται από ένα ή περισσότερα δεκαδικά ψηφία χωρίς περιττά µηδενικά. Το κλασµατικό µέρος αποτελείται από το χαρακτήρα της υποδιαστολής (.) ακολουθούµενο από ένα ή περισσότερα δεκαδικά ψηφία. Τέλος, το εκθετικό µέρος αποτελείται από το πεζό ή κεφαλαίο γράµµα E, ένα προαιρετικό πρόσηµο + ή - και ένα ή περισσότερα δεκαδικά ψηφία και πάλι χωρίς περιττά µηδενικά. Παραδείγµατα: e E e-3 σελ. 3/15

4 Οι λογικές σταθερές (boolean), που αποτελούνται από τις λέξεις-τιµές true ή false. Οι σταθερές συµβολοσειρές (strings), που αποτελούνται είτε από µια ακολουθία κοινών χαρακτήρων µέσα απλά εισαγωγικά, είτε από µια ακολουθία κοινών χαρακτήρων ή ακολουθιών διαφυγής µέσα σε διπλά εισαγωγικά. Οι σταθερές συµβολοσειρές δεν µπορούν να εκτείνονται σε περισσότερες από µια γραµµές του προγράµµατος. Οι ακολουθίες διαφυγής ξεκινούν µε το χαρακτήρα \ (backslash) και περιγράφονται στον Πίνακα 1. Παραδείγµατα: abc "Route 66" "Hello world!\n" "Item:\t\"Laser Printer\"\nPrice:\t142\$\n" Χαρακτήρας Περιγραφή \n χαρακτήρας αλλαγής γραµµής (line feed) \t χαρακτήρας στηλοθέτησης (TAB) \\ χαρακτήρας \ (backslash) \' χαρακτήρας ' (απλό εισαγωγικό) \" χαρακτήρας " (διπλό εισαγωγικό) \$ χαρακτήρας $ (δολάριο) Πίνακας 1. Ακολουθίες διαφυγής (escape sequences) Τους τελεστές, οι οποίοι είναι οι παρακάτω: = > <!= >= <= + - * / % = -= *= /= %= &&! ==. and or xor Τους διαχωριστές, οι οποίοι είναι οι παρακάτω: { ; ( ) :, [ ]? Τις γραµµές εξωτερικού κώδικα, οι οποίες είναι ξεχωριστές γραµµές κώδικα στο αρχείο του προγράµµατος που δεν βρίσκονται ανάµεσα στα tags έναρξης και τερµατισµού της FhP (, ). Εκτός από τις λεκτικές µονάδες που προαναφέρθηκαν, ένα πρόγραµµα FhP µπορεί επίσης να περιέχει τα παρακάτω, τα οποία αγνοούνται (δηλαδή τα αναγνωρίζετε αλλά δεν κάνετε τίποτα για αυτά): Κενούς χαρακτήρες, δηλαδή ακολουθίες αποτελούµενες από κενά διαστήµατα (space), χαρακτήρες στηλοθέτησης (tab), χαρακτήρες αλλαγής γραµµής (line feed) ή χαρακτήρες επιστροφής στην αρχή της γραµµής (carriage return). Σχόλια, τα οποία αρχίζουν µε την ακολουθία χαρακτήρων /* και τερµατίζονται µε την πρώτη µετέπειτα εµφάνιση της ακολουθίας χαρακτήρων */. Κατά συνέπεια, τα σχόλια δεν επιτρέπεται να είναι φωλιασµένα. Στο εσωτερικό τους επιτρέπεται η εµφάνιση οποιουδήποτε χαρακτήρα. σελ. 4/15

5 Σχόλια γραµµής, το οποία αρχίζουν µε την ακολουθία χαρακτήρων // και εκτείνονται ως το τέλος της τρέχουσας γραµµής. 2.2 Συντακτική οµή Ένα πρόγραµµα FhP µπορεί να βρίσκεται µέσα σε ένα αρχείο.fhp και να αποτελείται από τα παρακάτω: ηλώσεις συναρτήσεων Εντολές εν υπάρχει κανένας περιορισµός στην σειρά µε την οποία εµφανίζονται αυτά. Για παράδειγµα, ένα πρόγραµµα θα µπορεί να έχει στην αρχή µια σειρά εντολών, στη συνέχεια δηλώσεις συναρτήσεων, µετά ξανά εντολές, ξανά συναρτήσεις, κ.ο.κ. Μέσα στο αρχείο.fhp µπορούν να υπάρχουν µηδέν ή περισσότερα µη συνεχόµενα τµήµατα προγράµµατος σε FhP. Κάθε τµήµα βρίσκεται ανάµεσα στα tags και (tags έναρξης και τερµατισµού της FhP). Όλα τα υπόλοιπα περιεχόµενα του αρχείου απλά θα προωθούνται ως γραµµές εξωτερικού κώδικα χωρίς να ελέγχονται για σύνταξη. Όλα τα τµήµατα προγράµµατος σε FhP αποτελούν µια ενότητα η οποία ακολουθεί συγκεκριµένους συντακτικούς κανόνες. εν επιτρέπεται η ύπαρξη φωλιασµένων tags έναρξης και τερµατισµού. Παράδειγµα: if ($true_or_false) { <p>the value of $true_or_false is true.</p> else { <p>the value of $true_or_false is false.</p> Παρακάτω περιγράφονται αναλυτικά όλα τα δοµικά συστατικά που µπορεί να περιλαµβάνονται σε ένα πρόγραµµα της γλώσσας FhP Τύποι δεδοµένων Η FhP υποστηρίζει τέσσερις βασικούς τύπους δεδοµένων: integer: ακέραιοι αριθµοί boolean: λογικές τιµές string: χαρακτήρες float: πραγµατικοί αριθµοί Μεταβλητές εν υπάρχουν δηλώσεις µεταβλητών. Η αναγνώρισή τους γίνεται αυτόµατα τη στιγµή που θα χρησιµοποιηθούν για πρώτη φορά. Οι µεταβλητές της γλώσσας FhP είναι της µορφής: σελ. 5/15

6 $<αναγνωριστικό_όνοµα_µεταβλητής> Ο τύπος κάθε µεταβλητής καθορίζεται από τον τύπο των δεδοµένων που θα της καταχωρήσουµε αλλά το θέµα αυτό δε θα µας απασχολήσει σε αυτή την εργασία. Το όνοµα της µεταβλητής είναι case-sensitive. Παραδείγµατα µεταβλητών είναι: $i = 0; /* µεταβλητή τύπου integer */ $y = 4.2; /* µεταβλητή τύπου float */ $c = "This is a string \n"; /* µεταβλητή τύπου string */ $f = false; /* µεταβλητή τύπου boolean */ Εκτός από τους βασικούς τύπους, η FhP υποστηρίζει επίσης µονοδιάστατους ή πολυδιάστατους πίνακες. εν υπάρχει δήλωση πινάκων. Τα στοιχεία των πινάκων της γλώσσας είναι της µορφής: $<αναγνωριστικό_όνοµα>[<δείκτης1>][<δείκτης2>]...[<δείκτηςν>] Οι δείκτες µπορούν να είναι: - Θετικός ακέραιος - Μεταβλητή - Έκφραση Παραδείγµατα στοιχείων πινάκων είναι: $matrix[1][5] $y[$k][($k+2)*$n] Συναρτήσεις Κάθε συνάρτηση είναι µια δοµική µονάδα που αποτελείται από την επικεφαλίδα ακολουθούµενη από το σώµα της. Στην επικεφαλίδα αναφέρεται η λέξη κλειδί function, το όνοµα της συνάρτησης και οι τυπικές της παράµετροι µέσα σε παρενθέσεις. Οι παρενθέσεις είναι υποχρεωτικές ακόµα και αν µία συνάρτηση δεν έχει τυπικές παραµέτρους. Το σώµα µιας συνάρτησης περικλείεται µέσα σε άγκιστρα {. Το σώµα µιας συνάρτησης µπορεί να αποτελείται από δηλώσεις συναρτήσεων και εντολές χωρίς περιορισµό στη σειρά µε την οποία εµφανίζονται. Αν η συνάρτηση επιστρέφει τιµή τότε το σώµα της θα πρέπει να περιέχει τουλάχιστον την εντολή επιστροφής return. Οι εντολές περιγράφονται στην ενότητα Ακολουθεί παράδειγµα συνάρτησης µε σώµα: function foo ($arg_1, $arg_2,..., $arg_n) { echo "Example function.\n"; return $retval; Εκφράσεις και Τελεστές Οι εκφράσεις (expressions) είναι το πιο σηµαντικό κοµµάτι µιας γλώσσας προγραµµατισµού. Οι πιο βασικές µορφές εκφράσεων είναι οι σταθερές και οι µεταβλητές. Πιο σύνθετες µορφές εκφράσεων είναι αυτές που προκύπτουν µε τη χρήση των τελεστών. Οι τελεστές της FhP διακρίνονται σε τελεστές µε ένα όρισµα και τελεστές µε δύο ορίσµατα. Από τους πρώτους, ορισµένοι γράφονται πριν το όρισµα (prefix) και σελ. 6/15

7 ορισµένοι µετά (postfix), ενώ οι δεύτεροι γράφονται πάντα µεταξύ των ορισµάτων (infix). Η αποτίµηση των ορισµάτων των τελεστών µε δυο ορίσµατα γίνεται από αριστερά προς τα δεξιά. Στον Πίνακα 2 ορίζεται η προτεραιότητα και η προσεταιριστικότητα των τελεστών της FhP. Προηγούνται οι τελεστές που εµφανίζονται πιο ψηλά στον πίνακα. Όσοι τελεστές βρίσκονται στο ίδιο κελί έχουν την ίδια προτεραιότητα. Τελεστές Περιγραφή Ορίσµατα Θέση Προσεταιριστικότητα! Λογική άρνηση 1 prefix Αύξηση, µείωση 1 prefix, postfix + - Πρόσηµα 1 prefix (int) (float) (string) (boolean) Τύποι cast 1 prefix * / % Πολλαπλασιαστικοί τελεστές 2 infix, αριστερή + -. Προσθετικοί τελεστές 2 infix, αριστερή == > < <= >=!= Σχεσιακοί τελεστές 2 infix, χωρίς σύνδεση &&, and Λογική σύζευξη 2 infix, αριστερή, or Λογική διάζευξη 2 infix, αριστερή xor Λογική αποκλειστική διάζευξη 2 infix, αριστερή = += -= /= %= *= Τελεστές ανάθεσης 2 infix, δεξιά Πίνακας 2. Προτεραιότητα και προσεταιριστικότητα των τελεστών της FhP Παραδείγµατα σωστών εκφράσεων: -$a // αντίθετος της µεταβλητής $a $a + $b * $b / $a // αριθµητική έκφραση ($b = 4) + 5 // τελεστές ανάθεσης µε αριθµητικούς ($a < $b) && ($c!= $d) // τελεστές λογικοί µε σχεσιακούς $a + ($c!= $d) // τελεστές αριθµητικοί µε σχεσιακούς $b = $a. "World!" // συνένωση - παράθεση συµβολοσειρών $a + $b[1][$k][($k+1)*2] // αριθµητική έκφραση µε πίνακα σελ. 7/15

8 2.2.5 Εντολές Οι εντολές που υποστηρίζει η γλώσσα FhP είναι οι ακόλουθες (κάθε απλή εντολή της γλώσσας FhP τερµατίζει µε το διαχωριστικό ;): Η κενή εντολή (;) που δεν κάνει καµία ενέργεια. Η εντολή ανάθεσης $l = e;, όπου $l είναι µία µεταβλητή και e µια έκφραση όπως ορίζεται και στην PHP. Υποστηρίζονται δύο είδη εντολών ανάθεσης: - Απλή εντολή ανάθεσης, π.χ. $i = $k + 2; - Εντολή ανάθεσης µε χρήση casting, π.χ. $i = (integer) $k; Τα επιτρεπόµενα casts είναι τα: (int), (integer) - cast σε integer (bool), (boolean) - cast σε boolean (float), (double), (real) - cast σε float (string) - cast σε string Η σύνθετη εντολή, που αποτελείται από µια σειρά έγκυρων εντολών ανάµεσα σε άγκιστρα {. Η εντολή ελέγχου if ( e ) s 1 else s 2 όπου e είναι µια έκφραση και τα s 1, s 2 είναι έγκυρες (απλές ή σύνθετες) εντολές. Το τµήµα else είναι προαιρετικό. H εντολή ελέγχου switch ( e ) { ; case e 1 : s 1 case e n : s n default : s d όπου e, e 1,, e n είναι εκφράσεις, s 1,, s n, s d είναι σειρές από έγκυρες απλές εντολές χωρίς άγκιστρα { και n 0. Η εντολή βρόχου while ( e ) s όπου e είναι µια έκφραση και το s είναι έγκυρη εντολή. Η εντολή βρόχου for ( e1; e2; e3 ) s. Οι εκφράσεις e1,e2,e3 είναι προαιρετικές και τo s πρέπει να είναι έγκυρη εντολή. H εντολή διακοπής break;, που προκαλεί την άµεση έξοδο από τον πιο εσωτερικό βρόχο, όπως ακριβώς και στη PHP. H εντολή διακοπής exit e;, που προκαλεί την άµεση έξοδο από το πρόγραµµα και επιστρέφει στο standard output την τιµή της έκφρασης e ως µήνυµα για τον λόγο εξόδου. Είναι σωστή η χρήση της εντολής διακοπής exit; χωρίς την έκφραση e στην περίπτωση που δεν επιστρέφεται κάποιο µήνυµα εξόδου. σελ. 8/15

9 H εντολή συνέχειας continue; προκαλεί την συνέχεια του βρόχου µέσα στον οποίο βρίσκεται, όπως ακριβώς και στη PHP. Η εντολή επιστροφής return e; τερµατίζει την εκτέλεση της τρέχουσας συνάρτησης και επιστρέφει την τιµή της έκφρασης e ως αποτέλεσµα της συνάρτησης. Είναι σωστή η χρήση της εντολής επιστροφής return; χωρίς την έκφραση e στην περίπτωση που η συνάρτηση δεν επιστρέφει κάποια τιµή. Η εντολή κλήσης µιας συνάρτησης f(e 1,..,e n );, όπου f είναι το όνοµα της συνάρτησης και e 1,..,e n είναι εκφράσεις που αντιστοιχούν στα δηλωθέντα ορίσµατα Προκαθορισµένες συναρτήσεις Η FhP υποστηρίζει ένα σύνολο προκαθορισµένων συναρτήσεων, οι οποίες βρίσκονται στη διάθεση του προγραµµατιστή. Παρακάτω, δίνονται οι επικεφαλίδες τους: print( e ); ή print e; echo( e ); ή echo e; ; Παραδείγµατα print("hello World"); echo "Hello World"; print $foo; echo($foo); print($f1, $f2); // Λάθος συντακτικό!! Γραµµές εξωτερικού κώδικα Η FhP υποστηρίζει την παρεµβολή γραµµών εξωτερικού κώδικα, οι οποίες αναγνωρίζονται σαν ξεχωριστές λεκτικές µονάδες και προωθούνται στο standard output χωρίς να ελέγχεται η εσωτερική της δοµή. Οι γραµµές εξωτερικού κώδικα µπορούν να πάρουν τη θέση οποιαδήποτε απλής εντολής χωρίς όµως να χρειάζεται ο τερµατισµός τους µε το διαχωριστικό ;. (Στην παρούσα εργασία δεν µας ενδιαφέρει ο τρόπος που εκτελούνται οι γραµµές εξωτερικού κώδικα). 3. Αναλυτική περιγραφή εργασίας 3.1 Τα εργαλεία Για να ολοκληρώσετε επιτυχώς την εργασία του µαθήµατος χρειάζεται να γνωρίζετε καλά προγραµµατισµό σε C, flex και bison. Τα εργαλεία flex και bison έχουν αναπτυχθεί στα πλαίσια του προγράµµατος GNU και µπορείτε να τα βρείτε σε όλους τους κόµβους του διαδικτύου που διαθέτουν λογισµικό GNU (π.χ. Περισσότερες πληροφορίες και σύνδεσµοι σχετικοί µε τα δύο αυτά εργαλεία υπάρχουν στην ιστοσελίδα του µαθήµατος (www.intelligence.tuc.gr/~theory). σελ. 9/15

10 Στο λειτουργικό Linux (οποιαδήποτε διανοµή) τα εργαλεία αυτά είναι ενσωµατωµένα, οπότε δεν χρειάζεται να κατεβάσετε ή να εγκαταστήσετε κάτι! Τα εγχειρίδια των εργαλείων µπορείτε να τα κατεβάσετε από τη σελίδα του µαθήµατος. Οι οδηγίες χρήσης που δίνονται παρακάτω έχουν δοκιµαστεί στη διανοµή Linux του εργαστηρίου, πιθανόν όµως να υπάρχουν µικροδιαφορές σε άλλα συστήµατα. 3.2 Τρόπος προσέγγισης της εργασίας Για τη δική σας διευκόλυνση στην κατανόηση των εργαλείων που θα χρησιµοποιήσετε καθώς και του τρόπου µε τον οποίο τα εργαλεία αυτά συνεργάζονται, προτείνουµε την υλοποίηση της εργασίας του µαθήµατος σε δύο φάσεις η φάση: Λεκτική ανάλυση Το αποτέλεσµα της λεκτικής ανάλυσης θα είναι ένα πρόγραµµα το οποίο θα παίρνει σαν είσοδο ένα πρόγραµµα της γλώσσας FhP και θα αναγνωρίζει τις λεκτικές µονάδες (tokens) στο αρχείο αυτό. Η έξοδός του θα είναι µία λίστα από τα tokens που διάβασε και ο χαρακτηρισµός τους. Για παράδειγµα, για είσοδο $i = $k + 2; η έξοδος του προγράµµατός σας θα πρέπει να είναι token ID: $i token EQUAL: = token ID: $k token ADDOP: + token INT: 2 token SEMICOLON: ; Σε περίπτωση µη αναγνωρίσιµης λεκτικής µονάδας θα πρέπει να τυπώνεται κατάλληλο µήνυµα λάθους και να τερµατίζει η λεκτική ανάλυση. Για να φτιάξετε ένα λεκτικό αναλυτή θα χρησιµοποιήσετε το εργαλείο flex και τον compiler gcc. ώστε man flex στη γραµµή εντολής για να δείτε το manual του flex. Τα αρχεία µε κώδικα του flex έχουν προέκταση.l. Για να κάνετε compile και να τρέξετε τον κώδικά σας ακολουθήστε τις οδηγίες που δίνονται παρακάτω. 1. Γράψτε τον κώδικα flex σε ένα αρχείο µε προέκταση.l, π.χ. mylexer.l. 2. Κάντε compile, γράφοντας flex mylexer.l στη γραµµή εντολής. 3. ώστε ls για να δείτε το αρχείο lex.yy.c που παράγεται από τον flex. 4. Κάντε compile το lex.yy.c µε την εντολή gcc -o mycompiler lex.yy.c lfl 5. Αν δεν έχετε λάθη στο mylexer.l, παράγεται το εκτελέσιµο mycompiler. 6. Τρέξτε το µε./mycompiler < example.fhp, για το πρόγραµµα example.fhp. Κάθε φορά που αλλάζετε το mylexer.l θα πρέπει να κάνετε όλη την διαδικασία: flex mylexer.l gcc -o mycompiler lex.yy.c -lfl./mycompiler < example.fhp Εποµένως είναι καλή ιδέα να φτιάξετε ένα script για να κάνει όλα τα παραπάνω. σελ. 10/15

11 η φάση: Συντακτική ανάλυση Το αποτέλεσµα της συντακτικής ανάλυσης θα είναι ένα πρόγραµµα το οποίο θα παίρνει σαν είσοδο ένα αρχείο της γλώσσας FhP και θα αναγνωρίζει αν αυτό το πρόγραµµα ακολουθεί τους συντακτικούς κανόνες της FhP. Στην έξοδο θα αναπαράγει τα αποτελέσµατα της λεκτικής ανάλυσης (λίστα από λεκτικές µονάδες και κατηγορίες και πιθανά λεκτικά λάθη) και στο τέλος ένα µήνυµα ότι το πρόγραµµα που δόθηκε είναι συντακτικά σωστό ή διαφορετικά ο αριθµός γραµµής όπου διαγνώσθηκε το πρώτο λάθος, το περιεχόµενο της γραµµής µε το λάθος και προαιρετικά ένα κατατοπιστικό µήνυµα διάγνωσης. Για παράδειγµα, για τη λανθασµένη είσοδο... $i = $k η έξοδος του προγράµµατός σας θα πρέπει να είναι Syntax error in line 56: $i = $k + 2 ή Syntax error in line 56: $i = $k + 2 (semicolon expected) (όπου line 56 είναι ο αριθµός της γραµµής µέσα στο αρχείο συµπεριλαµβανοµένων των γραµµών σχολίων ή εξωτερικού κώδικα.) Για να φτιάξετε ένα συντακτικό αναλυτή θα χρησιµοποιήσετε το εργαλείο bison και τον compiler gcc. ώστε man bison για να δείτε το manual του bison. Τα αρχεία µε κώδικα του bison έχουν προέκταση.y. Για να κάνετε compile και να τρέξετε τον κώδικά σας ακολουθήστε τις οδηγίες που δίνονται παρακάτω. 1. Υποθέτουµε ότι έχετε ήδη έτοιµο τον λεκτικό αναλυτή στο mylexer.l. 2. Γράψτε τον κώδικα bison σε αρχείο µε προέκταση.y, π.χ. myanalyzer.y. 3. Για να ενώσετε το flex µε το bison πρέπει να κάνετε τα εξής: a. Βάλτε τα αρχεία mylexer.l και myanalyzer.y στο ίδιο directory. b. Βγάλτε την συνάρτηση main από το flex αρχείο και φτιάξτε µια main στο bison αρχείο. Για αρχή το µόνο που χρειάζεται να κάνει η καινούρια main είναι να καλεί µια φορά την µακροεντολή του bison yyparse(). H yyparse() τρέχει επανειληµµένα την yylex() και προσπαθεί να αντιστοιχίσει κάθε token που επιστρέφει o λεκτικός αναλυτής στη γραµµατική που έχετε γράψει στο συντακτικό αναλυτή. Επιστρέφει 0 για επιτυχή τερµατισµό και 1 για λανθασµένο τερµατισµό. c. Αφαιρέστε τα defines που είχατε κάνει για τα tokens στο flex ή σε κάποιο άλλο.h αρχείο. Αυτά θα δηλωθούν τώρα στο bison αρχείο ένα σε κάθε γραµµή µε την εντολή %token. Όταν κάνετε compile to myanalyzer.y θα δηµιουργείται αυτόµατα και ένα αρχείο µε όνοµα myanalyzer.tab.h. To αρχείο αυτό θα πρέπει να το κάνετε include στο αρχείο mylexer.l και έτσι ο flex θα καταλαβαίνει τα ίδια tokens µε τoν bison. 4. Κάντε compile bison -d myanalyzer.y flex mylexer.l gcc -o mycompiler lex.yy.c myanalyzer.tab.c -lfl./mycompiler <test.fhp σελ. 11/15

12 Προσοχή! Πρέπει πρώτα να κάνετε compile το myanalyzer.y και µετά το mylexer.l γιατί το myanalyzer.tab.h γίνεται include στο mylexer.l. Κάθε φορά που αλλάζετε το mylexer.l και myanalyzer.y θα πρέπει να κάνετε όλη την διαδικασία. Είναι καλή ιδέα να φτιάξετε ένα script για όλα τα παραπάνω. 3.3 Παραδοτέο Το παραδοτέο για την εργασία του µαθήµατος θα περιέχει τα παρακάτω αρχεία: mylexer.l: To αρχείο flex. myanalyzer.y: To αρχείο bison. team.txt: Τα ονόµατα σας µε τους αριθµούς µητρώου. grammar.txt: Η γραµµατική χωρίς συµφραζόµενα που χρησιµοποιήσατε. report.pdf: Συνοπτική (δακτυλογραφηµένη) αναφορά που θα εξηγεί τις τεχνικές που χρησιµοποιήσατε και τις ιδιαιτερότητες της εργασίας σας. correctx.fhp, X=1,2,3: Σωστά (λεκτικά και συντακτικά) προγράµµατα της γλώσσας FhP (προαιρετικό). wrongx.fhp, X=1,2,3: Λανθασµένα (λεκτικά ή συντακτικά) προγράµµατα της FhP (προαιρετικό). Είναι δική σας ευθύνη να αναδείξετε τη δουλειά σας µέσα από αντιπροσωπευτικά προγράµµατα της γλώσσας FhP. Κατά τη διάρκεια της εξέτασης της εργασίας σας θα γίνουν τα εξής: Μεταγλώττιση των παραδοτέων προγραµµάτων: Ανεπιτυχής µεταγλώττιση θα σηµαίνει µεγάλη µείωση στον τελικό βαθµό της εργασίας σας. Έλεγχος εκτελέσιµου τόσο στα παραδείγµατα προγραµµάτων του Παραρτήµατος όσο και σε άλλα άγνωστα σε σας παραδείγµατα: Η καλή εκτέλεση αυτών των παραδειγµάτων θα επηρεάσει σηµαντικά το τελικό βαθµό της εργασίας σας. Έλεγχος εκτελέσιµου µε τα παραδείγµατα προγραµµάτων σε FhP που έχετε δώσει εσείς: Μόνο σε περίπτωση που θέλετε να αναδείξετε κάτι από τη δουλειά σας. Ερωτήσεις σχετικά µε την υλοποίηση και τα παραδοτέα κείµενα. Θα πρέπει να είστε σε θέση να εξηγήσετε θέµατα σχεδιασµού, επιλογών και τρόπων υλοποίησης. 4. Επίλογος Στη διάρκεια του εξαµήνου θα δοθούν διευκρινίσεις όπου χρειάζεται. Για ερωτήσεις µπορείτε να απευθύνεστε στον κ. Αργυρόπουλο. Γενικές απορίες καλό είναι να αποστέλλονται στη λίστα του µαθήµατος για να τις βλέπουν και οι συνάδελφοί σας. Καλή επιτυχία! σελ. 12/15

13 ΠΑΡΑΡΤΗΜΑ 1. Παραδείγµατα προγραµµάτων της FhP 1.1 Hello World! <html> <head> <title>fhp Test</title> </head> <body> echo "<p>hello World</p>"; </body> </html> Προτεινόµενο αποτέλεσµα λεκτικής συντακτικής ανάλυσης: Token EXTERNAL_CODE_LINE:<html> Token EXTERNAL_CODE_LINE:<head> Token EXTERNAL_CODE_LINE:<title>PHP Test</title> Token EXTERNAL_CODE_LINE:</head> Token EXTERNAL_CODE_LINE:<body> Token RESERVED_FUNCTION:echo Token STRING: <p>hello World</p> Token SEMICOLON:; Token EXTERNAL_CODE_LINE:</body> Token EXTERNAL_CODE_LINE:</html> Your program is syntactically correct! 1.2 Πρώτοι αριθµοί Το παρακάτω παράδειγµα προγράµµατος στη γλώσσα FhP είναι ένα πρόγραµµα που υπολογίζει τους πρώτους αριθµούς µεταξύ 1 και n, όπου το n καθορίζεται από το χρήστη. Λαµβάνεται υπόψη ότι οι αριθµοί 2 και 3 είναι πρώτοι, και στη συνέχεια εξετάζονται µόνο οι αριθµοί της µορφής 6k±1, όπου k ακέραιος αριθµός. function prime($n){ if ($n < 0) $result = prime(-$n); else if ($n < 2) $result = false; else if ($n == 2) $result = true; else if ($n % 2 == 0) $result = false; else { $i = 3; $isprime = true; while ( $isprime && $i <= $n / 2 ) { $isprime = ($n % $i!=0); $i = $i+2; σελ. 13/15

14 $result = $isprime; return $result; $limit = readinteger(); $counter = 0; if ($limit >= 2) { $counter = $counter + 1; echo('2 '); if ($limit >= 3) { $counter = $counter + 1; echo('3 '); $number = 6; while ($number <= $limit) { if (prime($number-1)) { $counter = $counter + 1; echo number-1; echo ' '; if (($number!= $limit) && prime($number+1){ $counter = $counter + 1; echo $number+1; echo ' '; $number = $number + 6; echo("\ntotal: "); echo $counter; 1.3 Άλλο παράδειγµα $check = "test"; $check.= $filename; if ($test == $check) { print("<html><body>"); print("you are already registered."); print("</body></html>"); else { $rated = "test"; $rated.= $filename; setcookie(test, $rated, time()+86400); <HTML><BODY><br> You are a new user so I recorded your id. </BODY></HTML> $status = getuserstatus($u); σελ. 14/15

15 switch ( $status ) { case '0' : case '1' : updatesystem(0); break; case '2' : updatesystem(0); break; default : echo "No Permissions"; 1.4 Παράδειγµα µε συντακτικό λάθος 1 <html> 2 <head> 3 <title>fhp Test</title> 4 </head> 5 <body> 6 7 // Missing parenthesis. 8 echo ("<p>hello World</p>"; 9 10 </body> 11 </html> Προτεινόµενο αποτέλεσµα λεκτικής συντακτικής ανάλυσης: Token EXTERNAL_CODE_LINE:<html> Token EXTERNAL_CODE_LINE:<head> Token EXTERNAL_CODE_LINE:<title>PHP Test</title> Token EXTERNAL_CODE_LINE:</head> Token EXTERNAL_CODE_LINE:<body> Syntax error in line 8: echo ("<p>hello World</p>; ή Syntax error in line 8: echo ("<p>hello World</p>; (Missing parenthesis) σελ. 15/15

Εργασία Προγραµµατισµού

Εργασία Προγραµµατισµού ΠΛΗ 401 ΘΕΩΡΙΑ ΥΠΟΛΟΓΙΣΜΟΥ ΧΕΙΜΕΡΙΝΟ ΕΞΑΜΗΝΟ 2006-2007 Τµήµα Ηλεκτρονικών ΠΟΛΥΤΕΧΝΕΙΟ Μηχανικών και ΚΡΗΤΗΣ Μηχανικών Υπολογιστών ΘΕΩΡΙΑ ΠΛΗ ΥΠΟΛΟΓΙΣΜΟΥ 401 Μιχαήλ ιδάσκων Γ. Λαγουδάκης Εργασία Προγραµµατισµού

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

ΕΠΛ 012. JavaScripts

ΕΠΛ 012. JavaScripts ΕΠΛ 012 JavaScripts Γλώσσα JavaScript (JS) ηµιουργεί δυναµικές ιστοσελίδες και αλληλεπιδράσεις µε το χρήστη εν είναι Java, αλλά είναι αντικειµενοστραφής (απλό µοντέλο υποκειµένων) Objects, properties (τιµές

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

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

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

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

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

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

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

Επανάληψη για τις Τελικές εξετάσεις

Επανάληψη για τις Τελικές εξετάσεις Επανάληψη για τις Τελικές εξετάσεις ( ιάλεξη 21) ιδάσκων: ηµήτρης Ζεϊναλιπούρ Εισαγωγή Το µάθηµα EPL032 έχει ως βασικό στόχο την επίλυση προβληµάτων πληροφορικής µε την χρήση της γλώσσας προγραµµατισµού

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

ΑΡΧΕΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ

ΑΡΧΕΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ ΑΡΧΕΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ Κεφάλαιο 2 Επιμέλεια: Βασίλης Παλιουράς, Αναπληρωτής Καθηγητής Ευάγγελος Δερματάς, Αναπληρωτής Καθηγητής Σταύρος Νούσιας, Βοηθός Ερευνητή Πολυτεχνική Σχολή Τμήμα Ηλεκτρολόγων Μηχανικών

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Στην ενότητα αυτή θα µελετηθούν τα εξής επιµέρους θέµατα: ΕΠΛ 131 Αρχές Προγραµµατισµού I 3-2

Στην ενότητα αυτή θα µελετηθούν τα εξής επιµέρους θέµατα: ΕΠΛ 131 Αρχές Προγραµµατισµού I 3-2 Εισαγωγή στην C Στην ενότητα αυτή θα µελετηθούν τα εξής επιµέρους θέµατα: Σύνταξη και Σηµασιολογία της C Σχολιασµός Μεταβλητές / Σταθερές Τύποι εδοµένων και Τελεστές Βιβλίο µαθήµατος: Chapter 2,, Sec.

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

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

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

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

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

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

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

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

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

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

ΠαράδειγµαΠρογραµµατισµού

ΠαράδειγµαΠρογραµµατισµού Προγραµµατισµός Η/Υ Στην ενότητα αυτή θα µελετηθούν τα εξής επιµέρους θέµατα: Μεθοδολογία Προγραµµατισµού Αφαιρετικότητα Ροή Ελέγχου/ εδοµένων Βιβλίο µαθήµατος: Chapter 1,, Sec. 4-54 ΕΠΛ 131 Αρχές Προγραµµατισµού

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

ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΜΑΘΗΜΑ 7 Ο. Αριθμητικές πράξεις Τυχαίοι αριθμοί Εφαρμογές σε προβλήματα ΣΙΝΑΤΚΑΣ Ι. ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ 2010-11 1

ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΜΑΘΗΜΑ 7 Ο. Αριθμητικές πράξεις Τυχαίοι αριθμοί Εφαρμογές σε προβλήματα ΣΙΝΑΤΚΑΣ Ι. ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ 2010-11 1 ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΜΑΘΗΜΑ 7 Ο Αριθμητικές πράξεις Τυχαίοι αριθμοί Εφαρμογές σε προβλήματα ΣΙΝΑΤΚΑΣ Ι. ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ 2010-11 1 Εισαγωγή Οι αριθμητικές πράξεις που εκτελούνται στον υπολογιστή αποτελούν το

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

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

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

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

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

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

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

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

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

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

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

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

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

Μεταγλωττιστής. Μεταφραστές. Γλώσσες. Είδη Μεταγλωττιστών. Μεταγλωττιστής Τελικό πρόγραµµα (object program) Εισαγωγή Αρχικό πρόγραµµα (source program)

Μεταγλωττιστής. Μεταφραστές. Γλώσσες. Είδη Μεταγλωττιστών. Μεταγλωττιστής Τελικό πρόγραµµα (object program) Εισαγωγή Αρχικό πρόγραµµα (source program) Μεταφραστές Εισαγωγή (source program) Τελικό πρόγραµµα (object program) Γιώργος Μανής Γλώσσες Είδη Μεταγλωττιστών Αρχική γλώσσα Γλώσσα υλοποίησης Τελική γλώσσα Απλοί µεταγλωττιστές Αντίστροφοι µεταγλωττιστές

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Τμήμα Μηχανολόγων Μηχανικών Πανεπιστήμιο Θεσσαλίας ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ Η/Υ. Δομή Επιλογής. Ιωάννης Λυχναρόπουλος Μαθηματικός, MSc, PhD Τμήμα Μηχανολόγων Μηχανικών Πανεπιστήμιο Θεσσαλίας ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ Η/Υ Δομή Επιλογής Ιωάννης Λυχναρόπουλος Μαθηματικός, MSc, PhD Δομή Επιλογής (Απόφασης) Εκτέλεση υπό συνθήκη IF THEN IF THEN ELSE IF THEN

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

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

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

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

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

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

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

Κεφάλαιο 2.1-2.4: Εισαγωγή στην C. ( ιαλέξεις 3-4) ιδάσκων: ηµήτρης Ζεϊναλιπούρ

Κεφάλαιο 2.1-2.4: Εισαγωγή στην C. ( ιαλέξεις 3-4) ιδάσκων: ηµήτρης Ζεϊναλιπούρ Κεφάλαιο 2.1-2.4: Εισαγωγή στην C ( ιαλέξεις 3-4) ιδάσκων: ηµήτρης Ζεϊναλιπούρ Περιεχόµενα Εισαγωγή στην C: Σύνταξη και Σηµασιολογία σχόλια µεταβλητές και σταθερές τύποι δεδοµένων Μετά αυτές τις δυο διαλέξεις

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

ΚΕΦΑΛΑΙΟ 2: Τύποι δεδομένων και εμφάνιση στοιχείων...33

ΚΕΦΑΛΑΙΟ 2: Τύποι δεδομένων και εμφάνιση στοιχείων...33 ΠΕΡΙΕΧΟΜΕΝΑ Πρόλογος του συγγραφέα... 13 Πρόλογος του καθηγητή Τιμολέοντα Σελλή... 15 ΚΕΦΑΛΑΙΟ 1: Εργαλεία γλωσσών προγραμματισμού...17 1.1 Γλώσσες προγραμματισμού τρίτης γεννεάς... 18 τι είναι η γλώσσα

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

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

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

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

Κεφάλαιο 5.4-5.11: Επαναλήψεις (oι βρόγχοιfor, do-while) (Διάλεξη 10) Εντολές Επανάληψης που θα καλυφθούν σήμερα

Κεφάλαιο 5.4-5.11: Επαναλήψεις (oι βρόγχοιfor, do-while) (Διάλεξη 10) Εντολές Επανάληψης που θα καλυφθούν σήμερα Κεφάλαιο 5.4-5.11: Επαναλήψεις (oι βρόγχοιfor, do-while) (Διάλεξη 10) 10-1 Εντολές Επανάληψης που θα καλυφθούν σήμερα Διάλεξη 9 - Δευτέρα while() τελεστές postfix/prefix (++, --,...) και σύνθετοι τελεστές

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

Shell Scripts: loops / if / test

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

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

Διάλεξη 1. Πράξεις Τελεστές Έλεγχος Ροής

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

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

Βασικά Στοιχεία της Java

Βασικά Στοιχεία της Java Βασικά Στοιχεία της Java Παύλος Εφραιμίδης Java Βασικά Στοιχεία της γλώσσας Java 1 Τύποι Δεδομένων Η Java έχει δύο κατηγορίες τύπων δεδομένων: πρωτογενείς (primitive) τύπους δεδομένων αναφορές Java Βασικά

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

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

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

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

Περιεχόμενα. Πρόλογος... 17

Περιεχόμενα. Πρόλογος... 17 Περιεχόμενα Πρόλογος... 17 Κεφάλαιο 1: Εισαγωγή... 19 Πώς να διαβάσετε αυτό το βιβλίο... 20 Η γλώσσα C Ιστορική αναδρομή... 22 Τα χαρακτηριστικά της C... 23 C Μια δομημένη γλώσσα... 23 C Μια γλώσσα για

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

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

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

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

Μεταφραστής (Compiler)

Μεταφραστής (Compiler) Windows Καθαρισµος οθονης cls Unix clear Τελεστες ανακατευθυνσης > > >> >> < < Εντολες σε αρχεια * * (wild card) del Α rm Α ιαγραφη type Α cat Α Εµφανιση copy Α Β cp Α Β Αντιγραφη ren Α Β mv Α Β Αλλαγη

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

Ενδεικτική περιγραφή μαθήματος

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

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

Εντολή Δεδομένα Περιεχόμενα μετά την εκτέλεση 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

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

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

Διάλεξη 5η: Εντολές Επανάληψης Διάλεξη 5η: Εντολές Επανάληψης Τμήμα Επιστήμης Υπολογιστών, Πανεπιστήμιο Κρήτης Εισαγωγή στην Επιστήμη Υπολογιστών Βασίζεται σε διαφάνειες του Κ Παναγιωτάκη Πρατικάκης (CSD) Εντολές Επανάληψης CS100, 2015-2016

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

Κεφάλαιο 2.1-2.4: Εισαγωγή στην C: (Διαλέξεις 3-4)

Κεφάλαιο 2.1-2.4: Εισαγωγή στην C: (Διαλέξεις 3-4) Κεφάλαιο 2.1-2.4: Εισαγωγή στην C (Διαλέξεις 3-4) Περιεχόμενα Εισαγωγή στην C: Σύνταξη και Σημασιολογία σχόλια μεταβλητές και σταθερές τύποι δεδομένων Μετά αυτές τις δυο διαλέξεις θα μπορείτε να γράψετε

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

Λογικό "και" (AND) μας επιστρέφει 1 αν και οι δύο operands είναι όχι μηδέν, διαφορετικά 0)

Λογικό και (AND) μας επιστρέφει 1 αν και οι δύο operands είναι όχι μηδέν, διαφορετικά 0) 0ι Λογικοί Τελεστές: Πρόκειται για τελεστές που μας επιτρέπουν να συνδυάσουμε απλές εκφράσεις συσχετισμού και να δημιουργήσουμε πιό πολύπλοκες λογικές εκφράσεις. Εχουμε λοιπόν: && Λογικό "και" (AND) μας

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

Χpήσιµες Βιβλιοθήκες της γλώσσας C

Χpήσιµες Βιβλιοθήκες της γλώσσας C Χpήσιµες Βιβλιοθήκες της γλώσσας C Στην ενότητα αυτή θα µελετηθούν τα εξής επιµέρους θέµατα: Συναρτήσεις Επεξεργασίας Συµβολοσειρών (strings) που Παρέχονται από τη Βιβλιοθήκη Συναρτήσεις Ελέγχου

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

Περιεχόµενα. 1 Εισαγωγή στις οµές εδοµένων 3. 2 Στοίβα (Stack) 5

Περιεχόµενα. 1 Εισαγωγή στις οµές εδοµένων 3. 2 Στοίβα (Stack) 5 Περιεχόµενα 1 Εισαγωγή στις οµές εδοµένων 3 2 Στοίβα (Stack) 5 i ΠΕΡΙΕΧΟΜΕΝΑ ΠΕΡΙΕΧΟΜΕΝΑ ii Πληροφορίες Εργαστηρίου Σκοπός του εργαστηρίου Το εργαστήριο οµές εδοµένων αποσκοπεί στην εφαρµογή των τεχνολογιών

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

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

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

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

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

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

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

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

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

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

6. Εισαγωγή στον προγραµµατισµό

6. Εισαγωγή στον προγραµµατισµό 6. Εισαγωγή στον προγραµµατισµό 6.1 Η έννοια του προγράµµατος. 6.2 Ιστορική αναδροµή. 6.2.1 Γλώσσες µηχανής. ΗΜ04-Θ1Α 1. Ένα πρόγραµµα σε γλώσσα µηχανής είναι µια ακολουθία δυαδικών ψηφίων. 5. Ένα πρόγραµµα

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

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

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

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

Γλώσσες Προγραμματισμού Μεταγλωττιστές. Λεκτική Ανάλυση

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

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

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

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

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

ΕΠΛ 034: Εισαγωγήστον ΠρογραµµατισµόγιαΗΜΥ

ΕΠΛ 034: Εισαγωγήστον ΠρογραµµατισµόγιαΗΜΥ ΕΠΛ 034: Εισαγωγήστον ΠρογραµµατισµόγιαΗΜΥ Αχιλλέας Αχιλλέως, Τµήµα Πληροφορικής, Πανεπιστήµιο Κύπρου Email: achilleas@cs.ucy.ac.cy Κεφάλαιο 2 ΠρογραµµατισµόςΗ/Υ Θέµατα ιάλεξης οµή Προγράµµατος C Μεθοδολογία

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

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

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

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

32-bit signed υποδιαστολής) Double διπλής ακρίβειας 64-bit signed Char unicode character 16-bit Boolean Boolean true or false

32-bit signed υποδιαστολής) Double διπλής ακρίβειας 64-bit signed Char unicode character 16-bit Boolean Boolean true or false 3. Τύποι δεδομένων - εντολές - τελεστές 3.1 Τύποι δεδομένων στην JAVA Οι τύποι δεδομένων στην JAVA είναι σαν αυτούς της C με μόνη διαφορά ότι το μέγεθός τους (σε bytes) είναι γνωστό και ίδιο σε όλες τις

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

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

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

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

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

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

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

Προγραμματισμό για ΗΜΥ

Προγραμματισμό για ΗΜΥ ΕΠΛ 34: Εισαγωγή στον Προγραμματισμό για ΗΜΥ Αχιλλέας Αχιλλέως, Τμήμα Πληροφορικής, Πανεπιστήμιο Κύπρου Email: achilleas@cs.ucy.ac.cy Κεφάλαιο 12 Πίνακες εικτών (Pointers Arrays) Θέματα ιάλεξης Στην ενότητα

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

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

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

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

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

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

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

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

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

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

Γλώσσες Προγραμματισμού Μεταγλωττιστές. Σημασιολογική Ανάλυση

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

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

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

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

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