8 η ΕΝΟΤΗΤΑ Συμβολοσειρές Δομές

Σχετικά έγγραφα
7 η ΕΝΟΤΗΤΑ Δομές επανάληψης (συνέχεια) Εντολές εισόδου/εξόδου (συνέχεια)

3 η ΕΝΟΤΗΤΑ Συναρτήσεις στο MATLAB

6 η ΕΝΟΤΗΤΑ Δομές επανάληψης

Σχεδίαση με Ηλεκτρονικούς Υπολογιστές

4 η ΕΝΟΤΗΤΑ Μητρώα και συνθήκες στο MATLAB

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

ΒΟΗΘΗΤΙΚΕΣ ΣΗΜΕΙΩΣΕΙΣ

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

Εισαγωγή στην Πληροφορική & τον Προγραμματισμό

ΣΤΑΤΙΣΤΙΚΗ ΑΝΑΛΥΣΗ ΜΕ ΧΡΗΣΗ Η/Υ

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

Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative Commons. Για εκπαιδευτικό υλικό, όπως εικόνες, που υπόκειται σε άλλου τύ

Θεωρία Πιθανοτήτων & Στατιστική

Τμήμα Μηχανικών Πληροφορικής και Τηλεπικοινωνιών

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

Προγραμματισμός Υπολογιστών & Υπολογιστική Φυσική

7 ο ΕΡΓΑΣΤΗΡΙΟ ΣΗΜΑΤΑ & ΣΥΣΤΗΜΑΤΑ

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

Τμήμα Μηχανικών Πληροφορικής και Τηλεπικοινωνιών

Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative Commons. Για εκπαιδευτικό υλικό, όπως εικόνες, που υπόκειται σε άλλου τύ

Τεχνικές Προγραμματισμού και Χρήση Λογισμικού Η/Υ στις Κατασκευές

ΜΑΘΗΜΑΤΙΚΑ ΓΙΑ ΟΙΚΟΝΟΜΟΛΟΓΟΥΣ

ΤΕΧΝΟΛΟΓΙΑ ΛΟΓΙΣΜΙΚΟΥ Ι

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

Τμήμα Μηχανικών Πληροφορικής και Τηλεπικοινωνιών

Εισαγωγή στην Πληροφορική & τον Προγραμματισμό

Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative Commons. Για εκπαιδευτικό υλικό, όπως εικόνες, που υπόκειται σε άλλου τύ

ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ Ανώτατο Εκπαιδευτικό Ίδρυμα Πειραιά Τεχνολογικού Τομέα. Προγραμματισμός Η/Υ

ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ Η/Υ. Ενότητα: ΔΟΜΕΣ ΕΠΑΝΑΛΗΨΗΣ ΚΥΡΟΠΟΥΛΟΣ ΚΩΝΣΤΑΝΤΙΝΟΣ. Τμήμα Διοίκηση Επιχειρήσεων (Κοζάνη)

Πληροφορική ΙΙ Θεματική Ενότητα 11

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

ΤΕΧΝΟΛΟΓΙΑ ΛΟΓΙΣΜΙΚΟΥ Ι

Περιεχόμενα ΜΤ Τυχαίας Προσπέλασης Θεωρία Υπολογισμού Ενότητα 23: Μηχανές Turing Τυχαίας Προσπέλασης Επ. Καθ. Π. Κατσαρός Τμήμα Πληροφορικής Επ. Καθ.

Συστήματα Αυτομάτου Ελέγχου 1 Ενότητα # 5: Χρήση μετασχηματισμού Laplace για επίλυση ηλεκτρικών κυκλωμάτων Μέθοδοι εντάσεων βρόχων και τάσεων κόμβων

Τμήμα Μηχανικών Πληροφορικής και Τηλεπικοινωνιών

Σχεδίαση με Ηλεκτρονικούς Υπολογιστές

Λογιστικές Εφαρμογές Εργαστήριο

8 ο ΕΡΓΑΣΤΗΡΙΟ ΣΗΜΑΤΑ & ΣΥΣΤΗΜΑΤΑ

Εφαρμογές Συστημάτων Γεωγραφικών Πληροφοριών

Λογική. Δημήτρης Πλεξουσάκης. Ασκήσεις 2ου Φροντιστηρίου: Προτασιακός Λογισμός: Κανονικές Μορφές, Απλός Αλγόριθμος Μετατροπής σε CNF/DNF, Άρνηση

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

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

ΓΡΑΜΜΙΚΗ ΑΛΓΕΒΡΑ. ΕΝΟΤΗΤΑ: Διανυσματικοί Χώροι (1) ΔΙΔΑΣΚΩΝ: Βλάμος Παναγιώτης ΙΟΝΙΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ

5 η ΕΝΟΤΗΤΑ Γραφήματα στο MATLAB

Ιστορία της μετάφρασης

Μαθηματικά. Ενότητα 3: Εξισώσεις και Ανισώσεις 1 ου βαθμού. Σαριαννίδης Νικόλαος Τμήμα Λογιστικής και Χρηματοοικονομικής

Δομές Δεδομένων. Ενότητα 11: Τεχνικές Κατακερματισμού. Καθηγήτρια Μαρία Σατρατζέμη. Τμήμα Εφαρμοσμένης Πληροφορικής.

Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative Commons. Για εκπαιδευτικό υλικό, όπως εικόνες, που υπόκειται σε άλλου τύ

Διδάσκων: Νίκος Λαγαρός

5 ο ΕΡΓΑΣΤΗΡΙΟ ΣΗΜΑΤΑ & ΣΥΣΤΗΜΑΤΑ

ΤΕΧΝΟΛΟΓΙΑ ΛΟΓΙΣΜΙΚΟΥ Ι

Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative Commons. Για εκπαιδευτικό υλικό, όπως εικόνες, που υπόκειται σε άλλου τύ

PHP 3. Διδάσκοντες: Π. Αγγελάτος, Δ. Ζήνδρος Επιμέλεια διαφανειών: Δ. Ζήνδρος Σχολή Ηλεκτρολόγων Μηχανικών και Μηχανικών Υπολογιστών

9 η ΕΝΟΤΗΤΑ Συμβολικές πράξεις, ολοκληρώματα, παράγωγοι, διαφορικές εξισώσεις

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

Αρχιτεκτονική Υπολογιστών Ασκήσεις Εργαστηρίου

Τμήμα Μηχανικών Πληροφορικής και Τηλεπικοινωνιών

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

Σχεδίαση με Ηλεκτρονικούς Υπολογιστές

Αυτοματοποιημένη χαρτογραφία

Δυναμική Ηλεκτρικών Μηχανών

Πληροφορική II. Ενότητα 5 : Δομές Δεδομένων και αφηρημένοι. τύποι δεδομένων. Δρ. Γκόγκος Χρήστος

Νέες Τεχνολογίες στην Εκπαίδευση

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

Αυτοματοποιημένη χαρτογραφία

ΤΕΧΝΟΛΟΓΙΑ ΛΟΓΙΣΜΙΚΟΥ Ι

ΣΥΣΤΗΜΑΤΑ ΗΛΕΚΤΡΙΚΗΣ ΕΝΕΡΓΕΙΑΣ ΙIΙ

ΣΥΣΤΗΜΑΤΑ ΗΛΕΚΤΡΙΚΗΣ ΕΝΕΡΓΕΙΑΣ ΙIΙ

ΣΥΣΤΗΜΑΤΑ ΗΛΕΚΤΡΙΚΗΣ ΕΝΕΡΓΕΙΑΣ ΙIΙ

ΣΤΑΤΙΣΤΙΚΗ ΑΝΑΛΥΣΗ ΜΕ ΧΡΗΣΗ Η/Υ

Οικονομικά Μαθηματικά

Γενικά Μαθηματικά Ι. Ενότητα 1: Συναρτήσεις και Γραφικές Παραστάσεις. Λουκάς Βλάχος Τμήμα Φυσικής ΑΝΟΙΚΤΑ ΑΚΑΔΗΜΑΪΚΑ ΜΑΘΗΜΑΤΑ

ΓΡΑΜΜΙΚΟΣ & ΔΙΚΤΥΑΚΟΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ

Εκκλησιαστικό Δίκαιο. Ενότητα 10η: Ιερά Σύνοδος της Ιεραρχίας και Διαρκής Ιερά Σύνοδος Κυριάκος Κυριαζόπουλος Τμήμα Νομικής Α.Π.Θ.

ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ Ανώτατο Εκπαιδευτικό Ίδρυμα Πειραιά Τεχνολογικού Τομέα ΣΗΜΑΤΑ & ΣΥΣΤΗΜΑΤΑ. Ενότητα : ΥΛΟΠΟΙΗΣΗ ΔΙΑΚΡΙΤΩΝ ΣΥΣΤΗΜΑΤΩΝ

Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative Commons. Για εκπαιδευτικό υλικό, όπως εικόνες, που υπόκειται σε άλλου τύ

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

Εφαρμογές Συστημάτων Γεωγραφικών Πληροφοριών

ΠΛΗΡΟΦΟΡΙΚΗ Ι Ενότητα 4: Συναρτήσεις

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

Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative Commons. Για εκπαιδευτικό υλικό, όπως εικόνες, που υπόκειται σε άλλου τύ

ΓΡΑΜΜΙΚΟΣ & ΔΙΚΤΥΑΚΟΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ

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

ΣΤΑΤΙΣΤΙΚΗ ΕΠΙΧΕΙΡΗΣΕΩΝ

Θεωρία Πιθανοτήτων & Στατιστική

Εφαρμογές Συστημάτων Γεωγραφικών Πληροφοριών

Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Cretive Commons. Για εκπαιδευτικό υλικό, όπως εικόνες, που υπόκειται σε άλλου τύπ

Θεωρία Πιθανοτήτων & Στατιστική

Προγραμματισμός Ηλεκτρονικών Υπολογιστών 2 - Εργαστήριο

Αρχιτεκτονική Υπολογιστών Ασκήσεις Εργαστηρίου

ΣΤΑΤΙΣΤΙΚΗ ΕΠΙΧΕΙΡΗΣΕΩΝ

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

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

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

Εισαγωγή στους Αλγορίθμους

ΓΡΑΜΜΙΚΟΣ & ΔΙΚΤΥΑΚΟΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ

ΓΡΑΜΜΙΚΟΣ & ΔΙΚΤΥΑΚΟΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ

Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative Commons. Για εκπαιδευτικό υλικό, όπως εικόνες, που υπόκειται σε άλλου τύ

Υπολογιστικά & Διακριτά Μαθηματικά

Συστήματα Αυτομάτου Ελέγχου II

Transcript:

ΣΧΟΛΗ ΠΟΛΙΤΙΚΩΝ ΜΗΧΑΝΙΚΩΝ ΕΜΠ ΜΕΘΟΔΟΙ ΕΠΙΛΥΣΗΣ ΜΕ Η/Υ 8 η ΕΝΟΤΗΤΑ Συμβολοσειρές Δομές Ν.Δ. Λαγαρός Μ. Φραγκιαδάκης Α. Στάμος

Άδεια Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες Χρήσης Creative Commons. για εκπαιδευτικό υλικό, όπως εικόνες, που υπόκειται σε άδεια χρήσης άλλου τύπου, αυτή πρέπει να αναφέρεται ρητώς. 115

Περιεχόμενα 1) Συμβολοσειρές (συνέχεια) 2) Εγγραφή σε αρχεία με τυχαία διαμόρφωση 3) Δομές 4) Εφαρμογές 116

Συμβολοσειρές Έστω οι αλφαριθμητικές μεταβλητές (ή αλλιώς συμβολοσειρές ή string) FirstName = Giwrgos LastName = Georgiou οι μεταβλητές μπορούν να ενωθούν με την εντολή: BestStudentName = [FirstName LastName] Το αποτέλεμα της παραπάνω εντολής είναι: GiwrgosGeorgiou Για να διαχωρίσουμε όνομα και επίθετο με κενό, μπορούμε να γράψουμε: BestStudentName = [FirstName ' ' LastName] ή διαφορετικά BestStudentName2 = [ The best student is ' FirstName ' ' LastName] Η παραπάνω συνένωση ονομάζεται concatenation και είναι μία πολύ χρήσιμη πράξη στο Matlab. 117

Συμβολοσειρές Έστω η παρακάτω αλφαριθμητική μεταβλητή: StudentName = Giwrgos Georgiou, born in 1992 Για να αποθηκεύσουμε σε τρείς διαφορετικές μεταβλητές (α) το όνομα, (β) το επίθετο και (γ) την ηλικία του κ. Γιώργου Γεωργίου, χρησιμοποιούμε τις εντολές: FirstName = StudentName(1:7) LastName = StudentName(9:16) Age = 2015 str2num(studentname(26:end)) Παρατηρήσεις: χρειαζόμαστε την εντολή str2num για να μετατρέψουμε μία συμβολοσειρά σε αριθμό, το αντίθετο επιτυγχάνεται με την εντολή num2str. οι εντολες length(studentname) και size(studentname) μας δίνουν το μήκος του string, δηλαδή: >> length(studentname) ans = 30 >> size(studentname) ans = 1 30 118

Συμβολοσειρές StudentName = Giwrgos Georgiou, born in 1992 Εαν θέλουμε το πρόγραμμα να αναγνωρίζει μόνο του τις διάφορες μεταβλητές, μπορούμε να χρησιμοποιήσουμε την εντολή find. koma = find(studentname==,') % θέσεις του, μέσα στο string keno = find(studentname== ' ') % θέσεις των κενών μέσα στο string FirstName = StudentName(1:keno(1)-1) LastName = StudentName(keno(1)+1:koma-1) Age = 2015 str2num(studentname(keno(4)+1:end)) Η εντολή find ψάχνει μέσα στο string για να βρεί τις θέσεις που υπάρχει το αντίστοιχο κομμάτι κειμένου (π.χ. κόμα ή κενό). Mία νέα αλφαριθμητική μεταβλητή, μικρότερου μήκους, πρκύπτει, έαν πάρουμε ένα τμήμα της αρχικής μεταβλητής: >> tmp = StudentName(10:20) tmp = eorgiou, bo 119

Συμβολοσειρές Έστω τα string: tline1 = 6.63100 3.50700 1.62800 1.105 tline2 = 6.63100, 3.50700, 1.62800, 1.105 Η εντολή A = sscanf(str, format) μπορεί να χρησιμοποιηθεί για να διαβάσουμε δεδομένα από μία συμβολοσειρά. Παραδείγματα: >> v1 = sscanf(tline1,'%f') v1 = 6.6310 3.5070 1.6280 1.1050 Χρήσιμα παραδείγματα θα βρείτε στο help, (γραφοντας την εντολή doc sscanf) Για το 2 ο string tline2 μπορούμε να χρησιμοποιήσουμε την παρακάτω διαμόρφωση: >> v2 = sscanf(tline2, '%f, %f, %f, %f ) v2 = 6.6310 3.5070 1.6280 1.1050 120

Ανάγνωση αρχείων τυχαίας διαμόρφωσης Έστω το αρχείο seismos.txt με περιεχόμενο: time step: 0.02, number of steps: 3000 6.631000e+00, 3.507000e+00, 1.628000e+00, 1.105000e+00, 4.260000e-01 2.390000e-01, -2.680000e-01, -1.836000e+00, -1.490000e+00, 1.413000e+00-1.058000e+00, 1.669000e+00, 1.167600e+01, 1.149800e+01, -2.920000e-01-1.671800e+01, -1.228200e+01, -3.280000e+00, -1.202900e+01, -6.913000e+00 Θέλουμε: (α) να διαβάσουμε όλες τις τιμές του αρχείου και να τις αποθηκεύσουμε στο διάνυσμα acc (β) να διαβάσουμε το βήμα και το μήκος της καταγραφής και να τα αποθηκεύσουμε στις μεταβλητές dt και nsteps. 121

Ανάγνωση αρχείων τυχαίας διαμόρφωσης (συνέχεια) Το αρχείο seismos.txt διαβάζεται με τον παρακάτω κώδικα: fid =fopen('seismos.txt'); tline = fgetl(fid); tmp = sscanf(tline,'time step: %f, number of steps: %f'); dt = tmp(1); nsteps = tmp(2); count=0; while feof(fid) == 0 tline = fgetl(fid); tmp = sscanf(tline,'%f, %f, %f, %f, %f') acc(count+1:count+5) = tmp; count = count + 5; end fclose(fid) plot((1:length(acc))*dt,acc,'b.-') 122

Ανάγνωση αρχείων τυχαίας διαμόρφωσης (συνέχεια) αναλυτικά ο κώδικας: ανοίγουμε το αρχείο που θα διαβάσουμε, το Matlab εφεξής θα το αναγνωρίζει ως fid fid =fopen('seismos.txt'); εντολή fgetl διαβάζει ως μία συμβολοσειρά την πρώτη γραμμή του αρχείου tline = fgetl(fid); με την εντολή sscanf διαβάζουμε τα περιεχόμενα της 1 ης γραμμής tmp = sscanf(tline,'time step: %f, number of steps: %f'); dt = tmp(1); nsteps = tmp(2); 123

Ανάγνωση αρχείων τυχαίας διαμόρφωσης (συνέχεια) count = 0; Λέμε στο πρόγραμμα να κάνει επαναλήψεις μέχρι να βρεί το τέλος του αρχείου fid (εντολή feof(fid) == 0) while feof(fid) == 0 διαβάζουμε κάθε γραμμή μία-μία (αφού βρισκόμαστε μέσα σε ένα for loop) tline = fgetl(fid); εξάγουμε τα αριθμητικά δεδομένα και τα αποθηκεύουμε στο 5x1 διάνυσμα tmp tmp = sscanf(tline,'%f, %f, %f, %f, %f'); αποθηκεύουμε τα αριθμητικά δεδομένα στο διάνυσμα acc acc(count+1:count+5) = tmp; προσαυξάνουμε τον μετρητή count κατά 5 (τόσες τιμές διαβάσαμε) count = count + 5; end Δεν ξεχνάμε στο τέλος να «κλείσουμε» το αρχείo fid (ώστε να μπορεί να το διαβάσει κάποιο άλλο πρόγραμμα). fclose(fid) 124

δομές / structures Οι δομές (structures) επιτρέπουν την ομαδοποίηση δεδομένων σε μία μεταβλητή Έχουν την μορφή μεταβλητή.πεδίο1.πεδιο2 Μπορούν να έχουν διαστάσεις μητρώων Τα πεδία μπορούν να έχουν ανομοιογενείς τιμές (κείμενο, αριθμοί, μητρώα, κλπ) Παράδειγμα: id = 1; student(id).firstname = 'Alexander'; student(id).lastname = 'Georgiou'; student(id).fathername = 'Petros'; student(id).afm = '0692345678'; Student(id).school = 'civil engineering'; student(id).heightweight = [167 70]; student(id).haircolor = 'red'; 125

δομές / structures (συνέχεια) student(id).grades.statics = '4'; student(id).grades.hydraulics = '6'; student(id).grades.steel1 = '3'; student(id).grades.concrete1 = '8'; id = 2; student(id).firstname = Viky student(id).lastname = Antoniou ; 126

δομές / structures Η προηγούμενη δήλωση παράγει το αποτέλεσμα: >> student student = firstname: 'Alexander' lastname: 'Georgiou' fathername: 'Petros' afm: '0692345678' heightweight: [167 70] haircolor: 'red' grades: [1x1 struct] >> student.grades ans = Statics: '4' Hydraulics: '6' Steel1: '3' Concrete1: '8' 127

δομές / structures Χρήσιμες εντολές: Προσθήκη νέου πεδίου (το όνομα του οποίου μας είναι γνωστό ως μεταβλητή) >> fieldname = 'newfield' >> student(id).fieldname = 67 Επιστρέφει πίνακα αλφαριθμητικών μεταβλητών με όλα τα πεδία >> nam = fieldnames(student) Επιστρέφει την τιμή 1 εαν υπάρχει το πεδίο και 0 διαφορετικά >> ii = isfield(student, firstname ) Επιστρέφει την τιμή 1 εαν είναι δομή και 0 διαφορετικά >> ii = isstruct(student) Αφαιρεί κάποιο πεδίο από την μεταβλητή >> ii = rmfield(student, firstname ) 128

Αλγεβρικές πράξεις μητρώων (επανάληψη) Το Matlab μπορεί πολύ εύκολα να χρησιμοποιηθεί για την επίλυση γραμμικών (και όχι μόνο!) συστημάτων, Έστω το σύστημα: 6x 12y 4z 70 7x 2y 3z 5 2x 8y 9z 64 Για την επίλυση απλά γράφουμε το σύστημα στην μορφή AX = B X=(A -1 )B A = [6,12,4;7,-2,3;2,8,-9] B = [70;5;64] X = A^(-1)*B X = 3.0000 5.0000-2.0000 129

Χρηματοδότηση Το παρόν εκπαιδευτικό υλικό έχει αναπτυχθεί στα Πλαίσια του εκπαιδευτικού έργου του διδάσκοντα. Το έργο «Ανοιχτά Ακαδημαϊκά Μαθήματα Ε.Μ.Π.» έχει χρηματοδοτήσει μόνο την αναδιαμόρφωση του εκπαιδευτικού υλικού. Το έργο υλοποιείται στο πλαίσιο του Επιχειρησιακού Προγράμματος «Εκπαίδευση και Δια Βίου Μάθηση» και συγχρηματοδοτείται από την Ευρωπαϊκή Ένωση. 130