ΗΓλώσσαΠρογραµµατισµού C++ (The C++ Programming Language)

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

Download "ΗΓλώσσαΠρογραµµατισµού C++ (The C++ Programming Language)"

Transcript

1 1 ΗΓλώσσαΠρογραµµατισµού C++ (The C++ Programming Language) ηµήτριος Κατσαρός, Ph.D. Ελένη Τουσίδου, Ph.D. Χειµώνας 2006 ιάλεξη 7η

2 2 Ιστοσελίδα του µαθήµατος Θα τοποθετούνται οι διαφάνειες του επόµενου µαθήµατος Επικοινωνία:

3 3 Περιεχόµενα Αλφαριθµητικά Κλάση string

4 4 Στόχοι εκµάθησης Χρήση της έννοιας του πίνακα για αλφαριθµητικά C-strings Εργαλεία χειρισµού χαρακτήρων Character I/O get, put συναρτήσεις putback, peek, ignore Κλάση string Επεξεργασία string

5 5 Εισαγωγή υο τύποι αλφαριθµητικών: C-strings Πίνακας µε βασικότύποchar Το τέλος του αλφαριθµητικού σηµατοδοτείται µε το null, "\0" Παλιότερη µέθοδος που κληρονοµήθηκε από τη C Κλάση string Χρησιµοποιεί templates

6 6 C-strings Πίνακας µε βασικότύποchar Ένας χαρακτήρας ανά indexed µεταβλητή Ένας επιπλέον χαρακτήρας: "\0" Αποκαλείται null χαρακτήρας Χαρακτήρας τέλους

7 7 Μεταβλητή τύπου C-string Πίνακας χαρακτήρων: char s[10]; ήλωση µεταβλητής c-string που µπορεί να κρατήσει µέχρι 9 χαρακτήρες + τον null χαρακτήρα Συνήθως µερικώς-πλήρης πίνακας ήλωση αρκετά µεγάλου µεγέθους, ώστε να µπορεί να κρατήσει το αλφαριθµητικό του µεγαλύτερου µεγέθους που µπορεί να συναντηθεί Indicate end with null Η µοναδική διαφορά από τους τυπικούς πίνακες: Πρέπει να περιέχει τον null χαρακτήρα

8 8 Αποθήκευση ενός C-string Τυπικός πίνακας: char s[10]; Εάν το s περιέχει το αλφαριθµητικό "Hi Mom!", θα αποθηκευτεί ως:

9 9 Αρχικοποίηση ενός C-string Μπορούµε να αρχικοποιήσουµε έναc-string: char mymessage[20] = "Hi there."; εν χρειάζεται να γεµίσουµε ολόκληρο τον πίνακα Η αρχικοποίηση τοποθετεί το "\0" στο τέλος Μπορούµεναπαραλείψουµετοµέγεθος του πίνακα: char shortstring[] = "abc"; Αυτόµατα κάνει το µέγεθος του πίνακα κατά ένα µεγαλύτερο από το µήκος του αλφαριθµητικού ΕΝ είναι το ίδιο µε το: char shortstring[] = {"a", "b", "c"};

10 10 C-string Indexes Ένα c-string ΕΙΝΑΙ ένας πίνακας Μπορούµεναπροσπελάσουµε τιςindexed µεταβλητές του: char ourstring[5] = "Hi"; Το ourstring[0] είναι το "H" Το ourstring[1] είναι το "i" Το ourstring[2] είναι το "\0" Το ourstring[3] είναι απροσδιόριστο Το ourstring[4] είναι απροσδιόριστο

11 Χειρισµός των indexes ενός C-string 11 Μπορούµεναχειριστούµε τις indexed µεταβλητές char happystring[7] = "DoBeDo"; happystring[6] = "Z"; Προσοχή! Εδώ, το "\0" (null) αντικαταστάθηκε από το "Z"! Εάν το null διαγραφεί, όπως εδώ, το c-string δεν συµπεριφέρεται πλέον όπως ένα c-string! Απροσδιόριστα αποτελέσµατα!

12 12 Βιβλιοθήκη ήλωση c-strings εν απαιτεί κάποια C++ βιβλιοθήκη Κοµµάτι της βασικής C++ Χειρισµός Απαιτούν τη βιβλιοθήκη <cstring> Τυπικά, τις συµπεριλαµβάνουµε όταν χρησιµοποιούµε ταc-strings

13 13 Τελεστές = και == µεταc-strings Τα C-strings δεν είναι όπως οι άλλες µεταβλητές εν επιτρέπεται η ανάθεση και η σύγκριση: char astring[10]; astring = "Hello"; //ΠΑΡΑΝΟΜΟ! Μπορούµεναχρησιµοποιήσουµετηνανάθεση"=" ΜΟΝΟ στη δήλωση ενός c-string! Πρέπει να χρησιµοποιήσουµεσυνάρτηση βιβλιοθήκης για ανάθεση: strcpy(astring, "Hello"); Ενσωµατωµένη συνάρτηση (στη βιβλιοθήκη <cstring>) Θέτει την τιµήτουastring ίση µε "Hello" ΕΝ ελέγχει για µέγεθος! Αφήνεται στον προγραµµατιστή, όπως συµβαίνει και στους πίνακες!

14 14 Σύγκριση δυο C-strings Επίσης, δεν µπορούµεναχρησιµοποιήσουµε τον τελεστή == char astring[10] = "Hello"; char anotherstring[10] = "Goodbye"; astring == anotherstring; // ΕΝ επιτρέπεται! Πρέπει να χρησιµοποιήσουµε συνάρτηση βιβλιοθήκης: if (strcmp(astring, anotherstring)) cout << "Strings NOT same."; else cout << "Strings are same.";

15 15 Ηβιβλιοθήκη<cstring> (1/2)

16 16 Ηβιβλιοθήκη<cstring> (2/2)

17 17 Συναρτήσεις για C-string: strlen() Μήκος αλφαριθµητικού Συχνά είναι χρήσιµοναγνωρίζουµε τοµήκος του αλφαριθµητικού: char mystring[10] = "dobedo"; cout << strlen(mystring); Επιστρέφει τον αριθµό των χαρακτήρων Το null δεν συµπεριλαµβάνεται Το αποτέλεσµα είναι: 6

18 18 Συναρτήσεις για C-string: strcat() Συνένωση αλφαριθµητικών Συχνά επιθυµούµεναενώσουµε δυοαλφαριθµητικά: char stringvar[20] = "The rain"; strcat(stringvar, "in Spain"); είτε το αποτέλεσµα: Η µεταβλητή stringvar περιέχει τώρα "The rainin Spain" Προσοχή! Προσθέστε κενά όπου χρειάζεται!

19 19 C-strings ως ορίσµατα, παράµετροι Θυµηθείτε: ένα c-string είναι ένας πίνακας Μια παράµετρος c-string είναι µια παράµετρος πίνακα Τα c-strings που περνιούνται σε συναρτήσεις µπορεί να αλλαχτούν από την καλούµενη συνάρτηση! Όπως όλοι οι πίνακες, είναι σύνηθες να στέλνουµε και το µέγεθος ως όρισµα Ησυνάρτησηθαµπορούσε βέβαια να βρει το χαρακτήρα "\0" και έτσι να προσδιορίσει το µέγεθος του αλφαριθµητικού Έτσι, το µέγεθος δεν είναι απόλυτα απαραίτητο εάν η συνάρτηση δεν θα αλλάξει την παράµετρο c-string Χρησιµοποιήστε τον "const" modifier γιαναπροστατέψετε τα ορίσµατα c-string

20 20 Έξοδος για C-string Η έξοδος επιτυγχάνεται µε τοντελεστή<< Το έχουµεήδηδει: cout << news << " Wow.\n"; Όπου το news είναι µια µεταβλητή c-string Είναι δυνατό, επειδή ο τελεστής << υπερφορτώνεται για τα c-strings!

21 21 Είσοδος για C-string Η είσοδος επιτυγχάνεται µετοντελεστή>> Υπάρχουν βέβαια κάποια ζητήµατα Οι λευκοί χαρακτήρες θεωρούνται "delimiter" Tab, space, line breaks παραβλέπονται Η ανάγνωση εισόδου σταµατά σε έναν delimiter Παρακολουθήστε το µέγεθος του c-string Πρέπει να είναι αρκετά µεγάλο για να κρατήσει ολόκληρο το αλφαριθµητικό! Η C++ δεν παρέχει προειδοποιήσεις σε τέτοια ζητήµατα!

22 22 Παράδειγµα εισόδου για C-string char a[80], b[80]; cout << "Enter input: "; cin >> a >> b; cout << a << b << "END OF OUTPUT\n"; Ο διάλογος που λαµβάνει χώρα είναι: Enter input: Do be do to you! DobeEND OF OUTPUT Σηµείωση: Το υπογραµµισµένο τµήµα πληκτρολογείται στο πληκτρολόγιο Το c-string a λαµβάνει το: "do" Το c-string b λαµβάνει το: "be"

23 23 Είσοδος γραµµής σε C-string Μπορούµεναλάβουµε ολόκληρηγραµµήωςτιµή σε ένα c-string Χρησιµοποιήστε τη getline(), µια προκαθορισµένη συνάρτηση: char a[80]; cout << "Enter input: "; cin.getline(a, 80); cout << a << "END OF OUTPUT\n"; Ο διάλογος που λαµβάνει χώρα είναι: Enter input: Do be do to you! Do be do to you!end OF INPUT

24 24 Λίγα περισσότερα για τη getline() Μπορούµε ρητά να καθορίσουµε τοναριθµό χαρακτήρων που θα λάβει: char shortstring[5]; cout << "Enter input: "; cin.getline(shortstring, 5); cout << shortstring << "END OF OUTPUT\n"; Αποτέλεσµα: Enter input: dobedowap dobeend OF OUTPUT Εξαναγκάζει να διαβαστούν ΤΕΣΣΕΡΕΙΣ µόνο χαρακτήρες Επειδή χρειάζεται χώρο για τον χαρακτήρα null!

25 25 I/O χαρακτήρων Είσοδος και Έξοδος δεδοµένων ΌΛΑ αντιµετωπίζονται ως χαρακτήρες π.χ., οαριθµός 10 τυπώνεται ως "1" και "0" Η µεταροπή γίνεται αυτόµατα Χρησιµοποιεί χαµηλού επιπέδου λειτουργίες Φυσικά, µπορούµεκαιεµείς να χρησιµοποιήσουµε τις ίδιες χαµηλού επιπέδου λειτουργίες

26 26 Συνάρτηση get() ιαβάζει ένα χαρακτήρα κάθε φορά Συνάρτηση µέλος του αντικειµένου cin: char nextsymbol; cin.get(nextsymbol); ιαβάζει τον επόµενο χαρακτήρα και τον τοποθετεί στη µεταβλητή nextsymbol Το όρισµα πρέπει να είναι τύπου char Όχι "string"!

27 27 Συνάρτηση put() Τυπώνει ένα χαρακτήρα κάθε φορά Συνάρτηση µέλος του αντικειµένου cout: Παραδείγµατα: cout.put( a ); Τυπώνει το γράµµα "a" στην οθόνη char mystring[10] = "Hello"; cout.put( mystring[1] ); Τυπώνει το γράµµα "e" στην οθόνη

28 28 Κι άλλες συναρτήσεις putback() Αφού διαβαστεί κάποιος χαρακτήρας, ίσως χρειαστεί να τοποθετηθεί πίσω στο κανάλι εισόδου cin.putback( lastchar ); peek() Επιστρέφει τον επόµενο χαρακτήρα, αλλά τον αφήνει εκεί peekchar = cin.peek(); ignore() Αγνοεί την είσοδο, µέχρι τον συγκεκριµένο χαρακτήρα cin.ignore(1000, "\n"); Αγνοεί το πολύ 1000 χαρακτήρες µέχρι τον "\n"

29 29 Ηβιβλιοθήκη<ctype> (1/3)

30 30 Ηβιβλιοθήκη<ctype> (2/3)

31 31 Ηβιβλιοθήκη<ctype> (3/3)

32 32 Ηκλάσηstring Ορίζεται στη βιβλιοθήκη: #include <string> using namespace std; Μεταβλητές string και εκφράσεις Αντιµετωπίζονταιόπωςκαιοιαπλοίτύποι Επιτρέπεται ανάθεση, σύγκριση, πρόσθεση: string s1, s2, s3; s3 = s1 + s2; //Concatenation s3 = "Hello Mom!" //Assignment Σηµειώστε ότι το c-string "Hello Mom!" µετατρέπεται αυτόµατα σε τύπο string!

33 33 Παράδειγµα χρήσηςτηςstring

34 34 I/O µε την κλάση string Όπως και για τους άλλους τύπους! string s1, s2; cin >> s1; cin >> s2; Αποτελέσµατα: Οχρήστηςπληκτρολογεί το ακόλουθο: May the hair on your toes grow long and curly! Η εξαγωγή αγνοεί τους λευκούς χαρακτήρες: Το s1 λαµβάνει την τιµή "May" Το s2 λαµβάνει την τιµή "the"

35 35 Η getline() µετηνκλάσηstring Για πλήρεις γραµµές: string line; cout << "Enter a line of input: "; getline(cin, line); cout << line << "END OF OUTPUT"; Ο διάλογος που λαµβάνει χώρα: Enter a line of input: Do be do to you! Do be do to you!end OF INPUT Όµοια µε τη χρήση της getline() για c- strings

36 36 Άλλες εκδόσεις της getline() Μπορούµενακαθορίσουµε "delimiter" χαρακτήρα: string line; cout << "Enter input: "; getline(cin, line, "?"); Λαµβάνει είσοδο µέχρι να συναντήσει το χαρακτήρα "?" Η getline() στην ουσία επιστρέφει αναφορά string s1, s2; getline(cin, s1) >> s2; Results in: (cin) >> s2;

37 37 Παγίδα: Μίξη µεθόδων εισόδου Προσοχή στη µίξη cin >> var και getline int n; string line; cin >> n; getline(cin, line); Εάν η είσοδος είναι: 42 Hello hitchhiker Η µεταβλητή n τίθεται στην τιµή 42 Η µεταβλητή line τέθηκε στο κενό αλφαριθµητικό! Η cin >> n αγνοεί τους λευκούς χαρακτήρες, αφήνοντας όµως το "\n" στο ρεύµα εισόδου για την getline()!

38 38 Επεξεργασία για την κλάση string ιαθέσιµες οι ίδιες λειτουργίες όπως και στα c-strings Και ακόµα Πάνω από 100 µέλη της standard κλάσης string Μερικές συναρτήσεις-µέλη:.length() Επιστρέφει το µήκος της µεταβλητής string.at(i) Επιστρέφει αναφορά στο χαρακτήρα στη θέση i

39 39 Συναρτήσεις-µέλη της string (1/2)

40 40 Συναρτήσεις-µέλη της string (2/2)

41 Μετατροπές µεταξύ C-string και 41 αντικειµένων της κλάσης string Αυτόµατες µετατροπές τύπων Από ένα C-string σε αντικείµενο string: char acstring[] = "My C-string"; string stringvar; stringvar = acstring; Επιτρεπτό και κατάλληλο! acstring = stringvar; Μη επιτρπτό! εν µπορεί να αυτο-µετατραπεί σε C-string Χρειάζεται ρητή µετατροπή: strcpy(acstring, stringvar.c_str());

42 42 Περίληψη Μια µεταβλητή τύπου C-string είναι πίνακας χαρακτήρων Με την προσθήκη του ΚΕΝΟΥ χαρκτήρα (null character), "\0" Τα C-strings λειτουργούν όπως οι πίνακες εν επιτρέπουν ανάθεση και σύγκριση όπως οι απλές µεταβλητές Βιβλιοθήκες όπως οι <cctype> και <string> περιέχουν χρήσιµες συναρτήσεις διαχείρισης Η cin.get() διαβάζει τον επόµενο (µόνο) χαρακτήρα Οι εκδόσεις της getline() επιτρέπουν ανάγνωση ολόκληρων γραµµών Τα αντικείµενα της κλάσης String συµπεριφέρονται καλύτερα από ότι τα c-strings

43 43 Περιεχόµενα Χωριστή µεταγλώττιση και Namespaces

44 44 Στόχοι εκµάθησης Χωριστή µεταγλώττιση Επανα-θεώρηση της ενθυλάκωσης Αρχεία κεφαλίδας (header) και αρχεία υλοποίησης (implementation) Namespaces Με χρήση των directives Qualifying ονόµατα Namespaces χωρίς όνοµα Απόκρυψη των βοηθητικών συναρτήσεων Φωλιασµένα namespaces

45 45 Χωριστή µεταγλώττιση Τµήµατα του προγράµµατος Κρατούνται σε διαφορετικά αρχεία Μεταγλωττίζονται χωριστά Συνενώνονται πριν εκτελεστεί το πρόγραµµα Ορισµοί κλάσεων Χωριστοί από τα προγράµµατα που τις χρησιµοποιούν ηµιουργία βιβλιοθηκών κλάσεων Επανα-χρησιµοποιούνται από πολλά διαφορετικά προγράµµατα Όπωςκαιοιπροκαθορισµένες βιβλιοθήκες

46 46 ιαχωρισµός κλάσεων Ανεξαρτησία κλάσης Χωριστά ο ορισµός/προσδιορισµός της κλάσης Αποκαλείται interface Χωριστά η υλοποίηση της κλάσης Τοποθετούνται σε δυο διαφορετικά αρχεία Εάν αλλάξει η υλοποίηση µόνοαυτότο αρχείο χρειάζεται να αλλάξει Ο προσδιορισµός της κλάση δεν αλλάζει Τα προγράµµατα των χρηστών δεν αλλάζουν

47 47 Επαναθεώρηση της ενθυλάκωσης Αρχή της ενθυλάκωσης: ιαχωρισµός του πώς χρησιµοποιείται η κλάση από τον προγραµµατιστή από τις λεπτοµέρειες υλοποίησης της κλάσης Πλήρης διαχωρισµός Αλλαγή της υλοποίησης ΚΑΜΙΑ επίδραση στα άλλα προγράµµατα Βασική αρχή του OOP

48 48 Κανόνες ενθυλάκωσης Κανόνες για να εγγυηθούµε ενθυλάκωση: 1. Όλες οι µεταβλητές-µέλη πρέπει να είναι ιδιωτικές 2. Οι βασικές λειτουργίες της κλάσης πρέπει να είναι οι: ηµόσιες συναρτήσεις-µέλη Friend ή κανονικές συναρτήσεις Υπερφορτωµένοι τελεστές Οµαδοποίηση του ορισµού της κλάσης και των δηλώσεων/πρωτότυπα των συναρτήσεων Αποκαλείται διασύνδεση ( interface ) της κλάσης 3. Κάνουµε την υλοποίηση της κλάσης µηδιαθέσιµη στους χρήστες της

49 49 Περισσότερα για διαχωρισµόκλάσης Αρχείο διασύνδεσης Περιέχει τον ορισµό τηςκλάσηςµαζί µε τις δηλώσεις/πρωτότυπα των συναρτήσεων και των τελεστών Οι χρήστες βλέπουν αυτό το αρχείο Χωριστή µονάδα µεταγλώττισης Αρχείο υλοποίησης Περιέχει τους ορισµούς (υλοποίηση) των συναρτήσεων-µελών Χωριστή µονάδα µεταγλώττισης

50 50 Αρχεία κεφαλίδας της κλάσης Η διασύνδεση της κλάσης πάντα στο header file Χρήση του.h είναι σύµβαση για το όνοµά του Τα προγράµµατα που θα χρησιµοποιήσουν την κλάση θα το κάνουν "include" #include "myclass.h" Τα ""σηµατοδοτούν ότι γράφηκε από εµάς Το εντοπίζουµε στον τοπικό φάκελο εργασίας µας Θυµηθείτε τα include για βιβλιοθήκες, π.χ., <iostream> Τα <>σηµατοδοτούν header file προκαθορισµένης βιβλιοθήκης Τα εντοπίζουµεστοφάκελοµε τις βιβλιοθήκες

51 51 Αρχεία υλοποίησης της κλάσης Η υλοποίηση της κλάσης τοποθετείται σε.cpp αρχείο Συνήθως δίνουµε στοinterface αρχείο και στο αρχείο υλοποίησης το ίδιο όνοµα myclass.h και myclass.cpp Όλες οι συναρτήσεις-µέλη της κλάσης ορίζονται εδώ Το αρχείο υλοποίησης πρέπει να κάνει #include το header αρχείο της κλάσης Τα.cpp αρχεία συνήθως, περιέχουν εκτελέσιµο κώδικα π.χ., ορισµούς συναρτήσεων, περιλαµβανοµένης και της main()

52 52 Αρχεία της κλάσης Το header αρχείο της κλάσης γίνεται #include από: Το αρχείο υλοποίησης Το αρχείο προγράµµατος Συχνά αποκαλείται αρχείο εφαρµογής ή αρχείο οδηγός Η οργάνωση των αρχείων διαφέρει από σύστηµα σεσύστηµα Τα συνήθη IDE έχουν "project" ή "workspace" Τα αρχεία υλοποίησης συνδυάζονται εδώ Εξακολουθούµε νακάνουµε #include τα header αρχεία

53 Πολλαπλές µεταγλωττίσεις των 53 αρχείων header Αρχεία header Συνήθως γίνονται #include πολλές φορές π.χ., η διασύνδεση της κλάσης γίνεται include από την υλοποίησητηςκλάσηςαλλάκαιαπότοαρχείοεφαρµογής Πρέπει όµως να µεταγλωττιστεί µόνο µια φορά! εν υπάρχει εγγύηση για το ποιο "#include" σε ποιο αρχείο, θα δει πρώτο ο compiler Χρήση του προεπεξεργαστή Καθοδηγούµε τονcompiler να κάνει include το header µόνο µια φορά

54 54 Χρήση της #ifndef οµή αρχείουheader: #ifndef FNAME_H #define FNAME_H //Contents of header file #endif Το FNAME είναι συνήθως το όνοµατου ίδιου του αρχείου για συνέπεια και ευκολία Αυτή η σύνταξη αποφεύγει τους πολλαπλούς ορισµούς του αρχείου header

55 55 Άλλα αρχεία βιβλιοθήκης Η βιβλιοθήκες δεν είναι µόνο για τις κλάσεις Σχετικές συναρτήσεις ηλώσεις αρχείο header Ορισµοί αρχείο υλοποίησης Άλλοι ορισµοί τύπων structs, απλά typedefs αρχείο header ηλώσεις σταθερών αρχείο header

56 56 Namespaces Ορισµός ενός namespace: Μια συλλογή ορισµών ονοµάτων Ορισµοί κλάσεων ηλώσεις µεταβλητών Τα προγράµµατα χρησιµοποιούν πολλές συναρτήσεις, κλάσεις Συνήθως έχουν ίδια ονόµατα Τα namespaces αντιµετωπίζουν αυτό το πρόβληµα Μπορεί να είναι "on" ή "off" Εάν τα ονόµατα είναι πιθανό να συγκρουστούν turn off

57 57 Η directive using using namespace std; Κάνει διαθέσιµους όλους τους ορισµούς στο std namespace Γιατί πιθανόν να ΜΗΝ το θέλουµε αυτό? Μπορεί να κάνει τα cout, cin να έχουν το µητυπικό τους νόηµα Ίσως ανάγκη να ξανα-ορίσουµε ταcout, cin Μπορούµεναξαναορίσουµε όποιο άλλο επιθυµούµε

58 58 Το namespace std Περιέχειόλαταονόµατα που ορίζονται σε πολλά αρχεία standard βιβλιοθηκών Παράδειγµα: #include <iostream> Τοποθετεί όλους τους ορισµούς των ονοµάτων (cin, cout, κ.τ.λ.) στο std namespace Το πρόγραµµά µας δεν γνωρίζει τα ονόµατα Πρέπει να καθορίσουµε αυτότοnamespace για να µπορέσει το πρόγραµµά µας να προσπελάσει τα ονόµατα

59 59 Καθολικό (Global) namespace Όλος ο κώδικας πηγαίνει σε κάποιο namespace Εκτός εάν το καθορίσουµε αλλιώς Global namespace εν χρειάζεται να κάνουµε χρήσηκάποιας directive Το Global namespace είναι πάντα διαθέσιµο Υπάρχει µια αυτόµατη using directive για το global namespace

60 60 Πολλαπλά ονόµατα Πολλαπλά namespaces π.χ., συνήθως χρησιµοποιούνται το global και το std Τι θα συµβεί εάν κάποιο όνοµαορίζεταικαι στα δυο? Error Μπορούµεναταχρησιµοποιήσουµε και τα δυο, αλλά όχι ταυτόχρονα Πρέπει να καθορίσουµεποιοαπόταδυο χρησιµοποιούµε

61 61 Καθορίζοντας namespaces εδοµένων των namespaces NS1 και NS2 Και τα δυο έχουν void function myfunction() ηοποίαόµως ορίζεται διαφορετικά { using namespace NS1; myfunction(); } { using namespace NS2; myfunction(); } Χρησιµοποιώντας τη directive έχει εµβέλεια block

62 62 ηµιουργώντας ένα namespace Χρησιµοποιήστε namespace οµαδοποίηση: namespace Name_Space_Name { Some_Code } Τοποθετεί όλα τα ονόµατα που ορίζονται στο Some_Code στο namespace Name_Space_Name Κατόπιν µπορούν να γίνουν διαθέσιµα: using namespace Name_Space_Name

63 Παράδειγµα δηµιουργίας namespace ήλωση συνάρτησης: namespace Space1 { void greeting(); } Ορισµός συνάρτησης: namespace Space1 { void greeting() { cout << "Hello from namespace Space1.\n"; } } 63

64 64 using δηλώσεων Μπορούµε να καθορίσουµε µεµονωµένα ονόµατα από το namespace είτε το εξής: Έστωσαν τα namespaces NS1 και NS2 Κάθε ένα έχει συναρτήσεις fun1(), fun(2) Σύνταξη δήλωσης: using Name_Space::One_Name; Καθορίζουµε ποιοόνοµα απόταδυο: using NS1::fun1; using NS2::fun2;

65 65 using ορισµούς και δηλώσεις ιαφορές: using δήλωση Κάνει διαθέσιµο ΈΝΑµόνο όνοµα τουnamespace Εισαγάγει ονόµατα, έτσι ώστε καµία άλλη χρήση αυτών δεν επιτρέπεται using directive Κάνει διαθέσιµα ΌΛΑ τα ονόµατα του namespace Εισαγάγει ονόµατα µόνο εν δυνάµει

66 66 Qualifying ονόµατα Μπορούµε να καθορίσουµε από πού προέρχεται ένα όνοµα Χρησιµοποιούµε "qualifier" και τελεστή διάκρισης εµβέλειας (scope-resolution operator) Χρησιµοποιείται µόνο εάν πρόκειται να χρησιµοποιήσουµε τοόνοµα µια φορά (ή λίγες σχετικά) NS1::fun1(); Καθορίζει ότι η fun() προέρχεται από το namespace NS1 Ειδικά χρήσιµο γιαπαραµέτρους: int getinput(std::istream inputstream); Ηπαράµετρος βρίσκεται στο std namespace της istream Εξαλείφει την ανάγκη για την directive using ή using δήλωση

67 67 Ονοµατίζοντας namespaces Χρησιµοποιούµε µοναδικό string Ελαττώνει την πιθανότητα για άλλα namespaces µε τοίδιοόνοµα Συχνά πολλοί προγραµµατιστές γράφουν namespaces για το ίδιο πρόγραµµα Πρέπει να έχουν διακριτά ονόµατα Χωρίς πολλαπλοί ορισµοί του ίδιου ονόµατος στην ίδια εµβέλεια Προκύπτει error

68 68 Παρ. κλάσης σε namespace (αρχείο.h)

69 69 Παρ. κλάσης σε namespace (αρχείο.cpp)

70 70 Ανώνυµα (unnamed) Namespaces Ορισµός µονάδας µεταγλώττισης : Ένα αρχείο, µαζί µε όλα τα αρχεία που γίνονται #include από αυτό Κάθε µονάδα µεταγλώττισης έχει unnamed namespace Γράφεται µε τον ίδιο τρόπο, αλλά χωρίς όνοµα Τότε, όλαταονόµατα είναι τοπικά στην µονάδα µεταγλώττισης Χρησιµοποιούµε unnamed namespaces για να κρατήσουµε τα πράγµατα τοπικά Ηεµβέλεια ενός unnamed namespace είναι η µονάδα µεταγλώττισης

71 71 Global vs. Unnamed Namespaces εν είναι το ίδιο Global namespace: εν υπάρχει καθόλου namespace οµαδοποίηση Καθολική εµβέλεια Unnamed namespace: Έχει namespace οµαδοποίηση, απλά δεν έχει όνοµα Τοπική εµβέλεια

72 72 Φωλιαµένα namespaces Ο φωλιασµός namespaces είναι έγκυρος namespace S1 { namespace S2 { void sample() { } } Κάνουµε qualification το όνοµαδυοφορές: S1::S2::sample();

73 73 Απόκρυψη βοηθητικών συναρτήσεων Θυµηθείτε τις βοηθητικές συναρτήσεις: Χαµηλού επιπέδου λειτουργίες Όχι για δηµόσια χρήση υο τρόποι να τις κρύψουµε: Τις κάνουµε ιδιωτικές συναρτήσεις-µέλη Εάν η συνάρτηση παίρνει calling object Τις τοποθετούµε στοunnamed namespace της υλοποίησης της κλάσης! Εάν η συνάρτηση δεν χρειάζεται calling object Φτιάχνει καθαρότερο κώδικα (χωρίς qualifiers)

74 74 Περίληψη 1 Μπορούµεναδιαχωρίσουµετονορισµόαπότην υλοποίηση µιας κλάσης διαφορετικά αρχεία ιαφορετικές µονάδες µεταγλώττισης Ένα namespace είναι µια συλλογή από ορισµούς ονοµάτων Τρεις τρόποι για να χρησιµοποιήσουµε έναόνοµα ενός namespace: using directive using declaration qualifying

75 75 Περίληψη 2 Οι ορισµοί των namespace τοποθετούνται µέσα σε οµαδοποιήσεις namespace Ανώνυµο (Unnamed) namespace Χρησιµοποιείται για τοπικούς ορισµούς ονοµάτων Ηεµβέλεια είναι η µονάδα µεταγλώττισης Καθολικό (Global) namespace Τα στοιχεία (items) που δεν βρίσκονται σε καµία οµαδοποίηση namespace Καθολική εµβέλεια

Η Γλώσσα Προγραµµατισµού C++ (The C++ Programming Language)

Η Γλώσσα Προγραµµατισµού C++ (The C++ Programming Language) 1 Η Γλώσσα Προγραµµατισµού C++ (The C++ Programming Language) ηµήτριος Κατσαρός, Ph.D. Χειµώνας 2005 ιάλεξη 7η 2 Ιστοσελίδα του µαθήµατος http://skyblue.csd.auth.gr/~dimitris/courses/cpp_fall05.htm Θα

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

Η Γλώσσα Προγραµµατισµού C++ (The C++ Programming Language) Ιστοσελίδα του µαθήµατος. Περιεχόµενα. ηµήτριος Κατσαρός, Ph.D. Αλφαριθµητικά Κλάση string

Η Γλώσσα Προγραµµατισµού C++ (The C++ Programming Language) Ιστοσελίδα του µαθήµατος. Περιεχόµενα. ηµήτριος Κατσαρός, Ph.D. Αλφαριθµητικά Κλάση string 1 Η Γλώσσα Προγραµµατισµού C++ (The C++ Programming Language) ηµήτριος Κατσαρός, Ph.D. Χειµώνας 2005 ιάλεξη 7η Ιστοσελίδα του µαθήµατος 2 http://skyblue.csd.auth.gr/~dimitris/courses/cpp_fall05.htm Θα

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

ΗΓλώσσαΠρογραµµατισµού C++ (The C++ Programming Language) Ιστοσελίδα του µαθήµατος. Περιεχόµενα. ηµήτριος Κατσαρός, Ph.D. Ελένη Τουσίδου, Ph.D.

ΗΓλώσσαΠρογραµµατισµού C++ (The C++ Programming Language) Ιστοσελίδα του µαθήµατος. Περιεχόµενα. ηµήτριος Κατσαρός, Ph.D. Ελένη Τουσίδου, Ph.D. 1 ΗΓλώσσαΠρογραµµατισµού C++ (The C++ Programming Language) ηµήτριος Κατσαρός, Ph.D. Ελένη Τουσίδου, Ph.D. Χειµώνας 2006 ιάλεξη 7η Ιστοσελίδα του µαθήµατος 2 http://skyblue.csd.auth.gr/~dimitris/courses/cpp_fall06.htm

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

Η Γλώσσα Προγραµµατισµού C++ (The C++ Programming Language) Ιστοσελίδα του µαθήµατος. Περιεχόµενα. ηµήτριος Κατσαρός, Ph.D.

Η Γλώσσα Προγραµµατισµού C++ (The C++ Programming Language) Ιστοσελίδα του µαθήµατος. Περιεχόµενα. ηµήτριος Κατσαρός, Ph.D. 1 Η Γλώσσα Προγραµµατισµού C++ (The C++ Programming Language) ηµήτριος Κατσαρός, Ph.D. Χειµώνας 2005 ιάλεξη 8η Ιστοσελίδα του µαθήµατος 2 http://skyblue.csd.auth.gr/~dimitris/courses/cpp_fall05.htm Θα

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

Η Γλώσσα Προγραµµατισµού C++ (The C++ Programming Language)

Η Γλώσσα Προγραµµατισµού C++ (The C++ Programming Language) 1 Η Γλώσσα Προγραµµατισµού C++ (The C++ Programming Language) ηµήτριος Κατσαρός, Ph.D. Χειµώνας 2005 ιάλεξη 8η 2 Ιστοσελίδα του µαθήµατος http://skyblue.csd.auth.gr/~dimitris/courses/cpp_fall05.htm Θα

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

Η Γλώσσα Προγραµµατισµού C++ (The C++ Programming Language) Ιστοσελίδα του µαθήµατος. Περιεχόµενα. ηµήτριος Κατσαρός, Ph.D. Κλάσεις.

Η Γλώσσα Προγραµµατισµού C++ (The C++ Programming Language) Ιστοσελίδα του µαθήµατος. Περιεχόµενα. ηµήτριος Κατσαρός, Ph.D. Κλάσεις. 1 Η Γλώσσα Προγραµµατισµού C++ (The C++ Programming Language) ηµήτριος Κατσαρός, Ph.D. Χειµώνας 2005 ιάλεξη 5η Ιστοσελίδα του µαθήµατος 2 http://skyblue.csd.auth.gr/~dimitris/courses/cpp_fall05.htm Θα

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

Η Γλώσσα Προγραµµατισµού C++ (The C++ Programming Language)

Η Γλώσσα Προγραµµατισµού C++ (The C++ Programming Language) Η Γλώσσα Προγραµµατισµού C++ (The C++ Programming Language) ηµήτριος Κατσαρός, Ph.D. Χειµώνας 2005 ιάλεξη 5η Ιστοσελίδα του µαθήµατος http://skyblue.csd.auth.gr/~dimitris/courses/cpp_fall05.htm Θα τοποθετούνται

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

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

Συµβολοσειρές - Strings Συµβολοσειρές - Strings 1 Συµβολοσειρέςστην C/C++ 2 Χαρακτήρες 'a', 'z', '0', Χαρακτήρες σαν int 'z' επίσης αναπαριστά την ακεραία τιµή του χαρακτήρα z Strings-Συµβολοσειρές Σειρές από χαρακτήρες σαν µια

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

Η Γλώσσα Προγραµµατισµού C++ (The C++ Programming Language)

Η Γλώσσα Προγραµµατισµού C++ (The C++ Programming Language) 1 Η Γλώσσα Προγραµµατισµού C++ (The C++ Programming Language) ηµήτριος Κατσαρός, Ph.D. Χειµώνας 2005 ιάλεξη 3η 2 Ιστοσελίδα του µαθήµατος http://skyblue.csd.auth.gr/~dimitris/courses/cpp_fall05.htm Θα

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

Η Γλώσσα Προγραµµατισµού C++ (The C++ Programming Language) Ιστοσελίδα του µαθήµατος. Περιεχόµενα. ηµήτριος Κατσαρός, Ph.D. Πίνακες.

Η Γλώσσα Προγραµµατισµού C++ (The C++ Programming Language) Ιστοσελίδα του µαθήµατος. Περιεχόµενα. ηµήτριος Κατσαρός, Ph.D. Πίνακες. 1 Η Γλώσσα Προγραµµατισµού C++ (The C++ Programming Language) ηµήτριος Κατσαρός, Ph.D. Χειµώνας 2005 ιάλεξη 3η Ιστοσελίδα του µαθήµατος 2 http://skyblue.csd.auth.gr/~dimitris/courses/cpp_fall05.htm Θα

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

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

Γλώσσα Προγραμματισμού C++ Εισαγωγή - Μια πρώτη ματιά Γλώσσα Προγραμματισμού C++ Εισαγωγή - Μια πρώτη ματιά Βασικά χαρακτηριστικά αναπτύχθηκε ως επέκταση της C το 1979 υπερσύνολο της C γλώσσα γενικού σκοπού, γρήγορη, Αντικειμενοστραφής προγραμματισμός (Object

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

Κεφάλαιο Αλφαριθµητικές Σειρές Χαρακτήρων (Strings)

Κεφάλαιο Αλφαριθµητικές Σειρές Χαρακτήρων (Strings) Κεφάλαιο 9.1-9.2 Αλφαριθµητικές Σειρές Χαρακτήρων (Strings) ( ιάλεξη 19) ιδάσκων: ηµήτρης Ζεϊναλιπούρ 1) Strings στη C Ένα string είναι µία ακολουθία αλφαριθµητικών χαρακτήρων, σηµείων στίξης κτλ. Π.χ.

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

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

Εισαγωγή στην πληροφορική Εθνικό Μετσόβιο Πολυτεχνείο Σχολή Αγρονόµων Τοπογράφων Μηχανικών Εισαγωγή στην πληροφορική Βασίλειος Βεσκούκης ρ. Ηλεκτρολόγος Μηχανικός & Μηχανικός Υπολογιστών ΕΜΠ v.vescoukis@cs.ntua.gr Ρωµύλος Κορακίτης

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

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

Αναφορές, είκτες και Αλφαριθμητικά Αναφορές, είκτες και Αλφαριθμητικά Ο τελεστής αναφοροποίησης Αναφορές είκτες Πίνακες και δείκτες Ο τελεστής new και delete υναμικοί πίνακες είκτες προς συναρτήσεις Αλφαριθμητικά της C Πίνακες Αλφαριθμητικών

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

Η Γλώσσα Προγραµµατισµού C++ (The C++ Programming Language)

Η Γλώσσα Προγραµµατισµού C++ (The C++ Programming Language) 1 Η Γλώσσα Προγραµµατισµού C++ (The C++ Programming Language) ηµήτριος Κατσαρός, Ph.D. Χειµώνας 2005 ιάλεξη 4η 2 Ιστοσελίδα του µαθήµατος http://skyblue.csd.auth.gr/~dimitris/courses/cpp_fall05.htm Θα

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

Η Γλώσσα Προγραµµατισµού C++ (The C++ Programming Language)

Η Γλώσσα Προγραµµατισµού C++ (The C++ Programming Language) 1 Η Γλώσσα Προγραµµατισµού C++ (The C++ Programming Language) ηµήτριος Κατσαρός, Ph.D. Χειµώνας 2005 ιάλεξη 6η: Ερωτήσεις 2 Ιστοσελίδα του µαθήµατος http://skyblue.csd.auth.gr/~dimitris/courses/cpp_fall05.htm

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

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

Γ7.2 Συμβολοσειρές (Strings) Γ Λυκείου Κατεύθυνσης Γ7.2 Συμβολοσειρές (Strings) Γ Λυκείου Κατεύθυνσης Εισαγωγή Στη C++ υπάρχει η δυνατότητα να δηλώσουμε μία συμβολοσειρά ως αντικείμενο, χρησιμοποιώντας τη βιβλιοθήκη . Επειδή οι συμβολοσειρές είναι

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

Προγραµµατιστικές Τεχνικές

Προγραµµατιστικές Τεχνικές Εθνικό Μετσόβιο Πολυτεχνείο Σχολή Αγρονόµων Τοπογράφων Μηχανικών Προγραµµατιστικές Τεχνικές Βασίλειος Βεσκούκης ρ. Ηλεκτρολόγος Μηχανικός & Μηχανικός Υπολογιστών ΕΜΠ v.vescoukis@cs.ntua.gr Ρωµύλος Κορακίτης

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

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

Δομή Προγράμματος C++, Χειρισμός Μεταβλητών και Συναρτήσεις Εισόδου - Εξόδου Εργαστήριο 2: Δομή Προγράμματος C++, Χειρισμός Μεταβλητών και Συναρτήσεις Εισόδου - Εξόδου Ο σκοπός αυτής της εργαστηριακής άσκησης είναι η ανάλυση των βασικών χαρακτηριστικών της Γλώσσας Προγραμματισμού

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

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

Στοιχειώδης προγραμματισμός σε C++ Στοιχειώδης προγραμματισμός σε C++ Σύντομο Ιστορικό. Το πρόγραμμα Hello World. Ο τελεστής εξόδου. Μεταβλητές και δηλώσεις τους. Αντικείμενα, μεταβλητές, σταθερές. Ο τελεστής εισόδου. Θεμελιώδεις τύποι.

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

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

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

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

343 Ειςαγωγι ςτον Προγραμματιςμό

343 Ειςαγωγι ςτον Προγραμματιςμό 343 Ειςαγωγι ςτον Προγραμματιςμό Σμιμα Μακθματικϊν Πανεπιςτιμιο Ιωαννίνων Ακαδθμαϊκό Ζτοσ 2016-2017 Χάρθσ Παπαδόπουλοσ 207δ, B όροφοσ e-mail: charis@cs.uoi.gr Ωρεσ Γραφείου: Πζμπτθ 11-13 Θ: διάλεξη (θεωρία)

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

scanf() scanf() stdin scanf() printf() int float double %lf float

scanf() scanf() stdin scanf() printf() int float double %lf float Εισαγωγή Στον Προγραµµατισµό «C» Είσοδος Δεδοµένων Πανεπιστήµιο Πελοποννήσου Τµήµα Πληροφορικής & Τηλεπικοινωνιών Νικόλαος Δ. Τσελίκας Νικόλαος Προγραµµατισµός Δ. Τσελίκας Ι Η συνάρτηση scanf() Η συνάρτηση

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

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

Εντολές εισόδου - εξόδου. Εισαγωγή στη C++ Εντολές εισόδου - εξόδου Εισαγωγή στη C++ Το πρώτο πρόγραμμα //my first program #include using namespace std; int main(){ cout

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

ΠΛΗ111. Ανοιξη Μάθηµα 1 ο Ανασκόπηση της Γλώσσας Προγραµµατισµού C. Τµήµα Ηλεκτρονικών Μηχανικών και Μηχανικών Υπολογιστών Πολυτεχνείο Κρήτης

ΠΛΗ111. Ανοιξη Μάθηµα 1 ο Ανασκόπηση της Γλώσσας Προγραµµατισµού C. Τµήµα Ηλεκτρονικών Μηχανικών και Μηχανικών Υπολογιστών Πολυτεχνείο Κρήτης ΠΛΗ111 οµηµένος Προγραµµατισµός Ανοιξη 2005 Μάθηµα 1 ο Ανασκόπηση της Γλώσσας Προγραµµατισµού C Τµήµα Ηλεκτρονικών Μηχανικών και Μηχανικών Υπολογιστών Πολυτεχνείο Κρήτης Ανασκόπηση της C είκτες Πίνακες

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

Η Γλώσσα Προγραµµατισµού C++ (The C++ Programming Language)

Η Γλώσσα Προγραµµατισµού C++ (The C++ Programming Language) 1 Η Γλώσσα Προγραµµατισµού C++ (The C++ Programming Language) ηµήτριος Κατσαρός, Ph.D. Χειµώνας 2005 ιάλεξη 9η 2 Ιστοσελίδα του µαθήµατος http://skyblue.csd.auth.gr/~dimitris/courses/cpp_fall05.htm Θα

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

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

Προγραμματισμός Ι. Εισαγωγή στην C++ Δημήτρης Μιχαήλ. Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο Προγραμματισμός Ι Εισαγωγή στην C++ Δημήτρης Μιχαήλ Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο Η γλώσσα C++ Σχεδιάστηκε το 1979 από τον Bjarne Stroustrup στα Bell Laboratories Βασίζεται

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

Διδάσκων: Κωνσταντίνος Κώστα Διαφάνειες: Δημήτρης Ζεϊναλιπούρ

Διδάσκων: Κωνσταντίνος Κώστα Διαφάνειες: Δημήτρης Ζεϊναλιπούρ Διάλεξη 2:Αλφαριθμητικές Σειρές Χαρακτήρων (Strings)- Επανάληψη Στην ενότητα αυτή θα μελετηθούν τα εξής επιμέρους θέματα: Εισαγωγικές Έννοιες σε Strings(Αρχικοποίηση, Ανάγνωση & Εκτύπωση) Πίνακες από Strings

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

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

ΒΑΣΙΚΟΙ ΤΥΠΟΙ ΚΑΙ ΠΙΝΑΚΕΣ ΒΑΣΙΚΟΙ ΤΥΠΟΙ ΚΑΙ ΠΙΝΑΚΕΣ Γεώργιος Παπαϊωάννου (2013-16) gepap@aueb.gr Περιγραφή: Βασικοί Τύποι Πίνακες (μέρος 1) Συμβολοσειρές Ο Προεπεξεργαστής Τελευταία ενημέρωση: Σεπτέμβριος 2016 Εισαγωγή - 2 short:

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

Streams Input / Output in C++ George Kastrinis

Streams Input / Output in C++ George Kastrinis Streams Input / Output in C++ George Kastrinis (gkastrinis@di.uoa.gr) Streams What? Η είσοδος και η έξοδος δεδομένων, στη C++ βασίζεται στην έννοια των ρευμάτων - streams Ένα ρεύμα είναι ουσιαστικά μια

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

Προγραµµατιστικές Τεχνικές

Προγραµµατιστικές Τεχνικές Εθνικό Μετσόβιο Πολυτεχνείο Σχολή Αγρονόµων Τοπογράφων Μηχανικών Προγραµµατιστικές Τεχνικές Βασίλειος Βεσκούκης ρ. Ηλεκτρολόγος Μηχανικός & Μηχανικός Υπολογιστών ΕΜΠ v.vescoukis@cs.ntua.gr Ρωµύλος Κορακίτης

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

Τίτλος Μαθήματος: Εισαγωγή στον Προγραμματισμό

Τίτλος Μαθήματος: Εισαγωγή στον Προγραμματισμό Τίτλος Μαθήματος: Εισαγωγή στον Προγραμματισμό Ενότητα: Αλφαριθμητικά και Συμβολοσειρές Διδάσκων: Λέκτορας Xάρης Παπαδόπουλος Τμήμα: Μαθηματικών 343 Ειςαγωγι ςτον Προγραμματιςμό Σμιμα Μακθματικϊν Πανεπιςτιμιο

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

Η γλώσσα προγραμματισμού C

Η γλώσσα προγραμματισμού C Η γλώσσα προγραμματισμού C Εισαγωγή στη C Λίγα λόγια για την C Γλώσσα προγραμματισμού υψηλού επιπέδου. Σχεδιάστηκε και υλοποιήθηκε από τον Dennis Richie στις αρχές της δεκαετίας του 1970 (Bell Labs). Η

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

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

Προγραμματισμός Η/Υ 1 (Εργαστήριο) Προγραμματισμός Η/Υ 1 (Εργαστήριο) Ενότητα 2: Δομή ενός προγράμματος C Καθηγήτρια Εφαρμογών: Τσαγκαλίδου Ροδή Τμήμα: Ηλεκτρολόγων Μηχανικών Τ.Ε. Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες

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

Κεφάλαιο 3.5-3.6, 3.2: Συναρτήσεις II. ( ιάλεξη 12) ιδάσκων: ηµήτρης Ζεϊναλιπούρ

Κεφάλαιο 3.5-3.6, 3.2: Συναρτήσεις II. ( ιάλεξη 12) ιδάσκων: ηµήτρης Ζεϊναλιπούρ Κεφάλαιο 3.5-3.6, 3.2: Συναρτήσεις II ( ιάλεξη 12) ιδάσκων: ηµήτρης Ζεϊναλιπούρ 12-1 Ανασκόπηση οµής Προγράµµατος µε Συναρτήσεις #include 1 void PrintMessage (); Πρότυπο ( ήλωση) Συνάρτησης (

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

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

Προγραμματισμός Ι. Προεπεξεργαστής. Δημήτρης Μιχαήλ. Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο Προγραμματισμός Ι Προεπεξεργαστής Δημήτρης Μιχαήλ Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο Διαδικασία Μεταγλώττισης πρόγραµµα επεξεργασίας κειµένου if a

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

Περιεχόμενα. Λίγα λόγια για αυτή την έκδοση... 23

Περιεχόμενα. Λίγα λόγια για αυτή την έκδοση... 23 Περιεχόμενα Λίγα λόγια για αυτή την έκδοση...... 23 Κεφάλαιο 1 Εισαγωγή... 25 O στόχος του βιβλίου και σε ποιους απευθύνεται... 27 Πώς να διαβάσετε αυτό το βιβλίο... 27 Εκπαίδευση από απόσταση... 29 Ιστορική

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

ΗΓλώσσαΠρογραµµατισµού C++ (The C++ Programming Language) Ιστοσελίδα του µαθήµατος. Περιεχόµενα. ηµήτριος Κατσαρός, Ph.D. Ελένη Τουσίδου, Ph.D.

ΗΓλώσσαΠρογραµµατισµού C++ (The C++ Programming Language) Ιστοσελίδα του µαθήµατος. Περιεχόµενα. ηµήτριος Κατσαρός, Ph.D. Ελένη Τουσίδου, Ph.D. 1 ΗΓλώσσαΠρογραµµατισµού C++ (The C++ Programming Language) ηµήτριος Κατσαρός, Ph.D. Ελένη Τουσίδου, Ph.D. Χειµώνας 2006 ιάλεξη 4η Ιστοσελίδα του µαθήµατος 2 http://skyblue.csd.auth.gr/~dimitris/courses/cpp_fall06.htm

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

Επανάληψη για τις Τελικές εξετάσεις

Επανάληψη για τις Τελικές εξετάσεις Επανάληψη για τις Τελικές εξετάσεις ( ιάλεξη 21) ιδάσκων: ηµήτρης Ζεϊναλιπούρ Εισαγωγή Το µάθηµα EPL032 έχει ως βασικό στόχο την επίλυση προβληµάτων πληροφορικής µε την χρήση της γλώσσας προγραµµατισµού

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

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

Αντικειμενοστραφείς Γλώσσες Προγραμματισμού C++ / ROOT Αντικειμενοστραφείς Γλώσσες Προγραμματισμού Ιωάννης Παπαδόπουλος Τμήμα Φυσικής, Πανεπιστήμιο Ιωαννίνων Οκτώβριος 2018 1/28 1 (implicit) μετατροπές 2 (Functions) 3 (Pointers) 4 (Arrays) 2/28 (implicit)

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

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

Κεφάλαιο Αλφαριθμητικές Σειρές Χαρακτήρων (Strings) (Διάλεξη 20) 1) Strings στη C Κεφάλαιο 9.1-9.2 Αλφαριθμητικές Σειρές Χαρακτήρων (Strings) (Διάλεξη 20) 1) Strings στη C Ένα string είναι μία ακολουθία αλφαριθμητικών χαρακτήρων, σημείων στίξης κτλ. Π.χ. Hello How are you? 121212 *Apple#123*%

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

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

Πληροφορική 2. Γλώσσες Προγραμματισμού Πληροφορική 2 Γλώσσες Προγραμματισμού 1 2 Γλώσσες προγραμματσιμού Επιτρέπουν την κωδικοποίηση των αλγορίθμων Η εκτέλεση ενός προγράμματος θα πρέπει να δίνει τα ίδια αποτελέσματα με την νοητική εκτέλεση

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

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

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

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

Ανάπτυξη Μεγάλων Εφαρµογών στη Γλώσσα C (2)

Ανάπτυξη Μεγάλων Εφαρµογών στη Γλώσσα C (2) Ανάπτυξη Μεγάλων Εφαρµογών στη Γλώσσα C (2) Στην ενότητα αυτή θα µελετηθούν τα εξής επιµέρους θέµατα: Οργάνωση Προγράµµατος Header Files Μετάφραση και σύνδεση αρχείων προγράµµατος ΕΠΛ 132 Αρχές Προγραµµατισµού

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

ΣΤΟΙΧΕΙΑ ΤΗΣ ΓΛΩΣΣΑΣ C++ Constructors, Destructors, Pointers IO Streams, File Streams

ΣΤΟΙΧΕΙΑ ΤΗΣ ΓΛΩΣΣΑΣ C++ Constructors, Destructors, Pointers IO Streams, File Streams ΣΤΟΙΧΕΙΑ ΤΗΣ ΓΛΩΣΣΑΣ C++ Constructors, Destructors, Pointers IO Streams, File Streams CONSTRUCTORS DESTRUCTORS Η κλάση mystring class mystring private: char s[100]; public: char *GetString(); void SetString(char

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

ΗΓλώσσαΠρογραµµατισµού C++ (The C++ Programming Language)

ΗΓλώσσαΠρογραµµατισµού C++ (The C++ Programming Language) 1 ΗΓλώσσαΠρογραµµατισµού C++ (The C++ Programming Language) ηµήτριος Κατσαρός, Ph.D. Ελένη Τουσίδου, Ph.D. Χειµώνας 2006 ιάλεξη 4η 2 Ιστοσελίδα του µαθήµατος http://skyblue.csd.auth.gr/~dimitris/courses/cpp_fall06.htm

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

Κλάσεις και Αντικείµενα

Κλάσεις και Αντικείµενα Κλάσεις και Αντικείµενα Γρηγόρης Τσουµάκας Τµήµα Πληροφορικής, Αριστοτέλειο Πανεπιστήµιο Θεσσαλονίκης Κλάσεις και Αντικείµενα 2 Τα αντικείµενα σε µια αντικειµενοστρεφή γλώσσα προγραµµατισµού, µοντελοποιούν

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

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

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

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

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

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

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

12. ΑΛΦΑΡΙΘΜΗΤΙΚΑ. υο είδη αλφαριθµητικών Τα αλφαριθµητικά της C πίνακες τύπου char Ta αντικείµενα της κλάσης string

12. ΑΛΦΑΡΙΘΜΗΤΙΚΑ. υο είδη αλφαριθµητικών Τα αλφαριθµητικά της C πίνακες τύπου char Ta αντικείµενα της κλάσης string 12. ΑΛΦΑΡΙΘΜΗΤΙΚΑ υο είδη αλφαριθµητικών Τα αλφαριθµητικά της C πίνακες τύπου char Ta αντικείµενα της κλάσης string Aλφαριθµητικά της C int main() const int max=80; char str[max); //κάθε char δεσµεύει

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

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

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

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

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

Εισαγωγή ΕΙΣΑΓΩΓΗ. Γεώργιος Παπαϊωάννου ( ) ΕΙΣΑΓΩΓΗ Γεώργιος Παπαϊωάννου (2013-16) gepap@aueb.gr Περιγραφή: Εισαγωγή στη C++ Ιστορικά στοιχεία για τη C/C++ Ένα βασικό πρόγραμμα Μεταγλώττιση ενός προγράμματος Τελευταία ενημέρωση: Σεπτέμβριος 2016

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

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

Π. Σταθοπούλου ή Οµάδα Α (Φοιτητές µε µονό αριθµό Μητρώου ) ιδασκαλία : Παρασκευή 11πµ-13µµ ΗΛ7 Π. Σταθοπούλου pstath@ece.upatras.gr ή pstath@upatras.gr Οµάδα Α (Φοιτητές µε µονό αριθµό Μητρώου ) ιδασκαλία : Παρασκευή 11πµ-13µµ ΗΛ7 Φροντιστήριο : ευτέρα 11πµ-12πµ ΗΛ4 Προηγούµενη ιάλεξη Εισαγωγικά

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

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

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

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

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

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

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

ΕΡΓΑΣΤΗΡΙΟ 1 ΕΙΣΑΓΩΓΗ ΣΤΗ C. Τµήµα Πληροφορικής και Τηλεπικοινωνιών

ΕΡΓΑΣΤΗΡΙΟ 1 ΕΙΣΑΓΩΓΗ ΣΤΗ C. Τµήµα Πληροφορικής και Τηλεπικοινωνιών ΕΡΓΑΣΤΗΡΙΟ 1 ΕΙΣΑΓΩΓΗ ΣΤΗ C Τµήµα Πληροφορικής και Τηλεπικοινωνιών Περιεχόµενα Εισαγωγή Πρόγραµµα Φάσεις Υλοποίησης µε χρήση του εργαλείου DEV C + + οµή Προγράµµατος Η συνάρτηση main Μεταβλητές Τι είναι

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

είκτες και Πίνακες (2)

είκτες και Πίνακες (2) είκτες και Πίνακες (2) Στην ενότητα αυτή θα µελετηθούν τα εξής θέµατα: Πολυδιάστατοι πίνακες Πέρασµα παραµέτρων σε προγράµµατα C ΕΠΛ 132 Αρχές Προγραµµατισµού ΙΙ 1-1 Πίνακες εικτών Πίνακας δεικτών είναι

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

Ανάπτυξη Μεγάλων Εφαρµογών στη Γλώσσα C (Programming in the large)

Ανάπτυξη Μεγάλων Εφαρµογών στη Γλώσσα C (Programming in the large) Ανάπτυξη Μεγάλων Εφαρµογών στη Γλώσσα C (Programming in the large) Στην ενότητα αυτή θα µελετηθούν τα εξής επιµέρους θέµατα: Συναρτήσεις Εξωτερικές µεταβλητές Κανόνες εµβέλειας ιάρκεια µεταβλητών Αρχικοποίηση

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

B. Ενσωμάτωση Ιθαγενών Μεθόδων

B. Ενσωμάτωση Ιθαγενών Μεθόδων B. Ενσωμάτωση Ιθαγενών Μεθόδων Στο τέλος αυτού του κεφαλαίου θα μπορείτε: Να δημιουργείτε κώδικα Java που θα φορτώνει βιβλιοθήκες και θα καλεί ιθαγενείς μεθόδους (native methods). Να χρησιμοποιείτε τη

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

υναµική διαχείριση µνήµης στη C++ Στην ενότητα αυτή θα µελετηθούν τα εξής επιµέρους θέµατα: ΕΠΛ 132 Αρχές Προγραµµατισµού ΙΙ 2 είκτες

υναµική διαχείριση µνήµης στη C++ Στην ενότητα αυτή θα µελετηθούν τα εξής επιµέρους θέµατα: ΕΠΛ 132 Αρχές Προγραµµατισµού ΙΙ 2 είκτες υναµική διαχείριση µνήµης στη C++ Στην ενότητα αυτή θα µελετηθούν τα εξής επιµέρους θέµατα: είκτες στη C++ Οι τελεστές new και delete Destructors Ορισµός τελεστών κλάσεων Ο δείκτης this ΕΠΛ 132 Αρχές Προγραµµατισµού

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

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

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

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

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

ΑΣΚΗΣΗ 2: ΔΟΜΗ ΠΡΟΓΡΑΜΜΑΤΟΣ C, ΧΕΙΡΙΣΜΟΣ ΜΕΤΑΒΛΗΤΩΝ ΚΑΙ ΣΥΝΑΡΤΗΣΕΙΣ ΕΙΣΟΔΟΥ ΚΑΙ ΕΞΟΔΟΥ ΑΣΚΗΣΗ 2: ΔΟΜΗ ΠΡΟΓΡΑΜΜΑΤΟΣ C, ΧΕΙΡΙΣΜΟΣ ΜΕΤΑΒΛΗΤΩΝ ΚΑΙ ΣΥΝΑΡΤΗΣΕΙΣ ΕΙΣΟΔΟΥ ΚΑΙ ΕΞΟΔΟΥ Σκοπός της Άσκησης Ο σκοπός αυτής της εργαστηριακής άσκησης είναι η ανάλυση των βασικών χαρακτηριστικών της Γλώσσας

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

ΟΝΤΟΚΕΝΤΡΙΚΟΣ ΠΡΟΓΡ/ΣΜΟΣ C++

ΟΝΤΟΚΕΝΤΡΙΚΟΣ ΠΡΟΓΡ/ΣΜΟΣ C++ Υπερφόρτωση, keywords CONST, STATIC, FRIEND ΟΝΤΟΚΕΝΤΡΙΚΟΣ ΠΡΟΓΡ/ΣΜΟΣ C++ Μ. Ρήγκου (rigou@ceid.upatras.gr) Τι θα συζητήσουμε σήμερα Υπερφόρτωση Συναρτήσεων Τελεστών CONST αντικείμενα, μεταβλητές και συναρτήσεις

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

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

Συμβολοσειρές ΣΥΜΒΟΛΟΣΕΙΡΕΣ. Γεώργιος Παπαϊωάννου ( ) ΣΥΜΒΟΛΟΣΕΙΡΕΣ Γεώργιος Παπαϊωάννου (2013-14) gepap@aueb.gr Περιγραφή: Ο τύπος string Μετατροπή από και προς τον τύπο string Βασικές μέθοδοι Χρήση Ελληνικών Συναρτήσεις C εκτύπωσης και ανάγνωσης Τελευταία

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

2.1 Αντικειµενοστρεφής προγραµµατισµός

2.1 Αντικειµενοστρεφής προγραµµατισµός 2.1 Αντικειµενοστρεφής προγραµµατισµός Στον αντικειµενοστρεφή προγραµµατισµό (object oriented programming, OOP) ένα πρόγραµµα υπολογιστή είναι ένα σύνολο αλληλεπιδρώντων αντικειµένων. Μπορεί να ειπωθεί

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

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

2 η Διάλεξη C++ Δρ. Χρήστος Δρόσος ΑΕΙ ΠΕΙΡΑΙΑ ΤΤ ΤΜΗΜΑ ΑΥΤΟΜΑΤΙΣΜΟΥ 2 η Διάλεξη C++ Δρ. Χρήστος Δρόσος ΑΕΙ ΠΕΙΡΑΙΑ ΤΤ ΤΜΗΜΑ ΑΥΤΟΜΑΤΙΣΜΟΥ Τι μάθαμε μέχρι τώρα Κάθε πρόγραμμα της c++ περιέχει υποχρεωτικά μια συνάρτηση main() η οποία είναι εκείνη που εκτελείται πρώτη. Κάθε

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

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

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

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

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

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

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

Προγραμματισμό για ΗΜΥ

Προγραμματισμό για ΗΜΥ ΕΠΛ 034: Εισαγωγή στον Προγραμματισμό για ΗΜΥ Αχιλλέας Αχιλλέως, Τμήμα Πληροφορικής, Πανεπιστήμιο Κύπρου Email: achilleas@cs.ucy.ac.cy Κεφάλαιο 3 Εισαγωγή στην C Θέματα ιάλεξης Σύνταξη και Σημασιολογία

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

ΗΓλώσσαΠρογραµµατισµού C++ (The C++ Programming Language)

ΗΓλώσσαΠρογραµµατισµού C++ (The C++ Programming Language) 1 ΗΓλώσσαΠρογραµµατισµού C++ (The C++ Programming Language) ηµήτριος Κατσαρός, Ph.D. Ελένη Τουσίδου, Ph.D. Χειµώνας 2006 ιάλεξη 9η: Ερωτήσεις 2 Ιστοσελίδα του µαθήµατος http://skyblue.csd.auth.gr/~dimitris/courses/cp

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

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

Αντικειµενοστρεφής Προγραµµατισµός 16 η διάλεξη Π. Σταθοπούλου pstath@ece.upatras.gr ή pstath@upatras.gr Οµάδα Α (Φοιτητές µε µονό αριθµό Μητρώου ) ιδασκαλία : Παρασκευή 11πµ-13µµ ΗΛ7 Φροντιστήριο : ευτέρα 11πµ-12πµ ΗΛ4 Προηγούµενη ιάλεξη

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

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

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

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

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

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

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

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

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

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

Επεξεργασία Αρχείων Κειµένου

Επεξεργασία Αρχείων Κειµένου Επεξεργασία Αρχείων Κειµένου Στην ενότητα αυτή θα µελετηθούν τα εξής επιµέρους θέµατα: Αρχεία Κειµένου Γενικά Συναρτήσεις Επεξεργασίας Αρχείων Κειµένου ΕΠΛ 132 Αρχές Προγραµµατισµού ΙΙ 1 Αρχεία Γενικά

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

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

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

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

Η Γλώσσα Προγραµµατισµού C++ (The C++ Programming Language) Ιστοσελίδα του µαθήµατος. Περιεχόµενα. ηµήτριος Κατσαρός, Ph.D.

Η Γλώσσα Προγραµµατισµού C++ (The C++ Programming Language) Ιστοσελίδα του µαθήµατος. Περιεχόµενα. ηµήτριος Κατσαρός, Ph.D. 1 Η Γλώσσα Προγραµµατισµού C++ (The C++ Programming Language) ηµήτριος Κατσαρός, Ph.D. Χειµώνας 2005 ιάλεξη 9η Ιστοσελίδα του µαθήµατος 2 http://skyblue.csd.auth.gr/~dimitris/courses/cpp_fall05.htm Θα

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

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

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

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

ΣΕΤ ΑΣΚΗΣΕΩΝ 2. Προθεσµία: 15/11/09, 23:59

ΣΕΤ ΑΣΚΗΣΕΩΝ 2. Προθεσµία: 15/11/09, 23:59 ΣΕΤ ΑΣΚΗΣΕΩΝ 2 ΕΡΓΑΣΤΗΡΙΟ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ I, ΑΚΑΔΗΜΑΪΚΟ ΕΤΟΣ 2009-20010 Προθεσµία: 15/11/09, 23:59 Στόχοι Χρήση συναρτήσεων Χρήση µονοδιάστατων πινάκων Διαχείριση συµβολοσειρών Φορµαρισµένη έξοδος δεδοµένων

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

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

C Programming EPL032 Maria Stavrinou Ioannou Εισαγωγή στη Γλώσσα C Εισαγωγή στη Γλώσσα C Η C είναι µια δοµηµένη (structured ) γλώσσα ηλαδή ένα C πρόγραµµα αποτελείται από υποπρογράµµατα τα οποία ονοµάζονται συναρτήσεις ( functions ), όπου η κάθε συνάρτηση εκτελεί µια

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

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

Εισαγωγή στην πληροφορική Εθνικό Μετσόβιο Πολυτεχνείο Σχολή Αγρονόµων Τοπογράφων Μηχανικών Εισαγωγή στην πληροφορική Βασίλειος Βεσκούκης ρ. Ηλεκτρολόγος Μηχανικός & Μηχανικός Υπολογιστών ΕΜΠ v.vescoukis@cs.ntua.gr Η γλώσσα προγραµµατισµού

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

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

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

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

Επανάληψη για τις Τελικές εξετάσεις. (Διάλεξη 24) ΕΠΛ 032: ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΜΕΘΟΔΩΝ ΕΠΙΛΥΣΗΣ ΠΡΟΒΛΗΜΑΤΩΝ

Επανάληψη για τις Τελικές εξετάσεις. (Διάλεξη 24) ΕΠΛ 032: ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΜΕΘΟΔΩΝ ΕΠΙΛΥΣΗΣ ΠΡΟΒΛΗΜΑΤΩΝ Επανάληψη για τις Τελικές εξετάσεις (Διάλεξη 24) Εισαγωγή Το μάθημα EPL032 έχει ως βασικό στόχο την επίλυση προβλημάτων πληροφορικής με την χρήση της γλώσσας προγραμματισμού C. Επομένως πρέπει: Nα κατανοήσετε

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

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

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Πίνακες Κλάσεις και Αντικείμενα ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ Πίνακες Κλάσεις και Αντικείμενα Μαθήματα από το πρώτο εργαστήριο Δημιουργία αντικειμένου Scanner Scanner input = new Scanner(System.in); Το αντικείμενο input

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

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

Εισαγωγή στην πληροφορική Εθνικό Μετσόβιο Πολυτεχνείο Σχολή Αγρονόµων Τοπογράφων Μηχανικών Εισαγωγή στην πληροφορική Βασίλειος Βεσκούκης ρ. Ηλεκτρολόγος Μηχανικός & Μηχανικός Υπολογιστών ΕΜΠ v.vescoukis@cs.ntua.gr Ρωµύλος Κορακίτης

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

Στόχοι και αντικείμενο ενότητας. Τύπος πίνακα. Τύπος πίνακα (συν.) #6. Πίνακες και Δείκτες

Στόχοι και αντικείμενο ενότητας. Τύπος πίνακα. Τύπος πίνακα (συν.) #6. Πίνακες και Δείκτες Στόχοι και αντικείμενο ενότητας Ο τύπος του Πίνακα (βλ. ενότητα #2α) Ορισμός και αρχικοποίηση Αποθήκευση πινάκων στη μνήμη Πολυδιάστατοι πίνακες #6. Πίνακες και Δείκτες Ο τύπος του Δείκτη Η έννοια του

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

ΔΟΜΗΜΕΝΟΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ Κεφάλαιο 8 : H γλώσσα προγραµµατισµού Pascal

ΔΟΜΗΜΕΝΟΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ Κεφάλαιο 8 : H γλώσσα προγραµµατισµού Pascal ΔΟΜΗΜΕΝΟΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ Κεφάλαιο 8 : H γλώσσα προγραµµατισµού Pascal Δοµή προγράµµατος 1. Δοµή προγράµµατος program όνοµα_προγράµµατος(αρχείο_1, αρχείο_2,...αρχείο_ν); ΕΠΙΚΕΦΑΛΙΔΑ ΒΙΒΛΙΟΘΗΚΕΣ uses όνοµα_βιβλιοθήκης,όνοµα_βιβλιοθήκης;

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

char name[5]; /* define a string of characters */

char name[5]; /* define a string of characters */ Συµβολοσειρές (Strings) Συµβολοσειρά (string) είναι µια σειρά αλφαριθµητικών χαρακτήρων (γενικά εκτυπώσιµων συµβόλων ASCII). Όταν λέµε σειρά εννοούµε διαδοχικές θέσεις µνήµης που µπορούν να αντιµετωπισθούν

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

ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ Η/Υ Ακαδημαϊκό έτος 2001-2002 ΤΕΤΡΑΔΙΟ ΕΡΓΑΣΤΗΡΙΟΥ #4

ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ Η/Υ Ακαδημαϊκό έτος 2001-2002 ΤΕΤΡΑΔΙΟ ΕΡΓΑΣΤΗΡΙΟΥ #4 ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ Η/Υ Ακαδημαϊκό έτος 2001-2002 ΤΕΤΡΑΔΙΟ ΕΡΓΑΣΤΗΡΙΟΥ #4 «Προγραμματισμός Η/Υ» - Τετράδιο Εργαστηρίου #4 2 Γενικά Στο Τετράδιο #4 του Εργαστηρίου θα αναφερθούμε σε θέματα διαχείρισης πινάκων

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

CE121 Προγραµµατισµός 2. Εισαγωγή σε Makefiles. CE121 -

CE121 Προγραµµατισµός 2. Εισαγωγή σε Makefiles. CE121 - CE121 Προγραµµατισµός 2 Εισαγωγή σε Makefiles 1 Η διαδικασία µεταγλώττισης myprog.c gcc myprog 2 Η διαδικασία µεταγλώττισης myprog.c preprocessor (cc1) /tmp/cczxt.i assembler (as) compiler (cc1) /tmp/cczxt.o

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

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

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

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

Η γλώσσα προγραμματισμού C

Η γλώσσα προγραμματισμού C Η γλώσσα προγραμματισμού C Χειρισμός χαρακτήρων, συμβολοσειρές Συμβολοσειρές Συμβολοσειρά ονομάζουμε μια οποιαδήποτε ακολουθία αλφαριθμητικών χαρακτήρων: «Κώστας», «Κώστας Βασιλάκης», «Δαιδάλου 23» Στην

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

Εισαγωγή στην επιστήμη των υπολογιστών

Εισαγωγή στην επιστήμη των υπολογιστών Εισαγωγή στην επιστήμη των υπολογιστών Λογισμικό Υπολογιστών Γλώσσες Προγραμματισμού 1 Εξέλιξη Οι γλώσσες προγραμματισμού είναι σύνολα από προκαθορισμένες λέξεις οι οποίες συνδυάζονται σε προγράμματα σύμφωνα

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

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

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

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

Τύποι Δεδομένων Είσοδος/Έξοδος

Τύποι Δεδομένων Είσοδος/Έξοδος Εργαστήριο 2 ο Τύποι Δεδομένων Είσοδος/Έξοδος Εισαγωγή Σκοπός του εργαστηρίου αυτού είναι η εισαγωγή μας στους τύπους δεδομένων της C και η εξοικείωση μας με συναρτήσεις του ρεπερτορίου της ANSI C σχετικές

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

Βαθμός Σχόλια. lab PASS 1194 PASS 1238 PASS 1239 PASS

Βαθμός Σχόλια. lab PASS 1194 PASS 1238 PASS 1239 PASS lab7 Α. Μ. Βαθμός Σχόλια 1183 1194 1238 1239 1240 1241 1242 1243 1244 1246 - Η συνθήκη του do/while είναι λάθος µε αποτέλεσµα να µπορεί ο χρήστης να βάζει στοιχεία περισσότερα του SIZE. - Στην συνθήκη

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

Ενότητες στην C Τεχνική Υλοποίησης Αφαιρετικών Τύπων Δεδομένων στην C

Ενότητες στην C Τεχνική Υλοποίησης Αφαιρετικών Τύπων Δεδομένων στην C Ενότητες στην C Τεχνική Υλοποίησης Αφαιρετικών Τύπων Δεδομένων στην C Δυσκολία: Προγράμματα που λύνουν «πραγματικά προβλήματα» μπορεί να είναι μεγάλα (χιλιάδες ή εκατομμύρια γραμμές κώδικα). Κανείς δεν

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

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

Κεφάλαιο 8.7. Πίνακες & Συναρτήσεις ( ιάλεξη 17) ιδάσκων: ηµήτρης Ζεϊναλιπούρ Κεφάλαιο 8.7 Πίνακες & Συναρτήσεις ( ιάλεξη 17) ιδάσκων: ηµήτρης Ζεϊναλιπούρ 17-1 Εισαγωγή Στις προηγούµενες διαλέξεις µάθαµε πώς να δηλώνουµε, αρχικοποιούµε και να επεξεργαζόµαστε πίνακες. Σήµερα θα µελετήσουµε

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

ΕισαγωγήστουςΗ/Υ. PHP Hypertext Preprocessor

ΕισαγωγήστουςΗ/Υ. PHP Hypertext Preprocessor ΕισαγωγήστουςΗ/Υ PHP Hypertext Preprocessor ΤιείναιηPHP; PHP είναιµία server-based scripting language σχεδιασµένη ειδικά για το web. Σε µία html σελίδα µπορούµε να ενσωµατώσουµε php κώδικα που εκτελείται

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

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

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

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