Κεφάλαιο. Εισαγωγή. Ενδεικτικές. σελίδες

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

Download "Κεφάλαιο. Εισαγωγή. Ενδεικτικές. σελίδες"

Transcript

1

2 Κεφάλαιο Εισαγωγή

3 Η γλώσσα C σε βάθος Εισαγωγή Οκτώβριος του Ως µεταπτυχιακός φοιτητής, γνώρισα µια δεκαοχτάχρονη αµερικανιδούλα που την έλεγαν BCPL. H σχέση µας κράτησε ένα χρόνο περίπου. Ευέλικτη αλλά δύστροπη. ύσκολο να την κατανοήσεις και δυσκολότερο να τη χειριστείς. Την επόµενη χρονιά µού γνώρισε τη µικρότερη αδελφή της, τη C. Από την πρώτη στιγµή µε εντυπωσίασε, είχε πιο δοµηµένη σκέψη, ήταν τροµερά ευέλικτη και πολύ πιο φιλική. Η γνωριµία αυτή δεν άργησε να εξελιχθεί σε ένα µεγάλο έρωτα, ο οποίος κρατάει ακόµη και σήµερα. Από τότε συνάντησα και άλλες πολλές, πολύ πιο νέες και εµφανίσιµες, µε πολλές δυνατότητες και προσόντα, έµεινα όµως πάντα πιστός στη µεσήλικα πια αγάπη µου, τη C. Ευτυχώς που είναι µόνο... µια γλώσσα προγραµµατισµού! Και όµως, η πολύχρονη αυτή σχέση είχε και έναν καρπό, την παραγωγή πλούσιου εκπαιδευτικού υλικού που χρησιµοποιήθηκε όλα αυτά τα χρόνια για τη διδασκαλία της γλώσσας C και το οποίο αποτέλεσε τη βάση για τη συγγραφή αυτού του βιβλίου. Το βιβλίο αυτό απευθύνεται τόσο στον αρχάριο όσο και στον έµπειρο προγραµµατιστή που θέλει να γνωρίσει τις αρχές και τη φιλοσοφία του δοµηµένου προγραµµατισµού, µέσα από µια ευέλικτη και χωρίς όρια γλώσσα όπως η C. Με ιδιαίτερο τρόπο προσεγγίζονται όλα τα χαρακτηριστικά της γλώσσας και δίνεται έµφαση στην αναλυτική και σε βάθος επεξήγηση των "στρυφνών" της σηµείων. Μεγάλο βάρος έχει δοθεί στη διδακτική σειρά αυτού του βιβλίου, ώστε η ανάγνωση και η κατανόηση ενός κεφαλαίου να προϋποθέτει µόνο τις γνώσεις που αποκτήθηκαν στα προηγούµενα κεφάλαια. Πώς να διαβάσετε αυτό το βιβλίο Αν είστε γνώστης µιας οποιασδήποτε άλλης γλώσσας προγραµµατισµού µπορείτε να παραλείψετε το Κεφάλαιο 1 και να προχωρήσετε κατευθείαν στο επό- µενο κεφάλαιο. Το Κεφάλαιο 2 είναι µια µικρή "περιοδεία" στη γλώσσα. Γίνεται µια πρώτη γνωριµία, ώστε να αποκτήσετε µια σφαιρική εικόνα από τη δοµή και τα χαρα- 20

4 Κεφάλαιο 1: Εισαγωγή ("στάνταρ") εγκατάστασή της "βιβλιοθήκες" µε κάθε είδους συναρτήσεις για είσοδο-έξοδο, χειρισµό χαρακτήρων, χειρισµό αρχείων, γραφικών κ.λπ. C Μια δοµηµένη γλώσσα Το διακριτικό χαρακτηριστικό µιας δοµηµένης γλώσσας προγραµµατισµού είναι η δυνατότητα για τµηµατικό χειρισµό (modularity) του προγράµµατος, µε τρόπο ώστε κάθε τµήµα να µπορεί να "κρύβει" τον κώδικα και τις πληροφορίες που περιέχει από το υπόλοιπο πρόγραµµα. Η C ενθαρρύνει τη χρήση ξεχωριστών συναρτήσεων (υποπρογραµµάτων) για κάθε συγκεκριµένη λειτουργία του προγράµµατος. Κάθε συνάρτηση (function) µπορεί να έχει τις δικές της τοπικές µεταβλητές (local variables), οι οποίες είναι "κρυµµένες" από το υπόλοιπο πρόγραµµα. C Μια γλώσσα για προγραµµατιστές Η C παρέχει στον πραγµατικό επαγγελµατία προγραµµατιστή αυτό που ακριβώς ζητάει: Λίγους περιορισµούς και µεγάλη ευελιξία υνατότητα για δοµηµένα προγράµµατα Λίγες αλλά ισχυρά δοµηµένες εντολές Η C έχει όµως και απαιτήσεις. Η έλλειψη περιορισµών και το γεγονός ότι υ- πάρχει µικρός βαθµός ελέγχου λαθών, αναγκάζουν τον προγραµµατιστή να είναι πολύ προσεκτικός και να ελέγχει, µέσα από τον κώδικα του προγράµµατος, πράγµατα που ελέγχονται αυτόµατα από άλλες γλώσσες προγραµµατισµού. Ένα χαρακτηριστικό παράδειγµα είναι ότι αν έχουµε ένα πίνακα 100 θέσεων µπορούµε κάλλιστα να προσπελάσουµε τη θέση 105!!! Τώρα το τι θα βρούµε εκεί µέσα και το τι παρενέργειες θα υπάρξουν, αφήστε το για αργότερα. C Μια µεταφραστική γλώσσα Όλες οι γλώσσες προγραµµατισµού (εκτός από τη γλώσσα µηχανής), και ανάλογα µε τη φιλοσοφία µε την οποία µεταφράζουν το πηγαίο πρόγραµµα σε γλώσσα µηχανής, παρουσιάζονται είτε σε ερµηνευτική (interpreter's), είτε σε µεταγλωττιζόµενη (compiler's) µορφή. 23

5 Η γλώσσα C σε βάθος Η BASIC π.χ. είναι µια γλώσσα που συχνά τη συναντούµε σε ερµηνευτική µορφή. Αντίθετα η C είναι πάντα σε µεταγλωττιζόµενη µορφή. Στο σχήµα που ακολουθεί βλέπετε µια απλοποιηµένη διαδικασία µεταγλωττισµού µέσω µεταγλωττιστή (compiler). Το αρχείο που περιέχει τον πηγαίο κώδικα του προγράµµατος (source code) µπορεί να δηµιουργηθεί µε οποιονδήποτε επεξεργαστή κειµένου ή µέσα από το ολοκληρωµένο περιβάλλον της γλώσσας (αν η έκδοση της γλώσσας διαθέτει τέτοιο περιβάλλον). Κατά τη διάρκεια της µεταγλώττισης (compile time), ο µεταγλωττιστής εντοπίζει τυχόν συντακτικά λάθη που υπάρχουν στον πηγαίο κώδικα. Εφόσον ο µεταγλωττιστής δεν εντοπίσει κανένα λάθος, θα δηµιουργήσει ένα αρχείο που περιέχει τον εκτελέσιµο κώδικα (executable code), δηλαδή πρόγραµµα σε γλώσσα µηχανής, άµεσα εκτελέσιµο από τον Η/Υ. Στην πραγµατικότητα, η διαδικασία της µεταγλώττισης είναι λίγο διαφορετική, ιδίως όταν γίνεται χρήση βιβλιοθηκών στην οποία θα αναφερθούµε αναλυτικά στο αντίστοιχο κεφάλαιο. Βασικές έννοιες του προγραµµατισµού Το τµήµα αυτό απευθύνεται στους αρχάριους στον προγραµµατισµό. Αναφέρει και εξηγεί βασικές έννοιες του προγραµµατισµού, απαραίτητες για τον αναγνώστη που έρχεται πρώτη φορά σε επαφή µε µια γλώσσα προγραµµατισµού. Κάθε πρόγραµµα, αναπτυγµένο σε οποιαδήποτε γλώσσα προγραµµατισµού, επεξεργάζεται δεδοµένα και δίνει αποτελέσµατα. Η επεξεργασία των δεδοµένων γίνεται πάντα µε έναν προκαθορισµένο τρόπο (αλγόριθµο). Τα συστατικά που συνθέτουν ένα απλό πρόγραµµα είναι οι µεταβλητές, οι σταθερές, και οι εντολές. Μεταβλητές Τα δεδοµένα, οι ενδιάµεσες πράξεις, αλλά και τα αποτελέσµατα ενός προγράµ- µατος αποθηκεύονται στην κεντρική µνήµη (RAM) του Η/Υ. Η διαχείριση της µνήµης είναι βασικό µέληµα µιας γλώσσας προγραµµατισµού. 24

6 Η γλώσσα C σε βάθος Παραδείγματα Π1.1 Ας υποθέσουμε ότι θέλουμε να παίξουμε ένα παιχνίδι στο οποίο κάποιος βάζει έναν τυχαίο αριθμό στο μυαλό του και εμείς προσπαθούμε να τον βρούμε. Λέμε συνέχεια αριθμούς στον παίκτη και αυτός μας α- παντά αν ο κρυφός αριθμός είναι μεγαλύτερος ή μικρότερος. Το παιχνίδι τελειώνει μόλις βρούμε τον αριθμό. Το λογικό διάγραμμα απεικονίζει τη διαδικασία του παιχνιδιού. Μια μικρή παραλλαγή του παιχνιδιού, στην ο- ποία μόλις βρεθεί ο αριθμός ο παίκτης μάς ρωτάει αν θέλουμε να ξαναπαίξουμε, φαίνεται στο διπλανό λογικό διάγραμμα. Στην περίπτωση που α- παντήσουμε ΝΑΙ, τότε ο παίκτης βάζει έναν άλλο αριθμό στο μυαλό του και το παιχνίδι ξαναρχίζει. Στην περίπτωση που απαντήσουμε αρνητικά το παιχνίδι σταματάει. 32

7 Κεφάλαιο 1: Εισαγωγή Π1.2 Η διαδικασία που απεικονίζει το διπλανό λογικό διάγραµµα, ζητάει συνέχεια αριθµούς και εµφανίζει στο τέλος το συνολικό τους άθροισµα. Η διαδικασία σταµατάει όταν δοθεί ο αριθµός 0. Σκεφτείτε τις τροποποιήσεις που θα πρέπει να γίνουν ώστε η διαδικασία να σταµατάει όταν δοθούν 100 αριθµοί. Ανασκόπηση Κεφαλαίου 1 Η C είναι µια µεταγλωττιζόµενη γλώσσα τα χαρακτηριστικά της οποίας ευνοούν το δοµηµένο και τµηµατικό προγραµµατισµό. Η C είναι µια "λιτή" γλώσσα, η οποία για τις περισσότερες λειτουργίες της βασίζεται στις συναρτήσεις βιβλιοθήκης που τη συνοδεύουν. Τα διαφορετικά είδη δεδοµένων που µπορεί να χειριστεί µια γλώσσα λέγονται τύποι δεδοµένων. Οι βασικοί τύποι δεδοµένων που υποστηρίζει η C είναι τρείς: int, char και float. Μια µεταβλητή είναι το όνοµα µιας θέσης µνήµης, της οποίας η τιµή µπορεί να µεταβάλλεται. Το λογικό διάγραµµα είναι ένας εποπτικός τρόπος παρουσίασης µιας διαδικασίας ή ενός προγράµµατος και συµβάλλει στην κατανόησή του. Το λογικό διάγραµµα χρησιµοποιεί συγκεκριµένα, αλλά διαφορετικά, γεωµετρικά σχήµατα για να απεικονίσει τις διαδικασίες ανάλογα µε το είδος τους. Το λογικό διάγραµµα είναι ανεξάρτητο από οποιαδήποτε γλώσσα προγραµµατισµού. 33

8 Κεφάλαιο Μια πρώτη µατιά στη C

9 Η γλώσσα C σε βάθος Μια πρώτη µατιά στη C Στο κεφάλαιο αυτό ξεκινά µια µικρή "περιοδεία" στη γλώσσα C. Γίνεται µια πρώτη γνωριµία, ώστε να αποκτήσει ο αναγνώστης µια σφαιρική εικόνα της δοµής και των χαρακτηριστικών της γλώσσας. Τα περισσότερα από όσα αναφέρονται στο παρόν κεφάλαιο θα εξεταστούν ξανά και πιο αναλυτικά στα επόµενα κεφάλαια. Το πρώτο σας πρόγραµµα στη C Έφτασε η ώρα να γράψετε το πρώτο σας πρόγραµµα στη C, το οποίο δεν θα µπορούσε να είναι άλλο από το κλασικό "Hello world". #include <stdio.h> main() printf("hello world"); Το πρόγραµµα αποτελείται µόνο από µία συνάρτηση, τη main() και εµφανίζει στην οθόνη τη φράση Hello world. Παρακάτω επεξηγούνται µία-µία οι προτάσεις του προγράµµατος. #include <stdio.h> Η πρόταση αυτή αναγκάζει το µεταγλωττιστή της C να συµπεριλάβει το αρχείο stdio.h κατά τη διαδικασία της µεταγλώττισης. Το αρχείο αυτό περιέχει τις δηλώσεις των συναρτήσεων εισόδου/εξόδου της C. Για να µπορέσουµε να χρησιµοποιήσουµε οποιαδήποτε από αυτές τις λειτουργίες εισόδου/εξόδου στο πρόγραµµά µας (π.χ. τη συνάρτηση printf () που ακολουθεί), θα πρέπει οπωσδήποτε 3 να συµπεριληφθεί (#include) το συγκεκρι- µένο αρχείο. main() Η συνάρτηση main() είναι υποχρεωτική σε κάθε πρόγραµµα της C. Στην περίπτωση που το πρόγραµµά µας έχει µόνο µία συνάρτηση, αυτή πρέπει 3 Αρκετά ολοκληρωµένα περιβάλλοντα ανάπτυξης (IDE) συµπεριλαµβάνουν κατά τη διαδικασία της µεταγλώττισης συνηθισµένα αρχεία κεφαλίδας ακόµα και αν δεν έχουν ορισθεί ρητά στον κώδικα του προγράµµατος. Αυτό έχει σαν αποτέλεσµα να επιτρέπουν τη χρήση µερικών συναρτήσεων ακόµη και αν ο προγραµµατιστής δεν έχει συµπεριλάβει το αρχείο κεφαλίδας στο οποίο δηλώνονται. 38

10 Κεφάλαιο 2: Μια πρώτη µατιά στη C να είναι η main(). Αν το πρόγραµµά µας περιέχει περισσότερες από µία συναρτήσεις, η main() είναι η πρώτη που εκτελείται. Η αριστερή αγκύλη σηµατοδοτεί την αρχή των προτάσεων της συνάρτησης main(). printf("hello world"); Η συνάρτηση printf() χρησιµοποιείται για την έξοδο πληροφοριών στην οθόνη. Στη συγκεκριµένη περίπτωση θα εµφανίσει το κείµενο "Hello world". Η δεξιά αγκύλη σηµατοδοτεί το τέλος των προτάσεων της συνάρτησης main(). Στη συνέχεια του βιβλίου, σε πολλά παραδείγµατα, χάριν συντοµίας η πρόταση #include <stdio.h> µπορεί να παραλείπεται και να εµφανίζεται µόνο η συνάρτηση main(). Αν θέλουµε να χρησιµοποιήσουµε τον κώδικα στην πράξη, η πρόταση αυτή θα πρέπει να προστεθεί πριν από τη main(). Προσοχή, τα κενά διαστήµατα και οι αλλαγές γραµµής δεν λαµβάνονται υπόψη από τον µεταγλωττιστή της C. Εποµένως το παραπάνω πρόγραµµα θα µπορούσε, χωρίς κανένα πρόβληµα, να γραφεί ως εξής: #include <stdio.h> main() printf("hello world"); Η δοµή ενός προγράµµατος στη C Ένα απλό πρόγραµµα στη C αποτελείται συνήθως από 3 βασικά τµήµατα: Μία συνάρτηση µε όνοµα main(): Αυτή η συνάρτηση είναι αυτή που καλείται και εκτελείται πρώτη. Κάθε πρόγραµµα πρέπει να έχει µία και µόνο µία συνάρτηση main(). Η συνάρτηση main(), όπως και κάθε συνάρτηση της C, έχει την παρακάτω µορφή: main() 39

11 Κεφάλαιο 2: Μια πρώτη µατιά στη C Η παράσταση a = rand() έχει ως αποτέλεσµα την καταχώριση ενός τυχαίου αριθµού στη µεταβλητή a. Η πρόταση rand(); καλεί τη συνάρτηση rand() που επιστρέφει έναν τυχαίο αριθµό, ο οποίος όµως χάνεται. Ουσιαστικά αυτή η πρόταση είναι άχρηστη. Η τελευταία πρόταση αποτελείται από µια παράσταση, όχι και τόσο παράλογη αν αναλογιστούµε τη διαφορετική φιλοσοφία της C: Η συνάρτηση printf("tέλος") επιστρέφει την τιµή 5 (το πλήθος των χαρακτήρων που εµφάνισε). Το 10 (από 5+5) καταχωρίζεται στην a και η όλη παράσταση επιστρέφει τιµή 10. Tο 14 (από 10+4) καταχωρίζεται στη µεταβλητή b. Η όλη παράσταση επιστρέφει τιµή 14, η οποία δεν χρησι- µοποιείται. Η σειρά εκτέλεσης των πράξεων θα γίνει ξεκάθαρη όταν θα αναφερθούµε στην προτεραιότητα των τελεστών στο κεφάλαιο 4 (σελίδα 91). Ανασκόπηση Κεφαλαίου 2 Κάθε πρόγραµµα της C περιέχει υποχρεωτικά µία συνάρτηση main() η οποία είναι εκείνη που εκτελείται πρώτη. Κάθε πρόγραµµα της C µπορεί να περιέχει και άλλες συναρτήσεις, εκτός από τη main(), οι οποίες για να εκτελεστούν πρέπει να κληθούν. Κάθε µεταβλητή που χρησιµοποιείται πρέπει να δηλώνεται. Οι δηλωτικές προτάσεις των µεταβλητών τοποθετούνται στην αρχή µιας συνάρτησης και πριν από τις εκτελέσιµες προτάσεις. Οι βασικοί τύποι µεταβλητών στη C είναι ο τύπος char, ο τύπος int, και ο τύπος float. 57

12 Η γλώσσα C σε βάθος Οι αριθμητικές παραστάσεις είναι πράξεις μεταξύ αριθμητικών δεδομένων και έχουν αποτέλεσμα έναν αριθμό. Οι λογικές παραστάσεις χρησιμοποιούν συγκριτικούς και λογικούς τελεστές και έχουν αποτέλεσμα αλήθεια (τιμή 1) ή ψέμα (τιμή 0). Ο τελεστής = καταχωρίζει το αποτέλεσμα της παράστασης στα δεξιά του στη μεταβλητή που βρίσκεται αριστερά του, π.χ. a=b+3 Μια σύνθετη πρόταση αποτελείται από απλές προτάσεις μέσα σε αριστερή και δεξιά αγκύλη. Ασκήσεις Κεφαλαίου Τι θα περιέχουν οι μεταβλητές a, b, και c μετά το τέλος του παρακάτω κώδικα: main() int a,b,c=3; a=b=2; a=c+b; 2.2 Τι θα περιέχουν οι μεταβλητές a, b, και c μετά το τέλος του παρακάτω κώδικα: #define MM 23 main() const int c=3; int a,b; a=4+(b=2); b=c+b+mm; 58

13 Κεφάλαιο Προετοιµασία για αργότερα

14 Η γλώσσα C σε βάθος Προετοιµασία για αργότερα Η C και η µνήµη Όπως αναφέρθηκε και προηγουµένως, η C χειρίζεται τρεις βασικούς τύπους µεταβλητών: int, float, και char. Φανταζόµαστε την κάθε µεταβλητή σαν ένα κουτί µε ένα όνοµα και κάποιο περιεχόµενο. Οι µεταβλητές καταλαµβάνουν χώρο στη µνήµη RAM του Η/Υ, αλλά γνωρίζουµε ότι κάθε θέση µνήµης RAM έχει µέγεθος 1 byte. Κάθε λοιπόν µεταβλητή του προγράµµατος καταλαµβάνει ακριβώς τον ίδιο χώρο στη µνήµη του Η/Υ; ΟΧΙ βέβαια. Κάθε µεταβλητή καταλαµβάνει έναν αριθµό θέσεων µνήµης (byte), ο οποίος εξαρτάται από τον τύπο της µεταβλητής και από τον τύπο του συστήµατος Η/Υ στο ο- ποίο δουλεύουµε. Στα συστήµατα προσωπικών Η/Υ που βασίζονται στους επεξεργαστές 32bit της INTEL, η µεταβλητή τύπου int καταλαµβάνει τέσσερα bytes, η float επίσης τέσσερα, και η char ένα byte. Αργότερα θα αναφερθούµε και σε άλλους τύπους µεταβλητών (που στηρίζονται πάντως στους τρεις βασικούς) µε διαφορετικά µεγέθη σε byte. Ας θεωρήσουµε τέσσερις µεταβλητές, οι οποίες δηλώνονται µε τις παρακάτω προτάσεις: char a,gramma; float pososto; int b; Στο διπλανό σχήµα φαίνεται εποπτικά η µνήµη ενός Η/Υ σαν ένα σύνολο από 62

15 Κεφάλαιο 3: Προετοιµασία για αργότερα κουτιά (θέσεις µνήµης) το ένα πάνω από το άλλο. Το κάθε κουτί έχει µέγεθος ενός byte και διαθέτει έναν αύξοντα αριθµό (ο αριθµός στα δεξιά) ο οποίος α- ποτελεί τη "διεύθυνση" του κουτιού µέσα στη µνήµη. Κάθε µεταβλητή που δηλώνεται, δεσµεύει κάποιες θέσεις µνήµης ανάλογα µε τον τύπο της. Έτσι η a δεσµεύει µία θέση (την 1), όπως δεσµεύουν και η gramma µία θέση (την 8), η pososto τέσσερις (τις 3,4,5, και 6), και η b επίσης τέσσερις (τις , , , και ). Πέρα λοιπόν από το όνοµα και το περιεχόµενο µιας µεταβλητής, έννοιες που είναι ήδη γνωστές, συναντούµε εδώ δύο νέες έννοιες: της διεύθυνσης και του µεγέθους µιας µεταβλητής. ιεύθυνση µιας µεταβλητής είναι η διεύθυνση του πρώτου byte των θέσεων (ή της θέσης) µνήµης που δεσµεύει η µεταβλητή. Έτσι, οι διευθύνσεις των παραπάνω µεταβλητών είναι: a b pososto gramma Μέγεθος µιας µεταβλητής είναι ο αριθµός των bytes που δεσµεύει αυτή η µεταβλητή και καθορίζεται από τον τύπο της. Η C διαθέτει τελεστές, οι οποίοι επιστρέφουν τη διεύθυνση και το µέγεθος µιας µεταβλητής. Ο τελεστής & Ο τελεστής & επιστρέφει έναν ακέραιο αριθµό, ο οποίος προσδιορίζει τη διεύθυνση µιας µεταβλητής. Έτσι, σύµφωνα µε το προηγούµενο σχήµα, η παράσταση &a επιστρέφει τιµή 1 και η παράσταση &gramma τιµή 8. Η διεύθυνση µιας θέσης µνήµης, στα συστήµατα προσωπικών Η/Υ που βασίζονται στους επεξεργαστές 32bit της INTEL, είναι πάντα ένας αριθµός µεγέθους 4 bytes ο οποίος συνήθως αναπαρίσταται σε δεκαεξαδική µορφή. 63

16 Κεφάλαιο 3: Προετοιµασία για αργότερα Η συνάρτηση scanf() Η C επίσης, δεν διαθέτει εντολές εισόδου για την ανάγνωση δεδοµένων από το πληκτρολόγιο. Η διαδικασία αυτή υλοποιείται µε τη χρήση συναρτήσεων βιβλιοθήκης. Η πιο πλήρης συνάρτηση γι αυτή τη λειτουργία είναι η συνάρτηση scanf() µε την οποία διαβάζει δεδοµένα από το πληκτρολόγιο και τα καταχωρίζει σε µεταβλητές του προγράµµατος. Στη συνάρτηση καθορίζεται ο τρόπος και ο τύπος των δεδοµένων που θα αναγνωστούν, καθώς και οι διευθύνσεις των µεταβλητών στις οποίες θα καταχωριστούν. Η σύνταξη της scanf() είναι σχεδόν ίδια µε της printf(): scanf("αλφαριθητικό µορφοποίησης", διε1, διε2, διε3,..., διεn); όπου, το αλφαριθητικό µορφοποίησης (format string) καθορίζει τον τρόπο µε τον οποίο πρέπει να δοθούν τα δεδοµένα καθώς και τον τύπο τους. Το αλφαριθητικό µορφοποίησης περιέχει τριών ειδών πληροφορίες: Ειδικά σύµβολα για την ανάγνωση των τιµών που θα ανατεθούν στις µεταβλητές, µε τις διευθύνσεις που ακολουθούν (διε1~διεn). %c για έναν απλό χαρακτήρα %d για ακέραιο αριθµό %f για δεκαδικό αριθµό και άλλα σύµβολα που θα αναφερθούν αργότερα. Χαρακτήρες διαστήµατος. Αναγκάζουν τη scanf() να διαβάσει και να αγνοήσει ένα ή περισσότερα κενά διαστήµατα ή χαρακτήρες αλλαγής γραµµής, στη σειρά των δεδοµένων που πληκτρολογούνται. Για παράδειγ- µα, το αλφαριθµητικό µορφοποίησης: "%d %d" διαβάζει δύο ακέραιους, αγνοώντας τα µεταξύ τους κενά και τους χαρακτήρες αλλαγής γραµµής (αν υπάρχουν). Άλλους χαρακτήρες. Αναγκάζουν τη scanf() να διαβάσει και να αγνοήσει ένα συγκεκριµένο χαρακτήρα. Αν ο χαρακτήρας δεν βρεθεί, η scanf() τερ- µατίζει. Για παράδειγµα, το αλφαριθµητικό µορφοποίησης: "%d,%d" 67

17 Η γλώσσα C σε βάθος Παραδείγµατα Π3.1 Το παρακάτω πρόγραµµα ζητάει τρεις βαθµούς ενός µαθητή και υπολογίζει το µέσο όρο τους. Αν ο µέσος όρος είναι µεγαλύτερος ή ίσος µε 10, εµφανίζει "Πέρασες µε βαθµό ##", διαφορετικά εµφανίζει "Κόπηκες" (στη θέση του ## εµφανίζεται ο µέσος όρος). #include <stdio.h> 3_p3_1.c main() int b1,b2,b3; Η scanf() διαβάζει από το πληκτρολόγιο τρεις ακεραίους αριθ- float mo; printf(" ώσε τρεις βαθµούς:"); µούς τους οποίους καταχωρίζει στις µεταβλητές b1,b2 και b3. scanf("%d %d %d",&b1,&b2,&b3); mo=(b1+b2+b3)/3.0; Υπολογισµός του µέσου όρου. if(mo>=10) printf("πέρασες µε βαθµό %f\n",mo); else Έλεγχος του µέσου όρου και printf("κόπηκες\n"); εµφάνιση του κατάλληλου µηνύ- µατος. Π3.2 Το παρακάτω πρόγραµµα έχει λάθη: main() int a,b,c; float d; scanf("%d %d",a,b); int k; scanf("%c",&c); if(c==1) printf("nai\n"); else printf("oxi\n"); Η scanf() χρειάζεται τις διευθύνσεις των µεταβλητών. Θα έπρεπε να ήταν &a,&b. εν µπορεί να υπάρχει δηλωτική πρόταση µετά από εκτελέσιµες. Εφόσον ζητείται ακέραιος αριθ- µός, το αλφαριθµητικό µορφοποίησης θα πρέπει να είναι %d. 72

18 Κεφάλαιο 3: Προετοιµασία για αργότερα Ασκήσεις Κεφαλαίου Να γραφεί ένα πρόγραµµα το οποίο να ζητάει τρεις δεκαδικούς αριθµούς, να υπολογίζει, και να εµφανίζει το µέσο όρο τους. 3.2 Τι αποτέλεσµα θα έχει το επόµενο πρόγραµµα; main() int a=4,b=5; char ch; ch='a'; printf("%d %d %c",a,b,ch); printf("%d %d %d\n",a,b,ch); printf("%d\n%d \n%c\n",a,b,ch); printf("τέλος\n"); 3.3 Να γραφεί πρόγραµµα το οποίο να ζητάει 3 αριθµούς και να υπολογίζει το άθροισµα, το γινόµενο, και το µέσο όρο τους. Το ώσε τον πρώτο αριθµό: 6 πρόγραµµα να µας βγάζει ώσε τον δεύτερο αριθµό: 2 ώσε τον τρίτο αριθµό: 10 µηνύµατα για το τι πρέπει Το άθροισµα των 6,2,10 είναι 18 να δώσουµε και να βγάζει Το γινόµενο των 6,2,10 είναι 120 τα αποτελέσµατα όπως Ο µέσος όρος των 6,2,10 είναι 6 στο διπλανό παράδειγµα. 3.4 Τι αποτέλεσµα θα έχει το παρακάτω πρόγραµµα; main() int a,b; float f; char ch; printf("%d %d %d\n",sizeof a,sizeof f,sizeof ch); 75

19 Κεφάλαιο Ο τύπος δεδοµένων int

20 Η γλώσσα C σε βάθος Ο τύπος δεδοµένων int Το κεφάλαιο αυτό εισάγει και αναλύει τον τρόπο χρήσης των ακεραίων (integer) στη γλώσσα C. Στο κεφάλαιο αυτό εξετάζεται η εσωτερική απεικόνιση των ακέραιων σταθερών και µεταβλητών, καθώς και οι τελεστές που εφαρ- µόζονται σε ακέραια µεγέθη. Πολλοί από αυτούς τους τελεστές εφαρµόζονται και σε άλλους τύπους δεδοµένων. Σταθερές τύπου int Οι ακέραιες σταθερές δεν είναι τίποτε άλλο από απλοί ακέραιοι αριθµοί. Μια ακέραια σταθερά αποθηκεύεται στη µνήµη αφού µετατραπεί σε δυαδικό αριθµό. Μια σταθερά τύπου int µετατρέπεται σε ένα δυαδικό αριθµό µήκους 4 bytes. Με 4 bytes µπορεί να αναπαρασταθεί αριθµός από µέχρι Το bit υπ' αριθµόν 31 (τα 32 bits αριθµούνται από το 0 έως το 31) χρησιµοποιείται για το πρόσηµο και τα υπόλοιπα 31 για την αναπαράσταση του αριθµού. Μεταβλητές τύπου int Η C διαθέτει, πέρα από τον τύπο int που έχουµε ήδη αναφέρει, άλλους δυο τύπους ακέραιων µεταβλητών: long int και short int. Οι µεταβλητές τύπου int δηλώνονται ως εξής: int όνοµα_µεταβλητής1, όνοµα_µεταβλητής2,...; Οι µεταβλητές τύπου long int δηλώνονται ως εξής: long int όνοµα_µεταβλητής1, όνοµα_µεταβλητής2,...; ή 80

21 Κεφάλαιο 4: Ο τύπος δεδοµένων int long όνοµα_µεταβλητής1, όνοµα_µεταβλητής2,...; Στην πρόταση δήλωσης η λέξη int µπορεί να παραλειφθεί, αλλά για λόγους σαφήνειας αυτό δεν συνιστάται. Οι µεταβλητές τύπου short int δηλώνονται ως εξής: short int όνοµα_µεταβλητής1, όνοµα_µεταβλητής2,...; ή short όνοµα_µεταβλητής1, όνοµα_µεταβλητής2,...; Οι µεταβλητές τύπου int και long int δεσµεύουν 4 bytes 5 (32 bits) και µπορούν να αποθηκεύσουν έναν ακέραιο αριθµό από µέχρι Οι µεταβλητές τύπου short int δεσµεύουν 2 bytes (16 bits) και µπορούν να αποθηκεύσουν έναν ακέραιο αριθµό από µέχρι Ακέραιοι χωρίς πρόσηµο (unsigned) Μια µεταβλητή τύπου int (int, long int ή short int) µπορεί να ορισθεί ότι δεν θα περιέχει πρόσηµο, χρησιµοποιώντας το προσδιοριστικό unsigned πριν από το όνοµα του τύπου, όπως παρακάτω: unsigned int όνοµα_µεταβλητής1, όνοµα_µεταβλητής2,...; ή unsigned long int όνοµα_µεταβλητής1, όνοµα_µεταβλητής2,...; ή unsigned short int όνοµα_µεταβλητής1, όνοµα_µεταβλητής2,...; ή Οι µεταβλητές τύπου unsigned δεσµεύουν τα ίδια bytes µε τις αντίστοιχες προσηµασµένες µεταβλητές. Όµως, σε µια µεταβλητή τέτοιου τύπου το πρώτο bit του αριθµού δεν χρησιµοποιείται για το πρόσηµο, αλλά συµµετέχει στην απεικόνιση του αριθµού. Εποµένως, σε µεταβλητές τύπου unsigned µπορούν να αποθηκευτούν µόνο θετικοί αριθµοί, αλλά µε διπλάσια απόλυτη τιµή (από τους αντίστοιχους προσηµασµένους). Αρχική τιµή µεταβλητής Όταν δηλώνουµε µια µεταβλητή, µπορούµε ταυτόχρονα να της δώσουµε αρχική τιµή. Για παράδειγµα, στην παρακάτω πρόταση: 5 Σε παλαιότερα συστήµατα 16bit, οι µεταβλητές τύπου int καταλαµβάνουν 2 bytes, ενώ οι long int 4. 81

22 Η γλώσσα C σε βάθος int a=4,b=8; γίνεται δήλωση δύο µεταβλητών a και b, στις οποίες ανατίθενται ταυτόχρονα οι τιµές 4 και 8 αντίστοιχα. Αριθµητικοί τελεστές Εκτός από τους "κλασικούς" αριθµητικούς τελεστές, η C διαθέτει και µερικούς τελεστές οι οποίοι δεν συναντώνται σε άλλες γλώσσες προγραµµατισµού. Ο διπλανός πίνακας αναφέρει τους διαθέσι- µους αριθµητικούς τελεστές στη C. Τελεστής Λειτουργία + Πρόσθεση εν θα ασχοληθούµε µε τους κλασικούς - Αφαίρεση αριθµητικούς τελεστές αλλά µόνο µε τούς * Πολλαπλασιασµός νέους τελεστές ++ και -- που εισάγει η C. Οι τελεστές ++ και -- εφαρµόζονται µόνο σε µεταβλητές και µπορεί να προηγούνται ή να ακολουθούν το όνοµα µιας µεταβλητής. / % ιαίρεση Υπόλοιπο ακέραιας διαίρεσης Αύξηση κατά 1 Μείωση κατά 1 π.χ. ++a; a++; --a; a--; Ο τελεστής ++ αυξάνει το περιεχόµενο της µεταβλητής κατά 1, ενώ ο τελεστής -- µειώνει το περιεχόµενο της µεταβλητής κατά 1. Η λειτουργία αυτή γίνεται ανεξάρτητα από τη θέση του τελεστή (πριν ή µετά από τη µεταβλητή). main() int a,b; b=a=5; ++a; --b; printf("a=%d b=%d\n",a,b); Με την παράσταση ++a η a αυξάνεται κατά 1 (6) και µε την παράσταση --b η b µειώνεται κατά 1 (4). Έτσι η printf() θα εµφανίσει στην οθόνη: a=6 b=4 Όπως κάθε παράσταση, έτσι και οι παραστάσεις µε τους τελεστές ++ και -- ε- πιστρέφουν µία τιµή. Η τιµή αυτή εξαρτάται από τη θέση του τελεστή (πριν ή µετά από τη µεταβλητή). 82

23 Κεφάλαιο Ο τύπος δεδοµένων char

24 Η γλώσσα C σε βάθος Ο τύπος δεδοµένων char Το κεφάλαιο αυτό εισάγει και αναλύει τον τρόπο χρήσης των χαρακτήρων (characters) στη γλώσσα C. Εξετάζουµε τον τρόπο µε τον οποίο η C χειρίζεται τις σταθερές και τις µεταβλητές τύπου char. Ακόµη, αναφερόµαστε και σε συναρτήσεις που χρησιµοποιούνται για το χειρισµό των χαρακτήρων. Σταθερές τύπου char Μια σταθερά τύπου char δεν είναι τίποτε άλλο από ένας χαρακτήρας που περικλείεται σε µονά εισαγωγικά. Για παράδειγµα, οι παρακάτω εκφράσεις: 'ρ' '1' '*' είναι παραδείγµατα σταθερών τύπου char. Οι χαρακτήρες είναι αριθµοί!!! Η εσωτερική απεικόνιση µιας σταθεράς (αλλά και µιας µεταβλητής) τύπου char είναι ένας αριθµός. Ο αριθµός αυτός είναι ο κωδικός ASCII 7 του χαρακτήρα. Για παράδειγµα, η συνάρτηση: printf("%c %d\n",'a','a'); θα εµφανίσει το Α και το 65 (ο κωδικός ASCII του Α). Η C χειρίζεται τους χαρακτήρες σαν αριθµούς. Αυτό σηµαίνει ότι µπορούν να µετέχουν σε αριθµητικές παραστάσεις. Εποµένως, οι ακόλουθες παραστάσεις δεν είναι καθόλου παράξενες: 5 + '*' επιστρέφει την τιµή 47 ( που είναι ο κωδικός ASCII του '*'). printf("%d %c\n",'a'+1,'a'+1); εµφανίζει στην οθόνη το 66 και το Β. 7 Κάθε χαρακτήρας µετατρέπεται σε έναν αριθµό σύµφωνα µε ένα καθορισµένο πρότυπο µετατροπής. Το πρότυπο αυτό ονοµάζεται ASCII και ο οµώνυµος πίνακας µετατροπής υπάρχει στο τέλος του παρόντος κεφαλαίου. 100

25 Κεφάλαιο 5: Ο τύπος δεδοµένων char Το 66 εµφανίζεται διότι είναι το αποτέλεσµα της παράστασης 'Α'+1 και η παράµετρος %d "λέει" στην printf() να το εµφανίσει σαν ακέραιο αριθµό. Το Β εµφανίζεται διότι η δεύτερη παράµετρος %c "λέει" στην printf() να εµφανίσει το αποτέλεσµα της παράστασης 'Α'+1 (το 66) σαν χαρακτήρα. Έτσι εµφανίζεται το Β, το οποίο έχει κωδικό ASCII 66. Χαρακτήρες διαφυγής Οι χαρακτήρες διαφυγής (escape characters) αναφέρονται και ως σειρές διαφυγής (escape sequences). Οι χαρακτήρες αυτοί δεν εµφανίζουν τίποτα στην οθόνη, αλλά ελέγχουν ορισµένες από τις λειτουργίες της. Οι χαρακτήρες διαφυγής της C είναι: \n new line (νέα γραµµή) \b backspace (µία θέση πίσω) \f form feed (νέα σελίδα) \r carriage return (αρχή γραµµής) \t tab (επόµενη στηλοθετηµένη στήλη)) \\ backslash (o χαρακτήρας "ανάποδη κάθετος", \) \' τα απλά εισαγωγικά (') \" τα διπλά εισαγωγικά (") \0 null character (byte ) Σύµφωνα µε τα παραπάνω, η επόµενη Οι κλήση της συνάρτησης printf() έχει το "χαρακτήρες διαφυγής" αποτέλεσµα που εµφανίζεται στο διπλανό πλαίσιο: είναι 9 printf("οι\n\"χαρακτήρες διαφυγής\"\nείναι 9\n"); Παρατηρούµε ότι επειδή τα διπλά εισαγωγικά (") έχουν ειδικό νόηµα για την printf(), δεν µπορούν να µπουν στο αλφαριθµητικό µορφοποίησης σαν κανονικός χαρακτήρας. Για το λόγο αυτό πρέπει να χρησιµοποιηθεί ο χαρακτήρας διαφυγής \". 101

26 Η γλώσσα C σε βάθος Ο χαρακτήρας του διαστήµατος, ο χαρακτήρες tab, και ο χαρακτήρας αλλαγής γραµµής λέγονται επίσης και χαρακτήρες λευκού διαστήµατος (whitespace characters). Όταν εποµένως στη συνέχεια του βιβλίου αναφερόµαστε σε χαρακτήρες λευκού διαστήµατος, θα εννοούµε οποιονδήποτε από τους τρεις αυτούς χαρακτήρες. Μεταβλητές τύπου char Οι µεταβλητές τύπου char δηλώνονται ως εξής: char όνοµα_µεταβλητής1, όνοµα_µεταβλητής2,...; Οι µεταβλητές τύπου char δεσµεύουν 1 byte (8 bits). Στη µεταβλητή αποθηκεύεται ο κωδικός ASCII του χαρακτήρα, δηλαδή ένας ακέραιος αριθµός. Η C χειρίζεται τις µεταβλητές χαρακτήρων ως αριθµούς, οπότε µπορούν να µετέχουν σε αριθµητικές παραστάσεις. Για παράδειγµα, µετά από τις παρακάτω προτάσεις: int a,b; char ch; ch='a'; //Στη µεταβλητή ch καταχωρίζεται ο ASCII κωδικός του 'Α' που είναι ο αριθµός 65 a=ch+2; η µεταβλητή a θα περιέχει στο τέλος τον αριθµό 67 (65+2). Τρεις συναρτήσεις χειρισµού χαρακτήρων Για την είσοδο (από το πληκτρολόγιο) και την έξοδο (στην οθόνη) ενός χαρακτήρα χρησιµοποιούνται οι συναρτήσεις getch(), getchar() και putch(). getch() Η συνάρτηση getch() περιµένει να πληκτρολογηθεί ένας χαρακτήρας και επιστρέφει ως τιµή τον κωδικό του χαρακτήρα. εν τον εµφανίζει στην οθόνη και δεν περιµένει πάτηµα του πλήκτρου <Enter>. Η συνάρτηση δεν χρειάζεται κα- 102

27 Κεφάλαιο Ο τύπος δεδοµένων float

28 Η γλώσσα C σε βάθος Ο τύπος δεδοµένων float Το κεφάλαιο αυτό εισάγει και αναλύει τον τρόπο χρήσης των αριθµών κινητής υποδιαστολής (floating point) στη γλώσσα C. Εξετάζεται ο τρόπος µε τον ο- ποίο η C χειρίζεται τις σταθερές και τις µεταβλητές τύπου float. Επίσης γίνεται αναφορά σε συναρτήσεις που χρησιµοποιούνται για το χειρισµό δεδοµένων κινητής υποδιαστολής (δεκαδικών αριθµών). Σταθερές τύπου float Μια σταθερά τύπου float δεν είναι τίποτε άλλο από ένας δεκαδικός αριθµός. Για να θεωρηθεί τύπου float, ένας αριθµός πρέπει απαραίτητα να περιέχει το χαρακτήρα της υποδιαστολής (.), για παράδειγµα οι παρακάτω αριθµοί: είναι παραδείγµατα σταθερών τύπου float. Μεταβλητές τύπου float Υπάρχουν δύο τύποι µεταβλητών κινητής υποδιαστολής (floating point), ο τύπος float και ο τύπος double. Οι µεταβλητές τύπου float καταλαµβάνουν 4 bytes, ενώ οι τύπου double 8. Οι µεταβλητές τύπου double έχουν µεγαλύτερη ακρίβεια στα δεκαδικά ψηφία. Οι µεταβλητές τύπου float δηλώνονται όπως παρακάτω: float όνοµα_µεταβλητής1, όνοµα_µεταβλητής2,...; double όνοµα_µεταβλητής1, όνοµα_µεταβλητής2,...; long float όνοµα_µεταβλητής1, όνοµα_µεταβλητής2,...; όπου το long float είναι ισοδύναµο µε το double. 116

29 Κεφάλαιο 6: Ο τύπος δεδοµένων float Χρήση δεδοµένων τύπου κινητής υποδιαστολής Οι διαθέσιµοι τελεστές για πράξεις µεταξύ δεδοµένων τύπου κινητής υποδιαστολής (floating point) είναι πολύ περιορισµένοι σε σχέση µε τούς τελεστές που ε- + Πρόσθεση Τελεστής Λειτουργία φαρµόζονται σε δεδοµένα τύπου int και char. Οι τελεστές που εφαρµόζονται σε δεδοµένα τύπου float (ή double) αναφέρονται στο διπλανό πίνακα. - * / Αφαίρεση Πολλαπλασιασµός ιαίρεση Παρατηρούµε ότι οι αριθµητικοί τελεστές %, ++ και -- δεν εφαρµόζονται σε δεδοµένα τύπου float. Μερικοί µεταγλωττιστές της C (όπως ο gcc που περιέχεται στο περιβάλλον του DEV C++) επιτρέπουν και σε µεταβλητές τύπου float τη χρήση των τελεστών ++ και --. Η χρήση της printf() µε δεδοµένα κινητής υποδιαστολής Ας θεωρήσουµε το επόµενο πρόγραµµα του οποίου το αποτέλεσµα φαίνεται στο διπλανό πλαίσιο: main() float a,b; a=21.234; b=5467.1; printf("%f\n",a); printf("%f\n",b); Παρατηρούµε ότι αν και τα αποτελέσµατα εµφανίζονται σωστά, µπορεί να προτιµούσαµε τις χιλιάδες κάτω από τις χιλιάδες, τις εκατοντάδες κάτω από τις εκατοντάδες κ.ο.κ. Για να επιτύχουµε µορφοποιηµένη (φορµαρισµένη) έξοδο αριθµών, η ακολουθία %f στο αλφαριθµητικό ελέγχου της printf() µπορεί να διαµορφωθεί ως ε- ξής: %n.mf 117

30 Η γλώσσα C σε βάθος όπου n ο συνολικός αριθµός των θέσεων που θα καταλάβει ο αριθµός (µαζί µε την υποδιαστολή) και m ο αριθµός των θέσεων µετά από την υποδιαστολή. Έτσι, %8.3f σηµαίνει ότι ο αριθµός θα εµφανιστεί σε 8 θέσεις από τις οποίες οι 3 θα είναι για το δεκαδικό µέρος. Για µορφοποιηµένη έξοδο, το προηγούµενο πρόγραµµα θα µπορούσε να διατυπωθεί ως εξής: main() float a,b; a=21.234; b=5467.1; printf("%8.3f\n",a); printf("%8.3f\n",b); Χρήση της συνάρτησης scanf() µε δεδοµένα τύπου float Η scanf() χρησιµοποιείται για την είσοδο δεκαδικών αριθµών µε το πληκτρολόγιο. Για παράδειγµα, το επόµενο πρόγραµµα ζητάει και εµφανίζει δύο δεκαδικούς. #include <stdio.h> 6_float_scanf.c main() float a; double b; printf(" ώσε δεκαδικό:"); scanf("%f",&a); // ιαβάζει έναν αριθµό τύπου float και των καταχωρίζει στη µεταβλητή a printf(" ώσε δεκαδικό:"); scanf("%lf",&b); // ιαβάζει έναν αριθµό τύπου double και των καταχωρίζει στη µεταβλητή b printf("εδωσες %f και %f\n",a,b); Παρατηρούµε οτι όταν πρόκειται να διαβαστεί αριθµός διπλής ακρίβειας (τύπου double), στο αλφαριθµητικό ελέγχου της συνάρτησης scanf(), η ακολουθία %lf α- ντικαθιστά την %f. 118

31 Κεφάλαιο Εντολές συνθήκης

32 Η γλώσσα C σε βάθος Εντολές συνθήκης H C διαθέτει δύο εντολές µε τις οποίες έχει τη δυνατότητα εκτέλεσης προτάσεων υπό συνθήκη ("υπό όρους"). Είναι η εντολή if και η εντολή switch-case. Η εντολή if Η εντολή if ελέγχει µια λογική παράσταση και ανάλογα µε το αποτέλεσµα του ελέγχου (αληθές ή ψευδές), εκτελεί (ή δεν εκτελεί) κάποιες προτάσεις. Η if συντάσσεται µε τρεις τρόπους: ως απλή πρόταση if ως συνδυασµός if - else ως συνδυασµός if - else if H απλή πρόταση if To συντακτικό της if στην πιο απλή της µορφή είναι: if (λογική παράσταση) πρόταση-a; Σε αυτή τη µορφή η if ελέγχει τη λογική παράσταση και, αν είναι αληθής (Α), εκτελεί την πρόταση-α που ακολουθεί. Αν η λογική παράσταση είναι ψευδής (Ψ), εκτελείται η πρόταση αµέσως µετά από την εντολή if. Ας θυµηθούµε ότι µια λογική παράσταση στη C επιστρέφει µία αριθµητική τιµή: την τιµή 1 αν είναι αληθής και την 0 αν είναι ψευδής. Επίσης, η C θεωρεί αληθή οποιαδήποτε παράσταση επιστρέφει τιµή διάφορη του µηδενός (βλέπε παράδειγµα Π7.3). Στο λογικό διάγραµµα φαίνεται η λογική της πρότασης if. Η πρόταση-α µπορεί να είναι και µία σύνθετη πρόταση (compound statement). Παράδειγµα χρήσης της απλής πρότασης if: 124

33 Κεφάλαιο 7: Εντολές συνθήκης if(a==5) printf("a=5\n"); if(a==5) printf("a=5\n"); if(a==5) printf("a=5\n"); η οποία µπορεί να γραφεί και ή και Όπως αναφέραµε, η πρόταση-α µπορεί να είναι και µία σύνθετη πρόταση: if(a==5) printf("a=5\n"); printf("µία σύνθετη πρόταση\n"); Η πρόταση if-else if (λογική παράσταση) Πρόταση-Α; else Πρόταση-Ψ; Σε αυτή τη µορφή, η if ελέγχει τη λογική παράσταση και, αν είναι αληθής (Α), εκτελεί την Πρόταση-Α που ακολουθεί. Αν η λογική παράσταση είναι ψευδής (Ψ), εκτελείται η Πρόταση-Ψ. Μετά εκτελείται κανονικά η επόµενη από την if πρόταση του προγράµµατος. Στο διπλανό λογικό διάγραµµα φαίνεται η λογική της πρότασης if-else. Οι προτάσεις Α και Ψ µπορεί να είναι και σύνθετες προτάσεις. Παράδειγµα χρήσης της if-else: if(a==5) printf("ναι"); else printf("όχι"); ή και if(a==5) printf("ναι"); 125

34 Η γλώσσα C σε βάθος else printf("όχι"); if(a==5) printf("ναι\n"); printf("σύνθετη πρόταση - A\n"); else printf("όχι\n"); printf("σύνθετη πρόταση - B\n"); Η πρόταση if - else if Εφόσον µετά το else µπορεί να υπάρξει οποιαδήποτε πρόταση µπορεί αυτή να είναι άλλη µία πρόταση if. Η λογική της πρότασης if-else if φαίνεται στο λογικό διάγραµµα της επόµενης σελίδας. Η Πρόταση-Ψ εκτελείται µόνο όταν όλες οι λογικές παραστάσεις είναι ψευδείς. Π.χ.: if(λογ_παράσταση-1) Πρόταση-A 1 ; else if(λογ_παράσταση-2) Πρόταση-A 2 ;... else if(λογ_παράσταση-ν) Πρόταση-A ν ; Εκτελείται όταν η Λογ_παράσταση-1 είναι αληθής Εκτελείται όταν η Λογ_παράσταση-2 είναι αληθής Εκτελείται όταν η Λογ_παράσταση-3 είναι αληθής 126

35 Κεφάλαιο Εντολές αλλαγής ροής και επανάληψης

36 Η γλώσσα C σε βάθος Εντολές αλλαγής ροής και επανάληψης Η "επικίνδυνη" εντολή goto Στη C, όπως και στις περισσότερες γλώσσες προγραμματισμού, με την εντολή goto μεταφέρουμε τον έλεγχο του προγράμματος σε ένα διαφορετικό του σημείο. Δεδομένου ότι στη C οι προτάσεις ενός προγράμματος δεν αριθμούνται, χρησιμοποιούνται ετικέτες (labels) για να "επισημαίνουν" διάφορα σημεία μέσα σε ένα πρόγραμμα. Μια ετικέτα (label) είναι ένα αναγνωριστικό ακολουθούμενο από μία άνω και κάτω τελεία (:), για παράδειγμα: telos: Μια ετικέτα μπορεί να βρίσκεται μόνη της σε μια γραμμή του προγράμματος ή να βρίσκεται μπροστά από μια πρόταση. Η εντολή goto μεταφέρει τον έλεγχο σε μια ετικέτα του προγράμματος (αλλά πάντα μέσα στην ίδια συνάρτηση). Το συντακτικό της goto είναι: goto ετικέτα; όπου ετικέτα είναι η ετικέτα στην οποία θέλουμε να μεταφερθεί ο έλεγχος του προγράμματος. Το επόμενο πρόγραμμα εμφανίζει συνέχεια αριθμούς ξεκινώντας από το 1 και αυξάνοντάς τους κατά 1. main() int a; a=0; pali: printf("%d\n",++a); goto pali; //Αυξάνει την τιμή της a κατά 1 και την εμφανίζει //Μεταφέρει τον έλεγχο του προγράμματος στη θέση της ετικέτας pali

37 Κεφάλαιο 8: Εντολές αλλαγής ροής και επανάληψης Παρατηρούµε ότι η ετικέτα pali δεν ακολουθείται από ερωτηµατικό (;). Όταν η ετικέτα βρίσκεται πριν από µία πρόταση, η πρόταση τερµατίζεται κανονικά µε ερωτη- µατικό (;). Στη σύνταξη της goto η ετικέτα δεν ακολουθείται από την άνω και κάτω τελεία (goto pali;) Το επόµενο πρόγραµµα εκτελεί την ίδια λειτουργία µε το προηγούµενο: main() int a; a=0; pali: printf("%d\n",++a); goto pali; Η goto ως µέθοδος µεταφοράς ελέγχου του προγράµµατος είναι ο χειρότερος ε- χθρός του δοµηµένου προγραµµατισµού. Αφού λοιπόν έγινε κατανοητή η χρήση της goto, το επόµενο στάδιο είναι να την ξεχάσουµε. Αν θέλουµε τα προγράµµατα µας να είναι δοµηµένα και ευανάγνωστα δεν πρέπει να τη χρησιµοποιούµε ποτέ. Η C διαθέτει εντολές ελέγχου και επαναληπτικές διαδικασίες που κάνουν περιττή τη χρήση της goto. Ο βρόχος while Ο βρόχος while αποτελεί τη µια από τις τρεις δοµές επανάληψης της C. Με τη χρήση της εντολής while είναι δυνατή η επαναληπτική εκτέλεση µιας ή παραπάνω προτάσεων. Η επανάληψη ή όχι των προτάσεων εξαρτάται από την τιµή µιας λογικής παράστασης. Για παράδειγµα, ο παρακάτω βρόχος while εκτελείται όσο η τιµή της µεταβλητής a είναι µεγαλύτερη από το 0. a=5; while (a>0) printf("a=%d\n",a); --a; Ελέγχεται αν η τιµή της µεταβλητής a είναι µεγαλύτερη από 0. Αν είναι, συνεχίζεται η εκτέλεση των εντολών του βρόχου. 143

38 Η γλώσσα C σε βάθος Η εντολή (ή βρόχος) while επιτυγχάνει την επανάληψη µιας πρότασης (απλής ή σύνθετης) ενόσω µια λογική παράσταση είναι αληθής. Το συντακτικό της while είναι: while (λογική_παράσταση) πρόταση; while (λογική_παράσταση) πρόταση; while (λογική_παράσταση) πρόταση1; πρόταση2; Το διπλανό λογικό διάγραµµα δείχνει τη φιλοσοφία της while. εδοµένου ότι µια λογική παράσταση στη C επιστρέφει αριθµητική τιµή, στη θέση της λογικής παράστασης µπορεί να είναι οποιαδήποτε παράσταση που ε- πιστρέφει αριθµητική τιµή. Αν η τιµή της είναι 0, θεωρείται ψευδής διαφορετικά θεωρείται αληθής. Η παρακάτω εντολή while έχει ως αποτέλεσµα τη συνεχή εµφάνιση της πρότασης "Η γλώσσα C σε βάθος", δεδοµένου ότι η παράσταση έχει συνέχεια τιµή 1 δηλαδή αληθής. Σε αυτό το σηµείο η εκτέλεση του προγράµµατος θα 'κολλήσει'. Ένας τέτοιος βρόχος καλείται ατέρµων βρόχος. while (1) printf("η γλώσσα C σε βάθος\n"); Το πρόγραµµα που ακολουθεί, εµφανίζει την τιµή της µεταβλητής a, ενόσω αυτή είναι µεγαλύτερη του µηδενός. Μετά το τέλος του βρόχου, εµφανίζει τη λέξη "ΤΕΛΟΣ". ή ή 144

39 Κεφάλαιο 8: Εντολές αλλαγής ροής και επανάληψης #include <stdio.h> main() int a,b; a=5; while (a>0) printf("a=%d\n",a); --a; printf("τελοσ\n"); Το επόµενο πρόγραµµα περιµένει να πατηθεί το πλήκτρο του διαστήµατος (ASCII 32). #include <stdio.h> main() char ch; ch=''; while (ch!=32) ch=getch(); printf("επιτέλους το πάτησες\n"); Ο βρόχος while εκτελείται συνέχεια ενόσω το πλήκτρο που πατιέται δεν είναι το πλήκτρο του διαστήµατος. Εκµεταλλευόµενοι τη µαγεία της C, θα µπορούσαµε να γράψουµε το προηγούµενο πρόγραµµα µε τον ακόλουθο τρόπο. #include <stdio.h> main() char ch=''; while ((ch=getch())!= 32); printf("επιτέλους το πάτησες\n"); a=5 a=4 a=3 a=2 a=1 ΤΕΛΟΣ 8_while1.c 8_while2.c 8_while3.c ΠΡΟΣΟΧΗ: ο βρόχος while δεν περιέχει καµία πρόταση. 145

40 Η γλώσσα C σε βάθος Η εντολή continue Η εντολή continue έχει µια παρόµοια λειτουργία µε την break. Η διαφορά της είναι ότι δεν τερµατίζει τον βρόχο (όπως η break), αλλά επιβάλλει την εκτέλεση της επόµενης επανάληψης παραλείποντας τις ενδιάµεσες εντολές. Τα επό- µενα παραδείγµατα δείχνουν παραστατικά τη λειτουργία της. //βρόχος while while (1) ch=getch(); if (ch==27) continue; putch(ch);... printf("τέλος βρόχου while\n"); //βρόχος do-while do ch=getch(); if (ch==27) continue; putch(ch);... while (1); printf("τέλος βρόχου do-while\n"); //βρόχος for for (i=1;i<=100;++i) ch=getch(); if (ch==27) continue; putch(ch);... printf("τέλος βρόχου for\n"); Η εντολή continue µεταφέρει τον έλεγχο του προγράµµατος αµέσως µετά την τελευταία πρόταση του βρόχου αλλά πριν από το τέλος του (δεξιό άγκιστρο). Έτσι γίνεται κανονικά (αν πρέπει να γίνει) η επόµενη επανάληψη του βρόχου και α- πλώς παραλείπεται η εκτέλεση των προτάσεων από την εντολή continue µέχρι το τέλος του βρόχου. while (1) ch=getch(); if (ch==27) goto pali; putch(ch); pali: printf("τελος βρόχου while\n"); Και στους τρεις βρόχους του παραδείγµατος, µόλις πατηθεί το πλήκτρο Esc (ASCII 27), η εντολή continue επιβάλλει την εκτέλεση της επόµενης επανάληψης παραλείποντας τις ενδιάµεσες εντολές. 156

41 Κεφάλαιο 8: Εντολές αλλαγής ροής και επανάληψης Και εδώ αναφέρεται ένα ισοδύναµο παράδειγµα που χρησιµοποιεί την εντολή goto για την επανάληψη του βρόχου. Καταµέτρηση και άθροιση σε επαναλαµβανόµενες διαδικασίες Πολλές φορές στα προγράµµατά µας θα χρειαστεί να µετρήσουµε πόσες φορές συνέβη ένα γεγονός (για παράδειγµα το πλήθος των αριθµών που είναι µεγαλύτεροι από 10), αλλά και να αθροίσουµε τις διαφορετικές τιµές που λαµβάνει µια µεταβλητή. Για την καταµέτρηση ενός συµβάντος πάντα χρησιµοποιούµε µια µεταβλητή στην οποία δίνουµε αρχική τιµή 0, και κάθε φορά που δηµιουργείται το συµβάν, αυξάνουµε τη µεταβλητή κατά 1. Για το συνολικό άθροισµα διαφορετικών τιµών, χρησιµοποιούµε πάλι µια µεταβλητή στην οποία δίνουµε επίσης αρχική τιµή 0, και κάθε φορά που δηµιουργείται µια νέα τιµή, αυξάνου- µε τη µεταβλητή κατά την τιµή αυτή. Το παρακάτω πρόγραµµα διαβάζει έναν-έναν δώδεκα αριθµούς που δίνονται από το πληκτρολόγιο και εµφανίζει το άθροισµά τους. Για την καταµέτρηση των αριθµών χρησιµοποιείται η µεταβλητή cnt και για το άθροισµά τους η µεταβλητή sum. Στον κώδικα του προγράµµατος, χρησιµοποιείται η συνάρτηση scanf() η οποία διαβάζει έναν αριθµό από το πληκτρολόγιο και τον καταχωρίζει στη µεταβλητή a. #include <stdio.h> main() int a,cnt,sum; cnt=sum=0; while (cnt<12) printf(" ώσε αριθµό:"); scanf("%d",&a); cnt++; sum=sum+a; printf("άθροισµα=%d\n",sum); Θέτουµε αρχική τιµή στις µεταβλητές cnt και sum το 0. Όταν δοθούν 12 αριθµοί, η επαναληπτική διαδικασία σταµατάει. 8_sum.c ιαβάζει έναν αριθµό από το πληκτρολόγιο και τον καταχωρίζει στη µεταβλητή a. Κάθε φορά που δίνεται ένας αριθµός (a), η cnt αυξάνεται κατά 1. Επίσης ο αριθµός (a) προστίθεται στη sum. Εµφανίζει το συνολικό άθροισµα όλων των αριθµών που δόθηκαν. 157

42 Κεφάλαιο Συναρτήσεις

43 Η γλώσσα C σε βάθος Συναρτήσεις Σε αυτό το κεφάλαιο θα αναφερθούµε στη χρήση των συναρτήσεων από τη C. Μέχρι στιγµής είδαµε τη χρήση της main(), µιας συνάρτησης απαραίτητης σε κάθε πρόγραµµα της C. Επίσης συναντήσαµε και ορισµένες συναρτήσεις βιβλιοθήκης όπως οι: printf(), scanf(), getch() κ.α. Οι συναρτήσεις βοηθούν τον προγραµµατιστή να "κοµµατιάσει" ένα µεγάλο πρόγραµµα σε µικρότερα τµήµατα, κάθε ένα από τα οποία επιτελεί µια συγκεκριµένη λειτουργία. Στις γλώσσες δοµηµένου προγραµµατισµού, οι συναρτήσεις µπορούν να "κρύβουν" κοµµάτια κώδικα από το υπόλοιπο πρόγραµµα µε τρόπο ώστε οι µεταβλητές µιας συνάρτησης να µην επηρεάζουν το υπόλοιπο πρόγραµµα. Όπως αναφέρθηκε στην εισαγωγή, ένα πρόγραµµα στη C έχει την ακόλουθη γενική µορφή: main() δηλώσεις µεταβλητών της συνάρτησης main(); εκτελέσιµες προτάσεις της συνάρτησης main(); function-1() δηλώσεις µεταβλητών της συνάρτησης function-1(); εκτελέσιµες προτάσεις της συνάρτησης function-1(); function-2() δηλώσεις µεταβλητών της συνάρτησης function-2(); εκτελέσιµες προτάσεις της συνάρτησης function-2(); function-n() δηλώσεις µεταβλητών της συνάρτησης function-n(); 172

44 Κεφάλαιο 9: Συναρτήσεις εκτελέσιµες προτάσεις της συνάρτησης function-n(); Οι συναρτήσεις εκτελούνται µόνο αν κληθούν από µια άλλη συνάρτηση. Η µόνη συνάρτηση που εκτελείται πάντοτε είναι η συνάρτηση main(). Στη C κάθε συνάρτηση επιστρέφει µια τιµή, εκτός αν έχει δηλωθεί µε σαφήνεια ότι δεν επιστρέφει καµία τιµή. Σε κάθε περίπτωση µια συνάρτηση έχει έναν τύπο (int, float κ.λπ.) ανάλογα µε τον τύπο δεδοµένων που επιστρέφει ως τιµή. Όπως θα γίνει κατανοητό στη συνέχεια του παρόντος κεφαλαίου, ακόµα και αν δεν επιστρέφει καµία τιµή, θα πρέπει να δηλωθεί µε τον κατάλληλο τύπο (void). Επίσης, µια συνάρτηση µπορεί να έχει παραµέτρους µέσω των οποίων το πρόγραµµα που καλεί τη συνάρτηση µπορεί να της "µεταβιβάσει" πληροφορίες. Στη C κάθε συνάρτηση ανήκει σε κάποιο τύπο δεδοµένων. Μια συνάρτηση µπορεί να έχει καµία, µία ή περισσότερες παραµέτρους. Oρισµός µιας συνάρτησης Μια συνάρτηση ορίζεται µε τον ακόλουθο τρόπο: τύπος_συνάρτησης όνοµα_συνάρτησης (τύπος παράµετρος1, τύπος παρά- µετρος2,...) δηλώσεις µεταβλητών συνάρτησης; εκτελέσιµες προτάσεις συνάρτησης; Ο τύπος της συνάρτησης καθορίζει τον τύπο της τιµής που επιστρέφει η συνάρτηση. Στην περίπτωση που η συνάρτηση δεν επιστρέφει τιµή, δηλώνεται ως τύπου void. Αν δεν οριστεί ο τύπος της συνάρτησης, η C υποθέτει ότι η συνάρτηση επιστρέφει τιµή τύπου int. 173

45 Η γλώσσα C σε βάθος Οι παράµετροι της συνάρτησης (αν υπάρχουν) ορίζονται, µαζί µε τον τύπο τους, µέσα στις παρενθέσεις που ακολουθούν το όνοµα της συνάρτησης. Οι παράµετροι µιας συνάρτησης αποτελούν και αυτές τοπικές µεταβλητές της συνάρτησης. Συναρτήσεις χωρίς παραµέτρους Στην πιο απλή τους µορφή οι συναρτήσεις δεν έχουν παραµέτρους. Σε αυτή την περίπτωση το πρόγραµµα που τις καλεί δεν µπορεί να τους µεταβιβάσει πληροφορίες. Μια τέτοια συνάρτηση τη φανταζόµαστε σαν ένα ερµητικά κλειστό κουτί το οποίο επιτελεί κάποια λειτουργία, αλλά δεν έχουµε καµία δυνατότητα να τροποποιήσουµε τη λειτουργία του. Για παράδειγµα, η παρακάτω συνάρτηση εµφανίζει τους αριθµούς από το 5 µέχρι το 10. εν επιστρέφει καµία τιµή και για το λόγο αυτό δηλώνεται ως void. εν διαθέτει καµία παράµετρο και, κάθε φορά που καλείται, εκτελεί ακριβώς την ίδια λειτουργία. void display_numbers() int i; for (i=5;i<=10;i++) printf("%d\n",i); Η συνάρτηση εµφανίζει τους αριθµούς 5, 6, 7, 8, 9, και 10. main() printf("πρώτη κλήση της συνάρτησης\n"); display_numbers(); Κλήση της συνάρτησης 174

46 Κεφάλαιο 9: Συναρτήσεις printf(" εύτερη κλήση της συνάρτησης\n"); display_numbers(); Η συνάρτηση main() καλεί τη συνάρτηση display_numbers() δύο φορές. Κάθε φορά η συνάρτηση εµφανίζει τους ίδιους αριθµούς. Aπό τη στιγµή που η συνάρτηση δεν έχει παραµέτρους δεν υπάρχει τρόπος να επηρεάσουµε τη λειτουργία της. Συναρτήσεις µε παραµέτρους Οι παράµετροι είναι ένας τρόπος µε τον οποίο ένα πρόγραµµα µεταβιβάζει πληροφορίες σε µια συνάρτηση. Μια τέτοια συνάρτηση τη φανταζόµαστε σαν ένα κουτί το οποίο διαθέτει εγκοπές στις οποίες µπορούµε να τοποθετήσουµε πληροφορίες. Ο κώδικας της συνάρτησης χρησιµοποιεί αυτές τις πληροφορίες και ανάλογα µπορεί να τροποποιεί τη λειτουργία του. Όταν καλούµε µια συνάρτηση µε παραµέτρους, την καλούµε µε ισάριθµα ορίσµατα. Το διπλανό σχήµα δείχνει µια συνάρτηση µε δύο παραµέτρους func(παρ1,παρ2) σαν ένα κουτί µε δύο εγκοπές. Όταν καλούµε τη συνάρτηση func(), πρέπει να χρησιµοποιήσουµε ισάριθµα ορίσµατα func(ορ1,ορ2). Η τιµή του πρώτου ορίσµατος µεταβιβάζεται στην πρώτη παρά- µετρο (εγκοπή), και του δεύτερου ορίσµατος στη δεύτερη. Η παρακάτω συνάρτηση είναι µια παραλλαγή της συνάρτησης display_numbers() µε δύο παραµέτρους, ώστε το πρόγραµµα που την καλεί να µπορεί να καθορίζει το εύρος των αριθµών που εµφανίζει. 175

47 Κεφάλαιο 9: Συναρτήσεις Παράµετροι συνάρτησης Όπως αναφέρθηκε προηγουµένως, αν µια συνάρτηση έχει παραµέτρους, αυτές δηλώνονται µαζί µε το όνοµα της συνάρτησης µέσα στις παρενθέσεις που ακολουθούν. int add(int x, int y) Ο δεύτερος τρόπος δήλωσης των παραµέτρων µιας συνάρτησης, είναι αµέσως µετά από το όνοµα της συνάρτησης, σε ξεχωριστή πρόταση: int add(x,y) Όνοµα συνάρτησης int x,y; ήλωση παραµέτρων Σώµα συνάρτησης Οι δύο τρόποι δήλωσης των παραµέτρων µιας συνάρτησης είναι ισοδύναµοι αλλά στη συνέχεια του βιβλίου θα χρησιµοποιούµε τον πρώτο που είναι ο πιο διαδεδο- µένος. Ορίσµατα και µεταβίβαση παραµέτρων Οι παράµετροι µιας συνάρτησης χρησιµοποιούνται για τη µεταβίβαση δεδοµένων από το πρόγραµµα προς τη συνάρτηση την οποία καλεί. Οι τιµές µε τις οποίες καλείται µια συνάρτηση λέγονται ορίσµατα της συνάρτησης. Ας θεωρήσουµε το επόµενο παράδειγµα κλήσης της συνάρτησης add() από τη συνάρτηση main(). main() int a,b,c; ήλωση παραµέτρων Σώµα συνάρτησης 183

48 Η γλώσσα C σε βάθος a=10; b=20; c=add(a,b); printf("%d\n",c); int add(int x, int y) int ss; ss=x+y; return(ss); Η συνάρτηση add() έχει οριστεί µε δύο παραµέτρους x και y. Όταν καλείται η συνάρτηση, οι τιµές των ορισµάτων της (το 10 και το 20) αντιγράφονται στις παραµέτρους x και y αντίστοιχα. Τα ορίσµατα µε τα οποία καλείται µια συνάρτηση, καλούνται πραγµατικές παράµετροι. Ορίσµατα συνάρτησης. Καλούνται και πραγµατικές παράµετροι. Παράµετροι συνάρτησης. Καλούνται και τυπικές παράµετροι. Αυτός ο τρόπος µεταβίβασης των ορισµάτων λέγεται κλήση ή µεταβίβαση κατ' αξία (call by value), κατά τον οποίο αντιγράφονται οι τιµές των ορισµάτων στις αντίστοιχες παραµέτρους της συνάρτησης. Οι µεταβλητές των παραµέτρων που ορίζονται σε µια συνάρτηση (στην περίπτωση µας οι x και y) λέγονται τυπικές παράµετροι (formal parameters) της συνάρτησης. 184

49 Κεφάλαιο 9: Συναρτήσεις Παραδείγµατα Π9.1 Η επόµενη συνάρτηση δέχεται ως παράµετρο έναν αριθµό, τον εµφανίζει αντίστροφα, και επιστρέφει ως τιµή το πλήθος των ψηφίων του. int reverse(int ar) int y,p,cnt=0; do y=ar % 10; p=ar/10; printf("%d",y); cnt++; ar=p; while (p!=0); return cnt; Π9.2 Η επόµενη συνάρτηση δέχεται ως παράµετρο ένα χαρακτήρα και επιστρέφει τιµή 1 αν είναι Ελληνικός κεφαλαίος, 2 αν είναι Ελληνικός πεζός, 3 αν είναι αριθµητικό ψηφίο (0~9), και 0 σε κάθε άλλη περίπτωση. int isgreek(char ch) int ap; if (ch>='a' && ch<='ω') // 'Α'= Ελληνικό άλφα κεφαλαίο! ap=1; else if (ch>='α' && ch<='ω') ap=2; else if (ch>='0' && ch<='9') ap=3; else ap=0; return ap; Ο αλγόριθµος που ακολουθούµε για το συγκεκριµένο πρόβληµα είναι ο ίδιος µε το παράδειγµα Π8.5 του προηγούµενου κεφαλαίου: Υπολογίζουµε το υπόλοιπο και το πηλίκο της διαίρεσης του αριθµού δια 10. Το υπόλοιπο αποτελεί το πρώτο ψηφίο. Αντικαθιστούµε τον αριθµό µε το πηλίκο που βρήκαµε και συνεχίζουµε τη διαδικασία µέχρι να βρούµε πηλίκο 0. Η µεταβλητή cnt "µετράει" τα ψηφία του αριθµού. Η συνάρτηση επιστρέφει την τιµή της cnt. 9_p9_1.c 9_p9_2.c 191

50 Η γλώσσα C σε βάθος 9.9 Ο είκτης Μάζας Σώµατος ( ΜΣ) υπολογίζεται από τον τύπο Β/Υ 2, ό- που Β το βάρος σε κιλά και Υ το ύψος σε µέτρα. Ανάλογα µε την τιµή του ΜΣ ένα άτοµο χαρακτηρίζεται σύµφωνα µε τον παρακάτω πίνακα: ΜΣ µικρότερος από 18.5 από 18.5 και µικρότερος του 25 από 25 και µικρότερος του 30 από 30 και πάνω Περιγραφή Λιποβαρής Κανονικός Υπέρβαρος Παχύσαρκος Να γραφεί πρόγραµµα το οποίο θα ζητάει να πληκτρολογούµε το βάρος και το ύψος διάφορων ατόµων, θα υπολογίζει τον ΜΣ και θα εµφανίζει το χαρακτηρισµό του ατόµου (π.χ. υπέρβαρος). Το πρόγραµµα θα σταµατάει όταν δοθεί τιµή 0 είτε για το βάρος είτε για το ύψος. Ο υπολογισµός του ΜΣ πρέπει να υλοποιείται από µια συνάρτηση. Επίσης από µια δεύτερη συνάρτηση θα πρέπει να υλοποιείται η εµφάνιση των αποτελεσµάτων Με δεδοµένη την αλγεβρική συνάρτηση f(x)=x 4-10x 2 +2, να γραφεί πρόγραµµα που να εµφανίζει τις τιµές που επιστρέφει η συνάρτηση για τιµές του x από 0 µέχρι 1 µε βήµα Να εµφανίζονται τα ζεύγη τιµών x, f(x) µε ακρίβεια τριών δεκαδικών ψηφίων. Η τιµή της f(x) να υπολογίζεται από ξεχωριστή συνάρτηση στο πρόγραµµά σας Ο ΦΠΑ ενός προϊόντος µπορεί να ανήκει στις παρακάτω κατηγορίες: Κατηγορία Ποσοστό ΦΠΑ Να γραφεί πρόγραµµα το οποίο θα ζητάει να πληκτρολογούµε το πλήθος, τη τιµή µονάδας και τη κατηγορία ΦΠΑ για 10 προϊόντα. Το πρόγραµµα θα πρέπει να εµφανίζει το συνολικό κόστος της δαπάνης καθώς και το σύνολο του ΦΠΑ για όλα τα προϊόντα που αγοράσαµε. Ο υπολογισµός του ΦΠΑ πρέπει να υλοποιείται από µια συνάρτηση στην οποία θα µεταβιβάζεται το συνολικό ποσό ανά προϊόν καθώς και η κατηγορία ΦΠΑ στην οποία ανήκει. 198

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

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

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

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

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

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

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

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

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

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

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

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

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

Η-Υ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ. Εργαστήριο 1 Εισαγωγή στη C. Σοφία Μπαλτζή s.mpaltzi@di.uoa.gr Η-Υ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ Εργαστήριο 1 Εισαγωγή στη C Σοφία Μπαλτζή s.mpaltzi@di.uoa.gr Διαδικαστικά Ιστοσελίδα μαθήματος: http://eclass.uoa.gr/courses/f30/ Υποχρεωτική παρακολούθηση: Παρασκευή 14:00 16:00 στην

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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 ο Τελεστές Γ. Σ. Τσελίκης Ν. Δ. Τσελίκας Ο τελεστής εκχώρησης = Ο τελεστής = χρησιµοποιείται για την απόδοση τιµής (ή αλλιώς ανάθεση τιµής) σε µία µεταβλητή Π.χ.

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

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

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

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

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

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

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

Περιεχόμενα. Πρόλογος... 17

Περιεχόμενα. Πρόλογος... 17 Περιεχόμενα Πρόλογος... 17 Κεφάλαιο 1: Εισαγωγή... 19 Πώς να διαβάσετε αυτό το βιβλίο... 20 Η γλώσσα C Ιστορική αναδρομή... 22 Τα χαρακτηριστικά της C... 23 C Μια δομημένη γλώσσα... 23 C Μια γλώσσα για

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

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

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

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

Μεταφερσιμότητα Τα προγράμματα μεταφέρονται εύκολα σε διαφορετικά λειτουργικά συστήματα

Μεταφερσιμότητα Τα προγράμματα μεταφέρονται εύκολα σε διαφορετικά λειτουργικά συστήματα Η ΓΛΩΣΣΑ C Η C είναι μια γλώσσα προγραμματισμού υψηλού επιπέδου η οποία αναπτύχθηκε στις αρχές της δεκαετίας του 70 από τον Dennis Ritchie στα Bell Labs. Η σημερινή μορφή της γλώσσας ακολουθεί το πρότυπο

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

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

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

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

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

ΕΙΣΑΓΩΓΗ ΣΤΟ ΔΟΜΗΜΕΝΟ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟ ΕΙΣΑΓΩΓΗ ΣΤΟ ΔΟΜΗΜΕΝΟ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟ Τρίτη Διάλεξη Εντολές Επιλογής και Επανάληψης Εντολές επιλογής Εντολή if Η πιο απλή μορφή της if συντάσσεται ως εξής: if ( συνθήκη ) Οι εντολές μέσα στα άγκιστρα αποτελούν

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

Κεφάλαιο 2.6: Είσοδος / Έξοδος εδοµένων, Μορφοποίηση εδοµένων Εξόδου. ( ιάλεξη 7) ιδάσκων: ηµήτρης Ζεϊναλιπούρ

Κεφάλαιο 2.6: Είσοδος / Έξοδος εδοµένων, Μορφοποίηση εδοµένων Εξόδου. ( ιάλεξη 7) ιδάσκων: ηµήτρης Ζεϊναλιπούρ Κεφάλαιο 2.6: Είσοδος / Έξοδος εδοµένων, Μορφοποίηση εδοµένων Εξόδου ( ιάλεξη 7) ιδάσκων: ηµήτρης Ζεϊναλιπούρ 1 Είσοδος/ Έξοδος Σε σχεδόν όλα τα προγράµµατα πρέπει να πάρουµε κάποια δεδοµένα και να δώσουµε

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

Ενδεικτική περιγραφή μαθήματος

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

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

ΕΠΛ 003: ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΕΠΙΣΤΗΜΗ ΤΗΣ ΠΛΗΡΟΦΟΡΙΚΗΣ

ΕΠΛ 003: ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΕΠΙΣΤΗΜΗ ΤΗΣ ΠΛΗΡΟΦΟΡΙΚΗΣ ΕΠΛ 003: ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΕΠΙΣΤΗΜΗ ΤΗΣ ΠΛΗΡΟΦΟΡΙΚΗΣ Δρ. Κόννης Γιώργος Πανεπιστήμιο Κύπρου - Τμήμα Πληροφορικής Προγραμματισμός Στόχοι 1 Να περιγράψουμε τις έννοιες του Υπολογιστικού Προβλήματος και του Προγράμματος/Αλγορίθμου

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

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

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

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

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

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

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

Τμήμα Χρηματοοικονομικής & Ελεγκτικής ΤΕΙ Ηπείρου Παράρτημα Πρέβεζας. Πληροφορική Ι. Αναπαράσταση αριθμών στο δυαδικό σύστημα. Δρ.

Τμήμα Χρηματοοικονομικής & Ελεγκτικής ΤΕΙ Ηπείρου Παράρτημα Πρέβεζας. Πληροφορική Ι. Αναπαράσταση αριθμών στο δυαδικό σύστημα. Δρ. Τμήμα Χρηματοοικονομικής & Ελεγκτικής ΤΕΙ Ηπείρου Παράρτημα Πρέβεζας Πληροφορική Ι Αναπαράσταση αριθμών στο δυαδικό σύστημα Δρ. Γκόγκος Χρήστος Δεκαδικό σύστημα αρίθμησης Ελληνικό - Ρωμαϊκό Σύστημα αρίθμησης

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

5 ΕΙΣΑΓΩΓΗ ΣΤΗ ΘΕΩΡΙΑ ΑΛΓΟΡΙΘΜΩΝ

5 ΕΙΣΑΓΩΓΗ ΣΤΗ ΘΕΩΡΙΑ ΑΛΓΟΡΙΘΜΩΝ 5 ΕΙΣΑΓΩΓΗ ΣΤΗ ΘΕΩΡΙΑ ΑΛΓΟΡΙΘΜΩΝ 5.1 Εισαγωγή στους αλγορίθμους 5.1.1 Εισαγωγή και ορισμοί Αλγόριθμος (algorithm) είναι ένα πεπερασμένο σύνολο εντολών οι οποίες εκτελούν κάποιο ιδιαίτερο έργο. Κάθε αλγόριθμος

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

2.2.3 Η εντολή Εκτύπωσε

2.2.3 Η εντολή Εκτύπωσε 2.2.3 Η εντολή Εκτύπωσε Η εντολή Εκτύπωσε χρησιµοποιείται προκειµένου να εµφανίσουµε κάτι στην οθόνη του υπολογιστή. Για τον λόγο αυτό ονοµάζεται και εντολή εξόδου. Ισοδύναµα µπορεί να χρησιµοποιηθεί και

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

1. ΓΛΩΣΣΑ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ C++

1. ΓΛΩΣΣΑ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ C++ Email: liliadis@fmenr.duth.gr 1. ΓΛΩΣΣΑ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ C++ Τα προγράµµατα αποτελούνται από εντολές οι οποίες γράφονται σε έναν απλό επεξεργαστή που προσφέρει και το Περιβάλλον της Visual C++. Οι εντολές

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

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

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

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

1. Πότε χρησιμοποιούμε την δομή επανάληψης; Ποιες είναι οι διάφορες εντολές (μορφές) της;

1. Πότε χρησιμοποιούμε την δομή επανάληψης; Ποιες είναι οι διάφορες εντολές (μορφές) της; 1. Πότε χρησιμοποιούμε την δομή επανάληψης; Ποιες είναι οι διάφορες (μορφές) της; Η δομή επανάληψης χρησιμοποιείται όταν μια σειρά εντολών πρέπει να εκτελεστεί σε ένα σύνολο περιπτώσεων, που έχουν κάτι

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

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

Εισαγωγή στην επιστήμη των υπολογιστών Εισαγωγή στην επιστήμη των υπολογιστών Υπολογιστές και Δεδομένα Κεφάλαιο 3ο Αναπαράσταση Αριθμών www.di.uoa.gr/~organosi 1 Δεκαδικό και Δυαδικό Δεκαδικό σύστημα 2 3 Δεκαδικό και Δυαδικό Δυαδικό Σύστημα

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

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

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

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

Κ. ΒΑΣΙΛΑΚΗΣ Γ. ΛΕΠΟΥΡΑΣ

Κ. ΒΑΣΙΛΑΚΗΣ Γ. ΛΕΠΟΥΡΑΣ ΠΑΝΕΠΙΣΤΗΜΙΟ ΠΕΛΟΠΟΝΝΗΣΟΥ ΣΧΟΛΗ ΘΕΤΙΚΩΝ ΕΠΙΣΤΗΜΩΝ ΚΑΙ ΤΕΧΝΟΛΟΓΙΑΣ ΣΗΜΕΙΩΣΕΙΣ ΓΙΑ ΤΗ ΓΛΩΣΣΑ C Κ. ΒΑΣΙΛΑΚΗΣ Γ. ΛΕΠΟΥΡΑΣ - 1 - ΠΙΝΑΚΑΣ ΠΕΡΙΕΧΟΜΕΝΩΝ 1. ΣΥΓΓΡΑΦΗ ΕΝΟΣ ΠΡΟΓΡΑΜΜΑΤΟΣ C 1 2. ΤΙ ΕΙΝΑΙ ΕΝΑ ΠΡΟΓΡΑΜΜΑ

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

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

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

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

Κεφάλαιο 5ο: Εντολές Επανάληψης

Κεφάλαιο 5ο: Εντολές Επανάληψης Χρήστος Τσαγγάρης ΕΕ ΙΠ Τµήµατος Μαθηµατικών, Πανεπιστηµίου Αιγαίου Κεφάλαιο 5ο: Εντολές Επανάληψης Η διαδικασία της επανάληψης είναι ιδιαίτερη συχνή, αφού πλήθος προβληµάτων µπορούν να επιλυθούν µε κατάλληλες

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

Τμήμα Μηχανολόγων Μηχανικών Πανεπιστήμιο Θεσσαλίας ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ Η/Υ. Βασικές Έννοιες Προγραμματισμού. Ιωάννης Λυχναρόπουλος Μαθηματικός, MSc, PhD

Τμήμα Μηχανολόγων Μηχανικών Πανεπιστήμιο Θεσσαλίας ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ Η/Υ. Βασικές Έννοιες Προγραμματισμού. Ιωάννης Λυχναρόπουλος Μαθηματικός, MSc, PhD Τμήμα Μηχανολόγων Μηχανικών Πανεπιστήμιο Θεσσαλίας ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ Η/Υ Βασικές Έννοιες Προγραμματισμού Ιωάννης Λυχναρόπουλος Μαθηματικός, MSc, PhD Αριθμητικά συστήματα Υπάρχουν 10 τύποι ανθρώπων: Αυτοί

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

Αλγοριθμική & Δομές Δεδομένων- Γλώσσα Προγραμματισμού Ι (PASCAL)

Αλγοριθμική & Δομές Δεδομένων- Γλώσσα Προγραμματισμού Ι (PASCAL) Αλγοριθμική & Δομές Δεδομένων- Γλώσσα Προγραμματισμού Ι (PASCAL) Pascal- Εισαγωγή Η έννοια του προγράμματος Η επίλυση ενός προβλήματος με τον υπολογιστή περιλαμβάνει, όπως έχει ήδη αναφερθεί, τρία εξίσου

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

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

ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΓΛΩΣΣΑ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ C ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΓΛΩΣΣΑ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ C Ιανουάριος 2013 Τι είναι ένα πρόγραμμα; Πρόγραμμα είναι μία σειρά από οδηγίες που δίνουμε στον υπολογιστή προκειμένου αυτός να κάνει κάποια συγκεκριμένη εργασία Πώς

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

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

Εξοικείωση με το πρόγραμμα DEV C++ Επικοινωνία Χρήστη - Υπολογιστή Εξοικείωση με το πρόγραμμα DEV C++ Επικοινωνία Χρήστη - Υπολογιστή Δημιουργία Νέου αρχείου Από το μενού προγραμμάτων ανοίγετε το DEV C++ Επιλέγετε File-> New-> Source File (συντόμευση πληκτρολογίου Ctrl+N)

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

ΒΑΣΙΚΟΙ ΤΥΠΟΙ ΔΕΔΟΜΕΝΩΝ

ΒΑΣΙΚΟΙ ΤΥΠΟΙ ΔΕΔΟΜΕΝΩΝ Η ΓΛΩΣΣΑ PASCAL ΒΑΣΙΚΟΙ ΤΥΠΟΙ ΔΕΔΟΜΕΝΩΝ Απλοί ή στοιχειώδης Τ.Δ. Ακέραιος τύπος Πραγματικός τύπος Λογικός τύπος Χαρακτήρας Σύνθετοι Τ.Δ. Αλφαριθμητικός 1. Ακέραιος (integer) Εύρος: -32768 έως 32767 Δήλωση

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

2 ΟΥ και 8 ΟΥ ΚΕΦΑΛΑΙΟΥ

2 ΟΥ και 8 ΟΥ ΚΕΦΑΛΑΙΟΥ ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ ΕΠΙΜΕΛΕΙΑ: ΜΑΡΙΑ Σ. ΖΙΩΓΑ ΚΑΘΗΓΗΤΡΙΑ ΠΛΗΡΟΦΟΡΙΚΗΣ ΘΕΩΡΙΑ 2 ΟΥ και 8 ΟΥ ΚΕΦΑΛΑΙΟΥ ΒΑΣΙΚΕΣ ΕΝΝΟΙΕΣ ΔΟΜΗ ΕΠΑΝΑΛΗΨΗΣ 1) Πότε χρησιμοποιείται η δομή επανάληψης

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

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

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

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

Αρχές Γλωσσών Προγραμματισμού και Μεταφραστών: Εργαστηριακή Άσκηση 2012-2013

Αρχές Γλωσσών Προγραμματισμού και Μεταφραστών: Εργαστηριακή Άσκηση 2012-2013 Αρχές Γλωσσών Προγραμματισμού και Μεταφραστών: Εργαστηριακή Άσκηση 2012-2013 27 Μαρτίου 2013 Περίληψη Σκοπός της παρούσας εργασίας είναι η εξοικείωσή σας με τις θεμελιώδεις θεωρητικές και πρακτικές πτυχές

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

ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΜΑΘΗΜΑ 7 Ο. Αριθμητικές πράξεις Τυχαίοι αριθμοί Εφαρμογές σε προβλήματα ΣΙΝΑΤΚΑΣ Ι. ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ 2010-11 1

ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΜΑΘΗΜΑ 7 Ο. Αριθμητικές πράξεις Τυχαίοι αριθμοί Εφαρμογές σε προβλήματα ΣΙΝΑΤΚΑΣ Ι. ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ 2010-11 1 ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΜΑΘΗΜΑ 7 Ο Αριθμητικές πράξεις Τυχαίοι αριθμοί Εφαρμογές σε προβλήματα ΣΙΝΑΤΚΑΣ Ι. ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ 2010-11 1 Εισαγωγή Οι αριθμητικές πράξεις που εκτελούνται στον υπολογιστή αποτελούν το

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

Η δήλωση πού δηµιουργεί αποθήκευση τών δεδοµένων ονοµαζεται ορισµός τής µεταβλητής.

Η δήλωση πού δηµιουργεί αποθήκευση τών δεδοµένων ονοµαζεται ορισµός τής µεταβλητής. Από το βιβλίο C: Βήµα-Πρός-Βήµα, Κεφάλαιο 3ο Συγγραφείς: Οµάδα Waite, Mitchell Waite και Stephen Prata Εκδότης: Μ. Γκιούρδας Ανατύπωση σε ηλεκτρονική µορφή: Αλέξανδρος Στεφανίδης 3.4 Τύποι εδοµένων τής

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

2 ΟΥ και 7 ΟΥ ΚΕΦΑΛΑΙΟΥ

2 ΟΥ και 7 ΟΥ ΚΕΦΑΛΑΙΟΥ ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ ΕΠΙΜΕΛΕΙΑ: ΜΑΡΙΑ Σ. ΖΙΩΓΑ ΚΑΘΗΓΗΤΡΙΑ ΠΛΗΡΟΦΟΡΙΚΗΣ ΘΕΩΡΙΑ 2 ΟΥ και 7 ΟΥ ΚΕΦΑΛΑΙΟΥ ΒΑΣΙΚΕΣ ΕΝΝΟΙΕΣ ΑΛΓΟΡΙΘΜΩΝ και ΔΟΜΗ ΑΚΟΛΟΥΘΙΑΣ 2.1 Να δοθεί ο ορισμός

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

Κεφάλαιο 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 (); Πρότυπο ( ήλωση) Συνάρτησης (

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

Τμήμα Πληροφορικής & Επικοινωνιών Δρ. Θεόδωρος Γ. Λάντζος 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) Η επανάληψη ενός συνόλου εντολών για όσες φορές επιθυμούμε ή

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

if(συνθήκη) {... // οµάδα εντολών } C: Από τη Θεωρία στην Εφαρµογή 5 ο Κεφάλαιο

if(συνθήκη) {... // οµάδα εντολών } C: Από τη Θεωρία στην Εφαρµογή 5 ο Κεφάλαιο C: Από τη Θεωρία στην Εφαρµογή Κεφάλαιο 5 ο Έλεγχος Προγράµµατος Γ. Σ. Τσελίκης Ν. Δ. Τσελίκας Η εντολή if (Ι) Η εντολή if είναι µία από τις βασικότερες δοµές ελέγχου ροής στη C, αλλά και στις περισσότερες

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

Διάλεξη 2η: Αλγόριθμοι και Προγράμματα

Διάλεξη 2η: Αλγόριθμοι και Προγράμματα Διάλεξη 2η: Αλγόριθμοι και Προγράμματα Τμήμα Επιστήμης Υπολογιστών, Πανεπιστήμιο Κρήτης Εισαγωγή στην Επιστήμη Υπολογιστών Βασίζεται σε διαφάνειες του Κ Παναγιωτάκη Πρατικάκης (CSD) Αλγόριθμοι και Προγράμματα

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

Προγραμματισμός Ι. Είσοδος/Έξοδος. Δημήτρης Μιχαήλ. Ακ. Έτος 2009-2010. Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο

Προγραμματισμός Ι. Είσοδος/Έξοδος. Δημήτρης Μιχαήλ. Ακ. Έτος 2009-2010. Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο Προγραμματισμός Ι Είσοδος/Έξοδος Δημήτρης Μιχαήλ Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο Ακ. Έτος 2009-2010 Είσοδος/Έξοδος Μέχρι τώρα όποτε θέλαμε να διαβάσουμε χρησιμοποιούσαμε πάντα

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

Εργαστήριο Δομημένος Προγραμματισμός (C#) Τμήμα Μηχανολογίας Νικόλαος Ζ. Ζάχαρης Καθηγητής Εφαρμογών

Εργαστήριο Δομημένος Προγραμματισμός (C#) Τμήμα Μηχανολογίας Νικόλαος Ζ. Ζάχαρης Καθηγητής Εφαρμογών Εργαστήριο Δομημένος Προγραμματισμός (C#) Τμήμα Μηχανολογίας Νικόλαος Ζ. Ζάχαρης Καθηγητής Εφαρμογών Σκοπός Να αναπτύξουν ένα πρόγραμμα όπου θα επαναλάβουν τα βήματα ανάπτυξης μιας παραθυρικής εφαρμογής.

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

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

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

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

ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ ΕΠΑΝΑΛΗΠΤΙΚΟ ΔΙΑΓΩΝΙΣΜΑ ΣΧΟΛΙΚΟΥ ΕΤΟΥΣ 2013-2014

ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ ΕΠΑΝΑΛΗΠΤΙΚΟ ΔΙΑΓΩΝΙΣΜΑ ΣΧΟΛΙΚΟΥ ΕΤΟΥΣ 2013-2014 ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ ΕΠΑΝΑΛΗΠΤΙΚΟ ΔΙΑΓΩΝΙΣΜΑ ΣΧΟΛΙΚΟΥ ΕΤΟΥΣ 2013-2014 Επιμέλεια: Ομάδα Διαγωνισμάτων από το Στέκι των Πληροφορικών Θέμα Α A1. Να γράψετε στο τετράδιό σας τους

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

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

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

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

ΠΛΗΡΟΦΟΡΙΚΗ Ι JAVA Τμήμα θεωρίας με Α.Μ. σε 8 & 9 11/10/07

ΠΛΗΡΟΦΟΡΙΚΗ Ι JAVA Τμήμα θεωρίας με Α.Μ. σε 8 & 9 11/10/07 ΠΛΗΡΟΦΟΡΙΚΗ Ι JAVA Τμήμα θεωρίας με Α.Μ. σε 8 & 9 11/10/07 Τμήμα θεωρίας: Α.Μ. 8, 9 Κάθε Πέμπτη, 11πμ-2μμ, ΑΜΦ23. Διδάσκων: Ντίνος Φερεντίνος Γραφείο 118 email: kpf3@cornell.edu Μάθημα: Θεωρία + προαιρετικό

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

ΕΡΓΑΣΤΗΡΙΟ 3: Προγραμματιστικά Περιβάλλοντα και το Πρώτο Πρόγραμμα C

ΕΡΓΑΣΤΗΡΙΟ 3: Προγραμματιστικά Περιβάλλοντα και το Πρώτο Πρόγραμμα C ΕΡΓΑΣΤΗΡΙΟ 3: Προγραμματιστικά Περιβάλλοντα και το Πρώτο Πρόγραμμα C Στο εργαστήριο αυτό, θα ασχοληθούμε με δύο προγραμματιστικά περιβάλλοντα για τη γλώσσα C: τον gcc μεταγλωττιστή της C σε περιβάλλον

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

Προγραμματισμός Η/Υ Ι (Χρήση της C) 6 η Θεωρία ΜΟΝΟΔΙΑΣΤΑΤΟΙ ΠΙΝΑΚΕΣ

Προγραμματισμός Η/Υ Ι (Χρήση της C) 6 η Θεωρία ΜΟΝΟΔΙΑΣΤΑΤΟΙ ΠΙΝΑΚΕΣ Προγραμματισμός Η/Υ Ι (Χρήση της C) 6 η Θεωρία ΜΟΝΟΔΙΑΣΤΑΤΟΙ ΠΙΝΑΚΕΣ Σκοπός του μαθήματος Σκοπός του παρόντος μαθήματος είναι να μάθετε να κάνετε εισαγωγή δεδομένων σε πίνακες και περαιτέρω επεξεργασία

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

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

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

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

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

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

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

5. ΣΥΝΑΡΤΗΣΕΙΣ. (Πρόχειρο σχέδιο - Μαθήµατος 3) p23-29. 5.1 Συναρτήσεις, που δεν επιστρέφουν κάποια τιµή

5. ΣΥΝΑΡΤΗΣΕΙΣ. (Πρόχειρο σχέδιο - Μαθήµατος 3) p23-29. 5.1 Συναρτήσεις, που δεν επιστρέφουν κάποια τιµή (Πρόχειρο σχέδιο - Μαθήµατος 3) p23-29 5. ΣΥΝΑΡΤΗΣΕΙΣ 5.1 Συναρτήσεις, που δεν επιστρέφουν κάποια τιµή Η συνάρτηση είναι void, δεν επιστρέφει κάποια τιµή. //Oρισµός συνάρτησης χωρίς παραµέτρους // 12.

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

1.1 Να καταστρώσετε ένα λογικό διάγραμμα το οποίο να απεικονίζει τη διαδικασία της λύσης μιας εξίσωσης δευτέρου βαθμού.

1.1 Να καταστρώσετε ένα λογικό διάγραμμα το οποίο να απεικονίζει τη διαδικασία της λύσης μιας εξίσωσης δευτέρου βαθμού. Απαντήσεις ασκήσεων Νίκος Μ. Χατζηγιαννάκης Ασκήσεις Κεφαλαίου 1 1.1 Να καταστρώσετε ένα λογικό διάγραμμα το οποίο να απεικονίζει τη διαδικασία της λύσης μιας εξίσωσης δευτέρου βαθμού. Η func1() επιστρέφει

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

Δυναμικές Ιστοσελίδες Εισαγωγή στην Javascript για προγραμματισμό στην πλευρά του client

Δυναμικές Ιστοσελίδες Εισαγωγή στην Javascript για προγραμματισμό στην πλευρά του client ΕΣΔ 516 Τεχνολογίες Διαδικτύου Δυναμικές Ιστοσελίδες Εισαγωγή στην Javascript για προγραμματισμό στην πλευρά του client Περιεχόμενα Περιεχόμενα Javascript και HTML Βασική σύνταξη Μεταβλητές Τελεστές Συναρτήσεις

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

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

Εισαγωγή στον Προγραμματισμό Εισαγωγή στον Προγραμματισμό Εισαγωγή Δημήτρης Μιχαήλ Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο Ακ. Έτος 2012-2013 Βιβλιογραφία "C Προγραμματισμός", Deitel & Deitel, Πέμπτη Έκδοση, Εκδόσεις

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

! Εάν ο αριθμός διαθέτει περισσότερα bits, χρησιμοποιούμε μεγαλύτερες δυνάμεις του 2. ! Προσοχή στη θέση του περισσότερο σημαντικού bit!

! Εάν ο αριθμός διαθέτει περισσότερα bits, χρησιμοποιούμε μεγαλύτερες δυνάμεις του 2. ! Προσοχή στη θέση του περισσότερο σημαντικού bit! Ιόνιο Πανεπιστήμιο Τμήμα Πληροφορικής Εισαγωγή στην Επιστήμη των Υπολογιστών 25-6 Πράξεις με δυαδικούς αριθμούς (αριθμητικές ) http://di.ionio.gr/~mistral/tp/csintro/ Αριθμοί Πράξεις με δυαδικούς αριθμούς

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

Κεφάλαιο 8.7. Πολυδιάστατοι Πίνακες (Διάλεξη 19)

Κεφάλαιο 8.7. Πολυδιάστατοι Πίνακες (Διάλεξη 19) Κεφάλαιο 8.7 Πολυδιάστατοι Πίνακες (Διάλεξη 19) Πολυδιάστατοι πίνακες Μέχρι τώρα μιλούσαμε για Μονοδιάστατους Πίνακες. ή π.χ. int age[5]= {31,28,31,30,31; για Παράλληλους πίνακες, π.χ. int id[5] = {1029,1132,1031,9991,1513;

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

Είναι πολύ πιθανό να παραξενευτείτε βλέποντας σύµβολα όπως { και *ptr++.

Είναι πολύ πιθανό να παραξενευτείτε βλέποντας σύµβολα όπως { και *ptr++. 2 Εισαγωγή στη C Από το βιβλίο C: Βήµα-Πρός-Βήµα, Κεφάλαιο 2 ο Συγγραφείς: Οµάδα Waite, Mitchell Waite και Stephen Prata Εκδότης: Μ. Γκιούρδας Ανατύπωση σε ηλεκτρονική µορφή: Αλέξανδρος Στεφανίδης Είναι

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

Τα δεδομένα στη C++ χωρίζονται σε 3 κατηγορίες: τους αριθμούς (numbers), τους χαρακτήρες (characters) και τις συμβολοσειρές (strings).

Τα δεδομένα στη C++ χωρίζονται σε 3 κατηγορίες: τους αριθμούς (numbers), τους χαρακτήρες (characters) και τις συμβολοσειρές (strings). Για να λύσουμε ένα πρόβλημα στη C++ χρειαζόμαστε δυο βασικές έννοιες. Η μια είναι οι οδηγίες εντολές, ο αλγόριθμος δηλαδή, που πρέπει να ακολουθήσουμε για να λύσουμε το πρόβλημά μας και η άλλη είναι τα

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

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

Προγραμματισμός Ι. Προχωρημένα Θέματα. Δημήτρης Μιχαήλ. Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο Προγραμματισμός Ι Προχωρημένα Θέματα Δημήτρης Μιχαήλ Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο Ανακατεύθυνση Εισόδου/Εξόδου Συνήθως η τυπική είσοδος ενός προγράμματος (stdin) προέρχεται

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

Παράδειγμα 2. Λύση & Επεξηγήσεις. Τέλος_επανάληψης Εμφάνισε "Ναι" Τέλος Α2

Παράδειγμα 2. Λύση & Επεξηγήσεις. Τέλος_επανάληψης Εμφάνισε Ναι Τέλος Α2 Διδακτική πρόταση ΕΝΟΤΗΤΑ 2η, Θέματα Θεωρητικής Επιστήμης των Υπολογιστών Κεφάλαιο 2.2. Παράγραφος 2.2.7.4 Εντολές Όσο επανάλαβε και Μέχρις_ότου Η διαπραγμάτευση των εντολών επανάληψης είναι σημαντικό

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

ΕΙΣΑΓΩΓΗ ΣΤΟΥΣ ΑΛΓΟΡΙΘΜΟΥΣ ΚΑΙ ΣΤΟΝ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΑΙΓΑΙΟΥ ΤΜΗΜΑ ΠΟΛΙΤΙΣΜΙΚΗΣ ΤΕΧΝΟΛΟΓΙΑΣ ΚΑΙ ΕΠΙΚΟΙΝΩΝΙΑΣ. Διδάσκουσα Δρ Β.

ΕΙΣΑΓΩΓΗ ΣΤΟΥΣ ΑΛΓΟΡΙΘΜΟΥΣ ΚΑΙ ΣΤΟΝ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΑΙΓΑΙΟΥ ΤΜΗΜΑ ΠΟΛΙΤΙΣΜΙΚΗΣ ΤΕΧΝΟΛΟΓΙΑΣ ΚΑΙ ΕΠΙΚΟΙΝΩΝΙΑΣ. Διδάσκουσα Δρ Β. ΕΙΣΑΓΩΓΗ ΣΤΟΥΣ ΑΛΓΟΡΙΘΜΟΥΣ ΚΑΙ ΣΤΟΝ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΑΙΓΑΙΟΥ ΤΜΗΜΑ ΠΟΛΙΤΙΣΜΙΚΗΣ ΤΕΧΝΟΛΟΓΙΑΣ ΚΑΙ ΕΠΙΚΟΙΝΩΝΙΑΣ Διδάσκουσα Δρ Β. Καβακλή Χειμερινό Εξάμηνο 2001 1 Σύνολο χαρακτήρων της Pascal Για

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

Διάλεξη 5η: Εντολές Επανάληψης

Διάλεξη 5η: Εντολές Επανάληψης Διάλεξη 5η: Εντολές Επανάληψης Τμήμα Επιστήμης Υπολογιστών, Πανεπιστήμιο Κρήτης Εισαγωγή στην Επιστήμη Υπολογιστών Βασίζεται σε διαφάνειες του Κ Παναγιωτάκη Πρατικάκης (CSD) Εντολές Επανάληψης CS100, 2015-2016

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

ΕΡΓΑΣΤΗΡΙΟ 6: Συναρτήσεις και Αναδρομή

ΕΡΓΑΣΤΗΡΙΟ 6: Συναρτήσεις και Αναδρομή ΕΡΓΑΣΤΗΡΙΟ 6: Συναρτήσεις και Αναδρομή Στο εργαστήριο αυτό θα μάθουμε για τη χρήση συναρτήσεων με σκοπό την κατασκευή αυτόνομων τμημάτων προγραμμάτων που υλοποιούν μία συγκεκριμένη διαδικασία, τα οποία

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

Γ' ΛΥΚΕΙΟΥ ΤΕΧΝΟΛΟΓΙΚΗ ΚΑΤΕΥΘΥΝΣΗ ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ ΕΚΦΩΝΗΣΕΙΣ ÏÅÖÅ

Γ' ΛΥΚΕΙΟΥ ΤΕΧΝΟΛΟΓΙΚΗ ΚΑΤΕΥΘΥΝΣΗ ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ ΕΚΦΩΝΗΣΕΙΣ ÏÅÖÅ 1 Γ' ΛΥΚΕΙΟΥ ΤΕΧΝΟΛΟΓΙΚΗ ΚΑΤΕΥΘΥΝΣΗ ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ ΘΕΜΑ 1 ο ΕΚΦΩΝΗΣΕΙΣ Α. Να γράψετε στην κόλλα σας τον αριθµό καθεµιάς από τις παρακάτω προτάσεις 1 5 και δίπλα τη λέξη

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

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

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

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

Εργαστήριο ΨΗΦΙΑΚΗ ΛΟΓΙΚΗ. Εισαγωγή

Εργαστήριο ΨΗΦΙΑΚΗ ΛΟΓΙΚΗ. Εισαγωγή Εισαγωγή Εργαστήριο ΨΗΦΙΑΚΗ ΛΟΓΙΚΗ Ξεκινάµε την εργαστηριακή µελέτη της Ψηφιακής Λογικής των Η/Υ εξετάζοντας αρχικά τη µορφή των δεδοµένων που αποθηκεύουν και επεξεργάζονται οι υπολογιστές και προχωρώντας

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

S, (5, -3, 34, -23, 7) ( /, @, *, _

S, (5, -3, 34, -23, 7) ( /, @, *, _ 1 Τι είναι αρχείο Οι πληροφορίες που καλείται να διαχειριστεί ο Η/Υ είναι τόσες πολλές που η μνήμη του δεν φτάνει να τις επεξεργαστεί όλες μαζί. Γι αυτό τον λόγο αποθηκεύονται σε μονάδες αποθήκευσης (π.χ

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

Η Γλώσσα Προγραμματισμού C (Μέρος 2 - Οι Bασικές Εντολές της C) Οι Βασικοί Τελεστές της C

Η Γλώσσα Προγραμματισμού C (Μέρος 2 - Οι Bασικές Εντολές της C) Οι Βασικοί Τελεστές της C Η Γλώσσα Προγραμματισμού C (Μέρος 2 - Οι Bασικές Εντολές της C) Οι Βασικοί Τελεστές της C Η C, όπως όλες οι γλώσσες προγραμμστισμού, χρησιμοποιεί τελεστές για να εκτελέσει τις αριθμητικές λειτουργίες.

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

1ο. Η αριθµητική του υπολογιστή

1ο. Η αριθµητική του υπολογιστή 1ο. Η αριθµητική του υπολογιστή 1.1 Τί είναι Αριθµητική Ανάλυση Υπάρχουν πολλά προβλήµατα στη µαθηµατική επιστήµη για τα οποία δεν υπάρχουν αναλυτικές εκφράσεις λύσεων. Στις περιπτώσεις αυτές έχουν αναπτυχθεί

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

Επιλογή και επανάληψη. Λογική έκφραση ή συνθήκη

Επιλογή και επανάληψη. Λογική έκφραση ή συνθήκη Επιλογή και επανάληψη Η ύλη που αναπτύσσεται σε αυτό το κεφάλαιο είναι συναφής µε την ύλη που αναπτύσσεται στο 2 ο κεφάλαιο. Όπου υπάρχουν διαφορές αναφέρονται ρητά. Προσέξτε ιδιαίτερα, πάντως, ότι στο

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

2. Εντολές Εισόδου - Ο Επαναληπτικός Βρόγχος for - Χαρακτήρες διαφυγής

2. Εντολές Εισόδου - Ο Επαναληπτικός Βρόγχος for - Χαρακτήρες διαφυγής 2. Εντολές Εισόδου - Ο Επαναληπτικός Βρόγχος for - Χαρακτήρες διαφυγής Εισαγωγή Αφού είδαµε γραµµή - γραµµή πως θα εκτελεσθεί το πρόγραµµα 2, θα δούµε τώρατοπρόγραµµα στην ολότητά του, τί ακριβώς κάνει

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

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

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

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

Visual Basic Βασικές Έννοιες

Visual Basic Βασικές Έννοιες Visual Basi Βασικές Έννοιες «Είδα στον ύπνο µου ότι η ζωή είναι χαρά. Ξύπνησα και είδα ότι είναι χρέος. Αγωνίστηκα και είδα ότι τo χρέος είναι χαρά.» Ραµπριτανάθ Ταγκόρ Κουλλάς Χρίστος www.oullas.om oullas

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

Δυαδικό Σύστημα Αρίθμησης

Δυαδικό Σύστημα Αρίθμησης Δυαδικό Σύστημα Αρίθμησης Το δυαδικό σύστημα αρίθμησης χρησιμοποιεί δύο ψηφία. Το 0 και το 1. Τα ψηφία ενός αριθμού στο δυαδικό σύστημα αρίθμησης αντιστοιχίζονται σε δυνάμεις του 2. Μονάδες, δυάδες, τετράδες,

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

Είδη εντολών. Απλές εντολές. Εντολές ελέγχου. Εκτελούν κάποια ενέργεια. Ορίζουν τον τρόπο με τον οποίο εκτελούνται άλλες εντολές

Είδη εντολών. Απλές εντολές. Εντολές ελέγχου. Εκτελούν κάποια ενέργεια. Ορίζουν τον τρόπο με τον οποίο εκτελούνται άλλες εντολές Μορφές Εντολών Είδη εντολών Απλές εντολές Εκτελούν κάποια ενέργεια Εντολές ελέγχου Ορίζουν τον τρόπο με τον οποίο εκτελούνται άλλες εντολές Εντολές και παραστάσεις Μιαεντολήείναιμιαπαράστασηπου ακολουθείται

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

ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ ΜΑΡΙΑ Σ. ΖΙΩΓΑ ΚΑΘΗΓΗΤΡΙΑ ΠΛΗΡΟΦΟΡΙΚΗΣ ΕΙΣΑΓΩΓΗ ΣΤΟΝ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟ

ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ ΜΑΡΙΑ Σ. ΖΙΩΓΑ ΚΑΘΗΓΗΤΡΙΑ ΠΛΗΡΟΦΟΡΙΚΗΣ ΕΙΣΑΓΩΓΗ ΣΤΟΝ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟ ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ ΕΠΙΜΕΛΕΙΑ: ΜΑΡΙΑ Σ. ΖΙΩΓΑ ΚΑΘΗΓΗΤΡΙΑ ΠΛΗΡΟΦΟΡΙΚΗΣ ΘΕΩΡΙΑ 6 ΟΥ ΚΕΦΑΛΑΙΟΥ ΕΙΣΑΓΩΓΗ ΣΤΟΝ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟ 6.1 Τι ονοµάζουµε πρόγραµµα υπολογιστή; Ένα πρόγραµµα

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

Πρόλογος. if (παράσταση) εντολή1 else εντολή2. Από εδώ και πέρα θα αναφέρεται ως K&R.

Πρόλογος. if (παράσταση) εντολή1 else εντολή2. Από εδώ και πέρα θα αναφέρεται ως K&R. Περιεχόμενα Πρόλογος v ΚΕΦΑΛΑΙΟ 1 Προπαρασκευαστική εισαγωγή 1 ΚΕΦΑΛΑΙΟ 2 Τύποι, τελεστές, και παραστάσεις 43 ΚΕΦΑΛΑΙΟ 3 Η ροή του ελέγχου 59 ΚΕΦΑΛΑΙΟ 4 Συναρτήσεις και δομή του προγράμματος 69 ΚΕΦΑΛΑΙΟ

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

10. Με πόσους και ποιους τρόπους μπορεί να αναπαρασταθεί ένα πρόβλημα; 11. Περιγράψτε τα τρία στάδια αντιμετώπισης ενός προβλήματος.

10. Με πόσους και ποιους τρόπους μπορεί να αναπαρασταθεί ένα πρόβλημα; 11. Περιγράψτε τα τρία στάδια αντιμετώπισης ενός προβλήματος. 1. Δώστε τον ορισμό του προβλήματος. 2. Σι εννοούμε με τον όρο επίλυση ενός προβλήματος; 3. Σο πρόβλημα του 2000. 4. Σι εννοούμε με τον όρο κατανόηση προβλήματος; 5. Σι ονομάζουμε χώρο προβλήματος; 6.

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

o AND o IF o SUMPRODUCT

o AND o IF o SUMPRODUCT Πληροφοριακά Εργαστήριο Management 1 Information Συστήματα Systems Διοίκησης ΤΕΙ Τμήμα Ελεγκτικής Ηπείρου Χρηματοοικονομικής (Παράρτημα Πρέβεζας) και Αντικείµενο: Μοντελοποίηση προβλήµατος Θέµατα που καλύπτονται:

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

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

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

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

Αρχιτεκτονική Υπολογιστών Ασκήσεις Εργαστηρίου

Αρχιτεκτονική Υπολογιστών Ασκήσεις Εργαστηρίου Αρχιτεκτονική Υπολογιστών Ασκήσεις Εργαστηρίου Ενότητα: ΕΡΓΑΣΤΗΡΙΑΚΗ ΑΣΚΗΣΗ No 05 Δρ. Μηνάς Δασυγένης mdasyg@ieee.org Τμήμα Μηχανικών Πληροφορικής και Τηλεπικοινωνιών Εργαστήριο Ψηφιακών Συστημάτων και

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

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

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

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

Ψηφιακοί Υπολογιστές

Ψηφιακοί Υπολογιστές 1 η Θεµατική Ενότητα : υαδικά Συστήµατα Ψηφιακοί Υπολογιστές Παλαιότερα οι υπολογιστές χρησιµοποιούνταν για αριθµητικούς υπολογισµούς Ψηφίο (digit) Ψηφιακοί Υπολογιστές Σήµατα (signals) : διακριτά στοιχεία

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

ΕΠΑΝΑΛΗΠΤΙΚΑ ΘΕΜΑΤΑ 2013 ΕΚΦΩΝΗΣΕΙΣ

ΕΠΑΝΑΛΗΠΤΙΚΑ ΘΕΜΑΤΑ 2013 ΕΚΦΩΝΗΣΕΙΣ ΤΑΞΗ: ΚΑΤΕΥΘΥΝΣΗ: ΜΑΘΗΜΑ: Γ ΓΕΝΙΚΟΥ ΛΥΚΕΙΟΥ ΤΕΧΝΟΛΟΓΙΚΗ (2ος Κύκλος) ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ ΕΚΦΩΝΗΣΕΙΣ ΘΕΜΑ Α Α1. Να γράψετε στο τετράδιό σας τον αριθµό καθεµιάς από τις παρακάτω

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

ΠΡΟΓΡΜΜΑΤΑ ΣΕ C. Γράψτε σε γλώσσα προγραμματισμού C τη συνάρτηση:

ΠΡΟΓΡΜΜΑΤΑ ΣΕ C. Γράψτε σε γλώσσα προγραμματισμού C τη συνάρτηση: ΠΡΟΓΡΜΜΑΤΑ ΣΕ C Γράψτε σε γλώσσα προγραμματισμού C τη συνάρτηση: int b_to_d(int dyad[16]) που δέχεται ως είσοδο έναν θετικό ακέραιο δυαδικό αριθμό με τη μορφή πίνακα δυαδικών ψηφίων και επιστρέφει τον

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

7. Βασικά στοιχεία προγραµµατισµού.

7. Βασικά στοιχεία προγραµµατισµού. 7. Βασικά στοιχεία προγραµµατισµού. ΗΜ01-Θ1Γ Δίνονται οι παρακάτω έννοιες: 1. Λογικός τύπος δεδοµένων 2. Επιλύσιµο 3. Ακέραιος τύπος δεδοµένων 4. Περατότητα 5. Μεταβλητή 6. Ηµιδοµηµένο 7. Πραγµατικός τύπος

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

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

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

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

53 Χρόνια ΦΡΟΝΤΙΣΤΗΡΙΑ ΜΕΣΗΣ ΕΚΠΑΙΔΕΥΣΗΣ Σ Α Β Β Α Ϊ Δ Η Μ Α Ν Ω Λ Α Ρ Α Κ Η

53 Χρόνια ΦΡΟΝΤΙΣΤΗΡΙΑ ΜΕΣΗΣ ΕΚΠΑΙΔΕΥΣΗΣ Σ Α Β Β Α Ϊ Δ Η Μ Α Ν Ω Λ Α Ρ Α Κ Η 53 Χρόνια ΦΡΟΝΤΙΣΤΗΡΙΑ ΜΕΣΗΣ ΕΚΠΑΙΔΕΥΣΗΣ Σ Α Β Β Α Ϊ Δ Η Μ Α Ν Ω Λ Α Ρ Α Κ Η ΠΑΓΚΡΑΤΙ: Φιλολάου & Εκφαντίδου 26 : 210/76.01.470 210/76.00.179 ΘΕΜΑ Α Α1. Να γράψετε στο τετράδιό σας τον αριθμό καθεμιάς

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

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

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

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

2 Ορισμός Κλάσεων. Παράδειγμα: Μηχανή για Εισιτήρια. Δομή μιας Κλάσης. Ο Σκελετός της Κλάσης για τη Μηχανή. Ορισμός Πεδίων 4/3/2008

2 Ορισμός Κλάσεων. Παράδειγμα: Μηχανή για Εισιτήρια. Δομή μιας Κλάσης. Ο Σκελετός της Κλάσης για τη Μηχανή. Ορισμός Πεδίων 4/3/2008 Παράδειγμα: Μηχανή για Εισιτήρια 2 Ορισμός Κλάσεων Σύνταξη κλάσης: πεδία, κατασκευαστές, μέθοδοι Ένας αυτόματος εκδότης εισιτηρίων είναι μια μηχανή που δέχεται χρήματα και εκδίδει ένα εισιτήριο. Εκδίδει

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

Διδακτική της Πληροφορικής ΙΙ

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

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