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

Μέγεθος: 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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

ΠΕΡΙΕΧΟΜΕΝΑ ΜΕΡΟΣ Α : ΘΕΜΑΤΑ ΒΑΣΗΣ 1. ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΠΛΗΡΟΦΟΡΙΚΗ...11 2. ΑΡΙΘΜΗΤΙΚΑ ΣΥΣΤΗΜΑΤΑ...30 ΠΕΡΙΕΧΟΜΕΝΑ ΜΕΡΟΣ Α : ΘΕΜΑΤΑ ΒΑΣΗΣ 1. ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΠΛΗΡΟΦΟΡΙΚΗ...11 1.1 Τι είναι Πληροφορική;...11 1.1.1 Τι είναι η Πληροφορική;...12 1.1.2 Τι είναι ο Υπολογιστής;...14 1.1.3 Τι είναι το Υλικό και το

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

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

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

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

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

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

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

Βασικά Στοιχεία της Java

Βασικά Στοιχεία της Java Βασικά Στοιχεία της Java Παύλος Εφραιμίδης Java Βασικά Στοιχεία της γλώσσας Java 1 Τύποι Δεδομένων Η Java έχει δύο κατηγορίες τύπων δεδομένων: πρωτογενείς (primitive) τύπους δεδομένων αναφορές Java Βασικά

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

Τύποι, Σταθερές και Μεταβλητές

Τύποι, Σταθερές και Μεταβλητές ΚΕΦΑΛΑΙΟ 3 Τύποι, Σταθερές και Μεταβλητές Η έννοια της μεταβλητής Γενικά μπορούμε να πούμε ότι η έννοια της μεταβλητής στον προγραμματισμό είναι άμεσα συνδεδεμένη με την έννοια που αυτή έχει σε μαθηματικό

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Κεφάλαιο 5.4-5.11: Επαναλήψεις (oι βρόγχοιfor, do-while) (Διάλεξη 10) Εντολές Επανάληψης που θα καλυφθούν σήμερα

Κεφάλαιο 5.4-5.11: Επαναλήψεις (oι βρόγχοιfor, do-while) (Διάλεξη 10) Εντολές Επανάληψης που θα καλυφθούν σήμερα Κεφάλαιο 5.4-5.11: Επαναλήψεις (oι βρόγχοιfor, do-while) (Διάλεξη 10) 10-1 Εντολές Επανάληψης που θα καλυφθούν σήμερα Διάλεξη 9 - Δευτέρα while() τελεστές postfix/prefix (++, --,...) και σύνθετοι τελεστές

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

Βήματα: μνήμη 2. Αλγόριθμος βήματα που περιγράφουν την επεξεργασία των δεδομένων. Δομές Δεδομένων + Αλγόριθμοι = Προγράμματα

Βήματα: μνήμη 2. Αλγόριθμος βήματα που περιγράφουν την επεξεργασία των δεδομένων. Δομές Δεδομένων + Αλγόριθμοι = Προγράμματα Απλά Προγράμματα Βήματα: 1. Καθορισμός παράστασης δεδομένων στη μνήμη 2. Αλγόριθμος βήματα που περιγράφουν την επεξεργασία των δεδομένων Δομές Δεδομένων + Αλγόριθμοι = Προγράμματα Οι Βασικοί κανόνες Κατανόηση

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

3 Αλληλεπίδραση Αντικειμένων

3 Αλληλεπίδραση Αντικειμένων Αφαίρεση και Αρθρωσιμότητα 3 Αλληλεπίδραση Αντικειμένων Πώς συνεργάζονται τα αντικείμενα που δημιουργούμε Αφαίρεση (abstraction) είναι η δυνατότητα να αγνοούμε τις λεπτομέρειες και να εστιάζουμε την προσοχή

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

Εισαγωγή στις Συναρτήσεις

Εισαγωγή στις Συναρτήσεις Εισαγωγή στις Συναρτήσεις Η φιλοσοφία σχεδίασης της C βασίζεται στη χρήση των συναρτήσεων. Έχουμε ήδη δει και χρησιμοποιήσει πολλές συναρτήσεις που έχει το σύστημα, όπως είναι οι printf(), scanf(),αλλά

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

Περιεχόμενο: Δομή υπολογιστή Συστήματα αρίθμησης

Περιεχόμενο: Δομή υπολογιστή Συστήματα αρίθμησης Περιεχόμενο: Δομή υπολογιστή Συστήματα αρίθμησης ΟΜΗ ΤΟΥ ΥΠΟΛΟΓΙΣΤΗ Ένας υπολογιστής αποτελείται από την Κεντρική Μονάδα Επεξεργασίας (ΚΜΕ), τη µνήµη, τις µονάδες εισόδου/εξόδου και το σύστηµα διασύνδεσης

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

Από την πρώτη στην τέταρτη έκδοση...

Από την πρώτη στην τέταρτη έκδοση... Από την πρώτη στην τέταρτη έκδοση... Όταν το Φεβρουάριο του 2004 έστειλα την πρότασή μου στον ΚΛΕΙΔΑΡΙΘ- ΜΟ για την έκδοση ενός βιβλίου για τη γλώσσα C, δεν θα μπορούσα ποτέ να φανταστώ ότι οχτώ χρόνια

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

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

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

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

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

ΠΛΗΡΟΦΟΡΙΚΗ Ι JAVA Τμήμα θεωρίας με Α.Μ. σε 3, 7, 8 & 9 22/11/07 Ακαδ έτος 2007-2008 ΠΛΗΡΟΦΟΡΙΚΗ Ι Φερεντίνος 22/11/07 ΠΛΗΡΟΦΟΡΙΚΗ Ι JAVA Τμήμα θεωρίας με ΑΜ σε 3, 7, 8 & 9 22/11/07 Παράδειγμα με if/else if και user input: import javautil*; public class Grades public

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

Διάλεξη 6: Δείκτες και Πίνακες

Διάλεξη 6: Δείκτες και Πίνακες Τμήμα Πληροφορικής Πανεπιστήμιο Κύπρου ΕΠΛ132 Αρχές Προγραμματισμού II Διάλεξη 6: Δείκτες και Πίνακες (Κεφάλαιο 12, KNK-2ED) Δημήτρης Ζεϊναλιπούρ http://www.cs.ucy.ac.cy/courses/epl132 6-1 Περιεχόμενο

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

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

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

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

Περιεχόµενα. I Βασικές Γνώσεις 1

Περιεχόµενα. I Βασικές Γνώσεις 1 Περιεχόµενα I Βασικές Γνώσεις 1 1 Μοντελοποίηση Προγραµµάτων 3 1.1 Ψευδογλώσσα....................... 6 1.2 Διαγράµµατα Ροής..................... 6 1.3 Παραδείγµατα σε Ψευδογλώσσα και Διαγράµµατα Ροής.

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

ΑΡΧΙΤΕΚΤΟΝΙΚΗ ΥΠΟΛΟΓΙΣΤΩΝ. Κεφάλαιο 3

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

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

ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ Γ ΛΥΚΕΙΟΥ ΤΕΧΝΟΛΟΓΙΚΗΣ ΚΑΤΕΥΘΥΝΣΗΣ (ΚΥΚΛΟΥ ΠΛΗΡΟΦΟΡΙΚΗΣ & ΥΠΗΡΕΣΙΩΝ) 2007 ΕΚΦΩΝΗΣΕΙΣ

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

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

ιαχείριση Πληροφοριών στο ιαδίκτυο

ιαχείριση Πληροφοριών στο ιαδίκτυο ιαχείριση Πληροφοριών στο ιαδίκτυο Εργαστήριο (Φυλλάδιο 8) ΤΕΙ Καβάλας - Σχολή ιοίκησης & Οικονοµίας Τµήµα ιαχείρισης Πληροφοριών ιδάσκων: Μαρδύρης Βασίλειος, ιπλ. Ηλ. Μηχανικός & Μηχ. Υπολογιστών, MSc

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

Φροντιστήρια. Σύντομη Ιστορία της C. Μια Σύγκριση των Γλωσσών Προγραμματισμού. Τα Πλεονεκτήματα της C

Φροντιστήρια. Σύντομη Ιστορία της C. Μια Σύγκριση των Γλωσσών Προγραμματισμού. Τα Πλεονεκτήματα της C Φροντιστήρια Σύντομη Ιστορία της C Η γλώσσα προγραμματισμού C δημιουργήθηκε από τον Dennis Ritchie στα Bell Labs το 1972 όταν αυτός και ο Ken Thompson ασχολούνταν με τον σχεδιασμό του λειτουργικού συστήματος

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

Μικροεπεξεργαστές - Μικροελεγκτές Ψηφιακά Συστήματα

Μικροεπεξεργαστές - Μικροελεγκτές Ψηφιακά Συστήματα Μικροεπεξεργαστές - Μικροελεγκτές Ψηφιακά Συστήματα 1. Ποια είναι η σχέση της έννοιας του μικροεπεξεργαστή με αυτή του μικροελεγκτή; Α. Ο μικροεπεξεργαστής εμπεριέχει τουλάχιστο έναν μικροελεγκτή. Β. Ο

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

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

ΤΕΙ ΔΥΤΙΚΗΣ ΕΛΛΑΔΑΣ ΤΜΗΜΑ ΔΙΟΙΚΗΣΗΣ ΕΠΙΧΕΙΡΗΣΕΩΝ (ΜΕΣΟΛΟΓΓΙ) ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ Η/Υ ΤΕΙ ΔΥΤΙΚΗΣ ΕΛΛΑΔΑΣ ΤΜΗΜΑ ΔΙΟΙΚΗΣΗΣ ΕΠΙΧΕΙΡΗΣΕΩΝ (ΜΕΣΟΛΟΓΓΙ) ΕΡΓΑΣΤΗΡΙΑΚΕΣ ΣΗΜΕΙΩΣΕΙΣ ΓΙΑ ΤΟ ΜΑΘΗΜΑ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ Η/Υ «Βασική Θεωρία, Παραδείγματα και Εργαστηριακές Ασκήσεις για την Εισαγωγή στον Προγραμματισμό

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

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

Εισαγωγή στον Προγραμματισμό Εισαγωγή στον Προγραμματισμό Ενότητα 12 Δομές (Structures) Πανεπιστήμιο Αιγαίου Τμήμα Μηχανικών Πληροφοριακών και Επικοινωνιακών Συστημάτων Αφαιρετικότητα Με τις συναρτήσεις επιτυγχάνουμε αφαιρετικότητα

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

Γενικά Στοιχεία Ηλεκτρονικού Υπολογιστή

Γενικά Στοιχεία Ηλεκτρονικού Υπολογιστή Γενικά Στοιχεία Ηλεκτρονικού Υπολογιστή 1. Ηλεκτρονικός Υπολογιστής Ο Ηλεκτρονικός Υπολογιστής είναι μια συσκευή, μεγάλη ή μικρή, που επεξεργάζεται δεδομένα και εκτελεί την εργασία του σύμφωνα με τα παρακάτω

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

Πληρουορική Γ Γσμμασίοσ

Πληρουορική Γ Γσμμασίοσ Πληρουορική Γ Γσμμασίοσ Προγραμματισμός και Αλγόριθμοι Από το και τημ Χελώμα στημ Ευριπίδης Βραχνός http://evripides.mysch.gr/ 2014 2015 1 Προγραμματισμός Ζάννειο Πρότυπο Πειραματικό Γυμνάσιο Πειραιά Ενότητα:

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

Κεφάλαιο 2.1-2.4: Εισαγωγή στην C. ( ιαλέξεις 3-4) ιδάσκων: ηµήτρης Ζεϊναλιπούρ

Κεφάλαιο 2.1-2.4: Εισαγωγή στην C. ( ιαλέξεις 3-4) ιδάσκων: ηµήτρης Ζεϊναλιπούρ Κεφάλαιο 2.1-2.4: Εισαγωγή στην C ( ιαλέξεις 3-4) ιδάσκων: ηµήτρης Ζεϊναλιπούρ Περιεχόµενα Εισαγωγή στην C: Σύνταξη και Σηµασιολογία σχόλια µεταβλητές και σταθερές τύποι δεδοµένων Μετά αυτές τις δυο διαλέξεις

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

ΠΡΟΧΕΙΡΕΣ ΣΗΜΕΙΩΣΕΙΣ ΣΤΗΝ ΓΛΩΣΣΑ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ C. Χρήστος Αρβανίτης

ΠΡΟΧΕΙΡΕΣ ΣΗΜΕΙΩΣΕΙΣ ΣΤΗΝ ΓΛΩΣΣΑ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ C. Χρήστος Αρβανίτης ΠΡΟΧΕΙΡΕΣ ΣΗΜΕΙΩΣΕΙΣ ΣΤΗΝ ΓΛΩΣΣΑ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ C Χρήστος Αρβανίτης 1 Εισαγωγή Στις σηµειώσεις αυτές καταγράφεται το περιεχόµενο των διαλέξεων που δόθηκαν κατα το ακαδ. έτος 2008 στο Πανεπιστήµιο Κρήτης

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

3.2 3.3 3.4 ΠΡΑΞΕΙΣ ΜΕ ΕΚΑ ΙΚΟΥΣ

3.2 3.3 3.4 ΠΡΑΞΕΙΣ ΜΕ ΕΚΑ ΙΚΟΥΣ 1 3.2 3.3 3.4 ΠΡΑΞΕΙΣ ΜΕ ΕΚΑ ΙΚΟΥΣ ΥΠΟΛΟΓΙΣΜΟΙ ΜΕ ΚΟΜΠΙΟΥΤΕΡΑΚΙ ΤΥΠΟΠΟΙΗΜΕΝΗ ΜΟΡΦΗ ΑΡΙΘΜΩΝ ΘΕΩΡΙΑ 1. Πρόσθεση αφαίρεση δεκαδικών Γίνονται όπως και στους φυσικούς αριθµούς. Προσθέτουµε ή αφαιρούµε τα ψηφία

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

ΚΕΦΑΛΑΙΟ 1ο 3ο. ΚΕΦΑΛΑΙΟ 5ο 6ο. ΚΕΦΑΛΑΙΟ 7ο. Δομημένος Προγραμματισμός - Γενικές Ασκήσεις Επανάληψης

ΚΕΦΑΛΑΙΟ 1ο 3ο. ΚΕΦΑΛΑΙΟ 5ο 6ο. ΚΕΦΑΛΑΙΟ 7ο. Δομημένος Προγραμματισμός - Γενικές Ασκήσεις Επανάληψης ΚΕΦΑΛΑΙΟ 1ο 3ο 1. Συμπληρώστε τα κενά με τη λέξη που λείπει. α. Ένα πρόβλημα το χωρίζουμε σε άλλα απλούστερα, όταν είναι ή όταν έχει τρόπο επίλυσης. β. Η επίλυση ενός προβλήματος προϋποθέτει την του. γ.

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

http://cpp.bytes.gr 1

http://cpp.bytes.gr 1 Απαντήσεις ασκήσεων βιβλίου Ασκήσεις Κεφαλαίου 1 1.1 Να καταστρώσετε ένα λογικό διάγραµµα το οποίο να απεικονίζει την διαδικασία της λύσης µιας εξίσωσης δευτέρου βαθµού. http://cpp.bytes.gr 1 Νίκος Μ.

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

Διάλεξη 20: Χαμηλού Επιπέδου Προγραμματισμός II

Διάλεξη 20: Χαμηλού Επιπέδου Προγραμματισμός II Τμήμα Πληροφορικής Πανεπιστήμιο Κύπρου ΕΠΛ132 Αρχές Προγραμματισμού II Διάλεξη 20: Χαμηλού Επιπέδου Προγραμματισμός II (Κεφάλαια 25.2, KNK-2ED) Δημήτρης Ζεϊναλιπούρ http://www.cs.ucy.ac.cy/courses/epl132

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

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

Αλγοριθμική & Δομές Δεδομένων- Γλώσσα Προγραμματισμού Ι (PASCAL) Βασικές αλγοριθμικές δομές Αλγοριθμική & Δομές Δεδομένων- Γλώσσα Προγραμματισμού Ι (PASCAL) Βασικές αλγοριθμικές δομές Βασικές Αλγοριθμικές Δομές 2 Εισαγωγή Οι αλγοριθμικές δομές εκφράζουν διαφορετικούς τρόπους γραφής ενός αλγορίθμου.

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

Διάλεξη 18η: Διαχείρηση Αρχείων

Διάλεξη 18η: Διαχείρηση Αρχείων Διάλεξη 18η: Διαχείρηση Αρχείων Τμήμα Επιστήμης Υπολογιστών, Πανεπιστήμιο Κρήτης Εισαγωγή στην Επιστήμη Υπολογιστών Πρατικάκης (CSD) Αρχεία CS100, 2015-2016 1 / 24 Η βιβλιοθήκη Εισόδου/Εξόδου Στο stdioh

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

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

7. Βασικά στοιχεία προγραμματισμού 7. Βασικά στοιχεία προγραμματισμού 146 Ανάπτυξη εφαρμογών σε προγραμματιστικό περιβάλλον Εισαγωγή Κάθε γλώσσα προγραμματισμού, όπως αναφέρθηκε, έχει το δικό της λεξιλόγιο και τα προγράμματα της ακολουθούν

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

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

ΔΙΑΓΩΝΙΣΜΑ ΠΡΟΣΟΜΟΙΩΣΗΣ ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ ΔΙΑΓΩΝΙΣΜΑ ΠΡΟΣΟΜΟΙΩΣΗΣ ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ ΘΕΜΑ 1 (Α) Σημειώστε δίπλα σε κάθε πρόταση «Σ» ή «Λ» εφόσον είναι σωστή ή λανθασμένη αντίστοιχα. 1. Τα συντακτικά λάθη ενός προγράμματος

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

ΕΝ ΕΙΚΤΙΚΑ ΣΧΕ ΙΑ ΛΥΣΕΩΝ - ΥΠΟ ΕΙΞΕΙΣ

ΕΝ ΕΙΚΤΙΚΑ ΣΧΕ ΙΑ ΛΥΣΕΩΝ - ΥΠΟ ΕΙΞΕΙΣ ΕΛΛΗΝΙΚΟ ΑΝΟΙΚΤΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΠΛΗ42 - ΕΙ ΙΚΑ ΘΕΜΑΤΑ ΤΕΧΝΟΛΟΓΙΑΣ ΛΟΓΙΣΜΙΚΟΥ 2η ΓΡΑΠΤΗ ΕΡΓΑΣΙΑ ΑΚΑ ΗΜΑΪΚΟΥ ΕΤΟΥΣ 2009-2010 2 oς Τόµος ΕΝ ΕΙΚΤΙΚΑ ΣΧΕ ΙΑ ΛΥΣΕΩΝ - ΥΠΟ ΕΙΞΕΙΣ ΕΡΓΑΣΙΑ 2 i. υναµική τεχνική επικύρωσης:

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

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

ΠΡΟΓΡΑΜΜΑ ΣΠΟΥ ΩΝ ΠΛΗΡΟΦΟΡΙΚΗΣ ΠΡΟΓΡΑΜΜΑ ΣΠΟΥ ΩΝ ΠΛΗΡΟΦΟΡΙΚΗΣ Θεµατική Ενότητα ΠΛΗ 21: Ψηφιακά Συστήµατα Ακαδηµαϊκό Έτος 2009 2010 Γραπτή Εργασία #3 Παράδοση: 28 Μαρτίου 2010 Άσκηση 1 (15 µονάδες) Ένας επεξεργαστής υποστηρίζει τόσο

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

Γ' ΛΥΚΕΙΟΥ ΤΕΧΝΟΛΟΓΙΚΗ ΚΑΤΕΥΘΥΝΣΗ ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ. Óõíåéñìüò ΕΚΦΩΝΗΣΕΙΣ

Γ' ΛΥΚΕΙΟΥ ΤΕΧΝΟΛΟΓΙΚΗ ΚΑΤΕΥΘΥΝΣΗ ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ. Óõíåéñìüò ΕΚΦΩΝΗΣΕΙΣ 1 ΘΕΜΑ 1 o Γ' ΛΥΚΕΙΟΥ ΤΕΧΝΟΛΟΓΙΚΗ ΚΑΤΕΥΘΥΝΣΗ ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ ΕΚΦΩΝΗΣΕΙΣ Α. Να γράψετε στην κόλλα σας τον αριθµό καθεµιάς από τις παρακάτω προτάσεις 1 5 και δίπλα τη λέξη

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

Διάλεξη 06: Συνδεδεμένες Λίστες & Εφαρμογές Στοιβών και Ουρών

Διάλεξη 06: Συνδεδεμένες Λίστες & Εφαρμογές Στοιβών και Ουρών ΕΠΛ231 Δομές Δεδομένων και Αλγόριθμοι 1 Διάλεξη 06: Συνδεδεμένες Λίστες & Εφαρμογές Στοιβών και Ουρών Στην ενότητα αυτή θα μελετηθούν τα εξής επιμέρους θέματα: - Υλοποίηση ΑΤΔ με Συνδεδεμένες Λίστες -

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

III. Πως μετατρέπεται το πηγαίο πρόγραμμα σε εκτελέσιμο πρόγραμμα;

III. Πως μετατρέπεται το πηγαίο πρόγραμμα σε εκτελέσιμο πρόγραμμα; ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ ΕΠΑΝΑΛΗΠΤΙΚΟ ΙΑΓΩΝΙΣΜΑ ΟΝΟΜΑΤΕΠΩΝΥΜΟ: Θέμα 1ο I. Τι πρέπει να ικανοποιεί ένα κομμάτι κώδικα ώστε να χαρακτηριστεί ως υποπρόγραμμα; Τα υποπρογράμματα πρέπει

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

Ερωτήσεις θεωρίας MY. Μέρος Α. Υλικό.

Ερωτήσεις θεωρίας MY. Μέρος Α. Υλικό. Ερωτήσεις θεωρίας MY Μέρος Α. Υλικό. 1. Η μνήμη ROM είναι συνδυαστικό ή ακολουθιακό κύκλωμα; 2. α) Να σχεδιαστεί μία μνήμη ROM που να δίνει στις εξόδους της το πλήθος των ημερών του μήνα, ο αριθμός του

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

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

ΕΠΛ031 - Εισαγωγή στον Προγραμματισμό Επικοινωνία Προγράμματος Περιβάλλοντος ΕΠΛ031 Εισαγωγή στον Προγραμματισμό Επικοινωνία Προγράμματος Περιβάλλοντος Λογικές Μονάδες Μεταφορά εδομένων Μορφοποίηση εδομένων Νέαρχος Πασπαλλής Επισκέπτης Ακαδημαϊκός

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

Δρ. Παναγιώτης Μ. Παπάζογλου Επίκουρος Καθηγητής ΤΕΙ Λαμίας. Διδακτικό βοήθημα γρήγορης μελέτης για τον προγραμματισμό του μικροεπεξεργαστή MIPS 32bit

Δρ. Παναγιώτης Μ. Παπάζογλου Επίκουρος Καθηγητής ΤΕΙ Λαμίας. Διδακτικό βοήθημα γρήγορης μελέτης για τον προγραμματισμό του μικροεπεξεργαστή MIPS 32bit Δρ. Παναγιώτης Μ. Παπάζογλου Επίκουρος Καθηγητής ΤΕΙ Λαμίας Διδακτικό βοήθημα γρήγορης μελέτης για τον προγραμματισμό του μικροεπεξεργαστή MIPS 32bit Το υλικό του οδηγού έχει αντικατασταθεί από το βιβλίο

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

Αναδρομή. Τι γνωρίζετε για τη δυνατότητα «κλήσης» αλγορίθμων; Τι νόημα έχει;

Αναδρομή. Τι γνωρίζετε για τη δυνατότητα «κλήσης» αλγορίθμων; Τι νόημα έχει; ΜΑΘΗΜΑ 7 Κλήση αλγορίθμου από αλγόριθμο Αναδρομή Σ χ ο λ ι κ ο Β ι β λ ι ο ΥΠΟΚΕΦΑΛΑΙΟ 2.2.7: ΕΝΤΟΛΕΣ ΚΑΙ ΔΟΜΕΣ ΑΛΓΟΡΙΘΜΟΥ ΠΑΡΑΓΡΑΦΟI 2.2.7.5: Κλήση αλγορίθμου από αλγόριθμο 2.2.7.6: Αναδρομή εισαγωγη

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

Πραγµατικοί αριθµοί κινητής υποδιαστολής Floating Point Numbers. Σ. Τσιτµηδέλης - 2010 ΤΕΙ ΧΑΛΚΙΔΑΣ

Πραγµατικοί αριθµοί κινητής υποδιαστολής Floating Point Numbers. Σ. Τσιτµηδέλης - 2010 ΤΕΙ ΧΑΛΚΙΔΑΣ Πραγµατικοί αριθµοί κινητής υποδιαστολής Floating Point Numbers Σ. Τσιτµηδέλης - 2010 ΤΕΙ ΧΑΛΚΙΔΑΣ Εκθετική Παράσταση (Exponential Notation) Οι επόµενες είναι ισοδύναµες παραστάσεις του 1,234 123,400.0

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

Ανάπτυξη Εφαρµογών σε Προγραµµατιστικό Περιβάλλον

Ανάπτυξη Εφαρµογών σε Προγραµµατιστικό Περιβάλλον Ανάπτυξη Εφαρµογών σε Προγραµµατιστικό Περιβάλλον Κεφάλαιο 6ο Εισαγωγή στον Προγραµµατισµό Μέρος Πρώτο (6.1, 6.2 και 6.3) Α. Ερωτήσεις Σωστού Λάθους 1. Η γλώσσα µηχανής είναι µία γλώσσα υψηλού επιπέδου.

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

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

ΣΗΜΕΙΩΣΕΙΣ ΣΤΗΝ ΠΛΗΡΟΦΟΡΙΚΗ Ο ηλεκτρονικός υπολογιστής είναι μια ηλεκτρονική συσκευή που έχει την ικανότητα να επεξεργάζεται μεγάλο όγκο πληροφοριών και δεδομένων με ταχύτητα και ακρίβεια. Επίσης ένας η/υ μπορεί να αποθηκεύσει πληροφορίες,

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

ιδάσκων: ηµήτρης Ζεϊναλιπούρ

ιδάσκων: ηµήτρης Ζεϊναλιπούρ Κεφάλαιο 1.3-1.4: Εισαγωγή Στον Προγραµµατισµό ( ιάλεξη 2) ιδάσκων: ηµήτρης Ζεϊναλιπούρ Περιεχόµενα Εισαγωγικές Έννοιες - Ορισµοί Ο κύκλος ανάπτυξης προγράµµατος Παραδείγµατα Πότε χρησιµοποιούµε υπολογιστή?

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

Εισαγωγή στο ιαδικαστικό Προγραµµατισµό C

Εισαγωγή στο ιαδικαστικό Προγραµµατισµό C ΠΑΝΕΠΙΣΤΗΜΙΟ ΠΑΤΡΩΝ ΠΟΛΥΤΕΧΝΙΚΗ ΣΧΟΛΗ ΤΜΗΜΑ ΜΗΧΑΝΙΚΩΝ Η/Υ ΚΑΙ ΠΛΗΡΟΦΟΡΙΚΗΣ ΣΗΜΕΙΩΣΕΙΣ ΓΙΑ ΤΟ ΜΑΘΗΜΑ Εισαγωγή στο ιαδικαστικό Προγραµµατισµό C Ελευθέριος. Πολυχρονόπουλος Επίκουρος Καθηγητής ΠΑΤΡΑ 2008

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

Projects στο Εργαστήριο Αρχιτεκτονικής Υπολογιστών Version 2 Ισχύει από Φεβρουάριο 2009

Projects στο Εργαστήριο Αρχιτεκτονικής Υπολογιστών Version 2 Ισχύει από Φεβρουάριο 2009 ΤΕΧΝΟΛΟΓΙΚΟ ΕΚΠΑΙ ΕΥΤΙΚΟ Ι ΡΥΜΑ ΣΕΡΡΩΝ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ & ΕΠΙΚΟΙΝΩΝΙΩΝ ΜΑΘΗΜΑ : ΑΡΧΙΤΕΚΤΟΝΙΚΗ ΥΠΟΛΟΓΙΣΤΩΝ 4 ο ΕΞΑΜΗΝΟ Projects στο Εργαστήριο Αρχιτεκτονικής Υπολογιστών Version 2 Ισχύει από Φεβρουάριο

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

Περιεχόμενα. Κεφάλαιο 1: Εισαγωγή...17. Κεφάλαιο 2: Μια πρώτη ματιά στη C++...49

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

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

Παιχνίδια σε Javascript

Παιχνίδια σε Javascript Παιχνίδια σε Javascript Μάθημα 1ο Μια Γρήγορη Εισαγωγή στη Γλώσσα Τα Εργαλεία Την Javascript μπορούμε (όπως και την HTML) να τη γράψουμε σε ένα απλό συντάκτη κειμένου, ή σε ένα περιβάλλον όπως το Bluefish

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

ΥΠΟΥΡΓΕΙΟ ΠΑΙΔΕΙΑΣ ΚΑΙ ΠΟΛΙΤΙΣΜΟΥ ΔΙΕΥΘΥΝΣΗ ΑΝΩΤΕΡΗΣ ΚΑΙ ΑΝΩΤΑΤΗΣ ΕΚΠΑΙΔΕΥΣΗΣ ΥΠΗΡΕΣΙΑ ΕΞΕΤΑΣΕΩΝ ΠΑΓΚΥΠΡΙΕΣ ΕΞΕΤΑΣΕΙΣ 2012

ΥΠΟΥΡΓΕΙΟ ΠΑΙΔΕΙΑΣ ΚΑΙ ΠΟΛΙΤΙΣΜΟΥ ΔΙΕΥΘΥΝΣΗ ΑΝΩΤΕΡΗΣ ΚΑΙ ΑΝΩΤΑΤΗΣ ΕΚΠΑΙΔΕΥΣΗΣ ΥΠΗΡΕΣΙΑ ΕΞΕΤΑΣΕΩΝ ΠΑΓΚΥΠΡΙΕΣ ΕΞΕΤΑΣΕΙΣ 2012 ΥΠΟΥΡΓΕΙΟ ΠΑΙΔΕΙΑΣ ΚΑΙ ΠΟΛΙΤΙΣΜΟΥ ΔΙΕΥΘΥΝΣΗ ΑΝΩΤΕΡΗΣ ΚΑΙ ΑΝΩΤΑΤΗΣ ΕΚΠΑΙΔΕΥΣΗΣ ΥΠΗΡΕΣΙΑ ΕΞΕΤΑΣΕΩΝ ΠΑΓΚΥΠΡΙΕΣ ΕΞΕΤΑΣΕΙΣ 2012 ΤΕΧΝΟΛΟΓΙΑ (Ι) ΤΕΧΝΙΚΩΝ ΣΧΟΛΩΝ ΘΕΩΡΗΤΙΚΗΣ ΚΑΤΕΥΘΥΝΣΗΣ Μάθημα : Μικροϋπολογιστές

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

ΒΑΣΙΚΕΣ ΕΝΝΟΙΕΣ ΑΛΓΟΡΙΘΜΩΝ

ΒΑΣΙΚΕΣ ΕΝΝΟΙΕΣ ΑΛΓΟΡΙΘΜΩΝ ΒΑΙΚΕ ΕΝΝΟΙΕ ΑΓΟΡΙΘΜΩΝ ΕΡΩΤΗΕΙ ΑΞΙΟΟΓΗΗ ΕΡΩΤΗΕΙ ΩΤΟΥ ΑΘΟΥ 1. ηµειώστε το γράµµα αν η πρόταση είναι σωστή και το γράµµα αν είναι λάθος. 1. Ο αλγόριθµος πρέπει να τερµατίζεται µετά από εκτέλεση πεπερασµένου

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

ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ Η/Υ ΥΠΟΠΡΟΓΡΑΜΜΑΤΑ. Δρ. Ιωάννης Λυχναρόπουλος 2014-2015. Τμήμα Μηχανολόγων Μηχανικών Πανεπιστήμιο Θεσσαλίας

ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ Η/Υ ΥΠΟΠΡΟΓΡΑΜΜΑΤΑ. Δρ. Ιωάννης Λυχναρόπουλος 2014-2015. Τμήμα Μηχανολόγων Μηχανικών Πανεπιστήμιο Θεσσαλίας ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ Η/Υ ΥΠΟΠΡΟΓΡΑΜΜΑΤΑ Δρ. Ιωάννης Λυχναρόπουλος 2014-2015 Τμήμα Μηχανολόγων Μηχανικών Πανεπιστήμιο Θεσσαλίας Τι είναι τα υποπρογράμματα Αυτόνομες μονάδες κώδικα Γραμμένα από τον χρήστη Η δομή

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

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

ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΡΗΤΗΣ ΤΜΗΜΑ ΕΠΙΣΤΗΜΗΣ ΥΠΟΛΟΓΙΣΤΩΝ ΓΛΩΣΣΕΣ ΚΑΙ ΜΕΤΑΦΡΑΣΤΕΣ ΗΥ340 ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΡΗΤΗΣ ΤΜΗΜΑ ΕΠΙΣΤΗΜΗΣ ΥΠΟΛΟΓΙΣΤΩΝ ΓΛΩΣΣΕΣ ΚΑΙ ΜΕΤΑΦΡΑΣΤΕΣ ΗΥ340 ΕΑΡΙΝΟ ΕΞΑΜΗΝΟ 2010 Ι ΑΣΚΩΝ: ΑΝΤΩΝΙΟΣ ΣΑΒΒΙ ΗΣ ΒΑΣΙΚΗ ΕΡΓΑΣΙΑ ΦΑΣΗ 2η από 5 Ανάθεση: Πέµπτη 15 Απριλίου 2010, 11:00 (πρωί)

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

Εντολές γλώσσας μηχανής

Εντολές γλώσσας μηχανής Εντολές γλώσσας μηχανής Στον υπολογιστή MIPS η εντολή πρόσθεσε τα περιεχόμενα των καταχωρητών 17 και 20 και τοποθέτησε το αποτέλεσμα στον καταχωρητή 9 έχει την μορφή: 00000010001101000100100000100000 Πεδία

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

3. Σηµειώσεις Access. # Εισαγωγή ψηφίου ή κενού διαστήµατος. Επιτρέπονται τα ση-

3. Σηµειώσεις Access. # Εισαγωγή ψηφίου ή κενού διαστήµατος. Επιτρέπονται τα ση- Μάθηµα 3 Προχωρηµένες ιδιότητες πεδίων Μάσκες εισαγωγής Οι ιδιότητες Μορφή και Μάσκα εισαγωγής περιγράφονται µαζί γιατί έχουν κοινά χαρακτηριστικά που αφορούν την εµφάνιση. Με την ιδιότητα Μορφή καθορίζουµε

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

Δύο κύριοι τρόποι παρουσίασης δεδομένων. Παράδειγμα

Δύο κύριοι τρόποι παρουσίασης δεδομένων. Παράδειγμα Δύο κύριοι τρόποι παρουσίασης δεδομένων Παράδειγμα Με πίνακες Με διαγράμματα Ονομαστικά δεδομένα Εδώ τα περιγραφικά μέτρα (μέσος, διάμεσος κλπ ) δεν έχουν νόημα Πήραμε ένα δείγμα από 25 άτομα και τα ρωτήσαμε

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

CX-185 II. Αριθμομηχανή με εκτυπωτή. Εγχειρίδιο Οδηγιών

CX-185 II. Αριθμομηχανή με εκτυπωτή. Εγχειρίδιο Οδηγιών CX-185 II Αριθμομηχανή με εκτυπωτή Εγχειρίδιο Οδηγιών 1 ΠΕΡΙΓΡΑΦΗ ΠΛΗΚΤΡΩΝ ΚΑΙ ΔΙΑΚΟΠΤΩΝ έως Αριθμητικό Πλήκτρο Χρησιμοποιείται για την εισαγωγή αριθμού στην αριθμομηχανή. Πλήκτρο Υποδιαστολής Χρησιμοποιείται

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

Σενάριο 17: Παιχνίδι μνήμης με εικόνες

Σενάριο 17: Παιχνίδι μνήμης με εικόνες Σενάριο 17: Παιχνίδι μνήμης με εικόνες Φύλλο Εργασίας Τίτλος: Παιχνίδι μνήμης με εικόνες Γνωστικό Αντικείμενο: Εφαρμογές Πληροφορικής-Υπολογιστών Διδακτική Ενότητα: Διερευνώ - Δημιουργώ Ανακαλύπτω, Συνθετικές

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

ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ Κεφάλαιο 2 ο Αν χ και y μεταβλητές με τιμές 5 και 10 αντίστοιχα να εξηγηθούν οι ακόλουθες εντολές εξόδου.

ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ Κεφάλαιο 2 ο Αν χ και y μεταβλητές με τιμές 5 και 10 αντίστοιχα να εξηγηθούν οι ακόλουθες εντολές εξόδου. 2.1 Αν χ και y μεταβλητές με τιμές 5 και 10 αντίστοιχα να εξηγηθούν οι ακόλουθες εντολές εξόδου. 1) Η τιμή του χ είναι,χ Ητιμή του χ είναι 5 Ηεντολή εμφανίζει ότι υπάρχει στα διπλά εισαγωγικά ως έχει.

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

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

ΔΟΜΗΜΕΝΟΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΕΡΩΤΗΣΕΙΣ 1. Τι καλείται ψευδοκώδικας; 2. Τι καλείται λογικό διάγραμμα; 3. Για ποιο λόγο είναι απαραίτητη η τυποποίηση του αλγόριθμου; 4. Ποιες είναι οι βασικές αλγοριθμικές δομές; 5. Να περιγράψετε τις

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

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

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

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

Εκτέλεση της εντολής1 και στη συνέχεια εκτέλεση της ΕΝΟΤΗΤΑΣ και της εντολής2 όσο η ΣΥΝΘΗΚΗ είναι αληθής.

Εκτέλεση της εντολής1 και στη συνέχεια εκτέλεση της ΕΝΟΤΗΤΑΣ και της εντολής2 όσο η ΣΥΝΘΗΚΗ είναι αληθής. ΟΙ 3 ΕΠΑΝΑΛΗΠΤΙΚΕΣ ΔΟΜΕΣ ΣΤΗΝ ΓΛΩΣΣΑ C Η εντολή for: Η γενικευμένη σύνταξη της εντολής είναι: for (εντολή1; ; εντολή2) ΕΝΟΤΗΤΑ Η ΕΝΟΤΗΤΑ μπορεί να είναι μία ή περισσότερες εντολές (block) μέσα

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

ΜΑΘΗΜΑ / ΤΑΞΗ : ΔΟΜΗΜΕΝΟΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ / Γ ΕΠΑΛ ΣΕΙΡΑ: ΗΜΕΡΟΜΗΝΙΑ: 27/01/2013

ΜΑΘΗΜΑ / ΤΑΞΗ : ΔΟΜΗΜΕΝΟΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ / Γ ΕΠΑΛ ΣΕΙΡΑ: ΗΜΕΡΟΜΗΝΙΑ: 27/01/2013 ΜΑΘΗΜΑ / ΤΑΞΗ : ΔΟΜΗΜΕΝΟΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ / Γ ΕΠΑΛ ΣΕΙΡΑ: ΗΜΕΡΟΜΗΝΙΑ: 27/01/2013 ΘΕΜΑ Α Α1. Να χαρακτηρίσετε τις προτάσεις που ακολουθούν, γράφοντας δίπλα στο γράμμα που αντιστοιχεί σε κάθε πρόταση τη

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

ΔΙΑΔΙΚΑΣΤΙΚΟΣ ΠΡΟΓΡΑ Ρ Μ Α ΜΑΤΙ Τ ΣΜΟΣ

ΔΙΑΔΙΚΑΣΤΙΚΟΣ ΠΡΟΓΡΑ Ρ Μ Α ΜΑΤΙ Τ ΣΜΟΣ Τμήμα Εφαρμοσμένης Πληροφορικής ΔΙΑΔΙΚΑΣΤΙΚΟΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ Εξάμηνο Α' Φύλλο Ασκήσεων 3 ΔΟΜΕΣ ΕΠAΝΑΛΗΨΗΣ Διδάσκοντες: Μάγια Σατρατζέμη, Αλέξανδρος Χατζηγεωργίου, Ηλίας Σακελλαρίου, Στέλιος Ξυνόγαλος

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

ΔΙΔΑΚΤΙΚΗ της ΠΛΗΡΟΦΟΡΙΚΗΣ

ΔΙΔΑΚΤΙΚΗ της ΠΛΗΡΟΦΟΡΙΚΗΣ ΕΘΝΙΚΟ ΚΑΙ ΚΑΠΟΔΙΣΤΡΙΑΚΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΑΘΗΝΩΝ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ & ΤΗΛΕΠΙΚΟΙΝΩΝΙΩΝ ΔΙΔΑΚΤΙΚΗ της ΠΛΗΡΟΦΟΡΙΚΗΣ Μ. Γρηγοριάδου Ρ. Γόγουλου Ενότητα: Η Διδασκαλία του Προγραμματισμού Περιεχόμενα Παρουσίασης

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