SlideShare a Scribd company logo
1 of 39
Download to read offline
ΠΛΗ10
ΕΝΟΤΗΤΑ 2: Αλγόριθµοι και Ψευδογλώσσα
Μάθηµα 2.6:
Συναρτήσεις και ∆ιαδικασίες
∆ηµήτρης Ψούνης
A. Συναρτήσεις
1. Πότε Γράφουµε Συναρτήσεις
2. Πως Γράφουµε Συναρτήσεις
1. Γενικό Σχήµα
2. ∆ήλωση Συνάρτησης
3. Η ∆ιεπαφή της Συνάρτησης
4. Το Σώµα της Συνάρτησης
5. Κλήση Συνάρτησης
6. Άσκηση µε ορισµό συναρτήσεων
7. Καθολικές και Τοπικές Μεταβλητές
3. Πως Λειτουργούν οι Συναρτήσεις
1. Συναρτήσεις και Χώρος στη Μνήµη
Β. ∆ιαδικασίες
1. Πότε Γράφουµε ∆ιαδικασίες
2. Πως Γράφουµε ∆ιαδικασίες
∆ηµήτρης Ψούνης, ΠΛΗ 10, Μάθηµα 2.6: Συναρτήσεις και ∆ιαδικασίες
Περιεχόµενα Μαθήµατος
2
Γ. Ασκήσεις
1. Συνάρτηση Ελέγχου Εισόδου
2. Βιβλιοθήκη Μελέτης Αριθµών
3. Πρώτοι Αριθµοί
4. Ανταλλαγή Τιµών (swap)
5. Συνήθεις Πράξεις Πινάκων
1. ∆ιαδικασία: Ανάγνωση Πίνακα
2. ∆ιαδικασία: Εκτύπωση Πίνακα
3. Συνάρτηση: Ελάχιστος Πίνακα
4. Συνάρτηση: Μέγιστος Πίνακα
5. Συνάρτηση: Άθροισµα Στοιχείων Πίνακα
6. Συνάρτηση: Γινόµενο Στοιχείων Πίνακα
7. Συνάρτηση: Μέσος Όρος Πίνακα
8. Πρόγραµµα: Μελέτη Πινάκων
6. Αναζήτηση σε Πίνακα
1. Συνάρτηση: Σειριακή Αναζήτηση
2. Συνάρτηση: ∆υαδική Αναζήτηση
3. Πρόγραµµα: Αναζήτηση σε Πίνακα
7. Ταξινόµηση Πίνακα
1. ∆ιαδικασία: Ταξινόµηση µε Εισαγωγή
2. ∆ιαδικασία: Ταξινόµηση µε Επιλογή
3. ∆ιαδικασία: Ταξινόµηση Φυσαλίδας
4. Πρόγραµµα: Ταξινόµηση Πίνακα
A. Συναρτήσεις
1. Πότε Γράφουµε Συναρτήσεις
3∆ηµήτρης Ψούνης, ΠΛΗ 10, Μάθηµα 2.6: Συναρτήσεις και ∆ιαδικασίες
Μία συνάρτηση της Ψευδογλώσσας είναι το αντίστοιχο της µαθηµατικής συνάρτησης.
Θεωρήστε για παράδειγµα την µαθηµατική συνάρτηση 5 1
Το είναι το όνοµα της συνάρτησης
Το ειναι το όρισµα της συνάρτησης
Το 5 1 είναι το σώµα της συνάρτησης
Τώρα πως χρησιµοποιούµε µια συνάρτηση.
Π.χ. µε όρισµα το 2, δηλαδή 2 (Στην Ψευδογλώσσα θα λέµε «καλώντας την µε
όρισµα »)
Η συνάρτηση υπολογίζεται: 5 ∙ 2 1
5 ∙ 2 1 11 (Στην Ψευδογλώσσα θα λέµε «επιστρέφει »)
Π.χ. µε όρισµα το 15, δηλαδή το 15 (Στην Ψευδογλώσσα λέµε «καλώντας την µε
όρισµα 15»)
Η συνάρτηση υπολογίζεται στο 5 ∙ 15 1
5 ∙ 15 1 76 (Στην Ψευδογλώσσα θα λέµε «επιστρέφει 76»)
A. Συναρτήσεις
1. Πότε Γράφουµε Συναρτήσεις
4∆ηµήτρης Ψούνης, ΠΛΗ 10, Μάθηµα 2.6: Συναρτήσεις και ∆ιαδικασίες
Οι γενικοί κανόνες που µας καθοδηγούν στο να δηµιουργήσουµε µια συνάρτηση στο
πρόγραµµά µας είναι:
Γράφουµε συναρτήσεις όταν πολλές φορές στο πρόγραµµα µας κάνουµε τις ίδιες
ενέργειες µε τον ίδιο κώδικα.
Π.χ. Αν το πρόγραµµα µας κάνει µία αναζήτηση σε πίνακα πολλές φορές, τότε θα
ορίσουµε µια συνάρτηση µε όνοµα π.χ. search() και καλούµε την συνάρτηση αυτή
κάθε φορά που θέλουµε να κάνουµε την αναζήτηση στον πίνακα.
Και όταν θέλουµε να απλοποιήσουµε την µορφή του προγράµµατος µας. Είναι κακό να
έχουµε έναν κώδικα-«µακαρόνι», δηλαδή µια τεράστια main που να κάνει πάρα πολλά
πράγµατα! Προτιµούµε να διασπάµε τον κώδικα σε µέρη και να καλούµε τις αντίστοιχες
συναρτήσεις που θα υλοποιούν κάθε αυτόνοµη ενέργεια.
A. Συναρτήσεις
2. Πως Γράφουµε Συναρτήσεις
1. Γενικό Σχήµα
5∆ηµήτρης Ψούνης, ΠΛΗ 10, Μάθηµα 2.6: Συναρτήσεις και ∆ιαδικασίες
Το γενικό σχήµα για την σύνταξη µιας συνάρτησης στην ψευδογλώσσα είναι το ακόλουθο:
ΑΛΓΟΡΙΘΜΟΣ orismos_sinartisis
∆Ε∆ΟΜΕΝΑ
a,b: INTEGER;
ΣΥΝΑΡΤΗΣΗ cube(x): INTEGER <- Εδώ ξεκινά η δήλωση της συνάρτησης
∆ΙΕΠΑΦΗ <-| Στη διεπαφή ορίζουµε τον τύπο δεδοµένων
ΕΙΣΟ∆ΟΣ | των ορισµάτων της συνάρτησης
x: INTEGER; |
ΕΞΟ∆ΟΣ | και της επιστρεφόµενης τιµής
cube: INTEGER;
ΑΡΧΗ
cube:=x*x*x; <- Εδώ είναι το σώµα της συνάρτησης
ΤΕΛΟΣ-ΣΥΝΑΡΤΗΣΗΣ
ΑΡΧΗ
∆ΙΑΒΑΣΕ(a);
b:=cube(a); <- Εδώ είναι η κλήση της συνάρτησης
ΤΥΠΩΣΕ(EOLN,b);
ΤΕΛΟΣ
A. Συναρτήσεις
2. Πως Γράφουµε Συναρτήσεις
2. ∆ήλωση Συνάρτησης
6∆ηµήτρης Ψούνης, ΠΛΗ 10, Μάθηµα 2.6: Συναρτήσεις και ∆ιαδικασίες
ΠΑΝΤΑ πριν από την ΑΡΧΗ του προγράµµατος γράφουµε την δήλωση της συνάρτησης (ή των
συναρτήσεων αν θέλουµε να χρησιµοποιήσουµε περισσότερες). Ο τρόπος σύνταξης της
δήλωσης της συνάρτησης είναι:
Όπως στην συνάρτηση µάς:
όπου περιγράφουµε ότι πρόκειται να ορίσουµε µια συνάρτηση µε όνοµα cube: που παίρνει
µία µεταβλητή x σαν όρισµα και επιστρέφει µια ακέραια µεταβλητή.
Το όνοµα συνάρτησης το επιλέγουµε εµείς ώστε να αντικατοπτρίζει τον υπολογισµό
που γίνεται.
Αν θέλουµε περισσότερα ορίσµατα, τότε τα χωρίζουµε µε κόµµατα.
Στα ορίσµατα βάζουµε το όνοµα των µεταβλητών, ενώ στην επιστρεφόµενη τιµή
βάζουµε τον τύπο δεδοµένων της.
ΣΥΝΑΡΤΗΣΗ ονοµα_συνάρτησης(ορίσµατα): τύπος_επιστρεφόµενης_τιµής
ΣΥΝΑΡΤΗΣΗ cube(x) : INTEGER
A. Συναρτήσεις
2. Πως Γράφουµε Συναρτήσεις
3. Η ∆ιεπαφή της Συνάρτησης
7∆ηµήτρης Ψούνης, ΠΛΗ 10, Μάθηµα 2.6: Συναρτήσεις και ∆ιαδικασίες
Στην ∆ιεπαφή ορίζουµε πιο αναλυτικά τον τύπο δεδοµένων της εισόδου και της εξόδου
χρησιµοποιώντας τις δεσµευµένες λέξεις:
ΕΙΣΟ∆ΟΣ: όπου περιγράφουµε τα ορίσµατα και τον τύπο δεδοµένων τους
ΕΞΟ∆ΟΣ: όπου περιγράφουµε την επιστρεφόµενη τιµή (υποχρεωτικά µε το όνοµα της
συνάρτησης) και τον τύπο δεδοµένων
Όπως το πραγµατοποιήσαµε στην συνάρτηση µας:
Παρατήρηση 1: Αν δεν έχουµε είσοδο, τότε το τµήµα ΕΙΣΟ∆ΟΣ µπορεί να παραληφθεί.
Παρατήρηση 2: Το τµήµα ΕΞΟ∆ΟΣ µπορεί να παραληφθεί.
∆ΙΕΠΑΦΗ
ΕΙΣΟ∆ΟΣ
ονοµα_ορίσµατος: τύπος_δεδοµένων;
ΕΞΟ∆ΟΣ
ονοµα_ορίσµατος: τύπος_δεδοµένων;
∆ΙΕΠΑΦΗ
ΕΙΣΟ∆ΟΣ
x: INTEGER;
ΕΞΟ∆ΟΣ
cube: INTEGER;
A. Συναρτήσεις
2. Πως Γράφουµε Συναρτήσεις
4. Το Σώµα της Συνάρτησης
8∆ηµήτρης Ψούνης, ΠΛΗ 10, Μάθηµα 2.6: Συναρτήσεις και ∆ιαδικασίες
Το σώµα της συνάρτησης αποτελεί την περιγραφή των εντολών που εκτελεί η συνάρτηση.
Πάντα θα είναι ΜΕΤΑ την ∆ιεπαφή και οι εντολές της θα βρίσκονται ανάµεσα στις λέξεις ΑΡΧΗ
και ΤΕΛΟΣ-ΣΥΝΑΡΤΗΣΗΣ
Παρατηρήστε ότι υπάρχει ξεχωριστό τµήµα δεδοµένων (µπορούµε να ορίσουµε τοπικές
µεταβλητές αν τις χρειαζόµαστε)
Οι εντολές θα τρέξουν σειριακά (όπως στον αλγόριθµο).
Η επιστρεφόµενη τιµή της συνάρτησης αποθηκεύεται στην µεταβλητή που έχει υποχρεωτικά
ίδιο όνοµα µε την συνάρτηση.
∆Ε∆ΟΜΕΝΑ
/* Εδώ δηλώνουµε τοπικές µεταβλητές της συνάρτησης */
ΑΡΧΗ
/* Εδώ βρίσκονται οι εντολές της συνάρτησης */
ΤΕΛΟΣ-ΣΥΝΑΡΤΗΣΗΣ
ΑΡΧΗ
cube:=x*x*x;
ΤΕΛΟΣ-ΣΥΝΑΡΤΗΣΗΣ
A. Συναρτήσεις
2. Πως Γράφουµε Συναρτήσεις
5. Κλήση Συνάρτησης
9∆ηµήτρης Ψούνης, ΠΛΗ 10, Μάθηµα 2.6: Συναρτήσεις και ∆ιαδικασίες
Αφού γράψουµε την συνάρτησή µας, έχουµε δικαίωµα να την καλέσουµε οπουδήποτε µέσα στο
πρόγραµµα µας. Για να την καλέσουµε:
Γράφουµε το όνοµα της και διοχετεύουµε κατάλληλα ορίσµατα που θα είναι:
Είτε απευθείας συγκεκριµένες αριθµητικές τιµές.
Είτε ονόµατα µεταβλητών που χρησιµοποιούµε ήδη στο πρόγραµµα µας. Προσοχή!
Απλά γράφουµε τα ονόµατα των µεταβλητών ως ορίσµατα και όχι τον τύπο
δεδοµένων
Είτε γενικότερα υπολογιζόµενες παραστάσεις (όπως τις ορίσαµε στο µάθηµα 2 που
µελετήσαµε τον τελεστή εκχώρησης)
Η επιστρεφόµενη τιµή θα αντικαταστήσει το όνοµα της συνάρτησης
Έτσι κρατάµε το αποτέλεσµα αποθηκεύοντας το σε µία µεταβλητή.
b:=cube(a); <- Εδώ είναι η κλήση της συνάρτησης
A. Συναρτήσεις
2. Πως Γράφουµε Συναρτήσεις
6. Άσκηση µε ορισµό συναρτήσεων
10∆ηµήτρης Ψούνης, ΠΛΗ 10, Μάθηµα 2.6: Συναρτήσεις και ∆ιαδικασίες
Άσκηση: Τροποποιήστε το πρόγραµµα ορίζοντας δύο ακόµη συναρτήσεις:
Την συνάρτηση square που δέχεται σαν όρισµα έναν ακέραιο και επιστρέφει το
τετράγωνό του.
Την συνάρτηση f που δέχεται σαν όρισµα έναν ακέραιο x και επιστρέφει το αποτέλεσµα:
2x+1
Έπειτα το κυρίως πρόγραµµα:
Να διαβάζει από την είσοδο το a και να υπολογίζει το τετράγωνό της.
Να διαβάζει από την είσοδο το b και να υπολογίζει τον κύβο της
Να διαβάζει από την είσοδο το c και να υπολογίζει το f(c).
Τελικά να τυπώνει το άθροισµα των παραπάνω αποτελεσµάτων.
A. Συναρτήσεις
2. Πως Γράφουµε Συναρτήσεις
7. Τοπικές και Καθολικές Μεταβλητές
11∆ηµήτρης Ψούνης, ΠΛΗ 10, Μάθηµα 2.6: Συναρτήσεις και ∆ιαδικασίες
Τοπικές Μεταβλητές: Είναι µεταβλητές που δηλώνονται στην αρχή µιας συνάρτησης και τις
οποίες τις «βλέπει» (έχει πρόσβαση) η συνάρτηση και ΜΟΝΟΝ αυτή (όχι δηλαδή οι άλλες
συναρτήσεις ή ο αλγόριθµος
Προσοχή! Κάθε συνάρτηση έχει τις δικές της µεταβλητές, έτσι π.χ. µπορούν δύο
συναρτήσεις να έχουν µεταβλητές µε το ίδιο όνοµα. Κάθε συνάρτηση θα «βλέπει» µόνο τις
δικές της µεταβλητές.
Καθολικές Μεταβλητές: Είναι µεταβλητές που δηλώνονται στην αρχή του αλγόριθµου και τις
βλέπουν όλες οι συναρτήσεις και ο αλγόριθµος.
Μεταγλωττίστε και εκτελέστε το πρόγραµµα της επόµενης διαφάνειας που συνοψίζει τις
παρατηρήσεις για τις καθολικές και τις τοπικές µεταβλητές..
Συµβουλή:
• Θεωρείται κακή προγραµµατιστική τακτική να χρησιµοποιούµε καθολικές µεταβλητές. Θα
πρέπει να γνωρίζουµε πως δουλεύουν, αλλά να µην τις χρησιµοποιούµε στα προγράµµατά µας!
• Στην ψευδογλώσσα εξ’ ορισµού οι µεταβλητές του αλγορίθµου είναι προσβάσιµες και στις
συναρτήσεις. Αυτό δεν συνηθίζεται στις συµβατικές γλώσσες προγραµµατισµού. Για τον λόγο
αυτό θα πρέπει να σκεφτόµαστε ότι τις µεταβλητές του αλγορίθµου ∆ΕΝ τις βλέπουν οι
συναρτήσεις.
A. Συναρτήσεις
2. Πως Γράφουµε Συναρτήσεις
7. Τοπικές και Καθολικές Μεταβλητές
12∆ηµήτρης Ψούνης, ΠΛΗ 10, Μάθηµα 2.6: Συναρτήσεις και ∆ιαδικασίες
ΑΛΓΟΡΙΘΜΟΣ local_global
∆Ε∆ΟΜΕΝΑ
x,ret:INTEGER; /* Katholiki metavliti:
Tin vlepoun oloi */
ΣΥΝΑΡΤΗΣΗ f1(): INTEGER
∆ΙΕΠΑΦΗ
ΕΙΣΟ∆ΟΣ
ΕΞΟ∆ΟΣ
f1: INTEGER;
∆Ε∆ΟΜΕΝΑ
a,x:INTEGER; /* Topikes metavlites tis
f1*/
ΑΡΧΗ
a:=2;
x:=0;
/* Exoyme diplo onoma stin x.
Epikratei to topiko onoma */
ΤΥΠΩΣΕ(EOLN,“f1: a=”,a,“,x=”,x);
f1:=0;
ΤΕΛΟΣ-ΣΥΝΑΡΤΗΣΗΣ
ΣΥΝΑΡΤΗΣΗ f2(): INTEGER
∆ΙΕΠΑΦΗ
ΕΙΣΟ∆ΟΣ
ΕΞΟ∆ΟΣ
f2: INTEGER;
∆Ε∆ΟΜΕΝΑ
a:INTEGER; /* Topikes metavlites
tis f2*/
ΑΡΧΗ
a:=8;
x:=7; /*Anaferetai sti katholiki x */
ΤΥΠΩΣΕ(EOLN,“f2: a=”,a,“,x=”,x);
f2:=0;
ΤΕΛΟΣ-ΣΥΝΑΡΤΗΣΗΣ
ΑΡΧΗ
x:=5;
ΤΥΠΩΣΕ(EOLN,“ΑΛΓ: x=”,x);
ret:=f1();
ΤΥΠΩΣΕ(EOLN,“ΑΛΓ: x=”,x);
ret:=f2();
ΤΥΠΩΣΕ(EOLN,“ΑΛΓ: x=”,x);
ΤΕΛΟΣ
A. Συναρτήσεις
3. Πως Λειτουργούν οι Συναρτήσεις
1. Συναρτήσεις και Χώρος στη Μνήµη
13∆ηµήτρης Ψούνης, ΠΛΗ 10, Μάθηµα 2.6: Συναρτήσεις και ∆ιαδικασίες
Είναι σηµαντικό να καταλάβουµε ότι κάθε συνάρτηση έχει το
δικό της «χώρο» στη µνήµη, στον οποίο αποθηκεύει τις
µεταβλητές της.
Για παράδειγµα έστω το τµήµα κώδικα που φαίνεται στα δεξιά
Όταν ξεκινάει να εκτελείται ο κώδικας υπάρχει ο χώρος
αποθήκευσης µόνο για τον αλγόριθµο!
Έπειτα όταν εκτελείται η εντολή αρχικοποίησης a:=5, η
κατάσταση της µνήµης είναι:
a b
…
Χώρος αλγορίθµου
a b
…
Χώρος αλγορίθµου
5
ΑΛΓΟΡΙΘΜΟΣ functions
∆Ε∆ΟΜΕΝΑ
a,b: INTEGER;
ΣΥΝΑΡΤΗΣΗ f(x):INTEGER
∆ΙΕΠΑΦΗ
ΕΙΣΟ∆ΟΣ
x:INTEGER
ΕΞΟ∆ΟΣ
f:INTEGER
ΑΡΧΗ
f:=x*x;
ΤΕΛΟΣ-ΣΥΝΑΡΤΗΣΗΣ
ΑΡΧΗ
a:=5;
b:=f(a);
ΤΕΛΟΣ
A. Συναρτήσεις
3. Πως Λειτουργούν οι Συναρτήσεις
1. Συναρτήσεις και Χώρος στη Μνήµη
14∆ηµήτρης Ψούνης, ΠΛΗ 10, Μάθηµα 2.6: Συναρτήσεις και ∆ιαδικασίες
Έπειτα καλείται η f µε όρισµα a.
Προσοχή! Αυτό σηµαίνει, ότι δηµιουργείται χώρος
αποθήκευσης για την f.
Και στον χώρο αποθήκευσης της f, η µεταβλητή x θα πάρει
την τιµή του ορίσµατος που βάλαµε, άρα η x θα πάρει την
τιµή 5.
Είναι σηµαντικό να καταλάβουµε ότι από εδώ και πέρα η x
δεν έχει καµία σχέση µε την a.
Πλέον στο σώµα της f, καλείται η εντολή f=x*x άρα η f παίρνει
τιµή 25
ΑΛΓΟΡΙΘΜΟΣ functions
∆Ε∆ΟΜΕΝΑ
a,b: INTEGER;
ΣΥΝΑΡΤΗΣΗ f(x):INTEGER
∆ΙΕΠΑΦΗ
ΕΙΣΟ∆ΟΣ
x:INTEGER
ΕΞΟ∆ΟΣ
f:INTEGER
ΑΡΧΗ
f:=x*x;
ΤΕΛΟΣ-ΣΥΝΑΡΤΗΣΗΣ
ΑΡΧΗ
a:=5;
b:=f(a);
ΤΕΛΟΣ
a b
…
Χώρος αλγορίθµου
5
Χώρος της f
x f
5
a b
…
Χώρος αλγορίθµου
5
Χώρος της f
x f
5 25
A. Συναρτήσεις
3. Πως Λειτουργούν οι Συναρτήσεις
1. Συναρτήσεις και Χώρος στη Μνήµη
15∆ηµήτρης Ψούνης, ΠΛΗ 10, Μάθηµα 2.6: Συναρτήσεις και ∆ιαδικασίες
Η συνάρτηση ολοκληρώνει την λειτουργία της, έχοντας αποθηκεύσει
στην f την τιµή 25 που είναι και η επιστρεφόµενη τιµή. Αυτό σηµαίνει
ότι επιστρέφουµε στον αλγόριθµο!
Η επιστρεφόµενη τιµή (25) αποθηκεύεται στην µεταβλητή b.
Είναι σηµαντικό ότι µετά την επιστροφή τιµής ο χώρος της f,
απελευθερώνεται για να µπορεί να χρησιµοποιηθεί από άλλες
συναρτήσεις:
ΑΛΓΟΡΙΘΜΟΣ functions
∆Ε∆ΟΜΕΝΑ
a,b: INTEGER;
ΣΥΝΑΡΤΗΣΗ
f(x):INTEGER
∆ΙΕΠΑΦΗ
ΕΙΣΟ∆ΟΣ
x:INTEGER
ΕΞΟ∆ΟΣ
f:INTEGER
ΑΡΧΗ
f:=x*x;
ΤΕΛΟΣ-ΣΥΝΑΡΤΗΣΗΣ
ΑΡΧΗ
a:=5;
b:=f(a);
ΤΕΛΟΣ
a b
…
Χώρος αλγορίθµου
5 25
• Το παράδειγµα αυτό αναδεικνύει δύο σηµαντικά θέµατα!
• Κάθε κλήση συνάρτησης δηµιουργεί τον δικό της χώρο στην µνήµη!
• Παρόλο που όλες οι συναρτήσεις έχουν πρόσβαση στις καθολικές µεταβλητές του
αλγορίθµου, είναι καλό να θεωρήσουµε (γιατί έτσι είναι στις γλώσσες προγραµµατισµού):
• Ότι ο µόνος δίαυλος επικοινωνίας µε την καλούσα συνάρτηση είναι τα ορίσµατα (στην
αρχή) και η επιστρεφόµενη τιµή (στο τέλος)
B. ∆ιαδικασίες
1. Πότε Γράφουµε ∆ιαδικασίες
16∆ηµήτρης Ψούνης, ΠΛΗ 10, Μάθηµα 2.6: Συναρτήσεις και ∆ιαδικασίες
Ορίζουµε διαδικασίες σε δύο (+µισή) περιπτώσεις:
Επιθυµούµε να γράψουµε µια «συνάρτηση» που δεν επιστρέφει τιµή, αλλά:
Π.χ: Κάνει µια συγκεκριµένη δουλειά που δεν έχει έξοδο, όπως π.χ. να τυπώνει τα
περιεχόµενα ενός πίνακα στην οθόνη.
Επιθυµούµε η «συνάρτηση» να έχει περισσότερες από µία εξόδους
Π.χ: Θα θέλαµε να υλοποιήσουµε µία εκδοχή της δυαδικής αναζήτησης που να
επιστρέφει όχι µόνο αν βρέθηκε το στοιχείο που αναζητούµε, αλλά και την θέση στο
οποίο το εντοπίσαµε.
Επιθυµούµε η «συνάρτηση» να επεµβαίνει στα δεδοµένα που δέχεται ως ορίσµατα και
αυτή η αλλαγή να είναι ορατή και εκτός της συνάρτησης.
Π.χ. επιθυµούµε να γράψουµε µια συνάρτηση που να παίρνει σαν όρισµα έναν
πίνακα και να τον ταξινοµεί. Αυτή η αλλαγή στον πίνακα να είναι ορατή και στο πέρας
της διαδικασίας.
B. ∆ιαδικασίες
2. Πως Γράφουµε ∆ιαδικασίες
17∆ηµήτρης Ψούνης, ΠΛΗ 10, Μάθηµα 2.6: Συναρτήσεις και ∆ιαδικασίες
Το συντακτικό των διαδικασιών είναι ίδιο µε αυτό των συναρτήσεων µε µία βασική διαφορά: Τα
ορίσµατα πλέον µπορούν να είναι και εγγραφής, εκτός από ανάγνωσης-µόνο ώστε να
επιτύχουν τους στόχους που θέσαµε στην προηγούµενη διαφάνεια:
Η κλήση των διαδικασιών γίνεται µε την λέξη «ΥΠΟΛΟΓΙΣΕ» µπροστά από την κλήση.
• Ένα όρισµα που είναι ανάγνωσης µόνο συντάσσεται ακριβώς όπως στις διαδικασίες.
• Ένα τέτοιο όρισµα θα µπορούµε να το χρησιµοποιήσουµε στην διαδικασία µας, αλλά
τυχόν αλλαγές στην τιµή δεν είναι εφικτές.
• Η κλήση που γίνεται ονοµάζεται και κλήση-µε-τιµή (call-by-value).
• Ένα όρισµα που είναι ανάγνωσης και εγγραφής συντάσσεται µε τον ίδιο τρόπο, αλλά
στην δήλωση της διαδικασίας, βάζουµε µπροστά το % από το όρισµα.
• Ένα τέτοιο όρισµα θα µπορούµε να το χρησιµοποιήσουµε στην διαδικασία µας, και
τυχόν αλλαγές στην τιµή θα είναι ορατές έξω από την διαδικασία.
• Η κλήση που γίνεται ονοµάζεται και κλήση-µε-αναφορά (call-by-reference).
• Στην κλήση που γίνεται βάζουµε το % µπροστά από το όρισµα.
Β. ∆ιαδικασίες
2. Πως Γράφουµε ∆ιαδικασίες
1. Κλήση µε Τιµή
18∆ηµήτρης Ψούνης, ΠΛΗ 10, Μάθηµα 2.6: Συναρτήσεις και ∆ιαδικασίες
ΑΛΓΟΡΙΘΜΟΣ call_by_value
∆Ε∆ΟΜΕΝΑ
x:INTEGER;
∆ΙΑ∆ΙΚΑΣΙΑ f(a)
∆ΙΕΠΑΦΗ
ΕΙΣΟ∆ΟΣ
a: INTEGER; /* Οι µεταβλητές εισόδου ορίζονται στην είσοδο */
ΕΞΟ∆ΟΣ
/* ∆εν υπάρχει έξοδος */
∆Ε∆ΟΜΕΝΑ
/* Κενό Τµήµα ∆εδοµένων */
ΑΡΧΗ
a:=2; /* ∆ΕΝ ∆ΟΥΛΕΥΕΙ αλλαγή τιµής σε call by value */
ΤΥΠΩΣΕ(EOLN,“f: a=”,a);
ΤΕΛΟΣ-∆ΙΑ∆ΙΚΑΣΙΑΣ
ΑΡΧΗ
x:=0;
ΤΥΠΩΣΕ(EOLN,“ΑΛΓ: x=”,x); /* Τυπώνει 0 */
ΥΠΟΛΟΓΙΣΕ f(x); /* Κλήση της διαδικασίας µε την λέξη ΥΠΟΛΟΓΙΣΕ */
ΤΥΠΩΣΕ(EOLN,“ΑΛΓ: x=”,x); /* Τυπώνει 0.Η αλλαγή της τιµής δεν διατηρήθηκε */
ΤΕΛΟΣ
Β. ∆ιαδικασίες
2. Πως Γράφουµε ∆ιαδικασίες
2. Κλήση µε Αναφορά
19∆ηµήτρης Ψούνης, ΠΛΗ 10, Μάθηµα 2.6: Συναρτήσεις και ∆ιαδικασίες
ΑΛΓΟΡΙΘΜΟΣ call_by_reference
∆Ε∆ΟΜΕΝΑ
x:INTEGER;
∆ΙΑ∆ΙΚΑΣΙΑ f(%a)
∆ΙΕΠΑΦΗ
ΕΙΣΟ∆ΟΣ
a: INTEGER; /* Το a είναι ανάγνωσης. Το γράφουµε στην είσοδο */
ΕΞΟ∆ΟΣ
a: INTEGER; /* Αλλά και εγγραφής. Το γράφουµε και στην έξοδο */
∆Ε∆ΟΜΕΝΑ
/* Κενό Τµήµα ∆εδοµένων */
ΑΡΧΗ
a:=2;
ΤΥΠΩΣΕ(EOLN,“f: a=”,a); /* Τυπώνει 2 */
ΤΕΛΟΣ-∆ΙΑ∆ΙΚΑΣΙΑΣ
ΑΡΧΗ
x:=0;
ΤΥΠΩΣΕ(EOLN,“ΑΛΓ: x=”,x); /* Τυπώνει 0 */
ΥΠΟΛΟΓΙΣΕ f(%x); /* Κλήση της διαδικασίας µε την λέξη ΥΠΟΛΟΓΙΣΕ */
ΤΥΠΩΣΕ(EOLN,“ΑΛΓ: x=”,x); /* Τυπώνει 2.Η αλλαγή της τιµής διατηρήθηκε */
ΤΕΛΟΣ
…και ένα σχόλιο
∆ηµήτρης Ψούνης, ΠΛΗ 10, Μάθηµα 2.6: Συναρτήσεις και ∆ιαδικασίες 20
Το συντακτικό των συναρτήσεων και των διαδικασιών που µελετήσαµε ήταν σχετικά απλό.
Το θέµα όµως δεν είναι το συντακτικό, αλλά η αξιοποίηση των συναρτήσεων ως
προγραµµατιστικά εργαλεία. Αυτό µπορεί να γίνει κατανοητό µόνο µε την επίλυση ασκήσεων.
Ως εκ τούτου όλες οι εφαρµογές που ακολουθούν απαιτείται να µελετηθούν σε βάθος, διότι
αναδεικνύουν σηµαντικούς προγραµµατιστικούς συλλογισµούς.
Επιπλέον σταδιακά είµαστε σε θέση να χτίσουµε και τα πρώτα µας αξιόλογα προγράµµατα,
όπως και θα το κάνουµε στις επόµενες εφαρµογές.
Γ. Ασκήσεις
Εφαρµογή 1: Συναρτήσεις Ελέγχου Εισόδου
∆ηµήτρης Ψούνης, ΠΛΗ 10, Μάθηµα 2.6: Συναρτήσεις και ∆ιαδικασίες
Ορίστε την συνάρτηση:
get_integer(start, finish): Θα λαµβάνει ως είσοδο ένα εύρος τιµών ακεραίων
[start…finish] και θα διαβάζει έναν ακέραιο σε αυτό το εύρος. Θα επιστρέφει τον
αριθµό που διαβάστηκε.
Ορίστε τον αλγόριθµο να διαβάζει δύο ακέραιους a,b στο διάστηµα 1..10 και έναν ακέραιο n
στο διάστηµα 2..5 και θα υπολογίζει την ποσότητα n*(a-b) και θα χρησιµοποιεί τη συνάρτηση
που ορίσατε.
21
Γ. Ασκήσεις
Εφαρµογή 2: Μια Βιβλιοθήκη Μελέτης Αριθµών
∆ηµήτρης Ψούνης, ΠΛΗ 10, Μάθηµα 2.6: Συναρτήσεις και ∆ιαδικασίες
Ορίζουµε τις συναρτήσεις:
is_even(n): Θα επιστρέφει TRUE ή FALSE ανάλογα µε το αν ο αριθµός n είναι άρτιος
is_odd(n): Θα επιστρέφει TRUE ή FALSE ανάλογα µε το αν ο αριθµός n είναι περιττός
is_square(n): Θα επιστρέφει TRUE ή FALSE ανάλογα µε το αν ο αριθµός n είναι
τετράγωνο ενός φυσικού
is_cube(n): Θα επιστρέφει TRUE ή FALSE ανάλογα µε το αν ο αριθµός n είναι κύβος
ενός φυσικού
Ορίζουµε την main που θα ζητάει από το χρήστη είτε να εισάγει έναν αριθµό και θα εξετάζει αν
ο αριθµός έχει κάποιες από αυτές τις ιδιότητες.
Παράδειγµα Εκτέλεσης:
22
Εισάγετε τον αριθµό: 8
Είναι Άρτιος
Είναι Κύβος Αριθµού
Εισάγετε τον αριθµό: 9
Είναι Περιττός
Είναι Τετράγωνο Αριθµού
Γ. Ασκήσεις
Εφαρµογή 3: Πρώτοι Αριθµοί
∆ηµήτρης Ψούνης, ΠΛΗ 10, Μάθηµα 2.6: Συναρτήσεις και ∆ιαδικασίες
Ένας φυσικός αριθµός λέµε ότι είναι πρώτος αν διαιρείται (ακριβώς) µόνο µε τον εαυτό του και
τη µονάδα. Το 1 θεωρείται ότι δεν είναι πρώτος.
Κατασκευάστε ένα πρόγραµµα το οποίο:
Θα ορίζει µία συνάρτηση µε όνοµα is_prime(n) η οποία θα δέχεται ως όρισµα έναν
ακέραιο αριθµό n, θα εξετάζει αν είναι πρώτος και θα επιστρέφει TRUE αν είναι πρώτος
και FALSE αν δεν είναι.
Ο αλγόριθµος θα διαβάζει δύο φυσικούς (ελέγχοντας στην είσοδο να είναι >0) που θα
ορίζουν την αρχή και το τέλος ενός κλειστού διαστήµατος (π.χ. a=5, b=8) και θα τυπώνει
τους φυσικούς σε αυτό το διάστηµα που είναι πρώτοι.
Παράδειγµα εκτέλεσης του ζητούµενου προγράµµατος:
23
Εισάγετε την αρχή του διαστήµατος: 5
Εισάγετε το πέρας του διαστήµατος: 15
Το 5 είναι πρώτος
Το 7 είναι πρώτος
Το 11 είναι πρώτος
Το 13 είναι πρώτος
Γ. Ασκήσεις
Εφαρµογή 4: Ανταλλαγή τιµών µεταβλητών (swap)
∆ηµήτρης Ψούνης, ΠΛΗ 10, Μάθηµα 2.6: Συναρτήσεις και ∆ιαδικασίες
Ορίστε µια διαδικασία µε όνοµα swap που να παίρνει δύο ορίσµατα ανάγνωσης εγγραφής και
να ανταλλάσει τις τιµές τους
Επειτα κατασκευάστε ένα πρόγραµµα που να κανει την ακόλουθη εκτύπωση και να
χρησιµοποιεί την swap:
24
∆ώσε το a: 5
∆ώσε το b: 8
Τιµές: a=8, b=5
Γίνεται ανταλλαγή των τιµών
Νέες Τιµές: a=5, b=8
Γ. Ασκήσεις
Εφαρµογή 5.1: ∆ιαδικασία: Ανάγνωση Πίνακα
∆ηµήτρης Ψούνης, ΠΛΗ 10, Μάθηµα 2.6: Συναρτήσεις και ∆ιαδικασίες
Πολλές φορές στο προηγούµενο µάθηµα γράψαµε κώδικα που διαβάζει τα περιεχόµενα ενός
πίνακα.
• Μετατρέψτε σε διαδικασία τον κώδικα αυτό, µε όνοµα read_array. Θα παίρνει δύο ορίσµατα τον
πίνακα και το µέγεθος του και θα διαβάζει τα στοιχεία του πίνακα.
25
Γ. Ασκήσεις
Εφαρµογή 5.2: ∆ιαδικασία: Εκτύπωση Πίνακα
∆ηµήτρης Ψούνης, ΠΛΗ 10, Μάθηµα 2.6: Συναρτήσεις και ∆ιαδικασίες
Πολλές φορές στο προηγούµενο µάθηµα γράψαµε κώδικα που εκτυπώνει τα περιεχόµενα ενός
πίνακα στην οθόνη.
• Μετατρέψτε σε διαδικασία τον κώδικα αυτό, µε όνοµα print_array. Θα παίρνει δύο ορίσµατα τον
πίνακα και το µέγεθος του και θα τυπώνει στην οθόνη τα περιεχόµενα του πίνακα.
26
Γ. Ασκήσεις
Εφαρµογή 5.3: Συνάρτηση: Ελάχιστος Πίνακα
∆ηµήτρης Ψούνης, ΠΛΗ 10, Μάθηµα 2.6: Συναρτήσεις και ∆ιαδικασίες
Στο προηγούµενο µάθηµα κατασκευάσαµε έναν αλγόριθµο που υπολογίζει τον ελάχιστο ενός
πίνακα.
• Μετατρέψτε σε συνάρτηση τον αλγόριθµο εύρεσης ελαχίστου, µε όνοµα min_array. Θα παίρνει
δύο ορίσµατα τον πίνακα και το µέγεθος του και θα επιστρέφει τον ελάχιστο αριθµό του πίνακα.
27
Γ. Ασκήσεις
Εφαρµογή 5.4: Συνάρτηση: Μέγιστος Πίνακα
∆ηµήτρης Ψούνης, ΠΛΗ 10, Μάθηµα 2.6: Συναρτήσεις και ∆ιαδικασίες
Στο προηγούµενο µάθηµα κατασκευάσαµε έναν αλγόριθµο που υπολογίζει τον µέγιστο ενός
πίνακα.
• Μετατρέψτε σε συνάρτηση τον αλγόριθµο εύρεσης µεγίστου, µε όνοµα max_array. Θα παίρνει
δύο ορίσµατα τον πίνακα και το µέγεθος του και θα επιστρέφει τον ελάχιστο αριθµό του πίνακα.
28
Γ. Ασκήσεις
Εφαρµογή 5.5: Συνάρτηση: Άθροισµα στοιχείων Πίνακα
∆ηµήτρης Ψούνης, ΠΛΗ 10, Μάθηµα 2.6: Συναρτήσεις και ∆ιαδικασίες
Στο προηγούµενο µάθηµα κατασκευάσαµε έναν αλγόριθµο που υπολογίζει το άθοροισµα των
στοιχείων ενός πίνακα
• Μετατρέψτε σε συνάρτηση τον αλγόριθµο εύρεσης µέσου όρου, µε όνοµα mo_array. Θα
παίρνει δύο ορίσµατα τον πίνακα και το µέγεθος του και θα επιστρέφει τον ελάχιστο αριθµό του
πίνακα.
29
Γ. Ασκήσεις
Εφαρµογή 5.6: Συνάρτηση: Γινόµενο στοιχείων Πίνακα
∆ηµήτρης Ψούνης, ΠΛΗ 10, Μάθηµα 2.6: Συναρτήσεις και ∆ιαδικασίες
Στο προηγούµενο µάθηµα κατασκευάσαµε έναν αλγόριθµο που υπολογίζει το άθοροισµα των
στοιχείων ενός πίνακα
• Μετατρέψτε σε συνάρτηση τον αλγόριθµο εύρεσης µέσου όρου, µε όνοµα mo_array. Θα
παίρνει δύο ορίσµατα τον πίνακα και το µέγεθος του και θα επιστρέφει τον ελάχιστο αριθµό του
πίνακα.
30
Γ. Ασκήσεις
Εφαρµογή 5.7: Συνάρτηση: Μέσος Όρος Στοιχείων Πίνακα
∆ηµήτρης Ψούνης, ΠΛΗ 10, Μάθηµα 2.6: Συναρτήσεις και ∆ιαδικασίες
Στο προηγούµενο µάθηµα κατασκευάσαµε έναν αλγόριθµο που υπολογίζει τον µέσο όρο των
στοιχείων ενός πίνακα.
• Μετατρέψτε σε συνάρτηση τον αλγόριθµο εύρεσης µέσου όρου, µε όνοµα mo_array. Θα
παίρνει δύο ορίσµατα τον πίνακα και το µέγεθος του και θα επιστρέφει τον ελάχιστο αριθµό του
πίνακα.
31
Γ. Ασκήσεις
Εφαρµογή 5.8: Πρόγραµµα: Μελέτη Πινάκων
∆ηµήτρης Ψούνης, ΠΛΗ 10, Μάθηµα 2.6: Συναρτήσεις και ∆ιαδικασίες
Κάνοντας χρήση των προηγούµενων συναρτήσεων:
• Κατασκευάστε έναν αλγόριθµο που θα διαβάζει έναν πίνακα Ν θέσεων (5…10) µε αµυντικό
προγραµµατισµό
• Θα εµφανίζει τον πίνακα που διαβάστηκε στην οθόνη.
• Θα υπολογίζει και θα εκτυπώνει διαδοχικά τον ελάχιστο, τον µέγιστο, το άθροισµα, το γινόµενο
και τον µέσο όρο των στοιχείων του πίνακα.
32
Γ. Ασκήσεις
Εφαρµογή 6.1: Συνάρτηση: Σειριακή Αναζήτηση
∆ηµήτρης Ψούνης, ΠΛΗ 10, Μάθηµα 2.6: Συναρτήσεις και ∆ιαδικασίες
Στο προηγούµενο µάθηµα κατασκευάσαµε τον αλγόριθµο Σειριακής Αναζήτησης που αναζητά αν
ένα στοιχείο υπάρχει σε έναν πίνακα.
• Μετατρέψτε σε συνάρτηση τον αλγόριθµο, µε όνοµα linear_search. Θα παίρνει τρια ορίσµατα
τον πίνακα, το µέγεθος του και το προς αναζήτηση στοιχείο και θα επιστρέφει TRUE αν το
στοιχείο υπάρχει στον πίνακα και FALSE αν το στοιχείο δεν υπάρχει στον πίνακα.
33
Γ. Ασκήσεις
Εφαρµογή 6.2: Συνάρτηση: ∆υαδική Αναζήτηση
∆ηµήτρης Ψούνης, ΠΛΗ 10, Μάθηµα 2.6: Συναρτήσεις και ∆ιαδικασίες
Στο προηγούµενο µάθηµα κατασκευάσαµε τον αλγόριθµο ∆υαδικής Αναζήτησης που αναζητά αν
ένα στοιχείο υπάρχει σε έναν πίνακα.
• Μετατρέψτε σε συνάρτηση τον αλγόριθµο, µε όνοµα binary_search. Θα παίρνει τρια ορίσµατα
τον πίνακα, το µέγεθος του και το προς αναζήτηση στοιχείο και θα επιστρέφει TRUE αν το
στοιχείο υπάρχει στον πίνακα και FALSE αν το στοιχείο δεν υπάρχει στον πίνακα.
34
Γ. Ασκήσεις
Εφαρµογή 6.3: Πρόγραµµα: Αναζήτηση
∆ηµήτρης Ψούνης, ΠΛΗ 10, Μάθηµα 2.6: Συναρτήσεις και ∆ιαδικασίες
Κάνοντας χρήση των προηγούµενων συναρτήσεων:
• Κατασκευάστε έναν αλγόριθµο που θα διαβάζει έναν πίνακα Ν θέσεων (5…10) µε αµυντικό
προγραµµατισµό (χρησιµοποιήστε την συνάρτηση get_integer και κατασκευάστε µια
συνάρτηση για το διάβασµα των στοιχείων του πίνακα).
• Θα ρωτά το χρήστη ποιον αριθµό επιθυµεί να αναζητήσει στον πίνακα και να επιλέξει τον
αλγόριθµο που θα εκτελέσει (σειριακή ή δυαδική αναζήτηση).
• Τελικά θα εµφανίζει αν το στοιχείο υπάρχει ή δεν υπάρχει στον πίνακα.
35
Γ. Ασκήσεις
Εφαρµογή 7.1: ∆ιαδικασία: Ταξινόµηση µε Επιλογή
∆ηµήτρης Ψούνης, ΠΛΗ 10, Μάθηµα 2.6: Συναρτήσεις και ∆ιαδικασίες
Στο προηγούµενο µάθηµα κατασκευάσαµε τον αλγόριθµο Selection Sort που ταξινοµεί έναν
πίνακα ακεραίων.
• Μετατρέψτε σε διαδικασία τον αλγόριθµο, µε όνοµα selection_sort. Θα παίρνει δύο ορίσµατα
τον πίνακα και το µέγεθος του.
36
Γ. Ασκήσεις
Εφαρµογή 7.2: ∆ιαδικασία: Ταξινόµηση µε Εισαγωγή
∆ηµήτρης Ψούνης, ΠΛΗ 10, Μάθηµα 2.6: Συναρτήσεις και ∆ιαδικασίες
Στο προηγούµενο µάθηµα κατασκευάσαµε τον αλγόριθµο Insertion Sort που ταξινοµεί έναν πίνακα
ακεραίων.
• Μετατρέψτε σε διαδικασία τον αλγόριθµο, µε όνοµα insertion_sort. Θα παίρνει δύο ορίσµατα
τον πίνακα και το µέγεθος του.
37
Γ. Ασκήσεις
Εφαρµογή 7.3: ∆ιαδικασία: Ταξινόµηση µε Εισαγωγή
∆ηµήτρης Ψούνης, ΠΛΗ 10, Μάθηµα 2.6: Συναρτήσεις και ∆ιαδικασίες
Στο προηγούµενο µάθηµα κατασκευάσαµε τον αλγόριθµο Bubble Sort που ταξινοµεί έναν πίνακα
ακεραίων.
• Μετατρέψτε σε διαδικασία τον αλγόριθµο, µε όνοµα bubble_sort. Θα παίρνει δύο ορίσµατα τον
πίνακα και το µέγεθος του.
38
Γ. Ασκήσεις
Εφαρµογή 7.4: Πρόγραµµα: Ταξινόµηση Πίνακα
∆ηµήτρης Ψούνης, ΠΛΗ 10, Μάθηµα 2.6: Συναρτήσεις και ∆ιαδικασίες
Κάνοντας χρήση των προηγούµενων συναρτήσεων:
• Κατασκευάστε έναν αλγόριθµο που θα διαβάζει έναν πίνακα Ν θέσεων (5…10) µε αµυντικό
προγραµµατισµό (χρησιµοποιήστε την συνάρτηση get_integer και κατασκευάστε µια
συνάρτηση για το διάβασµα των στοιχείων του πίνακα).
• Θα ρωτά το χρήστη ποιον αλγόριθµο ταξινόµησης επιθυµεί να εκτελέσει.
• Τελικά θα εµφανίζει τον ταξινοµηµένο πίνακα.
39

More Related Content

What's hot

Η ΓΛΩΣΣΑ C - ΜΑΘΗΜΑ 7 - ΠΙΝΑΚΕΣ
Η ΓΛΩΣΣΑ C - ΜΑΘΗΜΑ 7 - ΠΙΝΑΚΕΣΗ ΓΛΩΣΣΑ C - ΜΑΘΗΜΑ 7 - ΠΙΝΑΚΕΣ
Η ΓΛΩΣΣΑ C - ΜΑΘΗΜΑ 7 - ΠΙΝΑΚΕΣDimitris Psounis
 
ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ ΣΕ C - ΜΑΘΗΜΑ 7
ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ ΣΕ C - ΜΑΘΗΜΑ 7ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ ΣΕ C - ΜΑΘΗΜΑ 7
ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ ΣΕ C - ΜΑΘΗΜΑ 7Dimitris Psounis
 
ΓΛΩΣΣΑ C - ΜΑΘΗΜΑ 10
ΓΛΩΣΣΑ C - ΜΑΘΗΜΑ 10 ΓΛΩΣΣΑ C - ΜΑΘΗΜΑ 10
ΓΛΩΣΣΑ C - ΜΑΘΗΜΑ 10 Dimitris Psounis
 
ΓΛΩΣΣΑ C - ΜΑΘΗΜΑ 6 (ΕΚΤΥΠΩΣΗ)
ΓΛΩΣΣΑ C - ΜΑΘΗΜΑ 6 (ΕΚΤΥΠΩΣΗ)ΓΛΩΣΣΑ C - ΜΑΘΗΜΑ 6 (ΕΚΤΥΠΩΣΗ)
ΓΛΩΣΣΑ C - ΜΑΘΗΜΑ 6 (ΕΚΤΥΠΩΣΗ)Dimitris Psounis
 
Η Γλώσσα C - Μάθημα 1
Η Γλώσσα C - Μάθημα 1Η Γλώσσα C - Μάθημα 1
Η Γλώσσα C - Μάθημα 1Dimitris Psounis
 
Η ΓΛΩΣΣΑ C - ΜΑΘΗΜΑ 12
Η ΓΛΩΣΣΑ C - ΜΑΘΗΜΑ 12Η ΓΛΩΣΣΑ C - ΜΑΘΗΜΑ 12
Η ΓΛΩΣΣΑ C - ΜΑΘΗΜΑ 12Dimitris Psounis
 
Η Γλώσσα C - Μάθημα 2
Η Γλώσσα C - Μάθημα 2Η Γλώσσα C - Μάθημα 2
Η Γλώσσα C - Μάθημα 2Dimitris Psounis
 
ΑΛΓΟΡΙΘΜΟΙ ΣΕ C - ΜΑΘΗΜΑ 3
ΑΛΓΟΡΙΘΜΟΙ ΣΕ C - ΜΑΘΗΜΑ 3ΑΛΓΟΡΙΘΜΟΙ ΣΕ C - ΜΑΘΗΜΑ 3
ΑΛΓΟΡΙΘΜΟΙ ΣΕ C - ΜΑΘΗΜΑ 3Dimitris Psounis
 
ΠΛΗ10 ΤΥΠΟΛΟΓΙΟ ΕΝΟΤΗΤΑΣ 1
ΠΛΗ10 ΤΥΠΟΛΟΓΙΟ ΕΝΟΤΗΤΑΣ 1ΠΛΗ10 ΤΥΠΟΛΟΓΙΟ ΕΝΟΤΗΤΑΣ 1
ΠΛΗ10 ΤΥΠΟΛΟΓΙΟ ΕΝΟΤΗΤΑΣ 1Dimitris Psounis
 
ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ ΣΕ C - ΜΑΘΗΜΑ 4
ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ ΣΕ C - ΜΑΘΗΜΑ 4ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ ΣΕ C - ΜΑΘΗΜΑ 4
ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ ΣΕ C - ΜΑΘΗΜΑ 4Dimitris Psounis
 
Η Γλώσσα C - Μάθημα 3
Η Γλώσσα C - Μάθημα 3 Η Γλώσσα C - Μάθημα 3
Η Γλώσσα C - Μάθημα 3 Dimitris Psounis
 
Η ΓΛΩΣΣΑ C - ΜΑΘΗΜΑ 14 - ΕΜΒΕΛΕΙΑ ΜΕΤΑΒΛΗΤΩΝ
Η ΓΛΩΣΣΑ C - ΜΑΘΗΜΑ 14 - ΕΜΒΕΛΕΙΑ ΜΕΤΑΒΛΗΤΩΝΗ ΓΛΩΣΣΑ C - ΜΑΘΗΜΑ 14 - ΕΜΒΕΛΕΙΑ ΜΕΤΑΒΛΗΤΩΝ
Η ΓΛΩΣΣΑ C - ΜΑΘΗΜΑ 14 - ΕΜΒΕΛΕΙΑ ΜΕΤΑΒΛΗΤΩΝDimitris Psounis
 
Η ΓΛΩΣΣΑ C - ΜΑΘΗΜΑ 13 - ΔΟΜΕΣ
Η ΓΛΩΣΣΑ C - ΜΑΘΗΜΑ 13 - ΔΟΜΕΣΗ ΓΛΩΣΣΑ C - ΜΑΘΗΜΑ 13 - ΔΟΜΕΣ
Η ΓΛΩΣΣΑ C - ΜΑΘΗΜΑ 13 - ΔΟΜΕΣDimitris Psounis
 
ΓΛΩΣΣΑ C - ΜΑΘΗΜΑ 11
ΓΛΩΣΣΑ C - ΜΑΘΗΜΑ 11ΓΛΩΣΣΑ C - ΜΑΘΗΜΑ 11
ΓΛΩΣΣΑ C - ΜΑΘΗΜΑ 11Dimitris Psounis
 

What's hot (20)

ΠΛΗ10 ΜΑΘΗΜΑ 2.8
ΠΛΗ10 ΜΑΘΗΜΑ 2.8ΠΛΗ10 ΜΑΘΗΜΑ 2.8
ΠΛΗ10 ΜΑΘΗΜΑ 2.8
 
ΠΛΗ10 ΜΑΘΗΜΑ 2.4
ΠΛΗ10 ΜΑΘΗΜΑ 2.4ΠΛΗ10 ΜΑΘΗΜΑ 2.4
ΠΛΗ10 ΜΑΘΗΜΑ 2.4
 
Η ΓΛΩΣΣΑ C - ΜΑΘΗΜΑ 7 - ΠΙΝΑΚΕΣ
Η ΓΛΩΣΣΑ C - ΜΑΘΗΜΑ 7 - ΠΙΝΑΚΕΣΗ ΓΛΩΣΣΑ C - ΜΑΘΗΜΑ 7 - ΠΙΝΑΚΕΣ
Η ΓΛΩΣΣΑ C - ΜΑΘΗΜΑ 7 - ΠΙΝΑΚΕΣ
 
ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ ΣΕ C - ΜΑΘΗΜΑ 7
ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ ΣΕ C - ΜΑΘΗΜΑ 7ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ ΣΕ C - ΜΑΘΗΜΑ 7
ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ ΣΕ C - ΜΑΘΗΜΑ 7
 
ΓΛΩΣΣΑ C - ΜΑΘΗΜΑ 10
ΓΛΩΣΣΑ C - ΜΑΘΗΜΑ 10 ΓΛΩΣΣΑ C - ΜΑΘΗΜΑ 10
ΓΛΩΣΣΑ C - ΜΑΘΗΜΑ 10
 
ΓΛΩΣΣΑ C - ΜΑΘΗΜΑ 6 (ΕΚΤΥΠΩΣΗ)
ΓΛΩΣΣΑ C - ΜΑΘΗΜΑ 6 (ΕΚΤΥΠΩΣΗ)ΓΛΩΣΣΑ C - ΜΑΘΗΜΑ 6 (ΕΚΤΥΠΩΣΗ)
ΓΛΩΣΣΑ C - ΜΑΘΗΜΑ 6 (ΕΚΤΥΠΩΣΗ)
 
Η Γλώσσα C - Μάθημα 1
Η Γλώσσα C - Μάθημα 1Η Γλώσσα C - Μάθημα 1
Η Γλώσσα C - Μάθημα 1
 
Η ΓΛΩΣΣΑ C - ΜΑΘΗΜΑ 12
Η ΓΛΩΣΣΑ C - ΜΑΘΗΜΑ 12Η ΓΛΩΣΣΑ C - ΜΑΘΗΜΑ 12
Η ΓΛΩΣΣΑ C - ΜΑΘΗΜΑ 12
 
Η Γλώσσα C - Μάθημα 2
Η Γλώσσα C - Μάθημα 2Η Γλώσσα C - Μάθημα 2
Η Γλώσσα C - Μάθημα 2
 
ΑΛΓΟΡΙΘΜΟΙ ΣΕ C - ΜΑΘΗΜΑ 3
ΑΛΓΟΡΙΘΜΟΙ ΣΕ C - ΜΑΘΗΜΑ 3ΑΛΓΟΡΙΘΜΟΙ ΣΕ C - ΜΑΘΗΜΑ 3
ΑΛΓΟΡΙΘΜΟΙ ΣΕ C - ΜΑΘΗΜΑ 3
 
ΠΛΗ10 ΜΑΘΗΜΑ 1.1
ΠΛΗ10 ΜΑΘΗΜΑ 1.1ΠΛΗ10 ΜΑΘΗΜΑ 1.1
ΠΛΗ10 ΜΑΘΗΜΑ 1.1
 
ΠΛΗ10 ΤΥΠΟΛΟΓΙΟ ΕΝΟΤΗΤΑΣ 1
ΠΛΗ10 ΤΥΠΟΛΟΓΙΟ ΕΝΟΤΗΤΑΣ 1ΠΛΗ10 ΤΥΠΟΛΟΓΙΟ ΕΝΟΤΗΤΑΣ 1
ΠΛΗ10 ΤΥΠΟΛΟΓΙΟ ΕΝΟΤΗΤΑΣ 1
 
ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ ΣΕ C - ΜΑΘΗΜΑ 4
ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ ΣΕ C - ΜΑΘΗΜΑ 4ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ ΣΕ C - ΜΑΘΗΜΑ 4
ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ ΣΕ C - ΜΑΘΗΜΑ 4
 
ΠΛΗ10 ΜΑΘΗΜΑ 1.5
ΠΛΗ10 ΜΑΘΗΜΑ 1.5ΠΛΗ10 ΜΑΘΗΜΑ 1.5
ΠΛΗ10 ΜΑΘΗΜΑ 1.5
 
Η Γλώσσα C - Μάθημα 3
Η Γλώσσα C - Μάθημα 3 Η Γλώσσα C - Μάθημα 3
Η Γλώσσα C - Μάθημα 3
 
ΠΛΗ10 ΤΕΣΤ 1
ΠΛΗ10 ΤΕΣΤ 1ΠΛΗ10 ΤΕΣΤ 1
ΠΛΗ10 ΤΕΣΤ 1
 
Η ΓΛΩΣΣΑ C - ΜΑΘΗΜΑ 14 - ΕΜΒΕΛΕΙΑ ΜΕΤΑΒΛΗΤΩΝ
Η ΓΛΩΣΣΑ C - ΜΑΘΗΜΑ 14 - ΕΜΒΕΛΕΙΑ ΜΕΤΑΒΛΗΤΩΝΗ ΓΛΩΣΣΑ C - ΜΑΘΗΜΑ 14 - ΕΜΒΕΛΕΙΑ ΜΕΤΑΒΛΗΤΩΝ
Η ΓΛΩΣΣΑ C - ΜΑΘΗΜΑ 14 - ΕΜΒΕΛΕΙΑ ΜΕΤΑΒΛΗΤΩΝ
 
ΠΛΗ10 ΤΕΣΤ 2
ΠΛΗ10 ΤΕΣΤ 2ΠΛΗ10 ΤΕΣΤ 2
ΠΛΗ10 ΤΕΣΤ 2
 
Η ΓΛΩΣΣΑ C - ΜΑΘΗΜΑ 13 - ΔΟΜΕΣ
Η ΓΛΩΣΣΑ C - ΜΑΘΗΜΑ 13 - ΔΟΜΕΣΗ ΓΛΩΣΣΑ C - ΜΑΘΗΜΑ 13 - ΔΟΜΕΣ
Η ΓΛΩΣΣΑ C - ΜΑΘΗΜΑ 13 - ΔΟΜΕΣ
 
ΓΛΩΣΣΑ C - ΜΑΘΗΜΑ 11
ΓΛΩΣΣΑ C - ΜΑΘΗΜΑ 11ΓΛΩΣΣΑ C - ΜΑΘΗΜΑ 11
ΓΛΩΣΣΑ C - ΜΑΘΗΜΑ 11
 

Viewers also liked

ΠΛΗ10 ΜΑΘΗΜΑ 2.6 (ΕΚΤΥΠΩΣΗ)
ΠΛΗ10 ΜΑΘΗΜΑ 2.6 (ΕΚΤΥΠΩΣΗ)ΠΛΗ10 ΜΑΘΗΜΑ 2.6 (ΕΚΤΥΠΩΣΗ)
ΠΛΗ10 ΜΑΘΗΜΑ 2.6 (ΕΚΤΥΠΩΣΗ)Dimitris Psounis
 
ΠΛΗ10 ΜΑΘΗΜΑ 2.7 (ΕΚΤΥΠΩΣΗ)
ΠΛΗ10 ΜΑΘΗΜΑ 2.7 (ΕΚΤΥΠΩΣΗ)ΠΛΗ10 ΜΑΘΗΜΑ 2.7 (ΕΚΤΥΠΩΣΗ)
ΠΛΗ10 ΜΑΘΗΜΑ 2.7 (ΕΚΤΥΠΩΣΗ)Dimitris Psounis
 
ΠΛΗ10 ΜΑΘΗΜΑ 2.4 (ΕΚΤΥΠΩΣΗ)
ΠΛΗ10 ΜΑΘΗΜΑ 2.4 (ΕΚΤΥΠΩΣΗ)ΠΛΗ10 ΜΑΘΗΜΑ 2.4 (ΕΚΤΥΠΩΣΗ)
ΠΛΗ10 ΜΑΘΗΜΑ 2.4 (ΕΚΤΥΠΩΣΗ)Dimitris Psounis
 
ΠΛΗ10 ΜΑΘΗΜΑ 2.5 (ΕΚΤΥΠΩΣΗ)
ΠΛΗ10 ΜΑΘΗΜΑ 2.5 (ΕΚΤΥΠΩΣΗ)ΠΛΗ10 ΜΑΘΗΜΑ 2.5 (ΕΚΤΥΠΩΣΗ)
ΠΛΗ10 ΜΑΘΗΜΑ 2.5 (ΕΚΤΥΠΩΣΗ)Dimitris Psounis
 
ΠΛΗ10 ΜΑΘΗΜΑ 2.8 (ΕΚΤΥΠΩΣΗ)
ΠΛΗ10 ΜΑΘΗΜΑ 2.8 (ΕΚΤΥΠΩΣΗ)ΠΛΗ10 ΜΑΘΗΜΑ 2.8 (ΕΚΤΥΠΩΣΗ)
ΠΛΗ10 ΜΑΘΗΜΑ 2.8 (ΕΚΤΥΠΩΣΗ)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.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 ΚΑΡΤΕΣ ΜΑΘΗΜΑΤΟΣ 2.1
ΠΛΗ10 ΚΑΡΤΕΣ ΜΑΘΗΜΑΤΟΣ 2.1ΠΛΗ10 ΚΑΡΤΕΣ ΜΑΘΗΜΑΤΟΣ 2.1
ΠΛΗ10 ΚΑΡΤΕΣ ΜΑΘΗΜΑΤΟΣ 2.1Dimitris 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.2Dimitris Psounis
 

Viewers also liked (20)

ΠΛΗ10 ΜΑΘΗΜΑ 2.6 (ΕΚΤΥΠΩΣΗ)
ΠΛΗ10 ΜΑΘΗΜΑ 2.6 (ΕΚΤΥΠΩΣΗ)ΠΛΗ10 ΜΑΘΗΜΑ 2.6 (ΕΚΤΥΠΩΣΗ)
ΠΛΗ10 ΜΑΘΗΜΑ 2.6 (ΕΚΤΥΠΩΣΗ)
 
ΠΛΗ10 ΜΑΘΗΜΑ 2.7 (ΕΚΤΥΠΩΣΗ)
ΠΛΗ10 ΜΑΘΗΜΑ 2.7 (ΕΚΤΥΠΩΣΗ)ΠΛΗ10 ΜΑΘΗΜΑ 2.7 (ΕΚΤΥΠΩΣΗ)
ΠΛΗ10 ΜΑΘΗΜΑ 2.7 (ΕΚΤΥΠΩΣΗ)
 
ΠΛΗ10 ΜΑΘΗΜΑ 2.4 (ΕΚΤΥΠΩΣΗ)
ΠΛΗ10 ΜΑΘΗΜΑ 2.4 (ΕΚΤΥΠΩΣΗ)ΠΛΗ10 ΜΑΘΗΜΑ 2.4 (ΕΚΤΥΠΩΣΗ)
ΠΛΗ10 ΜΑΘΗΜΑ 2.4 (ΕΚΤΥΠΩΣΗ)
 
ΠΛΗ10 ΤΕΣΤ 9
ΠΛΗ10 ΤΕΣΤ 9ΠΛΗ10 ΤΕΣΤ 9
ΠΛΗ10 ΤΕΣΤ 9
 
ΠΛΗ10 ΜΑΘΗΜΑ 2.5 (ΕΚΤΥΠΩΣΗ)
ΠΛΗ10 ΜΑΘΗΜΑ 2.5 (ΕΚΤΥΠΩΣΗ)ΠΛΗ10 ΜΑΘΗΜΑ 2.5 (ΕΚΤΥΠΩΣΗ)
ΠΛΗ10 ΜΑΘΗΜΑ 2.5 (ΕΚΤΥΠΩΣΗ)
 
ΠΛΗ10 ΤΕΣΤ 5
ΠΛΗ10 ΤΕΣΤ 5ΠΛΗ10 ΤΕΣΤ 5
ΠΛΗ10 ΤΕΣΤ 5
 
ΠΛΗ10 ΤΕΣΤ 6
ΠΛΗ10 ΤΕΣΤ 6ΠΛΗ10 ΤΕΣΤ 6
ΠΛΗ10 ΤΕΣΤ 6
 
ΠΛΗ10 ΤΕΣΤ 8
ΠΛΗ10 ΤΕΣΤ 8ΠΛΗ10 ΤΕΣΤ 8
ΠΛΗ10 ΤΕΣΤ 8
 
ΠΛΗ10 ΤΕΣΤ 7
ΠΛΗ10 ΤΕΣΤ 7ΠΛΗ10 ΤΕΣΤ 7
ΠΛΗ10 ΤΕΣΤ 7
 
ΠΛΗ10 ΜΑΘΗΜΑ 2.8 (ΕΚΤΥΠΩΣΗ)
ΠΛΗ10 ΜΑΘΗΜΑ 2.8 (ΕΚΤΥΠΩΣΗ)ΠΛΗ10 ΜΑΘΗΜΑ 2.8 (ΕΚΤΥΠΩΣΗ)
ΠΛΗ10 ΜΑΘΗΜΑ 2.8 (ΕΚΤΥΠΩΣΗ)
 
ΠΛΗ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.1 (ΕΚΤΥΠΩΣΗ)
ΠΛΗ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 ΚΑΡΤΕΣ ΜΑΘΗΜΑΤΟΣ 2.1ΠΛΗ10 ΚΑΡΤΕΣ ΜΑΘΗΜΑΤΟΣ 2.1
ΠΛΗ10 ΚΑΡΤΕΣ ΜΑΘΗΜΑΤΟΣ 2.1
 
ΠΛΗ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 ΤΕΣΤ 10
ΠΛΗ10 ΤΕΣΤ 10ΠΛΗ10 ΤΕΣΤ 10
ΠΛΗ10 ΤΕΣΤ 10
 
ΠΛΗ10 ΤΕΣΤ 12
ΠΛΗ10 ΤΕΣΤ 12ΠΛΗ10 ΤΕΣΤ 12
ΠΛΗ10 ΤΕΣΤ 12
 
ΠΛΗ10 ΤΕΣΤ 11
ΠΛΗ10 ΤΕΣΤ 11ΠΛΗ10 ΤΕΣΤ 11
ΠΛΗ10 ΤΕΣΤ 11
 

Similar to ΠΛΗ10 ΜΑΘΗΜΑ 2.6

Κρασανάκης Εμμανουήλ
Κρασανάκης ΕμμανουήλΚρασανάκης Εμμανουήλ
Κρασανάκης ΕμμανουήλISSEL
 
Algorithms
AlgorithmsAlgorithms
Algorithmspapettas
 
Αλγόριθμοι
ΑλγόριθμοιΑλγόριθμοι
ΑλγόριθμοιMaria Rozou
 
Επικοινωνία & συγχρονισμός, αλληλεπίδραση με το χρήστη, παράλληλος προγραμματ...
Επικοινωνία & συγχρονισμός, αλληλεπίδραση με το χρήστη, παράλληλος προγραμματ...Επικοινωνία & συγχρονισμός, αλληλεπίδραση με το χρήστη, παράλληλος προγραμματ...
Επικοινωνία & συγχρονισμός, αλληλεπίδραση με το χρήστη, παράλληλος προγραμματ...WROHellas
 
Πρόχειρες Σημειώσεις Μαθηματικών Προσανατολισμού Γ' λυκείου (με κάποια λυμένα...
Πρόχειρες Σημειώσεις Μαθηματικών Προσανατολισμού Γ' λυκείου (με κάποια λυμένα...Πρόχειρες Σημειώσεις Μαθηματικών Προσανατολισμού Γ' λυκείου (με κάποια λυμένα...
Πρόχειρες Σημειώσεις Μαθηματικών Προσανατολισμού Γ' λυκείου (με κάποια λυμένα...Billonious
 
B4-1-4-Processing Numerical Data
B4-1-4-Processing Numerical DataB4-1-4-Processing Numerical Data
B4-1-4-Processing Numerical Datapapettas
 
Theofilos Georgiadis: Library recommendation system for the reuse of software...
Theofilos Georgiadis: Library recommendation system for the reuse of software...Theofilos Georgiadis: Library recommendation system for the reuse of software...
Theofilos Georgiadis: Library recommendation system for the reuse of software...Manos Tsardoulias
 
Κεφ. 2 Βασικές Έννοιες Αλγορίθμων
Κεφ. 2 Βασικές Έννοιες ΑλγορίθμωνΚεφ. 2 Βασικές Έννοιες Αλγορίθμων
Κεφ. 2 Βασικές Έννοιες ΑλγορίθμωνΙωάννου Γιαννάκης
 
Kef2o θεωρία Ανάπτυξη Εφαρμογών σε Προγραμματιστικό Περιβάλλον
Kef2o θεωρία Ανάπτυξη Εφαρμογών σε Προγραμματιστικό ΠεριβάλλονKef2o θεωρία Ανάπτυξη Εφαρμογών σε Προγραμματιστικό Περιβάλλον
Kef2o θεωρία Ανάπτυξη Εφαρμογών σε Προγραμματιστικό ΠεριβάλλονEleni Kokkinou
 
Βασικές έννοιες προγραμματισμού
Βασικές έννοιες προγραμματισμούΒασικές έννοιες προγραμματισμού
Βασικές έννοιες προγραμματισμούΙωάννου Γιαννάκης
 
Διαγώνισμα 2o Υποπρογράμματα
Διαγώνισμα 2o ΥποπρογράμματαΔιαγώνισμα 2o Υποπρογράμματα
Διαγώνισμα 2o Υποπρογράμματαeducast
 
κεφάλαιο 02 anaptixi-2
κεφάλαιο 02 anaptixi-2κεφάλαιο 02 anaptixi-2
κεφάλαιο 02 anaptixi-2evaplyta
 
Οδηγίες για τη διδασκαλία του μαθήματος «Ανάπτυξη Εφαρμογών σε Προγραμματιστι...
Οδηγίες για τη διδασκαλία του μαθήματος «Ανάπτυξη Εφαρμογών σε Προγραμματιστι...Οδηγίες για τη διδασκαλία του μαθήματος «Ανάπτυξη Εφαρμογών σε Προγραμματιστι...
Οδηγίες για τη διδασκαλία του μαθήματος «Ανάπτυξη Εφαρμογών σε Προγραμματιστι...1ο Γενικό Λύκειο Σπάτων
 
ΓΕΝΙΚΑ ΒΗΜΑΤΑ ΣΤΙΣ ΔΟΜΕ ΕΠΑΝΑΛΗΨΗΣ.pdf
ΓΕΝΙΚΑ ΒΗΜΑΤΑ ΣΤΙΣ ΔΟΜΕ ΕΠΑΝΑΛΗΨΗΣ.pdfΓΕΝΙΚΑ ΒΗΜΑΤΑ ΣΤΙΣ ΔΟΜΕ ΕΠΑΝΑΛΗΨΗΣ.pdf
ΓΕΝΙΚΑ ΒΗΜΑΤΑ ΣΤΙΣ ΔΟΜΕ ΕΠΑΝΑΛΗΨΗΣ.pdfpetroskorobos
 
Kef10 a synartiseis
Kef10 a synartiseisKef10 a synartiseis
Kef10 a synartiseismnikol
 

Similar to ΠΛΗ10 ΜΑΘΗΜΑ 2.6 (20)

Κρασανάκης Εμμανουήλ
Κρασανάκης ΕμμανουήλΚρασανάκης Εμμανουήλ
Κρασανάκης Εμμανουήλ
 
Algorithms
AlgorithmsAlgorithms
Algorithms
 
Python Κεφ. 1.5 συναρτήσεις
Python Κεφ. 1.5 συναρτήσειςPython Κεφ. 1.5 συναρτήσεις
Python Κεφ. 1.5 συναρτήσεις
 
Αλγόριθμοι
ΑλγόριθμοιΑλγόριθμοι
Αλγόριθμοι
 
Επικοινωνία & συγχρονισμός, αλληλεπίδραση με το χρήστη, παράλληλος προγραμματ...
Επικοινωνία & συγχρονισμός, αλληλεπίδραση με το χρήστη, παράλληλος προγραμματ...Επικοινωνία & συγχρονισμός, αλληλεπίδραση με το χρήστη, παράλληλος προγραμματ...
Επικοινωνία & συγχρονισμός, αλληλεπίδραση με το χρήστη, παράλληλος προγραμματ...
 
Πρόχειρες Σημειώσεις Μαθηματικών Προσανατολισμού Γ' λυκείου (με κάποια λυμένα...
Πρόχειρες Σημειώσεις Μαθηματικών Προσανατολισμού Γ' λυκείου (με κάποια λυμένα...Πρόχειρες Σημειώσεις Μαθηματικών Προσανατολισμού Γ' λυκείου (με κάποια λυμένα...
Πρόχειρες Σημειώσεις Μαθηματικών Προσανατολισμού Γ' λυκείου (με κάποια λυμένα...
 
ΛΟΓΙΣΤΙΚΑ ΦΥΛΛΑ
ΛΟΓΙΣΤΙΚΑ ΦΥΛΛΑΛΟΓΙΣΤΙΚΑ ΦΥΛΛΑ
ΛΟΓΙΣΤΙΚΑ ΦΥΛΛΑ
 
B4-1-4-Processing Numerical Data
B4-1-4-Processing Numerical DataB4-1-4-Processing Numerical Data
B4-1-4-Processing Numerical Data
 
Parousiash
ParousiashParousiash
Parousiash
 
Theofilos Georgiadis: Library recommendation system for the reuse of software...
Theofilos Georgiadis: Library recommendation system for the reuse of software...Theofilos Georgiadis: Library recommendation system for the reuse of software...
Theofilos Georgiadis: Library recommendation system for the reuse of software...
 
Κεφ. 2 Βασικές Έννοιες Αλγορίθμων
Κεφ. 2 Βασικές Έννοιες ΑλγορίθμωνΚεφ. 2 Βασικές Έννοιες Αλγορίθμων
Κεφ. 2 Βασικές Έννοιες Αλγορίθμων
 
Απλά Στατιστικά Εργαλεία Η/Υ
Απλά Στατιστικά Εργαλεία Η/ΥΑπλά Στατιστικά Εργαλεία Η/Υ
Απλά Στατιστικά Εργαλεία Η/Υ
 
Kef2o θεωρία Ανάπτυξη Εφαρμογών σε Προγραμματιστικό Περιβάλλον
Kef2o θεωρία Ανάπτυξη Εφαρμογών σε Προγραμματιστικό ΠεριβάλλονKef2o θεωρία Ανάπτυξη Εφαρμογών σε Προγραμματιστικό Περιβάλλον
Kef2o θεωρία Ανάπτυξη Εφαρμογών σε Προγραμματιστικό Περιβάλλον
 
Βασικές έννοιες προγραμματισμού
Βασικές έννοιες προγραμματισμούΒασικές έννοιες προγραμματισμού
Βασικές έννοιες προγραμματισμού
 
Διαγώνισμα 2o Υποπρογράμματα
Διαγώνισμα 2o ΥποπρογράμματαΔιαγώνισμα 2o Υποπρογράμματα
Διαγώνισμα 2o Υποπρογράμματα
 
κεφάλαιο 02 anaptixi-2
κεφάλαιο 02 anaptixi-2κεφάλαιο 02 anaptixi-2
κεφάλαιο 02 anaptixi-2
 
Οδηγίες για τη διδασκαλία του μαθήματος «Ανάπτυξη Εφαρμογών σε Προγραμματιστι...
Οδηγίες για τη διδασκαλία του μαθήματος «Ανάπτυξη Εφαρμογών σε Προγραμματιστι...Οδηγίες για τη διδασκαλία του μαθήματος «Ανάπτυξη Εφαρμογών σε Προγραμματιστι...
Οδηγίες για τη διδασκαλία του μαθήματος «Ανάπτυξη Εφαρμογών σε Προγραμματιστι...
 
ΓΕΝΙΚΑ ΒΗΜΑΤΑ ΣΤΙΣ ΔΟΜΕ ΕΠΑΝΑΛΗΨΗΣ.pdf
ΓΕΝΙΚΑ ΒΗΜΑΤΑ ΣΤΙΣ ΔΟΜΕ ΕΠΑΝΑΛΗΨΗΣ.pdfΓΕΝΙΚΑ ΒΗΜΑΤΑ ΣΤΙΣ ΔΟΜΕ ΕΠΑΝΑΛΗΨΗΣ.pdf
ΓΕΝΙΚΑ ΒΗΜΑΤΑ ΣΤΙΣ ΔΟΜΕ ΕΠΑΝΑΛΗΨΗΣ.pdf
 
μεταβλητές
μεταβλητέςμεταβλητές
μεταβλητές
 
Kef10 a synartiseis
Kef10 a synartiseisKef10 a synartiseis
Kef10 a synartiseis
 

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 - ΕΙΣΑΓΩΓΗ ΚΑΙ ΣΧΕΣΗ ΜΕ ΤΗ CDimitris 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 ΕΠΑΝΑΛΗΠΤΙΚΟ ΔΙΑΓΩΝΙΣΜΑ 6Dimitris Psounis
 
ΠΛΗ20 ΕΠΑΝΑΛΗΠΤΙΚΟ ΔΙΑΓΩΝΙΣΜΑ 5
ΠΛΗ20 ΕΠΑΝΑΛΗΠΤΙΚΟ ΔΙΑΓΩΝΙΣΜΑ 5ΠΛΗ20 ΕΠΑΝΑΛΗΠΤΙΚΟ ΔΙΑΓΩΝΙΣΜΑ 5
ΠΛΗ20 ΕΠΑΝΑΛΗΠΤΙΚΟ ΔΙΑΓΩΝΙΣΜΑ 5Dimitris Psounis
 
ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ ΣΕ C - ΜΑΘΗΜΑ 8 (ΕΚΤΥΠΩΣΗ)
ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ ΣΕ C - ΜΑΘΗΜΑ 8 (ΕΚΤΥΠΩΣΗ)ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ ΣΕ C - ΜΑΘΗΜΑ 8 (ΕΚΤΥΠΩΣΗ)
ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ ΣΕ C - ΜΑΘΗΜΑ 8 (ΕΚΤΥΠΩΣΗ)Dimitris Psounis
 
ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ ΣΕ C - ΜΑΘΗΜΑ 8
ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ ΣΕ C - ΜΑΘΗΜΑ 8ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ ΣΕ C - ΜΑΘΗΜΑ 8
ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ ΣΕ C - ΜΑΘΗΜΑ 8Dimitris 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

ΤΑ ΠΟΤΑΜΙΑ ΤΗΣ ΕΛΛΑΔΑΣ - Γεωγραφία .docx
ΤΑ ΠΟΤΑΜΙΑ ΤΗΣ ΕΛΛΑΔΑΣ - Γεωγραφία .docxΤΑ ΠΟΤΑΜΙΑ ΤΗΣ ΕΛΛΑΔΑΣ - Γεωγραφία .docx
ΤΑ ΠΟΤΑΜΙΑ ΤΗΣ ΕΛΛΑΔΑΣ - Γεωγραφία .docxeucharis
 
Εκπαιδευτική επίσκεψη στο 1ο ΕΠΑΛ Καβάλας.pptx
Εκπαιδευτική επίσκεψη στο 1ο ΕΠΑΛ Καβάλας.pptxΕκπαιδευτική επίσκεψη στο 1ο ΕΠΑΛ Καβάλας.pptx
Εκπαιδευτική επίσκεψη στο 1ο ΕΠΑΛ Καβάλας.pptx7gymnasiokavalas
 
RODOPI CHALLENGE (ROC 50 MILES) 2024 ΤΕΧΝΙΚΗ ΕΝΗΜΕΡΩΣH
RODOPI CHALLENGE (ROC 50 MILES) 2024 ΤΕΧΝΙΚΗ ΕΝΗΜΕΡΩΣHRODOPI CHALLENGE (ROC 50 MILES) 2024 ΤΕΧΝΙΚΗ ΕΝΗΜΕΡΩΣH
RODOPI CHALLENGE (ROC 50 MILES) 2024 ΤΕΧΝΙΚΗ ΕΝΗΜΕΡΩΣHROUT Family
 
Οδηγίες για τη δημιουργία Flashcard με το Quizlet.pdf
Οδηγίες για τη δημιουργία Flashcard με το Quizlet.pdfΟδηγίες για τη δημιουργία Flashcard με το Quizlet.pdf
Οδηγίες για τη δημιουργία Flashcard με το Quizlet.pdfIrini Panagiotaki
 
2η Διεθνική Συνάντηση μαθητών και καθηγητών στο Σαλέρνο της Ιταλίας
2η Διεθνική Συνάντηση μαθητών και καθηγητών στο Σαλέρνο της Ιταλίας2η Διεθνική Συνάντηση μαθητών και καθηγητών στο Σαλέρνο της Ιταλίας
2η Διεθνική Συνάντηση μαθητών και καθηγητών στο Σαλέρνο της ΙταλίαςKonstantina Katirtzi
 
ΠΑΝΕΛΛΗΝΙΕΣ 2024 ΠΡΟΤΕΙΝΟΜΕΝΑ ΘΕΜΑΤΑ ΝΕΟΕΛΛΗΝΙΚΗ ΓΛΩΣΣΑ ΚΑΙ ΛΟΓΟΤΕΧΝΙΑ.pdf
ΠΑΝΕΛΛΗΝΙΕΣ 2024 ΠΡΟΤΕΙΝΟΜΕΝΑ ΘΕΜΑΤΑ ΝΕΟΕΛΛΗΝΙΚΗ ΓΛΩΣΣΑ ΚΑΙ ΛΟΓΟΤΕΧΝΙΑ.pdfΠΑΝΕΛΛΗΝΙΕΣ 2024 ΠΡΟΤΕΙΝΟΜΕΝΑ ΘΕΜΑΤΑ ΝΕΟΕΛΛΗΝΙΚΗ ΓΛΩΣΣΑ ΚΑΙ ΛΟΓΟΤΕΧΝΙΑ.pdf
ΠΑΝΕΛΛΗΝΙΕΣ 2024 ΠΡΟΤΕΙΝΟΜΕΝΑ ΘΕΜΑΤΑ ΝΕΟΕΛΛΗΝΙΚΗ ΓΛΩΣΣΑ ΚΑΙ ΛΟΓΟΤΕΧΝΙΑ.pdfssuserf9afe7
 
Το άγαλμα που κρύωνε
Το άγαλμα που                       κρύωνεΤο άγαλμα που                       κρύωνε
Το άγαλμα που κρύωνεDimitra Mylonaki
 
EKSETASTEA KAI DIDAKTEA YLH G TAKSHS GENIKOY LYKEIOY
EKSETASTEA KAI DIDAKTEA YLH G TAKSHS GENIKOY LYKEIOYEKSETASTEA KAI DIDAKTEA YLH G TAKSHS GENIKOY LYKEIOY
EKSETASTEA KAI DIDAKTEA YLH G TAKSHS GENIKOY LYKEIOYssuser369a35
 
Οδηγίες για τη δημιουργία διαδραστικών δραστηριοτήτων με την εφαρμογή Wordwal...
Οδηγίες για τη δημιουργία διαδραστικών δραστηριοτήτων με την εφαρμογή Wordwal...Οδηγίες για τη δημιουργία διαδραστικών δραστηριοτήτων με την εφαρμογή Wordwal...
Οδηγίες για τη δημιουργία διαδραστικών δραστηριοτήτων με την εφαρμογή Wordwal...Irini Panagiotaki
 
ΚΛΙΜΑΤΙΚΗ ΑΛΛΑΓΗ ΚΑΙ ΠΟΛΙΤΙΚΕΣ ΤΗΣ Ε.Ε..pptx
ΚΛΙΜΑΤΙΚΗ ΑΛΛΑΓΗ ΚΑΙ ΠΟΛΙΤΙΚΕΣ ΤΗΣ Ε.Ε..pptxΚΛΙΜΑΤΙΚΗ ΑΛΛΑΓΗ ΚΑΙ ΠΟΛΙΤΙΚΕΣ ΤΗΣ Ε.Ε..pptx
ΚΛΙΜΑΤΙΚΗ ΑΛΛΑΓΗ ΚΑΙ ΠΟΛΙΤΙΚΕΣ ΤΗΣ Ε.Ε..pptxssuserb0ed14
 
Γιορτή της μητέρας-Φύλλα εργασιών για όλες τις τάξεις
Γιορτή της μητέρας-Φύλλα εργασιών για όλες τις τάξειςΓιορτή της μητέρας-Φύλλα εργασιών για όλες τις τάξεις
Γιορτή της μητέρας-Φύλλα εργασιών για όλες τις τάξειςΟΛΓΑ ΤΣΕΧΕΛΙΔΟΥ
 
Η Δυναστεία των Παλαιολόγων - Βυζαντινή Αυτοκρατορία
Η Δυναστεία των Παλαιολόγων -  Βυζαντινή ΑυτοκρατορίαΗ Δυναστεία των Παλαιολόγων -  Βυζαντινή Αυτοκρατορία
Η Δυναστεία των Παλαιολόγων - Βυζαντινή Αυτοκρατορίαeucharis
 
ΕΝΔΟΣΧΟΛΙΚΕΣ_ΠΡΟΓΡΑΜΜΑ endosxolikes 2023-24
ΕΝΔΟΣΧΟΛΙΚΕΣ_ΠΡΟΓΡΑΜΜΑ endosxolikes 2023-24ΕΝΔΟΣΧΟΛΙΚΕΣ_ΠΡΟΓΡΑΜΜΑ endosxolikes 2023-24
ΕΝΔΟΣΧΟΛΙΚΕΣ_ΠΡΟΓΡΑΜΜΑ endosxolikes 2023-242lykkomo
 

Recently uploaded (13)

ΤΑ ΠΟΤΑΜΙΑ ΤΗΣ ΕΛΛΑΔΑΣ - Γεωγραφία .docx
ΤΑ ΠΟΤΑΜΙΑ ΤΗΣ ΕΛΛΑΔΑΣ - Γεωγραφία .docxΤΑ ΠΟΤΑΜΙΑ ΤΗΣ ΕΛΛΑΔΑΣ - Γεωγραφία .docx
ΤΑ ΠΟΤΑΜΙΑ ΤΗΣ ΕΛΛΑΔΑΣ - Γεωγραφία .docx
 
Εκπαιδευτική επίσκεψη στο 1ο ΕΠΑΛ Καβάλας.pptx
Εκπαιδευτική επίσκεψη στο 1ο ΕΠΑΛ Καβάλας.pptxΕκπαιδευτική επίσκεψη στο 1ο ΕΠΑΛ Καβάλας.pptx
Εκπαιδευτική επίσκεψη στο 1ο ΕΠΑΛ Καβάλας.pptx
 
RODOPI CHALLENGE (ROC 50 MILES) 2024 ΤΕΧΝΙΚΗ ΕΝΗΜΕΡΩΣH
RODOPI CHALLENGE (ROC 50 MILES) 2024 ΤΕΧΝΙΚΗ ΕΝΗΜΕΡΩΣHRODOPI CHALLENGE (ROC 50 MILES) 2024 ΤΕΧΝΙΚΗ ΕΝΗΜΕΡΩΣH
RODOPI CHALLENGE (ROC 50 MILES) 2024 ΤΕΧΝΙΚΗ ΕΝΗΜΕΡΩΣH
 
Οδηγίες για τη δημιουργία Flashcard με το Quizlet.pdf
Οδηγίες για τη δημιουργία Flashcard με το Quizlet.pdfΟδηγίες για τη δημιουργία Flashcard με το Quizlet.pdf
Οδηγίες για τη δημιουργία Flashcard με το Quizlet.pdf
 
2η Διεθνική Συνάντηση μαθητών και καθηγητών στο Σαλέρνο της Ιταλίας
2η Διεθνική Συνάντηση μαθητών και καθηγητών στο Σαλέρνο της Ιταλίας2η Διεθνική Συνάντηση μαθητών και καθηγητών στο Σαλέρνο της Ιταλίας
2η Διεθνική Συνάντηση μαθητών και καθηγητών στο Σαλέρνο της Ιταλίας
 
ΠΑΝΕΛΛΗΝΙΕΣ 2024 ΠΡΟΤΕΙΝΟΜΕΝΑ ΘΕΜΑΤΑ ΝΕΟΕΛΛΗΝΙΚΗ ΓΛΩΣΣΑ ΚΑΙ ΛΟΓΟΤΕΧΝΙΑ.pdf
ΠΑΝΕΛΛΗΝΙΕΣ 2024 ΠΡΟΤΕΙΝΟΜΕΝΑ ΘΕΜΑΤΑ ΝΕΟΕΛΛΗΝΙΚΗ ΓΛΩΣΣΑ ΚΑΙ ΛΟΓΟΤΕΧΝΙΑ.pdfΠΑΝΕΛΛΗΝΙΕΣ 2024 ΠΡΟΤΕΙΝΟΜΕΝΑ ΘΕΜΑΤΑ ΝΕΟΕΛΛΗΝΙΚΗ ΓΛΩΣΣΑ ΚΑΙ ΛΟΓΟΤΕΧΝΙΑ.pdf
ΠΑΝΕΛΛΗΝΙΕΣ 2024 ΠΡΟΤΕΙΝΟΜΕΝΑ ΘΕΜΑΤΑ ΝΕΟΕΛΛΗΝΙΚΗ ΓΛΩΣΣΑ ΚΑΙ ΛΟΓΟΤΕΧΝΙΑ.pdf
 
Το άγαλμα που κρύωνε
Το άγαλμα που                       κρύωνεΤο άγαλμα που                       κρύωνε
Το άγαλμα που κρύωνε
 
EKSETASTEA KAI DIDAKTEA YLH G TAKSHS GENIKOY LYKEIOY
EKSETASTEA KAI DIDAKTEA YLH G TAKSHS GENIKOY LYKEIOYEKSETASTEA KAI DIDAKTEA YLH G TAKSHS GENIKOY LYKEIOY
EKSETASTEA KAI DIDAKTEA YLH G TAKSHS GENIKOY LYKEIOY
 
Οδηγίες για τη δημιουργία διαδραστικών δραστηριοτήτων με την εφαρμογή Wordwal...
Οδηγίες για τη δημιουργία διαδραστικών δραστηριοτήτων με την εφαρμογή Wordwal...Οδηγίες για τη δημιουργία διαδραστικών δραστηριοτήτων με την εφαρμογή Wordwal...
Οδηγίες για τη δημιουργία διαδραστικών δραστηριοτήτων με την εφαρμογή Wordwal...
 
ΚΛΙΜΑΤΙΚΗ ΑΛΛΑΓΗ ΚΑΙ ΠΟΛΙΤΙΚΕΣ ΤΗΣ Ε.Ε..pptx
ΚΛΙΜΑΤΙΚΗ ΑΛΛΑΓΗ ΚΑΙ ΠΟΛΙΤΙΚΕΣ ΤΗΣ Ε.Ε..pptxΚΛΙΜΑΤΙΚΗ ΑΛΛΑΓΗ ΚΑΙ ΠΟΛΙΤΙΚΕΣ ΤΗΣ Ε.Ε..pptx
ΚΛΙΜΑΤΙΚΗ ΑΛΛΑΓΗ ΚΑΙ ΠΟΛΙΤΙΚΕΣ ΤΗΣ Ε.Ε..pptx
 
Γιορτή της μητέρας-Φύλλα εργασιών για όλες τις τάξεις
Γιορτή της μητέρας-Φύλλα εργασιών για όλες τις τάξειςΓιορτή της μητέρας-Φύλλα εργασιών για όλες τις τάξεις
Γιορτή της μητέρας-Φύλλα εργασιών για όλες τις τάξεις
 
Η Δυναστεία των Παλαιολόγων - Βυζαντινή Αυτοκρατορία
Η Δυναστεία των Παλαιολόγων -  Βυζαντινή ΑυτοκρατορίαΗ Δυναστεία των Παλαιολόγων -  Βυζαντινή Αυτοκρατορία
Η Δυναστεία των Παλαιολόγων - Βυζαντινή Αυτοκρατορία
 
ΕΝΔΟΣΧΟΛΙΚΕΣ_ΠΡΟΓΡΑΜΜΑ endosxolikes 2023-24
ΕΝΔΟΣΧΟΛΙΚΕΣ_ΠΡΟΓΡΑΜΜΑ endosxolikes 2023-24ΕΝΔΟΣΧΟΛΙΚΕΣ_ΠΡΟΓΡΑΜΜΑ endosxolikes 2023-24
ΕΝΔΟΣΧΟΛΙΚΕΣ_ΠΡΟΓΡΑΜΜΑ endosxolikes 2023-24
 

ΠΛΗ10 ΜΑΘΗΜΑ 2.6

  • 1. ΠΛΗ10 ΕΝΟΤΗΤΑ 2: Αλγόριθµοι και Ψευδογλώσσα Μάθηµα 2.6: Συναρτήσεις και ∆ιαδικασίες ∆ηµήτρης Ψούνης
  • 2. A. Συναρτήσεις 1. Πότε Γράφουµε Συναρτήσεις 2. Πως Γράφουµε Συναρτήσεις 1. Γενικό Σχήµα 2. ∆ήλωση Συνάρτησης 3. Η ∆ιεπαφή της Συνάρτησης 4. Το Σώµα της Συνάρτησης 5. Κλήση Συνάρτησης 6. Άσκηση µε ορισµό συναρτήσεων 7. Καθολικές και Τοπικές Μεταβλητές 3. Πως Λειτουργούν οι Συναρτήσεις 1. Συναρτήσεις και Χώρος στη Μνήµη Β. ∆ιαδικασίες 1. Πότε Γράφουµε ∆ιαδικασίες 2. Πως Γράφουµε ∆ιαδικασίες ∆ηµήτρης Ψούνης, ΠΛΗ 10, Μάθηµα 2.6: Συναρτήσεις και ∆ιαδικασίες Περιεχόµενα Μαθήµατος 2 Γ. Ασκήσεις 1. Συνάρτηση Ελέγχου Εισόδου 2. Βιβλιοθήκη Μελέτης Αριθµών 3. Πρώτοι Αριθµοί 4. Ανταλλαγή Τιµών (swap) 5. Συνήθεις Πράξεις Πινάκων 1. ∆ιαδικασία: Ανάγνωση Πίνακα 2. ∆ιαδικασία: Εκτύπωση Πίνακα 3. Συνάρτηση: Ελάχιστος Πίνακα 4. Συνάρτηση: Μέγιστος Πίνακα 5. Συνάρτηση: Άθροισµα Στοιχείων Πίνακα 6. Συνάρτηση: Γινόµενο Στοιχείων Πίνακα 7. Συνάρτηση: Μέσος Όρος Πίνακα 8. Πρόγραµµα: Μελέτη Πινάκων 6. Αναζήτηση σε Πίνακα 1. Συνάρτηση: Σειριακή Αναζήτηση 2. Συνάρτηση: ∆υαδική Αναζήτηση 3. Πρόγραµµα: Αναζήτηση σε Πίνακα 7. Ταξινόµηση Πίνακα 1. ∆ιαδικασία: Ταξινόµηση µε Εισαγωγή 2. ∆ιαδικασία: Ταξινόµηση µε Επιλογή 3. ∆ιαδικασία: Ταξινόµηση Φυσαλίδας 4. Πρόγραµµα: Ταξινόµηση Πίνακα
  • 3. A. Συναρτήσεις 1. Πότε Γράφουµε Συναρτήσεις 3∆ηµήτρης Ψούνης, ΠΛΗ 10, Μάθηµα 2.6: Συναρτήσεις και ∆ιαδικασίες Μία συνάρτηση της Ψευδογλώσσας είναι το αντίστοιχο της µαθηµατικής συνάρτησης. Θεωρήστε για παράδειγµα την µαθηµατική συνάρτηση 5 1 Το είναι το όνοµα της συνάρτησης Το ειναι το όρισµα της συνάρτησης Το 5 1 είναι το σώµα της συνάρτησης Τώρα πως χρησιµοποιούµε µια συνάρτηση. Π.χ. µε όρισµα το 2, δηλαδή 2 (Στην Ψευδογλώσσα θα λέµε «καλώντας την µε όρισµα ») Η συνάρτηση υπολογίζεται: 5 ∙ 2 1 5 ∙ 2 1 11 (Στην Ψευδογλώσσα θα λέµε «επιστρέφει ») Π.χ. µε όρισµα το 15, δηλαδή το 15 (Στην Ψευδογλώσσα λέµε «καλώντας την µε όρισµα 15») Η συνάρτηση υπολογίζεται στο 5 ∙ 15 1 5 ∙ 15 1 76 (Στην Ψευδογλώσσα θα λέµε «επιστρέφει 76»)
  • 4. A. Συναρτήσεις 1. Πότε Γράφουµε Συναρτήσεις 4∆ηµήτρης Ψούνης, ΠΛΗ 10, Μάθηµα 2.6: Συναρτήσεις και ∆ιαδικασίες Οι γενικοί κανόνες που µας καθοδηγούν στο να δηµιουργήσουµε µια συνάρτηση στο πρόγραµµά µας είναι: Γράφουµε συναρτήσεις όταν πολλές φορές στο πρόγραµµα µας κάνουµε τις ίδιες ενέργειες µε τον ίδιο κώδικα. Π.χ. Αν το πρόγραµµα µας κάνει µία αναζήτηση σε πίνακα πολλές φορές, τότε θα ορίσουµε µια συνάρτηση µε όνοµα π.χ. search() και καλούµε την συνάρτηση αυτή κάθε φορά που θέλουµε να κάνουµε την αναζήτηση στον πίνακα. Και όταν θέλουµε να απλοποιήσουµε την µορφή του προγράµµατος µας. Είναι κακό να έχουµε έναν κώδικα-«µακαρόνι», δηλαδή µια τεράστια main που να κάνει πάρα πολλά πράγµατα! Προτιµούµε να διασπάµε τον κώδικα σε µέρη και να καλούµε τις αντίστοιχες συναρτήσεις που θα υλοποιούν κάθε αυτόνοµη ενέργεια.
  • 5. A. Συναρτήσεις 2. Πως Γράφουµε Συναρτήσεις 1. Γενικό Σχήµα 5∆ηµήτρης Ψούνης, ΠΛΗ 10, Μάθηµα 2.6: Συναρτήσεις και ∆ιαδικασίες Το γενικό σχήµα για την σύνταξη µιας συνάρτησης στην ψευδογλώσσα είναι το ακόλουθο: ΑΛΓΟΡΙΘΜΟΣ orismos_sinartisis ∆Ε∆ΟΜΕΝΑ a,b: INTEGER; ΣΥΝΑΡΤΗΣΗ cube(x): INTEGER <- Εδώ ξεκινά η δήλωση της συνάρτησης ∆ΙΕΠΑΦΗ <-| Στη διεπαφή ορίζουµε τον τύπο δεδοµένων ΕΙΣΟ∆ΟΣ | των ορισµάτων της συνάρτησης x: INTEGER; | ΕΞΟ∆ΟΣ | και της επιστρεφόµενης τιµής cube: INTEGER; ΑΡΧΗ cube:=x*x*x; <- Εδώ είναι το σώµα της συνάρτησης ΤΕΛΟΣ-ΣΥΝΑΡΤΗΣΗΣ ΑΡΧΗ ∆ΙΑΒΑΣΕ(a); b:=cube(a); <- Εδώ είναι η κλήση της συνάρτησης ΤΥΠΩΣΕ(EOLN,b); ΤΕΛΟΣ
  • 6. A. Συναρτήσεις 2. Πως Γράφουµε Συναρτήσεις 2. ∆ήλωση Συνάρτησης 6∆ηµήτρης Ψούνης, ΠΛΗ 10, Μάθηµα 2.6: Συναρτήσεις και ∆ιαδικασίες ΠΑΝΤΑ πριν από την ΑΡΧΗ του προγράµµατος γράφουµε την δήλωση της συνάρτησης (ή των συναρτήσεων αν θέλουµε να χρησιµοποιήσουµε περισσότερες). Ο τρόπος σύνταξης της δήλωσης της συνάρτησης είναι: Όπως στην συνάρτηση µάς: όπου περιγράφουµε ότι πρόκειται να ορίσουµε µια συνάρτηση µε όνοµα cube: που παίρνει µία µεταβλητή x σαν όρισµα και επιστρέφει µια ακέραια µεταβλητή. Το όνοµα συνάρτησης το επιλέγουµε εµείς ώστε να αντικατοπτρίζει τον υπολογισµό που γίνεται. Αν θέλουµε περισσότερα ορίσµατα, τότε τα χωρίζουµε µε κόµµατα. Στα ορίσµατα βάζουµε το όνοµα των µεταβλητών, ενώ στην επιστρεφόµενη τιµή βάζουµε τον τύπο δεδοµένων της. ΣΥΝΑΡΤΗΣΗ ονοµα_συνάρτησης(ορίσµατα): τύπος_επιστρεφόµενης_τιµής ΣΥΝΑΡΤΗΣΗ cube(x) : INTEGER
  • 7. A. Συναρτήσεις 2. Πως Γράφουµε Συναρτήσεις 3. Η ∆ιεπαφή της Συνάρτησης 7∆ηµήτρης Ψούνης, ΠΛΗ 10, Μάθηµα 2.6: Συναρτήσεις και ∆ιαδικασίες Στην ∆ιεπαφή ορίζουµε πιο αναλυτικά τον τύπο δεδοµένων της εισόδου και της εξόδου χρησιµοποιώντας τις δεσµευµένες λέξεις: ΕΙΣΟ∆ΟΣ: όπου περιγράφουµε τα ορίσµατα και τον τύπο δεδοµένων τους ΕΞΟ∆ΟΣ: όπου περιγράφουµε την επιστρεφόµενη τιµή (υποχρεωτικά µε το όνοµα της συνάρτησης) και τον τύπο δεδοµένων Όπως το πραγµατοποιήσαµε στην συνάρτηση µας: Παρατήρηση 1: Αν δεν έχουµε είσοδο, τότε το τµήµα ΕΙΣΟ∆ΟΣ µπορεί να παραληφθεί. Παρατήρηση 2: Το τµήµα ΕΞΟ∆ΟΣ µπορεί να παραληφθεί. ∆ΙΕΠΑΦΗ ΕΙΣΟ∆ΟΣ ονοµα_ορίσµατος: τύπος_δεδοµένων; ΕΞΟ∆ΟΣ ονοµα_ορίσµατος: τύπος_δεδοµένων; ∆ΙΕΠΑΦΗ ΕΙΣΟ∆ΟΣ x: INTEGER; ΕΞΟ∆ΟΣ cube: INTEGER;
  • 8. A. Συναρτήσεις 2. Πως Γράφουµε Συναρτήσεις 4. Το Σώµα της Συνάρτησης 8∆ηµήτρης Ψούνης, ΠΛΗ 10, Μάθηµα 2.6: Συναρτήσεις και ∆ιαδικασίες Το σώµα της συνάρτησης αποτελεί την περιγραφή των εντολών που εκτελεί η συνάρτηση. Πάντα θα είναι ΜΕΤΑ την ∆ιεπαφή και οι εντολές της θα βρίσκονται ανάµεσα στις λέξεις ΑΡΧΗ και ΤΕΛΟΣ-ΣΥΝΑΡΤΗΣΗΣ Παρατηρήστε ότι υπάρχει ξεχωριστό τµήµα δεδοµένων (µπορούµε να ορίσουµε τοπικές µεταβλητές αν τις χρειαζόµαστε) Οι εντολές θα τρέξουν σειριακά (όπως στον αλγόριθµο). Η επιστρεφόµενη τιµή της συνάρτησης αποθηκεύεται στην µεταβλητή που έχει υποχρεωτικά ίδιο όνοµα µε την συνάρτηση. ∆Ε∆ΟΜΕΝΑ /* Εδώ δηλώνουµε τοπικές µεταβλητές της συνάρτησης */ ΑΡΧΗ /* Εδώ βρίσκονται οι εντολές της συνάρτησης */ ΤΕΛΟΣ-ΣΥΝΑΡΤΗΣΗΣ ΑΡΧΗ cube:=x*x*x; ΤΕΛΟΣ-ΣΥΝΑΡΤΗΣΗΣ
  • 9. A. Συναρτήσεις 2. Πως Γράφουµε Συναρτήσεις 5. Κλήση Συνάρτησης 9∆ηµήτρης Ψούνης, ΠΛΗ 10, Μάθηµα 2.6: Συναρτήσεις και ∆ιαδικασίες Αφού γράψουµε την συνάρτησή µας, έχουµε δικαίωµα να την καλέσουµε οπουδήποτε µέσα στο πρόγραµµα µας. Για να την καλέσουµε: Γράφουµε το όνοµα της και διοχετεύουµε κατάλληλα ορίσµατα που θα είναι: Είτε απευθείας συγκεκριµένες αριθµητικές τιµές. Είτε ονόµατα µεταβλητών που χρησιµοποιούµε ήδη στο πρόγραµµα µας. Προσοχή! Απλά γράφουµε τα ονόµατα των µεταβλητών ως ορίσµατα και όχι τον τύπο δεδοµένων Είτε γενικότερα υπολογιζόµενες παραστάσεις (όπως τις ορίσαµε στο µάθηµα 2 που µελετήσαµε τον τελεστή εκχώρησης) Η επιστρεφόµενη τιµή θα αντικαταστήσει το όνοµα της συνάρτησης Έτσι κρατάµε το αποτέλεσµα αποθηκεύοντας το σε µία µεταβλητή. b:=cube(a); <- Εδώ είναι η κλήση της συνάρτησης
  • 10. A. Συναρτήσεις 2. Πως Γράφουµε Συναρτήσεις 6. Άσκηση µε ορισµό συναρτήσεων 10∆ηµήτρης Ψούνης, ΠΛΗ 10, Μάθηµα 2.6: Συναρτήσεις και ∆ιαδικασίες Άσκηση: Τροποποιήστε το πρόγραµµα ορίζοντας δύο ακόµη συναρτήσεις: Την συνάρτηση square που δέχεται σαν όρισµα έναν ακέραιο και επιστρέφει το τετράγωνό του. Την συνάρτηση f που δέχεται σαν όρισµα έναν ακέραιο x και επιστρέφει το αποτέλεσµα: 2x+1 Έπειτα το κυρίως πρόγραµµα: Να διαβάζει από την είσοδο το a και να υπολογίζει το τετράγωνό της. Να διαβάζει από την είσοδο το b και να υπολογίζει τον κύβο της Να διαβάζει από την είσοδο το c και να υπολογίζει το f(c). Τελικά να τυπώνει το άθροισµα των παραπάνω αποτελεσµάτων.
  • 11. A. Συναρτήσεις 2. Πως Γράφουµε Συναρτήσεις 7. Τοπικές και Καθολικές Μεταβλητές 11∆ηµήτρης Ψούνης, ΠΛΗ 10, Μάθηµα 2.6: Συναρτήσεις και ∆ιαδικασίες Τοπικές Μεταβλητές: Είναι µεταβλητές που δηλώνονται στην αρχή µιας συνάρτησης και τις οποίες τις «βλέπει» (έχει πρόσβαση) η συνάρτηση και ΜΟΝΟΝ αυτή (όχι δηλαδή οι άλλες συναρτήσεις ή ο αλγόριθµος Προσοχή! Κάθε συνάρτηση έχει τις δικές της µεταβλητές, έτσι π.χ. µπορούν δύο συναρτήσεις να έχουν µεταβλητές µε το ίδιο όνοµα. Κάθε συνάρτηση θα «βλέπει» µόνο τις δικές της µεταβλητές. Καθολικές Μεταβλητές: Είναι µεταβλητές που δηλώνονται στην αρχή του αλγόριθµου και τις βλέπουν όλες οι συναρτήσεις και ο αλγόριθµος. Μεταγλωττίστε και εκτελέστε το πρόγραµµα της επόµενης διαφάνειας που συνοψίζει τις παρατηρήσεις για τις καθολικές και τις τοπικές µεταβλητές.. Συµβουλή: • Θεωρείται κακή προγραµµατιστική τακτική να χρησιµοποιούµε καθολικές µεταβλητές. Θα πρέπει να γνωρίζουµε πως δουλεύουν, αλλά να µην τις χρησιµοποιούµε στα προγράµµατά µας! • Στην ψευδογλώσσα εξ’ ορισµού οι µεταβλητές του αλγορίθµου είναι προσβάσιµες και στις συναρτήσεις. Αυτό δεν συνηθίζεται στις συµβατικές γλώσσες προγραµµατισµού. Για τον λόγο αυτό θα πρέπει να σκεφτόµαστε ότι τις µεταβλητές του αλγορίθµου ∆ΕΝ τις βλέπουν οι συναρτήσεις.
  • 12. A. Συναρτήσεις 2. Πως Γράφουµε Συναρτήσεις 7. Τοπικές και Καθολικές Μεταβλητές 12∆ηµήτρης Ψούνης, ΠΛΗ 10, Μάθηµα 2.6: Συναρτήσεις και ∆ιαδικασίες ΑΛΓΟΡΙΘΜΟΣ local_global ∆Ε∆ΟΜΕΝΑ x,ret:INTEGER; /* Katholiki metavliti: Tin vlepoun oloi */ ΣΥΝΑΡΤΗΣΗ f1(): INTEGER ∆ΙΕΠΑΦΗ ΕΙΣΟ∆ΟΣ ΕΞΟ∆ΟΣ f1: INTEGER; ∆Ε∆ΟΜΕΝΑ a,x:INTEGER; /* Topikes metavlites tis f1*/ ΑΡΧΗ a:=2; x:=0; /* Exoyme diplo onoma stin x. Epikratei to topiko onoma */ ΤΥΠΩΣΕ(EOLN,“f1: a=”,a,“,x=”,x); f1:=0; ΤΕΛΟΣ-ΣΥΝΑΡΤΗΣΗΣ ΣΥΝΑΡΤΗΣΗ f2(): INTEGER ∆ΙΕΠΑΦΗ ΕΙΣΟ∆ΟΣ ΕΞΟ∆ΟΣ f2: INTEGER; ∆Ε∆ΟΜΕΝΑ a:INTEGER; /* Topikes metavlites tis f2*/ ΑΡΧΗ a:=8; x:=7; /*Anaferetai sti katholiki x */ ΤΥΠΩΣΕ(EOLN,“f2: a=”,a,“,x=”,x); f2:=0; ΤΕΛΟΣ-ΣΥΝΑΡΤΗΣΗΣ ΑΡΧΗ x:=5; ΤΥΠΩΣΕ(EOLN,“ΑΛΓ: x=”,x); ret:=f1(); ΤΥΠΩΣΕ(EOLN,“ΑΛΓ: x=”,x); ret:=f2(); ΤΥΠΩΣΕ(EOLN,“ΑΛΓ: x=”,x); ΤΕΛΟΣ
  • 13. A. Συναρτήσεις 3. Πως Λειτουργούν οι Συναρτήσεις 1. Συναρτήσεις και Χώρος στη Μνήµη 13∆ηµήτρης Ψούνης, ΠΛΗ 10, Μάθηµα 2.6: Συναρτήσεις και ∆ιαδικασίες Είναι σηµαντικό να καταλάβουµε ότι κάθε συνάρτηση έχει το δικό της «χώρο» στη µνήµη, στον οποίο αποθηκεύει τις µεταβλητές της. Για παράδειγµα έστω το τµήµα κώδικα που φαίνεται στα δεξιά Όταν ξεκινάει να εκτελείται ο κώδικας υπάρχει ο χώρος αποθήκευσης µόνο για τον αλγόριθµο! Έπειτα όταν εκτελείται η εντολή αρχικοποίησης a:=5, η κατάσταση της µνήµης είναι: a b … Χώρος αλγορίθµου a b … Χώρος αλγορίθµου 5 ΑΛΓΟΡΙΘΜΟΣ functions ∆Ε∆ΟΜΕΝΑ a,b: INTEGER; ΣΥΝΑΡΤΗΣΗ f(x):INTEGER ∆ΙΕΠΑΦΗ ΕΙΣΟ∆ΟΣ x:INTEGER ΕΞΟ∆ΟΣ f:INTEGER ΑΡΧΗ f:=x*x; ΤΕΛΟΣ-ΣΥΝΑΡΤΗΣΗΣ ΑΡΧΗ a:=5; b:=f(a); ΤΕΛΟΣ
  • 14. A. Συναρτήσεις 3. Πως Λειτουργούν οι Συναρτήσεις 1. Συναρτήσεις και Χώρος στη Μνήµη 14∆ηµήτρης Ψούνης, ΠΛΗ 10, Μάθηµα 2.6: Συναρτήσεις και ∆ιαδικασίες Έπειτα καλείται η f µε όρισµα a. Προσοχή! Αυτό σηµαίνει, ότι δηµιουργείται χώρος αποθήκευσης για την f. Και στον χώρο αποθήκευσης της f, η µεταβλητή x θα πάρει την τιµή του ορίσµατος που βάλαµε, άρα η x θα πάρει την τιµή 5. Είναι σηµαντικό να καταλάβουµε ότι από εδώ και πέρα η x δεν έχει καµία σχέση µε την a. Πλέον στο σώµα της f, καλείται η εντολή f=x*x άρα η f παίρνει τιµή 25 ΑΛΓΟΡΙΘΜΟΣ functions ∆Ε∆ΟΜΕΝΑ a,b: INTEGER; ΣΥΝΑΡΤΗΣΗ f(x):INTEGER ∆ΙΕΠΑΦΗ ΕΙΣΟ∆ΟΣ x:INTEGER ΕΞΟ∆ΟΣ f:INTEGER ΑΡΧΗ f:=x*x; ΤΕΛΟΣ-ΣΥΝΑΡΤΗΣΗΣ ΑΡΧΗ a:=5; b:=f(a); ΤΕΛΟΣ a b … Χώρος αλγορίθµου 5 Χώρος της f x f 5 a b … Χώρος αλγορίθµου 5 Χώρος της f x f 5 25
  • 15. A. Συναρτήσεις 3. Πως Λειτουργούν οι Συναρτήσεις 1. Συναρτήσεις και Χώρος στη Μνήµη 15∆ηµήτρης Ψούνης, ΠΛΗ 10, Μάθηµα 2.6: Συναρτήσεις και ∆ιαδικασίες Η συνάρτηση ολοκληρώνει την λειτουργία της, έχοντας αποθηκεύσει στην f την τιµή 25 που είναι και η επιστρεφόµενη τιµή. Αυτό σηµαίνει ότι επιστρέφουµε στον αλγόριθµο! Η επιστρεφόµενη τιµή (25) αποθηκεύεται στην µεταβλητή b. Είναι σηµαντικό ότι µετά την επιστροφή τιµής ο χώρος της f, απελευθερώνεται για να µπορεί να χρησιµοποιηθεί από άλλες συναρτήσεις: ΑΛΓΟΡΙΘΜΟΣ functions ∆Ε∆ΟΜΕΝΑ a,b: INTEGER; ΣΥΝΑΡΤΗΣΗ f(x):INTEGER ∆ΙΕΠΑΦΗ ΕΙΣΟ∆ΟΣ x:INTEGER ΕΞΟ∆ΟΣ f:INTEGER ΑΡΧΗ f:=x*x; ΤΕΛΟΣ-ΣΥΝΑΡΤΗΣΗΣ ΑΡΧΗ a:=5; b:=f(a); ΤΕΛΟΣ a b … Χώρος αλγορίθµου 5 25 • Το παράδειγµα αυτό αναδεικνύει δύο σηµαντικά θέµατα! • Κάθε κλήση συνάρτησης δηµιουργεί τον δικό της χώρο στην µνήµη! • Παρόλο που όλες οι συναρτήσεις έχουν πρόσβαση στις καθολικές µεταβλητές του αλγορίθµου, είναι καλό να θεωρήσουµε (γιατί έτσι είναι στις γλώσσες προγραµµατισµού): • Ότι ο µόνος δίαυλος επικοινωνίας µε την καλούσα συνάρτηση είναι τα ορίσµατα (στην αρχή) και η επιστρεφόµενη τιµή (στο τέλος)
  • 16. B. ∆ιαδικασίες 1. Πότε Γράφουµε ∆ιαδικασίες 16∆ηµήτρης Ψούνης, ΠΛΗ 10, Μάθηµα 2.6: Συναρτήσεις και ∆ιαδικασίες Ορίζουµε διαδικασίες σε δύο (+µισή) περιπτώσεις: Επιθυµούµε να γράψουµε µια «συνάρτηση» που δεν επιστρέφει τιµή, αλλά: Π.χ: Κάνει µια συγκεκριµένη δουλειά που δεν έχει έξοδο, όπως π.χ. να τυπώνει τα περιεχόµενα ενός πίνακα στην οθόνη. Επιθυµούµε η «συνάρτηση» να έχει περισσότερες από µία εξόδους Π.χ: Θα θέλαµε να υλοποιήσουµε µία εκδοχή της δυαδικής αναζήτησης που να επιστρέφει όχι µόνο αν βρέθηκε το στοιχείο που αναζητούµε, αλλά και την θέση στο οποίο το εντοπίσαµε. Επιθυµούµε η «συνάρτηση» να επεµβαίνει στα δεδοµένα που δέχεται ως ορίσµατα και αυτή η αλλαγή να είναι ορατή και εκτός της συνάρτησης. Π.χ. επιθυµούµε να γράψουµε µια συνάρτηση που να παίρνει σαν όρισµα έναν πίνακα και να τον ταξινοµεί. Αυτή η αλλαγή στον πίνακα να είναι ορατή και στο πέρας της διαδικασίας.
  • 17. B. ∆ιαδικασίες 2. Πως Γράφουµε ∆ιαδικασίες 17∆ηµήτρης Ψούνης, ΠΛΗ 10, Μάθηµα 2.6: Συναρτήσεις και ∆ιαδικασίες Το συντακτικό των διαδικασιών είναι ίδιο µε αυτό των συναρτήσεων µε µία βασική διαφορά: Τα ορίσµατα πλέον µπορούν να είναι και εγγραφής, εκτός από ανάγνωσης-µόνο ώστε να επιτύχουν τους στόχους που θέσαµε στην προηγούµενη διαφάνεια: Η κλήση των διαδικασιών γίνεται µε την λέξη «ΥΠΟΛΟΓΙΣΕ» µπροστά από την κλήση. • Ένα όρισµα που είναι ανάγνωσης µόνο συντάσσεται ακριβώς όπως στις διαδικασίες. • Ένα τέτοιο όρισµα θα µπορούµε να το χρησιµοποιήσουµε στην διαδικασία µας, αλλά τυχόν αλλαγές στην τιµή δεν είναι εφικτές. • Η κλήση που γίνεται ονοµάζεται και κλήση-µε-τιµή (call-by-value). • Ένα όρισµα που είναι ανάγνωσης και εγγραφής συντάσσεται µε τον ίδιο τρόπο, αλλά στην δήλωση της διαδικασίας, βάζουµε µπροστά το % από το όρισµα. • Ένα τέτοιο όρισµα θα µπορούµε να το χρησιµοποιήσουµε στην διαδικασία µας, και τυχόν αλλαγές στην τιµή θα είναι ορατές έξω από την διαδικασία. • Η κλήση που γίνεται ονοµάζεται και κλήση-µε-αναφορά (call-by-reference). • Στην κλήση που γίνεται βάζουµε το % µπροστά από το όρισµα.
  • 18. Β. ∆ιαδικασίες 2. Πως Γράφουµε ∆ιαδικασίες 1. Κλήση µε Τιµή 18∆ηµήτρης Ψούνης, ΠΛΗ 10, Μάθηµα 2.6: Συναρτήσεις και ∆ιαδικασίες ΑΛΓΟΡΙΘΜΟΣ call_by_value ∆Ε∆ΟΜΕΝΑ x:INTEGER; ∆ΙΑ∆ΙΚΑΣΙΑ f(a) ∆ΙΕΠΑΦΗ ΕΙΣΟ∆ΟΣ a: INTEGER; /* Οι µεταβλητές εισόδου ορίζονται στην είσοδο */ ΕΞΟ∆ΟΣ /* ∆εν υπάρχει έξοδος */ ∆Ε∆ΟΜΕΝΑ /* Κενό Τµήµα ∆εδοµένων */ ΑΡΧΗ a:=2; /* ∆ΕΝ ∆ΟΥΛΕΥΕΙ αλλαγή τιµής σε call by value */ ΤΥΠΩΣΕ(EOLN,“f: a=”,a); ΤΕΛΟΣ-∆ΙΑ∆ΙΚΑΣΙΑΣ ΑΡΧΗ x:=0; ΤΥΠΩΣΕ(EOLN,“ΑΛΓ: x=”,x); /* Τυπώνει 0 */ ΥΠΟΛΟΓΙΣΕ f(x); /* Κλήση της διαδικασίας µε την λέξη ΥΠΟΛΟΓΙΣΕ */ ΤΥΠΩΣΕ(EOLN,“ΑΛΓ: x=”,x); /* Τυπώνει 0.Η αλλαγή της τιµής δεν διατηρήθηκε */ ΤΕΛΟΣ
  • 19. Β. ∆ιαδικασίες 2. Πως Γράφουµε ∆ιαδικασίες 2. Κλήση µε Αναφορά 19∆ηµήτρης Ψούνης, ΠΛΗ 10, Μάθηµα 2.6: Συναρτήσεις και ∆ιαδικασίες ΑΛΓΟΡΙΘΜΟΣ call_by_reference ∆Ε∆ΟΜΕΝΑ x:INTEGER; ∆ΙΑ∆ΙΚΑΣΙΑ f(%a) ∆ΙΕΠΑΦΗ ΕΙΣΟ∆ΟΣ a: INTEGER; /* Το a είναι ανάγνωσης. Το γράφουµε στην είσοδο */ ΕΞΟ∆ΟΣ a: INTEGER; /* Αλλά και εγγραφής. Το γράφουµε και στην έξοδο */ ∆Ε∆ΟΜΕΝΑ /* Κενό Τµήµα ∆εδοµένων */ ΑΡΧΗ a:=2; ΤΥΠΩΣΕ(EOLN,“f: a=”,a); /* Τυπώνει 2 */ ΤΕΛΟΣ-∆ΙΑ∆ΙΚΑΣΙΑΣ ΑΡΧΗ x:=0; ΤΥΠΩΣΕ(EOLN,“ΑΛΓ: x=”,x); /* Τυπώνει 0 */ ΥΠΟΛΟΓΙΣΕ f(%x); /* Κλήση της διαδικασίας µε την λέξη ΥΠΟΛΟΓΙΣΕ */ ΤΥΠΩΣΕ(EOLN,“ΑΛΓ: x=”,x); /* Τυπώνει 2.Η αλλαγή της τιµής διατηρήθηκε */ ΤΕΛΟΣ
  • 20. …και ένα σχόλιο ∆ηµήτρης Ψούνης, ΠΛΗ 10, Μάθηµα 2.6: Συναρτήσεις και ∆ιαδικασίες 20 Το συντακτικό των συναρτήσεων και των διαδικασιών που µελετήσαµε ήταν σχετικά απλό. Το θέµα όµως δεν είναι το συντακτικό, αλλά η αξιοποίηση των συναρτήσεων ως προγραµµατιστικά εργαλεία. Αυτό µπορεί να γίνει κατανοητό µόνο µε την επίλυση ασκήσεων. Ως εκ τούτου όλες οι εφαρµογές που ακολουθούν απαιτείται να µελετηθούν σε βάθος, διότι αναδεικνύουν σηµαντικούς προγραµµατιστικούς συλλογισµούς. Επιπλέον σταδιακά είµαστε σε θέση να χτίσουµε και τα πρώτα µας αξιόλογα προγράµµατα, όπως και θα το κάνουµε στις επόµενες εφαρµογές.
  • 21. Γ. Ασκήσεις Εφαρµογή 1: Συναρτήσεις Ελέγχου Εισόδου ∆ηµήτρης Ψούνης, ΠΛΗ 10, Μάθηµα 2.6: Συναρτήσεις και ∆ιαδικασίες Ορίστε την συνάρτηση: get_integer(start, finish): Θα λαµβάνει ως είσοδο ένα εύρος τιµών ακεραίων [start…finish] και θα διαβάζει έναν ακέραιο σε αυτό το εύρος. Θα επιστρέφει τον αριθµό που διαβάστηκε. Ορίστε τον αλγόριθµο να διαβάζει δύο ακέραιους a,b στο διάστηµα 1..10 και έναν ακέραιο n στο διάστηµα 2..5 και θα υπολογίζει την ποσότητα n*(a-b) και θα χρησιµοποιεί τη συνάρτηση που ορίσατε. 21
  • 22. Γ. Ασκήσεις Εφαρµογή 2: Μια Βιβλιοθήκη Μελέτης Αριθµών ∆ηµήτρης Ψούνης, ΠΛΗ 10, Μάθηµα 2.6: Συναρτήσεις και ∆ιαδικασίες Ορίζουµε τις συναρτήσεις: is_even(n): Θα επιστρέφει TRUE ή FALSE ανάλογα µε το αν ο αριθµός n είναι άρτιος is_odd(n): Θα επιστρέφει TRUE ή FALSE ανάλογα µε το αν ο αριθµός n είναι περιττός is_square(n): Θα επιστρέφει TRUE ή FALSE ανάλογα µε το αν ο αριθµός n είναι τετράγωνο ενός φυσικού is_cube(n): Θα επιστρέφει TRUE ή FALSE ανάλογα µε το αν ο αριθµός n είναι κύβος ενός φυσικού Ορίζουµε την main που θα ζητάει από το χρήστη είτε να εισάγει έναν αριθµό και θα εξετάζει αν ο αριθµός έχει κάποιες από αυτές τις ιδιότητες. Παράδειγµα Εκτέλεσης: 22 Εισάγετε τον αριθµό: 8 Είναι Άρτιος Είναι Κύβος Αριθµού Εισάγετε τον αριθµό: 9 Είναι Περιττός Είναι Τετράγωνο Αριθµού
  • 23. Γ. Ασκήσεις Εφαρµογή 3: Πρώτοι Αριθµοί ∆ηµήτρης Ψούνης, ΠΛΗ 10, Μάθηµα 2.6: Συναρτήσεις και ∆ιαδικασίες Ένας φυσικός αριθµός λέµε ότι είναι πρώτος αν διαιρείται (ακριβώς) µόνο µε τον εαυτό του και τη µονάδα. Το 1 θεωρείται ότι δεν είναι πρώτος. Κατασκευάστε ένα πρόγραµµα το οποίο: Θα ορίζει µία συνάρτηση µε όνοµα is_prime(n) η οποία θα δέχεται ως όρισµα έναν ακέραιο αριθµό n, θα εξετάζει αν είναι πρώτος και θα επιστρέφει TRUE αν είναι πρώτος και FALSE αν δεν είναι. Ο αλγόριθµος θα διαβάζει δύο φυσικούς (ελέγχοντας στην είσοδο να είναι >0) που θα ορίζουν την αρχή και το τέλος ενός κλειστού διαστήµατος (π.χ. a=5, b=8) και θα τυπώνει τους φυσικούς σε αυτό το διάστηµα που είναι πρώτοι. Παράδειγµα εκτέλεσης του ζητούµενου προγράµµατος: 23 Εισάγετε την αρχή του διαστήµατος: 5 Εισάγετε το πέρας του διαστήµατος: 15 Το 5 είναι πρώτος Το 7 είναι πρώτος Το 11 είναι πρώτος Το 13 είναι πρώτος
  • 24. Γ. Ασκήσεις Εφαρµογή 4: Ανταλλαγή τιµών µεταβλητών (swap) ∆ηµήτρης Ψούνης, ΠΛΗ 10, Μάθηµα 2.6: Συναρτήσεις και ∆ιαδικασίες Ορίστε µια διαδικασία µε όνοµα swap που να παίρνει δύο ορίσµατα ανάγνωσης εγγραφής και να ανταλλάσει τις τιµές τους Επειτα κατασκευάστε ένα πρόγραµµα που να κανει την ακόλουθη εκτύπωση και να χρησιµοποιεί την swap: 24 ∆ώσε το a: 5 ∆ώσε το b: 8 Τιµές: a=8, b=5 Γίνεται ανταλλαγή των τιµών Νέες Τιµές: a=5, b=8
  • 25. Γ. Ασκήσεις Εφαρµογή 5.1: ∆ιαδικασία: Ανάγνωση Πίνακα ∆ηµήτρης Ψούνης, ΠΛΗ 10, Μάθηµα 2.6: Συναρτήσεις και ∆ιαδικασίες Πολλές φορές στο προηγούµενο µάθηµα γράψαµε κώδικα που διαβάζει τα περιεχόµενα ενός πίνακα. • Μετατρέψτε σε διαδικασία τον κώδικα αυτό, µε όνοµα read_array. Θα παίρνει δύο ορίσµατα τον πίνακα και το µέγεθος του και θα διαβάζει τα στοιχεία του πίνακα. 25
  • 26. Γ. Ασκήσεις Εφαρµογή 5.2: ∆ιαδικασία: Εκτύπωση Πίνακα ∆ηµήτρης Ψούνης, ΠΛΗ 10, Μάθηµα 2.6: Συναρτήσεις και ∆ιαδικασίες Πολλές φορές στο προηγούµενο µάθηµα γράψαµε κώδικα που εκτυπώνει τα περιεχόµενα ενός πίνακα στην οθόνη. • Μετατρέψτε σε διαδικασία τον κώδικα αυτό, µε όνοµα print_array. Θα παίρνει δύο ορίσµατα τον πίνακα και το µέγεθος του και θα τυπώνει στην οθόνη τα περιεχόµενα του πίνακα. 26
  • 27. Γ. Ασκήσεις Εφαρµογή 5.3: Συνάρτηση: Ελάχιστος Πίνακα ∆ηµήτρης Ψούνης, ΠΛΗ 10, Μάθηµα 2.6: Συναρτήσεις και ∆ιαδικασίες Στο προηγούµενο µάθηµα κατασκευάσαµε έναν αλγόριθµο που υπολογίζει τον ελάχιστο ενός πίνακα. • Μετατρέψτε σε συνάρτηση τον αλγόριθµο εύρεσης ελαχίστου, µε όνοµα min_array. Θα παίρνει δύο ορίσµατα τον πίνακα και το µέγεθος του και θα επιστρέφει τον ελάχιστο αριθµό του πίνακα. 27
  • 28. Γ. Ασκήσεις Εφαρµογή 5.4: Συνάρτηση: Μέγιστος Πίνακα ∆ηµήτρης Ψούνης, ΠΛΗ 10, Μάθηµα 2.6: Συναρτήσεις και ∆ιαδικασίες Στο προηγούµενο µάθηµα κατασκευάσαµε έναν αλγόριθµο που υπολογίζει τον µέγιστο ενός πίνακα. • Μετατρέψτε σε συνάρτηση τον αλγόριθµο εύρεσης µεγίστου, µε όνοµα max_array. Θα παίρνει δύο ορίσµατα τον πίνακα και το µέγεθος του και θα επιστρέφει τον ελάχιστο αριθµό του πίνακα. 28
  • 29. Γ. Ασκήσεις Εφαρµογή 5.5: Συνάρτηση: Άθροισµα στοιχείων Πίνακα ∆ηµήτρης Ψούνης, ΠΛΗ 10, Μάθηµα 2.6: Συναρτήσεις και ∆ιαδικασίες Στο προηγούµενο µάθηµα κατασκευάσαµε έναν αλγόριθµο που υπολογίζει το άθοροισµα των στοιχείων ενός πίνακα • Μετατρέψτε σε συνάρτηση τον αλγόριθµο εύρεσης µέσου όρου, µε όνοµα mo_array. Θα παίρνει δύο ορίσµατα τον πίνακα και το µέγεθος του και θα επιστρέφει τον ελάχιστο αριθµό του πίνακα. 29
  • 30. Γ. Ασκήσεις Εφαρµογή 5.6: Συνάρτηση: Γινόµενο στοιχείων Πίνακα ∆ηµήτρης Ψούνης, ΠΛΗ 10, Μάθηµα 2.6: Συναρτήσεις και ∆ιαδικασίες Στο προηγούµενο µάθηµα κατασκευάσαµε έναν αλγόριθµο που υπολογίζει το άθοροισµα των στοιχείων ενός πίνακα • Μετατρέψτε σε συνάρτηση τον αλγόριθµο εύρεσης µέσου όρου, µε όνοµα mo_array. Θα παίρνει δύο ορίσµατα τον πίνακα και το µέγεθος του και θα επιστρέφει τον ελάχιστο αριθµό του πίνακα. 30
  • 31. Γ. Ασκήσεις Εφαρµογή 5.7: Συνάρτηση: Μέσος Όρος Στοιχείων Πίνακα ∆ηµήτρης Ψούνης, ΠΛΗ 10, Μάθηµα 2.6: Συναρτήσεις και ∆ιαδικασίες Στο προηγούµενο µάθηµα κατασκευάσαµε έναν αλγόριθµο που υπολογίζει τον µέσο όρο των στοιχείων ενός πίνακα. • Μετατρέψτε σε συνάρτηση τον αλγόριθµο εύρεσης µέσου όρου, µε όνοµα mo_array. Θα παίρνει δύο ορίσµατα τον πίνακα και το µέγεθος του και θα επιστρέφει τον ελάχιστο αριθµό του πίνακα. 31
  • 32. Γ. Ασκήσεις Εφαρµογή 5.8: Πρόγραµµα: Μελέτη Πινάκων ∆ηµήτρης Ψούνης, ΠΛΗ 10, Μάθηµα 2.6: Συναρτήσεις και ∆ιαδικασίες Κάνοντας χρήση των προηγούµενων συναρτήσεων: • Κατασκευάστε έναν αλγόριθµο που θα διαβάζει έναν πίνακα Ν θέσεων (5…10) µε αµυντικό προγραµµατισµό • Θα εµφανίζει τον πίνακα που διαβάστηκε στην οθόνη. • Θα υπολογίζει και θα εκτυπώνει διαδοχικά τον ελάχιστο, τον µέγιστο, το άθροισµα, το γινόµενο και τον µέσο όρο των στοιχείων του πίνακα. 32
  • 33. Γ. Ασκήσεις Εφαρµογή 6.1: Συνάρτηση: Σειριακή Αναζήτηση ∆ηµήτρης Ψούνης, ΠΛΗ 10, Μάθηµα 2.6: Συναρτήσεις και ∆ιαδικασίες Στο προηγούµενο µάθηµα κατασκευάσαµε τον αλγόριθµο Σειριακής Αναζήτησης που αναζητά αν ένα στοιχείο υπάρχει σε έναν πίνακα. • Μετατρέψτε σε συνάρτηση τον αλγόριθµο, µε όνοµα linear_search. Θα παίρνει τρια ορίσµατα τον πίνακα, το µέγεθος του και το προς αναζήτηση στοιχείο και θα επιστρέφει TRUE αν το στοιχείο υπάρχει στον πίνακα και FALSE αν το στοιχείο δεν υπάρχει στον πίνακα. 33
  • 34. Γ. Ασκήσεις Εφαρµογή 6.2: Συνάρτηση: ∆υαδική Αναζήτηση ∆ηµήτρης Ψούνης, ΠΛΗ 10, Μάθηµα 2.6: Συναρτήσεις και ∆ιαδικασίες Στο προηγούµενο µάθηµα κατασκευάσαµε τον αλγόριθµο ∆υαδικής Αναζήτησης που αναζητά αν ένα στοιχείο υπάρχει σε έναν πίνακα. • Μετατρέψτε σε συνάρτηση τον αλγόριθµο, µε όνοµα binary_search. Θα παίρνει τρια ορίσµατα τον πίνακα, το µέγεθος του και το προς αναζήτηση στοιχείο και θα επιστρέφει TRUE αν το στοιχείο υπάρχει στον πίνακα και FALSE αν το στοιχείο δεν υπάρχει στον πίνακα. 34
  • 35. Γ. Ασκήσεις Εφαρµογή 6.3: Πρόγραµµα: Αναζήτηση ∆ηµήτρης Ψούνης, ΠΛΗ 10, Μάθηµα 2.6: Συναρτήσεις και ∆ιαδικασίες Κάνοντας χρήση των προηγούµενων συναρτήσεων: • Κατασκευάστε έναν αλγόριθµο που θα διαβάζει έναν πίνακα Ν θέσεων (5…10) µε αµυντικό προγραµµατισµό (χρησιµοποιήστε την συνάρτηση get_integer και κατασκευάστε µια συνάρτηση για το διάβασµα των στοιχείων του πίνακα). • Θα ρωτά το χρήστη ποιον αριθµό επιθυµεί να αναζητήσει στον πίνακα και να επιλέξει τον αλγόριθµο που θα εκτελέσει (σειριακή ή δυαδική αναζήτηση). • Τελικά θα εµφανίζει αν το στοιχείο υπάρχει ή δεν υπάρχει στον πίνακα. 35
  • 36. Γ. Ασκήσεις Εφαρµογή 7.1: ∆ιαδικασία: Ταξινόµηση µε Επιλογή ∆ηµήτρης Ψούνης, ΠΛΗ 10, Μάθηµα 2.6: Συναρτήσεις και ∆ιαδικασίες Στο προηγούµενο µάθηµα κατασκευάσαµε τον αλγόριθµο Selection Sort που ταξινοµεί έναν πίνακα ακεραίων. • Μετατρέψτε σε διαδικασία τον αλγόριθµο, µε όνοµα selection_sort. Θα παίρνει δύο ορίσµατα τον πίνακα και το µέγεθος του. 36
  • 37. Γ. Ασκήσεις Εφαρµογή 7.2: ∆ιαδικασία: Ταξινόµηση µε Εισαγωγή ∆ηµήτρης Ψούνης, ΠΛΗ 10, Μάθηµα 2.6: Συναρτήσεις και ∆ιαδικασίες Στο προηγούµενο µάθηµα κατασκευάσαµε τον αλγόριθµο Insertion Sort που ταξινοµεί έναν πίνακα ακεραίων. • Μετατρέψτε σε διαδικασία τον αλγόριθµο, µε όνοµα insertion_sort. Θα παίρνει δύο ορίσµατα τον πίνακα και το µέγεθος του. 37
  • 38. Γ. Ασκήσεις Εφαρµογή 7.3: ∆ιαδικασία: Ταξινόµηση µε Εισαγωγή ∆ηµήτρης Ψούνης, ΠΛΗ 10, Μάθηµα 2.6: Συναρτήσεις και ∆ιαδικασίες Στο προηγούµενο µάθηµα κατασκευάσαµε τον αλγόριθµο Bubble Sort που ταξινοµεί έναν πίνακα ακεραίων. • Μετατρέψτε σε διαδικασία τον αλγόριθµο, µε όνοµα bubble_sort. Θα παίρνει δύο ορίσµατα τον πίνακα και το µέγεθος του. 38
  • 39. Γ. Ασκήσεις Εφαρµογή 7.4: Πρόγραµµα: Ταξινόµηση Πίνακα ∆ηµήτρης Ψούνης, ΠΛΗ 10, Μάθηµα 2.6: Συναρτήσεις και ∆ιαδικασίες Κάνοντας χρήση των προηγούµενων συναρτήσεων: • Κατασκευάστε έναν αλγόριθµο που θα διαβάζει έναν πίνακα Ν θέσεων (5…10) µε αµυντικό προγραµµατισµό (χρησιµοποιήστε την συνάρτηση get_integer και κατασκευάστε µια συνάρτηση για το διάβασµα των στοιχείων του πίνακα). • Θα ρωτά το χρήστη ποιον αλγόριθµο ταξινόµησης επιθυµεί να εκτελέσει. • Τελικά θα εµφανίζει τον ταξινοµηµένο πίνακα. 39