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

Μέγεθος: 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 Μιχαήλ ιδάσκων Γ. Λαγουδάκης Εργασία Προγραµµατισµού

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

ΠΟΛΥΤΕΧΝΕΙΟ ΚΡΗΤΗΣ Τμήμα Ηλεκτρονικών Μηχανικών & Μηχανικών Υπολογιστών Τομέας Πληροφορικής

ΠΟΛΥΤΕΧΝΕΙΟ ΚΡΗΤΗΣ Τμήμα Ηλεκτρονικών Μηχανικών & Μηχανικών Υπολογιστών Τομέας Πληροφορικής ΠΟΛΥΤΕΧΝΕΙΟ ΚΡΗΤΗΣ Τμήμα Ηλεκτρονικών Μηχανικών & Μηχανικών Υπολογιστών Τομέας Πληροφορικής ΠΛΗ 401 ΘΕΩΡΙΑ ΥΠΟΛΟΓΙΣΜΟΥ Χειμερινό Εξάμηνο 2005-2006 Διδάσκων: Μιχαήλ Γ. Λαγουδάκης Προγραμματιστική Εργασία

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

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

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

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

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

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

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

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

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

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

ΔΟΜΗΜΕΝΟΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ Κεφάλαιο 8 : H γλώσσα προγραµµατισµού Pascal 1 ο Μέρος σηµειώσεων (Ενότητες 8.1 & 8.2 σχολικού βιβλίου)

ΔΟΜΗΜΕΝΟΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ Κεφάλαιο 8 : H γλώσσα προγραµµατισµού Pascal 1 ο Μέρος σηµειώσεων (Ενότητες 8.1 & 8.2 σχολικού βιβλίου) ΔΟΜΗΜΕΝΟΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ Κεφάλαιο 8 : H γλώσσα προγραµµατισµού Pascal 1 ο Μέρος σηµειώσεων (Ενότητες 8.1 & 8.2 σχολικού βιβλίου) 1. Εισαγωγή Χαρακτηριστικά της γλώσσας Τύποι δεδοµένων Γλώσσα προγραµµατισµού

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

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

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

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

Παρουσίαση του εργαλείου BISON

Παρουσίαση του εργαλείου BISON Παρουσίαση του εργαλείου BISON Γεννήτρια Συντακτικών Αναλυτών Β Φάση Συντακτική Ανάλυση Χαρακτηριστικά του bison Γεννήτρια συντακτικών αναλυτών σε C/C++. Συµβατό µε το εργαλείο του Unixyacc. Σχετικά εύκολο

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

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

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

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

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

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

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

Μεταγλωττιστές. Εργαστήριο 5. Εισαγωγή στο BISON. Γεννήτρια Συντακτικών Αναλυτών. 2 η Φάση Μεταγλώττισης Συντακτική Ανάλυση

Μεταγλωττιστές. Εργαστήριο 5. Εισαγωγή στο BISON. Γεννήτρια Συντακτικών Αναλυτών. 2 η Φάση Μεταγλώττισης Συντακτική Ανάλυση Μεταγλωττιστές Εργαστήριο 5 Εισαγωγή στο BISON Γεννήτρια Συντακτικών Αναλυτών 2 η Φάση Μεταγλώττισης Συντακτική Ανάλυση Διδάσκοντες: Δρ. Γεώργιος Δημητρίου Δρ. Άχμεντ Μάχντι 2015-1016 Φάσεις Μεταγλώττισης

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

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

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

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

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

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

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

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

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

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

Γιάννης Σαμωνάκης. 1 ο ΣΧΟΛΕΙΟ ΚΩΔΙΚΑ «Βασικά Θέματα Προγραμματισμού στην Ανάπτυξη Δυναμικών Διαδικτυακών Εφαρμογών» (Part 4 - PHP)

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Μεταγλωττιστές. Ενότητα 6: Λεκτική ανάλυση (Μέρος 2 ο ) Αγγελική Σγώρα Τμήμα Μηχανικών Πληροφορικής ΤΕ

Μεταγλωττιστές. Ενότητα 6: Λεκτική ανάλυση (Μέρος 2 ο ) Αγγελική Σγώρα Τμήμα Μηχανικών Πληροφορικής ΤΕ Μεταγλωττιστές Ενότητα 6: Λεκτική ανάλυση (Μέρος 2 ο ) Αγγελική Σγώρα Τμήμα Μηχανικών Πληροφορικής ΤΕ Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative Commons. Για εκπαιδευτικό

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

Παρουσίαση του εργαλείου BISON

Παρουσίαση του εργαλείου BISON Παρουσίαση του εργαλείου BISON Γεννήτρια Συντακτικών Αναλυτών Β Φάση Συντακτική Ανάλυση Χαρακτηριστικά του bison Γεννήτρια συντακτικών αναλυτών σε C/C++. Συµβατό µε το εργαλείο του Unix yacc. Σχετικά εύκολο

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

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

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

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

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

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

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

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

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

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

ΕΠΛ 012. JavaScripts

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

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

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

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

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

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

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

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

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

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

Εισαγωγή στην PHP. ΕΣΔ 516 Τεχνολογίες Διαδικτύου. Περιεχόμενα. Περιεχόμενα. ΕΣ 516: Τεχνολογίες ιαδικτύου. ΕΣ 516: Τεχνολογίες ιαδικτύου

Εισαγωγή στην PHP. ΕΣΔ 516 Τεχνολογίες Διαδικτύου. Περιεχόμενα. Περιεχόμενα. ΕΣ 516: Τεχνολογίες ιαδικτύου. ΕΣ 516: Τεχνολογίες ιαδικτύου ΕΣΔ 516 Τεχνολογίες Διαδικτύου Εισαγωγή στην PHP Περιεχόμενα Περιεχόμενα PHP και HTML Βασική σύνταξη Μεταβλητές Τελεστές Συναρτήσεις Παράδειγματα 1 Βιβλιογραφία Ενότητας Βιβλιογραφία [Lane 2004]: Chapter

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

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

ΔΟΜΗΜΕΝΟΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ 23 ΔΟΜΗΜΕΝΟΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ Μάθημα 2ο Τμήμα Διοίκησης Επιχειρήσεων α εξάμηνο Β. Φερεντίνος I/O 24 Βασική βιβλιοθήκη συναρτήσεων εισόδου/εξόδου #include Η συνάρτηση εξόδου printf printf("συμβολοσειρά

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

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

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

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

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

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

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

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

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

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

Η πρώτη παράμετρος είναι ένα αλφαριθμητικό μορφοποίησης

Η πρώτη παράμετρος είναι ένα αλφαριθμητικό μορφοποίησης Η συνάρτηση printf() Η συνάρτηση printf() χρησιμοποιείται για την εμφάνιση δεδομένων στο αρχείο εξόδου stdout (standard output stream), το οποίο εξ ορισμού συνδέεται με την οθόνη Η συνάρτηση printf() δέχεται

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

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

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

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

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

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

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

ΕΡΓΑΣΤΗΡΙΟ 1 ΕΙΣΑΓΩΓΗ ΣΤΗ C. Τµήµα Πληροφορικής και Τηλεπικοινωνιών

ΕΡΓΑΣΤΗΡΙΟ 1 ΕΙΣΑΓΩΓΗ ΣΤΗ C. Τµήµα Πληροφορικής και Τηλεπικοινωνιών ΕΡΓΑΣΤΗΡΙΟ 1 ΕΙΣΑΓΩΓΗ ΣΤΗ C Τµήµα Πληροφορικής και Τηλεπικοινωνιών Περιεχόµενα Εισαγωγή Πρόγραµµα Φάσεις Υλοποίησης µε χρήση του εργαλείου DEV C + + οµή Προγράµµατος Η συνάρτηση main Μεταβλητές Τι είναι

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

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

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

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

Παρουσίαση του εργαλείου FLEX

Παρουσίαση του εργαλείου FLEX Παρουσίαση του εργαλείου FLEX Γεννήτρια Λεκτικών Αναλυτών Α Φάση Λεκτική Ανάλυση Χαρακτηριστικά του flex Γεννήτρια λεκτικών αναλυτών σε C/C++ (fast lexical analyzer generator). Βασισµένο στο εργαλείο του

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

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 ο Τελεστές Γ. Σ. Τσελίκης Ν. Δ. Τσελίκας Ο τελεστής εκχώρησης = Ο τελεστής = χρησιµοποιείται για την απόδοση τιµής (ή αλλιώς ανάθεση τιµής) σε µία µεταβλητή Π.χ.

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

Εισαγωγή στην PHP. ΕΣΔ 232 Διαχείριση Δεδομένων στη Κοινωνία της Πληροφορίας. Περιεχόμενα. Περιεχόμενα

Εισαγωγή στην PHP. ΕΣΔ 232 Διαχείριση Δεδομένων στη Κοινωνία της Πληροφορίας. Περιεχόμενα. Περιεχόμενα ΕΣΔ 232 Διαχείριση Δεδομένων στη Κοινωνία της Πληροφορίας Εισαγωγή στην PHP Περιεχόμενα Περιεχόμενα PHP και HTML Βασική σύνταξη Μεταβλητές Τελεστές Συναρτήσεις Παράδειγματα 1 Βιβλιογραφία Ενότητας Βιβλιογραφία

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Προγραμματισμός Η/Υ 1 (Εργαστήριο)

Προγραμματισμός Η/Υ 1 (Εργαστήριο) Προγραμματισμός Η/Υ 1 (Εργαστήριο) Ενότητα 2: Δομή ενός προγράμματος C Καθηγήτρια Εφαρμογών: Τσαγκαλίδου Ροδή Τμήμα: Ηλεκτρολόγων Μηχανικών Τ.Ε. Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες

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

Συναρτήσεις και διαδικασίες

Συναρτήσεις και διαδικασίες Συναρτήσεις και διαδικασίες Χρήση συναρτήσεων βιβλιοθήκης Εντολή κλήσης της συνάρτησης printf: printf( Hello, world\n ); Μια συνάρτηση είναι ένα σύνολο εντολών που έχουν ομαδοποιηθεί και τους έχει αποδοθεί

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

είκτες και Πίνακες (2)

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

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

Κεφάλαιο : Επαναλήψεις (o βρόγχος While) (Διάλεξη 9) Δομές Έλεγχου Προγράμματος

Κεφάλαιο : Επαναλήψεις (o βρόγχος While) (Διάλεξη 9) Δομές Έλεγχου Προγράμματος Κεφάλαιο 5.1-5.3: Επαναλήψεις (o βρόγχος While) (Διάλεξη 9) 9-1 Δομές Έλεγχου Προγράμματος Μέχρι τώρα είδαμε τις ακόλουθες δομές έλεγχου (program control structure) ενός προγράμματος Α) Sequence π.χ. int

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

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

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

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

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

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

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

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

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

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

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

ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΥΠΟΛΟΓΙΣΤΩΝ & ΥΠΟΛΟΓΙΣΤΙΚΗ ΦΥΣΙΚΗ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΥΠΟΛΟΓΙΣΤΩΝ & ΥΠΟΛΟΓΙΣΤΙΚΗ ΦΥΣΙΚΗ Μέρος 2ο ΝΙΚΟΛΑΟΣ ΣΤΕΡΓΙΟΥΛΑΣ ΤΜΗΜΑ ΦΥΣΙΚΗΣ ΑΡΙΣΤΟΤΕΛΕΙΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΕΣΣΑΛΟΝΙΚΗΣ 1 ΣΦΑΛΜΑΤΑ ΜΕΤΑΓΛΩΤΤΙΣΗΣ Η γλώσσα C κάνει αυστηρή διάκριση μεταξύ πεζών

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

scanf() scanf() stdin scanf() printf() int float double %lf float

scanf() scanf() stdin scanf() printf() int float double %lf float Εισαγωγή Στον Προγραµµατισµό «C» Είσοδος Δεδοµένων Πανεπιστήµιο Πελοποννήσου Τµήµα Πληροφορικής & Τηλεπικοινωνιών Νικόλαος Δ. Τσελίκας Νικόλαος Προγραµµατισµός Δ. Τσελίκας Ι Η συνάρτηση scanf() Η συνάρτηση

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

TEC610 Δυναμικές Εφαρμογές Διαδικτύου (ΣΤ εξάμηνο)

TEC610 Δυναμικές Εφαρμογές Διαδικτύου (ΣΤ εξάμηνο) TEC610 (ΣΤ εξάμηνο) Διδάσκων: Ανδρέας Γιαννακουλόπουλος Εαρινό εξάμηνο Χρηματοδότηση Το παρόν εκπαιδευτικό υλικό έχει αναπτυχθεί στα πλαίσια του εκπαιδευτικού έργου του διδάσκοντα. Το έργο «Ανοικτά Ακαδημαϊκά

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

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

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

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

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

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

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

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

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

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

Η βασική συνάρτηση προγράμματος main()

Η βασική συνάρτηση προγράμματος main() Η βασική συνάρτηση προγράμματος main() HEADER FILES main(){ ΔΗΛΩΣΕΙΣ ΜΕΤΑΒΛΗΤΩΝ ΕΝΤΟΛΕΣ (σειριακές, επιλογής ή επανάληψης) ΕΠΙΣΤΡΕΦΟΜΕΝΟΣ ΤΥΠΟΣ (return 0;) Συναρτήσεις Η συνάρτηση είναι ένα υποπρόγραμμα

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

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

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

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

Κεφάλαιο 1 Εισαγωγή στη C

Κεφάλαιο 1 Εισαγωγή στη C Κεφάλαιο 1 Εισαγωγή στη C 1.1 Ιστορία της C Η γλώσσα προγραμματισμού C δημιουργήθηκε στα εργαστήρια Bell στις αρχές της δεκαετίας του 70 για να μεταφερθεί το λειτουργικό σύστημα Unix από ένα σύστημα DEC

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

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

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

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

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

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

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

Μεθόδων Επίλυσης Προβλημάτων

Μεθόδων Επίλυσης Προβλημάτων ΕΠΛ 032.3: 3: Προγραμματισμός Μεθόδων Επίλυσης Προβλημάτων Αχιλλέας Αχιλλέως, Τμήμα Πληροφορικής, Πανεπιστήμιο Κύπρου Email: achilleas@cs.ucy.ac.cy Επανάληψη για την τελική εξέταση Επανάληψη 1. Οδηγίες

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

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

ΠΑΝΕΠΙΣΤΗΜΙΟ ΙΩΑΝΝΙΝΩΝ ΑΝΟΙΚΤΑ ΑΚΑΔΗΜΑΪΚΑ ΜΑΘΗΜΑΤΑ ΠΑΝΕΠΙΣΤΗΜΙΟ ΙΩΑΝΝΙΝΩΝ ΑΝΟΙΚΤΑ ΑΚΑΔΗΜΑΪΚΑ ΜΑΘΗΜΑΤΑ Μεταφραστές Λεκτικός αναλυτής Διδάσκων: Επικ. Καθ. Γεώργιος Μανής Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative Commons.

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

Ινστιτούτο Επαγγελµατική Κατάρτιση Κορυδαλλού "ΤΕΧΝΙΚΟΣ ΣΥΣΤΗΜΑΤΩΝ ΥΠΟΛΟΓΙΣΤΩΝ" (Ερωτήσεις Πιστοποίησης στην γλώσσα προγραµµατισµού C)

Ινστιτούτο Επαγγελµατική Κατάρτιση Κορυδαλλού ΤΕΧΝΙΚΟΣ ΣΥΣΤΗΜΑΤΩΝ ΥΠΟΛΟΓΙΣΤΩΝ (Ερωτήσεις Πιστοποίησης στην γλώσσα προγραµµατισµού C) Ινστιτούτο Επαγγελµατική Κατάρτιση Κορυδαλλού "ΤΕΧΝΙΚΟΣ ΣΥΣΤΗΜΑΤΩΝ ΥΠΟΛΟΓΙΣΤΩΝ" (Ερωτήσεις Πιστοποίησης στην γλώσσα προγραµµατισµού C) ΚΑΤΑΛΟΓΟΣ ΕΡΩΤΗΣΕΩΝ ΕΡΩΤΗΣΕΙΣ ΕΙ ΙΚΩΝ ΓΝΩΣΕΩΝ (γλώσσα προγραµµατισµού

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

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

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

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

Οι εντολές ελέγχου της ροής ενός προγράμματος.

Οι εντολές ελέγχου της ροής ενός προγράμματος. Κεφάλαιο ΙΙI: Οι εντολές ελέγχου της ροής ενός προγράμματος 31 Εντολές ελέγχου της ροής Στο παρόν κεφάλαιο ασχολούμαστε με την σύνταξη των εντολών της C οι οποίες εισάγουν λογική και ελέγχουν την ροή εκτέλεσης

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

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

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

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

Ο βρόχος for Η εντολή for χρησιμοποιείται για τη δημιουργία επαναληπτικών βρόχων στη C

Ο βρόχος for Η εντολή for χρησιμοποιείται για τη δημιουργία επαναληπτικών βρόχων στη C Ο βρόχος for Η εντολή for χρησιμοποιείται για τη δημιουργία επαναληπτικών βρόχων στη C Επαναληπτικός βρόχος καλείται το τμήμα του κώδικα μέσα σε ένα πρόγραμμα, το οποίο εκτελείται από την αρχή και επαναλαμβάνεται

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

Κεφάλαιο 7 ο Βασικές Έννοιες Προγραμματισμού (σελ )

Κεφάλαιο 7 ο Βασικές Έννοιες Προγραμματισμού (σελ ) Κεφάλαιο 7 ο Βασικές Έννοιες Προγραμματισμού (σελ. 147 159) Για τις γλώσσες προγραμματισμού πρέπει να έχουμε υπόψη ότι: Κάθε γλώσσα προγραμματισμού σχεδιάζεται για συγκεκριμένο σκοπό, δίνοντας ιδιαίτερη

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

Κλάσεις και Αντικείµενα

Κλάσεις και Αντικείµενα Κλάσεις και Αντικείµενα Γρηγόρης Τσουµάκας Τµήµα Πληροφορικής, Αριστοτέλειο Πανεπιστήµιο Θεσσαλονίκης Κλάσεις και Αντικείµενα 2 Τα αντικείµενα σε µια αντικειµενοστρεφή γλώσσα προγραµµατισµού, µοντελοποιούν

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

Αντώνης Χρυσόπουλος Κατερίνα Κυπριώτη Στέλιος Μόσχογλου Θεοδόσης Σουργκούνης ΒΑΣΙΚΕΣ ΕΝΤΟΛΕΣ PHP. PHP 2: The Return of PHP Η Δευτέρα Παρουσίαση

Αντώνης Χρυσόπουλος Κατερίνα Κυπριώτη Στέλιος Μόσχογλου Θεοδόσης Σουργκούνης ΒΑΣΙΚΕΣ ΕΝΤΟΛΕΣ PHP. PHP 2: The Return of PHP Η Δευτέρα Παρουσίαση Αντώνης Χρυσόπουλος Κατερίνα Κυπριώτη Στέλιος Μόσχογλου Θεοδόσης Σουργκούνης ΒΑΣΙΚΕΣ ΕΝΤΟΛΕΣ PHP PHP 2: The Return of PHP Η Δευτέρα Παρουσίαση Παρακαλώ τι θα πάρετε? 1. Βασικές Οδηγίες 2. Μεταβλητές 3.

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

Τύποι Δεδομένων Είσοδος/Έξοδος

Τύποι Δεδομένων Είσοδος/Έξοδος Εργαστήριο 2 ο Τύποι Δεδομένων Είσοδος/Έξοδος Εισαγωγή Σκοπός του εργαστηρίου αυτού είναι η εισαγωγή μας στους τύπους δεδομένων της C και η εξοικείωση μας με συναρτήσεις του ρεπερτορίου της ANSI C σχετικές

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

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

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

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

Προγραμματισμός με FORTRAN Συνοπτικός Οδηγός Α. Σπυρόπουλος Α. Μπουντουβής

Προγραμματισμός με FORTRAN Συνοπτικός Οδηγός Α. Σπυρόπουλος Α. Μπουντουβής ΕΘΝΙΚΟ ΜΕΤΣΟΒΙΟ ΠΟΛΥΤΕΧΝΕΙΟ ΣΧΟΛΗ ΧΗΜΙΚΩΝ ΜΗΧΑΝΙΚΩΝ ΥΠΟΛΟΓΙΣΤΙΚΟ ΚΕΝΤΡΟ Προγραμματισμός με FORTRAN Συνοπτικός Οδηγός Α Σπυρόπουλος Α Μπουντουβής Αθήνα, 2015 v13_061015 Στον οδηγό αυτό θα χρησιμοποιηθούν

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

Εισαγωγή στον Προγραµµατισµό. Διάλεξη 3 η : Επίλυση Προβληµάτων Χειµερινό Εξάµηνο 2011

Εισαγωγή στον Προγραµµατισµό. Διάλεξη 3 η : Επίλυση Προβληµάτων Χειµερινό Εξάµηνο 2011 Εισαγωγή στον Προγραµµατισµό Διάλεξη 3 η : Επίλυση Προβληµάτων Χειµερινό Εξάµηνο 2011 Τελεστής σύντοµης ανάθεσης Τελεστής σύντοµης ανάθεσης (shorthand assignment operator) µεταβλητή = µεταβλητή τελεστής

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

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

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

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

Εισαγωγή στην Επιστήμη Υπολογιστών. Εισαγωγή στην Python

Εισαγωγή στην Επιστήμη Υπολογιστών. Εισαγωγή στην Python Εισαγωγή στην Επιστήμη Υπολογιστών Εισαγωγή στην Python Python scripts Ένα πρόγραμμα στην Python (συχνά αποκαλείται script) αποτελείται από μία ακολουθία ορισμών και εντολών. H ακολουθία των ορισμών και

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

HY340, 2009 Α. Σαββίδης Slide 2 / 26. HY340, 2009 Α. Σαββίδης Slide 3 / 26. HY340, 2009 Α. Σαββίδης Slide 4 / 26

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

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

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

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

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

Κεφάλαιο Αλφαριθµητικές Σειρές Χαρακτήρων (Strings)

Κεφάλαιο Αλφαριθµητικές Σειρές Χαρακτήρων (Strings) Κεφάλαιο 9.1-9.2 Αλφαριθµητικές Σειρές Χαρακτήρων (Strings) ( ιάλεξη 19) ιδάσκων: ηµήτρης Ζεϊναλιπούρ 1) Strings στη C Ένα string είναι µία ακολουθία αλφαριθµητικών χαρακτήρων, σηµείων στίξης κτλ. Π.χ.

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

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

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

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

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

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

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

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

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

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

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

Βασικά στοιχεία της Java Βασικά στοιχεία της Java προτάσεις, εκφράσεις, µεταβλητές, σταθερές, τελεστές Ορισµοί Πρόταση (statement) είναι µία απλή εντολή σε µία γλώσσα προγραµµατισµού. Γιαπαράδειγµα: int x=12; Έκφραση (expression)

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

Προγραµµατισµός Ι Εισαγωγή Πανεπιστήµιο Πελοποννήσου Τµήµα Πληροφορικής & Τηλεπικοινωνιών Προγραµµατισµός Ι Νικόλαος Δ. Τσελίκας

Προγραµµατισµός Ι Εισαγωγή Πανεπιστήµιο Πελοποννήσου Τµήµα Πληροφορικής & Τηλεπικοινωνιών Προγραµµατισµός Ι Νικόλαος Δ. Τσελίκας Εισαγωγή Πανεπιστήµιο Πελοποννήσου Τµήµα Πληροφορικής & Τηλεπικοινωνιών Νικόλαος Δ. Τσελίκας Νικόλαος Προγραµµατισµός Δ. Τσελίκας Ι Αναδροµή Σύντοµη Αναδροµή Η γλώσσα προγραµµατισµού C είναι µία γλώσσα

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

Τμήμα Πληροφορικής & Επικοινωνιών Δρ. Θεόδωρος Γ. Λάντζος

Τμήμα Πληροφορικής & Επικοινωνιών Δρ. Θεόδωρος Γ. Λάντζος Τμήμα Πληροφορικής & Επικοινωνιών Δρ. Θεόδωρος Γ. Λάντζος http://www.teiser.gr/icd/staff/lantzos lantzos@teiser.gr Κανόνες Ομαλής Λειτουργίας Ερχόμαστε στην ώρα μας Δεν καπνίζουμε και τρώμε εντός της αίθουσας

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

Κεφάλαιο 2.5: Τύποι εδοµένων, Τελεστές και Αριθµητικές Εκφράσεις. ( ιαλέξεις 5-6) ιδάσκων: ηµήτρης Ζεϊναλιπούρ

Κεφάλαιο 2.5: Τύποι εδοµένων, Τελεστές και Αριθµητικές Εκφράσεις. ( ιαλέξεις 5-6) ιδάσκων: ηµήτρης Ζεϊναλιπούρ Κεφάλαιο 2.5: Τύποι εδοµένων, Τελεστές και Αριθµητικές Εκφράσεις ( ιαλέξεις 5-6) ιδάσκων: ηµήτρης Ζεϊναλιπούρ 1 Περιεχόµενα Τύποι εδοµένων int, char, float, double Τελεστές =,+,-,*,/,% Αριθµητικές εκφράσεις

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

Κεφάλαιο 4: Μεταβλητές και εκφράσεις

Κεφάλαιο 4: Μεταβλητές και εκφράσεις Κεφάλαιο 4: Μεταβλητές και εκφράσεις Έχουμε ήδη μία αίσθηση του τι είναι μεταβλητή. Τις έχουμε ήδη χρησιμοποιήσει στο παράδειγμα του τριωνύμου ώστε να κρατήσουμε τις τιμές για τα α, β και γ, και έχουμε

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

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

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

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

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

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

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

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

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

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

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

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

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