Περιεχόμενα. Πρόλογος...7. Πρόλογος της πρώτης έκδοσης Εισαγωγή...13

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

Download "Περιεχόμενα. Πρόλογος...7. Πρόλογος της πρώτης έκδοσης Εισαγωγή...13"

Transcript

1 Περιεχόμενα Πρόλογος...7 Πρόλογος της πρώτης έκδοσης...11 Εισαγωγή...13 Κεφάλαιο 1. Προπαρασκευαστική εισαγωγή Ας ξεκινήσουμε Μεταβλητές και αριθμητικές παραστάσεις Η εντολή for Συμβολικές σταθερές Είσοδος και έξοδος χαρακτήρων Πίνακες Συναρτήσεις Ορίσματα κλήση κατ' αξία Πίνακες χαρακτήρων Εξωτερικές μεταβλητές και εμβέλεια Κεφάλαιο 2. Τύποι, τελεστές, και παραστάσεις Ονόματα μεταβλητών Τύποι δεδομένων και μεγέθη Σταθερές Δηλώσεις Αριθμητικοί τελεστές... 67

2 4 Περιεχόμενα 2.6 Συσχετιστικοί και λογικοί τελεστές Μετατροπές τύπων Τελεστές μοναδιαίας αύξησης και μείωσης Τελεστές πράξεων με bit Τελεστές ανάθεσης τιμής και παραστάσεις Παραστάσεις υπό συνθήκη Προτεραιότητα και σειρά υπολογισμών...81 Κεφάλαιο 3. Η ροή του ελέγχου Εντολές και μπλοκ if-else else-if switch Βρόχοι while και for Βρόχοι do-while break και continue goto και ετικέτες...98 Κεφάλαιο 4. Συναρτήσεις και δομή του προγράμματος Τα βασικά στοιχεία των συναρτήσεων Συναρτήσεις που επιστρέφουν μη ακέραιες τιμές Εξωτερικές μεταβλητές Κανόνες εμβέλειας Αρχεία κεφαλίδας Στατικές μεταβλητές Μεταβλητές register Δόμηση σε μπλοκ Απόδοση αρχικών τιμών Αναδρομικότητα Ο προεπεξεργαστής της C Κεφάλαιο 5. Δείκτες και πίνακες Δείκτες και διευθύνσεις Δείκτες και ορίσματα συναρτήσεων Δείκτες και πίνακες Αριθμητική διευθύνσεων Δείκτες χαρακτήρα και συναρτήσεις Πίνακες δεικτών, και δείκτες σε δείκτες Πολυδιάστατοι πίνακες Απόδοση αρχικής τιμής σε πίνακες δεικτών

3 Περιεχόμενα Δείκτες και πολυδιάστατοι πίνακες Ορίσματα γραμμής διαταγών Δείκτες σε συναρτήσεις Περίπλοκες δηλώσεις Κεφάλαιο 6. Δομές Τα βασικά για τις δομές Δομές και συναρτήσεις Πίνακες δομών Δείκτες σε δομές Αυτοαναφορικές δομές Αναζήτηση πίνακα typedef Ενώσεις Πεδία bit Κεφάλαιο 7. Είσοδος και έξοδος Τυπική είσοδος και έξοδος Μορφοποιημένη έξοδος printf Λίστα με μεταβαλλόμενο πλήθος ορισμάτων Μορφοποιημένη είσοδος scanf Προσπέλαση αρχείων Χειρισμός σφαλμάτων stderr και exit Είσοδος και έξοδος γραμμών Διάφορες συναρτήσεις Κεφάλαιο 8. Η διασύνδεση συστήματος του UNIX Περιγραφείς αρχείων Είσοδος/έξοδος χαμηλού επιπέδου read και write open, creat, close, unlink Τυχαία προσπέλαση lseek Παράδειγμα μια υλοποίηση των fopen και getc Παράδειγμα λίστες καταλόγων Παράδειγμα ένας κατανεμητής μνήμης Παράρτημα A. Εγχειρίδιο αναφοράς A.1 Εισαγωγή A.2 Λεκτικές συμβάσεις A.3 Η σημειογραφία του συντακτικού A.4 Η σημασία των αναγνωριστικών...268

4 6 Περιεχόμενα A.5 Αντικείμενα και α-τιμές A.6 Μετατροπές A.7 Παραστάσεις A.8 Δηλώσεις A.9 Εντολές A.10 Εξωτερικές δηλώσεις A.11 Εμβέλεια και σύνδεσμοι A.12 Προεπεξεργασία A.13 Η γραμματική Παράρτημα Β. H καθιερωμένη βιβλιοθήκη Β.1 Είσοδος και έξοδος: <stdio.h> Β.2 Έλεγχοι κατηγορίας χαρακτήρων: <ctype.h> Β.3 Συναρτήσεις αλφαριθμητικών: <string.h> Β.4 Μαθηματικές συναρτήσεις: <math.h> Β.5 Βοηθητικές συναρτήσεις: <stdlib.h> Β.6 Διαγνωστικά: <assert.h> Β.7 Μεταβλητές λίστες ορισμάτων: <stdarg.h> Β.8 Μη τοπικά άλματα: <setjmp.h> Β.9 Σήματα: <signal.h> Β.10 Συναρτήσεις ημερομηνίας και ώρας Β.11 Όρια που καθορίζονται από την υλοποίηση: <limits.h> και <float.h> Παράρτημα Γ. Σύνοψη των αλλαγών Γλωσσάρι Ευρετήριο...363

5 Δομές Δομή είναι συλλογή από μία ή περισσότερες μεταβλητές, πιθανώς διαφορετικών τύπων, που ομαδοποιούνται με ένα όνομα για ευκολία στο χειρισμό τους. (Οι δομές σε μερικές γλώσσες, ιδιαίτερα στην Pascal, ονομάζονται "εγγραφές", records.) Οι δομές βοηθούν στην οργάνωση περίπλοκων δεδομένων, ιδιαίτερα σε μεγάλα προγράμματα, επειδή επιτρέπουν τον ενιαίο χειρισμό μιας ομάδας σχετιζόμενων μεταβλητών, αντί να τις χειριζόμαστε ως ξεχωριστές οντότητες. Ένα παραδοσιακό παράδειγμα δομής είναι η εγγραφή της μισθοδοσίας. Κάθε υπάλληλος περιγράφεται με ένα σύνολο χαρακτηριστικών όπως το ό- νομα, η διεύθυνση, ο αριθμός κοινωνικής ασφάλισης, ο μισθός, κ.λπ. Μερικά από τα στοιχεία αυτά θα μπορούσαν να είναι και αυτά με τη σειρά τους δομές: ένα όνομα έχει διάφορα στοιχεία, το ίδιο και η διεύθυνση ή ο μισθός. Ένα άλλο παράδειγμα, πιο τυπικό για τη C, προέρχεται από τα γραφικά: ένα σημείο είναι ένα ζεύγος συντεταγμένων, ένα ορθογώνιο είναι ένα ζεύγος σημείων, κ.ο.κ. Η κύρια αλλαγή που έγινε από το πρότυπο ANSI είναι ότι όρισε την απόδοση μιας δομής ως τιμής οι δομές μπορούν να αντιγράφονται και να αποδίδονται ως τιμές, να μεταβιβάζονται σε συναρτήσεις, και να επιστρέφονται από συναρτήσεις. Αυτό υποστηριζόταν από πολλούς μεταγλωττιστές εδώ και πολλά χρόνια, όμως τώρα καθορίζονται με ακρίβεια οι ιδιότητες της λειτουργίας αυτής. Επιπρόσθετα, μπορούν τώρα να παίρνουν αρχικές τιμές οι αυτόματοι πίνακες και οι δομές.

6 180 Κεφάλαιο 6 Δομές 6.1 Τα βασικά για τις δομές Ας δημιουργήσουμε μερικές δομές κατάλληλες για γραφικά. Το βασικό αντικείμενο είναι το σημείο, το οποίο θα θεωρήσουμε ότι έχει μια συντεταγμένη x και μια συντεταγμένη y, που και οι δύο είναι ακέραιες. Τα δύο στοιχεία μπορούν να τοποθετηθούν σε μια δομή που δηλώνεται με τον εξής τρόπο: struct point int x; int y; ; Η δεσμευμένη λέξη struct ξεκινά μια δήλωση δομής, που είναι μια λίστα δηλώσεων οι οποίες περικλείονται από άγκιστρα. Η λέξη struct μπορεί να ακολουθείται προαιρετικά από ένα όνομα που αποκαλείται ετικέτα δομής (structure tag) (όπως συμβαίνει εδώ με τη λέξη point). Η ετικέτα "ονοματίζει" αυτό το είδος δομής, και στη συνέχεια μπορεί να χρησιμοποιείται ως συντομογραφία για το μέρος της δήλωσης που βρίσκεται μέσα στα άγκιστρα. Οι μεταβλητές που κατονομάζονται σε μια δομή ονομάζονται μέλη (members). Ένα μέλος ή μια ετικέτα δομής μπορεί να έχει ίδιο όνομα με μια κανονική μεταβλητή (δηλαδή, μια μεταβλητή που δεν είναι μέλος) χωρίς να υπάρχει διένεξη, αφού τα ονόματα μπορούν πάντα να διακρίνονται από τα συμφραζόμενα. Επιπρόσθετα, μπορούν να εμφανίζονται τα ίδια ονόματα μελών σε διαφορετικές δομές, αν και για λόγους καλού στυλ προγραμματισμού κανονικά θα χρησιμοποιούμε ίδια ονόματα μόνο για στενά συνδεδεμένα αντικείμενα. Η δήλωση struct ορίζει έναν τύπο δεδομένων. Το δεξιό άγκιστρο που τερματίζει τη λίστα των μελών μπορεί να ακολουθείται από μια λίστα μεταβλητών, όπως συμβαίνει και με όλους τους βασικούς τύπους δεδομένων. Με άλλα λόγια, η εντολή

7 6.1 Τα βασικά για τις δομές 181 struct... x, y, z; είναι συντακτικά ανάλογη με την int x, y, z; με την έννοια ότι κάθε εντολή δηλώνει τα x, y, και z ως μεταβλητές του κατονομαζόμενου τύπου δεδομένων και προκαλεί δέσμευση χώρου γι' αυτές. Μια δήλωση δομής που δεν ακολουθείται από λίστα μεταβλητών δεν δεσμεύει χώρο στη μνήμη, αλλά απλώς περιγράφει το πρότυπο ή τη μορφή της δομής. Αν όμως η δομή έχει ετικέτα, η ετικέτα μπορεί να χρησιμοποιηθεί αργότερα σε ορισμούς στιγμιοτύπων της δομής. Για παράδειγμα, με δεδομένη την παραπάνω δήλωση της δομής point, η εντολή struct point pt; ορίζει μια μεταβλητή pt που είναι δομή τύπου struct point. Μπορούμε να αποδώσουμε αρχικές τιμές σε μια δομή τοποθετώντας αμέσως μετά τον ορισμό της μια λίστα αρχικών τιμών για τα μέλη, καθεμιά από τις οποίες είναι σταθερή παράσταση: struct point maxpt = 320, 200 ; Μια αυτόματη δομή μπορεί επίσης να πάρει αρχικές τιμές με ανάθεση τιμών, ή με την κλήση μιας συνάρτησης που επιστρέφει δομή του κατάλληλου τύπου. Η αναφορά σε ένα μέλος μιας συγκεκριμένης δομής μέσα από μια παράσταση γίνεται με μια κατασκευή της μορφής όνομα-δομής.μέλος Ο τελεστής μέλους δομής "." συνδέει το όνομα της δομής με το όνομα του μέλους. Για παράδειγμα, για να εμφανίσουμε τις συντεταγμένες του σημείου pt γράφουμε printf("%d,%d", pt.x, pt.y); και για να υπολογίσουμε την απόσταση από την αρχή του συστήματος συντεταγμένων (0, 0) μέχρι το pt γράφουμε double dist, sqrt(double); dist=sqrt((double)pt.x * pt.x+(double)pt.y * pt.y);

8 182 Κεφάλαιο 6 Δομές Οι δομές μπορεί να είναι ένθετες. Μια αναπαράσταση ορθογωνίου είναι ένα ζευγάρι σημείων που αντιπροσωπεύουν τις διαγωνίως απέναντι κορυφές του: struct rect struct point pt1; struct point pt2; ; Η δομή rect περιέχει δύο δομές point. Αν δηλώσουμε τη μεταβλητή screen ως τότε το struct rect screen; screen.pt1.x αναφέρεται στη συντεταγμένη x του μέλους pt1 της screen. 6.2 Δομές και συναρτήσεις Οι μόνες επιτρεπόμενες πράξεις με μια δομή είναι η αντιγραφή της, η απόδοση τιμής σε αυτή συνολικά, η εξαγωγή της διεύθυνσής της με τον τελεστή &, και η προσπέλαση των μελών της. Η αντιγραφή και η απόδοση τιμής περιλαμβάνουν τη μεταβίβαση ορισμάτων σε συναρτήσεις και την επιστροφή τιμών από συναρτήσεις. Οι δομές δεν μπορούν να συγκριθούν μεταξύ τους. Μια δομή μπορεί να πάρει αρχική τιμή με μια λίστα σταθερών τιμών για τα μέλη της, ενώ μια αυτόματη δομή μπορεί επίσης να πάρει αρχική τιμή με ανάθεση τιμών. Ας εξετάσουμε τις δομές γράφοντας μερικές συναρτήσεις για το χειρισμό σημείων και ορθογωνίων. Υπάρχουν τουλάχιστον τρεις δυνατές προσεγγίσεις: η μεταβίβαση των στοιχείων ξεχωριστά, η μεταβίβαση μιας ολόκληρης δομής, ή η μεταβίβαση ενός δείκτη για αυτή. Η κάθε προσέγγιση έχει τα δυνατά και τα αδύνατα σημεία της. Η πρώτη συνάρτηση, η makepoint, παίρνει δύο ακεραίους και επιστρέφει μια δομή point:

9 6.2 Δομές και συναρτήσεις 183 /* makepoint: δημιουργία σημείου από τα στοιχεία x και y */ struct point makepoint(int x, int y) struct point temp; temp.x = x; temp.y = y; return temp; Προσέξτε ότι δεν υπάρχει διένεξη ανάμεσα στο όνομα του ορίσματος και το μέλος με το ίδιο όνομα. Αντίθετα, η χρησιμοποίηση των ίδιων ονομάτων τονίζει τη σχέση μεταξύ των στοιχείων. Η συνάρτηση makepoint μπορεί τώρα να χρησιμοποιηθεί για τη δυναμική απόδοση αρχικών τιμών σε οποιαδήποτε δομή, ή για τη διάθεση ορισμάτων τύπου δομής σε μια συνάρτηση: struct rect screen; struct point middle; struct point makepoint(int, int); screen.pt1 = makepoint(0, 0); screen.pt2 = makepoint(xmax, YMAX); middle = makepoint((screen.pt1.x + screen.pt2.x)/2, (screen.pt1.y + screen.pt2.y)/2); Το επόμενο βήμα είναι ένα σύνολο συναρτήσεων για την εκτέλεση αριθμητικών πράξεων με σημεία. Για παράδειγμα, /* addpoint: πρόσθεση δύο σημείων */ struct point addpoint(struct point p1, struct point p2) p1.x += p2.x; p1.y += p2.y; return p1; Εδώ τόσο τα ορίσματα όσο και οι επιστρεφόμενες τιμές είναι δομές. Αυξήσαμε τα στοιχεία του p1, αντί να χρησιμοποιήσουμε μια προσωρινή μεταβλητή, για να δώσουμε έμφαση στο γεγονός ότι οι παράμετροι της δομής μεταβιβάζονται κατ' αξία, όπως και όλες οι άλλες παράμετροι.

10 184 Κεφάλαιο 6 Δομές Ως ένα ακόμα παράδειγμα, η συνάρτηση ptinrect ελέγχει αν ένα σημείο βρίσκεται μέσα σε ένα ορθογώνιο. Εδώ έχουμε υιοθετήσει τη σύμβαση ότι ένα ορθογώνιο περιλαμβάνει την αριστερή και την κάτω πλευρά του, δεν περιλαμβάνει όμως την επάνω και τη δεξιά πλευρά του: /* ptinrect: επιστρέφει 1 αν το p είναι μέσα στο r, αλλιώς επιστρέφει 0 */ int ptinrect(struct point p, struct rect r) return p.x >= r.pt1.x && p.x < r.pt2.x && p.y >= r.pt1.y && p.y < r.pt2.y; Αυτό προϋποθέτει ότι το ορθογώνιο αναπαριστάνεται με μια καθιερωμένη μορφή, όπου οι συντεταγμένες του pt1 είναι μικρότερες από τις συντεταγμένες του pt2. Η επόμενη συνάρτηση επιστρέφει ένα ορθογώνιο που έχει εγγυημένα κανονική μορφή: #define min(a, b) ((a) < (b)? (a) : (b)) #define max(a, b) ((a) > (b)? (a) : (b)) /* canonrect: κανονικοποιεί τις συντεταγμένες ορθογωνίου */ struct rect canonrect(struct rect r) struct rect temp; temp.pt1.x = min(r.pt1.x, r.pt2.x); temp.pt1.y = min(r.pt1.y, r.pt2.y); temp.pt2.x = max(r.pt1.x, r.pt2.x); temp.pt1.y = max(r.pt1.y, r.pt2.y); return temp; Αν μια μεγάλη δομή πρόκειται να μεταβιβαστεί σε μια συνάρτηση, είναι γενικά πιο αποδοτική η μεταβίβαση ενός δείκτη, και όχι η αντιγραφή ολόκληρης της δομής. Οι δείκτες για δομές είναι όπως ακριβώς και οι δείκτες για κανονικές μεταβλητές. Η δήλωση struct point *pp; λέει ότι ο pp είναι δείκτης για μια δομή τύπου struct point. Αν ο pp δείχνει σε μια δομή point, τότε το *pp είναι η δομή, ενώ τα (*pp).x και (*pp).y είναι τα μέλη. Για να χρησιμοποιήσουμε το δείκτη pp, μπορούμε για παράδειγμα να γράψουμε,

11 6.2 Δομές και συναρτήσεις 185 struct point origin, *pp; pp = &origin; printf("η αρχή είναι (%d,%d)\n", (*pp).x, (*pp).y); Οι παρενθέσεις είναι απαραίτητες στο (*pp).x επειδή η προτεραιότητα του τελεστή μέλους δομής "." είναι υψηλότερη από εκείνη του τελεστή *. Η παράσταση *pp.x σημαίνει *(pp.x), που εδώ δεν είναι αποδεκτή επειδή το x δεν είναι δείκτης. Οι δείκτες για δομές χρησιμοποιούνται τόσο συχνά ώστε ως συντομογραφία παρέχεται ένας εναλλακτικός συμβολισμός. Αν ο p είναι δείκτης σε δομή, τότε το p->μέλος-της-δομής αναφέρεται στο συγκεκριμένο μέλος. (Ο τελεστής -> είναι ένα σύμβολο πλην που ακολουθείται αμέσως μετά από το σύμβολο >.) Έτσι, στο παράδειγμά μας θα μπορούσαμε να γράψουμε printf("η αρχή είναι (%d,%d)\n", pp->x, pp->y); Τόσο ο τελεστής. όσο και ο τελεστής -> έχουν προσεταιριστικότητα από αριστερά προς τα δεξιά έτσι, αν έχουμε struct rect r, *rp = &r; οι τέσσερις επόμενες παραστάσεις είναι ισοδύναμες: r.pt1.x rp->pt1.x (r.pt1).x (rp->pt1).x Οι τελεστές δομών. και ->, μαζί με τις παρενθέσεις () για κλήσεις συναρτήσεων και τις αγκύλες [] για δείκτες θέσης πίνακα, βρίσκονται στην κορυφή της ιεραρχίας προτεραιότητας και επομένως συνδέονται ισχυρά με τους τελεστέους. Για παράδειγμα, με δεδομένη τη δήλωση struct int len; char *str; *p; η εντολή ++p->len

12 186 Κεφάλαιο 6 Δομές αυξάνει το len, και όχι το p, επειδή οι εννοούμενες παρενθέσεις τη μετατρέπουν σε ++(p->len). Οι παρενθέσεις μπορούν να χρησιμοποιηθούν για να αλλάξουν τη σύνδεση: η παράσταση (++p)->len αυξάνει το p πριν προσπελάσει το len, και η παράσταση (p++)->len αυξάνει το p αφού προσπελάσει το len. (Το τελευταίο ζευγάρι παρενθέσεων δεν είναι απαραίτητο.) Με τον ίδιο τρόπο, η παράσταση *p->str επιστρέφει αυτό στο οποίο δείχνει ο δείκτης str η παράσταση *p->str++ αυξάνει τον str μετά την προσπέλαση του στοιχείου στο οποίο δείχνει ο str (όπως ακριβώς στην παράσταση *s++), η παράσταση (*p->str)++ αυξάνει αυτό στο οποίο δείχνει ο str, και η παράσταση *p++->str αυξάνει τον p μετά την προσπέλαση του στοιχείου στο οποίο δείχνει ο str. 6.3 Πίνακες δομών Ας γράψουμε ένα πρόγραμμα για τη μέτρηση των εμφανίσεων κάθε δεσμευμένης λέξης της C. Χρειαζόμαστε έναν πίνακα αλφαριθμητικών όπου θα αποθηκεύονται τα ονόματα, καθώς και έναν πίνακα ακεραίων για τις μετρήσεις. Μια πιθανότητα είναι να χρησιμοποιήσουμε δύο παράλληλους πίνακες, τους keyword και keycount, όπως εδώ char *keyword[nkeys]; int keycount[nkeys]; Όμως, το ίδιο το γεγονός ότι οι πίνακες είναι παράλληλοι μας δίνει την ι- δέα για μια διαφορετική οργάνωση: τον πίνακα δομών. Κάθε καταχώρηση δεσμευμένης λέξης είναι ένα ζεύγος: char *word; int count; και υπάρχει ένας πίνακας ζευγών. Η δήλωση δομής struct key char *word; int count; keytab[nkeys]; δηλώνει μια δομή τύπου key, ορίζει έναν πίνακα keytab με δομές αυτού του τύπου, και δεσμεύει μνήμη για τις δομές αυτές. Κάθε στοιχείο του πίνακα είναι δομή. Αυτό θα μπορούσε να γραφτεί και ως

13 6.3 Πίνακες δομών 187 struct key char *word; int count; ; struct key keytab[nkeys]; Αφού ο πίνακας keytab περιέχει ένα σταθερό σύνολο ονομάτων, είναι ευκολότερο να τον κάνουμε εξωτερική μεταβλητή και να του αποδώσουμε μια και καλή αρχικές τιμές με τον ορισμό του. Η απόδοση αρχικών τιμών σε μια δομή γίνεται όπως και προηγουμένως ο ορισμός ακολουθείται από μια λίστα αρχικών τιμών που περικλείονται μέσα σε άγκιστρα: struct key char *word; int count; keytab[] = "auto", 0, "break", 0, "case", 0, "char", 0, "const", 0, "continue", 0, "default", 0, /*... */ "unsigned", 0, "void", 0, "volatile", 0, "while", 0 ; Οι αρχικές τιμές παραθέτονται σε ζεύγη που αντιστοιχούν στα μέλη της δομής. Πιο ακριβές θα ήταν να περικλείσουμε τις αρχικές τιμές για κάθε "γραμμή πίνακα" ή δομή σε άγκιστρα, όπως στο "auto", 0, "break", 0, "case", 0,... όμως τα εσωτερικά άγκιστρα δεν είναι αναγκαία όταν οι αρχικές τιμές είναι απλές μεταβλητές ή αλφαριθμητικά και υπάρχουν όλες οι τιμές. Όπως συνήθως, ο αριθμός των καταχωρίσεων στον πίνακα keytab θα υπολογιστεί με βάση τις αρχικές τιμές, και έτσι οι αγκύλες [] είναι κενές.

14 188 Κεφάλαιο 6 Δομές Το πρόγραμμα μέτρησης δεσμευμένων λέξεων ξεκινά με τον ορισμό του πίνακα keytab. Η κύρια ρουτίνα διαβάζει την είσοδο με επαναληπτικές κλήσεις της συνάρτησης getword, που προσκομίζει μία λέξη τη φορά. Κάθε λέξη αναζητείται στον πίνακα keytab με μια παραλλαγή της συνάρτησης δυαδικής αναζήτησης που γράψαμε στο Κεφάλαιο 3. Η λίστα των δεσμευμένων λέξεων πρέπει να είναι ταξινομημένη στον πίνακα κατά αύξουσα σειρά. #include <stdio.h> #include <ctype.h> #include <string.h> #define MAXWORD 100 int getword(char *, int); int binsearch(char *, struct key *, int); /* μέτρηση των δεσμευμένων λέξεων της C */ main() int n; char word[maxword]; while (getword(word, MAXWORD)!= EOF) if (isalpha(word[0])) if ((n = binsearch(word, keytab, NKEYS)) >= 0) keytab[n].count++; for (n = 0; n < NKEYS; n++) if (keytab[n].count > 0) printf("%4d %s\n", keytab[n].count, keytab[n].word); return 0; /* binsearch: αναζήτηση λέξης στα tab[0]...tab[n-1] */ int binsearch(char *word, struct key tab[], int n) int cond ; int low, high, mid; low = 0; high = n - 1; while (low <= high) mid = (low+high) / 2; if ((cond = strcmp(word, tab[mid].word)) < 0) high = mid - 1; else if (cond > 0) low = mid + 1; else return mid ;

15 6.3 Πίνακες δομών 189 return -1; Θα δείξουμε τη συνάρτηση getword σε λίγο προς το παρόν, αρκεί να πούμε ότι κάθε κλήση στην getword βρίσκει μια λέξη, η οποία αντιγράφεται στον πίνακα που κατονομάζει το πρώτο της όρισμα. Η ποσότητα NKEYS είναι ο αριθμός των δεσμευμένων λέξεων στον πίνακα keytab. Αν και θα μπορούσαμε να τις μετρήσουμε με το χέρι, είναι πολύ ευκολότερο και ασφαλέστερο να το κάνουμε με το μηχάνημα, ειδικά αν υπάρχει περίπτωση να αλλάξει η λίστα. Μια δυνατότητα θα ήταν να τερματίζουμε τη λίστα των αρχικών τιμών με ένα μηδενικό δείκτη, και μετά να διατρέχουμε τον keytab μέχρι να συναντήσουμε το τέλος. Αλλά αυτό είναι περισσότερο απ' ό,τι χρειάζεται εδώ, αφού το μέγεθος του πίνακα καθορίζεται πλήρως κατά τη διάρκεια της μεταγλώττισης. Το μέγεθος του πίνακα είναι το μέγεθος μιας καταχώρισης επί το πλήθος των καταχωρίσεων, έτσι ο αριθμός των καταχωρίσεων είναι ακριβώς μέγεθος του keytab / μέγεθος του struct key Η C διαθέτει ένα μοναδιαίο τελεστή χρόνου μεταγλώττισης που ονομάζεται sizeof, ο οποίος μπορεί να χρησιμοποιείται για τον υπολογισμό του μεγέθους οποιουδήποτε αντικειμένου. Οι παραστάσεις και sizeof αντικείμενο sizeof(όνομα τύπου) δίνουν έναν ακέραιο ίσο σε μέγεθος με τα byte του καθοριζόμενου αντικειμένου ή τύπου δεδομένων. (Αυστηρά, ο sizeof παράγει μια απρόσημη ακέραια τιμή της οποίας ο τύπος size_t ορίζεται στο αρχείο κεφαλίδας <stddef.h>.) Το αντικείμενο μπορεί να είναι μια μεταβλητή, ένας πίνακας, ή μια δομή. Το όνομα τύπου μπορεί να είναι το όνομα ενός βασικού τύπου δεδομένων όπως int ή double, ή ένας παραγόμενος τύπος δεδομένων όπως μια δομή ή ένας δείκτης. Στην περίπτωσή μας ο αριθμός των δεσμευμένων λέξεων είναι το μέγεθος του πίνακα δια το μέγεθος ενός αντικειμένου. Ο υπολογισμός αυτός χρησιμοποιείται σε μια εντολή #define για τον καθορισμό της τιμής του NKEYS: #define NKEYS (sizeof keytab / sizeof(struct key)) Ένας άλλος τρόπος για να το γράψουμε αυτό είναι να διαιρέσουμε το μέγεθος του πίνακα με το μέγεθος ενός συγκεκριμένου στοιχείου:

16 190 Κεφάλαιο 6 Δομές #define NKEYS (sizeof keytab / sizeof keytab[0]) Αυτό έχει το πλεονέκτημα ότι δεν χρειάζεται τροποποίηση αν αλλάξει ο τύπος δεδομένων. Ο τελεστής sizeof δεν μπορεί να χρησιμοποιείται σε γραμμές #if, επειδή ο προεπεξεργαστής δεν αναλύει ονόματα τύπων. Όμως, η παράσταση στην εντολή #define δεν υπολογίζεται από τον προεπεξεργαστή, έτσι ο κώδικας αυτός είναι έγκυρος. Ας δούμε τώρα τη συνάρτηση getword. Έχουμε γράψει μια συνάρτηση getword που είναι πιο γενική απ' ό,τι χρειάζεται για το συγκεκριμένο πρόγραμμα, όμως δεν είναι περίπλοκη. Η getword φέρνει την επόμενη "λέξη" της εισόδου, όπου λέξη είναι μια σειρά γραμμάτων και ψηφίων που ξεκινά από γράμμα, ή ένας μεμονωμένος χαρακτήρας μη λευκού διαστήματος. Τιμή της συνάρτησης είναι ο πρώτος χαρακτήρας της λέξης, το EOF για το τέλος του αρχείου, ή ο ίδιος ο χαρακτήρας, εφόσον δεν είναι αλφαβητικός. /* getword: φέρνει την επόμενη λέξη ή τον επόμενο χαρακτήρα της εισόδου */ int getword(char *word, int lim) int c, getch(void); void ungetch(int); char *w = word; while (isspace(c = getch())) ; if (c!= EOF) *w++ = c; if (!isalpha(c)) *w = '\0'; return c; for ( ; --lim > 0; w++) if (!isalnum(*w = getch())) ungetch(*w); break; *w = '\0'; return word[0]; Η getword χρησιμοποιεί τις συναρτήσεις getch και ungetch που γράψαμε στο Κεφάλαιο 4. Όταν σταματάει η περισυλλογή ενός αλφαριθμητικού συμβόλου, η getword έχει προχωρήσει κατά ένα χαρακτήρα περισσότερο απ' ό,τι πρέπει. Η κλήση της ungetch επαναπροωθεί το χαρακτήρα στην είσοδο, για την επόμενη κλήση. Η getword χρησιμοποιεί επίσης την isspace για να παρα-

17 6.4 Δείκτες σε δομές 191 βλέπει τα λευκά διαστήματα, την isalpha για να αναγνωρίζει τα γράμματα, και την isalnum για να αναγνωρίζει γράμματα και αριθμητικά ψηφία. Όλες αυτές οι συναρτήσεις προέρχονται από το αρχείο κεφαλίδας <ctype.h>. Άσκηση 6.1 Η εκδοχή μας της getword δεν χειρίζεται σωστά τις υπογραμμίσεις, τις αλφαριθμητικές σταθερές, τα σχόλια, ή τις γραμμές ελέγχου του προεπεξεργαστή. Γράψτε μια καλύτερη εκδοχή. 6.4 Δείκτες σε δομές Για να παρουσιάσουμε μερικά από τα σημεία που πρέπει να λαμβάνονται υ- πόψη στη χρήση δεικτών για δομές και πινάκων με δομές, θα ξαναγράψουμε το πρόγραμμα μέτρησης δεσμευμένων λέξεων χρησιμοποιώντας αυτή τη φορά δείκτες διευθύνσεων, αντί για αριθμοδείκτες θέσης πίνακα. Η εξωτερική δήλωση του keytab δεν χρειάζεται τροποποίηση, όμως η συνάρτηση main και η binsearch χρειάζονται τροποποίηση. #include <stdio.h> #include <ctype.h> #include <string.h> #define MAXWORD 100 int getword(char *, int); struct key *binsearch(char *, struct key *, int); /* μέτρηση των δεσμευμένων λέξεων της C -έκδοση με δείκτες */ main() char word[maxword]; struct key *p; while (getword(word, MAXWORD)!= EOF) if (isalpha(word[0])) if ((p=binsearch(word, keytab, NKEYS))!= NULL) p->count++; for (p = keytab; p < keytab + NKEYS; p++) if (p->count > 0) printf("%4d %s\n", p->count, p->word); return 0; /* binsearch: αναζήτηση λέξης στα tab[0]...tab[n-1] */ struct key *binsearch(char *word,struct key *tab,int n) int cond; struct key *low = &tab[0]; struct key *high = &tab[n];

οµές (structures) Στην ενότητα αυτή θα µελετηθούν τα εξής επιµέρους θέµατα: Πίνακες δοµών, δείκτες σε δοµές, και αυτοαναφορικές δοµές.

οµές (structures) Στην ενότητα αυτή θα µελετηθούν τα εξής επιµέρους θέµατα: Πίνακες δοµών, δείκτες σε δοµές, και αυτοαναφορικές δοµές. οµές (structures) Στην ενότητα αυτή θα µελετηθούν τα εξής επιµέρους θέµατα: Πίνακες δοµών, δείκτες σε δοµές, και αυτοαναφορικές δοµές. ΕΠΛ 132 Αρχές Προγραµµατισµού ΙΙ 1 Παράδειγµα Πρόβληµα: Να γράψετε

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

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

Περιεχόμενα. Πρόλογος... 21 Περιεχόμενα Πρόλογος... 21 Κεφάλαιο 1: Εισαγωγή στον προγραμματισμό... 25 Εισαγωγή...27 Πώς να διαβάσετε αυτό το βιβλίο...27 Η δομή των κεφαλαίων...28 Γιατί να μάθω προγραμματισμό;...31 Γιατί να μάθω C;...31

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

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

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

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

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

ΔΟΜΗΜΕΝΟΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΔΟΜΗΜΕΝΟΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ Μάθημα 8ο Τμήμα Διοίκησης Επιχειρήσεων Παλαιό ΕΠΔΟ α εξάμηνο Β. Φερεντίνος ΔΟΜΕΣ (STRUCTURES) 161 Οι δομές ομαδοποιούν ένα σύνολο μεταβλητών (πιθανόν διαφορετικών τύπων) κάτω

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

#define, 70, 575 #elif, 580 #else, 580 #endif, 580 #error, 584 #if, 580 #ifdef, 583 #ifndef, 580, 583 #include, 70, 227, 574 #undef, 579

#define, 70, 575 #elif, 580 #else, 580 #endif, 580 #error, 584 #if, 580 #ifdef, 583 #ifndef, 580, 583 #include, 70, 227, 574 #undef, 579 Ευρετήριο Η γλώσσα C σε βάθος # #define, 70, 575 #elif, 580 #else, 580 #endif, 580 #error, 584 #if, 580 #ifdef, 583 #ifndef, 580, 583 #include, 70, 227, 574 #undef, 579 A abs(), 625 AND, 64 ASCII πίνακας

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Πρόλογος... 11. 1. Εισαγωγικά Στοιχεία... 13

Πρόλογος... 11. 1. Εισαγωγικά Στοιχεία... 13 ΠΕΡΙΕΧΟΜΕΝΑ Πρόλογος... 11 1. Εισαγωγικά Στοιχεία... 13 Το πρώτο πρόγραμμα... 15 Οι βασικοί τύποι δεδομένων και ο χειρισμός τους... 19 Σταθερές και Μεταβλητές... 19 Σταθερές τύπου ακεραίου... 19 Μεταβλητές

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Πίνακες. 1 Πίνακες. 30 Μαρτίου 2014

Πίνακες. 1 Πίνακες. 30 Μαρτίου 2014 Πίνακες 0 Μαρτίου 014 1 Πίνακες Είδαμε ότι δηλώνοντας μία μεταβλητή κάποιου συγκεκριμένου τύπου δεσμεύουμε μνήμη κατάλληλη για να αποθηκευτεί μία οντότητα του συγκεκριμένου τύπου. Στην περίπτωση που θέλουμε

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

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

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

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

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

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

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

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

Εισαγωγή στον δομημένο προγραμματισμό Τμήμα Μηχανικών Πληροφορικής & Τηλεπικοινωνιών Εισαγωγή στον δομημένο προγραμματισμό Ενότητα 10 η : Δομές Αν. καθηγητής Στεργίου Κώστας e-mail: kstergiou@uowm.gr Τμήμα Μηχανικών Πληροφορικής και Τηλεπικοινωνιών

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

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

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

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

Α. unsigned int Β. double. Γ. int. unsigned char x = 1; x = x + x ; x = x * x ; x = x ^ x ; printf("%u\n", x); Β. unsigned char

Α. unsigned int Β. double. Γ. int. unsigned char x = 1; x = x + x ; x = x * x ; x = x ^ x ; printf(%u\n, x); Β. unsigned char ΕΙΣΑΓΩΓΗ ΣΤΟΝ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟ Εξετάσεις Β Περιόδου 2015 (8/9/2015) ΟΝΟΜΑΤΕΠΩΝΥΜΟ:................................................................................ Α.Μ.:...............................................

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

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

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

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

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

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

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

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

Βασικές Αρχές Προγραμματισμού Βασικές Αρχές Προγραμματισμού Κεφάλαιο 2 ΗγλώσσαC Ιστορική Αναδρομή ΗανάπτυξητηςC ξεκίνησε το 1972 στα εργαστήρια Bell από τον Dennis Ritchie με σκοπό την ανάπτυξη ενός λειτουργικού συστήματος για τον

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

#include <stdlib.h> Α. [-128,127] Β. [-127,128] Γ. [-128,128]

#include <stdlib.h> Α. [-128,127] Β. [-127,128] Γ. [-128,128] ΕΙΣΑΓΩΓΗ ΣΤΟΝ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟ Εξετάσεις Α Περιόδου 2017 (27/1/2017) ΟΝΟΜΑΤΕΠΩΝΥΜΟ:................................................................................ Α.Μ.:...............................................

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

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

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

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

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

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

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

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

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

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

Προγραμματισμός Δομές Δεδομένων

Προγραμματισμός Δομές Δεδομένων Προγραμματισμός Δομές Δεδομένων Προγραμματισμός Δομές Δεδομένων (Data Structures) Καινούργιοι τύποι δεδομένων που αποτελούνται από την ομαδοποίηση υπαρχόντων τύπων δεδομένων Ομαδοποίηση πληροφορίας που

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

ΚΕΦΑΛΑΙΟ 8 Η ΓΛΩΣΣΑ PASCAL

ΚΕΦΑΛΑΙΟ 8 Η ΓΛΩΣΣΑ PASCAL 8.1. Εισαγωγή ΚΕΦΑΛΑΙΟ 8 Η ΓΛΩΣΣΑ PACAL Πως προέκυψε η γλώσσα προγραμματισμού Pascal και ποια είναι τα γενικά της χαρακτηριστικά; Σχεδιάστηκε από τον Ελβετό επιστήμονα της Πληροφορικής Nicklaus Wirth to

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

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

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

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

6. ΠΙΝΑΚΕΣ & ΑΛΦΑΡΙΘΜΗΤΙΚΑ

6. ΠΙΝΑΚΕΣ & ΑΛΦΑΡΙΘΜΗΤΙΚΑ 6. ΠΙΝΑΚΕΣ & ΑΛΦΑΡΙΘΜΗΤΙΚΑ 6.1 Η Έννοια του Πίνακα Συχνά είναι προτιμότερο να αντιμετωπίζουμε ένα σύνολο μεταβλητών σαν ενότητα για να απλοποιούμε το χειρισμό τους. Έτσι οργανώνουμε σύνθετα δεδομένα σε

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

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

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

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

ΚΕΦΑΛΑΙΟ 2: Τύποι δεδομένων και εμφάνιση στοιχείων...33

ΚΕΦΑΛΑΙΟ 2: Τύποι δεδομένων και εμφάνιση στοιχείων...33 ΠΕΡΙΕΧΟΜΕΝΑ Πρόλογος του συγγραφέα... 13 Πρόλογος του καθηγητή Τιμολέοντα Σελλή... 15 ΚΕΦΑΛΑΙΟ 1: Εργαλεία γλωσσών προγραμματισμού...17 1.1 Γλώσσες προγραμματισμού τρίτης γεννεάς... 18 τι είναι η γλώσσα

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

υναµική έσµευση Μνήµης (συν.) ΕΠΛ 132 Αρχές Προγραµµατισµού ΙΙ 2 Εφαρµογή

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

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

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

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

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

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

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

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

ΦΥΛΛΑΔΙΟ ΕΡΓΑΣΤΗΡΙΟΥ 1

ΦΥΛΛΑΔΙΟ ΕΡΓΑΣΤΗΡΙΟΥ 1 Γλώσσα Προγραμματισμού C++ ΦΥΛΛΑΔΙΟ ΕΡΓΑΣΤΗΡΙΟΥ 1 Τα δεδομένα Οι σταθερές Τα δεδομένα (πληροφορίες-data) είναι απαραίτητα στοιχεία ενός προγράμματος, καθώς οι βασικές λειτουργίες ενός προγράμματος είναι

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

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

ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΥΠΟΛΟΓΙΣΤΩΝ & ΥΠΟΛΟΓΙΣΤΙΚΗ ΦΥΣΙΚΗ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΥΠΟΛΟΓΙΣΤΩΝ & ΥΠΟΛΟΓΙΣΤΙΚΗ ΦΥΣΙΚΗ Μέρος 4ο ΝΙΚΟΛΑΟΣ ΣΤΕΡΓΙΟΥΛΑΣ ΤΜΗΜΑ ΦΥΣΙΚΗΣ ΑΡΙΣΤΟΤΕΛΕΙΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΕΣΣΑΛΟΝΙΚΗΣ 1 ΟΙ ΤΕΛΕΣΤΕΣ ΣΥΓΚΡΙΣΗΣ Με τους τελεστές σύγκρισης, συγκρίνουμε τις

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

ΘΕΜΑΤΑ ΕΞΕΤΑΣΗΣ ΚΑΙ ΑΠΑΝΤΗΣΕΙΣ ΤΟΥΣ

ΘΕΜΑΤΑ ΕΞΕΤΑΣΗΣ ΚΑΙ ΑΠΑΝΤΗΣΕΙΣ ΤΟΥΣ ΘΕΜΑΤΑ ΕΞΕΤΑΣΗΣ ΚΑΙ ΑΠΑΝΤΗΣΕΙΣ ΤΟΥΣ ΜΑΘΗΜΑ: ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΠΛΗΡΟΦΟΡΙΚΗ ΕΞΕΤΑΣΤΙΚΗ ΠΕΡΙΟ ΟΣ: ΙΟΥΝΙΟΥ 5 Ι ΑΣΚΩΝ: Ε. ΚΟΦΙ ΗΣ Όλα τα ερωτήµατα είναι ισοδύναµα. Καλή επιτυχία! ΘΕΜΑ ο a) Βρείτε την αναπαράσταση

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

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

Η γλώσσα προγραμματισμού C Η γλώσσα προγραμματισμού C Οι δείκτες στη C Η έννοια του δείκτη Την έννοια του δείκτη τη συναντήσαμε σε προηγούμενα μαθήματα. Η συνάρτηση scanf(), καταχωρίζει τιμές σε μεταβλητές χρησιμοποιώντας τον τελεστή

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Γλώσσα Προγραμματισμού C

Γλώσσα Προγραμματισμού C Προγραμματισμός ΗΥ: Γλώσσα Προγραμματισμού C Δρ. Ηλίας Κ. Σάββας, Αναπληρωτής Καθηγητής, Τμήμα Μηχανικών Πληροφορικής Τ.Ε., T.E.I. Θεσσαλίας Email: savvas@teilar.gr URL: http://teilar.academia.edu/iliassavvas

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

Μεταβλητές τύπου χαρακτήρα

Μεταβλητές τύπου χαρακτήρα Μεταβλητές τύπου χαρακτήρα 31 Μαρτίου 014 1 Μεταβλητές τύπου char Για χειρισμό χαρακτήρων η C διαθέτει τον τύπο char. Ο τύπος είναι βαθμωτός δηλαδή ακέραιης αναπαράστασης. Τυπικά έχει μέγεθος ενός byte

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

Πίνακες: μια σύντομη εισαγωγή. Πίνακες χαρακτήρων: τα "Αλφαριθμητικά"

Πίνακες: μια σύντομη εισαγωγή. Πίνακες χαρακτήρων: τα Αλφαριθμητικά Πίνακες: μια σύντομη εισαγωγή Πίνακες χαρακτήρων: τα "Αλφαριθμητικά" Πίνακες(Arrays): έννοιες και ορισμοί Ορισμός: Πίνακας (array) = σύνολο μεταβλητών του ιδίου τύπου (int, float, char,...) με ένα κοινό

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

Μεταγλωττιστές. Γιώργος Δημητρίου. Μάθημα 8 ο. Πανεπιστήμιο Θεσσαλίας - Τμήμα Ηλεκτρολόγων Μηχανικών & Μηχανικών Υπολογιστών

Μεταγλωττιστές. Γιώργος Δημητρίου. Μάθημα 8 ο. Πανεπιστήμιο Θεσσαλίας - Τμήμα Ηλεκτρολόγων Μηχανικών & Μηχανικών Υπολογιστών Γιώργος Δημητρίου Μάθημα 8 ο Μετάφραση Οδηγούμενη από τη Σύνταξη Ο ΣΑ καλεί τις ρουτίνες που εκτελούν τη σημασιολογική ανάλυση και παράγουν τον ενδιάμεσο κώδικα Σημασιολογικές πληροφορίες μπορούν να μεταφέρονται

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

4 C Θεωρία και Πράξη. 6.8 Συναρτήσεις και στατικές μεταβλητές Αναδρομικές συναρτήσεις 119

4 C Θεωρία και Πράξη. 6.8 Συναρτήσεις και στατικές μεταβλητές Αναδρομικές συναρτήσεις 119 Προλεγόμενα 9 1 Εισαγωγή 15 1.1 Χαρακτηριστικά της γλώσσας 15 1.2 Διαδικασία προγραμματισμού υπό το Unix 17 1.3 Προγραμματίζοντας στην C 19 2 Υπολογιστική 23 2.1 Μεταβλητές και σταθερές 23 2.2 Τύποι δεδομένων

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Η γλώσσα προγραμματισμού Strange Προγραμματιστική άσκηση: Η γλώσσα προγραμματισμού Strange Η Strange είναι μια μικρή γλώσσα προγραμματισμού. Παρόλο που οι προγραμματιστικές της ικανότητες είναι μικρές, η εκπαιδευτική αυτή γλώσσα περιέχει

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

οµές (structures) και Eνώσεις (unions)

οµές (structures) και Eνώσεις (unions) οµές (structures) και Eνώσεις (unions) Στην ενότητα αυτή θα µελετηθούν τα εξής επιµέρους θέµατα: οµές, φωλιασµένες δοµές, τρόποι δήλωσης δοµών, δοµές ως παράµετροι σε συναρτήσεις, δείκτες σε δοµές, χρήση

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

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

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

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

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

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

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

Α Β Γ static; printf("%c\n", putchar( A +1)+2); B DB BD. int i = 0; while (++i); printf("*");

Α Β Γ static; printf(%c\n, putchar( A +1)+2); B DB BD. int i = 0; while (++i); printf(*); ΕΙΣΑΓΩΓΗ ΣΤΟΝ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟ Εξετάσεις Α Περιόδου 2016 (1/2/2016) ΟΝΟΜΑΤΕΠΩΝΥΜΟ:................................................................................ Α.Μ.:...............................................

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

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

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

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

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

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

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

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

Η γλώσσα προγραμματισμού C Η γλώσσα προγραμματισμού C Οι συναρτήσεις στη C Οι συναρτήσεις τι είναι Πρόκειται για ανεξάρτητα τμήματα ενός προγράμματος (υποπρογράμματα) που επιτελούν συγκεκριμένες εργασίες. Καλούνται από το κυρίως

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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