Σχεδίαση και Ανάλυση Αλγορίθμων Ενότητα 7: ΑΝΑΔΡΟΜΗ

Σχετικά έγγραφα
Σχεδίαση και Ανάλυση Αλγορίθμων Ενότητα 4: ΑΝΑΠΑΡΑΣΤΑΣΗ ΔΕΔΟΜΕΝΩΝ - ΔΕΝΤΡΑ

Σχεδίαση και Ανάλυση Αλγορίθμων Ενότητα 8: ΧΡΗΣΗ ΔΟΜΩΝ ΔΕΝΤΡΟΥ ΚΑΙ ΣΩΡΟΥ ΓΙΑ ΕΠΙΛΥΣΗ ΠΡΟΒΛΗΜΑΤΟΣ ΤΑΞΙΝΟΜΗΣΗΣ ΑΛΓΟΡΙΘΜΟΣ HEAPSORT

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

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

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

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

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

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

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

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

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

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

Σχεδίαση και Ανάλυση Αλγορίθμων Ενότητα 5: ΚΑΤΗΓΟΡΙΕΣ ΑΛΓΟΡΙΘΜΙΚΩΝ ΠΡΟΒΛΗΜΑΤΩΝ-ΑΝΑΓΩΓΗ

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

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

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

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

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

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

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

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

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

Εισαγωγή στη Δικτύωση Υπολογιστών

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

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

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

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

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

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

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

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

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

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

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

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

Σχεδίαση και Ανάλυση Αλγορίθμων Ενότητα 6: ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΑΝΑΛΥΣΗ ΑΛΓΟΡΙΘΜΩΝ: ΠΡΟΒΛΗΜΑ ΑΝΑΖΗΤΗΣΗΣ

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

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

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

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

Εισαγωγή στη Δικτύωση Υπολογιστών

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

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

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

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

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

Σχεδίαση και Ανάλυση Αλγορίθμων Ενότητα 3: ΑΝΑΠΑΡΑΣΤΑΣΗ ΔΕΔΟΜΕΝΩΝ - ΓΡΑΦΗΜΑΤΑ

Σχεδίαση και Ανάλυση Αλγορίθμων Ενότητα 11: ΠΡΟΒΛΗΜΑ ΔΙΑΤΡΕΞΗΣ ΓΡΑΦΗΜΑΤΟΣ

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

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

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

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

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

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

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

Λογιστική Κόστους Ενότητα 10: Ασκήσεις Προτύπου Κόστους Αποκλίσεων.

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

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

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

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

ΠΛΗΡΟΦΟΡΙΚΗ Ι Ενότητα 9: Αναδρομή

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Σχεδίαση και Ανάλυση Αλγορίθμων Ενότητα 10: ΤΕΧΝΙΚΕΣ ΣΧΕΔΙΑΣΜΟΥ ΚΑΙ ΑΝΑΛΥΣΗΣ ΑΛΓΟΡΙΘΜΩΝ ΓΙΑ ΠΡΟΒΛΗΜΑΤΑ ΜΕ ΑΠΑΓΟΡΕΥΤΙΚΟ ΑΡΙΘΜΟ ΠΕΡΙΠΤΩΣΕΩΝ

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

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

Σχεδίαση και Ανάλυση Αλγορίθμων Ενότητα 1: ΒΑΣΙΚΕΣ ΕΝΝΟΙΕΣ - ΟΡΙΣΜΟΙ

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

Αρχές Γλωσσών Προγραμματισμού και Μεταφραστών

Θεσμοί Ευρωπαϊκών Λαών Ι 19 ος -20 ος αιώνας

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

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

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

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

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

Αλγόριθμοι και πολυπλοκότητα Συγχωνευτική Ταξινόμηση

Θεσμοί Ευρωπαϊκών Λαών Ι 19 ος -20 ος αιώνας

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

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

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

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

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

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

Transcript:

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

ΠΕΡΙΕΧΟΜΕΝΟ Ορισμός Τύποι αναδρομής Παραδείγματα 2

ΑΝΑΔΡΟΜΗ Ένας αλγόριθμος μπορεί να καλεί τον εαυτό του άμεσα ή έμμεσα. 3

ΠΑΡΑΔΕΙΓΜΑ Αναδρομή Είσοδος: Πλήθος επιπέδων n Έξοδος: Αριθμοί επισκεπτόμενων επιπέδων 1. n=1 2. Επέστρεψε Level n 3. if (n<4) then 3.1 Αναδρομή με είσοδο n+1 Τέλοςif 4. Επέστρεψε Level n 4

ΕΞΟΔΟΣ ΠΡΟΓΡΑΜΜΑΤΟΣ Level 1 Level 2 Level 3 Level 4 Level 4 Level 3 Level 2 Level 1 5

ΣΤΟΙΒΑ Όταν ένα πρόγραμμα φορτώνεται στη μνήμη για να εκτελεστεί, η περιοχή μνήμης όπου τοποθετούνται τα δεδομένα του προγράμματος ονομάζεται περιοχή δεδομένων και είναι καθορισμένη. Στο ένα άκρο της περιοχής δεδομένων αποθηκεύονται οι καθολικές μεταβλητές και στο άλλο άκρο οι τοπικές μεταβλητές. Οι τοπικές μεταβλητές τοποθετούνται σε μια δομή στοίβας (stack). 6

ΠΕΡΙΟΧΗ ΔΕΔΟΜΕΝΩΝ O χώρος μνήμης μεταξύ στοίβας και καθολικών μεταβλητών είναι ελεύθερος και λέγεται ελεύθερη περιοχή μνήμης (heap). H μνήμη στο heap κατανέμεται δυναμικά από τον προγραμματιστή. stack heap κώδικας-καθολικά δεδομένα 7

ΛΕΙΤΟΥΡΓΙΑ ΣΤΟΙΒΑΣ Στη στοίβα δυο λειτουργίες μπορούν να λάβουν χώρα: Εισαγωγή δεδομένων (push) Εξαγωγή δεδομένων (pop) 8

ΕΙΣΑΓΩΓΗ/ΕΞΑΓΩΓΗ ΔΕΔΟΜΕΝΩΝ Τα δεδομένα εισάγονται στην πρώτη κενή θέση της στοίβας. Τα δεδομένα εξάγονται από την κορυφή της στοίβας. Το τελευταίο δεδομένο που εισάγαμε στη στοίβα είναι και το πρώτο υποψήφιο προς εξαγωγή. 9

ΠΑΡΑΔΕΙΓΜΑ PROCEDURE updown(n:integer); BEGIN writeln( Level,n); if n<4 then updown(n+1); write( Level,n); END; Έστω ότι έχουμε την κλήση updown(1). 10

ΚΑΤΑΣΤΑΣΗ ΣΤΟΙΒΑΣ 1/2 4 3 3 2 2 2 1 1 1 1 n (α) Πριν την κλήση n (β) updown(1) n (γ) updown(2) n (δ) updown(3) n (ε) updown(4)

ΚΑΤΑΣΤΑΣΗ ΣΤΟΙΒΑΣ 2/2 3 2 1 2 1 1 n (στ) write( Level,n); //Level 4 n (ζ) write( Level,n); //Level 3 n (η) write( Level,n); //Level 2 n (θ) write( Level,n); //Level 1 12

ΤΥΠΟΙ ΑΝΑΔΡΟΜΗΣ Αναδρομή τέλους: κλήση αναδρομής στο τέλος του υποπρογράμματος, ακριβώς πριν από το END. Αναδρομή και αντιστροφή: κλήση αναδρομής πριν από εμφάνιση αποτελέσματος στην οθόνη. Το αποτέλεσμα εμφανίζεται αντίστροφα από τη σειρά των αναδρομικών κλήσεων του υποπρογράμματος. 13

ΑΝΑΔΡΟΜΗ ΤΕΛΟΥΣ Πρόβλημα: Να υπολογιστεί ο μέγιστος κοινός διαιρέτης δυο αριθμών. 14

ΑΛΓΟΡΙΘΜΟΣ ΣΕ ΕΛΕΥΘΕΡΟ ΚΕΙΜΕΝΟ Ο μέγιστος κοινός διαιρέτης δυο αριθμών υπολογίζεται με συνεχείς ακέραιες διαιρέσεις. Στην πρώτη διαίρεση διαιρούμε τους δυο αριθμούς και υπολογίζουμε το υπόλοιπο. Στη συνέχεια διαιρούμε τον δεύτερο αριθμό με το υπόλοιπο της προηγούμενης διαίρεσης. Αυτό συνεχίζεται μέχρι να πάρουμε υπόλοιπο 0. Τότε ο δεύτερος αριθμός της διαίρεσης που έδωσε υπόλοιπο 0 είναι αυτό που ψάχνουμε. 15

ΑΠΑΝΤΗΣΗ PROGRAM mkd(input,output); VAR num1,num2,res:integer; FUNCTION mkd(a,b:integer):integer; BEGIN write(a,b); IF b=0 then mkd:=a ELSE mkd:=mkd(b,a mod b); END; BEGIN write( Give num1: ); read(num1); write( Give num2: ); read(num2); res:=mkd(num1,num2); writeln( The mkd is:,res); END. 16

TYXAIA ΕΞΟΔΟΣ ΠΡΟΓΡΑΜΜΑΤΟΣ Give num1: 20 Give num2: 12 20 12 12 8 8 4 4 0 The mkd is: 4 17

ΠΑΡΑΔΕΙΓΜΑ 2 ΑΝΑΔΡΟΜΗ ΤΕΛΟΥΣ Πρόβλημα: Υπολογισμός παραγοντικού χωρίς αναδρομή.

ΑΛΓΟΡΙΘΜΟΣ ΣΕ ΕΛΕΥΘΕΡΟ ΚΕΙΜΕΝΟ Για να υπολογίσουμε το παραγοντικό ενός αριθμού n αρκεί να εκτελέσουμε n υπολογισμούς. Αρχικά πολλαπλασιάζουμε το n με το n-1 και κρατούμε το γινόμενο. Στη συνέχεια πολλαπλασιάζουμε το γινόμενο που βρήκαμε με το n-2. Αυτό συνεχίζεται μέχρι να πολλαπλασιάσουμε το γινόμενο που βρήκαμε με το 2. Το τελικό γινόμενο είναι ο αριθμός που ψάχνουμε. 19

ΠΡΟΓΡΑΜΜΑ PROGRAM paragontiko(input,output); VAR num; FUNCTION fact(n:integer):integer; VAR gin; BEGIN gin:=1; FOR i:=n DOWNTO 2 DO BEGIN gin:=gin*i; writeln(gin) END; fact:=gin; END; BEGIN write( Give integer: ); read(num); write( The factorial of,num, is:,fact(num)); END. 20

TYXAIA ΕΞΟΔΟΣ ΠΡΟΓΡΑΜΜΑΤΟΣ Give integer: 8 8 56 336 1680 6720 20160 40320 The factorial of 8 is: 40320 21

ΠΑΡΑΔΕΙΓΜΑ 2 ΑΝΑΔΡΟΜΗ ΤΕΛΟΥΣ Πρόβλημα: Υπολογισμός παραγοντικού με αναδρομή.

ΑΛΓΟΡΙΘΜΟΣ ΣΕ ΕΛΕΥΘΕΡΟ ΚΕΙΜΕΝΟ Για να υπολογίσουμε το παραγοντικό ενός αριθμού n αρκεί να υπολογίσουμε το γινόμενο του n με το παραγοντικό του n-1. Για να υπολογίσουμε το παραγοντικό του n-1 υπολογίζουμε το γινόμενο του n-1 με το παραγοντικό του n-2. Αυτό συνεχίζεται μέχρι να υπολογίσουμε το παραγοντικό του 1 που είναι 1. Αφού υπολογίσαμε το παραγοντικό του 1 μπορούμε να υπολογίσουμε το παραγοντικό του 2. Αυτό συνεχίζεται μέχρι να υπολογίσουμε το παραγοντικό του n. 23

ΠΡΟΓΡΑΜΜΑ PROGRAM paragontiko1(input,output); VAR num; FUNCTION rfact(n:integer):integer; BEGIN IF n>0 THEN BEGIN write(n); rfact:=n*rfact(n-1) END ELSE rfact:=1; END; BEGIN write( Give integer: ); read(num); write( The factorial of,num, is:,rfact(num)); END. 24

TYXAIA ΕΞΟΔΟΣ ΠΡΟΓΡΑΜΜΑΤΟΣ Give integer: 8 8 7 6 5 4 3 2 1 The factorial of 8 is: 40320 25

ΑΝΑΔΡΟΜΗ ΚΑΙ ΑΝΤΙΣΤΡΟΦΗ Πρόβλημα: Να γραφεί πρόγραμμα που θα ζητά να του δίνεται ονόματα ζώων μέχρι να ανιχνεύσει ένα κενό αλφαριθμητικό. Στη συνέχεια να τυπώνει τα ονόματα που του δόθηκαν με αντίστροφη σειρά. 26

ΑΠΑΝΤΗΣΗ PROGRAM zwa(input,output); PROCEDURE backwards; VAR animal: ARRAY [1..15] OF char; i,j:integer; ch:char; BEGIN write( Select an animal: ); read(ch); i:=1; WHILE ch<>#13 DO BEGIN animal[i]:=ch; i:=i+1; read(ch) END; if animal[1]<> then backwards; FOR j:=1 TO i DO write(animal[i]); END; BEGIN backwards; END. 27

TYXAIA ΕΞΟΔΟΣ ΠΡΟΓΡΑΜΜΑΤΟΣ Select an animal: Bear Select an animal: Cat Select an animal: Dog Select an animal: Dog Cat Bear 28

ΠΑΡΑΔΕΙΓΜΑ 2 ΑΝΑΔΡΟΜΗ ΚΑΙ ΑΝΤΙΣΤΡΟΦΗ Πρόβλημα: Υπολογισμός δυαδικού ισοδυνάμου ενός ακεραίου. 29

ΑΛΓΟΡΙΘΜΟΣ ΣΕ ΕΛΕΥΘΕΡΟ ΚΕΙΜΕΝΟ To δυαδικό ισοδύναμο ενός ακεραίου υπολογίζεται με συνεχείς ακέραιες διαιρέσεις με παρονομαστή το 2. Στην πρώτη διαίρεση διαιρούμε τον αριθμό με το 2 και κρατάμε το υπόλοιπο. Στη δεύτερη διαίρεση διαιρούμε το πηλίκο της προηγούμενης με το 2 και κρατάμε το υπόλοιπο. Αυτό συνεχίζεται μέχρι το πηλίκο να γίνει 0. Τότε τυπώνουμε τα υπόλοιπα που υπολογίσαμε από το τελευταίο προς το πρώτο. 30

Πρόγραμμα PROGRAM metatropi(input,output); VAR num; PROCEDURE tobinary(n:integer); VAR r; BEGIN write(n); r := n mod 2; writeln(r); if n>=2 then tobinary(n DIV 2); write(r); END; BEGIN write( Give integer: ); read(num); tobinary(num); END. 31

TYXAIA ΕΞΟΔΟΣ ΠΡΟΓΡΑΜΜΑΤΟΣ Give integer: 20 20 0 10 0 5 1 2 0 1 1 10100 32

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

ΣΗΜΕΙΩΜΑ ΙΣΤΟΥΡΙΚΟΥ ΕΚΔΟΣΕΩΝ ΕΡΓΟΥ Το παρόν έργο αποτελεί την έκδοση 1.0. 34

ΣΗΜΕΙΩΜΑ ΑΝΑΦΟΡΑΣ Copyright Πανεπιστήμιο Πατρών, Δημήτριος Κουκόπουλος. «Σχεδίαση και Ανάλυση Αλγορίθμων. ΑΝΑΔΡΟΜΗ». Έκδοση: 1.0. Πάτρα 2015. Διαθέσιμο από τη δικτυακή διεύθυνση: https://eclass.upatras.gr/courses/culture109/. 35

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

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