ΤΑΞΕΙΣ. Ορισμός τάξης. Στο προηγούμενο κεφάλαιο γενικεύσαμε τις μεταβλητές Δομές: σύνθετες μεταβλητές Συναρτήσεις που δέχονται και επιστρέφουν δομές

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

Download "ΤΑΞΕΙΣ. Ορισμός τάξης. Στο προηγούμενο κεφάλαιο γενικεύσαμε τις μεταβλητές Δομές: σύνθετες μεταβλητές Συναρτήσεις που δέχονται και επιστρέφουν δομές"

Transcript

1 ΥΠΟΛΟΓΙΣΤΕΣ ΙΙ πέρα απο απλές δομές ΤΑΞΕΙΣ Στο προηγούμενο κεφάλαιο γενικεύσαμε τις μεταβλητές Δομές: σύνθετες μεταβλητές Συναρτήσεις που δέχονται και επιστρέφουν δομές Τώρα γενικεύουμε μεταβλητές και συναρτήσεις Τάξεις: αντικείμενα που περιέχουν Μεταβλητές Συναρτήσεις που επεξεργάζονται τις μεταβλητές Μια τάξη εισάγει ένα αντικείμενο με συγκεκριμένες ιδιότητες και λειτουργίες αντικειμενοστρεφής προγραμματισμός 1 2 Ορισμός τάξης Ορισμός τάξης Μια τάξη ορίζεται με παρόμοιο τρόπο που ορίζεται και η δομή Χρησιμοποιείται η δεσμευμένη λέξη «class» Μέλη της τάξης μπορεί να είναι μεταβλητές και συναρτήσεις Τα μέλη μιας τάξης χωρίζονται σε δύο είδη «private»: ιδιωτικά μέλη: δεν είναι ορατά έξω από την τάξη «public»: δημόσια μέλη: είναι ορατά από οποιοδήποτε σημείο του προγράμματος Εξ ορισμού η C++ θεωρεί οτι τα μέλη μιας τάξης είναι private, εκτόςκαιεάνδηλωθούνpublic Σε αντιδιαστολή, τα μέλη μιας δομής θεωρούνται εξ ορισμού «public» 3 Ο γενικός ορισμός μιας τάξης είναι class όνομα{ τύπος μεταβλητή1 ; τύπος μεταβλητή2 ; τύπος όνομα-συνάρτησης1(); τύπος όνομα-συνάρτησης2(); τύπος μεταβλητή3 ; τύπος μεταβλητή4 ; τύπος όνομα-συνάρτησης3(); τύπος όνομα-συνάρτησης4(); ; Ιδιωτικά μέλη της τάξης Δεν μπορούμε να τα προσπελάσουμε, παρά μόνο μέσω των δημόσιων συναρτήσεων της τάξης ενθυλάκωση Δημόσια μέλη της τάξης Μπορούμε να τα προσπελάσουμε άμεσα από οποιοδήποτε σημείο του προγράμματος Οι δημόσιες συναρτήσεις επεξεργάζονται ιδιωτικά μέλη της τάξης 4

2 Απλές τάξεις Σχέση δομής και τάξης Στην πιο απλή περίπτωση, μια τάξη έχει Ιδιωτικές μεταβλητές: δεδομένα «προστατευμένα» απότουπόλοιποπρόγραμμα Επεξεργασία μόνο με προκαθορισμένο τρόπο Δημόσιες συναρτήσεις: Συναρτήσεις που επεξεργάζονται τις ιδιωτικές μεταβλητές Συνιστούν την γέφυρα επικοινωνίας των μεταβλητών με το έξω πρόγραμμα class όνομα{ ιδιωτικές μεταβλητές; δημόσιες συναρτήσεις; ; 5 Μια τάξη είναι μια γενίκευση της δομής Άρα ότι μάθαμε με τις δομές, μπορούμε να το κάνουμε με τάξεις Παράδειγμα, ένα «δημόσιο» διάνυσμα μπορεί να γραφτεί ισοδύναμα με δύο τρόπους Με δομή: Με τάξη: struct vector { ; class vector { ; Τα παραπάνω είναι απολύτως ίδια Τα παραδείγματα του προηγούμενου κεφαλαίου θα μπορούσαν να είχαν γραφτεί με την αντίστοιχη τάξη6 Συναρτήσεις-μέλη της τάξης Δήλωση συνάρτησης μέλους Μέσα στην τάξη δηλώνουμε τα πρωτότυπα των συναρτήσεωνμελών Παράδειγμα, ένα ιδιωτικό διάνυσμα, με μια συνάρτηση μέλος για την εισαγωγή τιμών στο διάνυσμα void set( double x1, double y1, double z1) ; ; Τα x, y, z είναι ιδιωτικά, και δεν μπορούμε να τους δώσουμε τιμές κατευθείαν από το πρόγραμμα με τον τελεστή της τελείας Θα χρησιμοποιήσουμε την συνάρτηση set, στην οποία δίνουμε στην λίστα εισόδου τις επιθυμητές τιμές 7 Η set θα πρέπει να αντιγράψει τις τιμές στα x, y, z Μιασυνάρτησηπουείναιμέλοςμιαςτάξηςέχειάμεσηπρόσβαση στα ιδιωτικά μέλη της τάξης Δεν χρειάζεται τελείες κτλ Ως εκ τούτου, ανήκει στην τάξη και πρέπει να δηλωθεί ανάλογα Ο μεταφραστής πρέπει να ξέρει την τάξη που ανήκει Δήλωση συνάρτησης (έξω από την τάξη, έξω από την main): τύπος τάξη::όνομα (λίστα εισόδου){ εντολές; return ; Το καινούριο στοιχείο: πριν το όνομα της συνάρτηση γράφουμε 8 το όνομα της τάξης, χωρισμένα με δύο άνω-κάτω τελείες

3 Δήλωση συνάρτησης μέλους Κλήση συνάρτηση μέλους Στο προηγούμενο παράδειγμα του διανύσματος void set( double x1, double y1, double z1) ; ; void vector::set (double x1, double y1, double z1){ x = x1; y = y1; z = z1; Η συνάρτηση έχει άμεση πρόσβαση στα x, y, z Τα γνωρίζει εξ ορισμού επειδή ανήκουν στην ίδια τάξη 9 Η κλήση γίνεται με τον τελεστή της τελείας, όπως γίνονταν και στις δομές Μόνη διαφορά, ότιησυνάρτησηέχειπάνταπαρενθέσεις Με την λίστα εισόδου εάν υπάρχει Άδειες παρενθέσεις εάν δεν υπάρχει είσοδος Παράδειγμα #1: Πρόγραμμα που δηλώνει τάξη για διάνυσμα με δύο συναρτήσεις: - μια για εισαγωγή τιμών - μια για υπολογισμό του μέτρου του διανύσματος 10 Παράδειγμα #1: διάνυσμα (1/2) #include <cmath> void set(double, double, double); double magn(); ; void vector::set (double x1, double y1, double z1){ x = x1; y = y1; z = z1; double vector::magn(){ return sqrt(x*x + y*y +z*z); 11 συνεχίζεται Παράδειγμα #1: διάνυσμα (2/2) vector v, u; double a, b, c; cout<< εισάγετε συνιστώσες διανύσματος << endl; cin >> a >> b >> c; vset(a, b, c); cout<< εισάγετε συνιστώσες διανύσματος << endl; cin >> a >> b >> c; uset(a, b, c); cout << το μέτρο του πρώτου διανύσματος <<endl; cout << vmagn() << endl; cout << το μέτρο του δεύτερου διανύσματος <<endl; cout << umagn() << endl; 12

4 Συνάρτηση δόμησης Κατά την δημιουργία ενός αντικειμένου, οι εσωτερικές μεταβλητές δεν έχουν αρχική τιμή Στο προηγούμενο χρησιμοποιήσαμε την set για να δώσουμε αρχικές τιμές ησυνάρτησηset καλείται μέσα στο πρόγραμμα Μπορούμε να προγραμματίσουμε έτσι ώστε κατά την δήλωση του αντικειμένου, οι εσωτερικές μεταβλητές να παίρνουν εξ ορισμού κάποια συγκεκριμένη αρχική τιμή Συνάρτηση δόμησης ίδιο όνομα με αυτό της τάξης χωρίς τύπο με ή χωρίς λίστα εισόδου 13 Παράδειγμα με συνάρτηση δόμησης #include <cmath> vector(); void set(double, double, double); double magn(); ; vector::vector(){ x = y = z = 0; void vector::set (double x1, double y1, double z1){ x = x1; y = y1; z = z1; double vector::magn(){ return sqrt(x*x + y*y +z*z); 14 Παράδειγμα με συνάρτηση δόμησης Παράδειγμα #2: λίστα αποθήκης vector v, u; Στη δήλωση, τα διανύσματα v, u αρχικοποιούνται στο (0,0,0) Η συνάρτηση δόμησης μπορεί και να έχει είσοδο vector(double x1, double y1, double z1); ; vector::vector(double x1, double y1, double z1){ x = x1; y = y1; z = z1; Τώρα όμως θα πρέπει να δοθούν οι τιμές κατά την δήλωση vector v(0,0,0), u(1,1,1); Στη δήλωση, τα διανύσματα v, u αρχικοποιούνται στο (0,0,0) και (1,1,1) 15 Πρόγραμμα για οργάνωση και χειρισμό αντικειμένων σε αποθήκη Θα ορίσουμε μια νέα τάξη που θα περιλαμβάνει Μεταβλητές για κάθε αντικείμενο: κόστος αγοράς Τιμή πώλησης Αριθμός αντικειμένων στην αποθήκη Χρηματικό ισοζύγιο Συναρτήσεις για επεξεργασία των παραπάνω Συνάρτηση για αρχικές συνθήκες Συνάρτηση για πώληση Συνάρτηση για αγορά Συνάρτηση που να δείχνει την κατάσταση 16

5 Παράδειγμα #2: λίστα αποθήκης (1/5) Παράδειγμα #2: λίστα αποθήκης (2/5) class item{ double cost; double price; int stock; double cash; item(); void reset(); void sell(); void buy(); void info(); ; void item::sell(){ int n; cout << πόσα κομμάτια προς πώληση; << endl; cin >> n; if ( stock<n ) cout<< έχουμε μόνο << stock <<endl; else { stock -= n; cash += n * price; item::item(){ cost = price = stock = cash = 0; Παράδειγμα #2: λίστα αποθήκης (3/5) Παράδειγμα #2: λίστα αποθήκης (4/5) void item::buy(){ int n; cout << πόσα κομμάτια προς αγορά; << endl; cin >> n; stock += n; cash -= n * cost; void item::reset(){ cout << παλιές τιμές αγοράς και πώλησης << endl; cout << cost << << price << endl; cout << εισάγετε νέες τιμές << endl; cin >> cost >> price; void item::info(){ cout << stock << έχουν μείνει στην αποθήκη <<endl; cout << cost << ευρώ η τιμή αγοράς <<endl; cout << price << ευρώ η τιμή πώλησης <<endl; cout << cash << ευρώ το ισοζύγιο <<endl; 19 20

6 Παράδειγμα #2: λίστα αποθήκης (5/5) item a[1000]; int i, j; do { cout<< Aριθμός προϊόντος; <<endl; cin >> i; cout<< Eντολή; 0-4: e-s-b-r-i <<endl; cin >> j; switch (j){ case 1: a[i]sell(); break; case 2: a[i]buy(); break; case 3: a[i]reset(); break; case 4: a[i]info(); break; while( j > 0 ); 21 Παράδειγμα #2: λίστα αποθήκης Εκτέλεση και αποτελέσματα > Aριθμός προϊόντος; > Eντολή; 0-4: e-s-b-r-i > 3 > παλιές τιμές αγοράς και πώλησης > 0 0 > εισάγετε νέες τιμές > 3 4 > Aριθμός προϊόντος; > Eντολή; 0-4: e-s-b-r-i > 2 > πόσα κομμάτια προς αγορά; > 5 > Aριθμός προϊόντος; > Eντολή; 0-4: e-s-b-r-i > πόσα κομμάτια προς πώληση; > 3 > Aριθμός προϊόντος; > Eντολή; 0-4: e-s-b-r-i > 4 > 2 έχουν μείνει στην αποθήκη > 3 ευρώ η τιμή αγοράς > 4 ευρώ η τιμή πώλησης > -3 ευρώ το ισοζύγιο 22 Παράδειγμα #2: Λίστα προτεραιότητας Παράδειγμα #2: Λίστα προτεραιότητας (1/4) Μια λίστα προτεραιότητας (ή λίστααναμονής, ή «ουρά») Δέχεται νούμερα, που προστίθενται στο τέλος Τραβάει νούμερα από την αρχή της ουράς Η σειρά που ακολουθείται είναι «πρώτο μπαίνει, πρώτο βγαίνει) Από μεταβλητές θα χρειαστούμε έναν πίνακα για να αποθηκεύουμε τα νούμερα έναν ακέραιο για την θέση όπου βάζουμε τον επόμενο έναν ακέραιο για την θέση απ όπου τραβάμε τον επόμενο Από συναρτήσεις θα χρειαστούμε μια συνάρτηση όταν ένας νέος αριθμός μπαίνει στη λίστα μια συνάρτηση για να τραβάμε έναν αριθμό από την λίστα και οι δύο πρέπει να ελέγχουν μην ξεπεραστούν όρια μια συνάρτηση να δίνει αρχικές τιμές 23 Θα ονομάσουμε την τάξη μας queue (ουρά) class queue { double q[1000]; int sloc, rloc; queue(); void qput(double); double qget(); ; Η συνάρτηση δόμησης πρέπει να δίνει τις κατάλληλες αρχικές τιμές κατά την δήλωση μιας νέας ουράς Αρχικά είναι άδεια, άρα sloc=rloc=0; queue::queue(){ sloc = rloc = 0; 24

7 Παράδειγμα #2: Λίστα προτεραιότητας (2/4) Παράδειγμα #2: Λίστα προτεραιότητας (3/4) Ησυνάρτησηqput δέχεται έναν ρητό και τον προσθέτει στο τέλος της ουράς Ελέγχει ότι η ουρά δεν έχει γεμίσει Η θέση στο τέλος της ουράς είναι η sloc void queue::qput(double a){ if(sloc == 1000){ cout<< η λίστα είναι γεμάτη << endl; return; Ησυνάρτησηqget τραβάει έναν ακέραιο από την αρχή της ουράς Ελέγχει ότι η ουρά δεν είναι άδεια Ηθέσηστηναρχήτηςουράςείναιηrloc double queue::qget(){ if(rloc == sloc){ cout<< η λίστα είναι άδεια ; return 0; q[sloc] = a; sloc++; 25 double r = q[rloc]; rloc++; return r; 26 Παράδειγμα #2: Λίστα προτεραιότητας (4/4) Ένα παράδειγμα προγράμματος που χρησιμοποιεί την τάξη queue queue a, b; aqput(10); bqput(19); aqput(20); bqput(1); cout<< η λίστα a περιέχει τους αριθμούς: ; cout << aqget() << << aqget() <<endl; cout<< η λίστα b περιέχει τους αριθμούς: ; cout << bqget() << << bqget() << endl; Στην εκτέλεση του παραπάνω θα λάβουμε > η λίστα a περιέχει τους αριθμούς: > η λίστα b περιέχει τους αριθμούς: Παράδειγμα #2: Λίστα προτεραιότητας 2 Ένα δεύτερο παράδειγμα προγράμματος με την τάξη queue queue a; int i; double x; do { cout<< Επόμενη εντολή; 0-2 e-p-g <<endl; cin >> i; switch (i) { case 1: cout<< δώστε αριθμό <<endl; cin >> x; aqput(x); break; case 2: cout<< επόμενος αριθμός στην ουρά ; cout << aqget() << endl; break; while ( i > 0 ); 28

8 Παράδειγμα #2: Λίστα προτεραιότητας 2: εφαρμογή > δώστε αριθμό > 4 > δώστε αριθμό > 7 > 2 > επόμενος αριθμός στην ουρά 4 > δώστε αριθμό > 5 > 2 > επόμενος αριθμός στην ουρά 7 > 2 > επόμενος αριθμός στην ουρά 5 > 2 > η λίστα είναι άδεια 0 > δώστε αριθμό 5 > 2 > επόμενος αριθμός στην ουρά 15 Παράδειγμα #3: Μέτρηση καρτών Πρόγραμμα που μετράει κάρτες σε παιχνίδι Έστω το παιχνίδι «21»,το οποίο παίζεται ως εξής: τραβάς όσα φύλλα επιθυμείς ο πιο κοντά στο 21 κερδίζει παίζουν τα φύλλα από 1 μέχρι και 10 παίζουν n τράπουλες Θα φτιάξουμε μια τάξη που θα μετράει τα φύλλα Από μεταβλητές θα χρειαστούμε έναν πίνακα για να αποθηκεύει πόσα φύλλα περάσανε έναν ακέραιο για πόσα φύλλα ακόμα παίζουν Από συναρτήσεις θα χρειαστούμε μια συνάρτηση δόμησης για αρχικές τιμές μια συνάρτηση όταν ένα νέο φύλλο περνάει μια συνάρτηση που συμβουλεύει να τραβήξουμε ή όχι Παράδειγμα #3: Μέτρηση καρτών (1/4) Παράδειγμα #3: Μέτρηση καρτών (2/4) class game{ int cards[11]; int num; game(int); void add(int); double play(int); ; Συνάρτηση για καταμέτρηση φύλλου που πέρασε στην είσοδο το j είναι το φύλλο που περνάει αφαιρείται ένα από τα j που παραμένουν αφαιρείται ένα από τον συνολικό αριθμό που παραμένει void game::add( int j ){ if( cards[j] == 0 ){ cout << τέλειωσε αυτή η κάρτα << endl; return; game::game(int n){ for (int i=1; i<=10; ++i) cards[i] = 4 * n; num = 40 * n; 31 cards[j]--; num--; 32

9 Παράδειγμα #3: Μέτρηση καρτών (3/4) Συνάρτηση για εκτίμηση πιθανότητας να τραβήξουμε στην είσοδο το j είναι το άθροισμα που έχουμε μέχρι τώρα αθροίζουμε τον αριθμό φύλλων που δεν το καίνε δηλαδή αυτά που έχουν μείνει από 1 μέχρι 21 - j διαιρούμε με τον συνολικό αριθμό φύλλων που έχει μείνει double game::play( int j ){ if( num == 0 ){ cout<< τελείωσαν οι κάρτες << endl ; return 0; double s=0; for(int i=1; i <= 21-j; ++i) s += cards[i]; return s / num * 100; 33 Παράδειγμα #3: Μέτρηση καρτών (4/4) Το κυρίως πρόγραμμα int n, j; cout << πόσες τράπουλες; ; cin >> n; game a(n); do{ cout << νέο φύλλο ; cin >> j; if (j <= 10) aadd(j); else cout << τράβα << aplay(j) << %\n ; while( j > 0 ); 34 Υπερφόρτωση τελεστών Πρόσθεση διανυσμάτων 1: με εξωτερική συνάρτηση Είδαμε πως γράφουμε συναρτήσεις για την εκτέλεση συγκεκριμένων λειτουργιών-πράξεων Είδαμε πως υπερφορτώνουμε συναρτήσεις Εδώ τα συνδυάζουμε υπερφορτώνοντας τους τελεστές Για παράδειγμα, αντί να γράψουμε συνάρτηση sum για πρόσθεση διανυσμάτων, θα επαναπρογραμματίσουμε το + ώστε να κάνει την επιθυμητή λειτουργία Ως παράδειγμα, θα χρησιμοποιήσουμε την τάξη vector 35 Έστω η τάξη vector για απλότητα θεωρούμε όλα τα μέλη της τάξης δημόσια ; Θα γράψουμε εξωτερική συνάρτηση για την πρόσθεση vector sum(vector v, vector u){ vector w; wx = vx + ux; wy = vy + uy; wz = vz + uz; 36

10 Πρόσθεση διανυσμάτων 1: με εξωτερική συνάρτηση Πρόσθεση διανυσμάτων 2: με συνάρτηση-μέλος ; vector sum(vector, vector); vector v1, v2, v3; v3 = sum(v1, v2); cout << το άθροισμα v1+v2 είναι << endl; cout << v3x << v3y << v3z<<endl; 37 Έστω η τάξη vector vector sum(vector); ; Η συνάρτηση-μέλος δέχεται και επιστρέφει τον ίδιο τύπο με την τάξη καλείται από κάποια μεταβλητή τύπου vector με την τελεία vector vector::sum(vector u){ vector w; wx = x + ux; wy = y + uy; wz = z + uz; 38 Πρόσθεση διανυσμάτων 2: με συνάρτηση-μέλος vector sum(vector); ; vector v1, v2, v3; v3 = v1sum(v2); cout << το άθροισμα v1+v2 είναι << endl; cout << v3x << v3y << v3z<<endl; 39 Πρόσθεση διανυσμάτων 3: με υπερφόρτωση τελεστή Ορίζεται όπως και η εσωτερική συνάρτηση Για να δηλώσουμε ότι πρόκειται για τελεστή, το όνομά της αποτελείται από τον κωδικό operator συνοδευόμενο από το επιθυμητό σύμβολο πχ για πρόσθεση, χρησιμοποιούμε το operator+ vector operator+(vector); ; vector vector::operator+(vector u){ vector w; wx = x + ux; wy = y + uy; wz = z + uz; 40

11 Πρόσθεση διανυσμάτων 3: με υπερφόρτωση τελεστή vector operator+(vector); ; vector v1, v2, v3; v3 = v1 + v2; cout << το άθροισμα v1+v2 είναι << endl; cout << v3x << v3y << v3z<<endl; 41 Σύγκριση συνάρτησης-μέλους και τελεστή Με συνάρτηση-μέλος Ησυνάρτηση sum καλείται από το διάνυσμα στα αριστερά Άρα έχει άμεση γνώση των μελών x, y, z Το διάνυσμα στα δεξιά εισέρχεται Άρα για τα x, y, z του εισερχόμενου διανύσματος χρειαζόμαστε την τελεία H συνάρτηση καλείται ως v3 = v1sum(v2); Με τελεστή Ο τελεστής + καλείται από το διάνυσμα στα αριστερά Άρα έχει άμεση γνώση των μελών x, y, z Το διάνυσμα στα δεξιά εισέρχεται Άρα για τα x, y, z του εισερχόμενου διανύσματος χρειαζόμαστε την τελεία Ο τελεστής καλείται ως v3 = v1 + v2; Με τελεστή δεν χρειάζονται η τελεία και οι παρενθέσεις! 42 Υπερφόρτωση αφαίρεσης διανυσμάτων Υπερφόρτωση γινομένου διανυσμάτων και γινομένου με ρητό vector vector::operator-(vector u){ vector w; wx = x - ux; wy = y - uy; wz = z - uz; Εσωτερικό γινόμενο δύο διανυσμάτων double vector::operator*(vector u){ return x*ux + y*uy + z*uz; Γινόμενο διανύσματος με ρητό vector vector::operator*(double m){ vector w; wx = x * m; wy = y * m; wz = z * m; 43 44

12 Δημιουργία τελεστή εξωτερικού γινομένου διανυσμάτων Εξωτερικό γινόμενο (ορίζουμε τον νέο τελεστή ^) iˆ ˆj kˆ r a b r = ax a y az = iˆ( a ybz azby ) ˆ( j axbz azbx ) + kˆ( axby b b b x y z vector vector::operator^(vector u){ vector w; wx = y * uz z * uy; wy = z * ux x * uz; wz = x * uy y * ux; a y b x ) 45 Λοιπές συναρτήσεις-μέλη Συνάρτηση δόμησης χωρίς είσοδο (για εξ ορισμού ανάθεση (0,0,0)) vector::vector(){ x = y = z = 0; Συνάρτηση δόμησης με είσοδο (για ανάθεση κατά την δήλωση) vector::vector(double x1, double y1, double z1){ x = x1; y = y1; z = z1; Συνάρτηση set (για ανάθεση μετά την δήλωση) void vector::set(double x1, double y1, double z1){ x = x1; y = y1; z = z1; Συνάρτηση magnitude double vector::magnitude(){ return sqrt(x*x + y*y + z*z); 46 Παράδειγμα 1: Διανυσματικός λογισμός Παράδειγμα 1: Διανυσματικός λογισμός (1/2) Πλήρες πρόγραμμα C++ με τους τελεστές και συναρτήσεις-μέλη που δόθηκαν προηγουμένως, ώστε να υπολογίσει την έκφραση ( v1 v2 ) ( v1 v3) ( v1 + v2 ) ( v1 v3 ) 47 #include <cmath> vector(); vector(double, double, double); void set(double, double, double); vector operator+(vector); vector operator-(vector); double operator*(vector); vector operator*(double); vector operator^(vector); double magnitude(); ; 48

13 Παράδειγμα 1: Διανυσματικός λογισμός (2/2) vector r; cout << εισάγετε τα τρία διανύσματα <<endl; cin >> x >> y >> z; vector v1(x,y,z); cin >> x >> y >> z; vector v2(x,y,z); cin >> x >> y >> z; vector v3(x,y,z); ( v1 v2 ) ( v1 v3 ) ( v1 + v2 ) ( v1 v3 ) r = ((v1^v2)^(v1^v3)) * ((v1+v2)^(v1-v3))magn(); cout << το ζητούμενο διάνυσμα είναι <<endl; cout << rx << << ry << << rz <<endl; 49 Παράδειγμα 2: μιγαδικοί αριθμοί #include <cmath> class complex{ double real, imag; complex(); complex(double, double); void set(double, double); complex operator+(complex); complex operator-(complex); complex operator*(complex); complex operator*(double); double magnitude(); ; 50 Παράδειγμα 2: μιγαδικοί αριθμοί Παράδειγμα 2: μιγαδικοί αριθμοί complex::complex(){real = imag = 0; complex::complex(double r, double i){ real = r; imag = i; void complex::set(double r, double i){ real = r; imag = i; double complex::magnitude(){ return sqrt(real*real + imag*imag); complex complex::operator+(complex z){ complex w; wreal = real + zreal; wimag = imag + zimag; complex complex::operator-(complex z){ complex w; wreal = real - zreal; wimag = imag - zimag; 51 52

14 Παράδειγμα 2: μιγαδικοί αριθμοί Παράδειγμα 2: μιγαδικοί αριθμοί complex complex::operator*(complex z){ complex w; wreal = real * zreal imag * zimag; wimag = real * zimag + imag * zreal; complex complex::operator*(double m){ complex w; wreal = real * m; wimag = imag * m; 53 Χρησιμοποιώντας την τάξη complex, υπολογίστε τους 100 πρώτους όρους της παρακάτω αναδρομικής ακολουθίας μιγαδικών αριθμών zn = rz n 1(1 zn 2) double r = 2; complex za(075, 025); complex zb(025, 075); complex z1(100, 000); z1 = i 025, z 2 = i 075, r = 2 for (int i=3; i<=100; ++i){ zc = ( zb * (z1 za) ) * r; za = zb; zb = zc; cout << ο όρος << i << είναι << zcreal << << zcimag << endl; 54

ΥΠΟΛΟΓΙΣΤΕΣ ΙI. Άδειες Χρήσης. Τάξεις Διδάσκοντες: Αν. Καθ. Δ. Παπαγεωργίου, Αν. Καθ. Ε. Λοιδωρίκης

ΥΠΟΛΟΓΙΣΤΕΣ ΙI. Άδειες Χρήσης. Τάξεις Διδάσκοντες: Αν. Καθ. Δ. Παπαγεωργίου, Αν. Καθ. Ε. Λοιδωρίκης ΠΑΝΕΠΙΣΤΗΜΙΟ ΙΩΑΝΝΙΝΩΝ ΑΝΟΙΚΤΑ ΑΚΑΔΗΜΑΪΚΑ ΜΑΘΗΜΑΤΑ Άδειες Χρήσης ΥΠΟΛΟΓΙΣΤΕΣ ΙI Τάξεις Διδάσκοντες: Αν Καθ Δ Παπαγεωργίου, Αν Καθ Ε Λοιδωρίκης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative

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

ΥΠΟΛΟΓΙΣΤΕΣ ΙI. Άδειες Χρήσης. Δομές Διδάσκοντες: Αν. Καθ. Δ. Παπαγεωργίου, Αν. Καθ. Ε. Λοιδωρίκης

ΥΠΟΛΟΓΙΣΤΕΣ ΙI. Άδειες Χρήσης. Δομές Διδάσκοντες: Αν. Καθ. Δ. Παπαγεωργίου, Αν. Καθ. Ε. Λοιδωρίκης ΠΑΝΕΠΙΣΤΗΜΙΟ ΙΩΑΝΝΙΝΩΝ ΑΝΟΙΚΤΑ ΑΚΑΔΗΜΑΪΚΑ ΜΑΘΗΜΑΤΑ Άδειες Χρήσης ΥΠΟΛΟΓΙΣΤΕΣ ΙI Δομές Διδάσκοντες: Αν Καθ Δ Παπαγεωργίου, Αν Καθ Ε Λοιδωρίκης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creatve

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

ΥΠΟΛΟΓΙΣΤΕΣ ΙΙ. Τι είναι ; Συναρτήσεις. Παράδειγμα #1. double convert ( double cm ) { double inch;

ΥΠΟΛΟΓΙΣΤΕΣ ΙΙ. Τι είναι ; Συναρτήσεις. Παράδειγμα #1. double convert ( double cm ) { double inch; ΥΠΟΛΟΓΙΣΤΕΣ ΙΙ Τι είναι ; Συναρτήσεις Αυτόνομα τμήματα κώδικα (υποπρογράμματα) που πραγματοποιούν μια καθορισμένη εργασία. Χρήσιμες για περιπτώσεις που ο ίδιος υπολογισμός επαναλαμβάνεται πολλές φορές

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

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

Προγραμματισμός Ι. Κλάσεις και Αντικείμενα. Δημήτρης Μιχαήλ. Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο Προγραμματισμός Ι Κλάσεις και Αντικείμενα Δημήτρης Μιχαήλ Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο Κλάσεις Η γενική μορφή μιας κλάσης είναι η εξής: class class-name { private data and

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

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

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

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

ΥΠΟΛΟΓΙΣΤΕΣ ΙΙ. Τι χρειάζεται η εντολή if ; Εντολή if. Παράδειγμα #1. Παράδειγμα #1

ΥΠΟΛΟΓΙΣΤΕΣ ΙΙ. Τι χρειάζεται η εντολή if ; Εντολή if. Παράδειγμα #1. Παράδειγμα #1 ΥΠΟΛΟΓΙΣΤΕΣ ΙΙ Τι χρειάζεται η εντολή if ; Εντολή if Η εντολή if επιτρέπει την επιλεκτική εκτέλεση εντολών ελέγχοντας μια συνθήκη 1 2 Παράδειγμα #1 Παράδειγμα #1 Κατασκευάστε πρόγραμμα που θα βρίσκει το

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

ΥΠΟΛΟΓΙΣΤΕΣ ΙI. Άδειες Χρήσης. Συναρτήσεις II Διδάσκοντες: Αν. Καθ. Δ. Παπαγεωργίου, Αν. Καθ. Ε. Λοιδωρίκης

ΥΠΟΛΟΓΙΣΤΕΣ ΙI. Άδειες Χρήσης. Συναρτήσεις II Διδάσκοντες: Αν. Καθ. Δ. Παπαγεωργίου, Αν. Καθ. Ε. Λοιδωρίκης ΠΑΝΕΠΙΣΤΗΜΙΟ ΙΩΑΝΝΙΝΩΝ ΑΝΟΙΚΤΑ ΑΚΑΔΗΜΑΪΚΑ ΜΑΘΗΜΑΤΑ Άδειες Χρήσης ΥΠΟΛΟΓΙΣΤΕΣ ΙI Συναρτήσεις II Διδάσκοντες: Αν. Καθ. Δ. Παπαγεωργίου, Αν. Καθ. Ε. Λοιδωρίκης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες

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

Διανύσματα στις 3 Διαστάσεις

Διανύσματα στις 3 Διαστάσεις project 2 Διανύσματα στις 3 Διαστάσεις Περιεχόμενα: Prj02.1 Το Πρόβλημα... 485 Prj02.2 Ο Τύπος Vector3 και οι Δημιουργοί... 486 Prj02.3 Οι Τελεστές Σύγκρισης... 487 Prj02.4 Οι Τελεστές +, -, *, ^... 488

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

Κλάσεις και αντικείμενα #include <iostream.h<

Κλάσεις και αντικείμενα #include <iostream.h< Κλάσεις και αντικείμενα #include class Person private: char name[30]; int age; public: void readdata() cout > name; cout > age; void

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

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

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

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

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

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

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

ΥΠΟΛΟΓΙΣΤΕΣ ΙΙ Εντολές επανάληψης Εντολές επανάληψης while for do-while ΥΠΟΛΟΓΙΣΤΕΣ ΙΙ Παράδειγμα #1 Εντολή while

ΥΠΟΛΟΓΙΣΤΕΣ ΙΙ Εντολές επανάληψης Εντολές επανάληψης while for do-while ΥΠΟΛΟΓΙΣΤΕΣ ΙΙ Παράδειγμα #1 Εντολή while ΥΠΟΛΟΓΙΣΤΕΣ ΙΙ Εντολές επανάληψης Εντολές επανάληψης Στη C++ υπάρχουν 3 διαφορετικές εντολές επανάληψης: while for do-while 1 2 ΥΠΟΛΟΓΙΣΤΕΣ ΙΙ Εντολή while Παράδειγμα #1 Κατασκευάστε πρόγραμμα που για

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

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

ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΗΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ Ανοικτά Ακαδημαϊκά Μαθήματα στο ΤΕΙ Ιονίων Νήσων ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΗΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ Ενότητα 7: Υπερφόρτωση διμελών τελεστών Το περιεχόμενο του μαθήματος διατίθεται με άδεια Creative Commons εκτός και αν

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

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

Εισαγωγή στον Προγραμματισμό Εισαγωγή στον Προγραμματισμό Αριθμητική Δημήτρης Μιχαήλ Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο Ακ. Έτος 2012-2013 Δεύτερο Πρόγραμμα 1 / * Second Simple Program : add 2 numbers * / 2

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

ΥΠΟΛΟΓΙΣΤΕΣ ΙΙ. Τύποι δεδομένων ΤΥΠΟΙ ΔΕΔΟΜΕΝΩΝ ΠΡΑΞΕΙΣ ΜΕΤΑΒΛΗΤΕΣ. Ακέραιοι αριθμοί (int) Πράξεις μεταξύ ακεραίων αριθμών

ΥΠΟΛΟΓΙΣΤΕΣ ΙΙ. Τύποι δεδομένων ΤΥΠΟΙ ΔΕΔΟΜΕΝΩΝ ΠΡΑΞΕΙΣ ΜΕΤΑΒΛΗΤΕΣ. Ακέραιοι αριθμοί (int) Πράξεις μεταξύ ακεραίων αριθμών ΥΠΟΛΟΓΙΣΤΕΣ ΙΙ ΤΥΠΟΙ ΔΕΔΟΜΕΝΩΝ ΠΡΑΞΕΙΣ ΜΕΤΑΒΛΗΤΕΣ 1 Τύποι δεδομένων Η γλώσσα προγραμματισμού C++ υποστηρίζει τους παρακάτω τύπους δεδομένων: 1) Ακέραιοι αριθμοί (int). 2) Πραγματικοί αριθμοί διπλής ακρίβειας

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

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

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

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

Γ7.1 Επανάληψη ύλης Β Λυκείου. Γ Λυκείου Κατεύθυνσης

Γ7.1 Επανάληψη ύλης Β Λυκείου. Γ Λυκείου Κατεύθυνσης Γ7.1 Επανάληψη ύλης Β Λυκείου Γ Λυκείου Κατεύθυνσης Απλά προγράμματα Ένα πρόγραμμα στη C++ που υπολογίζει το άθροισμα 2 ακέραιων αριθμών. // simple program #include using namespace std; int main(){

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

ΥΠΟΛΟΓΙΣΤΕΣ ΙΙ. Τι περιλαμβάνει μια μεταβλητή; ΔΕΙΚΤΕΣ. Διεύθυνση μεταβλητής. Δείκτης

ΥΠΟΛΟΓΙΣΤΕΣ ΙΙ. Τι περιλαμβάνει μια μεταβλητή; ΔΕΙΚΤΕΣ. Διεύθυνση μεταβλητής. Δείκτης ΥΠΟΛΟΓΙΣΤΕΣ ΙΙ Τι περιλαμβάνει μια μεταβλητή; ΔΕΙΚΤΕΣ Πρώτα να δούμε τι ακριβώς συμπεριλαμβάνει μια μεταβλητή τύπος Καθορίζει το μέγεθος στην μνήμη σε Bytes τιμή Η αριθμητική τιμή που αποθηκεύεται στην

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

2.1. Εντολές. 2.2. Σχόλια. 2.3. Τύποι Δεδομένων

2.1. Εντολές. 2.2. Σχόλια. 2.3. Τύποι Δεδομένων 2 Βασικές Εντολές 2.1. Εντολές Οι στην Java ακολουθούν το πρότυπο της γλώσσας C. Έτσι, κάθε εντολή που γράφουμε στη Java θα πρέπει να τελειώνει με το ερωτηματικό (;). Όπως και η C έτσι και η Java επιτρέπει

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

ΥΠΟΛΟΓΙΣΤΕΣ ΙI. Άδειες Χρήσης. Συναρτήσεις I Διδάσκοντες: Αν. Καθ. Δ. Παπαγεωργίου, Αν. Καθ. Ε. Λοιδωρίκης

ΥΠΟΛΟΓΙΣΤΕΣ ΙI. Άδειες Χρήσης. Συναρτήσεις I Διδάσκοντες: Αν. Καθ. Δ. Παπαγεωργίου, Αν. Καθ. Ε. Λοιδωρίκης ΠΑΝΕΠΙΣΤΗΜΙΟ ΙΩΑΝΝΙΝΩΝ ΑΝΟΙΚΤΑ ΑΚΑΔΗΜΑΪΚΑ ΜΑΘΗΜΑΤΑ Άδειες Χρήσης ΥΠΟΛΟΓΙΣΤΕΣ ΙI Συναρτήσεις I Διδάσκοντες: Αν. Καθ. Δ. Παπαγεωργίου, Αν. Καθ. Ε. Λοιδωρίκης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες

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

Υπερφόρτωση τελεστών

Υπερφόρτωση τελεστών Υπερφόρτωση τελεστών 19 Νοεμβρίου 2012 1 Γενικά Στα προηγούμενα είδαμε ότι ορίζοντας μία κλάση, ορίζουμε ένα νέο τύπο τον οποίο μπορούμε να χρησιμοποιήσουμε για να δηλώσουμε αντικείμενα αυτής της νέας

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

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

Σημειώσεις του εργαστηριακού μαθήματος Πληροφορική ΙΙ. Εισαγωγή στην γλώσσα προγραμματισμού Σημειώσεις του εργαστηριακού μαθήματος Πληροφορική ΙΙ Εισαγωγή στην γλώσσα προγραμματισμού Ακαδημαϊκό έτος 2016-2017, Εαρινό εξάμηνο Οι σημειώσεις βασίζονται στα συγγράμματα: A byte of Python (ελληνική

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

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

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

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

Στη C++ υπάρχουν τρεις τύποι βρόχων: (a) while, (b) do while, και (c) for. Ακολουθεί η σύνταξη για κάθε μια:

Στη C++ υπάρχουν τρεις τύποι βρόχων: (a) while, (b) do while, και (c) for. Ακολουθεί η σύνταξη για κάθε μια: Εργαστήριο 6: 6.1 Δομές Επανάληψης Βρόγχοι (Loops) Όταν θέλουμε να επαναληφθεί μια ομάδα εντολών τη βάζουμε μέσα σε ένα βρόχο επανάληψης. Το αν θα (ξανα)επαναληφθεί η εκτέλεση της ομάδας εντολών καθορίζεται

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

ΥΠΟΛΟΓΙΣΤΕΣ ΙI. Άδειες Χρήσης. Τύποι δεδομένων, μεταβλητές, πράξεις. Διδάσκοντες: Αν. Καθ. Δ. Παπαγεωργίου, Αν. Καθ. Ε. Λοιδωρίκης

ΥΠΟΛΟΓΙΣΤΕΣ ΙI. Άδειες Χρήσης. Τύποι δεδομένων, μεταβλητές, πράξεις. Διδάσκοντες: Αν. Καθ. Δ. Παπαγεωργίου, Αν. Καθ. Ε. Λοιδωρίκης ΠΑΝΕΠΙΣΤΗΜΙΟ ΙΩΑΝΝΙΝΩΝ ΑΝΟΙΚΤΑ ΑΚΑΔΗΜΑΪΚΑ ΜΑΘΗΜΑΤΑ Άδειες Χρήσης ΥΠΟΛΟΓΙΣΤΕΣ ΙI Τύποι δεδομένων, μεταβλητές, πράξεις Διδάσκοντες: Αν. Καθ. Δ. Παπαγεωργίου, Αν. Καθ. Ε. Λοιδωρίκης Το παρόν εκπαιδευτικό

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

Η εντολή if-else. Η απλή μορφή της εντολής if είναι η ακόλουθη: if (συνθήκη) { Η γενική μορφή της εντολής ifelse. εντολή_1; εντολή_2;..

Η εντολή if-else. Η απλή μορφή της εντολής if είναι η ακόλουθη: if (συνθήκη) { Η γενική μορφή της εντολής ifelse. εντολή_1; εντολή_2;.. Επιλογή - Επανάληψη Η εντολή if-else Ο τελεστής παράστασης συνθήκης H εντολή switch Η εντολές for και while Η εντολή do-while Η εντολές break - continue - goto Μαθηματικές συναρτήσεις Λέξεις κλειδιά στη

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

ΥΠΟΛΟΓΙΣΤΕΣ ΙI. Άδειες Χρήσης. Εντολή if. Διδάσκοντες: Αν. Καθ. Δ. Παπαγεωργίου, Αν. Καθ. Ε. Λοιδωρίκης

ΥΠΟΛΟΓΙΣΤΕΣ ΙI. Άδειες Χρήσης. Εντολή if. Διδάσκοντες: Αν. Καθ. Δ. Παπαγεωργίου, Αν. Καθ. Ε. Λοιδωρίκης ΠΝΕΠΙΣΤΗΜΙΟ ΙΩΝΝΙΝΩΝ ΝΟΙΚΤ ΚΔΗΜΪΚ ΜΘΗΜΤ Άδειες Χρήσης ΥΠΟΛΟΓΙΣΤΕΣ ΙI Εντολή if Διδάσκοντες: ν. Καθ. Δ. Παπαγεωργίου, ν. Καθ. Ε. Λοιδωρίκης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative

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

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

ΕΙΣΑΓΩΓΗ ΣΤΟ ΔΟΜΗΜΕΝΟ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟ ΕΙΣΑΓΩΓΗ ΣΤΟ ΔΟΜΗΜΕΝΟ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟ Τρίτη Διάλεξη Εντολές Επιλογής και Επανάληψης Εντολές επιλογής Εντολή if Η πιο απλή μορφή της if συντάσσεται ως εξής: if ( συνθήκη ) Οι εντολές μέσα στα άγκιστρα αποτελούν

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

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

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

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

Εισαγωγή στον Προγραµµατισµό. Διάλεξη 2 η : Βασικές Έννοιες της γλώσσας προγραµµατισµού C Χειµερινό Εξάµηνο 2011

Εισαγωγή στον Προγραµµατισµό. Διάλεξη 2 η : Βασικές Έννοιες της γλώσσας προγραµµατισµού C Χειµερινό Εξάµηνο 2011 Εισαγωγή στον Προγραµµατισµό Διάλεξη 2 η : Βασικές Έννοιες της γλώσσας προγραµµατισµού C Χειµερινό Εξάµηνο 2011 Hello World /* Αρχείο hello.c * Εµφανίζει στην οθόνη το * µήνυµα hello world */ #include

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

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

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

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

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

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

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

Α' Εξάμηνο ΕΙΣΑΓΩΓΗ ΣΤΟ ΔΟΜΗΜΕΝΟ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟ

Α' Εξάμηνο ΕΙΣΑΓΩΓΗ ΣΤΟ ΔΟΜΗΜΕΝΟ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟ Α' Εξάμηνο ΕΙΣΑΓΩΓΗ ΣΤΟ ΔΟΜΗΜΕΝΟ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟ Εργαστήριο 9η εβδομάδα. Κοζάνη, 2 Δεκεμβρίου 2008. Δίνονται παραδείγματα που αποσαφηνίζουν και συμπληρώνουν όσα αναφέρθηκαν στο μάθημα σχετικά με τις δομές

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

ΥΠΟΛΟΓΙΣΤΕΣ ΙI. Άδειες Χρήσης. Εντολές for, while, do-while Διδάσκοντες: Αν. Καθ. Δ. Παπαγεωργίου, Αν. Καθ. Ε. Λοιδωρίκης

ΥΠΟΛΟΓΙΣΤΕΣ ΙI. Άδειες Χρήσης. Εντολές for, while, do-while Διδάσκοντες: Αν. Καθ. Δ. Παπαγεωργίου, Αν. Καθ. Ε. Λοιδωρίκης ΠΑΝΕΠΙΣΤΗΜΙΟ ΙΩΑΝΝΙΝΩΝ ΑΝΟΙΚΤΑ ΑΚΑΔΗΜΑΪΚΑ ΜΑΘΗΜΑΤΑ Άδειες Χρήσης ΥΠΟΛΟΓΙΣΤΕΣ ΙI Εντολές for, while, do-while Διδάσκοντες: Αν. Καθ. Δ. Παπαγεωργίου, Αν. Καθ. Ε. Λοιδωρίκης Το παρόν εκπαιδευτικό υλικό υπόκειται

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

Ασκήσεις σε Επαναληπτικούς Βρόχους και Συναρτήσεις. Επανάληψη για την ενδιάμεση εξέταση. (Διάλεξη 13)

Ασκήσεις σε Επαναληπτικούς Βρόχους και Συναρτήσεις. Επανάληψη για την ενδιάμεση εξέταση. (Διάλεξη 13) Ασκήσεις σε Επαναληπτικούς Βρόχους και Συναρτήσεις Επανάληψη για την ενδιάμεση εξέταση (Διάλεξη 13) 13-1 Πρόβλημα 1 Γράψετε τον ορισμό μίας συνάρτησης η οποία υπολογίζει το μέγιστο 2 ακεραίων αριθμών και

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

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

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

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

3 ο Εργαστήριο Μεταβλητές, Τελεστές

3 ο Εργαστήριο Μεταβλητές, Τελεστές 3 ο Εργαστήριο Μεταβλητές, Τελεστές Μια μεταβλητή έχει ένα όνομα και ουσιαστικά είναι ένας δείκτης σε μια συγκεκριμένη θέση στη μνήμη του υπολογιστή. Στη θέση μνήμης στην οποία δείχνει μια μεταβλητή αποθηκεύονται

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

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

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

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

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

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

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

ΠΛΗΡΟΦΟΡΙΚΗ ΙΙ (JAVA) 11/3/2008

ΠΛΗΡΟΦΟΡΙΚΗ ΙΙ (JAVA) 11/3/2008 ΠΛΗΡΟΦΟΡΙΚΗ ΙΙ (JAVA) 11/3/2008 Κατασκευαστές (Constructors) Ειδικός τύπος μεθόδων, οι οποίες: - είναι public και έχουν το ίδιο όνομα με αυτό της κλάσης - χρησιμοποιούνται για να αρχικοποιήσουν κάποιες

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

ΠΑΝΕΠΙΣΤΗΜΙΟ AΙΓΑIΟΥ & ΑΕΙ ΠΕΙΡΑΙΑ Τ.Τ. Τμήματα Ναυτιλίας και Επιχειρηματικών Υπηρεσιών & Μηχ. Αυτοματισμού ΤΕ. Εισαγωγή στη Python

ΠΑΝΕΠΙΣΤΗΜΙΟ AΙΓΑIΟΥ & ΑΕΙ ΠΕΙΡΑΙΑ Τ.Τ. Τμήματα Ναυτιλίας και Επιχειρηματικών Υπηρεσιών & Μηχ. Αυτοματισμού ΤΕ. Εισαγωγή στη Python ΠΑΝΕΠΙΣΤΗΜΙΟ AΙΓΑIΟΥ & ΑΕΙ ΠΕΙΡΑΙΑ Τ.Τ. Τμήματα Ναυτιλίας και Επιχειρηματικών Υπηρεσιών & Μηχ. Αυτοματισμού ΤΕ ΠΛΗΡΟΦΟΡΙΚΗ ΤΕΧΝΟΛΟΓΙΑ ΚΑΙ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ Η/Υ Εισαγωγή στη Python Νικόλαος Ζ. Ζάχαρης Αναπληρωτής

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

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

ΗΥ-150. Προγραμματισμός ΗΥ-150 Εντολές Ελέγχου Ροής Σειριακή εκτέλεση εντολών Όλα τα προγράμματα «γράφονται» χρησιμοποιώντας 3 είδη εντολών: Σειριακές εντολές (sequential built in C) Εντολές απόφασης (if, if/else, switch) Περιλαμβάνει

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

ΥΠΟΠΡΟΓΡΑΜΜΑΤΑ. Κάθε υποπρόγραμμα έχει μόνο μία είσοδο και μία έξοδο. Κάθε υποπρόγραμμα πρέπει να είναι ανεξάρτητο από τα άλλα.

ΥΠΟΠΡΟΓΡΑΜΜΑΤΑ. Κάθε υποπρόγραμμα έχει μόνο μία είσοδο και μία έξοδο. Κάθε υποπρόγραμμα πρέπει να είναι ανεξάρτητο από τα άλλα. ΥΠΟΠΡΟΓΡΑΜΜΑΤΑ Τμηματικός προγραμματισμός ονομάζεται η τεχνική σχεδίασης και ανάπτυξης των προγραμμάτων ως ένα σύνολο από απλούστερα τμήματα προγραμμάτων. Όταν ένα τμήμα προγράμματος επιτελεί ένα αυτόνομο

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

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

ΗΥ-150. Προγραμματισμός ΗΥ-150 Εντολές Ελέγχου Ροής Σειριακή εκτέλεση εντολών Όλα τα προγράμματα «γράφονται» χρησιμοποιώντας 3 είδη εντολών: Σειριακές εντολές (sequential built in C) Εντολές απόφασης (if, if/else, switch) Περιλαμβάνει

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

Δομές Δεδομένων και Αλγόριθμοι

Δομές Δεδομένων και Αλγόριθμοι Δομές Δεδομένων και Αλγόριθμοι Χρήστος Γκόγκος ΤΕΙ Ηπείρου Χειμερινό Εξάμηνο 2014-2015 Παρουσίαση 14 Στοίβες 1 / 14 Στοίβες Η στοίβα είναι μια ειδική περίπτωση γραμμικής λίστας στην οποία οι εισαγωγές

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

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

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

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

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

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

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

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

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

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

Η-Υ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ. Εργαστήριο 2 Εντολές Εισόδου/Εξόδου Τελεστές. Δρ. Γιώργος Λαμπρινίδης 23/10/2015 Η - Υ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ 1

Η-Υ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ. Εργαστήριο 2 Εντολές Εισόδου/Εξόδου Τελεστές. Δρ. Γιώργος Λαμπρινίδης 23/10/2015 Η - Υ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ 1 Η-Υ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ Εργαστήριο 2 Εντολές Εισόδου/Εξόδου Τελεστές Δρ. Γιώργος Λαμπρινίδης amprinidis@pharm.uoa.gr 1 Αριθμητικοί Τελεστές + πρόσθεση - αφαίρεση * πολλαπλασιασμός / διαίρεση Προσοχή! Διαίρεση

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

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

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

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

Προγραμματισμός ΙI (Θ)

Προγραμματισμός ΙI (Θ) Τεχνολογικό Εκπαιδευτικό Ίδρυμα Κεντρικής Μακεδονίας - Σέρρες Τμήμα Μηχανικών Πληροφορικής Προγραμματισμός ΙI (Θ) Δρ. Δημήτρης Βαρσάμης Επίκουρος Καθηγητής Μάρτιος 2017 Δρ. Δημήτρης Βαρσάμης Μάρτιος 2017

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

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

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

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

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

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

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

Αντικειμενοστραφείς Γλώσσες Προγραμματισμού C++ / ROOT

Αντικειμενοστραφείς Γλώσσες Προγραμματισμού C++ / ROOT = Αντικειμενοστραφείς Γλώσσες Προγραμματισμού Ιωάννης Παπαδόπουλος Τμήμα Φυσικής, Πανεπιστήμιο Ιωαννίνων Δεκέμβριος 2018 1/18 = 2/18 = 1 αντικειμένων Μέθοδοι αντιγράφου (copy constructor) Κατασκευή μέσω

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

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

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

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

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

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

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

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

Προγραμματισμός Ι. Εγγραφές. Δημήτρης Μιχαήλ. Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο Προγραμματισμός Ι Εγγραφές Δημήτρης Μιχαήλ Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο Η Ανάγκη Ομαδοποίησης Πολλές φορές έχουμε πληροφορίες διαφορετικού τύπου οι οποίες όμως έχουν μεγάλη

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

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

Ανάπτυξη και Σχεδίαση Λογισμικού Ανάπτυξη και Σχεδίαση Λογισμικού Η γλώσσα προγραμματισμού C Γεώργιος Δημητρίου Εκφράσεις και Λίγες Εντολές Οι εκφράσεις της C Τελεστές Απλές και σύνθετες εντολές Εντολές ελέγχου (επιλογής) Εισαγωγή σε

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

Εισαγωγή στη γλώσσα προγραμματισμού C++

Εισαγωγή στη γλώσσα προγραμματισμού C++ Εισαγωγή στη γλώσσα προγραμματισμού C++ Περιβάλλον Εργασίας 2 Περιβάλλον Εργασίας 1. Χρήση απλού κειμενογράφου και Μεταγλωττιστή 2. Ολοκληρωμένα Περιβάλλοντα Εργασίας (Integrated Development Environments)

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

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

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

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

Συναρτήσεις. Εισαγωγή

Συναρτήσεις. Εισαγωγή Συναρτήσεις Εισαγωγή Η χρήση συναρτήσεων στα προγράμματα της γλώσσας C είναι πολύ σημαντική καθώς μας επιτρέπει τη διάσπαση ενός προβλήματος σε μικρότερα υποπροβλήματα τα οποία μπορούμε να επιλύσουμε πιο

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

5 &6. Τύποι δεδομένων, τελεστές και

5 &6. Τύποι δεδομένων, τελεστές και Προγραμματισμός Μεθόδων Επίλυσης Προβλημάτων 5 &6. Τύποι δεδομένων, τελεστές και αριθμητικές εκφράσεις Ιωάννης Κατάκης Σήμερα o Τύποι δεδομένων int, char, float, double o Τελεστές = + - * / % o Αριθμητικές

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

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

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

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

Αναδρομικοί Αλγόριθμοι

Αναδρομικοί Αλγόριθμοι Αναδρομικός αλγόριθμος (recursive algorithm) Επιλύει ένα πρόβλημα λύνοντας ένα ή περισσότερα στιγμιότυπα του ίδιου προβλήματος. Αναδρομικός αλγόριθμος (recursive algorithm) Επιλύει ένα πρόβλημα λύνοντας

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

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

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

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

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

Συναρτήσεις και Πίνακες Συναρτήσεις και Πίνακες Συναρτήσεις καθιερωμένης βιβλιοθήκης της C++ Συναρτήσεις οριζόμενες από τον χρήστη Μεταβίβαση κατ αξία Συναρτήσεις void και λογικές συναρτήσεις Μεταβίβαση κατ αναφορά Επιστροφή

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

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

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

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

ΣΥΝΑΡΤΗΣΕΙΣ Παραδείγματα χρήσης συναρτήσεων

ΣΥΝΑΡΤΗΣΕΙΣ Παραδείγματα χρήσης συναρτήσεων ΣΥΝΑΡΤΗΣΕΙΣ Παραδείγματα χρήσης συναρτήσεων ΠΟΛΛΕΣ ΕΝΤΟΛΕΣ ΕΠΙΣΤΡΟΦΗΣ Να γραφτεί ένα πρόγραμμα που να διπλασιάζει ένα ποσό που του δίνει ο χρήστης μεταξύ 0 και 1000. Να ελέγχει εάν το ποσό που εισήχθη

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

Pascal. 15 Νοεμβρίου 2011

Pascal. 15 Νοεμβρίου 2011 Pascal 15 Νοεμβρίου 011 1 Procedures σε Pascal Στην Pascal μπορούμε να ορίσουμε διαδικασίες (procedures). Αυτές είναι ομάδες εντολών οι οποίες έχουν ένα όνομα. Γράφοντας το όνομα μιας διαδικασίας μπορούμε

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

Β7.1.4 Δομές Επανάληψης. Β Λυκείου Κατεύθυνσης

Β7.1.4 Δομές Επανάληψης. Β Λυκείου Κατεύθυνσης Β7.1.4 Δομές Επανάληψης Β Λυκείου Κατεύθυνσης Εισαγωγή Δομές επανάληψης ή βρόχοι (loops) ονομάζονται μέρη του κώδικα που εκτελούνται περισσότερες από μία φορές, ανάλογα με τη συνθήκη που έχουμε δηλώσει.

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

Δυναμικές Ιστοσελίδες Εισαγωγή στην Javascript για προγραμματισμό στην πλευρά του client

Δυναμικές Ιστοσελίδες Εισαγωγή στην Javascript για προγραμματισμό στην πλευρά του client ΕΣΔ 516 Τεχνολογίες Διαδικτύου Δυναμικές Ιστοσελίδες Εισαγωγή στην Javascript για προγραμματισμό στην πλευρά του client Περιεχόμενα Περιεχόμενα Javascript και HTML Βασική σύνταξη Μεταβλητές Τελεστές Συναρτήσεις

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

ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΜΑΘΗΜΑ 3 Ο. Σταθερές-Παράμετροι-Μεταβλητές Αριθμητικοί & Λογικοί Τελεστές Δομή ελέγχου-επιλογής Σύνθετοι έλεγχοι

ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΜΑΘΗΜΑ 3 Ο. Σταθερές-Παράμετροι-Μεταβλητές Αριθμητικοί & Λογικοί Τελεστές Δομή ελέγχου-επιλογής Σύνθετοι έλεγχοι ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΜΑΘΗΜΑ 3 Ο Σταθερές-Παράμετροι-Μεταβλητές Αριθμητικοί & Λογικοί Τελεστές Δομή ελέγχου-επιλογής Σύνθετοι έλεγχοι ΣΙΝΑΤΚΑΣ Ι. ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ 2010-11 1 Μεταβλητές-Σταθερές-Παράμετροι Τα στοιχεία

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

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

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

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

Διάλεξη 3: Προγραμματισμός σε JAVA I. Διδάσκων: Παναγιώτης Ανδρέου

Διάλεξη 3: Προγραμματισμός σε JAVA I. Διδάσκων: Παναγιώτης Ανδρέου Διάλεξη 3: Προγραμματισμός σε JAVA I Στην ενότητα αυτή θα μελετηθούν τα εξής επιμέρους θέματα: Εισαγωγή στις έννοιες: - Στοιχειώδης Προγραμματισμός - Προγραμματισμός με Συνθήκες - Προγραμματισμός με Βρόγχους

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

Τελεστές ΤΕΛΕΣΤΕΣ. Γεώργιος Παπαϊωάννου ( )

Τελεστές ΤΕΛΕΣΤΕΣ. Γεώργιος Παπαϊωάννου ( ) ΤΕΛΕΣΤΕΣ Γεώργιος Παπαϊωάννου (2013-14) gepap@aueb.gr Περιγραφή: Τι είναι οι τελεστές Χρήση τελεστών Υπερφόρτωση τελεστών Chain-linking Τελεστών Τελευταία ενημέρωση: Ιούνιος 2013 Εισαγωγή - 2 Τελεστής

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

ΥΠΟΛΟΓΙΣΤΕΣ Ι. Τι είναι μια συνάρτηση; ΣΥΝΑΡΤΗΣΕΙΣ. Δήλωση συνάρτησης sq. Παράδειγμα συνάρτησης: υπολογισμός τετραγώνου

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

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

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

ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΗΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ Ανοικτά Ακαδημαϊκά Μαθήματα στο ΤΕΙ Ιονίων Νήσων ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΗΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ Ενότητα 6: Κατανομή και Δυναμική Διαχείριση Μνήμης, τελεστές new και delete, υπερφόρτωση μονομελών τελεστών Το περιεχόμενο

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

Εισαγωγή στην Αριθμητική Ανάλυση

Εισαγωγή στην Αριθμητική Ανάλυση Εισαγωγή στην Αριθμητική Ανάλυση Εισαγωγή στη MATLAB ΔΙΔΑΣΚΩΝ: ΓΕΩΡΓΙΟΣ ΑΚΡΙΒΗΣ ΒΟΗΘΟΙ: ΔΗΜΗΤΡΙΑΔΗΣ ΣΩΚΡΑΤΗΣ, ΣΚΟΡΔΑ ΕΛΕΝΗ E-MAIL: SDIMITRIADIS@CS.UOI.GR, ESKORDA@CS.UOI.GR Τι είναι Matlab Είναι ένα περιβάλλον

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

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

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

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

3 Αλληλεπίδραση Αντικειμένων

3 Αλληλεπίδραση Αντικειμένων Αφαίρεση και Αρθρωσιμότητα 3 Αλληλεπίδραση Αντικειμένων Πώς συνεργάζονται τα αντικείμενα που δημιουργούμε Αφαίρεση (abstraction) είναι η δυνατότητα να αγνοούμε τις λεπτομέρειες και να εστιάζουμε την προσοχή

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

Σχολικό Βιβλίο - Κεφάλαιο 7 ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΜΕ PASCAL ΠΑΡΟΥΣΙΑΣΗ 13

Σχολικό Βιβλίο - Κεφάλαιο 7 ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΜΕ PASCAL ΠΑΡΟΥΣΙΑΣΗ 13 Σχολικό Βιβλίο - Κεφάλαιο 7 ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΜΕ PASCAL ΠΑΡΟΥΣΙΑΣΗ 13 ΙΣΤΟΡΙΚΑ Παρουσιάστηκε το 1970 από το Niklaus Wirth Προγενέστερη γλώσσα ήταν η Algol 60 Είναι δομημένη γλώσσα προγραμματισμού υψηλού

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

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

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

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

Κεφάλαιο 2.5: Τύποι εδοµένων, Τελεστές και Αριθµητικές Εκφράσεις. ( ιαλέξεις 5-6) ιδάσκων: ηµήτρης Ζεϊναλιπούρ

Κεφάλαιο 2.5: Τύποι εδοµένων, Τελεστές και Αριθµητικές Εκφράσεις. ( ιαλέξεις 5-6) ιδάσκων: ηµήτρης Ζεϊναλιπούρ Κεφάλαιο 2.5: Τύποι εδοµένων, Τελεστές και Αριθµητικές Εκφράσεις ( ιαλέξεις 5-6) ιδάσκων: ηµήτρης Ζεϊναλιπούρ 1 Περιεχόµενα Τύποι εδοµένων int, char, float, double Τελεστές =,+,-,*,/,% Αριθµητικές εκφράσεις

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

Παρακάτω δίνεται o σκελετός προγράμματος σε γλώσσα C. Σχολιάστε κάθε γραμμή του κώδικα.

Παρακάτω δίνεται o σκελετός προγράμματος σε γλώσσα C. Σχολιάστε κάθε γραμμή του κώδικα. Ερωτήσεις προόδου C Παρακάτω δίνεται o σκελετός προγράμματος σε γλώσσα C. Σχολιάστε κάθε γραμμή του κώδικα. #include // δίνει οδηγία στον compiler να // συμπεριλάβει την βιβλιοθήκη stdio int

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

Δομές Επανάληψης. Εισαγωγή στη C++

Δομές Επανάληψης. Εισαγωγή στη C++ Δομές Επανάληψης Εισαγωγή στη C++ Επαναληπτικές δηλώσεις Οι βρόγχοι (loops) αναγκάζουν ένα τμήμα κώδικα να επαναλαμβάνεται. Η επανάληψη συνεχίζεται για όσο μία λογική συνθήκη είναι αληθής. Όταν η συνθήκη

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

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

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

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

3ο σετ σημειώσεων - Πίνακες, συμβολοσειρές, συναρτήσεις

3ο σετ σημειώσεων - Πίνακες, συμβολοσειρές, συναρτήσεις 3ο σετ σημειώσεων - Πίνακες, συμβολοσειρές, συναρτήσεις 5 Απριλίου 01 1 Πίνακες Είδαμε ότι δηλώνοντας μία μεταβλητή κάποιου συγκεκριμένου τύπου δεσμεύουμε μνήμη κατάλληλη για να αποθηκευτεί μία οντότητα

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

Στην ενότητα αυτή θα µελετηθούν τα εξής επιµέρους θέµατα: ΕΠΛ 131 Αρχές Προγραµµατισµού I 3-2

Στην ενότητα αυτή θα µελετηθούν τα εξής επιµέρους θέµατα: ΕΠΛ 131 Αρχές Προγραµµατισµού I 3-2 Εισαγωγή στην C Στην ενότητα αυτή θα µελετηθούν τα εξής επιµέρους θέµατα: Σύνταξη και Σηµασιολογία της C Σχολιασµός Μεταβλητές / Σταθερές Τύποι εδοµένων και Τελεστές Βιβλίο µαθήµατος: Chapter 2,, Sec.

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

Εργαστηριακή Άσκηση 1

Εργαστηριακή Άσκηση 1 Εργαστηριακή Άσκηση 1 Επανάληψη προγραμματισμού Βασικοί Αλγόριθμοι Είσοδος τιμών από το πληκτρολόγιο Σε όλα τα προγράμματα που θα γράψουμε στην συνέχεια του εξαμήνου θα χρειαστεί να εισάγουμε τιμές σε

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

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

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Κλάσεις και Αντικείμενα Μέθοδοι ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ Κλάσεις και Αντικείμενα Μέθοδοι Παράδειγμα 1 Θέλουμε ένα πρόγραμμα που να προσομοιώνει την κίνηση ενός αυτοκινήτου, το οποίο κινείται και τυπώνει τη θέση του.

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

Οντοκεντρικός Προγραμματισμός

Οντοκεντρικός Προγραμματισμός Οντοκεντρικός Προγραμματισμός Ενότητα 5: H ΓΛΩΣΣΑ C++ Δομές Ελέγχου ΔΙΔΑΣΚΟΝΤΕΣ: Ιωάννης Χατζηλυγερούδης, Χρήστος Μακρής Πολυτεχνική Σχολή Τμήμα Μηχανικών Η/Υ & Πληροφορικής Δομές Ελέγχου Εισαγωγή Πριν

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

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

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

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

Η πρώτη παράμετρος είναι ένα αλφαριθμητικό μορφοποίησης

Η πρώτη παράμετρος είναι ένα αλφαριθμητικό μορφοποίησης Η συνάρτηση printf() Η συνάρτηση printf() χρησιμοποιείται για την εμφάνιση δεδομένων στο αρχείο εξόδου stdout (standard output stream), το οποίο εξ ορισμού συνδέεται με την οθόνη Η συνάρτηση printf() δέχεται

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

Εργαστήρια Αριθμητικής Ανάλυσης Ι. 4 ο Εργαστήριο. Διανύσματα-Πίνακες 1 ο Μέρος

Εργαστήρια Αριθμητικής Ανάλυσης Ι. 4 ο Εργαστήριο. Διανύσματα-Πίνακες 1 ο Μέρος Εργαστήρια Αριθμητικής Ανάλυσης Ι 4 ο Εργαστήριο Διανύσματα-Πίνακες 1 ο Μέρος 2017 Εισαγωγή Όπως έχουμε προαναφέρει σε προηγούμενα εργαστήρια. Ο βασικός τύπος δεδομένων στο Matlab είναι οι πίνακες. Ένα

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

ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΜΑΘΗΜΑ 7 Ο. Αριθμητικές πράξεις Τυχαίοι αριθμοί Εφαρμογές σε προβλήματα ΣΙΝΑΤΚΑΣ Ι. ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ 2010-11 1

ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΜΑΘΗΜΑ 7 Ο. Αριθμητικές πράξεις Τυχαίοι αριθμοί Εφαρμογές σε προβλήματα ΣΙΝΑΤΚΑΣ Ι. ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ 2010-11 1 ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΜΑΘΗΜΑ 7 Ο Αριθμητικές πράξεις Τυχαίοι αριθμοί Εφαρμογές σε προβλήματα ΣΙΝΑΤΚΑΣ Ι. ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ 2010-11 1 Εισαγωγή Οι αριθμητικές πράξεις που εκτελούνται στον υπολογιστή αποτελούν το

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

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

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

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

Συστήματα συντεταγμένων

Συστήματα συντεταγμένων Συστήματα συντεταγμένων Χρησιμοποιούνται για την περιγραφή της θέσης ενός σημείου στον χώρο. Κοινά συστήματα συντεταγμένων: Καρτεσιανό (x, y, z) Πολικό (r, θ) Καρτεσιανό σύστημα συντεταγμένων Οι άξονες

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

ΑΣΚΗΣΗ 6: ΔΕΙΚΤΕΣ. Σκοπός της Άσκησης. 1. Εισαγωγικά στοιχεία για τους Δείκτες

ΑΣΚΗΣΗ 6: ΔΕΙΚΤΕΣ. Σκοπός της Άσκησης. 1. Εισαγωγικά στοιχεία για τους Δείκτες Σκοπός της Άσκησης ΑΣΚΗΣΗ 6: ΔΕΙΚΤΕΣ Ο σκοπός αυτής της εργαστηριακής άσκησης είναι η εξοικείωση με τη χρήση των δεικτών (pointers). Οι δείκτες δίνουν την δυνατότητα σε προγράμματα να προσομοιώνουν τη

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

Διάλεξη 16: Σωροί. Στην ενότητα αυτή θα μελετηθούν τα εξής επιμέρους θέματα: - Ουρές Προτεραιότητας - Ο ΑΤΔ Σωρός, Υλοποίηση και πράξεις

Διάλεξη 16: Σωροί. Στην ενότητα αυτή θα μελετηθούν τα εξής επιμέρους θέματα: - Ουρές Προτεραιότητας - Ο ΑΤΔ Σωρός, Υλοποίηση και πράξεις ΕΠΛ231 Δομές Δεδομένων και Αλγόριθμοι 1 Διάλεξη 16: Σωροί Στην ενότητα αυτή θα μελετηθούν τα εξής επιμέρους θέματα: - Ουρές Προτεραιότητας - Ο ΑΤΔ Σωρός, Υλοποίηση και πράξεις Ουρά Προτεραιότητας Η δομή

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

Οντοκεντρικός Προγραμματισμός

Οντοκεντρικός Προγραμματισμός Οντοκεντρικός Προγραμματισμός Ενότητα 7: C++ TEMPLATES, ΥΠΕΡΦΟΡΤΩΣΗ ΤΕΛΕΣΤΩΝ, ΕΞΑΙΡΕΣΕΙΣ Υπερφόρτωση Τελεστών ΔΙΔΑΣΚΟΝΤΕΣ: Ιωάννης Χατζηλυγερούδης, Χρήστος Μακρής Πολυτεχνική Σχολή Τμήμα Μηχανικών Η/Υ

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