![Page 1: Εισαγωγή στη - users.auth.grusers.auth.gr/users/6/7/006676/public_html/docs/CPP_programming.pdfΑρχές προγραµµατισµού Ειδικά Θέµατα Τηλεπικοινωνιών-](https://reader031.vdocuments.pub/reader031/viewer/2022011810/5e08df27a0e394521466227b/html5/thumbnails/1.jpg)
Εισαγωγή στη Εισαγωγή στη C++C++
Ειδικά Θέµατα ΤηλεπικοινωνιώνΠρόγραµµα Μεταπτυχιακών Σπουδών Ραδιοηλεκτρολογίας
![Page 2: Εισαγωγή στη - users.auth.grusers.auth.gr/users/6/7/006676/public_html/docs/CPP_programming.pdfΑρχές προγραµµατισµού Ειδικά Θέµατα Τηλεπικοινωνιών-](https://reader031.vdocuments.pub/reader031/viewer/2022011810/5e08df27a0e394521466227b/html5/thumbnails/2.jpg)
•∆οµηµένος προγραµµατισµός(structured programming)
•Αντικειµενοστρεφής προγραµµατισµός(object oriented programming)
Αρχές προγραµµατισµού
Ειδικά Θέµατα Τηλεπικοινωνιών - Εισαγωγή στη C++Πρόγραµµα Μεταπτυχιακών Σπουδών Ραδιοηλεκτρολογίας
![Page 3: Εισαγωγή στη - users.auth.grusers.auth.gr/users/6/7/006676/public_html/docs/CPP_programming.pdfΑρχές προγραµµατισµού Ειδικά Θέµατα Τηλεπικοινωνιών-](https://reader031.vdocuments.pub/reader031/viewer/2022011810/5e08df27a0e394521466227b/html5/thumbnails/3.jpg)
Αρχές προγραµµατισµού
Ειδικά Θέµατα Τηλεπικοινωνιών - Εισαγωγή στη C++Πρόγραµµα Μεταπτυχιακών Σπουδών Ραδιοηλεκτρολογίας
∆ιαδικαστικές (procedural) γλώσσες προγραµµατισµούΠρόγραµµα; Λίστα εντολών (instructions)Μεγάλα προγράµµατα; Υποπρογράµµατα:
συναρτήσεις (functions)υπορουτίνες (subroutines)διαδικασίες (procedures)
Οµαδοποίηση υποπρογραµµάτων σε modules
∆οµηµένος προγραµµατισµός
![Page 4: Εισαγωγή στη - users.auth.grusers.auth.gr/users/6/7/006676/public_html/docs/CPP_programming.pdfΑρχές προγραµµατισµού Ειδικά Θέµατα Τηλεπικοινωνιών-](https://reader031.vdocuments.pub/reader031/viewer/2022011810/5e08df27a0e394521466227b/html5/thumbnails/4.jpg)
Αρχές προγραµµατισµού
Ειδικά Θέµατα Τηλεπικοινωνιών - Εισαγωγή στη C++Πρόγραµµα Μεταπτυχιακών Σπουδών Ραδιοηλεκτρολογίας
∆οµηµένος προγραµµατισµός
⇒ Πολυπλοκότητα!!!
![Page 5: Εισαγωγή στη - users.auth.grusers.auth.gr/users/6/7/006676/public_html/docs/CPP_programming.pdfΑρχές προγραµµατισµού Ειδικά Θέµατα Τηλεπικοινωνιών-](https://reader031.vdocuments.pub/reader031/viewer/2022011810/5e08df27a0e394521466227b/html5/thumbnails/5.jpg)
Αρχές προγραµµατισµού
Ειδικά Θέµατα Τηλεπικοινωνιών - Εισαγωγή στη C++Πρόγραµµα Μεταπτυχιακών Σπουδών Ραδιοηλεκτρολογίας
Έµφαση στις ενέργειες, όχι στα δεδοµένα∆εδοµένα προσπελάσιµα από όλες τις συναρτήσεις
Μεταβολή του είδους των δεδοµένων; Αλλαγή όλων (!;) των συναρτήσεων
∆ηµιουργία νέων τύπων δεδοµένων;
∆οµηµένος προγραµµατισµός
![Page 6: Εισαγωγή στη - users.auth.grusers.auth.gr/users/6/7/006676/public_html/docs/CPP_programming.pdfΑρχές προγραµµατισµού Ειδικά Θέµατα Τηλεπικοινωνιών-](https://reader031.vdocuments.pub/reader031/viewer/2022011810/5e08df27a0e394521466227b/html5/thumbnails/6.jpg)
Αρχές προγραµµατισµού
Ειδικά Θέµατα Τηλεπικοινωνιών - Εισαγωγή στη C++Πρόγραµµα Μεταπτυχιακών Σπουδών Ραδιοηλεκτρολογίας
Συνδυασµός δεδοµένων και συναρτήσεων πουενεργούν σε αυτά σε ένα αντικείµενοΣυναρτήσεις µέλη του αντικειµένουΑπόκρυψη και ενθυλάκωση των δεδοµένων
Αντικειµενοστρεφής προγραµµατισµός
![Page 7: Εισαγωγή στη - users.auth.grusers.auth.gr/users/6/7/006676/public_html/docs/CPP_programming.pdfΑρχές προγραµµατισµού Ειδικά Θέµατα Τηλεπικοινωνιών-](https://reader031.vdocuments.pub/reader031/viewer/2022011810/5e08df27a0e394521466227b/html5/thumbnails/7.jpg)
•Αντικείµενα
Χαρακτηριστικά ΑΣ γλωσσών
Ειδικά Θέµατα Τηλεπικοινωνιών - Εισαγωγή στη C++Πρόγραµµα Μεταπτυχιακών Σπουδών Ραδιοηλεκτρολογίας
•Τάξεις•Κληρονοµικότητα•Επαναχρησιµοποίηση•∆ηµιουργία νέων τύπων δεδοµένων•Πολυµορφισµός και υπέρβαση
![Page 8: Εισαγωγή στη - users.auth.grusers.auth.gr/users/6/7/006676/public_html/docs/CPP_programming.pdfΑρχές προγραµµατισµού Ειδικά Θέµατα Τηλεπικοινωνιών-](https://reader031.vdocuments.pub/reader031/viewer/2022011810/5e08df27a0e394521466227b/html5/thumbnails/8.jpg)
Αντικείµενα
Χαρακτηριστικά ΑΣ γλωσσών
Ειδικά Θέµατα Τηλεπικοινωνιών - Εισαγωγή στη C++Πρόγραµµα Μεταπτυχιακών Σπουδών Ραδιοηλεκτρολογίας
Φυσικά αντικείµενα
![Page 9: Εισαγωγή στη - users.auth.grusers.auth.gr/users/6/7/006676/public_html/docs/CPP_programming.pdfΑρχές προγραµµατισµού Ειδικά Θέµατα Τηλεπικοινωνιών-](https://reader031.vdocuments.pub/reader031/viewer/2022011810/5e08df27a0e394521466227b/html5/thumbnails/9.jpg)
Αντικείµενα
Χαρακτηριστικά ΑΣ γλωσσών
Ειδικά Θέµατα Τηλεπικοινωνιών - Εισαγωγή στη C++Πρόγραµµα Μεταπτυχιακών Σπουδών Ραδιοηλεκτρολογίας
Φυσικά αντικείµενα
Στοιχεία του περιβάλλοντος χρήστη-Η/Υ
![Page 10: Εισαγωγή στη - users.auth.grusers.auth.gr/users/6/7/006676/public_html/docs/CPP_programming.pdfΑρχές προγραµµατισµού Ειδικά Θέµατα Τηλεπικοινωνιών-](https://reader031.vdocuments.pub/reader031/viewer/2022011810/5e08df27a0e394521466227b/html5/thumbnails/10.jpg)
Αντικείµενα
Χαρακτηριστικά ΑΣ γλωσσών
Ειδικά Θέµατα Τηλεπικοινωνιών - Εισαγωγή στη C++Πρόγραµµα Μεταπτυχιακών Σπουδών Ραδιοηλεκτρολογίας
Φυσικά αντικείµενα
Στοιχεία του περιβάλλοντος χρήστη-Η/Υ
Κατασκευές προγραµµατιστικές
![Page 11: Εισαγωγή στη - users.auth.grusers.auth.gr/users/6/7/006676/public_html/docs/CPP_programming.pdfΑρχές προγραµµατισµού Ειδικά Θέµατα Τηλεπικοινωνιών-](https://reader031.vdocuments.pub/reader031/viewer/2022011810/5e08df27a0e394521466227b/html5/thumbnails/11.jpg)
Αντικείµενα
Χαρακτηριστικά ΑΣ γλωσσών
Ειδικά Θέµατα Τηλεπικοινωνιών - Εισαγωγή στη C++Πρόγραµµα Μεταπτυχιακών Σπουδών Ραδιοηλεκτρολογίας
Φυσικά αντικείµενα
Στοιχεία του περιβάλλοντος χρήστη-Η/Υ
Κατασκευές προγραµµατιστικές
Συλλογές δεδοµένων
![Page 12: Εισαγωγή στη - users.auth.grusers.auth.gr/users/6/7/006676/public_html/docs/CPP_programming.pdfΑρχές προγραµµατισµού Ειδικά Θέµατα Τηλεπικοινωνιών-](https://reader031.vdocuments.pub/reader031/viewer/2022011810/5e08df27a0e394521466227b/html5/thumbnails/12.jpg)
Αντικείµενα
Χαρακτηριστικά ΑΣ γλωσσών
Ειδικά Θέµατα Τηλεπικοινωνιών - Εισαγωγή στη C++Πρόγραµµα Μεταπτυχιακών Σπουδών Ραδιοηλεκτρολογίας
Φυσικά αντικείµενα
Στοιχεία του περιβάλλοντος χρήστη-Η/Υ
Κατασκευές προγραµµατιστικές
Συλλογές δεδοµένων
Τύποι δεδοµένων ορισµένοι από το χρήστη
![Page 13: Εισαγωγή στη - users.auth.grusers.auth.gr/users/6/7/006676/public_html/docs/CPP_programming.pdfΑρχές προγραµµατισµού Ειδικά Θέµατα Τηλεπικοινωνιών-](https://reader031.vdocuments.pub/reader031/viewer/2022011810/5e08df27a0e394521466227b/html5/thumbnails/13.jpg)
Τάξεις
Χαρακτηριστικά ΑΣ γλωσσών
Ειδικά Θέµατα Τηλεπικοινωνιών - Εισαγωγή στη C++Πρόγραµµα Μεταπτυχιακών Σπουδών Ραδιοηλεκτρολογίας
Συλλογές παρόµοιων αντικειµένων
Κάθε αντικείµενο είναι µέλος µιας τάξης
![Page 14: Εισαγωγή στη - users.auth.grusers.auth.gr/users/6/7/006676/public_html/docs/CPP_programming.pdfΑρχές προγραµµατισµού Ειδικά Θέµατα Τηλεπικοινωνιών-](https://reader031.vdocuments.pub/reader031/viewer/2022011810/5e08df27a0e394521466227b/html5/thumbnails/14.jpg)
Κληρονοµικότητα
Χαρακτηριστικά ΑΣ γλωσσών
Ειδικά Θέµατα Τηλεπικοινωνιών - Εισαγωγή στη C++Πρόγραµµα Μεταπτυχιακών Σπουδών Ραδιοηλεκτρολογίας
Συλλογές παρόµοιων αντικειµένων
αρχική (base) και παράγωγες (derived) τάξεις
Σχέση παράγωγης τάξης και αντικειµένου
Οµαδοποίηση κοινών διαδικασιών
![Page 15: Εισαγωγή στη - users.auth.grusers.auth.gr/users/6/7/006676/public_html/docs/CPP_programming.pdfΑρχές προγραµµατισµού Ειδικά Θέµατα Τηλεπικοινωνιών-](https://reader031.vdocuments.pub/reader031/viewer/2022011810/5e08df27a0e394521466227b/html5/thumbnails/15.jpg)
Επαναχρησιµοποίηση
Χαρακτηριστικά ΑΣ γλωσσών
Ειδικά Θέµατα Τηλεπικοινωνιών - Εισαγωγή στη C++Πρόγραµµα Μεταπτυχιακών Σπουδών Ραδιοηλεκτρολογίας
Χρήση υπάρχουσας τάξης σε άλλο πρόγραµµα
+κληρονοµικότητα ευελιξία
![Page 16: Εισαγωγή στη - users.auth.grusers.auth.gr/users/6/7/006676/public_html/docs/CPP_programming.pdfΑρχές προγραµµατισµού Ειδικά Θέµατα Τηλεπικοινωνιών-](https://reader031.vdocuments.pub/reader031/viewer/2022011810/5e08df27a0e394521466227b/html5/thumbnails/16.jpg)
Πολυµορφισµός και υπέρβαση
Χαρακτηριστικά ΑΣ γλωσσών
Ειδικά Θέµατα Τηλεπικοινωνιών - Εισαγωγή στη C++Πρόγραµµα Μεταπτυχιακών Σπουδών Ραδιοηλεκτρολογίας
Ενεργούσα συνάρτηση ανάλογη των δεδοµένων
Τελεστές υπέρβασης (overloading)
![Page 17: Εισαγωγή στη - users.auth.grusers.auth.gr/users/6/7/006676/public_html/docs/CPP_programming.pdfΑρχές προγραµµατισµού Ειδικά Θέµατα Τηλεπικοινωνιών-](https://reader031.vdocuments.pub/reader031/viewer/2022011810/5e08df27a0e394521466227b/html5/thumbnails/17.jpg)
•Συγγραφή πηγαίου κώδικα(source code)
Ειδικά Θέµατα Τηλεπικοινωνιών - Εισαγωγή στη C++Πρόγραµµα Μεταπτυχιακών Σπουδών Ραδιοηλεκτρολογίας
∆ηµιουργία εκτελέσιµου προγράµµατος
•Μεταγλώττιση σε αντικειµενικό κώδικα(object code)•Σύνδεση (linking) σε εκτελέσιµο κώδικα(executable code)
![Page 18: Εισαγωγή στη - users.auth.grusers.auth.gr/users/6/7/006676/public_html/docs/CPP_programming.pdfΑρχές προγραµµατισµού Ειδικά Θέµατα Τηλεπικοινωνιών-](https://reader031.vdocuments.pub/reader031/viewer/2022011810/5e08df27a0e394521466227b/html5/thumbnails/18.jpg)
Ειδικά Θέµατα Τηλεπικοινωνιών - Εισαγωγή στη C++Πρόγραµµα Μεταπτυχιακών Σπουδών Ραδιοηλεκτρολογίας
∆ηµιουργία εκτελέσιµου προγράµµατος
// my first program
#include <iostream.h>
void main( ){cout << “...”;}
![Page 19: Εισαγωγή στη - users.auth.grusers.auth.gr/users/6/7/006676/public_html/docs/CPP_programming.pdfΑρχές προγραµµατισµού Ειδικά Θέµατα Τηλεπικοινωνιών-](https://reader031.vdocuments.pub/reader031/viewer/2022011810/5e08df27a0e394521466227b/html5/thumbnails/19.jpg)
∆οµή προγράµµατος
Ειδικά Θέµατα Τηλεπικοινωνιών - Εισαγωγή στη C++Πρόγραµµα Μεταπτυχιακών Σπουδών Ραδιοηλεκτρολογίας
Συναρτήσεις
Προτάσεις προγράµµατος
Αρχές προγραµµατισµού µε τη C++
Λευκά διαστήµατα
Οδηγίες προεπεξεργαστή
Αρχεία κεφαλίδων (header files)
Σχόλια
![Page 20: Εισαγωγή στη - users.auth.grusers.auth.gr/users/6/7/006676/public_html/docs/CPP_programming.pdfΑρχές προγραµµατισµού Ειδικά Θέµατα Τηλεπικοινωνιών-](https://reader031.vdocuments.pub/reader031/viewer/2022011810/5e08df27a0e394521466227b/html5/thumbnails/20.jpg)
Ειδικά Θέµατα Τηλεπικοινωνιών - Εισαγωγή στη C++Πρόγραµµα Μεταπτυχιακών Σπουδών Ραδιοηλεκτρολογίας
// my first program
#include <iostream.h>
void main( ){cout << "...";}
∆οµή προγράµµατος της C++
σχόλιο
{
συνά
ρτησ
η
πρόταση
λευκά διαστήµατα
αρχεία κεφαλίδων
οδηγίεςπροεπεξεργαστή
![Page 21: Εισαγωγή στη - users.auth.grusers.auth.gr/users/6/7/006676/public_html/docs/CPP_programming.pdfΑρχές προγραµµατισµού Ειδικά Θέµατα Τηλεπικοινωνιών-](https://reader031.vdocuments.pub/reader031/viewer/2022011810/5e08df27a0e394521466227b/html5/thumbnails/21.jpg)
Μεταβλητές
Ειδικά Θέµατα Τηλεπικοινωνιών - Εισαγωγή στη C++Πρόγραµµα Μεταπτυχιακών Σπουδών Ραδιοηλεκτρολογίας
Τι είναι;
Ονοµατολογία
Αρχές προγραµµατισµού µε τη C++
Τύποι µεταβλητών
∆ήλωση και ορισµός µεταβλητής
Αρχική απόδοση τιµής
Παραστάσεις µεταβλητών
![Page 22: Εισαγωγή στη - users.auth.grusers.auth.gr/users/6/7/006676/public_html/docs/CPP_programming.pdfΑρχές προγραµµατισµού Ειδικά Θέµατα Τηλεπικοινωνιών-](https://reader031.vdocuments.pub/reader031/viewer/2022011810/5e08df27a0e394521466227b/html5/thumbnails/22.jpg)
Τύποι µεταβλητών
Ειδικά Θέµατα Τηλεπικοινωνιών - Εισαγωγή στη C++Πρόγραµµα Μεταπτυχιακών Σπουδών Ραδιοηλεκτρολογίας
Ακέραιες
Αρχές προγραµµατισµού µε τη C++
![Page 23: Εισαγωγή στη - users.auth.grusers.auth.gr/users/6/7/006676/public_html/docs/CPP_programming.pdfΑρχές προγραµµατισµού Ειδικά Θέµατα Τηλεπικοινωνιών-](https://reader031.vdocuments.pub/reader031/viewer/2022011810/5e08df27a0e394521466227b/html5/thumbnails/23.jpg)
Τύποι µεταβλητών
Ειδικά Θέµατα Τηλεπικοινωνιών - Εισαγωγή στη C++Πρόγραµµα Μεταπτυχιακών Σπουδών Ραδιοηλεκτρολογίας
Ακέραιες
Αρχές προγραµµατισµού µε τη C++
Μεταβλητές χαρακτήρων
![Page 24: Εισαγωγή στη - users.auth.grusers.auth.gr/users/6/7/006676/public_html/docs/CPP_programming.pdfΑρχές προγραµµατισµού Ειδικά Θέµατα Τηλεπικοινωνιών-](https://reader031.vdocuments.pub/reader031/viewer/2022011810/5e08df27a0e394521466227b/html5/thumbnails/24.jpg)
Τύποι µεταβλητών
Ειδικά Θέµατα Τηλεπικοινωνιών - Εισαγωγή στη C++Πρόγραµµα Μεταπτυχιακών Σπουδών Ραδιοηλεκτρολογίας
Ακέραιες
Αρχές προγραµµατισµού µε τη C++
Μεταβλητές χαρακτήρωνακολουθίες διαφυγής (escape sequences):\a bell\b backspace\f feed\n new line\r carriage return\t tab\\ backslash\’ single quotation\” double quotation\xdd hexadecimal representation
![Page 25: Εισαγωγή στη - users.auth.grusers.auth.gr/users/6/7/006676/public_html/docs/CPP_programming.pdfΑρχές προγραµµατισµού Ειδικά Θέµατα Τηλεπικοινωνιών-](https://reader031.vdocuments.pub/reader031/viewer/2022011810/5e08df27a0e394521466227b/html5/thumbnails/25.jpg)
Τύποι µεταβλητών
Ειδικά Θέµατα Τηλεπικοινωνιών - Εισαγωγή στη C++Πρόγραµµα Μεταπτυχιακών Σπουδών Ραδιοηλεκτρολογίας
Ακέραιες
Μεταβλητές χαρακτήρων
Αρχές προγραµµατισµού µε τη C++
Κινητής υποδιαστολής
Λογικού τύπου (boolean)
![Page 26: Εισαγωγή στη - users.auth.grusers.auth.gr/users/6/7/006676/public_html/docs/CPP_programming.pdfΑρχές προγραµµατισµού Ειδικά Θέµατα Τηλεπικοινωνιών-](https://reader031.vdocuments.pub/reader031/viewer/2022011810/5e08df27a0e394521466227b/html5/thumbnails/26.jpg)
Τύποι µεταβλητών (32bit)
Ειδικά Θέµατα Τηλεπικοινωνιών - Εισαγωγή στη C++Πρόγραµµα Μεταπτυχιακών Σπουδών Ραδιοηλεκτρολογίας
Type Size (bits) Range Sample applications
unsigned char 8 0 <= X <= 255 Small numbers and full PC character set
char 8 -128 <= X <= 127 Very small numbers andASCII characters
short int 16 -32,768 <= X <= 32,767 Counting, small numbers,loop control
unsigned int 32 0 <= X <= 4,294,967,295 Large numbers and loopsint 32 -2,147,483,648 <= X <= 2,147,483,647 Counting, small numbers,
loop controlunsigned long 32 0 <= X <= 4,294,967,295 Astronomical distancesenum 32 -2,147,483,648 <= X <= 2,147,483,647 Ordered sets of valueslong 32 -2,147,483,648 <= X <= 2,147,483,647 Large numbers, populationsfloat 32 1.18 10^-38 < |X| < 3.40 10^38 Scientific (7-digit) precisiondouble 64 2.23 10^-308 < |X| < 1.79 10^308 Scientific (15-digit) precisionlong double 80 3.37 10^-4932 < |X| < 1.18 10^4932 Financial (18-digit) precision
Αρχές προγραµµατισµού µε τη C++
![Page 27: Εισαγωγή στη - users.auth.grusers.auth.gr/users/6/7/006676/public_html/docs/CPP_programming.pdfΑρχές προγραµµατισµού Ειδικά Θέµατα Τηλεπικοινωνιών-](https://reader031.vdocuments.pub/reader031/viewer/2022011810/5e08df27a0e394521466227b/html5/thumbnails/27.jpg)
Είσοδος - Έξοδος
Ειδικά Θέµατα Τηλεπικοινωνιών - Εισαγωγή στη C++Πρόγραµµα Μεταπτυχιακών Σπουδών Ραδιοηλεκτρολογίας
Τελεστής εισαγωγής
Αρχές προγραµµατισµού µε τη C++
![Page 28: Εισαγωγή στη - users.auth.grusers.auth.gr/users/6/7/006676/public_html/docs/CPP_programming.pdfΑρχές προγραµµατισµού Ειδικά Θέµατα Τηλεπικοινωνιών-](https://reader031.vdocuments.pub/reader031/viewer/2022011810/5e08df27a0e394521466227b/html5/thumbnails/28.jpg)
Είσοδος - Έξοδος
Ειδικά Θέµατα Τηλεπικοινωνιών - Εισαγωγή στη C++Πρόγραµµα Μεταπτυχιακών Σπουδών Ραδιοηλεκτρολογίας
Τελεστής εισαγωγής
Αρχές προγραµµατισµού µε τη C++
Τελεστής εξαγωγής
![Page 29: Εισαγωγή στη - users.auth.grusers.auth.gr/users/6/7/006676/public_html/docs/CPP_programming.pdfΑρχές προγραµµατισµού Ειδικά Θέµατα Τηλεπικοινωνιών-](https://reader031.vdocuments.pub/reader031/viewer/2022011810/5e08df27a0e394521466227b/html5/thumbnails/29.jpg)
Είσοδος - Έξοδος
Ειδικά Θέµατα Τηλεπικοινωνιών - Εισαγωγή στη C++Πρόγραµµα Μεταπτυχιακών Σπουδών Ραδιοηλεκτρολογίας
Τελεστής εισαγωγής
Αρχές προγραµµατισµού µε τη C++
Τελεστής εξαγωγής
Μορφοποίηση εξόδου
![Page 30: Εισαγωγή στη - users.auth.grusers.auth.gr/users/6/7/006676/public_html/docs/CPP_programming.pdfΑρχές προγραµµατισµού Ειδικά Θέµατα Τηλεπικοινωνιών-](https://reader031.vdocuments.pub/reader031/viewer/2022011810/5e08df27a0e394521466227b/html5/thumbnails/30.jpg)
Ειδικά Θέµατα Τηλεπικοινωνιών - Εισαγωγή στη C++Πρόγραµµα Μεταπτυχιακών Σπουδών Ραδιοηλεκτρολογίας
Είσοδος - Έξοδος
// calculation of circle area
#include <iostream.h>
void main( ){float radius, area;const float PI=3.14159;
cout << "Please, give the circle radius: ";cin >> radius;area=PI*radius*radius;cout << "The area is " << area;}
![Page 31: Εισαγωγή στη - users.auth.grusers.auth.gr/users/6/7/006676/public_html/docs/CPP_programming.pdfΑρχές προγραµµατισµού Ειδικά Θέµατα Τηλεπικοινωνιών-](https://reader031.vdocuments.pub/reader031/viewer/2022011810/5e08df27a0e394521466227b/html5/thumbnails/31.jpg)
Ειδικά Θέµατα Τηλεπικοινωνιών - Εισαγωγή στη C++Πρόγραµµα Μεταπτυχιακών Σπουδών Ραδιοηλεκτρολογίας
Είσοδος - Έξοδος
// calculation of circle area
#include <iostream.h>#define PI 3.14159
void main( ){float radius, area;
cout << "Please, give the circle radius: ";cin >> radius;area=PI*radius*radius;cout << "The area is " << area;}
![Page 32: Εισαγωγή στη - users.auth.grusers.auth.gr/users/6/7/006676/public_html/docs/CPP_programming.pdfΑρχές προγραµµατισµού Ειδικά Θέµατα Τηλεπικοινωνιών-](https://reader031.vdocuments.pub/reader031/viewer/2022011810/5e08df27a0e394521466227b/html5/thumbnails/32.jpg)
Ειδικά Θέµατα Τηλεπικοινωνιών - Εισαγωγή στη C++Πρόγραµµα Μεταπτυχιακών Σπουδών Ραδιοηλεκτρολογίας
Μορφοποίηση εισόδου - εξόδου// calculation of circle characteristics
#include <iostream.h>#define PI 3.14159
void main( ){float radius,area,circum;
cout << "Please, give the circle radius: ";cin >> radius;cout << "The circle with radius " << radius << endl;area=PI*radius*radius;cout << "has an area of " << area << endl;circum=2*PI*radius;cout << "and a circumference of " << circum;}
![Page 33: Εισαγωγή στη - users.auth.grusers.auth.gr/users/6/7/006676/public_html/docs/CPP_programming.pdfΑρχές προγραµµατισµού Ειδικά Θέµατα Τηλεπικοινωνιών-](https://reader031.vdocuments.pub/reader031/viewer/2022011810/5e08df27a0e394521466227b/html5/thumbnails/33.jpg)
Ειδικά Θέµατα Τηλεπικοινωνιών - Εισαγωγή στη C++Πρόγραµµα Μεταπτυχιακών Σπουδών Ραδιοηλεκτρολογίας
Μορφοποίηση εισόδου - εξόδου// calculation of circle characteristics
#include <iostream.h>#include <iomanip.h>#define PI 3.14159
void main( ){float radius,area,circum;
cout << "Please, give the circle radius: ";cin >> radius;area=PI*radius*radius;circum=2*PI*radius;cout << left << setw(24) << "The circle with radius "
<< fixed << right << setw(12) << setprecision(3) << radius << endl<< left << setw(24) << "has an area of "<< fixed << right << setw(12) << setprecision(3) << area << endl<< left << setw(24) << "and a circumference of "<< fixed << right << setw(12) << setprecision(3) << circum << endl;
}
![Page 34: Εισαγωγή στη - users.auth.grusers.auth.gr/users/6/7/006676/public_html/docs/CPP_programming.pdfΑρχές προγραµµατισµού Ειδικά Θέµατα Τηλεπικοινωνιών-](https://reader031.vdocuments.pub/reader031/viewer/2022011810/5e08df27a0e394521466227b/html5/thumbnails/34.jpg)
Μετατροπή τύπου µεταβλητής
Ειδικά Θέµατα Τηλεπικοινωνιών - Εισαγωγή στη C++Πρόγραµµα Μεταπτυχιακών Σπουδών Ραδιοηλεκτρολογίας
Αυτόµατη µετατροπή
Προσαρµογή
Αρχές προγραµµατισµού µε τη C++
![Page 35: Εισαγωγή στη - users.auth.grusers.auth.gr/users/6/7/006676/public_html/docs/CPP_programming.pdfΑρχές προγραµµατισµού Ειδικά Θέµατα Τηλεπικοινωνιών-](https://reader031.vdocuments.pub/reader031/viewer/2022011810/5e08df27a0e394521466227b/html5/thumbnails/35.jpg)
#include <iostream.h>
void main( ){int var1=1000000, var2;
var2=(var1*1000000)/1000000;cout << "var2 = " << var2 << endl;}
Ειδικά Θέµατα Τηλεπικοινωνιών - Εισαγωγή στη C++Πρόγραµµα Μεταπτυχιακών Σπουδών Ραδιοηλεκτρολογίας
Μετατροπή τύπου µεταβλητής
![Page 36: Εισαγωγή στη - users.auth.grusers.auth.gr/users/6/7/006676/public_html/docs/CPP_programming.pdfΑρχές προγραµµατισµού Ειδικά Θέµατα Τηλεπικοινωνιών-](https://reader031.vdocuments.pub/reader031/viewer/2022011810/5e08df27a0e394521466227b/html5/thumbnails/36.jpg)
#include <iostream.h>
void main( ){int var1=1000000, var2;
var2=(float(var1)*1000000)/1000000;cout << "var2 = " << var2 << endl;}
Ειδικά Θέµατα Τηλεπικοινωνιών - Εισαγωγή στη C++Πρόγραµµα Μεταπτυχιακών Σπουδών Ραδιοηλεκτρολογίας
Μετατροπή τύπου µεταβλητής
![Page 37: Εισαγωγή στη - users.auth.grusers.auth.gr/users/6/7/006676/public_html/docs/CPP_programming.pdfΑρχές προγραµµατισµού Ειδικά Θέµατα Τηλεπικοινωνιών-](https://reader031.vdocuments.pub/reader031/viewer/2022011810/5e08df27a0e394521466227b/html5/thumbnails/37.jpg)
Ειδικά Θέµατα Τηλεπικοινωνιών - Εισαγωγή στη C++Πρόγραµµα Μεταπτυχιακών Σπουδών Ραδιοηλεκτρολογίας
Αρχές προγραµµατισµού µε τη C++
Βασικοί τελεστές
Τελεστής απόδοσης τιµής
Τελεστής υπολοίπου
Αριθµητικοί τελεστές
Τελεστές αύξησης και µείωσης
Αρχείο κεφαλίδας <math.h>
Προτεραιότητα τελεστών
![Page 38: Εισαγωγή στη - users.auth.grusers.auth.gr/users/6/7/006676/public_html/docs/CPP_programming.pdfΑρχές προγραµµατισµού Ειδικά Θέµατα Τηλεπικοινωνιών-](https://reader031.vdocuments.pub/reader031/viewer/2022011810/5e08df27a0e394521466227b/html5/thumbnails/38.jpg)
Ειδικά Θέµατα Τηλεπικοινωνιών - Εισαγωγή στη C++Πρόγραµµα Μεταπτυχιακών Σπουδών Ραδιοηλεκτρολογίας
Βρόχοι και Αποφάσεις
Οι προτάσεις ελέγχου περιέχουν
αληθείς ή ψευδείς
συσχετιστικούς τελεστές και είναι
λογικές παραστάσεις που περιλαµβάνουν
![Page 39: Εισαγωγή στη - users.auth.grusers.auth.gr/users/6/7/006676/public_html/docs/CPP_programming.pdfΑρχές προγραµµατισµού Ειδικά Θέµατα Τηλεπικοινωνιών-](https://reader031.vdocuments.pub/reader031/viewer/2022011810/5e08df27a0e394521466227b/html5/thumbnails/39.jpg)
Ειδικά Θέµατα Τηλεπικοινωνιών - Εισαγωγή στη C++Πρόγραµµα Μεταπτυχιακών Σπουδών Ραδιοηλεκτρολογίας
Βρόχος for
for(αρχική τιµή;παράσταση ελέγχου;παράσταση µεταβολής){σώµα βρόχου}
Παράδειγµα:
for(int i=0;i<100;i++){cout << i << endl;}
![Page 40: Εισαγωγή στη - users.auth.grusers.auth.gr/users/6/7/006676/public_html/docs/CPP_programming.pdfΑρχές προγραµµατισµού Ειδικά Θέµατα Τηλεπικοινωνιών-](https://reader031.vdocuments.pub/reader031/viewer/2022011810/5e08df27a0e394521466227b/html5/thumbnails/40.jpg)
Ειδικά Θέµατα Τηλεπικοινωνιών - Εισαγωγή στη C++Πρόγραµµα Μεταπτυχιακών Σπουδών Ραδιοηλεκτρολογίας
Βρόχος while
while(παράσταση ελέγχου){σώµα βρόχου}
Παράδειγµα:
int i=0;while(i<100) {
cout << i << endl;i++;
}
![Page 41: Εισαγωγή στη - users.auth.grusers.auth.gr/users/6/7/006676/public_html/docs/CPP_programming.pdfΑρχές προγραµµατισµού Ειδικά Θέµατα Τηλεπικοινωνιών-](https://reader031.vdocuments.pub/reader031/viewer/2022011810/5e08df27a0e394521466227b/html5/thumbnails/41.jpg)
Ειδικά Θέµατα Τηλεπικοινωνιών - Εισαγωγή στη C++Πρόγραµµα Μεταπτυχιακών Σπουδών Ραδιοηλεκτρολογίας
Βρόχος do-while
do {σώµα βρόχου}
while(παράσταση ελέγχου);
Παράδειγµα:
int i=0;do {
cout << i << endl;i++; }
while(i<100);
![Page 42: Εισαγωγή στη - users.auth.grusers.auth.gr/users/6/7/006676/public_html/docs/CPP_programming.pdfΑρχές προγραµµατισµού Ειδικά Θέµατα Τηλεπικοινωνιών-](https://reader031.vdocuments.pub/reader031/viewer/2022011810/5e08df27a0e394521466227b/html5/thumbnails/42.jpg)
Ειδικά Θέµατα Τηλεπικοινωνιών - Εισαγωγή στη C++Πρόγραµµα Μεταπτυχιακών Σπουδών Ραδιοηλεκτρολογίας
Απόφαση µε την πρόταση if
if (παράσταση ελέγχου){σώµα if πρότασης}
Παράδειγµα:
for(int i=0;i<10;i++) {if ((i % 3) == 0)
cout << i << “ is a multiple of 3” << endl;}
![Page 43: Εισαγωγή στη - users.auth.grusers.auth.gr/users/6/7/006676/public_html/docs/CPP_programming.pdfΑρχές προγραµµατισµού Ειδικά Θέµατα Τηλεπικοινωνιών-](https://reader031.vdocuments.pub/reader031/viewer/2022011810/5e08df27a0e394521466227b/html5/thumbnails/43.jpg)
Ειδικά Θέµατα Τηλεπικοινωνιών - Εισαγωγή στη C++Πρόγραµµα Μεταπτυχιακών Σπουδών Ραδιοηλεκτρολογίας
Απόφαση µε την πρόταση if-else
if (παράσταση ελέγχου) {σώµα if πρότασης}
else {σώµα else πρότασης}
Παράδειγµα:
for(int i=0;i<10;i++) {if ((i % 3) == 0)cout << i << “ is cout << i << “ is a multiple
of 3” << endl;else
not a multiple of 3” << endl;}
![Page 44: Εισαγωγή στη - users.auth.grusers.auth.gr/users/6/7/006676/public_html/docs/CPP_programming.pdfΑρχές προγραµµατισµού Ειδικά Θέµατα Τηλεπικοινωνιών-](https://reader031.vdocuments.pub/reader031/viewer/2022011810/5e08df27a0e394521466227b/html5/thumbnails/44.jpg)
Ειδικά Θέµατα Τηλεπικοινωνιών - Εισαγωγή στη C++Πρόγραµµα Μεταπτυχιακών Σπουδών Ραδιοηλεκτρολογίας
Απόφαση µε την πρόταση switchswitch (µεταβλητή ακέραιη ή χαρακτήρα) {
case 1:πρόταση;…………..break;
case 2:πρόταση;…………..break;
default:πρόταση;…………..πρόταση;
}
![Page 45: Εισαγωγή στη - users.auth.grusers.auth.gr/users/6/7/006676/public_html/docs/CPP_programming.pdfΑρχές προγραµµατισµού Ειδικά Θέµατα Τηλεπικοινωνιών-](https://reader031.vdocuments.pub/reader031/viewer/2022011810/5e08df27a0e394521466227b/html5/thumbnails/45.jpg)
Ειδικά Θέµατα Τηλεπικοινωνιών - Εισαγωγή στη C++Πρόγραµµα Μεταπτυχιακών Σπουδών Ραδιοηλεκτρολογίας
Απόφαση µε την πρόταση switch
Παράδειγµα:
switch (c) {case ‘y’:
cout << “you have pressed: \’y\’” << endl;break;
case ‘Y’:cout << “you have pressed: \’Y\’” << endl;break;
default:cout << c << “ is not a valid choice!” << endl;
}
![Page 46: Εισαγωγή στη - users.auth.grusers.auth.gr/users/6/7/006676/public_html/docs/CPP_programming.pdfΑρχές προγραµµατισµού Ειδικά Θέµατα Τηλεπικοινωνιών-](https://reader031.vdocuments.pub/reader031/viewer/2022011810/5e08df27a0e394521466227b/html5/thumbnails/46.jpg)
Ειδικά Θέµατα Τηλεπικοινωνιών - Εισαγωγή στη C++Πρόγραµµα Μεταπτυχιακών Σπουδών Ραδιοηλεκτρολογίας
Απόφαση µε παράσταση υπό συνθήκη
Παράδειγµα:
min = (alpha<beta)? Alpha: beta;
αποτέλεσµα=(παράσταση ελέγχου)?παράσταση 1:παράσταση 2;
![Page 47: Εισαγωγή στη - users.auth.grusers.auth.gr/users/6/7/006676/public_html/docs/CPP_programming.pdfΑρχές προγραµµατισµού Ειδικά Θέµατα Τηλεπικοινωνιών-](https://reader031.vdocuments.pub/reader031/viewer/2022011810/5e08df27a0e394521466227b/html5/thumbnails/47.jpg)
Ειδικά Θέµατα Τηλεπικοινωνιών - Εισαγωγή στη C++Πρόγραµµα Μεταπτυχιακών Σπουδών Ραδιοηλεκτρολογίας
Οι προτάσεις break και continue
•Η πρόταση break προκαλεί έξοδο από ένα βρόχο
•Η πρόταση continue µεταφέρει τη ροή του προγράµµατος στην αρχή ενός βρόχου
![Page 48: Εισαγωγή στη - users.auth.grusers.auth.gr/users/6/7/006676/public_html/docs/CPP_programming.pdfΑρχές προγραµµατισµού Ειδικά Θέµατα Τηλεπικοινωνιών-](https://reader031.vdocuments.pub/reader031/viewer/2022011810/5e08df27a0e394521466227b/html5/thumbnails/48.jpg)
Ειδικά Θέµατα Τηλεπικοινωνιών - Εισαγωγή στη C++Πρόγραµµα Μεταπτυχιακών Σπουδών Ραδιοηλεκτρολογίας
∆οµές (Structures)
Προσδιορισµός µιας δοµής
Παράδειγµα:
struct Course{int CourseCode;int Semester;int Instructor;};
struct όνοµα δοµής{µέλη δοµής
};
![Page 49: Εισαγωγή στη - users.auth.grusers.auth.gr/users/6/7/006676/public_html/docs/CPP_programming.pdfΑρχές προγραµµατισµού Ειδικά Θέµατα Τηλεπικοινωνιών-](https://reader031.vdocuments.pub/reader031/viewer/2022011810/5e08df27a0e394521466227b/html5/thumbnails/49.jpg)
Ειδικά Θέµατα Τηλεπικοινωνιών - Εισαγωγή στη C++Πρόγραµµα Μεταπτυχιακών Σπουδών Ραδιοηλεκτρολογίας
∆οµές (Structures)
Ορισµός µεταβλητής τύπου δοµής
Παράδειγµα:...Course Telecommunications;...
Προσπέλαση µελών δοµής
Παράδειγµα:...Telecommunications.Semester=4;...
![Page 50: Εισαγωγή στη - users.auth.grusers.auth.gr/users/6/7/006676/public_html/docs/CPP_programming.pdfΑρχές προγραµµατισµού Ειδικά Θέµατα Τηλεπικοινωνιών-](https://reader031.vdocuments.pub/reader031/viewer/2022011810/5e08df27a0e394521466227b/html5/thumbnails/50.jpg)
Ειδικά Θέµατα Τηλεπικοινωνιών - Εισαγωγή στη C++Πρόγραµµα Μεταπτυχιακών Σπουδών Ραδιοηλεκτρολογίας
∆οµές (Structures)
Συνδυασµός προσδιορισµού και ορισµού
Αρχικοποίηση δοµήςΠαράδειγµα:...Course Telecommunications={353,4,12};...
Παράδειγµα:struct {int CourseCode;int Semester;int Instructor;} Telecommunications;
![Page 51: Εισαγωγή στη - users.auth.grusers.auth.gr/users/6/7/006676/public_html/docs/CPP_programming.pdfΑρχές προγραµµατισµού Ειδικά Θέµατα Τηλεπικοινωνιών-](https://reader031.vdocuments.pub/reader031/viewer/2022011810/5e08df27a0e394521466227b/html5/thumbnails/51.jpg)
Ειδικά Θέµατα Τηλεπικοινωνιών - Εισαγωγή στη C++Πρόγραµµα Μεταπτυχιακών Σπουδών Ραδιοηλεκτρολογίας
∆οµές (Structures)
Ένθετες δοµέςΠαράδειγµα:
struct Point{int x;int y;};
struct StraightLine{Point StartPoint;Point EndPoint;};
![Page 52: Εισαγωγή στη - users.auth.grusers.auth.gr/users/6/7/006676/public_html/docs/CPP_programming.pdfΑρχές προγραµµατισµού Ειδικά Θέµατα Τηλεπικοινωνιών-](https://reader031.vdocuments.pub/reader031/viewer/2022011810/5e08df27a0e394521466227b/html5/thumbnails/52.jpg)
Ειδικά Θέµατα Τηλεπικοινωνιών - Εισαγωγή στη C++Πρόγραµµα Μεταπτυχιακών Σπουδών Ραδιοηλεκτρολογίας
∆οµές (Structures)
Προσπέλαση ένθετων δοµώνΠαράδειγµα:...MyStraightLine.StartPoint.x=0;MyStraightLine.StartPoint.y=0;...
Αρχικοποίηση ένθετων δοµώνΠαράδειγµα:...StraightLine MyStraightLine={{0,0},{1,1}};...
![Page 53: Εισαγωγή στη - users.auth.grusers.auth.gr/users/6/7/006676/public_html/docs/CPP_programming.pdfΑρχές προγραµµατισµού Ειδικά Θέµατα Τηλεπικοινωνιών-](https://reader031.vdocuments.pub/reader031/viewer/2022011810/5e08df27a0e394521466227b/html5/thumbnails/53.jpg)
Ειδικά Θέµατα Τηλεπικοινωνιών - Εισαγωγή στη C++Πρόγραµµα Μεταπτυχιακών Σπουδών Ραδιοηλεκτρολογίας
∆οµές (Structures)
•Τελεστές; ⇒ Πρόβληµα
•∆οµές και τάξεις αντικειµένων
![Page 54: Εισαγωγή στη - users.auth.grusers.auth.gr/users/6/7/006676/public_html/docs/CPP_programming.pdfΑρχές προγραµµατισµού Ειδικά Θέµατα Τηλεπικοινωνιών-](https://reader031.vdocuments.pub/reader031/viewer/2022011810/5e08df27a0e394521466227b/html5/thumbnails/54.jpg)
Ειδικά Θέµατα Τηλεπικοινωνιών - Εισαγωγή στη C++Πρόγραµµα Μεταπτυχιακών Σπουδών Ραδιοηλεκτρολογίας
Απαριθµητοί (enumerated)τύποι δεδοµένων
Σύνταξηenum όνοµα µεταβλητής { λίστα τιµών-µελών };
Παράδειγµα:
enum DayOfTheWeek {Sun,Mon,Tue,Wed,Thu,Fri,Sat};...DayOfTheWeek day1,day2;...
![Page 55: Εισαγωγή στη - users.auth.grusers.auth.gr/users/6/7/006676/public_html/docs/CPP_programming.pdfΑρχές προγραµµατισµού Ειδικά Θέµατα Τηλεπικοινωνιών-](https://reader031.vdocuments.pub/reader031/viewer/2022011810/5e08df27a0e394521466227b/html5/thumbnails/55.jpg)
Ειδικά Θέµατα Τηλεπικοινωνιών - Εισαγωγή στη C++Πρόγραµµα Μεταπτυχιακών Σπουδών Ραδιοηλεκτρολογίας
Απαριθµητοί (enumerated)τύποι δεδοµένων
•Καθορισµός αρχικής τιµής
Παράδειγµα:
enum Position {low=-1,middle,high};
•Μεταβλητές ισοδύναµες µε ακεραίους
![Page 56: Εισαγωγή στη - users.auth.grusers.auth.gr/users/6/7/006676/public_html/docs/CPP_programming.pdfΑρχές προγραµµατισµού Ειδικά Θέµατα Τηλεπικοινωνιών-](https://reader031.vdocuments.pub/reader031/viewer/2022011810/5e08df27a0e394521466227b/html5/thumbnails/56.jpg)
Ειδικά Θέµατα Τηλεπικοινωνιών - Εισαγωγή στη C++Πρόγραµµα Μεταπτυχιακών Σπουδών Ραδιοηλεκτρολογίας
Παράδειγµα:
void anyFunction(int, int );
∆ήλωση συνάρτησης
Συναρτήσεις
Παράδειγµα:
anyFunction(10,a);
Κλήση συνάρτησης
![Page 57: Εισαγωγή στη - users.auth.grusers.auth.gr/users/6/7/006676/public_html/docs/CPP_programming.pdfΑρχές προγραµµατισµού Ειδικά Θέµατα Τηλεπικοινωνιών-](https://reader031.vdocuments.pub/reader031/viewer/2022011810/5e08df27a0e394521466227b/html5/thumbnails/57.jpg)
Ειδικά Θέµατα Τηλεπικοινωνιών - Εισαγωγή στη C++Πρόγραµµα Μεταπτυχιακών Σπουδών Ραδιοηλεκτρολογίας
Ορισµός συνάρτησης
Συναρτήσεις
τύπος-επιστρεφ.-τιµής όνοµα-συνάρτησης (ορίσµατα){... προτάσεις;...}
![Page 58: Εισαγωγή στη - users.auth.grusers.auth.gr/users/6/7/006676/public_html/docs/CPP_programming.pdfΑρχές προγραµµατισµού Ειδικά Θέµατα Τηλεπικοινωνιών-](https://reader031.vdocuments.pub/reader031/viewer/2022011810/5e08df27a0e394521466227b/html5/thumbnails/58.jpg)
Ειδικά Θέµατα Τηλεπικοινωνιών - Εισαγωγή στη C++Πρόγραµµα Μεταπτυχιακών Σπουδών Ραδιοηλεκτρολογίας
Ορισµός συνάρτησης
Συναρτήσεις
Παράδειγµα:
void RepeatChar(char ch, int n){for(int j=0; j<n; j++)
cout << ch;cout << endl;}
![Page 59: Εισαγωγή στη - users.auth.grusers.auth.gr/users/6/7/006676/public_html/docs/CPP_programming.pdfΑρχές προγραµµατισµού Ειδικά Θέµατα Τηλεπικοινωνιών-](https://reader031.vdocuments.pub/reader031/viewer/2022011810/5e08df27a0e394521466227b/html5/thumbnails/59.jpg)
Ειδικά Θέµατα Τηλεπικοινωνιών - Εισαγωγή στη C++Πρόγραµµα Μεταπτυχιακών Σπουδών Ραδιοηλεκτρολογίας
•Μεταβίβαση µεταβλητών µε τιµή
Συναρτήσεις
•Μεταβίβαση δοµών µε τιµή
Παράδειγµα:
void DisplayCourse(Course AnyCourse){cout << “The code of the course is “
<< AnyCourse.CourseCode << endl;...}
![Page 60: Εισαγωγή στη - users.auth.grusers.auth.gr/users/6/7/006676/public_html/docs/CPP_programming.pdfΑρχές προγραµµατισµού Ειδικά Θέµατα Τηλεπικοινωνιών-](https://reader031.vdocuments.pub/reader031/viewer/2022011810/5e08df27a0e394521466227b/html5/thumbnails/60.jpg)
Ειδικά Θέµατα Τηλεπικοινωνιών - Εισαγωγή στη C++Πρόγραµµα Μεταπτυχιακών Σπουδών Ραδιοηλεκτρολογίας
•Επιστροφή τιµών
Συναρτήσεις
•Η πρόταση return
Παράδειγµα:
float InchToCentimetre(float InchVal){float CmVal=InchVal*2.54;return CmVal;}
![Page 61: Εισαγωγή στη - users.auth.grusers.auth.gr/users/6/7/006676/public_html/docs/CPP_programming.pdfΑρχές προγραµµατισµού Ειδικά Θέµατα Τηλεπικοινωνιών-](https://reader031.vdocuments.pub/reader031/viewer/2022011810/5e08df27a0e394521466227b/html5/thumbnails/61.jpg)
Ειδικά Θέµατα Τηλεπικοινωνιών - Εισαγωγή στη C++Πρόγραµµα Μεταπτυχιακών Σπουδών Ραδιοηλεκτρολογίας
Επιστροφή µεταβλητών δοµής
Συναρτήσεις
Παράδειγµα:
Course InputCourse(){Course NewCourse;cin >> NewCourse.Code
>> NewCourse.Semester>> NewCourse.Instructor;
return NewCourse;}
![Page 62: Εισαγωγή στη - users.auth.grusers.auth.gr/users/6/7/006676/public_html/docs/CPP_programming.pdfΑρχές προγραµµατισµού Ειδικά Θέµατα Τηλεπικοινωνιών-](https://reader031.vdocuments.pub/reader031/viewer/2022011810/5e08df27a0e394521466227b/html5/thumbnails/62.jpg)
Ειδικά Θέµατα Τηλεπικοινωνιών - Εισαγωγή στη C++Πρόγραµµα Μεταπτυχιακών Σπουδών Ραδιοηλεκτρολογίας
Μεταβίβαση ορισµάτων µε αναφορά
Συναρτήσεις
Παράδειγµα:
void Swap(float& Val1, float& val2){float temp;temp=Val2;Val2=Val1;Val1=temp;}
![Page 63: Εισαγωγή στη - users.auth.grusers.auth.gr/users/6/7/006676/public_html/docs/CPP_programming.pdfΑρχές προγραµµατισµού Ειδικά Θέµατα Τηλεπικοινωνιών-](https://reader031.vdocuments.pub/reader031/viewer/2022011810/5e08df27a0e394521466227b/html5/thumbnails/63.jpg)
Ειδικά Θέµατα Τηλεπικοινωνιών - Εισαγωγή στη C++Πρόγραµµα Μεταπτυχιακών Σπουδών Ραδιοηλεκτρολογίας
Συναρτήσεις µε υπέρβαση
Συναρτήσεις
Παράδειγµα:
float logarithm(float Number){return log(Number);}
float logarithm(float Number, int Base){return log(Number)/log(Base);}
∆ιαφορετικός αριθµός ορισµάτων
![Page 64: Εισαγωγή στη - users.auth.grusers.auth.gr/users/6/7/006676/public_html/docs/CPP_programming.pdfΑρχές προγραµµατισµού Ειδικά Θέµατα Τηλεπικοινωνιών-](https://reader031.vdocuments.pub/reader031/viewer/2022011810/5e08df27a0e394521466227b/html5/thumbnails/64.jpg)
Ειδικά Θέµατα Τηλεπικοινωνιών - Εισαγωγή στη C++Πρόγραµµα Μεταπτυχιακών Σπουδών Ραδιοηλεκτρολογίας
Συναρτήσεις µε υπέρβαση
Συναρτήσεις
Παράδειγµα:
float square(int Number){return Number*Number;}
float square(float Number){return Number*Number;}
∆ιαφορετικά είδη ορισµάτων
![Page 65: Εισαγωγή στη - users.auth.grusers.auth.gr/users/6/7/006676/public_html/docs/CPP_programming.pdfΑρχές προγραµµατισµού Ειδικά Θέµατα Τηλεπικοινωνιών-](https://reader031.vdocuments.pub/reader031/viewer/2022011810/5e08df27a0e394521466227b/html5/thumbnails/65.jpg)
Ειδικά Θέµατα Τηλεπικοινωνιών - Εισαγωγή στη C++Πρόγραµµα Μεταπτυχιακών Σπουδών Ραδιοηλεκτρολογίας
Προεπιλεγµένα ορίσµατα
Συναρτήσεις
Παράδειγµα:
float power(float, int=2);...float power(float Number, int Exp)
{float Result=1;for (int i=0;i<Exp;i++)
Result=Result*Number;return Result;}
![Page 66: Εισαγωγή στη - users.auth.grusers.auth.gr/users/6/7/006676/public_html/docs/CPP_programming.pdfΑρχές προγραµµατισµού Ειδικά Θέµατα Τηλεπικοινωνιών-](https://reader031.vdocuments.pub/reader031/viewer/2022011810/5e08df27a0e394521466227b/html5/thumbnails/66.jpg)
Ειδικά Θέµατα Τηλεπικοινωνιών - Εισαγωγή στη C++Πρόγραµµα Μεταπτυχιακών Σπουδών Ραδιοηλεκτρολογίας
•Αυτόµατες (τοπικές) µεταβλητές
Μεταβλητές
•Εξωτερικές (καθολικές) µεταβλητές
•Στατικές µεταβλητέςΣτατικές αυτόµατεςΣτατικές εξωτερικές
![Page 67: Εισαγωγή στη - users.auth.grusers.auth.gr/users/6/7/006676/public_html/docs/CPP_programming.pdfΑρχές προγραµµατισµού Ειδικά Θέµατα Τηλεπικοινωνιών-](https://reader031.vdocuments.pub/reader031/viewer/2022011810/5e08df27a0e394521466227b/html5/thumbnails/67.jpg)
Ειδικά Θέµατα Τηλεπικοινωνιών - Εισαγωγή στη C++Πρόγραµµα Μεταπτυχιακών Σπουδών Ραδιοηλεκτρολογίας
•Οµαδοποίηση στοιχείων ίδιου τύπου
Πίνακες
•Προσπέλαση στοιχείων µε δείκτη
•Ο τύπος είτε βασικός είτε από τον χρήστη
![Page 68: Εισαγωγή στη - users.auth.grusers.auth.gr/users/6/7/006676/public_html/docs/CPP_programming.pdfΑρχές προγραµµατισµού Ειδικά Θέµατα Τηλεπικοινωνιών-](https://reader031.vdocuments.pub/reader031/viewer/2022011810/5e08df27a0e394521466227b/html5/thumbnails/68.jpg)
Ειδικά Θέµατα Τηλεπικοινωνιών - Εισαγωγή στη C++Πρόγραµµα Μεταπτυχιακών Σπουδών Ραδιοηλεκτρολογίας
Πίνακες
Ορισµός πίνακα
Παράδειγµα:
int Numbers[4];
τύπος-δεδοµένων όνοµα-πίνακα[µέγεθος-πίνακα];
![Page 69: Εισαγωγή στη - users.auth.grusers.auth.gr/users/6/7/006676/public_html/docs/CPP_programming.pdfΑρχές προγραµµατισµού Ειδικά Θέµατα Τηλεπικοινωνιών-](https://reader031.vdocuments.pub/reader031/viewer/2022011810/5e08df27a0e394521466227b/html5/thumbnails/69.jpg)
Ειδικά Θέµατα Τηλεπικοινωνιών - Εισαγωγή στη C++Πρόγραµµα Μεταπτυχιακών Σπουδών Ραδιοηλεκτρολογίας
Πίνακες
Μονοδιάστατος πίνακας στη µνήµη του Η/Υ
25
3
17
500
0xDEF8
0xDEF9
0xDEFΑ
0xDEFΒ
Numbers[0]
Numbers[1]
Numbers[2]
Numbers[3]
![Page 70: Εισαγωγή στη - users.auth.grusers.auth.gr/users/6/7/006676/public_html/docs/CPP_programming.pdfΑρχές προγραµµατισµού Ειδικά Θέµατα Τηλεπικοινωνιών-](https://reader031.vdocuments.pub/reader031/viewer/2022011810/5e08df27a0e394521466227b/html5/thumbnails/70.jpg)
Ειδικά Θέµατα Τηλεπικοινωνιών - Εισαγωγή στη C++Πρόγραµµα Μεταπτυχιακών Σπουδών Ραδιοηλεκτρολογίας
Πίνακες
Προσπέλαση στοιχείων πίνακα
Παράδειγµα:
...int Numbers[4];...Numbers[0]=25;...cin >> Numbers[1];...cout Numbers[3];...
![Page 71: Εισαγωγή στη - users.auth.grusers.auth.gr/users/6/7/006676/public_html/docs/CPP_programming.pdfΑρχές προγραµµατισµού Ειδικά Θέµατα Τηλεπικοινωνιών-](https://reader031.vdocuments.pub/reader031/viewer/2022011810/5e08df27a0e394521466227b/html5/thumbnails/71.jpg)
Ειδικά Θέµατα Τηλεπικοινωνιών - Εισαγωγή στη C++Πρόγραµµα Μεταπτυχιακών Σπουδών Ραδιοηλεκτρολογίας
Πίνακες
Αρχικοποίηση πίνακα (1/2)
Παράδειγµα:...int Numbers[4]={1,2,3};...
![Page 72: Εισαγωγή στη - users.auth.grusers.auth.gr/users/6/7/006676/public_html/docs/CPP_programming.pdfΑρχές προγραµµατισµού Ειδικά Θέµατα Τηλεπικοινωνιών-](https://reader031.vdocuments.pub/reader031/viewer/2022011810/5e08df27a0e394521466227b/html5/thumbnails/72.jpg)
Ειδικά Θέµατα Τηλεπικοινωνιών - Εισαγωγή στη C++Πρόγραµµα Μεταπτυχιακών Σπουδών Ραδιοηλεκτρολογίας
Πίνακες
Αρχικοποίηση πίνακα (2/2)
Παράδειγµα:...int Numbers[]={1,2,3};...
![Page 73: Εισαγωγή στη - users.auth.grusers.auth.gr/users/6/7/006676/public_html/docs/CPP_programming.pdfΑρχές προγραµµατισµού Ειδικά Θέµατα Τηλεπικοινωνιών-](https://reader031.vdocuments.pub/reader031/viewer/2022011810/5e08df27a0e394521466227b/html5/thumbnails/73.jpg)
Ειδικά Θέµατα Τηλεπικοινωνιών - Εισαγωγή στη C++Πρόγραµµα Μεταπτυχιακών Σπουδών Ραδιοηλεκτρολογίας
Πίνακες
Πολυδιάστατοι πίνακες
Παράδειγµα:
...int Numbers[Nx][Ny];...Numbers[2][4]=123;...cin >> Numbers[i][j];...cout Numbers[12][j];...
![Page 74: Εισαγωγή στη - users.auth.grusers.auth.gr/users/6/7/006676/public_html/docs/CPP_programming.pdfΑρχές προγραµµατισµού Ειδικά Θέµατα Τηλεπικοινωνιών-](https://reader031.vdocuments.pub/reader031/viewer/2022011810/5e08df27a0e394521466227b/html5/thumbnails/74.jpg)
Ειδικά Θέµατα Τηλεπικοινωνιών - Εισαγωγή στη C++Πρόγραµµα Μεταπτυχιακών Σπουδών Ραδιοηλεκτρολογίας
Πίνακες
∆ισδιάστατος πίνακας στη µνήµη του Η/Υ
25
3
17
500
0xDEF8
0xDEF9
0xDEFΑ
0xDEFΒ
Numbers[0][0]
Numbers[0][1]
Numbers[0][2]
Numbers[1][0]
12
894
0xDEFC
0xDEFD
Numbers[1][1]
Numbers[1][2]
![Page 75: Εισαγωγή στη - users.auth.grusers.auth.gr/users/6/7/006676/public_html/docs/CPP_programming.pdfΑρχές προγραµµατισµού Ειδικά Θέµατα Τηλεπικοινωνιών-](https://reader031.vdocuments.pub/reader031/viewer/2022011810/5e08df27a0e394521466227b/html5/thumbnails/75.jpg)
Ειδικά Θέµατα Τηλεπικοινωνιών - Εισαγωγή στη C++Πρόγραµµα Μεταπτυχιακών Σπουδών Ραδιοηλεκτρολογίας
Πίνακες
Αρχικοποίηση πολυδιάστατου πίνακα
Παράδειγµα:...intNumbers[2][3]={{1,25,37},{12,15,18}};...
![Page 76: Εισαγωγή στη - users.auth.grusers.auth.gr/users/6/7/006676/public_html/docs/CPP_programming.pdfΑρχές προγραµµατισµού Ειδικά Θέµατα Τηλεπικοινωνιών-](https://reader031.vdocuments.pub/reader031/viewer/2022011810/5e08df27a0e394521466227b/html5/thumbnails/76.jpg)
#include <iostream.h>
const int TotalFloats=10; // number of the float numbers!
float meanNumber(float FloatNumbers[TotalFloats]);
void main( ){float Numbers[TotalFloats];cout << “Give the numbers: “ << endl;for (int i=0;i<TotalFloats;i++) {cout << “Number “ << (i+1) << “ is “;cin >> Numbers[i];}
cout << “The mean is “ << meanNumber(Numbers) << endl; }
float meanNumber(float FloatNumbers[TotalFloats]){
float TotalSum=0.0;for (int i=0;i<TotalFloats;i++)TotalSum+=FloatNumbers[i];
return TotalSum/TotalFloats;}
Ειδικά Θέµατα Τηλεπικοινωνιών - Εισαγωγή στη C++Πρόγραµµα Μεταπτυχιακών Σπουδών Ραδιοηλεκτρολογίας
Πίνακες και συναρτήσεις
![Page 77: Εισαγωγή στη - users.auth.grusers.auth.gr/users/6/7/006676/public_html/docs/CPP_programming.pdfΑρχές προγραµµατισµού Ειδικά Θέµατα Τηλεπικοινωνιών-](https://reader031.vdocuments.pub/reader031/viewer/2022011810/5e08df27a0e394521466227b/html5/thumbnails/77.jpg)
Ειδικά Θέµατα Τηλεπικοινωνιών - Εισαγωγή στη C++Πρόγραµµα Μεταπτυχιακών Σπουδών Ραδιοηλεκτρολογίας
Πίνακες
Προσοχή!!!
![Page 78: Εισαγωγή στη - users.auth.grusers.auth.gr/users/6/7/006676/public_html/docs/CPP_programming.pdfΑρχές προγραµµατισµού Ειδικά Θέµατα Τηλεπικοινωνιών-](https://reader031.vdocuments.pub/reader031/viewer/2022011810/5e08df27a0e394521466227b/html5/thumbnails/78.jpg)
#include <iostream.h>
const int TotalCourses=3; // number of the float numbers!
struct course {int CourseCode;int Semester;
};
course InputCourse();
void main( ){course AllCourses[TotalCourses];cout << “Input the courses: “ << endl;for (int i=0;i<TotalCourses;i++) {
cout << “Course “ << (i+1) << “:“ << endl;AllCourses[i]=InputCourse();}
cout << AllCourses[2].CourseCode << endl;}
course InputCourse(){
course AnyCourse;cout << “Course code : “;cin >> AnyCourse.CourseCode;...return AnyCourse;
}Ειδικά Θέµατα Τηλεπικοινωνιών - Εισαγωγή στη C++Πρόγραµµα Μεταπτυχιακών Σπουδών Ραδιοηλεκτρολογίας
Πίνακες δοµών
![Page 79: Εισαγωγή στη - users.auth.grusers.auth.gr/users/6/7/006676/public_html/docs/CPP_programming.pdfΑρχές προγραµµατισµού Ειδικά Θέµατα Τηλεπικοινωνιών-](https://reader031.vdocuments.pub/reader031/viewer/2022011810/5e08df27a0e394521466227b/html5/thumbnails/79.jpg)
Ειδικά Θέµατα Τηλεπικοινωνιών - Εισαγωγή στη C++Πρόγραµµα Μεταπτυχιακών Σπουδών Ραδιοηλεκτρολογίας
Αλφαριθµητικά
Αλφαριθµητικές µεταβλητές
Παράδειγµα:
char str[120];
char όνοµα-µεταβλητής[µέγεθος+1];
![Page 80: Εισαγωγή στη - users.auth.grusers.auth.gr/users/6/7/006676/public_html/docs/CPP_programming.pdfΑρχές προγραµµατισµού Ειδικά Θέµατα Τηλεπικοινωνιών-](https://reader031.vdocuments.pub/reader031/viewer/2022011810/5e08df27a0e394521466227b/html5/thumbnails/80.jpg)
Ειδικά Θέµατα Τηλεπικοινωνιών - Εισαγωγή στη C++Πρόγραµµα Μεταπτυχιακών Σπουδών Ραδιοηλεκτρολογίας
Αλφαριθµητικά
Αλφαριθµητικές στη µνήµη του Η/Υ
G
o
d
\0
0xDEF8
0xDEF9
0xDEFΑ
0xDEFΒ
str[0]
str[1]
str[2]
str[3]
![Page 81: Εισαγωγή στη - users.auth.grusers.auth.gr/users/6/7/006676/public_html/docs/CPP_programming.pdfΑρχές προγραµµατισµού Ειδικά Θέµατα Τηλεπικοινωνιών-](https://reader031.vdocuments.pub/reader031/viewer/2022011810/5e08df27a0e394521466227b/html5/thumbnails/81.jpg)
Ειδικά Θέµατα Τηλεπικοινωνιών - Εισαγωγή στη C++Πρόγραµµα Μεταπτυχιακών Σπουδών Ραδιοηλεκτρολογίας
Αλφαριθµητικά
Εισαγωγή και εµφάνιση αλφαριθµητικών
Παραδείγµατα:
...char str[120];...cin >> str;...cin >> setw(120) >> str;...cout << str;
![Page 82: Εισαγωγή στη - users.auth.grusers.auth.gr/users/6/7/006676/public_html/docs/CPP_programming.pdfΑρχές προγραµµατισµού Ειδικά Θέµατα Τηλεπικοινωνιών-](https://reader031.vdocuments.pub/reader031/viewer/2022011810/5e08df27a0e394521466227b/html5/thumbnails/82.jpg)
Ειδικά Θέµατα Τηλεπικοινωνιών - Εισαγωγή στη C++Πρόγραµµα Μεταπτυχιακών Σπουδών Ραδιοηλεκτρολογίας
Αλφαριθµητικά
Αλφαριθµητικές σταθερές
Παραδείγµατα:
char str[]=“hello”;char str[]={‘h’,’e’,’l’,’l’,’o’};
![Page 83: Εισαγωγή στη - users.auth.grusers.auth.gr/users/6/7/006676/public_html/docs/CPP_programming.pdfΑρχές προγραµµατισµού Ειδικά Θέµατα Τηλεπικοινωνιών-](https://reader031.vdocuments.pub/reader031/viewer/2022011810/5e08df27a0e394521466227b/html5/thumbnails/83.jpg)
Ειδικά Θέµατα Τηλεπικοινωνιών - Εισαγωγή στη C++Πρόγραµµα Μεταπτυχιακών Σπουδών Ραδιοηλεκτρολογίας
Αλφαριθµητικά
Εισαγωγή µε τη συνάρητηση cin::get()
Παραδείγµατα:
...char str[100];...cin.get(str,100);...cin.get(str,100,’%’);
![Page 84: Εισαγωγή στη - users.auth.grusers.auth.gr/users/6/7/006676/public_html/docs/CPP_programming.pdfΑρχές προγραµµατισµού Ειδικά Θέµατα Τηλεπικοινωνιών-](https://reader031.vdocuments.pub/reader031/viewer/2022011810/5e08df27a0e394521466227b/html5/thumbnails/84.jpg)
#include <iostream.h>#include <string.h>
const int StringMax=100;
void main( ){char String1[]=“This is the string”;char String2[StringMax];int i;
for(i=0;i<strlen(String1);i++)String2[i]=String1[i];
String2[i]=‘\0’;cout << endl << String2 << endl;}
Ειδικά Θέµατα Τηλεπικοινωνιών - Εισαγωγή στη C++Πρόγραµµα Μεταπτυχιακών Σπουδών Ραδιοηλεκτρολογίας
Αντιγραφή αλφαριθµητικού
![Page 85: Εισαγωγή στη - users.auth.grusers.auth.gr/users/6/7/006676/public_html/docs/CPP_programming.pdfΑρχές προγραµµατισµού Ειδικά Θέµατα Τηλεπικοινωνιών-](https://reader031.vdocuments.pub/reader031/viewer/2022011810/5e08df27a0e394521466227b/html5/thumbnails/85.jpg)
#include <iostream.h>
const int StringMax=100;const int MaxNames=6;
void main( ){char Names[MaxNames][StringMax]={“akis”,“makis”,”takis”,”vakis”,”sakis”,”lakis”};
int i;
cout << “The Names are:”<< endl;for(i=0;i<MaxNames;i++)cout << Names[i] << endl;
}
Ειδικά Θέµατα Τηλεπικοινωνιών - Εισαγωγή στη C++Πρόγραµµα Μεταπτυχιακών Σπουδών Ραδιοηλεκτρολογίας
Πίνακες αλφαριθµητικών
![Page 86: Εισαγωγή στη - users.auth.grusers.auth.gr/users/6/7/006676/public_html/docs/CPP_programming.pdfΑρχές προγραµµατισµού Ειδικά Θέµατα Τηλεπικοινωνιών-](https://reader031.vdocuments.pub/reader031/viewer/2022011810/5e08df27a0e394521466227b/html5/thumbnails/86.jpg)
Ειδικά Θέµατα Τηλεπικοινωνιών - Εισαγωγή στη C++Πρόγραµµα Μεταπτυχιακών Σπουδών Ραδιοηλεκτρολογίας
Ορισµός τάξης
Τάξεις
class όνοµα-τάξης{
private:...protected:…public:…
};
![Page 87: Εισαγωγή στη - users.auth.grusers.auth.gr/users/6/7/006676/public_html/docs/CPP_programming.pdfΑρχές προγραµµατισµού Ειδικά Θέµατα Τηλεπικοινωνιών-](https://reader031.vdocuments.pub/reader031/viewer/2022011810/5e08df27a0e394521466227b/html5/thumbnails/87.jpg)
Ειδικά Θέµατα Τηλεπικοινωνιών - Εισαγωγή στη C++Πρόγραµµα Μεταπτυχιακών Σπουδών Ραδιοηλεκτρολογίας
Ορισµός τάξης
Τάξεις
Παράδειγµα:
class Simple{private:
int data;public:
void setdata(int d) {data=d;}void showdata() {cout << data << endl;}
};
![Page 88: Εισαγωγή στη - users.auth.grusers.auth.gr/users/6/7/006676/public_html/docs/CPP_programming.pdfΑρχές προγραµµατισµού Ειδικά Θέµατα Τηλεπικοινωνιών-](https://reader031.vdocuments.pub/reader031/viewer/2022011810/5e08df27a0e394521466227b/html5/thumbnails/88.jpg)
Ειδικά Θέµατα Τηλεπικοινωνιών - Εισαγωγή στη C++Πρόγραµµα Μεταπτυχιακών Σπουδών Ραδιοηλεκτρολογίας
Ορισµός τάξης (1/2)
Τάξεις
Παράδειγµα αρχείου κεφαλίδας (“Simple.h”):
class Simple{private:
int data;public:
void setdata(int );void showdata();
};
![Page 89: Εισαγωγή στη - users.auth.grusers.auth.gr/users/6/7/006676/public_html/docs/CPP_programming.pdfΑρχές προγραµµατισµού Ειδικά Θέµατα Τηλεπικοινωνιών-](https://reader031.vdocuments.pub/reader031/viewer/2022011810/5e08df27a0e394521466227b/html5/thumbnails/89.jpg)
Ειδικά Θέµατα Τηλεπικοινωνιών - Εισαγωγή στη C++Πρόγραµµα Μεταπτυχιακών Σπουδών Ραδιοηλεκτρολογίας
Ορισµός τάξης (2/2)
Τάξεις
Παράδειγµα πηγαίου κώδικα:
#include “Simple.h”
void Simple::setdata(int d) {
data=d;}
void Simple::showdata(){
cout << data << endl;}
![Page 90: Εισαγωγή στη - users.auth.grusers.auth.gr/users/6/7/006676/public_html/docs/CPP_programming.pdfΑρχές προγραµµατισµού Ειδικά Θέµατα Τηλεπικοινωνιών-](https://reader031.vdocuments.pub/reader031/viewer/2022011810/5e08df27a0e394521466227b/html5/thumbnails/90.jpg)
Ειδικά Θέµατα Τηλεπικοινωνιών - Εισαγωγή στη C++Πρόγραµµα Μεταπτυχιακών Σπουδών Ραδιοηλεκτρολογίας
Μέθοδος εγκατάστασης (1/2)
Αντικείµενα
Παράδειγµα αρχείου κεφαλίδας (“Counter.h”):
#include <iostream.h>class Counter{
private:unsigned int count;
public:Counter( ) { count = 0; }void inc_count( ) { count++; }int get_count( ) { return count; }
};
![Page 91: Εισαγωγή στη - users.auth.grusers.auth.gr/users/6/7/006676/public_html/docs/CPP_programming.pdfΑρχές προγραµµατισµού Ειδικά Θέµατα Τηλεπικοινωνιών-](https://reader031.vdocuments.pub/reader031/viewer/2022011810/5e08df27a0e394521466227b/html5/thumbnails/91.jpg)
Ειδικά Θέµατα Τηλεπικοινωνιών - Εισαγωγή στη C++Πρόγραµµα Μεταπτυχιακών Σπουδών Ραδιοηλεκτρολογίας
Μέθοδος εγκατάστασης (2/2)
Αντικείµενα
Παράδειγµα πηγαίου κώδικα:#include “Counter.h”void main( ){Counter c1, c2;cout << "\nc1=" << c1.get_count( );cout << "\nc2=" << c2.get_count( );c1.inc_count( ); c2.inc_count( ); c2.inc_count( );cout << "\nc1=" << c1.get_count( );cout << "\nc2=" << c2.get_count( );
}
![Page 92: Εισαγωγή στη - users.auth.grusers.auth.gr/users/6/7/006676/public_html/docs/CPP_programming.pdfΑρχές προγραµµατισµού Ειδικά Θέµατα Τηλεπικοινωνιών-](https://reader031.vdocuments.pub/reader031/viewer/2022011810/5e08df27a0e394521466227b/html5/thumbnails/92.jpg)
Ειδικά Θέµατα Τηλεπικοινωνιών - Εισαγωγή στη C++Πρόγραµµα Μεταπτυχιακών Σπουδών Ραδιοηλεκτρολογίας
Μέθοδος αποσύνδεσης
Αντικείµενα
Παράδειγµα αρχείου κεφαλίδας (“Counter.h”):
#include <iostream.h>class Counter{
private:unsigned int count;
public:Counter( ) { count = 0; }
...~Counter() { }
};
![Page 93: Εισαγωγή στη - users.auth.grusers.auth.gr/users/6/7/006676/public_html/docs/CPP_programming.pdfΑρχές προγραµµατισµού Ειδικά Θέµατα Τηλεπικοινωνιών-](https://reader031.vdocuments.pub/reader031/viewer/2022011810/5e08df27a0e394521466227b/html5/thumbnails/93.jpg)
Παράδειγµα αρχείου κεφαλίδας (“Distance.h”):
class Distance {
private:int feet;float inches;
public:Distance( ) { }Distance(int ft, float in);void getdist( );void showdist( );void add_dist( Distance, Distance );
};
Ειδικά Θέµατα Τηλεπικοινωνιών - Εισαγωγή στη C++Πρόγραµµα Μεταπτυχιακών Σπουδών Ραδιοηλεκτρολογίας
Αντικείµενα ως ορίσµατα (1/3)
![Page 94: Εισαγωγή στη - users.auth.grusers.auth.gr/users/6/7/006676/public_html/docs/CPP_programming.pdfΑρχές προγραµµατισµού Ειδικά Θέµατα Τηλεπικοινωνιών-](https://reader031.vdocuments.pub/reader031/viewer/2022011810/5e08df27a0e394521466227b/html5/thumbnails/94.jpg)
Παράδειγµα πηγαίου κώδικα (“Distance.cpp”):#include “Distance.h”Distance::Distance(int ft, float in) {feet = ft; inches = in; }
void Distance::getdist( ) {cout << "\nGive feet: "; cin >> feet;cout << ”Give inches: "; cin >> inches;
}
void Distance::showdist( ) {cout << feet << "\'-" << inches << '\"';
}
void Distance::add_dist(Distance d2, Distance d3) {inches = d2.inches + d3.inches;feet = 0; if(inches >= 12.0){
inches -= 12.0;feet++; }
feet += d2.feet + d3.feet;}
Ειδικά Θέµατα Τηλεπικοινωνιών - Εισαγωγή στη C++Πρόγραµµα Μεταπτυχιακών Σπουδών Ραδιοηλεκτρολογίας
Αντικείµενα ως ορίσµατα (2/3)
![Page 95: Εισαγωγή στη - users.auth.grusers.auth.gr/users/6/7/006676/public_html/docs/CPP_programming.pdfΑρχές προγραµµατισµού Ειδικά Θέµατα Τηλεπικοινωνιών-](https://reader031.vdocuments.pub/reader031/viewer/2022011810/5e08df27a0e394521466227b/html5/thumbnails/95.jpg)
Παράδειγµα πηγαίου κώδικα (“MainProgram.cpp”):
#include “Distance.h”void main( ){Distance dist1, dist3;Distance dist2(11, 6.25);dist1.getdist( ); dist3.add_dist(dist1, dist2);cout << "\ndist1 = "; dist1.showdist( );cout << "\ndist2 = "; dist2.showdist( );cout << "\ndist3 = "; dist3.showdist( );}
Ειδικά Θέµατα Τηλεπικοινωνιών - Εισαγωγή στη C++Πρόγραµµα Μεταπτυχιακών Σπουδών Ραδιοηλεκτρολογίας
Αντικείµενα ως ορίσµατα (3/3)
![Page 96: Εισαγωγή στη - users.auth.grusers.auth.gr/users/6/7/006676/public_html/docs/CPP_programming.pdfΑρχές προγραµµατισµού Ειδικά Θέµατα Τηλεπικοινωνιών-](https://reader031.vdocuments.pub/reader031/viewer/2022011810/5e08df27a0e394521466227b/html5/thumbnails/96.jpg)
Παράδειγµα αρχείου κεφαλίδας (“Distance.h”):
class Distance {
private:int feet;float inches;
public:Distance( ) { }Distance(int ft, float in);void getdist( );void showdist( );Distance add_dist( Distance );
};
Ειδικά Θέµατα Τηλεπικοινωνιών - Εισαγωγή στη C++Πρόγραµµα Μεταπτυχιακών Σπουδών Ραδιοηλεκτρολογίας
Επιστροφή αντικειµένων (1/3)
![Page 97: Εισαγωγή στη - users.auth.grusers.auth.gr/users/6/7/006676/public_html/docs/CPP_programming.pdfΑρχές προγραµµατισµού Ειδικά Θέµατα Τηλεπικοινωνιών-](https://reader031.vdocuments.pub/reader031/viewer/2022011810/5e08df27a0e394521466227b/html5/thumbnails/97.jpg)
Παράδειγµα πηγαίου κώδικα (“Distance.cpp”):#include “Distance.h”Distance::Distance(int ft, float in) {feet = ft; inches = in; }
...
Distance Distance::add_dist(Distance d2) {Distance temp;temp.inches=inches + d2.inches;if(temp.inches >= 12.0){
temp.inches -= 12.0;temp.feet=1; }
temp.feet += feet + d2.feet;return temp;
}
Ειδικά Θέµατα Τηλεπικοινωνιών - Εισαγωγή στη C++Πρόγραµµα Μεταπτυχιακών Σπουδών Ραδιοηλεκτρολογίας
Επιστροφή αντικειµένων (2/3)
![Page 98: Εισαγωγή στη - users.auth.grusers.auth.gr/users/6/7/006676/public_html/docs/CPP_programming.pdfΑρχές προγραµµατισµού Ειδικά Θέµατα Τηλεπικοινωνιών-](https://reader031.vdocuments.pub/reader031/viewer/2022011810/5e08df27a0e394521466227b/html5/thumbnails/98.jpg)
Παράδειγµα πηγαίου κώδικα (“MainProgram.cpp”):
#include “Distance.h”void main( ){Distance dist1, dist3;Distance dist2(11, 6.25);dist1.getdist( ); dist3=dist1.add_dist(dist2);cout << "\ndist1 = "; dist1.showdist( );cout << "\ndist2 = "; dist2.showdist( );cout << "\ndist3 = "; dist3.showdist( );}
Ειδικά Θέµατα Τηλεπικοινωνιών - Εισαγωγή στη C++Πρόγραµµα Μεταπτυχιακών Σπουδών Ραδιοηλεκτρολογίας
Επιστροφή αντικειµένων (3/3)
![Page 99: Εισαγωγή στη - users.auth.grusers.auth.gr/users/6/7/006676/public_html/docs/CPP_programming.pdfΑρχές προγραµµατισµού Ειδικά Θέµατα Τηλεπικοινωνιών-](https://reader031.vdocuments.pub/reader031/viewer/2022011810/5e08df27a0e394521466227b/html5/thumbnails/99.jpg)
Ειδικά Θέµατα Τηλεπικοινωνιών - Εισαγωγή στη C++Πρόγραµµα Μεταπτυχιακών Σπουδών Ραδιοηλεκτρολογίας
Τάξεις και Αντικείµενα στη Μνήµη
•Μεταβλητές περίπτωσης - οµότυπα
•Αποθήκευση δεδοµένων - µεθόδων
•Στατικά δεδοµένα τάξης
![Page 100: Εισαγωγή στη - users.auth.grusers.auth.gr/users/6/7/006676/public_html/docs/CPP_programming.pdfΑρχές προγραµµατισµού Ειδικά Θέµατα Τηλεπικοινωνιών-](https://reader031.vdocuments.pub/reader031/viewer/2022011810/5e08df27a0e394521466227b/html5/thumbnails/100.jpg)
Ειδικά Θέµατα Τηλεπικοινωνιών - Εισαγωγή στη C++Πρόγραµµα Μεταπτυχιακών Σπουδών Ραδιοηλεκτρολογίας
Στατικά δεδοµένα τάξηςΠαράδειγµα:#include <iostream.h>class foo {private:static int count;
public:foo( ) { count++; }int getcount( ) { return count; }
};void main( ){foo f1, f2, f3;cout << "\ncount is: " << f1.getcount( );cout << "\ncount is: " << f2.getcount( );cout << "\ncount is: " << f3.getcount( );}
Τάξεις και Αντικείµενα στη Μνήµη
![Page 101: Εισαγωγή στη - users.auth.grusers.auth.gr/users/6/7/006676/public_html/docs/CPP_programming.pdfΑρχές προγραµµατισµού Ειδικά Θέµατα Τηλεπικοινωνιών-](https://reader031.vdocuments.pub/reader031/viewer/2022011810/5e08df27a0e394521466227b/html5/thumbnails/101.jpg)
Ειδικά Θέµατα Τηλεπικοινωνιών - Εισαγωγή στη C++Πρόγραµµα Μεταπτυχιακών Σπουδών Ραδιοηλεκτρολογίας
Υπέρβαση µοναδιαίων τελεστών (1/2)Παράδειγµα:#include <iostream.h>class Counter{private:unsigned int count;public:Counter( ) { count = 0; }int get_count( ) { return count; }void operator ++ ( ) { count++; }
};void main( ){Counter c2;cout << "\nc2=" << c2.get_count( );c2++;++c2;cout << "\nc2=" << c2.get_count( );}
Υπέρβαση τελεστών
![Page 102: Εισαγωγή στη - users.auth.grusers.auth.gr/users/6/7/006676/public_html/docs/CPP_programming.pdfΑρχές προγραµµατισµού Ειδικά Θέµατα Τηλεπικοινωνιών-](https://reader031.vdocuments.pub/reader031/viewer/2022011810/5e08df27a0e394521466227b/html5/thumbnails/102.jpg)
Ειδικά Θέµατα Τηλεπικοινωνιών - Εισαγωγή στη C++Πρόγραµµα Μεταπτυχιακών Σπουδών Ραδιοηλεκτρολογίας
Υπέρβαση µοναδιαίων τελεστών (2/2)Παράδειγµα:#include <iostream.h>class Counter{...Counter operator ++ ( ) {
count++;Counter temp;Counter temp.count = count;return temp;}
};void main( ) {Counter c1,c2;cout << "\nc2=" << c2.get_count( );c2++;c1=c2++;cout << "\nc2=" << c2++.get_count( );}
Υπέρβαση τελεστών
![Page 103: Εισαγωγή στη - users.auth.grusers.auth.gr/users/6/7/006676/public_html/docs/CPP_programming.pdfΑρχές προγραµµατισµού Ειδικά Θέµατα Τηλεπικοινωνιών-](https://reader031.vdocuments.pub/reader031/viewer/2022011810/5e08df27a0e394521466227b/html5/thumbnails/103.jpg)
#include <iostream.h>class Distance{
private:int feet;float inches;
public:Distance( ) { feet = 0; inches = 0.0; }Distance(int ft, float in) { feet = ft; inches = in; }void getdist( ) {
cout << ”give feet: "; cin >> feet;cout << ”give inches: "; cin >> inches;}
void showdist( ) { cout << feet << "\'-" << inches << '\"'; }Distance operator + ( Distance );
};
Ειδικά Θέµατα Τηλεπικοινωνιών - Εισαγωγή στη C++Πρόγραµµα Μεταπτυχιακών Σπουδών Ραδιοηλεκτρολογίας
Υπέρβαση δυαδικών τελεστών (1/3)“Distance.h”
![Page 104: Εισαγωγή στη - users.auth.grusers.auth.gr/users/6/7/006676/public_html/docs/CPP_programming.pdfΑρχές προγραµµατισµού Ειδικά Θέµατα Τηλεπικοινωνιών-](https://reader031.vdocuments.pub/reader031/viewer/2022011810/5e08df27a0e394521466227b/html5/thumbnails/104.jpg)
#include “Distance.h”Distance Distance::operator + (Distance d2)
{int f = feet + d2.feet; float i = inches + d2.inches; if(i >= 12.0)
{ i -= 12.0; f++; }
return Distance(f,i); }
Ειδικά Θέµατα Τηλεπικοινωνιών - Εισαγωγή στη C++Πρόγραµµα Μεταπτυχιακών Σπουδών Ραδιοηλεκτρολογίας
Υπέρβαση δυαδικών τελεστών (2/3)“Distance.cpp”
![Page 105: Εισαγωγή στη - users.auth.grusers.auth.gr/users/6/7/006676/public_html/docs/CPP_programming.pdfΑρχές προγραµµατισµού Ειδικά Θέµατα Τηλεπικοινωνιών-](https://reader031.vdocuments.pub/reader031/viewer/2022011810/5e08df27a0e394521466227b/html5/thumbnails/105.jpg)
#include “Distance.h”void main( )
{Distance dist1, dist3, dist4; dist1.getdist( ); Distance dist2(11, 6.25); dist3 = dist1 + dist2; dist4 = dist1 + dist2 + dist3;cout << "\ndist1 = "; dist1.showdist( );cout << "\ndist2 = "; dist2.showdist( );cout << "\ndist3 = "; dist3.showdist( );cout << "\ndist4 = "; dist4.showdist( );}
Ειδικά Θέµατα Τηλεπικοινωνιών - Εισαγωγή στη C++Πρόγραµµα Μεταπτυχιακών Σπουδών Ραδιοηλεκτρολογίας
Υπέρβαση δυαδικών τελεστών (3/3)“MainProgram.cpp”
![Page 106: Εισαγωγή στη - users.auth.grusers.auth.gr/users/6/7/006676/public_html/docs/CPP_programming.pdfΑρχές προγραµµατισµού Ειδικά Θέµατα Τηλεπικοινωνιών-](https://reader031.vdocuments.pub/reader031/viewer/2022011810/5e08df27a0e394521466227b/html5/thumbnails/106.jpg)
Ειδικά Θέµατα Τηλεπικοινωνιών - Εισαγωγή στη C++Πρόγραµµα Μεταπτυχιακών Σπουδών Ραδιοηλεκτρολογίας
Μετατροπή δεδοµένων
αντικείµενο προορισµού
objectA = objectB
αντικείµενο προέλευσης
![Page 107: Εισαγωγή στη - users.auth.grusers.auth.gr/users/6/7/006676/public_html/docs/CPP_programming.pdfΑρχές προγραµµατισµού Ειδικά Θέµατα Τηλεπικοινωνιών-](https://reader031.vdocuments.pub/reader031/viewer/2022011810/5e08df27a0e394521466227b/html5/thumbnails/107.jpg)
Ειδικά Θέµατα Τηλεπικοινωνιών - Εισαγωγή στη C++Πρόγραµµα Μεταπτυχιακών Σπουδών Ραδιοηλεκτρολογίας
Μετατροπή δεδοµένων
Μετατροπές Τύπων
αντικείµενο αντικείµενοπροορισµού προέλευσης
βασικός σε βασικό - -
βασικός σε τάξη constructor -
τάξη σε βασικό - µέθοδος µετατροπής
τάξη σε τάξη constructor µέθοδος µετατροπής
![Page 108: Εισαγωγή στη - users.auth.grusers.auth.gr/users/6/7/006676/public_html/docs/CPP_programming.pdfΑρχές προγραµµατισµού Ειδικά Θέµατα Τηλεπικοινωνιών-](https://reader031.vdocuments.pub/reader031/viewer/2022011810/5e08df27a0e394521466227b/html5/thumbnails/108.jpg)
Ειδικά Θέµατα Τηλεπικοινωνιών - Εισαγωγή στη C++Πρόγραµµα Μεταπτυχιακών Σπουδών Ραδιοηλεκτρολογίας
Κληρονοµικότητα
•∆ιαδικασία δηµιουργίας παραγώγων τάξεων (derived classes)
απόβασικές τάξεις (base classes)
•Επαναχρησιµοποίηση κώδικα
![Page 109: Εισαγωγή στη - users.auth.grusers.auth.gr/users/6/7/006676/public_html/docs/CPP_programming.pdfΑρχές προγραµµατισµού Ειδικά Θέµατα Τηλεπικοινωνιών-](https://reader031.vdocuments.pub/reader031/viewer/2022011810/5e08df27a0e394521466227b/html5/thumbnails/109.jpg)
Ειδικά Θέµατα Τηλεπικοινωνιών - Εισαγωγή στη C++Πρόγραµµα Μεταπτυχιακών Σπουδών Ραδιοηλεκτρολογίας
Σύνταξη
Παράδειγµα:#include “Counter.h”class CounterDown : public Counter{public:
Counter operator--() {count--;return Counter(count);
};
Κληρονοµικότητα
![Page 110: Εισαγωγή στη - users.auth.grusers.auth.gr/users/6/7/006676/public_html/docs/CPP_programming.pdfΑρχές προγραµµατισµού Ειδικά Θέµατα Τηλεπικοινωνιών-](https://reader031.vdocuments.pub/reader031/viewer/2022011810/5e08df27a0e394521466227b/html5/thumbnails/110.jpg)
Ειδικά Θέµατα Τηλεπικοινωνιών - Εισαγωγή στη C++Πρόγραµµα Μεταπτυχιακών Σπουδών Ραδιοηλεκτρολογίας
Κληρονοµικότητα
•Προσπέλαση µελών βασικής τάξης:Μέθοδος εγκατάστασηςΜέθοδοι βασικής τάξης
•Καθοριστές πρόσβασης:καθοριστής τάξη παράγωγη τάξη αντικείµενο εκτός τάξης
public + + +protected + + -private + - -
![Page 111: Εισαγωγή στη - users.auth.grusers.auth.gr/users/6/7/006676/public_html/docs/CPP_programming.pdfΑρχές προγραµµατισµού Ειδικά Θέµατα Τηλεπικοινωνιών-](https://reader031.vdocuments.pub/reader031/viewer/2022011810/5e08df27a0e394521466227b/html5/thumbnails/111.jpg)
Ειδικά Θέµατα Τηλεπικοινωνιών - Εισαγωγή στη C++Πρόγραµµα Μεταπτυχιακών Σπουδών Ραδιοηλεκτρολογίας
Κληρονοµικότητα
Μέθοδος εγκατάστασης παράγωγης τάξηςΠαράδειγµα:#include “Counter.h”class CountDn : public Counter{
public:CountDn( ) : Counter( ) { }CountDn(int c) : Counter(c) { }CountDn operator -- ( ) {
count--; return CountDn(count);
}};
![Page 112: Εισαγωγή στη - users.auth.grusers.auth.gr/users/6/7/006676/public_html/docs/CPP_programming.pdfΑρχές προγραµµατισµού Ειδικά Θέµατα Τηλεπικοινωνιών-](https://reader031.vdocuments.pub/reader031/viewer/2022011810/5e08df27a0e394521466227b/html5/thumbnails/112.jpg)
Ειδικά Θέµατα Τηλεπικοινωνιών - Εισαγωγή στη C++Πρόγραµµα Μεταπτυχιακών Σπουδών Ραδιοηλεκτρολογίας
Κληρονοµικότητα
•Υπέρβαση µεθόδων βασικής τάξης
•∆ιάκριση µεταξύ overloaded µεθόδων
•∆ιάκριση µε τον τελεστή ‘::’
![Page 113: Εισαγωγή στη - users.auth.grusers.auth.gr/users/6/7/006676/public_html/docs/CPP_programming.pdfΑρχές προγραµµατισµού Ειδικά Θέµατα Τηλεπικοινωνιών-](https://reader031.vdocuments.pub/reader031/viewer/2022011810/5e08df27a0e394521466227b/html5/thumbnails/113.jpg)
class A{private:
int privdataA; protected:
int protdataA;public:
int pubdataA;};
class B : public A{public:
void funct( ){int a;a = privdataA; a = protdataA; a = pubdataA; }
}; class C : private A
{public:
void funct( ){int a;a = privdataA; a = protdataA; a = pubdataA; }
}; Ειδικά Θέµατα Τηλεπικοινωνιών - Εισαγωγή στη C++Πρόγραµµα Μεταπτυχιακών Σπουδών Ραδιοηλεκτρολογίας
∆ηµόσια και ιδιωτική κληρονοµικότητα(1/2)
![Page 114: Εισαγωγή στη - users.auth.grusers.auth.gr/users/6/7/006676/public_html/docs/CPP_programming.pdfΑρχές προγραµµατισµού Ειδικά Θέµατα Τηλεπικοινωνιών-](https://reader031.vdocuments.pub/reader031/viewer/2022011810/5e08df27a0e394521466227b/html5/thumbnails/114.jpg)
void main( )int a; B objB;a = objB.privdataA; a = objB.protdataA; a = objB.pubdataA; C objC;a = objC.privdataA; a = objC.protdataA; a = objC.pubdataA; }
Ειδικά Θέµατα Τηλεπικοινωνιών - Εισαγωγή στη C++Πρόγραµµα Μεταπτυχιακών Σπουδών Ραδιοηλεκτρολογίας
∆ηµόσια και ιδιωτική κληρονοµικότητα (2/2)
![Page 115: Εισαγωγή στη - users.auth.grusers.auth.gr/users/6/7/006676/public_html/docs/CPP_programming.pdfΑρχές προγραµµατισµού Ειδικά Θέµατα Τηλεπικοινωνιών-](https://reader031.vdocuments.pub/reader031/viewer/2022011810/5e08df27a0e394521466227b/html5/thumbnails/115.jpg)
Ειδικά Θέµατα Τηλεπικοινωνιών - Εισαγωγή στη C++Πρόγραµµα Μεταπτυχιακών Σπουδών Ραδιοηλεκτρολογίας
∆είκτες
•Σειριακή µνήµη Η/Υ
•Μονοσήµαντη - µονότονη αρίθµηση
•Μέγεθος µεταβλητών
![Page 116: Εισαγωγή στη - users.auth.grusers.auth.gr/users/6/7/006676/public_html/docs/CPP_programming.pdfΑρχές προγραµµατισµού Ειδικά Θέµατα Τηλεπικοινωνιών-](https://reader031.vdocuments.pub/reader031/viewer/2022011810/5e08df27a0e394521466227b/html5/thumbnails/116.jpg)
Τύποι µεταβλητών (32bit)
Ειδικά Θέµατα Τηλεπικοινωνιών - Εισαγωγή στη C++Πρόγραµµα Μεταπτυχιακών Σπουδών Ραδιοηλεκτρολογίας
Type Size (bits) Range Sample applications
unsigned char 8 0 <= X <= 255 Small numbers and full PC character set
char 8 -128 <= X <= 127 Very small numbers andASCII characters
short int 16 -32,768 <= X <= 32,767 Counting, small numbers,loop control
unsigned int 32 0 <= X <= 4,294,967,295 Large numbers and loopsint 32 -2,147,483,648 <= X <= 2,147,483,647 Counting, small numbers,
loop controlunsigned long 32 0 <= X <= 4,294,967,295 Astronomical distancesenum 32 -2,147,483,648 <= X <= 2,147,483,647 Ordered sets of valueslong 32 -2,147,483,648 <= X <= 2,147,483,647 Large numbers, populationsfloat 32 1.18 10^-38 < |X| < 3.40 10^38 Scientific (7-digit) precisiondouble 64 2.23 10^-308 < |X| < 1.79 10^308 Scientific (15-digit) precisionlong double 80 3.37 10^-4932 < |X| < 1.18 10^4932 Financial (18-digit) precision
∆είκτες
![Page 117: Εισαγωγή στη - users.auth.grusers.auth.gr/users/6/7/006676/public_html/docs/CPP_programming.pdfΑρχές προγραµµατισµού Ειδικά Θέµατα Τηλεπικοινωνιών-](https://reader031.vdocuments.pub/reader031/viewer/2022011810/5e08df27a0e394521466227b/html5/thumbnails/117.jpg)
Ειδικά Θέµατα Τηλεπικοινωνιών - Εισαγωγή στη C++Πρόγραµµα Μεταπτυχιακών Σπουδών Ραδιοηλεκτρολογίας
∆είκτες
Τελεστής διεύθυνσης &
Παράδειγµα:#include <iostream.h>void main(){
int var=1;double fvar=1.0;
cout << &var << endl<< &fvar << endl;
}
![Page 118: Εισαγωγή στη - users.auth.grusers.auth.gr/users/6/7/006676/public_html/docs/CPP_programming.pdfΑρχές προγραµµατισµού Ειδικά Θέµατα Τηλεπικοινωνιών-](https://reader031.vdocuments.pub/reader031/viewer/2022011810/5e08df27a0e394521466227b/html5/thumbnails/118.jpg)
Ειδικά Θέµατα Τηλεπικοινωνιών - Εισαγωγή στη C++Πρόγραµµα Μεταπτυχιακών Σπουδών Ραδιοηλεκτρολογίας
∆είκτες
Μεταβλητές δείκτηΠαράδειγµα:#include <iostream.h>void main(){
int var=1;int* p_var;double fvar=1.0;double *p_fvar;p_var=&var;p_fvar=&fvar;cout << p_var << endl
<< p_fvar << endl;}
![Page 119: Εισαγωγή στη - users.auth.grusers.auth.gr/users/6/7/006676/public_html/docs/CPP_programming.pdfΑρχές προγραµµατισµού Ειδικά Θέµατα Τηλεπικοινωνιών-](https://reader031.vdocuments.pub/reader031/viewer/2022011810/5e08df27a0e394521466227b/html5/thumbnails/119.jpg)
Ειδικά Θέµατα Τηλεπικοινωνιών - Εισαγωγή στη C++Πρόγραµµα Μεταπτυχιακών Σπουδών Ραδιοηλεκτρολογίας
∆είκτεςΠροσπέλαση µεταβλητής που δείχνει ο δείκτης
Παράδειγµα:#include <iostream.h>void main(){
int var=1;int* p_var;p_var=&var;
cout << “variable in address: “ << p_var<< “ has the value: “ << *p_var<< endl;
}
Τελεστής έµµεσης αναφοράς * (1/2)
![Page 120: Εισαγωγή στη - users.auth.grusers.auth.gr/users/6/7/006676/public_html/docs/CPP_programming.pdfΑρχές προγραµµατισµού Ειδικά Θέµατα Τηλεπικοινωνιών-](https://reader031.vdocuments.pub/reader031/viewer/2022011810/5e08df27a0e394521466227b/html5/thumbnails/120.jpg)
Ειδικά Θέµατα Τηλεπικοινωνιών - Εισαγωγή στη C++Πρόγραµµα Μεταπτυχιακών Σπουδών Ραδιοηλεκτρολογίας
∆είκτεςΠροσπέλαση µεταβλητής που δείχνει ο δείκτης
Παράδειγµα:#include <iostream.h>void main(){int var1,var2;int* p_var;p_var=&var1; // δώσε στο δείκτη p_var τη
// διεύθυνση της µεταβλητής var1*p_var=1; // δώσε στη µεταβλητή στην οποία δείχνει ο
// δείκτης p_var (δηλ. στη µεταβλητή var1// την τιµη 1
var2=*p_var; // ισοδύναµο µε var2=1;
cout << “var1=“ << var1 << endl << “var2=“ << var2 << endl;}
Τελεστής έµµεσης αναφοράς * (2/2)
![Page 121: Εισαγωγή στη - users.auth.grusers.auth.gr/users/6/7/006676/public_html/docs/CPP_programming.pdfΑρχές προγραµµατισµού Ειδικά Θέµατα Τηλεπικοινωνιών-](https://reader031.vdocuments.pub/reader031/viewer/2022011810/5e08df27a0e394521466227b/html5/thumbnails/121.jpg)
Ειδικά Θέµατα Τηλεπικοινωνιών - Εισαγωγή στη C++Πρόγραµµα Μεταπτυχιακών Σπουδών Ραδιοηλεκτρολογίας
∆είκτες∆είκτης για τύπο void
Παράδειγµα:#include <iostream.h>void main(){
int var=1;int* p_var;double fvar=1.0;void* p_void;
p_var=&fvar; // λάθοςp_void=&fvar; // σωστό
}
![Page 122: Εισαγωγή στη - users.auth.grusers.auth.gr/users/6/7/006676/public_html/docs/CPP_programming.pdfΑρχές προγραµµατισµού Ειδικά Θέµατα Τηλεπικοινωνιών-](https://reader031.vdocuments.pub/reader031/viewer/2022011810/5e08df27a0e394521466227b/html5/thumbnails/122.jpg)
Ειδικά Θέµατα Τηλεπικοινωνιών - Εισαγωγή στη C++Πρόγραµµα Μεταπτυχιακών Σπουδών Ραδιοηλεκτρολογίας
∆είκτες∆είκτες για πίνακες (1/2)
Παράδειγµα:#include <iostream.h>void main(){
int i,iarray={ 2, 45, 39 }; for(i=0;i<3;i++)
cout << iarray[i] << endl;for(i=0;i<3;i++)
cout << *(iarray+i) << endl;for(i=0;i<3;i++)
cout << *(iarray++) << endl; // λάθος}
![Page 123: Εισαγωγή στη - users.auth.grusers.auth.gr/users/6/7/006676/public_html/docs/CPP_programming.pdfΑρχές προγραµµατισµού Ειδικά Θέµατα Τηλεπικοινωνιών-](https://reader031.vdocuments.pub/reader031/viewer/2022011810/5e08df27a0e394521466227b/html5/thumbnails/123.jpg)
Ειδικά Θέµατα Τηλεπικοινωνιών - Εισαγωγή στη C++Πρόγραµµα Μεταπτυχιακών Σπουδών Ραδιοηλεκτρολογίας
∆είκτες∆είκτες για πίνακες (2/2)
Παράδειγµα:#include <iostream.h>void main(){
int i,iarray={ 2, 45, 39 };int *parray;parray=iarray;
for(i=0;i<3;i++)cout << *(parray+i) << endl;
for(i=0;i<3;i++)cout << *(parray++) << endl; // σωστό
}
![Page 124: Εισαγωγή στη - users.auth.grusers.auth.gr/users/6/7/006676/public_html/docs/CPP_programming.pdfΑρχές προγραµµατισµού Ειδικά Θέµατα Τηλεπικοινωνιών-](https://reader031.vdocuments.pub/reader031/viewer/2022011810/5e08df27a0e394521466227b/html5/thumbnails/124.jpg)
Ειδικά Θέµατα Τηλεπικοινωνιών - Εισαγωγή στη C++Πρόγραµµα Μεταπτυχιακών Σπουδών Ραδιοηλεκτρολογίας
∆είκτες
Μεταβίβαση µεταβλητών µε αναφοράΠαράδειγµα:#include <iostream.h>void centimize(double&)void main(){
double var=2.3;cout << “var=“ << var << “ inches” << endl;centimize(var);cout << “var=“ << var << “ cm” << endl;
}
void centimize(double& v) {v=v*2.54;}
![Page 125: Εισαγωγή στη - users.auth.grusers.auth.gr/users/6/7/006676/public_html/docs/CPP_programming.pdfΑρχές προγραµµατισµού Ειδικά Θέµατα Τηλεπικοινωνιών-](https://reader031.vdocuments.pub/reader031/viewer/2022011810/5e08df27a0e394521466227b/html5/thumbnails/125.jpg)
Ειδικά Θέµατα Τηλεπικοινωνιών - Εισαγωγή στη C++Πρόγραµµα Μεταπτυχιακών Σπουδών Ραδιοηλεκτρολογίας
∆είκτες
Μεταβίβαση µεταβλητών µε δείκτεςΠαράδειγµα:#include <iostream.h>void centimize(double*)void main(){
double var=2.3;cout << “var=“ << var << “ inches” << endl;centimize(&var);cout << “var=“ << var << “ cm” << endl;
}
void centimize(double* dpntr) {*dpntr=(*dpntr)*2.54;}
![Page 126: Εισαγωγή στη - users.auth.grusers.auth.gr/users/6/7/006676/public_html/docs/CPP_programming.pdfΑρχές προγραµµατισµού Ειδικά Θέµατα Τηλεπικοινωνιών-](https://reader031.vdocuments.pub/reader031/viewer/2022011810/5e08df27a0e394521466227b/html5/thumbnails/126.jpg)
#include <iostream.h>
const int MAX=10;
void centimize(double*, int);
void main(){int N,i;double inchArray[MAX];cout << “Give the number of array elements: ”;cin >> N;cout << “Give the array elements in inches:” << endl; for(i=0;i<N;i++)cin >> *(inchArray+i);
centimize(inchArray,N);cout << “Array elements in cm:” << endl;for(i=0;i<N;i++)cout << *(inchArray+i) << endl;
};
void centimize(double* array, int arraySize){for(int i=0;i<arraySize;i++)*(array+i)=*(array+i)*2.54;
}
Ειδικά Θέµατα Τηλεπικοινωνιών - Εισαγωγή στη C++Πρόγραµµα Μεταπτυχιακών Σπουδών Ραδιοηλεκτρολογίας
Μεταβίβαση πινάκων µε δείκτες
![Page 127: Εισαγωγή στη - users.auth.grusers.auth.gr/users/6/7/006676/public_html/docs/CPP_programming.pdfΑρχές προγραµµατισµού Ειδικά Θέµατα Τηλεπικοινωνιών-](https://reader031.vdocuments.pub/reader031/viewer/2022011810/5e08df27a0e394521466227b/html5/thumbnails/127.jpg)
Ειδικά Θέµατα Τηλεπικοινωνιών - Εισαγωγή στη C++Πρόγραµµα Μεταπτυχιακών Σπουδών Ραδιοηλεκτρολογίας
∆είκτεςΜεταβίβαση αλφαριθµητικών µε δείκτεςΠαράδειγµα:#include <iostream.h>
void dispstr(char*);
void main( ){
char str[ ] = ”I am a string";dispstr(str);
}
void dispstr(char* ps){
while( *ps )cout << *ps++;
cout << endl;}
![Page 128: Εισαγωγή στη - users.auth.grusers.auth.gr/users/6/7/006676/public_html/docs/CPP_programming.pdfΑρχές προγραµµατισµού Ειδικά Θέµατα Τηλεπικοινωνιών-](https://reader031.vdocuments.pub/reader031/viewer/2022011810/5e08df27a0e394521466227b/html5/thumbnails/128.jpg)
Ειδικά Θέµατα Τηλεπικοινωνιών - Εισαγωγή στη C++Πρόγραµµα Μεταπτυχιακών Σπουδών Ραδιοηλεκτρολογίας
∆ιαχείριση µνήµης
•∆υναµική δέσµευση µνήµης
•Οι τελεστές new και delete
•Αποδέσµευση µνήµης
![Page 129: Εισαγωγή στη - users.auth.grusers.auth.gr/users/6/7/006676/public_html/docs/CPP_programming.pdfΑρχές προγραµµατισµού Ειδικά Θέµατα Τηλεπικοινωνιών-](https://reader031.vdocuments.pub/reader031/viewer/2022011810/5e08df27a0e394521466227b/html5/thumbnails/129.jpg)
#include <iostream.h>void centimize(double*, int);void main(){ int N,i;double *inchArray;cout << “Give the number of array elements: ”;cin >> N;inchArray=new double[N];cout << “Give the array elements in inches:” << endl; for(i=0;i<N;i++)cin >> *(inchArray+i);centimize(inchArray,N);cout << “Array elements in cm:” << endl;for(i=0;i<N;i++)cout << *(inchArray+i) << endl;delete inchArray;};
void centimize(double* array, int arraySize){ for(int i=0;i<arraySize;i++)*(array+i)=*(array+i)*2.54;}Ειδικά Θέµατα Τηλεπικοινωνιών - Εισαγωγή στη C++Πρόγραµµα Μεταπτυχιακών Σπουδών Ραδιοηλεκτρολογίας
∆ιαχείριση µνήµης (1/4)
![Page 130: Εισαγωγή στη - users.auth.grusers.auth.gr/users/6/7/006676/public_html/docs/CPP_programming.pdfΑρχές προγραµµατισµού Ειδικά Θέµατα Τηλεπικοινωνιών-](https://reader031.vdocuments.pub/reader031/viewer/2022011810/5e08df27a0e394521466227b/html5/thumbnails/130.jpg)
#include <iostream.h>#include <string.h>class String {private:char* str;
public:String(char* s) {
int length = strlen(s);str = new char[length+1];strcpy(str, s);
}~String( ) {
delete str; }void display( ) {
cout << str;}
};Ειδικά Θέµατα Τηλεπικοινωνιών - Εισαγωγή στη C++Πρόγραµµα Μεταπτυχιακών Σπουδών Ραδιοηλεκτρολογίας
∆ιαχείριση µνήµης (2/4)
#include “String.h”void main( ){String s = ”First”;String* sp1=&s;String* sp2=
new String(“Second”);
cout << endl;s.display( );
cout << endl ;sp1->display( );
cout << endl ;sp2->display( );
delete sp2;}
“String.h” “MainProg.cpp”
![Page 131: Εισαγωγή στη - users.auth.grusers.auth.gr/users/6/7/006676/public_html/docs/CPP_programming.pdfΑρχές προγραµµατισµού Ειδικά Θέµατα Τηλεπικοινωνιών-](https://reader031.vdocuments.pub/reader031/viewer/2022011810/5e08df27a0e394521466227b/html5/thumbnails/131.jpg)
#include <iostream.h>#include <string.h>class String {private:char* str;
public:String(char* s) {
int length = strlen(s);str = new char[length+1];strcpy(str, s);
}~String( ) {
delete str; }void display( ) {
cout << str;}
};Ειδικά Θέµατα Τηλεπικοινωνιών - Εισαγωγή στη C++Πρόγραµµα Μεταπτυχιακών Σπουδών Ραδιοηλεκτρολογίας
∆ιαχείριση µνήµης (3/4)
#include “String.h”void main( ){String* s[2];s[1]=new String(“First”);s[2]=new String(“Second”);
cout << endl;s[1]->display( );
cout << endl ;s[2]->display( );
delete s[1];delete s[2];
}
“String.h” “MainProg.cpp”
![Page 132: Εισαγωγή στη - users.auth.grusers.auth.gr/users/6/7/006676/public_html/docs/CPP_programming.pdfΑρχές προγραµµατισµού Ειδικά Θέµατα Τηλεπικοινωνιών-](https://reader031.vdocuments.pub/reader031/viewer/2022011810/5e08df27a0e394521466227b/html5/thumbnails/132.jpg)
#include <iostream.h>#include <string.h>class String {private:char* str;
public:String(char* s) {
int length = strlen(s);str = new char[length+1];strcpy(str, s);
}~String( ) {
delete str; }void display( ) {
cout << str;}
};Ειδικά Θέµατα Τηλεπικοινωνιών - Εισαγωγή στη C++Πρόγραµµα Μεταπτυχιακών Σπουδών Ραδιοηλεκτρολογίας
∆ιαχείριση µνήµης (4/4)
#include “String.h”void main( ){int i,nNames;char line[100];String** names;cout << “Number of names:”;cin >> nNames;names=new String*[nNames];for(i=0;i<nNames;i++) {cin >> line;names[i]=new String(line);
}cout << “The names are:”
<< endl;for(i=0;i<nNames;i++) {s[i]->display( );cout << endl;
}}
“String.h” “MainProg.cpp”
![Page 133: Εισαγωγή στη - users.auth.grusers.auth.gr/users/6/7/006676/public_html/docs/CPP_programming.pdfΑρχές προγραµµατισµού Ειδικά Θέµατα Τηλεπικοινωνιών-](https://reader031.vdocuments.pub/reader031/viewer/2022011810/5e08df27a0e394521466227b/html5/thumbnails/133.jpg)
Ειδικά Θέµατα Τηλεπικοινωνιών - Εισαγωγή στη C++Πρόγραµµα Μεταπτυχιακών Σπουδών Ραδιοηλεκτρολογίας
Αρχεία και ρεύµατα
•Ρεύµα: ροή δεδοµένων•∆ιαφορετική ροή δεδοµένων
⇒ ∆ιαφορετικό ρεύµα•∆ιαφορετικό ρεύµα
⇒ ∆ιαφορετική τάξη
![Page 134: Εισαγωγή στη - users.auth.grusers.auth.gr/users/6/7/006676/public_html/docs/CPP_programming.pdfΑρχές προγραµµατισµού Ειδικά Θέµατα Τηλεπικοινωνιών-](https://reader031.vdocuments.pub/reader031/viewer/2022011810/5e08df27a0e394521466227b/html5/thumbnails/134.jpg)
Ειδικά Θέµατα Τηλεπικοινωνιών - Εισαγωγή στη C++Πρόγραµµα Μεταπτυχιακών Σπουδών Ραδιοηλεκτρολογίας
Αρχεία και ρεύµατα
αρχείο δίσκου
είσοδος έξοδος
οfstream,<<put()write()
ifstream,>>get()read()
Αρχεία δίσκου
![Page 135: Εισαγωγή στη - users.auth.grusers.auth.gr/users/6/7/006676/public_html/docs/CPP_programming.pdfΑρχές προγραµµατισµού Ειδικά Θέµατα Τηλεπικοινωνιών-](https://reader031.vdocuments.pub/reader031/viewer/2022011810/5e08df27a0e394521466227b/html5/thumbnails/135.jpg)
Ειδικά Θέµατα Τηλεπικοινωνιών - Εισαγωγή στη C++Πρόγραµµα Μεταπτυχιακών Σπουδών Ραδιοηλεκτρολογίας
Είσοδος/Έξοδος αλφαριθµητικών#include <fstream.h>void main( ){const LineSize=80;char buffer[LineSize];
ofstream outfile("TEST.TXT");outfile << "Check this line\n";outfile.close();
ifstream infile("TEST.TXT");while(infile){infile.getline(buffer,LineSize);cout << buffer;}
infile.close(); }
![Page 136: Εισαγωγή στη - users.auth.grusers.auth.gr/users/6/7/006676/public_html/docs/CPP_programming.pdfΑρχές προγραµµατισµού Ειδικά Θέµατα Τηλεπικοινωνιών-](https://reader031.vdocuments.pub/reader031/viewer/2022011810/5e08df27a0e394521466227b/html5/thumbnails/136.jpg)
#include <iostream.h>#include <string.h>class Person {
private:char* name;int age;
public:Person(char* s, int a) {
int length = strlen(s);name = new char[length+1];strcpy(name, s);age=a;
}Person() { }~Person( ) {
delete name; }void show(void) {cout << name << “, “ << age << endl;}
};
Ειδικά Θέµατα Τηλεπικοινωνιών - Εισαγωγή στη C++Πρόγραµµα Μεταπτυχιακών Σπουδών Ραδιοηλεκτρολογίας
#include “Person.h”#include <fstream.h>void main( ){
Person p1(“Name”,30),p2;ofstream outfile(“TEST.DAT”);outfile.write((char *)&p1, sizeof(p1));outfile.close();ifstream infile(“TEST.DAT”);infile.read((char *)&p2, size of(p2));infile.close();p2.show();
}
“Person.h” “MainProg.cpp”
Είσοδος/Έξοδος αντικειµένων
![Page 137: Εισαγωγή στη - users.auth.grusers.auth.gr/users/6/7/006676/public_html/docs/CPP_programming.pdfΑρχές προγραµµατισµού Ειδικά Θέµατα Τηλεπικοινωνιών-](https://reader031.vdocuments.pub/reader031/viewer/2022011810/5e08df27a0e394521466227b/html5/thumbnails/137.jpg)
#include <iostream.h>#include <string.h>class Person {
private:char* name;int age;
public:Person(char* s, int a);Person() {}~Person();friend ostream& operator <<
(ostream& s, Person p);}
Ειδικά Θέµατα Τηλεπικοινωνιών - Εισαγωγή στη C++Πρόγραµµα Μεταπτυχιακών Σπουδών Ραδιοηλεκτρολογίας
“Person.h”
Υπέρβαση τελεστών εισαγωγής/εξαγωγής
#include <iostream.h>#include <string.h>Person::Person(char* s, int a) {
int length = strlen(s);name = new char[length+1];strcpy(name, s);age=a;
}Person::~Person( ) {
delete name; }
ostream& operator << (ostream& s, Person& p) {
cout << name << “, “ << age << endl;return s;
}
“Person.cpp”
![Page 138: Εισαγωγή στη - users.auth.grusers.auth.gr/users/6/7/006676/public_html/docs/CPP_programming.pdfΑρχές προγραµµατισµού Ειδικά Θέµατα Τηλεπικοινωνιών-](https://reader031.vdocuments.pub/reader031/viewer/2022011810/5e08df27a0e394521466227b/html5/thumbnails/138.jpg)
Ειδικά Θέµατα Τηλεπικοινωνιών - Εισαγωγή στη C++Πρόγραµµα Μεταπτυχιακών Σπουδών Ραδιοηλεκτρολογίας
Άλλα θέµατα
•Υπερβατικές συναρτήσεις
•Συναρτήσεις static
•Φίλες συναρτήσεις και τάξεις
•Εγκατάσταση µε αντιγραφή(και ο τελεστής this)