Τι είναι ο υπολογιστής;

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

Download "Τι είναι ο υπολογιστής;"

Transcript

1 Σχολή Τεχνολογικών Εφαρµογών Τµήµα Πληροφορικής & Επικοινωνιών Προγραµµατισµός Ι (παρουσιάσεις διαλέξεων) ρ. Πάρις Μαστοροκώστας Επίκουρος Καθηγητής Σέρρες 2004

2 Τι είναι ο υπολογιστής; Οι κανόνες αποτελούν την καρδιά της επιστήµης, της κοινωνίας και της ισχύος σε οιαδήποτε µορφή. Ο υπολογιστής είναι µία ταχεία, ακούραστη µηχανή που ακολουθεί κανόνες. Τι είναι ο προγραµµατισµός Πρόγραµµα: Ακολουθία εντολών, µε τις οποίες ο υπολογιστής εκτελεί µία συγκεκριµένη εργασία και επιλύει ένα δοθέν πρόβληµα. Προγραµµατισµός: Κατάστρωση και συγγραφή προγραµµάτων.

3 Τι θα µάθετε 1) Να λύνετε προβλήµατα που περιγράφονται από κανόνες: γράφοντας σύνολα κανόνων (συναρτήσεις), οι οποίοι εφαρµόζονται σε σύνολα δεδοµένων (δοµές), χρησιµοποιώντας ταυτόχρονα και έτοιµα προγράµµατα (βιβλιοθήκες) 2) Θεµελιώδεις έννοιες, κοινές σε όλες τις γλώσσες προγραµµατισµού 3) Εξοικείωση µε ένα αποδοτικό Εργαλείο Προγραµµατισµού: Το περιβάλλον προγραµµατισµού της C++

4 Προγραµµατισµός: Κοινή λογική και καλλιτεχνία 1) Aνάλυση: (εύρεση του πυρήνα του προβλήµατος) Καθόρισε τις συγκεκριµένες εισόδους και εξόδους Καθόρισε τη σχέση εισόδου - εξόδου Τεµάχισε το πρόβληµα σε υποπροβλήµατα 2) Υλοποίηση: Γράψε το σύνολο κανόνων για κάθε υποπρόβληµα 3) Debug: Έλεγξε κάθε τµήµα ξεχωριστά. Στη συνέχεια συνέδεσέ τα και έλεγξέ τα έως ότου το συνολικό πρόγραµµα λειτουργήσει σωστά.

5 Ο πυρήνας ενός προβλήµατος Παράδειγµα: Να γραφεί πρόγραµµα που υπολογίζει το εµβαδό ενός σπιτιού, µε δεδοµένες τις διαστάσεις κάθε δωµατίου. Είσοδοι: Ο αριθµός των δωµατίων (ακέραιος αριθµός) Οι διαστάσεις κάθε δωµατίου (πραγµατικοί αριθµοί) Έξοδοι: Το εµβαδό του σπιτιού (πραγµατικοί αριθµοί)

6 Ανάλυση: Βρείτε τον πυρήνα Καταστείτε σίγουροι ότι καταλάβατε πραγµατικά το πρόβληµα! Απλοποιείστε το, διευκρινίστε τα σκοτεινά σηµεία, σκεφθείτε. Επαναλάβατε. Τεµαχίσατέτοσευποπροβλήµατα. Οι πρώτες σκέψεις δεν είναι ΠΟΤΕ οι καλύτερες. Παράδειγµα σπιτιού: Υποπρόβληµα 1: υπολογισµός του εµβαδού κάθε δωµατίου Υποπρόβληµα 2: πρόσθεση των εµβαδών των δωµατίων

7 Ανάλυση: Βρείτε τον πυρήνα Εργαλεία που βοηθούν στην περιγραφή του προβλήµατος Φυσική γλώσσα: κάνε αυτό, στη συνέχεια εκείνο, εκτός εάν, κ.λ.π. ιάγραµµα ροής Ψευδοκώδικας Παράδειγµα: Να µετατραπούν οι βαθµοί Farenheit σε βαθµούς Κελσίου

8 Εργαλείο ανάλυσης: : η φυσική γλώσσα - Ζήτησεαπότοχρήστητηθερµοκρασία σε βαθµούς F. - ιάβασε την τιµήπουδίνειο χρήστης. - Αποθήκευσε την τιµή σε θέση αποθήκευσης που καλείται degf. - Υπολόγισε τους βαθµούς C µε χρήση µαθηµατικής σχέσης. - Αποθήκευσε το αποτέλεσµα σε θέση αποθήκευσης που καλείται degc. - Τύπωσε το περιεχόµενο της degc.

9 Εργαλείο ανάλυσης: το διάγραµµα ροής Προτιµητέο εργαλείο για σύνθετα προβλήµατα µε περιορισµούς

10 Εργαλείο ανάλυσης: : ο ψευδοκώδικας print enter degrees in Farenheit read degf degc = (degf - 32) * 5 / 9 print degc

11 Υλοποίηση Μετατροπή του συνόλου κανόνων σε συντακτικό της γλώσσας C. Ο τρόπος µετατροπής εξάγεται διερευνώντας: Μεταβλητές, τύπους δεδοµένων, εκφράσεις, υποθετικές προτάσεις και προτάσεις ελέγχου ροής, συναρτήσεις κ.ά.

12 Χαρακτηριστικά της γλώσσας C 1) Μπορεί να χρησιµοποιηθεί και ως γλώσσα προγραµµατισµού χαµηλού επιπέδου, επιτρέποντας άµεση πρόσβαση στους πόρους του υπολογιστή. 2) Είναι σχετικά µικρή και εύκολη στην εκµάθηση. 3) Υποστηρίζει δοµηµένο προγραµµατισµό. 4) Είναι αποτελεσµατική, παράγοντας συµπαγή και γρήγορα στην εκτέλεση προγράµµατα. 5) Αποτελεί µαζί µε τη C++ τις ευρύτερα χρησιµοποιούµενες γλώσσες σε ερευνητικά και αναπτυξιακά προγράµµατα, γεγονός που έχει δηµιουργήσει µία πολλή µεγάλη εγκατεστηµένη βάση εφαρµογών που αναπτύχθηκαν µε αυτές τις γλώσσες και πρέπει να συντηρούνται και να εξελίσσονται.

13 Μεταγλωττιστής και Συνδέτης (Compiler & Linker) Η C είναι µεταγλωττισµένη γλώσσα, µε στόχο να είναι αναγνώσιµηκαικατανοητή. Compiler : πρόγραµµα µετατροπής αναγνώσιµο εκτελέσιµο απότονη/υ Compile: C αρχεία κειµένου.οbject file(s) Linking: object file(s).executable file

14 ιαδικασία αποσφαλµάτωσης (Debugging( Debugging) bug = σφάλµα debug = εύρεση και διόρθωση σφαλµάτων ύο είδη προγραµµατιστικών σφαλµάτων: Συντακτικά σφάλµατα: Σφάλµατα που οφείλονται σε παραβίαση των συντακτικών κανόνων (π.χ. λανθασµένη γραφή µίας εντολής). Ανιχνεύονται από το µεταγλωττιστή κατά το χρόνο µεταγλώττισης και αναφέρονται υπό µορφή λίστας (οπότε µπορούν να διορθωθούν προτού τρέξει το πρόγραµµα). Σηµασιολογικά σφάλµατα (semantic errors): Σφάλµατα που οφείλονται σε εσφαλµένη σχεδίαση της λύσης του προβλήµατος (π.χ. διαίρεση µε το µηδέν). Τα σφάλµατα αυτής της κατηγορίας δεν αναγνωρίζονται από το µεταγλωττιστή, εµφανίζονται αργότερα στο χρόνο εκτέλεσης και είναι δυσκολότερα στη διόρθωση καθώς απαιτούνται µεταβολές στη σχεδίαση και ακολούθως στον κώδικα).

15 Debug: Εύρεση και διόρθωση σφαλµάτων Κώδικας C Μεταγλώττιση Εκτέλεση, επανάληψη Γίνεται η µεταγλώττιση; ΟΧΙ ο µεταγλωττιστής αναφέρει τους λόγους. Τροποποίησε τον κώδικα και δοκίµασε εκ νέου ΝΑΙ. Λειτουργεί σωστά; ΟΧΙ ανάλυσε, τροποποίησε, δοκίµασε εκ νέου ΝΑΙ. Αλλά δουλεύει πάντοτε σωστά; Μπορείς να αποδείξεις ότι η ανάλυση είναι εύρωστη;

16 Ένα απλό πρόγραµµα σε C /* ********************************************* * This program prints out the sentence This is a test. * ********************************************* */ #include<stdio.h> void main() { printf( This is a test.\n ); }

17 Ένα απλό πρόγραµµα σε C /* This program prints out the sentence This is a test. */ #include<stdio.h> void main () { printf( This is a test.\n ); } To Σχόλιο (comment) είναι κείµενο ανάµεσα σε /* και */. Να χρησιµοποιείτε συχνά σχόλια για να επεξηγείτε το πρόγραµµά σαςκαιτα τµήµατά του. Ο µεταγλωττιστής δε λαµβάνει υπόψη τα σχόλια.

18 /* Προγραµµατισµός ς Ι This program prints out the sentence This is a test. */ #include<stdio.h> Ένα απλό πρόγραµµα σε C #include σηµαίνει διάβασε και από αυτό το αρχείο void main () { printf( This is a test.\n ); } stdio είναι ένα αρχείο (library) που παρέχει πρότυπες συναρτήσεις εισόδου/εξόδου (όπως η printf) Αρχείο µε κατάληξη.h ονοµάζεται αρχείο κεφαλίδας

19 Ένα απλό πρόγραµµα σε C /* This program prints out the sentence This is a test. */ #include<stdio.h> void main () { printf( This is a test.\n ); } Η εκτέλεση του προγράµµατος αρχίζει πάντοτε από τη συνάρτηση main(). ΟΛΑ τα προγράµµατα σε C ή C++ έχουν συνάρτηση main(), η οποία συνήθως καλεί άλλες συναρτήσεις.

20 Ένα απλό πρόγραµµα σε C #include<stdio.h> void main () { Όλες οι συναρτήσεις χρησιµοποιούν άγκιστρα για να σηµειώσουν την αρχή και το τέλος της συνάρτησης. printf( This is a test.\n ); } Tο τµήµαανάµεσα στα άγκιστρα ονοµάζεται σώµα (body) της συνάρτησης.

21 Ένα απλό πρόγραµµα σε C #include<stdio.h> void main () { printf( This is a test.\n n ); } Μία συνάρτηση είναι ένα σύνολο προτάσεων µε ένα δεδοµένο όνοµα, π.χ. main(), printf(). Ηπρότασηαυτήκαλεί τη συνάρτηση printf() γιανατυπώσειτοκαθορισµένο κείµενο. Τα ορίσµατα εισόδου (input arguments) περικλείονται από παρενθέσεις και προσδιορίζουν το προς εκτύπωση κείµενο και τη µορφή µε τηνοποίαθαεκτυπωθεί.

22 Ένα απλό πρόγραµµα σε C #include<stdio.h> void main () { printf( This is a test.\n ) ); } ΟΛΕΣ οι προτάσεις τελειώνουν µε ερωτηµατικό (semicolon) ; το οποίο ονοµάζεται σύµβολο τερµατισµού πρότασης. Λεπτοµέρειες της printf(): \n σηµαίνει µετακινήσου στην επόµενη γραµµή. Ονοµάζεται ακολουθία διαφυγής (escape sequence). Η έξοδος στην οθόνη είναι: >This is a test. >

23 Σύνταξη σχολίων Τα σχόλια πρέπει να χρησιµοποιούνται αφειδώς γιατί καταστούν τον κώδικα ευανάγνωστο και συνεισφέρουν στην επεξήγηση δυσνόητων σηµείων. /* Tο T /* σχόλιο */ αυτό είναι λανθασµένο */ /* Tο σχόλιο αυτό χρησιµοποιεί σωστή σύνταξη */ /* Οµοίως και αυτό. */

24 Σύνταξη σχολίων /* Tο σχόλιο /* αυτό */ είναι λανθασµένο */ σχόλιο κώδικας; Να ευθυγραµµίζετε τα σύµβολα των σχολίων και να µην τοποθετείτε ποτέ σχόλια µέσα σε σχόλια (φώλιασµα, nesting) γιατί µερικοί µεταγλωττιστές θα µπερδευτούν.

25 Παρατηρήσεις: Η γλώσσα C διαχωρίζει τα κεφαλαία γράµµατα από τα µικρά (case sensitive). Η εντολή Printf() ΕΝ είναι ίδια µε τηνprintf() (). Όλες οι εντολές στη C γράφονται µε µικρά γράµµατα! Η σωστή στηλοθεσία είναι πολύ σηµαντική καθώς καθιστά τον κώδικα ευανάγνωστο. Να γράφετε πάντοτε σχόλια στα προγράµµατά σας. Η εντολή printf() ανήκει στις µορφοποιούµενες συναρτήσεις εισόδου εξόδου. Ονοµάζεται µορφοποιούµενη γιατί δίνει τη δυνατότητα στο χρήστη να µορφοποιήσει την έξοδό της, δυνάµενη να εκτυπώσει µεταβλητές διαφόρων τύπων και µε διάφορους τρόπους, χρησιµοποιώντας κατάλληλα σύµβολα. υαδική της printf() είναι η scanf() (), η οποία λαµβάνει πληροφορία από την είσοδο (πληκτρολόγιο).

26 Παρατηρήσεις (συνέχεια): Προγραµµατισµός ς Ι Η πρόταση printf( ( "This" is a test.\n" " ); καλεί την printf() για να τυπωθεί το καθορισµένο κείµενο. Τα ορίσµατα εισόδου (input arguments) περικλείονται από παρενθέσεις και προσδιορίζουν το προς εκτύπωση κείµενο και τη µορφή µε την οποία θα εκτυπωθεί. Τέλος, το σύµβολο \n, που ανήκει στις ακολουθίες διαφυγής, σηµαίνει «µετακινήσου στην επόµενη γραµµή». Λεπτοµερής περιγραφή της λειτουργίας των συναρτήσεων εισόδου εξόδου δίνεται στη συνέχεια. Πέραν της include, µία σηµαντική οδηγία προς τον προεπεξεργαστή είναι η define, η οποία αντιστοιχίζει ένα όνοµα µε µία σταθερά ή µε µία σειρά χαρακτήρων. Οποτεδήποτε εµφανίζεται το όνοµα µέσα στον κώδικα, αντικαθίσταται αυτόµατα µε την τιµή της σταθεράς ή τη συµβολοσειρά.

27 Για παράδειγµα, εάν χρησιµοποιηθεί η λέξη TRUE στη θέση της τιµής 1 και η λέξη FALSE στη θέση της τιµής 0, θα δοθούν δύο define ως εξής: #define TRUE 1 #define FALSE 0 Εάν αντικατασταθεί ολόκληρη φράση, µπορεί να εµφανισθεί στην οθόνη µε χρήση της printf() (): #define TITLOS "Dpt" of Informatics and Communications\n n " printf( TITLOS ); To αποτέλεσµα είναι: Dpt of Informatics and Communications Μία συνηθισµένη χρήση της define είναι για τον καθορισµό του µεγέθους στοιχείων, όπως είναι η διάσταση ενός πίνακα, τα οποία µπορεί να αλλάξουν κατά την εκτέλεση του προγράµµατος.

28 Λεξιλόγιο της γλώσσας C εσµευµένες λέξεις (reserved words) Λέξεις κλειδιά (keywords) Τελεστές (operators) Αναγνωριστές (identifiers)

29 εσµευµένες λέξεις: πρέπει να αποφεύγεται η χρήση τους ως ονόµατα Ονόµατα συναρτήσεων πρότυπης βιβλιοθήκης (runtime function names), όπως printf() (), abs() κ.λ.π. Macro names. Είναι ονόµατα που περιέχονται σε αρχεία κεφαλίδας για ορισµό µακροεντολών, π.χ. EOF, INT_MAX. Τype names. Είναι ονόµατα τύπων σε ορισµένα αρχεία κεφαλίδας, π.χ. time_t, va_list. Ονόµατα εντολών προεπεξεργαστή (preprocessor). Είναι ονόµατα που χρησιµοποιεί προεπεξεργαστής της C και έχουν προκαθορισµένη σηµασία, π.χ. include, define. Ονόµατα που αρχίζουν µε το χαρακτήρα υπογράµµισης _ και έχουν δεύτερο χαρακτήρα τον ίδιο ή κεφαλαίο γράµµα, π.χ. _DATE_, _FILE_.

30 Λέξεις κλειδιά: Λεκτικές µονάδες που µόνες τους ή µε άλλες λεκτικές µονάδες χαρακτηρίσουν κάποια γλωσσική κατασκευή Π.χ. int: αναπαριστά τον ακέραιο τύπο δεδοµένων if-else else: χρησιµοποιούνται στον έλεγχο ροής προγράµµατος Οι λέξεις κλειδιά, αν και είναι ένας περιορισµός των γλωσσών, αυξάνουν την αναγνωσιµότητα και αξιοπιστία των προγραµµάτων ενώ ταυτόχρονα επιταχύνουν τη διαδικασία της µεταγλώττισης. Λέξεις κλειδιά όπως if, else, for, case, while, do έχουν γίνει κοινά αποδεκτές, διευκολύνοντας την εκµάθηση των γλωσσών προγραµµατισµού.

31 Λέξεις κλειδιά στην ANSI C: auto else register union break enum return unsigned case extern short void char float signed volatile const for sizeof while continue goto static default if struct do int switch double long typedef

32 Αναγνωριστές: Λεκτικές µονάδες που κατασκευάζει ο προγραµµατιστής. Αυτές οι λεκτικές µονάδες χρησιµοποιούνται συνήθως ως ονόµατα που ο προγραµµατιστήςδίνεισεδικέςτου κατασκευές, όπως µεταβλητές, σταθερές, συναρτήσεις και δικούς του τύπους δεδοµένων. Ένα όνοµα προσδιορίζει µοναδιαία (uniquely identifies), από το σύνολο των κατασκευών του προγράµµατος, την κατασκευή στην οποία αποδόθηκε, εξ ου και το όνοµα αναγνωριστής (identifier).

33 Κανόνες δηµιουργίας ευανάγνωστου προγράµµατος Αποφύγετε ονόµατα ενός χαρακτήρα, όπως i, j, x, y (εκτός από ειδικές περιπτώσεις που θα εξετασθούν αργότερα). Χρησιµοποιείτε εκφραστικά ονόµατα. Συγκεκριµένα: - ονοµάστε τη µεταβλητή που αναπαριστά την ταχύτητα ως velocity και τη µέγιστη τιµήτηςmax_velocity ή maxvelocity. - ονοµάστε τη συνάρτηση που εµφανίζει τα λάθη στην οθόνη display_error ή displayerror. Για καλύτερη αναγνωσιµότητα των µεταβλητών που αποτελούνται από δύο ή περισσότερες λέξεις αποφασίστε αν θα χρησιµοποιείτε τη µορφή display_error ή τη µορφή displayerror. Τηρείστε τη σύµβαση σε όλο το πρόγραµµα. Χρησιµοποιείστε µικρά γράµµατα για ονόµατα µεταβλητών.

34 Μεταβλητές Ίδια χρήση µε εκείνη της άλγεβρας: 3x +5 = y x και y είναι οι µεταβλητές Αλλά γενικευµένη: η µεταβλητή είναι µία θέση µνήµης για ένα δεδοµένο. Η τιµήτηςµπορεί να είναι άγνωστη έως ότου εκτελεσθεί το πρόγραµµα ( run-time ).

35 ήλωση µεταβλητών Με πρόταση ορισµού (τελειώνει πάντοτε µε ;) Η µορφή: data_type var, var, ; Παράδειγµα: int counter1, counter2; Πού; Οι µεταβλητές δηλώνονται στην αρχή µίας συνάρτησης, αµέσως µετά το εισαγωγικό άγκιστρο {

36 Στην C τα ονόµατα των µεταβλητών σχηµατίζονται από: τα γράµµατα του αλφαβήτου τα ψηφία 0 έως 9 το χαρακτήρα υπογράµµισης (underscore) Το όνοµα πρέπειναξεκινάµε γράµµα ή το χαρακτήρα υπογράµµισης (στη δεύτερη περίπτωση ο επόµενος χαρακτήρας πρέπει να είναι µικρό γράµµα). Το όνοµα δεν πρέπει να είναι ίδιο µεδεσµευµένη λέξη. Σηµαντικοί είναι µόνο οι πρώτοι 31 χαρακτήρες του ονόµατος. Οι υπόλοιποι δε λαµβάνονται υπόψη.

37 /******************************************* Hydra.c *******************************************/ #include < stdio.h > void main() { int heads; int eyes; heads = 3; /* ανάθεση τιµής */ eyes = heads * 2; /* υπολογισµός τιµής */ } printf( It has %d heads and %d eyes! \n", heads, eyes); Έξοδος: > It has 3 heads and 6 eyes!

38 /******************************************* Hydra.c *******************************************/ #include < stdio.h > void main() { int heads; int eyes; ήλωσε (declare) κάθε µεταβλητή. Γράψε µία πρόταση για να τεθεί το όνοµά τηςκαιτοείδοςτης heads = 3; /* ανάθεση τιµής */ eyes = heads * 2; /* υπολογισµός τιµής */ } printf( It has %d heads and %d eyes! \n", heads, eyes); Έξοδος: > It has 3 heads and 6 eyes!

39 /******************************************* Hydra.c *******************************************/ #include < stdio.h > void main() { int heads; int eyes; Μετά τον ορισµό, θέσε τιµές στις µεταβλητές heads = 3; /* ανάθεση τιµής */ eyes = heads * 2; /* υπολογισµός τιµής */ } printf( It has %d heads and %d eyes! \n", heads, eyes); Έξοδος: > It has 3 heads and 6 eyes!

40 Ονόµατα µεταβλητών Έγκυρα ονόµατα µεταβλητών: totalarea max_amount counter1 Counter1 _temp_in_f Μη έγκυρα ονόµατα µεταβλητών: $product total% 3rd Απαράδεκτα ονόµατα µεταβλητών: l x2 maximum_number_of_students_in_my_class

41 Τύποι µεταβλητών Υπάρχουν 4 βασικοί τύποι µεταβλητών στη γλώσσα C: Τύπος Integer Floating point Double Character Λέξη κλειδί στη C: int float double char

42 Ο τύπος του χαρακτήρα (char) Παριστάνει απλούς χαρακτήρες του αλφάβητου της γλώσσας. Βρίσκεται ανάµεσα σε απλά εισαγωγικά (π.χ. C, 2, *, ) ). ήλωση: char choice; ήλωση µεαρχικήτιµή: char choice= A ; Εκτύπωση: µε χρήση της συνάρτησης printf() και του προσδιοριστή (specifier) %c. printf( ( The character is %c\n, choice ); Εάν αντί του %c χρησιµοποιηθεί ο %d, η printf() θα εµφανίσει τον ASCII κωδικό του χαρακτήρα. Η πρόταση printf( ( The ASCII Code of %c is %d\n, choice,choice); θα τυπώσει The ASCII Code of A is 65

43 Ο τύπος του χαρακτήρα Εισαγωγή: µε χρήση της συνάρτησης scanf() και του προσδιοριστή (specifier) %c. Η πρόταση scanf( ( %c, &ch& ); διαβάζει από την κύρια είσοδο (πληκτρολόγιο) ένα χαρακτήρα και τον αποδίδει στη µεταβλητή ch.θα πρέπει να προσεχθεί η χρήση του & πριν από τη µεταβλητή. Ονοµάζεται τελεστής διεύθυνσης και προηγείται πάντοτε των µεταβλητών στην εντολή scanf() (). Αποθήκευση και ανάκληση ASCII χαρακτήρα: Ο µεταγλωττιστής απαιτεί 1 byte µνήµης για την αποθήκευση της τιµής µιας µεταβλητής χαρακτήρα. Η αποθήκευση και ανάκληση παρουσιάζεται στην επόµενη διαφάνεια:

44 Αποθήκευση και ανάκληση ASCII χαρακτήρα

45 Μη εκτυπούµενοι χαρακτήρες Οι σταθερές τύπου χαρακτήρα νέα γραµµή (new-line) και στηλοθέτης (tab) ανήκουν στην κατηγορία των µη εκτυπούµενων χαρακτήρων, τους οποίους η C αναπαριστά µε τις ακολουθίες διαφυγής (escape sequences) \n \t, αντίστοιχα. Η παρακάτω πρόταση δίνεται ως παράδειγµα χρήσης χαρακτήρων διαφυγής: printf( ( Write, \ a \\ is a backslash. \ \n ); Η πρόταση θα εµφανίσει στην κύρια έξοδο (οθόνη): Write, a \ is a backslash. ιπλό εισαγωγικό ιπλό εισαγωγικό Νέα γραµµή

46 Μη εκτυπούµενοι χαρακτήρες και αντίστοιχες ακολουθίες διαφυγής

47 Παράδειγµα:Να καταστρωθεί πρόγραµµα που να επιτελεί τα παρακάτω: Ζήτησεαπότοχρήστηέναχαρακτήρα Πάρε από το χρήστη το χαρακτήρα Τύπωσε το χαρακτήρα και τον ASCII κωδικό του Βρες τον επόµενο χαρακτήρα Τύπωσέ τον µαζί µε τονκωδικότου

48 /************************************************************ Το πρόγραµµα διαβάζει ένα χαρακτήρα και τυπώνει το χαρακτήρα και τον επόµενό του καθώς και τους ASCII κωδικούς τους. ************************************************************/ #include <stdio.h< stdio.h> void main() { char ch,next_ch; printf( ( Write a character:\t t ); scanf( ( %c,&ch ); printf next_ch=ch+1; /* βρίσκει τον printf } Για να τυπωθεί ο χαρακτήρας ένα στηλοθέτη δεξιότερα printf( ( The ASCII code of char %c is %d\n, ch, ch ); τον επόµενο χαρακτήρα */ printf( ( The ASCII code of char %c is %d\n, next_ch, next_ch );

49 Ο τύπος του ακεραίου ήλωση: δηλώνεται µε τη λέξη κλειδί int και χρησιµοποιείται για να παραστήσει ακέραιους αριθµούς, αρνητικούς ή θετικούς. Η περιοχή τιµών εξαρτάται από την αρχιτεκτονική του µηχανήµατος. Για έναν υπολογιστή µε λέξη16 bits η περιοχή τιµών του τύπου int είναι από έως Εάν πριν από τη λέξη int τοποθετηθεί ο προσδιοριστής long τότε οι ακέραιοι long int εξασφαλίζουν αποθηκευτικό χώρο 32 bits. Αντίστοιχα, ο προσδιοριστής unsigned χρησιµοποιείται πριν από τη λέξη int γιαναχαρακτηρίσειτηµεταβλητή χωρίς πρόσηµο, η οποία λαµβάνει τιµές από 0 έως για λέξη 16 bits. Σε περιβάλλοντα 32 bits, όπως τα WinXP, οι ακέραιοι αποθηκεύουν τιµές στο διάστηµα από έως Ένας ακέραιος short int είναι τουλάχιστον 16 bits και ο int είναι τουλάχιστον τόσο µεγάλος όσο ο short int.

50 Εκτύπωση: µε χρήση της συνάρτησης printf και των προσδιοριστών %d, %o, %x για την εµφάνιση σε δεκαδική, οκταδική και δεκαεξαδική µορφή, αντίστοιχα. Οι προσδιοριστές l (long), h (short), και u (unsigned) τοποθετούνται πριν από τους d, o, x. printf( ( dec dec=%d, octal=%o, hex=%x, num,num,num ); Εισαγωγή: µε χρήση της συνάρτησης scanf και του προσδιοριστή (specifier) %d. Η πρόταση scanf( ( %d, &num ); διαβάζει από την κύρια είσοδο (πληκτρολόγιο) σε δεκαδική µορφή και αποδίδει την τιµήστηνακέραιαµεταβλητή num. Ακέραια σταθερά: Όταν στον πηγαίο κώδικα γράφουµε έναναριθµό χωρίς δεκαδικό ή εκθετικό µέρος, ο compiler το χειρίζεται ως ακέραια σταθερά. Η σταθερά 245 αποθηκεύεται ως int, ενώ η σταθερά αποθηκεύεται ως long int. Εάν ορίσουµε τη σταθερά 8965 ως 8965L, ο compiler δεσµεύει χώρο για long int.

51 Παρατήρηση: Υπάρχει η δυνατότητα να καθορισθεί ο αριθµός των ψηφίων που θα εκτυπωθούν, τοποθετώντας τον επιθυµητό αριθµό ανάµεσα στο % και το d. Εάν ο αριθµός είναι µικρότερος από τον απαιτούµενο αριθµό ψηφίων του ακέραιου, η επιλογή δε θα ληφθεί υπόψη. Στην αντίθετη περίπτωση, στις πλεονάζουσες θέσεις θα τοποθετηθούν κενά. Ο αριθµός που τοποθετείται στον προσδιοριστή %d ονοµάζεται καθοριστικό ελάχιστου πλάτους πεδίου. Με αυτόν τον τρόπο, σε διαδοχικές printf() θα υπάρξει ευθυγράµµιση των αποτελεσµάτων κατά στήλες. Οι προτάσεις printf( ( "dec" dec=%1d, octal=%4o, hex=%4x", num,num,num ); printf( ( "dec" dec=%4d, octal=%4o, hex=%4", num,num,num ); θα τυπώσουν αντίστοιχα: dec=46, octal= 56, hex= 2e dec= 46, octal= 56, hex= 2e

52 /************************************************************ Το πρόγραµµαεξετάζειτοµήκος του τύπου ακεραίου. ************************************************************/ #include <stdio.h< stdio.h> // για την printf #include <climits.h< climits.h> // limits.h για παλαιότερα συστήµατα void main(){ int number_int=int_max; // Mέγιστος ακέραιος, οριζόµενος στο climits.h short int number_short=shrt_max; // Μέγιστος short int long int number_long=long_max; // Μέγιστος long integer // ο τελεστής sizeof δίνει το µέγεθος ενός τύπου δεδοµένου ή µίας µεταβλητής printf( ( "int" is %d bytes\n",sizeof(int n",sizeof(int) ) ); printf( ( "short is %d bytes\n",sizeof(short n",sizeof(short) ) ); printf( ( "long is %d bytes\n",sizeof(long n",sizeof(long) ) ); printf( ( "\nmax" int:%d min int:%d\n",number_int,int_min n",number_int,int_min ); printf( ( "\nmax" short:%d min short:%d\n",shrt_max,shrt_min ); printf( ( "\nmax" long:%d min long:%d\n",number_long,long_min n",number_long,long_min ); } // τέλος της main

53 Αποτελέσµατα: Προγραµµατισµός ς Ι Ταυτίζονται τα bytes για int και long γιατί στην έκδοση 5 της C++ και µελειτουργικάwin95 και µεταγενέστερα ο int καταλαµβάνει 4 bytes.

54 Τύποι πραγµατικών αριθµών ήλωση: πραγµατικοίείναιοιαριθµοί που διαθέτουν κλασµατικό µέρος και εκφράζονται συνήθως στις ακόλουθες µορφές: Fixed-point number Scientific notation x x x10 4 Exponential notation e e-5 5.0e+04 ΗγλώσσαC διαθέτει δύο τύπους για αναπαράσταση πραγµατικών αριθµών. Τον τύπο float για αριθµούς κινητής υποδιαστολής απλής ακρίβειας και τον τύπο double για αριθµούς κινητής υποδιαστολής διπλής ακρίβειας. Η πρόταση float plank=6.63e-34; 34; δηλώνει τη µεταβλητή plank ως απλής ακρίβειας και της δίνει την τιµή 6.63e-34. Η χρήση του προσδιοριστή long πριν από τον τύπο double χρησιµοποιείται για δήλωση µεταβλητής κινητής υποδιαστολής εκτεταµένης ακρίβειας, π.χ. long double plank;

55 Εκτύπωση: µεχρήσητηςprintf() και των προσδιοριστών %f για εµφάνιση σε fixed point µορφή, %e για εµφάνιση σε εκθετική µορφή, και %g για να ανατεθεί στο σύστηµα ναεπιλέξειµεταξύ των δύο προηγουµένων, µε προτεραιότητα στη µορφή µε τοµικρότερο µέγεθος. Αποθήκευση: ως συνηθισµένα µεγέθη αναφέρονται για τους µεν float τα 32 bits, 8 για εκθέτη και πρόσηµο και24 για τη βάση, για τους δε double τα 64 bits, µε τα επιπλέον 32 να χρησιµοποιούνται για αύξηση της ακρίβειας της βάσης. Πραγµατικές σταθερές: Πραγµατικοί αριθµοί όπως οι e-5 24e e-08 όταν εµφανίζονται στον πηγαίο κώδικα αποτελούν τις πραγµατικές σταθερές. Θεωρούνται από το µεταγλωττιστή ως double και δεσµεύουν τον αντίστοιχο χώρο.

56 /************************************************************** Το πρόγραµµα εξετάζειτοµήκος του τύπου κινητής υποδιαστολής. **************************************************************/ #include <stdio.h< stdio.h> #include <float.h> // για το µέγιστο και τον ελάχιστο float, double void main() { float num_float=flt_max; // Mέγιστος float double num_double=dbl_max; // Mέγιστος double printf( ( "float is %d bytes\n",sizeof(float n",sizeof(float) ) ); printf( ( "double is %d bytes\n",sizeof(double n",sizeof(double) ) ); printf("\nmax nmax float:%e min float:%e\n",num_float,flt_min); printf("\nmax nmax double:%e,min double:%e\n" num_dοuble,dbl_min); } //intro_prog_example_2.cpp

57 Αποτελέσµατα: Προγραµµατισµός ς Ι

58 Ι/Ο κονσόλας Η Ι/Ο κονσόλας αναφέρεται στις λειτουργίες που γίνονται στο πληκτρολόγιο και στην οθόνη του υπολογιστή. Εκτός από τις printf() και scanf() που χρησιµοποιήθηκαν προγουµένως (και αποτελούν τη φορµαρισµένη Ι/Ο κονσόλας γιατί µπορούν να διαβάζουν δεδοµένα σε διάφορες φόρµες), υπάρχει µία σειρά απλούστερων συναρτήσεων που αναπτύσσεται ακολούθως.

59 Οι συναρτήσεις getche, getch H συνάρτηση getche() διαβάζει ένα χαρακτήρα από την κύρια είσοδο (πληκτρολόγιο). Αναµένει έως ότου πατηθεί ένα πλήκτρο και στη συνέχεια επιστρέφει την τιµή του, εµφανίζοντας στην οθόνη το πλήκτρο που πατήθηκε. Το πρωτότυπο της getche() είναι το ακόλουθο: int getche(void); H getche() επιστρέφει µεν έναν ακέραιο αλλά το byte χαµηλής τάξης περιέχει τον χαρακτήρα. Η χρήση ακεραίων γίνεται για λόγους συµβατότητας µε τοναρχικόµεταγλωττιστή της UNIX C.

60 Οι συναρτήσεις getche, getch (συνέχεια) Το αρχείο κεφαλίδας της συνάρτησης getche() βρίσκεται στο conio.h. H συνάρτηση getch() αποτελεί παραλλαγή της getche() και βρίσκεται στο conio.h. Λειτουργεί όπως ακριβώς η getche µε τη διαφορά ότι η getch() δεν εµφανίζει τον πληκτρολογηθέντα χαρακτήρα στην οθόνη. Το πρωτότυπο της getch() είναι το ακόλουθο: int getch(void);

61 Η συνάρτ ρτηση getchar H συνάρτηση getchar() διαβάζει ένα χαρακτήρα από την κύρια είσοδο και τον επιστρέφει στο πρόγραµµα. Αποτελεί παραλλαγή της getche() (). Είναι η αρχική συνάρτηση εισόδου χαρακτήρων που βασίζεται στο UNIX. Το πρόβληµα µε τη συνάρτηση αυτή είναι ότι κρατά την είσοδο στην περιοχή προσωρινής αποθήκευσης µέχρι να δώσουµε επαναφορά κεφαλής. Έτσι, µετά την επιστροφή της getchar() περιµένουν ένας ή περισσότεροι χαρακτήρες στην ουρά εισόδου. Το πρωτότυπο της getchar() είναι το ακόλουθο: int getchar(void); Το αρχείο κεφαλίδας της συνάρτησης getchar() βρίσκεται στο stdio.h.

62 Η συνάρτηση putchar H συνάρτηση putchar() εµφανίζει στην οθόνη το χαρακτήρα που έχει ως όρισµα (π.χ. c), στην τρέχουσα θέση του δροµέα. Το πρωτότυπο της putchar() είναι το ακόλουθο: int putchar(int c); H putchar() επιστρέφει µεν έναν ακέραιο αλλά το byte χαµηλής τάξης περιέχει τον χαρακτήρα. Η χρήση ακεραίων γίνεται για λόγους συµβατότητας µε τοναρχικόµεταγλωττιστή της UNIX C. Το αρχείο κεφαλίδας της συνάρτησης putchar() βρίσκεται στο stdio.h.

63 Η συνάρτηση kbhit H συνάρτηση kbhit() (keyboard hit) ελέγχει κατά πόσον ο χρήστης έχει πατήσει κάποιο πλήκτρο. Εφόσον έχει πατήσει κάποιο πλήκτρο η συνάρτηση επιστρέφει ως αληθής, σε αντίθετη περίπτωση επιστρέφει ως ψευδής.. Η συνάρτηση kbhit() χρησιµοποιείται κυρίως για να διακόπτει ο χρήστης το πρόγραµµα κατά το δοκούν. Το πρωτότυπο της kbhit() είναι το ακόλουθο: int kbhit(void); Το αρχείο κεφαλίδας της συνάρτησης kbhit() βρίσκεται στο conio.h.

64 Παράδειγµα: Το ακόλουθο πρόγραµµα παίρνει χαρακτήρες από το πληκτρολόγιο και µετατρέπει τα κεφαλαία σε µικρά και τούµπαλιν. Το πρόγραµµασταµατά µόλις πληκτρολογηθεί µία τελεία. Το αρχείο-κεφαλίδα ctype.h απαιτείται για τη συνάρτηση islower() (), που αληθεύει αν το όρισµάτηςείναισεµικρά γράµµατα, και τις συναρτήσεις toupper() (), tolower() (), που µετασχηµατίζουν τα γράµµατα. (να µη γίνει ιδιαίτερη µνεία για την επαναληπτική πρόταση και την υπό συνθήκη διακλάδωση. Θα µελετηθούν εκτενώς αργότερα.) #include <stdio.h< stdio.h> #include <conio.h< conio.h> #include <ctype.h< ctype.h> void main() { char ch; printf( ( "Start writing letters without ENTER\n\n"); do { ch=getche getche(); printf( ( " -> > " ); if (islower(ch( islower(ch)) putchar(toupper(ch)); else putchar(tolower(ch)); } while (ch( ch!='.'); // τέλος του βρόχου µε το χαρακτήρα '.' }

65 Αποτελέσµατα: Προγραµµατισµός ς Ι

66 Τελεστές (operators) Εκφράσεις (expressions) Σύµβολα ή λέξεις που αναπαριστούν συγκεκριµένες διεργασίες, οι οποίες εκτελούνται πάνω σε ένα ή περισσότερα δεδοµένα. Τα δεδοµένα καλούνται τελεστέοι (operands) και µπορούν να είναι µεταβλητές, σταθερές ή ακόµη και κλήσεις συναρτήσεων. Οι τελεστές χρησιµοποιούνται για το σχηµατισµό εκφράσεων. Μία έκφραση, εν γένει, αποτελείται από έναν ή περισσότερους τελεστέους και προαιρετικά από έναν ή περισσότερους τελεστές. Κάθε έκφραση έχει µία τιµή, η οποία υπολογίζεται µε ορισµένους κανόνες.

67 Σύµβολα συνηθισµένων τελεστών

68 Συµβολισµοί στο σχηµατισµό εκφράσεων Ένας δυαδικός (binary) τελεστής µπορεί να τοποθετηθεί: Μεταξύ των δεδοµένων στα οποία ενεργεί, όπως στην έκφραση x+y, οπότε έχουµε τη σηµειογραφία ένθεσης ή ένθετου τελεστή (infix notation). Πριν από τους τελεστέους, όπως στην έκφραση +x y, y οπότε έχουµε τησηµειογραφία πρόθεσης ή προπορευόµενου τελεστή (prefix notation). Μετά από τους τελεστέους, όπως στην έκφραση x y+ x y+, οπότε έχουµε τη σηµειογραφία επίθεσης ή παρελκόµενου τελεστή (postfix notation).

69 Προσοχή: Καλύτερη πρακτική: να µη χρησιµοποιούνται τελεστές σε µεικτούς τύπους: out_int = my1_int + my2_int; // καλό out_float = my_double / my_int; // κακό!!κιν ΥΝΟΣ!!: Όταν γίνεται διαίρεση ακεραίων το αποτέλεσµα είναι το πηλίκο, δηλαδή 5 / 2 = 2 κι όχι 2.5 Για να ληφθεί ως αποτέλεσµα αριθµός κινητής υποδιαστολής, τουλάχιστον έναςαπότουςτελεστέουςπρέπειναείναιαριθµός κινητής υποδιαστολής: 5.0 / 2 υπολογίζεται ως 2.5

70 Οι εκφράσεις είναι συχνά φωλιασµένες (nested): (((n+5)<=a) && q) H έκφραση αυτή Υπολογίζεται και γίνεται ένας όρος: (((n+5)<=a) && q) στη συνέχεια η έκφραση υπολογίζεται και γίνεται ένας όρος: (((n+5)<=a) && q)

71 Προτεραιότητα (precedence) και προσεταιριστικότητα (associativity) Πώς θα υπολογισθεί η έκφραση 17 * 8-2; Είναι 17*(8-2) ή (17*8)-2 ; Οι ανωτέρω εκφράσεις οδηγούν σε διαφορετικά αποτελέσµατα. Κατά συνέπεια απαιτούνται κανόνες. Η σειρά εφαρµογής των τελεστών ονοµάζεται εφαρµοστική σειρά (applicative order).

72 Προτεραιότητα και προσεταιριστικότητα τελεστών στη C

73 Προτεραιότητα και προσεταιριστικότητα Παραδείγµατα: X =17-2 * 8 Aπάντηση: X=17-(2*8), X=1 Y = Aπάντηση: Y = (17-2) 2)-8, Y=7 Z = * ((8 + 7) % 6) + 5 * 4 % 3 *2 + 1 (;) Μπερδευτήκατε; Τότε χρησιµοποιείστε παρενθέσεις στον κώδικά σας.

74 Τελεστές αύξησης και µείωσης Τελεστής αύξησης (increment operator): ++ Αντί για num = num + 1; γράφουµε num++; Τελεστής µείωσης (decrement operator): -- Αντί για Γράφουµε num = num - 1; num-- --; Μήπως γίνεται πλέον φανερό από πού έλαβε η C++ το όνοµάτης;

75 Παράδειγµα: Στην ακολουθία εκφράσεων που παρουσιάζεται ακολούθως παρουσιάζεται ενδεικτικά η λειτουργία των προπορευόµενων και παρελκόµενων τελεστών µοναδιαίας αύξησης και µείωσης.

76 Παράδειγµα: Να προσδιορισθεί η τιµή τωνx και z µετά την εκτέλεση κάθε µίας από τις παρακάτω προτάσεις, θεωρώντας ότι, πριν την εκτέλεση της κάθε πρότασης, οι τιµές των x και y είναι το 10 και 20 αντίστοιχα. α) z = ++x + y; β) z = --x x + y; γ) z = x++ + y; δ) z = x--x + y; Λύση: Στην περίπτωση του προπορευόµενου τελεστή, το σύστηµα πρώτα εκτελεί την αύξηση ή µείωση και µετά χρησιµοποιεί τη νέα τιµή της µεταβλητής στον υπολογισµό της τιµής της έκφρασεις (προτάσεις α και β). Αντίθετα, στην περίπτωση του παρελκόµενου τελεστή το σύστηµα πρώτα χρησιµοποιεί την τιµή της µεταβλητής για τον υπολογισµό τηςτιµής της έκφρασης και µετά εκτελεί την αύξηση ή µείωση της τιµής της µεταβλητής (προτάσεις γ και δ).

77 Αποτελέσµατα: Προγραµµατισµός ς Ι

78 Τελεστές ανάθεσης (assignment) x* = 10; εκτελεί την πράξη του πολλαπλασιασµού µεταξύ των x και 10 και εκχωρεί το αποτέλεσµα στοx. Αντιστοιχεί στην πρόταση x = x * 10; x* = y + 1;Αντιστοιχεί στην πρόταση x = x * (y + 1); κι ΟΧΙ στην πρόταση x = x * y + 1; Τελεστές ανάθεσης δηµιουργούν κι οι τελεστές διαχείρισης δυαδικών ψηφίων (bitwise operators). Οι τελεστές αυτοί είναι: >>= <<= &= ^= =.

79 Τελεστές ανάθεσης (συνέχεια) Οι τελεστές ανάθεσης µαζί µε τους τελεστές αύξησης/µείωσης γίνονται αιτία δηµιουργίας παρενεργειών (side effects), για το λόγο αυτό αναφέρονται και ως παρενεργοί τελεστές (side effect operators). Οι παρενέργειες αυτές έχουν ως αποτέλεσµα την απροσδιόριστη συµπεριφορά του συστήµατος ως προς τον τρόπο υπολογισµού της τιµής της µεταβλητής i σε εκφράσεις όπως: i = n[i++]; ή i = ++i + 1;

80 Συσχετιστικοί τελεστές (relational operators) Τελεστής < > <= >= ==!= ράση Μικρότερο από Μεγαλύτερο από Μικρότερο ή ίσον από Μεγαλύτερο ή ίσον από Ίσο διάφορο Το αποτέλεσµαείναιπάντοτεείτεαληθεσ (ΤRUE) είτε ΨΕΥ ΕΣ (FALSE)

81 Συσχετιστικοί τελεστές Παράδειγµα: Η τιµή της έκφρασης (3 < 2) είναι ΨΕΥ ΗΣ Η τιµή της έκφρασης (2 = = 2) είναι ΑΛΗΘΗΣ Στη C (και σε πολλές άλλες γλώσσες), Η τιµή ΑΛΗΘΗΣ αντιστοιχεί στον ακέραιο 1 Η τιµή ΨΕΥ ΗΣ αντιστοιχεί στον ακέραιο 0

82 Συσχετιστικοί Αριθµητικοί Τελεστές: ΚΑΙ ΟΙ ΥΟ χρησιµοποιούν αριθµητικές εισόδους: Παράδειγµα: (num < 10) και (num + 10) (όπου num είναι µία ακέραια µεταβλητή) Ωστόσο, οι συσχετιστικές έξοδοι είναι µόνο TRUE/FALSE. (number < 10) δίνει TRUE ή FALSE (0/1) (number + 10) δίνει οποιοδήποτε αριθµό

83 Λογικοί τελεστές ιαφορετικοί από τους συσχετιστικούς τελεστές καθώς έχουν εισόδους True/False και εξόδους True/False. Τελεστής ράση Πίνακας αληθείας &&! AND OR NOT p q p&&q p q!p (and) (or) (not) T T T T F T F F T F F T F T T F F F F T

84 Λογικοί τελεστές Παραδείγµατα: int x,y; x=10; y=-8; Υπολογισµός των παρακάτω εκφράσεων: (x+5) < (12-y) (10+5) < (12- (-8)) 15< 20 TRUE (x>5) (y>10) (10>5) (-8>10) (TRUE) (FALSE) TRUE

85 Τελεστής µετατροπής τύπου (typecasting) Ο τελεστής µετατροπής τύπου ή cast τελεστής, όπως αποκαλείται, είναι µοναδιαίος κι έχει τη µορφή (τύπος δεδοµένων), π.χ. (float). Τοποθετείται µπροστά από µία έκφραση για να µετατρέψει την τιµή της στον περικλειόµενο σε παρενθέσεις τύπο. Η µετατροπή ισχύει αποκλειστικά στο σηµείο εφαρµογής της, όπως φαίνεται στο ακόλουθο παράδειγµα: Παράδειγµα: int i,j; µετατροπή των i και j σε float float f1,f2,f3; i=5; j=2; fl = i/j + 0.5; /* αποτέλεσµα: 2.5 */ f2 = (float)i/(float)j + 0.5; /* αποτέλεσµα : 3.0 */ f3 = i/j + 0.5; /* αποτέλεσµα : 2.5 */

86 Παράδειγµα: Στον κώδικα που ακολουθεί αποδεικνύεται ότι η µετατροπή τύπου ισχύει για όλους τους τύπους δεδοµένων. #include <stdio.h< stdio.h> void main(){ char x='a',y A',y; int i=78; float f1; y=(char)i char)i; printf( ( "\ni" ni=%d y=%c\n",i,y ); f1=(float)x float)x; printf( ( "x=%c f1=%f\n",x,f1 ); } Ο ASCII χαρακτήρας µε δεκαδικό ισοδύναµο 78

87 Τελεστής sizeof Ο τελεστής sizeof είναι µοναδιαίος και δρα: α) σε έκφραση, π.χ. sizeof(x+y) και β) σε τύπο δεδοµένων, πχ. sizeof(int) Σε κάθε περίπτωση, επιστρέφει τον αριθµό τωνbytes που η τιµή τήςέκφρασηςή ο τύπος των δεδοµένων καταλαµβάνει στη µνήµη. Προσοχή θα πρέπει να δοθεί στο γεγονός ότι το σύστηµα δεν υπολογίζει την τιµή της έκφρασης κι έτσι πιθανή ύπαρξη παρενεργειών τελεστών δε δηµιουργεί παρενέργειες. Μπορεί να βρεθεί το µέγεθος σε bytes ενός πίνακα χρησιµοποιώντας τον τελεστή sizeof. Για παράδειγµα, αν θεωρηθεί ο πίνακας int ar[5]; η έκφραση sizeof(ar) δίνει τιµή 20 επειδή ο πίνακας αποτελείται από 5 ακεραίους των 4 bytes.

88 Τελεστής sizeof (συνέχεια) Στη sizeof θα πρέπει να περιλαµβάνεται µόνο το όνοµα του πίνακα. Αν περιληφθεί δείκτης ενός στοιχείου, τότε θα εξαχθεί το µέγεθος του στοιχείου. Για παράδειγµα, η έκφραση sizeof(ar[0]) δίνει τιµή 4. Χρησιµοποιώντας ένα συνδυασµό των παραπάνω µπορεί να βρεθεί ο αριθµός των στοιχείων του πίνακα. Η έκφραση sizeof(ar)/sizeof(ar[0]) δίνει 5, τον αριθµό δηλαδή των στοιχείων του πίνακα ar.

89 Παράδειγµα: Ο κώδικας που ακολουθεί δίνει το µέγεθος των 4 βασικών τύπων δεδοµένων της C. #include <stdio.h> void main() { printf( "\nsize" of char = %d",sizeof(char) ); printf( "\nsize" of int = %d",sizeof(int) ); printf( "\nsize" of float = %d",sizeof(float) ); printf( "\nsize" of double = %d",sizeof(double) ); }

90 Προτάσεις ελέγχου ροής Ο πιο συνηθισµένος τρόπος εκτέλεσης είναι ο ακολουθιακός: δύο ή περισσότερες προτάσεις βρίσκονται διατεταγµένες η µία µετά την άλλη και εκτελούνται διαδοχικά.

91 Προτάσεις ελέγχου ροής Ωστόσο, ορισµένες φορές επιβάλλεται να γίνουν λογικές επιλογές (µε χρήση λογικών τελεστών και τελεστών συσχέτισης). Παράδειγµα: ΕΑΝ στο σηµατοδότη βρίσκεται ο ΓΡΗΓΟΡΗΣ ΤΟΤΕ µπορείς να διασχίσεις την οδό ΑΛΛΙΩΣ περίµενε αλλαγή του σηµατοδότη Για να επιτευχθεί οποιαδήποτε διαφοροποίηση από την ακολουθιακή εκτέλεση απαιτούνται ειδικές κατασκευές. Ορισµένες από αυτές τις κατασκευές διασφαλίζουν ταυτόχρονα τη δόµηση του προγράµµατος, µε κύριο στόχο: η δοµή του πηγαίου κώδικα να µας βοηθά να κατανοήσουµε τι κάνει το πρόγραµµα. Οι κατασκευές διακρίνονται σε δύο βασικές κατηγορίες: 1) την επανάληψη (looping) 2) την υπό συνθήκη διακλάδωση (conditional branching)

92 Προτάσεις ελέγχου ροής στη C Προτάσεις διακλάδωσης υπό συνθήκη if else switch case Προτάσεις επανάληψης while do while for Προτάσεις διακλάδωσης χωρίς συνθήκη break continue goto

93 Επιλεκτική εκτέλεση δύο προτάσεων if Ε1 then Π1 else Π2

94 Επιλεκτική εκτέλεση πολλών προτάσεων µε ένθεση if Ε1 then Π1 else if E2 then Π2 else Π0

95 Παράδειγµα:Να περιγραφεί µε ψευδοκώδικα η διεργασία που πρέπει να ακολουθήσει ο υπολογιστής για να διαπιστώσει κατά πόσο ένα δεδοµένο έτος είναι δίσεκτο ή όχι. Να χρησιµοποιηθεί η κατασκευή if else. Λύση: Εάν αναπαρασταθεί το έτος µε την ακέραια µεταβλητή year και ο τελεστής υπολοίπου (modulo) µε τοσύµβολο %, η περιγραφή µπορεί να γίνει ως ακολούθως: IF ((year % 400) == 0) THEN το έτος είναι δίσεκτο ELSE IF ((year % 100) == 0) THEN το έτος δεν είναι δίσεκτο ELSE IF ((year % 4) == 0) THEN το έτος είναι δίσεκτο ELSE το έτος δεν είναι δίσεκτο

96 Yπό συνθήκη διακλάδωση if - else Μία δήλωση, τρία τµήµατα: συνθήκη if (light_color==green) { cross_the_street(); } else { wait_for_light_to_change(); } Σε απλή πρόταση τα άγκιστρα περιττεύουν

97 Yπό συνθήκη διακλάδωση if - else Μία δήλωση, τρία τµήµατα: συνθήκη if (light_color==green) { cross_the_street(); } ΑΛΗΘΕΣ else (ΤRUE) ένα µπλοκ προτάσεων { wait_for_light_to_change(); } (ΤRUE) ΤΜΗΜΑ : µία πρόταση ή

98 Yπό συνθήκη διακλάδωση if - else Μία δήλωση, τρία τµήµατα: if (light_color==green) { cross_the_street(); } else { wait_for_light_to_change(); } συνθήκη ΨΕΥ ΕΣ (FALSE) ΤΜΗΜΑ :µία πρόταση ή ένα µπλοκ προτάσεων ΑΛΗΘΕΣ ΤΜΗΜΑ : µία πρόταση ή ένα µπλοκ προτάσεων

99 Yπό συνθήκη διακλάδωση if - else Μερικές φορές δεν υπάρχει else, δηλαδή δεν υπάρχει ΨΕΥ ΕΣ τµήµα: Παράδειγµα: if (gas_tank_empty == TRUE) fill_up_tank(); Εάν η συνθήκη είναι ψευδής (π.χ. το ντεπόζιτο της βενζίνης είναι άδειο) δε γίνεται καµία ενέργεια.

100 Yπό συνθήκη διακλάδωση if - else Όταν υπάρχουν περισσότερα από δύο τµήµατα και απαιτούνται ένθετες (φωλιασµένες) προτάσεις if/else. Μπορεί να αντικατασταθεί το ζεύγος else { if (συνθήκη) { προτάσεις; } } µε την περισσότερο ευανάγνωστη µορφή: else if (συνθήκη) { προτάσεις;} Π.χ. if (people<5) <get < a car>; else if (people<15) <get < a van>; else if (people<50) <get < a bus>; else <cancel_event>;

101 Προτάσεις υπό συνθήκη διακλάδωσης if(συνθήκη)πρόταση; if (συνθήκη) { προτάσεις; προτάσεις; } if (συνθήκη) { προτάσεις; προτάσεις; } else { προτάσεις; προτάσεις;... }; 3 µορφές Σηµειώστε ότι η συνθήκη βρίσκεται πάντοτε ανάµεσα σε παρενθέσεις, ΌλαταΑΛΗΘΗ τµήµατα και όλα τα ΨΕΥ Η τµήµατα είναι µία µόνο πρόταση ή ένα µπλοκ προτάσεων {}

102 Παράδειγµα:Να γραφεί πρόγραµµα που υπολογίζει το µέγιστο ανάµεσα σε τρεις ακέραιους #include <stdio.h< stdio.h> void main() { } int a,b,c; scanf( %d %d\n,&a); scanf( %d %d\n,&b); scanf( %d %d\n,&c); if (a>b) { } if (a>c) printf( max(%d,%d,%d) = %d\n,a,b,c,,a,b,c,a ); else printf( max(%d,%d,%d) = %d\n,a,b,c,,a,b,c,c ); else if (b>c) printf( max(%d,%d,%d) = %d\n,a,b,c,,a,b,c,b ); else printf( max(%d,%d,%d) = %d\n,a,b,c,,a,b,c,c );

103 Υποθετικός τελεστής Ο υποθετικός τελεστής (?:?:) αποτελείται από δύο σύµβολα. Ανήκει στην κατηγορία των τελεστών που αποτελούνται από συνδυασµό συµβόλων και δεν ακολουθούν καµία από τις postfix, prefix ή infix σηµειογραφίες. Όταν τα σύµβολα ή οι λέξεις του τελεστή είναι διάσπαρτα στους τελεστέους στους οποίους εφαρµόζεται ο τελεστής, λέµε ότιο τελεστής είναι σε µεικτή σηµειγραφία (mixfix notation).

104 Υποθετικός τελεστής (συνέχεια) Η έκφραση που σχηµατίζει ο υποθετικός τελεστής έχει τη µορφή: εκφρ1? εκφρ2 : εκφρ3 Η τιµή της παραπάνω έκφρασης είναι η τιµή τηςεκφρ2, εάν η εκφρ1 είναι αληθής, αλλιώς είναι η τιµήτηςεκφρ3. Η εκφρ1 αποτελεί τη συνθήκη ελέγχου. Έτσι η έκφραση x>z? x : z έχει τιµή x, εάν το x>z είναι αληθές, διαφορετικά έχει τιµή z.

105 Παράδειγµα: Nα γραφεί κώδικας που βρίσκει το µεγαλύτερο δύο και τριών ακεραίων αριθµών και τον τυπώνει. ύο αριθµοί: printf( ( maximum is %d\n, (num1>num2)?num1:num2 ); Τρεις αριθµοί: max=(num1>num2?num1:num2) > num3? (num1>num2?num1:num2):num3; printf( ( maximum is %d\n, max ); Προκύπτει ένας αριθµός και συγκρίνεται µε τονnum3. Εάν ισχύει η ανισότητα αυτός ο αριθµός θα τυπωθεί ως µέγιστος, αλλιώς ο num3.

106 Yπό συνθήκη διακλάδωση switch() switch(έκφραση έκφραση) { case (σταθ.( σταθ.-έκφρ.. 1): 1 προτάσεις; break; case (σταθ.( σταθ.-έκφρ.. 2): 2 προτάσεις; break; default: προτάσεις; break; } Όταν υπάρχουν πολλές ένθετες προτάσεις if ή elseif, υπάρχει δυσκολία στην ανάγνωση και καθυστέρηση στην εκτέλεση. Τότε προτιµάται η χρήση της switch() ().

107 switch() (συνέχεια) Η πρόταση switch επιτρέπει τον προσδιορισµό απεριόριστου αριθµού διαδροµών ανάλογα µετηντιµή της έκφρασης. Υπολογίζεται η έκφραση και η τιµή της συγκρίνεται διαδοχικά µε τις σταθερές εκφράσεις (σταθ.-έκφρ. 1, σταθ.-έκφρ. 2, ). Ο έλεγχος µεταφέρεται στις προτάσεις που είναι κάτω από τη σταθερά έκφραση µε την οποία ισούται η τιµήτηςέκφρασης. Εάν δεν ισούται µε καµία από τις σταθερές εκφράσεις, ο έλεγχος µεταφέρεται στις προτάσεις που ακολουθούν την ετικέτα default, εάν αυτή υπάρχει, αλλιώς στην πρόταση που ακολουθεί το σώµα τηςswitch.

108 switch() (συνέχεια) Η πρόταση ελέγχου break, η οποία υποδηλώνει άµεση έξοδο από τη switch, είναι προαιρετική. Εάν αυτή λείπει, η εκτέλεση των προτάσεων που ακολουθούν την επιλεγείσα ετικέτα θα ακολουθήσει από την εκτέλεση και των προτάσεων και των επόµενων case ετικετών. Στην πράξη η break συναντάται σχεδόν πάντοτε, ακόµη και µετά τις προτάσεις τής default. Το τελευταίο γίνεται για να προστατευθούµε από το δύσκολο στην ανεύρεση σφάλµα που θα προκύψει από µελλοντική προσθήκη µίας νέας ετικέτας µε ταυτόχρονη παράλειψη προσθήκης πριν από αυτή τής break.

109 switch() (συνέχεια) Η λειτουργία της switch διέπεται από το ακόλουθο σύνολο κανόνων: Κάθε case πρέπει να έχει µία int ή char σταθερά έκφραση. ύο case δεν µπορούν να έχουν την ίδια τιµή. Οι προτάσεις κάτω από την ετικέτα default εκτελούνται όταν δεν ικανοποιείται καµία από τις case ετικέτες. Η default δεν είναι απαραίτητα η τελευταία ετικέτα. Οι case και default µπορούν να τοποθετηθούν µε οποιαδήποτε σειρά. Η break µετά την τελευταία ετικέτα αποτελεί καλή τακτική, αν και δεν είναι απαραίτητη.

110 Παράδειγµα:Να γραφεί τµήµα κώδικα, το οποίο να δίνει τη δυνατότητα στο χρήστη να εισάγει δύο αριθµούς και στη συνέχεια να εκτελεί επί αυτών επιλεκτικά µία από τις τέσσερις αριθµητικές πράξεις Λύση: Χρησιµοποιώντας περιγράφεται ως εξής: δοµηµένα Ελληνικά, η διεργασία 1. πάρε δύο αριθµούς 2. ενηµέρωσε το χρήστη για δυνατές επιλογές 3. πάρε την επιλογή του χρήστη 4. ανάλογα µε την επιλογή 5. εκτέλεσε την αντίστοιχη πράξη 6. εµφάνισε το αποτέλεσµα 7. τερµάτισε Ο κώδικας του προγράµµατος είναι ο ακόλουθος:

111 #include <stdio.h< stdio.h> #include <conio.h< conio.h> #define ADD 1 #define SUB 2 #define MUL 3 #define DIV 4 Κάθε µία από τις πράξεις αντιστοιχίζεται σε έναν ακέραιο void main(){ float num1, num2,result; int choice; printf( ( "\ngive" first number:"); scanf("%f",&num1 ); printf( ( "\ngive" second number:"); scanf("%f",&num2 ); printf( ( "\n" n Select one of the following:" ); printf( ( "\n\t\t\t" %d -> > + (addition)\n,add n,add ); printf( ( "\n\t\t\t" %d -> - (subtraction)\n,sub n,sub ); printf( ( "\n\t\t\t" %d -> > * (multiplication)\n,mul n,mul ); printf( ( "\n\t\t\t" %d -> > / (division)\n,div n,div ); scanf( ( "%d",&choice ); //example_of_switch.cpp

112 switch(choice){ case 1: result=num1+num2; break; case 2: result=num1-num2; num2; break; case 3: result=num1*num2; break; case 4: if (num2) result=num1/num2; // num2!= 0 else printf( ( "\t\t" ERROR: division by 0" ); break; default: printf( ( "This selection is not supported" ); break; } // τέλος της switch printf( ( "\n\tresult" tresult: : %f\n",result% ); } // τέλος της main

113 Αποτελέσµατα: Προγραµµατισµός ς Ι

114 Προτάσεις επανάληψης - γενικά Οι προτάσεις επανάληψης επαναλαµβάνουν ένα µπλοκ προτάσεων είτε για όσες φορές το επιθυµούµε είτε έως ότου πληρωθεί µία συνθήκη τερµατισµού. Η πλήρωση του κριτηρίου τερµατισµού (terminating( condition) οδηγεί στην περάτωση του βρόχου (loop). Εάν δεν υπάρχει συγκεκριµένος αριθµός επαναλήψεων ή συνθήκη τερµατισµού, ο βρόχος θα εκτελείται αενάως, οδηγώντας σε σφάλµα.

115 while - do 1) Βρόχος µε συνθήκη εισόδου (pre-test loop): α) οδηγούµενος από γεγονός β) οδηγούµενος από µετρητή { } αληθής(συνθήκη συνθήκη) ναι έναρξη µπλοκ προτάσεων; όχι τερµατισµός

116 while - do while E do Π

117 do - while 2) Βρόχος µε συνθήκη εξόδου (post-test loop): α) οδηγούµενος από γεγονός β) οδηγούµενος από µετρητή { } έναρξη µπλοκ προτάσεων; αληθής(συνθήκη συνθήκη); ναι όχι τερµατισµός

118 do - while do Π while E

119 Βρόχος µε συνθήκη εισόδου στη C,, οδηγούµενος από το γεγονός: while έναρξη while (συνθήκη( συνθήκη) { προτάσεις στις οποίες αλλάζει η συνθήκη; } { } αληθής(συνθήκη συνθήκη); ναι µπλοκ προτάσεων; όχι τερµατισµός

120 Βρόχος µε συνθήκη εισόδου στη C,, οδηγούµενος από το γεγονός: while Η λειτουργία της πρότασης επανάληψης while µπορεί να µορφοποιηθεί σε δοµηµένα Ελληνικά ως εξής: Έλεγξε τη συνθήκη. Εάν είναι αληθής Προχώρησε στις προτάσεις Ξεκίνησε από την αρχή Αλλιώς σταµάτησε

121 Βρόχος µε συνθήκη εισόδου στη C,, οδηγούµενος από το γεγονός: while Ο βρόχος while είναι κατάλληλος στις περιπτώσεις που δεν είναι γνωστός εκ των προτέρων ο αριθµός των επαναλήψεων. Εκτελείται καθόσον η συνθήκη παραµένει αληθής. Όταν η συνθήκη καταστεί ψευδής, ο έλεγχος του προγράµµατος παρακάµπτει το περιεχόµενο του βρόχου και προχωρά στην επόµενη εντολή. Θα πρέπει να σηµειωθεί ότι εάν το σώµα του βρόχου αποτελείται από µία πρόταση, δεν απαιτούνται {}. Ωστόσο προτείνεται η χρήση των αγκίστρων σε κάθε περίπτωση, ανεξάρτητα από τον αριθµό των προτάσεων που απαρτίζουν το σώµα του βρόχου.

122 Παράδειγµα: int count=30; int limit=40; while (count<limit) { count++; printf( count is %d\n,count); } <επόµενη πρόταση>; /*Εάν αρχικά η count=40, ο βρόχος δε θα εκτελείτο ούτε µία φορά.*/

123 Άσκηση: ίνονται οι παρακάτω δύο προτάσεις: (α) while (++count<12) Π1 και (β) while (count++<12) Π1. Να περιγραφεί ο τρόπος µε τονοποίοο υπολογιστής τις εκτελεί, εντοπίζοντας τη διαφορά τους, εάν υπάρχει. Λύση: Υπάρχει διαφορά µεταξύ των προτάσεων κι αυτή εντοπίζεται στον αριθµό επαναλήψεων. Η (α) χρησιµοποιεί την προθεµατική σηµειογραφία ενώ η (β) τη µεταθεµατική. Στην (α) πρόταση αυξάνεται πρώτα η τιµή τηςcount και η νέα τιµή της συγκρίνεται µε το12, ενώ στη (β) πρώτα συγκρίνεται η τιµή τηςcount µε το12 και στη συνέχεια αυξάνεται η τιµή της. Αυτό σηµαίνει πως η πρόταση Π1 θα εκτελεσθεί µία φορά παραπάνω στην περίπτωση (β).

124 Παράδειγµα: #include <stdio.h< stdio.h> void main () { char a='b'; while(a>40) { printf( ( "a=%c ASCII value=%d\n",a,a ); a=a-10; } }

125 Παράδειγµα: Να γραφεί πρόγραµµα πουναδιαβάζει µία σειρά χαρακτήρων από την είσοδο, να µετρά τα κενά και να τυπώνει τον αριθµό τους. #include <stdio.h< stdio.h> void main() { int num_spaces=0; char ch; printf( ( Give a sentence\n n ); ch=getchar getchar(); while (ch( ch!=!= \n ) { if (ch( ch== ) num_spaces++; ch=getchar getchar(); } printf( The number of spaces is %d\n,num_spaces% n,num_spaces); } //example_of_while

126 Aποτελέσµατα: Προγραµµατισµός ς Ι

127 Βρόχος µε συνθήκη εισόδου στη C, οδηγούµενος από µετρητή: for έναρξη for (αρχική; συνθήκη; µετρητής) { προτάσεις; } { } αληθής(συνθήκη συνθήκη); ναι µπλοκ προτάσεων; όχι τερµατισµός

128 Βρόχος µε συνθήκη εισόδου στη C, οδηγούµενος από µετρητή: for Η λειτουργία της πρότασης επανάληψης for µπορεί να µορφοποιηθεί σε δοµηµένα Ελληνικά ως εξής: Αρχικοποίησε το µετρητή Έλεγξε τη συνθήκη Εάν είναι αληθής Εκτέλεσε τις προτάσεις Ενηµέρωσε το µετρητή Επάνελθε στον έλεγχο της συνθήκης Αλλιώς ενηµέρωσε το µετρητή και σταµάτησε

129 Βρόχος µε συνθήκη εισόδου στη C, οδηγούµενος από µετρητή: for O βρόχος for στη γλώσσα C παρέχει µεγάλη ευελιξία καθώς οι εκφράσεις µέσα στις παρενθέσεις µπορούν να έχουν πολλές παραλλαγές: Μπορεί να χρησιµοποιηθεί ο τελεστής µείωσης για µέτρηση προς τα κάτω: for (n=10; n>0; n-n -) printf( ( "n=%d\n",n n",n ); Το βήµα καθορίζεται από το χρήστη: for (n=0; n<60; n=n+13) printf( ( "n=%d\n",n n",n ); Ο µετρητής µπορεί να αυξάνει κατά γεωµετρική πρόοδο: for (n=2; n<60.0; n=1.2*n) printf("n=% =%f\n",n );

130 Βρόχος µε συνθήκη εισόδου στη C, οδηγούµενος από µετρητή: for Χρησιµοποιώντας την ιδιότητα ότι κάθε χαρακτήρας του κώδικα ASCII έχει µία ακέραια τιµή, ο µετρητής µπορεί να είναι µεταβλητή χαρακτήρα. Το παρακάτω τµήµα κώδικα θα τυπώνει τους χαρακτήρες από το a έως το z µαζί µε τον ASCII κωδικό τους: for (n= a ; n< z ; n++) printf( "n=%d, the ASCII value is %d\n",n,n ); Θα πρέπει να σηµειωθεί ότι εάν το σώµα του βρόχου αποτελείται από µία πρόταση, δεν απαιτούνται {}. Ωστόσο προτείνεται η χρήση των αγκίστρων σε κάθε περίπτωση, ανεξάρτητα από τον αριθµό των προτάσεων που απαρτίζουν το σώµα του βρόχου.

131 Παράδειγµα: int count, max_count=30; for (count=1;count<max_count;count max_count;count+ +) { printf( count is %d\n,count% n,count); <άλλες προτάσεις>; } <επόµενη πρόταση>;

132 Παράδειγµα: Να γραφεί πρόγραµµα που να διαβάζει από την είσοδο ένα αλφαριθµητικό και το τυπώνει times φορές. #include <stdio.h< stdio.h> #define MAX_CHAR 80 void main() { εν απαιτείται & για τους πίνακες χαρακτήρων char str[max_char]; int i,times; printf( ( \nenter a string: ); scanf( ( %s,str ); printf( ( \nenter the number of repetitions: ); scanf( ( %d,&times ); for (i=0; i<times; i++) printf( ( %s\n,str ); }

133 Βρόχος µε συνθήκη εξόδου στη C, οδηγούµενος από γεγονός/µετρητή: do{}while() do { προτάσεις στις οποίες αλλάζει η συνθήκη; } while (συνθήκη); // εναλλακτικά η while µπορεί να τοποθετηθεί αµέσως µετά το } { } µπλοκ προτάσεων; αληθής(συνθήκη συνθήκη); ναι έναρξη όχι τερµατισµός

134 Βρόχος µε συνθήκη εξόδου στη C, οδηγούµενος από γεγονός/µετρητή: do{}while() Η λειτουργία της πρότασης επανάληψης do-while µπορεί να µορφοποιηθεί σε δοµηµένα Ελληνικά ως εξής: Εκτέλεσε τις προτάσεις Έλεγξε τη συνθήκη Εάν είναι αληθής Ξεκίνησε από την αρχή Αλλιώς σταµάτησε

135 Παράδειγµα: int count=30; int limit=40; do { count++; printf( count is %d\n,count% n,count); } while (count<limit); <επόµενη πρόταση>; /*Tο σώµα του βρόχου εκτελείται µία φορά έστω κι αν αρχικά count>=limit.*/

136 Ένθετοι βρόχοι (nested( loops) Φώλιασµα (nesting): Τοποθέτηση ενός βρόχου µέσα σε άλλον. Ο εσωτερικός βρόχος είναι µία πρόταση µέσα στον εξωτερικό. printf( \n ); for (i=0; i<4; i++) { for (j=0; j<3; j++) { } printf( %d.%d, i, j); } printf( \n ); Αποτέλεσµα: > 0,0 0,1 0,2 1,0 1,1 1,2 2,0 2,1 2,2 3,0 3,1 3,2 >

137 Παράδειγµα: Στο πρόγραµµα που ακολουθεί δηµιουργούνται ένθετοι βρόχοι, όπου χρησιµοποιούνται και τα τρία είδη προτάσεων επανάληψης: #include <stdio.h< stdio.h> Εξωτερικός βρόχος void main() { int i,j; float x; for (i=0;i<=2;i++) { x=0.0; Πρώτο επίπεδο ένθεσης while( x<2) { printf( ( "\ni" ni=%d x=%f",i,x ); x++; do { εύτερο επίπεδο ένθεσης printf( ( "\ngive" an integer: " ); scanf( ( "%d",&j ); } while (j<4); } // τέλος της while } // τέλος της for } // τέλος της main

138 Αποτελέσµατα έσµατα: Προγραµµατισµός ς Ι

139 while==for Είναι δυνατό να µετασχηµατισθεί ένας βρόχος FOR σε βρόχο WHILE; Ναι! for (init; cond; ; step) { } προτάσεις; init; while (cond( cond) { προτάσεις; step; };

Προγραμματισμός Ι. Θεματική ενότητα 4: Έλεγχος ροής Προτάσεις υπό συνθήκη διακλάδωσης

Προγραμματισμός Ι. Θεματική ενότητα 4: Έλεγχος ροής Προτάσεις υπό συνθήκη διακλάδωσης Θεματική ενότητα 4: Έλεγχος ροής Προτάσεις υπό συνθήκη διακλάδωσης Προτάσεις ελέγχου ροής Ο πιο συνηθισμένος τρόπος εκτέλεσης είναι ο ακολουθιακός: δύο ή περισσότερες προτάσεις βρίσκονται διατεταγμένες

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

Προγραμματισμός Ι. Θεματική ενότητα 2: Μεταβλητές σταθερές Ι/Ο κονσόλας

Προγραμματισμός Ι. Θεματική ενότητα 2: Μεταβλητές σταθερές Ι/Ο κονσόλας Θεματική ενότητα 2: Μεταβλητές σταθερές Ι/Ο κονσόλας Μεταβλητές Ίδια χρήση με εκείνη της άλγεβρας: 3x + 5 = y x και y είναι οι μεταβλητές Αλλά γενικευμένη: η μεταβλητή είναι μία θέση μνήμης για ένα δεδομένο.

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

Προγραμματισμός Ι. Θεματική ενότητα 3: Tελεστές. εκφράσεις

Προγραμματισμός Ι. Θεματική ενότητα 3: Tελεστές. εκφράσεις Θεματική ενότητα 3: Tελεστές εκφράσεις Τελεστές (operators) Εκφράσεις (expressions) Σύμβολα ή λέξεις που αναπαριστούν συγκεκριμένες διεργασίες, οι οποίες εκτελούνται πάνω σε ένα ή περισσότερα δεδομένα.

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

Διδάσκων: Δημήτριος Βαρσάμης

Διδάσκων: Δημήτριος Βαρσάμης Διδάσκων: Δημήτριος Βαρσάμης dvarsam@teicm.gr http://teachers.teicm.gr/dvarsam/ Διανεμόμενα συγγράμματα: Εισαγωγή Βασικά στοιχεία προγράμματος Τι είναι ο υπολογιστής; Οι κανόνες αποτελούν την καρδιά της

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

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

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

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

Τμήμα Πληροφορικής & Επικοινωνιών Δρ. Θεόδωρος Γ. Λάντζος

Τμήμα Πληροφορικής & Επικοινωνιών Δρ. Θεόδωρος Γ. Λάντζος Τμήμα Πληροφορικής & Επικοινωνιών Δρ. Θεόδωρος Γ. Λάντζος http://www.teiser.gr/icd/staff/lantzos lantzos@teiser.gr 1 Πώς δημιουργούμε πρόγραμμα Η/Υ; 1. Ανάλυση του προβλήματος 2. Επινόηση & Σχεδιασμός

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

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

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

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

ΤΕΧΝΟΛΟΓΙΚΟ ΕΚΠΑΙΔΕΥΤΙΚΟ ΙΔΡΥΜΑ ΚΕΝΤΡΙΚΗΣ ΜΑΚΕΔΟΝΙΑΣ ΣΧΟΛΗ ΤΕΧΝΟΛΟΓΙΚΩΝ ΕΦΑΡΜΟΓΩΝ ΤΜΗΜΑ ΜΗΧΑΝΙΚΩΝ ΠΛΗΡΟΦΟΡΙΚΗΣ ΤΕ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ I

ΤΕΧΝΟΛΟΓΙΚΟ ΕΚΠΑΙΔΕΥΤΙΚΟ ΙΔΡΥΜΑ ΚΕΝΤΡΙΚΗΣ ΜΑΚΕΔΟΝΙΑΣ ΣΧΟΛΗ ΤΕΧΝΟΛΟΓΙΚΩΝ ΕΦΑΡΜΟΓΩΝ ΤΜΗΜΑ ΜΗΧΑΝΙΚΩΝ ΠΛΗΡΟΦΟΡΙΚΗΣ ΤΕ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ I Τίτλος Μαθήματος ΤΕΧΝΟΛΟΓΙΚΟ ΕΚΠΑΙΔΕΥΤΙΚΟ ΙΔΡΥΜΑ ΚΕΝΤΡΙΚΗΣ ΜΑΚΕΔΟΝΙΑΣ ΣΧΟΛΗ ΤΕΧΝΟΛΟΓΙΚΩΝ ΕΦΑΡΜΟΓΩΝ ΤΜΗΜΑ ΜΗΧΑΝΙΚΩΝ ΠΛΗΡΟΦΟΡΙΚΗΣ ΤΕ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ I ΠΑΡΙΣ ΜΑΣΤΟΡΟΚΩΣΤΑΣ Καθηγητής ΣΕΡΡΕΣ, ΣΕΠΤΕΜΒΡΙΟΣ 2015

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

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

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

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

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

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

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

Προγραμματισμός Ι. Προτάσεις επανάληψης βρόχοι

Προγραμματισμός Ι. Προτάσεις επανάληψης βρόχοι Προτάσεις επανάληψης βρόχοι Προτάσεις επανάληψης - γενικά Οι προτάσεις επανάληψης επαναλαμβάνουν ένα μπλοκ προτάσεων είτε για όσες φορές το επιθυμούμε είτε έως ότου πληρωθεί μία συνθήκη τερματισμού. Η

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

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

Δομημένος Προγραμματισμός (ΤΛ1006) Τεχνολογικό Εκπαιδευτικό Ίδρυμα Κρήτης Σχολή Εφαρμοσμένων Επιστημών Τμήμα Ηλεκτρονικών Μηχανικών Τομέας Αυτοματισμού και Πληροφορικής Δομημένος Προγραμματισμός (ΤΛ1006) Δρ. Μηχ. Νικόλαος Πετράκης, Καθηγητής

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

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

ΤΕΧΝΟΛΟΓΙΑ ΚΑΙ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΥΠΟΛΟΓΙΣΤΩΝ ΠΑΝΕΠΙΣΤΗΜΙΟ ΠΑΤΡΩΝ ΠΟΛΥΤΕΧΝΙΚΗ ΣΧΟΛΗ ΤΜΗΜΑ ΜΗΧΑΝΙΚΩΝ Η/Υ ΚΑΙ ΠΛΗΡΟΦΟΡΙΚΗΣ ΤΕΧΝΟΛΟΓΙΑ ΚΑΙ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΥΠΟΛΟΓΙΣΤΩΝ ΠΑΝΕΠΙΣΤΗΜΙΟ ΠΑΤΡΩΝ ΠΟΛΥΤΕΧΝΙΚΗ ΣΧΟΛΗ ΤΜΗΜΑ ΜΗΧΑΝΙΚΩΝ Η/Υ ΚΑΙ ΠΛΗΡΟΦΟΡΙΚΗΣ Τελεστές - Κατηγορίες Εκφράσεις - Κατηγορίες Υπολογισμός εκφράσεων Προτάσεις - Κατηγορίες

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

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

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

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

Προγραμματισμός I (Θ)

Προγραμματισμός I (Θ) Τεχνολογικό Εκπαιδευτικό Ίδρυμα Κεντρικής Μακεδονίας - Σέρρες Τμήμα Μηχανικών Πληροφορικής Προγραμματισμός I (Θ) Δρ. Δημήτρης Βαρσάμης Επίκουρος Καθηγητής Οκτώβριος 2017 Δρ. Δημήτρης Βαρσάμης Οκτώβριος

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

Ανάπτυξη και Σχεδίαση Λογισμικού

Ανάπτυξη και Σχεδίαση Λογισμικού Ανάπτυξη και Σχεδίαση Λογισμικού Η γλώσσα προγραμματισμού C Γεώργιος Δημητρίου Βασικά Στοιχεία Το αλφάβητο της C Οι βασικοί τύποι της C Δηλώσεις μεταβλητών Είσοδος/Έξοδος Βασικές εντολές της C Αλφάβητο

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

TEI Σερρών - Τμήμα Πληροφορικής & Επικοινωνιών

TEI Σερρών - Τμήμα Πληροφορικής & Επικοινωνιών Τμήμα Πληροφορικής & Επικοινωνιών Τομέας Υπολογιστικών Τεχνικών & Συστημάτων Διαδικαστικός Προγραμματισμός Δρ. Πάρις Μαστοροκώστας Αναπληρωτής Καθηγητής Σέρρες 2006 ΠΕΡΙΕΧΟΜΕΝΑ Περιεχόμενα i Κεφάλαιο 1:

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

Τμήμα Πληροφορικής & Επικοινωνιών Δρ. Θεόδωρος Γ. Λάντζος http://www.teiser.gr/icd/staff/lantzos lantzos@teiser.gr

Τμήμα Πληροφορικής & Επικοινωνιών Δρ. Θεόδωρος Γ. Λάντζος http://www.teiser.gr/icd/staff/lantzos lantzos@teiser.gr Τμήμα Πληροφορικής & Επικοινωνιών Δρ. Θεόδωρος Γ. Λάντζος http://www.teiser.gr/icd/staff/lantzos lantzos@teiser.gr 1 Βρόχοι Επανάληψη (Loop) Η επανάληψη ενός συνόλου εντολών για όσες φορές επιθυμούμε ή

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

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

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

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

Προγραμματισμός Η/Υ. Ενότητα 2β: Εισαγωγή στη C (Μέρος Δεύτερο)

Προγραμματισμός Η/Υ. Ενότητα 2β: Εισαγωγή στη C (Μέρος Δεύτερο) Προγραμματισμός Η/Υ Ενότητα 2β: Νίκος Καρακαπιλίδης, Καθηγητής Δημήτρης Σαραβάνος, Καθηγητής Πολυτεχνική Σχολή Τμήμα Μηχανολόγων & Αεροναυπηγών Μηχανικών Σκοποί ενότητας Κατανόηση της έννοιας του Τελεστή

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

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

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

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

Στόχοι και αντικείμενο ενότητας. Προτάσεις επανάληψης. Έλεγχος ροής προγράμματος. #5.. Εντολές Επανάληψης

Στόχοι και αντικείμενο ενότητας. Προτάσεις επανάληψης. Έλεγχος ροής προγράμματος. #5.. Εντολές Επανάληψης Στόχοι και αντικείμενο ενότητας Έλεγχος ροής προγράμματος (βλ. ενότητα #4) Δομή επανάληψης #5.. Εντολές Επανάληψης Προτάσεις επανάληψης Εντολές while, do while Εντολή for Περί βρόχων (loops) Τελεστές,

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

ΗΥ-150. Προγραµµατισµός. Εντολές Ελέγχου Ροής

ΗΥ-150. Προγραµµατισµός. Εντολές Ελέγχου Ροής ΗΥ-150 Εντολές Ελέγχου Ροής Σειριακή εκτέλεση εντολών Όλα τα προγράµµατα «γράφονται» χρησιµοποιώντας 3 είδη εντολών: Σειριακές εντολές (sequential built in C) Εντολές απόφασης (if, if/else, switch) Περιλαµβάνει

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

Ερωτήσεις αυτοαξιολόγησης τετραπλής επιλογής για το μάθημα Προγραμματισμός I.

Ερωτήσεις αυτοαξιολόγησης τετραπλής επιλογής για το μάθημα Προγραμματισμός I. Ερωτήσεις αυτοαξιολόγησης τετραπλής επιλογής για το μάθημα Προγραμματισμός I. (1) Η γλώσσα C αποτελεί: (α) Γλώσσα προγραμματισμού υψηλού επιπέδου (β) Γλώσσα μηχανής (γ) Γλώσσα assembly (δ) Τίποτε από τα

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

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

ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΥΠΟΛΟΓΙΣΤΩΝ & ΥΠΟΛΟΓΙΣΤΙΚΗ ΦΥΣΙΚΗ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΥΠΟΛΟΓΙΣΤΩΝ & ΥΠΟΛΟΓΙΣΤΙΚΗ ΦΥΣΙΚΗ Μέρος 2ο ΝΙΚΟΛΑΟΣ ΣΤΕΡΓΙΟΥΛΑΣ ΤΜΗΜΑ ΦΥΣΙΚΗΣ ΑΡΙΣΤΟΤΕΛΕΙΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΕΣΣΑΛΟΝΙΚΗΣ 1 ΣΦΑΛΜΑΤΑ ΜΕΤΑΓΛΩΤΤΙΣΗΣ Η γλώσσα C κάνει αυστηρή διάκριση μεταξύ πεζών

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

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

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

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

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

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

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

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

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

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

Τμήμα Πληροφορικής & Επικοινωνιών Δρ. Θεόδωρος Γ. Λάντζος

Τμήμα Πληροφορικής & Επικοινωνιών Δρ. Θεόδωρος Γ. Λάντζος Τμήμα Πληροφορικής & Επικοινωνιών Δρ. Θεόδωρος Γ. Λάντζος http://www.teiser.gr/icd/staff/lantzos lantzos@teiser.gr Κανόνες Ομαλής Λειτουργίας Ερχόμαστε στην ώρα μας Δεν καπνίζουμε και τρώμε εντός της αίθουσας

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

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

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

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

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

ΕΙΣΑΓΩΓΗ ΣΤΟΝ ΔΟΜΗΜΕΝΟ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟ Πανεπιστήμιο Δυτικής Μακεδονίας Τμήμα Μηχανικών Πληροφορικής και Τηλεπικοινωνιών ΕΙΣΑΓΩΓΗ ΣΤΟΝ ΔΟΜΗΜΕΝΟ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟ Συντακτικό της γλώσσας C Μεταβλητές Σταθερές Τύποι Δεδομένων Τελεστές Εκφράσεις Προτάσεις

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

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

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

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

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

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

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

C: Από τη Θεωρία στην Εφαρµογή 2 ο Κεφάλαιο

C: Από τη Θεωρία στην Εφαρµογή 2 ο Κεφάλαιο C: Από τη Θεωρία στην Εφαρµογή Κεφάλαιο 2 ο Τύποι Δεδοµένων Δήλωση Μεταβλητών Έξοδος Δεδοµένων Γ. Σ. Τσελίκης Ν. Δ. Τσελίκας Μνήµη και Μεταβλητές Σχέση Μνήµης Υπολογιστή και Μεταβλητών Η µνήµη (RAM) ενός

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

Εισαγωγή στον προγραμματισμό. Τμήμα Πληροφορικής & Επικοινωνιών ΤΕΙ Σερρών Εργαστήριο 2

Εισαγωγή στον προγραμματισμό. Τμήμα Πληροφορικής & Επικοινωνιών ΤΕΙ Σερρών Εργαστήριο 2 Εισαγωγή στον προγραμματισμό Τμήμα Πληροφορικής & Επικοινωνιών ΤΕΙ Σερρών Εργαστήριο 2 Δομή Προγράμματος Όλα τα προγράμματα που γράψαμε έχουν λίγο πολύ την ακόλουθη μορφή: Κάποιος κώδικας εδώ main( ) {

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

Τμήμα Πληροφορικής & Επικοινωνιών Δρ. Θεόδωρος Γ. Λάντζος

Τμήμα Πληροφορικής & Επικοινωνιών Δρ. Θεόδωρος Γ. Λάντζος Τμήμα Πληροφορικής & Επικοινωνιών Δρ. Θεόδωρος Γ. Λάντζος http://www.teiser.gr/icd/staff/lantzos lantzos@teiser.gr Κανόνες Ομαλής Λειτουργίας Ερχόμαστε στην ώρα μας Δεν καπνίζουμε και τρώμε εντός της αίθουσας

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

Στην ενότητα αυτή θα µελετηθούν τα εξής επιµέρους θέµατα: ΕΠΛ 131 Αρχές Προγραµµατισµού I 3-2

Στην ενότητα αυτή θα µελετηθούν τα εξής επιµέρους θέµατα: ΕΠΛ 131 Αρχές Προγραµµατισµού I 3-2 Εισαγωγή στην C Στην ενότητα αυτή θα µελετηθούν τα εξής επιµέρους θέµατα: Σύνταξη και Σηµασιολογία της C Σχολιασµός Μεταβλητές / Σταθερές Τύποι εδοµένων και Τελεστές Βιβλίο µαθήµατος: Chapter 2,, Sec.

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

Προγραμματισμός I (Θ)

Προγραμματισμός I (Θ) Τεχνολογικό Εκπαιδευτικό Ίδρυμα Κεντρικής Μακεδονίας - Σέρρες Τμήμα Μηχανικών Πληροφορικής Προγραμματισμός I (Θ) Δρ. Δημήτρης Βαρσάμης Επίκουρος Καθηγητής Οκτώβριος 2017 Δρ. Δημήτρης Βαρσάμης Οκτώβριος

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

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

Προγραμματισμός Υπολογιστών & Υπολογιστική Φυσική ΑΡΙΣΤΟΤΕΛΕΙΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΕΣΣΑΛΟΝΙΚΗΣ ΑΝΟΙΚΤΑ ΑΚΑΔΗΜΑΪΚΑ ΜΑΘΗΜΑΤΑ Προγραμματισμός Υπολογιστών & Υπολογιστική Φυσική Ενότητα 2: Μεταβλητές και Σταθερές Νικόλαος Στεργιούλας Τμήμα Φυσικής Άδειες Χρήσης

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

Εισαγωγή στον δομημένο προγραμματισμό

Εισαγωγή στον δομημένο προγραμματισμό Τμήμα Μηχανικών Πληροφορικής & Τηλεπικοινωνιών Εισαγωγή στον δομημένο προγραμματισμό Ενότητα 2 η : Συντακτικό της γλώσσας C, Μεταβλητές Σταθερές Τύποι Δεδομένων Τελεστές Εκφράσεις Προτάσεις Αν. καθηγητής

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

Στόχοι και αντικείμενο ενότητας. Συντακτικό Γλώσσας. Αλφάβητο. #2.. Εισαγωγή στη C (Μέρος Πρώτο)

Στόχοι και αντικείμενο ενότητας. Συντακτικό Γλώσσας. Αλφάβητο. #2.. Εισαγωγή στη C (Μέρος Πρώτο) Στόχοι και αντικείμενο ενότητας Στοιχεία της Γλώσσας Προγραμματισμού C Αλφάβητο Συντακτικό Γλώσσας Λεξιλόγιο #2.. Εισαγωγή στη C (Μέρος Πρώτο) Οι έννοιες της Μεταβλητής και της Σταθεράς Τύποι Δεδομένων

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

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

Δομημένος Προγραμματισμός Ανοικτά Ακαδημαϊκά Μαθήματα στο ΤΕΙ Ιονίων Νήσων Δομημένος Προγραμματισμός Ενότητα 4: Εντολές ελέγχου ροής Το περιεχόμενο του μαθήματος διατίθεται με άδεια Creative Commons εκτός και αν αναφέρεται διαφορετικά

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

ΗΥ-150. Προγραμματισμός

ΗΥ-150. Προγραμματισμός ΗΥ-150 Εντολές Ελέγχου Ροής Σειριακή εκτέλεση εντολών Όλα τα προγράμματα «γράφονται» χρησιμοποιώντας 3 είδη εντολών: Σειριακές εντολές (sequential built in C) Εντολές απόφασης (if, if/else, switch) Περιλαμβάνει

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

Διάλεξη 3: Προγραμματισμός σε JAVA I. Διδάσκων: Παναγιώτης Ανδρέου

Διάλεξη 3: Προγραμματισμός σε JAVA I. Διδάσκων: Παναγιώτης Ανδρέου Διάλεξη 3: Προγραμματισμός σε JAVA I Στην ενότητα αυτή θα μελετηθούν τα εξής επιμέρους θέματα: Εισαγωγή στις έννοιες: - Στοιχειώδης Προγραμματισμός - Προγραμματισμός με Συνθήκες - Προγραμματισμός με Βρόγχους

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

ΗΥ-150. Προγραμματισμός

ΗΥ-150. Προγραμματισμός ΗΥ-150 Εντολές Ελέγχου Ροής Σειριακή εκτέλεση εντολών Όλα τα προγράμματα «γράφονται» χρησιμοποιώντας 3 είδη εντολών: Σειριακές εντολές (sequential built in C) Εντολές απόφασης (if, if/else, switch) Περιλαμβάνει

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

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

Εισαγωγή στον Προγραμματισμό Εισαγωγή στον Προγραμματισμό Αριθμητική Δημήτρης Μιχαήλ Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο Ακ. Έτος 2012-2013 Δεύτερο Πρόγραμμα 1 / * Second Simple Program : add 2 numbers * / 2

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

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

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

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

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

Εισαγωγή στην Πληροφορική Ανοικτά Ακαδημαϊκά Μαθήματα στο ΤΕΙ Ιονίων Νήσων Εισαγωγή στην Πληροφορική Ενότητα 6: Αλγόριθμοι / Προγραμματισμός Το περιεχόμενο του μαθήματος διατίθεται με άδεια Creative Commons εκτός και αν αναφέρεται

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

Οικονόμου Βαγγέλησ Διάλεξη Νο 2. Δομημένοσ Προγραμματιςμόσ - Διάλεξη 2

Οικονόμου Βαγγέλησ Διάλεξη Νο 2. Δομημένοσ Προγραμματιςμόσ - Διάλεξη 2 Οικονόμου Βαγγέλησ Διάλεξη Νο 2 Δομημένοσ Προγραμματιςμόσ - Διάλεξη 2 1 Η έννοια τησ μεταβλητήσ έδωςε λύςη ςτο πρόβλημα τησ αναφοράσ ςτην κύρια μνήμη του υπολογιςτή. Οι γλώςςεσ προγραμματιςμού υποςτηρίζουν

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

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

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

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

a = 10; a = k; int a,b,c; a = b = c = 10;

a = 10; a = k; int a,b,c; a = b = c = 10; C: Από τη Θεωρία στην Εφαρµογή Κεφάλαιο 4 ο Τελεστές Γ. Σ. Τσελίκης Ν. Δ. Τσελίκας Ο τελεστής εκχώρησης = Ο τελεστής = χρησιµοποιείται για την απόδοση τιµής (ή αλλιώς ανάθεση τιµής) σε µία µεταβλητή Π.χ.

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

Προγραμματισμός Η/Υ. Ενότητα 5: Εντολές Επανάληψης

Προγραμματισμός Η/Υ. Ενότητα 5: Εντολές Επανάληψης Προγραμματισμός Η/Υ Ενότητα 5: Νίκος Καρακαπιλίδης, Καθηγητής Δημήτρης Σαραβάνος, Καθηγητής Πολυτεχνική Σχολή Τμήμα Μηχανολόγων & Αεροναυπηγών Μηχανικών Σκοποί ενότητας Έλεγχος της ροής του προγράμματος

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

Προγραμματισμός Η/Υ. Ενότητα 2α: Εισαγωγή στη C (Μέρος Πρώτο)

Προγραμματισμός Η/Υ. Ενότητα 2α: Εισαγωγή στη C (Μέρος Πρώτο) Προγραμματισμός Η/Υ Ενότητα 2α: Νίκος Καρακαπιλίδης, Καθηγητής Δημήτρης Σαραβάνος, Καθηγητής Πολυτεχνική Σχολή Τμήμα Μηχανολόγων & Αεροναυπηγών Μηχανικών Σκοποί ενότητας Αναφορά στις λέξεις κλειδιά που

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

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

Εισαγωγή στον Προγραμματισμό Εισαγωγή στον Προγραμματισμό Ενότητα 5 Δομές Ελέγχου Πανεπιστήμιο Αιγαίου Τμήμα Μηχανικών Πληροφοριακών και Επικοινωνιακών Συστημάτων Δομές Ελέγχου Οι Boehm και Jacopini απέδειξαν ότι οποιοσδήποτε αλγόριθμος

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

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

Προγραμματισμός Ι (ΗΥ120) Προγραμματισμός Ι (ΗΥ120) Διάλεξη 3: Είσοδος / Έξοδος, Βασικοί Τύποι, Δήλωση Μεταβλητών Ένα Ακόμα Παράδειγμα #include int main(int argc, char* argv[]) { } putchar('h'); putchar('e'); putchar('l');

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

Κεφάλαιο 4: Συνθήκες Έλεγχου (if-else, switch) και Λογικοί τελεστές / παραστάσεις. (Διάλεξη 8)

Κεφάλαιο 4: Συνθήκες Έλεγχου (if-else, switch) και Λογικοί τελεστές / παραστάσεις. (Διάλεξη 8) Κεφάλαιο 4: Συνθήκες Έλεγχου (if-else, switch) και Λογικοί τελεστές / παραστάσεις (Διάλεξη 8) 8-1 Τι θα δούμε σήμερα Η εντολή if else Η εντολή if else ιf - -else H εντολή switch Λογικές παραστάσεις Σχεσιακοί

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

ΣΥΝΟΠΤΙΚΟΣ ΟΔΗΓΟΣ ΓΛΩΣΣΑΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ C

ΣΥΝΟΠΤΙΚΟΣ ΟΔΗΓΟΣ ΓΛΩΣΣΑΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ C ΣΥΝΟΠΤΙΚΟΣ ΟΔΗΓΟΣ ΓΛΩΣΣΑΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ C 1 Εισαγωγή Ο προγραμματισμός είναι μια διαδικασία επίλυσης προβλημάτων με χρήση Η/Υ. Ένα πρόγραμμα είναι ένα σύνολο εντολών κάποιας γλώσσας προγραμματισμού,

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

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

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

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

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

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

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

Ασκήσεις σε Επαναληπτικούς Βρόχους και Συναρτήσεις. Επανάληψη για την ενδιάμεση εξέταση. (Διάλεξη 13)

Ασκήσεις σε Επαναληπτικούς Βρόχους και Συναρτήσεις. Επανάληψη για την ενδιάμεση εξέταση. (Διάλεξη 13) Ασκήσεις σε Επαναληπτικούς Βρόχους και Συναρτήσεις Επανάληψη για την ενδιάμεση εξέταση (Διάλεξη 13) 13-1 Πρόβλημα 1 Γράψετε τον ορισμό μίας συνάρτησης η οποία υπολογίζει το μέγιστο 2 ακεραίων αριθμών και

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

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

ΤΕΧΝΟΛΟΓΙΑ ΚΑΙ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΥΠΟΛΟΓΙΣΤΩΝ ΠΑΝΕΠΙΣΤΗΜΙΟ ΠΑΤΡΩΝ ΠΟΛΥΤΕΧΝΙΚΗ ΣΧΟΛΗ ΤΜΗΜΑ ΜΗΧΑΝΙΚΩΝ Η/Υ ΚΑΙ ΠΛΗΡΟΦΟΡΙΚΗΣ ΤΕΧΝΟΛΟΓΙΑ ΚΑΙ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΥΠΟΛΟΓΙΣΤΩΝ ΠΑΝΕΠΙΣΤΗΜΙΟ ΠΑΤΡΩΝ ΠΟΛΥΤΕΧΝΙΚΗ ΣΧΟΛΗ ΤΜΗΜΑ ΜΗΧΑΝΙΚΩΝ Η/Υ ΚΑΙ ΠΛΗΡΟΦΟΡΙΚΗΣ Έλεγχος ροής Δομή επιλογής (if, switch) Δομές επανάληψης (while, do-while, for) Διακλάδωση

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

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

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

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

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

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

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

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

ΔΟΜΗΜΕΝΟΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ 23 ΔΟΜΗΜΕΝΟΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ Μάθημα 2ο Τμήμα Διοίκησης Επιχειρήσεων α εξάμηνο Β. Φερεντίνος I/O 24 Βασική βιβλιοθήκη συναρτήσεων εισόδου/εξόδου #include Η συνάρτηση εξόδου printf printf("συμβολοσειρά

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

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

ΕΙΣΑΓΩΓΗ ΣΤΟΝ ΔΟΜΗΜΕΝΟ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟ Πανεπιστήμιο Δυτικής Μακεδονίας Τμήμα Μηχανικών Πληροφορικής και Τηλεπικοινωνιών ΕΙΣΑΓΩΓΗ ΣΤΟΝ ΔΟΜΗΜΕΝΟ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟ Διαμόρφωση Ελέγχου Ροής Προγράμματος Δομημένος Προγραμματισμός Ο πιο απλός και συνηθισμένος

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

Η Γλώσσα C Μία Σφαιρική Ανασκόπηση

Η Γλώσσα C Μία Σφαιρική Ανασκόπηση Η Γλώσσα C Μία Σφαιρική Ανασκόπηση Η γλώσσα C αναπτύχθηκε το 1972 από τον Dennis Ritchie στα ΑΤ & Τ Laboratories. Οδηγίες προς τον προεπεξεργαστή Εισδοχή Βιβλιοθηκών #include #include

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

Οι εντολές ελέγχου της ροής ενός προγράμματος.

Οι εντολές ελέγχου της ροής ενός προγράμματος. Κεφάλαιο ΙΙI: Οι εντολές ελέγχου της ροής ενός προγράμματος 31 Εντολές ελέγχου της ροής Στο παρόν κεφάλαιο ασχολούμαστε με την σύνταξη των εντολών της C οι οποίες εισάγουν λογική και ελέγχουν την ροή εκτέλεσης

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

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

Η γλώσσα προγραμματισμού C Η γλώσσα προγραμματισμού C Συναρτήσεις εισόδου/εξόδου, τελεστές Η συνάρτηση scanf() είσοδος δεδομένων Διαβάζει από το πληκτρολόγιο (stdin) μορφοποιημένες τιμές μεταβλητών. scanf (ΣΕΙΡΑ_ΕΛΕΓΧΟΥ, δείκτης_μεταβλητής-1,

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

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

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

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

Δεδομένα, Τύποι και Τιμές

Δεδομένα, Τύποι και Τιμές Προγραμματισμός Η/Υ Ι Δεδομένα, Τύποι και Τιμές ΕΛΕΥΘΕΡΙΟΣ ΚΟΣΜΑΣ ΕΑΡΙΝΟ ΕΞΑΜΗΝΟ 2018-2019 ΤΜΗΜΑ ΗΛΕΚΤΡΟΛΟΓΩΝ ΜΗΧΑΝΙΚΩΝ Τ.Ε. 1 Περίληψη Οι περισσότερες προγραμματιστικές εργασίες περιλαμβάνουν χειρισμό

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

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

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

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

ΠΑΝΕΠΙΣΤΗΜΙΟ AΙΓΑIΟΥ & ΑΕΙ ΠΕΙΡΑΙΑ Τ.Τ. Τμήματα Ναυτιλίας και Επιχειρηματικών Υπηρεσιών & Μηχ. Αυτοματισμού ΤΕ. Εισαγωγή στη Python

ΠΑΝΕΠΙΣΤΗΜΙΟ AΙΓΑIΟΥ & ΑΕΙ ΠΕΙΡΑΙΑ Τ.Τ. Τμήματα Ναυτιλίας και Επιχειρηματικών Υπηρεσιών & Μηχ. Αυτοματισμού ΤΕ. Εισαγωγή στη Python ΠΑΝΕΠΙΣΤΗΜΙΟ AΙΓΑIΟΥ & ΑΕΙ ΠΕΙΡΑΙΑ Τ.Τ. Τμήματα Ναυτιλίας και Επιχειρηματικών Υπηρεσιών & Μηχ. Αυτοματισμού ΤΕ ΠΛΗΡΟΦΟΡΙΚΗ ΤΕΧΝΟΛΟΓΙΑ ΚΑΙ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ Η/Υ Εισαγωγή στη Python Νικόλαος Ζ. Ζάχαρης Αναπληρωτής

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

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

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

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

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

ΕΙΣΑΓΩΓΗ ΣΤΟ ΔΟΜΗΜΕΝΟ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟ ΕΙΣΑΓΩΓΗ ΣΤΟ ΔΟΜΗΜΕΝΟ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟ Δεύτερη Διάλεξη Βασικά στοιχεία της γλώσσας προγραμματισμού C Μία γλώσσα προγραμματισμού όπως και μια ανθρώπινη γλώσσα μπορεί να μελετηθεί ως προς το αλφάβητό της,

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

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

Προγραμματισμός Ι (ΗΥ120) Προγραμματισμός Ι (ΗΥ120) Διάλεξη 3: Είσοδος / Έξοδος, Βασικοί Τύποι, Δήλωση Μεταβλητών Βασικοί τύποι της C 2 Όνομα Τύπος / Κωδικοποίηση Μέγεθος (bytes) char Χαρακτήρας 1 int Ακέραιος 2 ή 4 (*) float Πραγματικός

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

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

Εργαστήριο 2ο. Περίγραμμα Εργαστηριακής Άσκησης Γλώσσες Προγραμματισμού Εργαστήριο 2ο Τύποι Δεδομένων - Είσοδος / Έξοδος Εργαστήριο 2ο Περίγραμμα Εργαστηριακής Άσκησης Εργαστήριο 2ο...1 Θεωρία εργαστηρίου...2 Τύποι δεδομένων...2 Η συνάρτηση printf()...3

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

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

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

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

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

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

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

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

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

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

for for for for( . */

for for for for( . */ Εισαγωγή Στον Προγραµµατισµό «C» Βρόχοι Επανάληψης Πανεπιστήµιο Πελοποννήσου Τµήµα Πληροφορικής & Τηλεπικοινωνιών Νικόλαος Δ. Τσελίκας Νικόλαος Προγραµµατισµός Δ. Τσελίκας Ι Ο βρόχος for Η εντολή for χρησιµοποιείται

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

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

ΑΡΧΕΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ ΑΡΧΕΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ Κεφάλαιο 2 Επιμέλεια: Βασίλης Παλιουράς, Αναπληρωτής Καθηγητής Ευάγγελος Δερματάς, Αναπληρωτής Καθηγητής Σταύρος Νούσιας, Βοηθός Ερευνητή Πολυτεχνική Σχολή Τμήμα Ηλεκτρολόγων Μηχανικών

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

Αρχές Προγραμματισμού

Αρχές Προγραμματισμού Αρχές Προγραμματισμού https://eclass.upatras.gr/courses/ee806/index.php Βασίλης Παλιουράς paliuras@ece.upatras.gr Μέχρι τώρα... Οργάνωση Προγράμματος C Ενέργειες -> ρήματα (συντακτικό) -> συναρτήσεις Δεδομένα

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

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

Δομημένος Προγραμματισμός Ανοικτά Ακαδημαϊκά Μαθήματα στο ΤΕΙ Ιονίων Νήσων Δομημένος Προγραμματισμός Ενότητα 2: Τύποι μεταβλητών Το περιεχόμενο του μαθήματος διατίθεται με άδεια Creative Commons εκτός και αν αναφέρεται διαφορετικά

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

8. Συνθήκες ελέγχου, λογικοί τελεστές

8. Συνθήκες ελέγχου, λογικοί τελεστές Προγραμματισμός Μεθόδων Επίλυσης Προβλημάτων 8. Συνθήκες ελέγχου, λογικοί τελεστές Ιωάννης Κατάκης Σήμερα o Λογικές παραστάσεις Σχεσιακοί τελεστές Λογικοί τελεστές o if -else o switch Λογικές παραστάσεις

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

Προγραμματισμός Η/Υ. Ενότητα 4: Εντολές Επιλογής

Προγραμματισμός Η/Υ. Ενότητα 4: Εντολές Επιλογής Προγραμματισμός Η/Υ Ενότητα 4: Νίκος Καρακαπιλίδης, Καθηγητής Δημήτρης Σαραβάνος, Καθηγητής Πολυτεχνική Σχολή Τμήμα Μηχανολόγων & Αεροναυπηγών Μηχανικών Σκοποί ενότητας Έλεγχος της ροής ενός προγράμματος

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

Προγραμματισμός Ι. Χαρακτήρες. Πανεπιστήμιο Πελοποννήσου Τμήμα Πληροφορικής & Τηλεπικοινωνιών

Προγραμματισμός Ι. Χαρακτήρες. Πανεπιστήμιο Πελοποννήσου Τμήμα Πληροφορικής & Τηλεπικοινωνιών Χαρακτήρες Πανεπιστήμιο Πελοποννήσου Τμήμα Πληροφορικής & Τηλεπικοινωνιών Νικόλαος Προγραμματισμός Δ. Τσελίκας Ι Χαρακτήρες - Εισαγωγή Έως τώρα έχουμε κατά κύριο λόγο χρησιμοποιήσει τους αριθμητικούς τύπους

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

2.1. Εντολές. 2.2. Σχόλια. 2.3. Τύποι Δεδομένων

2.1. Εντολές. 2.2. Σχόλια. 2.3. Τύποι Δεδομένων 2 Βασικές Εντολές 2.1. Εντολές Οι στην Java ακολουθούν το πρότυπο της γλώσσας C. Έτσι, κάθε εντολή που γράφουμε στη Java θα πρέπει να τελειώνει με το ερωτηματικό (;). Όπως και η C έτσι και η Java επιτρέπει

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

Υπολογισμός - Εντολές Επανάληψης

Υπολογισμός - Εντολές Επανάληψης Προγραμματισμός Η/Υ Ι Υπολογισμός - Εντολές Επανάληψης ΕΛΕΥΘΕΡΙΟΣ ΚΟΣΜΑΣ ΕΑΡΙΝΟ ΕΞΑΜΗΝΟ 2018-2019 ΤΜΗΜΑ ΗΛΕΚΤΡΟΛΟΓΩΝ ΜΗΧΑΝΙΚΩΝ Τ.Ε. 1 Περίληψη Σήμερα... θα συνεχίσουμε τη συζήτησή μας για τα βασικά στοιχεία

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

Υπολογισμός - Εντολές Ελέγχου

Υπολογισμός - Εντολές Ελέγχου Προγραμματισμός Η/Υ Ι Υπολογισμός - Εντολές Ελέγχου ΕΛΕΥΘΕΡΙΟΣ ΚΟΣΜΑΣ ΕΑΡΙΝΟ ΕΞΑΜΗΝΟ 2018-2019 ΤΜΗΜΑ ΗΛΕΚΤΡΟΛΟΓΩΝ ΜΗΧΑΝΙΚΩΝ Τ.Ε. 1 Περίληψη Σήμερα... θα συνεχίσουμε τη συζήτησή μας για τα βασικά στοιχεία

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

int array[10]; double arr[5]; char pin[20]; Προγραµµατισµός Ι

int array[10]; double arr[5]; char pin[20]; Προγραµµατισµός Ι Εισαγωγή Στον Προγραµµατισµό «C» Πίνακες Πανεπιστήµιο Πελοποννήσου Τµήµα Πληροφορικής & Τηλεπικοινωνιών Νικόλαος Δ. Τσελίκας Νικόλαος Προγραµµατισµός Δ. Τσελίκας Ι Πίνακες στη C Ένας πίνακας στη C είναι

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

3.1 Αριθμητικοί και Λογικοί Τελεστές, Μετατροπές Τύπου (Casting)

3.1 Αριθμητικοί και Λογικοί Τελεστές, Μετατροπές Τύπου (Casting) Εργαστήριο 3: 3.1 Αριθμητικοί και Λογικοί Τελεστές, Μετατροπές Τύπου (Casting) Η C++, όπως όλες οι γλώσσες προγραμματισμού, χρησιμοποιεί τελεστές για να εκτελέσει τις αριθμητικές και λογικές λειτουργίες.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Δομημένος Προγραμματισμός (ΤΛ1006) Τεχνολογικό Εκπαιδευτικό Ίδρυμα Κρήτης Σχολή Εφαρμοσμένων Επιστημών Τμήμα Ηλεκτρονικών Μηχανικών Τομέας Αυτοματισμού και Πληροφορικής Δομημένος Προγραμματισμός (ΤΛ1006) Δρ. Μηχ. Νικόλαος Πετράκης, Καθηγητής

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

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

Δομημένος Προγραμματισμός (ΤΛ1006) Τεχνολογικό Εκπαιδευτικό Ίδρυμα Κρήτης Σχολή Εφαρμοσμένων Επιστημών Τμήμα Ηλεκτρονικών Μηχανικών Τομέας Αυτοματισμού και Πληροφορικής Δομημένος Προγραμματισμός (ΤΛ1006) Δρ. Μηχ. Νικόλαος Πετράκης, Καθηγητής

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

Διαδικασία Ανάπτυξης Λογισμικού

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

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

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

Εισαγωγή στην γλώσσα προγραμματισμού C Εισαγωγή στην γλώσσα προγραμματισμού C Χαρακτηριστικά της C Ιδιαίτερα δημοφιλής Έχει χρησιμοποιηθεί για τον προγραμματισμό ευρέος φάσματος συστημάτων και εφαρμογών Γλώσσα μετρίου επιπέδου Φιλοσοφία: Ο

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

Στόχοι και αντικείμενο ενότητας. Βασικές κατασκευές ΓΠ. Έλεγχος ροής προγράμματος. #4.. Εντολές Επιλογής

Στόχοι και αντικείμενο ενότητας. Βασικές κατασκευές ΓΠ. Έλεγχος ροής προγράμματος. #4.. Εντολές Επιλογής Στόχοι και αντικείμενο ενότητας Βασικές κατασκευές Γλωσσών Προγραμματισμού (ΓΠ) Δομές ελέγχου ροής προγράμματος #4.. ντολές πιλογής Προτάσεις διακλάδωσης υπό συνθήκη ντολές if, if Φωλιασμένα (nested) if

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