Γλώσσα Προγραμματισμού C++ Εισαγωγή - Μια πρώτη ματιά

Σχετικά έγγραφα
Η γλώσσα προγραμματισμού C

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

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

Εντολές εισόδου - εξόδου. Εισαγωγή στη C++

Γ7.2 Συμβολοσειρές (Strings) Γ Λυκείου Κατεύθυνσης

Δομή Προγράμματος C++, Χειρισμός Μεταβλητών και Συναρτήσεις Εισόδου - Εξόδου

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

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

Προγραμματισμός και Χρήση Ηλεκτρονικών Υπολογιστών - Βασικά Εργαλεία Λογισμικού

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

Στοιχειώδης προγραμματισμός σε C++

ΒΑΣΙΚΟΙ ΤΥΠΟΙ ΚΑΙ ΠΙΝΑΚΕΣ

Αναφορές, είκτες και Αλφαριθμητικά

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

Πληροφορική 2. Γλώσσες Προγραμματισμού

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

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

ΑΣΚΗΣΗ 2: ΔΟΜΗ ΠΡΟΓΡΑΜΜΑΤΟΣ C, ΧΕΙΡΙΣΜΟΣ ΜΕΤΑΒΛΗΤΩΝ ΚΑΙ ΣΥΝΑΡΤΗΣΕΙΣ ΕΙΣΟΔΟΥ ΚΑΙ ΕΞΟΔΟΥ

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

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

C Programming EPL032 Maria Stavrinou Ioannou Εισαγωγή στη Γλώσσα C

Εξοικείωση με το πρόγραμμα DEV C++ Επικοινωνία Χρήστη - Υπολογιστή

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

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

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

Κεφάλαιο 6: Συναρτήσεις IΙΙ Αρθρωτός Προγραμματισμός. (Διάλεξη 14) Παράδειγμα: Αλλαγή τιμής μεταβλητής μόνο τοπικά

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

Εισαγωγή στην πληροφορική

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

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

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

Κεφάλαιο Αλφαριθμητικές Σειρές Χαρακτήρων (Strings) (Διάλεξη 20) 1) Strings στη C

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

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

Ονοματεπώνυμο και ΑΜ: Είχα παραδώσει εργασίες τα εξής ακαδημαϊκά έτη: Διάρκεια: 2,5 ώρες, κλειστά βιβλία και σημειώσεις ΚΑΛΗ ΕΠΙΤΥΧΙΑ!

Κεφάλαιο 6: Συναρτήσεις IΙΙ Αρθρωτός Προγραμματισμός. Δείκτες (Διάλεξη 14)

Αντικειμενοστραφής Προγραμματισμός

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

ΑΡΧΕΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ

ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΥΠΟΛΟΓΙΣΤΩΝ & ΥΠΟΛΟΓΙΣΤΙΚΗ ΦΥΣΙΚΗ

ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΥΠΟΛΟΓΙΣΤΩΝ & ΥΠΟΛΟΓΙΣΤΙΚΗ ΦΥΣΙΚΗ

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

Δομημένος Προγραμματισμός

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

Δισδιάστατοι Πίνακες (2D Arrays) Εισαγωγή στη C++

Εισαγωγή ΕΙΣΑΓΩΓΗ. Γεώργιος Παπαϊωάννου ( )

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

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

Προγραμματισμός Η/Υ 1 (Εργαστήριο)

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

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

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

Πίνακες (Arrays) Εισαγωγή στη C++

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

Ονοματεπώνυμο και ΑΜ: Είχα παραδώσει εργασίες τα προηγούμενα ακαδημαϊκά έτη: ΚΑΛΗ ΕΠΙΤΥΧΙΑ!

Στόχοι και αντικείμενο ενότητας. Εκφράσεις. Η έννοια του τελεστή. #2.. Εισαγωγή στη C (Μέρος Δεύτερο) Η έννοια του Τελεστή

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

ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΕΣΣΑΛΙΑΣ ΣΧΟΛΗ ΘΕΤΙΚΩΝ ΕΠΙΣΤΗΜΩΝ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ

Χωρική Βάση δεδοµένων Autocad

Η-Υ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ. Εργαστήριο 1 Εισαγωγή στη C. Σοφία Μπαλτζή s.mpaltzi@di.uoa.gr

ΑΣΚΗΣΗ 1: TO ΠΕΡΙΒΑΛΛΟΝ ΕΡΓΑΣΙΑΣ DEV-C++

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Εισαγωγή στη Java II

Προγραμματισμός Υπολογιστών & Υπολογιστική Φυσική

Αντικειμενοστραφής Προγραμματισμός I (5 ο εξ) Εργαστήριο #2 ο : Ανατομία προγραμμάτων εφαρμογών, η

Ο πιο κάτω πίνακας περιγράφει σε ποιες περιπτώσεις χρησιμοποιούμε τους τρεις πιο πάνω τρόπους:

Εργαστήριο 2ο. Περίγραμμα Εργαστηριακής Άσκησης

Κεφάλαιο 8.7. Πίνακες & Συναρτήσεις ( ιάλεξη 17) ιδάσκων: ηµήτρης Ζεϊναλιπούρ

Εργαστήριο 08 Εισαγωγή στo Yacc

Π. Σταθοπούλου ή Οµάδα Α (Φοιτητές µε µονό αριθµό Μητρώου ) ιδασκαλία : Παρασκευή 11πµ-13µµ ΗΛ7

Συμβολοσειρές ΣΥΜΒΟΛΟΣΕΙΡΕΣ. Γεώργιος Παπαϊωάννου ( )

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

ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΥΠΟΛΟΓΙΣΤΩΝ & ΥΠΟΛΟΓΙΣΤΙΚΗ ΦΥΣΙΚΗ ΕΞΕΤΑΣΗ IOYNIOY 2018 ΘΕΜΑΤΑ Α ΟΝΟΜΑΤΕΠΩΝΥΜΟ:... ΑΕΜ: ΕΞΑΜΗΝΟ:

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

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

Αντικειμενοστραφής Προγραμματισμός I(5 ο εξ) Εργαστήριο #2 ο : Ανατομία προγραμμάτων εφαρμογών, η

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

Δομημένος Προγραμματισμός

Προηγµένα Θέµατα Τεχνολογιών Υλοποίησης Αλγορίθµων

Εισαγωγή στον Προγραµµατισµό. Διάλεξη 8 η : Συναρτήσεις Χειµερινό Εξάµηνο 2011

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

Συµβολοσειρές - Strings

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

Κεφάλαιο : Εισαγωγή στην C: (Διαλέξεις 3-4)

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

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

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

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

ΑΣΚΗΣΗ 5: ΠΙΝΑΚΕΣ. Σχήµα 1: H έννοια των πινάκων

Εισαγωγή στη γλώσσα προγραμματισμού JAVA. Δομές Δεδομένων Διδάσκων: Π.Α. Μήτκας Τομέας Ηλεκτρονικής και Υπολογιστών

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

Στοιχεία Προγραμματισμού Σε Γραφικό Περιβάλλον Φύλλο εργασίας 1 ο

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

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

2 η Διάλεξη C++ Δρ. Χρήστος Δρόσος ΑΕΙ ΠΕΙΡΑΙΑ ΤΤ ΤΜΗΜΑ ΑΥΤΟΜΑΤΙΣΜΟΥ

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

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

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

Εισαγωγή στην πληροφορική

Κεφάλαιο 3.1, : Συναρτήσεις I. (Διάλεξη 11)

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

Transcript:

Γλώσσα Προγραμματισμού C++ Εισαγωγή - Μια πρώτη ματιά

Βασικά χαρακτηριστικά αναπτύχθηκε ως επέκταση της C το 1979 υπερσύνολο της C γλώσσα γενικού σκοπού, γρήγορη, Αντικειμενοστραφής προγραμματισμός (Object Oriented Programming) 3η πιο δημοφιλής γλώσσα προγραμματισμού* *TIOBE Index for October 2016

IDE s για C++

Το πρώτο μας πρόγραμμα #include <iostream> int main() { std::cout << "Hello world!"; return 0; }

Αναλύοντας το πρώτο μας πρόγραμμα 1. Οδηγία προεπεξεργαστή (preprocessor directive) 2. Δήλωση της συνάρτησης main() 3. Πρόταση εξόδου (output statement) 4. std::cout είναι ένα αντικείμενο της C++ που αναπαριστά την κονσόλα 5. Το σύμβολο << symbol είναι ένας τελεστής (operator) 6. Πρόταση επιστροφής (return statement)

Συντακτικά λάθη Οι προτάσεις σε μια γλώσσα προγραμματισμού γράφονται με μια συγκεκριμένη σύνταξη Ο μεταγλωττιστής (compiler) ελέγχει ένα πρόγραμμα για συντακτικά λάθη Αν παραβιαστεί κάποιος συντακτικός κανόνας ο compiler αναφέρει το λάθος και δεν ολοκληρώνεται η μεταγλώττιση Τα συντακτικά λάθη είναι κοινά και σχετικά εύκολο να εντοπιστούν

Σχόλια (comments) Κείμενο που μπαίνει στον κώδικα για να εξηγήσει ή σχολιάσει τον κώδικά μας Αγνοούνται από τον μεταγλωτιστή Σχόλια μιας γραμμής και πολλαπλών γραμμών

Σχόλια (comments) Σχόλια μιας γραμμής (single line) με το σύμβολο // // cout and endl live in the iostream library std::cout << "Hello world!" << std::endl; Σχόλια πολλαπλών γραμμών (multiline) /* */ /* This is a multi-line comment. This line will be ignored. So will this one. */

Σχολιασμός κώδικα Μπορούμε να σχολιάσουμε και γραμμές κώδικά χρήσιμο για την εκσφαλμάτωση (debugging) Παράδειγμα: calculatesum(n); //storedata(); printresults();

Μεταβλητές x = 5; Τι ακριβώς είναι το x?

Μεταβλητές μια μεταβλητή είναι ένα όνομα που αντιστοιχεί σε μια θέση μνήμης όταν ορίζουμε μια μεταβλητή δεσμεύουμε μια θέση μνήμης στη RAM για να ορίσουμε μια μεταβλητή πρέπει να τη δηλώσουμε

Δήλωση μεταβλητής int x; Δηλώνει μια μεταβλητή τύπου int με όνομα x

Εκχώρηση τιμών (assignments) int y; y = 4; // όρισε y ως ακέραια μεταβλητή // το 4 εκχωρείται στο y y = 2 + 5; // 2 + 5 υπολογίζεται σε 7, το οποίο εκχωρείται στο y int x; // όρισε x ως ακέραια μεταβλητή x = y; // y ισούται με 7 (από πριν), το οποίο εκχωρείται στο x. x = x; // x ισούται to 7, το οποίο εκχωρείται στο x (άχρηστο!) x = x + 1; // x + 1 υπολογίζεται σε 8, το οποίο εκχωρείται στο x.

Αρχικοποίηση μεταβλητών (initialization) Αφού δηλώσουμε μια μεταβλητή μπορούμε τις δώσουμε μια αρχική τιμή int x; // δήλωση μεταβλητής x = 5; // εκχώρηση της τιμής 5 στη μεταβλητή x Μπορούμε να κάνουμε και τα δυο ταυτόχρονα σε μια πρόταση int x = 5; // δήλωση και αρχικοποίηση της μεταβλητής x με την τιμή 5

Μη αρχικοποιημένες μεταβλητές Αν το πρόγραμμα μας δεν αρχικοποιήσει μια μεταβλητή τότε η τιμή της είναι απροσδιόριστη (undefined) και οδηγεί σε λανθασμένα αποτελέσματα. Κάποιοι compilers μπορεί να δώσουνε τιμή 0 σε μια μη αρχικοποιημένη μεταβλητή αλλά δεν πρέπει να βασιζόμαστε σε αυτό int x; // print the value of x to the screen (dangerous, because x is uninitialized) std::cout << x;

Δραστηριότητα Τι τιμές θα τυπώσει το παρακάτω πρόγραμμα? int x = 5; x = x - 2; std::cout << x << std::endl; // #1 int y = x; std::cout << y << std::endl; // #2 // x + y is an r-value in this context, so evaluate their values std::cout << x + y << std::endl; // #3 std::cout << x << std::endl; // #4 int z; std::cout << z << std::endl; // #5

Αντικείμενο cout Το αντικείμενο std::cout (της βιβλιοθήκης iostream) χρησιμοποιείται για την έξοδο (εκτύπωση) κειμένου στη κονσόλα, μαζί με τον τελεστή εξόδου << #include <iostream> int main() { std::cout << "Hello world!"; return 0; }

Αντικείμενο cout Τι θα εκτυπώσει το παρακάτω πρόγραμμα? std::cout << "Hi!"; std::cout << "My name is Alex.";

Αντικείμενο cout Μπορούμε να εκτυπώσουμε περισσότερα στην ίδια γραμμή χρησιμοποιώντας τον τελεστή εξόδου ( << ) πολλαπλές φορές. int x = 4; std::cout << "x is equal to: " << x;

Συνάρτηση std::endl Αν θέλουμε να εκτυπώσουμε σε περισσότερες γραμμές χρησιμοποιούμε το std::endl (παρόμοιο με το χαρακτήρα αλλαγής γραμμής newline /n). std::cout << "Hi!" << std::endl; std::cout << "My name is Alex." << std::endl;

Αντικείμενο std::cin Το αντικείμενο std::cin (της βιβλιοθήκης iostream) χρησιμοποιείται για την είσοδο δεδομένων από τον χρήστη, μαζί με τον τελεστή εισόδου >>. (Το αντίθετο του cout). std::cout << "Enter a number: "; // ζητάμε έναν αριθμό από τον χρήστη int x; // δεν χρειάζεται αρχικοποίηση, θα δώσουμε τιμή αμέσως μετά std::cin >> x; // διάβασε αριθμό από την κονσόλα και αποθήκευσε τον στη x std::cout << "You entered " << x << std::endl; return 0;

std::cin, std::cout, <<, and >> std::cin and cout πάντα βρίσκονται στο αριστερό μέρος της πρότασης εκχώρησης. std::cout χρησιμοποιείται γιε έξοδο τιμών (console output) std::cin χρησιμοποιείται για είσοδο τιμών (cin = console input) << χρησιμοποιείται με std::cout, και δείχνει την κατεύθυνση των δεδομένων std::cout << 4 μετακινεί την τιμή 4 στη κονσόλα >> χρησιμοποιείται με std::cin, και δείχνει την κατεύθυνση των δεδομένων std::cin >> x μετακινεί την τιμή από την κονσόλα στη μεταβλητή

Το όνομα χώρου (namespace) Οτιδήποτε μέσα στη standard library της C++ όριζεται μέσα στο όνομα χώρου std Αντίστοιχα κάθε βιβλιοθήκη έχει το δικό της όνομα χώρου Αυτό γίνεται έτσι ώστε ένα αντικειμένο ή συνάρτηση σε μια βλιοθήλη να μπορούν να έχουν το ίδιο όνομα Αλλά να ξεχωρίζουν από το όνομα χώρου (namespace)

Το όνομα χώρου (namespace) Έχουμε δύο βιβλιοθήκες lib1 και lib2 που έχουν μια συνάρτηση average() με το ίδιο όνομα lib1::average(); lib2::average();

Συναρτήσεις (functions) μια επαναχρησιμοποιήσιμη ακολουθία εντολών σχεδιασμένη να κάνει μια συγκεκριμένη δουλειά κάθε πρόγραμμα C/C++ πρέπει να έχει μια κύρια συνάρτηση ( main() ) από την main() ξεκινά η εκτέλεση του προγράμματος

Συναρτήσεις (functions) void processinput() {. } void update() {. } void render() {. } int main() { while (true) { processinput(); update(); render(); } return 0; }

Συναρτήσεις (functions) - πλεονεκτήματα Η χρήση των συναρτήσεων διευκολύνει την ανάγνωση την σχεδίαση - ανάπτυξη την συντήρηση του προγράμματος την επέκταση ενός προγράμματος

Επιστρoφή τιμών (return values) οι συναρτήσεις επιστρέφουν μια τιμή στην κύρια συνάρτηση ο τύπος επιστροφής (return type) μπορεί να είναι οποιοδήποτε τύπος δεδομένων (π.χ. int, double) όταν δεν επιστρέφουμε τιμή ο τύπος επιστροφής είναι void

Επιστρoφή τιμών (return values) // δεν επιστρέφει τιμή void returnnothing() { std::cout << Hello void << std::endl; // prints } // int επιστρέφει την ακέραια τιμή 5 int return5() { return 5; }

Επιστροφή τιμών (return values) int main() { std::cout << return5() << std::endl; // εκτυπώνει 5 std::cout << return5() + 2 << std::endl; // εκτυπώνει 7 returnnothing(); // δεν επιστρέφεται τιμή return5(); // επιστρέφεται τιμή αλλά χάνεται //std::cout << returnnothing(); // Αυτή η εντολή βγάζει μήνυμα λάθους return 0; } Ερώτηση: Σε τι επιστρέφει η main την τιμή 0?

Ασκήσεις 1. Δημιουργήστε ένα project c++ στο IDE 2. Κάντε compile και εκτέλεση του προγράμματος 3. Σβήστε το ; σε μια εντολή και παρατηρήστε τα μηνύματα 4. Περιηγηθείτε στον φάκελο του project 5. Εκτυπώστε το ονοματεπώνυμο σας 6. Φτιάξτε το προηγούμενο με χρήση συνάρτησης printmyname() 7. Φτιάξτε ένα πρόγραμμα που να εκτυπώνει την ηλικία σας σε μέρες (με ακρίβεια έτους) 8. Το παραπάνω αλλά να διαβάζει την ηλικία από το πληκτρολόγιο 9. Το παραπάνω πρόγραμμα με χρήση συνάρτησης