ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ Ανώτατο Εκπαιδευτικό Ίδρυμα Πειραιά Τεχνολογικού Τομέα Εισαγωγή στον Προγραμματισμό Ενότητα 8: Συναρτήσεις Κ. Κουκουλέτσος Τμήμα: Τμήμα Υπολογιστικών Συστημάτων
Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative Commons. Για εκπαιδευτικό υλικό, όπως εικόνες, που υπόκειται σε άλλου τύπου άδειας χρήσης, η άδεια χρήσης αναφέρεται ρητώς. Χρηματοδότηση Το παρόν εκπαιδευτικό υλικό έχει αναπτυχθεί στα πλαίσια του εκπαιδευτικού έργου του διδάσκοντα. Το έργο «Ανοικτά Ακαδημαϊκά Μαθήματα στο Ανώτατο Εκπαιδευτικό Ίδρυμα Πειραιά Τεχνολογικού Τομέα» έχει χρηματοδοτήσει μόνο τη αναδιαμόρφωση του εκπαιδευτικού υλικού. Το έργο υλοποιείται στο πλαίσιο του Επιχειρησιακού Προγράμματος «Εκπαίδευση και Δια Βίου Μάθηση» και συγχρηματοδοτείται από την Ευρωπαϊκή Ένωση (Ευρωπαϊκό Κοινωνικό Ταμείο) και από εθνικούς πόρους.
Σκοποί ενότητας... 4 Περιεχόμενα ενότητας... 4 Ασκήσεις... 5 Άσκηση 1... 5 Άσκηση 2... 5 Άσκηση 3... 6 Άσκηση 4... 6 Άσκηση 5... 7
Σκοποί ενότητας Σκοπός της ενότητας είναι η πρακτική εξάσκηση του εκπαιδευόμενου με έννοιες που έχουν αναλυθεί στο αντίστοιχο τμήμα της θεωρίας, με την επίλυση ασκήσεων. Πιο αναλυτικά οι σκοποί είναι Να γνωρίσουν τις συναρτήσεις και τον τρόπο που ορίζονται από τον χρήστη Να εκτιμήσουν την διαδικασία με την οποία ένα πρόγραμμα διασπάται σε μικρότερα δομικά στοιχεία Να μάθουν την χρήση και εφαρμογή των συναρτήσεων Να εξοικειωθούν με τις επιστρεφόμενες τιμές από συναρτήσεις Περιεχόμενα ενότητας Η ενότητα του εργαστηρίου περιλαμβάνει ασκήσεις για το μάθημα: Εισαγωγή στον προγραμματισμό.
Ασκήσεις Άσκηση 1 Να γραφεί πρόγραμμα που με χρήση δύο συναρτήσεων να υπολογίζεται η δύναμη και το παραγοντικό ακεραίων αριθμών // Orismos sinartisis ypologismos dinamis int funcpow(int a, int b) { int dinami = 1; int i; for(i = 0; i < b; i++) { dinami = dinami * a; return dinami; // orismos sinartisis yplogismos paragontikou int funcfact(int b) { int parag = 1; int i; if (b == 0) parag = 1; else for (i=1; i<=b; i++) { parag *= i; return parag; int main() { int a = 5, b = 4; if (b<0) b=-b; // Klisi sinartiseon printf("dinami (%d ^ %d)= ", a, b); printf("=%d \n", funcpow(a,b)); printf("paragontiko(%d)=", b); printf("%d \n", funcfact(b)); Άσκηση 2 Να εισάγονται δύο ακέραιοι που αντιπροσωπεύουν ώρες και λεπτά στην 24/ωρη μορφή και να εμφανίζεται η αντίστοιχη ώρα σε 12/ωρη μορφή με πμ και μμ. Το πρόγραμμα θα περιέχει συνάρτηση που να ελέγχει αν ένας αριθμός που εισάγεται είναι μεταξύ των ορίων που πρέπει ώστε να αντιπροσωπεύουν ώρες και λεπτά.. #include <stdio.h> int timi_metaxi(int low, int high){ int num; do{ printf( "Dose arithmo metaxi %d and %d =", low,high); scanf("%d", &num); while (num < low num > high); return num; main(){
printf( "Dose tin ora kai ta lepta\n"); int hours = timi_metaxi(0, 23); int minutes = timi_metaxi(0, 59); if (hours>12) printf("h ora einai %d:%d mm", hours-12, minutes); else printf("h ora einai %d:%d pm", hours, minutes); Άσκηση 3 Να γραφεί πρόγραμμα που να βρίσκει τον μεγαλύτερο από 2 ακέραιους. Η εισαγωγή των αριθμών καθώς και η εύρεση του μεγαλύτερου αριθμού να γίνονται με συναρτήσεις #include <stdio.h> #include <stdlib.h> int max2(int,int); int dose1() { int a; printf("dose 1 akereo "); scanf("%d",&a); return a; //prototype of function //function //============================= void minima() { printf("microsystems EPE\n"); printf("to continue press any key\n"); while(!getch()); system("cls"); printf("synexeia tou programmatos\n"); //============================= int main(void) { int k,l; minima(); k=dose1(); l=dose1(); printf("o megalyros = %d\n",max2(k,l)); //============================= int max2(int x,int y) { if (x>y) return x; else return y; Άσκηση 4 Να γίνει συνάρτηση που να δέχεται έναν ακέραιο και να επιστρέφει το άθροισμα των ψηφίων του
int psum(int a) { int total=0; while (a!= 0){ total+= a%10; a = a/10; return total; int main(){ int a; printf("dose ena akeraio: "); scanf("%d",&a); printf("athroisma ton psifion tou %d= %d\n",a, psum(a)); Άσκηση 5 Nα γραφεί πρόγραμμα το οποίο έχει είσοδο 2 ακεραίους και υπολογίζει με την χρήση του αλγόριθμου του Ευκλείδη, τον Μέγιστο Κοινό Διαιρέτη (ΜΚΔ) των δυο ακεραίων αριθμών. O αλγόριθμος να υλοποιείται με την χρήση συνάρτησης int mkd(int,int); int main( ){ int a, b ; printf("dose 2 akeraious arithmous"); scanf("%d %d",&a,&b); printf("mkd (%d, %d)= %d\n", a, b, mkd(a,b)); int mkd(int a, int b){ int ypol; while (b!= 0) { ypol = a % b; a = b; b = ypol; return a;