SlideShare une entreprise Scribd logo
1  sur  34
Télécharger pour lire hors ligne
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 που θα ζητάει από το χρήστη να εισάγει τους
δύο φυσικούς, θα κάνει κατάλληλη κλήση της συνάρτησης και θα τυπώνει τον ΜΚ∆ των
αριθµών.

Contenu connexe

Tendances

ΑΛΓΟΡΙΘΜΟΙ ΣΕ C - ΜΑΘΗΜΑ 2 - ΑΝΑΖΗΤΗΣΗ ΣΤΟΙΧΕΙΟΥ ΣΕ ΠΙΝΑΚΑ
ΑΛΓΟΡΙΘΜΟΙ ΣΕ C - ΜΑΘΗΜΑ 2 - ΑΝΑΖΗΤΗΣΗ ΣΤΟΙΧΕΙΟΥ ΣΕ ΠΙΝΑΚΑ ΑΛΓΟΡΙΘΜΟΙ ΣΕ C - ΜΑΘΗΜΑ 2 - ΑΝΑΖΗΤΗΣΗ ΣΤΟΙΧΕΙΟΥ ΣΕ ΠΙΝΑΚΑ
ΑΛΓΟΡΙΘΜΟΙ ΣΕ C - ΜΑΘΗΜΑ 2 - ΑΝΑΖΗΤΗΣΗ ΣΤΟΙΧΕΙΟΥ ΣΕ ΠΙΝΑΚΑ Dimitris Psounis
 
ΓΛΩΣΣΑ C - ΜΑΘΗΜΑ 11
ΓΛΩΣΣΑ C - ΜΑΘΗΜΑ 11ΓΛΩΣΣΑ C - ΜΑΘΗΜΑ 11
ΓΛΩΣΣΑ C - ΜΑΘΗΜΑ 11Dimitris Psounis
 
Η ΓΛΩΣΣΑ C - ΜΑΘΗΜΑ 16 - ΣΥΝΑΡΤΗΣΕΙΣ ΕΞΟΔΟΥ (ΕΚΤΥΠΩΣΗ)
Η ΓΛΩΣΣΑ C - ΜΑΘΗΜΑ 16 - ΣΥΝΑΡΤΗΣΕΙΣ ΕΞΟΔΟΥ (ΕΚΤΥΠΩΣΗ)Η ΓΛΩΣΣΑ C - ΜΑΘΗΜΑ 16 - ΣΥΝΑΡΤΗΣΕΙΣ ΕΞΟΔΟΥ (ΕΚΤΥΠΩΣΗ)
Η ΓΛΩΣΣΑ C - ΜΑΘΗΜΑ 16 - ΣΥΝΑΡΤΗΣΕΙΣ ΕΞΟΔΟΥ (ΕΚΤΥΠΩΣΗ)Dimitris Psounis
 
ΓΛΩΣΣΑ C - ΜΑΘΗΜΑ 5 - ΔΟΜΕΣ ΕΠΑΝΑΛΗΨΗΣ
ΓΛΩΣΣΑ C - ΜΑΘΗΜΑ 5 - ΔΟΜΕΣ ΕΠΑΝΑΛΗΨΗΣΓΛΩΣΣΑ C - ΜΑΘΗΜΑ 5 - ΔΟΜΕΣ ΕΠΑΝΑΛΗΨΗΣ
ΓΛΩΣΣΑ C - ΜΑΘΗΜΑ 5 - ΔΟΜΕΣ ΕΠΑΝΑΛΗΨΗΣDimitris Psounis
 
ΑΛΓΟΡΙΘΜΟΙ ΣΕ C - ΜΑΘΗΜΑ 1 - ΔΙΑΠΕΡΑΣΗ ΠΙΝΑΚΑ
ΑΛΓΟΡΙΘΜΟΙ ΣΕ C - ΜΑΘΗΜΑ 1 - ΔΙΑΠΕΡΑΣΗ ΠΙΝΑΚΑΑΛΓΟΡΙΘΜΟΙ ΣΕ C - ΜΑΘΗΜΑ 1 - ΔΙΑΠΕΡΑΣΗ ΠΙΝΑΚΑ
ΑΛΓΟΡΙΘΜΟΙ ΣΕ C - ΜΑΘΗΜΑ 1 - ΔΙΑΠΕΡΑΣΗ ΠΙΝΑΚΑDimitris Psounis
 
Η ΓΛΩΣΣΑ C - ΜΑΘΗΜΑ 15 - ΣΥΝΑΡΤΗΣΕΙΣ ΕΙΣΟΔΟΥ
Η ΓΛΩΣΣΑ C - ΜΑΘΗΜΑ 15 - ΣΥΝΑΡΤΗΣΕΙΣ ΕΙΣΟΔΟΥΗ ΓΛΩΣΣΑ C - ΜΑΘΗΜΑ 15 - ΣΥΝΑΡΤΗΣΕΙΣ ΕΙΣΟΔΟΥ
Η ΓΛΩΣΣΑ C - ΜΑΘΗΜΑ 15 - ΣΥΝΑΡΤΗΣΕΙΣ ΕΙΣΟΔΟΥDimitris Psounis
 
ΓΛΩΣΣΑ C - ΜΑΘΗΜΑ 10
ΓΛΩΣΣΑ C - ΜΑΘΗΜΑ 10 ΓΛΩΣΣΑ C - ΜΑΘΗΜΑ 10
ΓΛΩΣΣΑ C - ΜΑΘΗΜΑ 10 Dimitris Psounis
 
ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ ΣΕ C - ΜΑΘΗΜΑ 2
ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ ΣΕ C - ΜΑΘΗΜΑ 2 ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ ΣΕ C - ΜΑΘΗΜΑ 2
ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ ΣΕ C - ΜΑΘΗΜΑ 2 Dimitris Psounis
 
ΓΛΩΣΣΑ C - ΜΑΘΗΜΑ 18
ΓΛΩΣΣΑ C - ΜΑΘΗΜΑ 18 ΓΛΩΣΣΑ C - ΜΑΘΗΜΑ 18
ΓΛΩΣΣΑ C - ΜΑΘΗΜΑ 18 Dimitris Psounis
 
ΑΛΓΟΡΙΘΜΟΙ ΣΕ C - ΜΑΘΗΜΑ 3
ΑΛΓΟΡΙΘΜΟΙ ΣΕ C - ΜΑΘΗΜΑ 3ΑΛΓΟΡΙΘΜΟΙ ΣΕ C - ΜΑΘΗΜΑ 3
ΑΛΓΟΡΙΘΜΟΙ ΣΕ C - ΜΑΘΗΜΑ 3Dimitris Psounis
 
Η ΓΛΩΣΣΑ C - ΜΑΘΗΜΑ 12
Η ΓΛΩΣΣΑ C - ΜΑΘΗΜΑ 12Η ΓΛΩΣΣΑ C - ΜΑΘΗΜΑ 12
Η ΓΛΩΣΣΑ C - ΜΑΘΗΜΑ 12Dimitris Psounis
 
ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ ΣΕ C - ΜΑΘΗΜΑ 8
ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ ΣΕ C - ΜΑΘΗΜΑ 8ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ ΣΕ C - ΜΑΘΗΜΑ 8
ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ ΣΕ C - ΜΑΘΗΜΑ 8Dimitris Psounis
 
ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ ΣΕ C - ΜΑΘΗΜΑ 3
ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ ΣΕ C - ΜΑΘΗΜΑ 3 ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ ΣΕ C - ΜΑΘΗΜΑ 3
ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ ΣΕ C - ΜΑΘΗΜΑ 3 Dimitris Psounis
 
ΓΛΩΣΣΑ C - ΜΑΘΗΜΑ 17 - ΕΠΙΚΟΙΝΩΝΙΑ ΜΕ ΤΟ ΛΕΙΤΟΥΡΓΙΚΟ ΣΥΣΤΗΜΑ
ΓΛΩΣΣΑ C - ΜΑΘΗΜΑ 17 - ΕΠΙΚΟΙΝΩΝΙΑ ΜΕ ΤΟ ΛΕΙΤΟΥΡΓΙΚΟ ΣΥΣΤΗΜΑΓΛΩΣΣΑ C - ΜΑΘΗΜΑ 17 - ΕΠΙΚΟΙΝΩΝΙΑ ΜΕ ΤΟ ΛΕΙΤΟΥΡΓΙΚΟ ΣΥΣΤΗΜΑ
ΓΛΩΣΣΑ C - ΜΑΘΗΜΑ 17 - ΕΠΙΚΟΙΝΩΝΙΑ ΜΕ ΤΟ ΛΕΙΤΟΥΡΓΙΚΟ ΣΥΣΤΗΜΑDimitris Psounis
 
ΠΛΗ10 ΜΑΘΗΜΑ 1.3 (ΕΚΤΥΠΩΣΗ)
ΠΛΗ10 ΜΑΘΗΜΑ 1.3 (ΕΚΤΥΠΩΣΗ)ΠΛΗ10 ΜΑΘΗΜΑ 1.3 (ΕΚΤΥΠΩΣΗ)
ΠΛΗ10 ΜΑΘΗΜΑ 1.3 (ΕΚΤΥΠΩΣΗ)Dimitris Psounis
 
ΠΛΗ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
 

Tendances (20)

ΑΛΓΟΡΙΘΜΟΙ ΣΕ C - ΜΑΘΗΜΑ 2 - ΑΝΑΖΗΤΗΣΗ ΣΤΟΙΧΕΙΟΥ ΣΕ ΠΙΝΑΚΑ
ΑΛΓΟΡΙΘΜΟΙ ΣΕ C - ΜΑΘΗΜΑ 2 - ΑΝΑΖΗΤΗΣΗ ΣΤΟΙΧΕΙΟΥ ΣΕ ΠΙΝΑΚΑ ΑΛΓΟΡΙΘΜΟΙ ΣΕ C - ΜΑΘΗΜΑ 2 - ΑΝΑΖΗΤΗΣΗ ΣΤΟΙΧΕΙΟΥ ΣΕ ΠΙΝΑΚΑ
ΑΛΓΟΡΙΘΜΟΙ ΣΕ C - ΜΑΘΗΜΑ 2 - ΑΝΑΖΗΤΗΣΗ ΣΤΟΙΧΕΙΟΥ ΣΕ ΠΙΝΑΚΑ
 
ΓΛΩΣΣΑ C - ΜΑΘΗΜΑ 11
ΓΛΩΣΣΑ C - ΜΑΘΗΜΑ 11ΓΛΩΣΣΑ C - ΜΑΘΗΜΑ 11
ΓΛΩΣΣΑ C - ΜΑΘΗΜΑ 11
 
Η ΓΛΩΣΣΑ C - ΜΑΘΗΜΑ 16 - ΣΥΝΑΡΤΗΣΕΙΣ ΕΞΟΔΟΥ (ΕΚΤΥΠΩΣΗ)
Η ΓΛΩΣΣΑ C - ΜΑΘΗΜΑ 16 - ΣΥΝΑΡΤΗΣΕΙΣ ΕΞΟΔΟΥ (ΕΚΤΥΠΩΣΗ)Η ΓΛΩΣΣΑ C - ΜΑΘΗΜΑ 16 - ΣΥΝΑΡΤΗΣΕΙΣ ΕΞΟΔΟΥ (ΕΚΤΥΠΩΣΗ)
Η ΓΛΩΣΣΑ C - ΜΑΘΗΜΑ 16 - ΣΥΝΑΡΤΗΣΕΙΣ ΕΞΟΔΟΥ (ΕΚΤΥΠΩΣΗ)
 
ΓΛΩΣΣΑ C - ΜΑΘΗΜΑ 5 - ΔΟΜΕΣ ΕΠΑΝΑΛΗΨΗΣ
ΓΛΩΣΣΑ C - ΜΑΘΗΜΑ 5 - ΔΟΜΕΣ ΕΠΑΝΑΛΗΨΗΣΓΛΩΣΣΑ C - ΜΑΘΗΜΑ 5 - ΔΟΜΕΣ ΕΠΑΝΑΛΗΨΗΣ
ΓΛΩΣΣΑ C - ΜΑΘΗΜΑ 5 - ΔΟΜΕΣ ΕΠΑΝΑΛΗΨΗΣ
 
ΑΛΓΟΡΙΘΜΟΙ ΣΕ C - ΜΑΘΗΜΑ 1 - ΔΙΑΠΕΡΑΣΗ ΠΙΝΑΚΑ
ΑΛΓΟΡΙΘΜΟΙ ΣΕ C - ΜΑΘΗΜΑ 1 - ΔΙΑΠΕΡΑΣΗ ΠΙΝΑΚΑΑΛΓΟΡΙΘΜΟΙ ΣΕ C - ΜΑΘΗΜΑ 1 - ΔΙΑΠΕΡΑΣΗ ΠΙΝΑΚΑ
ΑΛΓΟΡΙΘΜΟΙ ΣΕ C - ΜΑΘΗΜΑ 1 - ΔΙΑΠΕΡΑΣΗ ΠΙΝΑΚΑ
 
Η ΓΛΩΣΣΑ C - ΜΑΘΗΜΑ 15 - ΣΥΝΑΡΤΗΣΕΙΣ ΕΙΣΟΔΟΥ
Η ΓΛΩΣΣΑ C - ΜΑΘΗΜΑ 15 - ΣΥΝΑΡΤΗΣΕΙΣ ΕΙΣΟΔΟΥΗ ΓΛΩΣΣΑ C - ΜΑΘΗΜΑ 15 - ΣΥΝΑΡΤΗΣΕΙΣ ΕΙΣΟΔΟΥ
Η ΓΛΩΣΣΑ C - ΜΑΘΗΜΑ 15 - ΣΥΝΑΡΤΗΣΕΙΣ ΕΙΣΟΔΟΥ
 
ΓΛΩΣΣΑ C - ΜΑΘΗΜΑ 10
ΓΛΩΣΣΑ C - ΜΑΘΗΜΑ 10 ΓΛΩΣΣΑ C - ΜΑΘΗΜΑ 10
ΓΛΩΣΣΑ C - ΜΑΘΗΜΑ 10
 
ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ ΣΕ C - ΜΑΘΗΜΑ 2
ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ ΣΕ C - ΜΑΘΗΜΑ 2 ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ ΣΕ C - ΜΑΘΗΜΑ 2
ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ ΣΕ C - ΜΑΘΗΜΑ 2
 
ΓΛΩΣΣΑ C - ΜΑΘΗΜΑ 18
ΓΛΩΣΣΑ C - ΜΑΘΗΜΑ 18 ΓΛΩΣΣΑ C - ΜΑΘΗΜΑ 18
ΓΛΩΣΣΑ C - ΜΑΘΗΜΑ 18
 
ΠΛΗ10 ΜΑΘΗΜΑ 2.5
ΠΛΗ10 ΜΑΘΗΜΑ 2.5ΠΛΗ10 ΜΑΘΗΜΑ 2.5
ΠΛΗ10 ΜΑΘΗΜΑ 2.5
 
ΑΛΓΟΡΙΘΜΟΙ ΣΕ C - ΜΑΘΗΜΑ 3
ΑΛΓΟΡΙΘΜΟΙ ΣΕ C - ΜΑΘΗΜΑ 3ΑΛΓΟΡΙΘΜΟΙ ΣΕ C - ΜΑΘΗΜΑ 3
ΑΛΓΟΡΙΘΜΟΙ ΣΕ C - ΜΑΘΗΜΑ 3
 
ΠΛΗ20 ΜΑΘΗΜΑ 4.2
ΠΛΗ20 ΜΑΘΗΜΑ 4.2ΠΛΗ20 ΜΑΘΗΜΑ 4.2
ΠΛΗ20 ΜΑΘΗΜΑ 4.2
 
Η ΓΛΩΣΣΑ C - ΜΑΘΗΜΑ 12
Η ΓΛΩΣΣΑ C - ΜΑΘΗΜΑ 12Η ΓΛΩΣΣΑ C - ΜΑΘΗΜΑ 12
Η ΓΛΩΣΣΑ C - ΜΑΘΗΜΑ 12
 
ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ ΣΕ C - ΜΑΘΗΜΑ 8
ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ ΣΕ C - ΜΑΘΗΜΑ 8ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ ΣΕ C - ΜΑΘΗΜΑ 8
ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ ΣΕ C - ΜΑΘΗΜΑ 8
 
ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ ΣΕ C - ΜΑΘΗΜΑ 3
ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ ΣΕ C - ΜΑΘΗΜΑ 3 ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ ΣΕ C - ΜΑΘΗΜΑ 3
ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ ΣΕ C - ΜΑΘΗΜΑ 3
 
ΓΛΩΣΣΑ C - ΜΑΘΗΜΑ 17 - ΕΠΙΚΟΙΝΩΝΙΑ ΜΕ ΤΟ ΛΕΙΤΟΥΡΓΙΚΟ ΣΥΣΤΗΜΑ
ΓΛΩΣΣΑ C - ΜΑΘΗΜΑ 17 - ΕΠΙΚΟΙΝΩΝΙΑ ΜΕ ΤΟ ΛΕΙΤΟΥΡΓΙΚΟ ΣΥΣΤΗΜΑΓΛΩΣΣΑ C - ΜΑΘΗΜΑ 17 - ΕΠΙΚΟΙΝΩΝΙΑ ΜΕ ΤΟ ΛΕΙΤΟΥΡΓΙΚΟ ΣΥΣΤΗΜΑ
ΓΛΩΣΣΑ C - ΜΑΘΗΜΑ 17 - ΕΠΙΚΟΙΝΩΝΙΑ ΜΕ ΤΟ ΛΕΙΤΟΥΡΓΙΚΟ ΣΥΣΤΗΜΑ
 
ΠΛΗ10 ΜΑΘΗΜΑ 1.3 (ΕΚΤΥΠΩΣΗ)
ΠΛΗ10 ΜΑΘΗΜΑ 1.3 (ΕΚΤΥΠΩΣΗ)ΠΛΗ10 ΜΑΘΗΜΑ 1.3 (ΕΚΤΥΠΩΣΗ)
ΠΛΗ10 ΜΑΘΗΜΑ 1.3 (ΕΚΤΥΠΩΣΗ)
 
ΠΛΗ10 ΜΑΘΗΜΑ 2.6
ΠΛΗ10 ΜΑΘΗΜΑ 2.6 ΠΛΗ10 ΜΑΘΗΜΑ 2.6
ΠΛΗ10 ΜΑΘΗΜΑ 2.6
 
ΠΛΗ10 ΜΑΘΗΜΑ 1.5
ΠΛΗ10 ΜΑΘΗΜΑ 1.5ΠΛΗ10 ΜΑΘΗΜΑ 1.5
ΠΛΗ10 ΜΑΘΗΜΑ 1.5
 
ΠΛΗ10 ΜΑΘΗΜΑ 2.7
ΠΛΗ10 ΜΑΘΗΜΑ 2.7 ΠΛΗ10 ΜΑΘΗΜΑ 2.7
ΠΛΗ10 ΜΑΘΗΜΑ 2.7
 

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

Η ΓΛΩΣΣΑ C - ΜΑΘΗΜΑ 13 - ΔΟΜΕΣ
Η ΓΛΩΣΣΑ C - ΜΑΘΗΜΑ 13 - ΔΟΜΕΣΗ ΓΛΩΣΣΑ C - ΜΑΘΗΜΑ 13 - ΔΟΜΕΣ
Η ΓΛΩΣΣΑ C - ΜΑΘΗΜΑ 13 - ΔΟΜΕΣDimitris Psounis
 
ΑΕΠΠ: 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 Βασικές Έννοιες ΑλγορίθμωνΙωάννου Γιαννάκης
 

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

Η ΓΛΩΣΣΑ C - ΜΑΘΗΜΑ 13 - ΔΟΜΕΣ
Η ΓΛΩΣΣΑ C - ΜΑΘΗΜΑ 13 - ΔΟΜΕΣΗ ΓΛΩΣΣΑ C - ΜΑΘΗΜΑ 13 - ΔΟΜΕΣ
Η ΓΛΩΣΣΑ C - ΜΑΘΗΜΑ 13 - ΔΟΜΕΣ
 
ΑΕΠΠ: 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
 

Plus de 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 - ΜΑΘΗΜΑ 7
ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ ΣΕ C - ΜΑΘΗΜΑ 7ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ ΣΕ C - ΜΑΘΗΜΑ 7
ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ ΣΕ C - ΜΑΘΗΜΑ 7Dimitris Psounis
 
ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ ΣΕ C - ΜΑΘΗΜΑ 8 (ΕΚΤΥΠΩΣΗ)
ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ ΣΕ C - ΜΑΘΗΜΑ 8 (ΕΚΤΥΠΩΣΗ)ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ ΣΕ C - ΜΑΘΗΜΑ 8 (ΕΚΤΥΠΩΣΗ)
ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ ΣΕ C - ΜΑΘΗΜΑ 8 (ΕΚΤΥΠΩΣΗ)Dimitris Psounis
 
ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ ΣΕ C - ΜΑΘΗΜΑ 7 (ΕΚΤΥΠΩΣΗ)
ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ ΣΕ C - ΜΑΘΗΜΑ 7 (ΕΚΤΥΠΩΣΗ)ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ ΣΕ C - ΜΑΘΗΜΑ 7 (ΕΚΤΥΠΩΣΗ)
ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ ΣΕ C - ΜΑΘΗΜΑ 7 (ΕΚΤΥΠΩΣΗ)Dimitris Psounis
 
ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ ΣΕ C - ΜΑΘΗΜΑ 6
ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ ΣΕ C - ΜΑΘΗΜΑ 6 ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ ΣΕ C - ΜΑΘΗΜΑ 6
ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ ΣΕ C - ΜΑΘΗΜΑ 6 Dimitris Psounis
 
ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ ΣΕ C - ΜΑΘΗΜΑ 6 (ΕΚΤΥΠΩΣΗ)
ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ ΣΕ C - ΜΑΘΗΜΑ 6 (ΕΚΤΥΠΩΣΗ)ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ ΣΕ C - ΜΑΘΗΜΑ 6 (ΕΚΤΥΠΩΣΗ)
ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ ΣΕ C - ΜΑΘΗΜΑ 6 (ΕΚΤΥΠΩΣΗ)Dimitris Psounis
 

Plus de 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 - ΜΑΘΗΜΑ 7
ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ ΣΕ C - ΜΑΘΗΜΑ 7ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ ΣΕ C - ΜΑΘΗΜΑ 7
ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ ΣΕ C - ΜΑΘΗΜΑ 7
 
ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ ΣΕ 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 (ΕΚΤΥΠΩΣΗ)
 

Dernier

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
 
Γιορτή της μητέρας-Φύλλα εργασιών για όλες τις τάξεις
Γιορτή της μητέρας-Φύλλα εργασιών για όλες τις τάξειςΓιορτή της μητέρας-Φύλλα εργασιών για όλες τις τάξεις
Γιορτή της μητέρας-Φύλλα εργασιών για όλες τις τάξειςΟΛΓΑ ΤΣΕΧΕΛΙΔΟΥ
 
Μαθητικές καταλήψεις
Μαθητικές                                  καταλήψειςΜαθητικές                                  καταλήψεις
Μαθητικές καταλήψειςDimitra Mylonaki
 
Η ΑΔΙΚΕΙΑ ΤΟΥ ΔΙΑΓΩΝΙΣΜΟΥ ΑΣΕΠ ΕΚΠΑΙΔΕΥΤΙΚΩΝ 2008
Η ΑΔΙΚΕΙΑ ΤΟΥ ΔΙΑΓΩΝΙΣΜΟΥ ΑΣΕΠ ΕΚΠΑΙΔΕΥΤΙΚΩΝ  2008Η ΑΔΙΚΕΙΑ ΤΟΥ ΔΙΑΓΩΝΙΣΜΟΥ ΑΣΕΠ ΕΚΠΑΙΔΕΥΤΙΚΩΝ  2008
Η ΑΔΙΚΕΙΑ ΤΟΥ ΔΙΑΓΩΝΙΣΜΟΥ ΑΣΕΠ ΕΚΠΑΙΔΕΥΤΙΚΩΝ 2008Θεόδωρος Μαραγκούλας
 
Επίσκεψη στο 10ο Γυμνάσιο Πάτρας
Επίσκεψη          στο 10ο Γυμνάσιο ΠάτραςΕπίσκεψη          στο 10ο Γυμνάσιο Πάτρας
Επίσκεψη στο 10ο Γυμνάσιο ΠάτραςDimitra Mylonaki
 
Μια νύχτα σε κατάστημα παιχνιδιώνΚΕΙΜΕΝΑ
Μια νύχτα σε κατάστημα παιχνιδιώνΚΕΙΜΕΝΑΜια νύχτα σε κατάστημα παιχνιδιώνΚΕΙΜΕΝΑ
Μια νύχτα σε κατάστημα παιχνιδιώνΚΕΙΜΕΝΑDimitra Mylonaki
 
Πασχαλινά αυγά από τη Β΄ τάξη του σχολείου μας.pptx
Πασχαλινά αυγά από τη Β΄ τάξη του σχολείου μας.pptxΠασχαλινά αυγά από τη Β΄ τάξη του σχολείου μας.pptx
Πασχαλινά αυγά από τη Β΄ τάξη του σχολείου μας.pptx36dimperist
 
Μαθητικά συμβούλια .
Μαθητικά συμβούλια                                  .Μαθητικά συμβούλια                                  .
Μαθητικά συμβούλια .Dimitra Mylonaki
 
9.SPSS και δείκτες περιγραφικής στατιστικής.pdf
9.SPSS και δείκτες περιγραφικής στατιστικής.pdf9.SPSS και δείκτες περιγραφικής στατιστικής.pdf
9.SPSS και δείκτες περιγραφικής στατιστικής.pdfssuser2f8893
 
2η Διεθνική Συνάντηση μαθητών και καθηγητών στο Σαλέρνο της Ιταλίας
2η Διεθνική Συνάντηση μαθητών και καθηγητών στο Σαλέρνο της Ιταλίας2η Διεθνική Συνάντηση μαθητών και καθηγητών στο Σαλέρνο της Ιταλίας
2η Διεθνική Συνάντηση μαθητών και καθηγητών στο Σαλέρνο της ΙταλίαςKonstantina Katirtzi
 
5ο Κεφάλαιο - Το Λογισμικό του Υπολογιστή.pptx
5ο Κεφάλαιο - Το Λογισμικό του Υπολογιστή.pptx5ο Κεφάλαιο - Το Λογισμικό του Υπολογιστή.pptx
5ο Κεφάλαιο - Το Λογισμικό του Υπολογιστή.pptxAthina Tziaki
 
Η Κινέζικη Αστρολογία - Ημερολόγιο - Ζώδια.docx
Η Κινέζικη Αστρολογία - Ημερολόγιο - Ζώδια.docxΗ Κινέζικη Αστρολογία - Ημερολόγιο - Ζώδια.docx
Η Κινέζικη Αστρολογία - Ημερολόγιο - Ζώδια.docxeucharis
 
Πασχαλινές λαμπάδες από τη Δ΄ τάξη του σχολείου μας.pptx
Πασχαλινές λαμπάδες από τη Δ΄ τάξη του σχολείου μας.pptxΠασχαλινές λαμπάδες από τη Δ΄ τάξη του σχολείου μας.pptx
Πασχαλινές λαμπάδες από τη Δ΄ τάξη του σχολείου μας.pptx36dimperist
 
Σουρεαλιστικά ταξίδια μέσα από την τέχνη
Σουρεαλιστικά ταξίδια μέσα από την τέχνηΣουρεαλιστικά ταξίδια μέσα από την τέχνη
Σουρεαλιστικά ταξίδια μέσα από την τέχνηTheodora Chandrinou
 
Πασχαλινές Λαμπάδες από ΣΤ τάξη του σχολείου μας.pptx
Πασχαλινές Λαμπάδες από ΣΤ τάξη του σχολείου μας.pptxΠασχαλινές Λαμπάδες από ΣΤ τάξη του σχολείου μας.pptx
Πασχαλινές Λαμπάδες από ΣΤ τάξη του σχολείου μας.pptx36dimperist
 
ΙΣΤΟΡΙΑ Α' ΓΥΜΝΑΣΙΟΥ : ΕΠΑΝΑΛΗΠΤΙΚΕΣ ΑΣΚΗΣΕΙΣ ΜΕΡΟΣ 2ο
ΙΣΤΟΡΙΑ Α' ΓΥΜΝΑΣΙΟΥ : ΕΠΑΝΑΛΗΠΤΙΚΕΣ ΑΣΚΗΣΕΙΣ ΜΕΡΟΣ 2οΙΣΤΟΡΙΑ Α' ΓΥΜΝΑΣΙΟΥ : ΕΠΑΝΑΛΗΠΤΙΚΕΣ ΑΣΚΗΣΕΙΣ ΜΕΡΟΣ 2ο
ΙΣΤΟΡΙΑ Α' ΓΥΜΝΑΣΙΟΥ : ΕΠΑΝΑΛΗΠΤΙΚΕΣ ΑΣΚΗΣΕΙΣ ΜΕΡΟΣ 2οΧρύσα Παπακωνσταντίνου
 
Επίσκεψη στο 11ο Γυμνάσιο Πάτρας
Επίσκεψη              στο 11ο Γυμνάσιο ΠάτραςΕπίσκεψη              στο 11ο Γυμνάσιο Πάτρας
Επίσκεψη στο 11ο Γυμνάσιο ΠάτραςDimitra Mylonaki
 
Επίσκεψη στο 12ο Γυμνάσιο Πάτρας
Επίσκεψη          στο 12ο Γυμνάσιο ΠάτραςΕπίσκεψη          στο 12ο Γυμνάσιο Πάτρας
Επίσκεψη στο 12ο Γυμνάσιο ΠάτραςDimitra Mylonaki
 

Dernier (20)

ΙΣΤΟΡΙΑ Α΄ΓΥΜΝΑΣΙΟΥ : ΕΠΑΝΑΛΗΨΗ 2024
ΙΣΤΟΡΙΑ Α΄ΓΥΜΝΑΣΙΟΥ  : ΕΠΑΝΑΛΗΨΗ 2024ΙΣΤΟΡΙΑ Α΄ΓΥΜΝΑΣΙΟΥ  : ΕΠΑΝΑΛΗΨΗ 2024
ΙΣΤΟΡΙΑ Α΄ΓΥΜΝΑΣΙΟΥ : ΕΠΑΝΑΛΗΨΗ 2024
 
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
 
Γιορτή της μητέρας-Φύλλα εργασιών για όλες τις τάξεις
Γιορτή της μητέρας-Φύλλα εργασιών για όλες τις τάξειςΓιορτή της μητέρας-Φύλλα εργασιών για όλες τις τάξεις
Γιορτή της μητέρας-Φύλλα εργασιών για όλες τις τάξεις
 
Μαθητικές καταλήψεις
Μαθητικές                                  καταλήψειςΜαθητικές                                  καταλήψεις
Μαθητικές καταλήψεις
 
Η ΑΔΙΚΕΙΑ ΤΟΥ ΔΙΑΓΩΝΙΣΜΟΥ ΑΣΕΠ ΕΚΠΑΙΔΕΥΤΙΚΩΝ 2008
Η ΑΔΙΚΕΙΑ ΤΟΥ ΔΙΑΓΩΝΙΣΜΟΥ ΑΣΕΠ ΕΚΠΑΙΔΕΥΤΙΚΩΝ  2008Η ΑΔΙΚΕΙΑ ΤΟΥ ΔΙΑΓΩΝΙΣΜΟΥ ΑΣΕΠ ΕΚΠΑΙΔΕΥΤΙΚΩΝ  2008
Η ΑΔΙΚΕΙΑ ΤΟΥ ΔΙΑΓΩΝΙΣΜΟΥ ΑΣΕΠ ΕΚΠΑΙΔΕΥΤΙΚΩΝ 2008
 
Επίσκεψη στο 10ο Γυμνάσιο Πάτρας
Επίσκεψη          στο 10ο Γυμνάσιο ΠάτραςΕπίσκεψη          στο 10ο Γυμνάσιο Πάτρας
Επίσκεψη στο 10ο Γυμνάσιο Πάτρας
 
Μια νύχτα σε κατάστημα παιχνιδιώνΚΕΙΜΕΝΑ
Μια νύχτα σε κατάστημα παιχνιδιώνΚΕΙΜΕΝΑΜια νύχτα σε κατάστημα παιχνιδιώνΚΕΙΜΕΝΑ
Μια νύχτα σε κατάστημα παιχνιδιώνΚΕΙΜΕΝΑ
 
Πασχαλινά αυγά από τη Β΄ τάξη του σχολείου μας.pptx
Πασχαλινά αυγά από τη Β΄ τάξη του σχολείου μας.pptxΠασχαλινά αυγά από τη Β΄ τάξη του σχολείου μας.pptx
Πασχαλινά αυγά από τη Β΄ τάξη του σχολείου μας.pptx
 
Μαθητικά συμβούλια .
Μαθητικά συμβούλια                                  .Μαθητικά συμβούλια                                  .
Μαθητικά συμβούλια .
 
9.SPSS και δείκτες περιγραφικής στατιστικής.pdf
9.SPSS και δείκτες περιγραφικής στατιστικής.pdf9.SPSS και δείκτες περιγραφικής στατιστικής.pdf
9.SPSS και δείκτες περιγραφικής στατιστικής.pdf
 
2η Διεθνική Συνάντηση μαθητών και καθηγητών στο Σαλέρνο της Ιταλίας
2η Διεθνική Συνάντηση μαθητών και καθηγητών στο Σαλέρνο της Ιταλίας2η Διεθνική Συνάντηση μαθητών και καθηγητών στο Σαλέρνο της Ιταλίας
2η Διεθνική Συνάντηση μαθητών και καθηγητών στο Σαλέρνο της Ιταλίας
 
5ο Κεφάλαιο - Το Λογισμικό του Υπολογιστή.pptx
5ο Κεφάλαιο - Το Λογισμικό του Υπολογιστή.pptx5ο Κεφάλαιο - Το Λογισμικό του Υπολογιστή.pptx
5ο Κεφάλαιο - Το Λογισμικό του Υπολογιστή.pptx
 
Η Κινέζικη Αστρολογία - Ημερολόγιο - Ζώδια.docx
Η Κινέζικη Αστρολογία - Ημερολόγιο - Ζώδια.docxΗ Κινέζικη Αστρολογία - Ημερολόγιο - Ζώδια.docx
Η Κινέζικη Αστρολογία - Ημερολόγιο - Ζώδια.docx
 
Σεβασμός .
Σεβασμός                                   .Σεβασμός                                   .
Σεβασμός .
 
Πασχαλινές λαμπάδες από τη Δ΄ τάξη του σχολείου μας.pptx
Πασχαλινές λαμπάδες από τη Δ΄ τάξη του σχολείου μας.pptxΠασχαλινές λαμπάδες από τη Δ΄ τάξη του σχολείου μας.pptx
Πασχαλινές λαμπάδες από τη Δ΄ τάξη του σχολείου μας.pptx
 
Σουρεαλιστικά ταξίδια μέσα από την τέχνη
Σουρεαλιστικά ταξίδια μέσα από την τέχνηΣουρεαλιστικά ταξίδια μέσα από την τέχνη
Σουρεαλιστικά ταξίδια μέσα από την τέχνη
 
Πασχαλινές Λαμπάδες από ΣΤ τάξη του σχολείου μας.pptx
Πασχαλινές Λαμπάδες από ΣΤ τάξη του σχολείου μας.pptxΠασχαλινές Λαμπάδες από ΣΤ τάξη του σχολείου μας.pptx
Πασχαλινές Λαμπάδες από ΣΤ τάξη του σχολείου μας.pptx
 
ΙΣΤΟΡΙΑ Α' ΓΥΜΝΑΣΙΟΥ : ΕΠΑΝΑΛΗΠΤΙΚΕΣ ΑΣΚΗΣΕΙΣ ΜΕΡΟΣ 2ο
ΙΣΤΟΡΙΑ Α' ΓΥΜΝΑΣΙΟΥ : ΕΠΑΝΑΛΗΠΤΙΚΕΣ ΑΣΚΗΣΕΙΣ ΜΕΡΟΣ 2οΙΣΤΟΡΙΑ Α' ΓΥΜΝΑΣΙΟΥ : ΕΠΑΝΑΛΗΠΤΙΚΕΣ ΑΣΚΗΣΕΙΣ ΜΕΡΟΣ 2ο
ΙΣΤΟΡΙΑ Α' ΓΥΜΝΑΣΙΟΥ : ΕΠΑΝΑΛΗΠΤΙΚΕΣ ΑΣΚΗΣΕΙΣ ΜΕΡΟΣ 2ο
 
Επίσκεψη στο 11ο Γυμνάσιο Πάτρας
Επίσκεψη              στο 11ο Γυμνάσιο ΠάτραςΕπίσκεψη              στο 11ο Γυμνάσιο Πάτρας
Επίσκεψη στο 11ο Γυμνάσιο Πάτρας
 
Επίσκεψη στο 12ο Γυμνάσιο Πάτρας
Επίσκεψη          στο 12ο Γυμνάσιο ΠάτραςΕπίσκεψη          στο 12ο Γυμνάσιο Πάτρας
Επίσκεψη στο 12ο Γυμνάσιο Πάτρας
 

ΓΛΩΣΣΑ 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 που θα ζητάει από το χρήστη να εισάγει τους δύο φυσικούς, θα κάνει κατάλληλη κλήση της συνάρτησης και θα τυπώνει τον ΜΚ∆ των αριθµών.