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

Σχετικά έγγραφα
Στόχοι και αντικείμενο ενότητας. Βασικές κατασκευές ΓΠ. Έλεγχος ροής προγράμματος. #4.. Εντολές Επιλογής

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

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

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

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

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

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

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

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

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

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

Προγραμματισμός Η/Υ. Ενότητα 3: Top Down Σχεδιασμός

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Εισαγωγή στους Η/Υ. Ενότητα 2α: Χάρτης Karnaugh (Βοηθητικό υλικό)

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

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

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

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

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

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

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

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

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

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

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

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

Διδακτική Πληροφορικής

Ευφυής Προγραμματισμός

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

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

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

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

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

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

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

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

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

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

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

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

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

Διδακτική Πληροφορικής

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

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

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

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

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

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

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

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

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

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

Εισαγωγή στους Η/Υ και τις Εφαρμογές Ενότητα 5: Επεξεργασία δεδομένων με τη γλώσσα προγραμματισμού python Υπο-ενότητα 5.2: Συμβολοσειρές-Έλεγχος Ροής

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

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

ΗΛΕΚΤΡΟΝΙΚΗ ΙIΙ Ενότητα 6

Γραμμική Άλγεβρα και Μαθηματικός Λογισμός για Οικονομικά και Επιχειρησιακά Προβλήματα

Διδακτική Πληροφορικής

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

Μεθοδολογία Έρευνας Κοινωνικών Επιστημών Ενότητα 2: ΣΥΓΚΕΝΤΡΩΣΗ ΠΛΗΡΟΦΟΡΙΩΝ ΜΑΡΚΕΤΙΝΓΚ Λοίζου Ευστράτιος Τμήμα Τεχνολόγων Γεωπόνων-Kατεύθυνση

Εισαγωγή στην πληροφορική

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

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

Προγραμματισμός Η/Υ. Ενότητα 6: Πίνακες και Δείκτες

Διδακτική Πληροφορικής

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

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

Διαχείριση Πολιτισμικών Δεδομένων

Τεχνητή Νοημοσύνη ΙΙ. Εργαστηριακή Άσκηση 3. Μουστάκας Κωνσταντίνος. Τμήμα Ηλεκτρολόγων Μηχανικών και Τεχνολογίας Υπολογιστων

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

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

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

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

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

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

ΟΙΚΟΝΟΜΙΚΑ ΜΑΘΗΜΑΤΙΚΑ

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

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

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

Τεχνολογία Λογισμικού

Εννοιες και Παράγοντες της Ψηφιακής Επεξεργασίας Εικόνας

Transcript:

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

Σκοποί ενότητας Έλεγχος της ροής ενός προγράμματος Κατανόηση της χρήσης των προτάσεων if και if else Κατανόηση της χρήσης των προτάσεων switch και break 2

Περιεχόμενα ενότητας Βασικές Δομές Γλωσσών Προγραμματισμού (ΓΠ) Προτάσεις διακλάδωσης υπό συνθήκη Έκφραση συνθήκης Οι προτάσεις switch και break 3

Μέρος 1 ο Βασικές Δομές Γλωσσών Προγραμματισμού (ΓΠ)

Βασικές Δομές Γλωσσών Προγραμματισμού (ΓΠ) Δομές ελέγχου ροής προγράμματος

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

Βασικές Δομές ΓΠ Έλεγχος ροής προγράμματος Ακολουθιακή εκτέλεση εντολών Εντολές επιλογής Εντολές επανάληψης Αναπαράσταση διαδικασιών Συναρτήσεις 7

Έλεγχος ροής προγράμματος Βασικές δομές (ανεξάρτητες της ΓΠ - χρησιμοποιούνται για την ανάπτυξη αλγορίθμων επίλυσης προβλημάτων) Δομή Ακολουθίας (sequence) Ένα σύνολο προτάσεων (εντολών) εκτελείται ακολουθιακά (η μία μετά την άλλη) Δομή Επιλογής (selection) Ανάλογα με το αν μια συνθήκη είναι αληθής ή ψευδής, εκτελούνται διαφορετικές προτάσεις (ή ομάδες προτάσεων) Δομή Επανάληψης (loop, repetition) Μια πρόταση (η μια ομάδα προτάσεων) εκτελείται πολλές φορές είτε όσο μια συνθήκη είναι αληθής είτε για προκαθορισμένο αριθμό επαναλήψεων 8

Έλεγχος ροής προγράμματος Π1 true Ε Ε Π2 Π1 Π2 true Π Π3 ακολουθία επιλογή επανάληψη 9

Μέρος 2 ο Προτάσεις διακλάδωσης υπό συνθήκη

Προτάσεις διακλάδωσης υπό συνθήκη Εντολές if, if else

Επιλογή - Διακλάδωση υπό συνθήκη Η πρόταση if συναντάται σε όλες τις προστακτικές ΓΠ Απλή μορφή if Ε then Π if Ε then Π1 else Π2 true Ε true Ε false Π false Π1 Π2 12

Επιλογή - Διακλάδωση υπό συνθήκη Σύνθετη μορφή (φωλιασμένα if) if Ε1 then Π1 else if E2 then Π2 else Π3 true Ε1 false Γενική μορφή: Π1 true Ε2 false if Ε1 then Π1 else if E2 then Π2 Π2 Π3 else if E3 then Π3 else if En then Πn else Π0 13

Προτάσεις επιλογής στη C Πρόταση if Εκτελεί μια πρόταση ή μια ομάδα προτάσεων αν μια έκφραση (συνθήκη) είναι αληθής If (έκφραση) { If (έκφραση) πρόταση ; block του if πρόταση_1 πρόταση_2 πρόταση_n } if (light==red) stop(); block του if 14

Προτάσεις επιλογής στη C Πρόταση if else Εκτελεί διαφορετικές προτάσεις ή ομάδες προτάσεων, ανάλογα με το αν μια έκφραση είναι αληθής ή ψευδής if (έκφραση) else πρόταση_1; προταση_2; if (light==red) stop(); else go(); if (έκφραση) { πρόταση_1; πρόταση_n; } else { πρόταση_n+1; πρόταση_n+m; } block του if block του else 15

Προτάσεις επιλογής στη C Ψευδοκώδικας Αν ο βαθμός ενός φοιτητή είναι μεγαλύτερος του ή ίσος με 5 τύπωσε μήνυμα ότι προβιβαστικέ αλλιώς τύπωσε μήνυμα ότι απέτυχε Κώδικας σε C: if (grade >= 5) printf("passed\n"); else printf("failed\n"); 16

Προτάσεις επιλογής στη C Διάγραμμα ροής false grade >= 5 true print Failed print Passed 17

Παράδειγμα 1 Δώστε τη δήλωση και τον ορισμό της συνάρτησης min για τον υπολογισμό του μικρότερου μεταξύ δύο ακεραίων αριθμών Παίρνει ως παραμέτρους δυο ακεραίους αριθμούς και επιστρέφει τον μικρότερο int min(int a, int b) { int minimum; if (a < b) minimum = a; else minimum = b; return minimum; } 18

Παράδειγμα 1 Εναλλακτικές λύσεις int min(int a, int b) { int minimum; if (a < b) minimum = a; else minimum = b; return minimum; } int min(int a, int b) { if (a < b) return a; return b; } int min(int a, int b) { if (a < b) return a; else return b; } int min(int a, int b) { int minimum; minimum = b; if (a < b) minimum = a; return minimum; } 19

Παράδειγμα 1 int min(int a, int b) { int minimum; if (a < b) minimum = a; else minimum = b; return minimum; } int min(int a, int b) { return (a < b)? a : b; } Υποθετικός τελεστής: επιστρέφει a αν η συνθήκη (a<b) είναι αληθής και b αν είναι ψευδής 20

Παράδειγμα 2 Δώστε τη δήλωση και τον ορισμό της συνάρτησης min3 για τον υπολογισμό του μικρότερου μεταξύ τριών ακεραίων αριθμών Χρήση nested if.. else int min3(int a, int b, int c) { int minimum; if (a < b) if (a < c) minimum = a; else else minimum = c; if (b < c) minimum = b; } else minimum = c; return minimum; 21

Παράδειγμα 2 Εναλλακτικές λύσεις int min3(int a, int b, int c) { int minimum; if (a < b) if (a < c) minimum = a; else minimum = c; else if (b < c) minimum = b; else minimum = c; return minimum; } int min3(int a, int b, int c) { int minimum; if (a < b) minimum = a; else minimum = b; if (c < minimum) minimum = c; return minimum; } 22

Μέρος 3 ο Έκφραση συνθήκης

Έκφραση συνθήκης Συσχετιστικοί και Λογικοί τελεστές

Περί εκφράσεων συνθήκης Χρήση συσχετιστικών τελεστών (ή τελεστών σύγκρισης) <, >, <=, >=, == (ελέγχου ισότητας),!= (διάφορο) Το αποτέλεσμα έκφρασης που περιέχει τέτοιο τελεστή είναι αληθές (true) ή ψευδές (false) Στη C, η τιμή είναι 0 για false και 1 για true Τύποι τελεστέων (operands): int, char, float, double Παραδείγματα: (i >= 8) (x < y) (f == 3.456) ( a >= b ) 25

Περί εκφράσεων συνθήκης Χρήση λογικών τελεστών && (AND), (OR),! (NOT) Συνένωση δύο ή περισσοτέρων εκφράσεων σύγκρισης Τύποι τελεστέων (operands): int, char Παραδείγματα: (a>=0 && a<=100) (s<10 s>100)!(i==5 && k==10) 26

Περί εκφράσεων συνθήκης && (AND) Ελέγχουμε αν ισχύουν όλες οι επιμέρους εκφράσεις (OR) Ελέγχουμε αν ισχύει τουλάχιστο μία από τις επιμέρους εκφράσεις Πίνακας 1: Πίνακας αληθείας a b a&&b 1 1 1 1 0 0 0 1 0 0 0 0 Πίνακας 2: Πίνακας αληθείας a b a b 1 1 1 1 0 1 0 1 1 0 0 0 27

Περί εκφράσεων συνθήκης! (ΝΟΤ) Ελέγχουμε αν ισχύει το αντίθετο μιας έκφρασης Πίνακας 3: Πίνακας αληθείας a!a 1 0 0 1 28

Αποτίμηση λογικών εκφράσεων Αρχίζει από τα αριστερά και προχωρεί μέχρι το σημείο που χρειάζεται Παραδείγματα: (0 && Ε) 0 (1 Ε) 1 η αποτίμηση της έκφρασης Ε δεν χρειάζεται σε καμία από τις παραπάνω περιπτώσεις 29

Αποτίμηση λογικών εκφράσεων Προσοχή Σε μία σύζευξη (Ε1 && Ε2), η συνθήκη Ε1 πρέπει να αποτελεί τον αριστερό τελεστέο, εάν στην περίπτωση που αποτιμείται σε 0, τυχόν αποτίμηση της Ε2 οδηγεί σε πρόβλημα (με αυτή την σειρά αποτρέπεται η αποτίμηση της Ε2) Παράδειγμα: ((y / x) > 2 && x!= 0) vs. (x!= 0 && (y / x) > 2) 30

Λογικές εκφράσεις σε C Τα x και y είναι μεγαλύτερα του z (x>z && y>z) Το x είναι ίσο με 2.5 ή με 10.32 (x==2.5 x==10.32) Το a είναι μεταξύ του b και του c (a>=b && a<=c) 31

Λογικές εκφράσεις σε C Το x είναι μικρότερο του 0 ή μεταξύ του 10 και του 1000 (x<0) (x>=10 && x<=1000) Το k είναι αγγλικός χαρακτήρας (k>= a && k<= z ) (k>= A && k<= Z ) 32

Μέρος 4 ο Οι προτάσεις switch και break

Οι προτάσεις switch και break Συσχετιστικοί και Λογικοί τελεστές

Η πρόταση switch Γενική μορφή 35

Η πρόταση switch 36

Η πρόταση switch Προσοχή Η έκφραση_ελέγχου πρέπει να είναι βαθμωτού τύπου, π.χ. char ή int, αλλά όχι float ή double Κάθε case πρέπει να έχει μια int ή char σταθερά ή σταθερά έκφραση Δύο case δεν μπορούν να έχουν την ίδια τιμή 37

Η πρόταση switch Οι προτάσεις κάτω από την ετικέτα default εκτελούνται όταν καμιά από τις case ετικέτες δεν ικανοποιείται Η default δεν είναι απαραίτητα η τελευταία ετικέτα Σημασία και χρήση της break Ροή προγράμματος (βλέπε προηγούμενη διαφάνεια) 38

Η πρόταση switch Παράδειγμα char letter_grade; int count_a, count_b, count_other; count_a = count_b = count_other = 0;... switch(letter_grade){ case A : counta++; message_excellent(); break; } case B : countb++; message_very_good(); break; case C : case D : count_other++; message_other(); break; default: message_error(); 39

Λάθη που γίνονται συχνά Χρήση τελεστή ανάθεσης (=) αντί του τελεστή ελέγχου ισότητας (==) if (x=10) αντί του ορθού if (x==10) Παράλειψη παρένθεσης στη συνθήκη if x>4 αντί του ορθού if (x>4) Κακή μετατροπή μαθηματικής έκφρασης σε έκφραση της C (0 <= x <= 4) αντί του ορθού (0 <= x && x<= 4) 40

Λάθη που γίνονται συχνά Παράλειψη αγκυλών στο σώμα του if ή του else if (x > 0) sum = sum + x; printf( Greater than 0 ); else printf( Less than 0 ); αντί του ορθού if (x > 0){ sum = sum + x; printf( Greater than 0 ); } else printf( Less than 0 ); 41

Τέλος Ενότητας

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

Σημείωμα Αναφοράς Copyright Πανεπιστήμιο Πατρών, Πολυτεχνική Σχολή, Τμήμα Μηχανολόγων & Αεροναυπηγών Μηχανικών, Νίκος Καρακαπιλίδης, Δημήτρης Σαραβάνος. Νίκος Καρακαπιλίδης, Δημήτρης Σαραβάνος. «Προγραμματισμός Η/Υ.». Έκδοση: 1.0. Πάτρα 2014. Διαθέσιμο από τη δικτυακή διεύθυνση: https://eclass.upatras.gr/courses/mech1207/ 44

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

Διατήρηση Σημειωμάτων Οποιαδήποτε αναπαραγωγή ή διασκευή του υλικού θα πρέπει να συμπεριλαμβάνει: το Σημείωμα Αναφοράς το Σημείωμα Αδειοδότησης τη δήλωση Διατήρησης Σημειωμάτων το Σημείωμα Χρήσης Έργων Τρίτων (εφόσον υπάρχει) μαζί με τους συνοδευόμενους υπερσυνδέσμους. 46

Σημείωμα Χρήσης Έργων Τρίτων Οποιοδήποτε έργο στην παρούσα ενότητα, έχει δημιουργηθεί από τους διδάσκοντες του μαθήματος ή/και την Τμηματική Ομάδα Εργασίας και παρέχεται με την ίδια άδεια CC BY-NC-SA 4.0 47