SlideShare ist ein Scribd-Unternehmen logo
1 von 34
Downloaden Sie, um offline zu lesen
H ΓΛΩΣΣΑ C
Μάθηµα 6:
Συναρτήσεις και Αναδροµή
∆ηµήτρης Ψούνης
Περιεχόµενα Μαθήµατος
Α. Συναρτήσεις
1. Πότε Γράφουµε Συναρτήσεις
2. Πως Γράφουµε Συναρτήσεις
1. Γενικό Σχήµα
2. Το Πρωτότυπο Συνάρτησης
3. Το Σώµα Συνάρτησης
1. Ορισµός
2. Καθολικές και Τοπικές Μεταβλητές
4. Κλήση Συνάρτησης
3. Πως Λειτουργούν οι Συναρτήσεις
1. Συναρτήσεις και Χώρος στη Μνήµη
2. Περίπλοκα Ορίσµατα
3. Παραπάνω του ενός Ορίσµατα
B. Αναδροµή
1. Κλήση Συνάρτησης από
Συνάρτηση
2. Αναδροµικές Συναρτήσεις
1. Υπολογισµός Παραγοντικού
2. Τρόπος Εκτέλεσης
3. Καταγραφή Εκτέλεσης Αναδροµικής
Συνάρτησης
2∆ηµήτρης Ψούνης, Η Γλώσσα C, Μάθηµα 6: Συναρτήσεις και Αναδροµή
Γ. Ασκήσεις
1. Συναρτήσεις Ελέγχου Εισόδου
2. Μία Βιβλιοθήκη Μελέτης Αριθµών
3. Πρώτοι Αριθµοί
4. Αναδροµή: Η ακολουθία Fibonacci
5. Αναδροµή: ΜΚ∆ µε τον Αλγόριθµο του
Ευκλείδη
A. Συναρτήσεις
1. Πότε Γράφουµε Συναρτήσεις
3∆ηµήτρης Ψούνης, Η Γλώσσα C, Μάθηµα 6: Συναρτήσεις και Αναδροµή
Η γλώσσα C είναι πιο γνωστή και ευρέως χρησιµοποιούµενη «διαδικαστική» γλωσσα.
∆ιαδικαστική σηµαίνει ότι λειτουργεί µε συναρτήσεις (διαδικασίες)!
Άρα το κύριο χαρακτηριστικό της γλώσσας είναι οι συναρτήσεις!
A. Συναρτήσεις
1. Πότε Γράφουµε Συναρτήσεις
4∆ηµήτρης Ψούνης, Η Γλώσσα C, Μάθηµα 6: Συναρτήσεις και Αναδροµή
Μία συνάρτηση της C είναι το αντίστοιχο της µαθηµατικής συνάρτησης.
Θεωρήστε για παράδειγµα την µαθηµατική συνάρτηση 5 1
Το είναι το όνοµα της συνάρτησης
Το ειναι το όρισµα της συνάρτησης
Το 5 1 είναι το σώµα της συνάρτησης
Τώρα πως χρησιµοποιούµε µια συνάρτηση.
Π.χ. µε όρισµα το 2, δηλαδή 2 (Στην C θα λέµε «καλώντας την µε όρισµα »)
Η συνάρτηση υπολογίζεται: 5 ∙ 2 1
5 ∙ 2 1 11 (Στην C θα λέµε «επιστρέφει »)
Π.χ. µε όρισµα το 15, δηλαδή το 15 (Στην C λέµε «καλώντας την µε όρισµα 15»)
Η συνάρτηση υπολογίζεται στο 5 ∙ 15 1
5 ∙ 15 1 76 (Στην C θα λέµε «επιστρέφει 76»)
A. Συναρτήσεις
1. Πότε Γράφουµε Συναρτήσεις
5∆ηµήτρης Ψούνης, Η Γλώσσα C, Μάθηµα 6: Συναρτήσεις και Αναδροµή
Πότε γράφουµε συναρτήσεις;
Συχνά όταν γράφουµε ένα µεγάλο πρόγραµµα, υπάρχουν κάποιες ενέργειες που
επαναλαµβάνονται.
Π.χ. Σε προγράµµατα της µετεωρολογίας, απαιτείται συχνά να υπολογιστούν οι
λύσεις διαφορικών εξισώσεων
Άρα στα προγράµµατα τους, έχουν κατασκευάσει γενικές συναρτήσεις που
λύνουν διαφορικές εξισώσεις!
Σε προγράµµατα που χρησιµοποιούνται στις υπηρεσίες π.χ. γραµµατειών, γίνονται
πολλές φορές οι ίδιες ενέργειες.
Έτσι χρησιµοποιούνται συναρτήσεις, για τις επαναλαµβανόµενες ενέργειες
εισαγωγής – π.χ. διαγραφής εγγραφών στα δεδοµένα που διατηρεί η υπηρεσία.
A. Συναρτήσεις
1. Πότε Γράφουµε Συναρτήσεις
6∆ηµήτρης Ψούνης, Η Γλώσσα C, Μάθηµα 6: Συναρτήσεις και Αναδροµή
Οι γενικοί κανόνες που µας καθοδηγούν στο να δηµιουργήσουµε µια συνάρτηση στο
πρόγραµµά µας είναι:
Γράφουµε συναρτήσεις όταν πολλές φορές στο πρόγραµµα µας κάνουµε τις ίδιες
ενέργειες µε τον ίδιο κώδικα.
Π.χ. Αν το πρόγραµµα µας κάνει µία εκτύπωση πολλές φορές, τότε θα ορίσουµε µια
συνάρτηση µε όνοµα π.χ. print() και καλούµε την συνάρτηση αυτή κάθε φορά
που θέλουµε να εκτυπώσουµε τον πίνακα.
Και όταν θέλουµε να απλοποιήσουµε την µορφή του προγράµµατος µας. Είναι κακό να
έχουµε έναν κώδικα-«µακαρόνι», δηλαδή µια τεράστια main που να κάνει πάρα πολλά
πράγµατα! Προτιµούµε να διασπάµε τον κώδικα σε µέρη και να καλούµε τις αντίστοιχες
συναρτήσεις που θα υλοποιούν κάθε αυτόνοµη ενέργεια.
A. Συναρτήσεις
2. Πως Γράφουµε Συναρτήσεις
7∆ηµήτρης Ψούνης, Η Γλώσσα C, Μάθηµα 6: Συναρτήσεις και Αναδροµή
Το γενικό σχήµα για την σύνταξη µιας συνάρτησης, το είδαµε στο µάθηµα 2 «Βασικά Στοιχεία
ενός προγράµµατος C»
Είδαµε ότι η συνάρτηση θα οριστεί σε 2 σηµεία:
Στην αρχή του προγράµµατος (πριν την main) θα γράψουµε το πρωτότυπο της
συνάρτησης, που αποτελεί µία απλή περιγραφή των τύπων των δεδοµένων των
ορισµάτων της και του τύπου του δεδοµένου της επιστρεφόµενης τιµής.
Αµέσως µετά τη main, ορίζουµε το σώµα της συνάρτησης, όπου περιγράφονται οι
ενέργειες που εκτελεί η συνάρτηση
Από την στιγµή που έχουµε ορίσει την συνάρτηση έχουµε το δικαίωµα να την υπολογίσουµε, µε
συγκεκριµένα ορίσµατα, οπουδήποτε µέσα στον κώδικά µας.
Η κλήση της συνάρτησης είναι να βάλουµε συγκεκριµένα ορίσµατα στην συνάρτηση και
να την καλέσουµε.
Η συνάρτηση θα κάνει τον υπολογισµό της, και θα επιστρέψει το αποτέλεσµά της!
A. Συναρτήσεις
2. Πως Γράφουµε Συναρτήσεις
1. Γενικό Σχήµα
8∆ηµήτρης Ψούνης, Η Γλώσσα C, Μάθηµα 6: Συναρτήσεις και Αναδροµή
Ας επαναλάβουµε την γενική εικόνα που θα πρέπει να έχει το πρόγραµµα µας
Χρησιµοποιούµε στο παράδειγµα αυτό µια πολύ απλή συνάρτηση που δέχεται ως ορίσµατα
δύο ακεραίους και επιστρέφει το γινόµενο τους.
.....
int ginomeno(int x, int y); <- Αυτό είναι το πρωτότυπο της συνάρτησης
main()
{
....
c=ginomeno(a,b); <- Εδώ καλούµε την συνάρτηση στην main,
.... σαν µία ακόµη εντολή του προγράµµατος
}
int ginomeno(int x, int y) <-Αυτό είναι το σώµα της συνάρτησης
{
return (x*y);
}
A. Συναρτήσεις
2. Πως Γράφουµε Συναρτήσεις
2. Το Πρωτότυπο Συνάρτησης
9∆ηµήτρης Ψούνης, Η Γλώσσα C, Μάθηµα 6: Συναρτήσεις και Αναδροµή
ΠΑΝΤΑ πριν από την main καταγράφουµε τα πρωτότυπα των συναρτήσεων που θα ορίσουµε.
Το πρωτότυπο είναι µια περιγραφή µόνο των ορισµάτων της συνάρτησης και της
επιστρεφόµενης τιµής (και όχι του υπολογισµού). Το συντακτικό είναι:
Όπως στην συνάρτηση µάς:
όπου περιγράφουµε ότι πρόκειται να ορίσουµε µια συνάρτηση µε όνοµα ginomeno: που
παίρνει δύο ακέραιες µεταβλητές ως ορίσµατα και επιστρέφει µια ακέραια µεταβλητή.
Τύπος_Επιστρεφόµενης_Τιµής ΟΝΟΜΑ_ΣΥΝΑΡΤΗΣΗΣ(Ορισµα1,Ορισµα2,...);
int ginomeno (int x, int y);
A. Συναρτήσεις
2. Πως Γράφουµε Συναρτήσεις
2. Το Πρωτότυπο Συνάρτησης
10∆ηµήτρης Ψούνης, Η Γλώσσα C, Μάθηµα 6: Συναρτήσεις και Αναδροµή
Λίγο πιο αναλυτικά για το πρωτότυπο της συνάρτησης
έχουµε:
Μπορεί να είναι οποιοσδήποτε τύπος δεδοµένων από όσους µάθαµε στο Μάθηµα 3
(π.χ. int, float, double κ.λπ.)
Μπορούµε να δώσουµε οποιοδήποτε όνοµα στην συνάρτηση µας, που σέβεται την
ονοµατολογία που ορίσαµε στο Μάθηµα 3 (π.χ. το όνοµα δεν µπορεί να ξεκινά µε
αριθµό)
Τα ορίσµατα της συνάρτησης χωρίζονται µε κόµµατα. Κάθε όρισµα έχει την µορφή
Όπου Τ∆ είναι ο τύπος δεδοµένων του ορίσµατος.
Τύπος_Επιστρεφόµενης_Τιµής ΟΝΟΜΑ_ΣΥΝΑΡΤΗΣΗΣ(Ορισµα1,Ορισµα2,...);
Τύπος_Επιστρεφόµενης_Τιµής
ΟΝΟΜΑ_ΣΥΝΑΡΤΗΣΗΣ
(Ορισµα1,Ορισµα2,...)
Τ∆ όνοµα_µεταβλητής
A. Συναρτήσεις
2. Πως Γράφουµε Συναρτήσεις
2. Το Πρωτότυπο Συνάρτησης
11∆ηµήτρης Ψούνης, Η Γλώσσα C, Μάθηµα 6: Συναρτήσεις και Αναδροµή
Μερικά Παραδείγµατα:
Είναι µια συνάρτηση µε όνοµα square που παίρνει σαν όρισµα έναν ακέραιο και θα
επιστρέφει έναν ακέραιο αριθµό
Είναι µια συνάρτηση µε όνοµα mesos_oros που παίρνει ως ορίσµατα δύο δεκαδικούς
διπλής ακρίβειας και θα επιστρέφει έναν δεκαδικό διπλής ακρίβειας.
Είναι µια συνάρτηση που παίρνει σαν όρισµα έναν ακέραιο και δεν επιστρέφει τίποτα. Η
λέξη στην επιστροφή δηλώνει ότι η συνάρτηση δεν επιστρέφει τίποτα
Είναι µια συνάρτηση που δεν παίρνει ορίσµατα και δεν επιστρέφει τίποτα! Θα εκτελεί ότι
ενέργειες οριστούν στο σώµα της!
int square(int x);
double mesos_oros(double x,double y);
void typose_minima(int elegxos);
void
void ektyposi_plaisiou();
A. Συναρτήσεις
2. Πως Γράφουµε Συναρτήσεις
2. Το Πρωτότυπο Συνάρτησης
12∆ηµήτρης Ψούνης, Η Γλώσσα C, Μάθηµα 6: Συναρτήσεις και Αναδροµή
Συµβουλές:
• Χρησιµοποιούµε κατατοπιστικά ονόµατα στις συναρτήσεις, ώστε να θυµόµαστε τι ενέργειες
εκτελεί!
• Επίσης χρησιµοποιούµε όσο το δυνατόν πιο κατατοπιστικά ονόµατα και στα ονόµατα των
ορισµάτων που δέχεται η συνάρτηση!
• Όταν δηλώνουµε το πρωτότυπο της συνάρτησης δεν ξεχνάµε να βάλουµε ερωτηµατικό στο
τέλος της δήλωσης!
A. Συναρτήσεις
2. Πως Γράφουµε Συναρτήσεις
3. Το Σώµα Συνάρτησης (Ορισµός)
13∆ηµήτρης Ψούνης, Η Γλώσσα C, Μάθηµα 6: Συναρτήσεις και Αναδροµή
Το σώµα της συνάρτησης αποτελεί την περιγραφή των εντολών που εκτελεί η συνάρτηση.
Πάντα θα είναι ΜΕΤΑ την main και οι εντολές της θα βρίσκονται ανάµεσα σε άγκιστρα
Η 1η γραµµή είναι ακριβώς ίδια µε το πρωτότυπο (αλλά δεν έχει ερωτηµατικό)
Έπειτα µέσα στα υποχρεωτικά άγκιστρα:
Γράφουµε τις τοπικές µεταβλητές που θα χρησιµοποιήσει η συνάρτηση.
Και ακολουθούν οι εντολές που θα εκτελέσει η συνάρτηση
Οι εντολές θα τρέξουν σειριακά (όπως στην main) εωσότου:
Είτε φτάσουµε στο τελευταίο άγκιστρο,
Είτε φτάσουµε σε µια εντολή return!
Τύπος_Επιστρεφόµενης_Τιµής ΟΝΟΜΑ_ΣΥΝΑΡΤΗΣΗΣ(Ορισµα1,Ορισµα2,...)
{
//Εδώ θα δηλώσουµε τις τοπικές µεταβλητές της συνάρτησης
//Εδώ θα γράψουµε τις εντολές της συνάρτησης
}
Σηµείωση:
• Εναλλακτικά η C δίνει τη δυνατότητα να γράψουµε απευθείας το σώµα της συνάρτησης πριν την
main και µόνον εκεί. ∆εν θα ακολουθήσουµε αυτήν τη προσέγγιση σε αυτές τις σηµειώσεις.
A. Συναρτήσεις
2. Πως Γράφουµε Συναρτήσεις
3. Το Σώµα Συνάρτησης (Τοπικές και Καθολικές Μεταβλητές)
14∆ηµήτρης Ψούνης, Η Γλώσσα C, Μάθηµα 6: Συναρτήσεις και Αναδροµή
Τοπικές Μεταβλητές: Είναι µεταβλητές που δηλώνονται στην αρχή µιας συνάρτησης και τις
οποίες τις «βλέπει» (έχει πρόσβαση) η συνάρτηση και ΜΟΝΟΝ αυτή (όχι δηλαδή οι άλλες
συναρτήσεις ή η main()
Προσοχή! Κάθε συνάρτηση έχει τις δικές της µεταβλητές, έτσι π.χ. µπορούν δύο
συναρτήσεις να έχουν µεταβλητές µε το ίδιο όνοµα. Κάθε συνάρτηση θα «βλέπει» µόνο τις
δικές της µεταβλητές.
Καθολικές Μεταβλητές: Είναι µεταβλητές που δηλώνονται πριν από την main και τις οποίες
βλέπουν ΟΛΕΣ οι συναρτήσεις (και η main).
∆είτε το γενικό σχήµα ενός προγράµµατος που χρησιµοποιεί τέτοιες µεταβλητές και έπειτα
µεταγλωττίστε και εκτελέστε το πρόγραµµα της επόµενης διαφάνειας.
Συµβουλή:
• Θεωρείται κακή προγραµµατιστική τακτική να χρησιµοποιούµε καθολικές µεταβλητές. Θα
πρέπει να γνωρίζουµε πως δουλεύουν, αλλά να µην τις χρησιµοποιούµε στα προγράµµατά µας!
A. Συναρτήσεις
2. Πως Γράφουµε Συναρτήσεις
3. Το Σώµα Συνάρτησης (Τοπικές και Καθολικές Μεταβλητές)
15∆ηµήτρης Ψούνης, Η Γλώσσα C, Μάθηµα 6: Συναρτήσεις και Αναδροµή
/* variables.c: Deixnei ton diaxorismo
katholikwn-topikwn metablitwn*/
#include <stdio.h>
void f1();
void f2();
int x; /* Katholiki metavliti: Tin vlepoun
oloi */
main()
{
int a=0; /*Topiki metabliti stin main */
x=5;
printf("nmain: a=%d,x=%d",a,x);
f1();
printf("nmain: a=%d,x=%d",a,x);
f2();
printf("nmain: a=%d,x=%d",a,x);
}
void f1()
{
int a=2, x=0; /*Topikes metavlites
tis f1 */
/* Exoyme diplo onoma stin x.
Epikratei to topiko onoma */
printf("nf1: a=%d,x=%d",a,x);
}
void f2()
{
int a=8; /*Topikes metavlites tis
f2 */
x=7; /* Anaferetai stin katholiki
x */
printf("nf2: a=%d,x=%d",a,x);
}
A. Συναρτήσεις
2. Πως Γράφουµε Συναρτήσεις
4. Κλήση Συνάρτησης
16∆ηµήτρης Ψούνης, Η Γλώσσα C, Μάθηµα 6: Συναρτήσεις και Αναδροµή
Αφού γράψουµε την συνάρτησή µας, έχουµε δικαίωµα να την καλέσουµε οπουδήποτε µέσα στο
πρόγραµµα µας. Για να την καλέσουµε:
Γράφουµε το όνοµα της και διοχετεύουµε κατάλληλα ορίσµατα που θα είναι:
Είτε απευθείας συγκεκριµένες αριθµητικές τιµές.
Είτε ονόµατα µεταβλητών που χρησιµοποιούµε ήδη στο πρόγραµµα µας. Προσοχή!
Απλά γράφουµε τα ονόµατα των µεταβλητών ως ορίσµατα και όχι τον τύπο
δεδοµένων
Είτε γενικότερα υπολογιζόµενες παραστάσεις (όπως τις ορίσαµε στο µάθηµα 2 που
µελετήσαµε τον τελεστή εκχώρησης)
∆είτε το παράδειγµα της επόµενης διαφάνειας και εντοπίστε στις κλήσεις των συναρτήσεων, να
«διοχετεύονται» ορίσµατα είτε αριθµητικά, είτε µε µεταβλητές που χρησιµοποιεί η «καλούσα
συνάρτηση»
A. Συναρτήσεις
2. Πως Γράφουµε Συναρτήσεις
4. Κλήση Συνάρτησης
17∆ηµήτρης Ψούνης, Η Γλώσσα C, Μάθηµα 6: Συναρτήσεις και Αναδροµή
/* orismata.c: Anadeikniei pos pairname orismata se sinartiseis */
#include <stdio.h>
int square(int x);
main()
{
int a=5;
int b=10;
int teta,tetb,sum;
teta=square(a);
tetb=square(b);
sum=teta+tetb;
printf("%d^2 + %d^2 = %d",a,b,sum);
}
int square(int x)
{
int y;
y=x*x;
return y;
}
A. Συναρτήσεις
2. Πως Γράφουµε Συναρτήσεις
4. Κλήση Συνάρτησης
18∆ηµήτρης Ψούνης, Η Γλώσσα C, Μάθηµα 6: Συναρτήσεις και Αναδροµή
Όπως φαίνεται και από το παράδειγµα, η επιστρεφόµενη τιµή της συνάρτησης γίνεται µε την
εντολή return:
H δεσµευµένη λέξη return ακολουθείται από την τιµή, η οποία µπορεί να είναι οποιαδήποτε
υπολογιζόµενη παράσταση (σταθερά, µεταβλητή, υπολογισµός, ή ακόµη και συνάρτηση)
Σηµαντικό: Η εκτέλεση της εντολής return σταµατά επιτόπου την εκτέλεση της
συνάρτησης, υπολογίζει την τιµή και επιστρέφει στην καλούσα συνάρτηση.
Ισχύει επίσης ότι σε µια συνάρτηση που επιστρέφει void, µπορούµε να σταµατήσουµε την
εκτέλεση της µε την εντολή:
return τιµή;
return;
A. Συναρτήσεις
3. Πως Λειτουργούν οι Συναρτήσεις
1. Συναρτήσεις και Χώρος στη Μνήµη
19∆ηµήτρης Ψούνης, Η Γλώσσα C, Μάθηµα 6: Συναρτήσεις και Αναδροµή
Είναι σηµαντικό να καταλάβουµε ότι κάθε συνάρτηση έχει το
δικό της «χώρο» στη µνήµη, στον οποίο αποθηκεύει τις
µεταβλητές της.
Για παράδειγµα έστω το τµήµα κώδικα που φαίνεται στα δεξιά
Όταν ξεκινάει να εκτελείται ο κώδικας υπάρχει ο χώρος
αποθήκευσης µόνο για την main!
Έπειτα όταν εκτελείται η εντολή αρχικοποίησης a=5, η
κατάσταση της µνήµης είναι:
int f(int x);
main()
{
int a=5,b;
b=f(a);
}
int f(int x)
{
int y;
y=x*x;
return y;
}
a b
…
Χώρος της main
a b
…
Χώρος της main
5
A. Συναρτήσεις
3. Πως Λειτουργούν οι Συναρτήσεις
1. Συναρτήσεις και Χώρος στη Μνήµη
20∆ηµήτρης Ψούνης, Η Γλώσσα C, Μάθηµα 6: Συναρτήσεις και Αναδροµή
Έπειτα καλείται η f µε όρισµα a.
Προσοχή! Αυτό σηµαίνει, ότι δηµιουργείται χώρος αποθήκευσης
για την f.
Και στον χώρο αποθήκευσης της f, η µεταβλητή x θα πάρει την
τιµή του ορίσµατος που βάλαµε, άρα η x θα πάρει την τιµή 5.
Είναι σηµαντικό να καταλάβουµε ότι από εδώ και πέρα η x δεν
έχει καµία σχέση µε την a. Έχει τον δικό της χώρο µνήµης και την
διαχειρίζεται η f.
Πλέον στο σώµα της f, καλείται η εντολή y=x*x άρα η y παίρνει την 25
int f(int x);
main()
{
int a=5,b;
b=f(a);
}
int f(int x)
{
int y;
y=x*x;
return y;
}
a b
…
Χώρος της main
5
Χώρος της f
x y
5
a b
…
Χώρος της main
5
Χώρος της f
x y
5 25
A. Συναρτήσεις
3. Πως Λειτουργούν οι Συναρτήσεις
1. Συναρτήσεις και Χώρος στη Μνήµη
21∆ηµήτρης Ψούνης, Η Γλώσσα C, Μάθηµα 6: Συναρτήσεις και Αναδροµή
Καλείται η εντολή return y. Αυτό σηµαίνει ότι επιστρέφουµε στην main!
Πλέον η επιστρεφόµενη τιµή (25) αποθηκεύεται στην µεταβλητή
b.
Είναι σηµαντικό ότι µετά την επιστροφή τιµής ο χώρος της f,
απελευθερώνεται για να µπορεί να χρησιµοποιηθεί από άλλες
συναρτήσεις:
int f(int x);
main()
{
int a=5,b;
b=f(a);
}
int f(int x)
{
int y;
y=x*x;
return y;
}
a b
…
Χώρος της main
5 25
• Το παράδειγµα αυτό αναδεικνύει δύο σηµαντικά θέµατα!
• Κάθε κλήση συνάρτησης δηµιουργεί τον δικό της χώρο στην µνήµη!
• Ο µόνος δίαυλος επικοινωνίας µε την καλούσα συνάρτηση είναι τα ορίσµατα (στην αρχή)
και η επιστρεφόµενη τιµή (στο τέλος)
A. Συναρτήσεις
3. Πως Λειτουργούν οι Συναρτήσεις
2. Περίπλοκα Ορίσµατα
22∆ηµήτρης Ψούνης, Η Γλώσσα C, Μάθηµα 6: Συναρτήσεις και Αναδροµή
Στην πραγµατικότητα η διοχέτευση ορίσµατος:
είναι απλά, να αρχικοποιηθεί η τιµή του ορίσµατος µε την τιµή που δίνουµε από την
καλούσα συνάρτηση!
Έτσι έχουµε το δικαίωµα να θέσουµε ως ορίσµατα οποιαδήποτε παράσταση της C
Τότε απλά θα έχουµε ότι θα υπολογιστεί η τιµή του ορίσµατος, και έπειτα η µεταβλητή του
ορίσµατος θα πάρει την κατάλληλη τιµή.
Για παράδειγµα στο τµήµα κώδικα:
Υπολογίζεται πρώτα το όρισµα (είναι η τιµή 10)
Έπειτα καλείται η f µε όρισµα την τιµή 10
Ενώ αν η f είναι η συνάρτηση που είδαµε προηγουµένως
τότε έχουµε δικαίωµα να γράψουµε ακόµη και το εξής:
Όπου υπολογίζεται πρώτα το εσωτερικό f(a) (υπολογίζεται σε 25) και µετά υπολογίζεται το
f(25) άρα αποθηκεύεται στο b η τιµή 625.
int a=5;
int b;
b=f(2*a);
int a=5;
int b;
b=f(f(a));
A. Συναρτήσεις
3. Πως Λειτουργούν οι Συναρτήσεις
3. Παραπάνω του ενός ορίσµατα
23∆ηµήτρης Ψούνης, Η Γλώσσα C, Μάθηµα 6: Συναρτήσεις και Αναδροµή
Αντίστοιχοι είναι οι κανόνες όταν έχουµε µια συνάρτηση που δέχεται πολλά ορίσµατα. Πχ. Αν
έχουµε ορίσει την συνάρτηση:
Και την καλέσουµε ως εξής:
Τότε η τιµή που θέσαµε πρώτη αποθηκεύεται στην µεταβλητή του 1ου ορίσµατος (δηλαδή
το x παίρνει την τιµή 1)
Η τιµή που θέσαµε δεύτερη αποθηκεύεται στην µεταβλητή του 2ου ορίσµατος (δηλαδή το y
παίρνει την τιµή 5)
Η τιµή που θέσαµε τρίτη αποθηκεύεται στην µεταβλητή του 3ου ορίσµατος (δηλαδή το z
παίρνει την τιµή 10)
void func(int x, int y, int z)
func(1,5,10)
Β. Αναδροµή
1. Κλήση Συνάρτησης µέσα σε Συνάρτηση
24∆ηµήτρης Ψούνης, Η Γλώσσα C, Μάθηµα 6: Συναρτήσεις και Αναδροµή
Όπως είδαµε αφού ορίσουµε µια συνάρτηση µπορούµε να την καλέσουµε οπουδήποτε στον
κώδικα.
Άρα µπορούµε να καλέσουµε µια συνάρτηση που έχουµε ορίσει µέσα σε µια άλλη συνάρτηση!
Π.χ. ας ορίσουµε µια συνάρτηση που υπολογίζει την f(x)=2x2
Μπορούµε να ορίσουµε την συνάρτηση g(x)=2x2+x+1 ως εξής:
int f(int x)
{
int y;
y=2*x*x;
return y;
}
int g(int x)
{
int y;
y=f(x)+x+1;
return y;
}
Β. Αναδροµή
2. Αναδροµικές Συναρτήσεις
25∆ηµήτρης Ψούνης, Η Γλώσσα C, Μάθηµα 6: Συναρτήσεις και Αναδροµή
Ο όρος αναδροµή αναφέρεται σε µια συνάρτηση που καλεί τον εαυτό της!
Αυτό είναι απόλυτα νόµιµο και στην C, αφού απλά καλούµε µια συνάρτηση µέσα σε µια
συνάρτηση!
Άρα µια συνάρτηση που στο σώµα της καλεί τον εαυτό της, θα ονοµάζεται αναδροµική
συνάρτηση.
Η δηµιουργία µιας αναδροµικής συνάρτησης είναι πολύ χρήσιµη, ιδίως όταν κατασκευάζουµε
πράγµατα που ορίζονται αναδροµικά!
Ας δούµε ένα παράδειγµα:
Το παραγοντικό του φυσικού αριθµού 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
Β. Αναδροµή
2. Αναδροµικές Συναρτήσεις
1. Υπολογισµός Παραγοντικού
26∆ηµήτρης Ψούνης, Η Γλώσσα C, Μάθηµα 6: Συναρτήσεις και Αναδροµή
/* factorial.c: Ypologizei to paragontiko
enos fysikoy */
#include <stdio.h>
int factorial(int n);
main()
{
int x;
int res;
printf("Dwste ton fysiko: ");
scanf("%d",&x);
res=factorial(x);
printf("%d!=%d",x,res);
}
int factorial(int n)
{
int y;
if (n==1)
return 1;
else
{
y=factorial(n-1);
return n*y;
}
}
Β. Αναδροµή
2. Αναδροµικές Συναρτήσεις
1. Υπολογισµός Παραγοντικού
27∆ηµήτρης Ψούνης, Η Γλώσσα C, Μάθηµα 6: Συναρτήσεις και Αναδροµή
Στον υπολογισµό µίας αναδροµικής συνάρτησης, κάθε αναδροµική κλήση έχει και το δικό της
χώρο στη µνήµη.
Ας δούµε πως τρέχει η κλήση factorial(3):
Καλεί την factorial(2):
Καλεί την factorial(1):
int fact (int n)
{
int y;
if (n==1) return 1;
else{
y=factorial(n-1);
return 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
Β. Αναδροµή
2. Αναδροµικές Συναρτήσεις
1. Υπολογισµός Παραγοντικού
28∆ηµήτρης Ψούνης, Η Γλώσσα C, Μάθηµα 6: Συναρτήσεις και Αναδροµή
H factorial(1) επιστρέφει 1:
Η factorial(2) αποθηκεύει το 1 στο y
έπειτα επιστρέφει 2*1.
Η factorial(2) αποθηκεύει το 1 στο y
έπειτα επιστρέφει 3*2
int fact (int n)
{
int y;
if (n==1) return 1;
else{
y=factorial(n-1);
return 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
Β. Αναδροµή
2. Αναδροµικές Συναρτήσεις
1. Υπολογισµός Παραγοντικού
29∆ηµήτρης Ψούνης, Η Γλώσσα C, Μάθηµα 6: Συναρτήσεις και Αναδροµή
Για να απεικονίσουµε τις αναδροµικές κλήσεις που γίνονται προτιµάται µία παράσταση όπου
κάθε αναδροµική κλήση στοιχίζεται λίγο δεξιότερα.
Με τον τρόπο αυτό µπορούµε να παρακολουθήσουµε αρκετά ικανοποιητικά την εκτέλεση ενός
αναδροµικού κώδικα:
int fact (int n)
{
int y;
if (n==1) return 1;
else{
y=factorial(n-1);
return n*y;
}
}
ΚΛΗΣΗ fact(3)
(3==1) ΟΧΙ
y=fact(2)
ΚΛΗΣΗ fact(2)
(2==1) ΟΧΙ
y=fact(1)
ΚΛΗΣΗ fact(1)
(1==1) ΝΑΙ
return 1
y=1
return 2*1=2
y=2
return 3*2=6
Γ. Ασκήσεις
Εφαρµογή 1 (Συναρτήσεις Ελέγχου Εισόδου)
30∆ηµήτρης Ψούνης, Η Γλώσσα C, Μάθηµα 6: Συναρτήσεις και Αναδροµή
Ορίστε την συνάρτηση:
int get_integer(int start, int finish): Θα λαµβάνει ως είσοδο ένα εύρος
τιµών ακεραίων [start…finish] και θα διαβάζει έναν ακέραιο σε αυτό το εύρος. Θα
επιστρέφει τον αριθµό που διαβάστηκε.
Ορίστε τη συνάρτηση main να διαβάζει δύο ακέραιους a,b στο διάστηµα 1..10 και έναν
ακέραιο n στο διάστηµα 2..5 και θα υπολογίζει την ποσότητα n*(a-b) και θα χρησιµοποιεί τη
συνάρτηση που ορίσαµε.
Γ. Ασκήσεις
Εφαρµογή 2 (Μια Βιβλιοθήκη Μελέτης Αριθµών)
31∆ηµήτρης Ψούνης, Η Γλώσσα C, Μάθηµα 6: Συναρτήσεις και Αναδροµή
Ορίζουµε τις συναρτήσεις:
int is_even(int n): Θα επιστρέφει 0 ή 1 ανάλογα µε το αν ο αριθµός είναι άρτιος
int is_odd(int n): Θα επιστρέφει 0 ή 1 ανάλογα µε το αν ο αριθµός είναι περιττός
int is_square(int n): Θα επιστρέφει 0 ή 1 ανάλογα µε το αν ο αριθµός είναι
τετράγωνο ενός φυσικού
int is_cube(int n): Θα επιστρέφει 0 ή 1 ανάλογα µε το αν ο αριθµός είναι κύβος
ενός φυσικού
Ορίζουµε την main που θα ζητάει από το χρήστη είτε να εισάγει έναν αριθµό και θα εξετάζει αν
ο αριθµός έχει κάποιες από αυτές τις ιδιότητες.
Παράδειγµα Εκτέλεσης:
Eisagete ton arithmo: 8
Einai Artios
Einai Kivos Arithmou
Eisagete ton arithmo: 9
Einai Perittos
Einai Tetragono Arithmou
Γ. Ασκήσεις
Εφαρµογή 3 (Πρώτοι Αριθµοί)
32∆ηµήτρης Ψούνης, Η Γλώσσα C, Μάθηµα 6: Συναρτήσεις και Αναδροµή
Ένας φυσικός αριθµός λέµε ότι είναι πρώτος αν διαιρείται (ακριβώς) µόνο µε τον εαυτό του και
τη µονάδα. Το 1 θεωρείται ότι δεν είναι πρώτος.
Κατασκευάστε ένα πρόγραµµα το οποίο:
Θα ορίζει µία συνάρτηση µε όνοµα isprime() η οποία θα δέχεται ως όρισµα έναν ακέραιο
αριθµό, θα εξετάζει αν είναι πρώτος και θα επιστρέφει 1 αν είναι πρώτος και 0 αν δεν είναι.
Η main θα διαβάζει δύο φυσικούς (ελέγχοντας στην είσοδο να είναι >0) που θα ορίζουν την
αρχή και το τέλος ενός κλειστού διαστήµατος (π.χ. a=5, b=8) και θα τυπώνει τους
φυσικούς σε αυτό το διάστηµα που είναι πρώτοι.
Παράδειγµα εκτέλεσης του ζητούµενου προγράµµατος:
Eisagete tin arxi tou diastimatos: 5
Eisagete to peras tou diastimatos: 15
To 5 einai prwtos
To 7 einai prwtos
To 11 einai prwtos
To 13 einai prwtos
Γ. Ασκήσεις
Εφαρµογή 4 (Αναδροµή: Η ακολουθία FIbonacci)
33∆ηµήτρης Ψούνης, Η Γλώσσα C, Μάθηµα 6: Συναρτήσεις και Αναδροµή
Η ακολουθία fibonacci ορίζεται ως:
Fn=Fn-1+Fn-2, για n>2
F2=1
F1=1
Για παράδειγµα έχουµε F1=1,F2=1,F3=2,F4=3,F5=5,F6=8 κ.ο.κ.
Ορίστε την συνάρτηση int fibonacci(int n) που δέχεται ως όρισµα έναν φυσικό και επιστρέφει το
n-οστό fibonacci.
Έπειτα κατασκευάστε µία main που διαβάζει από τον χρήστη έναν ακέραιο και υπολογίζει και
επιστρέφει τον αριθµό fibonacci του αριθµού που εισήγαγε ο χρήστης.
Γ. Ασκήσεις
Εφαρµογή 5 (Αναδροµή: ΜΚ∆ µε τον αλγόριθµο του Ευκλείδη)
34∆ηµήτρης Ψούνης, Η Γλώσσα C, Μάθηµα 6: Συναρτήσεις και Αναδροµή
O αλγόριθµος του Ευκλείδη για την εύρεση του Μέγιστου Κοινού ∆ιαιρέτη δύο (φυσικών)
αριθµών:
Ξεκινά µε ένα ζεύγος φυσικών και σχηµατίζει ένα νέο ζευγάρι µε τον µικρότερο αριθµό και
την διαφορά του µικρότερου από τον µεγαλύτερο αριθµό.
Η διαδικασία επαναλαµβάνεται εωσότου οι αριθµοί γίνουν ίσοι. Ο αριθµός αυτός είναι ο
ΜΚ∆ των αρχικών αριθµών.
Μαθηµατικά ο ΜΚ∆(a,b) όπου a,b είναι φυσικοί:
Είναι ίσο µε a, αν a=b
Είναι ίσο µε ΜΚ∆(a,b-a), αν a<b
Είναι ίσο µε ΜΚ∆(a-b,b), αλλιώς
Κατασκευάστε ένα πρόγραµµα σε γλώσσα C που θα υλοποιεί µε µία αναδροµική συνάρτηση
τον υπολογισµό του ΜΚ∆ και µία συνάρτηση main που θα ζητάει από το χρήστη να εισάγει τους
δύο φυσικούς, θα κάνει κατάλληλη κλήση της συνάρτησης και θα τυπώνει τον ΜΚ∆ των
αριθµών.

Weitere ähnliche Inhalte

Was ist angesagt?

ΓΛΩΣΣΑ C - ΜΑΘΗΜΑ 4 - ΤΕΛΕΣΤΕΣ και η ΔΟΜΗ ΕΛΕΓΧΟΥ
ΓΛΩΣΣΑ C - ΜΑΘΗΜΑ 4 - ΤΕΛΕΣΤΕΣ και η ΔΟΜΗ ΕΛΕΓΧΟΥΓΛΩΣΣΑ C - ΜΑΘΗΜΑ 4 - ΤΕΛΕΣΤΕΣ και η ΔΟΜΗ ΕΛΕΓΧΟΥ
ΓΛΩΣΣΑ C - ΜΑΘΗΜΑ 4 - ΤΕΛΕΣΤΕΣ και η ΔΟΜΗ ΕΛΕΓΧΟΥDimitris Psounis
 
ΑΛΓΟΡΙΘΜΟΙ ΣΕ C - ΜΑΘΗΜΑ 1 - ΔΙΑΠΕΡΑΣΗ ΠΙΝΑΚΑ
ΑΛΓΟΡΙΘΜΟΙ ΣΕ C - ΜΑΘΗΜΑ 1 - ΔΙΑΠΕΡΑΣΗ ΠΙΝΑΚΑΑΛΓΟΡΙΘΜΟΙ ΣΕ C - ΜΑΘΗΜΑ 1 - ΔΙΑΠΕΡΑΣΗ ΠΙΝΑΚΑ
ΑΛΓΟΡΙΘΜΟΙ ΣΕ C - ΜΑΘΗΜΑ 1 - ΔΙΑΠΕΡΑΣΗ ΠΙΝΑΚΑDimitris Psounis
 
Η ΓΛΩΣΣΑ C - ΜΑΘΗΜΑ 7 - ΠΙΝΑΚΕΣ
Η ΓΛΩΣΣΑ C - ΜΑΘΗΜΑ 7 - ΠΙΝΑΚΕΣΗ ΓΛΩΣΣΑ C - ΜΑΘΗΜΑ 7 - ΠΙΝΑΚΕΣ
Η ΓΛΩΣΣΑ C - ΜΑΘΗΜΑ 7 - ΠΙΝΑΚΕΣDimitris Psounis
 
ΓΛΩΣΣΑ C - ΜΑΘΗΜΑ 17 - ΕΠΙΚΟΙΝΩΝΙΑ ΜΕ ΤΟ ΛΕΙΤΟΥΡΓΙΚΟ ΣΥΣΤΗΜΑ
ΓΛΩΣΣΑ C - ΜΑΘΗΜΑ 17 - ΕΠΙΚΟΙΝΩΝΙΑ ΜΕ ΤΟ ΛΕΙΤΟΥΡΓΙΚΟ ΣΥΣΤΗΜΑΓΛΩΣΣΑ C - ΜΑΘΗΜΑ 17 - ΕΠΙΚΟΙΝΩΝΙΑ ΜΕ ΤΟ ΛΕΙΤΟΥΡΓΙΚΟ ΣΥΣΤΗΜΑ
ΓΛΩΣΣΑ C - ΜΑΘΗΜΑ 17 - ΕΠΙΚΟΙΝΩΝΙΑ ΜΕ ΤΟ ΛΕΙΤΟΥΡΓΙΚΟ ΣΥΣΤΗΜΑDimitris Psounis
 
ΓΛΩΣΣΑ C - ΜΑΘΗΜΑ 10
ΓΛΩΣΣΑ C - ΜΑΘΗΜΑ 10 ΓΛΩΣΣΑ C - ΜΑΘΗΜΑ 10
ΓΛΩΣΣΑ C - ΜΑΘΗΜΑ 10 Dimitris Psounis
 
ΓΛΩΣΣΑ C - ΜΑΘΗΜΑ 18
ΓΛΩΣΣΑ C - ΜΑΘΗΜΑ 18 ΓΛΩΣΣΑ C - ΜΑΘΗΜΑ 18
ΓΛΩΣΣΑ C - ΜΑΘΗΜΑ 18 Dimitris Psounis
 
ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ ΣΕ C - ΜΑΘΗΜΑ 2
ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ ΣΕ C - ΜΑΘΗΜΑ 2 ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ ΣΕ C - ΜΑΘΗΜΑ 2
ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ ΣΕ C - ΜΑΘΗΜΑ 2 Dimitris Psounis
 
Η ΓΛΩΣΣΑ C - ΜΑΘΗΜΑ 14 - ΕΜΒΕΛΕΙΑ ΜΕΤΑΒΛΗΤΩΝ
Η ΓΛΩΣΣΑ C - ΜΑΘΗΜΑ 14 - ΕΜΒΕΛΕΙΑ ΜΕΤΑΒΛΗΤΩΝΗ ΓΛΩΣΣΑ C - ΜΑΘΗΜΑ 14 - ΕΜΒΕΛΕΙΑ ΜΕΤΑΒΛΗΤΩΝ
Η ΓΛΩΣΣΑ C - ΜΑΘΗΜΑ 14 - ΕΜΒΕΛΕΙΑ ΜΕΤΑΒΛΗΤΩΝDimitris Psounis
 
ΠΛΗ10 ΜΑΘΗΜΑ 2.6
ΠΛΗ10 ΜΑΘΗΜΑ 2.6 ΠΛΗ10 ΜΑΘΗΜΑ 2.6
ΠΛΗ10 ΜΑΘΗΜΑ 2.6 Dimitris Psounis
 
ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ ΣΕ C - ΜΑΘΗΜΑ 7
ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ ΣΕ C - ΜΑΘΗΜΑ 7ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ ΣΕ C - ΜΑΘΗΜΑ 7
ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ ΣΕ C - ΜΑΘΗΜΑ 7Dimitris Psounis
 
Η ΓΛΩΣΣΑ C - ΜΑΘΗΜΑ 16 - ΣΥΝΑΡΤΗΣΕΙΣ ΕΞΟΔΟΥ (ΕΚΤΥΠΩΣΗ)
Η ΓΛΩΣΣΑ C - ΜΑΘΗΜΑ 16 - ΣΥΝΑΡΤΗΣΕΙΣ ΕΞΟΔΟΥ (ΕΚΤΥΠΩΣΗ)Η ΓΛΩΣΣΑ C - ΜΑΘΗΜΑ 16 - ΣΥΝΑΡΤΗΣΕΙΣ ΕΞΟΔΟΥ (ΕΚΤΥΠΩΣΗ)
Η ΓΛΩΣΣΑ C - ΜΑΘΗΜΑ 16 - ΣΥΝΑΡΤΗΣΕΙΣ ΕΞΟΔΟΥ (ΕΚΤΥΠΩΣΗ)Dimitris Psounis
 
Η Γλώσσα C - Μάθημα 2
Η Γλώσσα C - Μάθημα 2Η Γλώσσα C - Μάθημα 2
Η Γλώσσα C - Μάθημα 2Dimitris Psounis
 
ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ ΣΕ C - ΜΑΘΗΜΑ 6
ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ ΣΕ C - ΜΑΘΗΜΑ 6 ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ ΣΕ C - ΜΑΘΗΜΑ 6
ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ ΣΕ C - ΜΑΘΗΜΑ 6 Dimitris Psounis
 
Η Γλώσσα C - Μάθημα 1
Η Γλώσσα C - Μάθημα 1Η Γλώσσα C - Μάθημα 1
Η Γλώσσα C - Μάθημα 1Dimitris Psounis
 
ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ ΣΕ C - ΜΑΘΗΜΑ 8
ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ ΣΕ C - ΜΑΘΗΜΑ 8ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ ΣΕ C - ΜΑΘΗΜΑ 8
ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ ΣΕ C - ΜΑΘΗΜΑ 8Dimitris Psounis
 
ΠΛΗ10 ΜΑΘΗΜΑ 2.1
ΠΛΗ10 ΜΑΘΗΜΑ 2.1 ΠΛΗ10 ΜΑΘΗΜΑ 2.1
ΠΛΗ10 ΜΑΘΗΜΑ 2.1 Dimitris Psounis
 
ΑΛΓΟΡΙΘΜΟΙ ΣΕ C - ΜΑΘΗΜΑ 2 - ΑΝΑΖΗΤΗΣΗ ΣΤΟΙΧΕΙΟΥ ΣΕ ΠΙΝΑΚΑ
ΑΛΓΟΡΙΘΜΟΙ ΣΕ C - ΜΑΘΗΜΑ 2 - ΑΝΑΖΗΤΗΣΗ ΣΤΟΙΧΕΙΟΥ ΣΕ ΠΙΝΑΚΑ ΑΛΓΟΡΙΘΜΟΙ ΣΕ C - ΜΑΘΗΜΑ 2 - ΑΝΑΖΗΤΗΣΗ ΣΤΟΙΧΕΙΟΥ ΣΕ ΠΙΝΑΚΑ
ΑΛΓΟΡΙΘΜΟΙ ΣΕ C - ΜΑΘΗΜΑ 2 - ΑΝΑΖΗΤΗΣΗ ΣΤΟΙΧΕΙΟΥ ΣΕ ΠΙΝΑΚΑ Dimitris Psounis
 
ΑΛΓΟΡΙΘΜΟΙ ΣΕ C - ΜΑΘΗΜΑ 3
ΑΛΓΟΡΙΘΜΟΙ ΣΕ C - ΜΑΘΗΜΑ 3ΑΛΓΟΡΙΘΜΟΙ ΣΕ C - ΜΑΘΗΜΑ 3
ΑΛΓΟΡΙΘΜΟΙ ΣΕ C - ΜΑΘΗΜΑ 3Dimitris Psounis
 

Was ist angesagt? (20)

ΓΛΩΣΣΑ C - ΜΑΘΗΜΑ 4 - ΤΕΛΕΣΤΕΣ και η ΔΟΜΗ ΕΛΕΓΧΟΥ
ΓΛΩΣΣΑ C - ΜΑΘΗΜΑ 4 - ΤΕΛΕΣΤΕΣ και η ΔΟΜΗ ΕΛΕΓΧΟΥΓΛΩΣΣΑ C - ΜΑΘΗΜΑ 4 - ΤΕΛΕΣΤΕΣ και η ΔΟΜΗ ΕΛΕΓΧΟΥ
ΓΛΩΣΣΑ C - ΜΑΘΗΜΑ 4 - ΤΕΛΕΣΤΕΣ και η ΔΟΜΗ ΕΛΕΓΧΟΥ
 
ΑΛΓΟΡΙΘΜΟΙ ΣΕ C - ΜΑΘΗΜΑ 1 - ΔΙΑΠΕΡΑΣΗ ΠΙΝΑΚΑ
ΑΛΓΟΡΙΘΜΟΙ ΣΕ C - ΜΑΘΗΜΑ 1 - ΔΙΑΠΕΡΑΣΗ ΠΙΝΑΚΑΑΛΓΟΡΙΘΜΟΙ ΣΕ C - ΜΑΘΗΜΑ 1 - ΔΙΑΠΕΡΑΣΗ ΠΙΝΑΚΑ
ΑΛΓΟΡΙΘΜΟΙ ΣΕ C - ΜΑΘΗΜΑ 1 - ΔΙΑΠΕΡΑΣΗ ΠΙΝΑΚΑ
 
Η ΓΛΩΣΣΑ C - ΜΑΘΗΜΑ 7 - ΠΙΝΑΚΕΣ
Η ΓΛΩΣΣΑ C - ΜΑΘΗΜΑ 7 - ΠΙΝΑΚΕΣΗ ΓΛΩΣΣΑ C - ΜΑΘΗΜΑ 7 - ΠΙΝΑΚΕΣ
Η ΓΛΩΣΣΑ C - ΜΑΘΗΜΑ 7 - ΠΙΝΑΚΕΣ
 
ΓΛΩΣΣΑ C - ΜΑΘΗΜΑ 17 - ΕΠΙΚΟΙΝΩΝΙΑ ΜΕ ΤΟ ΛΕΙΤΟΥΡΓΙΚΟ ΣΥΣΤΗΜΑ
ΓΛΩΣΣΑ C - ΜΑΘΗΜΑ 17 - ΕΠΙΚΟΙΝΩΝΙΑ ΜΕ ΤΟ ΛΕΙΤΟΥΡΓΙΚΟ ΣΥΣΤΗΜΑΓΛΩΣΣΑ C - ΜΑΘΗΜΑ 17 - ΕΠΙΚΟΙΝΩΝΙΑ ΜΕ ΤΟ ΛΕΙΤΟΥΡΓΙΚΟ ΣΥΣΤΗΜΑ
ΓΛΩΣΣΑ C - ΜΑΘΗΜΑ 17 - ΕΠΙΚΟΙΝΩΝΙΑ ΜΕ ΤΟ ΛΕΙΤΟΥΡΓΙΚΟ ΣΥΣΤΗΜΑ
 
ΓΛΩΣΣΑ C - ΜΑΘΗΜΑ 10
ΓΛΩΣΣΑ C - ΜΑΘΗΜΑ 10 ΓΛΩΣΣΑ C - ΜΑΘΗΜΑ 10
ΓΛΩΣΣΑ C - ΜΑΘΗΜΑ 10
 
ΓΛΩΣΣΑ C - ΜΑΘΗΜΑ 18
ΓΛΩΣΣΑ C - ΜΑΘΗΜΑ 18 ΓΛΩΣΣΑ C - ΜΑΘΗΜΑ 18
ΓΛΩΣΣΑ C - ΜΑΘΗΜΑ 18
 
ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ ΣΕ C - ΜΑΘΗΜΑ 2
ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ ΣΕ C - ΜΑΘΗΜΑ 2 ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ ΣΕ C - ΜΑΘΗΜΑ 2
ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ ΣΕ C - ΜΑΘΗΜΑ 2
 
Η ΓΛΩΣΣΑ C - ΜΑΘΗΜΑ 14 - ΕΜΒΕΛΕΙΑ ΜΕΤΑΒΛΗΤΩΝ
Η ΓΛΩΣΣΑ C - ΜΑΘΗΜΑ 14 - ΕΜΒΕΛΕΙΑ ΜΕΤΑΒΛΗΤΩΝΗ ΓΛΩΣΣΑ C - ΜΑΘΗΜΑ 14 - ΕΜΒΕΛΕΙΑ ΜΕΤΑΒΛΗΤΩΝ
Η ΓΛΩΣΣΑ C - ΜΑΘΗΜΑ 14 - ΕΜΒΕΛΕΙΑ ΜΕΤΑΒΛΗΤΩΝ
 
ΠΛΗ10 ΜΑΘΗΜΑ 2.6
ΠΛΗ10 ΜΑΘΗΜΑ 2.6 ΠΛΗ10 ΜΑΘΗΜΑ 2.6
ΠΛΗ10 ΜΑΘΗΜΑ 2.6
 
ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ ΣΕ C - ΜΑΘΗΜΑ 7
ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ ΣΕ C - ΜΑΘΗΜΑ 7ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ ΣΕ C - ΜΑΘΗΜΑ 7
ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ ΣΕ C - ΜΑΘΗΜΑ 7
 
Η ΓΛΩΣΣΑ C - ΜΑΘΗΜΑ 16 - ΣΥΝΑΡΤΗΣΕΙΣ ΕΞΟΔΟΥ (ΕΚΤΥΠΩΣΗ)
Η ΓΛΩΣΣΑ C - ΜΑΘΗΜΑ 16 - ΣΥΝΑΡΤΗΣΕΙΣ ΕΞΟΔΟΥ (ΕΚΤΥΠΩΣΗ)Η ΓΛΩΣΣΑ C - ΜΑΘΗΜΑ 16 - ΣΥΝΑΡΤΗΣΕΙΣ ΕΞΟΔΟΥ (ΕΚΤΥΠΩΣΗ)
Η ΓΛΩΣΣΑ C - ΜΑΘΗΜΑ 16 - ΣΥΝΑΡΤΗΣΕΙΣ ΕΞΟΔΟΥ (ΕΚΤΥΠΩΣΗ)
 
Η Γλώσσα C - Μάθημα 2
Η Γλώσσα C - Μάθημα 2Η Γλώσσα C - Μάθημα 2
Η Γλώσσα C - Μάθημα 2
 
ΠΛΗ10 ΜΑΘΗΜΑ 2.8
ΠΛΗ10 ΜΑΘΗΜΑ 2.8ΠΛΗ10 ΜΑΘΗΜΑ 2.8
ΠΛΗ10 ΜΑΘΗΜΑ 2.8
 
ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ ΣΕ C - ΜΑΘΗΜΑ 6
ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ ΣΕ C - ΜΑΘΗΜΑ 6 ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ ΣΕ C - ΜΑΘΗΜΑ 6
ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ ΣΕ C - ΜΑΘΗΜΑ 6
 
Η Γλώσσα C - Μάθημα 1
Η Γλώσσα C - Μάθημα 1Η Γλώσσα C - Μάθημα 1
Η Γλώσσα C - Μάθημα 1
 
ΠΛΗ10 ΜΑΘΗΜΑ 1.5
ΠΛΗ10 ΜΑΘΗΜΑ 1.5ΠΛΗ10 ΜΑΘΗΜΑ 1.5
ΠΛΗ10 ΜΑΘΗΜΑ 1.5
 
ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ ΣΕ C - ΜΑΘΗΜΑ 8
ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ ΣΕ C - ΜΑΘΗΜΑ 8ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ ΣΕ C - ΜΑΘΗΜΑ 8
ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ ΣΕ C - ΜΑΘΗΜΑ 8
 
ΠΛΗ10 ΜΑΘΗΜΑ 2.1
ΠΛΗ10 ΜΑΘΗΜΑ 2.1 ΠΛΗ10 ΜΑΘΗΜΑ 2.1
ΠΛΗ10 ΜΑΘΗΜΑ 2.1
 
ΑΛΓΟΡΙΘΜΟΙ ΣΕ C - ΜΑΘΗΜΑ 2 - ΑΝΑΖΗΤΗΣΗ ΣΤΟΙΧΕΙΟΥ ΣΕ ΠΙΝΑΚΑ
ΑΛΓΟΡΙΘΜΟΙ ΣΕ C - ΜΑΘΗΜΑ 2 - ΑΝΑΖΗΤΗΣΗ ΣΤΟΙΧΕΙΟΥ ΣΕ ΠΙΝΑΚΑ ΑΛΓΟΡΙΘΜΟΙ ΣΕ C - ΜΑΘΗΜΑ 2 - ΑΝΑΖΗΤΗΣΗ ΣΤΟΙΧΕΙΟΥ ΣΕ ΠΙΝΑΚΑ
ΑΛΓΟΡΙΘΜΟΙ ΣΕ C - ΜΑΘΗΜΑ 2 - ΑΝΑΖΗΤΗΣΗ ΣΤΟΙΧΕΙΟΥ ΣΕ ΠΙΝΑΚΑ
 
ΑΛΓΟΡΙΘΜΟΙ ΣΕ C - ΜΑΘΗΜΑ 3
ΑΛΓΟΡΙΘΜΟΙ ΣΕ C - ΜΑΘΗΜΑ 3ΑΛΓΟΡΙΘΜΟΙ ΣΕ C - ΜΑΘΗΜΑ 3
ΑΛΓΟΡΙΘΜΟΙ ΣΕ C - ΜΑΘΗΜΑ 3
 

Ähnlich wie ΓΛΩΣΣΑ C - ΜΑΘΗΜΑ 6 (ΕΚΤΥΠΩΣΗ)

ΑΕΠΠ: 3ο Επαναληπτικό Τεστ
ΑΕΠΠ: 3ο Επαναληπτικό ΤεστΑΕΠΠ: 3ο Επαναληπτικό Τεστ
ΑΕΠΠ: 3ο Επαναληπτικό ΤεστNikos Michailidis
 
Πρόχειρες Σημειώσεις Μαθηματικών Προσανατολισμού Γ' λυκείου (με κάποια λυμένα...
Πρόχειρες Σημειώσεις Μαθηματικών Προσανατολισμού Γ' λυκείου (με κάποια λυμένα...Πρόχειρες Σημειώσεις Μαθηματικών Προσανατολισμού Γ' λυκείου (με κάποια λυμένα...
Πρόχειρες Σημειώσεις Μαθηματικών Προσανατολισμού Γ' λυκείου (με κάποια λυμένα...Billonious
 
Κρασανάκης Εμμανουήλ
Κρασανάκης ΕμμανουήλΚρασανάκης Εμμανουήλ
Κρασανάκης ΕμμανουήλISSEL
 
Algorithms
AlgorithmsAlgorithms
Algorithmspapettas
 
Αλγόριθμοι
ΑλγόριθμοιΑλγόριθμοι
ΑλγόριθμοιMaria Rozou
 
Εισαγωγή στις αρχές της επιστήμης των ΗΥ Κεφ 2 2 7_4
Εισαγωγή στις αρχές της επιστήμης των ΗΥ Κεφ 2 2 7_4Εισαγωγή στις αρχές της επιστήμης των ΗΥ Κεφ 2 2 7_4
Εισαγωγή στις αρχές της επιστήμης των ΗΥ Κεφ 2 2 7_4Ιωάννου Γιαννάκης
 
ΓΕΝΙΚΑ ΒΗΜΑΤΑ ΣΤΙΣ ΔΟΜΕ ΕΠΑΝΑΛΗΨΗΣ.pdf
ΓΕΝΙΚΑ ΒΗΜΑΤΑ ΣΤΙΣ ΔΟΜΕ ΕΠΑΝΑΛΗΨΗΣ.pdfΓΕΝΙΚΑ ΒΗΜΑΤΑ ΣΤΙΣ ΔΟΜΕ ΕΠΑΝΑΛΗΨΗΣ.pdf
ΓΕΝΙΚΑ ΒΗΜΑΤΑ ΣΤΙΣ ΔΟΜΕ ΕΠΑΝΑΛΗΨΗΣ.pdfpetroskorobos
 
ΕΠΑΝΑΛΗΠΤΙΚΟ ΔΙΑΓΩΝΙΣΜΑ 1o.pdf
ΕΠΑΝΑΛΗΠΤΙΚΟ ΔΙΑΓΩΝΙΣΜΑ 1o.pdfΕΠΑΝΑΛΗΠΤΙΚΟ ΔΙΑΓΩΝΙΣΜΑ 1o.pdf
ΕΠΑΝΑΛΗΠΤΙΚΟ ΔΙΑΓΩΝΙΣΜΑ 1o.pdfAnthimos Misailidis
 
Διαγώνισμα 2o Υποπρογράμματα
Διαγώνισμα 2o ΥποπρογράμματαΔιαγώνισμα 2o Υποπρογράμματα
Διαγώνισμα 2o Υποπρογράμματαeducast
 
ΑΕΠΠ ΚΕΦ 2
ΑΕΠΠ ΚΕΦ 2ΑΕΠΠ ΚΕΦ 2
ΑΕΠΠ ΚΕΦ 2educast
 
Kef2o θεωρία Ανάπτυξη Εφαρμογών σε Προγραμματιστικό Περιβάλλον
Kef2o θεωρία Ανάπτυξη Εφαρμογών σε Προγραμματιστικό ΠεριβάλλονKef2o θεωρία Ανάπτυξη Εφαρμογών σε Προγραμματιστικό Περιβάλλον
Kef2o θεωρία Ανάπτυξη Εφαρμογών σε Προγραμματιστικό ΠεριβάλλονEleni Kokkinou
 
ΠΛΗ30 Τυπολόγιο Ενότητας 1
ΠΛΗ30 Τυπολόγιο Ενότητας 1ΠΛΗ30 Τυπολόγιο Ενότητας 1
ΠΛΗ30 Τυπολόγιο Ενότητας 1Dimitris Psounis
 
Βασικές έννοιες προγραμματισμού
Βασικές έννοιες προγραμματισμούΒασικές έννοιες προγραμματισμού
Βασικές έννοιες προγραμματισμούΙωάννου Γιαννάκης
 
Κεφ. 2 Βασικές Έννοιες Αλγορίθμων
Κεφ. 2 Βασικές Έννοιες ΑλγορίθμωνΚεφ. 2 Βασικές Έννοιες Αλγορίθμων
Κεφ. 2 Βασικές Έννοιες ΑλγορίθμωνΙωάννου Γιαννάκης
 
Θέματα Πανελλαδικών Εξετάσεων 2015: Μαθηματικά Ι - Ημερήσιων ΕΠΑΛ 21-5-2015
Θέματα Πανελλαδικών Εξετάσεων 2015: Μαθηματικά Ι - Ημερήσιων ΕΠΑΛ 21-5-2015Θέματα Πανελλαδικών Εξετάσεων 2015: Μαθηματικά Ι - Ημερήσιων ΕΠΑΛ 21-5-2015
Θέματα Πανελλαδικών Εξετάσεων 2015: Μαθηματικά Ι - Ημερήσιων ΕΠΑΛ 21-5-2015Nickos Nickolopoulos
 

Ähnlich wie ΓΛΩΣΣΑ C - ΜΑΘΗΜΑ 6 (ΕΚΤΥΠΩΣΗ) (20)

ΑΕΠΠ: 3ο Επαναληπτικό Τεστ
ΑΕΠΠ: 3ο Επαναληπτικό ΤεστΑΕΠΠ: 3ο Επαναληπτικό Τεστ
ΑΕΠΠ: 3ο Επαναληπτικό Τεστ
 
Απλά Στατιστικά Εργαλεία Η/Υ
Απλά Στατιστικά Εργαλεία Η/ΥΑπλά Στατιστικά Εργαλεία Η/Υ
Απλά Στατιστικά Εργαλεία Η/Υ
 
Πρόχειρες Σημειώσεις Μαθηματικών Προσανατολισμού Γ' λυκείου (με κάποια λυμένα...
Πρόχειρες Σημειώσεις Μαθηματικών Προσανατολισμού Γ' λυκείου (με κάποια λυμένα...Πρόχειρες Σημειώσεις Μαθηματικών Προσανατολισμού Γ' λυκείου (με κάποια λυμένα...
Πρόχειρες Σημειώσεις Μαθηματικών Προσανατολισμού Γ' λυκείου (με κάποια λυμένα...
 
Κρασανάκης Εμμανουήλ
Κρασανάκης ΕμμανουήλΚρασανάκης Εμμανουήλ
Κρασανάκης Εμμανουήλ
 
Algorithms
AlgorithmsAlgorithms
Algorithms
 
Αλγόριθμοι
ΑλγόριθμοιΑλγόριθμοι
Αλγόριθμοι
 
Εισαγωγή στις αρχές της επιστήμης των ΗΥ Κεφ 2 2 7_4
Εισαγωγή στις αρχές της επιστήμης των ΗΥ Κεφ 2 2 7_4Εισαγωγή στις αρχές της επιστήμης των ΗΥ Κεφ 2 2 7_4
Εισαγωγή στις αρχές της επιστήμης των ΗΥ Κεφ 2 2 7_4
 
ΓΕΝΙΚΑ ΒΗΜΑΤΑ ΣΤΙΣ ΔΟΜΕ ΕΠΑΝΑΛΗΨΗΣ.pdf
ΓΕΝΙΚΑ ΒΗΜΑΤΑ ΣΤΙΣ ΔΟΜΕ ΕΠΑΝΑΛΗΨΗΣ.pdfΓΕΝΙΚΑ ΒΗΜΑΤΑ ΣΤΙΣ ΔΟΜΕ ΕΠΑΝΑΛΗΨΗΣ.pdf
ΓΕΝΙΚΑ ΒΗΜΑΤΑ ΣΤΙΣ ΔΟΜΕ ΕΠΑΝΑΛΗΨΗΣ.pdf
 
ΕΠΑΝΑΛΗΠΤΙΚΟ ΔΙΑΓΩΝΙΣΜΑ 1o.pdf
ΕΠΑΝΑΛΗΠΤΙΚΟ ΔΙΑΓΩΝΙΣΜΑ 1o.pdfΕΠΑΝΑΛΗΠΤΙΚΟ ΔΙΑΓΩΝΙΣΜΑ 1o.pdf
ΕΠΑΝΑΛΗΠΤΙΚΟ ΔΙΑΓΩΝΙΣΜΑ 1o.pdf
 
Διαγώνισμα 2o Υποπρογράμματα
Διαγώνισμα 2o ΥποπρογράμματαΔιαγώνισμα 2o Υποπρογράμματα
Διαγώνισμα 2o Υποπρογράμματα
 
ΑΕΠΠ ΚΕΦ 2
ΑΕΠΠ ΚΕΦ 2ΑΕΠΠ ΚΕΦ 2
ΑΕΠΠ ΚΕΦ 2
 
Kef2o θεωρία Ανάπτυξη Εφαρμογών σε Προγραμματιστικό Περιβάλλον
Kef2o θεωρία Ανάπτυξη Εφαρμογών σε Προγραμματιστικό ΠεριβάλλονKef2o θεωρία Ανάπτυξη Εφαρμογών σε Προγραμματιστικό Περιβάλλον
Kef2o θεωρία Ανάπτυξη Εφαρμογών σε Προγραμματιστικό Περιβάλλον
 
Β' ΛΥΚΕΙΟΥ - ΕΠΙΣΤΗΜΗ Η/Υ
Β' ΛΥΚΕΙΟΥ - ΕΠΙΣΤΗΜΗ Η/ΥΒ' ΛΥΚΕΙΟΥ - ΕΠΙΣΤΗΜΗ Η/Υ
Β' ΛΥΚΕΙΟΥ - ΕΠΙΣΤΗΜΗ Η/Υ
 
Python Κεφ. 1.4 Δομή Επανάληψης
Python Κεφ. 1.4 Δομή ΕπανάληψηςPython Κεφ. 1.4 Δομή Επανάληψης
Python Κεφ. 1.4 Δομή Επανάληψης
 
ΠΛΗ30 Τυπολόγιο Ενότητας 1
ΠΛΗ30 Τυπολόγιο Ενότητας 1ΠΛΗ30 Τυπολόγιο Ενότητας 1
ΠΛΗ30 Τυπολόγιο Ενότητας 1
 
Βασικές έννοιες προγραμματισμού
Βασικές έννοιες προγραμματισμούΒασικές έννοιες προγραμματισμού
Βασικές έννοιες προγραμματισμού
 
Python Κεφ. 1.5 συναρτήσεις
Python Κεφ. 1.5 συναρτήσειςPython Κεφ. 1.5 συναρτήσεις
Python Κεφ. 1.5 συναρτήσεις
 
Κεφ. 2 Βασικές Έννοιες Αλγορίθμων
Κεφ. 2 Βασικές Έννοιες ΑλγορίθμωνΚεφ. 2 Βασικές Έννοιες Αλγορίθμων
Κεφ. 2 Βασικές Έννοιες Αλγορίθμων
 
ΠΛΗ31 ΜΑΘΗΜΑ 4.3
ΠΛΗ31 ΜΑΘΗΜΑ 4.3ΠΛΗ31 ΜΑΘΗΜΑ 4.3
ΠΛΗ31 ΜΑΘΗΜΑ 4.3
 
Θέματα Πανελλαδικών Εξετάσεων 2015: Μαθηματικά Ι - Ημερήσιων ΕΠΑΛ 21-5-2015
Θέματα Πανελλαδικών Εξετάσεων 2015: Μαθηματικά Ι - Ημερήσιων ΕΠΑΛ 21-5-2015Θέματα Πανελλαδικών Εξετάσεων 2015: Μαθηματικά Ι - Ημερήσιων ΕΠΑΛ 21-5-2015
Θέματα Πανελλαδικών Εξετάσεων 2015: Μαθηματικά Ι - Ημερήσιων ΕΠΑΛ 21-5-2015
 

Mehr von 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
 
ΠΛΗ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
 
ΠΛΗ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
 
ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ ΣΕ 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
 

Mehr von 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
 
ΠΛΗ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.1
ΠΛΗ10 ΚΑΡΤΕΣ ΜΑΘΗΜΑΤΟΣ 2.1ΠΛΗ10 ΚΑΡΤΕΣ ΜΑΘΗΜΑΤΟΣ 2.1
ΠΛΗ10 ΚΑΡΤΕΣ ΜΑΘΗΜΑΤΟΣ 2.1
 
ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ ΣΕ 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 (ΕΚΤΥΠΩΣΗ)
 
ΠΛΗ31 ΤΕΣΤ 32
ΠΛΗ31 ΤΕΣΤ 32ΠΛΗ31 ΤΕΣΤ 32
ΠΛΗ31 ΤΕΣΤ 32
 
ΠΛΗ31 ΤΕΣΤ 31
ΠΛΗ31 ΤΕΣΤ 31ΠΛΗ31 ΤΕΣΤ 31
ΠΛΗ31 ΤΕΣΤ 31
 

Kürzlich hochgeladen

Η απελευθέρωση της Θεσσαλονίκης από την Οθωμανική Αυτοκρατορία
Η απελευθέρωση της Θεσσαλονίκης από την Οθωμανική ΑυτοκρατορίαΗ απελευθέρωση της Θεσσαλονίκης από την Οθωμανική Αυτοκρατορία
Η απελευθέρωση της Θεσσαλονίκης από την Οθωμανική ΑυτοκρατορίαΑφροδίτη Διαμαντοπούλου
 
Παρουσίαση θεατρικού στην Τεχνόπολη. 2023-2024
Παρουσίαση θεατρικού στην Τεχνόπολη. 2023-2024Παρουσίαση θεατρικού στην Τεχνόπολη. 2023-2024
Παρουσίαση θεατρικού στην Τεχνόπολη. 2023-2024Tassos Karampinis
 
ΑΝΑΓΕΝΝΗΣΗ, ΕΙΡΗΝΗ ΓΚΑΒΛΟΥ- ΜΑΙΡΗ ΔΗΜΑΚΟΠΟΥΛΟΥ
ΑΝΑΓΕΝΝΗΣΗ, ΕΙΡΗΝΗ ΓΚΑΒΛΟΥ- ΜΑΙΡΗ ΔΗΜΑΚΟΠΟΥΛΟΥ ΑΝΑΓΕΝΝΗΣΗ, ΕΙΡΗΝΗ ΓΚΑΒΛΟΥ- ΜΑΙΡΗ ΔΗΜΑΚΟΠΟΥΛΟΥ
ΑΝΑΓΕΝΝΗΣΗ, ΕΙΡΗΝΗ ΓΚΑΒΛΟΥ- ΜΑΙΡΗ ΔΗΜΑΚΟΠΟΥΛΟΥ Iliana Kouvatsou
 
ΗΡΑΚΛΕΙΟΣ, ΧΑΡΗΣ ΤΑΣΙΟΥΔΗΣ-ΓΙΩΡΓΟΣ ΤΖΑΝΗΣ
ΗΡΑΚΛΕΙΟΣ, ΧΑΡΗΣ ΤΑΣΙΟΥΔΗΣ-ΓΙΩΡΓΟΣ ΤΖΑΝΗΣΗΡΑΚΛΕΙΟΣ, ΧΑΡΗΣ ΤΑΣΙΟΥΔΗΣ-ΓΙΩΡΓΟΣ ΤΖΑΝΗΣ
ΗΡΑΚΛΕΙΟΣ, ΧΑΡΗΣ ΤΑΣΙΟΥΔΗΣ-ΓΙΩΡΓΟΣ ΤΖΑΝΗΣIliana Kouvatsou
 
Η ΑΔΙΚΕΙΑ ΤΟΥ ΔΙΑΓΩΝΙΣΜΟΥ ΑΣΕΠ 2008 ΓΙΑ ΕΚΠΑΙΔΕΥΤΙΚΟΥΣ
Η ΑΔΙΚΕΙΑ ΤΟΥ ΔΙΑΓΩΝΙΣΜΟΥ ΑΣΕΠ 2008 ΓΙΑ ΕΚΠΑΙΔΕΥΤΙΚΟΥΣΗ ΑΔΙΚΕΙΑ ΤΟΥ ΔΙΑΓΩΝΙΣΜΟΥ ΑΣΕΠ 2008 ΓΙΑ ΕΚΠΑΙΔΕΥΤΙΚΟΥΣ
Η ΑΔΙΚΕΙΑ ΤΟΥ ΔΙΑΓΩΝΙΣΜΟΥ ΑΣΕΠ 2008 ΓΙΑ ΕΚΠΑΙΔΕΥΤΙΚΟΥΣΘεόδωρος Μαραγκούλας
 
ΙΣΤΟΡΙΑ Γ΄ΓΥΜΝΑΣΙΟΥ: ΕΠΑΝΑΛΗΠΤΙΚΕΣ ΑΣΚΗΣΕΙΣ ΜΕΡΟΣ 2ο
ΙΣΤΟΡΙΑ Γ΄ΓΥΜΝΑΣΙΟΥ: ΕΠΑΝΑΛΗΠΤΙΚΕΣ ΑΣΚΗΣΕΙΣ  ΜΕΡΟΣ 2οΙΣΤΟΡΙΑ Γ΄ΓΥΜΝΑΣΙΟΥ: ΕΠΑΝΑΛΗΠΤΙΚΕΣ ΑΣΚΗΣΕΙΣ  ΜΕΡΟΣ 2ο
ΙΣΤΟΡΙΑ Γ΄ΓΥΜΝΑΣΙΟΥ: ΕΠΑΝΑΛΗΠΤΙΚΕΣ ΑΣΚΗΣΕΙΣ ΜΕΡΟΣ 2οΧρύσα Παπακωνσταντίνου
 
Ο ΧΡΙΣΤΟΦΟΡΟΣ ΚΟΛΟΜΒΟΣ ΚΑΙ Η ΑΝΑΚΑΛΥΨΗ ΤΗΣ ΑΜΕΡΙΚΗΣ,ΕΙΡΗΝΗ ΝΤΟΥΣΚΑ-ΠΕΝΥ ΖΑΓΓΟ...
Ο ΧΡΙΣΤΟΦΟΡΟΣ ΚΟΛΟΜΒΟΣ ΚΑΙ Η ΑΝΑΚΑΛΥΨΗ ΤΗΣ ΑΜΕΡΙΚΗΣ,ΕΙΡΗΝΗ ΝΤΟΥΣΚΑ-ΠΕΝΥ ΖΑΓΓΟ...Ο ΧΡΙΣΤΟΦΟΡΟΣ ΚΟΛΟΜΒΟΣ ΚΑΙ Η ΑΝΑΚΑΛΥΨΗ ΤΗΣ ΑΜΕΡΙΚΗΣ,ΕΙΡΗΝΗ ΝΤΟΥΣΚΑ-ΠΕΝΥ ΖΑΓΓΟ...
Ο ΧΡΙΣΤΟΦΟΡΟΣ ΚΟΛΟΜΒΟΣ ΚΑΙ Η ΑΝΑΚΑΛΥΨΗ ΤΗΣ ΑΜΕΡΙΚΗΣ,ΕΙΡΗΝΗ ΝΤΟΥΣΚΑ-ΠΕΝΥ ΖΑΓΓΟ...Iliana Kouvatsou
 
Παρουσίαση δράσεων στην Τεχνόπολη. 2023-2024
Παρουσίαση δράσεων στην Τεχνόπολη. 2023-2024Παρουσίαση δράσεων στην Τεχνόπολη. 2023-2024
Παρουσίαση δράσεων στην Τεχνόπολη. 2023-2024Tassos Karampinis
 
ΠΟΤΕ ΑΝΑΚΑΛΥΦΘΗΚΕ Η ΑΜΕΡΙΚΗ,ΦΙΛΩΝ-ΦΡΑΓΚΟΥ
ΠΟΤΕ ΑΝΑΚΑΛΥΦΘΗΚΕ Η ΑΜΕΡΙΚΗ,ΦΙΛΩΝ-ΦΡΑΓΚΟΥΠΟΤΕ ΑΝΑΚΑΛΥΦΘΗΚΕ Η ΑΜΕΡΙΚΗ,ΦΙΛΩΝ-ΦΡΑΓΚΟΥ
ΠΟΤΕ ΑΝΑΚΑΛΥΦΘΗΚΕ Η ΑΜΕΡΙΚΗ,ΦΙΛΩΝ-ΦΡΑΓΚΟΥIliana Kouvatsou
 
Η Αγία του Θεού Σοφία, ΣΟΦΙΑ ΡΟΝΤΟΓΙΑΝΝΗ
Η Αγία του Θεού Σοφία, ΣΟΦΙΑ ΡΟΝΤΟΓΙΑΝΝΗΗ Αγία του Θεού Σοφία, ΣΟΦΙΑ ΡΟΝΤΟΓΙΑΝΝΗ
Η Αγία του Θεού Σοφία, ΣΟΦΙΑ ΡΟΝΤΟΓΙΑΝΝΗIliana Kouvatsou
 
Η ΚΩΝΣΤΑΝΤΙΝΟΥΠΟΛΗ, ΣΤΑΥΡΟΥΛΑ ΜΠΕΚΙΑΡΗ
Η ΚΩΝΣΤΑΝΤΙΝΟΥΠΟΛΗ,  ΣΤΑΥΡΟΥΛΑ  ΜΠΕΚΙΑΡΗΗ ΚΩΝΣΤΑΝΤΙΝΟΥΠΟΛΗ,  ΣΤΑΥΡΟΥΛΑ  ΜΠΕΚΙΑΡΗ
Η ΚΩΝΣΤΑΝΤΙΝΟΥΠΟΛΗ, ΣΤΑΥΡΟΥΛΑ ΜΠΕΚΙΑΡΗIliana Kouvatsou
 
Safe Driving - Εργασία για την ασφαλή οδήγηση 2ο Γυμνάσιο Αλεξανδρούπολης
Safe Driving - Εργασία για την ασφαλή οδήγηση 2ο Γυμνάσιο ΑλεξανδρούποληςSafe Driving - Εργασία για την ασφαλή οδήγηση 2ο Γυμνάσιο Αλεξανδρούπολης
Safe Driving - Εργασία για την ασφαλή οδήγηση 2ο Γυμνάσιο Αλεξανδρούπολης2ο Γυμνάσιο Αλεξ/πολης
 
Φλωρεντία, ΔΑΝΑΗ ΠΥΡΠΥΡΗ- ΜΑΡΙΑΝΕΛΑ ΣΤΡΟΓΓΥΛΟΥ
Φλωρεντία, ΔΑΝΑΗ ΠΥΡΠΥΡΗ- ΜΑΡΙΑΝΕΛΑ ΣΤΡΟΓΓΥΛΟΥΦλωρεντία, ΔΑΝΑΗ ΠΥΡΠΥΡΗ- ΜΑΡΙΑΝΕΛΑ ΣΤΡΟΓΓΥΛΟΥ
Φλωρεντία, ΔΑΝΑΗ ΠΥΡΠΥΡΗ- ΜΑΡΙΑΝΕΛΑ ΣΤΡΟΓΓΥΛΟΥIliana Kouvatsou
 
ΒΥΖΑΝΤΙΝΗ ΚΟΥΖΙΝΑ ΚΑΙ ΜΟΔΑ, ΕΛΕΑΝΑ ΣΤΑΥΡΟΠΟΥΛΟΥ.pptx
ΒΥΖΑΝΤΙΝΗ ΚΟΥΖΙΝΑ ΚΑΙ ΜΟΔΑ, ΕΛΕΑΝΑ ΣΤΑΥΡΟΠΟΥΛΟΥ.pptxΒΥΖΑΝΤΙΝΗ ΚΟΥΖΙΝΑ ΚΑΙ ΜΟΔΑ, ΕΛΕΑΝΑ ΣΤΑΥΡΟΠΟΥΛΟΥ.pptx
ΒΥΖΑΝΤΙΝΗ ΚΟΥΖΙΝΑ ΚΑΙ ΜΟΔΑ, ΕΛΕΑΝΑ ΣΤΑΥΡΟΠΟΥΛΟΥ.pptxIliana Kouvatsou
 
Ο ΜΑΥΡΟΣ ΘΑΝΑΤΟΣ (Η ΝΟΣΟΣ), ΣΤΕΛΙΟΣ ΚΑΡΑΪΣΚΟΣ
Ο ΜΑΥΡΟΣ ΘΑΝΑΤΟΣ (Η ΝΟΣΟΣ), ΣΤΕΛΙΟΣ ΚΑΡΑΪΣΚΟΣΟ ΜΑΥΡΟΣ ΘΑΝΑΤΟΣ (Η ΝΟΣΟΣ), ΣΤΕΛΙΟΣ ΚΑΡΑΪΣΚΟΣ
Ο ΜΑΥΡΟΣ ΘΑΝΑΤΟΣ (Η ΝΟΣΟΣ), ΣΤΕΛΙΟΣ ΚΑΡΑΪΣΚΟΣIliana Kouvatsou
 
εργασία εφημερίδας για την διατροφή.pptx
εργασία εφημερίδας για την διατροφή.pptxεργασία εφημερίδας για την διατροφή.pptx
εργασία εφημερίδας για την διατροφή.pptxEffie Lampropoulou
 
Βενετία, μια πόλη πάνω στο νερό, Βασιλική Μπράβου - Αποστολία Μπάρδα
Βενετία, μια πόλη πάνω στο νερό, Βασιλική Μπράβου - Αποστολία ΜπάρδαΒενετία, μια πόλη πάνω στο νερό, Βασιλική Μπράβου - Αποστολία Μπάρδα
Βενετία, μια πόλη πάνω στο νερό, Βασιλική Μπράβου - Αποστολία ΜπάρδαIliana Kouvatsou
 
ΕΜΕΙΣ ΕΔΩ ΠΑΙΖΟΥΜΕ ΜΠΑΛΑ, εργασία για την οπαδική βία
ΕΜΕΙΣ ΕΔΩ ΠΑΙΖΟΥΜΕ ΜΠΑΛΑ, εργασία για την οπαδική βίαΕΜΕΙΣ ΕΔΩ ΠΑΙΖΟΥΜΕ ΜΠΑΛΑ, εργασία για την οπαδική βία
ΕΜΕΙΣ ΕΔΩ ΠΑΙΖΟΥΜΕ ΜΠΑΛΑ, εργασία για την οπαδική βίαΑφροδίτη Διαμαντοπούλου
 

Kürzlich hochgeladen (20)

Η απελευθέρωση της Θεσσαλονίκης από την Οθωμανική Αυτοκρατορία
Η απελευθέρωση της Θεσσαλονίκης από την Οθωμανική ΑυτοκρατορίαΗ απελευθέρωση της Θεσσαλονίκης από την Οθωμανική Αυτοκρατορία
Η απελευθέρωση της Θεσσαλονίκης από την Οθωμανική Αυτοκρατορία
 
Ρατσισμός, ορισμός, είδη, αίτια , συνέπειες
Ρατσισμός, ορισμός, είδη, αίτια , συνέπειεςΡατσισμός, ορισμός, είδη, αίτια , συνέπειες
Ρατσισμός, ορισμός, είδη, αίτια , συνέπειες
 
Ναυμαχία της Ναυαρίνου 20 Οκτωβρίου 1827
Ναυμαχία της Ναυαρίνου 20 Οκτωβρίου 1827Ναυμαχία της Ναυαρίνου 20 Οκτωβρίου 1827
Ναυμαχία της Ναυαρίνου 20 Οκτωβρίου 1827
 
Παρουσίαση θεατρικού στην Τεχνόπολη. 2023-2024
Παρουσίαση θεατρικού στην Τεχνόπολη. 2023-2024Παρουσίαση θεατρικού στην Τεχνόπολη. 2023-2024
Παρουσίαση θεατρικού στην Τεχνόπολη. 2023-2024
 
ΑΝΑΓΕΝΝΗΣΗ, ΕΙΡΗΝΗ ΓΚΑΒΛΟΥ- ΜΑΙΡΗ ΔΗΜΑΚΟΠΟΥΛΟΥ
ΑΝΑΓΕΝΝΗΣΗ, ΕΙΡΗΝΗ ΓΚΑΒΛΟΥ- ΜΑΙΡΗ ΔΗΜΑΚΟΠΟΥΛΟΥ ΑΝΑΓΕΝΝΗΣΗ, ΕΙΡΗΝΗ ΓΚΑΒΛΟΥ- ΜΑΙΡΗ ΔΗΜΑΚΟΠΟΥΛΟΥ
ΑΝΑΓΕΝΝΗΣΗ, ΕΙΡΗΝΗ ΓΚΑΒΛΟΥ- ΜΑΙΡΗ ΔΗΜΑΚΟΠΟΥΛΟΥ
 
ΗΡΑΚΛΕΙΟΣ, ΧΑΡΗΣ ΤΑΣΙΟΥΔΗΣ-ΓΙΩΡΓΟΣ ΤΖΑΝΗΣ
ΗΡΑΚΛΕΙΟΣ, ΧΑΡΗΣ ΤΑΣΙΟΥΔΗΣ-ΓΙΩΡΓΟΣ ΤΖΑΝΗΣΗΡΑΚΛΕΙΟΣ, ΧΑΡΗΣ ΤΑΣΙΟΥΔΗΣ-ΓΙΩΡΓΟΣ ΤΖΑΝΗΣ
ΗΡΑΚΛΕΙΟΣ, ΧΑΡΗΣ ΤΑΣΙΟΥΔΗΣ-ΓΙΩΡΓΟΣ ΤΖΑΝΗΣ
 
Η ΑΔΙΚΕΙΑ ΤΟΥ ΔΙΑΓΩΝΙΣΜΟΥ ΑΣΕΠ 2008 ΓΙΑ ΕΚΠΑΙΔΕΥΤΙΚΟΥΣ
Η ΑΔΙΚΕΙΑ ΤΟΥ ΔΙΑΓΩΝΙΣΜΟΥ ΑΣΕΠ 2008 ΓΙΑ ΕΚΠΑΙΔΕΥΤΙΚΟΥΣΗ ΑΔΙΚΕΙΑ ΤΟΥ ΔΙΑΓΩΝΙΣΜΟΥ ΑΣΕΠ 2008 ΓΙΑ ΕΚΠΑΙΔΕΥΤΙΚΟΥΣ
Η ΑΔΙΚΕΙΑ ΤΟΥ ΔΙΑΓΩΝΙΣΜΟΥ ΑΣΕΠ 2008 ΓΙΑ ΕΚΠΑΙΔΕΥΤΙΚΟΥΣ
 
ΙΣΤΟΡΙΑ Γ΄ΓΥΜΝΑΣΙΟΥ: ΕΠΑΝΑΛΗΠΤΙΚΕΣ ΑΣΚΗΣΕΙΣ ΜΕΡΟΣ 2ο
ΙΣΤΟΡΙΑ Γ΄ΓΥΜΝΑΣΙΟΥ: ΕΠΑΝΑΛΗΠΤΙΚΕΣ ΑΣΚΗΣΕΙΣ  ΜΕΡΟΣ 2οΙΣΤΟΡΙΑ Γ΄ΓΥΜΝΑΣΙΟΥ: ΕΠΑΝΑΛΗΠΤΙΚΕΣ ΑΣΚΗΣΕΙΣ  ΜΕΡΟΣ 2ο
ΙΣΤΟΡΙΑ Γ΄ΓΥΜΝΑΣΙΟΥ: ΕΠΑΝΑΛΗΠΤΙΚΕΣ ΑΣΚΗΣΕΙΣ ΜΕΡΟΣ 2ο
 
Ο ΧΡΙΣΤΟΦΟΡΟΣ ΚΟΛΟΜΒΟΣ ΚΑΙ Η ΑΝΑΚΑΛΥΨΗ ΤΗΣ ΑΜΕΡΙΚΗΣ,ΕΙΡΗΝΗ ΝΤΟΥΣΚΑ-ΠΕΝΥ ΖΑΓΓΟ...
Ο ΧΡΙΣΤΟΦΟΡΟΣ ΚΟΛΟΜΒΟΣ ΚΑΙ Η ΑΝΑΚΑΛΥΨΗ ΤΗΣ ΑΜΕΡΙΚΗΣ,ΕΙΡΗΝΗ ΝΤΟΥΣΚΑ-ΠΕΝΥ ΖΑΓΓΟ...Ο ΧΡΙΣΤΟΦΟΡΟΣ ΚΟΛΟΜΒΟΣ ΚΑΙ Η ΑΝΑΚΑΛΥΨΗ ΤΗΣ ΑΜΕΡΙΚΗΣ,ΕΙΡΗΝΗ ΝΤΟΥΣΚΑ-ΠΕΝΥ ΖΑΓΓΟ...
Ο ΧΡΙΣΤΟΦΟΡΟΣ ΚΟΛΟΜΒΟΣ ΚΑΙ Η ΑΝΑΚΑΛΥΨΗ ΤΗΣ ΑΜΕΡΙΚΗΣ,ΕΙΡΗΝΗ ΝΤΟΥΣΚΑ-ΠΕΝΥ ΖΑΓΓΟ...
 
Παρουσίαση δράσεων στην Τεχνόπολη. 2023-2024
Παρουσίαση δράσεων στην Τεχνόπολη. 2023-2024Παρουσίαση δράσεων στην Τεχνόπολη. 2023-2024
Παρουσίαση δράσεων στην Τεχνόπολη. 2023-2024
 
ΠΟΤΕ ΑΝΑΚΑΛΥΦΘΗΚΕ Η ΑΜΕΡΙΚΗ,ΦΙΛΩΝ-ΦΡΑΓΚΟΥ
ΠΟΤΕ ΑΝΑΚΑΛΥΦΘΗΚΕ Η ΑΜΕΡΙΚΗ,ΦΙΛΩΝ-ΦΡΑΓΚΟΥΠΟΤΕ ΑΝΑΚΑΛΥΦΘΗΚΕ Η ΑΜΕΡΙΚΗ,ΦΙΛΩΝ-ΦΡΑΓΚΟΥ
ΠΟΤΕ ΑΝΑΚΑΛΥΦΘΗΚΕ Η ΑΜΕΡΙΚΗ,ΦΙΛΩΝ-ΦΡΑΓΚΟΥ
 
Η Αγία του Θεού Σοφία, ΣΟΦΙΑ ΡΟΝΤΟΓΙΑΝΝΗ
Η Αγία του Θεού Σοφία, ΣΟΦΙΑ ΡΟΝΤΟΓΙΑΝΝΗΗ Αγία του Θεού Σοφία, ΣΟΦΙΑ ΡΟΝΤΟΓΙΑΝΝΗ
Η Αγία του Θεού Σοφία, ΣΟΦΙΑ ΡΟΝΤΟΓΙΑΝΝΗ
 
Η ΚΩΝΣΤΑΝΤΙΝΟΥΠΟΛΗ, ΣΤΑΥΡΟΥΛΑ ΜΠΕΚΙΑΡΗ
Η ΚΩΝΣΤΑΝΤΙΝΟΥΠΟΛΗ,  ΣΤΑΥΡΟΥΛΑ  ΜΠΕΚΙΑΡΗΗ ΚΩΝΣΤΑΝΤΙΝΟΥΠΟΛΗ,  ΣΤΑΥΡΟΥΛΑ  ΜΠΕΚΙΑΡΗ
Η ΚΩΝΣΤΑΝΤΙΝΟΥΠΟΛΗ, ΣΤΑΥΡΟΥΛΑ ΜΠΕΚΙΑΡΗ
 
Safe Driving - Εργασία για την ασφαλή οδήγηση 2ο Γυμνάσιο Αλεξανδρούπολης
Safe Driving - Εργασία για την ασφαλή οδήγηση 2ο Γυμνάσιο ΑλεξανδρούποληςSafe Driving - Εργασία για την ασφαλή οδήγηση 2ο Γυμνάσιο Αλεξανδρούπολης
Safe Driving - Εργασία για την ασφαλή οδήγηση 2ο Γυμνάσιο Αλεξανδρούπολης
 
Φλωρεντία, ΔΑΝΑΗ ΠΥΡΠΥΡΗ- ΜΑΡΙΑΝΕΛΑ ΣΤΡΟΓΓΥΛΟΥ
Φλωρεντία, ΔΑΝΑΗ ΠΥΡΠΥΡΗ- ΜΑΡΙΑΝΕΛΑ ΣΤΡΟΓΓΥΛΟΥΦλωρεντία, ΔΑΝΑΗ ΠΥΡΠΥΡΗ- ΜΑΡΙΑΝΕΛΑ ΣΤΡΟΓΓΥΛΟΥ
Φλωρεντία, ΔΑΝΑΗ ΠΥΡΠΥΡΗ- ΜΑΡΙΑΝΕΛΑ ΣΤΡΟΓΓΥΛΟΥ
 
ΒΥΖΑΝΤΙΝΗ ΚΟΥΖΙΝΑ ΚΑΙ ΜΟΔΑ, ΕΛΕΑΝΑ ΣΤΑΥΡΟΠΟΥΛΟΥ.pptx
ΒΥΖΑΝΤΙΝΗ ΚΟΥΖΙΝΑ ΚΑΙ ΜΟΔΑ, ΕΛΕΑΝΑ ΣΤΑΥΡΟΠΟΥΛΟΥ.pptxΒΥΖΑΝΤΙΝΗ ΚΟΥΖΙΝΑ ΚΑΙ ΜΟΔΑ, ΕΛΕΑΝΑ ΣΤΑΥΡΟΠΟΥΛΟΥ.pptx
ΒΥΖΑΝΤΙΝΗ ΚΟΥΖΙΝΑ ΚΑΙ ΜΟΔΑ, ΕΛΕΑΝΑ ΣΤΑΥΡΟΠΟΥΛΟΥ.pptx
 
Ο ΜΑΥΡΟΣ ΘΑΝΑΤΟΣ (Η ΝΟΣΟΣ), ΣΤΕΛΙΟΣ ΚΑΡΑΪΣΚΟΣ
Ο ΜΑΥΡΟΣ ΘΑΝΑΤΟΣ (Η ΝΟΣΟΣ), ΣΤΕΛΙΟΣ ΚΑΡΑΪΣΚΟΣΟ ΜΑΥΡΟΣ ΘΑΝΑΤΟΣ (Η ΝΟΣΟΣ), ΣΤΕΛΙΟΣ ΚΑΡΑΪΣΚΟΣ
Ο ΜΑΥΡΟΣ ΘΑΝΑΤΟΣ (Η ΝΟΣΟΣ), ΣΤΕΛΙΟΣ ΚΑΡΑΪΣΚΟΣ
 
εργασία εφημερίδας για την διατροφή.pptx
εργασία εφημερίδας για την διατροφή.pptxεργασία εφημερίδας για την διατροφή.pptx
εργασία εφημερίδας για την διατροφή.pptx
 
Βενετία, μια πόλη πάνω στο νερό, Βασιλική Μπράβου - Αποστολία Μπάρδα
Βενετία, μια πόλη πάνω στο νερό, Βασιλική Μπράβου - Αποστολία ΜπάρδαΒενετία, μια πόλη πάνω στο νερό, Βασιλική Μπράβου - Αποστολία Μπάρδα
Βενετία, μια πόλη πάνω στο νερό, Βασιλική Μπράβου - Αποστολία Μπάρδα
 
ΕΜΕΙΣ ΕΔΩ ΠΑΙΖΟΥΜΕ ΜΠΑΛΑ, εργασία για την οπαδική βία
ΕΜΕΙΣ ΕΔΩ ΠΑΙΖΟΥΜΕ ΜΠΑΛΑ, εργασία για την οπαδική βίαΕΜΕΙΣ ΕΔΩ ΠΑΙΖΟΥΜΕ ΜΠΑΛΑ, εργασία για την οπαδική βία
ΕΜΕΙΣ ΕΔΩ ΠΑΙΖΟΥΜΕ ΜΠΑΛΑ, εργασία για την οπαδική βία
 

ΓΛΩΣΣΑ C - ΜΑΘΗΜΑ 6 (ΕΚΤΥΠΩΣΗ)

  • 1. H ΓΛΩΣΣΑ C Μάθηµα 6: Συναρτήσεις και Αναδροµή ∆ηµήτρης Ψούνης
  • 2. Περιεχόµενα Μαθήµατος Α. Συναρτήσεις 1. Πότε Γράφουµε Συναρτήσεις 2. Πως Γράφουµε Συναρτήσεις 1. Γενικό Σχήµα 2. Το Πρωτότυπο Συνάρτησης 3. Το Σώµα Συνάρτησης 1. Ορισµός 2. Καθολικές και Τοπικές Μεταβλητές 4. Κλήση Συνάρτησης 3. Πως Λειτουργούν οι Συναρτήσεις 1. Συναρτήσεις και Χώρος στη Μνήµη 2. Περίπλοκα Ορίσµατα 3. Παραπάνω του ενός Ορίσµατα B. Αναδροµή 1. Κλήση Συνάρτησης από Συνάρτηση 2. Αναδροµικές Συναρτήσεις 1. Υπολογισµός Παραγοντικού 2. Τρόπος Εκτέλεσης 3. Καταγραφή Εκτέλεσης Αναδροµικής Συνάρτησης 2∆ηµήτρης Ψούνης, Η Γλώσσα C, Μάθηµα 6: Συναρτήσεις και Αναδροµή Γ. Ασκήσεις 1. Συναρτήσεις Ελέγχου Εισόδου 2. Μία Βιβλιοθήκη Μελέτης Αριθµών 3. Πρώτοι Αριθµοί 4. Αναδροµή: Η ακολουθία Fibonacci 5. Αναδροµή: ΜΚ∆ µε τον Αλγόριθµο του Ευκλείδη
  • 3. A. Συναρτήσεις 1. Πότε Γράφουµε Συναρτήσεις 3∆ηµήτρης Ψούνης, Η Γλώσσα C, Μάθηµα 6: Συναρτήσεις και Αναδροµή Η γλώσσα C είναι πιο γνωστή και ευρέως χρησιµοποιούµενη «διαδικαστική» γλωσσα. ∆ιαδικαστική σηµαίνει ότι λειτουργεί µε συναρτήσεις (διαδικασίες)! Άρα το κύριο χαρακτηριστικό της γλώσσας είναι οι συναρτήσεις!
  • 4. A. Συναρτήσεις 1. Πότε Γράφουµε Συναρτήσεις 4∆ηµήτρης Ψούνης, Η Γλώσσα C, Μάθηµα 6: Συναρτήσεις και Αναδροµή Μία συνάρτηση της C είναι το αντίστοιχο της µαθηµατικής συνάρτησης. Θεωρήστε για παράδειγµα την µαθηµατική συνάρτηση 5 1 Το είναι το όνοµα της συνάρτησης Το ειναι το όρισµα της συνάρτησης Το 5 1 είναι το σώµα της συνάρτησης Τώρα πως χρησιµοποιούµε µια συνάρτηση. Π.χ. µε όρισµα το 2, δηλαδή 2 (Στην C θα λέµε «καλώντας την µε όρισµα ») Η συνάρτηση υπολογίζεται: 5 ∙ 2 1 5 ∙ 2 1 11 (Στην C θα λέµε «επιστρέφει ») Π.χ. µε όρισµα το 15, δηλαδή το 15 (Στην C λέµε «καλώντας την µε όρισµα 15») Η συνάρτηση υπολογίζεται στο 5 ∙ 15 1 5 ∙ 15 1 76 (Στην C θα λέµε «επιστρέφει 76»)
  • 5. A. Συναρτήσεις 1. Πότε Γράφουµε Συναρτήσεις 5∆ηµήτρης Ψούνης, Η Γλώσσα C, Μάθηµα 6: Συναρτήσεις και Αναδροµή Πότε γράφουµε συναρτήσεις; Συχνά όταν γράφουµε ένα µεγάλο πρόγραµµα, υπάρχουν κάποιες ενέργειες που επαναλαµβάνονται. Π.χ. Σε προγράµµατα της µετεωρολογίας, απαιτείται συχνά να υπολογιστούν οι λύσεις διαφορικών εξισώσεων Άρα στα προγράµµατα τους, έχουν κατασκευάσει γενικές συναρτήσεις που λύνουν διαφορικές εξισώσεις! Σε προγράµµατα που χρησιµοποιούνται στις υπηρεσίες π.χ. γραµµατειών, γίνονται πολλές φορές οι ίδιες ενέργειες. Έτσι χρησιµοποιούνται συναρτήσεις, για τις επαναλαµβανόµενες ενέργειες εισαγωγής – π.χ. διαγραφής εγγραφών στα δεδοµένα που διατηρεί η υπηρεσία.
  • 6. A. Συναρτήσεις 1. Πότε Γράφουµε Συναρτήσεις 6∆ηµήτρης Ψούνης, Η Γλώσσα C, Μάθηµα 6: Συναρτήσεις και Αναδροµή Οι γενικοί κανόνες που µας καθοδηγούν στο να δηµιουργήσουµε µια συνάρτηση στο πρόγραµµά µας είναι: Γράφουµε συναρτήσεις όταν πολλές φορές στο πρόγραµµα µας κάνουµε τις ίδιες ενέργειες µε τον ίδιο κώδικα. Π.χ. Αν το πρόγραµµα µας κάνει µία εκτύπωση πολλές φορές, τότε θα ορίσουµε µια συνάρτηση µε όνοµα π.χ. print() και καλούµε την συνάρτηση αυτή κάθε φορά που θέλουµε να εκτυπώσουµε τον πίνακα. Και όταν θέλουµε να απλοποιήσουµε την µορφή του προγράµµατος µας. Είναι κακό να έχουµε έναν κώδικα-«µακαρόνι», δηλαδή µια τεράστια main που να κάνει πάρα πολλά πράγµατα! Προτιµούµε να διασπάµε τον κώδικα σε µέρη και να καλούµε τις αντίστοιχες συναρτήσεις που θα υλοποιούν κάθε αυτόνοµη ενέργεια.
  • 7. A. Συναρτήσεις 2. Πως Γράφουµε Συναρτήσεις 7∆ηµήτρης Ψούνης, Η Γλώσσα C, Μάθηµα 6: Συναρτήσεις και Αναδροµή Το γενικό σχήµα για την σύνταξη µιας συνάρτησης, το είδαµε στο µάθηµα 2 «Βασικά Στοιχεία ενός προγράµµατος C» Είδαµε ότι η συνάρτηση θα οριστεί σε 2 σηµεία: Στην αρχή του προγράµµατος (πριν την main) θα γράψουµε το πρωτότυπο της συνάρτησης, που αποτελεί µία απλή περιγραφή των τύπων των δεδοµένων των ορισµάτων της και του τύπου του δεδοµένου της επιστρεφόµενης τιµής. Αµέσως µετά τη main, ορίζουµε το σώµα της συνάρτησης, όπου περιγράφονται οι ενέργειες που εκτελεί η συνάρτηση Από την στιγµή που έχουµε ορίσει την συνάρτηση έχουµε το δικαίωµα να την υπολογίσουµε, µε συγκεκριµένα ορίσµατα, οπουδήποτε µέσα στον κώδικά µας. Η κλήση της συνάρτησης είναι να βάλουµε συγκεκριµένα ορίσµατα στην συνάρτηση και να την καλέσουµε. Η συνάρτηση θα κάνει τον υπολογισµό της, και θα επιστρέψει το αποτέλεσµά της!
  • 8. A. Συναρτήσεις 2. Πως Γράφουµε Συναρτήσεις 1. Γενικό Σχήµα 8∆ηµήτρης Ψούνης, Η Γλώσσα C, Μάθηµα 6: Συναρτήσεις και Αναδροµή Ας επαναλάβουµε την γενική εικόνα που θα πρέπει να έχει το πρόγραµµα µας Χρησιµοποιούµε στο παράδειγµα αυτό µια πολύ απλή συνάρτηση που δέχεται ως ορίσµατα δύο ακεραίους και επιστρέφει το γινόµενο τους. ..... int ginomeno(int x, int y); <- Αυτό είναι το πρωτότυπο της συνάρτησης main() { .... c=ginomeno(a,b); <- Εδώ καλούµε την συνάρτηση στην main, .... σαν µία ακόµη εντολή του προγράµµατος } int ginomeno(int x, int y) <-Αυτό είναι το σώµα της συνάρτησης { return (x*y); }
  • 9. A. Συναρτήσεις 2. Πως Γράφουµε Συναρτήσεις 2. Το Πρωτότυπο Συνάρτησης 9∆ηµήτρης Ψούνης, Η Γλώσσα C, Μάθηµα 6: Συναρτήσεις και Αναδροµή ΠΑΝΤΑ πριν από την main καταγράφουµε τα πρωτότυπα των συναρτήσεων που θα ορίσουµε. Το πρωτότυπο είναι µια περιγραφή µόνο των ορισµάτων της συνάρτησης και της επιστρεφόµενης τιµής (και όχι του υπολογισµού). Το συντακτικό είναι: Όπως στην συνάρτηση µάς: όπου περιγράφουµε ότι πρόκειται να ορίσουµε µια συνάρτηση µε όνοµα ginomeno: που παίρνει δύο ακέραιες µεταβλητές ως ορίσµατα και επιστρέφει µια ακέραια µεταβλητή. Τύπος_Επιστρεφόµενης_Τιµής ΟΝΟΜΑ_ΣΥΝΑΡΤΗΣΗΣ(Ορισµα1,Ορισµα2,...); int ginomeno (int x, int y);
  • 10. A. Συναρτήσεις 2. Πως Γράφουµε Συναρτήσεις 2. Το Πρωτότυπο Συνάρτησης 10∆ηµήτρης Ψούνης, Η Γλώσσα C, Μάθηµα 6: Συναρτήσεις και Αναδροµή Λίγο πιο αναλυτικά για το πρωτότυπο της συνάρτησης έχουµε: Μπορεί να είναι οποιοσδήποτε τύπος δεδοµένων από όσους µάθαµε στο Μάθηµα 3 (π.χ. int, float, double κ.λπ.) Μπορούµε να δώσουµε οποιοδήποτε όνοµα στην συνάρτηση µας, που σέβεται την ονοµατολογία που ορίσαµε στο Μάθηµα 3 (π.χ. το όνοµα δεν µπορεί να ξεκινά µε αριθµό) Τα ορίσµατα της συνάρτησης χωρίζονται µε κόµµατα. Κάθε όρισµα έχει την µορφή Όπου Τ∆ είναι ο τύπος δεδοµένων του ορίσµατος. Τύπος_Επιστρεφόµενης_Τιµής ΟΝΟΜΑ_ΣΥΝΑΡΤΗΣΗΣ(Ορισµα1,Ορισµα2,...); Τύπος_Επιστρεφόµενης_Τιµής ΟΝΟΜΑ_ΣΥΝΑΡΤΗΣΗΣ (Ορισµα1,Ορισµα2,...) Τ∆ όνοµα_µεταβλητής
  • 11. A. Συναρτήσεις 2. Πως Γράφουµε Συναρτήσεις 2. Το Πρωτότυπο Συνάρτησης 11∆ηµήτρης Ψούνης, Η Γλώσσα C, Μάθηµα 6: Συναρτήσεις και Αναδροµή Μερικά Παραδείγµατα: Είναι µια συνάρτηση µε όνοµα square που παίρνει σαν όρισµα έναν ακέραιο και θα επιστρέφει έναν ακέραιο αριθµό Είναι µια συνάρτηση µε όνοµα mesos_oros που παίρνει ως ορίσµατα δύο δεκαδικούς διπλής ακρίβειας και θα επιστρέφει έναν δεκαδικό διπλής ακρίβειας. Είναι µια συνάρτηση που παίρνει σαν όρισµα έναν ακέραιο και δεν επιστρέφει τίποτα. Η λέξη στην επιστροφή δηλώνει ότι η συνάρτηση δεν επιστρέφει τίποτα Είναι µια συνάρτηση που δεν παίρνει ορίσµατα και δεν επιστρέφει τίποτα! Θα εκτελεί ότι ενέργειες οριστούν στο σώµα της! int square(int x); double mesos_oros(double x,double y); void typose_minima(int elegxos); void void ektyposi_plaisiou();
  • 12. A. Συναρτήσεις 2. Πως Γράφουµε Συναρτήσεις 2. Το Πρωτότυπο Συνάρτησης 12∆ηµήτρης Ψούνης, Η Γλώσσα C, Μάθηµα 6: Συναρτήσεις και Αναδροµή Συµβουλές: • Χρησιµοποιούµε κατατοπιστικά ονόµατα στις συναρτήσεις, ώστε να θυµόµαστε τι ενέργειες εκτελεί! • Επίσης χρησιµοποιούµε όσο το δυνατόν πιο κατατοπιστικά ονόµατα και στα ονόµατα των ορισµάτων που δέχεται η συνάρτηση! • Όταν δηλώνουµε το πρωτότυπο της συνάρτησης δεν ξεχνάµε να βάλουµε ερωτηµατικό στο τέλος της δήλωσης!
  • 13. A. Συναρτήσεις 2. Πως Γράφουµε Συναρτήσεις 3. Το Σώµα Συνάρτησης (Ορισµός) 13∆ηµήτρης Ψούνης, Η Γλώσσα C, Μάθηµα 6: Συναρτήσεις και Αναδροµή Το σώµα της συνάρτησης αποτελεί την περιγραφή των εντολών που εκτελεί η συνάρτηση. Πάντα θα είναι ΜΕΤΑ την main και οι εντολές της θα βρίσκονται ανάµεσα σε άγκιστρα Η 1η γραµµή είναι ακριβώς ίδια µε το πρωτότυπο (αλλά δεν έχει ερωτηµατικό) Έπειτα µέσα στα υποχρεωτικά άγκιστρα: Γράφουµε τις τοπικές µεταβλητές που θα χρησιµοποιήσει η συνάρτηση. Και ακολουθούν οι εντολές που θα εκτελέσει η συνάρτηση Οι εντολές θα τρέξουν σειριακά (όπως στην main) εωσότου: Είτε φτάσουµε στο τελευταίο άγκιστρο, Είτε φτάσουµε σε µια εντολή return! Τύπος_Επιστρεφόµενης_Τιµής ΟΝΟΜΑ_ΣΥΝΑΡΤΗΣΗΣ(Ορισµα1,Ορισµα2,...) { //Εδώ θα δηλώσουµε τις τοπικές µεταβλητές της συνάρτησης //Εδώ θα γράψουµε τις εντολές της συνάρτησης } Σηµείωση: • Εναλλακτικά η C δίνει τη δυνατότητα να γράψουµε απευθείας το σώµα της συνάρτησης πριν την main και µόνον εκεί. ∆εν θα ακολουθήσουµε αυτήν τη προσέγγιση σε αυτές τις σηµειώσεις.
  • 14. A. Συναρτήσεις 2. Πως Γράφουµε Συναρτήσεις 3. Το Σώµα Συνάρτησης (Τοπικές και Καθολικές Μεταβλητές) 14∆ηµήτρης Ψούνης, Η Γλώσσα C, Μάθηµα 6: Συναρτήσεις και Αναδροµή Τοπικές Μεταβλητές: Είναι µεταβλητές που δηλώνονται στην αρχή µιας συνάρτησης και τις οποίες τις «βλέπει» (έχει πρόσβαση) η συνάρτηση και ΜΟΝΟΝ αυτή (όχι δηλαδή οι άλλες συναρτήσεις ή η main() Προσοχή! Κάθε συνάρτηση έχει τις δικές της µεταβλητές, έτσι π.χ. µπορούν δύο συναρτήσεις να έχουν µεταβλητές µε το ίδιο όνοµα. Κάθε συνάρτηση θα «βλέπει» µόνο τις δικές της µεταβλητές. Καθολικές Μεταβλητές: Είναι µεταβλητές που δηλώνονται πριν από την main και τις οποίες βλέπουν ΟΛΕΣ οι συναρτήσεις (και η main). ∆είτε το γενικό σχήµα ενός προγράµµατος που χρησιµοποιεί τέτοιες µεταβλητές και έπειτα µεταγλωττίστε και εκτελέστε το πρόγραµµα της επόµενης διαφάνειας. Συµβουλή: • Θεωρείται κακή προγραµµατιστική τακτική να χρησιµοποιούµε καθολικές µεταβλητές. Θα πρέπει να γνωρίζουµε πως δουλεύουν, αλλά να µην τις χρησιµοποιούµε στα προγράµµατά µας!
  • 15. A. Συναρτήσεις 2. Πως Γράφουµε Συναρτήσεις 3. Το Σώµα Συνάρτησης (Τοπικές και Καθολικές Μεταβλητές) 15∆ηµήτρης Ψούνης, Η Γλώσσα C, Μάθηµα 6: Συναρτήσεις και Αναδροµή /* variables.c: Deixnei ton diaxorismo katholikwn-topikwn metablitwn*/ #include <stdio.h> void f1(); void f2(); int x; /* Katholiki metavliti: Tin vlepoun oloi */ main() { int a=0; /*Topiki metabliti stin main */ x=5; printf("nmain: a=%d,x=%d",a,x); f1(); printf("nmain: a=%d,x=%d",a,x); f2(); printf("nmain: a=%d,x=%d",a,x); } void f1() { int a=2, x=0; /*Topikes metavlites tis f1 */ /* Exoyme diplo onoma stin x. Epikratei to topiko onoma */ printf("nf1: a=%d,x=%d",a,x); } void f2() { int a=8; /*Topikes metavlites tis f2 */ x=7; /* Anaferetai stin katholiki x */ printf("nf2: a=%d,x=%d",a,x); }
  • 16. A. Συναρτήσεις 2. Πως Γράφουµε Συναρτήσεις 4. Κλήση Συνάρτησης 16∆ηµήτρης Ψούνης, Η Γλώσσα C, Μάθηµα 6: Συναρτήσεις και Αναδροµή Αφού γράψουµε την συνάρτησή µας, έχουµε δικαίωµα να την καλέσουµε οπουδήποτε µέσα στο πρόγραµµα µας. Για να την καλέσουµε: Γράφουµε το όνοµα της και διοχετεύουµε κατάλληλα ορίσµατα που θα είναι: Είτε απευθείας συγκεκριµένες αριθµητικές τιµές. Είτε ονόµατα µεταβλητών που χρησιµοποιούµε ήδη στο πρόγραµµα µας. Προσοχή! Απλά γράφουµε τα ονόµατα των µεταβλητών ως ορίσµατα και όχι τον τύπο δεδοµένων Είτε γενικότερα υπολογιζόµενες παραστάσεις (όπως τις ορίσαµε στο µάθηµα 2 που µελετήσαµε τον τελεστή εκχώρησης) ∆είτε το παράδειγµα της επόµενης διαφάνειας και εντοπίστε στις κλήσεις των συναρτήσεων, να «διοχετεύονται» ορίσµατα είτε αριθµητικά, είτε µε µεταβλητές που χρησιµοποιεί η «καλούσα συνάρτηση»
  • 17. A. Συναρτήσεις 2. Πως Γράφουµε Συναρτήσεις 4. Κλήση Συνάρτησης 17∆ηµήτρης Ψούνης, Η Γλώσσα C, Μάθηµα 6: Συναρτήσεις και Αναδροµή /* orismata.c: Anadeikniei pos pairname orismata se sinartiseis */ #include <stdio.h> int square(int x); main() { int a=5; int b=10; int teta,tetb,sum; teta=square(a); tetb=square(b); sum=teta+tetb; printf("%d^2 + %d^2 = %d",a,b,sum); } int square(int x) { int y; y=x*x; return y; }
  • 18. A. Συναρτήσεις 2. Πως Γράφουµε Συναρτήσεις 4. Κλήση Συνάρτησης 18∆ηµήτρης Ψούνης, Η Γλώσσα C, Μάθηµα 6: Συναρτήσεις και Αναδροµή Όπως φαίνεται και από το παράδειγµα, η επιστρεφόµενη τιµή της συνάρτησης γίνεται µε την εντολή return: H δεσµευµένη λέξη return ακολουθείται από την τιµή, η οποία µπορεί να είναι οποιαδήποτε υπολογιζόµενη παράσταση (σταθερά, µεταβλητή, υπολογισµός, ή ακόµη και συνάρτηση) Σηµαντικό: Η εκτέλεση της εντολής return σταµατά επιτόπου την εκτέλεση της συνάρτησης, υπολογίζει την τιµή και επιστρέφει στην καλούσα συνάρτηση. Ισχύει επίσης ότι σε µια συνάρτηση που επιστρέφει void, µπορούµε να σταµατήσουµε την εκτέλεση της µε την εντολή: return τιµή; return;
  • 19. A. Συναρτήσεις 3. Πως Λειτουργούν οι Συναρτήσεις 1. Συναρτήσεις και Χώρος στη Μνήµη 19∆ηµήτρης Ψούνης, Η Γλώσσα C, Μάθηµα 6: Συναρτήσεις και Αναδροµή Είναι σηµαντικό να καταλάβουµε ότι κάθε συνάρτηση έχει το δικό της «χώρο» στη µνήµη, στον οποίο αποθηκεύει τις µεταβλητές της. Για παράδειγµα έστω το τµήµα κώδικα που φαίνεται στα δεξιά Όταν ξεκινάει να εκτελείται ο κώδικας υπάρχει ο χώρος αποθήκευσης µόνο για την main! Έπειτα όταν εκτελείται η εντολή αρχικοποίησης a=5, η κατάσταση της µνήµης είναι: int f(int x); main() { int a=5,b; b=f(a); } int f(int x) { int y; y=x*x; return y; } a b … Χώρος της main a b … Χώρος της main 5
  • 20. A. Συναρτήσεις 3. Πως Λειτουργούν οι Συναρτήσεις 1. Συναρτήσεις και Χώρος στη Μνήµη 20∆ηµήτρης Ψούνης, Η Γλώσσα C, Μάθηµα 6: Συναρτήσεις και Αναδροµή Έπειτα καλείται η f µε όρισµα a. Προσοχή! Αυτό σηµαίνει, ότι δηµιουργείται χώρος αποθήκευσης για την f. Και στον χώρο αποθήκευσης της f, η µεταβλητή x θα πάρει την τιµή του ορίσµατος που βάλαµε, άρα η x θα πάρει την τιµή 5. Είναι σηµαντικό να καταλάβουµε ότι από εδώ και πέρα η x δεν έχει καµία σχέση µε την a. Έχει τον δικό της χώρο µνήµης και την διαχειρίζεται η f. Πλέον στο σώµα της f, καλείται η εντολή y=x*x άρα η y παίρνει την 25 int f(int x); main() { int a=5,b; b=f(a); } int f(int x) { int y; y=x*x; return y; } a b … Χώρος της main 5 Χώρος της f x y 5 a b … Χώρος της main 5 Χώρος της f x y 5 25
  • 21. A. Συναρτήσεις 3. Πως Λειτουργούν οι Συναρτήσεις 1. Συναρτήσεις και Χώρος στη Μνήµη 21∆ηµήτρης Ψούνης, Η Γλώσσα C, Μάθηµα 6: Συναρτήσεις και Αναδροµή Καλείται η εντολή return y. Αυτό σηµαίνει ότι επιστρέφουµε στην main! Πλέον η επιστρεφόµενη τιµή (25) αποθηκεύεται στην µεταβλητή b. Είναι σηµαντικό ότι µετά την επιστροφή τιµής ο χώρος της f, απελευθερώνεται για να µπορεί να χρησιµοποιηθεί από άλλες συναρτήσεις: int f(int x); main() { int a=5,b; b=f(a); } int f(int x) { int y; y=x*x; return y; } a b … Χώρος της main 5 25 • Το παράδειγµα αυτό αναδεικνύει δύο σηµαντικά θέµατα! • Κάθε κλήση συνάρτησης δηµιουργεί τον δικό της χώρο στην µνήµη! • Ο µόνος δίαυλος επικοινωνίας µε την καλούσα συνάρτηση είναι τα ορίσµατα (στην αρχή) και η επιστρεφόµενη τιµή (στο τέλος)
  • 22. A. Συναρτήσεις 3. Πως Λειτουργούν οι Συναρτήσεις 2. Περίπλοκα Ορίσµατα 22∆ηµήτρης Ψούνης, Η Γλώσσα C, Μάθηµα 6: Συναρτήσεις και Αναδροµή Στην πραγµατικότητα η διοχέτευση ορίσµατος: είναι απλά, να αρχικοποιηθεί η τιµή του ορίσµατος µε την τιµή που δίνουµε από την καλούσα συνάρτηση! Έτσι έχουµε το δικαίωµα να θέσουµε ως ορίσµατα οποιαδήποτε παράσταση της C Τότε απλά θα έχουµε ότι θα υπολογιστεί η τιµή του ορίσµατος, και έπειτα η µεταβλητή του ορίσµατος θα πάρει την κατάλληλη τιµή. Για παράδειγµα στο τµήµα κώδικα: Υπολογίζεται πρώτα το όρισµα (είναι η τιµή 10) Έπειτα καλείται η f µε όρισµα την τιµή 10 Ενώ αν η f είναι η συνάρτηση που είδαµε προηγουµένως τότε έχουµε δικαίωµα να γράψουµε ακόµη και το εξής: Όπου υπολογίζεται πρώτα το εσωτερικό f(a) (υπολογίζεται σε 25) και µετά υπολογίζεται το f(25) άρα αποθηκεύεται στο b η τιµή 625. int a=5; int b; b=f(2*a); int a=5; int b; b=f(f(a));
  • 23. A. Συναρτήσεις 3. Πως Λειτουργούν οι Συναρτήσεις 3. Παραπάνω του ενός ορίσµατα 23∆ηµήτρης Ψούνης, Η Γλώσσα C, Μάθηµα 6: Συναρτήσεις και Αναδροµή Αντίστοιχοι είναι οι κανόνες όταν έχουµε µια συνάρτηση που δέχεται πολλά ορίσµατα. Πχ. Αν έχουµε ορίσει την συνάρτηση: Και την καλέσουµε ως εξής: Τότε η τιµή που θέσαµε πρώτη αποθηκεύεται στην µεταβλητή του 1ου ορίσµατος (δηλαδή το x παίρνει την τιµή 1) Η τιµή που θέσαµε δεύτερη αποθηκεύεται στην µεταβλητή του 2ου ορίσµατος (δηλαδή το y παίρνει την τιµή 5) Η τιµή που θέσαµε τρίτη αποθηκεύεται στην µεταβλητή του 3ου ορίσµατος (δηλαδή το z παίρνει την τιµή 10) void func(int x, int y, int z) func(1,5,10)
  • 24. Β. Αναδροµή 1. Κλήση Συνάρτησης µέσα σε Συνάρτηση 24∆ηµήτρης Ψούνης, Η Γλώσσα C, Μάθηµα 6: Συναρτήσεις και Αναδροµή Όπως είδαµε αφού ορίσουµε µια συνάρτηση µπορούµε να την καλέσουµε οπουδήποτε στον κώδικα. Άρα µπορούµε να καλέσουµε µια συνάρτηση που έχουµε ορίσει µέσα σε µια άλλη συνάρτηση! Π.χ. ας ορίσουµε µια συνάρτηση που υπολογίζει την f(x)=2x2 Μπορούµε να ορίσουµε την συνάρτηση g(x)=2x2+x+1 ως εξής: int f(int x) { int y; y=2*x*x; return y; } int g(int x) { int y; y=f(x)+x+1; return y; }
  • 25. Β. Αναδροµή 2. Αναδροµικές Συναρτήσεις 25∆ηµήτρης Ψούνης, Η Γλώσσα C, Μάθηµα 6: Συναρτήσεις και Αναδροµή Ο όρος αναδροµή αναφέρεται σε µια συνάρτηση που καλεί τον εαυτό της! Αυτό είναι απόλυτα νόµιµο και στην C, αφού απλά καλούµε µια συνάρτηση µέσα σε µια συνάρτηση! Άρα µια συνάρτηση που στο σώµα της καλεί τον εαυτό της, θα ονοµάζεται αναδροµική συνάρτηση. Η δηµιουργία µιας αναδροµικής συνάρτησης είναι πολύ χρήσιµη, ιδίως όταν κατασκευάζουµε πράγµατα που ορίζονται αναδροµικά! Ας δούµε ένα παράδειγµα: Το παραγοντικό του φυσικού αριθµού 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
  • 26. Β. Αναδροµή 2. Αναδροµικές Συναρτήσεις 1. Υπολογισµός Παραγοντικού 26∆ηµήτρης Ψούνης, Η Γλώσσα C, Μάθηµα 6: Συναρτήσεις και Αναδροµή /* factorial.c: Ypologizei to paragontiko enos fysikoy */ #include <stdio.h> int factorial(int n); main() { int x; int res; printf("Dwste ton fysiko: "); scanf("%d",&x); res=factorial(x); printf("%d!=%d",x,res); } int factorial(int n) { int y; if (n==1) return 1; else { y=factorial(n-1); return n*y; } }
  • 27. Β. Αναδροµή 2. Αναδροµικές Συναρτήσεις 1. Υπολογισµός Παραγοντικού 27∆ηµήτρης Ψούνης, Η Γλώσσα C, Μάθηµα 6: Συναρτήσεις και Αναδροµή Στον υπολογισµό µίας αναδροµικής συνάρτησης, κάθε αναδροµική κλήση έχει και το δικό της χώρο στη µνήµη. Ας δούµε πως τρέχει η κλήση factorial(3): Καλεί την factorial(2): Καλεί την factorial(1): int fact (int n) { int y; if (n==1) return 1; else{ y=factorial(n-1); return 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
  • 28. Β. Αναδροµή 2. Αναδροµικές Συναρτήσεις 1. Υπολογισµός Παραγοντικού 28∆ηµήτρης Ψούνης, Η Γλώσσα C, Μάθηµα 6: Συναρτήσεις και Αναδροµή H factorial(1) επιστρέφει 1: Η factorial(2) αποθηκεύει το 1 στο y έπειτα επιστρέφει 2*1. Η factorial(2) αποθηκεύει το 1 στο y έπειτα επιστρέφει 3*2 int fact (int n) { int y; if (n==1) return 1; else{ y=factorial(n-1); return 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
  • 29. Β. Αναδροµή 2. Αναδροµικές Συναρτήσεις 1. Υπολογισµός Παραγοντικού 29∆ηµήτρης Ψούνης, Η Γλώσσα C, Μάθηµα 6: Συναρτήσεις και Αναδροµή Για να απεικονίσουµε τις αναδροµικές κλήσεις που γίνονται προτιµάται µία παράσταση όπου κάθε αναδροµική κλήση στοιχίζεται λίγο δεξιότερα. Με τον τρόπο αυτό µπορούµε να παρακολουθήσουµε αρκετά ικανοποιητικά την εκτέλεση ενός αναδροµικού κώδικα: int fact (int n) { int y; if (n==1) return 1; else{ y=factorial(n-1); return n*y; } } ΚΛΗΣΗ fact(3) (3==1) ΟΧΙ y=fact(2) ΚΛΗΣΗ fact(2) (2==1) ΟΧΙ y=fact(1) ΚΛΗΣΗ fact(1) (1==1) ΝΑΙ return 1 y=1 return 2*1=2 y=2 return 3*2=6
  • 30. Γ. Ασκήσεις Εφαρµογή 1 (Συναρτήσεις Ελέγχου Εισόδου) 30∆ηµήτρης Ψούνης, Η Γλώσσα C, Μάθηµα 6: Συναρτήσεις και Αναδροµή Ορίστε την συνάρτηση: int get_integer(int start, int finish): Θα λαµβάνει ως είσοδο ένα εύρος τιµών ακεραίων [start…finish] και θα διαβάζει έναν ακέραιο σε αυτό το εύρος. Θα επιστρέφει τον αριθµό που διαβάστηκε. Ορίστε τη συνάρτηση main να διαβάζει δύο ακέραιους a,b στο διάστηµα 1..10 και έναν ακέραιο n στο διάστηµα 2..5 και θα υπολογίζει την ποσότητα n*(a-b) και θα χρησιµοποιεί τη συνάρτηση που ορίσαµε.
  • 31. Γ. Ασκήσεις Εφαρµογή 2 (Μια Βιβλιοθήκη Μελέτης Αριθµών) 31∆ηµήτρης Ψούνης, Η Γλώσσα C, Μάθηµα 6: Συναρτήσεις και Αναδροµή Ορίζουµε τις συναρτήσεις: int is_even(int n): Θα επιστρέφει 0 ή 1 ανάλογα µε το αν ο αριθµός είναι άρτιος int is_odd(int n): Θα επιστρέφει 0 ή 1 ανάλογα µε το αν ο αριθµός είναι περιττός int is_square(int n): Θα επιστρέφει 0 ή 1 ανάλογα µε το αν ο αριθµός είναι τετράγωνο ενός φυσικού int is_cube(int n): Θα επιστρέφει 0 ή 1 ανάλογα µε το αν ο αριθµός είναι κύβος ενός φυσικού Ορίζουµε την main που θα ζητάει από το χρήστη είτε να εισάγει έναν αριθµό και θα εξετάζει αν ο αριθµός έχει κάποιες από αυτές τις ιδιότητες. Παράδειγµα Εκτέλεσης: Eisagete ton arithmo: 8 Einai Artios Einai Kivos Arithmou Eisagete ton arithmo: 9 Einai Perittos Einai Tetragono Arithmou
  • 32. Γ. Ασκήσεις Εφαρµογή 3 (Πρώτοι Αριθµοί) 32∆ηµήτρης Ψούνης, Η Γλώσσα C, Μάθηµα 6: Συναρτήσεις και Αναδροµή Ένας φυσικός αριθµός λέµε ότι είναι πρώτος αν διαιρείται (ακριβώς) µόνο µε τον εαυτό του και τη µονάδα. Το 1 θεωρείται ότι δεν είναι πρώτος. Κατασκευάστε ένα πρόγραµµα το οποίο: Θα ορίζει µία συνάρτηση µε όνοµα isprime() η οποία θα δέχεται ως όρισµα έναν ακέραιο αριθµό, θα εξετάζει αν είναι πρώτος και θα επιστρέφει 1 αν είναι πρώτος και 0 αν δεν είναι. Η main θα διαβάζει δύο φυσικούς (ελέγχοντας στην είσοδο να είναι >0) που θα ορίζουν την αρχή και το τέλος ενός κλειστού διαστήµατος (π.χ. a=5, b=8) και θα τυπώνει τους φυσικούς σε αυτό το διάστηµα που είναι πρώτοι. Παράδειγµα εκτέλεσης του ζητούµενου προγράµµατος: Eisagete tin arxi tou diastimatos: 5 Eisagete to peras tou diastimatos: 15 To 5 einai prwtos To 7 einai prwtos To 11 einai prwtos To 13 einai prwtos
  • 33. Γ. Ασκήσεις Εφαρµογή 4 (Αναδροµή: Η ακολουθία FIbonacci) 33∆ηµήτρης Ψούνης, Η Γλώσσα C, Μάθηµα 6: Συναρτήσεις και Αναδροµή Η ακολουθία fibonacci ορίζεται ως: Fn=Fn-1+Fn-2, για n>2 F2=1 F1=1 Για παράδειγµα έχουµε F1=1,F2=1,F3=2,F4=3,F5=5,F6=8 κ.ο.κ. Ορίστε την συνάρτηση int fibonacci(int n) που δέχεται ως όρισµα έναν φυσικό και επιστρέφει το n-οστό fibonacci. Έπειτα κατασκευάστε µία main που διαβάζει από τον χρήστη έναν ακέραιο και υπολογίζει και επιστρέφει τον αριθµό fibonacci του αριθµού που εισήγαγε ο χρήστης.
  • 34. Γ. Ασκήσεις Εφαρµογή 5 (Αναδροµή: ΜΚ∆ µε τον αλγόριθµο του Ευκλείδη) 34∆ηµήτρης Ψούνης, Η Γλώσσα C, Μάθηµα 6: Συναρτήσεις και Αναδροµή O αλγόριθµος του Ευκλείδη για την εύρεση του Μέγιστου Κοινού ∆ιαιρέτη δύο (φυσικών) αριθµών: Ξεκινά µε ένα ζεύγος φυσικών και σχηµατίζει ένα νέο ζευγάρι µε τον µικρότερο αριθµό και την διαφορά του µικρότερου από τον µεγαλύτερο αριθµό. Η διαδικασία επαναλαµβάνεται εωσότου οι αριθµοί γίνουν ίσοι. Ο αριθµός αυτός είναι ο ΜΚ∆ των αρχικών αριθµών. Μαθηµατικά ο ΜΚ∆(a,b) όπου a,b είναι φυσικοί: Είναι ίσο µε a, αν a=b Είναι ίσο µε ΜΚ∆(a,b-a), αν a<b Είναι ίσο µε ΜΚ∆(a-b,b), αλλιώς Κατασκευάστε ένα πρόγραµµα σε γλώσσα C που θα υλοποιεί µε µία αναδροµική συνάρτηση τον υπολογισµό του ΜΚ∆ και µία συνάρτηση main που θα ζητάει από το χρήστη να εισάγει τους δύο φυσικούς, θα κάνει κατάλληλη κλήση της συνάρτησης και θα τυπώνει τον ΜΚ∆ των αριθµών.