SlideShare a Scribd company logo
ΠΛΗ10
ΕΝΟΤΗΤΑ 2: Αλγόριθµοι και Ψευδογλώσσα
Μάθηµα 2.7:
Αναδροµή
∆ηµήτρης Ψούνης
A. Αναδροµή
1. Αναδροµικές Συναρτήσεις
1. Υπολογισµός Παραγοντικού
2. ∆υαδική Αναζήτηση (Binary Search)
2. Αναδροµικές ∆ιαδικασίες
1. Ταξινόµηση µε Συγχώνευση (Merge Sort)
2. Γρήγορη Ταξινόµηση (Quick Sort)
Β. Ασκήσεις
1. Οι αριθµοί Fibonacci
2. Υπολογισµό ΜΚ∆ µε τον αλγόριθµο του Ευκλείδη
3. Πρόγραµµα: Ταξινόµηση Πίνακα
∆ηµήτρης Ψούνης, ΠΛΗ10, Μάθηµα 2.7: Αναδροµή
Περιεχόµενα Μαθήµατος
2
Α. Αναδροµή
1. Αναδροµικές Συναρτήσεις
3∆ηµήτρης Ψούνης, ΠΛΗ10, Μάθηµα 2.7: Αναδροµή
Ο όρος αναδροµή αναφέρεται σε µια συνάρτηση που καλεί τον εαυτό της!
Άρα µια συνάρτηση (ή διαδικασία) που στο σώµα της καλεί τον εαυτό της, θα ονοµάζεται
αναδροµική συνάρτηση (αντίστοιχα αναδροµική διαδικασία).
Η δηµιουργία µιας αναδροµικής συνάρτησης είναι πολύ χρήσιµη, ιδίως όταν κατασκευάζουµε
πράγµατα που ορίζονται αναδροµικά!
Ας δούµε ένα παράδειγµα:
Το παραγοντικό του φυσικού αριθµού n ορίζεται ως:
! ∙ 1 ∙ 2 ∙ ⋯ 2 ∙ 1
π.χ. έχουµε 1! 1, 	2! 2 ∙ 1, 	3! 3 ∙ 2 ∙ 1 6, 	4! 4 ∙ 3 ∙ 2 ∙ 1 24 κ.ο.κ.
Το παραγοντικό ορίζεται ωστόσο και αναδροµικά ως εξής:
! ∙ 1 ! αν 1
! 1, αν 1
Α. Αναδροµή
1. Αναδροµικές Συναρτήσεις
1. Υπολογισµός Παραγοντικού
4∆ηµήτρης Ψούνης, ΠΛΗ10, Μάθηµα 2.7: Αναδροµή
ΑΛΓΟΡΙΘΜΟΣ factorial
∆Ε∆ΟΜΕΝΑ
n,res: INTEGER;
ΣΥΝΑΡΤΗΣΗ factorial(n): INTEGER
∆ΙΕΠΑΦΗ
ΕΙΣΟ∆ΟΣ
n: INTEGER;
ΕΞΟ∆ΟΣ
factorial: INTEGER;
∆Ε∆ΟΜΕΝΑ
y:INTEGER;
ΑΡΧΗ
ΕΑΝ (n=1) ΤΟΤΕ
factorial:=1;
ΑΛΛΙΩΣ
y:=factorial(n-1);
factorial:=n*y;
ΕΑΝ-ΤΕΛΟΣ
ΤΕΛΟΣ-ΣΥΝΑΡΤΗΣΗΣ
ΑΡΧΗ
ΤΥΠΩΣΕ(EOLN, "∆ώσε το n: ");
∆ΙΑΒΑΣΕ(n);
res:=factorial(n);
ΤΥΠΩΣΕ(n,"!=",res);
ΤΕΛΟΣ
Α. Αναδροµή
1. Αναδροµικές Συναρτήσεις
1. Υπολογισµός Παραγοντικού
5∆ηµήτρης Ψούνης, ΠΛΗ10, Μάθηµα 2.7: Αναδροµή
Στον υπολογισµό µίας αναδροµικής συνάρτησης, κάθε αναδροµική κλήση έχει και το δικό της
χώρο στη µνήµη.
Ας δούµε πως τρέχει η κλήση factorial(3):
Καλεί την factorial(2):
Καλεί την factorial(1):
ΣΥΝΑΡΤΗΣΗ factorial(n): INTEGER
ΑΡΧΗ
ΕΑΝ (n=1) ΤΟΤΕ
factorial:=1;
ΑΛΛΙΩΣ
y:=factorial(n-1);
factorial:=n*y;
ΕΑΝ-ΤΕΛΟΣ
ΤΕΛΟΣ-ΣΥΝΑΡΤΗΣΗΣ
n
…
Χώρος
της fact(3)
3
y
n
Χώρος
της fact(3)
3
y
Χώρος
της fact(2)
n y
2
n
Χώρος
της fact(3)
3
y
Χώρος
της fact(2)
n y
2
Χώρος
της fact(1)
n y
1
Α. Αναδροµή
1. Αναδροµικές Συναρτήσεις
1. Υπολογισµός Παραγοντικού
6∆ηµήτρης Ψούνης, ΠΛΗ10, Μάθηµα 2.7: Αναδροµή
H factorial(1) επιστρέφει 1:
Η factorial(2) αποθηκεύει το 1 στο y
έπειτα επιστρέφει 2*1.
Η factorial(2) αποθηκεύει το 1 στο y
έπειτα επιστρέφει 3*2
ΣΥΝΑΡΤΗΣΗ factorial(n): INTEGER
ΑΡΧΗ
ΕΑΝ (n=1) ΤΟΤΕ
factorial:=1;
ΑΛΛΙΩΣ
y:=factorial(n-1);
factorial:=n*y;
ΕΑΝ-ΤΕΛΟΣ
ΤΕΛΟΣ-ΣΥΝΑΡΤΗΣΗΣ
n
Χώρος
της fact(3)
3
y
Χώρος
της fact(2)
n y
2
Χώρος
της fact(1)
n y
1 1
1
n
Χώρος
της fact(3)
3
y
Χώρος
της fact(2)
n y
2
2
1
n
Χώρος
της fact(3)
3
y
6
2
main
Α. Αναδροµή
1. Αναδροµικές Συναρτήσεις
1. Υπολογισµός Παραγοντικού
7∆ηµήτρης Ψούνης, ΠΛΗ10, Μάθηµα 2.7: Αναδροµή
Για να απεικονίσουµε τις αναδροµικές κλήσεις που γίνονται προτιµάται µία παράσταση όπου
κάθε αναδροµική κλήση στοιχίζεται λίγο δεξιότερα.
Με τον τρόπο αυτό µπορούµε να παρακολουθήσουµε αρκετά ικανοποιητικά την εκτέλεση ενός
αναδροµικού κώδικα:
ΣΥΝΑΡΤΗΣΗ factorial(n): INTEGER
ΑΡΧΗ
ΕΑΝ (n=1) ΤΟΤΕ
factorial:=1;
ΑΛΛΙΩΣ
y:=factorial(n-1);
factorial:=n*y;
ΕΑΝ-ΤΕΛΟΣ
ΤΕΛΟΣ-ΣΥΝΑΡΤΗΣΗΣ
ΚΛΗΣΗ factorial(3)
(3=1) ΟΧΙ
y:=factorial(2)
ΚΛΗΣΗ factorial(2)
(2=1) ΟΧΙ
y:=factorial(1)
ΚΛΗΣΗ factorial(1)
(1=1) ΝΑΙ
Επιστρέφει 1
y=1
Επιστρέφει 2*1=2
y=2
Επιστρέφει 3*2=6
Α. Αναδροµή
1. Αναδροµικές Συναρτήσεις
2. ∆υαδική Αναζήτηση (Binary Search)
8∆ηµήτρης Ψούνης, ΠΛΗ10, Μάθηµα 2.7: Αναδροµή
Κλασικό παράδειγµα αλγορίθµου που µπορεί να υλοποιηθεί αναδροµικά είναι η δυαδική
αναζήτηση (Binary Search).
Ο αλγόριθµος που είδαµε να υλοποιείται µε επανάληψη στους πίνακες, τώρα µπορεί να
αναδιατυπωθεί µε αναδροµή.
Σκεπτικό δυαδικής αναζήτησης µε αναδροµή του στοιχείου x σε έναν ταξινοµηµένο σε αύξουσα
σειρά πίνακα:
Αν το µεσαίο στοιχείο είναι το x, το στοιχείο βρέθηκε!
Αν το x είναι µικρότερο από το µεσαίο στοιχείο τότε αναδροµικά ψάχνει στο κοµµάτι του
πίνακα από την αρχή µέχρι το µεσαίο στοιχείο
Αν το x είναι µεγαλύτερο από το µεσαίο στοιχείο τότε αναδροµικά ψάχνει στο κοµµάτι του
πίνακα από το µεσαίο στοιχείο µέχρι το τέλος
Α. Αναδροµή
1. Αναδροµικές Συναρτήσεις
2. ∆υαδική Αναζήτηση (Binary Search)
9∆ηµήτρης Ψούνης, ΠΛΗ10, Μάθηµα 2.7: Αναδροµή
Μία υλοποίηση σε ψευδογλώσσα του αλγορίθµου (µε αναδροµή) είναι η ακόλουθη:
ΣΥΝΑΡΤΗΣΗ binary_search(PIN,x,start,finish): BOOLEAN
∆ΙΕΠΑΦΗ
…
∆Ε∆ΟΜΕΝΑ
check:BOOLEAN;
middle:INTEGER;
ΑΡΧΗ
ΕΑΝ (start>finish) ΤΟΤΕ
check:=FALSE;
ΑΛΛΙΩΣ
middle:=(start+finish) DIV 2;
ΕΑΝ (x=PIN[middle]) ΤΟΤΕ
check:=TRUE;
ΑΛΛΙΩΣ
ΕΑΝ (x>PIN[middle]) ΤΟΤΕ
check:=binary_search(PIN,x,middle+1,finish);
ΑΛΛΙΩΣ
check:=binary_search(PIN,x,start,middle-1);
ΕΑΝ-ΤΕΛΟΣ
ΕΑΝ-ΤΕΛΟΣ
ΕΑΝ-ΤΕΛΟΣ
binary_search:=check;
ΤΕΛΟΣ-ΣΥΝΑΡΤΗΣΗΣ
Α. Αναδροµή
1. Αναδροµικές Συναρτήσεις
2. ∆υαδική Αναζήτηση (Binary Search)
10∆ηµήτρης Ψούνης, ΠΛΗ10, Μάθηµα 2.7: Αναδροµή
Εκτελούµε τον αλγόριθµο ψάχνοντας το στοιχείο 11 στον πίνακα:
Κλήση: BinarySearch(A,11,1,15): middle=(1+15) div 2=8. x<A[middle]
Αναδροµική Κλήση: BinarySearch(A,11,1,7) : middle=(1+7) div 2=4 x>A[middle]
Αναδροµική Κλήση: BinarySearch(A,11,5,7) : middle=(5+7) div 2=6 x<A[middle]
Αναδροµική Κλήση: BinarySearch(A,11,5,5) : middle=(5+5) div 2=5 x=A[middle]
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
2 3 5 7 11 13 17 21 23 27 31 33 37 41 43
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
2 3 5 7 11 13 17 21 23 27 31 33 37 41 43
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
2 3 5 7 11 13 17 21 23 27 31 33 37 41 43
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
2 3 5 7 11 13 17 21 23 27 31 33 37 41 43
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
2 3 5 7 11 13 17 21 23 27 31 33 37 41 43
start
start
start
start=finish
finish
finish
finish
Α. Αναδροµή
1. Αναδροµικές Συναρτήσεις
2. ∆υαδική Αναζήτηση (Binary Search)
11∆ηµήτρης Ψούνης, ΠΛΗ10, Μάθηµα 2.7: Αναδροµή
Άσκηση: Κατασκευάστε ένα πρόγραµµα που να αναδεικνύει την χρήση της δυαδικής
αναζήτησης και παρουσιάστε ένα παράδειγµα εκτέλεσης για τον πίνακα Α=[1 3 5 7 9]
αναζητώντας το στοιχείο 7
Σηµείωση: Στο σηµείο αυτό συνίσταται να µελετήσετε πρώτα τις δύο εφαρµογές (αριθµοί
Fibonacci και αλγόριθµος Ευκλείδη) και έπειτα να προχωρήσετε µε την θεωρία του µαθήµατος.
Α. Αναδροµή
2. Αναδροµικές ∆ιαδικασίες
1. Ταξινόµηση µε Συγχώνευση (Merge Sort)
12∆ηµήτρης Ψούνης, ΠΛΗ10, Μάθηµα 2.7: Αναδροµή
Ένας ακόµη κλασικός αλγόριθµος ταξινόµησης που µάλιστα λειτουργεί µε αναδροµή, είναι η
Ταξινόµηση µε Συγχώνευση (Merge Sort).
Ο αλγόριθµος λειτουργεί ως εξής:
Ταξινοµεί το αριστερό κοµµάτι του πίνακα
Ταξινοµεί το δεξί κοµµάτι του πίνακα
Συγχωνεύει τα δύο ταξινοµηµένα πλέον κοµµάτια σε µία ταξινοµηµένη ακολουθία
Η ταξινόµηση κάθε κοµµατιού γίνεται µε αναδροµική κλήση της ίδιας διαδικασίας.
Α. Αναδροµή
2. Αναδροµικές ∆ιαδικασίες
1. Ταξινόµηση µε Συγχώνευση (Merge Sort)
13∆ηµήτρης Ψούνης, ΠΛΗ10, Μάθηµα 2.7: Αναδροµή
Η υλοποίηση σε ψευδογλώσσα είναι η ακόλουθη:
∆ΙΑ∆ΙΚΑΣΙΑ merge_sort(%PIN,start,finish)
∆ΙΕΠΑΦΗ
ΕΙΣΟ∆ΟΣ
PIN: ARRAY[1..MAX_N] OF INTEGER;
start,finish: INTEGER;
ΕΞΟ∆ΟΣ
PIN: ARRAY[1..MAX_N] OF INTEGER;
∆Ε∆ΟΜΕΝΑ
middle: INTEGER;
ΑΡΧΗ
ΕΑΝ (start<finish) ΤΟΤΕ
ΕΑΝ (start+1=finish) ΤΟΤΕ /* 2 στοιχεία */
ΕΑΝ (PIN[start]>PIN[finish]) ΤΟΤΕ
ΥΠΟΛΟΓΙΣΕ swap(%PIN[start],%PIN[finish]);
ΕΑΝ-ΤΕΛΟΣ
ΑΛΛΙΩΣ /* περισσότερα από 2 στοιχεία */
middle:=(start+finish) DIV 2;
ΥΠΟΛΟΓΙΣΕ merge_sort(%PIN,start,middle);
ΥΠΟΛΟΓΙΣΕ merge_sort(%PIN,middle+1,finish);
ΥΠΟΛΟΓΙΣΕ merge(%PIN,start,finish);
ΕΑΝ-ΤΕΛΟΣ
ΕΑΝ-ΤΕΛΟΣ
ΤΕΛΟΣ-∆ΙΑ∆ΙΚΑΣΙΑΣ
14∆ηµήτρης Ψούνης, ΠΛΗ10, Μάθηµα 2.7: Αναδροµή
Αναδροµική Κλήση MergeSort(Α,1,16)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
18 7 4 11 9 20 6 1 22 19 14 5 2 9 10 13
Α. Αναδροµή
2. Αναδροµικές ∆ιαδικασίες
1. Ταξινόµηση µε Συγχώνευση (Merge Sort)
15∆ηµήτρης Ψούνης, ΠΛΗ10, Μάθηµα 2.7: Αναδροµή
Αναδροµική Κλήση MergeSort(Α,1,16)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
18 7 4 11 9 20 6 1 22 19 14 5 2 3 10 13
1 2 3 4 5 6 7 8
18 7 4 11 9 20 6 1
9 10 11 12 13 14 15 16
22 19 14 5 2 3 10 13
Α. Αναδροµή
2. Αναδροµικές ∆ιαδικασίες
1. Ταξινόµηση µε Συγχώνευση (Merge Sort)
16∆ηµήτρης Ψούνης, ΠΛΗ10, Μάθηµα 2.7: Αναδροµή
Αναδροµική Κλήση (A,1,8)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
18 7 4 11 9 20 6 1 22 19 14 5 2 3 10 13
1 2 3 4 5 6 7 8
18 7 4 11 9 20 6 1
9 10 11 12 13 14 15 16
22 19 14 5 2 3 10 13
1 2 3 4
18 7 4 11
5 6 7 8
9 20 6 1
Α. Αναδροµή
2. Αναδροµικές ∆ιαδικασίες
1. Ταξινόµηση µε Συγχώνευση (Merge Sort)
17∆ηµήτρης Ψούνης, ΠΛΗ10, Μάθηµα 2.7: Αναδροµή
Αναδροµική Κλήση (A,1,4)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
18 7 4 11 9 20 6 1 22 19 14 5 2 3 10 13
1 2 3 4 5 6 7 8
18 7 4 11 9 20 6 1
9 10 11 12 13 14 15 16
22 19 14 5 2 3 10 13
1 2 3 4
18 7 4 11
5 6 7 8
9 20 6 1
1 2
18 7
3 4
4 11
Α. Αναδροµή
2. Αναδροµικές ∆ιαδικασίες
1. Ταξινόµηση µε Συγχώνευση (Merge Sort)
18∆ηµήτρης Ψούνης, ΠΛΗ10, Μάθηµα 2.7: Αναδροµή
Αναδροµική Κλήση (A,1,2): Ταξινοµηση του υποπίνακα
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
18 7 4 11 9 20 6 1 22 19 14 5 2 3 10 13
1 2 3 4 5 6 7 8
18 7 4 11 9 20 6 1
9 10 11 12 13 14 15 16
22 19 14 5 2 3 10 13
1 2 3 4
18 7 4 11
5 6 7 8
9 20 6 1
1 2
7 18
3 4
4 11
Α. Αναδροµή
2. Αναδροµικές ∆ιαδικασίες
1. Ταξινόµηση µε Συγχώνευση (Merge Sort)
19∆ηµήτρης Ψούνης, ΠΛΗ10, Μάθηµα 2.7: Αναδροµή
Αναδροµική Κλήση (A,3,4): Ταξινοµηση του υποπίνακα
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
18 7 4 11 9 20 6 1 22 19 14 5 2 3 10 13
1 2 3 4 5 6 7 8
18 7 4 11 9 20 6 1
9 10 11 12 13 14 15 16
22 19 14 5 2 3 10 13
1 2 3 4
18 7 4 11
5 6 7 8
9 20 6 1
1 2
7 18
3 4
4 11
Α. Αναδροµή
2. Αναδροµικές ∆ιαδικασίες
1. Ταξινόµηση µε Συγχώνευση (Merge Sort)
20∆ηµήτρης Ψούνης, ΠΛΗ10, Μάθηµα 2.7: Αναδροµή
Αναδροµική Κλήση (A,1,4): Συγχώνευση των δύο υποπινάκων
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
18 7 4 11 9 20 6 1 22 19 14 5 2 3 10 13
1 2 3 4 5 6 7 8
18 7 4 11 9 20 6 1
9 10 11 12 13 14 15 16
22 19 14 5 2 3 10 13
1 2 3 4
4 7 11 18
5 6 7 8
9 20 6 1
1 2
7 18
3 4
4 11
Α. Αναδροµή
2. Αναδροµικές ∆ιαδικασίες
1. Ταξινόµηση µε Συγχώνευση (Merge Sort)
21∆ηµήτρης Ψούνης, ΠΛΗ10, Μάθηµα 2.7: Αναδροµή
Αναδροµική Κλήση (A,5,8)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
18 7 4 11 9 20 6 1 22 19 14 5 2 3 10 13
1 2 3 4 5 6 7 8
18 7 4 11 9 20 6 1
9 10 11 12 13 14 15 16
22 19 14 5 2 3 10 13
1 2 3 4
4 7 11 18
5 6 7 8
9 20 6 1
1 2
7 18
3 4
4 11
5 6
9 20
7 8
6 1
Α. Αναδροµή
2. Αναδροµικές ∆ιαδικασίες
1. Ταξινόµηση µε Συγχώνευση (Merge Sort)
22∆ηµήτρης Ψούνης, ΠΛΗ10, Μάθηµα 2.7: Αναδροµή
Αναδροµική Κλήση (A,5,6): Ταξινοµηση του υποπίνακα
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
18 7 4 11 9 20 6 1 22 19 14 5 2 3 10 13
1 2 3 4 5 6 7 8
18 7 4 11 9 20 6 1
9 10 11 12 13 14 15 16
22 19 14 5 2 3 10 13
1 2 3 4
4 7 11 18
5 6 7 8
9 20 6 1
1 2
7 18
3 4
4 11
5 6
9 20
7 8
6 1
Α. Αναδροµή
2. Αναδροµικές ∆ιαδικασίες
1. Ταξινόµηση µε Συγχώνευση (Merge Sort)
23∆ηµήτρης Ψούνης, ΠΛΗ10, Μάθηµα 2.7: Αναδροµή
Αναδροµική Κλήση (A,7,8): Ταξινοµηση του υποπίνακα
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
18 7 4 11 9 20 6 1 22 19 14 5 2 3 10 13
1 2 3 4 5 6 7 8
18 7 4 11 9 20 6 1
9 10 11 12 13 14 15 16
22 19 14 5 2 3 10 13
1 2 3 4
4 7 11 18
5 6 7 8
9 20 6 1
1 2
7 18
3 4
4 11
5 6
9 20
7 8
1 6
Α. Αναδροµή
2. Αναδροµικές ∆ιαδικασίες
1. Ταξινόµηση µε Συγχώνευση (Merge Sort)
24∆ηµήτρης Ψούνης, ΠΛΗ10, Μάθηµα 2.7: Αναδροµή
Αναδροµική Κλήση (A,5,8): Συγχώνευση των δύο υποπινάκων
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
18 7 4 11 9 20 6 1 22 19 14 5 2 3 10 13
1 2 3 4 5 6 7 8
18 7 4 11 9 20 6 1
9 10 11 12 13 14 15 16
22 19 14 5 2 3 10 13
1 2 3 4
4 7 11 18
5 6 7 8
1 6 9 20
1 2
7 18
3 4
4 11
5 6
9 20
7 8
1 6
Α. Αναδροµή
2. Αναδροµικές ∆ιαδικασίες
1. Ταξινόµηση µε Συγχώνευση (Merge Sort)
25∆ηµήτρης Ψούνης, ΠΛΗ10, Μάθηµα 2.7: Αναδροµή
Αναδροµική Κλήση (A,1,8): Συγχώνευση των δύο υποπινάκων
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
18 7 4 11 9 20 6 1 22 19 14 5 2 3 10 13
1 2 3 4 5 6 7 8
1 4 6 7 9 11 18 20
9 10 11 12 13 14 15 16
22 19 14 5 2 3 10 13
1 2 3 4
4 7 11 18
5 6 7 8
1 6 9 20
1 2
7 18
3 4
4 11
5 6
9 20
7 8
1 6
Α. Αναδροµή
2. Αναδροµικές ∆ιαδικασίες
1. Ταξινόµηση µε Συγχώνευση (Merge Sort)
26∆ηµήτρης Ψούνης, ΠΛΗ10, Μάθηµα 2.7: Αναδροµή
Αντίστοιχα θα γίνουν όλες οι αναδροµικές κλήσεις στο (9,16)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
18 7 4 11 9 20 6 1 22 19 14 5 2 3 10 13
1 2 3 4 5 6 7 8
1 4 6 7 9 11 18 20
9 10 11 12 13 14 15 16
2 3 5 10 13 14 19 22
1 2 3 4
4 7 11 18
5 6 7 8
1 6 9 20
1 2
7 18
3 4
4 11
5 6
9 20
7 8
1 6
9 10 11 12
5 14 19 22
13 14 15 16
2 3 10 13
9 10
19 22
11 12
5 14
13 14
2 3
15 16
10 13
Α. Αναδροµή
2. Αναδροµικές ∆ιαδικασίες
1. Ταξινόµηση µε Συγχώνευση (Merge Sort)
27∆ηµήτρης Ψούνης, ΠΛΗ10, Μάθηµα 2.7: Αναδροµή
Αναδροµική Κλήση (A,1,16): Συγχώνευση των δύο υποπινάκων
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
1 2 3 4 5 6 7 9 10 11 13 14 18 19 20 22
1 2 3 4 5 6 7 8
1 4 6 7 9 11 18 20
9 10 11 12 13 14 15 16
2 3 5 10 13 14 19 22
1 2 3 4
4 7 11 18
5 6 7 8
1 6 9 20
1 2
7 18
3 4
4 11
5 6
9 20
7 8
1 6
9 10 11 12
5 14 19 22
13 14 15 16
2 3 10 13
9 10
19 22
11 12
5 14
13 14
2 3
15 16
10 13
Α. Αναδροµή
2. Αναδροµικές ∆ιαδικασίες
1. Ταξινόµηση µε Συγχώνευση (Merge Sort)
Α. Αναδροµή
2. Αναδροµικές ∆ιαδικασίες
1. Ταξινόµηση µε Συγχώνευση (Merge Sort)
28∆ηµήτρης Ψούνης, ΠΛΗ10, Μάθηµα 2.7: Αναδροµή
Η διαδικασία merge δουλεύει ως εξής:
Σαρώνει τους δύο πίνακες ταυτόχρονα από αριστερά προς τα δεξιά.
Συγκρίνει τα δύο τρέχοντα στοιχεία των πινάκων
Επιλέγει το µικρότερο και το βάζει στην επόµενη θέση της ταξινοµηµένης ακολουθίας
Όταν εξαντληθούν τα στοιχεία του ένος από τους δύο πίνακες, βάζουµε όσα στοιχεία απέµειναν
από τον άλλο πίνακα στο τέλος της ταξινοµηµένης ακολουθίας.
Στο παράδειγµα βλέπουµε µερικά βήµατα και τους µετρητές που χρησιµοποιούνται.
29∆ηµήτρης Ψούνης, ΠΛΗ10, Μάθηµα 2.7: Αναδροµή
Α. Αναδροµή
2. Αναδροµικές ∆ιαδικασίες
1. Ταξινόµηση µε Συγχώνευση (Merge Sort)
30∆ηµήτρης Ψούνης, ΠΛΗ10, Μάθηµα 2.7: Αναδροµή
Μία υλοποίηση της merge είναι η ακόλουθη:
∆ΙΑ∆ΙΚΑΣΙΑ merge(%PIN,start,finish)
∆ΙΕΠΑΦΗ
ΕΙΣΟ∆ΟΣ
PIN: ARRAY[1..MAX_N] OF INTEGER;
start,finish: INTEGER;
ΕΞΟ∆ΟΣ
PIN: ARRAY[1..MAX_N] OF INTEGER;
∆Ε∆ΟΜΕΝΑ
C: ARRAY[1..MAX_N] OF INTEGER;
middle: INTEGER;
i,j,k:INTEGER;
n: INTEGER;
m: INTEGER;
ΑΡΧΗ
middle:=(start+finish) DIV 2;
/* 1ος πίνακας PIN[start...middle]*/
i:=start;
n:=middle;
/* 2ος πίνακας PIN[middle+1...finish]*/
j:=middle+1;
m:=finish;
/* C: συγχωνευµένος πίνακας */
k:=1; (συνεχίζεται…)
Α. Αναδροµή
2. Αναδροµικές ∆ιαδικασίες
1. Ταξινόµηση µε Συγχώνευση (Merge Sort)
31∆ηµήτρης Ψούνης, ΠΛΗ10, Μάθηµα 2.7: Αναδροµή
Μία υλοποίηση της merge είναι η ακόλουθη:
(συνέχεια…)
/* 1. Συγχώνευση των δύο πινάκων */
ΕΝΟΣΩ (i<=n AND j<=m) ΕΠΑΝΑΛΑΒΕ
ΕΑΝ (PIN[i]<PIN[j]) ΤΟΤΕ
C[k]:=PIN[i];
k:=k+1;
i:=i+1;
ΑΛΛΙΩΣ
C[k]:=PIN[j];
k:=k+1;
j:=j+1;
ΕΑΝ-ΤΕΛΟΣ
ΕΝΟΣΩ-ΤΕΛΟΣ
(συνεχίζεται…)
Α. Αναδροµή
2. Αναδροµικές ∆ιαδικασίες
1. Ταξινόµηση µε Συγχώνευση (Merge Sort)
32∆ηµήτρης Ψούνης, ΠΛΗ10, Μάθηµα 2.7: Αναδροµή
/* 2. Αντιγραφή του πίνακα που «περισσεύει στο τέλος του συγχωνευµένου πίνακα */
ΕΑΝ (i=n+1) ΤΟΤΕ /* Εξαντλήθηκε ο 1ος πίνακας */
ΕΝΟΣΩ (j<=m) ΕΠΑΝΑΛΑΒΕ
C[k]:=PIN[j];
k:=k+1;
j:=j+1;
ΕΝΟΣΩ-ΤΕΛΟΣ
ΑΛΛΙΩΣ /* Εξαντλήθηκε ο 2ος πίνακας */
ΕΝΟΣΩ (i<=n) ΕΠΑΝΑΛΑΒΕ
C[k]:=PIN[i];
k:=k+1;
i:=i+1;
ΕΝΟΣΩ-ΤΕΛΟΣ
ΕΑΝ-ΤΕΛΟΣ
/* 3. Αντιγραφή του C στον PIN */
k:=1;
i:=start;
ΕΝΟΣΩ (i<=finish) ΕΠΑΝΑΛΑΒΕ
PIN[i]:=C[k];
i:=i+1;
k:=k+1;
ΕΝΟΣΩ-ΤΕΛΟΣ
ΤΕΛΟΣ-∆ΙΑ∆ΙΚΑΣΙΑΣ
Α. Αναδροµή
2. Αναδροµικές ∆ιαδικασίες
1. Ταξινόµηση µε Συγχώνευση (Merge Sort)
33∆ηµήτρης Ψούνης, ΠΛΗ10, Μάθηµα 2.7: Αναδροµή
Άσκηση: Κατασκευάστε ένα πρόγραµµα που να αναδεικνύει την χρήση της merge sort και
παρουσιάστε ένα παράδειγµα εκτέλεσης για τον πίνακα Α=[6 2 4 1 8 10 11 12]
Α. Αναδροµή
2. Αναδροµικές ∆ιαδικασίες
2. Γρήγορη Ταξινόµηση (Quick Sort)
34∆ηµήτρης Ψούνης, ΠΛΗ10, Μάθηµα 2.7: Αναδροµή
Τελευταίος αλγόριθµος ταξινόµησης που θα µελετήσουµε (και λειτουργεί µε αναδροµή), είναι η
Γρήγορη Ταξινόµηση (Quick Sort).
Ο αλγόριθµος λειτουργεί ως εξής:
Επιλέγει ένα Στοιχείο του Πίνακα (Οδηγό Στοιχείο – Εδώ το στοιχείο που είναι στην πρώτη
θέση)
Χωρίζει τον πίνακα σε δύο µέρη:
Τα στοιχεία που είναι µικρότερα του οδηγού στοιχείου
Τα στοιχεία που είναι µεγαλύτερα ή ίσα του οδηγού στοιχείου
Επαναλαµβάνει αναδροµικά στους δύο υποπίνακες που προέκυψαν.
Α. Αναδροµή
2. Αναδροµικές ∆ιαδικασίες
2. Γρήγορη Ταξινόµηση (Quick Sort)
35∆ηµήτρης Ψούνης, ΠΛΗ10, Μάθηµα 2.7: Αναδροµή
Η υλοποίηση σε ψευδογλώσσα είναι η ακόλουθη:
∆ΙΑ∆ΙΚΑΣΙΑ quick_sort(%PIN,start,finish)
∆ΙΕΠΑΦΗ
ΕΙΣΟ∆ΟΣ
PIN: ARRAY[1..MAX_N] OF INTEGER;
start,finish: INTEGER;
ΕΞΟ∆ΟΣ
PIN: ARRAY[1..MAX_N] OF INTEGER;
ΑΡΧΗ
ΕΑΝ (start<finish) ΤΟΤΕ
pos=partition(%PIN,start,finish); /* ∆ιαµέριση του πίνακα */
ΥΠΟΛΟΓΙΣΕ quick_sort(%PIN,start,pos); /* Αναδροµή στον αριστερό υποπίνακα */
ΥΠΟΛΟΓΙΣΕ quick_sort(%PIN,pos+1,finish);/* Αναδροµή στον δεξιό υποπίνακα */
ΕΑΝ-ΤΕΛΟΣ
ΤΕΛΟΣ-∆ΙΑ∆ΙΚΑΣΙΑΣ
Ο αλγόριθµος ταξινόµησης QuickSort (2.Παράδειγµα Εκτέλεσης)
36∆ηµήτρης Ψούνης, ΠΛΗ10, Μάθηµα 2.7: Αναδροµή
1 2 3 4 5 6 7 8 9 10
18 7 4 11 9 20 6 1 22 19
1 7 4 11 9 6 20 18 22 19
1 2 3 4 5 6
1 7 4 11 9 6
1 7 4 11 9 6
7 8 9 10
20 18 22 19
19 18 22 20
2 3 4 5 6
7 4 11 9 6
6 4 11 9 7
2 3
6 4
4 6
4 5 6
11 9 7
7 9 11
2
4
4
3
6
6
4 5
11 9
7 9
6
11
11
4
7
7
5
9
9
1
1
1
1
1
2
4
3
6
4
7
5
9
6
11
7
18
7 8
19 18
18 19
9 10
22 20
20 22
7
18
18
8
19
19
9
20
20
10
22
22
8
19
9
20
10
22
8
19
Α. Αναδροµή
2. Αναδροµικές ∆ιαδικασίες
2. Γρήγορη Ταξινόµηση (Quick Sort)
37∆ηµήτρης Ψούνης, ΠΛΗ10, Μάθηµα 2.7: Αναδροµή
Η διαµέριση των στοιχείων στα µικρότερα και µεγαλύτερα ή ίσα µπορεί να γίνει µε πολλούς
τρόπους:
Π.χ. ένας απλός τρόπος είναι να χρησιµοποιήσουµε έναν βοηθητικό πίνακα που να
βάζουµε στα αριστερά τα µικρότερα στοιχεία και στα δεξιά τα µεγαλύτερα στοιχεία του
οδηγού.
Ωστόσο εµείς θα µελετήσουµε έναν τρόπο διαµέρισης, που αναφέρεται ως σχήµα του Hoare:
Σαρώνουµε τον πίνακα από αριστερά ψάχνοντας για ένα στοιχείο που είναι µεγαλύτερο (ή
ίσο) του οδηγού
Σαρώνουµε τον πίνακα από δεξιά ψάχνοντας για ένα στοιχείο που είναι µικρότερο (ή ίσο)
του οδηγού
Ανταλλάσσουµε τα δύο στοιχεία και επαναλαµβάνουµε µέχρι να γίνει ο χωρισµός των
στοιχείων.
Θα µελετήσουµε το σχήµα του Hoare µε παραδείγµατα (επόµενη διαφάνεια)
1 2
6 4
4 6
Α. Αναδροµή
2. Αναδροµικές ∆ιαδικασίες
2. Γρήγορη Ταξινόµηση (Quick Sort)
38∆ηµήτρης Ψούνης, ΠΛΗ10, Μάθηµα 2.7: Αναδροµή
Παράδειγµα εκτέλεσης της partition:
Παραδείγµατα εκτέλεσης µε 2 στοιχεία: και µε 1 στοιχειο:
1 2 3 4 5 6 7 8 9 10
18 7 4 11 9 20 6 1 22 19
i=1 j=8
1 2 3 4 5 6 7 8 9 10
18 7 4 11 9 20 6 1 22 19
1 18 22 19
1 2 3 4 5 6 7 8 9 10
18 7 4 11 9 20 6 1 22 19
1 18 22 19i=6 j=7
1 2 3 4 5 6 7 8 9 10
1 7 4 11 8 6 20 18 22 19
1 2 3 4 5 6 7 8 9 10
18 7 4 11 9 20 6 1 22 19
1 7 4 11 8 6 20 18 22 19
i=7j=6
1 2 3 4 5 6 7 8 9 10
1 7 4 11 8 6 20 18 22 19
1 2
6 4
i=1
j=1 i=2
1 2
4 6
1 2
4 6
i=1
1 2
4 6
j=2
j=1
1
6
i=1
j=1
τερµατισµός
Α. Αναδροµή
2. Αναδροµικές ∆ιαδικασίες
2. Γρήγορη Ταξινόµηση (Quick Sort)
39∆ηµήτρης Ψούνης, ΠΛΗ10, Μάθηµα 2.7: Αναδροµή
Η υλοποίηση της partition µε το σχήµα του Hoare σε ψευδογλώσσα είναι η ακόλουθη:
ΣΥΝΑΡΤΗΣΗ
partition(%PIN,start,finish):INTEGER
∆ΙΕΠΑΦΗ
ΕΙΣΟ∆ΟΣ
PIN: ARRAY[1..MAX_N] OF INTEGER;
start,finish: INTEGER;
ΕΞΟ∆ΟΣ
PIN: ARRAY[1..MAX_N] OF INTEGER;
partition: INTEGER;
∆Ε∆ΟΜΕΝΑ
pivot,i,j: INTEGER;
stop: BOOLEAN;
ΑΡΧΗ
pivot:=PIN[start];
i:=start-1;
j:=finish+1;
stop:=FALSE;
ΕΝΟΣΩ (stop=FALSE) ΕΠΑΝΑΛΑΒΕ
ΕΠΑΝΑΛΑΒΕ
j:=j-1;
ΜΕΧΡΙ (PIN[j]<=pivot)
ΕΠΑΝΑΛΑΒΕ
i:=i+1;
ΜΕΧΡΙ (PIN[i]>=pivot)
ΕΑΝ (i<j) ΤΟΤΕ
ΥΠΟΛΟΓΙΣΕ swap(%PIN[i],%PIN[j]);
ΑΛΛΙΩΣ
stop:=TRUE;
partition:=j;
ΕΑΝ-ΤΕΛΟΣ
ΕΝΟΣΩ-ΤΕΛΟΣ
ΤΕΛΟΣ-ΣΥΝΑΡΤΗΣΗΣ
Α. Αναδροµή
2. Αναδροµικές ∆ιαδικασίες
2. Γρήγορη Ταξινόµηση (Quick Sort)
40∆ηµήτρης Ψούνης, ΠΛΗ10, Μάθηµα 2.7: Αναδροµή
Άσκηση: Κατασκευάστε ένα πρόγραµµα που να αναδεικνύει την χρήση της merge sort και
παρουσιάστε ένα παράδειγµα εκτέλεσης για τον πίνακα Α=[6 2 4 1 8 10 11 12]
Β. Ασκήσεις
Εφαρµογή 1 (Αναδροµή: Η ακολουθία FIbonacci)
41∆ηµήτρης Ψούνης, ΠΛΗ10, Μάθηµα 2.7: Αναδροµή
Η ακολουθία fibonacci ορίζεται ως:
Fn=Fn-1+Fn-2, για n>2
F2=1
F1=1
Για παράδειγµα έχουµε F1=1,F2=1,F3=2,F4=3,F5=5,F6=8 κ.ο.κ.
Ορίστε την συνάρτηση fibonacci(n) που δέχεται ως όρισµα έναν φυσικό και επιστρέφει το n-
οστό fibonacci.
Έπειτα κατασκευάστε έναν αλγόριθµο που διαβάζει από τον χρήστη έναν ακέραιο και
υπολογίζει και επιστρέφει τον αριθµό fibonacci του αριθµού που εισήγαγε ο χρήστης.
Β. Ασκήσεις
Εφαρµογή 2 (Αναδροµή: ΜΚ∆ µε τον αλγόριθµο του Ευκλείδη)
42∆ηµήτρης Ψούνης, ΠΛΗ10, Μάθηµα 2.7: Αναδροµή
O αλγόριθµος του Ευκλείδη για την εύρεση του Μέγιστου Κοινού ∆ιαιρέτη δύο (φυσικών)
αριθµών:
Ξεκινά µε ένα ζεύγος φυσικών και σχηµατίζει ένα νέο ζευγάρι µε τον µικρότερο αριθµό και
την διαφορά του µικρότερου από τον µεγαλύτερο αριθµό.
Η διαδικασία επαναλαµβάνεται εωσότου οι αριθµοί γίνουν ίσοι. Ο αριθµός αυτός είναι ο
ΜΚ∆ των αρχικών αριθµών.
Μαθηµατικά ο ΜΚ∆(a,b) όπου a,b είναι φυσικοί:
Είναι ίσο µε a, αν a=b
Είναι ίσο µε ΜΚ∆(a,b-a), αν a<b
Είναι ίσο µε ΜΚ∆(a-b,b), αλλιώς
Κατασκευάστε έναν αλγόριθµο που θα υλοποιεί µε µία αναδροµική συνάρτηση τον υπολογισµό
του ΜΚ∆ και θα ζητάει από το χρήστη να εισάγει τους δύο φυσικούς, θα κάνει κατάλληλη κλήση
της συνάρτησης και θα τυπώνει τον ΜΚ∆ των αριθµών.
Β. Ασκήσεις
Εφαρµογή 3 (Πρόγραµµα: Ταξινόµηση Πίνακα)
43∆ηµήτρης Ψούνης, ΠΛΗ10, Μάθηµα 2.7: Αναδροµή
Επεκτείνετε το πρόγραµµα της ταξινόµησης πινάκων ώστε να ενσωµατώνει και τους
αλγορίθµους της ταξινόµησης µε συγχώνευση (Merge Sort) και της γρήγορης ταξινόµησης
(Quick Sort).

More Related Content

What's hot

ΓΛΩΣΣΑ C - ΜΑΘΗΜΑ 6 (ΕΚΤΥΠΩΣΗ)
ΓΛΩΣΣΑ C - ΜΑΘΗΜΑ 6 (ΕΚΤΥΠΩΣΗ)ΓΛΩΣΣΑ C - ΜΑΘΗΜΑ 6 (ΕΚΤΥΠΩΣΗ)
ΓΛΩΣΣΑ C - ΜΑΘΗΜΑ 6 (ΕΚΤΥΠΩΣΗ)
Dimitris Psounis
 
Η ΓΛΩΣΣΑ C - ΜΑΘΗΜΑ 8 - ΔΕΙΚΤΕΣ
Η ΓΛΩΣΣΑ C - ΜΑΘΗΜΑ 8 - ΔΕΙΚΤΕΣΗ ΓΛΩΣΣΑ C - ΜΑΘΗΜΑ 8 - ΔΕΙΚΤΕΣ
Η ΓΛΩΣΣΑ C - ΜΑΘΗΜΑ 8 - ΔΕΙΚΤΕΣ
Dimitris Psounis
 
ΓΛΩΣΣΑ C - ΜΑΘΗΜΑ 4 - ΤΕΛΕΣΤΕΣ και η ΔΟΜΗ ΕΛΕΓΧΟΥ
ΓΛΩΣΣΑ C - ΜΑΘΗΜΑ 4 - ΤΕΛΕΣΤΕΣ και η ΔΟΜΗ ΕΛΕΓΧΟΥΓΛΩΣΣΑ C - ΜΑΘΗΜΑ 4 - ΤΕΛΕΣΤΕΣ και η ΔΟΜΗ ΕΛΕΓΧΟΥ
ΓΛΩΣΣΑ C - ΜΑΘΗΜΑ 4 - ΤΕΛΕΣΤΕΣ και η ΔΟΜΗ ΕΛΕΓΧΟΥ
Dimitris Psounis
 
Η Γλώσσα C - Μάθημα 1
Η Γλώσσα C - Μάθημα 1Η Γλώσσα C - Μάθημα 1
Η Γλώσσα C - Μάθημα 1
Dimitris Psounis
 
Η ΓΛΩΣΣΑ C - ΜΑΘΗΜΑ 15 - ΣΥΝΑΡΤΗΣΕΙΣ ΕΙΣΟΔΟΥ
Η ΓΛΩΣΣΑ C - ΜΑΘΗΜΑ 15 - ΣΥΝΑΡΤΗΣΕΙΣ ΕΙΣΟΔΟΥΗ ΓΛΩΣΣΑ C - ΜΑΘΗΜΑ 15 - ΣΥΝΑΡΤΗΣΕΙΣ ΕΙΣΟΔΟΥ
Η ΓΛΩΣΣΑ C - ΜΑΘΗΜΑ 15 - ΣΥΝΑΡΤΗΣΕΙΣ ΕΙΣΟΔΟΥ
Dimitris Psounis
 
ΠΛΗ10.ΚΑΡΤΑ ΜΑΘΗΜΑ 1.1
ΠΛΗ10.ΚΑΡΤΑ ΜΑΘΗΜΑ 1.1ΠΛΗ10.ΚΑΡΤΑ ΜΑΘΗΜΑ 1.1
ΠΛΗ10.ΚΑΡΤΑ ΜΑΘΗΜΑ 1.1
Dimitris Psounis
 
ΠΛΗ10 ΤΥΠΟΛΟΓΙΟ ΕΝΟΤΗΤΑΣ 1
ΠΛΗ10 ΤΥΠΟΛΟΓΙΟ ΕΝΟΤΗΤΑΣ 1ΠΛΗ10 ΤΥΠΟΛΟΓΙΟ ΕΝΟΤΗΤΑΣ 1
ΠΛΗ10 ΤΥΠΟΛΟΓΙΟ ΕΝΟΤΗΤΑΣ 1
Dimitris Psounis
 
ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ ΣΕ C - ΜΑΘΗΜΑ 2
ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ ΣΕ C - ΜΑΘΗΜΑ 2 ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ ΣΕ C - ΜΑΘΗΜΑ 2
ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ ΣΕ C - ΜΑΘΗΜΑ 2
Dimitris Psounis
 
ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ ΣΕ C - ΜΑΘΗΜΑ 4
ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ ΣΕ C - ΜΑΘΗΜΑ 4ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ ΣΕ C - ΜΑΘΗΜΑ 4
ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ ΣΕ C - ΜΑΘΗΜΑ 4
Dimitris Psounis
 
ΓΛΩΣΣΑ C - ΜΑΘΗΜΑ 18
ΓΛΩΣΣΑ C - ΜΑΘΗΜΑ 18 ΓΛΩΣΣΑ C - ΜΑΘΗΜΑ 18
ΓΛΩΣΣΑ C - ΜΑΘΗΜΑ 18
Dimitris Psounis
 
ΠΛΗ10 ΜΑΘΗΜΑ 2.8
ΠΛΗ10 ΜΑΘΗΜΑ 2.8ΠΛΗ10 ΜΑΘΗΜΑ 2.8
ΠΛΗ10 ΜΑΘΗΜΑ 2.8
Dimitris Psounis
 
ΠΛΗ10 ΜΑΘΗΜΑ 1.1
ΠΛΗ10 ΜΑΘΗΜΑ 1.1ΠΛΗ10 ΜΑΘΗΜΑ 1.1
ΠΛΗ10 ΜΑΘΗΜΑ 1.1
Dimitris Psounis
 
ΠΛΗ10 ΜΑΘΗΜΑ 2.4
ΠΛΗ10 ΜΑΘΗΜΑ 2.4ΠΛΗ10 ΜΑΘΗΜΑ 2.4
ΠΛΗ10 ΜΑΘΗΜΑ 2.4
Dimitris Psounis
 
Η ΓΛΩΣΣΑ C - ΜΑΘΗΜΑ 14 - ΕΜΒΕΛΕΙΑ ΜΕΤΑΒΛΗΤΩΝ
Η ΓΛΩΣΣΑ C - ΜΑΘΗΜΑ 14 - ΕΜΒΕΛΕΙΑ ΜΕΤΑΒΛΗΤΩΝΗ ΓΛΩΣΣΑ C - ΜΑΘΗΜΑ 14 - ΕΜΒΕΛΕΙΑ ΜΕΤΑΒΛΗΤΩΝ
Η ΓΛΩΣΣΑ C - ΜΑΘΗΜΑ 14 - ΕΜΒΕΛΕΙΑ ΜΕΤΑΒΛΗΤΩΝ
Dimitris Psounis
 
ΠΛΗ31 ΜΑΘΗΜΑ 2.2
ΠΛΗ31 ΜΑΘΗΜΑ 2.2ΠΛΗ31 ΜΑΘΗΜΑ 2.2
ΠΛΗ31 ΜΑΘΗΜΑ 2.2
Dimitris Psounis
 
Η ΓΛΩΣΣΑ C - ΜΑΘΗΜΑ 7 - ΠΙΝΑΚΕΣ
Η ΓΛΩΣΣΑ C - ΜΑΘΗΜΑ 7 - ΠΙΝΑΚΕΣΗ ΓΛΩΣΣΑ C - ΜΑΘΗΜΑ 7 - ΠΙΝΑΚΕΣ
Η ΓΛΩΣΣΑ C - ΜΑΘΗΜΑ 7 - ΠΙΝΑΚΕΣ
Dimitris Psounis
 
ΓΛΩΣΣΑ C - ΜΑΘΗΜΑ 11
ΓΛΩΣΣΑ C - ΜΑΘΗΜΑ 11ΓΛΩΣΣΑ C - ΜΑΘΗΜΑ 11
ΓΛΩΣΣΑ C - ΜΑΘΗΜΑ 11
Dimitris Psounis
 
ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ ΣΕ C - ΜΑΘΗΜΑ 7
ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ ΣΕ C - ΜΑΘΗΜΑ 7ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ ΣΕ C - ΜΑΘΗΜΑ 7
ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ ΣΕ C - ΜΑΘΗΜΑ 7
Dimitris Psounis
 
ΑΛΓΟΡΙΘΜΟΙ ΣΕ C - ΜΑΘΗΜΑ 1 - ΔΙΑΠΕΡΑΣΗ ΠΙΝΑΚΑ
ΑΛΓΟΡΙΘΜΟΙ ΣΕ C - ΜΑΘΗΜΑ 1 - ΔΙΑΠΕΡΑΣΗ ΠΙΝΑΚΑΑΛΓΟΡΙΘΜΟΙ ΣΕ C - ΜΑΘΗΜΑ 1 - ΔΙΑΠΕΡΑΣΗ ΠΙΝΑΚΑ
ΑΛΓΟΡΙΘΜΟΙ ΣΕ C - ΜΑΘΗΜΑ 1 - ΔΙΑΠΕΡΑΣΗ ΠΙΝΑΚΑ
Dimitris Psounis
 
ΠΛΗ20 ΜΑΘΗΜΑ 1.5
ΠΛΗ20 ΜΑΘΗΜΑ 1.5ΠΛΗ20 ΜΑΘΗΜΑ 1.5
ΠΛΗ20 ΜΑΘΗΜΑ 1.5
Dimitris Psounis
 

What's hot (20)

ΓΛΩΣΣΑ C - ΜΑΘΗΜΑ 6 (ΕΚΤΥΠΩΣΗ)
ΓΛΩΣΣΑ C - ΜΑΘΗΜΑ 6 (ΕΚΤΥΠΩΣΗ)ΓΛΩΣΣΑ C - ΜΑΘΗΜΑ 6 (ΕΚΤΥΠΩΣΗ)
ΓΛΩΣΣΑ C - ΜΑΘΗΜΑ 6 (ΕΚΤΥΠΩΣΗ)
 
Η ΓΛΩΣΣΑ C - ΜΑΘΗΜΑ 8 - ΔΕΙΚΤΕΣ
Η ΓΛΩΣΣΑ C - ΜΑΘΗΜΑ 8 - ΔΕΙΚΤΕΣΗ ΓΛΩΣΣΑ C - ΜΑΘΗΜΑ 8 - ΔΕΙΚΤΕΣ
Η ΓΛΩΣΣΑ C - ΜΑΘΗΜΑ 8 - ΔΕΙΚΤΕΣ
 
ΓΛΩΣΣΑ C - ΜΑΘΗΜΑ 4 - ΤΕΛΕΣΤΕΣ και η ΔΟΜΗ ΕΛΕΓΧΟΥ
ΓΛΩΣΣΑ C - ΜΑΘΗΜΑ 4 - ΤΕΛΕΣΤΕΣ και η ΔΟΜΗ ΕΛΕΓΧΟΥΓΛΩΣΣΑ C - ΜΑΘΗΜΑ 4 - ΤΕΛΕΣΤΕΣ και η ΔΟΜΗ ΕΛΕΓΧΟΥ
ΓΛΩΣΣΑ C - ΜΑΘΗΜΑ 4 - ΤΕΛΕΣΤΕΣ και η ΔΟΜΗ ΕΛΕΓΧΟΥ
 
Η Γλώσσα C - Μάθημα 1
Η Γλώσσα C - Μάθημα 1Η Γλώσσα C - Μάθημα 1
Η Γλώσσα C - Μάθημα 1
 
Η ΓΛΩΣΣΑ C - ΜΑΘΗΜΑ 15 - ΣΥΝΑΡΤΗΣΕΙΣ ΕΙΣΟΔΟΥ
Η ΓΛΩΣΣΑ C - ΜΑΘΗΜΑ 15 - ΣΥΝΑΡΤΗΣΕΙΣ ΕΙΣΟΔΟΥΗ ΓΛΩΣΣΑ C - ΜΑΘΗΜΑ 15 - ΣΥΝΑΡΤΗΣΕΙΣ ΕΙΣΟΔΟΥ
Η ΓΛΩΣΣΑ C - ΜΑΘΗΜΑ 15 - ΣΥΝΑΡΤΗΣΕΙΣ ΕΙΣΟΔΟΥ
 
ΠΛΗ10.ΚΑΡΤΑ ΜΑΘΗΜΑ 1.1
ΠΛΗ10.ΚΑΡΤΑ ΜΑΘΗΜΑ 1.1ΠΛΗ10.ΚΑΡΤΑ ΜΑΘΗΜΑ 1.1
ΠΛΗ10.ΚΑΡΤΑ ΜΑΘΗΜΑ 1.1
 
ΠΛΗ10 ΤΥΠΟΛΟΓΙΟ ΕΝΟΤΗΤΑΣ 1
ΠΛΗ10 ΤΥΠΟΛΟΓΙΟ ΕΝΟΤΗΤΑΣ 1ΠΛΗ10 ΤΥΠΟΛΟΓΙΟ ΕΝΟΤΗΤΑΣ 1
ΠΛΗ10 ΤΥΠΟΛΟΓΙΟ ΕΝΟΤΗΤΑΣ 1
 
ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ ΣΕ C - ΜΑΘΗΜΑ 2
ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ ΣΕ C - ΜΑΘΗΜΑ 2 ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ ΣΕ C - ΜΑΘΗΜΑ 2
ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ ΣΕ C - ΜΑΘΗΜΑ 2
 
ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ ΣΕ C - ΜΑΘΗΜΑ 4
ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ ΣΕ C - ΜΑΘΗΜΑ 4ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ ΣΕ C - ΜΑΘΗΜΑ 4
ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ ΣΕ C - ΜΑΘΗΜΑ 4
 
ΓΛΩΣΣΑ C - ΜΑΘΗΜΑ 18
ΓΛΩΣΣΑ C - ΜΑΘΗΜΑ 18 ΓΛΩΣΣΑ C - ΜΑΘΗΜΑ 18
ΓΛΩΣΣΑ C - ΜΑΘΗΜΑ 18
 
ΠΛΗ10 ΜΑΘΗΜΑ 2.8
ΠΛΗ10 ΜΑΘΗΜΑ 2.8ΠΛΗ10 ΜΑΘΗΜΑ 2.8
ΠΛΗ10 ΜΑΘΗΜΑ 2.8
 
ΠΛΗ10 ΜΑΘΗΜΑ 1.1
ΠΛΗ10 ΜΑΘΗΜΑ 1.1ΠΛΗ10 ΜΑΘΗΜΑ 1.1
ΠΛΗ10 ΜΑΘΗΜΑ 1.1
 
ΠΛΗ10 ΜΑΘΗΜΑ 2.4
ΠΛΗ10 ΜΑΘΗΜΑ 2.4ΠΛΗ10 ΜΑΘΗΜΑ 2.4
ΠΛΗ10 ΜΑΘΗΜΑ 2.4
 
Η ΓΛΩΣΣΑ C - ΜΑΘΗΜΑ 14 - ΕΜΒΕΛΕΙΑ ΜΕΤΑΒΛΗΤΩΝ
Η ΓΛΩΣΣΑ C - ΜΑΘΗΜΑ 14 - ΕΜΒΕΛΕΙΑ ΜΕΤΑΒΛΗΤΩΝΗ ΓΛΩΣΣΑ C - ΜΑΘΗΜΑ 14 - ΕΜΒΕΛΕΙΑ ΜΕΤΑΒΛΗΤΩΝ
Η ΓΛΩΣΣΑ C - ΜΑΘΗΜΑ 14 - ΕΜΒΕΛΕΙΑ ΜΕΤΑΒΛΗΤΩΝ
 
ΠΛΗ31 ΜΑΘΗΜΑ 2.2
ΠΛΗ31 ΜΑΘΗΜΑ 2.2ΠΛΗ31 ΜΑΘΗΜΑ 2.2
ΠΛΗ31 ΜΑΘΗΜΑ 2.2
 
Η ΓΛΩΣΣΑ C - ΜΑΘΗΜΑ 7 - ΠΙΝΑΚΕΣ
Η ΓΛΩΣΣΑ C - ΜΑΘΗΜΑ 7 - ΠΙΝΑΚΕΣΗ ΓΛΩΣΣΑ C - ΜΑΘΗΜΑ 7 - ΠΙΝΑΚΕΣ
Η ΓΛΩΣΣΑ C - ΜΑΘΗΜΑ 7 - ΠΙΝΑΚΕΣ
 
ΓΛΩΣΣΑ C - ΜΑΘΗΜΑ 11
ΓΛΩΣΣΑ C - ΜΑΘΗΜΑ 11ΓΛΩΣΣΑ C - ΜΑΘΗΜΑ 11
ΓΛΩΣΣΑ C - ΜΑΘΗΜΑ 11
 
ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ ΣΕ C - ΜΑΘΗΜΑ 7
ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ ΣΕ C - ΜΑΘΗΜΑ 7ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ ΣΕ C - ΜΑΘΗΜΑ 7
ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ ΣΕ C - ΜΑΘΗΜΑ 7
 
ΑΛΓΟΡΙΘΜΟΙ ΣΕ C - ΜΑΘΗΜΑ 1 - ΔΙΑΠΕΡΑΣΗ ΠΙΝΑΚΑ
ΑΛΓΟΡΙΘΜΟΙ ΣΕ C - ΜΑΘΗΜΑ 1 - ΔΙΑΠΕΡΑΣΗ ΠΙΝΑΚΑΑΛΓΟΡΙΘΜΟΙ ΣΕ C - ΜΑΘΗΜΑ 1 - ΔΙΑΠΕΡΑΣΗ ΠΙΝΑΚΑ
ΑΛΓΟΡΙΘΜΟΙ ΣΕ C - ΜΑΘΗΜΑ 1 - ΔΙΑΠΕΡΑΣΗ ΠΙΝΑΚΑ
 
ΠΛΗ20 ΜΑΘΗΜΑ 1.5
ΠΛΗ20 ΜΑΘΗΜΑ 1.5ΠΛΗ20 ΜΑΘΗΜΑ 1.5
ΠΛΗ20 ΜΑΘΗΜΑ 1.5
 

Viewers also liked

ΠΛΗ10 ΜΑΘΗΜΑ 2.7 (ΕΚΤΥΠΩΣΗ)
ΠΛΗ10 ΜΑΘΗΜΑ 2.7 (ΕΚΤΥΠΩΣΗ)ΠΛΗ10 ΜΑΘΗΜΑ 2.7 (ΕΚΤΥΠΩΣΗ)
ΠΛΗ10 ΜΑΘΗΜΑ 2.7 (ΕΚΤΥΠΩΣΗ)
Dimitris Psounis
 
ΠΛΗ10 ΜΑΘΗΜΑ 2.5 (ΕΚΤΥΠΩΣΗ)
ΠΛΗ10 ΜΑΘΗΜΑ 2.5 (ΕΚΤΥΠΩΣΗ)ΠΛΗ10 ΜΑΘΗΜΑ 2.5 (ΕΚΤΥΠΩΣΗ)
ΠΛΗ10 ΜΑΘΗΜΑ 2.5 (ΕΚΤΥΠΩΣΗ)
Dimitris Psounis
 
ΠΛΗ10 ΜΑΘΗΜΑ 2.6 (ΕΚΤΥΠΩΣΗ)
ΠΛΗ10 ΜΑΘΗΜΑ 2.6 (ΕΚΤΥΠΩΣΗ)ΠΛΗ10 ΜΑΘΗΜΑ 2.6 (ΕΚΤΥΠΩΣΗ)
ΠΛΗ10 ΜΑΘΗΜΑ 2.6 (ΕΚΤΥΠΩΣΗ)
Dimitris Psounis
 
ΠΛΗ10 ΤΕΣΤ 9
ΠΛΗ10 ΤΕΣΤ 9ΠΛΗ10 ΤΕΣΤ 9
ΠΛΗ10 ΤΕΣΤ 9
Dimitris Psounis
 
ΠΛΗ10 ΤΕΣΤ 8
ΠΛΗ10 ΤΕΣΤ 8ΠΛΗ10 ΤΕΣΤ 8
ΠΛΗ10 ΤΕΣΤ 8
Dimitris Psounis
 
ΠΛΗ10 ΤΕΣΤ 5
ΠΛΗ10 ΤΕΣΤ 5ΠΛΗ10 ΤΕΣΤ 5
ΠΛΗ10 ΤΕΣΤ 5
Dimitris Psounis
 
ΠΛΗ10 ΜΑΘΗΜΑ 2.8 (ΕΚΤΥΠΩΣΗ)
ΠΛΗ10 ΜΑΘΗΜΑ 2.8 (ΕΚΤΥΠΩΣΗ)ΠΛΗ10 ΜΑΘΗΜΑ 2.8 (ΕΚΤΥΠΩΣΗ)
ΠΛΗ10 ΜΑΘΗΜΑ 2.8 (ΕΚΤΥΠΩΣΗ)
Dimitris Psounis
 
ΠΛΗ10 ΤΕΣΤ 6
ΠΛΗ10 ΤΕΣΤ 6ΠΛΗ10 ΤΕΣΤ 6
ΠΛΗ10 ΤΕΣΤ 6
Dimitris Psounis
 
ΠΛΗ10 ΤΕΣΤ 7
ΠΛΗ10 ΤΕΣΤ 7ΠΛΗ10 ΤΕΣΤ 7
ΠΛΗ10 ΤΕΣΤ 7
Dimitris Psounis
 
ΠΛΗ10 ΜΑΘΗΜΑ 2.3 (ΕΚΤΥΠΩΣΗ)
ΠΛΗ10 ΜΑΘΗΜΑ 2.3 (ΕΚΤΥΠΩΣΗ)ΠΛΗ10 ΜΑΘΗΜΑ 2.3 (ΕΚΤΥΠΩΣΗ)
ΠΛΗ10 ΜΑΘΗΜΑ 2.3 (ΕΚΤΥΠΩΣΗ)
Dimitris Psounis
 
ΠΛΗ10 ΚΑΡΤΕΣ ΜΑΘΗΜΑΤΟΣ 2.2 (ΕΚΤΥΠΩΣΗ)
ΠΛΗ10 ΚΑΡΤΕΣ ΜΑΘΗΜΑΤΟΣ 2.2 (ΕΚΤΥΠΩΣΗ)ΠΛΗ10 ΚΑΡΤΕΣ ΜΑΘΗΜΑΤΟΣ 2.2 (ΕΚΤΥΠΩΣΗ)
ΠΛΗ10 ΚΑΡΤΕΣ ΜΑΘΗΜΑΤΟΣ 2.2 (ΕΚΤΥΠΩΣΗ)
Dimitris Psounis
 
ΠΛΗ10 ΚΑΡΤΕΣ ΜΑΘΗΜΑΤΟΣ 2.2
ΠΛΗ10 ΚΑΡΤΕΣ ΜΑΘΗΜΑΤΟΣ 2.2ΠΛΗ10 ΚΑΡΤΕΣ ΜΑΘΗΜΑΤΟΣ 2.2
ΠΛΗ10 ΚΑΡΤΕΣ ΜΑΘΗΜΑΤΟΣ 2.2
Dimitris Psounis
 
ΠΛΗ10 ΜΑΘΗΜΑ 2.2
ΠΛΗ10 ΜΑΘΗΜΑ 2.2ΠΛΗ10 ΜΑΘΗΜΑ 2.2
ΠΛΗ10 ΜΑΘΗΜΑ 2.2
Dimitris Psounis
 
ΠΛΗ10 ΚΑΡΤΕΣ ΜΑΘΗΜΑΤΟΣ 2.1 (ΕΚΤΥΠΩΣΗ)
ΠΛΗ10 ΚΑΡΤΕΣ ΜΑΘΗΜΑΤΟΣ 2.1 (ΕΚΤΥΠΩΣΗ)ΠΛΗ10 ΚΑΡΤΕΣ ΜΑΘΗΜΑΤΟΣ 2.1 (ΕΚΤΥΠΩΣΗ)
ΠΛΗ10 ΚΑΡΤΕΣ ΜΑΘΗΜΑΤΟΣ 2.1 (ΕΚΤΥΠΩΣΗ)
Dimitris Psounis
 
ΠΛΗ10 ΜΑΘΗΜΑ 2.4 (ΕΚΤΥΠΩΣΗ)
ΠΛΗ10 ΜΑΘΗΜΑ 2.4 (ΕΚΤΥΠΩΣΗ)ΠΛΗ10 ΜΑΘΗΜΑ 2.4 (ΕΚΤΥΠΩΣΗ)
ΠΛΗ10 ΜΑΘΗΜΑ 2.4 (ΕΚΤΥΠΩΣΗ)
Dimitris Psounis
 
ΠΛΗ10 ΜΑΘΗΜΑ 2.1 (ΕΚΤΥΠΩΣΗ)
ΠΛΗ10 ΜΑΘΗΜΑ 2.1 (ΕΚΤΥΠΩΣΗ)ΠΛΗ10 ΜΑΘΗΜΑ 2.1 (ΕΚΤΥΠΩΣΗ)
ΠΛΗ10 ΜΑΘΗΜΑ 2.1 (ΕΚΤΥΠΩΣΗ)
Dimitris Psounis
 
ΠΛΗ10 ΜΑΘΗΜΑ 2.2 (ΕΚΤΥΠΩΣΗ)
ΠΛΗ10 ΜΑΘΗΜΑ 2.2 (ΕΚΤΥΠΩΣΗ)ΠΛΗ10 ΜΑΘΗΜΑ 2.2 (ΕΚΤΥΠΩΣΗ)
ΠΛΗ10 ΜΑΘΗΜΑ 2.2 (ΕΚΤΥΠΩΣΗ)
Dimitris Psounis
 
ΠΛΗ10 ΚΑΡΤΕΣ ΜΑΘΗΜΑΤΟΣ 2.1
ΠΛΗ10 ΚΑΡΤΕΣ ΜΑΘΗΜΑΤΟΣ 2.1ΠΛΗ10 ΚΑΡΤΕΣ ΜΑΘΗΜΑΤΟΣ 2.1
ΠΛΗ10 ΚΑΡΤΕΣ ΜΑΘΗΜΑΤΟΣ 2.1
Dimitris Psounis
 
ΠΛΗ10 ΜΑΘΗΜΑ 2.1
ΠΛΗ10 ΜΑΘΗΜΑ 2.1 ΠΛΗ10 ΜΑΘΗΜΑ 2.1
ΠΛΗ10 ΜΑΘΗΜΑ 2.1
Dimitris Psounis
 
ΠΛΗ10 ΤΕΣΤ 10
ΠΛΗ10 ΤΕΣΤ 10ΠΛΗ10 ΤΕΣΤ 10
ΠΛΗ10 ΤΕΣΤ 10
Dimitris Psounis
 

Viewers also liked (20)

ΠΛΗ10 ΜΑΘΗΜΑ 2.7 (ΕΚΤΥΠΩΣΗ)
ΠΛΗ10 ΜΑΘΗΜΑ 2.7 (ΕΚΤΥΠΩΣΗ)ΠΛΗ10 ΜΑΘΗΜΑ 2.7 (ΕΚΤΥΠΩΣΗ)
ΠΛΗ10 ΜΑΘΗΜΑ 2.7 (ΕΚΤΥΠΩΣΗ)
 
ΠΛΗ10 ΜΑΘΗΜΑ 2.5 (ΕΚΤΥΠΩΣΗ)
ΠΛΗ10 ΜΑΘΗΜΑ 2.5 (ΕΚΤΥΠΩΣΗ)ΠΛΗ10 ΜΑΘΗΜΑ 2.5 (ΕΚΤΥΠΩΣΗ)
ΠΛΗ10 ΜΑΘΗΜΑ 2.5 (ΕΚΤΥΠΩΣΗ)
 
ΠΛΗ10 ΜΑΘΗΜΑ 2.6 (ΕΚΤΥΠΩΣΗ)
ΠΛΗ10 ΜΑΘΗΜΑ 2.6 (ΕΚΤΥΠΩΣΗ)ΠΛΗ10 ΜΑΘΗΜΑ 2.6 (ΕΚΤΥΠΩΣΗ)
ΠΛΗ10 ΜΑΘΗΜΑ 2.6 (ΕΚΤΥΠΩΣΗ)
 
ΠΛΗ10 ΤΕΣΤ 9
ΠΛΗ10 ΤΕΣΤ 9ΠΛΗ10 ΤΕΣΤ 9
ΠΛΗ10 ΤΕΣΤ 9
 
ΠΛΗ10 ΤΕΣΤ 8
ΠΛΗ10 ΤΕΣΤ 8ΠΛΗ10 ΤΕΣΤ 8
ΠΛΗ10 ΤΕΣΤ 8
 
ΠΛΗ10 ΤΕΣΤ 5
ΠΛΗ10 ΤΕΣΤ 5ΠΛΗ10 ΤΕΣΤ 5
ΠΛΗ10 ΤΕΣΤ 5
 
ΠΛΗ10 ΜΑΘΗΜΑ 2.8 (ΕΚΤΥΠΩΣΗ)
ΠΛΗ10 ΜΑΘΗΜΑ 2.8 (ΕΚΤΥΠΩΣΗ)ΠΛΗ10 ΜΑΘΗΜΑ 2.8 (ΕΚΤΥΠΩΣΗ)
ΠΛΗ10 ΜΑΘΗΜΑ 2.8 (ΕΚΤΥΠΩΣΗ)
 
ΠΛΗ10 ΤΕΣΤ 6
ΠΛΗ10 ΤΕΣΤ 6ΠΛΗ10 ΤΕΣΤ 6
ΠΛΗ10 ΤΕΣΤ 6
 
ΠΛΗ10 ΤΕΣΤ 7
ΠΛΗ10 ΤΕΣΤ 7ΠΛΗ10 ΤΕΣΤ 7
ΠΛΗ10 ΤΕΣΤ 7
 
ΠΛΗ10 ΜΑΘΗΜΑ 2.3 (ΕΚΤΥΠΩΣΗ)
ΠΛΗ10 ΜΑΘΗΜΑ 2.3 (ΕΚΤΥΠΩΣΗ)ΠΛΗ10 ΜΑΘΗΜΑ 2.3 (ΕΚΤΥΠΩΣΗ)
ΠΛΗ10 ΜΑΘΗΜΑ 2.3 (ΕΚΤΥΠΩΣΗ)
 
ΠΛΗ10 ΚΑΡΤΕΣ ΜΑΘΗΜΑΤΟΣ 2.2 (ΕΚΤΥΠΩΣΗ)
ΠΛΗ10 ΚΑΡΤΕΣ ΜΑΘΗΜΑΤΟΣ 2.2 (ΕΚΤΥΠΩΣΗ)ΠΛΗ10 ΚΑΡΤΕΣ ΜΑΘΗΜΑΤΟΣ 2.2 (ΕΚΤΥΠΩΣΗ)
ΠΛΗ10 ΚΑΡΤΕΣ ΜΑΘΗΜΑΤΟΣ 2.2 (ΕΚΤΥΠΩΣΗ)
 
ΠΛΗ10 ΚΑΡΤΕΣ ΜΑΘΗΜΑΤΟΣ 2.2
ΠΛΗ10 ΚΑΡΤΕΣ ΜΑΘΗΜΑΤΟΣ 2.2ΠΛΗ10 ΚΑΡΤΕΣ ΜΑΘΗΜΑΤΟΣ 2.2
ΠΛΗ10 ΚΑΡΤΕΣ ΜΑΘΗΜΑΤΟΣ 2.2
 
ΠΛΗ10 ΜΑΘΗΜΑ 2.2
ΠΛΗ10 ΜΑΘΗΜΑ 2.2ΠΛΗ10 ΜΑΘΗΜΑ 2.2
ΠΛΗ10 ΜΑΘΗΜΑ 2.2
 
ΠΛΗ10 ΚΑΡΤΕΣ ΜΑΘΗΜΑΤΟΣ 2.1 (ΕΚΤΥΠΩΣΗ)
ΠΛΗ10 ΚΑΡΤΕΣ ΜΑΘΗΜΑΤΟΣ 2.1 (ΕΚΤΥΠΩΣΗ)ΠΛΗ10 ΚΑΡΤΕΣ ΜΑΘΗΜΑΤΟΣ 2.1 (ΕΚΤΥΠΩΣΗ)
ΠΛΗ10 ΚΑΡΤΕΣ ΜΑΘΗΜΑΤΟΣ 2.1 (ΕΚΤΥΠΩΣΗ)
 
ΠΛΗ10 ΜΑΘΗΜΑ 2.4 (ΕΚΤΥΠΩΣΗ)
ΠΛΗ10 ΜΑΘΗΜΑ 2.4 (ΕΚΤΥΠΩΣΗ)ΠΛΗ10 ΜΑΘΗΜΑ 2.4 (ΕΚΤΥΠΩΣΗ)
ΠΛΗ10 ΜΑΘΗΜΑ 2.4 (ΕΚΤΥΠΩΣΗ)
 
ΠΛΗ10 ΜΑΘΗΜΑ 2.1 (ΕΚΤΥΠΩΣΗ)
ΠΛΗ10 ΜΑΘΗΜΑ 2.1 (ΕΚΤΥΠΩΣΗ)ΠΛΗ10 ΜΑΘΗΜΑ 2.1 (ΕΚΤΥΠΩΣΗ)
ΠΛΗ10 ΜΑΘΗΜΑ 2.1 (ΕΚΤΥΠΩΣΗ)
 
ΠΛΗ10 ΜΑΘΗΜΑ 2.2 (ΕΚΤΥΠΩΣΗ)
ΠΛΗ10 ΜΑΘΗΜΑ 2.2 (ΕΚΤΥΠΩΣΗ)ΠΛΗ10 ΜΑΘΗΜΑ 2.2 (ΕΚΤΥΠΩΣΗ)
ΠΛΗ10 ΜΑΘΗΜΑ 2.2 (ΕΚΤΥΠΩΣΗ)
 
ΠΛΗ10 ΚΑΡΤΕΣ ΜΑΘΗΜΑΤΟΣ 2.1
ΠΛΗ10 ΚΑΡΤΕΣ ΜΑΘΗΜΑΤΟΣ 2.1ΠΛΗ10 ΚΑΡΤΕΣ ΜΑΘΗΜΑΤΟΣ 2.1
ΠΛΗ10 ΚΑΡΤΕΣ ΜΑΘΗΜΑΤΟΣ 2.1
 
ΠΛΗ10 ΜΑΘΗΜΑ 2.1
ΠΛΗ10 ΜΑΘΗΜΑ 2.1 ΠΛΗ10 ΜΑΘΗΜΑ 2.1
ΠΛΗ10 ΜΑΘΗΜΑ 2.1
 
ΠΛΗ10 ΤΕΣΤ 10
ΠΛΗ10 ΤΕΣΤ 10ΠΛΗ10 ΤΕΣΤ 10
ΠΛΗ10 ΤΕΣΤ 10
 

More from Dimitris Psounis

Η ΓΛΩΣΣΑ C++ - ΜΑΘΗΜΑ 4 - ΚΛΑΣΕΙΣ ΚΑΙ ΑΝΑΦΟΡΕΣ
Η ΓΛΩΣΣΑ C++ - ΜΑΘΗΜΑ 4 - ΚΛΑΣΕΙΣ ΚΑΙ ΑΝΑΦΟΡΕΣΗ ΓΛΩΣΣΑ C++ - ΜΑΘΗΜΑ 4 - ΚΛΑΣΕΙΣ ΚΑΙ ΑΝΑΦΟΡΕΣ
Η ΓΛΩΣΣΑ C++ - ΜΑΘΗΜΑ 4 - ΚΛΑΣΕΙΣ ΚΑΙ ΑΝΑΦΟΡΕΣ
Dimitris Psounis
 
Η ΓΛΩΣΣΑ C++ - ΜΑΘΗΜΑ 4 - ΚΛΑΣΕΙΣ ΚΑΙ ΑΝΑΦΟΡΕΣ (4διαφ)
Η ΓΛΩΣΣΑ C++ - ΜΑΘΗΜΑ 4 - ΚΛΑΣΕΙΣ ΚΑΙ ΑΝΑΦΟΡΕΣ (4διαφ)Η ΓΛΩΣΣΑ C++ - ΜΑΘΗΜΑ 4 - ΚΛΑΣΕΙΣ ΚΑΙ ΑΝΑΦΟΡΕΣ (4διαφ)
Η ΓΛΩΣΣΑ C++ - ΜΑΘΗΜΑ 4 - ΚΛΑΣΕΙΣ ΚΑΙ ΑΝΑΦΟΡΕΣ (4διαφ)
Dimitris Psounis
 
ΓΛΩΣΣΑ C++ - ΜΑΘΗΜΑ 3 - ΚΛΑΣΕΙΣ ΚΑΙ ΔΕΙΚΤΕΣ (4δ)
ΓΛΩΣΣΑ C++ - ΜΑΘΗΜΑ 3 - ΚΛΑΣΕΙΣ ΚΑΙ ΔΕΙΚΤΕΣ (4δ)ΓΛΩΣΣΑ C++ - ΜΑΘΗΜΑ 3 - ΚΛΑΣΕΙΣ ΚΑΙ ΔΕΙΚΤΕΣ (4δ)
ΓΛΩΣΣΑ C++ - ΜΑΘΗΜΑ 3 - ΚΛΑΣΕΙΣ ΚΑΙ ΔΕΙΚΤΕΣ (4δ)
Dimitris Psounis
 
ΓΛΩΣΣΑ C++ - ΜΑΘΗΜΑ 3 - ΚΛΑΣΕΙΣ ΚΑΙ ΔΕΙΚΤΕΣ
ΓΛΩΣΣΑ C++ - ΜΑΘΗΜΑ 3 - ΚΛΑΣΕΙΣ ΚΑΙ ΔΕΙΚΤΕΣΓΛΩΣΣΑ C++ - ΜΑΘΗΜΑ 3 - ΚΛΑΣΕΙΣ ΚΑΙ ΔΕΙΚΤΕΣ
ΓΛΩΣΣΑ C++ - ΜΑΘΗΜΑ 3 - ΚΛΑΣΕΙΣ ΚΑΙ ΔΕΙΚΤΕΣ
Dimitris Psounis
 
Η ΓΛΩΣΣΑ C++ - ΜΑΘΗΜΑ 2 - ΕΙΣΑΓΩΓΗ ΣΤΙΣ ΚΛΑΣΕΙΣ
Η ΓΛΩΣΣΑ C++ - ΜΑΘΗΜΑ 2 - ΕΙΣΑΓΩΓΗ ΣΤΙΣ ΚΛΑΣΕΙΣΗ ΓΛΩΣΣΑ C++ - ΜΑΘΗΜΑ 2 - ΕΙΣΑΓΩΓΗ ΣΤΙΣ ΚΛΑΣΕΙΣ
Η ΓΛΩΣΣΑ C++ - ΜΑΘΗΜΑ 2 - ΕΙΣΑΓΩΓΗ ΣΤΙΣ ΚΛΑΣΕΙΣ
Dimitris Psounis
 
Η ΓΛΩΣΣΑ C++ - ΜΑΘΗΜΑ 2 - ΕΙΣΑΓΩΓΗ ΣΤΙΣ ΚΛΑΣΕΙΣ (4 διαφ)
Η ΓΛΩΣΣΑ C++ - ΜΑΘΗΜΑ 2 - ΕΙΣΑΓΩΓΗ ΣΤΙΣ ΚΛΑΣΕΙΣ (4 διαφ)Η ΓΛΩΣΣΑ C++ - ΜΑΘΗΜΑ 2 - ΕΙΣΑΓΩΓΗ ΣΤΙΣ ΚΛΑΣΕΙΣ (4 διαφ)
Η ΓΛΩΣΣΑ C++ - ΜΑΘΗΜΑ 2 - ΕΙΣΑΓΩΓΗ ΣΤΙΣ ΚΛΑΣΕΙΣ (4 διαφ)
Dimitris Psounis
 
C++ - ΜΑΘΗΜΑ 1 - ΕΙΣΑΓΩΓΗ ΚΑΙ ΣΧΕΣΗ ΜΕ ΤΗ C
C++ - ΜΑΘΗΜΑ 1 - ΕΙΣΑΓΩΓΗ ΚΑΙ ΣΧΕΣΗ ΜΕ ΤΗ CC++ - ΜΑΘΗΜΑ 1 - ΕΙΣΑΓΩΓΗ ΚΑΙ ΣΧΕΣΗ ΜΕ ΤΗ C
C++ - ΜΑΘΗΜΑ 1 - ΕΙΣΑΓΩΓΗ ΚΑΙ ΣΧΕΣΗ ΜΕ ΤΗ C
Dimitris Psounis
 
C++ - ΜΑΘΗΜΑ 1 - ΕΙΣΑΓΩΓΗ ΚΑΙ ΣΧΕΣΗ ΜΕ ΤΗ C (4sl/p)
C++ - ΜΑΘΗΜΑ 1 - ΕΙΣΑΓΩΓΗ ΚΑΙ ΣΧΕΣΗ ΜΕ ΤΗ C (4sl/p)C++ - ΜΑΘΗΜΑ 1 - ΕΙΣΑΓΩΓΗ ΚΑΙ ΣΧΕΣΗ ΜΕ ΤΗ C (4sl/p)
C++ - ΜΑΘΗΜΑ 1 - ΕΙΣΑΓΩΓΗ ΚΑΙ ΣΧΕΣΗ ΜΕ ΤΗ C (4sl/p)
Dimitris Psounis
 
ΠΛΗ20 ΕΠΑΝΑΛΗΠΤΙΚΟ ΔΙΑΓΩΝΙΣΜΑ 6
ΠΛΗ20 ΕΠΑΝΑΛΗΠΤΙΚΟ ΔΙΑΓΩΝΙΣΜΑ 6ΠΛΗ20 ΕΠΑΝΑΛΗΠΤΙΚΟ ΔΙΑΓΩΝΙΣΜΑ 6
ΠΛΗ20 ΕΠΑΝΑΛΗΠΤΙΚΟ ΔΙΑΓΩΝΙΣΜΑ 6
Dimitris Psounis
 
ΠΛΗ20 ΕΠΑΝΑΛΗΠΤΙΚΟ ΔΙΑΓΩΝΙΣΜΑ 5
ΠΛΗ20 ΕΠΑΝΑΛΗΠΤΙΚΟ ΔΙΑΓΩΝΙΣΜΑ 5ΠΛΗ20 ΕΠΑΝΑΛΗΠΤΙΚΟ ΔΙΑΓΩΝΙΣΜΑ 5
ΠΛΗ20 ΕΠΑΝΑΛΗΠΤΙΚΟ ΔΙΑΓΩΝΙΣΜΑ 5
Dimitris Psounis
 
ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ ΣΕ C - ΜΑΘΗΜΑ 8 (ΕΚΤΥΠΩΣΗ)
ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ ΣΕ C - ΜΑΘΗΜΑ 8 (ΕΚΤΥΠΩΣΗ)ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ ΣΕ C - ΜΑΘΗΜΑ 8 (ΕΚΤΥΠΩΣΗ)
ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ ΣΕ C - ΜΑΘΗΜΑ 8 (ΕΚΤΥΠΩΣΗ)
Dimitris Psounis
 
ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ ΣΕ C - ΜΑΘΗΜΑ 8
ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ ΣΕ C - ΜΑΘΗΜΑ 8ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ ΣΕ C - ΜΑΘΗΜΑ 8
ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ ΣΕ C - ΜΑΘΗΜΑ 8
Dimitris Psounis
 
ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ ΣΕ C - ΜΑΘΗΜΑ 7 (ΕΚΤΥΠΩΣΗ)
ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ ΣΕ C - ΜΑΘΗΜΑ 7 (ΕΚΤΥΠΩΣΗ)ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ ΣΕ C - ΜΑΘΗΜΑ 7 (ΕΚΤΥΠΩΣΗ)
ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ ΣΕ C - ΜΑΘΗΜΑ 7 (ΕΚΤΥΠΩΣΗ)
Dimitris Psounis
 
ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ ΣΕ C - ΜΑΘΗΜΑ 6
ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ ΣΕ C - ΜΑΘΗΜΑ 6 ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ ΣΕ C - ΜΑΘΗΜΑ 6
ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ ΣΕ C - ΜΑΘΗΜΑ 6
Dimitris Psounis
 
ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ ΣΕ C - ΜΑΘΗΜΑ 6 (ΕΚΤΥΠΩΣΗ)
ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ ΣΕ C - ΜΑΘΗΜΑ 6 (ΕΚΤΥΠΩΣΗ)ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ ΣΕ C - ΜΑΘΗΜΑ 6 (ΕΚΤΥΠΩΣΗ)
ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ ΣΕ C - ΜΑΘΗΜΑ 6 (ΕΚΤΥΠΩΣΗ)
Dimitris Psounis
 

More from Dimitris Psounis (20)

Η ΓΛΩΣΣΑ C++ - ΜΑΘΗΜΑ 4 - ΚΛΑΣΕΙΣ ΚΑΙ ΑΝΑΦΟΡΕΣ
Η ΓΛΩΣΣΑ C++ - ΜΑΘΗΜΑ 4 - ΚΛΑΣΕΙΣ ΚΑΙ ΑΝΑΦΟΡΕΣΗ ΓΛΩΣΣΑ C++ - ΜΑΘΗΜΑ 4 - ΚΛΑΣΕΙΣ ΚΑΙ ΑΝΑΦΟΡΕΣ
Η ΓΛΩΣΣΑ C++ - ΜΑΘΗΜΑ 4 - ΚΛΑΣΕΙΣ ΚΑΙ ΑΝΑΦΟΡΕΣ
 
Η ΓΛΩΣΣΑ C++ - ΜΑΘΗΜΑ 4 - ΚΛΑΣΕΙΣ ΚΑΙ ΑΝΑΦΟΡΕΣ (4διαφ)
Η ΓΛΩΣΣΑ C++ - ΜΑΘΗΜΑ 4 - ΚΛΑΣΕΙΣ ΚΑΙ ΑΝΑΦΟΡΕΣ (4διαφ)Η ΓΛΩΣΣΑ C++ - ΜΑΘΗΜΑ 4 - ΚΛΑΣΕΙΣ ΚΑΙ ΑΝΑΦΟΡΕΣ (4διαφ)
Η ΓΛΩΣΣΑ C++ - ΜΑΘΗΜΑ 4 - ΚΛΑΣΕΙΣ ΚΑΙ ΑΝΑΦΟΡΕΣ (4διαφ)
 
ΓΛΩΣΣΑ C++ - ΜΑΘΗΜΑ 3 - ΚΛΑΣΕΙΣ ΚΑΙ ΔΕΙΚΤΕΣ (4δ)
ΓΛΩΣΣΑ C++ - ΜΑΘΗΜΑ 3 - ΚΛΑΣΕΙΣ ΚΑΙ ΔΕΙΚΤΕΣ (4δ)ΓΛΩΣΣΑ C++ - ΜΑΘΗΜΑ 3 - ΚΛΑΣΕΙΣ ΚΑΙ ΔΕΙΚΤΕΣ (4δ)
ΓΛΩΣΣΑ C++ - ΜΑΘΗΜΑ 3 - ΚΛΑΣΕΙΣ ΚΑΙ ΔΕΙΚΤΕΣ (4δ)
 
ΓΛΩΣΣΑ C++ - ΜΑΘΗΜΑ 3 - ΚΛΑΣΕΙΣ ΚΑΙ ΔΕΙΚΤΕΣ
ΓΛΩΣΣΑ C++ - ΜΑΘΗΜΑ 3 - ΚΛΑΣΕΙΣ ΚΑΙ ΔΕΙΚΤΕΣΓΛΩΣΣΑ C++ - ΜΑΘΗΜΑ 3 - ΚΛΑΣΕΙΣ ΚΑΙ ΔΕΙΚΤΕΣ
ΓΛΩΣΣΑ C++ - ΜΑΘΗΜΑ 3 - ΚΛΑΣΕΙΣ ΚΑΙ ΔΕΙΚΤΕΣ
 
Η ΓΛΩΣΣΑ C++ - ΜΑΘΗΜΑ 2 - ΕΙΣΑΓΩΓΗ ΣΤΙΣ ΚΛΑΣΕΙΣ
Η ΓΛΩΣΣΑ C++ - ΜΑΘΗΜΑ 2 - ΕΙΣΑΓΩΓΗ ΣΤΙΣ ΚΛΑΣΕΙΣΗ ΓΛΩΣΣΑ C++ - ΜΑΘΗΜΑ 2 - ΕΙΣΑΓΩΓΗ ΣΤΙΣ ΚΛΑΣΕΙΣ
Η ΓΛΩΣΣΑ C++ - ΜΑΘΗΜΑ 2 - ΕΙΣΑΓΩΓΗ ΣΤΙΣ ΚΛΑΣΕΙΣ
 
Η ΓΛΩΣΣΑ C++ - ΜΑΘΗΜΑ 2 - ΕΙΣΑΓΩΓΗ ΣΤΙΣ ΚΛΑΣΕΙΣ (4 διαφ)
Η ΓΛΩΣΣΑ C++ - ΜΑΘΗΜΑ 2 - ΕΙΣΑΓΩΓΗ ΣΤΙΣ ΚΛΑΣΕΙΣ (4 διαφ)Η ΓΛΩΣΣΑ C++ - ΜΑΘΗΜΑ 2 - ΕΙΣΑΓΩΓΗ ΣΤΙΣ ΚΛΑΣΕΙΣ (4 διαφ)
Η ΓΛΩΣΣΑ C++ - ΜΑΘΗΜΑ 2 - ΕΙΣΑΓΩΓΗ ΣΤΙΣ ΚΛΑΣΕΙΣ (4 διαφ)
 
C++ - ΜΑΘΗΜΑ 1 - ΕΙΣΑΓΩΓΗ ΚΑΙ ΣΧΕΣΗ ΜΕ ΤΗ C
C++ - ΜΑΘΗΜΑ 1 - ΕΙΣΑΓΩΓΗ ΚΑΙ ΣΧΕΣΗ ΜΕ ΤΗ CC++ - ΜΑΘΗΜΑ 1 - ΕΙΣΑΓΩΓΗ ΚΑΙ ΣΧΕΣΗ ΜΕ ΤΗ C
C++ - ΜΑΘΗΜΑ 1 - ΕΙΣΑΓΩΓΗ ΚΑΙ ΣΧΕΣΗ ΜΕ ΤΗ C
 
C++ - ΜΑΘΗΜΑ 1 - ΕΙΣΑΓΩΓΗ ΚΑΙ ΣΧΕΣΗ ΜΕ ΤΗ C (4sl/p)
C++ - ΜΑΘΗΜΑ 1 - ΕΙΣΑΓΩΓΗ ΚΑΙ ΣΧΕΣΗ ΜΕ ΤΗ C (4sl/p)C++ - ΜΑΘΗΜΑ 1 - ΕΙΣΑΓΩΓΗ ΚΑΙ ΣΧΕΣΗ ΜΕ ΤΗ C (4sl/p)
C++ - ΜΑΘΗΜΑ 1 - ΕΙΣΑΓΩΓΗ ΚΑΙ ΣΧΕΣΗ ΜΕ ΤΗ C (4sl/p)
 
ΠΛΗ20 ΕΠΑΝΑΛΗΠΤΙΚΟ ΔΙΑΓΩΝΙΣΜΑ 6
ΠΛΗ20 ΕΠΑΝΑΛΗΠΤΙΚΟ ΔΙΑΓΩΝΙΣΜΑ 6ΠΛΗ20 ΕΠΑΝΑΛΗΠΤΙΚΟ ΔΙΑΓΩΝΙΣΜΑ 6
ΠΛΗ20 ΕΠΑΝΑΛΗΠΤΙΚΟ ΔΙΑΓΩΝΙΣΜΑ 6
 
ΠΛΗ20 ΕΠΑΝΑΛΗΠΤΙΚΟ ΔΙΑΓΩΝΙΣΜΑ 5
ΠΛΗ20 ΕΠΑΝΑΛΗΠΤΙΚΟ ΔΙΑΓΩΝΙΣΜΑ 5ΠΛΗ20 ΕΠΑΝΑΛΗΠΤΙΚΟ ΔΙΑΓΩΝΙΣΜΑ 5
ΠΛΗ20 ΕΠΑΝΑΛΗΠΤΙΚΟ ΔΙΑΓΩΝΙΣΜΑ 5
 
ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ ΣΕ C - ΜΑΘΗΜΑ 8 (ΕΚΤΥΠΩΣΗ)
ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ ΣΕ C - ΜΑΘΗΜΑ 8 (ΕΚΤΥΠΩΣΗ)ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ ΣΕ C - ΜΑΘΗΜΑ 8 (ΕΚΤΥΠΩΣΗ)
ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ ΣΕ C - ΜΑΘΗΜΑ 8 (ΕΚΤΥΠΩΣΗ)
 
ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ ΣΕ C - ΜΑΘΗΜΑ 8
ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ ΣΕ C - ΜΑΘΗΜΑ 8ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ ΣΕ C - ΜΑΘΗΜΑ 8
ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ ΣΕ C - ΜΑΘΗΜΑ 8
 
ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ ΣΕ C - ΜΑΘΗΜΑ 7 (ΕΚΤΥΠΩΣΗ)
ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ ΣΕ C - ΜΑΘΗΜΑ 7 (ΕΚΤΥΠΩΣΗ)ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ ΣΕ C - ΜΑΘΗΜΑ 7 (ΕΚΤΥΠΩΣΗ)
ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ ΣΕ C - ΜΑΘΗΜΑ 7 (ΕΚΤΥΠΩΣΗ)
 
ΠΛΗ31 - ΤΕΣΤ 33
ΠΛΗ31 - ΤΕΣΤ 33ΠΛΗ31 - ΤΕΣΤ 33
ΠΛΗ31 - ΤΕΣΤ 33
 
ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ ΣΕ C - ΜΑΘΗΜΑ 6
ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ ΣΕ C - ΜΑΘΗΜΑ 6 ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ ΣΕ C - ΜΑΘΗΜΑ 6
ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ ΣΕ C - ΜΑΘΗΜΑ 6
 
ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ ΣΕ C - ΜΑΘΗΜΑ 6 (ΕΚΤΥΠΩΣΗ)
ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ ΣΕ C - ΜΑΘΗΜΑ 6 (ΕΚΤΥΠΩΣΗ)ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ ΣΕ C - ΜΑΘΗΜΑ 6 (ΕΚΤΥΠΩΣΗ)
ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ ΣΕ C - ΜΑΘΗΜΑ 6 (ΕΚΤΥΠΩΣΗ)
 
ΠΛΗ31 ΤΕΣΤ 32
ΠΛΗ31 ΤΕΣΤ 32ΠΛΗ31 ΤΕΣΤ 32
ΠΛΗ31 ΤΕΣΤ 32
 
ΠΛΗ31 ΤΕΣΤ 31
ΠΛΗ31 ΤΕΣΤ 31ΠΛΗ31 ΤΕΣΤ 31
ΠΛΗ31 ΤΕΣΤ 31
 
ΠΛΗ31 ΤΕΣΤ 30
ΠΛΗ31 ΤΕΣΤ 30ΠΛΗ31 ΤΕΣΤ 30
ΠΛΗ31 ΤΕΣΤ 30
 
ΠΛΗ10 ΤΕΣΤ 35
ΠΛΗ10 ΤΕΣΤ 35ΠΛΗ10 ΤΕΣΤ 35
ΠΛΗ10 ΤΕΣΤ 35
 

Recently uploaded

Τα θέματα στη Φυσική Προσανατολισμού για τις Πανελλήνιες 2024
Τα θέματα στη Φυσική Προσανατολισμού για τις Πανελλήνιες 2024Τα θέματα στη Φυσική Προσανατολισμού για τις Πανελλήνιες 2024
Τα θέματα στη Φυσική Προσανατολισμού για τις Πανελλήνιες 2024
Newsroom8
 
Οι περιπέτειες του Ηρακλή ΓΙΩΡΓΟΣ ΕΥΗ.ppt
Οι περιπέτειες του Ηρακλή ΓΙΩΡΓΟΣ ΕΥΗ.pptΟι περιπέτειες του Ηρακλή ΓΙΩΡΓΟΣ ΕΥΗ.ppt
Οι περιπέτειες του Ηρακλή ΓΙΩΡΓΟΣ ΕΥΗ.ppt
nikzoit
 
Οι περιπέτειες του Ηρακλή ΒΑΣΙΛΗΣ ΜΕΛΙΝΑ.ppt
Οι περιπέτειες του Ηρακλή ΒΑΣΙΛΗΣ ΜΕΛΙΝΑ.pptΟι περιπέτειες του Ηρακλή ΒΑΣΙΛΗΣ ΜΕΛΙΝΑ.ppt
Οι περιπέτειες του Ηρακλή ΒΑΣΙΛΗΣ ΜΕΛΙΝΑ.ppt
nikzoit
 
Οι περιπέτειες του Ηρακλή ΑΛΕΞΑΝΔΡΟΣ ΓΙΩΡΓΟΣ.ppt
Οι περιπέτειες του Ηρακλή ΑΛΕΞΑΝΔΡΟΣ ΓΙΩΡΓΟΣ.pptΟι περιπέτειες του Ηρακλή ΑΛΕΞΑΝΔΡΟΣ ΓΙΩΡΓΟΣ.ppt
Οι περιπέτειες του Ηρακλή ΑΛΕΞΑΝΔΡΟΣ ΓΙΩΡΓΟΣ.ppt
nikzoit
 
Θέματα φυσικής πανελλαδικών εξετάσεων 2024
Θέματα φυσικής πανελλαδικών εξετάσεων  2024Θέματα φυσικής πανελλαδικών εξετάσεων  2024
Θέματα φυσικής πανελλαδικών εξετάσεων 2024
Θεόδωρος Μαραγκούλας
 
Εργασία ΤΠΕ Οι 4 εποχές (ΑΡΓΥΡΗΣ ΔΗΜΗΤΡΗΣ).ppt
Εργασία ΤΠΕ Οι 4 εποχές (ΑΡΓΥΡΗΣ ΔΗΜΗΤΡΗΣ).pptΕργασία ΤΠΕ Οι 4 εποχές (ΑΡΓΥΡΗΣ ΔΗΜΗΤΡΗΣ).ppt
Εργασία ΤΠΕ Οι 4 εποχές (ΑΡΓΥΡΗΣ ΔΗΜΗΤΡΗΣ).ppt
nikzoit
 
them_istoria_gel_240612.PANELLINIES 2024 ISTORIApdf
them_istoria_gel_240612.PANELLINIES 2024 ISTORIApdfthem_istoria_gel_240612.PANELLINIES 2024 ISTORIApdf
them_istoria_gel_240612.PANELLINIES 2024 ISTORIApdf
konstantinantountoum1
 
Οι περιπέτειες του Ηρακλή ΠΑΝΑΓΙΩΤΗΣ ΜΕΛΙΝΑ Π.ppt
Οι περιπέτειες του Ηρακλή ΠΑΝΑΓΙΩΤΗΣ ΜΕΛΙΝΑ Π.pptΟι περιπέτειες του Ηρακλή ΠΑΝΑΓΙΩΤΗΣ ΜΕΛΙΝΑ Π.ppt
Οι περιπέτειες του Ηρακλή ΠΑΝΑΓΙΩΤΗΣ ΜΕΛΙΝΑ Π.ppt
nikzoit
 
Εργασία ΤΠΕ Οι 4 εποχές (ΚΩΝΣΤΑΝΤΙΝΟΣ ΑΡΗΣ).ppt
Εργασία ΤΠΕ Οι 4 εποχές (ΚΩΝΣΤΑΝΤΙΝΟΣ ΑΡΗΣ).pptΕργασία ΤΠΕ Οι 4 εποχές (ΚΩΝΣΤΑΝΤΙΝΟΣ ΑΡΗΣ).ppt
Εργασία ΤΠΕ Οι 4 εποχές (ΚΩΝΣΤΑΝΤΙΝΟΣ ΑΡΗΣ).ppt
nikzoit
 
Εργασία ΤΠΕ Μέσα μεταφοράς (Δημήτρης Τ Άγγελος).ppt
Εργασία ΤΠΕ Μέσα μεταφοράς (Δημήτρης Τ  Άγγελος).pptΕργασία ΤΠΕ Μέσα μεταφοράς (Δημήτρης Τ  Άγγελος).ppt
Εργασία ΤΠΕ Μέσα μεταφοράς (Δημήτρης Τ Άγγελος).ppt
nikzoit
 
Εργασία ΤΠΕ Μέσα μεταφοράς (Δημήτρης Ζ Κωνσταντίνος).ppt
Εργασία ΤΠΕ Μέσα μεταφοράς (Δημήτρης Ζ  Κωνσταντίνος).pptΕργασία ΤΠΕ Μέσα μεταφοράς (Δημήτρης Ζ  Κωνσταντίνος).ppt
Εργασία ΤΠΕ Μέσα μεταφοράς (Δημήτρης Ζ Κωνσταντίνος).ppt
nikzoit
 
Hardware Personal Computer a small Introduction
Hardware Personal Computer a small  IntroductionHardware Personal Computer a small  Introduction
Hardware Personal Computer a small Introduction
ssuserd4abe0
 
Οι περιπέτειες του Ηρακλή ΓΙΑΝΝΗΣ ΛΙΑ.ppt
Οι περιπέτειες του Ηρακλή ΓΙΑΝΝΗΣ ΛΙΑ.pptΟι περιπέτειες του Ηρακλή ΓΙΑΝΝΗΣ ΛΙΑ.ppt
Οι περιπέτειες του Ηρακλή ΓΙΑΝΝΗΣ ΛΙΑ.ppt
nikzoit
 
Τα θέματα στην Ιστορία Προσανατολισμού για τις Πανελλήνιες 2024
Τα θέματα στην Ιστορία Προσανατολισμού για τις Πανελλήνιες 2024Τα θέματα στην Ιστορία Προσανατολισμού για τις Πανελλήνιες 2024
Τα θέματα στην Ιστορία Προσανατολισμού για τις Πανελλήνιες 2024
Newsroom8
 
Εργασία ΤΠΕ Οι 4 εποχές (ΚΑΛΥΨΩ ΜΥΡΤΩ).ppt
Εργασία ΤΠΕ Οι 4 εποχές (ΚΑΛΥΨΩ ΜΥΡΤΩ).pptΕργασία ΤΠΕ Οι 4 εποχές (ΚΑΛΥΨΩ ΜΥΡΤΩ).ppt
Εργασία ΤΠΕ Οι 4 εποχές (ΚΑΛΥΨΩ ΜΥΡΤΩ).ppt
nikzoit
 
Εργασία ΤΠΕ Οι 4 εποχές (ΒΑΣΙΛΗΣ ΣΤΑΥΡΙΛΙΑ).ppt
Εργασία ΤΠΕ Οι 4 εποχές (ΒΑΣΙΛΗΣ ΣΤΑΥΡΙΛΙΑ).pptΕργασία ΤΠΕ Οι 4 εποχές (ΒΑΣΙΛΗΣ ΣΤΑΥΡΙΛΙΑ).ppt
Εργασία ΤΠΕ Οι 4 εποχές (ΒΑΣΙΛΗΣ ΣΤΑΥΡΙΛΙΑ).ppt
nikzoit
 
Οι περιπέτειες του Ηρακλή ΚΩΝΣΤΑΝΤΙΝΟΣ ΣΤΕΦΑΝΟΣ ΠΑΝΑΓΙΩΤΗΣ ΑΝ.ppt
Οι περιπέτειες του Ηρακλή ΚΩΝΣΤΑΝΤΙΝΟΣ ΣΤΕΦΑΝΟΣ ΠΑΝΑΓΙΩΤΗΣ ΑΝ.pptΟι περιπέτειες του Ηρακλή ΚΩΝΣΤΑΝΤΙΝΟΣ ΣΤΕΦΑΝΟΣ ΠΑΝΑΓΙΩΤΗΣ ΑΝ.ppt
Οι περιπέτειες του Ηρακλή ΚΩΝΣΤΑΝΤΙΝΟΣ ΣΤΕΦΑΝΟΣ ΠΑΝΑΓΙΩΤΗΣ ΑΝ.ppt
nikzoit
 
Εργασία ΤΠΕ Οι 4 εποχές (ΜΑΡΙΑ ΖΗΣΗΣ).ppt
Εργασία ΤΠΕ Οι 4 εποχές (ΜΑΡΙΑ ΖΗΣΗΣ).pptΕργασία ΤΠΕ Οι 4 εποχές (ΜΑΡΙΑ ΖΗΣΗΣ).ppt
Εργασία ΤΠΕ Οι 4 εποχές (ΜΑΡΙΑ ΖΗΣΗΣ).ppt
nikzoit
 
Εργασία ΤΠΕ Οι 4 εποχές (ΑΝΔΡΕΑΣ ΠΑΝΑΓΙΩΤΗΣ).ppt
Εργασία ΤΠΕ Οι 4 εποχές (ΑΝΔΡΕΑΣ ΠΑΝΑΓΙΩΤΗΣ).pptΕργασία ΤΠΕ Οι 4 εποχές (ΑΝΔΡΕΑΣ ΠΑΝΑΓΙΩΤΗΣ).ppt
Εργασία ΤΠΕ Οι 4 εποχές (ΑΝΔΡΕΑΣ ΠΑΝΑΓΙΩΤΗΣ).ppt
nikzoit
 
Εργασία ΤΠΕ Μέσα μεταφοράς (Κωνσταντίνος Αλέξανδρος).ppt
Εργασία ΤΠΕ Μέσα μεταφοράς (Κωνσταντίνος Αλέξανδρος).pptΕργασία ΤΠΕ Μέσα μεταφοράς (Κωνσταντίνος Αλέξανδρος).ppt
Εργασία ΤΠΕ Μέσα μεταφοράς (Κωνσταντίνος Αλέξανδρος).ppt
nikzoit
 

Recently uploaded (20)

Τα θέματα στη Φυσική Προσανατολισμού για τις Πανελλήνιες 2024
Τα θέματα στη Φυσική Προσανατολισμού για τις Πανελλήνιες 2024Τα θέματα στη Φυσική Προσανατολισμού για τις Πανελλήνιες 2024
Τα θέματα στη Φυσική Προσανατολισμού για τις Πανελλήνιες 2024
 
Οι περιπέτειες του Ηρακλή ΓΙΩΡΓΟΣ ΕΥΗ.ppt
Οι περιπέτειες του Ηρακλή ΓΙΩΡΓΟΣ ΕΥΗ.pptΟι περιπέτειες του Ηρακλή ΓΙΩΡΓΟΣ ΕΥΗ.ppt
Οι περιπέτειες του Ηρακλή ΓΙΩΡΓΟΣ ΕΥΗ.ppt
 
Οι περιπέτειες του Ηρακλή ΒΑΣΙΛΗΣ ΜΕΛΙΝΑ.ppt
Οι περιπέτειες του Ηρακλή ΒΑΣΙΛΗΣ ΜΕΛΙΝΑ.pptΟι περιπέτειες του Ηρακλή ΒΑΣΙΛΗΣ ΜΕΛΙΝΑ.ppt
Οι περιπέτειες του Ηρακλή ΒΑΣΙΛΗΣ ΜΕΛΙΝΑ.ppt
 
Οι περιπέτειες του Ηρακλή ΑΛΕΞΑΝΔΡΟΣ ΓΙΩΡΓΟΣ.ppt
Οι περιπέτειες του Ηρακλή ΑΛΕΞΑΝΔΡΟΣ ΓΙΩΡΓΟΣ.pptΟι περιπέτειες του Ηρακλή ΑΛΕΞΑΝΔΡΟΣ ΓΙΩΡΓΟΣ.ppt
Οι περιπέτειες του Ηρακλή ΑΛΕΞΑΝΔΡΟΣ ΓΙΩΡΓΟΣ.ppt
 
Θέματα φυσικής πανελλαδικών εξετάσεων 2024
Θέματα φυσικής πανελλαδικών εξετάσεων  2024Θέματα φυσικής πανελλαδικών εξετάσεων  2024
Θέματα φυσικής πανελλαδικών εξετάσεων 2024
 
Εργασία ΤΠΕ Οι 4 εποχές (ΑΡΓΥΡΗΣ ΔΗΜΗΤΡΗΣ).ppt
Εργασία ΤΠΕ Οι 4 εποχές (ΑΡΓΥΡΗΣ ΔΗΜΗΤΡΗΣ).pptΕργασία ΤΠΕ Οι 4 εποχές (ΑΡΓΥΡΗΣ ΔΗΜΗΤΡΗΣ).ppt
Εργασία ΤΠΕ Οι 4 εποχές (ΑΡΓΥΡΗΣ ΔΗΜΗΤΡΗΣ).ppt
 
them_istoria_gel_240612.PANELLINIES 2024 ISTORIApdf
them_istoria_gel_240612.PANELLINIES 2024 ISTORIApdfthem_istoria_gel_240612.PANELLINIES 2024 ISTORIApdf
them_istoria_gel_240612.PANELLINIES 2024 ISTORIApdf
 
Οι περιπέτειες του Ηρακλή ΠΑΝΑΓΙΩΤΗΣ ΜΕΛΙΝΑ Π.ppt
Οι περιπέτειες του Ηρακλή ΠΑΝΑΓΙΩΤΗΣ ΜΕΛΙΝΑ Π.pptΟι περιπέτειες του Ηρακλή ΠΑΝΑΓΙΩΤΗΣ ΜΕΛΙΝΑ Π.ppt
Οι περιπέτειες του Ηρακλή ΠΑΝΑΓΙΩΤΗΣ ΜΕΛΙΝΑ Π.ppt
 
Εργασία ΤΠΕ Οι 4 εποχές (ΚΩΝΣΤΑΝΤΙΝΟΣ ΑΡΗΣ).ppt
Εργασία ΤΠΕ Οι 4 εποχές (ΚΩΝΣΤΑΝΤΙΝΟΣ ΑΡΗΣ).pptΕργασία ΤΠΕ Οι 4 εποχές (ΚΩΝΣΤΑΝΤΙΝΟΣ ΑΡΗΣ).ppt
Εργασία ΤΠΕ Οι 4 εποχές (ΚΩΝΣΤΑΝΤΙΝΟΣ ΑΡΗΣ).ppt
 
Εργασία ΤΠΕ Μέσα μεταφοράς (Δημήτρης Τ Άγγελος).ppt
Εργασία ΤΠΕ Μέσα μεταφοράς (Δημήτρης Τ  Άγγελος).pptΕργασία ΤΠΕ Μέσα μεταφοράς (Δημήτρης Τ  Άγγελος).ppt
Εργασία ΤΠΕ Μέσα μεταφοράς (Δημήτρης Τ Άγγελος).ppt
 
Εργασία ΤΠΕ Μέσα μεταφοράς (Δημήτρης Ζ Κωνσταντίνος).ppt
Εργασία ΤΠΕ Μέσα μεταφοράς (Δημήτρης Ζ  Κωνσταντίνος).pptΕργασία ΤΠΕ Μέσα μεταφοράς (Δημήτρης Ζ  Κωνσταντίνος).ppt
Εργασία ΤΠΕ Μέσα μεταφοράς (Δημήτρης Ζ Κωνσταντίνος).ppt
 
Hardware Personal Computer a small Introduction
Hardware Personal Computer a small  IntroductionHardware Personal Computer a small  Introduction
Hardware Personal Computer a small Introduction
 
Οι περιπέτειες του Ηρακλή ΓΙΑΝΝΗΣ ΛΙΑ.ppt
Οι περιπέτειες του Ηρακλή ΓΙΑΝΝΗΣ ΛΙΑ.pptΟι περιπέτειες του Ηρακλή ΓΙΑΝΝΗΣ ΛΙΑ.ppt
Οι περιπέτειες του Ηρακλή ΓΙΑΝΝΗΣ ΛΙΑ.ppt
 
Τα θέματα στην Ιστορία Προσανατολισμού για τις Πανελλήνιες 2024
Τα θέματα στην Ιστορία Προσανατολισμού για τις Πανελλήνιες 2024Τα θέματα στην Ιστορία Προσανατολισμού για τις Πανελλήνιες 2024
Τα θέματα στην Ιστορία Προσανατολισμού για τις Πανελλήνιες 2024
 
Εργασία ΤΠΕ Οι 4 εποχές (ΚΑΛΥΨΩ ΜΥΡΤΩ).ppt
Εργασία ΤΠΕ Οι 4 εποχές (ΚΑΛΥΨΩ ΜΥΡΤΩ).pptΕργασία ΤΠΕ Οι 4 εποχές (ΚΑΛΥΨΩ ΜΥΡΤΩ).ppt
Εργασία ΤΠΕ Οι 4 εποχές (ΚΑΛΥΨΩ ΜΥΡΤΩ).ppt
 
Εργασία ΤΠΕ Οι 4 εποχές (ΒΑΣΙΛΗΣ ΣΤΑΥΡΙΛΙΑ).ppt
Εργασία ΤΠΕ Οι 4 εποχές (ΒΑΣΙΛΗΣ ΣΤΑΥΡΙΛΙΑ).pptΕργασία ΤΠΕ Οι 4 εποχές (ΒΑΣΙΛΗΣ ΣΤΑΥΡΙΛΙΑ).ppt
Εργασία ΤΠΕ Οι 4 εποχές (ΒΑΣΙΛΗΣ ΣΤΑΥΡΙΛΙΑ).ppt
 
Οι περιπέτειες του Ηρακλή ΚΩΝΣΤΑΝΤΙΝΟΣ ΣΤΕΦΑΝΟΣ ΠΑΝΑΓΙΩΤΗΣ ΑΝ.ppt
Οι περιπέτειες του Ηρακλή ΚΩΝΣΤΑΝΤΙΝΟΣ ΣΤΕΦΑΝΟΣ ΠΑΝΑΓΙΩΤΗΣ ΑΝ.pptΟι περιπέτειες του Ηρακλή ΚΩΝΣΤΑΝΤΙΝΟΣ ΣΤΕΦΑΝΟΣ ΠΑΝΑΓΙΩΤΗΣ ΑΝ.ppt
Οι περιπέτειες του Ηρακλή ΚΩΝΣΤΑΝΤΙΝΟΣ ΣΤΕΦΑΝΟΣ ΠΑΝΑΓΙΩΤΗΣ ΑΝ.ppt
 
Εργασία ΤΠΕ Οι 4 εποχές (ΜΑΡΙΑ ΖΗΣΗΣ).ppt
Εργασία ΤΠΕ Οι 4 εποχές (ΜΑΡΙΑ ΖΗΣΗΣ).pptΕργασία ΤΠΕ Οι 4 εποχές (ΜΑΡΙΑ ΖΗΣΗΣ).ppt
Εργασία ΤΠΕ Οι 4 εποχές (ΜΑΡΙΑ ΖΗΣΗΣ).ppt
 
Εργασία ΤΠΕ Οι 4 εποχές (ΑΝΔΡΕΑΣ ΠΑΝΑΓΙΩΤΗΣ).ppt
Εργασία ΤΠΕ Οι 4 εποχές (ΑΝΔΡΕΑΣ ΠΑΝΑΓΙΩΤΗΣ).pptΕργασία ΤΠΕ Οι 4 εποχές (ΑΝΔΡΕΑΣ ΠΑΝΑΓΙΩΤΗΣ).ppt
Εργασία ΤΠΕ Οι 4 εποχές (ΑΝΔΡΕΑΣ ΠΑΝΑΓΙΩΤΗΣ).ppt
 
Εργασία ΤΠΕ Μέσα μεταφοράς (Κωνσταντίνος Αλέξανδρος).ppt
Εργασία ΤΠΕ Μέσα μεταφοράς (Κωνσταντίνος Αλέξανδρος).pptΕργασία ΤΠΕ Μέσα μεταφοράς (Κωνσταντίνος Αλέξανδρος).ppt
Εργασία ΤΠΕ Μέσα μεταφοράς (Κωνσταντίνος Αλέξανδρος).ppt
 

ΠΛΗ10 ΜΑΘΗΜΑ 2.7

  • 1. ΠΛΗ10 ΕΝΟΤΗΤΑ 2: Αλγόριθµοι και Ψευδογλώσσα Μάθηµα 2.7: Αναδροµή ∆ηµήτρης Ψούνης
  • 2. A. Αναδροµή 1. Αναδροµικές Συναρτήσεις 1. Υπολογισµός Παραγοντικού 2. ∆υαδική Αναζήτηση (Binary Search) 2. Αναδροµικές ∆ιαδικασίες 1. Ταξινόµηση µε Συγχώνευση (Merge Sort) 2. Γρήγορη Ταξινόµηση (Quick Sort) Β. Ασκήσεις 1. Οι αριθµοί Fibonacci 2. Υπολογισµό ΜΚ∆ µε τον αλγόριθµο του Ευκλείδη 3. Πρόγραµµα: Ταξινόµηση Πίνακα ∆ηµήτρης Ψούνης, ΠΛΗ10, Μάθηµα 2.7: Αναδροµή Περιεχόµενα Μαθήµατος 2
  • 3. Α. Αναδροµή 1. Αναδροµικές Συναρτήσεις 3∆ηµήτρης Ψούνης, ΠΛΗ10, Μάθηµα 2.7: Αναδροµή Ο όρος αναδροµή αναφέρεται σε µια συνάρτηση που καλεί τον εαυτό της! Άρα µια συνάρτηση (ή διαδικασία) που στο σώµα της καλεί τον εαυτό της, θα ονοµάζεται αναδροµική συνάρτηση (αντίστοιχα αναδροµική διαδικασία). Η δηµιουργία µιας αναδροµικής συνάρτησης είναι πολύ χρήσιµη, ιδίως όταν κατασκευάζουµε πράγµατα που ορίζονται αναδροµικά! Ας δούµε ένα παράδειγµα: Το παραγοντικό του φυσικού αριθµού n ορίζεται ως: ! ∙ 1 ∙ 2 ∙ ⋯ 2 ∙ 1 π.χ. έχουµε 1! 1, 2! 2 ∙ 1, 3! 3 ∙ 2 ∙ 1 6, 4! 4 ∙ 3 ∙ 2 ∙ 1 24 κ.ο.κ. Το παραγοντικό ορίζεται ωστόσο και αναδροµικά ως εξής: ! ∙ 1 ! αν 1 ! 1, αν 1
  • 4. Α. Αναδροµή 1. Αναδροµικές Συναρτήσεις 1. Υπολογισµός Παραγοντικού 4∆ηµήτρης Ψούνης, ΠΛΗ10, Μάθηµα 2.7: Αναδροµή ΑΛΓΟΡΙΘΜΟΣ factorial ∆Ε∆ΟΜΕΝΑ n,res: INTEGER; ΣΥΝΑΡΤΗΣΗ factorial(n): INTEGER ∆ΙΕΠΑΦΗ ΕΙΣΟ∆ΟΣ n: INTEGER; ΕΞΟ∆ΟΣ factorial: INTEGER; ∆Ε∆ΟΜΕΝΑ y:INTEGER; ΑΡΧΗ ΕΑΝ (n=1) ΤΟΤΕ factorial:=1; ΑΛΛΙΩΣ y:=factorial(n-1); factorial:=n*y; ΕΑΝ-ΤΕΛΟΣ ΤΕΛΟΣ-ΣΥΝΑΡΤΗΣΗΣ ΑΡΧΗ ΤΥΠΩΣΕ(EOLN, "∆ώσε το n: "); ∆ΙΑΒΑΣΕ(n); res:=factorial(n); ΤΥΠΩΣΕ(n,"!=",res); ΤΕΛΟΣ
  • 5. Α. Αναδροµή 1. Αναδροµικές Συναρτήσεις 1. Υπολογισµός Παραγοντικού 5∆ηµήτρης Ψούνης, ΠΛΗ10, Μάθηµα 2.7: Αναδροµή Στον υπολογισµό µίας αναδροµικής συνάρτησης, κάθε αναδροµική κλήση έχει και το δικό της χώρο στη µνήµη. Ας δούµε πως τρέχει η κλήση factorial(3): Καλεί την factorial(2): Καλεί την factorial(1): ΣΥΝΑΡΤΗΣΗ factorial(n): INTEGER ΑΡΧΗ ΕΑΝ (n=1) ΤΟΤΕ factorial:=1; ΑΛΛΙΩΣ y:=factorial(n-1); factorial:=n*y; ΕΑΝ-ΤΕΛΟΣ ΤΕΛΟΣ-ΣΥΝΑΡΤΗΣΗΣ n … Χώρος της fact(3) 3 y n Χώρος της fact(3) 3 y Χώρος της fact(2) n y 2 n Χώρος της fact(3) 3 y Χώρος της fact(2) n y 2 Χώρος της fact(1) n y 1
  • 6. Α. Αναδροµή 1. Αναδροµικές Συναρτήσεις 1. Υπολογισµός Παραγοντικού 6∆ηµήτρης Ψούνης, ΠΛΗ10, Μάθηµα 2.7: Αναδροµή H factorial(1) επιστρέφει 1: Η factorial(2) αποθηκεύει το 1 στο y έπειτα επιστρέφει 2*1. Η factorial(2) αποθηκεύει το 1 στο y έπειτα επιστρέφει 3*2 ΣΥΝΑΡΤΗΣΗ factorial(n): INTEGER ΑΡΧΗ ΕΑΝ (n=1) ΤΟΤΕ factorial:=1; ΑΛΛΙΩΣ y:=factorial(n-1); factorial:=n*y; ΕΑΝ-ΤΕΛΟΣ ΤΕΛΟΣ-ΣΥΝΑΡΤΗΣΗΣ n Χώρος της fact(3) 3 y Χώρος της fact(2) n y 2 Χώρος της fact(1) n y 1 1 1 n Χώρος της fact(3) 3 y Χώρος της fact(2) n y 2 2 1 n Χώρος της fact(3) 3 y 6 2 main
  • 7. Α. Αναδροµή 1. Αναδροµικές Συναρτήσεις 1. Υπολογισµός Παραγοντικού 7∆ηµήτρης Ψούνης, ΠΛΗ10, Μάθηµα 2.7: Αναδροµή Για να απεικονίσουµε τις αναδροµικές κλήσεις που γίνονται προτιµάται µία παράσταση όπου κάθε αναδροµική κλήση στοιχίζεται λίγο δεξιότερα. Με τον τρόπο αυτό µπορούµε να παρακολουθήσουµε αρκετά ικανοποιητικά την εκτέλεση ενός αναδροµικού κώδικα: ΣΥΝΑΡΤΗΣΗ factorial(n): INTEGER ΑΡΧΗ ΕΑΝ (n=1) ΤΟΤΕ factorial:=1; ΑΛΛΙΩΣ y:=factorial(n-1); factorial:=n*y; ΕΑΝ-ΤΕΛΟΣ ΤΕΛΟΣ-ΣΥΝΑΡΤΗΣΗΣ ΚΛΗΣΗ factorial(3) (3=1) ΟΧΙ y:=factorial(2) ΚΛΗΣΗ factorial(2) (2=1) ΟΧΙ y:=factorial(1) ΚΛΗΣΗ factorial(1) (1=1) ΝΑΙ Επιστρέφει 1 y=1 Επιστρέφει 2*1=2 y=2 Επιστρέφει 3*2=6
  • 8. Α. Αναδροµή 1. Αναδροµικές Συναρτήσεις 2. ∆υαδική Αναζήτηση (Binary Search) 8∆ηµήτρης Ψούνης, ΠΛΗ10, Μάθηµα 2.7: Αναδροµή Κλασικό παράδειγµα αλγορίθµου που µπορεί να υλοποιηθεί αναδροµικά είναι η δυαδική αναζήτηση (Binary Search). Ο αλγόριθµος που είδαµε να υλοποιείται µε επανάληψη στους πίνακες, τώρα µπορεί να αναδιατυπωθεί µε αναδροµή. Σκεπτικό δυαδικής αναζήτησης µε αναδροµή του στοιχείου x σε έναν ταξινοµηµένο σε αύξουσα σειρά πίνακα: Αν το µεσαίο στοιχείο είναι το x, το στοιχείο βρέθηκε! Αν το x είναι µικρότερο από το µεσαίο στοιχείο τότε αναδροµικά ψάχνει στο κοµµάτι του πίνακα από την αρχή µέχρι το µεσαίο στοιχείο Αν το x είναι µεγαλύτερο από το µεσαίο στοιχείο τότε αναδροµικά ψάχνει στο κοµµάτι του πίνακα από το µεσαίο στοιχείο µέχρι το τέλος
  • 9. Α. Αναδροµή 1. Αναδροµικές Συναρτήσεις 2. ∆υαδική Αναζήτηση (Binary Search) 9∆ηµήτρης Ψούνης, ΠΛΗ10, Μάθηµα 2.7: Αναδροµή Μία υλοποίηση σε ψευδογλώσσα του αλγορίθµου (µε αναδροµή) είναι η ακόλουθη: ΣΥΝΑΡΤΗΣΗ binary_search(PIN,x,start,finish): BOOLEAN ∆ΙΕΠΑΦΗ … ∆Ε∆ΟΜΕΝΑ check:BOOLEAN; middle:INTEGER; ΑΡΧΗ ΕΑΝ (start>finish) ΤΟΤΕ check:=FALSE; ΑΛΛΙΩΣ middle:=(start+finish) DIV 2; ΕΑΝ (x=PIN[middle]) ΤΟΤΕ check:=TRUE; ΑΛΛΙΩΣ ΕΑΝ (x>PIN[middle]) ΤΟΤΕ check:=binary_search(PIN,x,middle+1,finish); ΑΛΛΙΩΣ check:=binary_search(PIN,x,start,middle-1); ΕΑΝ-ΤΕΛΟΣ ΕΑΝ-ΤΕΛΟΣ ΕΑΝ-ΤΕΛΟΣ binary_search:=check; ΤΕΛΟΣ-ΣΥΝΑΡΤΗΣΗΣ
  • 10. Α. Αναδροµή 1. Αναδροµικές Συναρτήσεις 2. ∆υαδική Αναζήτηση (Binary Search) 10∆ηµήτρης Ψούνης, ΠΛΗ10, Μάθηµα 2.7: Αναδροµή Εκτελούµε τον αλγόριθµο ψάχνοντας το στοιχείο 11 στον πίνακα: Κλήση: BinarySearch(A,11,1,15): middle=(1+15) div 2=8. x<A[middle] Αναδροµική Κλήση: BinarySearch(A,11,1,7) : middle=(1+7) div 2=4 x>A[middle] Αναδροµική Κλήση: BinarySearch(A,11,5,7) : middle=(5+7) div 2=6 x<A[middle] Αναδροµική Κλήση: BinarySearch(A,11,5,5) : middle=(5+5) div 2=5 x=A[middle] 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 2 3 5 7 11 13 17 21 23 27 31 33 37 41 43 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 2 3 5 7 11 13 17 21 23 27 31 33 37 41 43 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 2 3 5 7 11 13 17 21 23 27 31 33 37 41 43 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 2 3 5 7 11 13 17 21 23 27 31 33 37 41 43 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 2 3 5 7 11 13 17 21 23 27 31 33 37 41 43 start start start start=finish finish finish finish
  • 11. Α. Αναδροµή 1. Αναδροµικές Συναρτήσεις 2. ∆υαδική Αναζήτηση (Binary Search) 11∆ηµήτρης Ψούνης, ΠΛΗ10, Μάθηµα 2.7: Αναδροµή Άσκηση: Κατασκευάστε ένα πρόγραµµα που να αναδεικνύει την χρήση της δυαδικής αναζήτησης και παρουσιάστε ένα παράδειγµα εκτέλεσης για τον πίνακα Α=[1 3 5 7 9] αναζητώντας το στοιχείο 7 Σηµείωση: Στο σηµείο αυτό συνίσταται να µελετήσετε πρώτα τις δύο εφαρµογές (αριθµοί Fibonacci και αλγόριθµος Ευκλείδη) και έπειτα να προχωρήσετε µε την θεωρία του µαθήµατος.
  • 12. Α. Αναδροµή 2. Αναδροµικές ∆ιαδικασίες 1. Ταξινόµηση µε Συγχώνευση (Merge Sort) 12∆ηµήτρης Ψούνης, ΠΛΗ10, Μάθηµα 2.7: Αναδροµή Ένας ακόµη κλασικός αλγόριθµος ταξινόµησης που µάλιστα λειτουργεί µε αναδροµή, είναι η Ταξινόµηση µε Συγχώνευση (Merge Sort). Ο αλγόριθµος λειτουργεί ως εξής: Ταξινοµεί το αριστερό κοµµάτι του πίνακα Ταξινοµεί το δεξί κοµµάτι του πίνακα Συγχωνεύει τα δύο ταξινοµηµένα πλέον κοµµάτια σε µία ταξινοµηµένη ακολουθία Η ταξινόµηση κάθε κοµµατιού γίνεται µε αναδροµική κλήση της ίδιας διαδικασίας.
  • 13. Α. Αναδροµή 2. Αναδροµικές ∆ιαδικασίες 1. Ταξινόµηση µε Συγχώνευση (Merge Sort) 13∆ηµήτρης Ψούνης, ΠΛΗ10, Μάθηµα 2.7: Αναδροµή Η υλοποίηση σε ψευδογλώσσα είναι η ακόλουθη: ∆ΙΑ∆ΙΚΑΣΙΑ merge_sort(%PIN,start,finish) ∆ΙΕΠΑΦΗ ΕΙΣΟ∆ΟΣ PIN: ARRAY[1..MAX_N] OF INTEGER; start,finish: INTEGER; ΕΞΟ∆ΟΣ PIN: ARRAY[1..MAX_N] OF INTEGER; ∆Ε∆ΟΜΕΝΑ middle: INTEGER; ΑΡΧΗ ΕΑΝ (start<finish) ΤΟΤΕ ΕΑΝ (start+1=finish) ΤΟΤΕ /* 2 στοιχεία */ ΕΑΝ (PIN[start]>PIN[finish]) ΤΟΤΕ ΥΠΟΛΟΓΙΣΕ swap(%PIN[start],%PIN[finish]); ΕΑΝ-ΤΕΛΟΣ ΑΛΛΙΩΣ /* περισσότερα από 2 στοιχεία */ middle:=(start+finish) DIV 2; ΥΠΟΛΟΓΙΣΕ merge_sort(%PIN,start,middle); ΥΠΟΛΟΓΙΣΕ merge_sort(%PIN,middle+1,finish); ΥΠΟΛΟΓΙΣΕ merge(%PIN,start,finish); ΕΑΝ-ΤΕΛΟΣ ΕΑΝ-ΤΕΛΟΣ ΤΕΛΟΣ-∆ΙΑ∆ΙΚΑΣΙΑΣ
  • 14. 14∆ηµήτρης Ψούνης, ΠΛΗ10, Μάθηµα 2.7: Αναδροµή Αναδροµική Κλήση MergeSort(Α,1,16) 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 18 7 4 11 9 20 6 1 22 19 14 5 2 9 10 13 Α. Αναδροµή 2. Αναδροµικές ∆ιαδικασίες 1. Ταξινόµηση µε Συγχώνευση (Merge Sort)
  • 15. 15∆ηµήτρης Ψούνης, ΠΛΗ10, Μάθηµα 2.7: Αναδροµή Αναδροµική Κλήση MergeSort(Α,1,16) 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 18 7 4 11 9 20 6 1 22 19 14 5 2 3 10 13 1 2 3 4 5 6 7 8 18 7 4 11 9 20 6 1 9 10 11 12 13 14 15 16 22 19 14 5 2 3 10 13 Α. Αναδροµή 2. Αναδροµικές ∆ιαδικασίες 1. Ταξινόµηση µε Συγχώνευση (Merge Sort)
  • 16. 16∆ηµήτρης Ψούνης, ΠΛΗ10, Μάθηµα 2.7: Αναδροµή Αναδροµική Κλήση (A,1,8) 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 18 7 4 11 9 20 6 1 22 19 14 5 2 3 10 13 1 2 3 4 5 6 7 8 18 7 4 11 9 20 6 1 9 10 11 12 13 14 15 16 22 19 14 5 2 3 10 13 1 2 3 4 18 7 4 11 5 6 7 8 9 20 6 1 Α. Αναδροµή 2. Αναδροµικές ∆ιαδικασίες 1. Ταξινόµηση µε Συγχώνευση (Merge Sort)
  • 17. 17∆ηµήτρης Ψούνης, ΠΛΗ10, Μάθηµα 2.7: Αναδροµή Αναδροµική Κλήση (A,1,4) 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 18 7 4 11 9 20 6 1 22 19 14 5 2 3 10 13 1 2 3 4 5 6 7 8 18 7 4 11 9 20 6 1 9 10 11 12 13 14 15 16 22 19 14 5 2 3 10 13 1 2 3 4 18 7 4 11 5 6 7 8 9 20 6 1 1 2 18 7 3 4 4 11 Α. Αναδροµή 2. Αναδροµικές ∆ιαδικασίες 1. Ταξινόµηση µε Συγχώνευση (Merge Sort)
  • 18. 18∆ηµήτρης Ψούνης, ΠΛΗ10, Μάθηµα 2.7: Αναδροµή Αναδροµική Κλήση (A,1,2): Ταξινοµηση του υποπίνακα 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 18 7 4 11 9 20 6 1 22 19 14 5 2 3 10 13 1 2 3 4 5 6 7 8 18 7 4 11 9 20 6 1 9 10 11 12 13 14 15 16 22 19 14 5 2 3 10 13 1 2 3 4 18 7 4 11 5 6 7 8 9 20 6 1 1 2 7 18 3 4 4 11 Α. Αναδροµή 2. Αναδροµικές ∆ιαδικασίες 1. Ταξινόµηση µε Συγχώνευση (Merge Sort)
  • 19. 19∆ηµήτρης Ψούνης, ΠΛΗ10, Μάθηµα 2.7: Αναδροµή Αναδροµική Κλήση (A,3,4): Ταξινοµηση του υποπίνακα 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 18 7 4 11 9 20 6 1 22 19 14 5 2 3 10 13 1 2 3 4 5 6 7 8 18 7 4 11 9 20 6 1 9 10 11 12 13 14 15 16 22 19 14 5 2 3 10 13 1 2 3 4 18 7 4 11 5 6 7 8 9 20 6 1 1 2 7 18 3 4 4 11 Α. Αναδροµή 2. Αναδροµικές ∆ιαδικασίες 1. Ταξινόµηση µε Συγχώνευση (Merge Sort)
  • 20. 20∆ηµήτρης Ψούνης, ΠΛΗ10, Μάθηµα 2.7: Αναδροµή Αναδροµική Κλήση (A,1,4): Συγχώνευση των δύο υποπινάκων 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 18 7 4 11 9 20 6 1 22 19 14 5 2 3 10 13 1 2 3 4 5 6 7 8 18 7 4 11 9 20 6 1 9 10 11 12 13 14 15 16 22 19 14 5 2 3 10 13 1 2 3 4 4 7 11 18 5 6 7 8 9 20 6 1 1 2 7 18 3 4 4 11 Α. Αναδροµή 2. Αναδροµικές ∆ιαδικασίες 1. Ταξινόµηση µε Συγχώνευση (Merge Sort)
  • 21. 21∆ηµήτρης Ψούνης, ΠΛΗ10, Μάθηµα 2.7: Αναδροµή Αναδροµική Κλήση (A,5,8) 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 18 7 4 11 9 20 6 1 22 19 14 5 2 3 10 13 1 2 3 4 5 6 7 8 18 7 4 11 9 20 6 1 9 10 11 12 13 14 15 16 22 19 14 5 2 3 10 13 1 2 3 4 4 7 11 18 5 6 7 8 9 20 6 1 1 2 7 18 3 4 4 11 5 6 9 20 7 8 6 1 Α. Αναδροµή 2. Αναδροµικές ∆ιαδικασίες 1. Ταξινόµηση µε Συγχώνευση (Merge Sort)
  • 22. 22∆ηµήτρης Ψούνης, ΠΛΗ10, Μάθηµα 2.7: Αναδροµή Αναδροµική Κλήση (A,5,6): Ταξινοµηση του υποπίνακα 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 18 7 4 11 9 20 6 1 22 19 14 5 2 3 10 13 1 2 3 4 5 6 7 8 18 7 4 11 9 20 6 1 9 10 11 12 13 14 15 16 22 19 14 5 2 3 10 13 1 2 3 4 4 7 11 18 5 6 7 8 9 20 6 1 1 2 7 18 3 4 4 11 5 6 9 20 7 8 6 1 Α. Αναδροµή 2. Αναδροµικές ∆ιαδικασίες 1. Ταξινόµηση µε Συγχώνευση (Merge Sort)
  • 23. 23∆ηµήτρης Ψούνης, ΠΛΗ10, Μάθηµα 2.7: Αναδροµή Αναδροµική Κλήση (A,7,8): Ταξινοµηση του υποπίνακα 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 18 7 4 11 9 20 6 1 22 19 14 5 2 3 10 13 1 2 3 4 5 6 7 8 18 7 4 11 9 20 6 1 9 10 11 12 13 14 15 16 22 19 14 5 2 3 10 13 1 2 3 4 4 7 11 18 5 6 7 8 9 20 6 1 1 2 7 18 3 4 4 11 5 6 9 20 7 8 1 6 Α. Αναδροµή 2. Αναδροµικές ∆ιαδικασίες 1. Ταξινόµηση µε Συγχώνευση (Merge Sort)
  • 24. 24∆ηµήτρης Ψούνης, ΠΛΗ10, Μάθηµα 2.7: Αναδροµή Αναδροµική Κλήση (A,5,8): Συγχώνευση των δύο υποπινάκων 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 18 7 4 11 9 20 6 1 22 19 14 5 2 3 10 13 1 2 3 4 5 6 7 8 18 7 4 11 9 20 6 1 9 10 11 12 13 14 15 16 22 19 14 5 2 3 10 13 1 2 3 4 4 7 11 18 5 6 7 8 1 6 9 20 1 2 7 18 3 4 4 11 5 6 9 20 7 8 1 6 Α. Αναδροµή 2. Αναδροµικές ∆ιαδικασίες 1. Ταξινόµηση µε Συγχώνευση (Merge Sort)
  • 25. 25∆ηµήτρης Ψούνης, ΠΛΗ10, Μάθηµα 2.7: Αναδροµή Αναδροµική Κλήση (A,1,8): Συγχώνευση των δύο υποπινάκων 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 18 7 4 11 9 20 6 1 22 19 14 5 2 3 10 13 1 2 3 4 5 6 7 8 1 4 6 7 9 11 18 20 9 10 11 12 13 14 15 16 22 19 14 5 2 3 10 13 1 2 3 4 4 7 11 18 5 6 7 8 1 6 9 20 1 2 7 18 3 4 4 11 5 6 9 20 7 8 1 6 Α. Αναδροµή 2. Αναδροµικές ∆ιαδικασίες 1. Ταξινόµηση µε Συγχώνευση (Merge Sort)
  • 26. 26∆ηµήτρης Ψούνης, ΠΛΗ10, Μάθηµα 2.7: Αναδροµή Αντίστοιχα θα γίνουν όλες οι αναδροµικές κλήσεις στο (9,16) 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 18 7 4 11 9 20 6 1 22 19 14 5 2 3 10 13 1 2 3 4 5 6 7 8 1 4 6 7 9 11 18 20 9 10 11 12 13 14 15 16 2 3 5 10 13 14 19 22 1 2 3 4 4 7 11 18 5 6 7 8 1 6 9 20 1 2 7 18 3 4 4 11 5 6 9 20 7 8 1 6 9 10 11 12 5 14 19 22 13 14 15 16 2 3 10 13 9 10 19 22 11 12 5 14 13 14 2 3 15 16 10 13 Α. Αναδροµή 2. Αναδροµικές ∆ιαδικασίες 1. Ταξινόµηση µε Συγχώνευση (Merge Sort)
  • 27. 27∆ηµήτρης Ψούνης, ΠΛΗ10, Μάθηµα 2.7: Αναδροµή Αναδροµική Κλήση (A,1,16): Συγχώνευση των δύο υποπινάκων 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 1 2 3 4 5 6 7 9 10 11 13 14 18 19 20 22 1 2 3 4 5 6 7 8 1 4 6 7 9 11 18 20 9 10 11 12 13 14 15 16 2 3 5 10 13 14 19 22 1 2 3 4 4 7 11 18 5 6 7 8 1 6 9 20 1 2 7 18 3 4 4 11 5 6 9 20 7 8 1 6 9 10 11 12 5 14 19 22 13 14 15 16 2 3 10 13 9 10 19 22 11 12 5 14 13 14 2 3 15 16 10 13 Α. Αναδροµή 2. Αναδροµικές ∆ιαδικασίες 1. Ταξινόµηση µε Συγχώνευση (Merge Sort)
  • 28. Α. Αναδροµή 2. Αναδροµικές ∆ιαδικασίες 1. Ταξινόµηση µε Συγχώνευση (Merge Sort) 28∆ηµήτρης Ψούνης, ΠΛΗ10, Μάθηµα 2.7: Αναδροµή Η διαδικασία merge δουλεύει ως εξής: Σαρώνει τους δύο πίνακες ταυτόχρονα από αριστερά προς τα δεξιά. Συγκρίνει τα δύο τρέχοντα στοιχεία των πινάκων Επιλέγει το µικρότερο και το βάζει στην επόµενη θέση της ταξινοµηµένης ακολουθίας Όταν εξαντληθούν τα στοιχεία του ένος από τους δύο πίνακες, βάζουµε όσα στοιχεία απέµειναν από τον άλλο πίνακα στο τέλος της ταξινοµηµένης ακολουθίας. Στο παράδειγµα βλέπουµε µερικά βήµατα και τους µετρητές που χρησιµοποιούνται.
  • 29. 29∆ηµήτρης Ψούνης, ΠΛΗ10, Μάθηµα 2.7: Αναδροµή
  • 30. Α. Αναδροµή 2. Αναδροµικές ∆ιαδικασίες 1. Ταξινόµηση µε Συγχώνευση (Merge Sort) 30∆ηµήτρης Ψούνης, ΠΛΗ10, Μάθηµα 2.7: Αναδροµή Μία υλοποίηση της merge είναι η ακόλουθη: ∆ΙΑ∆ΙΚΑΣΙΑ merge(%PIN,start,finish) ∆ΙΕΠΑΦΗ ΕΙΣΟ∆ΟΣ PIN: ARRAY[1..MAX_N] OF INTEGER; start,finish: INTEGER; ΕΞΟ∆ΟΣ PIN: ARRAY[1..MAX_N] OF INTEGER; ∆Ε∆ΟΜΕΝΑ C: ARRAY[1..MAX_N] OF INTEGER; middle: INTEGER; i,j,k:INTEGER; n: INTEGER; m: INTEGER; ΑΡΧΗ middle:=(start+finish) DIV 2; /* 1ος πίνακας PIN[start...middle]*/ i:=start; n:=middle; /* 2ος πίνακας PIN[middle+1...finish]*/ j:=middle+1; m:=finish; /* C: συγχωνευµένος πίνακας */ k:=1; (συνεχίζεται…)
  • 31. Α. Αναδροµή 2. Αναδροµικές ∆ιαδικασίες 1. Ταξινόµηση µε Συγχώνευση (Merge Sort) 31∆ηµήτρης Ψούνης, ΠΛΗ10, Μάθηµα 2.7: Αναδροµή Μία υλοποίηση της merge είναι η ακόλουθη: (συνέχεια…) /* 1. Συγχώνευση των δύο πινάκων */ ΕΝΟΣΩ (i<=n AND j<=m) ΕΠΑΝΑΛΑΒΕ ΕΑΝ (PIN[i]<PIN[j]) ΤΟΤΕ C[k]:=PIN[i]; k:=k+1; i:=i+1; ΑΛΛΙΩΣ C[k]:=PIN[j]; k:=k+1; j:=j+1; ΕΑΝ-ΤΕΛΟΣ ΕΝΟΣΩ-ΤΕΛΟΣ (συνεχίζεται…)
  • 32. Α. Αναδροµή 2. Αναδροµικές ∆ιαδικασίες 1. Ταξινόµηση µε Συγχώνευση (Merge Sort) 32∆ηµήτρης Ψούνης, ΠΛΗ10, Μάθηµα 2.7: Αναδροµή /* 2. Αντιγραφή του πίνακα που «περισσεύει στο τέλος του συγχωνευµένου πίνακα */ ΕΑΝ (i=n+1) ΤΟΤΕ /* Εξαντλήθηκε ο 1ος πίνακας */ ΕΝΟΣΩ (j<=m) ΕΠΑΝΑΛΑΒΕ C[k]:=PIN[j]; k:=k+1; j:=j+1; ΕΝΟΣΩ-ΤΕΛΟΣ ΑΛΛΙΩΣ /* Εξαντλήθηκε ο 2ος πίνακας */ ΕΝΟΣΩ (i<=n) ΕΠΑΝΑΛΑΒΕ C[k]:=PIN[i]; k:=k+1; i:=i+1; ΕΝΟΣΩ-ΤΕΛΟΣ ΕΑΝ-ΤΕΛΟΣ /* 3. Αντιγραφή του C στον PIN */ k:=1; i:=start; ΕΝΟΣΩ (i<=finish) ΕΠΑΝΑΛΑΒΕ PIN[i]:=C[k]; i:=i+1; k:=k+1; ΕΝΟΣΩ-ΤΕΛΟΣ ΤΕΛΟΣ-∆ΙΑ∆ΙΚΑΣΙΑΣ
  • 33. Α. Αναδροµή 2. Αναδροµικές ∆ιαδικασίες 1. Ταξινόµηση µε Συγχώνευση (Merge Sort) 33∆ηµήτρης Ψούνης, ΠΛΗ10, Μάθηµα 2.7: Αναδροµή Άσκηση: Κατασκευάστε ένα πρόγραµµα που να αναδεικνύει την χρήση της merge sort και παρουσιάστε ένα παράδειγµα εκτέλεσης για τον πίνακα Α=[6 2 4 1 8 10 11 12]
  • 34. Α. Αναδροµή 2. Αναδροµικές ∆ιαδικασίες 2. Γρήγορη Ταξινόµηση (Quick Sort) 34∆ηµήτρης Ψούνης, ΠΛΗ10, Μάθηµα 2.7: Αναδροµή Τελευταίος αλγόριθµος ταξινόµησης που θα µελετήσουµε (και λειτουργεί µε αναδροµή), είναι η Γρήγορη Ταξινόµηση (Quick Sort). Ο αλγόριθµος λειτουργεί ως εξής: Επιλέγει ένα Στοιχείο του Πίνακα (Οδηγό Στοιχείο – Εδώ το στοιχείο που είναι στην πρώτη θέση) Χωρίζει τον πίνακα σε δύο µέρη: Τα στοιχεία που είναι µικρότερα του οδηγού στοιχείου Τα στοιχεία που είναι µεγαλύτερα ή ίσα του οδηγού στοιχείου Επαναλαµβάνει αναδροµικά στους δύο υποπίνακες που προέκυψαν.
  • 35. Α. Αναδροµή 2. Αναδροµικές ∆ιαδικασίες 2. Γρήγορη Ταξινόµηση (Quick Sort) 35∆ηµήτρης Ψούνης, ΠΛΗ10, Μάθηµα 2.7: Αναδροµή Η υλοποίηση σε ψευδογλώσσα είναι η ακόλουθη: ∆ΙΑ∆ΙΚΑΣΙΑ quick_sort(%PIN,start,finish) ∆ΙΕΠΑΦΗ ΕΙΣΟ∆ΟΣ PIN: ARRAY[1..MAX_N] OF INTEGER; start,finish: INTEGER; ΕΞΟ∆ΟΣ PIN: ARRAY[1..MAX_N] OF INTEGER; ΑΡΧΗ ΕΑΝ (start<finish) ΤΟΤΕ pos=partition(%PIN,start,finish); /* ∆ιαµέριση του πίνακα */ ΥΠΟΛΟΓΙΣΕ quick_sort(%PIN,start,pos); /* Αναδροµή στον αριστερό υποπίνακα */ ΥΠΟΛΟΓΙΣΕ quick_sort(%PIN,pos+1,finish);/* Αναδροµή στον δεξιό υποπίνακα */ ΕΑΝ-ΤΕΛΟΣ ΤΕΛΟΣ-∆ΙΑ∆ΙΚΑΣΙΑΣ
  • 36. Ο αλγόριθµος ταξινόµησης QuickSort (2.Παράδειγµα Εκτέλεσης) 36∆ηµήτρης Ψούνης, ΠΛΗ10, Μάθηµα 2.7: Αναδροµή 1 2 3 4 5 6 7 8 9 10 18 7 4 11 9 20 6 1 22 19 1 7 4 11 9 6 20 18 22 19 1 2 3 4 5 6 1 7 4 11 9 6 1 7 4 11 9 6 7 8 9 10 20 18 22 19 19 18 22 20 2 3 4 5 6 7 4 11 9 6 6 4 11 9 7 2 3 6 4 4 6 4 5 6 11 9 7 7 9 11 2 4 4 3 6 6 4 5 11 9 7 9 6 11 11 4 7 7 5 9 9 1 1 1 1 1 2 4 3 6 4 7 5 9 6 11 7 18 7 8 19 18 18 19 9 10 22 20 20 22 7 18 18 8 19 19 9 20 20 10 22 22 8 19 9 20 10 22 8 19
  • 37. Α. Αναδροµή 2. Αναδροµικές ∆ιαδικασίες 2. Γρήγορη Ταξινόµηση (Quick Sort) 37∆ηµήτρης Ψούνης, ΠΛΗ10, Μάθηµα 2.7: Αναδροµή Η διαµέριση των στοιχείων στα µικρότερα και µεγαλύτερα ή ίσα µπορεί να γίνει µε πολλούς τρόπους: Π.χ. ένας απλός τρόπος είναι να χρησιµοποιήσουµε έναν βοηθητικό πίνακα που να βάζουµε στα αριστερά τα µικρότερα στοιχεία και στα δεξιά τα µεγαλύτερα στοιχεία του οδηγού. Ωστόσο εµείς θα µελετήσουµε έναν τρόπο διαµέρισης, που αναφέρεται ως σχήµα του Hoare: Σαρώνουµε τον πίνακα από αριστερά ψάχνοντας για ένα στοιχείο που είναι µεγαλύτερο (ή ίσο) του οδηγού Σαρώνουµε τον πίνακα από δεξιά ψάχνοντας για ένα στοιχείο που είναι µικρότερο (ή ίσο) του οδηγού Ανταλλάσσουµε τα δύο στοιχεία και επαναλαµβάνουµε µέχρι να γίνει ο χωρισµός των στοιχείων. Θα µελετήσουµε το σχήµα του Hoare µε παραδείγµατα (επόµενη διαφάνεια)
  • 38. 1 2 6 4 4 6 Α. Αναδροµή 2. Αναδροµικές ∆ιαδικασίες 2. Γρήγορη Ταξινόµηση (Quick Sort) 38∆ηµήτρης Ψούνης, ΠΛΗ10, Μάθηµα 2.7: Αναδροµή Παράδειγµα εκτέλεσης της partition: Παραδείγµατα εκτέλεσης µε 2 στοιχεία: και µε 1 στοιχειο: 1 2 3 4 5 6 7 8 9 10 18 7 4 11 9 20 6 1 22 19 i=1 j=8 1 2 3 4 5 6 7 8 9 10 18 7 4 11 9 20 6 1 22 19 1 18 22 19 1 2 3 4 5 6 7 8 9 10 18 7 4 11 9 20 6 1 22 19 1 18 22 19i=6 j=7 1 2 3 4 5 6 7 8 9 10 1 7 4 11 8 6 20 18 22 19 1 2 3 4 5 6 7 8 9 10 18 7 4 11 9 20 6 1 22 19 1 7 4 11 8 6 20 18 22 19 i=7j=6 1 2 3 4 5 6 7 8 9 10 1 7 4 11 8 6 20 18 22 19 1 2 6 4 i=1 j=1 i=2 1 2 4 6 1 2 4 6 i=1 1 2 4 6 j=2 j=1 1 6 i=1 j=1 τερµατισµός
  • 39. Α. Αναδροµή 2. Αναδροµικές ∆ιαδικασίες 2. Γρήγορη Ταξινόµηση (Quick Sort) 39∆ηµήτρης Ψούνης, ΠΛΗ10, Μάθηµα 2.7: Αναδροµή Η υλοποίηση της partition µε το σχήµα του Hoare σε ψευδογλώσσα είναι η ακόλουθη: ΣΥΝΑΡΤΗΣΗ partition(%PIN,start,finish):INTEGER ∆ΙΕΠΑΦΗ ΕΙΣΟ∆ΟΣ PIN: ARRAY[1..MAX_N] OF INTEGER; start,finish: INTEGER; ΕΞΟ∆ΟΣ PIN: ARRAY[1..MAX_N] OF INTEGER; partition: INTEGER; ∆Ε∆ΟΜΕΝΑ pivot,i,j: INTEGER; stop: BOOLEAN; ΑΡΧΗ pivot:=PIN[start]; i:=start-1; j:=finish+1; stop:=FALSE; ΕΝΟΣΩ (stop=FALSE) ΕΠΑΝΑΛΑΒΕ ΕΠΑΝΑΛΑΒΕ j:=j-1; ΜΕΧΡΙ (PIN[j]<=pivot) ΕΠΑΝΑΛΑΒΕ i:=i+1; ΜΕΧΡΙ (PIN[i]>=pivot) ΕΑΝ (i<j) ΤΟΤΕ ΥΠΟΛΟΓΙΣΕ swap(%PIN[i],%PIN[j]); ΑΛΛΙΩΣ stop:=TRUE; partition:=j; ΕΑΝ-ΤΕΛΟΣ ΕΝΟΣΩ-ΤΕΛΟΣ ΤΕΛΟΣ-ΣΥΝΑΡΤΗΣΗΣ
  • 40. Α. Αναδροµή 2. Αναδροµικές ∆ιαδικασίες 2. Γρήγορη Ταξινόµηση (Quick Sort) 40∆ηµήτρης Ψούνης, ΠΛΗ10, Μάθηµα 2.7: Αναδροµή Άσκηση: Κατασκευάστε ένα πρόγραµµα που να αναδεικνύει την χρήση της merge sort και παρουσιάστε ένα παράδειγµα εκτέλεσης για τον πίνακα Α=[6 2 4 1 8 10 11 12]
  • 41. Β. Ασκήσεις Εφαρµογή 1 (Αναδροµή: Η ακολουθία FIbonacci) 41∆ηµήτρης Ψούνης, ΠΛΗ10, Μάθηµα 2.7: Αναδροµή Η ακολουθία fibonacci ορίζεται ως: Fn=Fn-1+Fn-2, για n>2 F2=1 F1=1 Για παράδειγµα έχουµε F1=1,F2=1,F3=2,F4=3,F5=5,F6=8 κ.ο.κ. Ορίστε την συνάρτηση fibonacci(n) που δέχεται ως όρισµα έναν φυσικό και επιστρέφει το n- οστό fibonacci. Έπειτα κατασκευάστε έναν αλγόριθµο που διαβάζει από τον χρήστη έναν ακέραιο και υπολογίζει και επιστρέφει τον αριθµό fibonacci του αριθµού που εισήγαγε ο χρήστης.
  • 42. Β. Ασκήσεις Εφαρµογή 2 (Αναδροµή: ΜΚ∆ µε τον αλγόριθµο του Ευκλείδη) 42∆ηµήτρης Ψούνης, ΠΛΗ10, Μάθηµα 2.7: Αναδροµή O αλγόριθµος του Ευκλείδη για την εύρεση του Μέγιστου Κοινού ∆ιαιρέτη δύο (φυσικών) αριθµών: Ξεκινά µε ένα ζεύγος φυσικών και σχηµατίζει ένα νέο ζευγάρι µε τον µικρότερο αριθµό και την διαφορά του µικρότερου από τον µεγαλύτερο αριθµό. Η διαδικασία επαναλαµβάνεται εωσότου οι αριθµοί γίνουν ίσοι. Ο αριθµός αυτός είναι ο ΜΚ∆ των αρχικών αριθµών. Μαθηµατικά ο ΜΚ∆(a,b) όπου a,b είναι φυσικοί: Είναι ίσο µε a, αν a=b Είναι ίσο µε ΜΚ∆(a,b-a), αν a<b Είναι ίσο µε ΜΚ∆(a-b,b), αλλιώς Κατασκευάστε έναν αλγόριθµο που θα υλοποιεί µε µία αναδροµική συνάρτηση τον υπολογισµό του ΜΚ∆ και θα ζητάει από το χρήστη να εισάγει τους δύο φυσικούς, θα κάνει κατάλληλη κλήση της συνάρτησης και θα τυπώνει τον ΜΚ∆ των αριθµών.
  • 43. Β. Ασκήσεις Εφαρµογή 3 (Πρόγραµµα: Ταξινόµηση Πίνακα) 43∆ηµήτρης Ψούνης, ΠΛΗ10, Μάθηµα 2.7: Αναδροµή Επεκτείνετε το πρόγραµµα της ταξινόµησης πινάκων ώστε να ενσωµατώνει και τους αλγορίθµους της ταξινόµησης µε συγχώνευση (Merge Sort) και της γρήγορης ταξινόµησης (Quick Sort).