C++ - ΜΑΘΗΜΑ 1 - ΕΙΣΑΓΩΓΗ ΚΑΙ ΣΧΕΣΗ ΜΕ ΤΗ C

Dimitris Psounis
Dimitris PsounisTeacher & Manager at Δημήτρης Ψούνης - Υπηρεσίες Εκπαίδευσης à www.psounis.gr
H ΓΛΩΣΣΑ C++
Μάθημα 1:
Εισαγωγή στην C++ και σχέση με την γλώσσα C
Δημήτρης Ψούνης
Περιεχόμενα Μαθήματος
Α. Θεωρία
1. Η Γλώσσα C++
1. Γενικά
2. Ιστορία – Εκδόσεις
3. Η αναγκαιότητα της C
4. Μεταγλωττιστές
2. Hello World!
1. Πηγαίος Κώδικας
2. Σχόλια
3. Βιβλιοθήκη iostream
4. main, block κώδικα, return
5. Είσοδος/Έξοδος
1. Έξοδος με την cout
2. Οδηγία using
3. Περισσότερα για την cout
4. Είσοδος με την cin
2Δημήτρης Ψούνης, Η Γλώσσα C++, Μάθημα 1: Εισαγωγή στην C++ και σχέση με την C
3. Στοιχεία της C
1. Μεταβλητές
2. Σταθερές
3. Τελεστές και η Δομή Ελέγχου
4. Δομές Επανάληψης
5. Συναρτήσεις
1. Πολυμορφισμός Συναρτήσεων
6. Πίνακες
7. Συμβολοσειρές
8. Δείκτες
Ασκήσεις
A. Θεωρία
1. Η Γλώσσα C++
1. Γενικά
3
Η Γλώσσα Προγραμματισμού C++
• Είναι μια επέκταση της γλώσσας C με
• Την οργάνωση των δεδομένων και των
συναρτήσεων σε μία ενιαία οντότητα που
ονομάζεται κλάση (class)
• Οργάνωση των δεδομένων και των
συναρτήσεων της κλάσης, ώστε να
επιτυγχάνεται απόκρυψη πληροφορίας:
ενθυλάκωση (encapsulation)
• Η δυνατότητα των κλάσεων να
κληρονομούνται (inheritance) από άλλες
κλάσεις και να προσθέτουν την δική τους
λειτουργικότητα
• Η δυνατότητα συναρτήσεων και κλάσεων
να είναι πολυμορφικές (polymorphism)
• Ένα όνομα θα μπορεί να κάνει
διαφορετικές ενέργειες
• Με πολλές καινούργιες βιβλιοθήκες, οι οποίες
κάνουν πιο αποδοτικό τον προγραμματισμό
μεγαλύτερων projects.
Παράδειγμα:
Θέλω να κατασκευάσω ένα παιχνίδι, το
οποίο θα έχει για ήρωα τον σκύλο «Πίκο»
(μικρόσωμο) και τον σκύλο «Αζόρ»
(μεγαλόσωμο)
• Θα ορίσω μία κλάση με όνομα σκύλος
με όλη τη συμπεριφορά του σκύλου
• Η ενέργεια «γάβγισε» θα είναι δημόσια,
ενώ η ενέργεια «εκνευρισμός» θα είναι
εσωτερική (ενθυλάκωση)
• Την κλάση αυτή θα την κληρονομούν
δύο υπό-κλάσεις οι οποίες θα
εξειδικεύουν τα χαρακτηριστικά των
μεγαλόσωμων και μικρόσωμων σκύλων.
• Ο Πίκο θα είναι ένα αντικείμενο της
κλάσης «Μικρόσωμος σκύλος»
• Η κλάση θα έχει μία μέθοδο «γάβγισε»,
που θα αντιδρά διαφορετικά, αν ο σκύλος
γαβγίζει μία γάτα ή έναν άνθρωπο
(πολυμορφισμός)
Δημήτρης Ψούνης, Η Γλώσσα C++, Μάθημα 1: Εισαγωγή στην C++ και σχέση με την C
A. Θεωρία
1. Η Γλώσσα C++
2. Ιστορία – Εκδόσεις C++
4
• 1979 «C with classes» από τον Bjarne Stroustroup
• στα εργαστήρια της Bell και της ΑΤ & T
• 1984 Μετονομασία σε «C++» με αρκετές προσθήκες
• 1989 2η έκδοση της C++ με πολλές προσθήκες ακόμη στη γλώσσα
• 1998 Πρώτη standard έκδοση με πρότυπο ISO
• Από το 2011 βγαίνει μία καινούργια έκδοση κάθε 3 χρόνια συνήθως
με αλλαγές που συνήθως είναι επεκτάσεις της γλώσσας. Εκδόσεις:
• C++11 (2011)
• C++14 (2014)
• C++17 (2017)
• επόμενη έκδοση C++20 (2020)
Bjarne Stroustrup
Σημείωση:
• Το όνομα C++ σημαίνει
• Αύξηση της C κατά 1 (με βάση τον τελεστή ++, που σημαίνει αύξηση κατά 1)
• Άρα είναι μία επέκταση της C, ωστόσο:
• Δεν είναι αυστηρό υπερσύνολο της, υπάρχουν κάποια (λίγα) χαρακτηριστικά της C που
δεν δουλεύουν σε C++.
Δημήτρης Ψούνης, Η Γλώσσα C++, Μάθημα 1: Εισαγωγή στην C++ και σχέση με την C
A. Θεωρία
1. Η Γλώσσα C++
3. Η αναγκαιότητα της C
5
• Η C++ «πατάει» πάνω στην γλώσσα C
• Γι’αυτό είναι απαραίτητη καλή γνώση της C
• Ωστόσο δεν είναι απαραίτητη η γνώση όλων των χαρακτηριστικών της C
• Για παράδειγμα οι περισσότερες βιβλιοθήκες συναρτήσεων αλλάζουν στην C++ και
γίνονται (συνήθως) πιο εύκολες στην χρήση.
• Τα περισσότερα βασικά χαρακτηριστικά όμως είναι ίδια.
• Π.χ. ο χειρισμός
• Μεταβλητών, Τύπων Δεδομένων
• Δομής Ελέγχου, Δομών Επανάληψης
• Συναρτήσεων
• Πινάκων
• Δεικτών
• είναι ίδιος στην C++ και είναι προαπαιτούμενος για την κατανόηση των νέων
χαρακτηριστικών (κλάσεις, κληρονομικότητα κ.λπ.)
• Αλλά η μεγάλη διαφορά της C με την C++ είναι η μετατόπιση του ενδιαφέροντος στην δόμηση
των προγραμμάτων από:
• τις συναρτήσεις της C (διαδικαστικός προγραμματισμός)
• στα αντικείμενα της C++ (αντικειμενοστραφής προγραμματισμός – object oriented
programming)
• Στην συνέχεια του μαθήματος θα κάνουμε μία υπενθύμιση των βασικών χαρακτηριστικών της
γλώσσας C (με κάποια νέα στοιχεία).
Δημήτρης Ψούνης, Η Γλώσσα C++, Μάθημα 1: Εισαγωγή στην C++ και σχέση με την C
A. Θεωρία
1. Η Γλώσσα C++
4. Μεταγλωττιστές
6
• Υπάρχουν δεκάδες μεταγλωττιστές της γλώσσας C++, είτε δωρεάν, είτε με πληρωμή.
• Στα πλαίσια αυτής της σειράς μαθημάτων θα χρησιμοποιήσουμε τον (δωρεάν) online
μεταγλωττιστή OnlineGDB
• Στην σελίδα https://www.onlinegdb.com/
• Χρησιμοποιεί τον μεταγλωττιστή g++
• Έχει μηχανισμό για debugging
Δημήτρης Ψούνης, Η Γλώσσα C++, Μάθημα 1: Εισαγωγή στην C++ και σχέση με την C
A. Θεωρία
2. Hello World!
1. Πηγαίος κώδικας
7
• Δημιουργούμε το νέο project CPP1.helloworld.cpp
• και το εκτελούμε:
/* CPP1.helloworld.cpp */
#include <iostream>
int main()
{
std::cout<<"Hello World!";
return 0;
}
Δημήτρης Ψούνης, Η Γλώσσα C++, Μάθημα 1: Εισαγωγή στην C++ και σχέση με την C
A. Θεωρία
2. Hello World!
2. Σχόλια
8
• Βλέπουμε την πρώτη γραμμή
• Είναι ένα σχόλιο. Συνηθίζεται να γράφουμε στην αρχή, το όνομα του αρχείου με κάποια
επεξηγηματικά σχόλια.
• Τα σχόλια γράφονται όπως στην C και υπάρχουν δύο είδη σχολίων:
• Σχόλια πολλών γραμμών. Ξεκινάνε με /* και τελέιώνουν με */
• Σχόλια μίας γραμμής. Ξεκινάνε με //
/* CPP1.helloworld.cpp */
Δημήτρης Ψούνης, Η Γλώσσα C++, Μάθημα 1: Εισαγωγή στην C++ και σχέση με την C
/* Αυτό
είναι ένα σχόλιο πολλών
γραμμών */
// Αυτό είναι ένα σχόλιο μίας γραμμής
A. Θεωρία
2. Hello World!
3. Βιβλιοθήκη iostream
9
• Βλέπουμε την γραμμή
• Είναι μια οδηγία για τον προεπεξεργαστή (ξεκινά με το #)
• Λέει πρακτικά, βρες το αρχείο (iostream.h) και βάλε τα περιεχόμενά του εδώ.
• Η βιβλιοθήκη iostream.h
• Περιέχει τις standard κλάσεις/συναρτήσεις για τον χειρισμό εισόδου/εξόδου
#include <iostream>
Δημήτρης Ψούνης, Η Γλώσσα C++, Μάθημα 1: Εισαγωγή στην C++ και σχέση με την C
Παρατηρήσεις:
• Η βιβλιοθήκη iostream.h αντικαθιστά την stdio.h της C
• Η βιβλιοθήκη είναι απαραίτητη για το αντικείμενο cout, το οποίο κάνει το χειρισμό της εξόδου
στην οθόνη, εδώ της συμβολοσειράς «Hello World!»
A. Θεωρία
2. Hello World!
4. main, block κώδικα, return
10
• Η συνάρτηση main είναι το σημείο εισόδου του προγράμματος μας.
• Με το που ξεκινάει να τρέχει, εκτελούνται σειριακά οι εντολές μέσα στην main.
• H main υποχρεωτικά επιστρεφει ακέραια τιμή.
• Η επιστροφή γίνεται στο λειτουργικό σύστημα που τρέχει το εκτελέσιμο.
• Η τιμή 0 σημαίνει ότι όλα πήγαν καλά (κατά σύμβαση)
• Ο προγραμματιστής μπορεί να διαχειριστεί μη μηδενικές τιμές για να δείξει (στο
λειτουργικό) ότι κάτι δεν πήγε καλά στην εκτέλεση του προγράμματος.
• Τα άγκιστρα πάντα ορίζουν την αρχή και το τέλος της συνάρτησης main
• και λέμε ότι ορίζεται από αυτά, ένα μπλοκ κώδικα.
int main()
{
…
return 0;
}
Δημήτρης Ψούνης, Η Γλώσσα C++, Μάθημα 1: Εισαγωγή στην C++ και σχέση με την C
Παρατηρήσεις:
• H χρήση της return είναι ίδια με την C
• Είναι μία εντολή, άρα πρέπει να ακολουθείται από ερωτηματικό.
11
• Το αντικείμενο std::cout χρησιμοποιείται για την έξοδο δεδομένων στην οθόνη
• Η πλήρης κατανόηση του, απαιτεί την γνώση κλάσεων, άλλά θα δώσουμε μια πρόχειρη
ιδέα (αν δεν την κατανοούμε πλήρως, δεν πειράζει για την ώρα).
• Η βιβλιοθήκη iostream ορίζει μεταξύ άλλων:
• Ένα αντικείμενο που λέγεται cout το οποίο τυπώνει στην οθόνη
• Οι κλάσεις/αντικείμενα εισόδου/εξόδου της iostream ορίζονται σε έναν χώρο ονομάτων
(namespace) που ονομάζεται std
• Ο χώρος ονομάτων χρησιμοποιείται για να μην έχουν τα αντικείμενα αυτά καθολική
εμβέλεια.
• Ο χώρος ονομάτων std περιέχεται στο iostream.h
• Οπότε η έκφραση std::cout σημαίνει:
• Βρες το αντικείμενο cout το οποίο βρίσκεται στον χώρο ονομάτων std.
• To << θα το ονομάζουμε τελεστή εξόδου.
• Πρακτικά λέμε στο αντικείμενο std::cout, πάρε σαν είσοδο αυτή την συμβολοσειρά
(Hello World!) και τύπωσε την στην οθόνη.
std::cout<<“Hello World!”;
Δημήτρης Ψούνης, Η Γλώσσα C++, Μάθημα 1: Εισαγωγή στην C++ και σχέση με την C
Παρατήρηση:
• Περισσότερα για τους χώρους ονομάτων θα δούμε στη συνέχεια του μαθήματος.
A. Θεωρία
2. Hello World!
5. Είσοδος / Έξοδος (1. Έξοδος με την cout)
12
• Με την οδηγία using, μπορούμε να δώσουμε εντολή στο πρόγραμμα μας:
• να ενσωματώσει στο πρόγραμμα μας ένα στοιχείο (αντικείμενο, σταθερά κ.ο.κ)
• ώστε να μην γράφουμε κάθε φορά που βρίσκεται το αντικείμενο cout
• Έτσι ο ακόλουθος κώδικας είναι κομψότερος:
/* CPP1.helloworld2.cpp using std::cout */
#include <iostream>
using std::cout;
int main()
{
cout<<"Hello World!";
return 0;
}
Δημήτρης Ψούνης, Η Γλώσσα C++, Μάθημα 1: Εισαγωγή στην C++ και σχέση με την C
A. Θεωρία
2. Hello World!
5. Είσοδος / Έξοδος (2. Οδηγία using)
13
• και ο δρόμος του τεμπέλη:
• Δίνουμε οδηγία στο πρόγραμμα μας να ενσωματώσει όλα τα στοιχεία του χώρου ονομάτων
της std.
• Χρησιμοποιώντας την οδηγία using namespace std;
/* CPP1.helloworld3.cpp Ενσωμάτωση όλης της std*/
#include <iostream>
using namespace std;
int main()
{
cout<<"Hello World!";
return 0;
}
Δημήτρης Ψούνης, Η Γλώσσα C++, Μάθημα 1: Εισαγωγή στην C++ και σχέση με την C
A. Θεωρία
2. Hello World!
5. Είσοδος / Έξοδος (2. Οδηγία using)
14
• Ο τελεστής << λέμε ότι είναι υπερφορτωμένος (overloaded)
• διότι μπορεί να προβάλλει στην οθόνη, διαφορετικούς τύπους δεδομένων.
• Στα προηγούμενα παραδείγματα είδαμε πως μπορεί να προβάλλει συμβολοσειρές
• Ας δούμε πως μπορούμε να προβάλλουμε ακέραιες και πραγματικές μεταβλητές
Δημήτρης Ψούνης, Η Γλώσσα C++, Μάθημα 1: Εισαγωγή στην C++ και σχέση με την C
A. Θεωρία
2. Hello World!
5. Είσοδος / Έξοδος (3. Περισσότερα για την cout)
/* CPP1.overloading.cpp Εκτύπωση διαφορετικών τύπων δεδομένων */
#include <iostream>
using namespace std;
int main()
{
int x = 5;
double y = 5.01;
cout<<"To x einai ";
cout<<x;
cout<<" kai to y einai ";
cout<<y;
return 0;
}
15
• Στην std έχει οριστεί και το std::endl
• Το οποίο αλλάζει γραμμή στην κονσόλα.
• Μπορούμε και να ενσωματώσουμε τον χαρακτήρα n μέσα σε μία συμβολοσειρά της C
• Επίσης, ο τελεστής << μπορεί να γραφεί και πολλές φορές στην ίδια γραμμή μίας cout.
Δημήτρης Ψούνης, Η Γλώσσα C++, Μάθημα 1: Εισαγωγή στην C++ και σχέση με την C
A. Θεωρία
2. Hello World!
5. Είσοδος / Έξοδος (4. Περισσότερα για την cout)
/* CPP1.endl.cpp Χρήση του endl */
#include <iostream>
using namespace std;
int main()
{
int x = 5;
double y = 5.01;
cout<<"To x einai "<<x<<endl<<"kai to y einai "<<y<<"n";
return 0;
}
16
• H std::cin χρησιμοποιείται για την είσοδο από το το πληκτρολόγιο
• Αντικαθιστά την scanf της C
• Λειτουργεί όπως η cout
• Με την διαφορά ότι ο τελεστής εισόδου που έχει οριστεί είναι ο >>
Δημήτρης Ψούνης, Η Γλώσσα C++, Μάθημα 1: Εισαγωγή στην C++ και σχέση με την C
A. Θεωρία
2. Hello World!
5. Είσοδος / Έξοδος (5. Είσοδος με την cin)
/* CPP1.cin.cpp Χρήση της cin */
#include <iostream>
using namespace std;
int main()
{
int x;
cout<<"Dwse x: ";
cin>>x;
cout<<"To x einai: "<<x;
return 0;
}
Παρατήρηση:
• Οι cin και cout είναι περίπλοκα αντικείμενα. Θα τα μελετήσουμε αναλυτικά σε επόμενο μάθημα
17Δημήτρης Ψούνης, Η Γλώσσα C++, Μάθημα 1: Εισαγωγή στην C++ και σχέση με την C
• Ο ορισμός των μεταβλητών γίνεται όπως στην C
• Π.χ. η δήλωση:
• δηλώνει μία ακέραια μεταβλητή και της αναθέτει την τιμή 5.
• Οι τύποι δεδομένων της C υπάρχουν αυτούσιοι στην C++:
• char, short, int, long για ακέραιες τιμές
• float, double για πραγματικές τιμές
• Και ορίζεται ένας νέος τύπος δεδομένων:
int x=5;
Ο τύπος δεδομένων bool απεικονίζει λογικές τιμές, και συγκεκριμένα δέχεται μόνο δύο τιμές:
• true (λογικό αληθές). Δεσμευμένη λέξη (keyword) με τιμή 1.
• false (λογικό ψευδές). Δεσμευμένη λέξη (keyword) με τιμή 0.
Παρατηρήσεις:
• Κάθε αριθμητική τιμή μετατρέπεται σε λογική τιμή ώς εξής
• Το 0, γίνεται false.
• Κάθε άλλη τιμή, γίνεται true.
• Αναλυτικά βλ. «Γλώσσα C – Μάθημα 3: Μεταβλητές και Σταθερές»
A. Θεωρία
3. Στοιχεία της C
1. Μεταβλητές
18Δημήτρης Ψούνης, Η Γλώσσα C++, Μάθημα 1: Εισαγωγή στην C++ και σχέση με την C
/* CPP1.bool.cpp Χρήση λογικών μεταβλητών */
#include <iostream>
using namespace std;
int main(){
bool x = true;
// Αριθμητική τιμή μίας λογικής μεταβλητής
cout<<x<<endl;
// Μετατροπή αριθμού σε λογική μεταβλητή
x = 4;
cout<<x<<endl;
// Μία συνθήκη που ερμηνεύεται σε μεταβλητή bool.
x = !(0>1);
if (x)
cout<<x<<endl;
return 0;
}
A. Θεωρία
3. Στοιχεία της C
1. Μεταβλητές
19Δημήτρης Ψούνης, Η Γλώσσα C++, Μάθημα 1: Εισαγωγή στην C++ και σχέση με την C
• Ισχύει ο διαχωρισμός των σταθερών σε:
• Αριθμητικές σταθερές, π.χ. 1, 3.14
• Συμβολικές σταθερές
• Είτε με την οδηγία προεπεξεργαστή #define, π.χ.
• Η οποία αντικαθιστά κάθε εμφάνιση της PI με 3.14 πριν την μεταγλώττιση του
προγράμματος
• Είτε με την λέξη κλειδί const πριν από την δήλωση της μεταβλητής, π.χ.
• H οποία απαγορεύει στην μεταβλητή x να αλλάξει την τιμή της κατά την εκτέλεση
του προγράμματος.
#define PI 3.14
Παρατηρήσεις:
• Αναλυτικά βλ. «Γλώσσα C – Μάθημα 3: Μεταβλητές και Σταθερές»
A. Θεωρία
3. Στοιχεία της C
2. Σταθερές
const int x = 2;
20Δημήτρης Ψούνης, Η Γλώσσα C++, Μάθημα 1: Εισαγωγή στην C++ και σχέση με την C
• Οι τελεστές της C είναι ίδιοι στην C++:
• Αριθμητικοί τελεστές:
+,*,-,/,% και ++,--
• Σχεσιακοί τελεστές:
==, >, >=, <, <=, !=
• Λογικοί τελεστές:
&&, ||, !
• και οι συντομογραφίες:
+=, -=, *=, /=, %=
• Ενώ και η σύνταξη της δομής ελέγχου (if)
είναι ίδια.
• Και μπορούμε να χρησιμοποιήσουμε την
switch
Παρατηρήσεις:
• Αναλυτικά βλ. «Γλώσσα C – Μάθημα 4: Τελεστές και η δομή ελέγχου»
• και τη switch από το «Γλώσσα C – Μάθημα 12: Έλεγχος Ροής Προγράμματος»
A. Θεωρία
3. Στοιχεία της C
3. Τελεστές και η δομή ελέγχου
[προηγούμενες εντολές]
if (πρώτη συνθήκη)
{
(εντολές1)
}
else if (δεύτερη συνθήκη)
{
(εντολές2)
}
…
else if (συνθήκηΝ)
{
(εντολέςΝ)
}
else
{
(εντολέςΝ+1)
}
[επόμενες εντολές]
21Δημήτρης Ψούνης, Η Γλώσσα C++, Μάθημα 1: Εισαγωγή στην C++ και σχέση με την C
• Και οι δομές επανάληψης είναι ίδιες με την C:
Παρατηρήσεις:
• Αναλυτικά βλ. «Γλώσσα C – Μάθημα 5: Δομές Επανάληψης»
• και τις break, continue από το «Γλώσσα C – Μάθημα 12: Έλεγχος Ροής Προγράμματος»
A. Θεωρία
3. Στοιχεία της C
4. Δομές Επανάληψης
[προηγούμενες εντολές]
for( αρχική; συνθήκη; βήμα)
{
(εντολές)
}
[επόμενες εντολές]
do
{
(Εντολές)
}
while (Συνθήκη);
while (Συνθήκη)
{
(εντολές)
}
22Δημήτρης Ψούνης, Η Γλώσσα C++, Μάθημα 1: Εισαγωγή στην C++ και σχέση με την C
• Και οι συναρτήσεις είναι ίδιες με την C:
Παρατηρήσεις:
• Αναλυτικά βλ. «Γλώσσα C – Μάθημα 6: Συναρτήσεις»
A. Θεωρία
3. Στοιχεία της C
5. Συναρτήσεις
.....
int func(int x, int y); <- Αυτό είναι το πρωτότυπο της συνάρτησης
Σημείωση: Μπορεί να γραφεί και ως int func(int, int); σε C++
main()
{
....
c=func(a,b); <- Εδώ καλούμε την συνάρτηση στην main,
.... σαν μία ακόμη εντολή του προγράμματος
}
int func(int x, int y) <-Αυτό είναι το σώμα της συνάρτησης
{
return (x*y);
}
23Δημήτρης Ψούνης, Η Γλώσσα C++, Μάθημα 1: Εισαγωγή στην C++ και σχέση με την C
• Μια σημαντική προσθήκη στην C++ είναι ο «πολυμορφισμός» (polymorphism)
• ή πως το ίδιο όνομα μπορεί να κάνει διαφορετικά πράγματα.
• Ο πολυμορφισμός συναρτήσεων στην C++ είναι μία διευκόλυνση:
• Το ίδιο όνομα συνάρτησης μπορεί να χρησιμοποιηθεί για να κάνει διαφορετικές
δουλειές.
• Π.χ. ενώ στην C αν θέλαμε μία συνάρτηση που να προσθέτει είτε int είτε float θα γράφαμε δύο
συναρτήσεις:
• στην C++ μπορούμε να χρησιμοποιήσουμε το ίδιο όνομα συνάρτησης:
• O μεταγλωττιστής αποφασίζει ποια από τις δύο συναρτήσεις θα χρησιμοποιήσει, ανάλογα
με τα ορίσματα της κλήσης της συνάρτησης.
A. Θεωρία
3. Στοιχεία της C
5.1. Πολυμορφισμός Συναρτήσεων
int sumi(int x, int y);
float sumf(float x, floaty);
int sum(int x, int y);
float sum(float x, floaty);
24Δημήτρης Ψούνης, Η Γλώσσα C++, Μάθημα 1: Εισαγωγή στην C++ και σχέση με την C
A. Θεωρία
3. Στοιχεία της C
5.1. Πολυμορφισμός Συναρτήσεων (Παράδειγμα )
/* CPP1.overloading.cpp Υπερφόρτωση
Συναρτήσεων */
#include <iostream>
using namespace std;
int sum(int x, int y);
double sum(double x, double y);
int main()
{
std::cout<<sum(5,3);
std::cout<<" ";
std::cout<<sum(1.1,2.2);
return 0;
}
int sum(int x, int y)
{
return x+y;
}
double sum(double x, double y)
{
return x+y;
}
25Δημήτρης Ψούνης, Η Γλώσσα C++, Μάθημα 1: Εισαγωγή στην C++ και σχέση με την C
• Σημαντικό!
• Ο μεταγλωττιστής αποφασίζει ποια δήλωση να ακολουθήσει ως εξής:
• Βλέπει την κλήση της συνάρτησης και τα ορίσματα που έχουμε βάλει σε αυτήν
• Και καλέι εκείνη την δήλωση που ταιριάζουν τα ορίσματα.
• Δεν λαμβάνει υπόψιν του λοιπόν, την επιστρεφόμενη τιμή.
• Έτσι αν είχαμε τις δηλώσεις συναρτήσεων:
• Αυτές έχουν ίδιο όνομα και ίδια ορίσματα, οπότε δεν διαφοροποιούνται και θα
οδηγήσει σε λάθος μεταγλώττισης.
A. Θεωρία
3. Στοιχεία της C
5.1. Πολυμορφισμός Συναρτήσεων
int func(int x, int y);
float func(int x, int y);
Παρατηρήσεις:
• Υπάρχουν και άλλα είδη πολυμορφισμού, π.χ. κλάσεων, που θα δούμε στα επόμενα μαθήματα.
26Δημήτρης Ψούνης, Η Γλώσσα C++, Μάθημα 1: Εισαγωγή στην C++ και σχέση με την C
• Και οι πίνακες είναι ίδιοι με την C:
• Παράδειγμα ορισμού πίνακα:
• Επεξεργασία κάποιου στοιχείου του πίνακα:
• Παράδειγμα ορισμού διδιάστατου πίνακα
• και επεξεργασία κάποιου στοιχείου του πίνακα:
Παρατηρήσεις:
• Αναλυτικά βλ. «Γλώσσα C – Μάθημα 7: Πίνακες»
A. Θεωρία
3. Στοιχεία της C
6. Πίνακες
int arr[5] = {0,4,9,2,1};
arr[2] = 4;
int arr[2][3] = {{0,1,2}, {3,4,5}};
arr[0][1] = 4;
27Δημήτρης Ψούνης, Η Γλώσσα C++, Μάθημα 1: Εισαγωγή στην C++ και σχέση με την C
• Επίσης οι συμβολοσειρές είναι ίδιες με την C
• Παράδειγμα ορισμού συμβολοσέιράς:
• Η εκτύπωση μπορεί να γίνει με την cout (και η είσοδος με την cin)
• Ενδέχεται να μας φανεί χρήσιμη κάποια συνάρτηση του string.h
• Προσοχή! Η ενσωμάτωση της αλλάζει και γίνεται ως εξής:
• Παρόμοια μπορούμε να ενσωματώσουμε και άλλες βιβλιοθήκες της C π.χ. η cstdlib
είναι η stdlib.h, η ctime είναι η time.h κ.ο.κ.
• Η C++ προσφέρει και έναν καινούργιο τρόπο διαχείρισης συμβολοσειρών μέσω της βιβλιοθήκης
STL (αλλά θα είναι ένα από τα τελευταία μαθήματα)
Παρατηρήσεις:
• Αναλυτικά βλ.
• «Γλώσσα C – Μάθημα 10: Συμβολοσειρές» και
• «Γλώσσα C – Μάθημα 18: string.h»
A. Θεωρία
3. Στοιχεία της C
7. Συμβολοσειρές
char str[80] = “A string”;
cout<<str;
#include <cstring>
28Δημήτρης Ψούνης, Η Γλώσσα C++, Μάθημα 1: Εισαγωγή στην C++ και σχέση με την C
A. Θεωρία
3. Στοιχεία της C
7.1. Συμβολοσειρές (Παράδειγμα)
/* CPP1.strings.cpp */
#include <iostream>
#include <cstring>
using namespace std;
int main()
{
char str1[80];
char str2[80];
cout<<"Dwse string: ";
cin>>str1;
strcpy(str2,str1);
cout<<str2;
return 0;
}
29Δημήτρης Ψούνης, Η Γλώσσα C++, Μάθημα 1: Εισαγωγή στην C++ και σχέση με την C
• Οι δείκτες είναι εξίσου σημαντικοί στην C++ όπως και στην C!
• Παράδειγμα ορισμού δείκτη:
• Βάζουμε τον δείκτη να δείχνει σε μια μεταβλητή (διευθυνσιοδότηση):
• Και ισχύει πλέον:
• Καθώς και
• Και εξίσου σημαντικά είναι:
• Η σχέση πινάκων με δείκτες
• Η αριθμητική δεικτών
• Τα ορίσματα συναρτήσεων (μέσω δείκτη και μέσω αναφοράς), η σταθερά NULL
Παρατηρήσεις:
• Αναλυτικά βλ. «Γλώσσα C – Μάθημα 8: Δείκτες»
• Προσοχή όμως ότι αλλάζει ο τρόπος δυναμικής δέσμευσης μνήμης (malloc – free)
A. Θεωρία
3. Στοιχεία της C
8. Δείκτες
int *p;
p = &x;
p == &x; // Διεύθυνση της x
*p == x; // Τιμή της x
30Δημήτρης Ψούνης, Η Γλώσσα C++, Μάθημα 1: Εισαγωγή στην C++ και σχέση με την C
• Ο κώδικας του μαθήματος είναι διαθέσιμος στο:
Σημαντικό!
https://github.com/psounis/CPP-programming
Β. Ασκήσεις
Άσκηση 1
31Δημήτρης Ψούνης, Η Γλώσσα C++, Μάθημα 1: Εισαγωγή στην C++ και σχέση με την C
Κατασκευάστε ένα νέο πρόγραμμα που να ζητάει από το χρήστη:
• Το όνομά του
• Το επώνυμο του
• Την ηλικία του (έτη)
• Και να τα τυπώνει έπειτα στην οθόνη σε μία γραμμή: «ΕΠΩΝΥΜΟ ΟΝΟΜΑ (ΗΛΙΚΙΑ)»
Β. Ασκήσεις
Άσκηση 2
32Δημήτρης Ψούνης, Η Γλώσσα C++, Μάθημα 1: Εισαγωγή στην C++ και σχέση με την C
• Κατασκευάστε μία συνάρτηση, με όνομα average, η οποία να υπολογίζει το μέσο όρο, είτε δύο
ακεραίων είτε δύο πραγματικών αριθμών.
• Η main να δίνει την επιλογή στο χρήστη να εισάγει από το πληκτρολόγιο δύο ακέραιους ή δύο
πραγματικούς και να υπολογίζει και να εκτυπώνει τον μέσο όρο τους.
Υπενθύμιση:
• Μέσος όρος των α+β είναι (α+β)/2.
Β. Ασκήσεις
Άσκηση 3
33Δημήτρης Ψούνης, Η Γλώσσα C++, Μάθημα 1: Εισαγωγή στην C++ και σχέση με την C
Το ακόλουθο πρόγραμμα από το «Γλώσσα C – Μάθημα 11» υλοποιεί την Σειριακή Αναζήτηση
 Τροποποιήστε το πρόγραμμα ώστε:
 Να είναι C++
 Να χρησιμοποιεί λογική μεταβλητή που υποδεικνύει αν βρέθηκε το στοιχείο στον πίνακα.
*
**
***
****
*****
/* break.c: Deixnei tin xrisi tis break */
#include <stdio.h>
#define N 5
main()
{
int i;
int A[N]= {5, 3, 2, 4, 8 }; // Pinakas dedomenwn
int x=2; // Pros anazitisi stoixeio
/* Psaxnoume gia to stoixeio x ston pinaka A */
for (i=0; i<N; i++)
{
if (A[i]==x)
break;
}
if (i<N)
printf("nVrethike to stoixeio %d sti thesi %d",x,i);
else
printf("nDen Vrethike to stoixeio");
}
1 sur 33

Recommandé

ΓΛΩΣΣΑ C++ - ΜΑΘΗΜΑ 3 - ΚΛΑΣΕΙΣ ΚΑΙ ΔΕΙΚΤΕΣ par
ΓΛΩΣΣΑ C++ - ΜΑΘΗΜΑ 3 - ΚΛΑΣΕΙΣ ΚΑΙ ΔΕΙΚΤΕΣΓΛΩΣΣΑ C++ - ΜΑΘΗΜΑ 3 - ΚΛΑΣΕΙΣ ΚΑΙ ΔΕΙΚΤΕΣ
ΓΛΩΣΣΑ C++ - ΜΑΘΗΜΑ 3 - ΚΛΑΣΕΙΣ ΚΑΙ ΔΕΙΚΤΕΣDimitris Psounis
1.4K vues29 diapositives
ΓΛΩΣΣΑ C - ΜΑΘΗΜΑ 5 - ΔΟΜΕΣ ΕΠΑΝΑΛΗΨΗΣ par
ΓΛΩΣΣΑ C - ΜΑΘΗΜΑ 5 - ΔΟΜΕΣ ΕΠΑΝΑΛΗΨΗΣΓΛΩΣΣΑ C - ΜΑΘΗΜΑ 5 - ΔΟΜΕΣ ΕΠΑΝΑΛΗΨΗΣ
ΓΛΩΣΣΑ C - ΜΑΘΗΜΑ 5 - ΔΟΜΕΣ ΕΠΑΝΑΛΗΨΗΣDimitris Psounis
15.3K vues34 diapositives
Η Γλώσσα C - Μάθημα 3 par
Η Γλώσσα C - Μάθημα 3 Η Γλώσσα C - Μάθημα 3
Η Γλώσσα C - Μάθημα 3 Dimitris Psounis
7.4K vues29 diapositives
Η ΓΛΩΣΣΑ C++ - ΜΑΘΗΜΑ 2 - ΕΙΣΑΓΩΓΗ ΣΤΙΣ ΚΛΑΣΕΙΣ par
Η ΓΛΩΣΣΑ C++ - ΜΑΘΗΜΑ 2 - ΕΙΣΑΓΩΓΗ ΣΤΙΣ ΚΛΑΣΕΙΣΗ ΓΛΩΣΣΑ C++ - ΜΑΘΗΜΑ 2 - ΕΙΣΑΓΩΓΗ ΣΤΙΣ ΚΛΑΣΕΙΣ
Η ΓΛΩΣΣΑ C++ - ΜΑΘΗΜΑ 2 - ΕΙΣΑΓΩΓΗ ΣΤΙΣ ΚΛΑΣΕΙΣDimitris Psounis
5.9K vues30 diapositives
Η Γλώσσα C - Μάθημα 2 par
Η Γλώσσα C - Μάθημα 2Η Γλώσσα C - Μάθημα 2
Η Γλώσσα C - Μάθημα 2Dimitris Psounis
8.8K vues24 diapositives
Η Γλώσσα C - Μάθημα 1 par
Η Γλώσσα C - Μάθημα 1Η Γλώσσα C - Μάθημα 1
Η Γλώσσα C - Μάθημα 1Dimitris Psounis
15.1K vues23 diapositives

Contenu connexe

Tendances

ΠΛΗ10 ΜΑΘΗΜΑ 1.5 par
ΠΛΗ10 ΜΑΘΗΜΑ 1.5ΠΛΗ10 ΜΑΘΗΜΑ 1.5
ΠΛΗ10 ΜΑΘΗΜΑ 1.5Dimitris Psounis
5.7K vues15 diapositives
ΠΛΗ10 ΜΑΘΗΜΑ 2.7 par
ΠΛΗ10 ΜΑΘΗΜΑ 2.7 ΠΛΗ10 ΜΑΘΗΜΑ 2.7
ΠΛΗ10 ΜΑΘΗΜΑ 2.7 Dimitris Psounis
3.2K vues43 diapositives
ΠΛΗ10 ΜΑΘΗΜΑ 1.4 par
ΠΛΗ10 ΜΑΘΗΜΑ 1.4ΠΛΗ10 ΜΑΘΗΜΑ 1.4
ΠΛΗ10 ΜΑΘΗΜΑ 1.4Dimitris Psounis
6.4K vues21 diapositives
Η ΓΛΩΣΣΑ C++ - ΜΑΘΗΜΑ 4 - ΚΛΑΣΕΙΣ ΚΑΙ ΑΝΑΦΟΡΕΣ par
Η ΓΛΩΣΣΑ C++ - ΜΑΘΗΜΑ 4 - ΚΛΑΣΕΙΣ ΚΑΙ ΑΝΑΦΟΡΕΣΗ ΓΛΩΣΣΑ C++ - ΜΑΘΗΜΑ 4 - ΚΛΑΣΕΙΣ ΚΑΙ ΑΝΑΦΟΡΕΣ
Η ΓΛΩΣΣΑ C++ - ΜΑΘΗΜΑ 4 - ΚΛΑΣΕΙΣ ΚΑΙ ΑΝΑΦΟΡΕΣDimitris Psounis
4.9K vues25 diapositives
ΓΛΩΣΣΑ C - ΜΑΘΗΜΑ 4 - ΤΕΛΕΣΤΕΣ και η ΔΟΜΗ ΕΛΕΓΧΟΥ par
ΓΛΩΣΣΑ C - ΜΑΘΗΜΑ 4 - ΤΕΛΕΣΤΕΣ και η ΔΟΜΗ ΕΛΕΓΧΟΥΓΛΩΣΣΑ C - ΜΑΘΗΜΑ 4 - ΤΕΛΕΣΤΕΣ και η ΔΟΜΗ ΕΛΕΓΧΟΥ
ΓΛΩΣΣΑ C - ΜΑΘΗΜΑ 4 - ΤΕΛΕΣΤΕΣ και η ΔΟΜΗ ΕΛΕΓΧΟΥDimitris Psounis
12.9K vues48 diapositives
Η ΓΛΩΣΣΑ C - ΜΑΘΗΜΑ 14 - ΕΜΒΕΛΕΙΑ ΜΕΤΑΒΛΗΤΩΝ par
Η ΓΛΩΣΣΑ C - ΜΑΘΗΜΑ 14 - ΕΜΒΕΛΕΙΑ ΜΕΤΑΒΛΗΤΩΝΗ ΓΛΩΣΣΑ C - ΜΑΘΗΜΑ 14 - ΕΜΒΕΛΕΙΑ ΜΕΤΑΒΛΗΤΩΝ
Η ΓΛΩΣΣΑ C - ΜΑΘΗΜΑ 14 - ΕΜΒΕΛΕΙΑ ΜΕΤΑΒΛΗΤΩΝDimitris Psounis
4.2K vues25 diapositives

Tendances(20)

Η ΓΛΩΣΣΑ C++ - ΜΑΘΗΜΑ 4 - ΚΛΑΣΕΙΣ ΚΑΙ ΑΝΑΦΟΡΕΣ par Dimitris Psounis
Η ΓΛΩΣΣΑ C++ - ΜΑΘΗΜΑ 4 - ΚΛΑΣΕΙΣ ΚΑΙ ΑΝΑΦΟΡΕΣΗ ΓΛΩΣΣΑ C++ - ΜΑΘΗΜΑ 4 - ΚΛΑΣΕΙΣ ΚΑΙ ΑΝΑΦΟΡΕΣ
Η ΓΛΩΣΣΑ C++ - ΜΑΘΗΜΑ 4 - ΚΛΑΣΕΙΣ ΚΑΙ ΑΝΑΦΟΡΕΣ
Dimitris Psounis4.9K vues
ΓΛΩΣΣΑ C - ΜΑΘΗΜΑ 4 - ΤΕΛΕΣΤΕΣ και η ΔΟΜΗ ΕΛΕΓΧΟΥ par Dimitris Psounis
ΓΛΩΣΣΑ C - ΜΑΘΗΜΑ 4 - ΤΕΛΕΣΤΕΣ και η ΔΟΜΗ ΕΛΕΓΧΟΥΓΛΩΣΣΑ C - ΜΑΘΗΜΑ 4 - ΤΕΛΕΣΤΕΣ και η ΔΟΜΗ ΕΛΕΓΧΟΥ
ΓΛΩΣΣΑ C - ΜΑΘΗΜΑ 4 - ΤΕΛΕΣΤΕΣ και η ΔΟΜΗ ΕΛΕΓΧΟΥ
Dimitris Psounis12.9K vues
Η ΓΛΩΣΣΑ C - ΜΑΘΗΜΑ 14 - ΕΜΒΕΛΕΙΑ ΜΕΤΑΒΛΗΤΩΝ par Dimitris Psounis
Η ΓΛΩΣΣΑ C - ΜΑΘΗΜΑ 14 - ΕΜΒΕΛΕΙΑ ΜΕΤΑΒΛΗΤΩΝΗ ΓΛΩΣΣΑ C - ΜΑΘΗΜΑ 14 - ΕΜΒΕΛΕΙΑ ΜΕΤΑΒΛΗΤΩΝ
Η ΓΛΩΣΣΑ C - ΜΑΘΗΜΑ 14 - ΕΜΒΕΛΕΙΑ ΜΕΤΑΒΛΗΤΩΝ
Dimitris Psounis4.2K vues
ΠΛΗ10 ΜΑΘΗΜΑ 1.3 (ΕΚΤΥΠΩΣΗ) par Dimitris Psounis
ΠΛΗ10 ΜΑΘΗΜΑ 1.3 (ΕΚΤΥΠΩΣΗ)ΠΛΗ10 ΜΑΘΗΜΑ 1.3 (ΕΚΤΥΠΩΣΗ)
ΠΛΗ10 ΜΑΘΗΜΑ 1.3 (ΕΚΤΥΠΩΣΗ)
Dimitris Psounis7.2K vues
Η ΓΛΩΣΣΑ C - ΜΑΘΗΜΑ 16 - ΣΥΝΑΡΤΗΣΕΙΣ ΕΞΟΔΟΥ (ΕΚΤΥΠΩΣΗ) par Dimitris Psounis
Η ΓΛΩΣΣΑ C - ΜΑΘΗΜΑ 16 - ΣΥΝΑΡΤΗΣΕΙΣ ΕΞΟΔΟΥ (ΕΚΤΥΠΩΣΗ)Η ΓΛΩΣΣΑ C - ΜΑΘΗΜΑ 16 - ΣΥΝΑΡΤΗΣΕΙΣ ΕΞΟΔΟΥ (ΕΚΤΥΠΩΣΗ)
Η ΓΛΩΣΣΑ C - ΜΑΘΗΜΑ 16 - ΣΥΝΑΡΤΗΣΕΙΣ ΕΞΟΔΟΥ (ΕΚΤΥΠΩΣΗ)
Dimitris Psounis2.6K vues
ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ ΣΕ C - ΜΑΘΗΜΑ 2 par Dimitris Psounis
ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ ΣΕ C - ΜΑΘΗΜΑ 2 ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ ΣΕ C - ΜΑΘΗΜΑ 2
ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ ΣΕ C - ΜΑΘΗΜΑ 2
Dimitris Psounis6.8K vues
Η ΓΛΩΣΣΑ C - ΜΑΘΗΜΑ 8 - ΔΕΙΚΤΕΣ par Dimitris Psounis
Η ΓΛΩΣΣΑ C - ΜΑΘΗΜΑ 8 - ΔΕΙΚΤΕΣΗ ΓΛΩΣΣΑ C - ΜΑΘΗΜΑ 8 - ΔΕΙΚΤΕΣ
Η ΓΛΩΣΣΑ C - ΜΑΘΗΜΑ 8 - ΔΕΙΚΤΕΣ
Dimitris Psounis9.7K vues
ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ ΣΕ C - ΜΑΘΗΜΑ 4 par Dimitris Psounis
ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ ΣΕ C - ΜΑΘΗΜΑ 4ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ ΣΕ C - ΜΑΘΗΜΑ 4
ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ ΣΕ C - ΜΑΘΗΜΑ 4
Dimitris Psounis5.8K vues
Η ΓΛΩΣΣΑ C - ΜΑΘΗΜΑ 15 - ΣΥΝΑΡΤΗΣΕΙΣ ΕΙΣΟΔΟΥ par Dimitris Psounis
Η ΓΛΩΣΣΑ C - ΜΑΘΗΜΑ 15 - ΣΥΝΑΡΤΗΣΕΙΣ ΕΙΣΟΔΟΥΗ ΓΛΩΣΣΑ C - ΜΑΘΗΜΑ 15 - ΣΥΝΑΡΤΗΣΕΙΣ ΕΙΣΟΔΟΥ
Η ΓΛΩΣΣΑ C - ΜΑΘΗΜΑ 15 - ΣΥΝΑΡΤΗΣΕΙΣ ΕΙΣΟΔΟΥ
ΑΛΓΟΡΙΘΜΟΙ ΣΕ C - ΜΑΘΗΜΑ 1 - ΔΙΑΠΕΡΑΣΗ ΠΙΝΑΚΑ par Dimitris Psounis
ΑΛΓΟΡΙΘΜΟΙ ΣΕ C - ΜΑΘΗΜΑ 1 - ΔΙΑΠΕΡΑΣΗ ΠΙΝΑΚΑΑΛΓΟΡΙΘΜΟΙ ΣΕ C - ΜΑΘΗΜΑ 1 - ΔΙΑΠΕΡΑΣΗ ΠΙΝΑΚΑ
ΑΛΓΟΡΙΘΜΟΙ ΣΕ C - ΜΑΘΗΜΑ 1 - ΔΙΑΠΕΡΑΣΗ ΠΙΝΑΚΑ
Dimitris Psounis3.5K vues
ΓΛΩΣΣΑ C - ΜΑΘΗΜΑ 17 - ΕΠΙΚΟΙΝΩΝΙΑ ΜΕ ΤΟ ΛΕΙΤΟΥΡΓΙΚΟ ΣΥΣΤΗΜΑ par Dimitris Psounis
ΓΛΩΣΣΑ C - ΜΑΘΗΜΑ 17 - ΕΠΙΚΟΙΝΩΝΙΑ ΜΕ ΤΟ ΛΕΙΤΟΥΡΓΙΚΟ ΣΥΣΤΗΜΑΓΛΩΣΣΑ C - ΜΑΘΗΜΑ 17 - ΕΠΙΚΟΙΝΩΝΙΑ ΜΕ ΤΟ ΛΕΙΤΟΥΡΓΙΚΟ ΣΥΣΤΗΜΑ
ΓΛΩΣΣΑ C - ΜΑΘΗΜΑ 17 - ΕΠΙΚΟΙΝΩΝΙΑ ΜΕ ΤΟ ΛΕΙΤΟΥΡΓΙΚΟ ΣΥΣΤΗΜΑ
ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ ΣΕ C - ΜΑΘΗΜΑ 3 par Dimitris Psounis
ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ ΣΕ C - ΜΑΘΗΜΑ 3 ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ ΣΕ C - ΜΑΘΗΜΑ 3
ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ ΣΕ C - ΜΑΘΗΜΑ 3
Dimitris Psounis4.2K vues

Similaire à C++ - ΜΑΘΗΜΑ 1 - ΕΙΣΑΓΩΓΗ ΚΑΙ ΣΧΕΣΗ ΜΕ ΤΗ C

ΠΛΗ10 ΜΑΘΗΜΑ 2.1 par
ΠΛΗ10 ΜΑΘΗΜΑ 2.1 ΠΛΗ10 ΜΑΘΗΜΑ 2.1
ΠΛΗ10 ΜΑΘΗΜΑ 2.1 Dimitris Psounis
9.4K vues19 diapositives
Lecture 1 par
Lecture 1Lecture 1
Lecture 1leonbont
14 vues36 diapositives
Python. 1 1 σχεδίαση και συγγραφή κώδικα par
Python. 1 1 σχεδίαση και συγγραφή κώδικαPython. 1 1 σχεδίαση και συγγραφή κώδικα
Python. 1 1 σχεδίαση και συγγραφή κώδικαΙωάννου Γιαννάκης
519 vues20 diapositives
Εισαγωγή σε C# και .ΝΕΤ par
Εισαγωγή σε C# και .ΝΕΤΕισαγωγή σε C# και .ΝΕΤ
Εισαγωγή σε C# και .ΝΕΤDimitris-Ilias Gkanatsios
1.3K vues103 diapositives
Avouris teaching python par
Avouris teaching pythonAvouris teaching python
Avouris teaching pythonNikolaos Avouris
1.1K vues35 diapositives
Η ΓΛΩΣΣΑ C - ΜΑΘΗΜΑ 13 - ΔΟΜΕΣ par
Η ΓΛΩΣΣΑ C - ΜΑΘΗΜΑ 13 - ΔΟΜΕΣΗ ΓΛΩΣΣΑ C - ΜΑΘΗΜΑ 13 - ΔΟΜΕΣ
Η ΓΛΩΣΣΑ C - ΜΑΘΗΜΑ 13 - ΔΟΜΕΣDimitris Psounis
7.7K vues35 diapositives

Similaire à C++ - ΜΑΘΗΜΑ 1 - ΕΙΣΑΓΩΓΗ ΚΑΙ ΣΧΕΣΗ ΜΕ ΤΗ C(20)

Η ΓΛΩΣΣΑ C - ΜΑΘΗΜΑ 13 - ΔΟΜΕΣ par Dimitris Psounis
Η ΓΛΩΣΣΑ C - ΜΑΘΗΜΑ 13 - ΔΟΜΕΣΗ ΓΛΩΣΣΑ C - ΜΑΘΗΜΑ 13 - ΔΟΜΕΣ
Η ΓΛΩΣΣΑ C - ΜΑΘΗΜΑ 13 - ΔΟΜΕΣ
Dimitris Psounis7.7K vues
5.1 python γενικά - υπολογισμοί & μεταβλητές par Panagiotis Mastrapas
5.1 python γενικά - υπολογισμοί & μεταβλητές5.1 python γενικά - υπολογισμοί & μεταβλητές
5.1 python γενικά - υπολογισμοί & μεταβλητές
Η γλώσσα προγραμματισμού C. par Stathis Gourzis
Η γλώσσα προγραμματισμού C.Η γλώσσα προγραμματισμού C.
Η γλώσσα προγραμματισμού C.
Stathis Gourzis284 vues
1η διάλεξη Τεχνολογίες Παγκόσμιου Ιστού par Manolis Vavalis
1η διάλεξη Τεχνολογίες Παγκόσμιου Ιστού1η διάλεξη Τεχνολογίες Παγκόσμιου Ιστού
1η διάλεξη Τεχνολογίες Παγκόσμιου Ιστού
Manolis Vavalis2.7K vues
Why computers can' compute par jtsagata
Why computers can' computeWhy computers can' compute
Why computers can' compute
jtsagata107 vues
Εξάσκηση σε Υποπρογράμματα με αφορμή την Εικασία Κόλατς par Periklis Georgiadis
Εξάσκηση σε Υποπρογράμματα με αφορμή την Εικασία ΚόλατςΕξάσκηση σε Υποπρογράμματα με αφορμή την Εικασία Κόλατς
Εξάσκηση σε Υποπρογράμματα με αφορμή την Εικασία Κόλατς
Η γλώσσα προγραμματισμού C++. par Stathis Gourzis
Η γλώσσα προγραμματισμού C++.Η γλώσσα προγραμματισμού C++.
Η γλώσσα προγραμματισμού C++.
Stathis Gourzis603 vues
Kef10 a synartiseis par mnikol
Kef10 a synartiseisKef10 a synartiseis
Kef10 a synartiseis
mnikol991 vues
μάθημα 3 υλοποίηση αλγορίθμου με υπολογιστή - προγραμματισμός par George Avgeris
μάθημα 3   υλοποίηση αλγορίθμου με υπολογιστή - προγραμματισμόςμάθημα 3   υλοποίηση αλγορίθμου με υπολογιστή - προγραμματισμός
μάθημα 3 υλοποίηση αλγορίθμου με υπολογιστή - προγραμματισμός
George Avgeris2.2K vues
Σημειώσεις Logo με ασκήσεις και θέματα θεωρίας par Dimitra Adamidou
Σημειώσεις Logo με ασκήσεις και θέματα θεωρίαςΣημειώσεις Logo με ασκήσεις και θέματα θεωρίας
Σημειώσεις Logo με ασκήσεις και θέματα θεωρίας
Dimitra Adamidou21.1K vues
Stelios poulakakis daktylidis diploma thesis presentation par ISSEL
Stelios poulakakis daktylidis diploma thesis presentationStelios poulakakis daktylidis diploma thesis presentation
Stelios poulakakis daktylidis diploma thesis presentation
ISSEL238 vues
Pantelidou Eirini: Design and development of a system for incremental static ... par Manos Tsardoulias
Pantelidou Eirini: Design and development of a system for incremental static ...Pantelidou Eirini: Design and development of a system for incremental static ...
Pantelidou Eirini: Design and development of a system for incremental static ...
Ιστορία του Προγραμματισμού των Ηλεκτρονικών Υπολογιστών par Stathis Gourzis
Ιστορία του Προγραμματισμού των Ηλεκτρονικών ΥπολογιστώνΙστορία του Προγραμματισμού των Ηλεκτρονικών Υπολογιστών
Ιστορία του Προγραμματισμού των Ηλεκτρονικών Υπολογιστών
Stathis Gourzis3K vues

Plus de Dimitris Psounis

Η ΓΛΩΣΣΑ C++ - ΜΑΘΗΜΑ 4 - ΚΛΑΣΕΙΣ ΚΑΙ ΑΝΑΦΟΡΕΣ (4διαφ) par
Η ΓΛΩΣΣΑ C++ - ΜΑΘΗΜΑ 4 - ΚΛΑΣΕΙΣ ΚΑΙ ΑΝΑΦΟΡΕΣ (4διαφ)Η ΓΛΩΣΣΑ C++ - ΜΑΘΗΜΑ 4 - ΚΛΑΣΕΙΣ ΚΑΙ ΑΝΑΦΟΡΕΣ (4διαφ)
Η ΓΛΩΣΣΑ C++ - ΜΑΘΗΜΑ 4 - ΚΛΑΣΕΙΣ ΚΑΙ ΑΝΑΦΟΡΕΣ (4διαφ)Dimitris Psounis
641 vues7 diapositives
ΓΛΩΣΣΑ C++ - ΜΑΘΗΜΑ 3 - ΚΛΑΣΕΙΣ ΚΑΙ ΔΕΙΚΤΕΣ (4δ) par
ΓΛΩΣΣΑ C++ - ΜΑΘΗΜΑ 3 - ΚΛΑΣΕΙΣ ΚΑΙ ΔΕΙΚΤΕΣ (4δ)ΓΛΩΣΣΑ C++ - ΜΑΘΗΜΑ 3 - ΚΛΑΣΕΙΣ ΚΑΙ ΔΕΙΚΤΕΣ (4δ)
ΓΛΩΣΣΑ C++ - ΜΑΘΗΜΑ 3 - ΚΛΑΣΕΙΣ ΚΑΙ ΔΕΙΚΤΕΣ (4δ)Dimitris Psounis
475 vues8 diapositives
Η ΓΛΩΣΣΑ C++ - ΜΑΘΗΜΑ 2 - ΕΙΣΑΓΩΓΗ ΣΤΙΣ ΚΛΑΣΕΙΣ (4 διαφ) par
Η ΓΛΩΣΣΑ C++ - ΜΑΘΗΜΑ 2 - ΕΙΣΑΓΩΓΗ ΣΤΙΣ ΚΛΑΣΕΙΣ (4 διαφ)Η ΓΛΩΣΣΑ C++ - ΜΑΘΗΜΑ 2 - ΕΙΣΑΓΩΓΗ ΣΤΙΣ ΚΛΑΣΕΙΣ (4 διαφ)
Η ΓΛΩΣΣΑ C++ - ΜΑΘΗΜΑ 2 - ΕΙΣΑΓΩΓΗ ΣΤΙΣ ΚΛΑΣΕΙΣ (4 διαφ)Dimitris Psounis
3.8K vues8 diapositives
C++ - ΜΑΘΗΜΑ 1 - ΕΙΣΑΓΩΓΗ ΚΑΙ ΣΧΕΣΗ ΜΕ ΤΗ C (4sl/p) par
C++ - ΜΑΘΗΜΑ 1 - ΕΙΣΑΓΩΓΗ ΚΑΙ ΣΧΕΣΗ ΜΕ ΤΗ C (4sl/p)C++ - ΜΑΘΗΜΑ 1 - ΕΙΣΑΓΩΓΗ ΚΑΙ ΣΧΕΣΗ ΜΕ ΤΗ C (4sl/p)
C++ - ΜΑΘΗΜΑ 1 - ΕΙΣΑΓΩΓΗ ΚΑΙ ΣΧΕΣΗ ΜΕ ΤΗ C (4sl/p)Dimitris Psounis
331 vues9 diapositives
ΠΛΗ20 ΕΠΑΝΑΛΗΠΤΙΚΟ ΔΙΑΓΩΝΙΣΜΑ 6 par
ΠΛΗ20 ΕΠΑΝΑΛΗΠΤΙΚΟ ΔΙΑΓΩΝΙΣΜΑ 6ΠΛΗ20 ΕΠΑΝΑΛΗΠΤΙΚΟ ΔΙΑΓΩΝΙΣΜΑ 6
ΠΛΗ20 ΕΠΑΝΑΛΗΠΤΙΚΟ ΔΙΑΓΩΝΙΣΜΑ 6Dimitris Psounis
2.9K vues6 diapositives
ΠΛΗ20 ΕΠΑΝΑΛΗΠΤΙΚΟ ΔΙΑΓΩΝΙΣΜΑ 5 par
ΠΛΗ20 ΕΠΑΝΑΛΗΠΤΙΚΟ ΔΙΑΓΩΝΙΣΜΑ 5ΠΛΗ20 ΕΠΑΝΑΛΗΠΤΙΚΟ ΔΙΑΓΩΝΙΣΜΑ 5
ΠΛΗ20 ΕΠΑΝΑΛΗΠΤΙΚΟ ΔΙΑΓΩΝΙΣΜΑ 5Dimitris Psounis
899 vues6 diapositives

Plus de Dimitris Psounis(20)

Η ΓΛΩΣΣΑ C++ - ΜΑΘΗΜΑ 4 - ΚΛΑΣΕΙΣ ΚΑΙ ΑΝΑΦΟΡΕΣ (4διαφ) par Dimitris Psounis
Η ΓΛΩΣΣΑ C++ - ΜΑΘΗΜΑ 4 - ΚΛΑΣΕΙΣ ΚΑΙ ΑΝΑΦΟΡΕΣ (4διαφ)Η ΓΛΩΣΣΑ C++ - ΜΑΘΗΜΑ 4 - ΚΛΑΣΕΙΣ ΚΑΙ ΑΝΑΦΟΡΕΣ (4διαφ)
Η ΓΛΩΣΣΑ C++ - ΜΑΘΗΜΑ 4 - ΚΛΑΣΕΙΣ ΚΑΙ ΑΝΑΦΟΡΕΣ (4διαφ)
Dimitris Psounis641 vues
ΓΛΩΣΣΑ C++ - ΜΑΘΗΜΑ 3 - ΚΛΑΣΕΙΣ ΚΑΙ ΔΕΙΚΤΕΣ (4δ) par Dimitris Psounis
ΓΛΩΣΣΑ C++ - ΜΑΘΗΜΑ 3 - ΚΛΑΣΕΙΣ ΚΑΙ ΔΕΙΚΤΕΣ (4δ)ΓΛΩΣΣΑ C++ - ΜΑΘΗΜΑ 3 - ΚΛΑΣΕΙΣ ΚΑΙ ΔΕΙΚΤΕΣ (4δ)
ΓΛΩΣΣΑ C++ - ΜΑΘΗΜΑ 3 - ΚΛΑΣΕΙΣ ΚΑΙ ΔΕΙΚΤΕΣ (4δ)
Dimitris Psounis475 vues
Η ΓΛΩΣΣΑ C++ - ΜΑΘΗΜΑ 2 - ΕΙΣΑΓΩΓΗ ΣΤΙΣ ΚΛΑΣΕΙΣ (4 διαφ) par Dimitris Psounis
Η ΓΛΩΣΣΑ C++ - ΜΑΘΗΜΑ 2 - ΕΙΣΑΓΩΓΗ ΣΤΙΣ ΚΛΑΣΕΙΣ (4 διαφ)Η ΓΛΩΣΣΑ C++ - ΜΑΘΗΜΑ 2 - ΕΙΣΑΓΩΓΗ ΣΤΙΣ ΚΛΑΣΕΙΣ (4 διαφ)
Η ΓΛΩΣΣΑ C++ - ΜΑΘΗΜΑ 2 - ΕΙΣΑΓΩΓΗ ΣΤΙΣ ΚΛΑΣΕΙΣ (4 διαφ)
Dimitris Psounis3.8K vues
C++ - ΜΑΘΗΜΑ 1 - ΕΙΣΑΓΩΓΗ ΚΑΙ ΣΧΕΣΗ ΜΕ ΤΗ C (4sl/p) par Dimitris Psounis
C++ - ΜΑΘΗΜΑ 1 - ΕΙΣΑΓΩΓΗ ΚΑΙ ΣΧΕΣΗ ΜΕ ΤΗ C (4sl/p)C++ - ΜΑΘΗΜΑ 1 - ΕΙΣΑΓΩΓΗ ΚΑΙ ΣΧΕΣΗ ΜΕ ΤΗ C (4sl/p)
C++ - ΜΑΘΗΜΑ 1 - ΕΙΣΑΓΩΓΗ ΚΑΙ ΣΧΕΣΗ ΜΕ ΤΗ C (4sl/p)
Dimitris Psounis331 vues
ΠΛΗ20 ΕΠΑΝΑΛΗΠΤΙΚΟ ΔΙΑΓΩΝΙΣΜΑ 6 par Dimitris Psounis
ΠΛΗ20 ΕΠΑΝΑΛΗΠΤΙΚΟ ΔΙΑΓΩΝΙΣΜΑ 6ΠΛΗ20 ΕΠΑΝΑΛΗΠΤΙΚΟ ΔΙΑΓΩΝΙΣΜΑ 6
ΠΛΗ20 ΕΠΑΝΑΛΗΠΤΙΚΟ ΔΙΑΓΩΝΙΣΜΑ 6
Dimitris Psounis2.9K vues
ΠΛΗ20 ΕΠΑΝΑΛΗΠΤΙΚΟ ΔΙΑΓΩΝΙΣΜΑ 5 par Dimitris Psounis
ΠΛΗ20 ΕΠΑΝΑΛΗΠΤΙΚΟ ΔΙΑΓΩΝΙΣΜΑ 5ΠΛΗ20 ΕΠΑΝΑΛΗΠΤΙΚΟ ΔΙΑΓΩΝΙΣΜΑ 5
ΠΛΗ20 ΕΠΑΝΑΛΗΠΤΙΚΟ ΔΙΑΓΩΝΙΣΜΑ 5
Dimitris Psounis899 vues
ΠΛΗ10 ΚΑΡΤΕΣ ΜΑΘΗΜΑΤΟΣ 2.2 (ΕΚΤΥΠΩΣΗ) par Dimitris Psounis
ΠΛΗ10 ΚΑΡΤΕΣ ΜΑΘΗΜΑΤΟΣ 2.2 (ΕΚΤΥΠΩΣΗ)ΠΛΗ10 ΚΑΡΤΕΣ ΜΑΘΗΜΑΤΟΣ 2.2 (ΕΚΤΥΠΩΣΗ)
ΠΛΗ10 ΚΑΡΤΕΣ ΜΑΘΗΜΑΤΟΣ 2.2 (ΕΚΤΥΠΩΣΗ)
Dimitris Psounis2.5K vues
ΠΛΗ10 ΚΑΡΤΕΣ ΜΑΘΗΜΑΤΟΣ 2.2 par Dimitris Psounis
ΠΛΗ10 ΚΑΡΤΕΣ ΜΑΘΗΜΑΤΟΣ 2.2ΠΛΗ10 ΚΑΡΤΕΣ ΜΑΘΗΜΑΤΟΣ 2.2
ΠΛΗ10 ΚΑΡΤΕΣ ΜΑΘΗΜΑΤΟΣ 2.2
Dimitris Psounis2.5K vues
ΠΛΗ10 ΚΑΡΤΕΣ ΜΑΘΗΜΑΤΟΣ 2.1 (ΕΚΤΥΠΩΣΗ) par Dimitris Psounis
ΠΛΗ10 ΚΑΡΤΕΣ ΜΑΘΗΜΑΤΟΣ 2.1 (ΕΚΤΥΠΩΣΗ)ΠΛΗ10 ΚΑΡΤΕΣ ΜΑΘΗΜΑΤΟΣ 2.1 (ΕΚΤΥΠΩΣΗ)
ΠΛΗ10 ΚΑΡΤΕΣ ΜΑΘΗΜΑΤΟΣ 2.1 (ΕΚΤΥΠΩΣΗ)
Dimitris Psounis4.6K vues
ΠΛΗ10 ΚΑΡΤΕΣ ΜΑΘΗΜΑΤΟΣ 2.1 par Dimitris Psounis
ΠΛΗ10 ΚΑΡΤΕΣ ΜΑΘΗΜΑΤΟΣ 2.1ΠΛΗ10 ΚΑΡΤΕΣ ΜΑΘΗΜΑΤΟΣ 2.1
ΠΛΗ10 ΚΑΡΤΕΣ ΜΑΘΗΜΑΤΟΣ 2.1
Dimitris Psounis4.5K vues
ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ ΣΕ C - ΜΑΘΗΜΑ 7 par Dimitris Psounis
ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ ΣΕ C - ΜΑΘΗΜΑ 7ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ ΣΕ C - ΜΑΘΗΜΑ 7
ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ ΣΕ C - ΜΑΘΗΜΑ 7
Dimitris Psounis3.2K vues
ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ ΣΕ C - ΜΑΘΗΜΑ 8 (ΕΚΤΥΠΩΣΗ) par Dimitris Psounis
ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ ΣΕ C - ΜΑΘΗΜΑ 8 (ΕΚΤΥΠΩΣΗ)ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ ΣΕ C - ΜΑΘΗΜΑ 8 (ΕΚΤΥΠΩΣΗ)
ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ ΣΕ C - ΜΑΘΗΜΑ 8 (ΕΚΤΥΠΩΣΗ)
Dimitris Psounis2.2K vues
ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ ΣΕ C - ΜΑΘΗΜΑ 8 par Dimitris Psounis
ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ ΣΕ C - ΜΑΘΗΜΑ 8ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ ΣΕ C - ΜΑΘΗΜΑ 8
ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ ΣΕ C - ΜΑΘΗΜΑ 8
Dimitris Psounis3.2K vues
ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ ΣΕ C - ΜΑΘΗΜΑ 7 (ΕΚΤΥΠΩΣΗ) par Dimitris Psounis
ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ ΣΕ C - ΜΑΘΗΜΑ 7 (ΕΚΤΥΠΩΣΗ)ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ ΣΕ C - ΜΑΘΗΜΑ 7 (ΕΚΤΥΠΩΣΗ)
ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ ΣΕ C - ΜΑΘΗΜΑ 7 (ΕΚΤΥΠΩΣΗ)
Dimitris Psounis2.1K vues
ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ ΣΕ C - ΜΑΘΗΜΑ 6 par Dimitris Psounis
ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ ΣΕ C - ΜΑΘΗΜΑ 6 ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ ΣΕ C - ΜΑΘΗΜΑ 6
ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ ΣΕ C - ΜΑΘΗΜΑ 6
Dimitris Psounis3.9K vues
ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ ΣΕ C - ΜΑΘΗΜΑ 6 (ΕΚΤΥΠΩΣΗ) par Dimitris Psounis
ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ ΣΕ C - ΜΑΘΗΜΑ 6 (ΕΚΤΥΠΩΣΗ)ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ ΣΕ C - ΜΑΘΗΜΑ 6 (ΕΚΤΥΠΩΣΗ)
ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ ΣΕ C - ΜΑΘΗΜΑ 6 (ΕΚΤΥΠΩΣΗ)
Dimitris Psounis2.8K vues

Dernier

ΠΕΡΙΚΛΕΟΥΣ ΕΠΙΤΑΦΙΟΣ, ΚΕΦ 39 par
ΠΕΡΙΚΛΕΟΥΣ ΕΠΙΤΑΦΙΟΣ, ΚΕΦ 39ΠΕΡΙΚΛΕΟΥΣ ΕΠΙΤΑΦΙΟΣ, ΚΕΦ 39
ΠΕΡΙΚΛΕΟΥΣ ΕΠΙΤΑΦΙΟΣ, ΚΕΦ 39ssuser43d27b
18 vues13 diapositives
Triti_Hlikia_2023.pptx par
Triti_Hlikia_2023.pptxTriti_Hlikia_2023.pptx
Triti_Hlikia_2023.pptx36dimperist
100 vues3 diapositives
Imerida_36_Dec_2023.pptx par
Imerida_36_Dec_2023.pptxImerida_36_Dec_2023.pptx
Imerida_36_Dec_2023.pptx36dimperist
34 vues7 diapositives
XwrosSigkentrosisSePeriptwsiAnagkisΑ3.docx par
XwrosSigkentrosisSePeriptwsiAnagkisΑ3.docxXwrosSigkentrosisSePeriptwsiAnagkisΑ3.docx
XwrosSigkentrosisSePeriptwsiAnagkisΑ3.docx56ο Γυμνάσιο Αθήνας
6 vues1 diapositive
Ομάδα 3 Βριλήσσια.pdf par
Ομάδα 3 Βριλήσσια.pdfΟμάδα 3 Βριλήσσια.pdf
Ομάδα 3 Βριλήσσια.pdfChrisa Kokorikou
61 vues6 diapositives
Σύμπραξη Γυμνάσιο Κεραμωτής - 7ο Γυμνάσιο Καβάλας - Realschule Calberlah Γερμ... par
Σύμπραξη Γυμνάσιο Κεραμωτής - 7ο Γυμνάσιο Καβάλας - Realschule Calberlah Γερμ...Σύμπραξη Γυμνάσιο Κεραμωτής - 7ο Γυμνάσιο Καβάλας - Realschule Calberlah Γερμ...
Σύμπραξη Γυμνάσιο Κεραμωτής - 7ο Γυμνάσιο Καβάλας - Realschule Calberlah Γερμ...gymkeram
14 vues30 diapositives

Dernier(20)

ΠΕΡΙΚΛΕΟΥΣ ΕΠΙΤΑΦΙΟΣ, ΚΕΦ 39 par ssuser43d27b
ΠΕΡΙΚΛΕΟΥΣ ΕΠΙΤΑΦΙΟΣ, ΚΕΦ 39ΠΕΡΙΚΛΕΟΥΣ ΕΠΙΤΑΦΙΟΣ, ΚΕΦ 39
ΠΕΡΙΚΛΕΟΥΣ ΕΠΙΤΑΦΙΟΣ, ΚΕΦ 39
ssuser43d27b18 vues
Triti_Hlikia_2023.pptx par 36dimperist
Triti_Hlikia_2023.pptxTriti_Hlikia_2023.pptx
Triti_Hlikia_2023.pptx
36dimperist100 vues
Imerida_36_Dec_2023.pptx par 36dimperist
Imerida_36_Dec_2023.pptxImerida_36_Dec_2023.pptx
Imerida_36_Dec_2023.pptx
36dimperist34 vues
Σύμπραξη Γυμνάσιο Κεραμωτής - 7ο Γυμνάσιο Καβάλας - Realschule Calberlah Γερμ... par gymkeram
Σύμπραξη Γυμνάσιο Κεραμωτής - 7ο Γυμνάσιο Καβάλας - Realschule Calberlah Γερμ...Σύμπραξη Γυμνάσιο Κεραμωτής - 7ο Γυμνάσιο Καβάλας - Realschule Calberlah Γερμ...
Σύμπραξη Γυμνάσιο Κεραμωτής - 7ο Γυμνάσιο Καβάλας - Realschule Calberlah Γερμ...
gymkeram14 vues
1ος Περίπατος Γυμνασίου Κεραμωτής 2023 στον Αλιευτικό Συνεταιρισμό - 09.11.23 par gymkeram
1ος Περίπατος Γυμνασίου Κεραμωτής 2023 στον Αλιευτικό Συνεταιρισμό - 09.11.23 1ος Περίπατος Γυμνασίου Κεραμωτής 2023 στον Αλιευτικό Συνεταιρισμό - 09.11.23
1ος Περίπατος Γυμνασίου Κεραμωτής 2023 στον Αλιευτικό Συνεταιρισμό - 09.11.23
gymkeram11 vues
Μύρισε Χριστούγεννα στο Γυμνάσιο Κεραμωτής.pptx par gymkeram
Μύρισε Χριστούγεννα στο Γυμνάσιο Κεραμωτής.pptxΜύρισε Χριστούγεννα στο Γυμνάσιο Κεραμωτής.pptx
Μύρισε Χριστούγεννα στο Γυμνάσιο Κεραμωτής.pptx
gymkeram48 vues
ίδρυμα Λασκαρίδη 22-11-23.pptx par psipsa
ίδρυμα Λασκαρίδη 22-11-23.pptxίδρυμα Λασκαρίδη 22-11-23.pptx
ίδρυμα Λασκαρίδη 22-11-23.pptx
psipsa14 vues
ΠΑΝΕΠΙΣΤΗΜΙΟ ΔΥΤΙΚΗΣ ΑΤΤΙΚΗΣ. par ssuser43d27b
ΠΑΝΕΠΙΣΤΗΜΙΟ ΔΥΤΙΚΗΣ ΑΤΤΙΚΗΣ.ΠΑΝΕΠΙΣΤΗΜΙΟ ΔΥΤΙΚΗΣ ΑΤΤΙΚΗΣ.
ΠΑΝΕΠΙΣΤΗΜΙΟ ΔΥΤΙΚΗΣ ΑΤΤΙΚΗΣ.
ssuser43d27b11 vues
Σχολές, Σπουδές & Πανελλαδικές 2024 par EmployEdu
Σχολές, Σπουδές & Πανελλαδικές 2024Σχολές, Σπουδές & Πανελλαδικές 2024
Σχολές, Σπουδές & Πανελλαδικές 2024
EmployEdu108 vues
Συμμετοχή Γυμνασίου Κεραμωτής στο πρόγραμμα "Kids save lives" - "Τα παιδιά σώ... par gymkeram
Συμμετοχή Γυμνασίου Κεραμωτής στο πρόγραμμα "Kids save lives" - "Τα παιδιά σώ...Συμμετοχή Γυμνασίου Κεραμωτής στο πρόγραμμα "Kids save lives" - "Τα παιδιά σώ...
Συμμετοχή Γυμνασίου Κεραμωτής στο πρόγραμμα "Kids save lives" - "Τα παιδιά σώ...
gymkeram12 vues
Γυμνάσιο Κεραμωτής - Κινητικότητα Erasmus+ / 12-18.11.2023 par gymkeram
Γυμνάσιο Κεραμωτής - Κινητικότητα Erasmus+ / 12-18.11.2023Γυμνάσιο Κεραμωτής - Κινητικότητα Erasmus+ / 12-18.11.2023
Γυμνάσιο Κεραμωτής - Κινητικότητα Erasmus+ / 12-18.11.2023
gymkeram24 vues
ΜΑΘΗΜΑ 24 αξιολογηση.docx par alexandrabouts
ΜΑΘΗΜΑ 24 αξιολογηση.docxΜΑΘΗΜΑ 24 αξιολογηση.docx
ΜΑΘΗΜΑ 24 αξιολογηση.docx
alexandrabouts11 vues
Μνημεία Παγκόσμιας Πολιτιστικής Κληρονομιάς ΛΑΠΜΠΟΥΚ par Dimitra Mylonaki
Μνημεία Παγκόσμιας Πολιτιστικής Κληρονομιάς ΛΑΠΜΠΟΥΚΜνημεία Παγκόσμιας Πολιτιστικής Κληρονομιάς ΛΑΠΜΠΟΥΚ
Μνημεία Παγκόσμιας Πολιτιστικής Κληρονομιάς ΛΑΠΜΠΟΥΚ
Ενεργώ ως Πολίτης - Δράση "Είναι όλα τα λεμόνια ίδια;" par gymkeram
Ενεργώ ως Πολίτης - Δράση "Είναι όλα τα λεμόνια ίδια;"Ενεργώ ως Πολίτης - Δράση "Είναι όλα τα λεμόνια ίδια;"
Ενεργώ ως Πολίτης - Δράση "Είναι όλα τα λεμόνια ίδια;"
gymkeram19 vues

C++ - ΜΑΘΗΜΑ 1 - ΕΙΣΑΓΩΓΗ ΚΑΙ ΣΧΕΣΗ ΜΕ ΤΗ C

  • 1. H ΓΛΩΣΣΑ C++ Μάθημα 1: Εισαγωγή στην C++ και σχέση με την γλώσσα C Δημήτρης Ψούνης
  • 2. Περιεχόμενα Μαθήματος Α. Θεωρία 1. Η Γλώσσα C++ 1. Γενικά 2. Ιστορία – Εκδόσεις 3. Η αναγκαιότητα της C 4. Μεταγλωττιστές 2. Hello World! 1. Πηγαίος Κώδικας 2. Σχόλια 3. Βιβλιοθήκη iostream 4. main, block κώδικα, return 5. Είσοδος/Έξοδος 1. Έξοδος με την cout 2. Οδηγία using 3. Περισσότερα για την cout 4. Είσοδος με την cin 2Δημήτρης Ψούνης, Η Γλώσσα C++, Μάθημα 1: Εισαγωγή στην C++ και σχέση με την C 3. Στοιχεία της C 1. Μεταβλητές 2. Σταθερές 3. Τελεστές και η Δομή Ελέγχου 4. Δομές Επανάληψης 5. Συναρτήσεις 1. Πολυμορφισμός Συναρτήσεων 6. Πίνακες 7. Συμβολοσειρές 8. Δείκτες Ασκήσεις
  • 3. A. Θεωρία 1. Η Γλώσσα C++ 1. Γενικά 3 Η Γλώσσα Προγραμματισμού C++ • Είναι μια επέκταση της γλώσσας C με • Την οργάνωση των δεδομένων και των συναρτήσεων σε μία ενιαία οντότητα που ονομάζεται κλάση (class) • Οργάνωση των δεδομένων και των συναρτήσεων της κλάσης, ώστε να επιτυγχάνεται απόκρυψη πληροφορίας: ενθυλάκωση (encapsulation) • Η δυνατότητα των κλάσεων να κληρονομούνται (inheritance) από άλλες κλάσεις και να προσθέτουν την δική τους λειτουργικότητα • Η δυνατότητα συναρτήσεων και κλάσεων να είναι πολυμορφικές (polymorphism) • Ένα όνομα θα μπορεί να κάνει διαφορετικές ενέργειες • Με πολλές καινούργιες βιβλιοθήκες, οι οποίες κάνουν πιο αποδοτικό τον προγραμματισμό μεγαλύτερων projects. Παράδειγμα: Θέλω να κατασκευάσω ένα παιχνίδι, το οποίο θα έχει για ήρωα τον σκύλο «Πίκο» (μικρόσωμο) και τον σκύλο «Αζόρ» (μεγαλόσωμο) • Θα ορίσω μία κλάση με όνομα σκύλος με όλη τη συμπεριφορά του σκύλου • Η ενέργεια «γάβγισε» θα είναι δημόσια, ενώ η ενέργεια «εκνευρισμός» θα είναι εσωτερική (ενθυλάκωση) • Την κλάση αυτή θα την κληρονομούν δύο υπό-κλάσεις οι οποίες θα εξειδικεύουν τα χαρακτηριστικά των μεγαλόσωμων και μικρόσωμων σκύλων. • Ο Πίκο θα είναι ένα αντικείμενο της κλάσης «Μικρόσωμος σκύλος» • Η κλάση θα έχει μία μέθοδο «γάβγισε», που θα αντιδρά διαφορετικά, αν ο σκύλος γαβγίζει μία γάτα ή έναν άνθρωπο (πολυμορφισμός) Δημήτρης Ψούνης, Η Γλώσσα C++, Μάθημα 1: Εισαγωγή στην C++ και σχέση με την C
  • 4. A. Θεωρία 1. Η Γλώσσα C++ 2. Ιστορία – Εκδόσεις C++ 4 • 1979 «C with classes» από τον Bjarne Stroustroup • στα εργαστήρια της Bell και της ΑΤ & T • 1984 Μετονομασία σε «C++» με αρκετές προσθήκες • 1989 2η έκδοση της C++ με πολλές προσθήκες ακόμη στη γλώσσα • 1998 Πρώτη standard έκδοση με πρότυπο ISO • Από το 2011 βγαίνει μία καινούργια έκδοση κάθε 3 χρόνια συνήθως με αλλαγές που συνήθως είναι επεκτάσεις της γλώσσας. Εκδόσεις: • C++11 (2011) • C++14 (2014) • C++17 (2017) • επόμενη έκδοση C++20 (2020) Bjarne Stroustrup Σημείωση: • Το όνομα C++ σημαίνει • Αύξηση της C κατά 1 (με βάση τον τελεστή ++, που σημαίνει αύξηση κατά 1) • Άρα είναι μία επέκταση της C, ωστόσο: • Δεν είναι αυστηρό υπερσύνολο της, υπάρχουν κάποια (λίγα) χαρακτηριστικά της C που δεν δουλεύουν σε C++. Δημήτρης Ψούνης, Η Γλώσσα C++, Μάθημα 1: Εισαγωγή στην C++ και σχέση με την C
  • 5. A. Θεωρία 1. Η Γλώσσα C++ 3. Η αναγκαιότητα της C 5 • Η C++ «πατάει» πάνω στην γλώσσα C • Γι’αυτό είναι απαραίτητη καλή γνώση της C • Ωστόσο δεν είναι απαραίτητη η γνώση όλων των χαρακτηριστικών της C • Για παράδειγμα οι περισσότερες βιβλιοθήκες συναρτήσεων αλλάζουν στην C++ και γίνονται (συνήθως) πιο εύκολες στην χρήση. • Τα περισσότερα βασικά χαρακτηριστικά όμως είναι ίδια. • Π.χ. ο χειρισμός • Μεταβλητών, Τύπων Δεδομένων • Δομής Ελέγχου, Δομών Επανάληψης • Συναρτήσεων • Πινάκων • Δεικτών • είναι ίδιος στην C++ και είναι προαπαιτούμενος για την κατανόηση των νέων χαρακτηριστικών (κλάσεις, κληρονομικότητα κ.λπ.) • Αλλά η μεγάλη διαφορά της C με την C++ είναι η μετατόπιση του ενδιαφέροντος στην δόμηση των προγραμμάτων από: • τις συναρτήσεις της C (διαδικαστικός προγραμματισμός) • στα αντικείμενα της C++ (αντικειμενοστραφής προγραμματισμός – object oriented programming) • Στην συνέχεια του μαθήματος θα κάνουμε μία υπενθύμιση των βασικών χαρακτηριστικών της γλώσσας C (με κάποια νέα στοιχεία). Δημήτρης Ψούνης, Η Γλώσσα C++, Μάθημα 1: Εισαγωγή στην C++ και σχέση με την C
  • 6. A. Θεωρία 1. Η Γλώσσα C++ 4. Μεταγλωττιστές 6 • Υπάρχουν δεκάδες μεταγλωττιστές της γλώσσας C++, είτε δωρεάν, είτε με πληρωμή. • Στα πλαίσια αυτής της σειράς μαθημάτων θα χρησιμοποιήσουμε τον (δωρεάν) online μεταγλωττιστή OnlineGDB • Στην σελίδα https://www.onlinegdb.com/ • Χρησιμοποιεί τον μεταγλωττιστή g++ • Έχει μηχανισμό για debugging Δημήτρης Ψούνης, Η Γλώσσα C++, Μάθημα 1: Εισαγωγή στην C++ και σχέση με την C
  • 7. A. Θεωρία 2. Hello World! 1. Πηγαίος κώδικας 7 • Δημιουργούμε το νέο project CPP1.helloworld.cpp • και το εκτελούμε: /* CPP1.helloworld.cpp */ #include <iostream> int main() { std::cout<<"Hello World!"; return 0; } Δημήτρης Ψούνης, Η Γλώσσα C++, Μάθημα 1: Εισαγωγή στην C++ και σχέση με την C
  • 8. A. Θεωρία 2. Hello World! 2. Σχόλια 8 • Βλέπουμε την πρώτη γραμμή • Είναι ένα σχόλιο. Συνηθίζεται να γράφουμε στην αρχή, το όνομα του αρχείου με κάποια επεξηγηματικά σχόλια. • Τα σχόλια γράφονται όπως στην C και υπάρχουν δύο είδη σχολίων: • Σχόλια πολλών γραμμών. Ξεκινάνε με /* και τελέιώνουν με */ • Σχόλια μίας γραμμής. Ξεκινάνε με // /* CPP1.helloworld.cpp */ Δημήτρης Ψούνης, Η Γλώσσα C++, Μάθημα 1: Εισαγωγή στην C++ και σχέση με την C /* Αυτό είναι ένα σχόλιο πολλών γραμμών */ // Αυτό είναι ένα σχόλιο μίας γραμμής
  • 9. A. Θεωρία 2. Hello World! 3. Βιβλιοθήκη iostream 9 • Βλέπουμε την γραμμή • Είναι μια οδηγία για τον προεπεξεργαστή (ξεκινά με το #) • Λέει πρακτικά, βρες το αρχείο (iostream.h) και βάλε τα περιεχόμενά του εδώ. • Η βιβλιοθήκη iostream.h • Περιέχει τις standard κλάσεις/συναρτήσεις για τον χειρισμό εισόδου/εξόδου #include <iostream> Δημήτρης Ψούνης, Η Γλώσσα C++, Μάθημα 1: Εισαγωγή στην C++ και σχέση με την C Παρατηρήσεις: • Η βιβλιοθήκη iostream.h αντικαθιστά την stdio.h της C • Η βιβλιοθήκη είναι απαραίτητη για το αντικείμενο cout, το οποίο κάνει το χειρισμό της εξόδου στην οθόνη, εδώ της συμβολοσειράς «Hello World!»
  • 10. A. Θεωρία 2. Hello World! 4. main, block κώδικα, return 10 • Η συνάρτηση main είναι το σημείο εισόδου του προγράμματος μας. • Με το που ξεκινάει να τρέχει, εκτελούνται σειριακά οι εντολές μέσα στην main. • H main υποχρεωτικά επιστρεφει ακέραια τιμή. • Η επιστροφή γίνεται στο λειτουργικό σύστημα που τρέχει το εκτελέσιμο. • Η τιμή 0 σημαίνει ότι όλα πήγαν καλά (κατά σύμβαση) • Ο προγραμματιστής μπορεί να διαχειριστεί μη μηδενικές τιμές για να δείξει (στο λειτουργικό) ότι κάτι δεν πήγε καλά στην εκτέλεση του προγράμματος. • Τα άγκιστρα πάντα ορίζουν την αρχή και το τέλος της συνάρτησης main • και λέμε ότι ορίζεται από αυτά, ένα μπλοκ κώδικα. int main() { … return 0; } Δημήτρης Ψούνης, Η Γλώσσα C++, Μάθημα 1: Εισαγωγή στην C++ και σχέση με την C Παρατηρήσεις: • H χρήση της return είναι ίδια με την C • Είναι μία εντολή, άρα πρέπει να ακολουθείται από ερωτηματικό.
  • 11. 11 • Το αντικείμενο std::cout χρησιμοποιείται για την έξοδο δεδομένων στην οθόνη • Η πλήρης κατανόηση του, απαιτεί την γνώση κλάσεων, άλλά θα δώσουμε μια πρόχειρη ιδέα (αν δεν την κατανοούμε πλήρως, δεν πειράζει για την ώρα). • Η βιβλιοθήκη iostream ορίζει μεταξύ άλλων: • Ένα αντικείμενο που λέγεται cout το οποίο τυπώνει στην οθόνη • Οι κλάσεις/αντικείμενα εισόδου/εξόδου της iostream ορίζονται σε έναν χώρο ονομάτων (namespace) που ονομάζεται std • Ο χώρος ονομάτων χρησιμοποιείται για να μην έχουν τα αντικείμενα αυτά καθολική εμβέλεια. • Ο χώρος ονομάτων std περιέχεται στο iostream.h • Οπότε η έκφραση std::cout σημαίνει: • Βρες το αντικείμενο cout το οποίο βρίσκεται στον χώρο ονομάτων std. • To << θα το ονομάζουμε τελεστή εξόδου. • Πρακτικά λέμε στο αντικείμενο std::cout, πάρε σαν είσοδο αυτή την συμβολοσειρά (Hello World!) και τύπωσε την στην οθόνη. std::cout<<“Hello World!”; Δημήτρης Ψούνης, Η Γλώσσα C++, Μάθημα 1: Εισαγωγή στην C++ και σχέση με την C Παρατήρηση: • Περισσότερα για τους χώρους ονομάτων θα δούμε στη συνέχεια του μαθήματος. A. Θεωρία 2. Hello World! 5. Είσοδος / Έξοδος (1. Έξοδος με την cout)
  • 12. 12 • Με την οδηγία using, μπορούμε να δώσουμε εντολή στο πρόγραμμα μας: • να ενσωματώσει στο πρόγραμμα μας ένα στοιχείο (αντικείμενο, σταθερά κ.ο.κ) • ώστε να μην γράφουμε κάθε φορά που βρίσκεται το αντικείμενο cout • Έτσι ο ακόλουθος κώδικας είναι κομψότερος: /* CPP1.helloworld2.cpp using std::cout */ #include <iostream> using std::cout; int main() { cout<<"Hello World!"; return 0; } Δημήτρης Ψούνης, Η Γλώσσα C++, Μάθημα 1: Εισαγωγή στην C++ και σχέση με την C A. Θεωρία 2. Hello World! 5. Είσοδος / Έξοδος (2. Οδηγία using)
  • 13. 13 • και ο δρόμος του τεμπέλη: • Δίνουμε οδηγία στο πρόγραμμα μας να ενσωματώσει όλα τα στοιχεία του χώρου ονομάτων της std. • Χρησιμοποιώντας την οδηγία using namespace std; /* CPP1.helloworld3.cpp Ενσωμάτωση όλης της std*/ #include <iostream> using namespace std; int main() { cout<<"Hello World!"; return 0; } Δημήτρης Ψούνης, Η Γλώσσα C++, Μάθημα 1: Εισαγωγή στην C++ και σχέση με την C A. Θεωρία 2. Hello World! 5. Είσοδος / Έξοδος (2. Οδηγία using)
  • 14. 14 • Ο τελεστής << λέμε ότι είναι υπερφορτωμένος (overloaded) • διότι μπορεί να προβάλλει στην οθόνη, διαφορετικούς τύπους δεδομένων. • Στα προηγούμενα παραδείγματα είδαμε πως μπορεί να προβάλλει συμβολοσειρές • Ας δούμε πως μπορούμε να προβάλλουμε ακέραιες και πραγματικές μεταβλητές Δημήτρης Ψούνης, Η Γλώσσα C++, Μάθημα 1: Εισαγωγή στην C++ και σχέση με την C A. Θεωρία 2. Hello World! 5. Είσοδος / Έξοδος (3. Περισσότερα για την cout) /* CPP1.overloading.cpp Εκτύπωση διαφορετικών τύπων δεδομένων */ #include <iostream> using namespace std; int main() { int x = 5; double y = 5.01; cout<<"To x einai "; cout<<x; cout<<" kai to y einai "; cout<<y; return 0; }
  • 15. 15 • Στην std έχει οριστεί και το std::endl • Το οποίο αλλάζει γραμμή στην κονσόλα. • Μπορούμε και να ενσωματώσουμε τον χαρακτήρα n μέσα σε μία συμβολοσειρά της C • Επίσης, ο τελεστής << μπορεί να γραφεί και πολλές φορές στην ίδια γραμμή μίας cout. Δημήτρης Ψούνης, Η Γλώσσα C++, Μάθημα 1: Εισαγωγή στην C++ και σχέση με την C A. Θεωρία 2. Hello World! 5. Είσοδος / Έξοδος (4. Περισσότερα για την cout) /* CPP1.endl.cpp Χρήση του endl */ #include <iostream> using namespace std; int main() { int x = 5; double y = 5.01; cout<<"To x einai "<<x<<endl<<"kai to y einai "<<y<<"n"; return 0; }
  • 16. 16 • H std::cin χρησιμοποιείται για την είσοδο από το το πληκτρολόγιο • Αντικαθιστά την scanf της C • Λειτουργεί όπως η cout • Με την διαφορά ότι ο τελεστής εισόδου που έχει οριστεί είναι ο >> Δημήτρης Ψούνης, Η Γλώσσα C++, Μάθημα 1: Εισαγωγή στην C++ και σχέση με την C A. Θεωρία 2. Hello World! 5. Είσοδος / Έξοδος (5. Είσοδος με την cin) /* CPP1.cin.cpp Χρήση της cin */ #include <iostream> using namespace std; int main() { int x; cout<<"Dwse x: "; cin>>x; cout<<"To x einai: "<<x; return 0; } Παρατήρηση: • Οι cin και cout είναι περίπλοκα αντικείμενα. Θα τα μελετήσουμε αναλυτικά σε επόμενο μάθημα
  • 17. 17Δημήτρης Ψούνης, Η Γλώσσα C++, Μάθημα 1: Εισαγωγή στην C++ και σχέση με την C • Ο ορισμός των μεταβλητών γίνεται όπως στην C • Π.χ. η δήλωση: • δηλώνει μία ακέραια μεταβλητή και της αναθέτει την τιμή 5. • Οι τύποι δεδομένων της C υπάρχουν αυτούσιοι στην C++: • char, short, int, long για ακέραιες τιμές • float, double για πραγματικές τιμές • Και ορίζεται ένας νέος τύπος δεδομένων: int x=5; Ο τύπος δεδομένων bool απεικονίζει λογικές τιμές, και συγκεκριμένα δέχεται μόνο δύο τιμές: • true (λογικό αληθές). Δεσμευμένη λέξη (keyword) με τιμή 1. • false (λογικό ψευδές). Δεσμευμένη λέξη (keyword) με τιμή 0. Παρατηρήσεις: • Κάθε αριθμητική τιμή μετατρέπεται σε λογική τιμή ώς εξής • Το 0, γίνεται false. • Κάθε άλλη τιμή, γίνεται true. • Αναλυτικά βλ. «Γλώσσα C – Μάθημα 3: Μεταβλητές και Σταθερές» A. Θεωρία 3. Στοιχεία της C 1. Μεταβλητές
  • 18. 18Δημήτρης Ψούνης, Η Γλώσσα C++, Μάθημα 1: Εισαγωγή στην C++ και σχέση με την C /* CPP1.bool.cpp Χρήση λογικών μεταβλητών */ #include <iostream> using namespace std; int main(){ bool x = true; // Αριθμητική τιμή μίας λογικής μεταβλητής cout<<x<<endl; // Μετατροπή αριθμού σε λογική μεταβλητή x = 4; cout<<x<<endl; // Μία συνθήκη που ερμηνεύεται σε μεταβλητή bool. x = !(0>1); if (x) cout<<x<<endl; return 0; } A. Θεωρία 3. Στοιχεία της C 1. Μεταβλητές
  • 19. 19Δημήτρης Ψούνης, Η Γλώσσα C++, Μάθημα 1: Εισαγωγή στην C++ και σχέση με την C • Ισχύει ο διαχωρισμός των σταθερών σε: • Αριθμητικές σταθερές, π.χ. 1, 3.14 • Συμβολικές σταθερές • Είτε με την οδηγία προεπεξεργαστή #define, π.χ. • Η οποία αντικαθιστά κάθε εμφάνιση της PI με 3.14 πριν την μεταγλώττιση του προγράμματος • Είτε με την λέξη κλειδί const πριν από την δήλωση της μεταβλητής, π.χ. • H οποία απαγορεύει στην μεταβλητή x να αλλάξει την τιμή της κατά την εκτέλεση του προγράμματος. #define PI 3.14 Παρατηρήσεις: • Αναλυτικά βλ. «Γλώσσα C – Μάθημα 3: Μεταβλητές και Σταθερές» A. Θεωρία 3. Στοιχεία της C 2. Σταθερές const int x = 2;
  • 20. 20Δημήτρης Ψούνης, Η Γλώσσα C++, Μάθημα 1: Εισαγωγή στην C++ και σχέση με την C • Οι τελεστές της C είναι ίδιοι στην C++: • Αριθμητικοί τελεστές: +,*,-,/,% και ++,-- • Σχεσιακοί τελεστές: ==, >, >=, <, <=, != • Λογικοί τελεστές: &&, ||, ! • και οι συντομογραφίες: +=, -=, *=, /=, %= • Ενώ και η σύνταξη της δομής ελέγχου (if) είναι ίδια. • Και μπορούμε να χρησιμοποιήσουμε την switch Παρατηρήσεις: • Αναλυτικά βλ. «Γλώσσα C – Μάθημα 4: Τελεστές και η δομή ελέγχου» • και τη switch από το «Γλώσσα C – Μάθημα 12: Έλεγχος Ροής Προγράμματος» A. Θεωρία 3. Στοιχεία της C 3. Τελεστές και η δομή ελέγχου [προηγούμενες εντολές] if (πρώτη συνθήκη) { (εντολές1) } else if (δεύτερη συνθήκη) { (εντολές2) } … else if (συνθήκηΝ) { (εντολέςΝ) } else { (εντολέςΝ+1) } [επόμενες εντολές]
  • 21. 21Δημήτρης Ψούνης, Η Γλώσσα C++, Μάθημα 1: Εισαγωγή στην C++ και σχέση με την C • Και οι δομές επανάληψης είναι ίδιες με την C: Παρατηρήσεις: • Αναλυτικά βλ. «Γλώσσα C – Μάθημα 5: Δομές Επανάληψης» • και τις break, continue από το «Γλώσσα C – Μάθημα 12: Έλεγχος Ροής Προγράμματος» A. Θεωρία 3. Στοιχεία της C 4. Δομές Επανάληψης [προηγούμενες εντολές] for( αρχική; συνθήκη; βήμα) { (εντολές) } [επόμενες εντολές] do { (Εντολές) } while (Συνθήκη); while (Συνθήκη) { (εντολές) }
  • 22. 22Δημήτρης Ψούνης, Η Γλώσσα C++, Μάθημα 1: Εισαγωγή στην C++ και σχέση με την C • Και οι συναρτήσεις είναι ίδιες με την C: Παρατηρήσεις: • Αναλυτικά βλ. «Γλώσσα C – Μάθημα 6: Συναρτήσεις» A. Θεωρία 3. Στοιχεία της C 5. Συναρτήσεις ..... int func(int x, int y); <- Αυτό είναι το πρωτότυπο της συνάρτησης Σημείωση: Μπορεί να γραφεί και ως int func(int, int); σε C++ main() { .... c=func(a,b); <- Εδώ καλούμε την συνάρτηση στην main, .... σαν μία ακόμη εντολή του προγράμματος } int func(int x, int y) <-Αυτό είναι το σώμα της συνάρτησης { return (x*y); }
  • 23. 23Δημήτρης Ψούνης, Η Γλώσσα C++, Μάθημα 1: Εισαγωγή στην C++ και σχέση με την C • Μια σημαντική προσθήκη στην C++ είναι ο «πολυμορφισμός» (polymorphism) • ή πως το ίδιο όνομα μπορεί να κάνει διαφορετικά πράγματα. • Ο πολυμορφισμός συναρτήσεων στην C++ είναι μία διευκόλυνση: • Το ίδιο όνομα συνάρτησης μπορεί να χρησιμοποιηθεί για να κάνει διαφορετικές δουλειές. • Π.χ. ενώ στην C αν θέλαμε μία συνάρτηση που να προσθέτει είτε int είτε float θα γράφαμε δύο συναρτήσεις: • στην C++ μπορούμε να χρησιμοποιήσουμε το ίδιο όνομα συνάρτησης: • O μεταγλωττιστής αποφασίζει ποια από τις δύο συναρτήσεις θα χρησιμοποιήσει, ανάλογα με τα ορίσματα της κλήσης της συνάρτησης. A. Θεωρία 3. Στοιχεία της C 5.1. Πολυμορφισμός Συναρτήσεων int sumi(int x, int y); float sumf(float x, floaty); int sum(int x, int y); float sum(float x, floaty);
  • 24. 24Δημήτρης Ψούνης, Η Γλώσσα C++, Μάθημα 1: Εισαγωγή στην C++ και σχέση με την C A. Θεωρία 3. Στοιχεία της C 5.1. Πολυμορφισμός Συναρτήσεων (Παράδειγμα ) /* CPP1.overloading.cpp Υπερφόρτωση Συναρτήσεων */ #include <iostream> using namespace std; int sum(int x, int y); double sum(double x, double y); int main() { std::cout<<sum(5,3); std::cout<<" "; std::cout<<sum(1.1,2.2); return 0; } int sum(int x, int y) { return x+y; } double sum(double x, double y) { return x+y; }
  • 25. 25Δημήτρης Ψούνης, Η Γλώσσα C++, Μάθημα 1: Εισαγωγή στην C++ και σχέση με την C • Σημαντικό! • Ο μεταγλωττιστής αποφασίζει ποια δήλωση να ακολουθήσει ως εξής: • Βλέπει την κλήση της συνάρτησης και τα ορίσματα που έχουμε βάλει σε αυτήν • Και καλέι εκείνη την δήλωση που ταιριάζουν τα ορίσματα. • Δεν λαμβάνει υπόψιν του λοιπόν, την επιστρεφόμενη τιμή. • Έτσι αν είχαμε τις δηλώσεις συναρτήσεων: • Αυτές έχουν ίδιο όνομα και ίδια ορίσματα, οπότε δεν διαφοροποιούνται και θα οδηγήσει σε λάθος μεταγλώττισης. A. Θεωρία 3. Στοιχεία της C 5.1. Πολυμορφισμός Συναρτήσεων int func(int x, int y); float func(int x, int y); Παρατηρήσεις: • Υπάρχουν και άλλα είδη πολυμορφισμού, π.χ. κλάσεων, που θα δούμε στα επόμενα μαθήματα.
  • 26. 26Δημήτρης Ψούνης, Η Γλώσσα C++, Μάθημα 1: Εισαγωγή στην C++ και σχέση με την C • Και οι πίνακες είναι ίδιοι με την C: • Παράδειγμα ορισμού πίνακα: • Επεξεργασία κάποιου στοιχείου του πίνακα: • Παράδειγμα ορισμού διδιάστατου πίνακα • και επεξεργασία κάποιου στοιχείου του πίνακα: Παρατηρήσεις: • Αναλυτικά βλ. «Γλώσσα C – Μάθημα 7: Πίνακες» A. Θεωρία 3. Στοιχεία της C 6. Πίνακες int arr[5] = {0,4,9,2,1}; arr[2] = 4; int arr[2][3] = {{0,1,2}, {3,4,5}}; arr[0][1] = 4;
  • 27. 27Δημήτρης Ψούνης, Η Γλώσσα C++, Μάθημα 1: Εισαγωγή στην C++ και σχέση με την C • Επίσης οι συμβολοσειρές είναι ίδιες με την C • Παράδειγμα ορισμού συμβολοσέιράς: • Η εκτύπωση μπορεί να γίνει με την cout (και η είσοδος με την cin) • Ενδέχεται να μας φανεί χρήσιμη κάποια συνάρτηση του string.h • Προσοχή! Η ενσωμάτωση της αλλάζει και γίνεται ως εξής: • Παρόμοια μπορούμε να ενσωματώσουμε και άλλες βιβλιοθήκες της C π.χ. η cstdlib είναι η stdlib.h, η ctime είναι η time.h κ.ο.κ. • Η C++ προσφέρει και έναν καινούργιο τρόπο διαχείρισης συμβολοσειρών μέσω της βιβλιοθήκης STL (αλλά θα είναι ένα από τα τελευταία μαθήματα) Παρατηρήσεις: • Αναλυτικά βλ. • «Γλώσσα C – Μάθημα 10: Συμβολοσειρές» και • «Γλώσσα C – Μάθημα 18: string.h» A. Θεωρία 3. Στοιχεία της C 7. Συμβολοσειρές char str[80] = “A string”; cout<<str; #include <cstring>
  • 28. 28Δημήτρης Ψούνης, Η Γλώσσα C++, Μάθημα 1: Εισαγωγή στην C++ και σχέση με την C A. Θεωρία 3. Στοιχεία της C 7.1. Συμβολοσειρές (Παράδειγμα) /* CPP1.strings.cpp */ #include <iostream> #include <cstring> using namespace std; int main() { char str1[80]; char str2[80]; cout<<"Dwse string: "; cin>>str1; strcpy(str2,str1); cout<<str2; return 0; }
  • 29. 29Δημήτρης Ψούνης, Η Γλώσσα C++, Μάθημα 1: Εισαγωγή στην C++ και σχέση με την C • Οι δείκτες είναι εξίσου σημαντικοί στην C++ όπως και στην C! • Παράδειγμα ορισμού δείκτη: • Βάζουμε τον δείκτη να δείχνει σε μια μεταβλητή (διευθυνσιοδότηση): • Και ισχύει πλέον: • Καθώς και • Και εξίσου σημαντικά είναι: • Η σχέση πινάκων με δείκτες • Η αριθμητική δεικτών • Τα ορίσματα συναρτήσεων (μέσω δείκτη και μέσω αναφοράς), η σταθερά NULL Παρατηρήσεις: • Αναλυτικά βλ. «Γλώσσα C – Μάθημα 8: Δείκτες» • Προσοχή όμως ότι αλλάζει ο τρόπος δυναμικής δέσμευσης μνήμης (malloc – free) A. Θεωρία 3. Στοιχεία της C 8. Δείκτες int *p; p = &x; p == &x; // Διεύθυνση της x *p == x; // Τιμή της x
  • 30. 30Δημήτρης Ψούνης, Η Γλώσσα C++, Μάθημα 1: Εισαγωγή στην C++ και σχέση με την C • Ο κώδικας του μαθήματος είναι διαθέσιμος στο: Σημαντικό! https://github.com/psounis/CPP-programming
  • 31. Β. Ασκήσεις Άσκηση 1 31Δημήτρης Ψούνης, Η Γλώσσα C++, Μάθημα 1: Εισαγωγή στην C++ και σχέση με την C Κατασκευάστε ένα νέο πρόγραμμα που να ζητάει από το χρήστη: • Το όνομά του • Το επώνυμο του • Την ηλικία του (έτη) • Και να τα τυπώνει έπειτα στην οθόνη σε μία γραμμή: «ΕΠΩΝΥΜΟ ΟΝΟΜΑ (ΗΛΙΚΙΑ)»
  • 32. Β. Ασκήσεις Άσκηση 2 32Δημήτρης Ψούνης, Η Γλώσσα C++, Μάθημα 1: Εισαγωγή στην C++ και σχέση με την C • Κατασκευάστε μία συνάρτηση, με όνομα average, η οποία να υπολογίζει το μέσο όρο, είτε δύο ακεραίων είτε δύο πραγματικών αριθμών. • Η main να δίνει την επιλογή στο χρήστη να εισάγει από το πληκτρολόγιο δύο ακέραιους ή δύο πραγματικούς και να υπολογίζει και να εκτυπώνει τον μέσο όρο τους. Υπενθύμιση: • Μέσος όρος των α+β είναι (α+β)/2.
  • 33. Β. Ασκήσεις Άσκηση 3 33Δημήτρης Ψούνης, Η Γλώσσα C++, Μάθημα 1: Εισαγωγή στην C++ και σχέση με την C Το ακόλουθο πρόγραμμα από το «Γλώσσα C – Μάθημα 11» υλοποιεί την Σειριακή Αναζήτηση  Τροποποιήστε το πρόγραμμα ώστε:  Να είναι C++  Να χρησιμοποιεί λογική μεταβλητή που υποδεικνύει αν βρέθηκε το στοιχείο στον πίνακα. * ** *** **** ***** /* break.c: Deixnei tin xrisi tis break */ #include <stdio.h> #define N 5 main() { int i; int A[N]= {5, 3, 2, 4, 8 }; // Pinakas dedomenwn int x=2; // Pros anazitisi stoixeio /* Psaxnoume gia to stoixeio x ston pinaka A */ for (i=0; i<N; i++) { if (A[i]==x) break; } if (i<N) printf("nVrethike to stoixeio %d sti thesi %d",x,i); else printf("nDen Vrethike to stoixeio"); }