SlideShare a Scribd company logo
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");
}

More Related Content

What's hot

Η Γλώσσα C - Μάθημα 1
Η Γλώσσα C - Μάθημα 1Η Γλώσσα C - Μάθημα 1
Η Γλώσσα C - Μάθημα 1
Dimitris Psounis
 
ΓΛΩΣΣΑ C - ΜΑΘΗΜΑ 10
ΓΛΩΣΣΑ C - ΜΑΘΗΜΑ 10 ΓΛΩΣΣΑ C - ΜΑΘΗΜΑ 10
ΓΛΩΣΣΑ C - ΜΑΘΗΜΑ 10
Dimitris Psounis
 
ΓΛΩΣΣΑ C - ΜΑΘΗΜΑ 6 (ΕΚΤΥΠΩΣΗ)
ΓΛΩΣΣΑ C - ΜΑΘΗΜΑ 6 (ΕΚΤΥΠΩΣΗ)ΓΛΩΣΣΑ C - ΜΑΘΗΜΑ 6 (ΕΚΤΥΠΩΣΗ)
ΓΛΩΣΣΑ C - ΜΑΘΗΜΑ 6 (ΕΚΤΥΠΩΣΗ)
Dimitris Psounis
 
Η ΓΛΩΣΣΑ C - ΜΑΘΗΜΑ 16 - ΣΥΝΑΡΤΗΣΕΙΣ ΕΞΟΔΟΥ (ΕΚΤΥΠΩΣΗ)
Η ΓΛΩΣΣΑ C - ΜΑΘΗΜΑ 16 - ΣΥΝΑΡΤΗΣΕΙΣ ΕΞΟΔΟΥ (ΕΚΤΥΠΩΣΗ)Η ΓΛΩΣΣΑ C - ΜΑΘΗΜΑ 16 - ΣΥΝΑΡΤΗΣΕΙΣ ΕΞΟΔΟΥ (ΕΚΤΥΠΩΣΗ)
Η ΓΛΩΣΣΑ C - ΜΑΘΗΜΑ 16 - ΣΥΝΑΡΤΗΣΕΙΣ ΕΞΟΔΟΥ (ΕΚΤΥΠΩΣΗ)
Dimitris Psounis
 
Η Γλώσσα C - Μάθημα 2
Η Γλώσσα C - Μάθημα 2Η Γλώσσα C - Μάθημα 2
Η Γλώσσα C - Μάθημα 2
Dimitris Psounis
 
Η ΓΛΩΣΣΑ C - ΜΑΘΗΜΑ 15 - ΣΥΝΑΡΤΗΣΕΙΣ ΕΙΣΟΔΟΥ
Η ΓΛΩΣΣΑ C - ΜΑΘΗΜΑ 15 - ΣΥΝΑΡΤΗΣΕΙΣ ΕΙΣΟΔΟΥΗ ΓΛΩΣΣΑ C - ΜΑΘΗΜΑ 15 - ΣΥΝΑΡΤΗΣΕΙΣ ΕΙΣΟΔΟΥ
Η ΓΛΩΣΣΑ C - ΜΑΘΗΜΑ 15 - ΣΥΝΑΡΤΗΣΕΙΣ ΕΙΣΟΔΟΥ
Dimitris Psounis
 
ΑΛΓΟΡΙΘΜΟΙ ΣΕ C - ΜΑΘΗΜΑ 1 - ΔΙΑΠΕΡΑΣΗ ΠΙΝΑΚΑ
ΑΛΓΟΡΙΘΜΟΙ ΣΕ C - ΜΑΘΗΜΑ 1 - ΔΙΑΠΕΡΑΣΗ ΠΙΝΑΚΑΑΛΓΟΡΙΘΜΟΙ ΣΕ C - ΜΑΘΗΜΑ 1 - ΔΙΑΠΕΡΑΣΗ ΠΙΝΑΚΑ
ΑΛΓΟΡΙΘΜΟΙ ΣΕ C - ΜΑΘΗΜΑ 1 - ΔΙΑΠΕΡΑΣΗ ΠΙΝΑΚΑ
Dimitris Psounis
 
ΑΛΓΟΡΙΘΜΟΙ ΣΕ C - ΜΑΘΗΜΑ 3
ΑΛΓΟΡΙΘΜΟΙ ΣΕ C - ΜΑΘΗΜΑ 3ΑΛΓΟΡΙΘΜΟΙ ΣΕ C - ΜΑΘΗΜΑ 3
ΑΛΓΟΡΙΘΜΟΙ ΣΕ C - ΜΑΘΗΜΑ 3
Dimitris Psounis
 
Η ΓΛΩΣΣΑ C - ΜΑΘΗΜΑ 8 - ΔΕΙΚΤΕΣ
Η ΓΛΩΣΣΑ C - ΜΑΘΗΜΑ 8 - ΔΕΙΚΤΕΣΗ ΓΛΩΣΣΑ C - ΜΑΘΗΜΑ 8 - ΔΕΙΚΤΕΣ
Η ΓΛΩΣΣΑ C - ΜΑΘΗΜΑ 8 - ΔΕΙΚΤΕΣ
Dimitris Psounis
 
ΑΕΠΠ: 21ο Φύλλο Ασκήσεων
ΑΕΠΠ: 21ο Φύλλο ΑσκήσεωνΑΕΠΠ: 21ο Φύλλο Ασκήσεων
ΑΕΠΠ: 21ο Φύλλο ΑσκήσεωνNikos Michailidis
 
ΓΛΩΣΣΑ C - ΜΑΘΗΜΑ 11
ΓΛΩΣΣΑ C - ΜΑΘΗΜΑ 11ΓΛΩΣΣΑ C - ΜΑΘΗΜΑ 11
ΓΛΩΣΣΑ C - ΜΑΘΗΜΑ 11
Dimitris Psounis
 
Η ΓΛΩΣΣΑ C - ΜΑΘΗΜΑ 14 - ΕΜΒΕΛΕΙΑ ΜΕΤΑΒΛΗΤΩΝ
Η ΓΛΩΣΣΑ C - ΜΑΘΗΜΑ 14 - ΕΜΒΕΛΕΙΑ ΜΕΤΑΒΛΗΤΩΝΗ ΓΛΩΣΣΑ C - ΜΑΘΗΜΑ 14 - ΕΜΒΕΛΕΙΑ ΜΕΤΑΒΛΗΤΩΝ
Η ΓΛΩΣΣΑ C - ΜΑΘΗΜΑ 14 - ΕΜΒΕΛΕΙΑ ΜΕΤΑΒΛΗΤΩΝ
Dimitris Psounis
 
ΑΕΠΠ: Δομή Επιλογής - Μέρος Α΄
ΑΕΠΠ: Δομή Επιλογής - Μέρος Α΄ΑΕΠΠ: Δομή Επιλογής - Μέρος Α΄
ΑΕΠΠ: Δομή Επιλογής - Μέρος Α΄Nikos Michailidis
 
Κεφ. 2 Βασικές Έννοιες Αλγορίθμων
Κεφ. 2 Βασικές Έννοιες ΑλγορίθμωνΚεφ. 2 Βασικές Έννοιες Αλγορίθμων
Κεφ. 2 Βασικές Έννοιες ΑλγορίθμωνΙωάννου Γιαννάκης
 
Aσκήσεις Python (θεωρία)
Aσκήσεις Python (θεωρία)Aσκήσεις Python (θεωρία)
Aσκήσεις Python (θεωρία)
Katerina Drimili
 
ΠΛΗ10 ΜΑΘΗΜΑ 1.4
ΠΛΗ10 ΜΑΘΗΜΑ 1.4ΠΛΗ10 ΜΑΘΗΜΑ 1.4
ΠΛΗ10 ΜΑΘΗΜΑ 1.4
Dimitris Psounis
 
ΓΛΩΣΣΑ C - ΜΑΘΗΜΑ 17 - ΕΠΙΚΟΙΝΩΝΙΑ ΜΕ ΤΟ ΛΕΙΤΟΥΡΓΙΚΟ ΣΥΣΤΗΜΑ
ΓΛΩΣΣΑ C - ΜΑΘΗΜΑ 17 - ΕΠΙΚΟΙΝΩΝΙΑ ΜΕ ΤΟ ΛΕΙΤΟΥΡΓΙΚΟ ΣΥΣΤΗΜΑΓΛΩΣΣΑ C - ΜΑΘΗΜΑ 17 - ΕΠΙΚΟΙΝΩΝΙΑ ΜΕ ΤΟ ΛΕΙΤΟΥΡΓΙΚΟ ΣΥΣΤΗΜΑ
ΓΛΩΣΣΑ C - ΜΑΘΗΜΑ 17 - ΕΠΙΚΟΙΝΩΝΙΑ ΜΕ ΤΟ ΛΕΙΤΟΥΡΓΙΚΟ ΣΥΣΤΗΜΑ
Dimitris Psounis
 
ΠΛΗ10 ΜΑΘΗΜΑ 1.5
ΠΛΗ10 ΜΑΘΗΜΑ 1.5ΠΛΗ10 ΜΑΘΗΜΑ 1.5
ΠΛΗ10 ΜΑΘΗΜΑ 1.5
Dimitris Psounis
 
Βασικές έννοιες προγραμματισμού
Βασικές έννοιες προγραμματισμούΒασικές έννοιες προγραμματισμού
Βασικές έννοιες προγραμματισμού
Ιωάννου Γιαννάκης
 
ΑΛΓΟΡΙΘΜΟΙ ΣΕ C - ΜΑΘΗΜΑ 2 - ΑΝΑΖΗΤΗΣΗ ΣΤΟΙΧΕΙΟΥ ΣΕ ΠΙΝΑΚΑ
ΑΛΓΟΡΙΘΜΟΙ ΣΕ C - ΜΑΘΗΜΑ 2 - ΑΝΑΖΗΤΗΣΗ ΣΤΟΙΧΕΙΟΥ ΣΕ ΠΙΝΑΚΑ ΑΛΓΟΡΙΘΜΟΙ ΣΕ C - ΜΑΘΗΜΑ 2 - ΑΝΑΖΗΤΗΣΗ ΣΤΟΙΧΕΙΟΥ ΣΕ ΠΙΝΑΚΑ
ΑΛΓΟΡΙΘΜΟΙ ΣΕ C - ΜΑΘΗΜΑ 2 - ΑΝΑΖΗΤΗΣΗ ΣΤΟΙΧΕΙΟΥ ΣΕ ΠΙΝΑΚΑ
Dimitris Psounis
 

What's hot (20)

Η Γλώσσα C - Μάθημα 1
Η Γλώσσα C - Μάθημα 1Η Γλώσσα C - Μάθημα 1
Η Γλώσσα C - Μάθημα 1
 
ΓΛΩΣΣΑ C - ΜΑΘΗΜΑ 10
ΓΛΩΣΣΑ C - ΜΑΘΗΜΑ 10 ΓΛΩΣΣΑ C - ΜΑΘΗΜΑ 10
ΓΛΩΣΣΑ C - ΜΑΘΗΜΑ 10
 
ΓΛΩΣΣΑ C - ΜΑΘΗΜΑ 6 (ΕΚΤΥΠΩΣΗ)
ΓΛΩΣΣΑ C - ΜΑΘΗΜΑ 6 (ΕΚΤΥΠΩΣΗ)ΓΛΩΣΣΑ C - ΜΑΘΗΜΑ 6 (ΕΚΤΥΠΩΣΗ)
ΓΛΩΣΣΑ C - ΜΑΘΗΜΑ 6 (ΕΚΤΥΠΩΣΗ)
 
Η ΓΛΩΣΣΑ C - ΜΑΘΗΜΑ 16 - ΣΥΝΑΡΤΗΣΕΙΣ ΕΞΟΔΟΥ (ΕΚΤΥΠΩΣΗ)
Η ΓΛΩΣΣΑ C - ΜΑΘΗΜΑ 16 - ΣΥΝΑΡΤΗΣΕΙΣ ΕΞΟΔΟΥ (ΕΚΤΥΠΩΣΗ)Η ΓΛΩΣΣΑ C - ΜΑΘΗΜΑ 16 - ΣΥΝΑΡΤΗΣΕΙΣ ΕΞΟΔΟΥ (ΕΚΤΥΠΩΣΗ)
Η ΓΛΩΣΣΑ C - ΜΑΘΗΜΑ 16 - ΣΥΝΑΡΤΗΣΕΙΣ ΕΞΟΔΟΥ (ΕΚΤΥΠΩΣΗ)
 
Η Γλώσσα C - Μάθημα 2
Η Γλώσσα C - Μάθημα 2Η Γλώσσα C - Μάθημα 2
Η Γλώσσα C - Μάθημα 2
 
Η ΓΛΩΣΣΑ C - ΜΑΘΗΜΑ 15 - ΣΥΝΑΡΤΗΣΕΙΣ ΕΙΣΟΔΟΥ
Η ΓΛΩΣΣΑ C - ΜΑΘΗΜΑ 15 - ΣΥΝΑΡΤΗΣΕΙΣ ΕΙΣΟΔΟΥΗ ΓΛΩΣΣΑ C - ΜΑΘΗΜΑ 15 - ΣΥΝΑΡΤΗΣΕΙΣ ΕΙΣΟΔΟΥ
Η ΓΛΩΣΣΑ C - ΜΑΘΗΜΑ 15 - ΣΥΝΑΡΤΗΣΕΙΣ ΕΙΣΟΔΟΥ
 
ΑΛΓΟΡΙΘΜΟΙ ΣΕ C - ΜΑΘΗΜΑ 1 - ΔΙΑΠΕΡΑΣΗ ΠΙΝΑΚΑ
ΑΛΓΟΡΙΘΜΟΙ ΣΕ C - ΜΑΘΗΜΑ 1 - ΔΙΑΠΕΡΑΣΗ ΠΙΝΑΚΑΑΛΓΟΡΙΘΜΟΙ ΣΕ C - ΜΑΘΗΜΑ 1 - ΔΙΑΠΕΡΑΣΗ ΠΙΝΑΚΑ
ΑΛΓΟΡΙΘΜΟΙ ΣΕ C - ΜΑΘΗΜΑ 1 - ΔΙΑΠΕΡΑΣΗ ΠΙΝΑΚΑ
 
ΑΛΓΟΡΙΘΜΟΙ ΣΕ C - ΜΑΘΗΜΑ 3
ΑΛΓΟΡΙΘΜΟΙ ΣΕ C - ΜΑΘΗΜΑ 3ΑΛΓΟΡΙΘΜΟΙ ΣΕ C - ΜΑΘΗΜΑ 3
ΑΛΓΟΡΙΘΜΟΙ ΣΕ C - ΜΑΘΗΜΑ 3
 
Η ΓΛΩΣΣΑ C - ΜΑΘΗΜΑ 8 - ΔΕΙΚΤΕΣ
Η ΓΛΩΣΣΑ C - ΜΑΘΗΜΑ 8 - ΔΕΙΚΤΕΣΗ ΓΛΩΣΣΑ C - ΜΑΘΗΜΑ 8 - ΔΕΙΚΤΕΣ
Η ΓΛΩΣΣΑ C - ΜΑΘΗΜΑ 8 - ΔΕΙΚΤΕΣ
 
ΑΕΠΠ: 21ο Φύλλο Ασκήσεων
ΑΕΠΠ: 21ο Φύλλο ΑσκήσεωνΑΕΠΠ: 21ο Φύλλο Ασκήσεων
ΑΕΠΠ: 21ο Φύλλο Ασκήσεων
 
ΓΛΩΣΣΑ C - ΜΑΘΗΜΑ 11
ΓΛΩΣΣΑ C - ΜΑΘΗΜΑ 11ΓΛΩΣΣΑ C - ΜΑΘΗΜΑ 11
ΓΛΩΣΣΑ C - ΜΑΘΗΜΑ 11
 
Η ΓΛΩΣΣΑ C - ΜΑΘΗΜΑ 14 - ΕΜΒΕΛΕΙΑ ΜΕΤΑΒΛΗΤΩΝ
Η ΓΛΩΣΣΑ C - ΜΑΘΗΜΑ 14 - ΕΜΒΕΛΕΙΑ ΜΕΤΑΒΛΗΤΩΝΗ ΓΛΩΣΣΑ C - ΜΑΘΗΜΑ 14 - ΕΜΒΕΛΕΙΑ ΜΕΤΑΒΛΗΤΩΝ
Η ΓΛΩΣΣΑ C - ΜΑΘΗΜΑ 14 - ΕΜΒΕΛΕΙΑ ΜΕΤΑΒΛΗΤΩΝ
 
ΑΕΠΠ: Δομή Επιλογής - Μέρος Α΄
ΑΕΠΠ: Δομή Επιλογής - Μέρος Α΄ΑΕΠΠ: Δομή Επιλογής - Μέρος Α΄
ΑΕΠΠ: Δομή Επιλογής - Μέρος Α΄
 
Κεφ. 2 Βασικές Έννοιες Αλγορίθμων
Κεφ. 2 Βασικές Έννοιες ΑλγορίθμωνΚεφ. 2 Βασικές Έννοιες Αλγορίθμων
Κεφ. 2 Βασικές Έννοιες Αλγορίθμων
 
Aσκήσεις Python (θεωρία)
Aσκήσεις Python (θεωρία)Aσκήσεις Python (θεωρία)
Aσκήσεις Python (θεωρία)
 
ΠΛΗ10 ΜΑΘΗΜΑ 1.4
ΠΛΗ10 ΜΑΘΗΜΑ 1.4ΠΛΗ10 ΜΑΘΗΜΑ 1.4
ΠΛΗ10 ΜΑΘΗΜΑ 1.4
 
ΓΛΩΣΣΑ C - ΜΑΘΗΜΑ 17 - ΕΠΙΚΟΙΝΩΝΙΑ ΜΕ ΤΟ ΛΕΙΤΟΥΡΓΙΚΟ ΣΥΣΤΗΜΑ
ΓΛΩΣΣΑ C - ΜΑΘΗΜΑ 17 - ΕΠΙΚΟΙΝΩΝΙΑ ΜΕ ΤΟ ΛΕΙΤΟΥΡΓΙΚΟ ΣΥΣΤΗΜΑΓΛΩΣΣΑ C - ΜΑΘΗΜΑ 17 - ΕΠΙΚΟΙΝΩΝΙΑ ΜΕ ΤΟ ΛΕΙΤΟΥΡΓΙΚΟ ΣΥΣΤΗΜΑ
ΓΛΩΣΣΑ C - ΜΑΘΗΜΑ 17 - ΕΠΙΚΟΙΝΩΝΙΑ ΜΕ ΤΟ ΛΕΙΤΟΥΡΓΙΚΟ ΣΥΣΤΗΜΑ
 
ΠΛΗ10 ΜΑΘΗΜΑ 1.5
ΠΛΗ10 ΜΑΘΗΜΑ 1.5ΠΛΗ10 ΜΑΘΗΜΑ 1.5
ΠΛΗ10 ΜΑΘΗΜΑ 1.5
 
Βασικές έννοιες προγραμματισμού
Βασικές έννοιες προγραμματισμούΒασικές έννοιες προγραμματισμού
Βασικές έννοιες προγραμματισμού
 
ΑΛΓΟΡΙΘΜΟΙ ΣΕ C - ΜΑΘΗΜΑ 2 - ΑΝΑΖΗΤΗΣΗ ΣΤΟΙΧΕΙΟΥ ΣΕ ΠΙΝΑΚΑ
ΑΛΓΟΡΙΘΜΟΙ ΣΕ C - ΜΑΘΗΜΑ 2 - ΑΝΑΖΗΤΗΣΗ ΣΤΟΙΧΕΙΟΥ ΣΕ ΠΙΝΑΚΑ ΑΛΓΟΡΙΘΜΟΙ ΣΕ C - ΜΑΘΗΜΑ 2 - ΑΝΑΖΗΤΗΣΗ ΣΤΟΙΧΕΙΟΥ ΣΕ ΠΙΝΑΚΑ
ΑΛΓΟΡΙΘΜΟΙ ΣΕ C - ΜΑΘΗΜΑ 2 - ΑΝΑΖΗΤΗΣΗ ΣΤΟΙΧΕΙΟΥ ΣΕ ΠΙΝΑΚΑ
 

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

ΠΛΗ10 ΜΑΘΗΜΑ 2.1
ΠΛΗ10 ΜΑΘΗΜΑ 2.1 ΠΛΗ10 ΜΑΘΗΜΑ 2.1
ΠΛΗ10 ΜΑΘΗΜΑ 2.1
Dimitris Psounis
 
Lecture 1
Lecture 1Lecture 1
Lecture 1
leonbont
 
Python. 1 1 σχεδίαση και συγγραφή κώδικα
Python. 1 1 σχεδίαση και συγγραφή κώδικαPython. 1 1 σχεδίαση και συγγραφή κώδικα
Python. 1 1 σχεδίαση και συγγραφή κώδικα
Ιωάννου Γιαννάκης
 
Εισαγωγή σε C# και .ΝΕΤ
Εισαγωγή σε C# και .ΝΕΤΕισαγωγή σε C# και .ΝΕΤ
Εισαγωγή σε C# και .ΝΕΤ
Dimitris-Ilias Gkanatsios
 
C_24112023.pdf
C_24112023.pdfC_24112023.pdf
C_24112023.pdf
argideli1
 
Avouris teaching python
Avouris teaching pythonAvouris teaching python
Avouris teaching python
Nikolaos Avouris
 
Η ΓΛΩΣΣΑ C - ΜΑΘΗΜΑ 13 - ΔΟΜΕΣ
Η ΓΛΩΣΣΑ C - ΜΑΘΗΜΑ 13 - ΔΟΜΕΣΗ ΓΛΩΣΣΑ C - ΜΑΘΗΜΑ 13 - ΔΟΜΕΣ
Η ΓΛΩΣΣΑ C - ΜΑΘΗΜΑ 13 - ΔΟΜΕΣ
Dimitris Psounis
 
C_01122023.pdf
C_01122023.pdfC_01122023.pdf
C_01122023.pdf
argideli1
 
5.1 python γενικά - υπολογισμοί & μεταβλητές
5.1 python γενικά - υπολογισμοί & μεταβλητές5.1 python γενικά - υπολογισμοί & μεταβλητές
5.1 python γενικά - υπολογισμοί & μεταβλητές
Panagiotis Mastrapas
 
Η γλώσσα προγραμματισμού C.
Η γλώσσα προγραμματισμού C.Η γλώσσα προγραμματισμού C.
Η γλώσσα προγραμματισμού C.Stathis Gourzis
 
ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ ΣΕ C - ΜΑΘΗΜΑ 2
ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ ΣΕ C - ΜΑΘΗΜΑ 2 ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ ΣΕ C - ΜΑΘΗΜΑ 2
ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ ΣΕ C - ΜΑΘΗΜΑ 2
Dimitris Psounis
 
1η διάλεξη Τεχνολογίες Παγκόσμιου Ιστού
1η διάλεξη Τεχνολογίες Παγκόσμιου Ιστού1η διάλεξη Τεχνολογίες Παγκόσμιου Ιστού
1η διάλεξη Τεχνολογίες Παγκόσμιου Ιστού
Manolis Vavalis
 
Why computers can' compute
Why computers can' computeWhy computers can' compute
Why computers can' compute
jtsagata
 
Εξάσκηση σε Υποπρογράμματα με αφορμή την Εικασία Κόλατς
Εξάσκηση σε Υποπρογράμματα με αφορμή την Εικασία ΚόλατςΕξάσκηση σε Υποπρογράμματα με αφορμή την Εικασία Κόλατς
Εξάσκηση σε Υποπρογράμματα με αφορμή την Εικασία Κόλατς
Periklis Georgiadis
 
Python - Bασικές Aρχές Προγραμματισμού - Κεφ. 3
Python - Bασικές Aρχές Προγραμματισμού - Κεφ. 3Python - Bασικές Aρχές Προγραμματισμού - Κεφ. 3
Python - Bασικές Aρχές Προγραμματισμού - Κεφ. 3
Pavlos (Παύλος) Avgerinopoulos (Αυγερινόπουλος)
 
C_03112023.pdf
C_03112023.pdfC_03112023.pdf
C_03112023.pdf
argideli1
 
Η γλώσσα προγραμματισμού C++.
Η γλώσσα προγραμματισμού C++.Η γλώσσα προγραμματισμού C++.
Η γλώσσα προγραμματισμού C++.Stathis Gourzis
 
Kef10 a synartiseis
Kef10 a synartiseisKef10 a synartiseis
Kef10 a synartiseis
mnikol
 
C_27102023.pdf
C_27102023.pdfC_27102023.pdf
C_27102023.pdf
argideli1
 

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

ΠΛΗ10 ΜΑΘΗΜΑ 2.1
ΠΛΗ10 ΜΑΘΗΜΑ 2.1 ΠΛΗ10 ΜΑΘΗΜΑ 2.1
ΠΛΗ10 ΜΑΘΗΜΑ 2.1
 
Lecture 1
Lecture 1Lecture 1
Lecture 1
 
Python. 1 1 σχεδίαση και συγγραφή κώδικα
Python. 1 1 σχεδίαση και συγγραφή κώδικαPython. 1 1 σχεδίαση και συγγραφή κώδικα
Python. 1 1 σχεδίαση και συγγραφή κώδικα
 
Εισαγωγή σε C# και .ΝΕΤ
Εισαγωγή σε C# και .ΝΕΤΕισαγωγή σε C# και .ΝΕΤ
Εισαγωγή σε C# και .ΝΕΤ
 
C_24112023.pdf
C_24112023.pdfC_24112023.pdf
C_24112023.pdf
 
Avouris teaching python
Avouris teaching pythonAvouris teaching python
Avouris teaching python
 
Η ΓΛΩΣΣΑ C - ΜΑΘΗΜΑ 13 - ΔΟΜΕΣ
Η ΓΛΩΣΣΑ C - ΜΑΘΗΜΑ 13 - ΔΟΜΕΣΗ ΓΛΩΣΣΑ C - ΜΑΘΗΜΑ 13 - ΔΟΜΕΣ
Η ΓΛΩΣΣΑ C - ΜΑΘΗΜΑ 13 - ΔΟΜΕΣ
 
C_01122023.pdf
C_01122023.pdfC_01122023.pdf
C_01122023.pdf
 
Make tutorial
Make tutorialMake tutorial
Make tutorial
 
5.1 python γενικά - υπολογισμοί & μεταβλητές
5.1 python γενικά - υπολογισμοί & μεταβλητές5.1 python γενικά - υπολογισμοί & μεταβλητές
5.1 python γενικά - υπολογισμοί & μεταβλητές
 
Η γλώσσα προγραμματισμού C.
Η γλώσσα προγραμματισμού C.Η γλώσσα προγραμματισμού C.
Η γλώσσα προγραμματισμού C.
 
ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ ΣΕ C - ΜΑΘΗΜΑ 2
ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ ΣΕ C - ΜΑΘΗΜΑ 2 ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ ΣΕ C - ΜΑΘΗΜΑ 2
ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ ΣΕ C - ΜΑΘΗΜΑ 2
 
1η διάλεξη Τεχνολογίες Παγκόσμιου Ιστού
1η διάλεξη Τεχνολογίες Παγκόσμιου Ιστού1η διάλεξη Τεχνολογίες Παγκόσμιου Ιστού
1η διάλεξη Τεχνολογίες Παγκόσμιου Ιστού
 
Why computers can' compute
Why computers can' computeWhy computers can' compute
Why computers can' compute
 
Εξάσκηση σε Υποπρογράμματα με αφορμή την Εικασία Κόλατς
Εξάσκηση σε Υποπρογράμματα με αφορμή την Εικασία ΚόλατςΕξάσκηση σε Υποπρογράμματα με αφορμή την Εικασία Κόλατς
Εξάσκηση σε Υποπρογράμματα με αφορμή την Εικασία Κόλατς
 
Python - Bασικές Aρχές Προγραμματισμού - Κεφ. 3
Python - Bασικές Aρχές Προγραμματισμού - Κεφ. 3Python - Bασικές Aρχές Προγραμματισμού - Κεφ. 3
Python - Bασικές Aρχές Προγραμματισμού - Κεφ. 3
 
C_03112023.pdf
C_03112023.pdfC_03112023.pdf
C_03112023.pdf
 
Η γλώσσα προγραμματισμού C++.
Η γλώσσα προγραμματισμού C++.Η γλώσσα προγραμματισμού C++.
Η γλώσσα προγραμματισμού C++.
 
Kef10 a synartiseis
Kef10 a synartiseisKef10 a synartiseis
Kef10 a synartiseis
 
C_27102023.pdf
C_27102023.pdfC_27102023.pdf
C_27102023.pdf
 

More from Dimitris Psounis

Η ΓΛΩΣΣΑ C++ - ΜΑΘΗΜΑ 4 - ΚΛΑΣΕΙΣ ΚΑΙ ΑΝΑΦΟΡΕΣ (4διαφ)
Η ΓΛΩΣΣΑ C++ - ΜΑΘΗΜΑ 4 - ΚΛΑΣΕΙΣ ΚΑΙ ΑΝΑΦΟΡΕΣ (4διαφ)Η ΓΛΩΣΣΑ C++ - ΜΑΘΗΜΑ 4 - ΚΛΑΣΕΙΣ ΚΑΙ ΑΝΑΦΟΡΕΣ (4διαφ)
Η ΓΛΩΣΣΑ C++ - ΜΑΘΗΜΑ 4 - ΚΛΑΣΕΙΣ ΚΑΙ ΑΝΑΦΟΡΕΣ (4διαφ)
Dimitris Psounis
 
ΓΛΩΣΣΑ C++ - ΜΑΘΗΜΑ 3 - ΚΛΑΣΕΙΣ ΚΑΙ ΔΕΙΚΤΕΣ (4δ)
ΓΛΩΣΣΑ C++ - ΜΑΘΗΜΑ 3 - ΚΛΑΣΕΙΣ ΚΑΙ ΔΕΙΚΤΕΣ (4δ)ΓΛΩΣΣΑ C++ - ΜΑΘΗΜΑ 3 - ΚΛΑΣΕΙΣ ΚΑΙ ΔΕΙΚΤΕΣ (4δ)
ΓΛΩΣΣΑ C++ - ΜΑΘΗΜΑ 3 - ΚΛΑΣΕΙΣ ΚΑΙ ΔΕΙΚΤΕΣ (4δ)
Dimitris Psounis
 
Η ΓΛΩΣΣΑ C++ - ΜΑΘΗΜΑ 2 - ΕΙΣΑΓΩΓΗ ΣΤΙΣ ΚΛΑΣΕΙΣ (4 διαφ)
Η ΓΛΩΣΣΑ C++ - ΜΑΘΗΜΑ 2 - ΕΙΣΑΓΩΓΗ ΣΤΙΣ ΚΛΑΣΕΙΣ (4 διαφ)Η ΓΛΩΣΣΑ C++ - ΜΑΘΗΜΑ 2 - ΕΙΣΑΓΩΓΗ ΣΤΙΣ ΚΛΑΣΕΙΣ (4 διαφ)
Η ΓΛΩΣΣΑ C++ - ΜΑΘΗΜΑ 2 - ΕΙΣΑΓΩΓΗ ΣΤΙΣ ΚΛΑΣΕΙΣ (4 διαφ)
Dimitris Psounis
 
C++ - ΜΑΘΗΜΑ 1 - ΕΙΣΑΓΩΓΗ ΚΑΙ ΣΧΕΣΗ ΜΕ ΤΗ C (4sl/p)
C++ - ΜΑΘΗΜΑ 1 - ΕΙΣΑΓΩΓΗ ΚΑΙ ΣΧΕΣΗ ΜΕ ΤΗ C (4sl/p)C++ - ΜΑΘΗΜΑ 1 - ΕΙΣΑΓΩΓΗ ΚΑΙ ΣΧΕΣΗ ΜΕ ΤΗ C (4sl/p)
C++ - ΜΑΘΗΜΑ 1 - ΕΙΣΑΓΩΓΗ ΚΑΙ ΣΧΕΣΗ ΜΕ ΤΗ C (4sl/p)
Dimitris Psounis
 
ΠΛΗ20 ΕΠΑΝΑΛΗΠΤΙΚΟ ΔΙΑΓΩΝΙΣΜΑ 6
ΠΛΗ20 ΕΠΑΝΑΛΗΠΤΙΚΟ ΔΙΑΓΩΝΙΣΜΑ 6ΠΛΗ20 ΕΠΑΝΑΛΗΠΤΙΚΟ ΔΙΑΓΩΝΙΣΜΑ 6
ΠΛΗ20 ΕΠΑΝΑΛΗΠΤΙΚΟ ΔΙΑΓΩΝΙΣΜΑ 6
Dimitris Psounis
 
ΠΛΗ20 ΕΠΑΝΑΛΗΠΤΙΚΟ ΔΙΑΓΩΝΙΣΜΑ 5
ΠΛΗ20 ΕΠΑΝΑΛΗΠΤΙΚΟ ΔΙΑΓΩΝΙΣΜΑ 5ΠΛΗ20 ΕΠΑΝΑΛΗΠΤΙΚΟ ΔΙΑΓΩΝΙΣΜΑ 5
ΠΛΗ20 ΕΠΑΝΑΛΗΠΤΙΚΟ ΔΙΑΓΩΝΙΣΜΑ 5
Dimitris Psounis
 
ΠΛΗ10 ΚΑΡΤΕΣ ΜΑΘΗΜΑΤΟΣ 2.2 (ΕΚΤΥΠΩΣΗ)
ΠΛΗ10 ΚΑΡΤΕΣ ΜΑΘΗΜΑΤΟΣ 2.2 (ΕΚΤΥΠΩΣΗ)ΠΛΗ10 ΚΑΡΤΕΣ ΜΑΘΗΜΑΤΟΣ 2.2 (ΕΚΤΥΠΩΣΗ)
ΠΛΗ10 ΚΑΡΤΕΣ ΜΑΘΗΜΑΤΟΣ 2.2 (ΕΚΤΥΠΩΣΗ)
Dimitris Psounis
 
ΠΛΗ10 ΚΑΡΤΕΣ ΜΑΘΗΜΑΤΟΣ 2.2
ΠΛΗ10 ΚΑΡΤΕΣ ΜΑΘΗΜΑΤΟΣ 2.2ΠΛΗ10 ΚΑΡΤΕΣ ΜΑΘΗΜΑΤΟΣ 2.2
ΠΛΗ10 ΚΑΡΤΕΣ ΜΑΘΗΜΑΤΟΣ 2.2
Dimitris Psounis
 
ΠΛΗ10 ΚΑΡΤΕΣ ΜΑΘΗΜΑΤΟΣ 2.1 (ΕΚΤΥΠΩΣΗ)
ΠΛΗ10 ΚΑΡΤΕΣ ΜΑΘΗΜΑΤΟΣ 2.1 (ΕΚΤΥΠΩΣΗ)ΠΛΗ10 ΚΑΡΤΕΣ ΜΑΘΗΜΑΤΟΣ 2.1 (ΕΚΤΥΠΩΣΗ)
ΠΛΗ10 ΚΑΡΤΕΣ ΜΑΘΗΜΑΤΟΣ 2.1 (ΕΚΤΥΠΩΣΗ)
Dimitris Psounis
 
ΠΛΗ10 ΚΑΡΤΕΣ ΜΑΘΗΜΑΤΟΣ 2.1
ΠΛΗ10 ΚΑΡΤΕΣ ΜΑΘΗΜΑΤΟΣ 2.1ΠΛΗ10 ΚΑΡΤΕΣ ΜΑΘΗΜΑΤΟΣ 2.1
ΠΛΗ10 ΚΑΡΤΕΣ ΜΑΘΗΜΑΤΟΣ 2.1
Dimitris Psounis
 
ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ ΣΕ C - ΜΑΘΗΜΑ 7
ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ ΣΕ C - ΜΑΘΗΜΑ 7ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ ΣΕ C - ΜΑΘΗΜΑ 7
ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ ΣΕ C - ΜΑΘΗΜΑ 7
Dimitris Psounis
 
ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ ΣΕ C - ΜΑΘΗΜΑ 8 (ΕΚΤΥΠΩΣΗ)
ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ ΣΕ C - ΜΑΘΗΜΑ 8 (ΕΚΤΥΠΩΣΗ)ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ ΣΕ C - ΜΑΘΗΜΑ 8 (ΕΚΤΥΠΩΣΗ)
ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ ΣΕ C - ΜΑΘΗΜΑ 8 (ΕΚΤΥΠΩΣΗ)
Dimitris Psounis
 
ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ ΣΕ C - ΜΑΘΗΜΑ 8
ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ ΣΕ C - ΜΑΘΗΜΑ 8ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ ΣΕ C - ΜΑΘΗΜΑ 8
ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ ΣΕ C - ΜΑΘΗΜΑ 8
Dimitris Psounis
 
ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ ΣΕ C - ΜΑΘΗΜΑ 7 (ΕΚΤΥΠΩΣΗ)
ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ ΣΕ C - ΜΑΘΗΜΑ 7 (ΕΚΤΥΠΩΣΗ)ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ ΣΕ C - ΜΑΘΗΜΑ 7 (ΕΚΤΥΠΩΣΗ)
ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ ΣΕ C - ΜΑΘΗΜΑ 7 (ΕΚΤΥΠΩΣΗ)
Dimitris Psounis
 
ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ ΣΕ C - ΜΑΘΗΜΑ 6
ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ ΣΕ C - ΜΑΘΗΜΑ 6 ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ ΣΕ C - ΜΑΘΗΜΑ 6
ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ ΣΕ C - ΜΑΘΗΜΑ 6
Dimitris Psounis
 
ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ ΣΕ C - ΜΑΘΗΜΑ 6 (ΕΚΤΥΠΩΣΗ)
ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ ΣΕ C - ΜΑΘΗΜΑ 6 (ΕΚΤΥΠΩΣΗ)ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ ΣΕ C - ΜΑΘΗΜΑ 6 (ΕΚΤΥΠΩΣΗ)
ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ ΣΕ C - ΜΑΘΗΜΑ 6 (ΕΚΤΥΠΩΣΗ)
Dimitris Psounis
 

More from Dimitris Psounis (20)

Η ΓΛΩΣΣΑ C++ - ΜΑΘΗΜΑ 4 - ΚΛΑΣΕΙΣ ΚΑΙ ΑΝΑΦΟΡΕΣ (4διαφ)
Η ΓΛΩΣΣΑ C++ - ΜΑΘΗΜΑ 4 - ΚΛΑΣΕΙΣ ΚΑΙ ΑΝΑΦΟΡΕΣ (4διαφ)Η ΓΛΩΣΣΑ C++ - ΜΑΘΗΜΑ 4 - ΚΛΑΣΕΙΣ ΚΑΙ ΑΝΑΦΟΡΕΣ (4διαφ)
Η ΓΛΩΣΣΑ C++ - ΜΑΘΗΜΑ 4 - ΚΛΑΣΕΙΣ ΚΑΙ ΑΝΑΦΟΡΕΣ (4διαφ)
 
ΓΛΩΣΣΑ C++ - ΜΑΘΗΜΑ 3 - ΚΛΑΣΕΙΣ ΚΑΙ ΔΕΙΚΤΕΣ (4δ)
ΓΛΩΣΣΑ C++ - ΜΑΘΗΜΑ 3 - ΚΛΑΣΕΙΣ ΚΑΙ ΔΕΙΚΤΕΣ (4δ)ΓΛΩΣΣΑ C++ - ΜΑΘΗΜΑ 3 - ΚΛΑΣΕΙΣ ΚΑΙ ΔΕΙΚΤΕΣ (4δ)
ΓΛΩΣΣΑ C++ - ΜΑΘΗΜΑ 3 - ΚΛΑΣΕΙΣ ΚΑΙ ΔΕΙΚΤΕΣ (4δ)
 
Η ΓΛΩΣΣΑ C++ - ΜΑΘΗΜΑ 2 - ΕΙΣΑΓΩΓΗ ΣΤΙΣ ΚΛΑΣΕΙΣ (4 διαφ)
Η ΓΛΩΣΣΑ C++ - ΜΑΘΗΜΑ 2 - ΕΙΣΑΓΩΓΗ ΣΤΙΣ ΚΛΑΣΕΙΣ (4 διαφ)Η ΓΛΩΣΣΑ C++ - ΜΑΘΗΜΑ 2 - ΕΙΣΑΓΩΓΗ ΣΤΙΣ ΚΛΑΣΕΙΣ (4 διαφ)
Η ΓΛΩΣΣΑ C++ - ΜΑΘΗΜΑ 2 - ΕΙΣΑΓΩΓΗ ΣΤΙΣ ΚΛΑΣΕΙΣ (4 διαφ)
 
C++ - ΜΑΘΗΜΑ 1 - ΕΙΣΑΓΩΓΗ ΚΑΙ ΣΧΕΣΗ ΜΕ ΤΗ C (4sl/p)
C++ - ΜΑΘΗΜΑ 1 - ΕΙΣΑΓΩΓΗ ΚΑΙ ΣΧΕΣΗ ΜΕ ΤΗ C (4sl/p)C++ - ΜΑΘΗΜΑ 1 - ΕΙΣΑΓΩΓΗ ΚΑΙ ΣΧΕΣΗ ΜΕ ΤΗ C (4sl/p)
C++ - ΜΑΘΗΜΑ 1 - ΕΙΣΑΓΩΓΗ ΚΑΙ ΣΧΕΣΗ ΜΕ ΤΗ C (4sl/p)
 
ΠΛΗ20 ΕΠΑΝΑΛΗΠΤΙΚΟ ΔΙΑΓΩΝΙΣΜΑ 6
ΠΛΗ20 ΕΠΑΝΑΛΗΠΤΙΚΟ ΔΙΑΓΩΝΙΣΜΑ 6ΠΛΗ20 ΕΠΑΝΑΛΗΠΤΙΚΟ ΔΙΑΓΩΝΙΣΜΑ 6
ΠΛΗ20 ΕΠΑΝΑΛΗΠΤΙΚΟ ΔΙΑΓΩΝΙΣΜΑ 6
 
ΠΛΗ20 ΕΠΑΝΑΛΗΠΤΙΚΟ ΔΙΑΓΩΝΙΣΜΑ 5
ΠΛΗ20 ΕΠΑΝΑΛΗΠΤΙΚΟ ΔΙΑΓΩΝΙΣΜΑ 5ΠΛΗ20 ΕΠΑΝΑΛΗΠΤΙΚΟ ΔΙΑΓΩΝΙΣΜΑ 5
ΠΛΗ20 ΕΠΑΝΑΛΗΠΤΙΚΟ ΔΙΑΓΩΝΙΣΜΑ 5
 
ΠΛΗ10 ΚΑΡΤΕΣ ΜΑΘΗΜΑΤΟΣ 2.2 (ΕΚΤΥΠΩΣΗ)
ΠΛΗ10 ΚΑΡΤΕΣ ΜΑΘΗΜΑΤΟΣ 2.2 (ΕΚΤΥΠΩΣΗ)ΠΛΗ10 ΚΑΡΤΕΣ ΜΑΘΗΜΑΤΟΣ 2.2 (ΕΚΤΥΠΩΣΗ)
ΠΛΗ10 ΚΑΡΤΕΣ ΜΑΘΗΜΑΤΟΣ 2.2 (ΕΚΤΥΠΩΣΗ)
 
ΠΛΗ10 ΚΑΡΤΕΣ ΜΑΘΗΜΑΤΟΣ 2.2
ΠΛΗ10 ΚΑΡΤΕΣ ΜΑΘΗΜΑΤΟΣ 2.2ΠΛΗ10 ΚΑΡΤΕΣ ΜΑΘΗΜΑΤΟΣ 2.2
ΠΛΗ10 ΚΑΡΤΕΣ ΜΑΘΗΜΑΤΟΣ 2.2
 
ΠΛΗ10 ΚΑΡΤΕΣ ΜΑΘΗΜΑΤΟΣ 2.1 (ΕΚΤΥΠΩΣΗ)
ΠΛΗ10 ΚΑΡΤΕΣ ΜΑΘΗΜΑΤΟΣ 2.1 (ΕΚΤΥΠΩΣΗ)ΠΛΗ10 ΚΑΡΤΕΣ ΜΑΘΗΜΑΤΟΣ 2.1 (ΕΚΤΥΠΩΣΗ)
ΠΛΗ10 ΚΑΡΤΕΣ ΜΑΘΗΜΑΤΟΣ 2.1 (ΕΚΤΥΠΩΣΗ)
 
ΠΛΗ10 ΚΑΡΤΕΣ ΜΑΘΗΜΑΤΟΣ 2.1
ΠΛΗ10 ΚΑΡΤΕΣ ΜΑΘΗΜΑΤΟΣ 2.1ΠΛΗ10 ΚΑΡΤΕΣ ΜΑΘΗΜΑΤΟΣ 2.1
ΠΛΗ10 ΚΑΡΤΕΣ ΜΑΘΗΜΑΤΟΣ 2.1
 
ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ ΣΕ C - ΜΑΘΗΜΑ 7
ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ ΣΕ C - ΜΑΘΗΜΑ 7ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ ΣΕ C - ΜΑΘΗΜΑ 7
ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ ΣΕ C - ΜΑΘΗΜΑ 7
 
ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ ΣΕ C - ΜΑΘΗΜΑ 8 (ΕΚΤΥΠΩΣΗ)
ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ ΣΕ C - ΜΑΘΗΜΑ 8 (ΕΚΤΥΠΩΣΗ)ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ ΣΕ C - ΜΑΘΗΜΑ 8 (ΕΚΤΥΠΩΣΗ)
ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ ΣΕ C - ΜΑΘΗΜΑ 8 (ΕΚΤΥΠΩΣΗ)
 
ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ ΣΕ C - ΜΑΘΗΜΑ 8
ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ ΣΕ C - ΜΑΘΗΜΑ 8ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ ΣΕ C - ΜΑΘΗΜΑ 8
ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ ΣΕ C - ΜΑΘΗΜΑ 8
 
ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ ΣΕ C - ΜΑΘΗΜΑ 7 (ΕΚΤΥΠΩΣΗ)
ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ ΣΕ C - ΜΑΘΗΜΑ 7 (ΕΚΤΥΠΩΣΗ)ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ ΣΕ C - ΜΑΘΗΜΑ 7 (ΕΚΤΥΠΩΣΗ)
ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ ΣΕ C - ΜΑΘΗΜΑ 7 (ΕΚΤΥΠΩΣΗ)
 
ΠΛΗ31 - ΤΕΣΤ 33
ΠΛΗ31 - ΤΕΣΤ 33ΠΛΗ31 - ΤΕΣΤ 33
ΠΛΗ31 - ΤΕΣΤ 33
 
ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ ΣΕ C - ΜΑΘΗΜΑ 6
ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ ΣΕ C - ΜΑΘΗΜΑ 6 ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ ΣΕ C - ΜΑΘΗΜΑ 6
ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ ΣΕ C - ΜΑΘΗΜΑ 6
 
ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ ΣΕ C - ΜΑΘΗΜΑ 6 (ΕΚΤΥΠΩΣΗ)
ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ ΣΕ C - ΜΑΘΗΜΑ 6 (ΕΚΤΥΠΩΣΗ)ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ ΣΕ C - ΜΑΘΗΜΑ 6 (ΕΚΤΥΠΩΣΗ)
ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ ΣΕ C - ΜΑΘΗΜΑ 6 (ΕΚΤΥΠΩΣΗ)
 
ΠΛΗ31 ΤΕΣΤ 32
ΠΛΗ31 ΤΕΣΤ 32ΠΛΗ31 ΤΕΣΤ 32
ΠΛΗ31 ΤΕΣΤ 32
 
ΠΛΗ31 ΤΕΣΤ 31
ΠΛΗ31 ΤΕΣΤ 31ΠΛΗ31 ΤΕΣΤ 31
ΠΛΗ31 ΤΕΣΤ 31
 
ΠΛΗ31 ΤΕΣΤ 30
ΠΛΗ31 ΤΕΣΤ 30ΠΛΗ31 ΤΕΣΤ 30
ΠΛΗ31 ΤΕΣΤ 30
 

Recently uploaded

Προγράμματα - Δράσεις σχολικού έτους 023-24.pptx
Προγράμματα - Δράσεις σχολικού έτους 023-24.pptxΠρογράμματα - Δράσεις σχολικού έτους 023-24.pptx
Προγράμματα - Δράσεις σχολικού έτους 023-24.pptx
Αποστολίνα Λιούσα
 
Τα θέματα σε Ανατομία-Φυσιολογία ΙΙ στα ΕΠΑΛ
Τα θέματα σε Ανατομία-Φυσιολογία ΙΙ στα ΕΠΑΛΤα θέματα σε Ανατομία-Φυσιολογία ΙΙ στα ΕΠΑΛ
Τα θέματα σε Ανατομία-Φυσιολογία ΙΙ στα ΕΠΑΛ
Newsroom8
 
Καμμένη Πάρνηθα.bddbdvbdvd d d dddvdvdvpptx
Καμμένη Πάρνηθα.bddbdvbdvd d d dddvdvdvpptxΚαμμένη Πάρνηθα.bddbdvbdvd d d dddvdvdvpptx
Καμμένη Πάρνηθα.bddbdvbdvd d d dddvdvdvpptx
peter190314
 
Η ΓΙΟΡΤΗ ΤΟΥ ΠΑΤΕΡΑ (1).pdfφύλλα εργασιων
Η ΓΙΟΡΤΗ ΤΟΥ ΠΑΤΕΡΑ (1).pdfφύλλα εργασιωνΗ ΓΙΟΡΤΗ ΤΟΥ ΠΑΤΕΡΑ (1).pdfφύλλα εργασιων
Η ΓΙΟΡΤΗ ΤΟΥ ΠΑΤΕΡΑ (1).pdfφύλλα εργασιων
ΟΛΓΑ ΤΣΕΧΕΛΙΔΟΥ
 
Η χλωρίδα της Πάρνηθας.bfbfbfbffbfbfbfbbpptx
Η χλωρίδα της Πάρνηθας.bfbfbfbffbfbfbfbbpptxΗ χλωρίδα της Πάρνηθας.bfbfbfbffbfbfbfbbpptx
Η χλωρίδα της Πάρνηθας.bfbfbfbffbfbfbfbbpptx
peter190314
 
PANELLINIES 2024 SXOLIASMOS GEL EKTHESI.pdf
PANELLINIES 2024 SXOLIASMOS GEL EKTHESI.pdfPANELLINIES 2024 SXOLIASMOS GEL EKTHESI.pdf
PANELLINIES 2024 SXOLIASMOS GEL EKTHESI.pdf
ssuserf9afe7
 
Η υδροστατική πίεση
Η υδροστατική                       πίεσηΗ υδροστατική                       πίεση
Η υδροστατική πίεση
Dimitra Mylonaki
 
ΑΠΑΝΤΗΣΕΙΣ-ΝΕΟΕΛΛΗΝΙΚΗΣ-ΓΛΩΣΣΑΣ-2024.pdf
ΑΠΑΝΤΗΣΕΙΣ-ΝΕΟΕΛΛΗΝΙΚΗΣ-ΓΛΩΣΣΑΣ-2024.pdfΑΠΑΝΤΗΣΕΙΣ-ΝΕΟΕΛΛΗΝΙΚΗΣ-ΓΛΩΣΣΑΣ-2024.pdf
ΑΠΑΝΤΗΣΕΙΣ-ΝΕΟΕΛΛΗΝΙΚΗΣ-ΓΛΩΣΣΑΣ-2024.pdf
Newsroom8
 
Weatherman 1-hour Speed Course for Web [2024]
Weatherman 1-hour Speed Course for Web [2024]Weatherman 1-hour Speed Course for Web [2024]
Weatherman 1-hour Speed Course for Web [2024]
Andreas Batsis
 
Εκπαιδευτική επίσκεψη στο Μουσείο της Ακρόπολης.pptx
Εκπαιδευτική επίσκεψη στο Μουσείο της Ακρόπολης.pptxΕκπαιδευτική επίσκεψη στο Μουσείο της Ακρόπολης.pptx
Εκπαιδευτική επίσκεψη στο Μουσείο της Ακρόπολης.pptx
41dimperisteriou
 
Εσύ, τι τύπος είσαι στη διαφωνία_ (2).pptx
Εσύ, τι τύπος είσαι στη διαφωνία_ (2).pptxΕσύ, τι τύπος είσαι στη διαφωνία_ (2).pptx
Εσύ, τι τύπος είσαι στη διαφωνία_ (2).pptx
Basso Hatzopoulou
 
Εκπαιδευτική επίσκεψη στο Σεισμολογικό Ινστιτούτο του ΑΠΘ.pptx
Εκπαιδευτική επίσκεψη στο Σεισμολογικό Ινστιτούτο του ΑΠΘ.pptxΕκπαιδευτική επίσκεψη στο Σεισμολογικό Ινστιτούτο του ΑΠΘ.pptx
Εκπαιδευτική επίσκεψη στο Σεισμολογικό Ινστιτούτο του ΑΠΘ.pptx
7gymnasiokavalas
 
ΥΛΙΚΟ για Σχολική Διαμεσολάβηση Οκτώβριος 2023-Μάιος 2024
ΥΛΙΚΟ για Σχολική Διαμεσολάβηση Οκτώβριος 2023-Μάιος 2024ΥΛΙΚΟ για Σχολική Διαμεσολάβηση Οκτώβριος 2023-Μάιος 2024
ΥΛΙΚΟ για Σχολική Διαμεσολάβηση Οκτώβριος 2023-Μάιος 2024
Basso Hatzopoulou
 
Αναμνήσεις σχολικής χρονιάς.pdfΛεύκωμα / σχολικες αναμνησεις
Αναμνήσεις σχολικής χρονιάς.pdfΛεύκωμα / σχολικες αναμνησειςΑναμνήσεις σχολικής χρονιάς.pdfΛεύκωμα / σχολικες αναμνησεις
Αναμνήσεις σχολικής χρονιάς.pdfΛεύκωμα / σχολικες αναμνησεις
ΟΛΓΑ ΤΣΕΧΕΛΙΔΟΥ
 
Έκθεση Τεχνολογίας Σχολικό Έτος 2023-24.pptx
Έκθεση Τεχνολογίας Σχολικό Έτος 2023-24.pptxΈκθεση Τεχνολογίας Σχολικό Έτος 2023-24.pptx
Έκθεση Τεχνολογίας Σχολικό Έτος 2023-24.pptx
7gymnasiokavalas
 
Η εκδρομή μας στους Δελφούς
Η εκδρομή μας στους                ΔελφούςΗ εκδρομή μας στους                Δελφούς
Η εκδρομή μας στους Δελφούς
Dimitra Mylonaki
 
ΚΑΡΤΕΣ ΑΡΙΘΜΟΙ 1-100.pdf Οργάνωσηκαι στολισμό για Α-Β τάξη
ΚΑΡΤΕΣ ΑΡΙΘΜΟΙ 1-100.pdf Οργάνωσηκαι στολισμό για Α-Β τάξηΚΑΡΤΕΣ ΑΡΙΘΜΟΙ 1-100.pdf Οργάνωσηκαι στολισμό για Α-Β τάξη
ΚΑΡΤΕΣ ΑΡΙΘΜΟΙ 1-100.pdf Οργάνωσηκαι στολισμό για Α-Β τάξη
ΟΛΓΑ ΤΣΕΧΕΛΙΔΟΥ
 
ΣΧΟΛΙΚΗ ΔΙΑΜΕΣΟΛΑΒΗΣΗ: Μέθοδος Επίλυσης Συγκρούσεων Συνομιλήκων
ΣΧΟΛΙΚΗ ΔΙΑΜΕΣΟΛΑΒΗΣΗ: Μέθοδος Επίλυσης Συγκρούσεων ΣυνομιλήκωνΣΧΟΛΙΚΗ ΔΙΑΜΕΣΟΛΑΒΗΣΗ: Μέθοδος Επίλυσης Συγκρούσεων Συνομιλήκων
ΣΧΟΛΙΚΗ ΔΙΑΜΕΣΟΛΑΒΗΣΗ: Μέθοδος Επίλυσης Συγκρούσεων Συνομιλήκων
Basso Hatzopoulou
 
Panelllinies 2024 ekthesi nea ellinika.pdf
Panelllinies 2024 ekthesi nea ellinika.pdfPanelllinies 2024 ekthesi nea ellinika.pdf
Panelllinies 2024 ekthesi nea ellinika.pdf
ssuserf9afe7
 
Vision Based Coaching-EMCC CY Knowledge Meeting 28.05.24.pdf
Vision Based Coaching-EMCC CY Knowledge Meeting 28.05.24.pdfVision Based Coaching-EMCC CY Knowledge Meeting 28.05.24.pdf
Vision Based Coaching-EMCC CY Knowledge Meeting 28.05.24.pdf
Niki Anandi Koulouri
 

Recently uploaded (20)

Προγράμματα - Δράσεις σχολικού έτους 023-24.pptx
Προγράμματα - Δράσεις σχολικού έτους 023-24.pptxΠρογράμματα - Δράσεις σχολικού έτους 023-24.pptx
Προγράμματα - Δράσεις σχολικού έτους 023-24.pptx
 
Τα θέματα σε Ανατομία-Φυσιολογία ΙΙ στα ΕΠΑΛ
Τα θέματα σε Ανατομία-Φυσιολογία ΙΙ στα ΕΠΑΛΤα θέματα σε Ανατομία-Φυσιολογία ΙΙ στα ΕΠΑΛ
Τα θέματα σε Ανατομία-Φυσιολογία ΙΙ στα ΕΠΑΛ
 
Καμμένη Πάρνηθα.bddbdvbdvd d d dddvdvdvpptx
Καμμένη Πάρνηθα.bddbdvbdvd d d dddvdvdvpptxΚαμμένη Πάρνηθα.bddbdvbdvd d d dddvdvdvpptx
Καμμένη Πάρνηθα.bddbdvbdvd d d dddvdvdvpptx
 
Η ΓΙΟΡΤΗ ΤΟΥ ΠΑΤΕΡΑ (1).pdfφύλλα εργασιων
Η ΓΙΟΡΤΗ ΤΟΥ ΠΑΤΕΡΑ (1).pdfφύλλα εργασιωνΗ ΓΙΟΡΤΗ ΤΟΥ ΠΑΤΕΡΑ (1).pdfφύλλα εργασιων
Η ΓΙΟΡΤΗ ΤΟΥ ΠΑΤΕΡΑ (1).pdfφύλλα εργασιων
 
Η χλωρίδα της Πάρνηθας.bfbfbfbffbfbfbfbbpptx
Η χλωρίδα της Πάρνηθας.bfbfbfbffbfbfbfbbpptxΗ χλωρίδα της Πάρνηθας.bfbfbfbffbfbfbfbbpptx
Η χλωρίδα της Πάρνηθας.bfbfbfbffbfbfbfbbpptx
 
PANELLINIES 2024 SXOLIASMOS GEL EKTHESI.pdf
PANELLINIES 2024 SXOLIASMOS GEL EKTHESI.pdfPANELLINIES 2024 SXOLIASMOS GEL EKTHESI.pdf
PANELLINIES 2024 SXOLIASMOS GEL EKTHESI.pdf
 
Η υδροστατική πίεση
Η υδροστατική                       πίεσηΗ υδροστατική                       πίεση
Η υδροστατική πίεση
 
ΑΠΑΝΤΗΣΕΙΣ-ΝΕΟΕΛΛΗΝΙΚΗΣ-ΓΛΩΣΣΑΣ-2024.pdf
ΑΠΑΝΤΗΣΕΙΣ-ΝΕΟΕΛΛΗΝΙΚΗΣ-ΓΛΩΣΣΑΣ-2024.pdfΑΠΑΝΤΗΣΕΙΣ-ΝΕΟΕΛΛΗΝΙΚΗΣ-ΓΛΩΣΣΑΣ-2024.pdf
ΑΠΑΝΤΗΣΕΙΣ-ΝΕΟΕΛΛΗΝΙΚΗΣ-ΓΛΩΣΣΑΣ-2024.pdf
 
Weatherman 1-hour Speed Course for Web [2024]
Weatherman 1-hour Speed Course for Web [2024]Weatherman 1-hour Speed Course for Web [2024]
Weatherman 1-hour Speed Course for Web [2024]
 
Εκπαιδευτική επίσκεψη στο Μουσείο της Ακρόπολης.pptx
Εκπαιδευτική επίσκεψη στο Μουσείο της Ακρόπολης.pptxΕκπαιδευτική επίσκεψη στο Μουσείο της Ακρόπολης.pptx
Εκπαιδευτική επίσκεψη στο Μουσείο της Ακρόπολης.pptx
 
Εσύ, τι τύπος είσαι στη διαφωνία_ (2).pptx
Εσύ, τι τύπος είσαι στη διαφωνία_ (2).pptxΕσύ, τι τύπος είσαι στη διαφωνία_ (2).pptx
Εσύ, τι τύπος είσαι στη διαφωνία_ (2).pptx
 
Εκπαιδευτική επίσκεψη στο Σεισμολογικό Ινστιτούτο του ΑΠΘ.pptx
Εκπαιδευτική επίσκεψη στο Σεισμολογικό Ινστιτούτο του ΑΠΘ.pptxΕκπαιδευτική επίσκεψη στο Σεισμολογικό Ινστιτούτο του ΑΠΘ.pptx
Εκπαιδευτική επίσκεψη στο Σεισμολογικό Ινστιτούτο του ΑΠΘ.pptx
 
ΥΛΙΚΟ για Σχολική Διαμεσολάβηση Οκτώβριος 2023-Μάιος 2024
ΥΛΙΚΟ για Σχολική Διαμεσολάβηση Οκτώβριος 2023-Μάιος 2024ΥΛΙΚΟ για Σχολική Διαμεσολάβηση Οκτώβριος 2023-Μάιος 2024
ΥΛΙΚΟ για Σχολική Διαμεσολάβηση Οκτώβριος 2023-Μάιος 2024
 
Αναμνήσεις σχολικής χρονιάς.pdfΛεύκωμα / σχολικες αναμνησεις
Αναμνήσεις σχολικής χρονιάς.pdfΛεύκωμα / σχολικες αναμνησειςΑναμνήσεις σχολικής χρονιάς.pdfΛεύκωμα / σχολικες αναμνησεις
Αναμνήσεις σχολικής χρονιάς.pdfΛεύκωμα / σχολικες αναμνησεις
 
Έκθεση Τεχνολογίας Σχολικό Έτος 2023-24.pptx
Έκθεση Τεχνολογίας Σχολικό Έτος 2023-24.pptxΈκθεση Τεχνολογίας Σχολικό Έτος 2023-24.pptx
Έκθεση Τεχνολογίας Σχολικό Έτος 2023-24.pptx
 
Η εκδρομή μας στους Δελφούς
Η εκδρομή μας στους                ΔελφούςΗ εκδρομή μας στους                Δελφούς
Η εκδρομή μας στους Δελφούς
 
ΚΑΡΤΕΣ ΑΡΙΘΜΟΙ 1-100.pdf Οργάνωσηκαι στολισμό για Α-Β τάξη
ΚΑΡΤΕΣ ΑΡΙΘΜΟΙ 1-100.pdf Οργάνωσηκαι στολισμό για Α-Β τάξηΚΑΡΤΕΣ ΑΡΙΘΜΟΙ 1-100.pdf Οργάνωσηκαι στολισμό για Α-Β τάξη
ΚΑΡΤΕΣ ΑΡΙΘΜΟΙ 1-100.pdf Οργάνωσηκαι στολισμό για Α-Β τάξη
 
ΣΧΟΛΙΚΗ ΔΙΑΜΕΣΟΛΑΒΗΣΗ: Μέθοδος Επίλυσης Συγκρούσεων Συνομιλήκων
ΣΧΟΛΙΚΗ ΔΙΑΜΕΣΟΛΑΒΗΣΗ: Μέθοδος Επίλυσης Συγκρούσεων ΣυνομιλήκωνΣΧΟΛΙΚΗ ΔΙΑΜΕΣΟΛΑΒΗΣΗ: Μέθοδος Επίλυσης Συγκρούσεων Συνομιλήκων
ΣΧΟΛΙΚΗ ΔΙΑΜΕΣΟΛΑΒΗΣΗ: Μέθοδος Επίλυσης Συγκρούσεων Συνομιλήκων
 
Panelllinies 2024 ekthesi nea ellinika.pdf
Panelllinies 2024 ekthesi nea ellinika.pdfPanelllinies 2024 ekthesi nea ellinika.pdf
Panelllinies 2024 ekthesi nea ellinika.pdf
 
Vision Based Coaching-EMCC CY Knowledge Meeting 28.05.24.pdf
Vision Based Coaching-EMCC CY Knowledge Meeting 28.05.24.pdfVision Based Coaching-EMCC CY Knowledge Meeting 28.05.24.pdf
Vision Based Coaching-EMCC CY Knowledge Meeting 28.05.24.pdf
 

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"); }