Προγραμματισμός Συστημάτων

Μέγεθος: px
Εμφάνιση ξεκινά από τη σελίδα:

Download "Προγραμματισμός Συστημάτων"

Transcript

1 MYY502 Προγραμματισμός Συστημάτων Β. Δημακόπουλος

2 Εργαστήρια Μάλλον (!) ξεκινούν την επόμενη εβδομάδα Εγγραφές στο εργαστήριο 2 βάρδιες, 15:00 17:00 και 17:00 19:00 Βοηθοί εργαστηρίου:??? Γραφείο βοηθών: Β32 (μετά το δικό μου) 2

3 Εισαγωγή στη C Πίνακες

4 Πίνακες Διαφορές με java: Όταν τους ορίζεις, πρέπει να δηλώσεις και το μέγεθος Οι αγκύλες πάνε μετά το όνομα της μεταβλητής Δηλ. δεν παίζει το: int [] myarray; myarray = new int[30]; Σωστή (και μοναδική) δήλωση: int myarray[30]; Η αρίθμηση των στοιχείων ξεκινάει από τη θέση μηδέν (0) 4

5 Πίνακες ΔΕΝ μπορεί να αλλάξει το μέγεθος του πίνακα. ΔΕΝ θυμάται / ελέγχει η C τα όρια του πίνακα. ΔΕΝ μπορεί να γίνει αρχικοποίηση του πίνακα παρά μόνο τη στιγμή της δήλωσής του. Μετά καταχώρηση στοιχείοστοιχείο. Παράδειγμα: #include <stdio.h> #define N 10 int main() { int myarray[n] = {10,20,30,40,50,60,70,80,90,100; myarray[3] = 400; myarray[10] = 900; /* Εκτός ορίων ΔΕΝ μας προειδοποιεί με κάποιο σφάλμα η C */ 5

6 Πίνακες χωρίς μέγεθος Επιτρέπεται να μην δοθεί το μέγεθος του πίνακα κατά τη δήλωση μόνο αν προκύπτει από την αρχικοποίησή του: int main() { int myarray[] = {10,20,30,40;... Προκύπτει (και δεν μπορεί να αλλάξει) ότι το μέγεθος είναι 4 στοιχεία. Το παρακάτω δεν επιτρέπεται! int main() { int myarray[];... 6

7 Πίνακες - αρχικοποίηση Αν ο πίνακας δεν αρχικοποιηθεί κατά τη δήλωσή του τα στοιχεία του θα έχουν τυχαίες τιμές («σκουπίδια»). Αν κατά τη δήλωση του πίνακα αρχικοποιηθούν λιγότερα στοιχεία από αυτά που έχει, τα υπόλοιπα αρχικοποιούνται αυτόματα στο 0 (μηδέν) Π.χ. εύκολος τρόπος να αρχικοποιήσω όλα τα στοιχεία ενός πίνακα στο 0: int myarray[100] = { 0 ; 7

8 Συμβολοσειρές (strings): βασικά πίνακες χαρακτήρων Παράδειγμα: int main() { char str1[5]; char str2[6] = {'b', 'i', 'l', 'l', '\0' ; str2[1] = 'a'; /* b a l l */... Απλά πρέπει να υπάρχει στο τέλος και ο ειδικός χαρακτήρας '\0' (λεπτομέρειες αργότερα). Πολύ πιο εύκολη αρχικοποίηση, μόνο για συμβολοσειρές: char str3[6] = "maria"; /* Υπονοείται το \0 στο τέλος */ char str4[] = "demi"; /* Μέγεθος 5 */ 8

9 Πίνακες 2D Για διδιάστατους (τριδιάστατους κλπ), κατά τη δήλωση χρησιμοποιούνται πολλαπλές αγκύλες για να δηλώσουν το μέγεθος κάθε διάστασης. int array1[10][20]; /* 10 γραμμών, 20 στηλών */ int main() { int array2[30][20]; /* 30 γραμμών, 20 στηλών */ array1[0][0] = array2[10][10]; array1[5] = array2[3]; /* Δεν επιτρέπεται */ Οι πίνακες αυτοί είναι ΠΡΑΓΜΑΤΙΚΑ διδιάστατοι και ΣΤΑΘΕΡΟΙ Όχι σαν τη java όπου βασικά πρόκειται για διάνυσμα όπου κάθε στοιχείο του είναι άλλο διάνυσμα (γραμμή). Όλες οι γραμμές ίδιου (αμετάβλητου) μεγέθους (σε αντίθεση με τη java που κάθε γραμμή μπορούσε να έχει διαφορετικό μέγεθος). 9

10 Η γλώσσα C Συναρτήσεις

11 Συναρτήσεις Πρόκειται απλά για μια ακολουθία εντολών την οποία χρησιμοποιούμε σε αρκετά σημεία του προγράμματός μας και την οποία την ξεχωρίζουμε ως «υποπρόγραμμα», ώστε να μπορεί να κληθεί και να εκτελεστεί όσες φορές θέλουμε. «Μέθοδοι» στη Java. Στη C δεν αποτελούν μέρος καμίας κλάσης (δεν υπάρχουν κλάσεις), καλούνται από παντού. 11

12 Τα 3 βασικά σημεία των συναρτήσεων: (α) πρωτότυπο Πρωτότυπο (prototype) function declaration δήλωση (declaration) που περιγράφει τι χρειάζεται η συνάρτηση για να λειτουργήσει και τι είδους αποτέλεσμα θα επιστρέψει: <τύπος_επιστροφής> όνομα_συνάρτησης (<τύπος_παραμέτρου> παράμετρος,...) ; Π.χ. int power(int base, int exponent); Είναι απαραίτητο το πρωτότυπο; Απάντηση: όχι πάντα, αλλά αν δεν το γράψετε μπορεί να δημιουργηθούν προβλήματα. Θεωρείστε το ισοδύναμο με τη δήλωση μίας μεταβλητής (η οποία πρέπει να οριστεί / δηλωθεί πριν την χρησιμοποιήσετε) 12

13 Τα 3 βασικά σημεία των συναρτήσεων: (β) ορισμός Ορισμός / υλοποίηση της συνάρτησης function definition <πρωτότυπο> /* Προσοχή: χωρίς το ; */ {... /* οι εντολές της συνάρτησης */ return (<τιμή>); Η return: τερματίζει τη συνάρτηση και επιστρέφει το αποτέλεσμα. Τι σημαίνει επιστρέφει το αποτέλεσμα? Αν έχω στη main() : εκτέλεσε τη συνάρτηση power για τα 2, 4 τότε ό,τι τιμή γίνεται return αποθηκεύεται σε μια προσωρινή θέση μνήμης tmp. res = power(2, 4) res = tmp όπου στο tmp έχει μπει το 2 4, δηλ. το 16 Ειδικός τύπος συνάρτησης: void Αν η συνάρτηση είναι τύπου void τότε ΔΕΝ επιστρέφει τίποτε Έχουμε σκέτο: return; 13

14 Τα 3 βασικά σημεία των συναρτήσεων: (γ) κλήση Κλήση μίας συνάρτησης function call Μέσα στο πρόγραμμα εκτέλεσε τη συνάρτηση power για τα 2, 4 και υπολόγισε το αποτέλεσμα Τρόπος κλήσης: <όνομα_συνάρτησης>(τιμές για πραγματικές παραμέτρους) 14

15 Παράδειγμα #include <stdio.h> int main() { int x, y, k, n, res; int power(int base, int n); /* πρωτότυπο */ x = 2; y=3; k=4; n=2; res = power(x, k); /* κλήση */ printf("%d \n", res); res = power(y, n); /* κλήση */ printf("%d \n", res); Παράμετροι (parameters) ή τυπικές παράμετροι (formal parameters) Ορίσματα (arguments) ή πραγματικές παράμετροι return 0; /* Η main() πρέπει να επιστρέφει 0 αν όλα ΟΚ */ /* Ορισμός (υπολογίζει το base υψωμένο στη δύναμη n, base n ) */ int power(int base, int n) { int i, p; for (i = p = 1; i <= n; i++) p = p*base; return p; /* τιμή επιστροφής */ 15

16 Παράδειγμα αλλού το πρωτότυπο #include <stdio.h> int power(int base, int n); /* πρωτότυπο */ int main() { int x, y, k, n, res; x = 2; y=3; k=4; n=2; res = power(x, k); /* κλήση */ printf("%d \n", res); res = power(y, n); /* κλήση */ printf("%d \n", res); ΔΙΑΦΟΡΑ ΜΕ ΠΡΙΝ: Όχι μόνο η main(), αλλά ΟΛΕΣ οι επόμενες συναρτήσεις θα «γνωρίζουν» την power(). Πριν, ΜΟΝΟ στη main() είχε γίνει γνωστή! return 0; /* Η main() πρέπει να επιστρέφει 0 αν όλα ΟΚ */ /* Ορισμός (υπολογίζει το base n ) */ int power(int base, int n) { int i, p; for (i = p = 1; i <= n; i++) p = p*base; return p; /* τιμή επιστροφής */ 16

17 Παράδειγμα χωρίς πρωτότυπο. Τι θα γίνει; #include <stdio.h> int main() { int x, y, k, n, res; x = 2; y=3; k=4; n=2; res = power(x, k); /* κλήση */ printf("%d \n", res); res = power(y, n); /* κλήση */ printf("%d \n", res); ΑΠΟΤΕΛΕΣΜΑ: Compiler warnings: δεν «γνωρίζει την power() στα σημεία που γίνονται οι δύο κλήσεις. Πολλές φορές υπάρχουν και καταστροφικά αποτελέσματα. return 0; /* Η main() πρέπει να επιστρέφει 0 αν όλα ΟΚ */ /* Ορισμός (υπολογίζει το base n ) */ int power(int base, int n) { int i, p; for (i = p = 1; i <= n; i++) p = p*base; return p; /* τιμή επιστροφής */ 17

18 Παράδειγμα χωρίς πρωτότυπο. Τι θα γίνει; #include <stdio.h> /* Ορισμός (υπολογίζει το base n ) */ int power(int base, int n) { int i, p; for (i = p = 1; i <= n; i++) p = p*base; return p; /* τιμή επιστροφής */ int main() { int x, y, k, n, res; ΑΠΟΤΕΛΕΣΜΑ: Μιας και η συνάρτηση ορίστηκε ΠΡΙΝ τα σημεία των δύο κλήσεων, ΘΕΩΡΕΙΤΑΙ ΓΝΩΣΤΗ. Επομένως δεν δημιουργείται πρόβλημα και άρα δεν είναι απαραίτητο το πρωτότυπο. ΜΗΝ ΤΟ ΚΑΝΕΤΕ!! ΠΑΝΤΑ ΝΑ ΓΡΑΦΕΤΑΙ ΤΑ ΠΡΩΤΟΤΥΠΑ!! x = 2; y=3; k=4; n=2; res = power(x, k); /* κλήση */ printf("%d \n", res); res = power(y, n); /* κλήση */ printf("%d \n", res); return 0; /* Η main() πρέπει να επιστρέφει 0 αν όλα ΟΚ */ 18

19 int power(int base, int n) { int i, p; for (i = p = 1; i <= n; i++) p = p*base; return p; Κανένα πρόβλημα; Τι γίνεται αν n < 0? Πώς θα το άλλαζα για να ελέγχει αν το n είναι θετικός; if (n < 0) { return (-1); 19

20 Έτοιμες μαθηματικές συναρτήσεις στη C Πρέπει: #include <stdio.h> #include <math.h> int main() { printf("cos(0) = %lf\n", cos(0.0)); return 0; Επίσης, κατά τη μεταγλώττιση, πρέπει να συμπεριληφθεί και η βιβλιοθήκη των μαθηματικών συναρτήσεων με το lm: % gcc prog.c -lm % ls a.out prog.c libm prog.c gcc a.out 20

21 Συνήθεις μαθηματικές συναρτήσεις double acos(double); double asin(double); double atan(double); double cos(double); double cosh(double); double sin(double); double sinh(double); double tan(double); double tanh(double); double sqrt(double); double exp(double); double pow(double, double); double log(double); double log10(double); double fabs(double); 21

22 Πέρασμα Παραμέτρων Οι μεταβλητές βασικού τύπου (int, char, float, ) περνιούνται ως παράμετροι σε μια συνάρτηση με τιμή (by value). δηλαδή αντιγράφονται οι τιμές τους σε τοπικές μεταβλητές της συνάρτησης. όποιες αλλαγές γίνουν σε αυτές τις τιμές των μεταβλητών στο εσωτερικό της συνάρτησης δεν είναι εμφανείς στο κομμάτι του προγράμματος στο οποίο έγινε η κλήση της συνάρτησης. Αν θέλουμε να ξεπεράσουμε τον παραπάνω περιορισμό, δηλ. ότι αλλαγές γίνουν στις τιμές των μεταβλητών στο εσωτερικό της συνάρτησης να είναι εμφανείς στο κομμάτι του προγράμματος στο οποίο έγινε η κλήση της συνάρτησης, μπορούμε να περάσουμε τις διευθύνσεις των θέσεων μνήμης που έχουν δεσμευθεί για τις μεταβλητές, να κάνουμε όπως λέμε πέρασμα με αναφορά (by reference, με χρήση παραμέτρων τύπου pointer). Οι παράμετροι τύπου πίνακα πάντα περνιούνται με αναφορά. όποιες αλλαγές γίνουν στα στοιχεία του πίνακα είναι εμφανείς στο κομμάτι του προγράμματος στο οποίο έγινε η κλήση της συνάρτησης. 22

23 swap #include <stdio.h> void swap (int x, int y); int main() { int a,b; a = 6; b = 7; swap(a, b); printf("%d %d\n", a, b); return 0; void swap (int x, int y) { int temp; temp = x; x = y; y = temp; return; #include <stdio.h> void swap (int *x1, int *x2); int main() { int a,b; a = 6; b = 7; swap(&a, &b); printf("%d %d\n", a, b); return 0; void swap (int *x1, int *x2) { int temp; temp = *x1; *x1 = *x2; *x2 = temp; return; 23

24 Παράδειγμα πέρασμα by reference με πίνακα #include <stdio.h> void f(int a[]); int main() { int i; int x[] = {1, 2; f(x); for (i = 0; i < 2; i++) printf("%d\n", x[i]); return 0; X[0] X[1] 1 2 4bytes 4bytes void f(int k[]) { int i; for (i = 0; i < 2; i++) k[i] = k[i]*2; 24

25 Στοίβα (stack) Για κάθε κλήση συνάρτησης έχω ένα κομμάτι μνήμης αφιερωμένο σε αυτή Δεσμεύεται αυτόματα κατά την είσοδο στη συνάρτηση και αποδεσμεύεται επίσης αυτόματα κατά την έξοδο από αυτή Ο χώρος μνήμης που χρησιμοποιείται για το σκοπό αυτό καλείται stack (στοίβα) Το συγκεκριμένο κομμάτι μνήμης για μια συνάρτηση καλείται stack frame Στη μνήμη αυτή (stack frame) τοποθετούνται οι παράμετροι και οι τοπικές μεταβλητές μιας συνάρτησης 25

26 Η γλώσσα C Εμβέλεια και διάρκεια ζωής μεταβλητών (scope & lifetime)

27 Εμβέλεια μεταβλητών (scope / visibility) Τι είναι: Η εμβέλεια του ονόματος μιας μεταβλητής είναι το τμήμα του προγράμματος στο οποίο η μεταβλητή μπορεί να χρησιμοποιηθεί Global (καθολική) Local (τοπική, σε συνάρτηση) Block (σε δομημένο μπλοκ εντολών {.. ) Εμβέλεια τοπικών μεταβλητών δηλώνονται στην αρχή κάθε συνάρτησης και μπορούν να χρησιμοποιηθούν μόνο μέσα στη συνάρτηση Εμβέλεια block δηλώνεται στην αρχή ενός δομημένου block { και είναι ορατό μόνο μέσα στο block αυτό! Εμβέλεια καθολικών μεταβλητών από εκεί που δηλώθηκαν μέχρι τέλος αρχείου 27

28 Εμβέλεια int i=2, j=7; int f(int i) { return i+3; int g() { int k; if (j > 5) { int j; j = f(i); k = 2*j; return (k); Η εμβέλεια προκύπτει ΜΟΝΟ από το κείμενο του κώδικα απλά παρατηρώντας που είναι τοποθετημένες οι δηλώσεις σε σχέση με τις συναρτήσεις και τα blocks ΚΑΙ ΌΧΙ από το πως εκτελείται ο κώδικας. main() { i = g(); 28

29 Τι θα τυπωθεί; #include <stdio.h> char color = 'Β'; void paintitgreen() { char color = 'G'; printf("color@pig: %c\n", color); void paintitred() { char color = 'R'; printf("\n\t start pir----\n\t"); printf("color@pir: %c\n\t", color); paintitgreen(); printf("\tcolor@pir: %c\n\t", color); printf(" end pir----\n\n"); main() { printf("\t\tcolor@main: %c\n", color); paintitgreen(); printf("\t\tcolor@main: %c\n", color); paintitred(); printf("\t\tcolor@main: %c\n", color); 29

30 Διάρκεια (lifetime) Το χρονικό διάστημα για το οποίο δεσμεύεται μνήμη για τις μεταβλητές. Τοπικές μεταβλητές: ως την ολοκλήρωση της συνάρτησης στην οποία είναι ορισμένες Καθολικές: ως την ολοκλήρωση της εκτέλεσης του προγράμματος Τοπικές μεταβλητές: auto (το default, υπάρχουν όσο διαρκεί το block / συνάρτηση, μιας και αποθηκεύονται συνήθως στη στοίβα) static (διατηρείται ο χώρος ακόμα και αν τελειώσει μία συνάρτηση) 30

31 Διάρκεια μνήμη int i=2, j=7; int f(int i) { return i+3; Η διάρκεια προκύπτει από την εκτέλεση του κώδικα. int g() { int k; if (j > 5) { int j; j = f(i); k = 2*j; return (k); main() { i = g(); 31

32 Μεταβλητές με διάρκεια static #include <stdio.h> void f(void) { static int y = 0; y++; printf("%d\n", y); 1. Η αρχικοποίηση γίνεται κατά την εκκίνηση του προγράμματος δεν γίνεται στην κάθε κλήση της συνάρτησης. 2. Η μεταβλητή συνεχίζει να υπάρχει στη μνήμη ακόμα και μετά τη λήξη της συνάρτησης int main() { int i; for (i=0; i<5; i++) f(); return 0; 32

33 Αρχικοποίηση μεταβλητών Με τη δήλωση: Οι καθολικές (global) και οι τοπικές static Αρχικοποιούνται ΑΥΤΟΜΑΤΑ στο μηδέν (0) Οι τοπικές (εκτός των static) Τυχαία αρχική τιμή (συνήθως σκουπίδια) Αρχικοποίηση πινάκων: int a[] = {1, 2, ; Από το πλήθος των στοιχείων προκύπτει το μέγεθος του πίνακα int a[5] = {1, 2, ; Αν παραπάνω από 5 στοιχεία στις αγκύλες Error! Αν λιγότερα από 5 0 στις υπόλοιπες θέσεις του a. Αρχικοποίηση πινάκων χαρακτήρων: char txt[] = {'A', 'l', 'a', 'l', 'a', '\0'; ή πιο εύκολα: char txt[] = "Alala"; 33

34 Η γλώσσα C Εμβέλεια extern & πολλαπλά αρχεία κώδικα

35 Πολλαπλά αρχεία κώδικα - scope.c #include <stdio.h> #define SCALE 2 int number; /* Δήλωση/ορισμός καθολικής μεταβλητής */ int f(int param); /* Πρωτότυπο */ int main() { int y; number = 5; y= f(4*scale); printf("%d, %d\n", number, y); return 0; int f(int x) { int y; y = x*scale + number; return (y); 35

36 Σε δύο αρχεία scope.c #include <stdio.h> #define SCALE 2 int number, /* Δήλωση/ορισμός */ f(int param); /* Πρωτότυπο */ int main() { int y; number = 5; y = f(4*scale); printf("%d,%d\n",number,y); return 0; func.c #define SCALE 2 /* Μεταβλητή ορισμένη αλλού */ extern int number; int f(int x) { int y; y = x*scale + number; return (y); 36

37 Με αρχείο επικεφαλίδας scope.c #include <stdio.h> #include "myscope.h" int number; int main() { int y; number = 5; y = f(4*scale); printf("%d,%d\n",number,y); return 0; func.c #include "myscope.h" int f(int x) { int y; y = x*scale + number; return (y); myscope.h #define SCALE 2 int f(int param); extern int number; 37

38 Πολλά αρχεία Χρήση συναρτήσεων από το ένα στο άλλο Δήλωση prototype Εναλλακτικά, δημιουργία include file με prototypes Γενικός ρόλος που παίζουν τα include files? Πως τα κάνω compile? Είτε όλα μαζί: gcc *.c Είτε με χρήση Makefile γιατί πάντα ελέγχει τι έχει αλλάξει 38

39 Με Makefile scope.c #include <stdio.h> #include "myscope.h" int number; int main() { int y; number = 5; y = f(4*scale); printf("%d,%d\n",number,y); return 0; myscope.h #define SCALE 2 int f(int param); extern int number; func.c #include "myscope.h" int f(int x) { int y; y = x*scale + number; return (y); Makefile scope: scope.o func.o myscope.h gcc o scope scope.o func.o func.o: func.c myscope.h gcc c func.c scope.o: scope.c myscope.h gcc c scope.c 39

40 scope.c Makefile scope: scope.o func.o myscope.h gcc o scope scope.o func.o func.o: func.c myscope.h gcc c func.c scope.o: scope.c myscope.h gcc c scope.c Κανόνας στόχος (target) αρχεία απ τα οποία εξαρτάται (προαπαιτούμενα) εντολή / ενέργεια για να γίνει (η γραμμή αρχίζει με TAB!!!) Για κάθε αρχείο : gcc c x.c.c.c.o Preprocessor Compiler αντικαθιστά #include και #define Αρχεία.ο άλλα αρχεία.ο gcc o scope.exe scope.ο f.o.o Linker a.out 40

Προγραμματιςμόσ Συςτημάτων

Προγραμματιςμόσ Συςτημάτων ΠΛΥ410 Προγραμματιςμόσ Συςτημάτων Διδάςκων: Β. Δημακόπουλοσ dimako@cs.uoi.gr Εργαςτιρια Ξεκινοφν τθν Τρίτη, 11/3 Από αφριο το πρωί εγγραφζσ: Καταςτάςεισ ςτον 2 ο όροφο, Γραφείο Β32 () Ομάδεσ των 2 Βοθκοί

Διαβάστε περισσότερα

Η γλώσσα προγραμματισμού C

Η γλώσσα προγραμματισμού C Η γλώσσα προγραμματισμού C Οι συναρτήσεις στη C Οι συναρτήσεις τι είναι Πρόκειται για ανεξάρτητα τμήματα ενός προγράμματος (υποπρογράμματα) που επιτελούν συγκεκριμένες εργασίες. Καλούνται από το κυρίως

Διαβάστε περισσότερα

Η γλώσσα προγραμματισμού C

Η γλώσσα προγραμματισμού C Η γλώσσα προγραμματισμού C Οι συναρτήσεις στη C Οι συναρτήσεις τι είναι Πρόκειται για ανεξάρτητα τμήματα ενός προγράμματος (υποπρογράμματα) που επιτελούν συγκεκριμένες εργασίες. Καλούνται από το κυρίως

Διαβάστε περισσότερα

Δομημένος Προγραμματισμός

Δομημένος Προγραμματισμός ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ Ανώτατο Εκπαιδευτικό Ίδρυμα Πειραιά Τεχνολογικού Τομέα Δομημένος Προγραμματισμός Ενότητα: Συναρτήσεις θεωρία Δ. Ε. Μετάφας Τμ. Ηλεκτρονικών Μηχ. Τ.Ε. Άδειες Χρήσης Το παρόν εκπαιδευτικό

Διαβάστε περισσότερα

Εργαστήριο 1: Επανάληψη Βασικών Εννοιών στη Γλώσσα C

Εργαστήριο 1: Επανάληψη Βασικών Εννοιών στη Γλώσσα C Εργαστήριο 1: Επανάληψη Βασικών Εννοιών στη Γλώσσα C Στην ενότητα αυτή θα μελετηθούν τα εξής επιμέρους θέματα: Εισαγωγή στις έννοιες: - Συναρτήσεις - Εξωτερικές μεταβλητές - Κανόνες εμβέλειας - Διάρκεια

Διαβάστε περισσότερα

Προγραμματισμός Ι (ΗΥ120)

Προγραμματισμός Ι (ΗΥ120) Προγραμματισμός Ι (ΗΥ120) Διάλεξη 9: Συναρτήσεις Ορισμός συναρτήσεων () { /* δήλωση μεταβλητών */ /* εντολές ελέγχου/επεξεργασίας */ o Μια συνάρτηση ορίζεται δίνοντας

Διαβάστε περισσότερα

Εισαγωγή στον Προγραμματισμό με C++

Εισαγωγή στον Προγραμματισμό με C++ ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ Ανώτατο Εκπαιδευτικό Ίδρυμα Πειραιά Τεχνολογικού Τομέα Εισαγωγή στον Προγραμματισμό με C++ Ενότητα # 6: Συναρτήσεις Κωνσταντίνος Κουκουλέτσος Τμήμα Αυτοματισμού Άδειες Χρήσης Το παρόν

Διαβάστε περισσότερα

Κεφάλαιο , 3.2: Συναρτήσεις II. (Διάλεξη 12)

Κεφάλαιο , 3.2: Συναρτήσεις II. (Διάλεξη 12) Κεφάλαιο 3.5-3.6, 3.2: Συναρτήσεις II (Διάλεξη 12) 12-1 Ανασκόπηση Δομής Προγράμματος με Συναρτήσεις 1 void PrintMessage (); Πρότυπο (Δήλωση) Συνάρτησης (Δηλώνουν τι επιπλέον συναρτήσεις θα χρησιμοποιήσουμε

Διαβάστε περισσότερα

Εισαγωγή στον Προγραµµατισµό. Πανεπιστήµιο Θεσσαλίας Τµήµα Ηλεκτρολόγων Μηχανικών και Μηχανικών Η/Υ

Εισαγωγή στον Προγραµµατισµό. Πανεπιστήµιο Θεσσαλίας Τµήµα Ηλεκτρολόγων Μηχανικών και Μηχανικών Η/Υ Εισαγωγή στον Προγραµµατισµό Πανεπιστήµιο Θεσσαλίας Τµήµα Ηλεκτρολόγων Μηχανικών και Μηχανικών Η/Υ Συναρτήσεις 19.11.16 Β. Ντουφεξή 2 Προβλήματα: Οσο μεγαλώνουν τα προγράμματα, γίνονται πιο πολύπλοκα.

Διαβάστε περισσότερα

Κεφάλαιο 3.5-3.6, 3.2: Συναρτήσεις II. ( ιάλεξη 12) ιδάσκων: ηµήτρης Ζεϊναλιπούρ

Κεφάλαιο 3.5-3.6, 3.2: Συναρτήσεις II. ( ιάλεξη 12) ιδάσκων: ηµήτρης Ζεϊναλιπούρ Κεφάλαιο 3.5-3.6, 3.2: Συναρτήσεις II ( ιάλεξη 12) ιδάσκων: ηµήτρης Ζεϊναλιπούρ 12-1 Ανασκόπηση οµής Προγράµµατος µε Συναρτήσεις #include 1 void PrintMessage (); Πρότυπο ( ήλωση) Συνάρτησης (

Διαβάστε περισσότερα

ΑΡΧΕΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ

ΑΡΧΕΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ ΑΡΧΕΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ Κεφάλαιο 12 Επιμέλεια: Βασίλης Παλιουράς, Αναπληρωτής Καθηγητής Ευάγγελος Δερματάς, Αναπληρωτής Καθηγητής Σταύρος Νούσιας, Βοηθός Ερευνητή Πολυτεχνική Σχολή Τμήμα Ηλεκτρολόγων Μηχανικών

Διαβάστε περισσότερα

Μεθόδων Επίλυσης Προβλημάτων

Μεθόδων Επίλυσης Προβλημάτων ΕΠΛ 032.3: 3: Προγραμματισμός Μεθόδων Επίλυσης Προβλημάτων Αχιλλέας Αχιλλέως, Τμήμα Πληροφορικής, Πανεπιστήμιο Κύπρου Email: achilleas@cs.ucy.ac.cy Κεφάλαιο 9 Συναρτήσεις Μέρος II Θέματα ιάλεξης Μη- ομημένος

Διαβάστε περισσότερα

ΔΟΜΗΜΕΝΟΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ

ΔΟΜΗΜΕΝΟΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΔΟΜΗΜΕΝΟΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ Μάθημα 4ο Τμήμα Διοίκησης Επιχειρήσεων α εξάμηνο Β. Φερεντίνος Συναρτήσεις (functions) 56 Τεμαχισμός του προγράμματος σε μικρότερα κομμάτια που είναι πιο κατανοητά, πιο εύκολα

Διαβάστε περισσότερα

Προγραμματισμός Υπολογιστών & Υπολογιστική Φυσική

Προγραμματισμός Υπολογιστών & Υπολογιστική Φυσική ΑΡΙΣΤΟΤΕΛΕΙΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΕΣΣΑΛΟΝΙΚΗΣ ΑΝΟΙΚΤΑ ΑΚΑΔΗΜΑΪΚΑ ΜΑΘΗΜΑΤΑ Προγραμματισμός Υπολογιστών & Υπολογιστική Φυσική Ενότητα 7: Συναρτήσεις Νικόλαος Στεργιούλας Τμήμα Φυσικής Άδειες Χρήσης Το παρόν εκπαιδευτικό

Διαβάστε περισσότερα

Κλήση Συναρτήσεων ΚΛΗΣΗ ΣΥΝΑΡΤΗΣΕΩΝ. Γεώργιος Παπαϊωάννου ( )

Κλήση Συναρτήσεων ΚΛΗΣΗ ΣΥΝΑΡΤΗΣΕΩΝ. Γεώργιος Παπαϊωάννου ( ) ΚΛΗΣΗ ΣΥΝΑΡΤΗΣΕΩΝ Γεώργιος Παπαϊωάννου (2013-16) gepap@aueb.gr Περιγραφή: Μορφές μεταβίβασης ορισμάτων σε συναρτήσεις (και μεθόδους) και οι επιπτώσεις τους Επιστροφή τιμών από κλήση συναρτήσεων Υπερφόρτωση

Διαβάστε περισσότερα

Σε γενικές γραμμές, είναι καλή πρακτική να γράϕουμε προγράμματα C που αποτελούνται από πολλές και μικρές συναρτήσεις, παρά από λίγες και μεγάλες.

Σε γενικές γραμμές, είναι καλή πρακτική να γράϕουμε προγράμματα C που αποτελούνται από πολλές και μικρές συναρτήσεις, παρά από λίγες και μεγάλες. 58 Δομή ενός προγράμματος C Συναρτήσεις Μία συνάρτηση C είναι ένα αυτόνομο, πακεταρισμένο τμήμα προγράμματος που ϕέρει σε πέρας μία διαδικασία η οποία έχει σαϕείς προδιαγραϕές εισόδου και εξόδου και συγκεκριμένο

Διαβάστε περισσότερα

Ηβασικήσυνάρτηση προγράμματος main()

Ηβασικήσυνάρτηση προγράμματος main() Ηβασικήσυνάρτηση προγράμματος main() HEADER FILES main(){ ΔΗΛΩΣΕΙΣ ΜΕΤΑΒΛΗΤΩΝ ΕΝΤΟΛΕΣ (σειριακές, επιλογής ή επανάληψης) ΕΠΙΣΤΡΕΦΟΜΕΝΟΣ ΤΥΠΟΣ (return 0;) Συναρτήσεις Ησυνάρτησηείναι ένα υποπρόγραμμα που

Διαβάστε περισσότερα

Προγραμματισμός Ι. Δείκτες. Δημήτρης Μιχαήλ. Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο

Προγραμματισμός Ι. Δείκτες. Δημήτρης Μιχαήλ. Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο Προγραμματισμός Ι Δείκτες Δημήτρης Μιχαήλ Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο Τι είναι ο δείκτης Ένας δείκτης είναι μια μεταβλητή που περιέχει μια διεύθυνση μνήμης. Θυμηθείτε πως

Διαβάστε περισσότερα

Προγραμματισμός Η/Υ (ΤΛ2007 )

Προγραμματισμός Η/Υ (ΤΛ2007 ) Τμήμα Ηλεκτρονικών Μηχανικών Τ.Ε.Ι. Κρήτης Προγραμματισμός Η/Υ (ΤΛ2007 ) Δρ. Μηχ. Νικόλαος Πετράκης (npet@chania.teicrete.gr) Ιστοσελίδα Μαθήματος: https://eclass.chania.teicrete.gr/ Εξάμηνο: Εαρινό 2014-15

Διαβάστε περισσότερα

Ανάπτυξη και Σχεδίαση Λογισμικού

Ανάπτυξη και Σχεδίαση Λογισμικού Ανάπτυξη και Σχεδίαση Λογισμικού Η γλώσσα προγραμματισμού C Γεώργιος Δημητρίου Συναρτήσεις της C Τα Λοιπά Στοίβα και μηχανισμός κλήσης Αναδρομικές συναρτήσεις Στατικές μεταβλητές Άλλα θέματα Μηχανισμός

Διαβάστε περισσότερα

Η βασική συνάρτηση προγράμματος main()

Η βασική συνάρτηση προγράμματος main() Η βασική συνάρτηση προγράμματος main() HEADER FILES main(){ ΔΗΛΩΣΕΙΣ ΜΕΤΑΒΛΗΤΩΝ ΕΝΤΟΛΕΣ (σειριακές, επιλογής ή επανάληψης) ΕΠΙΣΤΡΕΦΟΜΕΝΟΣ ΤΥΠΟΣ (return 0;) Συναρτήσεις Η συνάρτηση είναι ένα υποπρόγραμμα

Διαβάστε περισσότερα

Η γλώσσα προγραμματισμού C Οι συναρτήσεις στη C (2)

Η γλώσσα προγραμματισμού C Οι συναρτήσεις στη C (2) Η γλώσσα προγραμματισμού C Οι συναρτήσεις στη C (2) Κατηγορίες μνήμης εκτελέσιμου προγράμματος Στις καθολικές και στατικές μεταβλητές οι χώροι μνήμης δεσμεύονται κατά την διάρκεια της μεταγλώττισης. Οι

Διαβάστε περισσότερα

Προγραμματισμός Η/Υ (ΤΛ2007 )

Προγραμματισμός Η/Υ (ΤΛ2007 ) Τμήμα Ηλεκτρονικών Μηχανικών Τ.Ε.Ι. Κρήτης Προγραμματισμός Η/Υ (ΤΛ2007 ) Δρ. Μηχ. Νικόλαος Πετράκης (npet@chania.teicrete.gr) Έκτη (6 η ) τρίωρη διάλεξη. Ιστοσελίδα Μαθήματος: https://eclass.chania.teicrete.gr/

Διαβάστε περισσότερα

12. Συναρτήσεις (Μέρος ΙI)

12. Συναρτήσεις (Μέρος ΙI) Προγραμματισμός Μεθόδων Επίλυσης Προβλημάτων 12. Συναρτήσεις (Μέρος ΙI) Ιωάννης Κατάκης Σήμερα o Συναρτήσεις χωρίς παραμέτρους o Συναρτήσεις με παραμέτρους Χωρίς επιστροφή τιμής Με επιστροφή τιμής o Εμβέλεια

Διαβάστε περισσότερα

Ανάπτυξη Μεγάλων Εφαρµογών στη Γλώσσα C (Programming in the large)

Ανάπτυξη Μεγάλων Εφαρµογών στη Γλώσσα C (Programming in the large) Ανάπτυξη Μεγάλων Εφαρµογών στη Γλώσσα C (Programming in the large) Στην ενότητα αυτή θα µελετηθούν τα εξής επιµέρους θέµατα: Συναρτήσεις Εξωτερικές µεταβλητές Κανόνες εµβέλειας ιάρκεια µεταβλητών Αρχικοποίηση

Διαβάστε περισσότερα

Δομημένος Προγραμματισμός (ΤΛ1006)

Δομημένος Προγραμματισμός (ΤΛ1006) Τεχνολογικό Εκπαιδευτικό Ίδρυμα Κρήτης Σχολή Εφαρμοσμένων Επιστημών Τμήμα Ηλεκτρονικών Μηχανικών Τομέας Αυτοματισμού και Πληροφορικής Δομημένος Προγραμματισμός (ΤΛ1006) Δρ. Μηχ. Νικόλαος Πετράκης, Καθηγητής

Διαβάστε περισσότερα

Μεθόδων Επίλυσης Προβλημάτων

Μεθόδων Επίλυσης Προβλημάτων ΕΠΛ 032.3: 3: Προγραμματισμός Μεθόδων Επίλυσης Προβλημάτων Αχιλλέας Αχιλλέως, Τμήμα Πληροφορικής, Πανεπιστήμιο Κύπρου Email: achilleas@cs.ucy.ac.cy Κεφάλαιο 13 Πίνακες & Συναρτήσεις Εισαγωγή Στις προηγούμενες

Διαβάστε περισσότερα

Δομημένος Προγραμματισμός. Τμήμα Επιχειρηματικού Σχεδιασμού και Πληροφοριακών Συστημάτων

Δομημένος Προγραμματισμός. Τμήμα Επιχειρηματικού Σχεδιασμού και Πληροφοριακών Συστημάτων Δομημένος Προγραμματισμός Τμήμα Επιχειρηματικού Σχεδιασμού και Πληροφοριακών Συστημάτων www.bpis.teicrete.gr Τμήμα Επιχειρηματικού Σχεδιασμού και Πληροφοριακών Συστημάτων www.bpis.teicrete.gr 2 Ορισμός

Διαβάστε περισσότερα

ΕΙΣΑΓΩΓΗ ΣΤΟN ΠΡΟΓΡΑΜΜΑΤΙΣΜΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΠΑΤΡΩΝ ΠΟΛΥΤΕΧΝΙΚΗ ΣΧΟΛΗ ΤΜΗΜΑ ΜΗΧΑΝΙΚΩΝ Η/Υ ΚΑΙ ΠΛΗΡΟΦΟΡΙΚΗΣ

ΕΙΣΑΓΩΓΗ ΣΤΟN ΠΡΟΓΡΑΜΜΑΤΙΣΜΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΠΑΤΡΩΝ ΠΟΛΥΤΕΧΝΙΚΗ ΣΧΟΛΗ ΤΜΗΜΑ ΜΗΧΑΝΙΚΩΝ Η/Υ ΚΑΙ ΠΛΗΡΟΦΟΡΙΚΗΣ ΕΙΣΑΓΩΓΗ ΣΤΟN ΠΡΟΓΡΑΜΜΑΤΙΣΜΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΠΑΤΡΩΝ ΠΟΛΥΤΕΧΝΙΚΗ ΣΧΟΛΗ ΤΜΗΜΑ ΜΗΧΑΝΙΚΩΝ Η/Υ ΚΑΙ ΠΛΗΡΟΦΟΡΙΚΗΣ Εμβέλεια Μεταβλητών Εμβέλεια = το τμήμα του προγράμματος στο οποίο έχει ισχύ ή είναι ορατή η μεταβλητή.

Διαβάστε περισσότερα

Διαδικασιακός Προγραμματισμός

Διαδικασιακός Προγραμματισμός Τμήμα ΜΗΧΑΝΙΚΩΝ ΠΛΗΡΟΦΟΡΙΚΗΣ ΤΕ ΤΕΙ ΔΥΤΙΚΗΣ ΕΛΛΑΔΑΣ Διαδικασιακός Προγραμματισμός Διάλεξη 7 η Πίνακες Οι διαλέξεις βασίζονται στο βιβλίο των Τσελίκη και Τσελίκα C: Από τη Θεωρία στην Εφαρμογή Σωτήρης Χριστοδούλου

Διαβάστε περισσότερα

Προγραμματισμός Η/Υ (ΤΛ2007 )

Προγραμματισμός Η/Υ (ΤΛ2007 ) Τμήμα Ηλεκτρονικών Μηχανικών Τ.Ε.Ι. Κρήτης Προγραμματισμός Η/Υ (ΤΛ2007 ) Δρ. Μηχ. Νικόλαος Πετράκης (npet@chania.teicrete.gr) Ιστοσελίδα Μαθήματος: https://eclass.chania.teicrete.gr/ Εξάμηνο: Εαρινό 2015-16

Διαβάστε περισσότερα

Δομημένος Προγραμματισμός (ΤΛ1006)

Δομημένος Προγραμματισμός (ΤΛ1006) Τεχνολογικό Εκπαιδευτικό Ίδρυμα Κρήτης Σχολή Εφαρμοσμένων Επιστημών Τμήμα Ηλεκτρονικών Μηχανικών Τομέας Αυτοματισμού και Πληροφορικής Δομημένος Προγραμματισμός (ΤΛ1006) Δρ. Μηχ. Νικόλαος Πετράκης, Καθηγητής

Διαβάστε περισσότερα

ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ II. Υφαντόπουλος Νικόλαος Υποψήφιος Διδάκτορας Contact:

ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ II. Υφαντόπουλος Νικόλαος Υποψήφιος Διδάκτορας Contact: ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ II Υφαντόπουλος Νικόλαος Υποψήφιος Διδάκτορας Contact: nifantop@unipi.gr Συναρτήσεις (1/2) Στη C χρησιμοποιούμε συχνά τις συναρτήσεις (functions), οι οποίες είναι ρουτίνες που επαναλαμβάνονται

Διαβάστε περισσότερα

ΗΥ-150. Προγραμματισμός

ΗΥ-150. Προγραμματισμός ΗΥ-150 Προγραμματισμός Συναρτήσεις Προγραμματισμός Αλγόριθμοι / Προγράμματα Λύνουμε ένα πρόβλημα εκτελώντας μια ακολουθία από εντολές σε συγκεκριμένη σειρά Αλγόριθμος: καθορίζει τις εντολές και τη σειρά

Διαβάστε περισσότερα

Εισαγωγή στον Προγραμματισμό

Εισαγωγή στον Προγραμματισμό Εισαγωγή στον Προγραμματισμό Συναρτήσεις Δημήτρης Μιχαήλ Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο Ακ. Έτος 2012-2013 Συναρτήσεις Ως τώρα γράφαμε όλα τα προγράμματα μας μέσα στην main..1

Διαβάστε περισσότερα

Διάλεξη 5: Δείκτες και Συναρτήσεις

Διάλεξη 5: Δείκτες και Συναρτήσεις Τμήμα Πληροφορικής Πανεπιστήμιο Κύπρου ΕΠΛ132 Αρχές Προγραμματισμού II Διάλεξη 5: Δείκτες και Συναρτήσεις (Κεφάλαιο 11, KNK-2ED) Δημήτρης Ζεϊναλιπούρ http://www.cs.ucy.ac.cy/courses/epl132 5-1 Περιεχόμενο

Διαβάστε περισσότερα

Τεχνολογία και Προγραμματισμός Υπολογιστών. Η γλώσσα προγραμματισμού C

Τεχνολογία και Προγραμματισμός Υπολογιστών. Η γλώσσα προγραμματισμού C Τεχνολογία και Προγραμματισμός Υπολογιστών Η γλώσσα προγραμματισμού C Με μια ματιά Τύπος Πίνακα Μεταβλητές με ενδείκτη Αλφαριθμητικά - Πίνακες Δισδιάστατος Πολυδιάστατος Πίνακας 2 2 Τύπος Πίνακα Σύνθετος

Διαβάστε περισσότερα

Προγραμματισμός Ι. Συναρτήσεις. Πανεπιστήμιο Πελοποννήσου Τμήμα Πληροφορικής & Τηλεπικοινωνιών

Προγραμματισμός Ι. Συναρτήσεις. Πανεπιστήμιο Πελοποννήσου Τμήμα Πληροφορικής & Τηλεπικοινωνιών Συναρτήσεις Πανεπιστήμιο Πελοποννήσου Τμήμα Πληροφορικής & Τηλεπικοινωνιών Νικόλαος Προγραμματισμός Δ. Τσελίκας Ι Συναρτήσεις - Εισαγωγή Μία συνάρτηση είναι ένα ανεξάρτητο τμήμα κώδικα, που εκτελεί μία

Διαβάστε περισσότερα

Δομημένος Προγραμματισμός

Δομημένος Προγραμματισμός ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ Ανώτατο Εκπαιδευτικό Ίδρυμα Πειραιά Τεχνολογικού Τομέα Δομημένος Προγραμματισμός Ενότητα 9: Συναρτήσεις Εμβέλεια Κουκουλέτσος Κώστας Τμήμα Μηχανικών Ηλεκτρονικών Υπολογιστικών Συστημάτων

Διαβάστε περισσότερα

#include <stdlib.h> Α. [-128,127] Β. [-127,128] Γ. [-128,128]

#include <stdlib.h> Α. [-128,127] Β. [-127,128] Γ. [-128,128] ΕΙΣΑΓΩΓΗ ΣΤΟΝ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟ Εξετάσεις Α Περιόδου 2017 (27/1/2017) ΟΝΟΜΑΤΕΠΩΝΥΜΟ:................................................................................ Α.Μ.:...............................................

Διαβάστε περισσότερα

Εισαγωγή στον Προγραμματισμό

Εισαγωγή στον Προγραμματισμό Εισαγωγή στον Προγραμματισμό Πίνακες Δημήτρης Μιχαήλ Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο Ακ. Έτος 2012-2013 Πίνακες Πολλές φορές θέλουμε να κρατήσουμε στην μνήμη πολλά αντικείμενα

Διαβάστε περισσότερα

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Αναφορές Στοίβα και Σωρός Αναφορές-Παράμετροι

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Αναφορές Στοίβα και Σωρός Αναφορές-Παράμετροι ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ Αναφορές Στοίβα και Σωρός Αναφορές-Παράμετροι new Όπως είδαμε για να δημιουργήσουμε ένα αντικείμενο χρειάζεται να καλέσουμε τη new. Για τον πίνακα είπαμε ότι

Διαβάστε περισσότερα

ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΜΑΘΗΜΑ 6 Ο. Συναρτήσεις Τοπικές, καθολικές, στατικές μεταβλητές Μεταβλητές τύπου extern και register Αναδρομή

ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΜΑΘΗΜΑ 6 Ο. Συναρτήσεις Τοπικές, καθολικές, στατικές μεταβλητές Μεταβλητές τύπου extern και register Αναδρομή ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΜΑΘΗΜΑ 6 Ο Συναρτήσεις Τοπικές, καθολικές, στατικές μεταβλητές Μεταβλητές τύπου extern και register Αναδρομή ΣΙΝΑΤΚΑΣ Ι. ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ 2010-11 1 Συναρτήσεις Ο δομημένος προγραμματισμός,

Διαβάστε περισσότερα

Προγραμματισμός Η/Υ (ΤΛ2007 )

Προγραμματισμός Η/Υ (ΤΛ2007 ) Τμήμα Ηλεκτρονικών Μηχανικών Τ.Ε.Ι. Κρήτης Προγραμματισμός Η/Υ (ΤΛ2007 ) Δρ. Μηχ. Νικόλαος Πετράκης (npet@chania.teicrete.gr) Ιστοσελίδα Μαθήματος: https://eclass.chania.teicrete.gr/ Εξάμηνο: Εαρινό 2014-15

Διαβάστε περισσότερα

Διαδικασιακός Προγραμματισμός

Διαδικασιακός Προγραμματισμός Τμήμα ΜΗΧΑΝΙΚΩΝ ΠΛΗΡΟΦΟΡΙΚΗΣ ΤΕ ΤΕΙ ΔΥΤΙΚΗΣ ΕΛΛΑΔΑΣ Διαδικασιακός Προγραμματισμός Διάλεξη 11 η Συναρτήσεις Οι διαλέξεις βασίζονται στο βιβλίο των Τσελίκη και Τσελίκα C: Από τη Θεωρία στην Εφαρμογή Σωτήρης

Διαβάστε περισσότερα

int array[10]; double arr[5]; char pin[20]; Προγραµµατισµός Ι

int array[10]; double arr[5]; char pin[20]; Προγραµµατισµός Ι Εισαγωγή Στον Προγραµµατισµό «C» Πίνακες Πανεπιστήµιο Πελοποννήσου Τµήµα Πληροφορικής & Τηλεπικοινωνιών Νικόλαος Δ. Τσελίκας Νικόλαος Προγραµµατισµός Δ. Τσελίκας Ι Πίνακες στη C Ένας πίνακας στη C είναι

Διαβάστε περισσότερα

Η γλώσσα προγραμματισμού C Οι συναρτήσεις στη C (2)

Η γλώσσα προγραμματισμού C Οι συναρτήσεις στη C (2) Η γλώσσα προγραμματισμού C Οι συναρτήσεις στη C (2) Τι γίνεται όταν καλείται μια συνάρτηση Όταν γίνεται η κλήση μιας συνάρτησης, ο μεταγλωττιστής δεσμεύει μνήμη για τις μεταβλητές που δηλώνονται σαν παράμετροι

Διαβάστε περισσότερα

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Κλάσεις και Αντικείμενα Αναφορές

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Κλάσεις και Αντικείμενα Αναφορές ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ Κλάσεις και Αντικείμενα Αναφορές Μαθήματα από το lab Υπενθύμιση: Η άσκηση ζητούσε να υλοποιήσετε μία κλάση vector που να διαχειρίζεται διανύσματα οποιουδήποτε

Διαβάστε περισσότερα

Α Β Γ static; printf("%c\n", putchar( A +1)+2); B DB BD. int i = 0; while (++i); printf("*");

Α Β Γ static; printf(%c\n, putchar( A +1)+2); B DB BD. int i = 0; while (++i); printf(*); ΕΙΣΑΓΩΓΗ ΣΤΟΝ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟ Εξετάσεις Α Περιόδου 2016 (1/2/2016) ΟΝΟΜΑΤΕΠΩΝΥΜΟ:................................................................................ Α.Μ.:...............................................

Διαβάστε περισσότερα

Προγραμματισμός Η/Υ (ΤΛ2007 )

Προγραμματισμός Η/Υ (ΤΛ2007 ) Τμήμα Ηλεκτρονικών Μηχανικών Τ.Ε.Ι. Κρήτης Προγραμματισμός Η/Υ (ΤΛ2007 ) Δρ. Μηχ. Νικόλαος Πετράκης (npet@chania.teicrete.gr) Ιστοσελίδα Μαθήματος: https://eclass.chania.teicrete.gr/ Εξάμηνο: Εαρινό 2014-15

Διαβάστε περισσότερα

Προγραμματισμός Ι (ΗΥ120)

Προγραμματισμός Ι (ΗΥ120) Προγραμματισμός Ι (ΗΥ120) Διάλεξη 12: Συναρτήσεις & Δείκτες Αλλαγή του «εξωτερικού» περιβάλλοντος Αν σαν παράμετρος μιας συνάρτησης δοθεί μια μεταβλητή, σαν πραγματική παράμετρος θα περαστεί η τιμή της.

Διαβάστε περισσότερα

Προγραμματισμός Ι. Δυναμική Διαχείριση Μνήμης. Δημήτρης Μιχαήλ. Ακ. Έτος 2011-2012. Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο

Προγραμματισμός Ι. Δυναμική Διαχείριση Μνήμης. Δημήτρης Μιχαήλ. Ακ. Έτος 2011-2012. Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο Προγραμματισμός Ι Δυναμική Διαχείριση Μνήμης Δημήτρης Μιχαήλ Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο Ακ. Έτος 2011-2012 Ανάγκη για Δυναμική Μνήμη Στατική Μνήμη Μέχρι τώρα χρησιμοποιούσαμε

Διαβάστε περισσότερα

Ανάπτυξη και Σχεδίαση Λογισμικού

Ανάπτυξη και Σχεδίαση Λογισμικού Ανάπτυξη και Σχεδίαση Λογισμικού Η γλώσσα προγραμματισμού C Γεώργιος Δημητρίου Συναρτήσεις (Functions) Οι βασικές λειτουργικές ενότητες ενός προγράμματος C Καλούνται με ορίσματα που αντιστοιχούνται σε

Διαβάστε περισσότερα

Διάλεξη 3η: Τύποι Μεταβλητών, Τελεστές, Είσοδος/Έξοδος

Διάλεξη 3η: Τύποι Μεταβλητών, Τελεστές, Είσοδος/Έξοδος Διάλεξη 3η: Τύποι Μεταβλητών, Τελεστές, Είσοδος/Έξοδος Τμήμα Επιστήμης Υπολογιστών, Πανεπιστήμιο Κρήτης Εισαγωγή στην Επιστήμη Υπολογιστών Βασίζεται σε διαφάνειες του Κ Παναγιωτάκη Πρατικάκης (CSD) Μεταβλητές,

Διαβάστε περισσότερα

Προγραμματισμό για ΗΜΥ

Προγραμματισμό για ΗΜΥ ΕΠΛ 034: Εισαγωγή στον Προγραμματισμό για ΗΜΥ Αχιλλέας Αχιλλέως, Τμήμα Πληροφορικής, Πανεπιστήμιο Κύπρου Email: achilleas@cs.ucy.ac.cy Κεφάλαιο 5 Συναρτήσεις Θέματα ιάλεξης Χρησιμότητα Συναρτήσεων Σύνταξη

Διαβάστε περισσότερα

ΕΠΛ232 Προγραμματιστικές Τεχνικές και Εργαλεία Δείκτες και Συναρτήσεις (Κεφάλαιο 11, KNK-2ED)

ΕΠΛ232 Προγραμματιστικές Τεχνικές και Εργαλεία Δείκτες και Συναρτήσεις (Κεφάλαιο 11, KNK-2ED) ΕΠΛ232 Προγραμματιστικές Τεχνικές και Εργαλεία Δείκτες και Συναρτήσεις (Κεφάλαιο 11, KNK-2ED) Τμήμα Πληροφορικής, Πανεπιστήμιο Κύπρου http://www.cs.ucy.ac.cy/courses/epl232 Το μάθημα αυτό δομήθηκε βάση

Διαβάστε περισσότερα

Διάλεξη 9η: Πίνακες (arrays)

Διάλεξη 9η: Πίνακες (arrays) Διάλεξη 9η: Πίνακες (arrays) Τμήμα Επιστήμης Υπολογιστών, Πανεπιστήμιο Κρήτης Εισαγωγή στην Επιστήμη Υπολογιστών Βασίζεται σε διαφάνειες του Κ Παναγιωτάκη Πρατικάκης (CSD) Arrays CS100, 2016-2017 1 / 17

Διαβάστε περισσότερα

Δομές Δεδομένων (Εργ.) Ακ. Έτος Διδάσκων: Ευάγγελος Σπύρου. Εργαστήριο 3 Επανάληψη Γ μέρος

Δομές Δεδομένων (Εργ.) Ακ. Έτος Διδάσκων: Ευάγγελος Σπύρου. Εργαστήριο 3 Επανάληψη Γ μέρος ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΕΣΣΑΛΙΑΣ Δομές Δεδομένων (Εργ.) Ακ. Έτος 2017-18 Διδάσκων: Ευάγγελος Σπύρου Εργαστήριο 3 Επανάληψη Γ μέρος 1. Στόχος του εργαστηρίου Στόχος του τρίτου εργαστηρίου είναι

Διαβάστε περισσότερα

Δομημένος Προγραμματισμός. Τμήμα Επιχειρηματικού Σχεδιασμού και Πληροφοριακών Συστημάτων

Δομημένος Προγραμματισμός. Τμήμα Επιχειρηματικού Σχεδιασμού και Πληροφοριακών Συστημάτων Δομημένος Προγραμματισμός Τμήμα Επιχειρηματικού Σχεδιασμού και Πληροφοριακών Συστημάτων www.bpis.teicrete.gr Τμήμα Επιχειρηματικού Σχεδιασμού και Πληροφοριακών Συστημάτων www.bpis.teicrete.gr 2 Δομές Δεδομένων

Διαβάστε περισσότερα

Δομημένος Προγραμματισμός

Δομημένος Προγραμματισμός ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ Ανώτατο Εκπαιδευτικό Ίδρυμα Πειραιά Τεχνολογικού Τομέα Δομημένος Προγραμματισμός Ενότητα 8: Συναρτήσεις Κουκουλέτσος Κώστας Τμήμα Μηχανικών Ηλεκτρονικών Υπολογιστικών Συστημάτων Άδειες

Διαβάστε περισσότερα

Α. unsigned int Β. double. Γ. int. unsigned char x = 1; x = x + x ; x = x * x ; x = x ^ x ; printf("%u\n", x); Β. unsigned char

Α. unsigned int Β. double. Γ. int. unsigned char x = 1; x = x + x ; x = x * x ; x = x ^ x ; printf(%u\n, x); Β. unsigned char ΕΙΣΑΓΩΓΗ ΣΤΟΝ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟ Εξετάσεις Β Περιόδου 2015 (8/9/2015) ΟΝΟΜΑΤΕΠΩΝΥΜΟ:................................................................................ Α.Μ.:...............................................

Διαβάστε περισσότερα

Διδάσκων: Κωνσταντίνος Κώστα Διαφάνειες: Δημήτρης Ζεϊναλιπούρ

Διδάσκων: Κωνσταντίνος Κώστα Διαφάνειες: Δημήτρης Ζεϊναλιπούρ Διάλεξη 3: Δείκτες και Πίνακες Στην ενότητα αυτή θα μελετηθούν τα εξής επιμέρους θέματα: Αριθμητική Δεικτών Δείκτες και Πίνακες Παραδείγματα Διδάσκων: Κωνσταντίνος Κώστα Διαφάνειες: Δημήτρης Ζεϊναλιπούρ

Διαβάστε περισσότερα

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Αναφορές Στοίβα και Σωρός Μνήμης Αντικείμενα ως ορίσματα

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Αναφορές Στοίβα και Σωρός Μνήμης Αντικείμενα ως ορίσματα ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ Αναφορές Στοίβα και Σωρός Μνήμης Αντικείμενα ως ορίσματα ΑΝΑΦΟΡΕΣ new Όπως είδαμε για να δημιουργήσουμε ένα αντικείμενο χρειάζεται να καλέσουμε τη new. Για

Διαβάστε περισσότερα

Προγραμματισμός Ι. Προχωρημένα Θέματα. Δημήτρης Μιχαήλ. Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο

Προγραμματισμός Ι. Προχωρημένα Θέματα. Δημήτρης Μιχαήλ. Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο Προγραμματισμός Ι Προχωρημένα Θέματα Δημήτρης Μιχαήλ Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο Ανακατεύθυνση Εισόδου/Εξόδου Συνήθως η τυπική είσοδος ενός προγράμματος (stdin) προέρχεται

Διαβάστε περισσότερα

Κεφάλαιο 8.7. Πίνακες & Συναρτήσεις ( ιάλεξη 17) ιδάσκων: ηµήτρης Ζεϊναλιπούρ

Κεφάλαιο 8.7. Πίνακες & Συναρτήσεις ( ιάλεξη 17) ιδάσκων: ηµήτρης Ζεϊναλιπούρ Κεφάλαιο 8.7 Πίνακες & Συναρτήσεις ( ιάλεξη 17) ιδάσκων: ηµήτρης Ζεϊναλιπούρ 17-1 Εισαγωγή Στις προηγούµενες διαλέξεις µάθαµε πώς να δηλώνουµε, αρχικοποιούµε και να επεξεργαζόµαστε πίνακες. Σήµερα θα µελετήσουµε

Διαβάστε περισσότερα

Λύβας Χρήστος Αρχική επιµέλεια Πιτροπάκης Νικόλαος και Υφαντόπουλος Νικόλαος

Λύβας Χρήστος Αρχική επιµέλεια Πιτροπάκης Νικόλαος και Υφαντόπουλος Νικόλαος ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ IΙ Λύβας Χρήστος chrislibas@ssl-unipi.gr Αρχική επιµέλεια Πιτροπάκης Νικόλαος και Υφαντόπουλος Νικόλαος >_ ΣΥΝΑΡΤΗΣΕΙΣ ΣΤΗ C (1/3) +- Στη C χρησιμοποιούμε συχνα τις συναρτήσεις (functions),

Διαβάστε περισσότερα

Προγραμματισμό για ΗΜΥ

Προγραμματισμό για ΗΜΥ ΕΠΛ 34: Εισαγωγή στον Προγραμματισμό για ΗΜΥ Αχιλλέας Αχιλλέως, Τμήμα Πληροφορικής, Πανεπιστήμιο Κύπρου Email: achilleas@cs.ucy.ac.cy Κεφάλαιο 12 Πίνακες εικτών (Pointers Arrays) Θέματα ιάλεξης Στην ενότητα

Διαβάστε περισσότερα

ΣΥΝΑΡΤΗΣΕΙΣ (Functions)

ΣΥΝΑΡΤΗΣΕΙΣ (Functions) ΣΥΝΑΡΤΗΣΕΙΣ (Functions) Δομή Συνάρτησης τύπος όνομα ( λίστα τυπικών παραμέτρων ) Δηλώσεις μεταβλητών εντολή_1 εντολή_2 : εντολή_ν Σώμα της συνάρτησης Δομή της Λίστας Τυπικών Παραμέτρων τύπος_1 τύπος_2

Διαβάστε περισσότερα

7. ΕΙΣΑΓΩΓΗ ΣΤΙΣ ΣΥΝΑΡΤΗΣΕΙΣ

7. ΕΙΣΑΓΩΓΗ ΣΤΙΣ ΣΥΝΑΡΤΗΣΕΙΣ 7. ΕΙΣΑΓΩΓΗ ΣΤΙΣ ΣΥΝΑΡΤΗΣΕΙΣ 7.1 Ορισμός και δήλωση συνάρτησης Μία συνάρτηση είναι μία ενότητα οδηγιών οι οποίες μαζί εκτελούν μία συγκεκριμένη εργασία. Παρέχει έναν κατάλληλο τρόπο να μπορέσουμε να κάνουμε

Διαβάστε περισσότερα

ΗΥ-150. Πίνακες (Arrays)

ΗΥ-150. Πίνακες (Arrays) ΗΥ-150 Προγραµµατισµός Πίνακες (Arrays) Προγραµµατισµός Εισαγωγικά Έστω ότι θέλουµε να αποθηκεύσουµε 100 ονόµατα φοιτητών και τους βαθµούς τους. Πως θα το κάναµε αυτό µε µεταβλητές; Πως θα µπορούσαµε να

Διαβάστε περισσότερα

Διδάσκων: Κωνσταντίνος Κώστα Διαφάνειες: Δημήτρης Ζεϊναλιπούρ

Διδάσκων: Κωνσταντίνος Κώστα Διαφάνειες: Δημήτρης Ζεϊναλιπούρ Διάλεξη 4: Δείκτες και Πίνακες Στην ενότητα αυτή θα μελετηθούν τα εξής θέματα: Πίνακες Δεικτών, Παραδείγματα, Πολυδιάστατοι πίνακες Πέρασμα παραμέτρων σε προγράμματα C Διδάσκων: Κωνσταντίνος Κώστα Διαφάνειες:

Διαβάστε περισσότερα

Προηγμένοι Μικροεπεξεργαστές. Εργαστήριο 6 C & Assembly

Προηγμένοι Μικροεπεξεργαστές. Εργαστήριο 6 C & Assembly Προηγμένοι Μικροεπεξεργαστές Εργαστήριο 6 C & Assembly Real World Situation Στον πραγματικό κόσμο, κανείς δεν γράφει αποκλειστικά assembly Κουραστικό Δύσκολα συντηρήσιμος κώδικας Μηδενική φορητότητα Μεγάλη

Διαβάστε περισσότερα

2 Ορισμός Κλάσεων. Παράδειγμα: Μηχανή για Εισιτήρια. Δομή μιας Κλάσης. Ο Σκελετός της Κλάσης για τη Μηχανή. Ορισμός Πεδίων 4/3/2008

2 Ορισμός Κλάσεων. Παράδειγμα: Μηχανή για Εισιτήρια. Δομή μιας Κλάσης. Ο Σκελετός της Κλάσης για τη Μηχανή. Ορισμός Πεδίων 4/3/2008 Παράδειγμα: Μηχανή για Εισιτήρια 2 Ορισμός Κλάσεων Σύνταξη κλάσης: πεδία, κατασκευαστές, μέθοδοι Ένας αυτόματος εκδότης εισιτηρίων είναι μια μηχανή που δέχεται χρήματα και εκδίδει ένα εισιτήριο. Εκδίδει

Διαβάστε περισσότερα

ΕΡΓΑΣΤΗΡΙΟ 6: Συναρτήσεις και Αναδρομή

ΕΡΓΑΣΤΗΡΙΟ 6: Συναρτήσεις και Αναδρομή ΕΡΓΑΣΤΗΡΙΟ 6: Συναρτήσεις και Αναδρομή Στο εργαστήριο αυτό θα μάθουμε για τη χρήση συναρτήσεων με σκοπό την κατασκευή αυτόνομων τμημάτων προγραμμάτων που υλοποιούν μία συγκεκριμένη διαδικασία, τα οποία

Διαβάστε περισσότερα

Εισαγωγή στον Προγραμματισμό (με. τη C)

Εισαγωγή στον Προγραμματισμό (με. τη C) Υποχρεωτικό Μάθημα 3 ου Εξαμήνου Χειμερινό Εξάμηνο Ακ. Έτους 20 Τμήμα Επιστήμης Υπολογιστών Πανεπιστήμιο Κρήτης Εισαγωγή στον Προγραμματισμό (με τη C) Διδάσκουσα: Φατούρου Παναγιώτα faturu [at] csd.uoc.gr

Διαβάστε περισσότερα

Κεφάλαιο 7: Υποπρογράμματα. Αρχές Γλωσσών Προγραμματισμού και Μεταφραστών

Κεφάλαιο 7: Υποπρογράμματα. Αρχές Γλωσσών Προγραμματισμού και Μεταφραστών Κεφάλαιο 7: Υποπρογράμματα Αρχές Γλωσσών Προγραμματισμού και Μεταφραστών Ορισμός Αφαίρεση με χρήση υποπρογραμμάτων (subprogram abstraction) είναι η αντιστοίχιση ενός συνόλου εισόδων σε ένα σύνολο εξόδων

Διαβάστε περισσότερα

ΔΟΜΗΜΕΝΟΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ

ΔΟΜΗΜΕΝΟΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΔΟΜΗΜΕΝΟΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ Μάθημα 5ο Τμήμα Διοίκησης Επιχειρήσεων α εξάμηνο Β. Φερεντίνος Πίνακες 77 Στατική δομή αποθήκευσης δεδομένων (το μέγεθος ορίζεται εξαρχής και δεν αλλάζει) Αποθήκευση πολλών μεταβλητών

Διαβάστε περισσότερα

Προγραμματισμός Η/Υ 1 (Εργαστήριο)

Προγραμματισμός Η/Υ 1 (Εργαστήριο) Προγραμματισμός Η/Υ 1 (Εργαστήριο) Ενότητα 2: Δομή ενός προγράμματος C Καθηγήτρια Εφαρμογών: Τσαγκαλίδου Ροδή Τμήμα: Ηλεκτρολόγων Μηχανικών Τ.Ε. Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες

Διαβάστε περισσότερα

ΕΡΓΑΣΤΗΡΙΟ 1 - ΣΗΜΕΙΩΣΕΙΣ

ΕΡΓΑΣΤΗΡΙΟ 1 - ΣΗΜΕΙΩΣΕΙΣ ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΕΣΣΑΛΙΑΣ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ ΑΚΑΔΗΜΑΪΚΟ ΕΤΟΣ 2017-2018 ΧΕΙΜΕΡΙΝΟ ΕΞΑΜΗΝΟ ΜΑΘΗΜΑ: ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ Εισαγωγή ΕΡΓΑΣΤΗΡΙΟ 1 - ΣΗΜΕΙΩΣΕΙΣ Ένα πρόγραμμα σε C περιλαμβάνει μια ή περισσότερες συναρτήσεις

Διαβάστε περισσότερα

Κλάσεις και Αντικείµενα

Κλάσεις και Αντικείµενα Κλάσεις και Αντικείµενα Γρηγόρης Τσουµάκας Τµήµα Πληροφορικής, Αριστοτέλειο Πανεπιστήµιο Θεσσαλονίκης Κλάσεις και Αντικείµενα 2 Τα αντικείµενα σε µια αντικειµενοστρεφή γλώσσα προγραµµατισµού, µοντελοποιούν

Διαβάστε περισσότερα

Προγραμματισμός Η/Υ. Ενότητα 7: Συναρτήσεις

Προγραμματισμός Η/Υ. Ενότητα 7: Συναρτήσεις Προγραμματισμός Η/Υ Ενότητα 7: Νίκος Καρακαπιλίδης, Καθηγητής Δημήτρης Σαραβάνος, Καθηγητής Πολυτεχνική Σχολή Τμήμα Μηχανολόγων & Αεροναυπηγών Μηχανικών Σκοποί ενότητας Κατανόηση του ορισμού και της κλήση

Διαβάστε περισσότερα

Γλώσσες Προγραμματισμού

Γλώσσες Προγραμματισμού Γλώσσες Προγραμματισμού Διδάσκων: Ανδρέας Παπασαλούρος Ιστοσελίδα: http://www.samos.aegean.gr/math/andpapas/courses/pl/default.htm Πλατφόρμα ηλεκτρονικής μάθησης: http://myria.math.aegean.gr/moodle/ Πλατφόρμα

Διαβάστε περισσότερα

Προγραµµατιστικές Τεχνικές

Προγραµµατιστικές Τεχνικές Εθνικό Μετσόβιο Πολυτεχνείο Σχολή Αγρονόµων Τοπογράφων Μηχανικών Προγραµµατιστικές Τεχνικές Βασίλειος Βεσκούκης ρ. Ηλεκτρολόγος Μηχανικός & Μηχανικός Υπολογιστών ΕΜΠ v.vescoukis@cs.ntua.gr Ρωµύλος Κορακίτης

Διαβάστε περισσότερα

ΔΕΙΚΤΕΣ ΚΑΙ ΔΙΕΥΘΥΝΣΕΙΣ

ΔΕΙΚΤΕΣ ΚΑΙ ΔΙΕΥΘΥΝΣΕΙΣ ΔΕΙΚΤΕΣ ΚΑΙ ΔΙΕΥΘΥΝΣΕΙΣ Γεώργιος Παπαϊωάννου (2013-14) gepap@aueb.gr Περιγραφή: Εισαγωγή στους δείκτες Το μοντέλο της μνήμης, σωρός και στοίβα Αναφορές Δείκτες και πίνακες Δέσμευση και αποδέσμευση μνήμης

Διαβάστε περισσότερα

Δομημένος Προγραμματισμός

Δομημένος Προγραμματισμός ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ Ανώτατο Εκπαιδευτικό Ίδρυμα Πειραιά Τεχνολογικού Τομέα Δομημένος Προγραμματισμός Ενότητα: Εισαγωγή στη C θεωρία Δ. Ε. Μετάφας Τμ. Ηλεκτρονικών Μηχ. Τ.Ε. Άδειες Χρήσης Το παρόν εκπαιδευτικό

Διαβάστε περισσότερα

Ορισμός μεταβλητών δεικτών και αρχικοποίηση

Ορισμός μεταβλητών δεικτών και αρχικοποίηση Ορισμός μεταβλητών δεικτών και αρχικοποίηση Η έννοια του δείκτη Κάθε μεταβλητή σχετίζεται με μια θέση στην κύρια μνήμη του Η/Υ η οποία έχει τη δική της ξεχωριστή διεύθυνση Ο δείκτης είναι μια μεταβλητή

Διαβάστε περισσότερα

Συναρτήσεις και διαδικασίες

Συναρτήσεις και διαδικασίες Συναρτήσεις και διαδικασίες Χρήση συναρτήσεων βιβλιοθήκης Εντολή κλήσης της συνάρτησης printf: printf( Hello, world\n ); Μια συνάρτηση είναι ένα σύνολο εντολών που έχουν ομαδοποιηθεί και τους έχει αποδοθεί

Διαβάστε περισσότερα

5. ΣΥΝΑΡΤΗΣΕΙΣ. (Πρόχειρο σχέδιο - Μαθήµατος 3) p23-29. 5.1 Συναρτήσεις, που δεν επιστρέφουν κάποια τιµή

5. ΣΥΝΑΡΤΗΣΕΙΣ. (Πρόχειρο σχέδιο - Μαθήµατος 3) p23-29. 5.1 Συναρτήσεις, που δεν επιστρέφουν κάποια τιµή (Πρόχειρο σχέδιο - Μαθήµατος 3) p23-29 5. ΣΥΝΑΡΤΗΣΕΙΣ 5.1 Συναρτήσεις, που δεν επιστρέφουν κάποια τιµή Η συνάρτηση είναι void, δεν επιστρέφει κάποια τιµή. //Oρισµός συνάρτησης χωρίς παραµέτρους // 12.

Διαβάστε περισσότερα

Προγραμματισμός Ι. Πολλαπλά Αρχεία. Δημήτρης Μιχαήλ. Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο

Προγραμματισμός Ι. Πολλαπλά Αρχεία. Δημήτρης Μιχαήλ. Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο Προγραμματισμός Ι Πολλαπλά Αρχεία Δημήτρης Μιχαήλ Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο Πολλαπλά Αρχεία Όταν γράφουμε μεγάλα προγράμματα θέλουμε να έχουμε ανεξάρτητα κομμάτια κώδικα

Διαβάστε περισσότερα

ΣΧΕΔΙΑΣΗ ΚΑΙ ΥΛΟΠΟΙΗΣΗ ΛΟΓΙΣΜΙΚΟΥ

ΣΧΕΔΙΑΣΗ ΚΑΙ ΥΛΟΠΟΙΗΣΗ ΛΟΓΙΣΜΙΚΟΥ Πανεπιστήμιο Δυτικής Μακεδονίας Τμήμα Μηχανικών Πληροφορικής και Τηλεπικοινωνιών ΣΧΕΔΙΑΣΗ ΚΑΙ ΥΛΟΠΟΙΗΣΗ ΛΟΓΙΣΜΙΚΟΥ Εμβέλεια Μεταβλητών Εμβέλεια Μεταβλητής Οι μεταβλητές που έχουμε δει μέχρι τώρα είναι

Διαβάστε περισσότερα

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Κλάσεις και Αντικείμενα

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Κλάσεις και Αντικείμενα ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ Κλάσεις και Αντικείμενα Στην άσκηση αυτή θα υλοποιήσετε μια κλάση RandomVector η οποία διαχειρίζεται ένα τυχαίο διάνυσμα ακεραίων το οποίο μπορεί να έχει οποιοδήποτε

Διαβάστε περισσότερα

Προγραμματισμός Υπολογιστών με C++

Προγραμματισμός Υπολογιστών με C++ Προγραμματισμός Υπολογιστών με C++ ( 2012-13 ) 5η διάλεξη Ίων Ανδρουτσόπουλος http://www.aueb.gr/users/ion/ 1 Τι θα ακούσετε σήμερα Πίνακες ως ορίσματα συναρτήσεων. Τα ορίσματα argc και argv της main.

Διαβάστε περισσότερα

Συναρτήσεις. Υποπρόγραμμα

Συναρτήσεις. Υποπρόγραμμα Συναρτήσεις Υποπρόγραμμα Ένα σύνολο από εντολές που κάνουν κάτι συγκεκριμένο, έχουν στενή σχέση/εξάρτηση μεταξύ τους, έχουν «χαλαρή» σύνδεση με τον υπόλοιπο κώδικα, μπορεί να εξαχθεί από το πρόγραμμά μας

Διαβάστε περισσότερα

ΕΡΓΑΣΤΗΡΙΑΚΕΣ ΑΣΚΗΣΕΙΣ C ΣΕΙΡΑ 2 η

ΕΡΓΑΣΤΗΡΙΑΚΕΣ ΑΣΚΗΣΕΙΣ C ΣΕΙΡΑ 2 η Δ.Π.Θ. - Πολυτεχνική Σχολή Τμήμα Μηχανικών Παραγωγής & Διοίκησης Ακαδ. έτος 2017-2018 Τομέας Συστημάτων Παραγωγής Εξάμηνο Β Αναπληρωτής Καθηγητής Στέφανος Δ. Κατσαβούνης ΜΑΘΗΜΑ : ΔΟΜΗΜΕΝΟΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ

Διαβάστε περισσότερα

Πίνακες. 1 Πίνακες. 30 Μαρτίου 2014

Πίνακες. 1 Πίνακες. 30 Μαρτίου 2014 Πίνακες 0 Μαρτίου 014 1 Πίνακες Είδαμε ότι δηλώνοντας μία μεταβλητή κάποιου συγκεκριμένου τύπου δεσμεύουμε μνήμη κατάλληλη για να αποθηκευτεί μία οντότητα του συγκεκριμένου τύπου. Στην περίπτωση που θέλουμε

Διαβάστε περισσότερα

Μεταγλώττιση και σύνδεση πολλαπλών αρχείων κώδικα. Προγραμματισμός II 1

Μεταγλώττιση και σύνδεση πολλαπλών αρχείων κώδικα. Προγραμματισμός II 1 Μεταγλώττιση και σύνδεση πολλαπλών αρχείων κώδικα Προγραμματισμός II 1 lalis@inf.uth.gr Χρήση λογισμικού που ήδη υπάρχει Τα πολύπλοκα συστήματα αναπτύσσονται σταδιακά, «χτίζοντας» πάνω σε υπάρχουσα λειτουργικότητα

Διαβάστε περισσότερα

Προγραμματισμός H/Y Ενότητα 5: Συναρτήσεις. Επικ. Καθηγητής Συνδουκάς Δημήτριος Τμήμα Διοίκησης Επιχειρήσεων (Γρεβενά)

Προγραμματισμός H/Y Ενότητα 5: Συναρτήσεις. Επικ. Καθηγητής Συνδουκάς Δημήτριος Τμήμα Διοίκησης Επιχειρήσεων (Γρεβενά) Προγραμματισμός H/Y Ενότητα 5: Συναρτήσεις Επικ. Καθηγητής Συνδουκάς Δημήτριος Τμήμα Διοίκησης Επιχειρήσεων (Γρεβενά) Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative Commons.

Διαβάστε περισσότερα

Εισαγωγή στην C. Μορφή Προγράµµατος σε γλώσσα C

Εισαγωγή στην C. Μορφή Προγράµµατος σε γλώσσα C Εισαγωγή στην C Μορφή Προγράµµατος σε γλώσσα C Τµήµα Α Με την εντολή include συµπεριλαµβάνω στο πρόγραµµα τα πρότυπα των συναρτήσεων εισόδου/εξόδου της C.Το αρχείο κεφαλίδας stdio.h είναι ένας κατάλογος

Διαβάστε περισσότερα

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Αντικείμενα με πίνακες. Constructors. Υλοποίηση Στοίβας

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Αντικείμενα με πίνακες. Constructors. Υλοποίηση Στοίβας ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ Αντικείμενα με πίνακες. Constructors. Υλοποίηση Στοίβας Στην άσκηση αυτή θα υλοποιήσετε μια κλάση Geometric η οποία διαχειρίζεται μια γεωμετρική ακολουθία ακεραίων

Διαβάστε περισσότερα

Εισαγωγή σε αντικειμενοστραφή concepts. Και λίγη C#

Εισαγωγή σε αντικειμενοστραφή concepts. Και λίγη C# Εισαγωγή σε αντικειμενοστραφή concepts Και λίγη C# Κλάσεις Κλάση: τύπος δεδομένων που αποτελεί συλλογή πεδίων, ορισμών συναρτήσεων/μεθόδων και ορισμών άλλων τύπων δεδομένων. Αντίστοιχο σκεπτικό με struct

Διαβάστε περισσότερα