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

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

Download "ΤΜΗΜΑ ΒΙΟΜΗΧΑΝΙΚΗΣ ΠΛΗΡΟΦΟΡΙΚΗΣ Τ.Ε.Ι ΚΑΒΑΛΑΣ ΠΤΥΧΙΑΚΗ ΕΡΓΑΣΙΑ ΘΕΜΑ: ΑΝΙΧΝΕΥΣΗ ΟΜΟΙΟΤΗΤΑΣ ΠΡΟΓΡΑΜΜΑΤΩΝ C++ ΓΕΩΡΓΟΠΟΥΛΟΣ ΑΝΤΩΝΗΣ"

Transcript

1 Τ.Ε.Ι ΚΑΒΑΛΑΣ ΤΜΗΜΑ ΒΙΟΜΗΧΑΝΙΚΗΣ ΠΛΗΡΟΦΟΡΙΚΗΣ ΠΤΥΧΙΑΚΗ ΕΡΓΑΣΙΑ ΘΕΜΑ: ΑΝΙΧΝΕΥΣΗ ΟΜΟΙΟΤΗΤΑΣ ΠΡΟΓΡΑΜΜΑΤΩΝ C++ ΓΕΩΡΓΟΠΟΥΛΟΣ ΑΝΤΩΝΗΣ ΕΠΙΒΛΕΠΩΝ: ΠΑΠΑΔΑΚΗΣ ΣΤΕΛΙΟΣ ΚΑΒΑΛΑ 2010

2 ΠΕΡΙΛΗΨΗ Το θέμα της αντιγραφής / λογοκλοπής είναι ένα φαινόμενο που εμφανίζεται συνέχεια στον ακαδημαϊκό χώρο και αποτελεί ένα από τα σημαντικότερα προβλήματα που αντιμετωπίζει το εκπαιδευτικό προσωπικό για την σωστή και ορθή αξιολόγηση των εργασιών που παραδίδονται από τους φοιτητές. Σήμερα υπάρχουν αρκετά προγράμματα που μπορούν να βοηθήσουν στην εύρεση των ομοιοτήτων, όπου το καθένα κάνει διαφορετική προσέγγιση του προβλήματος. Στην εργασία παρουσιάζεται ένας διαφορετικός τρόπος εύρεσης αντιγραφών / λογοκλοπών, του FIN (Fuzzy Interval Numbers). Στο πρώτο μέρος της εργασίας γίνεται παρουσίαση των διαφόρων προγραμμάτων ευρέσεων ομοιοτήτων, μετά γίνεται παρουσίαση της έννοιας του FIN και τέλος παρουσίαση των λεπτομερειών ανάπτυξης εφαρμογής ευρέσεως ομοιοτήτων σε προγράμματα πηγαίου κώδικα που κάνει χρήση του FIN. 1

3 ΕΥΧΑΡΙΣΤΙΕΣ Καταρχήν θα ήθελα να ευχαριστήσω τον επιβλέπων καθηγητή μου Παπαδάκη Στέλιο για την βοήθεια που μου παρείχε για την ομαλή εκπόνηση της πτυχιακής καθώς και όλους τους καθηγητές μου στο τμήμα της Βιομηχανικής πληροφορικής για τα εφόδια που μου έδωσαν. Την οικογένειά και του φίλους μου που με υποστήριξε καθ' όλη την διάρκεια της συγγραφής της πτυχιακής μου εργασίας. Επίσης θέλω να ευχαριστήσω την γραμματεία της σχολής για την γραμματειακή υποστήριξη που μου παρείχε και που βοήθησε να ξεπεραστούν όλα τα διαδικαστικά θέματα που συναντήθηκαν. Γεωργόπουλος Αντώνης 2

4 ΠΕΡΙΕΧΟΜΕΝΑ ΣΚΟΠΟΣ 4 ΣΤΟΧΟΣ 4 ΤΙ ΕΙΝΑΙ ΛΟΓΟΚΛΟΠΗ 5 FUZZY INTERVAL NUMBERS - ΑΣΑΦΗ ΣΥΝΟΛΑ ΑΡΙΘΜΩΝ 10 ΑΠΑΙΤΗΣΕΙΣ 15 ΠΡΟΔΙΑΓΡΑΦΕΣ 15 ΔΙΑΔΙΚΑΣΙΕΣ ΚΑΙ ΔΙΑΓΡΑΜΜΑΤΑ ΡΟΗΣ 16 ΠΕΡΙΓΡΑΦΗ ΚΩΔΙΚΑ 27 ΒΙΒΛΙΟΓΡΑΦΙΑ 32 3

5 Σκοπός Πολλές φορές οι σπουδαστές κάνουν χρήση πηγαίου κώδικα που το έχουν γράψει άλλοι συνάδελφοί τους, πραγματοποιώντας μερικές αλλαγές όπως αλλάζοντας τα ονόματα των μεταβλητών ή την σειρά με την οποία εμφανίζονται οι διάφορες συναρτήσεις. Συχνά αυτές οι αλλαγές δεν μπορούν να εντοπιστούν με οπτικό έλεγχο ή το μέγεθος του κώδικά κάνει αδύνατο τον έλεγχο. Για αυτό τον λόγο κρίνεται απαραίτητη η δημιουργία ενός εργαλείου που θα μπορεί βοηθήσει τον καθηγητή στην εύρεση των ομοίων πηγαίων κωδίκων. Να σημειωθεί ότι είναι εργαλείο και τα αποτελέσματα από το πρόγραμμα δεν θα πρέπει ποτέ να θεωρηθούν απόλυτα. Μπορεί να υπάρχουν κώδικες που μπορεί να είναι όμοιοι αλλά δεν σημαίνει ότι ο ένας είναι αντιγραφή του άλλου. Το πρόγραμμα μέσω σημασιολογικού και όχι λεξικογραφικού ελέγχου θα προσπαθήσει να ελέγξει και να βρει πηγαίους κώδικες που είναι όμοιοι μεταξύ τους και που μπορεί να θεωρηθούν αντιγραφή. Στόχος Για να γίνει εφικτή ο σωστός έλεγχος των αρχείων πηγαίου κώδικα θα γίνει χρήση της τεχνολογίας των FIN, που σε σχέση με την απόσταση που έχουν τα FIN του κάθε αρχείου πηγαίου κώδικα μπορούν να εντοπιστούν οι όμοιοι μεταξύ τους. Δηλαδή, θα γίνεται μία σημασιολογική έρευνα μέσα στον κώδικα για να χωριστεί σε σημασιολογικές έννοιες και μετά βάση των αποτελεσμάτων της έρευνας θα εξάγεται το FIN του κάθε αρχείου. Υπολογίζοντας την απόσταση των FIN μεταξύ τους μπορούμε να διαπιστώσουμε ποιοι πηγαίοι κώδικες μπορούν να θεωρηθούν όμοιοι μεταξύ τους. 4

6 Τι είναι λογοκλοπή Λογοκλοπή είναι η ηθελημένη ή αθέμιτη αναπαραγωγή (αντιγραφή, παράφραση, προσαρμογή κτλ) δουλειάς που έχει παραχθεί από άλλο πρόσωπο χωρίς την απαιτούμενη αναγνώριση με σκοπό την ακαδημαϊκό συμφέρον. Επιτρέποντας θεμιτά ή αθέμιτα τέτοια αναπαραγωγή να συμβεί μπορεί επίσης να θεωρηθεί λογοκλοπή. Τι είναι Λογοκλοπή εαυτού Λογοκλοπή εαυτού συμβαίνει όταν ένας φοιτητής επαναχρησιμοποιήσει μέρος ή ολόκληρη εργασία που προηγουμένως είχε δοθεί για ακαδημαϊκή βαθμολογία και την παραδίδει σαν μέρος μίας άλλης εργασίας Παραδείγματα για το πως οι φοιτητές διαπράττουν λογοκλοπή Σε φυσική γλώσσα (έκθεση) εργασία, οι φοιτητές είναι υποχρεωμένοι να αναγνωρίσουν την πηγή και την και να αναφέρουν το συγγραφέα του υλικού που δεν είχε αρχικά συγγραφεί από αυτούς, χρησιμοποιώντας εισαγωγικά όπου είναι σωστό και ορθό αναφοράς. Εδώ αναφέρονται μερικά παραδείγματα λογοκλοπής σε εκθέσεις. Αντιγραφή δουλειάς ενός άλλου φοιτητή (ή μέρος αυτής) και παραδίδοντάς την σαν δική τους. Ένας φοιτητής που επιτρέπει έναν άλλο φοιτητή να αντιγράψει την δουλειά τους είναι επίσης υποκείμενος για λογοκρισία. Αντιγράφοντας υλικό από μία ή περισσότερες πηγές χωρίς ορθή αναγνώριση. Παραφράζοντας κείμενο από μία ή περισσότερες πηγές χωρίς την σωστή απαιτούμενη ένδειξη και αναγνώριση. Κλέβοντας κάποιου άλλου δουλειά και παραδίδοντάς την σαν δική τους. Βάζοντας κάποιον άλλο να κάνει την δουλειά, ή αγοράζοντας μία έκθεση από μία τράπεζα εκθέσεων στο διαδίκτυο. 5

7 Επαναπαράδοση εργασίας που είχε παλιά κατατεθεί για ακαδημαϊκή βαθμολογία. Συνεργασία μεταξύ δύο ή περισσοτέρων φοιτητών για να φτιάξουν μία εργασία όταν δεν επιτρέπεται. Παραδείγματα για το πως οι φοιτητές διαπράττουν λογοκλοπή σε προγράμματα υπολογιστών Σε εργασίες πηγαίου κώδικα, οι φοιτητές ζητούνται να αναγνωρίσουν την πηγή και πατρότητα του πηγαίου κώδικα που δεν είχε αρχικά εκδοθεί από αυτούς, μέσα στον κώδικα (σαν σχόλιο) και στην απαιτούμενη βιβλιογραφία. Παρακάτω αναφέρονται μερικά παραδείγματα λογοκλοπής σε κώδικα πηγής εργασίες που αναγνωρίστηκαν από τους Cosma και Joy (2006). Αναπαραγωγή/αντιγραφή πηγαίου κώδικα χωρίς να γίνουν αλλαγές και παροχή ορθή αναγνώρισης. Ελάχιστα ή μέτρια προσαρμογή πηγαίου κώδικα που έχει συγγραφεί από κάποιον άλλο χωρίς την παροχή ορθή αναγνώρισης. Μετατρέποντας ολόκληρο ή μέρος ενός άλλου πηγαίου κώδικα σε όμοια προγραμματιστική γλώσσα. Χρησιμοποιώντας προγράμματα που παράγουν κώδικα για την δημιουργία κώδικα χωρίς την παροχή αναγνώρισης αυτής της πληροφορίας Πληρώνοντας κάποιον άλλο να φτιάξει το πρόγραμμα. Συνεργασία με κάποιον άλλο φοιτητή για όταν αυτό δεν επιτρέπεται. Προγράμματα ανάλυσης κειμένου Παρακάτω αναφέρονται μερικά προγράμματα που μπορούν να χρησιμοποιηθούν για να βρουν αντιγραφή / λογοκλοπή σε απλό κείμενο (όπως εκθέσεις) 6

8 Εμπορικά εργαλεία Turnitin είναι μία υπηρεσία ανίχνευσης αντιγραφής/λογοκλοπής στο διαδίκτυο, που ηλεκτρονικά ελέγχει εργασίες φοιτητών με άλλες ηλεκτρονικές πηγές συμπεριλαμβάνοντας εργασίες άλλων φοιτητών. Είναι η επίσημη υπηρεσία ευρέσεως λογοκλοπής του JISC (Joint Information Systems Committee). MyDropBox είναι μία σουίτα από εργαλεία στο διαδίκτυο που περιέχει ένα σύστημα εντοπισμού λογοκλοπής, ένα εργαλείο για σημείωση και σχολιασμό. CopyCatch Gold χρησιμοποιείται σε πολλά εκπαιδευτικά ιδρύματα για πολλά χρόνια. Στοχεύει περισσότερο σε εύρεση συμπαιγνίας. Το CopyChecker, που έρχεται δωρεάν μαζί με το CopyCatch Gold, είναι σχεδιασμένο να χρησιμοποιείτε από του φοιτητές για να μάθουν το πως να χρησιμοποιούν πηγές κατάλληλα. Essay Verification Engine (EVE ) Είναι ένα εργαλείο που βρίσκεται στο Διαδίκτυο από την CaNexus που συγκρίνει εργασίες φοιτητών με άλλες σελίδες και επιστρέφει δεσμούς από τους οποίους οι φοιτητές μπορεί να έχουν λογοκοπήσει. Το Eve δεν είναι δωρεάν υπηρεσία. Glatt Plagiarism Screening Program είναι λογισμικό ευρέσεων λογοκλοπής διαθέσιμο για αγορά μόνο σε CD. Αποθηκεύει πληροφορίες για το ύφος σύνταξης του κάθε φοιτητή και χρησιμοποιεί αυτή την πληροφορία για να καθορίσει αυτούς που έχουν διαπράξει λογοκλοπή από τους μη. Αυτό το λογισμικό μπορεί να είναι χρήσιμο σε περιπτώσεις όπου η αρχική πηγή δεν μπορεί να βρεθεί. Δωρεάν Εργαλεία PRAISE (Plotted Ring of Analysed Information for Similarity Exploration) Είναι δωρεάν εργαλείο για εντοπισμό ομοιοτήτων μεταξύ εγγράφων. Το PRAISE λειτουργεί μαζί με το VAST και ζευγάρια 7

9 από όμοια έγγραφα που έχουν ανιχνευτεί από το PRAISE μπορούν να διαλεχτούν για περαιτέρω ερεύνα στο VAST. VAST είναι ένα δωρεάν λογισμικό που δημιουργεί διαδραστικές οπτικοποίησεις για να μπορεί κάποιος να δει ομοιότητες μεταξύ δύο εγγράφων. Είναι σχεδιασμένο να χρησιμοποιείτε με άλλα εργαλεία εντοπισμού για να βοηθήσει στην έρευνα για το μέγεθος και την βαρύτητα της ομοιότητας που έχει εντοπιστεί από εργαλεία όπως το PRAISE. Εργαλεία εύρεσης ομοιοτήτων σε πηγαίο κώδικα Παρακάτω αναφέρονται τα διασημότερα προγράμματα ευρέσεως ομοιοτήτων για πηγαίο κώδικα. JPlag υπόσχεται να βρει ομοιότητες μεταξύ πολλαπλών αρχείων πηγαίου κώδικα. Το JPlag αναπτύχθηκε από τον Guido Malpohl το Τώρα υποστηρίζει Java, C#, C, C++, Scheme και κείμενο φυσικής γλώσσας. Το JPlag είναι δωρεάν αλλά οι χρήστες του χρειάζεται να δημιουργήσουν έναν λογαριασμό. Το JPlag χρησιμοποιεί μία παραλλαγή του αλγορίθμου σύγκρισης Karp-Rabin που αναπτύχθηκε από την Wise, αλλά έχουν προστεθεί διάφορες βελτιστοποιήσεις για να βελτιώσει την αποδοτικότητα του χρόνου εκτέλεσης. MOSS (Measure Of Software Similarity) αναπτύχθηκε από τον Alex Aiken το Το MOSS ψάχνει ομοιότητες σε διαφορετικές γλώσσες προγραμματισμού όπως: C, C++, Java, Pascal, Ada, ML, Lisp, και Scheme. Το MOSS είναι δωρεάν αλλά οι χρήστες πρέπει να δημιουργήσουν έναν λογαριασμό. ΤΟ PMD είναι ένα ανοιχτού κώδικα εργαλείο που παρέχει ένα ανιχνευτή Αντιγραφής/Επικόλλησης (Copy/Paste Detector CPD) για να βρίσκει πιστό αντίγραφο κώδικα και χρησιμοποιεί τον Karp-Rabin αλγόριθμο. Λειτουργεί με Java, JSP, C, C++, Fortan και PHP κώδικες. Επίσης παρέχει καθοδήγηση για το πως μπορούν να προστεθούν άλλες γλώσσες προγραμματισμού στο εργαλείο. Σε αντίθεση με τα JPlag, MOSS, και Sherlock αυτό το εργαλείο δεν στοχεύει αποκλειστικά στο να βρίσκει ομοιότητες σε 8

10 εργασίες φοιτητών αλλά λειτουργεί καλά εάν χρησιμοποιηθεί. Ομοίως με το Jplag, το CPD χρησιμοποιεί μία διαφοροποίηση του Karp-Rabin αλγορίθμου ανεπτυγμένου από την Wise. Οι σχεδιαστές του PMD παρέχουν άριστη υποστήριξη και τεκμηρίωση για το εργαλείο. Επειδή είναι ένας ανιχνευτής αντιγραφής κώδικα, αυτό το εργαλείο ψάχνει τα αρχεία για ίδιο κώδικα, επιστρέφοντας κώδικα που είναι ίδιος μέσα στο ίδιο το αρχείο. Αλλά, είναι επιτυχές στο να επιστρέφει όμοιο κώδικα που βρίσκεται σε διαφορετικά αρχεία και μπορεί να χρησιμοποιηθεί σαν εργαλείο για να ελέγχει ομοιότητες σε πηγαίου κώδικα αρχεία. CodeMatch είναι ένας εμπορικός ανιχνευτής πηγαίου κώδικα που ισχυρίζεται ότι έχει καλύτερο αλγόριθμο σε σχέση με τα προαναφερθέντα προγράμματα. Το CodeMatch αυτή την στιγμή υποστηρίζει της παρακάτω γλώσσες προγραμματισμού: Basic, C, C++, C#, Delphi, Flash ActionScropt, Java, JavaScript, MASM, Pascal, Perl, PHP, PowerBuilder, Ruby, SQL, Verilog και VHDL. 9

11 Fuzzy Interval Numbers - Ασαφή Σύνολα Αριθμών FIN (Fuzzy Interval Numbers) στα ελληνικά Ασαφή Σύνολα Αριθμών μοιάζουν με ασαφή σύνολα αλλά δεν είναι ασαφή σύνολα. Τα FIN παρουσιάστηκαν από τον Κύριο Καμπουρλάζο σαν εργαλεία για την μοντελοποίηση περίπλοκων συστημάτων. Γενικευμένα σύνολα Ένα γενικευμένο σύνολο του ύψους h((0,1]) είναι μία χαρτογράφηση που δίνεται από 1. Αν x 1 < x 2 (θετικά γενικευμένο σύνολο) τότε h [ x 1, x ] h, x1 x x2 ( x) ώ 0, 2. Αν x 1 > x 2 (αρνητικά γενικευμένο σύνολο) τότε h [ x 1, x ] h, x1 x x2 ( x) ώ 0, 3. Αν x 1 = x 2 (εκφυλισμένο γενικευμένο σύνολο) τότε { h, h} x 1 ( x) 0, διαφορετικά x [ x h 1, x ] Το σύνολο από όλα τα γενικευμένα θετικά σύνολα του ύψους h υποδηλώνεται από από όλα τα αρνητικά γενικευμένα σύνολα από h M h M, το σύνολο, το σύνολο από όλα τα εκφυλισμένο γενικευμένα σύνολα από h M 0 και το σύνολο από όλων των γενικευμένων συνόλων από M h M h - M h 0 M h. Δύο συναρτήσεις, που πρόκειται να χρησιμοποιηθούν αργότερα,ορίζονται: Συνάρτηση support χαρτογραφεί ένα γενικευμένο σύνολο στο αντίστοιχα συμβατικό σύνολο, support([x 1,x 2 ] h )= [x 1,x 2 ] για θετικά, support([x 1,x 2 ] h )= [x 2, x 1 ] για αρνητικά και support([x 1,x 2 ] h )= {x 1 } για εκφυλισμένο γενικευμένο σύνολα. Συνάρτηση sign: M h { 1,0, 1} χαρτογραφεί ένα θετικά γενικευμένο σύνολο στο +1, ένα αρνητικά γενικευμένο σύνολο στο -1 και ένα εκφυλισμένο γενικευμένο σύνολο στο 0. 10

12 Fuzzy Interval Numbers: Ορισμός και Ερμηνεία Ένα θετικό Fuzzy Interval Number (FIN) είναι μία συνεχόμενη συνάρτηση F: ( 0, 1} h M σύνολο από όλους τους θετικούς FIN υποδηλώνεται από F +. Ομοίως υποδηλώνονται τα εκφυλισμένα και αρνητικά FINs.. Το Έστω έναν πληθυσμό (ένα διάνυσμα) x = [x 1,x 2,,x N ] από πραγματικούς αριθμούς, ταξινομημένους σε αύξουσα σειρά, ένα FIN μπορεί να υπολογιστεί εφαρμόζοντας τον CALFIN αλγόριθμο που δίδεται παρακάτω. Στο παρακάτω σχέδιο παρουσιάζεται ένα FIN, υπολογισμένο από τον πληθυσμό 86 τιμών. Έστω ένα FIN, ένα «κόψιμο» σε ένα δεδομένο ύψος h ((0,1 ]) ορίζει έναν γενικευμένο σύνολο, υποδηλωμένο από F(h). Στο σχέδιο παρακάτω, F(0,25) είναι το γενικευμένο σύνολο[a,b] 0,25 αναπαριστώμενο από Oacbdx. Ένα επακόλουθο του αλγόριθμου CALFIN είναι το επόμενο: Έστω F(1) = {m 1 }, περίπου Ν/2 από τις τιμές είναι μικρότερες από m 1 και Ν/2 είναι μεγαλύτερες από m 1. Έστω ότι F(0,5) = [p 1/2,q 1,2 ] 0,5, περίπου Ν/4 των τιμών του x βρίσκονται μέσα στο [p 1/2,m 1 ] και Ν/4 στο [m 1,q 1/2 ]. Γενικότερα: για κάθε h ((0,1]) περίπου 100(1-h)% από τις Ν τιμές του x βρίσκονται μέσα στην support(f(h)). 11

13 Αλγόριθμος CALFIN Έστω ένα διάνυσμα από πραγματικούς αριθμούς x = [x 1,x 2,..,x N ] έτσι x 1 x... 2 x n. Ένα FIN μπορεί να κατασκευαστεί από τον παρακάτω αλγόριθμο CALFIN, όπου dim(x) υποδηλώνει την διάσταση του διανύσματος π.χ. dim([2,-1])= 2, dim([-3,4,0,-1,7]) = 5 κοκ. 1. Έστω x ένα διάνυσμα από πραγματικούς αριθμούς 2. Ταξινόμησε κατά αύξουσα σειρά τους αριθμούς στο διάνυσμα x. 3. Αρχικά διάνυσμα pts είναι κενό. 4. Συνάρτηση calfin(x){ 5. while (dim(x) 1) 6. medi := median(x) 1 7. Εισήγαγε medi μέσα στον διάνυσμα pts 8. x_left := στοιχεία μέσα στο διάνυσμα x που είναι μικρότερα από τον αριθμό του median(x) 9. x_right := στοιχεία μέσα στο διάνυσμα x που είναι μεγαλύτερα από τον αριθμό του median(x) 10. calfin(x_left) 11. calfin(x_right) 12. endwhile 13. }//function calfin(x) 14. Ταξινόμησε το διάνυσμα pts κατά αύξουσα σειρά 15. Αποθήκευσε στο διάνυσμα val, dim(pts)/2 αριθμούς από το 0 μέχρι το 1 με βήμα 2/dim(pts) ακολουθούμενο από άλλο ένα dim(pts)/2 αριθμούς από το 1 μέχρι το 0 με βήμα 2/dim(pts) 1 O median(x) του διανύσματος x = [x1,x2,..,xn] ορίζεται έτσι ώστε να είναι ένας αριθμός όπου οι μισοί αριθμοί του Ν, [x1,x2,..,xn ] να είναι μικρότεροι από το median (x) και οι άλλοι μισοί αριθμοί να είναι μεγαλύτεροι από το median(x). Για παράδειγμα, ο median(x1,x2,x3) με x1 x.x 2 3 ισούται με x x2, ενώ ο median(x1,x2,x3,x4) με 1 x2. x3 x4 υπολογίζεται median(x1,x2,x3,x4) = (x2 + x3,)/2. 12

14 FIN απεικόνιση πηγαίου κώδικα Η απεικόνιση του πηγαίου κώδικα σε FIN γίνεται ακολούθως. Πρώτα από όλα πρέπει να γίνει ένα σημασιολογικός διαχωρισμός του κώδικά. Πρέπει να διαχωριστούν όλα τα στιγμιότυπα τύπου (Token) που υπάρχουν μέσα στον κώδικα. Στιγμιότυπο τύπου μπορεί να είναι: 1. Τελεστές π.χ. +, -, <<,? κτλ 2. Οποιοσδήποτε συνδυασμός από αριθμούς και γράμματα που μπορεί να θεωρηθεί σωστός από τον μεταγλωττιστή πχ int, cout, for, i, ChAr1 3. Εισαγωγές βιβλιοθηκών όπως #include <iostream> αλλά το #include θεωρείται από μόνο του ένα στιγμιότυπο τύπου και οτιδήποτε περιέχεται μέσα < > θεωρείται ξεχωριστό στιγμιότυπο τύπου. 4. Οι αριθμοί π.χ. 15, 2005, Όλοι οι ορμαθοί χαρακτήρα θεωρούνται στιγμιότυπα τύπου πχ Hello World Όλα τα σχόλια παραλείπονται δηλαδή οτιδήποτε μετά από // και μεταξύ /* */. Αφότου γίνει ο διαχωρισμός όλως των στιγμιότυπων τύπου γίνεται απαρίθμηση των επαναλήψεων τους μέσα στον κώδικα. Έστω ο παρακάτω κώδικας: #include <iostream.h> main () { int a = 5, b = 2; for (int i = 0; i < 10; i++) cout << (a + b + i) << endl; cout << Hello World << endl; } 13

15 Τα στιγμιότυπα τύπου του κώδικα είναι τα εξής: #include ( ) + ++, ; < << <iostream.h> = a b cout endl for i int main { } Hello World Αφού γίνει η απαρίθμηση του κάθε στιγμιότυπο θα γίνει εφαρμογή του αλγορίθμου CALFIN πάνω στα αποτελέσματα. 14

16 Απαιτήσεις Token Δημιουργία Token Διαχωρισμός σημασιολογικών εννοιών Διαχωρισμός Token FIN Δημιουργία FIN Γραφική απεικόνιση FIN Επέκταση FIN Προδιαγραφές Δημιουργία FIN Σύνθεση FIN Σύνθεση Σημείων FIN Επέκταση FIN Εκτύπωση Fin Εύρεση τελεστή Εύρεση διπλού τελεστή: Εύρεση Token Αποθήκευση Token 15

17 Διαδικασίες και Διαγράμματα Ροής Create_Fin Είσοδος: Το αρχείο πηγαίου κώδικα Έξοδος: To Fin του αρχείου. Προδιαγραφή: Δημιουργία Fin του προγράμματος. Η Create_Fin χωρίζει τον πηγαίο κώδικα σε token. Καλεί όποτε χρειάζεται την Save_Token για αποθηκεύσει το token που έχει βρει. Στο τέλος συνθέτει τον Fin καλώντας την MakeFin. Διάγραμμα Ροής 16

18 MakeFIN Είσοδος: Πίνακας με τους αριθμούς συχνότητας του κάθε Token. Έξοδος: Ο Fin του προγράμματος Προδιαγραφή: Δημιουργία Fin. Η MakeFIN καλεί την MakeFINPts για να δημιουργήσει τα x της γραφικής παράστασης του πηγαίου κώδικα και στην συνέχεια συμπληρώνει τα y. Διάγραμμα Ροής 17

19 makefinpts Είσοδος: Πίνακας με τους αριθμούς συχνότητας του κάθε Token. Έξοδος: Προδιαγραφή: Δημιουργία Fin. Η makefinpts κάνει χρήση του αλγόριθμου CALFIN για να δημιουργήσει τα x της γραφικής παράστασης του FIN του πηγαίου κώδικα. Διάγραμμα Ροής 18

20 ExpandFIN Είσοδος: Τον FIN που πρέπει να αλλαχθεί, Το μέγιστο μήκος FIN Έξοδος: Ο καινούργιος FIN Προδιαγραφή: Επέκταση FIN. H ExpandFIN καλείται όταν υπάρχουν FIN με διαφορετικό μήκος, όπου συμπληρώνει τα ενδιάμεσα στοιχεία που λείπουν από τον μικρότερα FIN σε σχέση με τον μεγαλύτερο, για να γίνει σωστά η σύγκριση μεταξύ τους. Διάγραμμα Ροής 19

21 CallCreateFin Είσοδος: Πίνακας με τα αρχεία προς έλεγχο. Έξοδος:- Προδιαγραφή: Δημιουργία FIN. Η CallCreateFin καλείται καλεί την CreateFIN για να συνθέσει τον FIN του κάθε αρχείου, στην συνέχεια αν χρειάζεται επεκτείνει τους μικρότερου μήκους FIN στον μεγαλύτερο με την ExpandFIN. Τέλος εκτυπώνει τον FIN στο Excel. Διάγραμμα Ροής 20

22 PublishFin Είσοδος: Τα FIN του κάθε πηγαίου κώδικα. Έξοδος: Γραφικές παραστάσεις στο Excel Προδιαγραφή: Γραφική απεικόνιση του κάθε FIN. H PublishFin δημιουργεί την γραφική απεικόνιση του κάθε FIN στο Excel Διάγραμμα Ροής: 21

23 MakeRange: Είσοδος: Οι γραμμές και οι στήλες στο Excel: Έξοδος: Το εύρος τιμών του διαγράμματος στο Excel Προδιαγραφή: Γραφική απεικόνιση του κάθε FIN. Η MakeRange καλείται για να δημιουργήσει το εύρος τιμών του διαγράμματος στο Excel. Διάγραμμα Ροής: 22

24 Save_Token Είσοδος: Το Token που έχει βρεθεί Έξοδος; - Προδιαγραφή: Διαχωρισμός Token. Η Save_Token αποθηκεύει τα token που βρίσκονται σε έναν vector και παράλληλα απαριθμεί την συχνότητα εμφάνισής τους. Διάγραμμα Ροής 23

25 isoperator: Είσοδος: Χαρακτήρας από το αρχείο πηγαίου κώδικα. Έξοδος: Αληθές η Ψευδές Απαίτηση: Δημιουργία Token Προδιαγραφή: Διαχωρισμός σημασιολογικών εννοιών Η isoperator ελέγχει αν ένας χαρακτήρας είναι operator ή όχι και επιστρέφει το ανάλογο αποτέλεσμα. Διάγραμμα Ροής 24

26 isdoperator: Είσοδος: Χαρακτήρας από το αρχείο πηγαίου κώδικα. Έξοδος: Αληθές η Ψευδές Προδιαγραφή: Διαχωρισμός σημασιολογικών εννοιών H isdoperator ελέγχει αν ένας συνδυασμός χαρακτήρων είναι διπλός operator ή όχι και επιστρέφει το ανάλογο αποτέλεσμα. Διάγραμμα Ροής 25

27 FindToken Είσοδος: Αρχή Πίνακα, Τέλος Πίνακα, Τιμή αναζήτησης. Έξοδος: Θέση αναζητούμενης τιμής. Προδιαγραφή: Διαχωρισμός Token Η FindToken ψάχνει να βρει το ζητούμενο Token. Αν δεν το βρει επιστρέφει την πρώτη θέση του πίνακα. Διάγραμμα Ροής 26

28 Περιγραφή Κώδικα Στην συγκεκριμένη εφαρμογή του FIN μετράμε την συχνότητα εμφάνισης του κάθε token που υπάρχει μέσα στον πηγαίο κώδικα C++. Τα token που το πρόγραμμα έχει φτιαχτεί να αναγνωρίζει είναι: όλοι οι τελεστές της C++, οποιοσδήποτε συνδυασμός γραμμάτων ή αριθμών που θα μπορούσε να θεωρηθεί μεταβλητή, αριθμός, όνομα συνάρτησης κτλ. Όλα τα σχόλια παραλείπονται δηλαδή ότι βρίσκεται μετά από // ή ενδιάμεσα /* */, τα κενά και οι αλλαγές γραμμής. Μερικά παραδείγματα token: Void, int, double Giwrgos5, x, antwnhs, prgmxptn ++, -, >, (, ; 185, 0,.567, c, \n #include, <iostream.h> «Hello World» Στην συνέχεια δημιουργείται ένας πίνακας με τις συχνότητες εμφάνισης του κάθε Token, παραδείγματος χάριν για τον παρακάτω κώδικα #include <iostream.h> main () { int a = 5, b = 2; for (int i = 0; i < 10; i++) } cout << (a + b + i) << endl; 27

29 Μετά τον χωρισμό token θα δημιουργηθεί ο παρακάτω πίνακας. #include 1 ( 3 ) , ; 4 < 1 << 2 <iostream.h> 1 = 3 a 2 b 2 cout 1 endl 1 for 1 i 4 int 2 main 1 { 1 } 1 28

30 Στην συνέχεια γίνεται εφαρμογή του αλγόριθμου CALFIN στον παραπάνω πίνακα και δημιουργείται η παρακάτω γραφική παράσταση. Κώδικας 1 1,2 1 0,8 0,6 Κώδικας 1 0,4 0, Η χρησιμότητα των FIN μπορεί να γίνει περισσότερο ευδιάκριτη στο παρακάτω παράδειγμα. Έστω ότι έχουμε δύο κώδικες, ο πρώτος είναι κώδικας που έχουμε αναφέρει παραπάνω (Κώδικας 1) και παρακάτω παραθέτουμε έναν παρόμοιο κώδικα. #include <iostream.h> main() { int timh1 = 5, timh2 = 2; for (int step=0;step<10;step++) cout<<(timh1+timh2+step)<<endl; } Θα μπορούσαμε να εξάγουμε το συμπέρασμα ότι αυτοί οι δύο κώδικες είναι διαφορετικοί μεταξύ τους, αλλά αν γίνει εφαρμογή του προγράμματος στους δύο κώδικες θα τα καταλήξουμε με τους εξής πίνακες συχνοτήτων. 29

31 Πίνακες συχνοτήτων Κώδικας 1 #include 1 #include 1 ( 3 ( 3 ) 3 ) , 1, ; 4 ; 4 < 1 < 1 << 2 << 2 <iostream.h> 1 <iostream.h> 1 = 3 = 3 a 2 cout 1 b 2 endl 1 cout 1 for 1 endl 1 int 2 for 1 main 1 i 4 step 4 int 2 timh1 2 main 1 timh2 2 { 1 { 1 } 1 } 1 30

32 Μετά την εφαρμογή και στους δύο πίνακες εμφάνισης συχνοτήτων του κάθε κώδικα του αλγορίθμου CALFIN παίρνουμε τις παρακάτω γραφικές παραστάσεις 1,2 1 0,8 0,6 Κώδικας 1 Κώδικας 2 0,4 0, Ενώ στην αρχή φαίνεται ότι οι δύο κώδικες είναι διαφορετικοί μεταξύ τους, στο φαίνεται ότι είναι όμοιοι, απλά έχουν διαφορετική σύνταξη. Η εφαρμογή των FIN στην ανίχνευση ομοίων πηγαίων κωδίκων, έχει ακαδημαϊκό ενδιαφέρον γιατί μπορεί να χρησιμοποιηθεί από το εκπαιδευτικό προσωπικό για τυχόν αντιγραφές που μπορεί να έχουν κάνει οι φοιτητές. Να σημειωθεί ότι τα αποτελέσματα της εφαρμογής πότε δεν μπορούν να χρησιμοποιηθούν σαν απόδειξη ότι ένας ή περισσότεροι πηγαίοι κώδικες είναι αντιγραφή μεταξύ τους. Η εφαρμογή έχει περισσότερο ρόλο να λειτουργήσει ως ένα εργαλείο για το εκπαιδευτικό προσωπικό στην ένδειξη πιθανών αντιγραφών. 31

33 Βιβλιογραφία Ιστότοποι Άρθα BCI07.pdf 32

34 Εφαρμογές Word 2003 Κειμενογράφος Εργασίας Smart Draw 2010 Δημιουργία Διαγραμμάτων Ροής Excel 2003 Παρουσίαση Γραφικών Παραστάσεων Borland C++ Builder 6 Ανάπτυξη Κώδικα 33

Πληροφορική 2. Γλώσσες Προγραμματισμού

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

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

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

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

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

Πληροφορική 2. Αλγόριθμοι

Πληροφορική 2. Αλγόριθμοι Πληροφορική 2 Αλγόριθμοι 1 2 Τι είναι αλγόριθμος; Αλγόριθμος είναι ένα διατεταγμένο σύνολο από σαφή βήματα το οποίο παράγει κάποιο αποτέλεσμα και τερματίζεται σε πεπερασμένο χρόνο. Ο αλγόριθμος δέχεται

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

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

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

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

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

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

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

Δομημένος Προγραμματισμός

Δομημένος Προγραμματισμός Ανοικτά Ακαδημαϊκά Μαθήματα στο ΤΕΙ Ιονίων Νήσων Δομημένος Προγραμματισμός Ενότητα 1: Εισαγωγή Το περιεχόμενο του μαθήματος διατίθεται με άδεια Creative Commons εκτός και αν αναφέρεται διαφορετικά Το έργο

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

ΚΕΦΑΛΑΙΟ 6. Περιβάλλοντα Ανάπτυξης Εφαρμογών. ΚΕΦΑΛΑΙΟ 6 Περιβάλλοντα Ανάπτυξης Εφαρμογών. Α Γενικού Λυκείου

ΚΕΦΑΛΑΙΟ 6. Περιβάλλοντα Ανάπτυξης Εφαρμογών. ΚΕΦΑΛΑΙΟ 6 Περιβάλλοντα Ανάπτυξης Εφαρμογών. Α Γενικού Λυκείου 49 Διδακτικές ενότητες 6.1 Γλώσσες και εργαλεία προγραμματισμού 6.2 Σύγχρονα προγραμματιστικά περιβάλλοντα Διδακτικοί στόχοι Σκοπός του κεφαλαίου είναι οι μαθητές να κατανοήσουν την ανάγκη ύπαρξης τόσο

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

Ελληνική Δημοκρατία Τεχνολογικό Εκπαιδευτικό Ίδρυμα Ηπείρου. Πληροφορική II. Ενότητα 3 : Γλώσσες προγραμματισμού. Δρ.

Ελληνική Δημοκρατία Τεχνολογικό Εκπαιδευτικό Ίδρυμα Ηπείρου. Πληροφορική II. Ενότητα 3 : Γλώσσες προγραμματισμού. Δρ. 1 Ελληνική Δημοκρατία Τεχνολογικό Εκπαιδευτικό Ίδρυμα Ηπείρου Πληροφορική II Ενότητα 3 : Γλώσσες προγραμματισμού Δρ. Γκόγκος Χρήστος 2 Ανοιχτά Ακαδημαϊκά Μαθήματα στο ΤΕΙ Ηπείρου Τμήμα Χρηματοοικονομικής

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

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

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

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

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

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

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

ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΗΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ Ανοικτά Ακαδημαϊκά Μαθήματα στο ΤΕΙ Ιονίων Νήσων ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΗΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ Ενότητα 1: Εισαγωγή Το περιεχόμενο του μαθήματος διατίθεται με άδεια Creative Commons εκτός και αν αναφέρεται διαφορετικά

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

Μεταγλωττιστές Ενότητα 1: Εισαγωγή

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

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

ΤΕΙ ΙΟΝΙΩΝ ΝΗΣΩΝ ΣΧΟΛΗ ΔΙΟΙΚΗΣΗΣ ΚΑΙ ΟΙΚΟΝΟΜΙΑΣ ΤΜΗΜΑ ΔΙΟΙΚΗΣΗΣ ΕΠΙΧΕΙΡΗΣΕΩΝ - ΕΙΣ

ΤΕΙ ΙΟΝΙΩΝ ΝΗΣΩΝ ΣΧΟΛΗ ΔΙΟΙΚΗΣΗΣ ΚΑΙ ΟΙΚΟΝΟΜΙΑΣ ΤΜΗΜΑ ΔΙΟΙΚΗΣΗΣ ΕΠΙΧΕΙΡΗΣΕΩΝ - ΕΙΣ ΤΕΙ ΙΟΝΙΩΝ ΝΗΣΩΝ ΣΧΟΛΗ ΔΙΟΙΚΗΣΗΣ ΚΑΙ ΟΙΚΟΝΟΜΙΑΣ ΤΜΗΜΑ ΔΙΟΙΚΗΣΗΣ ΕΠΙΧΕΙΡΗΣΕΩΝ - ΕΙΣ. ΚΑΤΕΥΘΥΝΣΗ ΔΙΟΙΚΗΣΗΣ ΤΟΥΡΙΣΤΙΚΩΝ ΕΠΙΧΕΙΡΗΣΕΩΝ ΚΑΙ ΕΠΙΧΕΙΡΗΣΕΩΝ ΦΙΛΟΞΕΝΙΑΣ Πληροφορική I "Προγραμματισμός" B. Φερεντίνος

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

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

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

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

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

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

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

Σχηματίζοντας Γραφικές Παραστάσεις για Ημίτονο και Συνημίτονο και Ελέγχοντας Περιορισμούς σε Συστάδες Καρτών Τόμπολας

Σχηματίζοντας Γραφικές Παραστάσεις για Ημίτονο και Συνημίτονο και Ελέγχοντας Περιορισμούς σε Συστάδες Καρτών Τόμπολας ΕΡΓΑΣΙΑ 2 Σχηματίζοντας Γραφικές Παραστάσεις για Ημίτονο και Συνημίτονο και Ελέγχοντας Περιορισμούς σε Συστάδες Καρτών Τόμπολας Εισαγωγή Ημερομηνία Ανάρτησης: 16/02/2017 Ημερομηνία Παράδοσης: 06/03/2017,

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

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

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

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

Διαδικασιακός Προγραμματισμός

Διαδικασιακός Προγραμματισμός Τμήμα ΜΗΧΑΝΙΚΩΝ ΠΛΗΡΟΦΟΡΙΚΗΣ ΤΕ ΤΕΙ ΔΥΤΙΚΗΣ ΕΛΛΑΔΑΣ Διαδικασιακός Προγραμματισμός Διάλεξη 7 η Πίνακες Οι διαλέξεις βασίζονται στο βιβλίο των Τσελίκη και Τσελίκα C: Από τη Θεωρία στην Εφαρμογή Σωτήρης Χριστοδούλου

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

Ελληνική Δημοκρατία Τεχνολογικό Εκπαιδευτικό Ίδρυμα Ηπείρου. Πληροφορική II. Ενότητα 2 : Αλγόριθμοι. Δρ. Γκόγκος Χρήστος

Ελληνική Δημοκρατία Τεχνολογικό Εκπαιδευτικό Ίδρυμα Ηπείρου. Πληροφορική II. Ενότητα 2 : Αλγόριθμοι. Δρ. Γκόγκος Χρήστος 1 Ελληνική Δημοκρατία Τεχνολογικό Εκπαιδευτικό Ίδρυμα Ηπείρου Πληροφορική II Ενότητα 2 : Αλγόριθμοι Δρ. Γκόγκος Χρήστος 2 Ανοιχτά Ακαδημαϊκά Μαθήματα στο ΤΕΙ Ηπείρου Τμήμα Χρηματοοικονομικής & Ελεγκτικής

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

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

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

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

Εισαγωγή στην επιστήμη των υπολογιστών

Εισαγωγή στην επιστήμη των υπολογιστών Εισαγωγή στην επιστήμη των υπολογιστών Λογισμικό Υπολογιστών Γλώσσες Προγραμματισμού 1 Εξέλιξη Οι γλώσσες προγραμματισμού είναι σύνολα από προκαθορισμένες λέξεις οι οποίες συνδυάζονται σε προγράμματα σύμφωνα

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

Χωρική Βάση δεδοµένων Autocad

Χωρική Βάση δεδοµένων Autocad Χωρική Βάση δεδοµένων Autocad Όλοι η πληροφορία σας βρίσκεται σε ένα αρχείο µε κατάληξη.dwg το οποίο αντιπροσωπεύει τη βάση δεδοµένων σας. Αυτό το αρχείο µπορούµε να το επεξεργαστούµε µε διάφορους τρόπους

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

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

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

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

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

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

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

ΑΣΚΗΣΗ. Δημιουργία Ευρετηρίων Συλλογής Κειμένων

ΑΣΚΗΣΗ. Δημιουργία Ευρετηρίων Συλλογής Κειμένων Γλωσσική Τεχνολογία Ακαδημαϊκό Έτος 2011-2012 Ημερομηνία Παράδοσης: Στην εξέταση του μαθήματος ΑΣΚΗΣΗ Δημιουργία Ευρετηρίων Συλλογής Κειμένων Σκοπός της άσκησης είναι η υλοποίηση ενός συστήματος επεξεργασίας

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

Προγραμματισμός Υπολογιστών με C++ Φύλλο Διαγωνίσματος Ακαδημαϊκό εξάμηνο: Χειμερινό

Προγραμματισμός Υπολογιστών με C++ Φύλλο Διαγωνίσματος Ακαδημαϊκό εξάμηνο: Χειμερινό Προγραμματισμός Υπολογιστών με C++ Φύλλο Διαγωνίσματος Ακαδημαϊκό εξάμηνο: Χειμερινό 2013-14 Διδάσκων: Γεώργιος Παπαϊωάννου Μονογραφή επιτηρητή: Στοιχεία Φοιτητή (συμπληρώνεται από το φοιτητή) Όνομα: Αίθουσα/αμφιθέατρο:

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

Στοιχειώδης προγραμματισμός σε C++

Στοιχειώδης προγραμματισμός σε C++ Στοιχειώδης προγραμματισμός σε C++ Σύντομο Ιστορικό. Το πρόγραμμα Hello World. Ο τελεστής εξόδου. Μεταβλητές και δηλώσεις τους. Αντικείμενα, μεταβλητές, σταθερές. Ο τελεστής εισόδου. Θεμελιώδεις τύποι.

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

Δομή Προγράμματος C++, Χειρισμός Μεταβλητών και Συναρτήσεις Εισόδου - Εξόδου

Δομή Προγράμματος C++, Χειρισμός Μεταβλητών και Συναρτήσεις Εισόδου - Εξόδου Εργαστήριο 2: Δομή Προγράμματος C++, Χειρισμός Μεταβλητών και Συναρτήσεις Εισόδου - Εξόδου Ο σκοπός αυτής της εργαστηριακής άσκησης είναι η ανάλυση των βασικών χαρακτηριστικών της Γλώσσας Προγραμματισμού

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

'Ασκηση 1: Στατικός Κατακερματισμός. Εισαγωγή. Ρουτίνες υλοποίησης κατακερματισμού. (Ημερομηνία Παράδοσης: Παρασκευή, 16/5/2008, 5μμ) HT_Init()

'Ασκηση 1: Στατικός Κατακερματισμός. Εισαγωγή. Ρουτίνες υλοποίησης κατακερματισμού. (Ημερομηνία Παράδοσης: Παρασκευή, 16/5/2008, 5μμ) HT_Init() Πληροφορική & Τηλεπικοινωνίες K18 Υλοποίηση Συστημάτων Βάσεων Δεδομένων Εαρινό Εξάμηνο 2008 Αν. Καθηγητής Δημήτρης Γουνόπουλος Καθηγητής Γιάννης Ιωαννίδης 'Ασκηση 1: Στατικός Κατακερματισμός (Ημερομηνία

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

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

ΔΟΜΗΜΕΝΟΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ 1 ΔΟΜΗΜΕΝΟΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ Μάθημα 1ο Τμήμα Διοίκησης Επιχειρήσεων α εξάμηνο Β. Φερεντίνος Ορισμός Wikipedia.org 2 Δομημένος προγραμματισμός (structured programming) ή διαδικαστικός προγραμματισμός (procedural

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

ΕΙΔΗ,ΤΕΧΝΙΚΕΣ ΚΑΙ ΠΕΡΙΒΑΛΛΟΝΤΑ ΠΡΟΓΡΑΜΜΑΤΙ- ΣΜΟΥ

ΕΙΔΗ,ΤΕΧΝΙΚΕΣ ΚΑΙ ΠΕΡΙΒΑΛΛΟΝΤΑ ΠΡΟΓΡΑΜΜΑΤΙ- ΣΜΟΥ Κεφάλαιο 7 ΕΙΔΗ,ΤΕΧΝΙΚΕΣ ΚΑΙ ΠΕΡΙΒΑΛΛΟΝΤΑ ΠΡΟΓΡΑΜΜΑΤΙ- ΣΜΟΥ Ερωτήσεις 1. Να αναφέρετε διαφορές μεταξύ γλωσσών μηχανής και γλωσσών χαμηλού επιπέδου. Οι γλώσσες μηχανής κωδικοποιούν τις εντολές τους με ομάδες

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

ΥΠΟΛΟΓΙΣΤΕΣ ΙI. Άδειες Χρήσης. Εντολές for, while, do-while Διδάσκοντες: Αν. Καθ. Δ. Παπαγεωργίου, Αν. Καθ. Ε. Λοιδωρίκης

ΥΠΟΛΟΓΙΣΤΕΣ ΙI. Άδειες Χρήσης. Εντολές for, while, do-while Διδάσκοντες: Αν. Καθ. Δ. Παπαγεωργίου, Αν. Καθ. Ε. Λοιδωρίκης ΠΑΝΕΠΙΣΤΗΜΙΟ ΙΩΑΝΝΙΝΩΝ ΑΝΟΙΚΤΑ ΑΚΑΔΗΜΑΪΚΑ ΜΑΘΗΜΑΤΑ Άδειες Χρήσης ΥΠΟΛΟΓΙΣΤΕΣ ΙI Εντολές for, while, do-while Διδάσκοντες: Αν. Καθ. Δ. Παπαγεωργίου, Αν. Καθ. Ε. Λοιδωρίκης Το παρόν εκπαιδευτικό υλικό υπόκειται

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

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

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

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

ΚΕΦΑΛΑΙΟ 8 Η ΓΛΩΣΣΑ PASCAL

ΚΕΦΑΛΑΙΟ 8 Η ΓΛΩΣΣΑ PASCAL 8.1. Εισαγωγή ΚΕΦΑΛΑΙΟ 8 Η ΓΛΩΣΣΑ PACAL Πως προέκυψε η γλώσσα προγραμματισμού Pascal και ποια είναι τα γενικά της χαρακτηριστικά; Σχεδιάστηκε από τον Ελβετό επιστήμονα της Πληροφορικής Nicklaus Wirth to

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

ΑΕΠΠ Ερωτήσεις θεωρίας

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

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

Ηλεκτρονικοί Υπολογιστές

Ηλεκτρονικοί Υπολογιστές ΑΡΙΣΤΟΤΕΛΕΙΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΕΣΣΑΛΟΝΙΚΗΣ ΑΝΟΙΧΤΑ ΑΚΑΔΗΜΑΪΚΑ ΜΑΘΗΜΑΤΑ Ενότητα 1: Βασικά Στοιχεία της C++ Ζαχαρούλα Ανδρεοπούλου Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative

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

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

ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΗΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ Ανοικτά Ακαδημαϊκά Μαθήματα στο ΤΕΙ Ιονίων Νήσων ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΗΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ Ενότητα 2: Εντολές/προτάσεις ελέγχου και συναρτήσεις Το περιεχόμενο του μαθήματος διατίθεται με άδεια Creative Commons

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

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

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

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

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

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

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

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

ΠΑΝΕΠΙΣΤΗΜΙΟ ΠΑΤΡΩΝ ΠΟΛΥΤΕΧΝΙΚΗ ΣΧΟΛΗ ΤΜΗΜΑ ΜΗΧΑΝΙΚΩΝ ΗΛΕΚΤΡΟΝΙΚΩΝ ΥΠΟΛΟΓΙΣΤΩΝ ΚΑΙ ΠΛΗΡΟΦΟΡΙΚΗΣ ΠΑΝΕΠΙΣΤΗΜΙΟ ΠΑΤΡΩΝ ΠΟΛΥΤΕΧΝΙΚΗ ΣΧΟΛΗ ΤΜΗΜΑ ΜΗΧΑΝΙΚΩΝ ΗΛΕΚΤΡΟΝΙΚΩΝ ΥΠΟΛΟΓΙΣΤΩΝ ΚΑΙ ΠΛΗΡΟΦΟΡΙΚΗΣ 2 ο ΣΕΤ ΑΣΚΗΣΕΩΝ Οι ασκήσεις αυτού του φυλλαδίου καλύπτουν τα παρακάτω θέματα: Συναρτήσεις (κεφάλαιο Functions)

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

Στόχοι και αντικείμενο ενότητας. Εκφράσεις. Η έννοια του τελεστή. #2.. Εισαγωγή στη C (Μέρος Δεύτερο) Η έννοια του Τελεστή

Στόχοι και αντικείμενο ενότητας. Εκφράσεις. Η έννοια του τελεστή. #2.. Εισαγωγή στη C (Μέρος Δεύτερο) Η έννοια του Τελεστή Στόχοι και αντικείμενο ενότητας Η έννοια του Τελεστή #2.. Εισαγωγή στη C (Μέρος Δεύτερο) Εκφράσεις Προτεραιότητα Προσεταιριστικότητα Χρήση παρενθέσεων Μετατροπές Τύπων Υπονοούμενες και ρητές μετατροπές

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

Οντοκεντρικός Προγραμματισμός

Οντοκεντρικός Προγραμματισμός Οντοκεντρικός Προγραμματισμός Ενότητα 5: H ΓΛΩΣΣΑ C++ Εισαγωγή στην C++ ΔΙΔΑΣΚΟΝΤΕΣ:Iωάννης Χατζηλυγερούδης, Χρήστος Μακρής Πολυτεχνική Σχολή Τμήμα Μηχανικών Η/Υ & Πληροφορικής H Γλώσσα C++ ΙΣΤΟΡΙΑ 1967:

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

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

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

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

ΔΙΔΑΣΚΑΛΙΑ ΓΝΩΣΤΙΚΗΣ ΣΤΡΑΤΗΓΙΚΗΣ ΓΙΑ ΤΗΝ ΚΑΤΑΝΟΗΣΗ Δρ. Ζαφειριάδης Κυριάκος Οι ικανοί αναγνώστες χρησιμοποιούν πολλές στρατηγικές (συνδυάζουν την

ΔΙΔΑΣΚΑΛΙΑ ΓΝΩΣΤΙΚΗΣ ΣΤΡΑΤΗΓΙΚΗΣ ΓΙΑ ΤΗΝ ΚΑΤΑΝΟΗΣΗ Δρ. Ζαφειριάδης Κυριάκος Οι ικανοί αναγνώστες χρησιμοποιούν πολλές στρατηγικές (συνδυάζουν την 1 ΔΙΔΑΣΚΑΛΙΑ ΓΝΩΣΤΙΚΗΣ ΣΤΡΑΤΗΓΙΚΗΣ ΓΙΑ ΤΗΝ ΚΑΤΑΝΟΗΣΗ Δρ. Ζαφειριάδης Κυριάκος Οι ικανοί αναγνώστες χρησιμοποιούν πολλές στρατηγικές (συνδυάζουν την παλαιότερη γνώση τους, σημειώνουν λεπτομέρειες, παρακολουθούν

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

Κλήση Συναρτήσεων ΚΛΗΣΗ ΣΥΝΑΡΤΗΣΕΩΝ. Γεώργιος Παπαϊωάννου ( )

Κλήση Συναρτήσεων ΚΛΗΣΗ ΣΥΝΑΡΤΗΣΕΩΝ. Γεώργιος Παπαϊωάννου ( ) ΚΛΗΣΗ ΣΥΝΑΡΤΗΣΕΩΝ Γεώργιος Παπαϊωάννου (2013-16) gepap@aueb.gr Περιγραφή: Μορφές μεταβίβασης ορισμάτων σε συναρτήσεις (και μεθόδους) και οι επιπτώσεις τους Επιστροφή τιμών από κλήση συναρτήσεων Υπερφόρτωση

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

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

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

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

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

Προγραμματισμός Ι. Κλάσεις και Αντικείμενα. Δημήτρης Μιχαήλ. Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο Προγραμματισμός Ι Κλάσεις και Αντικείμενα Δημήτρης Μιχαήλ Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο Κλάσεις Η γενική μορφή μιας κλάσης είναι η εξής: class class-name { private data and

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

int array[10]; double arr[5]; char pin[20]; Προγραµµατισµός Ι

int array[10]; double arr[5]; char pin[20]; Προγραµµατισµός Ι Εισαγωγή Στον Προγραµµατισµό «C» Πίνακες Πανεπιστήµιο Πελοποννήσου Τµήµα Πληροφορικής & Τηλεπικοινωνιών Νικόλαος Δ. Τσελίκας Νικόλαος Προγραµµατισµός Δ. Τσελίκας Ι Πίνακες στη C Ένας πίνακας στη C είναι

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

Διαδικασιακός Προγραμματισμός

Διαδικασιακός Προγραμματισμός Τμήμα ΜΗΧΑΝΙΚΩΝ ΠΛΗΡΟΦΟΡΙΚΗΣ ΤΕ ΤΕΙ ΔΥΤΙΚΗΣ ΕΛΛΑΔΑΣ Διαδικασιακός Προγραμματισμός Διάλεξη 12 η Αναζήτηση/Ταξινόμηση Πίνακα Οι διαλέξεις βασίζονται στο βιβλίο των Τσελίκη και Τσελίκα C: Από τη Θεωρία στην

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

Ονοματεπώνυμο και ΑΜ: Είχα παραδώσει εργασίες τα εξής ακαδημαϊκά έτη: Διάρκεια: 2,5 ώρες, κλειστά βιβλία και σημειώσεις ΚΑΛΗ ΕΠΙΤΥΧΙΑ!

Ονοματεπώνυμο και ΑΜ: Είχα παραδώσει εργασίες τα εξής ακαδημαϊκά έτη: Διάρκεια: 2,5 ώρες, κλειστά βιβλία και σημειώσεις ΚΑΛΗ ΕΠΙΤΥΧΙΑ! Οικονομικό Πανεπιστήμιο Αθηνών, Τμήμα Πληροφορικής Μάθημα: Προγραμματισμός Υπολογιστών με C++ Εξεταστική περίοδος: Σεπτεμβρίου 2011. Διδάσκων: Α. Δημάκης Γράψτε όλες τις απαντήσεις σας πάνω σε αυτό το

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

ΥΠΟΛΟΓΙΣΤΕΣ ΙΙ Εντολές επανάληψης Εντολές επανάληψης while for do-while ΥΠΟΛΟΓΙΣΤΕΣ ΙΙ Παράδειγμα #1 Εντολή while

ΥΠΟΛΟΓΙΣΤΕΣ ΙΙ Εντολές επανάληψης Εντολές επανάληψης while for do-while ΥΠΟΛΟΓΙΣΤΕΣ ΙΙ Παράδειγμα #1 Εντολή while ΥΠΟΛΟΓΙΣΤΕΣ ΙΙ Εντολές επανάληψης Εντολές επανάληψης Στη C++ υπάρχουν 3 διαφορετικές εντολές επανάληψης: while for do-while 1 2 ΥΠΟΛΟΓΙΣΤΕΣ ΙΙ Εντολή while Παράδειγμα #1 Κατασκευάστε πρόγραμμα που για

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

Διαδικασιακός Προγραμματισμός

Διαδικασιακός Προγραμματισμός Τμήμα ΜΗΧΑΝΙΚΩΝ ΠΛΗΡΟΦΟΡΙΚΗΣ ΤΕ ΤΕΙ ΔΥΤΙΚΗΣ ΕΛΛΑΔΑΣ Διαδικασιακός Προγραμματισμός Διάλεξη 6 η Βρόχοι Επανάληψης Οι διαλέξεις βασίζονται στο βιβλίο των Τσελίκη και Τσελίκα C: Από τη Θεωρία στην Εφαρμογή

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

Εισαγωγή. Διαλέξεις στο μάθημα: Μεταφραστές Γιώργος Μανής

Εισαγωγή. Διαλέξεις στο μάθημα: Μεταφραστές Γιώργος Μανής Εισαγωγή Διαλέξεις στο μάθημα: Μεταφραστές Γιώργος Μανής Μεταγλωττιστής Αρχικό πρόγραμμα (source program) Μεταγλωττιστής Τελικό πρόγραμμα (object program) Διαγνωστικά μηνύματα Μεταγλωττιστής Παίρνει σαν

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

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

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

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

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

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

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

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

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

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

ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ Γ ΛΥΚΕΙΟΥ ΗΜΕΡΟΜΗΝΙΑ: 6/04/2014

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

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

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

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

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

Πληροφορική & Τηλεπικοινωνίες. K18 - Υλοποίηση Συστημάτων Βάσεων Δεδομένων Εαρινό Εξάμηνο

Πληροφορική & Τηλεπικοινωνίες. K18 - Υλοποίηση Συστημάτων Βάσεων Δεδομένων Εαρινό Εξάμηνο Πληροφορική & Τηλεπικοινωνίες K18 - Υλοποίηση Συστημάτων Βάσεων Δεδομένων Εαρινό Εξάμηνο 2010 2011 Δ. Γουνόπουλος Ι. Ιωαννίδης Άσκηση 2: Υλοποίηση Ευρετηρίου Β+ Δένδρου Προθεσμία: 6 Ιουνίου 2011, 11:59μμ

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

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

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

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

Προγραμματισμός Η/Υ. Ενότητα 2β: Εισαγωγή στη C (Μέρος Δεύτερο)

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

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

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

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

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

Εισαγωγή στην επιστήμη των υπολογιστών. Λογισμικό Υπολογιστών Κεφάλαιο 9ο Γλώσσες Προγραμματισμού

Εισαγωγή στην επιστήμη των υπολογιστών. Λογισμικό Υπολογιστών Κεφάλαιο 9ο Γλώσσες Προγραμματισμού Εισαγωγή στην επιστήμη των υπολογιστών Λογισμικό Υπολογιστών Κεφάλαιο 9ο Γλώσσες Προγραμματισμού 1 Εξέλιξη Οι γλώσσες προγραμματισμού είναι σύνολα από προκαθορισμένες λέξεις οι οποίες συνδυάζονται σε προγράμματα

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

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

ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΗΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ Ανοικτά Ακαδημαϊκά Μαθήματα στο ΤΕΙ Ιονίων Νήσων ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΗΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ Ενότητα 3: Πίνακες, Δομές και Δυναμική Διαχείριση Μνήμης Το περιεχόμενο του μαθήματος διατίθεται με άδεια Creative Commons

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

Ψευδοκώδικας. November 7, 2011

Ψευδοκώδικας. November 7, 2011 Ψευδοκώδικας November 7, 2011 Οι γλώσσες τύπου ψευδοκώδικα είναι ένας τρόπος περιγραφής αλγορίθμων. Δεν υπάρχει κανένας τυπικός ορισμός της έννοιας του ψευδοκώδικα όμως είναι κοινός τόπος ότι οποιαδήποτε

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

Δομημένος Προγραμματισμός

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

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

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

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

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

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

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

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

Σχεδίαση Βάσεων Δεδομένων

Σχεδίαση Βάσεων Δεδομένων Οδηγίες Μέρος 1: Απαντήστε κάθε ερώτηση. 1. Ποια είναι τα πλεονεκτήματα που παρέχει το Περιβάλλον Βάσεων Δεδομένων της Oracle για τις επιχειρήσεις; Το σύστημα διαχείρισης βάσεων δεδομένων της Oracle δίνει

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

ΥΠΟΛΟΓΙΣΤΕΣ ΙΙ. Τι περιλαμβάνει μια μεταβλητή; ΔΕΙΚΤΕΣ. Διεύθυνση μεταβλητής. Δείκτης

ΥΠΟΛΟΓΙΣΤΕΣ ΙΙ. Τι περιλαμβάνει μια μεταβλητή; ΔΕΙΚΤΕΣ. Διεύθυνση μεταβλητής. Δείκτης ΥΠΟΛΟΓΙΣΤΕΣ ΙΙ Τι περιλαμβάνει μια μεταβλητή; ΔΕΙΚΤΕΣ Πρώτα να δούμε τι ακριβώς συμπεριλαμβάνει μια μεταβλητή τύπος Καθορίζει το μέγεθος στην μνήμη σε Bytes τιμή Η αριθμητική τιμή που αποθηκεύεται στην

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

1 η ΕΝΟΤΗΤΑ ΕΙΣΑΓΩΓΗ (Προγραμματισμός & MATLAB)

1 η ΕΝΟΤΗΤΑ ΕΙΣΑΓΩΓΗ (Προγραμματισμός & MATLAB) ΣΧΟΛΗ ΠΟΛΙΤΙΚΩΝ ΜΗΧΑΝΙΚΩΝ ΕΜΠ ΜΕΘΟΔΟΙ ΕΠΙΛΥΣΗΣ ΜΕ Η/Υ 1 η ΕΝΟΤΗΤΑ ΕΙΣΑΓΩΓΗ (Προγραμματισμός & MATLAB) Ν.Δ. Λαγαρός Μ. Φραγκιαδάκης Α. Στάμος Άδεια Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες

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

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

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

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

Σκοπός. Εργαστήριο 6 Εντολές Επανάληψης

Σκοπός. Εργαστήριο 6 Εντολές Επανάληψης Εργαστήριο 6 Εντολές Επανάληψης Η δομή Επιλογής στη PASCAL H δομή Επανάληψης στη PASCAL. Ρεύμα Εισόδου / Εξόδου.. Ρεύμα Εισόδου / Εξόδου. To πρόγραμμα γραφικών gnuplot. Γραφικά στη PASCAL. Σκοπός 6.1 ΕΠΙΔΙΩΞΗ

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

Mεταγλωττιστές. 4 ο εργαστηριακό μάθημα Λεξική ανάλυση και flex. Θεωρία

Mεταγλωττιστές. 4 ο εργαστηριακό μάθημα Λεξική ανάλυση και flex. Θεωρία Mεταγλωττιστές 4 ο εργαστηριακό μάθημα Λεξική ανάλυση και flex Σκοπός: Το μάθημα αυτό αναφέρεται: στις κανονικές εκφράσεις στην δομή και το περιεχόμενο του αρχείου-εισόδου του flex Γενικά Θεωρία Κατά την

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

Οντοκεντρικός Προγραμματισμός

Οντοκεντρικός Προγραμματισμός Οντοκεντρικός Προγραμματισμός Ενότητα 5: H ΓΛΩΣΣΑ C++ Δομές Ελέγχου ΔΙΔΑΣΚΟΝΤΕΣ: Ιωάννης Χατζηλυγερούδης, Χρήστος Μακρής Πολυτεχνική Σχολή Τμήμα Μηχανικών Η/Υ & Πληροφορικής Δομές Ελέγχου Εισαγωγή Πριν

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

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

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

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

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

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

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

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

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

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

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

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

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

Διαδικασιακός Προγραμματισμός

Διαδικασιακός Προγραμματισμός Τμήμα ΜΗΧΑΝΙΚΩΝ ΠΛΗΡΟΦΟΡΙΚΗΣ ΤΕ ΤΕΙ ΔΥΤΙΚΗΣ ΕΛΛΑΔΑΣ Διαδικασιακός Προγραμματισμός Διάλεξη 2 η Τύποι Δεδομένων Δήλωση Μεταβλητών Έξοδος Δεδομένων Οι διαλέξεις βασίζονται στο βιβλίο των Τσελίκη και Τσελίκα

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

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

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

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

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

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

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

for for for for( . */

for for for for( . */ Εισαγωγή Στον Προγραµµατισµό «C» Βρόχοι Επανάληψης Πανεπιστήµιο Πελοποννήσου Τµήµα Πληροφορικής & Τηλεπικοινωνιών Νικόλαος Δ. Τσελίκας Νικόλαος Προγραµµατισµός Δ. Τσελίκας Ι Ο βρόχος for Η εντολή for χρησιµοποιείται

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

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

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

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

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

Δομημένος Προγραμματισμός. Τμήμα Επιχειρηματικού Σχεδιασμού και Πληροφοριακών Συστημάτων Δομημένος Προγραμματισμός Τμήμα Επιχειρηματικού Σχεδιασμού και Πληροφοριακών Συστημάτων www.bpis.teicrete.gr Τμήμα Επιχειρηματικού Σχεδιασμού και Πληροφοριακών Συστημάτων www.bpis.teicrete.gr 2 Δομές Δεδομένων

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

ΠΛΗΡΟΦΟΡΙΚΗ ΙI Ενότητα 3: Έλεγχος ροής προγράμματος

ΠΛΗΡΟΦΟΡΙΚΗ ΙI Ενότητα 3: Έλεγχος ροής προγράμματος ΠΛΗΡΟΦΟΡΙΚΗ ΙI Ενότητα 3: Έλεγχος ροής προγράμματος Μιχάλης Δρακόπουλος Σχολή Θετικών επιστημών Τμήμα Μαθηματικών ΠΛΗΡΟΦΟΡΙΚΗ ΙΙ (Java) Ενότητα 3 ΕΛΕΓΧΟΣ ΡΟΗΣ ΠΡΟΓΡΑΜΜΑΤΟΣ Ι. Ελεγκτές συνθηκών ή περιπτώσεων:

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

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

Ανάπτυξη και Σχεδίαση Λογισμικού Ανάπτυξη και Σχεδίαση Λογισμικού Η γλώσσα προγραμματισμού C Γεώργιος Δημητρίου Συναρτήσεις (Functions) Οι βασικές λειτουργικές ενότητες ενός προγράμματος C Καλούνται με ορίσματα που αντιστοιχούνται σε

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

Ενότητα 13. Εισαγωγή στην Πληροφορική. Κεφάλαιο 13Α. Αρχεία. Χειµερινό Εξάµηνο ρ. Παναγιώτης Χατζηδούκας (Π..407/80) προγραµµατισµός

Ενότητα 13. Εισαγωγή στην Πληροφορική. Κεφάλαιο 13Α. Αρχεία. Χειµερινό Εξάµηνο ρ. Παναγιώτης Χατζηδούκας (Π..407/80) προγραµµατισµός Ενότητα 13 Εισαγωγή στην Πληροφορική Χειµερινό Εξάµηνο 2006-07 Προγραµµατισµός Κεφάλαιο 13Α: ηµιουργία Προγραµµάτων Υπολογιστή Κεφάλαιο 13Β: Γλώσσες Προγραµµατισµού και η ιαδικασία Προγραµµατισµού ρ. Παναγιώτης

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

Δομημένος Προγραμματισμός

Δομημένος Προγραμματισμός Ανοικτά Ακαδημαϊκά Μαθήματα στο ΤΕΙ Ιονίων Νήσων Δομημένος Προγραμματισμός Ενότητα 2: Τύποι μεταβλητών Το περιεχόμενο του μαθήματος διατίθεται με άδεια Creative Commons εκτός και αν αναφέρεται διαφορετικά

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

Οικονοµικό Πανεπιστήµιο Αθηνών. Τµήµα Πληροφορικής. Φθινοπωρινό Εξάµηνο 2015. Δοµές Δεδοµένων - Εργασία 2. Διδάσκων: E. Μαρκάκης

Οικονοµικό Πανεπιστήµιο Αθηνών. Τµήµα Πληροφορικής. Φθινοπωρινό Εξάµηνο 2015. Δοµές Δεδοµένων - Εργασία 2. Διδάσκων: E. Μαρκάκης Οικονοµικό Πανεπιστήµιο Αθηνών Τµήµα Πληροφορικής Φθινοπωρινό Εξάµηνο 2015 Δοµές Δεδοµένων - Εργασία 2 Διδάσκων: E. Μαρκάκης Ταξινόµηση και Ουρές Προτεραιότητας Σκοπός της 2 ης εργασίας είναι η εξοικείωση

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

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

ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ Κεφάλαιο 2 ο 43 2.55 Ποιες είναι οι δύο μορφές της δομής πολλαπλής επιλογής και ποτέ χρησιμοποιείται; 1 η Μορφή:Η πολλαπλή επιλογή εφαρμόζεται στα προβλήματα όπου μπορούν να ληφθούν διαφορετικές αποφάσεις ανάλογα με

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

Θερμοδυναμική - Εργαστήριο

Θερμοδυναμική - Εργαστήριο Θερμοδυναμική - Εργαστήριο Ενότητα 2: Εισαγωγή σε έννοιες προγραμματισμού με υπολογιστή Κυρατζής Νικόλαος Τμήμα Μηχανικών Περιβάλλοντος και Μηχανικών Αντιρρύπανσης ΤΕ Άδειες Χρήσης Το παρόν εκπαιδευτικό

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

Αντικειμενοστραφής Προγραμματισμός

Αντικειμενοστραφής Προγραμματισμός Κλάσεις Αντικειμενοστραφής Προγραμματισμός Κλάσεις-Αντικείμενα Ένα παράδειγμα Συναρτήσεις κατασκευής (Constructors) Συνάρτηση καταστροφής (Destructor) Συναρτήσεις πρόσβασης (Access Functions) Συνάρτηση

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

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

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

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

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

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

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

ΥΠΟΛΟΓΙΣΤΕΣ ΙI. Άδειες Χρήσης. Συναρτήσεις I Διδάσκοντες: Αν. Καθ. Δ. Παπαγεωργίου, Αν. Καθ. Ε. Λοιδωρίκης

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

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

1 η υπό-ομάδα (Wind): Ισμαήλ Σερκάν Τσουλουχόπουλος Ιωάννης Φαρμακίδης Πασχάλης Τσακίρη Άννα Αριστινίδης Παύλος. 2 η υπό-ομάδα (Cosmote):

1 η υπό-ομάδα (Wind): Ισμαήλ Σερκάν Τσουλουχόπουλος Ιωάννης Φαρμακίδης Πασχάλης Τσακίρη Άννα Αριστινίδης Παύλος. 2 η υπό-ομάδα (Cosmote): 1 η υπό-ομάδα (Wind): Ισμαήλ Σερκάν Τσουλουχόπουλος Ιωάννης Φαρμακίδης Πασχάλης Τσακίρη Άννα Αριστινίδης Παύλος 2 η υπό-ομάδα (Cosmote): Αμυγδαλούδης Κωνσταντίνος Νερατζάκης Κωνσταντίνος Μποτούρ Μεμέτ

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

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

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

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

Εργαστήριο 08 Εισαγωγή στo Yacc

Εργαστήριο 08 Εισαγωγή στo Yacc Εργαστήριο 08 Εισαγωγή στo Yacc Θεωρία Σκοπός: Το μάθημα αυτό αναφέρεται: Στο εργαλείο κατασκευής συντακτικών αναλυτών, Yacc, στις δομές και συναρτήσεις που προσφέρει. Στη σύνταξη των αρχείων περιγραφής

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