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

Σχετικά έγγραφα
ΠΛΗΡΟΦΟΡΙΚΗ Ι JAVA Τμήμα θεωρίας με Α.Μ. σε 3, 7, 8 & 9 22/11/07

ΠΛΗΡΟΦΟΡΙΚΗ ΙΙ (JAVA) 11/3/2008

Προγραμματισμός Η/Υ. Βασικές Προγραμματιστικές Δομές. ΤΕΙ Ιονίων Νήσων Τμήμα Τεχνολόγων Περιβάλλοντος Κατεύθυνση Τεχνολογιών Φυσικού Περιβάλλοντος

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

ΠΛΗΡΟΦΟΡΙΚΗ Ι Ενότητα 2: Έλεγχος συνθηκών

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

Εισαγωγή στους Υπολογιστές

ΠΛΗΡΟΦΟΡΙΚΗ Ι JAVA Τμήμα θεωρίας με Α.Μ. σε 3, 7, 8 & 9 29/11/07

ΠΛΗΡΟΦΟΡΙΚΗ ΙI Ενότητα 8: Πακέτα (Packages)

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

Προγραμματισμός H/Y Ενότητα 2: Εντολές ελέγχου ροής. Επικ. Καθηγητής Συνδουκάς Δημήτριος Τμήμα Διοίκησης Επιχειρήσεων (Γρεβενά)

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

Διοικητική Λογιστική

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

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

Θερμοδυναμική. Ανοικτά Ακαδημαϊκά Μαθήματα. Πίνακες Νερού σε κατάσταση Κορεσμού. Γεώργιος Κ. Χατζηκωνσταντής Επίκουρος Καθηγητής

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

Ανοικτά Ακαδημαϊκά Μαθήματα στο ΤΕΙ Αθήνας. Βιοστατιστική (Ε) Ενότητα 3: Έλεγχοι στατιστικών υποθέσεων

Ανοικτά Ακαδημαϊκά Μαθήματα στο ΤΕΙ Αθήνας. Βιοστατιστική (Ε) Ενότητα 1: Καταχώρηση δεδομένων

Ανοικτά Ακαδημαϊκά Μαθήματα στο ΤΕΙ Αθήνας. Βιοστατιστική (Ε) Ενότητα 2: Περιγραφική στατιστική

Εισαγωγή στους Υπολογιστές

ΠΛΗΡΟΦΟΡΙΚΗ ΙI Ενότητα 11: Vectors (διανύσματα)

Λογιστική Κόστους Ενότητα 12: Λογισμός Κόστους (2)

Έλεγχος και Διασφάλιση Ποιότητας Ενότητα 4: Μελέτη ISO Κουππάρης Μιχαήλ Τμήμα Χημείας Εργαστήριο Αναλυτικής Χημείας

ΠΛΗΡΟΦΟΡΙΚΗ ΙI Ενότητα 7: Πίνακες (Arrays)

Προγραμματισμός Η/Υ. Ενότητα 5: Εντολές Επανάληψης

ΠΛΗΡΟΦΟΡΙΚΗ Ι Ενότητα 3: Δομές επανάληψης

Πρακτική Άσκηση σε σχολεία της δευτεροβάθμιας εκπαίδευσης

Προγραμματισμός Η/Υ. Ενότητα 4: Εντολές Επιλογής

ΠΛΗΡΟΦΟΡΙΚΗ ΙI Ενότητα 12: Ροές και είσοδος/έξοδος αρχείων

Διδακτική των εικαστικών τεχνών Ενότητα 1

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

1 η Διάλεξη. Ενδεικτικές λύσεις ασκήσεων

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

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

Κβαντική Επεξεργασία Πληροφορίας

Κβαντική Επεξεργασία Πληροφορίας

Λογιστική Κόστους Ενότητα 8: Κοστολογική διάρθρωση Κύρια / Βοηθητικά Κέντρα Κόστους.

Διδακτική των εικαστικών τεχνών Ενότητα 3

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

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

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

Διδακτική των εικαστικών τεχνών Ενότητα 2

Διδακτική των εικαστικών τεχνών Ενότητα 2

Διδακτική των εικαστικών τεχνών Ενότητα 2

Διδακτική των εικαστικών τεχνών Ενότητα 2

Μαθηματικά Διοικητικών & Οικονομικών Επιστημών

ΠΛΗΡΟΦΟΡΙΚΗ Ι Ενότητα 8: Συστήματα αρίθμησης

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

ΠΛΗΡΟΦΟΡΙΚΗ Ι Ενότητα 6: Πίνακες [2/2] (Δισδιάστατοι)

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

Μυελού των Οστών Ενότητα #1: Ερωτήσεις κατανόησης και αυτόαξιολόγησης

Τίτλος Μαθήματος: Μαθηματική Ανάλυση Ενότητα Γ. Ολοκληρωτικός Λογισμός

Φιλοσοφία της Ιστορίας και του Πολιτισμού

Ενότητα. Εισαγωγή στις βάσεις δεδομένων

Διδακτική των εικαστικών τεχνών Ενότητα 2

Εισαγωγή στη Μουσική Τεχνολογία Ενότητα: Ελεγκτές MIDI μηνυμάτων (Midi Controllers)

Βάσεις Περιβαλλοντικών Δεδομένων

Διοικητική Λογιστική

Βέλτιστος Έλεγχος Συστημάτων

Έλεγχος Ποιότητας Φαρμάκων

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

Εισαγωγή στους Αλγορίθμους Ενότητα 9η Άσκηση - Αλγόριθμος Prim

Γενική Φυσική Ενότητα: Ταλαντώσεις

Το Εικονογραφημένο Βιβλίο στην Προσχολική Εκπαίδευση

Θερμοδυναμική. Ανοικτά Ακαδημαϊκά Μαθήματα. Πίνακες Νερού Υπέρθερμου Ατμού. Γεώργιος Κ. Χατζηκωνσταντής Επίκουρος Καθηγητής

Ενδεικτικές λύσεις ασκήσεων διαχείρισης έργου υπό συνθήκες αβεβαιότητας

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

Εισαγωγή στην Διοίκηση Επιχειρήσεων

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

Εισαγωγή στους Αλγορίθμους Ενότητα 11η Άσκηση - Σταθμισμένος Χρονοπρογραμματισμός Διαστημάτων

Γενική Φυσική Ενότητα: Εισαγωγή στην Ειδική Θεωρία της Σχετικότητας

Θεατρικές Εφαρμογές και Διδακτική της Φυσικής Ι

Προγραμματισμός Η/Υ. 3 η ενότητα. Τμήμα. Τεχνολόγων Περιβάλλοντος. ΤΕΙ Ιονίων Νήσων. Ανοικτά Ακαδημαϊκά Μαθήματα στο ΤΕΙ Ιονίων Νήσων

ΠΛΗΡΟΦΟΡΙΚΗ Ι Ενότητα 1: Εισαγωγή

Εισαγωγή στους Αλγορίθμους Ενότητα 10η Άσκηση Αλγόριθμος Dijkstra

Εισαγωγή στην Διοίκηση Επιχειρήσεων

Διεθνείς Οικονομικές Σχέσεις και Ανάπτυξη

Υπολογιστική άλγεβρα Ενότητα 1: Πολυωνυμικές σχέσεις και ταυτότητες, μέρος Ι

Υπολογιστική άλγεβρα Ενότητα 10: Βάσεις Groebner ενός ιδεώδους ΙΙΙ

Ψηφιακή Επεξεργασία Εικόνων

Διδακτική των εικαστικών τεχνών Ενότητα 2

ΔΡΔ: Διαγράμματα Ροής Δεδομένων

Διοίκηση Εξωτερικής Εμπορικής Δραστηριότητας

Εισαγωγή στους Αλγορίθμους Ενότητα 9η Άσκηση - Αλγόριθμος Kruskal

ΠΛΗΡΟΦΟΡΙΚΗ Ι Ενότητα 7: Αλγόριθμοι γραμμικής άλγεβρας

Αερισμός. Ενότητα 1: Αερισμός και αιμάτωση. Κωνσταντίνος Σπυρόπουλος, Καθηγητής Σχολή Επιστημών Υγείας Τμήμα Ιατρικής

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

Τεχνικό Σχέδιο - CAD

Μηχανολογικό Σχέδιο Ι

Γενική Φυσική Ενότητα: Δυναμική Άκαμπτου Σώματος

Πρακτική Άσκηση σε σχολεία της δευτεροβάθμιας εκπαίδευσης

Τεχνικό Σχέδιο - CAD. Τόξο Κύκλου. Τόξο Κύκλου - Έλλειψη. ΤΕΙ Ιονίων Νήσων Τμήμα Τεχνολόγων Περιβάλλοντος Κατεύθυνση Τεχνολογιών Φυσικού Περιβάλλοντος

Εφαρμογές των Τεχνολογιών της Πληροφορίας και των Επικοινωνιών στη διδασκαλία και τη μάθηση

ΠΛΗΡΟΦΟΡΙΚΗ ΙI Ενότητα 2: Βασικές εντολές

Εισαγωγή στις Επιστήμες της Αγωγής

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

Λειτουργία και εφαρμογές της πολιτιστικής διαχείρισης

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

Πληροφορική ΙΙ Ενότητα 1

Transcript:

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

ΠΛΗΡΟΦΟΡΙΚΗ ΙΙ (Java) Ενότητα 3 ΕΛΕΓΧΟΣ ΡΟΗΣ ΠΡΟΓΡΑΜΜΑΤΟΣ Ι. Ελεγκτές συνθηκών ή περιπτώσεων: i) if/ ii) switch II. Επαναληπτικές διαδικασίες: i) for ii) while (με έλεγχο συνθήκης) iii) do/while (με έλεγχο συνθήκης) if/: Με επιλογές μιας μόνο εντολής: Με επιλογές πολλαπλών εντολών: if (<λογική_έκφραση>) if (<λογική_έκφραση>) <εντολή_1>; // if true <εντολή_1>; <εντολή_2>; <εντολή_2>; // if false... <εντολή_α>; <εντολή_β>;... λογική_έκφραση boolean, δηλαδή true ή false π.χ. int a=5, b=7, c; if (a>=b) c = a+b; c = a-b; System.out.println(c); // -2 ver. 120305 Τμήμα Μαθηματικών ΕΚΠΑ 1

Άλλα παραδείγματα: o Μέγιστος μεταξύ των x και y: if (x>y) max = x; max = x; if (y>x) ή max = y; max = y; o Απόλυτη τιμή του x: if (x>=0) abs = x; abs = x; ή if (x<0) abs = -x; abs = -x; Δηλαδή, μπορεί να υπάρχει if χωρίς : if (<λογική_συνθήκη>) if (<λογική_συνθήκη>) <εντολή>; ή <εντολές>;... Δηλαδή, π.χ., αν test είναι μια boolean μεταβλητή: if (test) <εντολή1>; <εντολή2>; <εντολή3>; Σε αυτό το παράδειγμα δεν υπάρχει. Επομένως μόνο η <εντολή1> «ανήκει» στο if και εκτελείται μόνο εάν η test είναι true. Η <εντολή2> και η <εντολή3> εκτελούνται ούτως ή άλλως, αφού βρίσκονται μετά το if. Άρα: - Αν η test είναι true: <εντολή1>, <εντολή2>, <εντολή3> - Αν η test είναι false: <εντολή2>, <εντολή3> Όμως: if (test) <εντολή1>; <εντολή2>; <εντολή3>; Σε αυτό το παράδειγμα η <εντολή2> ανήκει στην περίπτωση του if, άρα εκτελείται μόνο εάν η test είναι false. Η <εντολή3> εκτελείται ούτως ή άλλως, αφού βρίσκεται μετά το if. Άρα: - Αν η test είναι true: <εντολή1>, <εντολή3> - Αν η test είναι false: <εντολή2>, <εντολή3> ver. 120305 Τμήμα Μαθηματικών ΕΚΠΑ 2

Πρώτη διευκρίνιση: Η στοίχιση των εντολών μπορεί πολλές να είναι παραπλανητική. Η Java δεν λαμβάνει υπ όψιν της τη στοίχιση που κάνει ο προγραμματιστής στον κώδικά του και απλά διαχωρίζει τις εντολές της (π.χ. πού τελειώνει ένα if ή ένα ) σύμφωνα με τους κανόνες της. Π.χ., στο δεύτερο παράδειγμα παραπάνω, δεν θα άλλαζε τίποτα εάν κατά λάθος η <εντολή3> είχε γραφεί ακριβώς κάτω από την <εντολή2> ως εξής: if (test) <εντολή1>; <εντολή2>; <εντολή3>; Η στοίχιση αυτή είναι παραπλανητική, γιατί δεν αλλάζει τίποτα σε σχέση με πριν: στο «ανήκει» μόνο η <εντολή2>, γιατί δεν υπάρχουν άρα στο ανήκει μόνο μία εντολή. Άρα η <εντολή3> παρόλο που φαίνεται να «ανήκει» στο, είναι στην ουσία εκτός if-, όπως ακριβώς πριν, και εκτελείται ούτως ή άλλως, ανεξαρτήτως της τιμής της test. Δεύτερη διευκρίνιση: Προφανώς η «λογική έκφραση» ή η «συνθήκη» που ελέγχεται σε ένα if μπορεί να είναι και απλά μια boolean μεταβλητή, αφού και αυτή, όπως το αποτέλεσμα μιας λογικής έκφρασης, παίρνει τιμές true ή false. Άρα, στο προηγούμενο παράδειγμα, για την boolean μεταβλητή test, αντί να γράψουμε: if (test == true) είναι το ίδιο να γράψουμε: if (test) αφού και στις δύο περιπτώσεις το αποτέλεσμα είναι true αν η test έχει την τιμή true και false αν η test έχει την τιμή false. Αντίστοιχα, για τον έλεγχο: if (test == false) γράφουμε απλά: if (!test). Ένθετο if (nested) a) b) if (...) if (...)...... if (...) if (...)...... if (...)............ ver. 120305 Τμήμα Μαθηματικών ΕΚΠΑ 3

Παράδειγμα με if/ if και user input: import java.util.*; public class Grades public static void main(string [] args) int score; // η βαθμολογία στην κλίμακα 0-100 char grade; // ο βαθμός σαν Α, Β, C, D ή F Scanner input = new Scanner(System.in); System.out.println( Δώσε τη βαθμολογία σου (0-100): ); score = input.nextint(); if (score > 90) grade = A ; if (score > 80) grade = B ; if (score > 70) grade = C ; if (score > 60) grade = D ; grade = F ; System.out.println( Με βαθμολογία + score + στα 100, ο βαθμός σου είναι: + grade); // end of main // end of class switch: switch (varname) case value1: case value2: case value3: default: Η μεταβλητή VarName είναι είτε ακέραια, είτε τύπου boolean, είτε τύπου char. Το switch «στέλνει» τη ροή του κώδικα στο ισχύον case. Αν δεν υπάρχει κάποιο break στο τέλος ενός case, τότε η ροή του κώδικα συνεχίζει στο επόμενο case! Δηλαδή, κάνει έλεγχο των case μέχρι να βρει αυτό που ισχύει και από εκεί και πέρα δεν ελέγχει εάν τα υπόλοιπα ισχύουν ή όχι, αλλά απλά εκτελεί τον κώδικα μέχρι να βρει κάποιο break ώστε να βγει από το switch. ver. 120305 Τμήμα Μαθηματικών ΕΚΠΑ 4

Παράδειγμα με switch: char grade;.. // απόδοση τιμής στη μεταβλητή grade switch (grade) case 'A': System.out.println( Πολύ καλά! ); case 'Β': System.out.println( Μπράβο! ); case 'C': System.out.println( Έτσι κι έτσι... );.. Αν το grade είναι 'A' θα εκτυπώσει: Πολύ καλά! Μπράβο! (γιατί δεν υπάρχει break στην 1η περίπτωση) Αν το grade είναι 'B' θα εκτυπώσει: Μπράβο! Αν το grade είναι 'C' θα εκτυπώσει: Έτσι κι έτσι... for: Επανάληψη μέρους του κώδικα για συγκεκριμένο αριθμό επαναλήψεων Γενική σύνταξη: for (αρχικοποίηση; συνθήκη; ανανέωση) εντολή; συνήθως: for (int counter=initialvalue; counter<=finalvalue; counter++) Σειρά εκτέλεσης εντολών: i) int counter = initialval; ii) έλεγχος counter<=finalvalue? iii) iv) counter++ v) έλεγχος, κτλ. ver. 120305 Τμήμα Μαθηματικών ΕΚΠΑ 5

Διάγραμμα Ροής του for-loop START FOR counter = initvalue OXI counter <= finalval? NAI statements; counter++ END FOR Συνήθως ο μετρητής (counter) ορίζεται τοπικά, στο πρώτο μέρος της παρένθεσης του for-loop, δηλαδή είναι μια τοπική μεταβλητή. Παράδειγμα: for (int i=1; i<=5; i++) Τυπώνει: 1 2 System.out.println(i); 3 4 5 Σε αυτό το παράδειγμα, εάν υπήρχε μια εντολή System.out.println(i); έξω από το for-loop δεν θα εκτύπωνε την τιμή 6 αλλά θα εμφάνιζε σφάλμα κατά το compilation του προγράμματος. Η μεταβλητή i που έχει δημιουργηθεί μέσα στο for είναι τοπική μεταβλητή του for και άρα υπάρχει μόνο μέσα στο μπλοκ του for (όπως αυτό ορίζεται από τα άγκιστρα... ). Φυσικά ο μετρητής του for μπορεί να έχει ορισθεί πιο πάνω στο πρόγραμμα. Στην περίπτωση αυτή δεν θα έπρεπε να ξαναορισθεί μέσα στο for αλλά απλά να χρησιμοποιηθεί: int i;... for (i=1; i<=5; i++)... και τότε θα είχε νόημα ένα System.out.println(i) εκτός του for. ver. 120305 Τμήμα Μαθηματικών ΕΚΠΑ 6

Για να αυξάνεται ο μετρητής ενός for κατά 2 (αντί για 1 που είναι συνήθως το βήμα): for (int i=0; i<10; i+=2) και ομοίως για οποιοδήποτε άλλο βήμα. - while: - do/while: while(συνθήκη) do while(συνθήκη); Η συνθήκη είναι μία boolean έκφραση (άρα: true ή false). Και το while και το do/while κάνουν επανάληψη των εντολών καθ όσον η συνθήκη είναι αληθής. Η διαφορά μεταξύ τους είναι ότι το do/while θα εκτελέσει τις εντολές τουλάχιστον μία φορά, ανεξάρτητα με το αν είναι true η συνθήκη, αφού την ελέγχει στο τέλος του loop, ενώ η while δεν μπαίνει καθόλου στο loop αν αρχικά η συνθήκη είναι false. Διαγράμματα Ροής του while και του do/while START while START do/while OXI boolean true? NAI statements; statements; boolean true? NAI OXI END while END do/while ver. 120305 Τμήμα Μαθηματικών ΕΚΠΑ 7

Παραδείγματα while: int n=0; int n=0; int n=0; int n=5; while (n<5) while (n<5) while (n<5) while (n<5) S.O.P.(n++); S.O.P.(++n); S.O.P.(n--); S.O.P.(n--); Θα τυπώσουν: 0 1 0-1 2-1 2 3-2 3 4-3 4 5-4... (ατέρμονες επαναλήψεις) Άλλο παράδειγμα while: Άθροισμα ψηφίων ακεραίου: Αλγόριθμος: i) εύρεση τελευταίου ψηφίου: n%10 (π.χ., 1975%10 5) ii) αποκοπή τελευταίου ψηφίου: n/10 (π.χ., 1975/10 197).. int n = input.nextint(); int dsum = 0; while (n>0) dsum += n%10; n /= 10; System.out.println(dsum); Παράδειγμα με switch: Να γραφεί πρόγραμμα που να ζητάει από το χρήστη τον αριθμό του μήνα (1-12) και να εκτυπώνει στην οθόνη το πλήθος των ημερών του μήνα αυτού, υποθέτοντας ότι το έτος δεν είναι δίσεκτο. import java.util.*; public class Ex1 public static void main(string [] args) Scanner input = new Scanner(System.in); System.out.println( Δώσε τον αριθμό του μήνα (1-12) ); int month = input.nextint(); ver. 120305 Τμήμα Μαθηματικών ΕΚΠΑ 8

switch (month) case 4: case 6: case 9: case 11: System.out.println( Ο μήνας έχει 30 ημέρες. ); case 2: System.out.println( Ο μήνας έχει 28 ημέρες. ); default: System.out.println( Ο μήνας έχει 31 ημέρες. ); // end switch // end main // end class ver. 120305 Τμήμα Μαθηματικών ΕΚΠΑ 9

Σημειώματα Σημείωμα Αναφοράς Copyright Εθνικόν και Καποδιστριακόν Πανεπιστήμιον Αθηνών, Μιχάλης Δρακόπουλος, 2014. Μιχάλης Δρακόπουλος. «Πληροφορική ΙI. Ενότητα 3: Έλεγχος ροής προγράμματος». Έκδοση: 1.0. Αθήνα 2014. Διαθέσιμο από τη δικτυακή διεύθυνση: http://opencourses.uoa.gr/courses/math106/. Σημείωμα Αδειοδότησης Το παρόν υλικό διατίθεται με τους όρους της άδειας χρήσης Creative Commons Αναφορά, Μη Εμπορική Χρήση Παρόμοια Διανομή 4.0 [1] ή μεταγενέστερη, Διεθνής Έκδοση. Εξαιρούνται τα αυτοτελή έργα τρίτων π.χ. φωτογραφίες, διαγράμματα κ.λ.π., τα οποία εμπεριέχονται σε αυτό και τα οποία αναφέρονται μαζί με τους όρους χρήσης τους στο «Σημείωμα Χρήσης Έργων Τρίτων». [1] http://creativecommons.org/licenses/by-nc-sa/4.0/ Ως Μη Εμπορική ορίζεται η χρήση: που δεν περιλαμβάνει άμεσο ή έμμεσο οικονομικό όφελος από την χρήση του έργου, για το διανομέα του έργου και αδειοδόχο που δεν περιλαμβάνει οικονομική συναλλαγή ως προϋπόθεση για τη χρήση ή πρόσβαση στο έργο που δεν προσπορίζει στο διανομέα του έργου και αδειοδόχο έμμεσο οικονομικό όφελος (π.χ. διαφημίσεις) από την προβολή του έργου σε διαδικτυακό τόπο Ο δικαιούχος μπορεί να παρέχει στον αδειοδόχο ξεχωριστή άδεια να χρησιμοποιεί το έργο για εμπορική χρήση, εφόσον αυτό του ζητηθεί. Διατήρηση Σημειωμάτων Οποιαδήποτε αναπαραγωγή ή διασκευή του υλικού θα πρέπει να συμπεριλαμβάνει: το Σημείωμα Αναφοράς το Σημείωμα Αδειοδότησης τη δήλωση Διατήρησης Σημειωμάτων το Σημείωμα Χρήσης Έργων Τρίτων (εφόσον υπάρχει) μαζί με τους συνοδευόμενους υπερσυνδέσμους.

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