Τεχνολογίες Υλοποίησης Αλγορίθµων
|
|
- Ἀκύλας Σπανός
- 8 χρόνια πριν
- Προβολές:
Transcript
1 Τεχνολογίες Υλοποίησης Αλγορίθµων Χρήστος Ζαρολιάγκης Καθηγητής Τµήµα Μηχ/κων Η/Υ & Πληροφορικής Πανεπιστήµιο Πατρών Εισαγωγή στην C / 59
2 Αδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative Commons. Για εκπαιδευτικό υλικό, όπως εικόνες, που υπόκειται σε άλλου τύπου άδειας χρήσης, η άδεια χρήσης αναφέρεται ϱητώς. 2 / 59
3 Χρηµατοδότηση Το παρόν εκπαιδευτικό υλικό έχει αναπτυχθεί στα πλαίσια του εκπαιδευτικού έργου του διδάσκοντα. Το έργο «Ανοικτά Ακαδηµαϊκά Μαθήµατα στο Πανεπιστήµιο Πατρών» έχει χρηµατοδοτήσει µόνο τη αναδιαµόρφωση του εκπαιδευτικού υλικού. Το έργο υλοποιείται στο πλαίσιο του Επιχειρησιακού Προγράµµατος «Εκπαίδευση και ια Βίου Μάθηση» και συγχρηµατοδοτείται από την Ευρωπαϊκή Ενωση (Ευρωπαϊκό Κοινωνικό Ταµείο) και από εθνικούς πόρους. 3 / 59
4 Περιεχόµενα Πίνακες (Arrays) και ιανύσµατα (Vectors) Εντολές Επιλογής και Επανάληψης είκτες (Pointers) και Αναφορές (References) Συναρτήσεις (Functions) Αρχέτυπα (Templates) Εµβέλεια (Scope) Κατανοµή Μνήµης (Memory Allocation) υναµική Κατανοµή Μνήµης (Dynamic Memory Allocation) Χειρισµός Εξαιρέσεων (Exception Handling) Υπερφόρτωση (Overloading) 4 / 59
5 Πίνακες και ιανύσµατα 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 / 59
6 Πίνακες Οι πίνακες αποθηκεύονται κατά γραµµές. Αρχικοποίηση: 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 κατά γραµµές: / 59
7 ιανύσµατα (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];... 7 / 59
8 Ελεγχος κενότητας ή µεγέθους 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... 8 / 59
9 Εντολές Επιλογής και Επανάληψης Εντολές επιλογής 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 //... 9 / 59
10 Παράδειγµα if (grade >= 5) cout << "Passed" << endl; else cout << "Failed" << endl; cout << "You must take this course again" << endl; 10 / 59
11 Η εντολή πολλαπλής επιλογής 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 11 / 59
12 Βρόχοι επανάληψης Ο βρόχος 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); 12 / 59
13 Break και Continue Και οι δύο αλλάζουν τη ϱοή ελέγχου. Η break (χρησιµοποιείται σε εντολές while, for, do/while, switch) προκαλεί την άµεση έξοδο από τον κορµό της εντολής. Η continue (χρησιµοποιείται σε εντολές while, for, do/while) προκαλεί την παράλειψη της εκτέλεσης των υπόλοιπων εντολών στον κορµό του ϐρόχου και τη συνέχιση µε την επόµενη επανάληψη του ϐρόχου. while, do/while : η συνθήκη τερµατισµού του ϐρόχου εξετάζεται αµέσως µετα την continue. for : πρώτα εκτελείται η παράσταση αύξησης και µετά εξετάζεται η συνθήκη τερµατισµού του ϐρόχου. 13 / 59
14 Παράδειγµα #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; 14 / 59
15 Τύποι εικτών και Αναφορών είκτης (pointer): Μεταβλητή η οποία περιέχει σαν τιµή µια διεύθυνση µνήµης. Χρησιµοποιείται για να αποθηκεύσει τη διεύθυνση µιας µεταβλητής που περιέχει µια συγκεκριµένη τιµή. int * ptr, count; // ptr is a pointer to // an integer value 15 / 59
16 Τελεστές εικτών (αποαναφοροποίηση), & (διεύθυνση µνήµης) 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., / 59
17 Αναφορά (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 17 / 59
18 Παράδειγµα 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 18 / 59
19 Παράδειγµα 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; 19 / 59
20 Συναρτήσεις (Functions) Οµαδοποιεί τµήµατα ενός προγράµµατος (π.χ., παραστάσεις, εντολές) για να διευκολύνει την επαναχρησιµοποίηση αυτών των τµηµάτων µέσα στο πρόγραµµα. Αποτελείται από: το όνοµα της συνάρτησης τη λίστα παραµέτρων (τυπικές παράµετροι) [είσοδος] τον τύπο τιµής που επιστρέφει [έξοδος] τον κορµό (κώδικας που υλοποιεί την συνάρτηση) Ορισµός συνάρτησης: τύπος τιµής επιστροφής ακολουθούµενος από το όνοµα, τη λίστα των παραµέτρων και τον κορµό της συνάρτησης. ήλωση συνάρτησης: τύπος τιµής επιστροφής ακολουθούµενος από το όνοµα και τη λίστα των παραµέτρων (δηλαδή µόνο η επικεφαλίδα της συνάρτησης). 20 / 59
21 Παραδείγµατα ορισµών συναρτήσεων // 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 / 59
22 Κλήση συνάρτησης Κλήση συνάρτησης: όνοµα της συνάρτησης ακολουθούµενο από τον τελεστή κλήσης () και παρέχοντας πραγµατικές παραµέτρους ( actual parameters) ή ορίσµατα ( arguments). Π.χ.: min(i,j); gcd(35,49); 22 / 59
23 Πλήρες Παράδειγµα 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; 23 / 59
24 Πλήρες Παράδειγµα 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; 24 / 59
25 Συναρτήσεις Οι συναρτήσεις καλούνται κατά το χρόνο εκτέλεσης (run-time) του προγράµµατος, εκτός αν έχουν δηλωθεί inline (εµβόλιµες). Εµβόλιµες ( inline ) συναρτήσεις: ο κορµός της συνάρτησης εισάγεται στο σηµείο κλήσης της κατά τη διάρκεια της µεταγλώττισης (αν ο µεταγλωττιστής ϑεωρήσει ότι αυτό είναι δυνατόν). Μια συνάρτηση πρέπει να δηλωθεί πριν κληθεί. Ο ορισµός της συνάρτησης χρησιµεύει και ως δήλωση της. Οµως, Μια συνάρτηση µπορεί να ορισθεί µόνο µία ϕορά σε ένα πρόγραµµα, ενώ µπορεί να δηλωθεί πολλές ϕορές. Η C++ παρέχει µηχανισµούς που επιτρέπουν: (1) Μία συνάρτηση να χρησιµοποιείται σε αρχεία διαφορετικά από αυτό που περιέχει τον ορισµό της. (2) Τον διαχωρισµό µεταξύ προδιαγραφών (ή αλλιώς της διασύνδεσης) µιας συνάρτησης και της υλοποίησής της. 25 / 59
26 Πλήρες Παράδειγµα 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; 26 / 59
27 Πλήρες Παράδειγµα 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; 27 / 59
28 ηλώσεις Συναρτήσεων ηλώσεις συναρτήσεων (και ορισµοί inline συναρτήσεων) συνιστάται να περιέχονται σε αρχεία κεφαλίδων (.h header files) Ορισµοί συναρτήσεων συνιστάται να περιέχονται σε ένα ξεχωριστό συσχετιζόµενο. C αρχείο. 28 / 59
29 Πλήρες Παράδειγµα 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 29 / 59
30 Πλήρες Παράδειγµα 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; 30 / 59
31 Πλήρες Παράδειγµα 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; 31 / 59
32 Μεταγλώττιση & Σύνδεση Μεταγλώττιση: g++ -c localmath.c g++ -c fun-main.c Σύνδεση: g++ -o fun-main fun-main.o localmath.o 32 / 59
33 Μεταβίβαση Ορισµάτων (Argument Passing) Η C++ είναι αυστηρή στον έλεγχο τύπων ( strongly-typed): Ο τύπος κάθε πραγµατικού ορίσµατος συγκρίνεται µε τον τύπο της αντίστοιχης τυπικής παραµέτρου. Σε περίπτωση ασυµφωνίας, πραγµατοποιείται προαγωγή τύπου εφόσον είναι δυνατή. ιαφορετικά, εµφανίζεται λάθος κατά το χρόνο µεταγλώττισης (compile-time error). - Μέθοδοι Μεταβίβασης Ορισµάτων µεταβίβαση κατ αξία (pass-by-value) µεταβίβαση κατ αναφορά (pass-by-reference) 33 / 59
34 Μεταβίβαση κατ αξία Προεπιλεγµένη (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; 34 / 59
35 Μεταβίβαση κατ αξία Η µεταβίβαση κατ αξία δεν είναι κατάλληλη για κάθε περίπτωση. Για παράδειγµα: όταν ένα µεγάλο αντικείµενο πρέπει να µεταβιβαστεί σαν όρισµα όταν οι τιµές των ορισµάτων πρέπει να τροποποιηθούν Μεταβίβαση κατ αναφορά: ίνει τη δυνατότητα στην καλούµενη συνάρτηση να προσπελάσει άµεσα τα δεδοµένα της καλούσας συνάρτησης και να τα τροποποιήσει. Μπορεί να επιτευχθεί χρησιµοποιώντας παραµέτρους τύπου δείκτη ή αναφοράς (η συνήθης υλοποίηση στον µεταγλωττιστή είναι η µεταβίβαση της διεύθυνσης των ορισµάτων). 35 / 59
36 Παράδειγµα // 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); 36 / 59
37 Παράµετροι Τύπου Αναφοράς και είκτη Σε ποιες περιπτώσεις προσδιορίζουµε µια παράµετρο σαν αναφορά Οταν δεν ϑέλουµε να αλλάξουµε τις παραµέτρους σε δείκτες για να επιτρέψουµε τροποποίηση των τιµών των ορισµάτων. Οταν ϑέλουµε να επιστρέψουµε επιπρόσθετα αποτελέσµατα. Οταν ϑέλουµε να µεταβιβάσουµε µεγάλα αντικείµενα (επίσης σωστό και για παραµέτρους τύπου δείκτη). Οταν µια παράµετρος δεν πρόκειται να τροποποιηθεί, τότε είναι καλύτερο να δηλωθεί σαν µία αναφορά σε έναν τύπο const, δηλ. const T & a. Επιλογή µεταξύ παραµέτρων τύπου αναφοράς και δείκτη Οταν µια παράµετρος µπορεί να αναφέρεται σε διαφορετικά αντικείµενα µέσα σε µια συνάρτηση ή σε κανένα αντικείµενο, τότε µια παράµετρος τύπου δείκτη πρέπει να χρησιµοποιηθεί. Σε όλες τις άλλες περιπτώσεις συνιστάται η χρήση παραµέτρων τύπου αναφοράς. 37 / 59
38 Μεταβίβαση Πινάκων σαν Ορίσµατα Οι πίνακες στην 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; 38 / 59
39 Μεταβίβαση Πινάκων σαν Ορίσµατα #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). Αλλιώς, πρέπει να χρησιµοποιηθεί η µέθοδος / 59
40 Επιστροφή Τιµών Συναρτήσεων Επιστροφή αξίας ( value return): η καλούσα συνάρτηση λαµβάνει ένα αντίγραφο της τιµής που επιστρέφει η καλούµενη συνάρτηση. Επιστροφή αναφοράς ή δείκτη ( reference or pointer return): η καλούσα συνάρτηση λαµβάνει την lvalue ή τη διεύθυνση που επιστρέφει η καλούµενη συνάρτηση. Π.χ. T & Fun(int i, int & j ) const επιστροφή αναφοράς: παρόµοια µε την επιστροφή αναφοράς µε τη διαφορά ότι το αντικείµενο που επιστρέφεται ορίζεται ως σταθερό αντικείµενο. Π.χ. const T & Fun(int i, int & j ) Καµία επιστροφή τιµής: τύπος επιστροφής void. 40 / 59
41 Αρχέτυπα (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; 41 / 59
42 Γενική ήλωση Αρχετύπου Γενική ήλωση Αρχετύπου template<typename T1, typename T2,..., typename Tn> T1 fun(t2, T3,..., Tn); (Αντί για typename µπορεί να γραφεί και το class) 42 / 59
43 Ενα Πλήρες Παράδειγµα #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; 43 / 59
44 Εξειδίκευση αρχετύπου (template specialization) Αν η γενικευµένη υλοποίηση δεν είναι (για οποιοδήποτε λόγο π.χ. απόδοση) κατάλληλη για έναν συγκεκριµένο τύπο, είναι δυνατόν να οριστεί υλοποίηση µόνο γι αυτόν τον τύπο. Παράδειγµα - εξειδίκευση της swap() για τον τύπο int : template<> void swap(int & v1, int & v2) int temp = v1; v1 = v2; v2 = temp; 44 / 59
45 Εµβέλεια (Scope) Το τµήµα του προγράµµατος µέσα στο οποίο ένα αντικείµενο, µια συνάρτηση, ένας τύπος, ή ένα αρχέτυπο µπορεί να χρησιµοποιηθεί. Τοπική εµβέλεια: Εµβέλεια χώρου ονοµάτων: Εµβέλεια κλάσης: τµήµα προγράµµατος που περιέχεται µέσα στον ορισµό µιας συνάρτησης. Μέσα σε µια συνάρτηση, ένα µπλοκ ( ) αναπαριστάνει επίσης µια ξεχωριστή τοπική εµβέλεια. τµήµα προγράµµατος που δεν περιέχεται µέσα σε δήλωση συνάρτησης, ορισµό συνάρτησης, ή ορισµό κλάσης. Η πιο εξωτερική εµβέλεια χώρου ονοµάτων καλείται καθολική εµβέλεια. τµήµα προγράµµατος που περιέχεται µέσα στον ορισµό µιας κλάσης (ϑα συζητηθεί αργότερα). 45 / 59
46 Κατανοµή µνήµης (Memory allocation) Στατική: η κατανοµή γίνεται από τον µεταγλωττιστή καθώς επεξεργάζεται τον πηγαίο κώδικα. υναµική: η κατανοµή γίνεται από µια ϐιβλιοθήκη που καλείται κατά τη διάρκεια της εκτέλεσης του προγράµµατος. Trade-off: απόδοση (efficiency) vs. ευελιξία (flexibility) 46 / 59
47 Στατική κατανοµή µνήµης Αυτόµατη: ένα αντικείµενο κατανέµεται όταν η εκτέλεση του προγράµµατος ϕτάσει στο µπλοκ µέσα στο οποίο ορίζεται, διατηρείται όσο χρόνο το µπλοκ είναι ενεργό, και αποδεσµεύεται όταν η εκτέλεση του προγράµµατος αφήνει το µπλοκ. 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; 47 / 59
48 Παράδειγµα #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; 48 / 59
49 Παράδειγµα (συνέχεια) 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; 49 / 59
50 υναµική Κατανοµή Μνήµης Βασικές διαφορές µεταξύ στατικής και δυναµικής κατανοµής µνήµης: Τα στατικά αντικείµενα είναι επώνυµες µεταβλητές τις οποίες χειριζόµαστε µε άµεσο τρόπο. Τα δυναµικά αντικείµενα είναι ανώνυµες µεταβλητές τις οποίες χειριζόµαστε έµµεσα µέσω δεικτών. Κατανοµή/Αποδέσµευση στατικών αντικειµένων γίνεται αυτόµατα από τον µεταγλωττιστή. Κατανοµή/Αποδέσµευση δυναµικών αντικειµένων γίνεται ϱητά από τον προγραµµατιστή χρησιµοποιώντας τις παραστάσεις των τελεστών new και delete. 50 / 59
51 Κατανοµή δυναµικών αντικειµένων 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 51 / 59
52 Χειρισµός Εξαιρέσεων Εξαίρεση: σφάλµα που µπορεί να συµβεί κατά το χρόνο εκτέλεσης ενός προγράµµατος, π.χ. αριθµοδείκτης πίνακα εκτός ορίων. Οι εξαιρέσεις εγείρονται (throw) από το σύστηµα ή τον προγραµµατιστή και συλλαµβάνονται (catch) χρησιµοποιώντας το µπλοκ try catch. 52 / 59
53 Παράδειγµα #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; 53 / 59
54 Υπερφόρτωση Συναρτήσεων Επιτρέπει σε περισσότερες από µία συναρτήσεις να χρησιµοποιούν το ίδιο όνοµα µε την προϋπόθεση ότι κάθε τέτοια συνάρτηση έχει µια µοναδική λίστα παραµέτρων είτε κατά αριθµό, είτε κατά τύπο παραµέτρων (Προσοχή: δεν αρκεί να είναι διαφορετικός µόνο ο τύπος τιµής επιστροφής). // 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); 54 / 59
55 Τέλος Ενότητας 55 / 59
56 Σηµείωµα Ιστορικού Εκδόσεων Εργου Το παρόν έργο αποτελεί την έκδοση / 59
57 Σηµείωµα Ιστορικού Εκδόσεων Εργου Copyright Πανεπιστήµιο Πατρών, Χρήστος Ζαρολιάγκης, «Τεχνολογίες Υλοποίησης Αλγορίθµων». Εκδοση: 1.0. Πάτρα ιαθέσιµο από τη δικτυακή διεύθυνση: 57 / 59
58 Σηµείωµα Ιστορικού Εκδόσεων Εργου Το παρόν υλικό διατίθεται µε τους όρους της άδειας χρήσης Creative Commons Αναφορά, Μη Εµπορική Χρήση, Οχι Παράγωγα Εργα 4.0 [1] ή µεταγενέστερη, ιεθνής Εκδοση. Εξαιρούνται τα αυτοτελή έργα τρίτων π.χ. ϕωτογραφίες, διαγράµµατα κ.λ.π., τα οποία εµπεριέχονται σε αυτό. [1] Ως Μη Εµπορική ορίζεται η χρήση: που δεν περιλαµβάνει άµεσο ή έµµεσο οικονοµικό όφελος από την χρήση του έργου, για το διανοµέα του έργου και αδειοδόχο που δεν περιλαµβάνει οικονοµική συναλλαγή ως προϋπόθεση για τη χρήση ή πρόσβαση στο έργο που δεν προσπορίζει στο διανοµέα του έργου και αδειοδόχο έµµεσο οικονοµικό όφελος (π.χ. διαφηµίσεις) από την προβολή του έργου σε διαδικτυακό τόπο Ο δικαιούχος µπορεί να παρέχει στον αδειοδόχο ξεχωριστή άδεια να χρησιµοποιεί το έργο για εµπορική χρήση, εφόσον αυτό του Ϲητηθεί. 58 / 59
59 ιατήρηση Σηµειωµάτων Οποιαδήποτε αναπαραγωγή ή διασκευή του υλικού ϑα πρέπει να συµπεριλαµβάνει : το Σηµείωµα Αναφοράς το Σηµείωµα Αδειοδότησης τη δήλωση ιατήρησης Σηµειωµάτων το Σηµείωµα Χρήσης Εργων Τρίτων (εφόσον υπάρχει) µαζί µε τους συνοδευόµενους υπερσυνδέσµους 59 / 59
Τεχνολογίες Υλοποίησης Αλγορίθµων
Τεχνολογίες Υλοποίησης Αλγορίθµων Χρήστος Ζαρολιάγκης Καθηγητής Τµήµα Μηχ/κων Η/Υ & Πληροφορικής Πανεπιστήµιο Πατρών email: zaro@ceid.upatras.gr Εισαγωγή στην C++ 2 1 / 52 Εισαγωγή στην C++ - 2 Πίνακες
Εισαγωγή στους Αλγορίθμους
Εισαγωγή στους Αλγορίθμους Ενότητα 5 η Άσκηση Συγχώνευση & απαρίθμηση Διδάσκων Χρήστος Ζαρολιάγκης Καθηγητής Τμήμα Μηχανικών Η/Υ & Πληροφορικής Πανεπιστήμιο Πατρών Email: zaro@ceid.upatras.gr Άδειες Χρήσης
Οντοκεντρικός Προγραμματισμός
Οντοκεντρικός Προγραμματισμός Ενότητα 5: H ΓΛΩΣΣΑ C++ Πίνακες & Δείκτες ΔΙΔΑΣΚΟΝΤΕΣ: Ιωάννης Χατζηλυγερούδης, Χρήστος Μακρής Πολυτεχνική Σχολή Τμήμα Μηχανικών Η/Υ & Πληροφορικής Πίνακες Πίνακες Τα στοιχεία
Εισαγωγή στους Αλγορίθμους
Εισαγωγή στους Αλγορίθμους Ενότητα 5 η Άσκηση - Συγχώνευση Διδάσκων Χρήστος Ζαρολιάγκης Καθηγητής Τμήμα Μηχανικών Η/Υ & Πληροφορικής Πανεπιστήμιο Πατρών Email: zaro@ceid.upatras.gr Άδειες Χρήσης Το παρόν
Οντοκεντρικός Προγραμματισμός
Οντοκεντρικός Προγραμματισμός Ενότητα 7: C++ TEMPLATES, ΥΠΕΡΦΟΡΤΩΣΗ ΤΕΛΕΣΤΩΝ, ΕΞΑΙΡΕΣΕΙΣ Templates ΔΙΔΑΣΚΟΝΤΕΣ: Ιωάννης Χατζηλυγερούδης, Χρήστος Μακρής Πολυτεχνική Σχολή Τμήμα Μηχανικών Η/Υ & Πληροφορικής
Οντοκεντρικός Προγραμματισμός
Οντοκεντρικός Προγραμματισμός Ενότητα 5: H ΓΛΩΣΣΑ C++ Δομές Ελέγχου ΔΙΔΑΣΚΟΝΤΕΣ: Ιωάννης Χατζηλυγερούδης, Χρήστος Μακρής Πολυτεχνική Σχολή Τμήμα Μηχανικών Η/Υ & Πληροφορικής Δομές Ελέγχου Εισαγωγή Πριν
Προγραμματισμός Υπολογιστών & Υπολογιστική Φυσική
ΑΡΙΣΤΟΤΕΛΕΙΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΕΣΣΑΛΟΝΙΚΗΣ ΑΝΟΙΚΤΑ ΑΚΑΔΗΜΑΪΚΑ ΜΑΘΗΜΑΤΑ Προγραμματισμός Υπολογιστών & Υπολογιστική Φυσική Ενότητα 7: Συναρτήσεις Νικόλαος Στεργιούλας Τμήμα Φυσικής Άδειες Χρήσης Το παρόν εκπαιδευτικό
Οντοκεντρικός Προγραμματισμός
Οντοκεντρικός Προγραμματισμός Ενότητα 7: C++ TEMPLATES, ΥΠΕΡΦΟΡΤΩΣΗ ΤΕΛΕΣΤΩΝ, ΕΞΑΙΡΕΣΕΙΣ Χειρισμός Εξαιρέσεων ΔΙΔΑΣΚΟΝΤΕΣ: Ιωάννης Χατζηλυγερούδης, Χρήστος Μακρής Πολυτεχνική Σχολή Τμήμα Μηχανικών Η/Υ
Οντοκεντρικός Προγραμματισμός
Οντοκεντρικός Προγραμματισμός Ενότητα 5: H ΓΛΩΣΣΑ C++ Εισαγωγή στην C++ ΔΙΔΑΣΚΟΝΤΕΣ:Iωάννης Χατζηλυγερούδης, Χρήστος Μακρής Πολυτεχνική Σχολή Τμήμα Μηχανικών Η/Υ & Πληροφορικής H Γλώσσα C++ ΙΣΤΟΡΙΑ 1967:
Εισαγωγή στους Αλγορίθμους
Εισαγωγή στους Αλγορίθμους Ενότητα 6 η Άσκηση - DFS δένδρα Διδάσκων Χρήστος Ζαρολιάγκης Καθηγητής Τμήμα Μηχανικών Η/Υ & Πληροφορικής Πανεπιστήμιο Πατρών Email: zaro@ceid.upatras.gr Άδειες Χρήσης Το παρόν
Τεχνολογίες Υλοποίησης Αλγορίθµων
Τεχνολογίες Υλοποίησης Αλγορίθµων Χρήστος Ζαρολιάγκης Καθηγητής Τµήµα Μηχ/κων Η/Υ & Πληροφορικής Πανεπιστήµιο Πατρών email: zaro@ceid.upatras.gr Γρηγόρης Πράσινος Υποψήφιος ιδάκτωρ Τµήµα Μηχ/κων Η/Υ &
ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΗΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ
Ανοικτά Ακαδημαϊκά Μαθήματα στο ΤΕΙ Ιονίων Νήσων ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΗΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ Ενότητα 2: Εντολές/προτάσεις ελέγχου και συναρτήσεις Το περιεχόμενο του μαθήματος διατίθεται με άδεια Creative Commons
ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΗΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ
Ανοικτά Ακαδημαϊκά Μαθήματα στο ΤΕΙ Ιονίων Νήσων ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΗΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ Ενότητα 3: Πίνακες, Δομές και Δυναμική Διαχείριση Μνήμης Το περιεχόμενο του μαθήματος διατίθεται με άδεια Creative Commons
Οντοκεντρικός Προγραμματισμός
Οντοκεντρικός Προγραμματισμός Ενότητα 7: C++ TEMPLATES, ΥΠΕΡΦΟΡΤΩΣΗ ΤΕΛΕΣΤΩΝ, ΕΞΑΙΡΕΣΕΙΣ Υπερφόρτωση Τελεστών ΔΙΔΑΣΚΟΝΤΕΣ: Ιωάννης Χατζηλυγερούδης, Χρήστος Μακρής Πολυτεχνική Σχολή Τμήμα Μηχανικών Η/Υ
Προγραμματισμός Η/Υ. Ενότητα 4: Εντολές Επιλογής
Προγραμματισμός Η/Υ Ενότητα 4: Νίκος Καρακαπιλίδης, Καθηγητής Δημήτρης Σαραβάνος, Καθηγητής Πολυτεχνική Σχολή Τμήμα Μηχανολόγων & Αεροναυπηγών Μηχανικών Σκοποί ενότητας Έλεγχος της ροής ενός προγράμματος
ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΗΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ
Ανοικτά Ακαδημαϊκά Μαθήματα στο ΤΕΙ Ιονίων Νήσων ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΗΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ Ενότητα 10: Πρότυπα Το περιεχόμενο του μαθήματος διατίθεται με άδεια Creative Commons εκτός και αν αναφέρεται διαφορετικά
Εισαγωγή στους Αλγορίθμους Φροντιστήριο 1
Εισαγωγή στους Αλγορίθμους Φροντιστήριο 1 Διδάσκων Χρήστος Ζαρολιάγκης Καθηγητής Τμήμα Μηχανικών Η/Υ & Πληροφορικής Πανεπιστήμιο Πατρών Email: zaro@ceid.upatras.gr Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό
Προγραμματισμός H/Y Ενότητα 5: Συναρτήσεις. Επικ. Καθηγητής Συνδουκάς Δημήτριος Τμήμα Διοίκησης Επιχειρήσεων (Γρεβενά)
Προγραμματισμός H/Y Ενότητα 5: Συναρτήσεις Επικ. Καθηγητής Συνδουκάς Δημήτριος Τμήμα Διοίκησης Επιχειρήσεων (Γρεβενά) Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative Commons.
Εισαγωγή στους Αλγορίθμους Ενότητα 10η Άσκηση Αλγόριθμος Dijkstra
Εισαγωγή στους Αλγορίθμους Ενότητα 1η Άσκηση Αλγόριθμος Dijkra Διδάσκων Χρήστος Ζαρολιάγκης Καθηγητής Τμήμα Μηχανικών Η/Υ & Πληροφορικής Πανεπιστήμιο Πατρών Email: zaro@ceid.upara.gr Άδειες Χρήσης Το παρόν
Οντοκεντρικός Προγραμματισμός
Οντοκεντρικός Προγραμματισμός Ενότητα 5: H ΓΛΩΣΣΑ C++ Συναρτήσεις - Μεταβλητές ΔΙΔΑΣΚΟΝΤΕΣ: Iωάννης Χατζηλυγερούδης, Χρήστος Μακρής Πολυτεχνική Σχολή Τμήμα Μηχανικών Η/Υ & Πληροφορικής Συναρτήσεις / Μεταβλητές
Αρχές Γλωσσών Προγραμματισμού και Μεταφραστών
Αρχές Γλωσσών Προγραμματισμού και Μεταφραστών Ενότητα 7: Υπορουτίνες Καθ. Γιάννης Γαροφαλάκης Πολυτεχνική Σχολή Τμήμα Μηχανικών Η/Υ και Πληροφορικής Ορισμός Αφαίρεση με χρήση υπορουτινών (subroutine abstraction)
Οντοκεντρικός Προγραμματισμός
Οντοκεντρικός Προγραμματισμός Ενότητα 5: H ΓΛΩΣΣΑ C++ Διαφορές Java και C++ ΔΙΔΑΣΚΟΝΤΕΣ: Ιωάννης Χατζηλυγερούδης, Χρήστος Μακρής Πολυτεχνική Σχολή Τμήμα Μηχανικών Η/Υ & Πληροφορικής ΔΙΑΦΟΡΕΣ JAVA C++ Η
Οντοκεντρικός Προγραμματισμός
Οντοκεντρικός Προγραμματισμός Ενότητα 2: Η ΓΛΩΣΣΑ JAVA Βασικά Δομικά Στοιχεία ΔΙΔΑΣΚΟΝΤΕΣ: Ιωάννης Χατζηλυγερούδης, Χρήστος Μακρής Πολυτεχνική Σχολή Τμήμα Μηχανικών Η/Υ & Πληροφορικής ΔΟΜΙΚΑ ΣΤΟΙΧΕΙΑ ΔΟΜΙΚΑ
Προγραμματισμός Η/Υ. Ενότητα 5: Εντολές Επανάληψης
Προγραμματισμός Η/Υ Ενότητα 5: Νίκος Καρακαπιλίδης, Καθηγητής Δημήτρης Σαραβάνος, Καθηγητής Πολυτεχνική Σχολή Τμήμα Μηχανολόγων & Αεροναυπηγών Μηχανικών Σκοποί ενότητας Έλεγχος της ροής του προγράμματος
ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΗΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ
Ανοικτά Ακαδημαϊκά Μαθήματα στο ΤΕΙ Ιονίων Νήσων ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΗΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ Ενότητα 6: Κατανομή και Δυναμική Διαχείριση Μνήμης, τελεστές new και delete, υπερφόρτωση μονομελών τελεστών Το περιεχόμενο
Οντοκεντρικός Προγραμματισμός
Οντοκεντρικός Προγραμματισμός Ενότητα 2: Η ΓΛΩΣΣΑ JAVA Σύγκριση JAVA-C ΔΙΔΑΣΚΟΝΤΕΣ: Ιωάννης Χατζηλυγερούδης, Χρήστος Μακρής Πολυτεχνική Σχολή Τμήμα Μηχανικών Η/Υ & Πληροφορικής ΣΥΓΚΡΙΣΗ JAVA - C ΤΥΠΟΙ
Αναφορές, είκτες και Αλφαριθμητικά
Αναφορές, είκτες και Αλφαριθμητικά Ο τελεστής αναφοροποίησης Αναφορές είκτες Πίνακες και δείκτες Ο τελεστής new και delete υναμικοί πίνακες είκτες προς συναρτήσεις Αλφαριθμητικά της C Πίνακες Αλφαριθμητικών
Δομημένος Προγραμματισμός
Ανοικτά Ακαδημαϊκά Μαθήματα στο ΤΕΙ Ιονίων Νήσων Δομημένος Προγραμματισμός Ενότητα 1: Εισαγωγή Το περιεχόμενο του μαθήματος διατίθεται με άδεια Creative Commons εκτός και αν αναφέρεται διαφορετικά Το έργο
Προγραμματισμός Η/Υ. Βασικές Προγραμματιστικές Δομές. ΤΕΙ Ιονίων Νήσων Τμήμα Τεχνολόγων Περιβάλλοντος Κατεύθυνση Τεχνολογιών Φυσικού Περιβάλλοντος
Προγραμματισμός Η/Υ Βασικές Προγραμματιστικές Δομές ΤΕΙ Ιονίων Νήσων Τμήμα Τεχνολόγων Περιβάλλοντος Κατεύθυνση Τεχνολογιών Φυσικού Περιβάλλοντος Δομή Ελέγχου Ροής (IF) Η εντολή IF χρησιμοποιείται όταν
ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΗΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ
Ανοικτά Ακαδημαϊκά Μαθήματα στο ΤΕΙ Ιονίων Νήσων ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΗΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ Ενότητα 7: Υπερφόρτωση διμελών τελεστών Το περιεχόμενο του μαθήματος διατίθεται με άδεια Creative Commons εκτός και αν
ΠΛΗΡΟΦΟΡΙΚΗ ΙI Ενότητα 3: Έλεγχος ροής προγράμματος
ΠΛΗΡΟΦΟΡΙΚΗ ΙI Ενότητα 3: Έλεγχος ροής προγράμματος Μιχάλης Δρακόπουλος Σχολή Θετικών επιστημών Τμήμα Μαθηματικών ΠΛΗΡΟΦΟΡΙΚΗ ΙΙ (Java) Ενότητα 3 ΕΛΕΓΧΟΣ ΡΟΗΣ ΠΡΟΓΡΑΜΜΑΤΟΣ Ι. Ελεγκτές συνθηκών ή περιπτώσεων:
Δομημένος Προγραμματισμός
Ανοικτά Ακαδημαϊκά Μαθήματα στο ΤΕΙ Ιονίων Νήσων Δομημένος Προγραμματισμός Ενότητα 5: Εντολές επανάληψης Το περιεχόμενο του μαθήματος διατίθεται με άδεια Creative Commons εκτός και αν αναφέρεται διαφορετικά
Ευφυής Προγραμματισμός
Ευφυής Προγραμματισμός Ιωάννης Χατζηλυγερούδης Πολυτεχνική Σχολή Τμήμα Μηχανικών Η/Υ & Πληροφορικής Περιεχόμενα ενότητας Συναρτήσεις-Δομές Ελέγχου : 1. Συναρτήσεις Χρήστη 2. Έλεγχος Ροής Προγράμματος 3.
Διοικητική Λογιστική
Ανοικτά Ακαδημαϊκά Μαθήματα στο ΤΕΙ Ιονίων Νήσων Διοικητική Λογιστική Ενότητα 10: Προσφορά και κόστος Το περιεχόμενο του μαθήματος διατίθεται με άδεια Creative Commons εκτός και αν αναφέρεται διαφορετικά
Εισαγωγή στους Αλγορίθμους Φροντιστήριο 4
Εισαγωγή στους Αλγορίθμους Φροντιστήριο 4 Διδάσκων Χρήστος Ζαρολιάγκης Καθηγητής Τμήμα Μηχανικών Η/Υ & Πληροφορικής Πανεπιστήμιο Πατρών Email: zaro@ceid.upatras.gr Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό
Δομημένος Προγραμματισμός
Ανοικτά Ακαδημαϊκά Μαθήματα στο ΤΕΙ Ιονίων Νήσων Δομημένος Προγραμματισμός Ενότητα 8: Δείκτες Το περιεχόμενο του μαθήματος διατίθεται με άδεια Creative Commons εκτός και αν αναφέρεται διαφορετικά Το έργο
Εισαγωγή στους Αλγορίθμους Ενότητα 9η Άσκηση - Αλγόριθμος Kruskal
Εισαγωγή στους Αλγορίθμους Ενότητα 9η Άσκηση - Αλγόριθμος Kruskl Διδάσκων Χρήστος Ζαρολιάγκης Καθηγητής Τμήμα Μηχανικών Η/Υ & Πληροφορικής Πανεπιστήμιο Πατρών Emil: zro@ei.uptrs.r Άδειες Χρήσης Το παρόν
Προγραμματισμός Η/Υ. Ενότητα 8: Ειδικά Θέματα Αλγορίθμων
Προγραμματισμός Η/Υ Ενότητα 8: Ειδικά Θέματα Αλγορίθμων Νίκος Καρακαπιλίδης, Καθηγητής Δημήτρης Σαραβάνος, Καθηγητής Πολυτεχνική Σχολή Τμήμα Μηχανολόγων & Αεροναυπηγών Μηχανικών Σκοποί ενότητας Κατανόηση
Εισαγωγή στους Αλγορίθμους Ενότητα 11η Άσκηση - Σταθμισμένος Χρονοπρογραμματισμός Διαστημάτων
Εισαγωγή στους Αλγορίθμους Ενότητα η Άσκηση - Σταθμισμένος Χρονοπρογραμματισμός Διαστημάτων Διδάσκων Χρήστος Ζαρολιάγκης Καθηγητής Τμήμα Μηχανικών Η/Υ & Πληροφορικής Πανεπιστήμιο Πατρών Email: zaro@ceid.upatras.gr
ΣΥΣΤΗΜΑΤΑ ΗΛΕΚΤΡΙΚΗΣ ΕΝΕΡΓΕΙΑΣ ΙIΙ
ΑΡΙΣΤΟΤΕΛΕΙΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΕΣΣΑΛΟΝΙΚΗΣ ΑΝΟΙΚΤΑ ΑΚΑΔΗΜΑΙΚΑ ΜΑΘΗΜΑΤΑ ΣΥΣΤΗΜΑΤΑ ΗΛΕΚΤΡΙΚΗΣ ΕΝΕΡΓΕΙΑΣ ΙIΙ ΜΕΤΑΒΑΤΙΚΑ ΦΑΙΝΟΜΕΝΑ ΣΤΑ ΣΗΕ Λαμπρίδης Δημήτρης Κατσανού Βάνα Τμήμα Ηλεκτρολόγων Μηχανικών και Μηχανικών
ΣΥΣΤΗΜΑΤΑ ΗΛΕΚΤΡΙΚΗΣ ΕΝΕΡΓΕΙΑΣ ΙIΙ
ΑΡΙΣΤΟΤΕΛΕΙΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΕΣΣΑΛΟΝΙΚΗΣ ΑΝΟΙΚΤΑ ΑΚΑΔΗΜΑΙΚΑ ΜΑΘΗΜΑΤΑ ΣΥΣΤΗΜΑΤΑ ΗΛΕΚΤΡΙΚΗΣ ΕΝΕΡΓΕΙΑΣ ΙIΙ ΜΕΤΑΒΑΤΙΚΑ ΦΑΙΝΟΜΕΝΑ ΣΤΑ ΣΗΕ Λαμπρίδης Δημήτρης Κατσανού Βάνα Τμήμα Ηλεκτρολόγων Μηχανικών και Μηχανικών
ΣΥΣΤΗΜΑΤΑ ΗΛΕΚΤΡΙΚΗΣ ΕΝΕΡΓΕΙΑΣ ΙIΙ
ΑΡΙΣΤΟΤΕΛΕΙΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΕΣΣΑΛΟΝΙΚΗΣ ΑΝΟΙΚΤΑ ΑΚΑΔΗΜΑΙΚΑ ΜΑΘΗΜΑΤΑ ΣΥΣΤΗΜΑΤΑ ΗΛΕΚΤΡΙΚΗΣ ΕΝΕΡΓΕΙΑΣ ΙIΙ ΜΕΤΑΒΑΤΙΚΑ ΦΑΙΝΟΜΕΝΑ ΣΤΑ ΣΗΕ Λαμπρίδης Δημήτρης Κατσανού Βάνα Τμήμα Ηλεκτρολόγων Μηχανικών και Μηχανικών
Εισαγωγή στον δομημένο προγραμματισμό
Τμήμα Μηχανικών Πληροφορικής & Τηλεπικοινωνιών Εισαγωγή στον δομημένο προγραμματισμό Ενότητα 7 η : Δείκτες Αν. καθηγητής Στεργίου Κώστας e-mail: kstergiou@uowm.gr Τμήμα Μηχανικών Πληροφορικής και Τηλεπικοινωνιών
Πληροφορική ΙΙ Θεματική Ενότητα 5
Ανοικτά Ακαδημαϊκά Μαθήματα στο ΤΕΙ Ιονίων Νήσων Πληροφορική ΙΙ Θεματική Ενότητα 5 Λογικοί Τελεστές Το περιεχόμενο του μαθήματος διατίθεται με άδεια Creative Commons εκτός και αν αναφέρεται διαφορετικά
Προγραμματισμός H/Y Ενότητα 1: Εισαγωγή. Επικ. Καθηγητής Συνδουκάς Δημήτριος Τμήμα Διοίκησης Επιχειρήσεων (Γρεβενά)
Προγραμματισμός H/Y Ενότητα 1: Εισαγωγή Επικ. Καθηγητής Συνδουκάς Δημήτριος Τμήμα Διοίκησης Επιχειρήσεων (Γρεβενά) Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative Commons.
Εισαγωγή στους Αλγορίθμους Ενότητα 9η Άσκηση - Αλγόριθμος Prim
Εισαγωγή στους Αλγορίθμους Ενότητα 9η Άσκηση - Αλγόριθμος Prim Διδάσκων Χρήστος Ζαρολιάγκης Καθηγητής Τμήμα Μηχανικών Η/Υ & Πληροφορικής Πανεπιστήμιο Πατρών Emil: zro@ei.uptrs.r Άδειες Χρήσης Το παρόν
Ηλεκτρονικοί Υπολογιστές
ΑΡΙΣΤΟΤΕΛΕΙΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΕΣΣΑΛΟΝΙΚΗΣ ΑΝΟΙΧΤΑ ΑΚΑΔΗΜΑΪΚΑ ΜΑΘΗΜΑΤΑ Ενότητα 9: Πίνακες στη C++ Ζαχαρούλα Ανδρεοπούλου Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative Commons.
Εισαγωγή στους Αλγορίθμους Φροντιστήριο 5
Εισαγωγή στους Αλγορίθμους Φροντιστήριο 5 Διδάσκων Χρήστος Ζαρολιάγκης Καθηγητής Τμήμα Μηχανικών Η/Υ & Πληροφορικής Πανεπιστήμιο Πατρών Email: zaro@ceid.upatras.gr Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό
Προγραμματισμός Υπολογιστών & Υπολογιστική Φυσική
ΑΡΙΣΤΟΤΕΛΕΙΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΕΣΣΑΛΟΝΙΚΗΣ ΑΝΟΙΚΤΑ ΑΚΑΔΗΜΑΪΚΑ ΜΑΘΗΜΑΤΑ Προγραμματισμός Υπολογιστών & Υπολογιστική Φυσική Ενότητα 4: Δομές Ελέγχου Νικόλαος Στεργιούλας Τμήμα Φυσικής Άδειες Χρήσης Το παρόν εκπαιδευτικό
ΠΛΗΡΟΦΟΡΙΚΗ Ι Ενότητα 4: Συναρτήσεις
ΠΛΗΡΟΦΟΡΙΚΗ Ι Ενότητα 4: Συναρτήσεις Μιχάλης Δρακόπουλος Σχολή Θετικών επιστημών Τμήμα Μαθηματικών ΠΛΗΡΟΦΟΡΙΚΗ Ι Σημειώσεις MATLAB Ενότητα 4 ΠΛΗΡΟΦΟΡΙΚΗ Ι (MATLAB) Ενότητα 4 Σημειώσεις βασισμένες στο
Δομές Δεδομένων Ενότητα 3
ΑΡΙΣΤΟΤΕΛΕΙΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΕΣΣΑΛΟΝΙΚΗΣ ΑΝΟΙΚΤΑ ΑΚΑΔΗΜΑΪΚΑ ΜΑΘΗΜΑΤΑ Ενότητα 3: Στοίβα Απόστολος Παπαδόπουλος Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative Commons. Για εκπαιδευτικό
Προγραμματισμός Η/Υ. Ενότητα 3: Top Down Σχεδιασμός
Προγραμματισμός Η/Υ Ενότητα 3: Νίκος Καρακαπιλίδης, Καθηγητής Δημήτρης Σαραβάνος, Καθηγητής Πολυτεχνική Σχολή Τμήμα Μηχανολόγων & Αεροναυπηγών Μηχανικών Σκοποί ενότητας Κατανόηση της έννοιας της διεργασίας
Προγραμματισμός H/Y Ενότητα 4: Δείκτες. Επικ. Καθηγητής Συνδουκάς Δημήτριος Τμήμα Διοίκησης Επιχειρήσεων (Γρεβενά)
Προγραμματισμός H/Y Ενότητα 4: Δείκτες Επικ. Καθηγητής Συνδουκάς Δημήτριος Τμήμα Διοίκησης Επιχειρήσεων (Γρεβενά) Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative Commons.
Προγραμματισμός Ι. Κλάσεις και Αντικείμενα. Δημήτρης Μιχαήλ. Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο
Προγραμματισμός Ι Κλάσεις και Αντικείμενα Δημήτρης Μιχαήλ Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο Κλάσεις Η γενική μορφή μιας κλάσης είναι η εξής: class class-name { private data and
ΕΙΣΑΓΩΓΗ ΣΤΟN ΠΡΟΓΡΑΜΜΑΤΙΣΜΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΠΑΤΡΩΝ ΠΟΛΥΤΕΧΝΙΚΗ ΣΧΟΛΗ ΤΜΗΜΑ ΜΗΧΑΝΙΚΩΝ Η/Υ ΚΑΙ ΠΛΗΡΟΦΟΡΙΚΗΣ
ΕΙΣΑΓΩΓΗ ΣΤΟN ΠΡΟΓΡΑΜΜΑΤΙΣΜΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΠΑΤΡΩΝ ΠΟΛΥΤΕΧΝΙΚΗ ΣΧΟΛΗ ΤΜΗΜΑ ΜΗΧΑΝΙΚΩΝ Η/Υ ΚΑΙ ΠΛΗΡΟΦΟΡΙΚΗΣ Εμβέλεια Μεταβλητών Εμβέλεια = το τμήμα του προγράμματος στο οποίο έχει ισχύ ή είναι ορατή η μεταβλητή.
ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΡΗΤΗΣ. Δομές Δεδομένων. Ιωάννης Γ. Τόλλης Τμήμα Επιστήμης Υπολογιστών Πανεπιστήμιο Κρήτης
ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΡΗΤΗΣ Δομές Δεδομένων Ιωάννης Γ. Τόλλης Τμήμα Επιστήμης Υπολογιστών Πανεπιστήμιο Κρήτης Χρηματοδότηση Το παρόν εκπαιδευτικό υλικό έχει αναπτυχθεί στα πλαίσια του εκπαιδευτικού
ΠΛΗΡΟΦΟΡΙΚΗ Ι Ενότητα 3: Συναρτήσεις
ΠΛΗΡΟΦΟΡΙΚΗ Ι Ενότητα 3: Συναρτήσεις Μιχάλης Δρακόπουλος Σχολή Θετικών επιστημών Τμήμα Μαθηματικών Συναρτήσεις 60 Ροή ελέγχου Είναι η σειρά µε την οποία εκτελούνται οι εντολές. Μέχρι τώρα, «σειριακή»,
Αντικειμενοστρεφής Προγραμματισμός Ενότητα 7: Υπερφόρτωση τελεστών. Επικ. Καθηγητής Συνδουκάς Δημήτριος Τμήμα Διοίκησης Επιχειρήσεων (Γρεβενά)
Αντικειμενοστρεφής Προγραμματισμός Ενότητα 7: Υπερφόρτωση τελεστών Επικ. Καθηγητής Συνδουκάς Δημήτριος Τμήμα Διοίκησης Επιχειρήσεων (Γρεβενά) Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες
Λογιστική Κόστους Ενότητα 12: Λογισμός Κόστους (2)
Λογιστική Κόστους Ενότητα 12: Λογισμός Κόστους (2) Μαυρίδης Δημήτριος Τμήμα Λογιστικής και Χρηματοοικονομικής Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative Commons. Για
Προγραμματισμός H/Y Ενότητα 2: Εντολές ελέγχου ροής. Επικ. Καθηγητής Συνδουκάς Δημήτριος Τμήμα Διοίκησης Επιχειρήσεων (Γρεβενά)
Προγραμματισμός H/Y Ενότητα 2: Εντολές ελέγχου ροής Επικ. Καθηγητής Συνδουκάς Δημήτριος Τμήμα Διοίκησης Επιχειρήσεων (Γρεβενά) Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative
Η εντολή if-else. Η απλή μορφή της εντολής if είναι η ακόλουθη: if (συνθήκη) { Η γενική μορφή της εντολής ifelse. εντολή_1; εντολή_2;..
Επιλογή - Επανάληψη Η εντολή if-else Ο τελεστής παράστασης συνθήκης H εντολή switch Η εντολές for και while Η εντολή do-while Η εντολές break - continue - goto Μαθηματικές συναρτήσεις Λέξεις κλειδιά στη
υναµική διαχείριση µνήµης στη C++ Στην ενότητα αυτή θα µελετηθούν τα εξής επιµέρους θέµατα: ΕΠΛ 132 Αρχές Προγραµµατισµού ΙΙ 2 είκτες
υναµική διαχείριση µνήµης στη C++ Στην ενότητα αυτή θα µελετηθούν τα εξής επιµέρους θέµατα: είκτες στη C++ Οι τελεστές new και delete Destructors Ορισµός τελεστών κλάσεων Ο δείκτης this ΕΠΛ 132 Αρχές Προγραµµατισµού
Θερμοδυναμική. Ανοικτά Ακαδημαϊκά Μαθήματα. Πίνακες Νερού σε κατάσταση Κορεσμού. Γεώργιος Κ. Χατζηκωνσταντής Επίκουρος Καθηγητής
Ανοικτά Ακαδημαϊκά Μαθήματα Τεχνολογικό Εκπαιδευτικό Ίδρυμα Αθήνας Πίνακες Νερού σε κατάσταση Κορεσμού Γεώργιος Κ. Χατζηκωνσταντής Επίκουρος Καθηγητής Διπλ. Ναυπηγός Μηχανολόγος Μηχανικός M.Sc. Διασφάλιση
Δομημένος Προγραμματισμός
Ανοικτά Ακαδημαϊκά Μαθήματα στο ΤΕΙ Ιονίων Νήσων Δομημένος Προγραμματισμός Ενότητα 10: Συναρτήσεις Το περιεχόμενο του μαθήματος διατίθεται με άδεια Creative Commons εκτός και αν αναφέρεται διαφορετικά
Συναρτήσεις και Πίνακες
Συναρτήσεις και Πίνακες Συναρτήσεις καθιερωμένης βιβλιοθήκης της C++ Συναρτήσεις οριζόμενες από τον χρήστη Μεταβίβαση κατ αξία Συναρτήσεις void και λογικές συναρτήσεις Μεταβίβαση κατ αναφορά Επιστροφή
Ανοικτά Ακαδημαϊκά Μαθήματα στο ΤΕΙ Αθήνας. Βιοστατιστική (Ε) Ενότητα 3: Έλεγχοι στατιστικών υποθέσεων
Ανοικτά Ακαδημαϊκά Μαθήματα στο ΤΕΙ Αθήνας Βιοστατιστική (Ε) Ενότητα 3: Έλεγχοι στατιστικών υποθέσεων Δρ.Ευσταθία Παπαγεωργίου, Αναπληρώτρια Καθηγήτρια Τμήμα Ιατρικών Εργαστηρίων Το περιεχόμενο του μαθήματος
Ανοικτά Ακαδημαϊκά Μαθήματα στο ΤΕΙ Αθήνας. Βιοστατιστική (Ε) Ενότητα 1: Καταχώρηση δεδομένων
Ανοικτά Ακαδημαϊκά Μαθήματα στο ΤΕΙ Αθήνας Βιοστατιστική (Ε) Ενότητα 1: Καταχώρηση δεδομένων Δρ.Ευσταθία Παπαγεωργίου, Αναπληρώτρια Καθηγήτρια Τμήμα Ιατρικών Εργαστηρίων Το περιεχόμενο του μαθήματος διατίθεται
Οντοκεντρικός Προγραμματισμός
Οντοκεντρικός Προγραμματισμός Ενότητα 9: C++ ΕΙΣΟΔΟΣ - ΕΞΟΔΟΣ / ΑΛΦΑΡΙΘΜΗΤΙΚΑ / ΑΡΧΕΙΑ Αλφαριθμητικά ΔΙΔΑΣΚΟΝΤΕΣ: Ιωάννης Χατζηλυγερούδης, Χρήστος Μακρής Πολυτεχνική Σχολή Τμήμα Μηχανικών Η/Υ & Πληροφορικής
Κλήση Συναρτήσεων ΚΛΗΣΗ ΣΥΝΑΡΤΗΣΕΩΝ. Γεώργιος Παπαϊωάννου ( )
ΚΛΗΣΗ ΣΥΝΑΡΤΗΣΕΩΝ Γεώργιος Παπαϊωάννου (2013-16) gepap@aueb.gr Περιγραφή: Μορφές μεταβίβασης ορισμάτων σε συναρτήσεις (και μεθόδους) και οι επιπτώσεις τους Επιστροφή τιμών από κλήση συναρτήσεων Υπερφόρτωση
Εισαγωγή στον δομημένο προγραμματισμό
Τμήμα Μηχανικών Πληροφορικής & Τηλεπικοινωνιών Εισαγωγή στον δομημένο προγραμματισμό Ενότητα 12 η : Δυναμική Ανάθεση Θέσης Αν. καθηγητής Στεργίου Κώστας e-mail: kstergiou@uowm.gr Τμήμα Μηχανικών Πληροφορικής
Ανοικτά Ακαδημαϊκά Μαθήματα στο ΤΕΙ Αθήνας. Βιοστατιστική (Ε) Ενότητα 2: Περιγραφική στατιστική
Ανοικτά Ακαδημαϊκά Μαθήματα στο ΤΕΙ Αθήνας Βιοστατιστική (Ε) Ενότητα 2: Περιγραφική στατιστική Δρ.Ευσταθία Παπαγεωργίου, Αναπληρώτρια Καθηγήτρια Τμήμα Ιατρικών Εργαστηρίων Το περιεχόμενο του μαθήματος
Εισαγωγή στους Υπολογιστές
Εισαγωγή στους Υπολογιστές Ενότητα #5: Δομές επιλογής Καθ. Δημήτρης Ματαράς Πολυτεχνική Σχολή Τμήμα Χημικών Μηχανικών Δομές επιλογής MATLAB Programming Α. Καλαμπούνιας Η δομή επιλογής if Η δομή if στο
Εισαγωγή στον Προγραμματισμό με C++
ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ Ανώτατο Εκπαιδευτικό Ίδρυμα Πειραιά Τεχνολογικού Τομέα Εισαγωγή στον Προγραμματισμό με C++ Ενότητα # 6: Συναρτήσεις Κωνσταντίνος Κουκουλέτσος Τμήμα Αυτοματισμού Άδειες Χρήσης Το παρόν
Δομημένος Προγραμματισμός
Ανοικτά Ακαδημαϊκά Μαθήματα στο ΤΕΙ Ιονίων Νήσων Δομημένος Προγραμματισμός Ενότητα 9: Μνήμη Το περιεχόμενο του μαθήματος διατίθεται με άδεια Creative Commons εκτός και αν αναφέρεται διαφορετικά Το έργο
Προγραμματισμός Η/Υ. Ενότητα 2β: Εισαγωγή στη C (Μέρος Δεύτερο)
Προγραμματισμός Η/Υ Ενότητα 2β: Νίκος Καρακαπιλίδης, Καθηγητής Δημήτρης Σαραβάνος, Καθηγητής Πολυτεχνική Σχολή Τμήμα Μηχανολόγων & Αεροναυπηγών Μηχανικών Σκοποί ενότητας Κατανόηση της έννοιας του Τελεστή
Λογιστική Κόστους Ενότητα 8: Κοστολογική διάρθρωση Κύρια / Βοηθητικά Κέντρα Κόστους.
Λογιστική Κόστους Ενότητα 8: Κοστολογική διάρθρωση Κύρια / Βοηθητικά Κέντρα Κόστους. Μαυρίδης Δημήτριος Τμήμα Λογιστικής και Χρηματοοικονομικής Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες
Τίτλος Μαθήματος: Μαθηματική Ανάλυση Ενότητα Γ. Ολοκληρωτικός Λογισμός
Τίτλος Μαθήματος: Μαθηματική Ανάλυση Ενότητα Γ. Ολοκληρωτικός Λογισμός Κεφάλαιο Γ.4: Ολοκλήρωση με Αντικατάσταση Όνομα Καθηγητή: Γεώργιος Ν. Μπροδήμας Τμήμα Φυσικής Άδειες Χρήσης Το παρόν εκπαιδευτικό
Διοικητική Λογιστική
Ανοικτά Ακαδημαϊκά Μαθήματα στο ΤΕΙ Ιονίων Νήσων Διοικητική Λογιστική Ενότητα 6: Μέθοδοι ς Το περιεχόμενο του μαθήματος διατίθεται με άδεια Creative Commons εκτός και αν αναφέρεται διαφορετικά Το έργο
Εισαγωγή στον Προγραμματισμό
Εισαγωγή στον Προγραμματισμό Έλεγχος Δημήτρης Μιχαήλ Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο Ακ. Έτος 2012-2013 Σχεσιακοί Τελεστές και Ισότητας Ένα πρόγραμμα εκτός από αριθμητικές πράξεις
Μηχανολογικό Σχέδιο Ι
ΑΡΙΣΤΟΤΕΛΕΙΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΕΣΣΑΛΟΝΙΚΗΣ ΑΝΟΙΧΤΑ ΑΚΑΔΗΜΑΙΚΑ ΜΑΘΗΜΑΤΑ Ενότητα # 8: Άτρακτοι και σφήνες Μ. Γρηγοριάδου Μηχανολόγων Μηχανικών Α.Π.Θ. Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες
ΥΠΟΛΟΓΙΣΤΕΣ ΙI. Άδειες Χρήσης. Συναρτήσεις II Διδάσκοντες: Αν. Καθ. Δ. Παπαγεωργίου, Αν. Καθ. Ε. Λοιδωρίκης
ΠΑΝΕΠΙΣΤΗΜΙΟ ΙΩΑΝΝΙΝΩΝ ΑΝΟΙΚΤΑ ΑΚΑΔΗΜΑΪΚΑ ΜΑΘΗΜΑΤΑ Άδειες Χρήσης ΥΠΟΛΟΓΙΣΤΕΣ ΙI Συναρτήσεις II Διδάσκοντες: Αν. Καθ. Δ. Παπαγεωργίου, Αν. Καθ. Ε. Λοιδωρίκης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες
Βάσεις Περιβαλλοντικών Δεδομένων
Ανοικτά Ακαδημαϊκά Μαθήματα στο ΤΕΙ Ιονίων Νήσων Βάσεις Περιβαλλοντικών Δεδομένων Ενότητα 1: Εισαγωγή στις ΒΔ Το περιεχόμενο του μαθήματος διατίθεται με άδεια Creative Commons εκτός και αν αναφέρεται διαφορετικά
Δομημένος Προγραμματισμός
ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ Ανώτατο Εκπαιδευτικό Ίδρυμα Πειραιά Τεχνολογικού Τομέα Δομημένος Προγραμματισμός Ενότητα: Συναρτήσεις θεωρία Δ. Ε. Μετάφας Τμ. Ηλεκτρονικών Μηχ. Τ.Ε. Άδειες Χρήσης Το παρόν εκπαιδευτικό
Οντοκεντρικός Προγραμματισμός
Οντοκεντρικός Προγραμματισμός Ενότητα 2: Η ΓΛΩΣΣΑ JAVA Βιβλιοθήκες ΔΙΔΑΣΚΟΝΤΕΣ: Ιωάννης Χατζηλυγερούδης, Χρήστος Μακρής Πολυτεχνική Σχολή Τμήμα Μηχανικών Η/Υ & Πληροφορικής ΒΙΒΛΙΟΘΗΚΗ JAVA ΒΑΣΙΚΗ ΒΙΒΛΙΟΘΗΚΗ
ΗΛΕΚΤΡΟΝΙΚΗ ΙIΙ Ενότητα 6
ΑΡΙΣΤΟΤΕΛΕΙΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΕΣΣΑΛΟΝΙΚΗΣ ΑΝΟΙΚΤΑ ΑΚΑΔΗΜΑΙΚΑ ΜΑΘΗΜΑΤΑ ΗΛΕΚΤΡΟΝΙΚΗ ΙIΙ Ενότητα 6: 1η εργαστηριακή άσκηση και προσομοίωση με το SPICE Χατζόπουλος Αλκιβιάδης Τμήμα Ηλεκτρολόγων Μηχανικών και
Αντικειμενοστραφής Προγραμματισμός
1 Ελληνική Δημοκρατία Τεχνολογικό Εκπαιδευτικό Ίδρυμα Ηπείρου Αντικειμενοστραφής Προγραμματισμός Ενότητα 5 : Δομή Προγράμματος C++ Ιωάννης Τσούλος 2 Ανοιχτά Ακαδημαϊκά Μαθήματα στο Τμήμα Μηχανικών Πληροφορικής
Εισαγωγή στους Αλγορίθμους Φροντιστήριο 2
Εισαγωγή στους Αλγορίθμους Φροντιστήριο 2 Διδάσκων Χρήστος Ζαρολιάγκης Καθηγητής Τμήμα Μηχανικών Η/Υ & Πληροφορικής Πανεπιστήμιο Πατρών Email: zaro@ceid.upatras.gr Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό
Οντοκεντρικός Προγραμματισμός
Οντοκεντρικός Προγραμματισμός Ενότητα 9: C++ ΕΙΣΟΔΟΣ - ΕΞΟΔΟΣ / ΑΛΦΑΡΙΘΜΗΤΙΚΑ / ΑΡΧΕΙΑ Διαχείριση Αρχείων ΔΙΔΑΣΚΟΝΤΕΣ: Ιωάννης Χατζηλυγερούδης, Χρήστος Μακρής Πολυτεχνική Σχολή Τμήμα Μηχανικών Η/Υ & Πληροφορικής
Διεθνείς Οικονομικές Σχέσεις και Ανάπτυξη
ΑΡΙΣΤΟΤΕΛΕΙΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΕΣΣΑΛΟΝΙΚΗΣ ΑΝΟΙΚΤΑ ΑΚΑΔΗΜΑΪΚΑ ΜΑΘΗΜΑΤΑ Διεθνείς Οικονομικές Σχέσεις και Ανάπτυξη Ενότητα 8: Η Οικονομική πολιτική της Ευρωπαϊκής Ένωσης Γρηγόριος Ζαρωτιάδης Άδειες Χρήσης Το
Δομές Δεδομένων Ενότητα 4
ΑΡΙΣΤΟΤΕΛΕΙΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΕΣΣΑΛΟΝΙΚΗΣ ΑΝΟΙΚΤΑ ΑΚΑΔΗΜΑΪΚΑ ΜΑΘΗΜΑΤΑ Ενότητα 4: Ουρές Απόστολος Παπαδόπουλος Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative Commons. Για εκπαιδευτικό
Πληροφορική ΙΙ Θεματική Ενότητα 12
Ανοικτά Ακαδημαϊκά Μαθήματα στο ΤΕΙ Ιονίων Νήσων Πληροφορική ΙΙ Θεματική Ενότητα 12 Modules Το περιεχόμενο του μαθήματος διατίθεται με άδεια Creative Commons εκτός και αν αναφέρεται διαφορετικά Το έργο
Διοίκηση Εξωτερικής Εμπορικής Δραστηριότητας
Διοίκηση Εξωτερικής Εμπορικής Δραστηριότητας Ενότητα 8: Αξιολόγηση και επιλογή αγορών στόχων από ελληνική εταιρία στον κλάδο παραγωγής και εμπορίας έτοιμου γυναικείου Καθ. Αλεξανδρίδης Αναστάσιος Δρ. Αντωνιάδης
Εισαγωγή στον δομημένο προγραμματισμό
Τμήμα Μηχανικών Πληροφορικής & Τηλεπικοινωνιών Εισαγωγή στον δομημένο προγραμματισμό Ενότητα 9 η : Συναρτήσεις Αν. καθηγητής Στεργίου Κώστας e-mail: kstergiou@uowm.gr Τμήμα Μηχανικών Πληροφορικής και Τηλεπικοινωνιών
Οντοκεντρικός Προγραμματισμός
Οντοκεντρικός Προγραμματισμός Ενότητα 8: C++ ΒΙΒΛΙΟΗΚΗ STL, ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ Δομές Δεδομένων ΔΙΔΑΣΚΟΝΤΕΣ: Ιωάννης Χατζηλυγερούδης, Χρήστος Μακρής Πολυτεχνική Σχολή Τμήμα Μηχανικών Η/Υ & Πληροφορικής Δομές
Δομημένος Προγραμματισμός
Ανοικτά Ακαδημαϊκά Μαθήματα στο ΤΕΙ Ιονίων Νήσων Δομημένος Προγραμματισμός Ενότητα6: Εμφωλυευμένες δομές κώδικα Το περιεχόμενο του μαθήματος διατίθεται με άδεια Creative Commons εκτός και αν αναφέρεται
Βάσεις Περιβαλλοντικών Δεδομένων
Ανοικτά Ακαδημαϊκά Μαθήματα στο ΤΕΙ Ιονίων Νήσων Βάσεις Περιβαλλοντικών Δεδομένων Ενότητα 2: Εισαγωγή Το περιεχόμενο του μαθήματος διατίθεται με άδεια Creative Commons εκτός και αν αναφέρεται διαφορετικά
Εισαγωγή στους Αλγορίθμους Φροντιστήριο 8
Εισαγωγή στους Αλγορίθμους Φροντιστήριο 8 Διδάσκων Χρήστος Ζαρολιάγκης Καθηγητής Τμήμα Μηχανικών Η/Υ & Πληροφορικής Πανεπιστήμιο Πατρών Email: zaro@ceid.upatras.gr Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό
Προγραμματισμός H/Y Ενότητα 6: Δομές (structures) Επικ. Καθηγητής Συνδουκάς Δημήτριος Τμήμα Διοίκησης Επιχειρήσεων (Γρεβενά)
Προγραμματισμός H/Y Ενότητα 6: Δομές (structures) Επικ. Καθηγητής Συνδουκάς Δημήτριος Τμήμα Διοίκησης Επιχειρήσεων (Γρεβενά) Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative
Αντικειμενοστρεφής Προγραμματισμός Ενότητα 3: Constructors και destructors
Αντικειμενοστρεφής Προγραμματισμός Ενότητα 3: Constructors και destructors Επικ. Καθηγητής Συνδουκάς Δημήτριος Τμήμα Διοίκησης Επιχειρήσεων (Γρεβενά) Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται
Εισαγωγή στην Διοίκηση Επιχειρήσεων
Εισαγωγή στην Διοίκηση Επιχειρήσεων Ενότητα 7: ΑΣΚΗΣΕΙΣ ΜΕΓΕΘΟΥΣ ΕΠΙΧΕΙΡΗΣΗΣ Μαυρίδης Δημήτριος Τμήμα Λογιστικής και Χρηματοοικονομικής Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης