Τεχνολογίες Υλοποίησης Αλγορίθµων
|
|
- Ανδρόνικα Εφροσύνη Γιάνναρης
- 8 χρόνια πριν
- Προβολές:
Transcript
1 Τεχνολογίες Υλοποίησης Αλγορίθµων Χρήστος Ζαρολιάγκης Καθηγητής Τµήµα Μηχ/κων Η/Υ & Πληροφορικής Πανεπιστήµιο Πατρών Εισαγωγή στην C / 52
2 Εισαγωγή στην C Πίνακες (Arrays) και ιανύσµατα (Vectors) Εντολές Επιλογής και Επανάληψης είκτες (Pointers) και Αναφορές (References) Συναρτήσεις (Functions) Αρχέτυπα (Templates) Εµβέλεια (Scope) Κατανοµή Μνήµης (Memory Allocation) υναµική Κατανοµή Μνήµης (Dynamic Memory Allocation) Χειρισµός Εξαιρέσεων (Exception Handling) Υπερφόρτωση (Overloading) 2 / 52
3 Πίνακες και ιανύσµατα type array_name [size_d1][size_d2]... #include <iostream> using namespace std; int main() const number_of_students = 30; float sum = 0, average = 0; float marks[number_of_students]; int student; cout << "Type in the students marks, one per line"; cout << endl; for (student=0; student<number_of_students; ++student) cin >> marks[student]; sum += marks[student]; average = sum/number_of_students; cout << "The average mark is: " << average << endl; return 0; Αριθµοδείκτης Πίνακα (σε κάθε διάσταση d i): 0.. size_di / 52
4 Πίνακες Οι πίνακες αποθηκεύονται κατά γραµµές. Αρχικοποίηση: int a[2][3] = 1,2,3,4,5,6; int b[2][3] = 1,2,3,4,5; int c[2][3] = 1,2,4; Τιµές του a κατά γραµµές: Τιµές του b κατά γραµµές: Τιµές του c κατά γραµµές: / 52
5 ιανύσµατα (Vectors) Εναλλακτική αναπαράσταση στον ενσωµατωµένο τύπο πίνακα. Περιέχουσα κλάση (container class): µπορεί να περιέχει αντικείµενα κάθε τύπου. ιαθέτει έλεγχο ορίων αριθµοδείκτη. Αρχείο κεφαλίδας: <vector> Αρχικοποίηση: vector<int> v1(10); // equivalent to int i[10] vector<int> v2; Αριθµοδείκτης όπως και στον τύπο πίνακα: void simple_example() const int elem_size=10; vector<int> ivec(elem_size); int ia[elem_size]; for (int ix=0; ix<elem_size; ++ix) ia[ix] = ivec[ix];... 5 / 52
6 Ελεγχος κενότητας ή µεγέθους if (ivec.empty()) // do something for (int ix=0; ix<ivec.size(); ++ix) cout << ivec[ix] << endl;... Αρχικοποίηση διανύσµατος (συνέχεια): vector<int> ivec(10,2); // all elements initialised to 2 int ia[5] = -2, 50, 0, 37, 686; vector<int> ivec(ia, ia+5); // [first, last) // initialises ivec with // a copy of the elements of ia vector<string> svec; void init_and_assign() vector<string> user_names(svec); // initialises one // vector with another... svec = user_names; // copies one vector into another... 6 / 52
7 Εντολές Επιλογής και Επανάληψης Εντολές επιλογής if και if/else if (expression) statement-1; statement-2;... if (expression) i-statement-1; i-statement-2;... else e-statement-1; e-statement-2;... if (expression) i-statement-1;... else if (expression) e1-statement-1;... else //... 7 / 52
8 Παράδειγµα if (grade >= 5) cout << "Passed" << endl; else cout << "Failed" << endl; cout << "You must take this course again" << endl; 8 / 52
9 Η εντολή πολλαπλής επιλογής switch char grade; int acount=0, bcount=0, ccount=0, dcount=0; //... switch (grade) case A : case a : ++acount; break; // important! case B : case b : ++bcount; break; case C : case c : ++ccount; break; case D : case d : ++dcount; break; default: cout << "Incorrect letter grade entered" << endl; break; // not necessary, but recommended 9 / 52
10 Βρόχοι επανάληψης Ο βρόχος for for (init-statement; expression 1; expression 2) statement-1; statement-2; Ο βρόχος while while (expression) statement-1; statement-2; Ο βρόχος do-while do statement-1; statement-2; while (expression); 10 / 52
11 Break και Continue Και οι δύο αλλάζουν τη ϱοή ελέγχου. Η break (χρησιµοποιείται σε εντολές while, for, do/while, switch) προκαλεί την άµεση έξοδο από τον κορµό της εντολής. Η continue (χρησιµοποιείται σε εντολές while, for, do/while) προκαλεί την παράλειψη της εκτέλεσης των υπόλοιπων εντολών στον κορµό του ϐρόχου και τη συνέχιση µε την επόµενη επανάληψη του ϐρόχου. while, do/while : η συνθήκη τερµατισµού του ϐρόχου εξετάζεται αµέσως µετα την continue. for : πρώτα εκτελείται η παράσταση αύξησης και µετά εξετάζεται η συνθήκη τερµατισµού του ϐρόχου. 11 / 52
12 Παράδειγµα #include <iostream> using std::cout; using std::endl; int main() int i,j; for (i=1; i<=10; i++) if (i==5) break; // break loop when i == 5 cout << i << " "; cout << endl << "Broke out of loop at i=" << i << endl; for (j=1; j<=10; j++) if (j==5) continue; // skip remaining code in the // for-loop when j == 5 cout << j << " "; cout << endl << "Used continue to skip printing"; cout << " the value 5" << endl; return 0; 12 / 52
13 Τύποι εικτών και Αναφορών είκτης (pointer): Μεταβλητή η οποία περιέχει σαν τιµή µια διεύθυνση µνήµης. Χρησιµοποιείται για να αποθηκεύσει τη διεύθυνση µιας µεταβλητής που περιέχει µια συγκεκριµένη τιµή. int * ptr, count; // ptr is a pointer to // an integer value 13 / 52
14 Τελεστές εικτών (αποαναφοροποίηση), & (διεύθυνση µνήµης) iptr i int i=37; int * iptr; iptr = &i; // assigns the address of i to // the pointer variable iptr // The preceding two lines could be // alternatively written as // int * iptr = &i; cout << *iptr << endl; // * dereferences iptr; // this statement prints // the value of i, i.e., / 52
15 Αναφορά (reference) Είναι ένα εναλλακτικό όνοµα για ένα αντικείµενο. Επιτρέπει τον έµµεσο χειρισµό ενός αντικειµένου. int val = 516; int & refval = val; int & refval2; // wrong! A reference must always // be initialised to an object int & refval = &val; // wrong! refval is of type int // not int* Εφόσον οριστεί, δεν µπορεί να αποτελέσει αναφορά ενός άλλου αντικειµένου. int min_val = 0; // it sets val to the value of min_val // refval is not set to refer to min_val refval = min_val; Ολες οι λειτουργίες σε µια αναφορά ουσιαστικά εφαρµόζονται στο αντικείµενο στο οποίο αναφέρεται. refval += 2; int i = refval; // adds 2 to val // assigns to i the current // value of val int * ptr = &refval; // initialises ptr with // the address of val 15 / 52
16 Παράδειγµα 1 #include <iostream> using namespace std; int main() int i = 333; int * p = &i; cout << "i : " << i << endl; cout << "address of i: " << &i << endl; cout << "value of p : " << p << endl; cout << "value of &p : " << &p << endl; cout << "value of *p : " << *p << endl; cout << "value of *&p: " << *&p << endl << endl; *p = 999; cout << "i : " << i << endl; cout << "address of i: " << &i << endl; cout << "value of p : " << p << endl; cout << "value of &p : " << &p << endl; cout << "value of *p : " << *p << endl; cout << "value of *&p: " << *&p << endl; return 0; Εξοδος από Diogenis: i : 333 i : 999 address of i: 0xffbef8fc address of i: 0xffbef8fc value of p : 0xffbef8fc value of p : 0xffbef8fc value of &p : 0xffbef8f8 value of &p : 0xffbef8f8 value of *p : 333 value of *p : 999 value of *&p: 0xffbef8fc value of *&p: 0xffbef8fc 16 / 52
17 Παράδειγµα 2 #include <iostream> using namespace std; int main() int i; float sum=0.0, a[10], * pstart, * pend; for (i=0; i<10; i++) a[i]=i; sum += a[i]; cout << "Sum: " << sum << endl; sum=0.0; pstart = &a[0]; // or pstart = a; pend = pstart + 10; while (pstart < pend) sum += *pstart++; cout << "Sum: " << sum << endl; return 0; 17 / 52
18 Συναρτήσεις (Functions) Οµαδοποιεί τµήµατα ενός προγράµµατος (π.χ., παραστάσεις, εντολές) για να διευκολύνει την επαναχρησιµοποίηση αυτών των τµηµάτων µέσα στο πρόγραµµα. Αποτελείται από: το όνοµα της συνάρτησης τη λίστα παραµέτρων (τυπικές παράµετροι) [είσοδος] τον τύπο τιµής που επιστρέφει [έξοδος] τον κορµό (κώδικας που υλοποιεί την συνάρτηση) Ορισµός συνάρτησης: τύπος τιµής επιστροφής ακολουθούµενος από το όνοµα, τη λίστα των παραµέτρων και τον κορµό της συνάρτησης. ήλωση συνάρτησης: τύπος τιµής επιστροφής ακολουθούµενος από το όνοµα και τη λίστα των παραµέτρων (δηλαδή µόνο η επικεφαλίδα της συνάρτησης). 18 / 52
19 Παραδείγµατα ορισµών συναρτήσεων // return the absolute value of iobj int abs(int iobj) return( iobj < 0? -iobj : iobj ); // return the smaller of v1 and v2 int min(int v1, int v2) return( v1 < v2? v1 : v2 ); // return the greatest common divisor int gcd(int v1, int v2) while ( v2 ) int temp = v2; v2 = v1 % v2; v1 = temp; return v1; 19 / 52
20 Κλήση συνάρτησης Κλήση συνάρτησης: όνοµα της συνάρτησης ακολουθούµενο από τον τελεστή κλήσης () και παρέχοντας πραγµατικές παραµέτρους ( actual parameters) ή ορίσµατα ( arguments). Π.χ.: min(i,j); gcd(35,49); 20 / 52
21 Πλήρες Παράδειγµα 1 #include <iostream> // return the absolute value of iobj int abs(int iobj) return( iobj < 0? -iobj : iobj ); // return the smaller of v1 and v2 int min(int v1, int v2) return( v1 < v2? v1 : v2 ); // return the greatest common divisor int gcd(int v1, int v2) while ( v2 ) int temp = v2; v2 = v1 % v2; v1 = temp; return v1; 21 / 52
22 Πλήρες Παράδειγµα 1 (συνέχεια) int main() cout << "Enter first value: "; int i; cin >> i; cout << "Enter second value: "; int j; cin >> j; cout << endl << "min: " << min(i, j) << endl; i = abs(i); j = abs(j); cout << "gcd: " << gcd(i, j) << endl; return 0; 22 / 52
23 Συναρτήσεις Οι συναρτήσεις καλούνται κατά το χρόνο εκτέλεσης (run-time) του προγράµµατος, εκτός αν έχουν δηλωθεί inline (εµβόλιµες). Εµβόλιµες ( inline ) συναρτήσεις: ο κορµός της συνάρτησης εισάγεται στο σηµείο κλήσης της κατά τη διάρκεια της µεταγλώττισης (αν ο µεταγλωττιστής ϑεωρήσει ότι αυτό είναι δυνατόν). Μια συνάρτηση πρέπει να δηλωθεί πριν κληθεί. Ο ορισµός της συνάρτησης χρησιµεύει και ως δήλωση της. Οµως, Μια συνάρτηση µπορεί να ορισθεί µόνο µία ϕορά σε ένα πρόγραµµα, ενώ µπορεί να δηλωθεί πολλές ϕορές. Η C++ παρέχει µηχανισµούς που επιτρέπουν: (1) Μία συνάρτηση να χρησιµοποιείται σε αρχεία διαφορετικά από αυτό που περιέχει τον ορισµό της. (2) Τον διαχωρισµό µεταξύ προδιαγραφών (ή αλλιώς της διασύνδεσης) µιας συνάρτησης και της υλοποίησής της. 23 / 52
24 Πλήρες Παράδειγµα 2 #include <iostream> // Function declarations int abs(int); int min(int, int); int gcd(int, int); // Function definitions // return the absolute value of iobj inline int abs(int iobj) return( iobj < 0? -iobj : iobj ); // return the smaller of v1 and v2 inline int min(int v1, int v2) return( v1 < v2? v1 : v2 ); // return the greatest common divisor int gcd(int v1, int v2) while ( v2 ) int temp = v2; v2 = v1 % v2; v1 = temp; return v1; 24 / 52
25 Πλήρες Παράδειγµα 2 (συνέχεια) int main() cout << "Enter first value: "; int i; cin >> i; cout << "Enter second value: "; int j; cin >> j; cout << endl << "min: " << min(i, j) << endl; i = abs(i); j = abs(j); cout << "gcd: " << gcd(i, j) << endl; return 0; 25 / 52
26 ηλώσεις Συναρτήσεων ηλώσεις συναρτήσεων (και ορισµοί inline συναρτήσεων) συνιστάται να περιέχονται σε αρχεία κεφαλίδων (.h header files) Ορισµοί συναρτήσεων συνιστάται να περιέχονται σε ένα ξεχωριστό συσχετιζόµενο. C αρχείο. 26 / 52
27 Πλήρες Παράδειγµα 3 // localmath.h #ifndef LOCALMATH_H #define LOCALMATH_H // return the absolute value of iobj inline int abs(int iobj) return( iobj < 0? -iobj : iobj ); // return the smaller of v1 and v2 inline int min(int v1, int v2) return( v1 < v2? v1 : v2 ); int gcd(int, int); #endif 27 / 52
28 Πλήρες Παράδειγµα 3 (συνέχεια) // localmath.c #include "localmath.h" // return the greatest common divisor int gcd(int v1, int v2) while ( v2 ) int temp = v2; v2 = v1 % v2; v1 = temp; return v1; 28 / 52
29 Πλήρες Παράδειγµα 3 (συνέχεια) // fun-main.c #include <iostream> #include "localmath.h" using namespace std; int main() cout << "Enter first value: "; int i; cin >> i; cout << "Enter second value: "; int j; cin >> j; cout << endl << "min: " << min(i, j) << endl; i = abs(i); j = abs(j); cout << "gcd: " << gcd(i, j) << endl; return 0; 29 / 52
30 Μεταγλώττιση & Σύνδεση Μεταγλώττιση: g++ -c localmath.c g++ -c fun-main.c Σύνδεση: g++ -o fun-main fun-main.o localmath.o 30 / 52
31 Μεταβίβαση Ορισµάτων (Argument Passing) Η C++ είναι αυστηρή στον έλεγχο τύπων ( strongly-typed): Ο τύπος κάθε πραγµατικού ορίσµατος συγκρίνεται µε τον τύπο της αντίστοιχης τυπικής παραµέτρου. Σε περίπτωση ασυµφωνίας, πραγµατοποιείται προαγωγή τύπου εφόσον είναι δυνατή. ιαφορετικά, εµφανίζεται λάθος κατά το χρόνο µεταγλώττισης (compile-time error). - Μέθοδοι Μεταβίβασης Ορισµάτων µεταβίβαση κατ αξία (pass-by-value) µεταβίβαση κατ αναφορά (pass-by-reference) 31 / 52
32 Μεταβίβαση κατ αξία Προεπιλεγµένη (default) µέθοδος. ηµιουργείται ένα αντίγραφο της τιµής του ορίσµατος και µεταβιβάζεται στον τοπικό χώρο αποθήκευσης της καλούµενης συνάρτησης. Το περιεχόµενο των ορισµάτων δεν αλλάζει. Παράδειγµα: #include <iostream> using namespace std; // swap() does not swap the value of the arguments! void swap(int v1, int v2) int tmp = v2; v2 = v1; v1 = tmp; int main() int i = 10; int j = 20; cout << "Before swap():\t i: " << i << "\t j: " << j << endl; swap(i,j); cout << "After swap():\t i: " << i << "\t j: " << j << endl; return 0; 32 / 52
33 Μεταβίβαση κατ αξία Η µεταβίβαση κατ αξία δεν είναι κατάλληλη για κάθε περίπτωση. Για παράδειγµα: όταν ένα µεγάλο αντικείµενο πρέπει να µεταβιβαστεί σαν όρισµα όταν οι τιµές των ορισµάτων πρέπει να τροποποιηθούν Μεταβίβαση κατ αναφορά: ίνει τη δυνατότητα στην καλούµενη συνάρτηση να προσπελάσει άµεσα τα δεδοµένα της καλούσας συνάρτησης και να τα τροποποιήσει. Μπορεί να επιτευχθεί χρησιµοποιώντας παραµέτρους τύπου δείκτη ή αναφοράς (η συνήθης υλοποίηση στον µεταγλωττιστή είναι η µεταβίβαση της διεύθυνσης των ορισµάτων). 33 / 52
34 Παράδειγµα // pswap() swaps the values that v1 and v2 address void pswap(int * v1, int * v2) int tmp = *v2; *v2 = *v1; *v1 = tmp; Κλήση της συνάρτησης: pswap(&i,&j); // rswap() swaps the values that v1 and v2 refer void rswap(int & v1, int & v2) int tmp = v2; v2 = v1; v1 = tmp; Κλήση της συνάρτησης: rswap(i,j); 34 / 52
35 Παράµετροι Τύπου Αναφοράς και είκτη Σε ποιες περιπτώσεις προσδιορίζουµε µια παράµετρο σαν αναφορά Οταν δεν ϑέλουµε να αλλάξουµε τις παραµέτρους σε δείκτες για να επιτρέψουµε τροποποίηση των τιµών των ορισµάτων. Οταν ϑέλουµε να επιστρέψουµε επιπρόσθετα αποτελέσµατα. Οταν ϑέλουµε να µεταβιβάσουµε µεγάλα αντικείµενα (επίσης σωστό και για παραµέτρους τύπου δείκτη). Οταν µια παράµετρος δεν πρόκειται να τροποποιηθεί, τότε είναι καλύτερο να δηλωθεί σαν µία αναφορά σε έναν τύπο const, δηλ. const T & a. Επιλογή µεταξύ παραµέτρων τύπου αναφοράς και δείκτη Οταν µια παράµετρος µπορεί να αναφέρεται σε διαφορετικά αντικείµενα µέσα σε µια συνάρτηση ή σε κανένα αντικείµενο, τότε µια παράµετρος τύπου δείκτη πρέπει να χρησιµοποιηθεί. Σε όλες τις άλλες περιπτώσεις συνιστάται η χρήση παραµέτρων τύπου αναφοράς. 35 / 52
36 Μεταβίβαση Πινάκων σαν Ορίσµατα Οι πίνακες στην C++ δεν µεταβιβάζονται ποτέ κατ αξία. Ενας πίνακας µεταβιβάζεται σαν ένας δείκτης στο πρώτο του στοιχείο. Οι ακόλουθοι ορισµοί συναρτήσεων είναι όλοι ισοδύναµοι: int array_sum_1(int x[], int n) int i, t=0; for (i=0; i<n; i++) t += x[i]; return t; int array_sum_2(int x[10], int n) int i, t=0; for (i=0; i<n; i++) t += x[i]; return t; int array_sum_3(int * x, int n) int i, t=0; for (i=0; i<n; i++) t += x[i]; return t; 36 / 52
37 Μεταβίβαση Πινάκων σαν Ορίσµατα #include <iostream> using namespace std; int main() int a[10]=1,2,3,4,5,6,7,8,9,10; int sa=10; cout << "Sum 1: " << array_sum_1(a,sa) << endl; cout << "Sum 2: " << array_sum_2(a,sa) << endl; cout << "Sum 3: " << array_sum_3(a,sa) << endl; return 0; Πολυδιάστατοι πίνακες: Ολες οι διαστάσεις, εκτός από την πρώτη, πρέπει να είναι γνωστές κατά το χρόνο µεταγλώττισης (compile-time). Αλλιώς, πρέπει να χρησιµοποιηθεί η µέθοδος / 52
38 Επιστροφή Τιµών Συναρτήσεων Επιστροφή αξίας ( value return): η καλούσα συνάρτηση λαµβάνει ένα αντίγραφο της τιµής που επιστρέφει η καλούµενη συνάρτηση. Επιστροφή αναφοράς ή δείκτη ( reference or pointer return): η καλούσα συνάρτηση λαµβάνει την lvalue ή τη διεύθυνση που επιστρέφει η καλούµενη συνάρτηση. Π.χ. T & Fun(int i, int & j ) const επιστροφή αναφοράς: παρόµοια µε την επιστροφή αναφοράς µε τη διαφορά ότι το αντικείµενο που επιστρέφεται ορίζεται ως σταθερό αντικείµενο. Π.χ. const T & Fun(int i, int & j ) Καµία επιστροφή τιµής: τύπος επιστροφής void. 38 / 52
39 Αρχέτυπα (Templates) Θυµηθείτε τις συναρτήσεις swap() που ανταλλάσσουν int τιµές. Τι πρέπει να κάνουµε αν ϑέλουµε να ανταλλάξουµε τιµές διαφορετικού τύπου, π.χ. float, long, string ; Αρχέτυπα: προσφέρουν έναν µηχανισµό για παραµετροποίηση τύπων µέσα σε µια συνάρτηση ή στον ορισµό µιας κλάσης. Αυτές οι παράµετροι χρησιµοποιούνται σαν ϑέσεις γενικών τύπων σε ουσιαστικά αµετάβλητο (ως προς συγκεκριµένους τύπους) κώδικα. Παράδειγµα: // rswap() swaps the values that v1 and v2 refer template<typename T> // could be also template<class T> void rswap(t & v1, T & v2) T tmp = v2; v2 = v1; v1 = tmp; 39 / 52
40 Γενική ήλωση Αρχετύπου Γενική ήλωση Αρχετύπου template<typename T1, typename T2,..., typename Tn> T1 fun(t2, T3,..., Tn); (Αντί για typename µπορεί να γραφεί και το class) 40 / 52
41 Ενα Πλήρες Παράδειγµα #include <iostream> #include <string> using namespace std; template<typename T> T min(t a, T b) return a<b? a : b; int main() int i=100, j=200; float a=23.75, b=8.45; string s("data"), t("datum"); // template instantiation: min of integers cout << "min(i,j)=" << min(i,j) << endl; // template instantiation: min of floats cout << "min(a,b)=" << min(a,b) << endl; // template instantiation: min of strings cout << "min(s,t)=" << min(s,t) << endl; return 0; 41 / 52
42 Εξειδίκευση αρχετύπου (template specialization) Αν η γενικευµένη υλοποίηση δεν είναι (για οποιοδήποτε λόγο π.χ. απόδοση) κατάλληλη για έναν συγκεκριµένο τύπο, είναι δυνατόν να οριστεί υλοποίηση µόνο γι αυτόν τον τύπο. Παράδειγµα - εξειδίκευση της swap() για τον τύπο int : template<> void swap(int & v1, int & v2) int temp = v1; v1 = v2; v2 = temp; 42 / 52
43 Εµβέλεια (Scope) Το τµήµα του προγράµµατος µέσα στο οποίο ένα αντικείµενο, µια συνάρτηση, ένας τύπος, ή ένα αρχέτυπο µπορεί να χρησιµοποιηθεί. Τοπική εµβέλεια: Εµβέλεια χώρου ονοµάτων: Εµβέλεια κλάσης: τµήµα προγράµµατος που περιέχεται µέσα στον ορισµό µιας συνάρτησης. Μέσα σε µια συνάρτηση, ένα µπλοκ ( ) αναπαριστάνει επίσης µια ξεχωριστή τοπική εµβέλεια. τµήµα προγράµµατος που δεν περιέχεται µέσα σε δήλωση συνάρτησης, ορισµό συνάρτησης, ή ορισµό κλάσης. Η πιο εξωτερική εµβέλεια χώρου ονοµάτων καλείται καθολική εµβέλεια. τµήµα προγράµµατος που περιέχεται µέσα στον ορισµό µιας κλάσης (ϑα συζητηθεί αργότερα). 43 / 52
44 Κατανοµή µνήµης (Memory allocation) Στατική: η κατανοµή γίνεται από τον µεταγλωττιστή καθώς επεξεργάζεται τον πηγαίο κώδικα. υναµική: η κατανοµή γίνεται από µια ϐιβλιοθήκη που καλείται κατά τη διάρκεια της εκτέλεσης του προγράµµατος. Trade-off: απόδοση (efficiency) vs. ευελιξία (flexibility) 44 / 52
45 Στατική κατανοµή µνήµης Αυτόµατη: ένα αντικείµενο κατανέµεται όταν η εκτέλεση του προγράµµατος ϕτάσει στο µπλοκ µέσα στο οποίο ορίζεται, διατηρείται όσο χρόνο το µπλοκ είναι ενεργό, και αποδεσµεύεται όταν η εκτέλεση του προγράµµατος αφήνει το µπλοκ. float x; // automatic Στατική : ένα στατικό αντικείµενο κατανέµεται από το στιγµή που το πρόγραµµα αρχίζει την εκτέλεσή του και διατηρείται καθ όλη τη διάρκεια Ϲωής του προγράµµατος. // used for global variables // and function names extern float x; // used for local variables in functions; // retain their values when the function // is exited static int i=1; 45 / 52
46 Παράδειγµα #include <iostream> using namespace std; int x=1; // global variable void a(void) int x=25; // initialised every time a is called cout << x << endl; ++x; cout << x << endl; void b(void) static x=50; // initialised only the first time // b is called cout << x << endl; ++x; cout << x << endl; void c(void) cout << x << endl; x *= 10; cout << x << endl; 46 / 52
47 Παράδειγµα (συνέχεια) int main(); int x=5; // local variable to main cout << x << endl; // prints 5 // start new scope int x=7; cout << x << endl; // prints 7 cout << x << endl; // prints 5 a(); // prints 25 and 26 b(); // prints 50 and 51 c(); // prints 1 and 10 a(); // prints 25 and 26 b(); // prints 51 and 52 c(); // prints 10 and 100 return 0; 47 / 52
48 υναµική Κατανοµή Μνήµης Βασικές διαφορές µεταξύ στατικής και δυναµικής κατανοµής µνήµης: Τα στατικά αντικείµενα είναι επώνυµες µεταβλητές τις οποίες χειριζόµαστε µε άµεσο τρόπο. Τα δυναµικά αντικείµενα είναι ανώνυµες µεταβλητές τις οποίες χειριζόµαστε έµµεσα µέσω δεικτών. Κατανοµή/Αποδέσµευση στατικών αντικειµένων γίνεται αυτόµατα από τον µεταγλωττιστή. Κατανοµή/Αποδέσµευση δυναµικών αντικειµένων γίνεται ϱητά από τον προγραµµατιστή χρησιµοποιώντας τις παραστάσεις των τελεστών new και delete. 48 / 52
49 Κατανοµή δυναµικών αντικειµένων int * p = new int(128); // int * p; p = new int(128); // allocates unnamed object of type int, // initialises its value to 128, // and returns its address float * x = new float[100]; // float * x; x = new float[100]; // allocates an array of 100 elements of // type float, and returns the address of // the first element x[0] Αποδέσµευση δυναµικών αντικειµένων delete p; // deletes a single object delete [] x; // deletes an array of objects 49 / 52
50 Χειρισµός Εξαιρέσεων Εξαίρεση: σφάλµα που µπορεί να συµβεί κατά το χρόνο εκτέλεσης ενός προγράµµατος, π.χ. αριθµοδείκτης πίνακα εκτός ορίων. Οι εξαιρέσεις εγείρονται (throw) από το σύστηµα ή τον προγραµµατιστή και συλλαµβάνονται (catch) χρησιµοποιώντας το µπλοκ try catch. 50 / 52
51 Παράδειγµα #include <iostream> using namespace std; int main() int i=0; int j=0; cout << " Type in a number > 10 " ; cin >> i; try if (i <= 10) throw j; // throws an int object with value 0 else cout << " Number was " << i << endl; catch (int j) cout << " Exception raised " << endl; try x = new long long int [n]; // (...) is the catch-all handler catch (...) cout << "Out of Memory" << endl; 51 / 52
52 Υπερφόρτωση Συναρτήσεων Επιτρέπει σε περισσότερες από µία συναρτήσεις να χρησιµοποιούν το ίδιο όνοµα µε την προϋπόθεση ότι κάθε τέτοια συνάρτηση έχει µια µοναδική λίστα παραµέτρων είτε κατά αριθµό, είτε κατά τύπο παραµέτρων (Προσοχή: δεν αρκεί να είναι διαφορετικός µόνο ο τύπος τιµής επιστροφής). // An overloaded set of min() functions... int min(int, int); int min(const int * parray, int size); int min(const char * str); char min(string); string min(string, string); 52 / 52
Τεχνολογίες Υλοποίησης Αλγορίθµων
Τεχνολογίες Υλοποίησης Αλγορίθµων Χρήστος Ζαρολιάγκης Καθηγητής Τµήµα Μηχ/κων Η/Υ & Πληροφορικής Πανεπιστήµιο Πατρών email: zaro@ceid.upatras.gr Εισαγωγή στην C++ - 2 1 / 59 Αδειες Χρήσης Το παρόν εκπαιδευτικό
Αναφορές, είκτες και Αλφαριθμητικά
Αναφορές, είκτες και Αλφαριθμητικά Ο τελεστής αναφοροποίησης Αναφορές είκτες Πίνακες και δείκτες Ο τελεστής new και delete υναμικοί πίνακες είκτες προς συναρτήσεις Αλφαριθμητικά της C Πίνακες Αλφαριθμητικών
Προγραμματισμός Ι. Κλάσεις και Αντικείμενα. Δημήτρης Μιχαήλ. Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο
Προγραμματισμός Ι Κλάσεις και Αντικείμενα Δημήτρης Μιχαήλ Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο Κλάσεις Η γενική μορφή μιας κλάσης είναι η εξής: class class-name { private data and
ΕΙΣΑΓΩΓΗ ΣΤΟN ΠΡΟΓΡΑΜΜΑΤΙΣΜΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΠΑΤΡΩΝ ΠΟΛΥΤΕΧΝΙΚΗ ΣΧΟΛΗ ΤΜΗΜΑ ΜΗΧΑΝΙΚΩΝ Η/Υ ΚΑΙ ΠΛΗΡΟΦΟΡΙΚΗΣ
ΕΙΣΑΓΩΓΗ ΣΤΟN ΠΡΟΓΡΑΜΜΑΤΙΣΜΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΠΑΤΡΩΝ ΠΟΛΥΤΕΧΝΙΚΗ ΣΧΟΛΗ ΤΜΗΜΑ ΜΗΧΑΝΙΚΩΝ Η/Υ ΚΑΙ ΠΛΗΡΟΦΟΡΙΚΗΣ Εμβέλεια Μεταβλητών Εμβέλεια = το τμήμα του προγράμματος στο οποίο έχει ισχύ ή είναι ορατή η μεταβλητή.
υναµική διαχείριση µνήµης στη C++ Στην ενότητα αυτή θα µελετηθούν τα εξής επιµέρους θέµατα: ΕΠΛ 132 Αρχές Προγραµµατισµού ΙΙ 2 είκτες
υναµική διαχείριση µνήµης στη C++ Στην ενότητα αυτή θα µελετηθούν τα εξής επιµέρους θέµατα: είκτες στη C++ Οι τελεστές new και delete Destructors Ορισµός τελεστών κλάσεων Ο δείκτης this ΕΠΛ 132 Αρχές Προγραµµατισµού
Η εντολή if-else. Η απλή μορφή της εντολής if είναι η ακόλουθη: if (συνθήκη) { Η γενική μορφή της εντολής ifelse. εντολή_1; εντολή_2;..
Επιλογή - Επανάληψη Η εντολή if-else Ο τελεστής παράστασης συνθήκης H εντολή switch Η εντολές for και while Η εντολή do-while Η εντολές break - continue - goto Μαθηματικές συναρτήσεις Λέξεις κλειδιά στη
Συναρτήσεις και Πίνακες
Συναρτήσεις και Πίνακες Συναρτήσεις καθιερωμένης βιβλιοθήκης της C++ Συναρτήσεις οριζόμενες από τον χρήστη Μεταβίβαση κατ αξία Συναρτήσεις void και λογικές συναρτήσεις Μεταβίβαση κατ αναφορά Επιστροφή
Κλήση Συναρτήσεων ΚΛΗΣΗ ΣΥΝΑΡΤΗΣΕΩΝ. Γεώργιος Παπαϊωάννου ( )
ΚΛΗΣΗ ΣΥΝΑΡΤΗΣΕΩΝ Γεώργιος Παπαϊωάννου (2013-16) gepap@aueb.gr Περιγραφή: Μορφές μεταβίβασης ορισμάτων σε συναρτήσεις (και μεθόδους) και οι επιπτώσεις τους Επιστροφή τιμών από κλήση συναρτήσεων Υπερφόρτωση
Εισαγωγή στον Προγραμματισμό
Εισαγωγή στον Προγραμματισμό Έλεγχος Δημήτρης Μιχαήλ Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο Ακ. Έτος 2012-2013 Σχεσιακοί Τελεστές και Ισότητας Ένα πρόγραμμα εκτός από αριθμητικές πράξεις
Προγραμματισμός Η/Υ (ΤΛ2007 )
Τμήμα Ηλεκτρονικών Μηχανικών Τ.Ε.Ι. Κρήτης Προγραμματισμός Η/Υ (ΤΛ2007 ) Δρ. Μηχ. Νικόλαος Πετράκης (npet@chania.teicrete.gr) Ιστοσελίδα Μαθήματος: https://eclass.chania.teicrete.gr/ Εξάμηνο: Εαρινό 2015-16
Γλώσσα Προγραμματισμού C++ Εισαγωγή - Μια πρώτη ματιά
Γλώσσα Προγραμματισμού C++ Εισαγωγή - Μια πρώτη ματιά Βασικά χαρακτηριστικά αναπτύχθηκε ως επέκταση της C το 1979 υπερσύνολο της C γλώσσα γενικού σκοπού, γρήγορη, Αντικειμενοστραφής προγραμματισμός (Object
Προγραμματισμός Η/Υ (ΤΛ2007 )
Τμήμα Ηλεκτρονικών Μηχανικών Τ.Ε.Ι. Κρήτης Προγραμματισμός Η/Υ (ΤΛ2007 ) Δρ. Μηχ. Νικόλαος Πετράκης (npet@chania.teicrete.gr) Ιστοσελίδα Μαθήματος: https://eclass.chania.teicrete.gr/ Εξάμηνο: Εαρινό 2014-15
Προγραμματισμός Ι. Πίνακες, Δείκτες, Αναφορές και Δυναμική Μνήμη. Δημήτρης Μιχαήλ. Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο
Προγραμματισμός Ι Πίνακες, Δείκτες, Αναφορές και Δυναμική Μνήμη Δημήτρης Μιχαήλ Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο Πίνακες Αντικειμένων Όπως στην C μπορούμε να έχουμε πίνακες από
Δομημένος Προγραμματισμός (ΤΛ1006)
Τεχνολογικό Εκπαιδευτικό Ίδρυμα Κρήτης Σχολή Εφαρμοσμένων Επιστημών Τμήμα Ηλεκτρονικών Μηχανικών Τομέας Αυτοματισμού και Πληροφορικής Δομημένος Προγραμματισμός (ΤΛ1006) Δρ. Μηχ. Νικόλαος Πετράκης, Καθηγητής
ΕΡΓΑΣΤΗΡΙΟ 1 - ΣΗΜΕΙΩΣΕΙΣ
ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΕΣΣΑΛΙΑΣ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ ΑΚΑΔΗΜΑΪΚΟ ΕΤΟΣ 2017-2018 ΧΕΙΜΕΡΙΝΟ ΕΞΑΜΗΝΟ ΜΑΘΗΜΑ: ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ Εισαγωγή ΕΡΓΑΣΤΗΡΙΟ 1 - ΣΗΜΕΙΩΣΕΙΣ Ένα πρόγραμμα σε C περιλαμβάνει μια ή περισσότερες συναρτήσεις
Προγραμματισμός Υπολογιστών με C++
Προγραμματισμός Υπολογιστών με C++ ( 2012-13 ) 17η διάλεξη Ίων Ανδρουτσόπουλος http://www.aueb.gr/users/ion/ 1 Τι θα ακούσετε σήμερα Προσθήκη ελέγχου ορίων σε πίνακες χρησιμοποιώντας σχεδιότυπα τάξεων
17TimeThis.h function returns reference pointer to same object { return *this; }
Προαπαιτούµενη Κάθε οµάδα θα πρέπει να εµπλουτίσει το ίδιο πρόγραµµα, που έκανε την προηγούµενη φορά, προσθέτοντας στην κλάση του έναν ή περισσότερους υπερφορτωµένους τελεστές (όπως , ++, +,-,+=..)
Οντοκεντρικός Προγραμματισμός
Οντοκεντρικός Προγραμματισμός Ενότητα 7: C++ TEMPLATES, ΥΠΕΡΦΟΡΤΩΣΗ ΤΕΛΕΣΤΩΝ, ΕΞΑΙΡΕΣΕΙΣ Χειρισμός Εξαιρέσεων ΔΙΔΑΣΚΟΝΤΕΣ: Ιωάννης Χατζηλυγερούδης, Χρήστος Μακρής Πολυτεχνική Σχολή Τμήμα Μηχανικών Η/Υ
Οντοκεντρικός Προγραμματισμός
Οντοκεντρικός Προγραμματισμός Ενότητα 5: H ΓΛΩΣΣΑ C++ Δομές Ελέγχου ΔΙΔΑΣΚΟΝΤΕΣ: Ιωάννης Χατζηλυγερούδης, Χρήστος Μακρής Πολυτεχνική Σχολή Τμήμα Μηχανικών Η/Υ & Πληροφορικής Δομές Ελέγχου Εισαγωγή Πριν
Αντικειμενοστραφείς Γλώσσες Προγραμματισμού C++ / ROOT
Αντικειμενοστραφείς Γλώσσες Προγραμματισμού Ιωάννης Παπαδόπουλος Τμήμα Φυσικής, Πανεπιστήμιο Ιωαννίνων Οκτώβριος 2018 1/28 1 (implicit) μετατροπές 2 (Functions) 3 (Pointers) 4 (Arrays) 2/28 (implicit)
Ανάπτυξη Μεγάλων Εφαρµογών στη Γλώσσα C (Programming in the large)
Ανάπτυξη Μεγάλων Εφαρµογών στη Γλώσσα C (Programming in the large) Στην ενότητα αυτή θα µελετηθούν τα εξής επιµέρους θέµατα: Συναρτήσεις Εξωτερικές µεταβλητές Κανόνες εµβέλειας ιάρκεια µεταβλητών Αρχικοποίηση
Εισαγωγή στον Προγραμματισμό
Εισαγωγή στον Προγραμματισμό Πίνακες Δημήτρης Μιχαήλ Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο Ακ. Έτος 2012-2013 Πίνακες Πολλές φορές θέλουμε να κρατήσουμε στην μνήμη πολλά αντικείμενα
Προγραμματισμός Υπολογιστών με C++
Προγραμματισμός Υπολογιστών με C++ ( 2012-13 ) 6η διάλεξη Ίων Ανδρουτσόπουλος http://www.aueb.gr/users/ion/ 1 Τι θα ακούσετε σήμερα Προκαθορισμένες τιμές ορισμάτων. Υπερφόρτωση συναρτήσεων. Συναρτήσεις
Περιεχόμενα. Πρόλογος... 17
Περιεχόμενα Πρόλογος... 17 Κεφάλαιο 1: Εισαγωγή... 19 Πώς να διαβάσετε αυτό το βιβλίο... 20 Η γλώσσα C Ιστορική αναδρομή... 22 Τα χαρακτηριστικά της C... 23 C Μια δομημένη γλώσσα... 23 C Μια γλώσσα για
ΟΝΤΟΚΕΝΤΡΙΚΟΣ ΠΡΟΓΡ/ΣΜΟΣ C++
Υπερφόρτωση, keywords CONST, STATIC, FRIEND ΟΝΤΟΚΕΝΤΡΙΚΟΣ ΠΡΟΓΡ/ΣΜΟΣ C++ Μ. Ρήγκου (rigou@ceid.upatras.gr) Τι θα συζητήσουμε σήμερα Υπερφόρτωση Συναρτήσεων Τελεστών CONST αντικείμενα, μεταβλητές και συναρτήσεις
Ανάπτυξη Μεγάλων Εφαρµογών στη Γλώσσα C (2)
Ανάπτυξη Μεγάλων Εφαρµογών στη Γλώσσα C (2) Στην ενότητα αυτή θα µελετηθούν τα εξής επιµέρους θέµατα: Οργάνωση Προγράµµατος Header Files Μετάφραση και σύνδεση αρχείων προγράµµατος ΕΠΛ 132 Αρχές Προγραµµατισµού
Οντοκεντρικός Προγραμματισμός
Οντοκεντρικός Προγραμματισμός Ενότητα 5: H ΓΛΩΣΣΑ C++ Συναρτήσεις - Μεταβλητές ΔΙΔΑΣΚΟΝΤΕΣ: Iωάννης Χατζηλυγερούδης, Χρήστος Μακρής Πολυτεχνική Σχολή Τμήμα Μηχανικών Η/Υ & Πληροφορικής Συναρτήσεις / Μεταβλητές
Προγραμματισμός Υπολογιστών με C++
Προγραμματισμός Υπολογιστών με C++ ( 2012-13 ) 5η διάλεξη Ίων Ανδρουτσόπουλος http://www.aueb.gr/users/ion/ 1 Τι θα ακούσετε σήμερα Πίνακες ως ορίσματα συναρτήσεων. Τα ορίσματα argc και argv της main.
Προγραµµατιστικές Τεχνικές
Εθνικό Μετσόβιο Πολυτεχνείο Σχολή Αγρονόµων Τοπογράφων Μηχανικών Προγραµµατιστικές Τεχνικές Βασίλειος Βεσκούκης ρ. Ηλεκτρολόγος Μηχανικός & Μηχανικός Υπολογιστών ΕΜΠ v.vescoukis@cs.ntua.gr Ρωµύλος Κορακίτης
Προγραμματισμός Ι. Εισαγωγή στην C++ Δημήτρης Μιχαήλ. Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο
Προγραμματισμός Ι Εισαγωγή στην C++ Δημήτρης Μιχαήλ Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο Η γλώσσα C++ Σχεδιάστηκε το 1979 από τον Bjarne Stroustrup στα Bell Laboratories Βασίζεται
Διάλεξη 5: Δείκτες και Συναρτήσεις
Τμήμα Πληροφορικής Πανεπιστήμιο Κύπρου ΕΠΛ132 Αρχές Προγραμματισμού II Διάλεξη 5: Δείκτες και Συναρτήσεις (Κεφάλαιο 11, KNK-2ED) Δημήτρης Ζεϊναλιπούρ http://www.cs.ucy.ac.cy/courses/epl132 5-1 Περιεχόμενο
Περιεχόμενα. Λίγα λόγια για αυτή την έκδοση... 23
Περιεχόμενα Λίγα λόγια για αυτή την έκδοση...... 23 Κεφάλαιο 1 Εισαγωγή... 25 O στόχος του βιβλίου και σε ποιους απευθύνεται... 27 Πώς να διαβάσετε αυτό το βιβλίο... 27 Εκπαίδευση από απόσταση... 29 Ιστορική
Η γλώσσα προγραμματισμού C
Η γλώσσα προγραμματισμού C Οι συναρτήσεις στη C Οι συναρτήσεις τι είναι Πρόκειται για ανεξάρτητα τμήματα ενός προγράμματος (υποπρογράμματα) που επιτελούν συγκεκριμένες εργασίες. Καλούνται από το κυρίως
Εισαγωγή στον Προγραμματισμό
Εισαγωγή στον Προγραμματισμό Συναρτήσεις Δημήτρης Μιχαήλ Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο Ακ. Έτος 2012-2013 Συναρτήσεις Ως τώρα γράφαμε όλα τα προγράμματα μας μέσα στην main..1
Η γλώσσα προγραμματισμού C
Η γλώσσα προγραμματισμού C Οι συναρτήσεις στη C Οι συναρτήσεις τι είναι Πρόκειται για ανεξάρτητα τμήματα ενός προγράμματος (υποπρογράμματα) που επιτελούν συγκεκριμένες εργασίες. Καλούνται από το κυρίως
ΕΠΛ232 Προγραμματιστικές Τεχνικές και Εργαλεία Δείκτες και Συναρτήσεις (Κεφάλαιο 11, KNK-2ED)
ΕΠΛ232 Προγραμματιστικές Τεχνικές και Εργαλεία Δείκτες και Συναρτήσεις (Κεφάλαιο 11, KNK-2ED) Τμήμα Πληροφορικής, Πανεπιστήμιο Κύπρου http://www.cs.ucy.ac.cy/courses/epl232 Το μάθημα αυτό δομήθηκε βάση
alpha Language age (3/5) alpha Language Φροντιστήριο Syntax Directed Translation and
alpha Language (1/5) ΗΥ-340 Γλώσσες και Μεταφραστές Φροντιστήριο Syntax Directed Translation and alpha Language Στην alpha δεν υπάρχει main() συνάρτηση, ο κώδικας ξεκινάει την εκτέλεση από την αρχή του
5. ΣΥΝΑΡΤΗΣΕΙΣ. (Πρόχειρο σχέδιο - Μαθήµατος 3) p23-29. 5.1 Συναρτήσεις, που δεν επιστρέφουν κάποια τιµή
(Πρόχειρο σχέδιο - Μαθήµατος 3) p23-29 5. ΣΥΝΑΡΤΗΣΕΙΣ 5.1 Συναρτήσεις, που δεν επιστρέφουν κάποια τιµή Η συνάρτηση είναι void, δεν επιστρέφει κάποια τιµή. //Oρισµός συνάρτησης χωρίς παραµέτρους // 12.
Κλάσεις και Αντικείµενα
Κλάσεις και Αντικείµενα Γρηγόρης Τσουµάκας Τµήµα Πληροφορικής, Αριστοτέλειο Πανεπιστήµιο Θεσσαλονίκης Κλάσεις και Αντικείµενα 2 Τα αντικείµενα σε µια αντικειµενοστρεφή γλώσσα προγραµµατισµού, µοντελοποιούν
Προγραμματισμός Υπολογιστών με C++
Προγραμματισμός Υπολογιστών με C++ ( 2012-13 ) 4η διάλεξη Ίων Ανδρουτσόπουλος http://www.aueb.gr/users/ion/ 1 Τι θα ακούσετε σήμερα Δείκτες και πίνακες. Δείκτες σε σταθερές και σταθεροί δείκτες. Μεταβίβαση
Γιάννης Σαμωνάκης. 1 ο ΣΧΟΛΕΙΟ ΚΩΔΙΚΑ «Βασικά Θέματα Προγραμματισμού στην Ανάπτυξη Δυναμικών Διαδικτυακών Εφαρμογών» (Part 4 - PHP)
ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΡΗΤΗΣ 1 ο ΣΧΟΛΕΙΟ ΚΩΔΙΚΑ «Βασικά Θέματα Προγραμματισμού στην Ανάπτυξη Δυναμικών Διαδικτυακών Εφαρμογών» (Part 4 - PHP) Γιάννης Σαμωνάκης 1 Περιεχόμενα Τι είναι η PHP Που μπορεί να χρησιμοποιηθεί
Κεφάλαιο 3.5-3.6, 3.2: Συναρτήσεις II. ( ιάλεξη 12) ιδάσκων: ηµήτρης Ζεϊναλιπούρ
Κεφάλαιο 3.5-3.6, 3.2: Συναρτήσεις II ( ιάλεξη 12) ιδάσκων: ηµήτρης Ζεϊναλιπούρ 12-1 Ανασκόπηση οµής Προγράµµατος µε Συναρτήσεις #include 1 void PrintMessage (); Πρότυπο ( ήλωση) Συνάρτησης (
ΗΥ-150. Προγραμματισμός
ΗΥ-150 Εντολές Ελέγχου Ροής Σειριακή εκτέλεση εντολών Όλα τα προγράμματα «γράφονται» χρησιμοποιώντας 3 είδη εντολών: Σειριακές εντολές (sequential built in C) Εντολές απόφασης (if, if/else, switch) Περιλαμβάνει
Προγραμματισμός Συστημάτων
MYY502 Προγραμματισμός Συστημάτων Β. Δημακόπουλος dimako@cse.uoi.gr http://www.cse.uoi.gr/~dimako Εργαστήρια Μάλλον (!) ξεκινούν την επόμενη εβδομάδα Εγγραφές στο εργαστήριο 2 βάρδιες, 15:00 17:00 και
Αντικειμενοστρεφής Προγραμματισμός
Αντικειμενοστρεφής Προγραμματισμός Διδάσκουσα: Αναπλ. Καθηγήτρια Ανδριάνα Πρέντζα aprentza@unipi.gr Εργαστηριακός Συνεργάτης: Δρ. Βασιλική Κούφη vassok@unipi.gr Εργαστήριο 2 Βασικοί Τύποι Μεταβλητών Java
ΗΥ-150. Προγραμματισμός
ΗΥ-150 Εντολές Ελέγχου Ροής Σειριακή εκτέλεση εντολών Όλα τα προγράμματα «γράφονται» χρησιμοποιώντας 3 είδη εντολών: Σειριακές εντολές (sequential built in C) Εντολές απόφασης (if, if/else, switch) Περιλαμβάνει
Εισαγωγή στον Προγραμματισμό με C++
ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ Ανώτατο Εκπαιδευτικό Ίδρυμα Πειραιά Τεχνολογικού Τομέα Εισαγωγή στον Προγραμματισμό με C++ Ενότητα # 6: Συναρτήσεις Κωνσταντίνος Κουκουλέτσος Τμήμα Αυτοματισμού Άδειες Χρήσης Το παρόν
Αντικειµενοστρεφής Προγραµµατισµός
16 η διάλεξη Π. Σταθοπούλου pstath@ece.upatras.gr ή pstath@upatras.gr Οµάδα Α (Φοιτητές µε µονό αριθµό Μητρώου ) ιδασκαλία : Παρασκευή 11πµ-13µµ ΗΛ7 Φροντιστήριο : ευτέρα 11πµ-12πµ ΗΛ4 Προηγούµενη ιάλεξη
12. ΑΛΦΑΡΙΘΜΗΤΙΚΑ. υο είδη αλφαριθµητικών Τα αλφαριθµητικά της C πίνακες τύπου char Ta αντικείµενα της κλάσης string
12. ΑΛΦΑΡΙΘΜΗΤΙΚΑ υο είδη αλφαριθµητικών Τα αλφαριθµητικά της C πίνακες τύπου char Ta αντικείµενα της κλάσης string Aλφαριθµητικά της C int main() const int max=80; char str[max); //κάθε char δεσµεύει
Προγραμματισμός Η/Υ (ΤΛ2007 )
Τμήμα Ηλεκτρονικών Μηχανικών Τ.Ε.Ι. Κρήτης Προγραμματισμός Η/Υ (ΤΛ2007 ) Δρ. Μηχ. Νικόλαος Πετράκης (npet@chania.teicrete.gr) Έκτη (6 η ) τρίωρη διάλεξη. Ιστοσελίδα Μαθήματος: https://eclass.chania.teicrete.gr/
ΗΥ-150. Πίνακες (Arrays)
ΗΥ-150 Προγραµµατισµός Πίνακες (Arrays) Προγραµµατισµός Εισαγωγικά Έστω ότι θέλουµε να αποθηκεύσουµε 100 ονόµατα φοιτητών και τους βαθµούς τους. Πως θα το κάναµε αυτό µε µεταβλητές; Πως θα µπορούσαµε να
ΠΛΗ111. Ανοιξη Μάθηµα 1 ο Ανασκόπηση της Γλώσσας Προγραµµατισµού C. Τµήµα Ηλεκτρονικών Μηχανικών και Μηχανικών Υπολογιστών Πολυτεχνείο Κρήτης
ΠΛΗ111 οµηµένος Προγραµµατισµός Ανοιξη 2005 Μάθηµα 1 ο Ανασκόπηση της Γλώσσας Προγραµµατισµού C Τµήµα Ηλεκτρονικών Μηχανικών και Μηχανικών Υπολογιστών Πολυτεχνείο Κρήτης Ανασκόπηση της C είκτες Πίνακες
Ορισμός μεταβλητών δεικτών και αρχικοποίηση
Ορισμός μεταβλητών δεικτών και αρχικοποίηση Η έννοια του δείκτη Κάθε μεταβλητή σχετίζεται με μια θέση στην κύρια μνήμη του Η/Υ η οποία έχει τη δική της ξεχωριστή διεύθυνση Ο δείκτης είναι μια μεταβλητή
Τεχνολογίες Υλοποίησης Αλγορίθµων
Τεχνολογίες Υλοποίησης Αλγορίθµων Χρήστος Ζαρολιάγκης Καθηγητής Τµήµα Μηχ/κων Η/Υ & Πληροφορικής Πανεπιστήµιο Πατρών email: zaro@ceid.upatras.gr Γρηγόρης Πράσινος Υποψήφιος ιδάκτωρ Τµήµα Μηχ/κων Η/Υ &
Κεφάλαιο 8.7. Πίνακες & Συναρτήσεις ( ιάλεξη 17) ιδάσκων: ηµήτρης Ζεϊναλιπούρ
Κεφάλαιο 8.7 Πίνακες & Συναρτήσεις ( ιάλεξη 17) ιδάσκων: ηµήτρης Ζεϊναλιπούρ 17-1 Εισαγωγή Στις προηγούµενες διαλέξεις µάθαµε πώς να δηλώνουµε, αρχικοποιούµε και να επεξεργαζόµαστε πίνακες. Σήµερα θα µελετήσουµε
Προγραμματισμός Ι. Δυναμική Διαχείριση Μνήμης. Δημήτρης Μιχαήλ. Ακ. Έτος 2011-2012. Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο
Προγραμματισμός Ι Δυναμική Διαχείριση Μνήμης Δημήτρης Μιχαήλ Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο Ακ. Έτος 2011-2012 Ανάγκη για Δυναμική Μνήμη Στατική Μνήμη Μέχρι τώρα χρησιμοποιούσαμε
Προγραμματισμός Ι (ΗΥ120)
Προγραμματισμός Ι (ΗΥ120) Διάλεξη 9: Συναρτήσεις Ορισμός συναρτήσεων () { /* δήλωση μεταβλητών */ /* εντολές ελέγχου/επεξεργασίας */ o Μια συνάρτηση ορίζεται δίνοντας
Εισαγωγή στην πληροφορική
Εθνικό Μετσόβιο Πολυτεχνείο Σχολή Αγρονόµων Τοπογράφων Μηχανικών Εισαγωγή στην πληροφορική Βασίλειος Βεσκούκης ρ. Ηλεκτρολόγος Μηχανικός & Μηχανικός Υπολογιστών ΕΜΠ v.vescoukis@cs.ntua.gr Ρωµύλος Κορακίτης
Π. Σταθοπούλου ή Οµάδα Α (Φοιτητές µε µονό αριθµό Μητρώου ) ιδασκαλία : Παρασκευή 11πµ-13µµ ΗΛ7
Έβδοµη ιάλεξη Π. Σταθοπούλου pstath@ece.upatras.gr ή pstath@upatras.gr Οµάδα Α (Φοιτητές µε µονό αριθµό Μητρώου ) ιδασκαλία : Παρασκευή 11πµ-13µµ ΗΛ7 Φροντιστήριο : ευτέρα 11πµ-12πµ ΗΛ4 Προηγούµενη ιάλεξη
HY150a Φροντιστήριο 3 24/11/2017
HY150a Φροντιστήριο 3 24/11/2017 1 Assignment 3 Overview Το πρόγραμμα ζητείται να διαβάζει μια λίστα δεδομένων που περιγράφει τα διαθέσιμα τμήματα μνήμης (blocks) ενός ΗΥ. Το πρόγραμμα ζητείται να μεταφορτώνει
Εργαστήριο 1: Επανάληψη Βασικών Εννοιών στη Γλώσσα C
Εργαστήριο 1: Επανάληψη Βασικών Εννοιών στη Γλώσσα C Στην ενότητα αυτή θα μελετηθούν τα εξής επιμέρους θέματα: Εισαγωγή στις έννοιες: - Συναρτήσεις - Εξωτερικές μεταβλητές - Κανόνες εμβέλειας - Διάρκεια
Στοιχειώδης προγραμματισμός σε C++
Στοιχειώδης προγραμματισμός σε C++ Σύντομο Ιστορικό. Το πρόγραμμα Hello World. Ο τελεστής εξόδου. Μεταβλητές και δηλώσεις τους. Αντικείμενα, μεταβλητές, σταθερές. Ο τελεστής εισόδου. Θεμελιώδεις τύποι.
Οντοκεντρικός Προγραμματισμός
Οντοκεντρικός Προγραμματισμός Ενότητα 5: H ΓΛΩΣΣΑ C++ Διαφορές Java και C++ ΔΙΔΑΣΚΟΝΤΕΣ: Ιωάννης Χατζηλυγερούδης, Χρήστος Μακρής Πολυτεχνική Σχολή Τμήμα Μηχανικών Η/Υ & Πληροφορικής ΔΙΑΦΟΡΕΣ JAVA C++ Η
8. Μέθοδοι (Methods)
8. Μέθοδοι (Methods) Χειμερινό εξάμηνο 2012 Πέτρος Κωμοδρόμος komodromos@ucy.ac.cy http://www.eng.ucy.ac.cy/petros 1 Θέματα Μέθοδοι που παρέχονται από τη τάξη Math του Java API Χρήση στατικών μεθόδων και
Β. Εισαγωγή στον Προγραμματισμό Η/Υ με την JavaScript
Β. Εισαγωγή στον Προγραμματισμό Η/Υ με την JavaScript Β.1 Τύποι Δεδομένων Όλες οι γλώσσες προγραμματισμού (πρέπει να) υποστηρίζουν πέντε (5) πρωταρχικούς τύπους δεδομένων: char (character) int (integer)
Οντοκεντρικός Προγραμματισμός
Οντοκεντρικός Προγραμματισμός Ενότητα 5: H ΓΛΩΣΣΑ C++ Πίνακες & Δείκτες ΔΙΔΑΣΚΟΝΤΕΣ: Ιωάννης Χατζηλυγερούδης, Χρήστος Μακρής Πολυτεχνική Σχολή Τμήμα Μηχανικών Η/Υ & Πληροφορικής Πίνακες Πίνακες Τα στοιχεία
Π. Σταθοπούλου ή Οµάδα Α (Φοιτητές µε µονό αριθµό Μητρώου ) ιδασκαλία : Παρασκευή 11πµ-13µµ ΗΛ7
Π. Σταθοπούλου pstath@ece.upatras.gr ή pstath@upatras.gr Οµάδα Α (Φοιτητές µε µονό αριθµό Μητρώου ) ιδασκαλία : Παρασκευή 11πµ-13µµ ΗΛ7 Φροντιστήριο : ευτέρα 11πµ-12πµ ΗΛ4 Προηγούµενη ιάλεξη Έννοια της
ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ II. Υφαντόπουλος Νικόλαος Υποψήφιος Διδάκτορας Contact:
ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ II Υφαντόπουλος Νικόλαος Υποψήφιος Διδάκτορας Contact: nifantop@unipi.gr Συναρτήσεις (1/2) Στη C χρησιμοποιούμε συχνά τις συναρτήσεις (functions), οι οποίες είναι ρουτίνες που επαναλαμβάνονται
ΗΥ-150. Προγραµµατισµός. Εντολές Ελέγχου Ροής
ΗΥ-150 Εντολές Ελέγχου Ροής Σειριακή εκτέλεση εντολών Όλα τα προγράµµατα «γράφονται» χρησιµοποιώντας 3 είδη εντολών: Σειριακές εντολές (sequential built in C) Εντολές απόφασης (if, if/else, switch) Περιλαµβάνει
10 η Διάλεξη C++ - Πίνακες. Δρ. Χρήστος Δρόσος ΑΕΙ ΠΕΙΡΑΙΑ ΤΤ ΤΜΗΜΑ ΑΥΤΟΜΑΤΙΣΜΟΥ
10 η Διάλεξη C++ - Πίνακες Δρ. Χρήστος Δρόσος ΑΕΙ ΠΕΙΡΑΙΑ ΤΤ ΤΜΗΜΑ ΑΥΤΟΜΑΤΙΣΜΟΥ Ανακεφαλαίωση Κατά την κλήση μιας συνάρτησης κατ αξία οι τιμές των ορισμάτων αντιγράφονται στις αντίστοιχες τυπικές παραμέτρους
Σε γενικές γραμμές, είναι καλή πρακτική να γράϕουμε προγράμματα C που αποτελούνται από πολλές και μικρές συναρτήσεις, παρά από λίγες και μεγάλες.
58 Δομή ενός προγράμματος C Συναρτήσεις Μία συνάρτηση C είναι ένα αυτόνομο, πακεταρισμένο τμήμα προγράμματος που ϕέρει σε πέρας μία διαδικασία η οποία έχει σαϕείς προδιαγραϕές εισόδου και εξόδου και συγκεκριμένο
Προγραμματισμός Υπολογιστών με C++
Προγραμματισμός Υπολογιστών με C++ ( 2012-13 ) 11η διάλεξη Ίων Ανδρουτσόπουλος http://www.aueb.gr/users/ion/ 1 Τι θα ακούσετε σήμερα Υπερφόρτωση του τελεστή εκχώρησης. Στατικές μεταβλητές, στατικές σταθερές
Εισαγωγή στον Προγραμματισμό (με. τη C)
Υποχρεωτικό Μάθημα 3 ου Εξαμήνου Χειμερινό Εξάμηνο Ακ. Έτους 20 Τμήμα Επιστήμης Υπολογιστών Πανεπιστήμιο Κρήτης Εισαγωγή στον Προγραμματισμό (με τη C) Διδάσκουσα: Φατούρου Παναγιώτα faturu [at] csd.uoc.gr
Α. 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) ΟΝΟΜΑΤΕΠΩΝΥΜΟ:................................................................................ Α.Μ.:...............................................
Η Γλώσσα Προγραµµατισµού C++ (The C++ Programming Language)
1 Η Γλώσσα Προγραµµατισµού C++ (The C++ Programming Language) ηµήτριος Κατσαρός, Ph.D. Χειµώνας 2005 ιάλεξη 3η 2 Ιστοσελίδα του µαθήµατος http://skyblue.csd.auth.gr/~dimitris/courses/cpp_fall05.htm Θα
Μεθόδων Επίλυσης Προβλημάτων
ΕΠΛ 032.3: 3: Προγραμματισμός Μεθόδων Επίλυσης Προβλημάτων Αχιλλέας Αχιλλέως, Τμήμα Πληροφορικής, Πανεπιστήμιο Κύπρου Email: achilleas@cs.ucy.ac.cy Κεφάλαιο 13 Πίνακες & Συναρτήσεις Εισαγωγή Στις προηγούμενες
Η Γλώσσα Προγραµµατισµού C++ (The C++ Programming Language) Ιστοσελίδα του µαθήµατος. Περιεχόµενα. ηµήτριος Κατσαρός, Ph.D. Πίνακες.
1 Η Γλώσσα Προγραµµατισµού C++ (The C++ Programming Language) ηµήτριος Κατσαρός, Ph.D. Χειµώνας 2005 ιάλεξη 3η Ιστοσελίδα του µαθήµατος 2 http://skyblue.csd.auth.gr/~dimitris/courses/cpp_fall05.htm Θα
Εντολές εισόδου - εξόδου. Εισαγωγή στη C++
Εντολές εισόδου - εξόδου Εισαγωγή στη C++ Το πρώτο πρόγραμμα //my first program #include using namespace std; int main(){ cout
Δομημένος Προγραμματισμός (ΤΛ1006)
Τεχνολογικό Εκπαιδευτικό Ίδρυμα Κρήτης Σχολή Εφαρμοσμένων Επιστημών Τμήμα Ηλεκτρονικών Μηχανικών Τομέας Αυτοματισμού και Πληροφορικής Δομημένος Προγραμματισμός (ΤΛ1006) Δρ. Μηχ. Νικόλαος Πετράκης, Καθηγητής
Κεφάλαιο Πίνακες Ι. ( ιάλεξη 15) ιδάσκων: ηµήτρης Ζεϊναλιπούρ
Κεφάλαιο 8.1-8.3 Πίνακες Ι ( ιάλεξη 15) ιδάσκων: ηµήτρης Ζεϊναλιπούρ 15-1 Πίνακες (Arrays) Σε αυτή την ενότητα θα µιλήσουµε για την δοµή δεδοµένων Πίνακας: 1. Εισαγωγή & Σύνταξη 2. ήλωση Πίνακα 3. Αρχικοποίηση
Εισαγωγή στον Προγραµµατισµό. Διάλεξη 8 η : Συναρτήσεις Χειµερινό Εξάµηνο 2011
Εισαγωγή στον Προγραµµατισµό Διάλεξη 8 η : Συναρτήσεις Χειµερινό Εξάµηνο 2011 Συναρτήσεις (functions) Συνάρτηση (function) σύνολο εντολών που έχει οµαδοποιηθεί και τους έχει αποδοθεί ένα όνοµα Κλήση (calling)
Εισαγωγή στην πληροφορική
Εθνικό Μετσόβιο Πολυτεχνείο Σχολή Αγρονόµων Τοπογράφων Μηχανικών Εισαγωγή στην πληροφορική Βασίλειος Βεσκούκης ρ. Ηλεκτρολόγος Μηχανικός & Μηχανικός Υπολογιστών ΕΜΠ v.vescoukis@cs.ntua.gr Η γλώσσα προγραµµατισµού
Διαδικαστικός Προγραμματισμός
ΤΜΗΜΑ ΕΦΑΡΜΟΣΜΕΝΗΣ ΠΛΗΡΟΦΟΡΙΚΗΣ Διαδικαστικός Προγραμματισμός Α Εξάμηνο Μάθημα 7 ο : Δείκτες Στόχοι μαθήματος Να κατανοήσετε τη δυνατότητα χρήσης διευθύνσεων ως τιμών δεδομένων. Να μπορείτε να χρησιμοποιείτε
Lab 1: C/C++ Pointers and time.h. Panayiotis Charalambous 1
Lab 1: C/C++ Pointers and time.h Panayiotis Charalambous 1 Send email to totis@cs.ucy.ac.cy Subject: EPL231-Registration Body: Surname Firstname ID Group A or B? Panayiotis Charalambous 2 Code Guidelines:
Στόχοι και αντικείμενο ενότητας. Πέρασμα Πίνακα σε Συνάρτηση (συν.) Πέρασμα Πίνακα σε Συνάρτηση. #8.. Ειδικά Θέματα Αλγορίθμων
Στόχοι και αντικείμενο ενότητας Πέρασμα Πίνακα σε Συνάρτηση #8.. Ειδικά Θέματα Αλγορίθμων Προβλήματα Αναζήτησης Γραμμική Αναζήτηση (Linear Search) Ενημέρωση Μέτρηση Δυαδική Αναζήτηση (Binary Search) Προβλήματα
Γ7.1 Επανάληψη ύλης Β Λυκείου. Γ Λυκείου Κατεύθυνσης
Γ7.1 Επανάληψη ύλης Β Λυκείου Γ Λυκείου Κατεύθυνσης Απλά προγράμματα Ένα πρόγραμμα στη C++ που υπολογίζει το άθροισμα 2 ακέραιων αριθμών. // simple program #include using namespace std; int main(){
ΣΤΟΙΧΕΙΑ ΤΗΣ ΓΛΩΣΣΑΣ C++ Constructors, Destructors, Pointers IO Streams, File Streams
ΣΤΟΙΧΕΙΑ ΤΗΣ ΓΛΩΣΣΑΣ C++ Constructors, Destructors, Pointers IO Streams, File Streams CONSTRUCTORS DESTRUCTORS Η κλάση mystring class mystring private: char s[100]; public: char *GetString(); void SetString(char
C: Από τη Θεωρία στην Εφαρμογή
Δρ. Γ. Σ. Τσελίκης Δρ. Ν. Δ. Τσελίκας C: Από τη Θεωρία στην Εφαρμογή Ενδεικτικές Ασκήσεις από το Βιβλίο C: Από τη Θεωρία στην Εφαρμογή (Γ. Σ. Τσελίκης Ν. Δ. Τσελίκας) Ενδεικτικές Ασκήσεις του Βιβλίου Ε.Α.1
ΕΝΟΤΗΤΑ 4 Λήψη Αποφάσεων και Συναρτήσεις Ελέγχου
ΕΝΟΤΗΤΑ 4 Λήψη Αποφάσεων και Συναρτήσεις Ελέγχου Σκοπός και περίγραμμα της Ενότητας 4 Σκοπός της παρουσίασης Να μελετήσουμε τις συναρτήσεις που ελέγχουν την ροή και την εκτέλεση ενός προγράμματος Σύνοψη
Δομημένος Προγραμματισμός (ΤΛ1006)
Τεχνολογικό Εκπαιδευτικό Ίδρυμα Κρήτης Σχολή Εφαρμοσμένων Επιστημών Τμήμα Ηλεκτρονικών Μηχανικών Τομέας Αυτοματισμού και Πληροφορικής Δομημένος Προγραμματισμός (ΤΛ1006) Δρ. Μηχ. Νικόλαος Πετράκης, Καθηγητής
Lab 1: C/C++ Pointers and time.h. Panayiotis Charalambous 1
Lab 1: C/C++ Pointers and time.h Panayiotis Charalambous 1 Send email to totis@cs.ucy.ac.cy Subject: EPL231-Registration Body: Surname Firstname ID Group A or B? Panayiotis Charalambous 2 Code Guidelines:
Υπερφόρτωση τελεστών (operator(
Υπερφόρτωση τελεστών (operator( overloading) Η υπερφόρτωση τελεστών είναι ένα από τα πιο ενδιαφέροντα χαρακτηριστικά του αντικειμενοστραφούς προγραμματισμού. Αναφέρεται στην πρόσθετη χρήση των συνηθισμένων
ΗΥ-150. Προγραμματισμός
ΗΥ-150 Προγραμματισμός Δείκτες (Pointers) Προγραμματισμός Δείκτες Τι είναι: τύπος μεταβλητών (όπως integer) Τι αποθηκεύουν: την διεύθυνση στη μνήμη άλλων μεταβλητών Τι χρειάζονται: Κυρίως, για δυναμική
Οντοκεντρικός Προγραμματισμός
Οντοκεντρικός Προγραμματισμός Ενότητα 7: C++ TEMPLATES, ΥΠΕΡΦΟΡΤΩΣΗ ΤΕΛΕΣΤΩΝ, ΕΞΑΙΡΕΣΕΙΣ Templates ΔΙΔΑΣΚΟΝΤΕΣ: Ιωάννης Χατζηλυγερούδης, Χρήστος Μακρής Πολυτεχνική Σχολή Τμήμα Μηχανικών Η/Υ & Πληροφορικής
ΠΑΝΕΠΙΣΤΗΜΙΟ ΠΑΤΡΩΝ ΣΧΟΛΗ ΘΕΤΙΚΩΝ ΕΠΙΣΤΗΜΩΝ ΤΜΗΜΑ ΜΑΘΗΜΑΤΙΚΩΝ ΙΠΛΩΜΑΤΙΚΗ ΕΡΓΑΣΙΑ
ΠΑΝΕΠΙΣΤΗΜΙΟ ΠΑΤΡΩΝ ΣΧΟΛΗ ΘΕΤΙΚΩΝ ΕΠΙΣΤΗΜΩΝ ΤΜΗΜΑ ΜΑΘΗΜΑΤΙΚΩΝ ΙΠΛΩΜΑΤΙΚΗ ΕΡΓΑΣΙΑ ηµιουργία και χειρισµός LIFO λιστών µεταβλητού µήκους µε στοιχεία ακεραίους αριθµούς. Γενίκευση για χειρισµό λιστών πραγµατικών
#define, 70, 575 #elif, 580 #else, 580 #endif, 580 #error, 584 #if, 580 #ifdef, 583 #ifndef, 580, 583 #include, 70, 227, 574 #undef, 579
Ευρετήριο Η γλώσσα C σε βάθος # #define, 70, 575 #elif, 580 #else, 580 #endif, 580 #error, 584 #if, 580 #ifdef, 583 #ifndef, 580, 583 #include, 70, 227, 574 #undef, 579 A abs(), 625 AND, 64 ASCII πίνακας
Περιεχόμενα. Πρόλογος... 21
Περιεχόμενα Πρόλογος... 21 Κεφάλαιο 1: Εισαγωγή στον προγραμματισμό... 25 Εισαγωγή...27 Πώς να διαβάσετε αυτό το βιβλίο...27 Η δομή των κεφαλαίων...28 Γιατί να μάθω προγραμματισμό;...31 Γιατί να μάθω C;...31
Η βασική συνάρτηση προγράμματος main()
Η βασική συνάρτηση προγράμματος main() HEADER FILES main(){ ΔΗΛΩΣΕΙΣ ΜΕΤΑΒΛΗΤΩΝ ΕΝΤΟΛΕΣ (σειριακές, επιλογής ή επανάληψης) ΕΠΙΣΤΡΕΦΟΜΕΝΟΣ ΤΥΠΟΣ (return 0;) Συναρτήσεις Η συνάρτηση είναι ένα υποπρόγραμμα
Προγραμματισμός Η/Υ (ΤΛ2007 )
Τμήμα Ηλεκτρονικών Μηχανικών Τ.Ε.Ι. Κρήτης Προγραμματισμός Η/Υ (ΤΛ2007 ) Δρ. Μηχ. Νικόλαος Πετράκης (npet@chania.teicrete.gr) Ιστοσελίδα Μαθήματος: https://eclass.chania.teicrete.gr/ Εξάμηνο: Εαρινό 2015-16
Προγραμματισμός Ι. Δείκτες. Δημήτρης Μιχαήλ. Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο
Προγραμματισμός Ι Δείκτες Δημήτρης Μιχαήλ Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο Τι είναι ο δείκτης Ένας δείκτης είναι μια μεταβλητή που περιέχει μια διεύθυνση μνήμης. Θυμηθείτε πως