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

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

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

Transcript

1 Φροντιστήρια Σύντομη Ιστορία της C Η γλώσσα προγραμματισμού C δημιουργήθηκε από τον Dennis Ritchie στα Bell Labs το 1972 όταν αυτός και ο Ken Thompson ασχολούνταν με τον σχεδιασμό του λειτουργικού συστήματος Unix. Η C ήταν μια εξέλιξη της γλώσσας Β του Ken Thompson και εκείνη με τη σειρά της ήταν μια εξέλιξη της γλώσσας BCPL και δημιουργήθηκε για να μπορέσει να καλύψει κάποιες αυξημένες ανάγκες στον προγραμματισμό. Αργότερα αναπτύχθηκαν πολλές παραλλαγές της C που ήταν επόμενο να έχουν ασυμφωνίες μεταξύ τους. Έτσι, δημιουργήθηκε μια επιτροπή στις αρχές του καλοκαιριού του 1983 που άρχισε να δουλεύει πάνω στη δημιουργία ενός προτύπου Ansi το οποίο και θα όριζε μια για πάντα τη γλώσσα C. Μια Σύγκριση των Γλωσσών Προγραμματισμού Η C θεωρείται γενικά γλώσσα μέσου επιπέδου και αυτό γιατί συνδυάζει στοιχεία των γλωσσών υψηλού επιπέδου (high level languages), όπως είναι η Cobol και η Pascal και στοιχεία των γλωσσών χαμηλού επιπέδου (low level languages), όπως είναι η Assembly. Για να διευκρινίσουμε, πρέπει να πούμε ότι σαν γλώσσα υψηλού επιπέδου θεωρείται η γλώσσα εκείνη που είναι αρκετά περιγραφική και που είναι έτσι πιο κοντά στην ανθρώπινη γραπτή γλώσσα και σαν γλώσσα χαμηλού επιπέδου θεωρείται εκείνη που είναι πιο κοντά στη μηχανή. Αυτός ο χαρακτηρισμός δεν έχει καμία απολύτως σχέση με τις δυνατότητες της γλώσσας. Σίγουρα, η κάθε γλώσσα προγραμματισμού έχει κάποιες προτεραιότητες να εκπληρώσει. Η Pascal, για παράδειγμα, χρησιμοποιείται κυρίως για τη σωστή διδασκαλία των αρχών του προγραμματισμού, ενώ η Basic δημιουργήθηκε έτσι ώστε να δώσει τη δυνατότητα σε αρχάριους στον προγραμματισμό να κάνουν με άνεση και ευκολία τα πρώτα τους βήματα στον ιδιόμορφο αυτό χώρο. Ο Clipper και η Cobol είναι καθαρά επαγγελματικές γλώσσες προγραμματισμού. Η C, όμως, μπόρεσε να φέρει τον προγραμματιστή πιο κοντά στο hardware, που με τις άλλες γνωστές γλώσσες προγραμματισμού κάτι τέτοιο θα ήταν πολύ δύσκολο να γίνει. Βέβαια, η κάθε γλώσσα προγραμματισμού κάνει και διαφορετική δουλειά και δεν θα ήταν σωστό να κάνουμε συγκρίσεις, για τον ίδιο λόγο που δεν μπορούμε να συγκρίνουμε ένα αεροπλάνο μ ένα ποδήλατο καθώς το καθένα είναι προορισμένο να κάνει διαφορετική δουλειά. Τα Πλεονεκτήματα της C Τα τελευταία χρόνια η C έχει καθιερωθεί ως μια από τις σημαντικότερες και δημοφιλέστερες γλώσσες προγραμματισμού. Τα σημαντικότερα πλεονεκτήματα που εξηγούν αυτήν την προτίμησή της, αναφέρονται παρακάτω. Χαρακτηριστικά Σχεδίασης, Η C έχει μοντέρνες δομές ελέγχου για να μπορούμε να κάνουμε επαναληπτικές εργασίες και για εύκολη επιλογή εναλλακτικών τρόπων δράσης. Με το πλήθος των δομών δεδομένων που διαθέτει, μπορεί να αναπαραστήσει ένα μεγάλο σύνολο από διαφορετικούς τύπους πληροφοριών. Έχει και το μεγάλο πλεονέκτημα ότι επιβάλλει τη διάσπαση του προγράμματος σε αυτοδύναμες ενότητες, τις συναρτήσεις. Αποτελεσματική, Η C είναι μια αποτελεσματική γλώσσα προγραμματισμού, που είναι τόσο συμπεριεκτική, ώστε να χρησιμοποιούμε σ' αυτήν πολύ λιγότερες λέξεις σε σχέση με άλλες γλώσσες. Έχει έναν συμπαγή και γρήγορο κώδικα. Φορητή Γλώσσα, Η C είναι μια φορητή γλώσσα, δηλ. τα προγράμματά της μπορούν να τρέξουν με λίγες ή και με καθόλου τροποποιήσεις και σε ένα άλλο σύστημα. Μάλιστα θεωρείται σαν η πιο φορητή γλώσσα. Δυναμικότητα και Ευελιξία, Η C είναι δυναμική και ευέλικτη, δύο ιδιότητες που είναι αρκετά δημοφιλείς στους υπολογιστές. Όπως ξέρουμε, το μεγαλύτερο μέρος του δυναμικού και ευέλικτου λειτουργικού συστήματος Unix είναι γραμμένο σε C. Αυτό ισχύει και για επεξεργαστές κειμένων, μεταγλωττιστές (compilers) και ερμηνευτές (interpreters) γλωσσών προγραμματισμού. Η C

2 διαθέτει μερικά από τα χαρακτηριστικά ελέγχου που συνήθως τα συναντάμε στη συμβολική γλώσσα (assembly language). Προσανατολισμός προς τον Προγραμματιστή, Η C είναι προσανατολισμένη προς τις ανάγκες του προγραμματιστή, ο οποίος και έχει άμεση πρόσβαση στο υλικό. Με τη C έχουμε τη σπουδαία δυνατότητα να μπορούμε να χειριζόμαστε μεμονωμένα τα δυαδικά ψηφία (bits) της μνήμης. Γενικά η C είναι πολύ λιγότερο περιοριστική στο να μας αφήνει να κάνουμε ό,τι θέλουμε σε σχέση με την Pascal για παράδειγμα. Αυτή η ελευθερία είναι και πλεονέκτημα, αλλά είναι και επικίνδυνη όπως είναι φυσικό. Στη C τα πάντα (σχεδόν) επιτρέπονται. Δεν γίνεται έλεγχος των τύπων, άρα μπορεί κανείς να ανακατέψει ό,τι δεδομένα θέλει, κάτι που είναι πολύ χρήσιμο όταν προγραμματίζουμε σε επίπεδο συστήματος. Ακόμη, η C έχει μια τεράστια βιβλιοθήκη από χρήσιμες συναρτήσεις. Τα Μειονεκτήματα της C Η C έχει και μειονεκτήματα, γιατί όπως πολύ καλά ξέρουμε η πολύ ελευθερία βλάπτει. Για παράδειγμα, η ελευθερία έκφρασης που αναφέραμε παραπάνω ότι έχει η C, απαιτεί από τον προγραμματιστή μια αυξημένη επαγρύπνηση και υπευθυνότητα. Ακόμη, η λακωνικότητα της C σε συνδυασμό με τον πλούτο των τελεστών που έχει, έχει σαν αποτέλεσμα τη δημιουργία προγραμμάτων που είναι τόσο δυσανάγνωστα, ώστε να είναι δύσκολο να τα κατανοήσει κάποιος με την πρώτη ματιά και πολλές φορές ακόμα και αυτός που τα έγραψε. Επιπλέον, συχνά είναι πολύ δύσκολο να ανιχνευθούν και τα λογικά λάθη σ ένα πρόγραμμα της C. Η C έχει τελικά τόσες πολλές δυνατότητες έκφρασης, ώστε να χρειαστεί πολύς καιρός για να μπορεί να πει κανείς με βεβαιότητα ότι την έμαθε καλά. Γράψιμο προγράμματος σε C Όπως είπαμε στα προηγούμενα, η C επιβάλλει τον καταμερισμό του προγράμματος σε ενότητες, που ονομάζονται συναρτήσεις (functions). Εάν είναι απαραίτητο, οι συναρτήσεις μπορούν να χωριστούν και σε μικρότερες συναρτήσεις. Επίσης, στη C το κύριο πρόγραμμα είναι κι αυτό μια συνάρτηση, που ονομάζεται. Μια μέθοδος για το γράψιμο ενός προγράμματος στη C είναι να ξεκινήσουμε γράφοντας τη συνάρτηση, την ενότητα του πιο πάνω επιπέδου και μετά να ασχοληθούμε με τις συναρτήσεις των πιο κάτω επιπέδων. Η διαδικασία αυτή ονομάζεται πάνω-προς-τα-κάτω προγραμματισμός (topdown programming). Η αντίστροφη διαδικασία, δηλ. το να ασχοληθούμε πρώτα με τις συναρτήσεις των κατώτερων επιπέδων και μετά να ανεβαίνουμε προς τα πάνω, ονομάζεται κάτω-προς-τα-πάνω προγραμματισμός (bottom-up programming). Ένα πλεονέκτημα του πάνω-προς-τα-κάτω προγραμματισμού είναι ότι μπορούμε να χαράξουμε καλύτερα τη ροή του προγράμματος, μια και δεν ασχολούμαστε από την αρχή με τις λεπτομέρειες των επί μέρους συναρτήσεων. Μεταγλώττιση και Σύνδεση Προγράμματος Ο μεταγλωττιστής (compiler) της C μετατρέπει τον πηγαίο κώδικα (source program), δηλ. το πρόγραμμα που γράφουμε σε C, σ έναν αντικειμενικό κώδικα (object program) και το πρόγραμμα σύνδεσης (linker) συνδυάζει αυτόν τον κώδικα με άλλους κώδικες και δημιουργείται έτσι το εκτελέσιμο αρχείο (executable file). Τα προγράμματα της C έχουν την επέκταση.c. Ο ρόλος του προγράμματος σύνδεσης είναι να ενώσει τον τελικό κώδικα, τον κώδικα εκκίνησης (start-up code) του συστήματός μας και τον κώδικα βιβλιοθήκης (library code) στο εκτελέσιμο αρχείο. Ο κώδικας εκκίνησης έχει σχέση με την επικοινωνία μεταξύ του προγράμματος και του λειτουργικού συστήματος και ο κώδικας βιβλιοθήκης περιέχει τον τελικό κώδικα για πολλές συναρτήσεις. Σε μερικά συστήματα πρέπει να τρέξουμε τα προγράμματα μεταγλώττισης και σύνδεσης ξεχωριστά, ενώ σ' άλλα ο μεταγλωττιστής ενεργοποιεί το πρόγραμμα σύνδεσης αυτόματα μόνος του.

3 Ένα Απλό Πρόγραμμα στη C /* prog01.c αυτό είναι ένα απλό πρόγραμμα στη γλώσσα C */ int num; /* ορίζεται μια ακέραια μεταβλητή με το όνομα num */ num = 10 ; /* καταχώρηση τιμής στη μεταβλητή num */ printf("ένα πολύ απλό πρόγραμμα σε C.\n"); /* η συνάρτηση printf() */ printf("ο αγαπημένος μου αριθμός είναι ο %d.\n", num); Αφού μεταγλωττίσουμε και τρέξετε το παραπάνω πρόγραμμα, τότε θα πρέπει να εμφανισθούν στην οθόνη τα παρακάτω : Ένα πολύ απλό πρόγραμμα σε C. Ο αγαπημένος μου αριθμός είναι ο 10. Σύντομη Ανάλυση του Προγράμματος Η πρώτη γραμμή του προγράμματος χρησιμοποιεί τα σύμβολα /* και */ για να συμπεριλάβουμε εκεί κάποια σχόλια (comments), που θα μας βοηθήσουν να κάνουμε το πρόγραμμά μας πιο ευανάγνωστο. Αυτά τα σχόλια αγνοούνται από τον υπολογιστή. Η δεύτερη γραμμή λέει στον υπολογιστή να συμπεριλάβει (include) τις πληροφορίες που υπάρχουν στο αρχείο stdio.h, το οποίο αποτελεί μέρος του πακέτου της γλώσσας C. Τα προγράμματα της C αποτελούνται από μία ή περισσότερες συναρτήσεις, που είναι και οι βασικές ενότητες ενός προγράμματος C. Αυτό το πρόγραμμα αποτελείται από μία μόνο συνάρτηση που καλείται. Οι παρενθέσεις υποδηλώνουν ότι το είναι ένα όνομα μιας συνάρτησης. Η αγκύλη δηλώνει την αρχή των προτάσεων που αποτελούν τη συνάρτηση και ο ορισμός της συνάρτησης τελειώνει με την αντίστοιχη αγκύλη. Οι αγκύλες και είναι αντίστοιχες με τα begin και end της Pascal. Η πρόταση δήλωσης μάς λέει ότι θα χρησιμοποιήσουμε μια μεταβλητή με το όνομα num και ότι η num είναι ακέραια μεταβλητή (integer). Η πρόταση καταχώρησης δίνει την τιμή 10 στη μεταβλητή num. Η επόμενη γραμμή είναι για την εκτύπωση της φράσης που βρίσκεται μεταξύ των εισαγωγικών (" "). Το \n λέει στον υπολογιστή να ξεκινήσει μια νέα γραμμή (σαν να πατούσαμε το πλήκτρο <enter>). Η επόμενη γραμμή είναι για την εκτύπωση της τιμής της num (που είναι το 10) ανάμεσα στη φράση που βρίσκεται μεταξύ των " ". Η εντολή %d λέει στον υπολογιστή πού και με ποια μορφή να εκτυπώσει την τιμή της num. Το πρόγραμμα τελειώνει με την αγκύλη. Λεπτομερής Ανάλυση του Προγράμματος Τα Αρχεία Επικεφαλίδας #include Το αρχείο stdio.h αποτελεί μέρος του μεταγλωττιστή της C και περιέχει πληροφορίες σχετικές με συναρτήσεις εισόδου και εξόδου, όπως είναι η printf(), που χρησιμοποιεί ο μεταγλωττιστής. Το όνομά του προέρχεται από τις λέξεις standard input/output header. Οι χρήστες της C αναφέρουν σαν επικεφαλίδα μια συλλογή πληροφοριών που βρίσκεται στην αρχή ενός αρχείου. Το αποτέλεσμα της εντολής θα ήταν το ίδιο με το να αντιγράφαμε όλο το περιεχόμενο του αρχείου stdio.h στο δικό μας αρχείο, στη θέση όπου εμφανίζεται αυτή η γραμμή προγράμματος. Στην πραγματικότητα, αυτή η γραμμή προγράμματος δεν είναι καν μια πρόταση της γλώσσας C. Το σύμβολο # σημαίνει ότι τη γραμμή αυτή τη διαχειρίζεται ο προεπεξεργαστής (preprocessor) της C, ο οποίος διαχειρίζεται κάποιες εργασίες πριν από τον μεταγλωττιστή. Η Συνάρτηση Η εκτέλεση ενός προγράμματος σε C αρχίζει πάντα με μια συνάρτηση που αποκαλείται. Είμαστε ελεύθεροι να επιλέξουμε τα ονόματα των άλλων συναρτήσεων που ίσως χρησιμοποιήσουμε, αλλά θα πρέπει υποχρεωτικά να υπάρχει η συνάρτηση στην αρχή του προγράμματος. Οι

4 παρενθέσεις δηλώνουν ότι η είναι μια συνάρτηση. Γενικά, οι παρενθέσεις περιέχουν πληροφορίες (ορίσματα) που θα περάσουν μέσα στη συνάρτηση. Όταν, βέβαια, δεν υπάρχουν πληροφορίες για να περάσουν (μεταβιβασθούν), τότε οι παρενθέσεις είναι άδειες. Τα Σχόλια Όταν στο πρόγραμμά μας έχουμε σχόλια, τότε είναι πολύ ευκολότερο σε κάποιον άλλον, αλλά ακόμα και σε μας, να καταλάβει τι κάνει το πρόγραμμά μας. Ο,τιδήποτε υπάρχει ανάμεσα στο σύμβολο ανοίγματος /* και στο σύμβολο κλεισίματος */ των σχολίων αγνοείται από τον υπολογιστή και τα σχόλια στη C μπορούν να τοποθετηθούν οπουδήποτε, ακόμα και σε πολλές συνεχόμενες γραμμές. Αγκύλες, Σώματα, Μπλοκ Οι αγκύλες και δηλώνουν την αρχή και το τέλος του σώματος μιας συνάρτησης και μπορούν ακόμη να χρησιμοποιηθούν για να συμπεριλάβουν μαζί προτάσεις μέσα σε μια ομάδα ή σ ένα μπλοκ του προγράμματος, κάτι δηλαδή παρόμοιο με τα begin και end της Pascal. Οι Προτάσεις Δήλωσης Η πρόταση δήλωσης είναι μια από τις σημαντικότερες προτάσεις της C. Η δήλωση αυτή σημαίνει ότι κάπου μέσα στη συνάρτηση χρησιμοποιούμε τη μεταβλητή που δηλώνουμε και ότι ο τύπος της είναι αυτός που δείχνουμε, π.χ. ακέραιος. Η λέξη int είναι μια λέξη-κλειδί της C, δηλ. δεν μπορεί να χρησιμοποιηθεί αλλού μέσα στο πρόγραμμα σαν όνομα μιας συνάρτησης ή μιας μεταβλητής. Το ερωτηματικό στο τέλος της γραμμής δηλώνει ότι η γραμμή αυτή αποτελεί μια πρόταση ή εντολή της C. Οι Τύποι Δεδομένων και οι Μεταβλητές Η C έχει διάφορα είδη (τύπους) δεδομένων : ακέραιους, χαρακτήρες, κινητής υποδιαστολής, αριθμούς κ.ά. Για το όνομα μιας μεταβλητής μπορούμε να χρησιμοποιήσουμε μικρά γράμματα, κεφαλαία γράμματα, ψηφία αριθμών και τον χαρακτήρα της υπογράμμισης (_). Ο πρώτος χαρακτήρας, όμως, πρέπει να είναι πάντα γράμμα. Πρέπει να είναι όλες οι μεταβλητές του προγράμματος συγκεντρωμένες μαζί για να είναι ευκολότερο για τον αναγνώστη να καταλάβει τι κάνει το πρόγραμμα και ακόμη πρέπει να υπάρχουν και σχόλια δίπλα στην κάθε μεταβλητή που να εξηγούν την αποστολή της. Ακόμη, η ονομασία που δίνουμε στις μεταβλητές πρέπει να μας βοηθάει να καταλαβαίνουμε και τη χρήση τους. Η Εντολή Καταχώρησης Η πρόταση καταχώρησης είναι μια από τις βασικότερες προτάσεις της C και με τη χρήση της δίνουμε τιμές στις μεταβλητές του προγράμματος. Η πρόταση καταχώρησης ολοκληρώνεται με το Ελληνικό ερωτηματικό (;). Η Συνάρτηση printf() Οι παρενθέσεις δηλώνουν κατ' αρχήν ότι πρόκειται για συνάρτηση. Τα στοιχεία που περιέχονται μεταξύ των παρενθέσεων είναι οι πληροφορίες που περνάμε (μεταβιβάζουμε) από τη συνάρτηση στη συνάρτηση printf(). Η πληροφορία που περνάει λέγεται όρισμα της συνάρτησης και η συγκεκριμένη συνάρτηση printf() εξετάζει τι υπάρχει μεταξύ των " " και το απεικονίζει στην οθόνη ενός τερματικού. Για να καλέσουμε μια συνάρτηση το μόνο που χρειάζεται να κάνουμε είναι να γράψουμε το όνομά της και να συμπεριλάβουμε το επιθυμητό όρισμα μέσα σε παρενθέσεις. Όταν το πρόγραμμα φθάσει σ αυτή τη γραμμή, τότε ο έλεγχος περνάει στη συνάρτηση και μετά την ενεργοποίησή της, ο έλεγχος επιστρέφει στο αρχικό πρόγραμμα. Ο χαρακτήρας \n, που δεν εμφανίζεται όταν τρέξει το πρόγραμμα, είναι στην πραγματικότητα μια εντολή για το ξεκίνημα μιας νέας γραμμής. Ο συνδυασμός \n αποτελεί έναν απλό χαρακτήρα που καλείται χαρακτήρας νέας γραμμής, δηλ. ενεργεί όπως το πλήκτρο <enter>. Οχαρακτήρας νέας γραμμής είναι ένα παράδειγμα αυτού που ονομάζεται ακολουθία διαφυγής και που χρησιμοποιείται για να παριστάνει δύσκολους ή αδύνατον να πληκτρολογηθούν χαρακτήρες. Άλλα παραδείγματα τέτοιων χαρακτήρων είναι το \t για το πλήκτρο tab και το\b για ένα διάστημα προς τα πίσω (backspace). Τι είναι, όμως, το σύμβολο %d;

5 Δείχνει σε ποιο σημείο θα εμφανιστεί η τιμής μιας μεταβλητής και ότι η μεταβλητή αυτή είναι ένας ακέραιος αριθμός. Μια συνάρτηση στη C αποτελείται από μια επικεφαλίδα και ένα σώμα. Η επικεφαλίδα περιέχει τις προτάσεις του προεπεξεργαστή, όπως είναι η #include, και το όνομα της συνάρτησης. Το σώμα της συνάρτησης βρίσκεται μέσα στις αγκύλες και και αποτελείται από μια σειρά προτάσεων, που η κάθε μια τελειώνει μ ένα ελληνικό ερωτηματικό ;. Μέσα στο σώμα της συνάρτησης μπορεί να υπάρχουν προτάσεις δήλωσης, καταχώρησης και κλήσης άλλων συναρτήσεων. Τεχνικές για πιο Ευανάγνωστα Προγράμματα Δύο τέτοιες τεχνικές που είδαμε στα προηγούμενα ήταν η χρήση σχολίων και η σωστή ονομασία των μεταβλητών. Μια άλλη τεχνική είναι η χρήση κενών γραμμών για να ξεχωρίζουν τα τμήματα του προγράμματος. Ακόμη, στη C μπορούμε να τοποθετήσουμε πολλές προτάσεις σε μια γραμμή ή και να χωρίσουμε μια πρόταση σε πολλές γραμμές. Το ελληνικό ερωτηματικό λέει στον μεταγλωττιστή πού τελειώνει μια πρόταση και πού αρχίζει η επόμενη. Πιο σωστό είναι πάντως να γράφουμε μια πρόταση ανά γραμμή. Ένα Ακόμη Παράδειγμα στη C /* prog02.c το πρόγραμμα αυτό μετατρέπει τα μέτρα σε εκατοστά */ int cm, metres; metres = 2; cm = 100 * metres; printf("υπάρχουν %d εκατοστά σε %d μέτρα. \n", cm, metres); Όπως βλέπουμε, το πρώτο σχόλιο του προγράμματος περιέχει το όνομά του και το τι ακριβώς κάνει. Ακόμη, το πρόγραμμα δηλώνει δύο ακέραιες μεταβλητές μαζί, τις οποίες και διαχωρίζει με κόμμα. Χρησιμοποιεί τον τελεστή του πολλαπλασιασμού, που είναι το * και εκτυπώνει πολλές μεταβλητές μαζί στη συνάρτηση printf(). Όταν τρέξει το πρόγραμμα, θα δώσει το εξής αποτέλεσμα : Υπάρχουν 200 εκατοστά σε 2 μέτρα. Κλήση Συνάρτησης Στο επόμενο παράδειγμα θα δούμε πώς μπορούμε να συμπεριλάβουμε και να καλούμε και μια δική μας συνάρτηση. /* prog03.c ένα πρόγραμμα που καλεί μια συνάρτηση */ printf("θα καλέσω τη συνάρτηση test.\n"); test(); printf("η κλήση της συνάρτησης έγινε.\n"); patra() printf("γεια σας από την test.\n"); Το αποτέλεσμα του προγράμματος θα είναι το παρακάτω : Θα καλέσω τη συνάρτηση της test.

6 Γεια σας από τη test. Η κλήση της συνάρτησης έγινε. Η συνάρτηση test() ορίζεται με τον ίδιο τρόπο, όπως και η, με το σώμα της να βρίσκεται ανάμεσα σε αγκύλες. Η συνάρτηση καλείται δίνοντας απλά το όνομά της μαζί με τις παρενθέσεις. Όταν η συνάρτηση test() τελειώσει τη δουλειά της, το πρόγραμμα προχωράει στην επόμενη πρόταση της. Πρέπει να έχουμε υπόψη μας ότι οι συναρτήσεις μπορούν να γραφούν είτε πριν ή μετά από την κύρια συνάρτηση, αλλά εκτελούνται μόνο όταν και όπου η τις καλεί. Έλεγχος της Ορθότητας των Προγραμμάτων Συντακτικά Λάθη Το συντακτικό λάθος στη C είναι κάτι ανάλογο με το γραμματικό λάθος στη γλώσσα που μιλάμε. Συντακτικά λάθη στη C μπορούν να γίνουν και με τη χρήση επιτρεπτών συμβόλων σε λανθασμένες θέσεις. Παραδείγματα τέτοιων λαθών μπορεί να είναι η μη σωστή χρήση των αγκυλών και ή ακόμη το να ανοίγουμε μια αγκύλη και να μην την κλείνουμε, το να ανοίγουμε κάπου σχόλια και να ξεχνάμε να τα κλείσουμε κοκ. Όπως ξέρουμε, μέρος της δουλειάς του μεταγλωττιστή είναι και η ανακάλυψη των συντακτικών λαθών του προγράμματος. Υπάρχουν, όμως, και περιπτώσεις όπου ένα λάθος παράγει, άθελά μας, και άλλα λάθη. Εννοιολογικά Λάθη Το εννοιολογικό λάθος είναι το λάθος στο νόημα των προτάσεων. Στη C εννοιολογικά λάθη μπορούμε να κάνουμε, όταν ακολουθούμε μεν σωστά τους κανόνες της γλώσσας, αλλά με λανθασμένο αποτέλεσμα. Τέτοιο λάθος μπορεί να γίνει, όταν π.χ. αντί να προσθέσουμε δύο μεταβλητές, τις πολλαπλασιάζουμε. Με τα λάθη αυτά βέβαια δεν έχει καμία σχέση ο μεταγλωττιστής. Είναι δική μας δουλειά να τα ανακαλύψουμε και να τα διορθώσουμε. Ο καλύτερος τρόπος για να ανακαλύψουμε τέτοια λάθη είναι να εξετάσουμε το πρόγραμμα βήμα-βήμα. Μπορούμε ακόμα να χρησιμοποιούμε επιλεκτικά και τη συνάρτηση printf() μέσα στο πρόγραμμα, ώστε να ελέγχουμε τις τιμές κάποιων μεταβλητών του προγράμματος. Τις εντολές printf() τις απομακρύνουμε μετά όταν το πρόγραμμά μας λειτουργήσει κανονικά. Και η χρήση των σχολίων μπορεί να αποδειχθεί χρήσιμη εδώ, γιατί με τη βοήθειά τους μπορούμε να απομονώσουμε κάποιο κομμάτι του προγράμματος προσωρινά και να ελέγξουμε έτσι την ορθότητα του υπόλοιπου προγράμματος. Υπάρχουν και ειδικά προγράμματα που λέγονται αποσφαλματωτές (debuggers) και που μας επιτρέπουν να βλέπουμε τις τιμές των μεταβλητών του προγράμματος και ποια γραμμή του προγράμματος εκτελείται. Οι Λέξεις-Κλειδιά της ANSI C Οι λέξεις-κλειδιά ή δεσμευμένες λέξεις (reserved words) αποτελούν το λεξιλόγιο της C και γι αυτόν τον λόγο δεν μπορούμε να τις χρησιμοποιούμε για να δηλώσουμε ονόματα μεταβλητών ή συναρτήσεων στα προγράμματά μας. Οι λέξεις αυτές είναι οι εξής : auto break case char const continue default do double else enum extern float for goto if int long register return short signed sizeof static struct switch typedef union unsigned void

7 volatile while Θα δούμε τώρα τα δεδομένα και τις ιδιότητές τους και θα μελετήσουμε κυρίως τις τρεις μεγάλες οικογένειες, των ακεραίων αριθμών, των αριθμών κινητής υποδιαστολής και των χαρακτήρων. Ένα Απλό Πρόγραμμα Ακολουθεί ένα απλό πρόγραμμα σε C. /* prog04.c η αξία ενός ποσού σε ευρώ */ float draxmes, euro; /* 2 μεταβλητές κινητής υποδιαστολής */ char beep; /* μια μεταβλητή τύπου χαρακτήρα */ beep = \007 /* καταχώρηση ενός ειδικού χαρακτήρα */ printf("θέλετε να μάθετε την αξία των χρημάτων σας σε δραχμές;\n"); printf("παρακαλώ δώστε την αξία σε ευρώ \n"); printf("και θα δούμε.\n"); scanf("%f", &euro); /* παίρνουμε δεδομένα από τον χρήστη */ draxmes = * euro; /* ο συντελεστής μετατρέπει τις δραχμές σε ευρώ */ printf("%c Η αξία σε δραχμές είναι %.2f%c. \n", beep, draxmes, beep); Αφού τρέξουμε αυτό το πρόγραμμα, θα πάρουμε το εξής αποτέλεσμα : Θέλετε να μάθετε την αξία των χρημάτων σας σε δραχμές; Παρακαλώ δώστε την αξία σε ευρώ και θα δούμε Η αξία σε δραχμές είναι Τι Καινούργια Στοιχεία Υπάρχουν Πρώτα απ' όλα χρησιμοποιούμε δύο νέα είδη μεταβλητών, μια μεταβλητή κινητής υποδιαστολής (float) και μια μεταβλητή χαρακτήρων (char) και συνεπώς μπορούμε τώρα να διαχειριστούμε περισσότερα δεδομένα. Για την εμφάνιση στην οθόνη αυτών των νέων ειδών μεταβλητών χρησιμοποιούμε τους κώδικες %f και %c της printf() αντίστοιχα. Η χρήση του.2 σημαίνει δύο δεκαδικά ψηφία στην εμφάνιση του δεκαδικού αριθμού, άσχετα αν με τις δραχμές δεν είχαμε δεκαδικά ψηφία. Για την εισαγωγή δεδομένων από το πληκτρολόγιο χρησιμοποιούμε τη συνάρτηση scanf(). Ο κώδικας %f καθοδηγεί το πρόγραμμα να διαβάσει έναν αριθμό κινητής υποδιαστολής και το &euro λέει στη συνάρτηση scanf() να καταχωρήσει την τιμή στη μεταβλητή euro. Το σύμβολο & θα αναλυθεί αργότερα. Οι δύο συναρτήσεις printf() και scanf() επιτυγχάνουν τη διαλογική επικοινωνία μας με τον υπολογιστή, αφού η μεν scanf() διαβάζει δεδομένα από το πληκτρολόγιο και τα μεταφέρει για επεξεργασία στο πρόγραμμα και η printf() διαβάζει δεδομένα από το πρόγραμμα και τα εμφανίζει στην οθόνη. Υπάρχει ακόμα και ο χαρακτήρας beep που παριστάνει το ηχητικό σήμα. Οι Τύποι Δεδομένων Ο τύπος μιας μεταβλητής μπορεί να καθοριστεί σε μια πρόταση δήλωσης. Η C χρησιμοποιεί τις εξής επτά λέξεις-κλειδιά για τους τύπους δεδομένων της : int, long, short, unsigned, char, float και double. Η int δηλώνει τον βασικό τύπο ακεραίων και οι long, short και unsigned χρησιμοποιούνται σε παραλλαγές του βασικού τύπου. Η char χρησιμοποιείται γενικά για τους χαρακτήρες και οι float,

8 double και ο συνδυασμός long double χρησιμοποιούνται για την παράσταση αριθμών κινητής υποδιαστολής. Οι πέντε πρώτες λέξεις-κλειδιά δημιουργούν ακέραιους τύπους, ενώ οι δύο τελευταίες τύπους κινητής υποδιαστολής. Οι ακέραιοι αποθηκεύονται σε μορφή ψηφιακών αριθμών, ενώ για τους αριθμούς κινητής υποδιαστολής υπάρχουν πολλοί τρόποι για να τους παραστήσουμε μέσα στον υπολογιστή. Ο πιο γνωστός είναι με τη χρήση του συμβόλου Ε, όπου και έχουμε το κλασματικό και το εκθετικό τμήμα του αριθμού, τα οποία και αποθηκεύονται ξεχωριστά. Έτσι, ο 7 γράφεται σαν 0.7Ε1, που σημαίνει 0.7 Χ 10 1 = 7. Κάτι που πρέπει να τονιστεί για τους αριθμούς κινητής υποδιαστολής είναι τα συχνά σφάλματα στρογγυλοποίησης που μπορεί να συμβούν μ' αυτούς και έτσι σαν γενικό κανόνα πρέπει να έχουμε υπόψη μας το ότι όταν οι ακέραιοι αριθμοί κάνουν τη δουλειά μας, να τους χρησιμοποιούμε ανεπιφύλακτα. Οι Ακέραιοι Τύποι Δεδομένων Ο τύπος int που ήδη ξέρουμε είναι ένας ακέραιος με πρόσημο, δηλ. πρέπει να είναι ένας ολόκληρος ακέραιος και μπορεί να είναι θετικός, αρνητικός ή και μηδέν. Συνήθως χρησιμοποιούνται δύο bytes για να αποθηκευθεί ένας ακέραιος της μορφής αυτής και έτσι το εύρος τιμών του είναι από έως και Η λέξη-κλειδί int χρησιμοποιείται για τη δήλωση μεταβλητών αυτού του τύπου. Για να δηλώσουμε περισσότερες μεταβλητές αυτού του τύπου, μπορούμε είτε να τις δηλώσουμε χωριστά, ή να τις δηλώσουμε όλες μαζί, αλλά χωρισμένες με κόμμα. Οι δηλώσεις δημιουργούν μεταβλητές, αλλά δεν καταχωρούν τιμές σ' αυτές. Η καταχώρηση των τιμών γίνεται μέσα στο πρόγραμμα με τις εντολές καταχώρησης ή και μέσω της συνάρτησης scanf(). Απόδοση αρχικής τιμής σε μια μεταβλητή σημαίνει να ορίσουμε την τιμή εκκίνησης της μεταβλητής. Στη C αυτό μπορεί να γίνει σε μια πρόταση δήλωσης, όπου μετά το όνομα της μεταβλητής υπάρχει ο τελεστής καταχώρησης (=) και μετά η αρχική τιμή της μεταβλητής, ως εξής : int a=10; int b, cs=20; Στη C ειδικά προθέματα δηλώνουν ποια βάση αρίθμησης χρησιμοποιούμε. Το πρόθεμα 0 (μηδέν) σημαίνει ότι γράφουμε στο οκταδικό και το πρόθεμα 0x ή 0X σημαίνει ότι ο αριθμός είναι δεκαεξαδικός. Έτσι, ο δεκαδικός αριθμός 16 γράφεται στο οκταδικό σύστημα σαν 020 και στο δεκαεξαδικό σύστημα σαν 0x10 ή 0X10. Σ' όλες τις περιπτώσεις χρησιμοποιείται ο δυαδικός κώδικας από τον υπολογιστή για την αποθήκευση του αριθμού. Το σύμβολο %d που είδαμε στα προηγούμενα παραδείγματα αντιστοιχεί σε μια ακέραια τιμή αριθμού, που μπορεί να είναι μια μεταβλητή τύπου int, μια ακέραια σταθερά τύπου int ή και οποιαδήποτε άλλη έκφραση, που έχει όμως μια ακέραια τιμή int. Ακολουθεί ένα απλό πρόγραμμα που επεξηγεί τα παραπάνω : /* prog05.c μερικές ιδιότητες της printf() */ int ten = 10; printf("%d μείον %d ίσον %d\n", ten, 2, ten-2); Το αποτέλεσμα του προγράμματος θα είναι : 10 μείον 2 ίσον 8 Μπορούμε, όμως, να εκτυπώσουμε τους ακέραιους αριθμούς στο οκταδικό σύστημα με το σύμβολο %o και στο δεκαεξαδικό με το σύμβολο %x. Ακολουθεί ένα απλό παράδειγμα : /* prog06.c εκτύπωση του αριθμού 100 σε τρία αριθμητικά συστήματα */

9 int x = 100; printf("δεκαδ = %d; οκταδ = %o; δεκαεξ = %x\n", x, x, x); Το αποτέλεσμα του προγράμματος θα είναι : δεκαδ = 100; οκταδ = 144; δεκαεξ = 64 Παρατηρούμε ότι τα προθέματα 0 και 0x δεν παρουσιάζονται στην έξοδο. Άλλοι Τύποι Ακεραίων Η C προσφέρει τρεις τύπους λέξεις-κλειδιά για την τροποποίηση του βασικού τύπου ακεραίου : unsigned, long και short. Ο τύπος short int ή short είναι ένας τύπος με πρόσημο και χρησιμοποιεί λιγότερο χώρο αποθήκευσης, απ' ό,τι ο int και έτσι μπορεί να χρησιμοποιηθεί για μικρούς αριθμούς. Ο τύπος long int ή long είναι ένας τύπος με πρόσημο που χρησιμοποιεί περισσότερο χώρο αποθήκευσης απ' ό,τι ο int και συνεπώς επιτρέπει τη χρήση μεγάλων ακεραίων. Ο τύπος unsigned επιτρέπει τη χρήση της κλίμακας από το 0 μέχρι το αντί για την κλίμακα από το μέχρι το Όσον αφορά τώρα τη χρήση αυτών των τύπων ακεραίων, πρέπει να έχουμε υπόψη μας ότι ο τύπος unsigned μπορεί να χρησιμοποιηθεί για μέτρημα, αφού δεν υπάρχουν σ' αυτόν τον τύπο αρνητικοί αριθμοί. Ο τύπος long χρησιμοποιείται αν έχουμε πολύ μεγάλους αριθμούς, που δεν μπορεί να τους διαχειριστεί ο τύπος int. Δεν πρέπει, όμως, να χρησιμοποιείται ο τύπος long αν αυτό δεν είναι απαραίτητο, γιατί επιβραδύνει τους υπολογισμούς και καταλαμβάνει πολύ μνήμη. Μπορούμε να χρησιμοποιήσουμε τον τύπο short όταν χρησιμοποιούμε μεγάλους πίνακες ακεραίων στο πρόγραμμά μας. Για να αποθηκευθεί μια σταθερά σαν τύπου long, θα πρέπει να προσθέσουμε την κατάληξη l ή L και οι καταλήξεις αυτές μπορούν να χρησιμοποιηθούν ακόμα και με τους οκταδικούς ή τους δεκαεξαδικούς ακέραιους. Για την εκτύπωση ενός αριθμού τύπου unsigned χρησιμοποιούμε το σύμβολο %u, ενός αριθμού τύπου long το %ld και ακόμη μπορούμε να συνδυάσουμε το l με τα o και x. Ακόμη, το %h χρησιμοποιείται για τον τύπο short. Οι Χαρακτήρες Όπως ήδη ξέρουμε, ο τύπος char χρησιμοποιείται για την αποθήκευση χαρακτήρων, αν και στην πραγματικότητα αποθηκεύει ακέραιους. Για τον χειρισμό των χαρακτήρων ο υπολογιστής χρησιμοποιεί έναν αριθμητικό κώδικα, όπου συγκεκριμένοι ακέραιοι παριστάνουν συγκεκριμένους χαρακτήρες. Ο πιο συχνά χρησιμοποιούμενος κώδικας είναι ο ASCII και για παράδειγμα ο ακέραιος 65 παριστάνει το γράμμα Α. Οι μεταβλητές τύπου char δηλώνονται όπως όλες οι μεταβλητές : char name, city; Υπάρχουν εκδόσεις της C που έχουν τον τύπο char με πρόσημο και με περιοχή τιμών από -128 έως +127 και άλλες εκδόσεις της C έχουν τον τύπο char χωρίς πρόσημο και με περιοχή τιμών από 0 έως 255. Μπορούμε να δώσουμε αρχικές τιμές στις μεταβλητές τύπου char με δύο τρόπους : char grade = 65; /* εδώ χρησιμοποιούμε τον ASCII κώδικα του Α */ ή char grade = 'A'; /* εδώ τα πράγματα είναι πιο απλά για μας */ Τα απλά εισαγωγικά ' ' δηλώνουν στη C μια σταθερά χαρακτήρα, ενώ τα διπλά εισαγωγικά " " θεωρούνται μια συμβολοσειρά, που θα την δούμε αναλυτικά παρακάτω. Οι μη Εκτυπούμενοι Χαρακτήρες Υπάρχουν μερικοί ASCII χαρακτήρες που είναι μη εκτυπούμενοι, όπως το διάστημα προς τα πίσω (backspace), το enter και το ηχητικό σήμα (beep). Ενεργοποιούνται με μια ειδική ακολουθία συμβόλων, που ονομάζεται ακολουθία διαφυγής (escape sequence) : \a ειδοποίηση - beep (ANSI C)

10 \b ένα διάστημα προς τα πίσω (προσοχή δεν σβήνει τους χαρακτήρες) \f τροφοδότηση σελίδας \n νέα γραμμή (enter) \r επιστροφή στην αρχή της τρέχουσας γραμμής \t οριζόντια στηλοθέτηση (tab) \v κάθετη στηλοθέτηση (ANSI C) \\ πλάγια κάθετος (\) \' απλά εισαγωγικά (') \" διπλά εισαγωγικά (") (ANSI C) Όλοι αυτοί οι χαρακτήρες κλείνονται σε απλά εισαγωγικά όταν καταχωρούνται σε μια μεταβλητή χαρακτήρα : next = '\n'; Η εκτύπωση της μεταβλητής next προχωράει την εκτύπωση κατά μια γραμμή στην οθόνη ή στον εκτυπωτή. Η συνάρτηση printf() χρησιμοποιεί το %c για να δείξει ότι πρέπει να τυπωθεί ένας χαρακτήρας. Θα πρέπει να θυμόμαστε ότι οι χαρακτήρες είναι αποθηκευμένοι σαν ακέραιοι, οπότε αν τυπώσουμε την τιμή μιας μεταβλητής τύπου char, θα πάρουμε έναν ακέραιο. Ο προσδιορισμός %c λέει στην printf() να μετατρέψει τον ακέραιο στον αντίστοιχο χαρακτήρα. Αυτά φαίνονται καθαρά στο παρακάτω πρόγραμμα : /* prog07.c - εμφανίζει τον κωδικό αριθμό κάποιου χαρακτήρα */ char ch; printf("δώστε έναν χαρακτήρα : \n"); scanf("%c", &ch); printf("ο κώδικας του %c είναι το %d. \n", ch, ch); Το αποτέλεσμα θα είναι : Δώστε έναν χαρακτήρα : C Ο κώδικας του C είναι το 67. Η printf() τυπώνει την τιμή της ch δύο φορές, την πρώτη σαν χαρακτήρα (προτρεπόμενη από τον κώδικα %c) και τη δεύτερη σαν ακέραιο (προτρεπόμενη από τον κώδικα %d). Οι προσδιοριστές της printf() αποφασίζουν για το πώς θα εμφανιστούν τα δεδομένα και όχι για το πώς θα αποθηκευθούν. Οι Τύποι float και double Σε προγράμματα μαθηματικής φύσης συχνά χρησιμοποιούμε αριθμούς κινητής υποδιαστολής που στη C λέγονται τύπου float και είναι αντίστοιχοι με τους τύπους real της Pascal. Έτσι, μπορούμε να παραστήσουμε ένα πολύ μεγαλύτερο εύρος αριθμών, μεγάλων και μικρών. Υπάρχουν ακόμα και οι τύποι double (για διπλή ακρίβεια) και long double. Οι μεταβλητές αυτές δηλώνονται όπως και οι άλλες : float a=10.25e-3; double b; long double c; Ένα πρόθεμα f ή F στην ANSI C σ έναν αριθμό κινητής υποδιαστολής τον κάνει τύπου float, π.χ. 2.3f και 9.11E9F, ενώ μια κατάληξη L τον κάνει τύπου long double, π.χ l και 4.32e4L. Η συνάρτηση printf() χρησιμοποιεί τον προσδιοριστή μορφής %f για να τυπώσει τύπου float και double αριθμούς με δεκαδικό συμβολισμό και τη μορφή %e για να τους τυπώσει σε εκθετικό συμβολισμό. Για τους τύπους long double έχουμε αντίστοιχα τους προσδιοριστές %Lf και %Le.

11 Ο Τελεστής sizeof Η C έχει έναν εσωτερικό τελεστή, τον sizeof, που δίνει το μέγεθος κάποιων πραγμάτων σε bytes. Αυτό θα το δούμε καλύτερα μ ένα παράδειγμα : /* prog08.c τυπώνει τα μεγέθη των τύπων δεδομένων */ printf("ο τύπος int έχει μέγεθος %d bytes. \n", sizeof(int)); printf("ο τύπος char έχει μέγεθος %d bytes. \n", sizeof(char)); printf("ο τύπος long έχει μέγεθος %d bytes. \n", sizeof(long)); printf("ο τύπος double έχει μέγεθος %d bytes. \n", sizeof(double)); Το αποτέλεσμα, αναλόγως με το σύστημα θα είναι κάπως έτσι: Ο τύπος int έχει μέγεθος 2 bytes. (Σε 32bit σύστημα, θα δώσει 4 bytes) Ο τύπος char έχει μέγεθος 1 bytes. Ο τύπος long έχει μέγεθος 4 bytes. Ο τύπος double έχει μέγεθος 8 bytes. Εισαγωγή στις Συμβολοσειρές Ακολουθεί ένα πρόγραμμα που κάνει έναν διάλογο με τον χρήστη. /* prog09.c ζητούνται στοιχεία χρήστη */ float weight; int size, letters; char name[40]; printf("γεια σου! Πώς λέγεσαι; \n"); scanf("%s", name); printf("%s, Ποιο είναι το βάρος σου σε κιλά; \n", name); scanf("%f", &weight); size = sizeof name; letters = strlen(name); printf("γεια σου, %s, το βάρος σου είναι %2.2f κιλά. \n", name, volume); printf("επίσης, το σου όνομά σου έχει %d γράμματα, \n", letters); printf("και χρειάζονται %d bytes για την αποθήκευσή του.\n", size); Τρέχοντας αυτό το πρόγραμμα, παίρνουμε τα εξής αποτελέσματα : Γεια σου! Πώς λέγεσαι; Κώστας Κώστας, ποιο είναι το βάρος σου σε κιλά; 100 Γεια σου, Κώστας, το βάρος σου είναι 100,00 κιλά. Επίσης, το όνομά σου έχει 6 γράμματα, και χρειάζονται 40 bytes για για την αποθήκευσή του. Τα κυριότερα νέα χαρακτηριστικά αυτού του προγράμματος είναι τα εξής :

12 1. Έχουμε χρησιμοποιήσει έναν πίνακα που περιέχει μια συμβολοσειρά και συγκεκριμένα κάποιο όνομα. 2. Χρησιμοποιήσαμε τον προσδιοριστή μετατροπής %s για να χειριστούμε την είσοδο και την έξοδο μιας συμβολοσειράς. Η μεταβλητή name, σε αντίθεση με την weight, δεν χρησιμοποιεί το πρόθεμα & όταν χρησιμοποιείται με την scanf(). 4. Χρησιμοποιήσαμε τη συνάρτηση της C strlen() για να βρούμε το μήκος μιας συμβολοσειράς. Τι είναι, όμως, μια συμβολοσειρά; Μια συμβολοσειρά είναι μια σειρά από έναν ή περισσότερους χαρακτήρες, όπως για παράδειγμα : "Τo TEI Μεσoλoγγίoυ ιδρύθηκε τo 1981". Τα διπλά εισαγωγικά δεν είναι μέρος της συμβολοσειράς και υπάρχουν για να οριοθετούν τη συμβολοσειρά, όπως ακριβώς τα απλά εισαγωγικά χρησιμοποιούνται για να οριοθετούν έναν χαρακτήρα. Η C αποθηκεύει τις συμβολοσειρές σ έναν πίνακα τύπου char με κάθε χαρακτήρα της συμβολοσειράς να είναι αποθηκευμένος σε κάθε κελί. Η C χρησιμοποιεί τον χαρακτήρα \0 στην τελευταία θέση του πίνακα για να σημειώνει το τέλος μιας συμβολοσειράς. Αυτός ο χαρακτήρας δεν είναι το ψηφίο 0, αλλά είναι ο μη απεικονιζόμενος χαρακτήρας του οποίου ο κώδικας ASCII είναι 0. Ο πίνακας λοιπόν πρέπει να έχει τουλάχιστον ένα περισσότερο κελί από τον αριθμό των χαρακτήρων που πρόκειται να αποθηκευτούν. Η δήλωση ενός πίνακα μπορεί να γίνει με την εξής εντολή : char name[40]; απ' όπου καταλαβαίνουμε ότι η μεταβλητή name είναι πίνακας με μέγεθος 40 και το κάθε στοιχείο της είναι ένας χαρακτήρας. Η Χρήση των Συμβολοσειρών Δείτε το παρακάτω πρόγραμμα : /* prog10.c πρόγραμμα με συμβολοσειρές */ #define PRAISE "Έχεις ένα σπουδαίο όνομα!" char name[50]; printf("πώς σε λένε;\n"); scanf("%s", name); printf("γεια σου, %s. %s\n", name, PRAISE); Η έξοδος του προγράμματος θα είναι : Πώς σε λένε; Μάκη Παπαδόπουλο Γεια σου, Μάκη. Έχεις ένα σπουδαίο όνομα! Παρατηρούμε ότι η scanf() διαβάζει μόνο το μικρό όνομα του Παπαδόπουλου. Η συνάρτηση σταματάει λοιπόν μόλις βρει το πρώτο κενό διάστημα. Γενικά, η scanf() χρησιμοποιούμενη με το %s διαβάζει απλές λέξεις και όχι φράσεις σαν συμβολοσειρές. Η C έχει άλλες συναρτήσεις για διάβασμα εισόδου, όπως την gets(), για να χειρίζεται γενικευμένες συμβολοσειρές, που θα τις δούμε αργότερα. Η συμβολοσειρά "x" δεν είναι το ίδιο με τον χαρακτήρα 'x' και αυτό γιατί η 'x' είναι ένας βασικός τύπος (char), ενώ η "x" είναι ένας παραγόμενος τύπος, ένας πίνακας από στοιχεία τύπου char. Ακόμη, η "x" αποτελείται από δύο χαρακτήρες, τον 'x' και τον μηδενικό χαρακτήρα. Η συνάρτηση srtlen() μας δίνει το μήκος μιας συμβολοσειράς σε χαρακτήρες, ενώ ο τελεστής sizeof επιστρέφει τον αριθμό των συνολικών κελιών μνήμης που είχαν δηλωθεί αρχικά γι αυτή τη μεταβλητή.

13 Οι Σταθερές και ο Προεπεξεργαστής της C Ξέρουμε από τις άλλες γλώσσες προγραμματισμού τη σημασία που έχει η δήλωση μιας σταθεράς σ ένα πρόγραμμα. Στη C υπάρχουν δύο τρόποι για να δηλωθεί μια σταθερή τιμή. Ένας τρόπος είναι να ορίσουμε μια μεταβλητή και να την εξισώσουμε με την επιθυμητή σταθερά, ως εξής : float taxrate; taxrate = 0.2; Μ αυτόν τον τρόπο η αντικατάσταση της τιμής της μεταβλητής taxrate θα γίνεται όταν το πρόγραμμα τρέχει. Ο προεπεξεργαστής της C διαθέτει έναν καλύτερο τρόπο, όπου απλά προσθέτουμε μια γραμμή στην αρχή του αρχείου που περιέχει το πρόγραμμά μας, ως εξής : #define TAXRATE 0.2 Όταν το πρόγραμμα μεταγλωττιστεί, η τιμή 0.2 θα αντικατασταθεί παντού όπου έχει χρησιμοποιηθεί η TAXRATE. Έτσι, όταν τρέξουμε το πρόγραμμα, όλες οι αντικαταστάσεις θα έχουν ήδη γίνει. Πρέπει να προσέξουμε τη σύνταξη της #define, στην οποία δεν χρησιμοποιείται το ελληνικό ερωτηματικό (;), αφού δεν είναι μια πρόταση της C και ακόμη αποτελεί παράδοση στη C να γράφονται όλες οι σταθερές με κεφαλαία γράμματα για να τις αναγνωρίζουμε αμέσως και να τις ξεχωρίζουμε έτσι από τις άλλες μεταβλητές. Ακολουθεί ένα παράδειγμα με χρήση της #define. /* prog11.c χρήση της σταθεράς π = */ #define PI float area, circum, radius; printf("δώστε την ακτίνα του κύκλου : \n"); scanf("%f", &radius); area = PI * radius * radius; circum = 2.0 * PI * radius; printf("τα στοιχεία του κύκλου είναι :\n"); printf("περίμετρος = %1.2f, εμβαδόν = %1.2f\n", circum, area); Το αποτέλεσμα θα είναι : Δώστε την ακτίνα του κύκλου : 6.0 Τα στοιχεία του κύκλου είναι : Περίμετρος = 37.70, εμβαδόν = Η εντολή #define μπορεί να χρησιμοποιηθεί τόσο για χαρακτήρες όσο και για σταθερές συμβολοσειρές. Χρησιμοποιούμε απλά εισαγωγικά για την πρώτη περίπτωση και διπλά για τη δεύτερη. Ακολουθούν παραδείγματα : #define TEE 'T' #define ESC '\033' #define OOPS "Τώρα το πέτυχες" Αν κατά λάθος γράψουμε #define TOES = 20, τότε η TOES θα αντικατασταθεί με το = 20 και όχι με το 20. Τυπώνοντας Μεγάλες Συμβολοσειρές Αν θέλουμε να κόψουμε μια συμβολοσειρά που είναι πολύ μεγάλη για να χωρέσει σε μια γραμμή, υπάρχουν τρεις τρόποι, όπως φαίνεται στο παρακάτω παράδειγμα :

14 /* prog12.c τυπώνοντας μεγάλες συμβολοσειρές */ printf("να ένας τρόπος να τυπώσετε μια "); printf("μεγάλη συμβολοσειρά.\n"); printf("να ένας άλλος τρόπος να τυπώσετε μια \ μεγάλη συμβολοσειρά.\n"); printf("να ο πιο καινούργιος τρόπος να τυπώσετε μια " " μεγάλη συμβολοσειρά.\n"); Το αποτέλεσμα θα είναι : Να ένας τρόπος να τυπώσετε μια μεγάλη συμβολοσειρά. Να ένας άλλος τρόπος να τυπώσετε μια μεγάλη συμβολοσειρά. Να ο πιο καινούργιος τρόπος να τυπώσετε μια μεγάλη συμβολοσειρά.

15 Μέρος 2: Οι Bασικές Εντολές της C Οι Βασικοί Τελεστές της C Η C, όπως όλες οι γλώσσες προγραμμστισμού, χρησιμοποιεί τελεστές για να εκτελέσει τις αριθμητικές λειτουργίες. Το = είναι ένας τελεστής καταχώρησης τιμών. Πρέπει να έχουμε υπόψη μας ότι δεν μπορούμε να καταχωρήσουμε τιμή σε μια σταθερά και το μέρος στα αριστερά του συμβόλου = πρέπει να είναι το όνομα της μεταβλητής και αναφέρεται σε μία θέση αποθήκευσης. Εφαρμογές της εντολής αυτής είναι οι εξής : year = 2006; i = i + 1; timi01 = timi02 = timi03 = 68; Στην τελευταία εντολή οι καταχωρήσεις γίνονται από τα δεξιά προς τα αριστερά. Υπάρχουν ακόμα και οι τελεστές πρόσθεσης +, αφαίρεσης -, πολλαπλασιασμού * και διαίρεσης /. Στη διαίρεση πρέπει να έχουμε υπόψη μας ότι η διαίρεση με αριθμούς κινητής υποδιαστολής δίνει αποτέλεσμα του ίδιου τύπου, ενώ η διαίρεση με ακεραίους δίνει μια ακέραια απάντηση. Έτσι, αν η διαίρεση ακεραίων δεν είναι τέλεια, η C απορρίπτει το δεκαδικό μέρος του πηλίκου χωρίς να το στρογγυλοποιεί. Αυτή η διαδικασία λέγεται αποκοπή. Όταν ανακατεύουμε ακεραίους με αριθμούς κινητής υποδιαστολής, το αποτέλεσμα είναι αριθμός κινητής υποδιαστολής. Ακολουθεί ένα ερμηνευτικό παράδειγμα : /* prog13.c οι διαιρέσεις στη C */ printf("ακέραια διαίρεση : 5/3 είναι %d \n", 5/3); printf("ακέραια διαίρεση : 8/4 είναι %d \n", 8/4); printf("ακέραια διαίρεση : 7/5 είναι %d \n", 7/5); printf("διαίρεση κινητής υποδιαστολής : 7./4. είναι %1.2f \n", 7./4.); printf("μικτή διαίρεση : 7./4 είναι %1.2f \n", 7./4); Το αποτέλεσμα θα είναι : ακέραια διαίρεση : 5/3 είναι 1 ακέραια διαίρεση : 8/4 είναι 2 ακέραια διαίρεση : 7/5 είναι 1 διαίρεση κινητής υποδιαστολής : 7./4. είναι 1.75 μικτή διαίρεση : 7./4 είναι 1.75 Βλέπουμε ότι όσον αφορά τις τρεις πρώτες διαιρέσεις που γίνονται μεταξύ ακεραίων αριθμών, σαν αποτέλεσμα παίρνουμε το πηλίκο της ακέραιας διαίρεσης, κάτι που μας είναι χρήσιμο σε πολλές εφαρμογές, ο αντίστοιχος τελεστής δηλ. του div της Pascal. Βλέπουμε ακόμη ότι από το ανακάτεμα ακεραίων και αριθμών κινητής υποδιαστολής, παίρνουμε αριθμό κινητής υποδιαστολής. Οι Προτεραιότητες των Τελεστών Η C τοποθετεί κάθε τελεστή σε κάποιο επίπεδο προτεραιότητας. Ο πολλαπλασιασμός και η διαίρεση ανήκουν σε υψηλότερο επίπεδο προτεραιότητας από την πρόσθεση και την αφαίρεση, γι' αυτό και εκτελούνται πρώτα. Αν, όμως, τελεστές του ίδιου επιπέδου προτεραιότητας επιδρούν στον ίδιο τελεστέο, τότε εκτελούνται με τη σειρά εμφάνισής τους στην πρόταση. Για τους περισσότερους τελεστές, η σειρά εκτέλεσης είναι από αριστερά προς τα δεξιά και ο τελεστής = αποτελεί εξαίρεση. Δηλαδή, στην πρόταση :

16 a = * b / c; γίνεται πρώτα ο πολλαπλασιασμός 60.0 * b, μετά η διαίρεση αυτού με τη μεταβλητή c και τέλος προστίθεται το Αν, όμως, θελήσουμε να γίνει πρώτα η πρόσθεση και μετά η διαίρεση, τότε πρέπει να βάλουμε παρενθέσεις, ως εξής : a = ( * b) / c; Ο Τελεστής sizeof Ο τελεστής αυτός επιστρέφει το μέγεθος σε bytes του τελεστέου του. Ο τελεστέος μπορεί να είναι το όνομα μιας μεταβλητής ή μπορεί να είναι ένας τύπος. Αν είναι τύπος ονόματος, τότε πρέπει ο τελεστέος να μπει μέσα σε παρενθέσεις, αλλιώς οι παρενθέσεις είναι προαιρετικές. Ακολουθεί ένα παράδειγμα : /* prog14.c - ο τελεστής sizeof */ int n=10; printf("ο n έχει %d bytes, όλοι οι ακέραιοι έχουν %d bytes. \n", sizeof n, sizeof(int)); Το αποτέλεσμα θα είναι : Ο 10 έχει 2 bytes, όλοι οι ακέραιοι έχουν 2 bytes. Ο Τελεστής Ακεραίου Υπολοίπου % Ο τελεστής ακεραίου υπολοίπου (%) χρησιμοποιείται στην αριθμητική των ακεραίων και επιστρέφει το υπόλοιπο της ακέραιας διαίρεσης του ακεραίου στα αριστερά με τον ακέραιο στα δεξιά. Για παράδειγμα, η πράξη 13 % 5 δίνει σαν αποτέλεσμα την τιμή 3, αφού το 5 χωράει δύο φορές στο 13 και έχει υπόλοιπο 3. Ακολουθεί ένα παράδειγμα : /* prog15.c μετατρέπει τα δευτερόλεπτα σε λεπτά και σε δευτερόλεπτα */ #define SEC_PER_MIN 60 /* 60 δευτερόλεπτα σ ένα λεπτό */ int sec, min, left; printf("μετατροπή δευτερολέπτων σε λεπτά και δευτερόλεπτα \n"); printf("δώστε τον αριθμό των δευτερολέπτων : \n"); scanf("%d", &sec); /* διάβασμα του αριθμού των δευτερολέπτων */ min = sec / SEC_PER_MIN; /* αριθμός λεπτών */ left = sec % SEC_PER_MIN; /*αριθμός δευτερολέπτων που έμειναν*/ printf(" %d δευτερόλεπτα είναι %d λεπτά και %d δευτερόλεπτα.\n", sec, min, left); Το αποτέλεσμα θα είναι : Μετατροπή δευτερολέπτων σε λεπτά και δευτερόλεπτα Δώστε τον αριθμό των δευτερολέπτων : δευτερόλεπτα είναι 2 λεπτά και 32 δευτερόλεπτα.

17 Όπως είδαμε στο παραπάνω παράδειγμα, για να υπολογίσουμε πόσα λεπτά υπάρχουν σ έναν αριθμό δευτερολέπτων sec, παίρνουμε το πηλίκο της ακέραιας διαίρεσης του sec με το SEC_PER_MIN, που είναι ουσιαστικά το 60 και για να βρούμε πόσα δευτερόλεπτα περίσσευσαν που δεν χώρεσαν σ ένα λεπτό, παίρνουμε το υπόλοιπο της ακέραιας διαίρεσης του sec με το SEC_ PER_MIN. Ο Τελεστής Αύξησης ++ Ο τελεστής αύξησης (++) αυξάνει κατά ένα την τιμή του τελεστέου. Ο τελεστής αυτός υπάρχει σε δύο μορφές : Το ++ μπορεί να βρίσκεται πριν από την επηρεαζόμενη μεταβλητή και ονομάζεται τελεστής προγενέστερης αύξησης ή μετά απ αυτήν, οπότε ονομάζεται τελεστήςμεταγενέστερης αύξησης. Τα δύο είδη αυξήσεων διαφέρουν στον χρόνο που γίνεται η αύξηση. Πρώτα, όμως, θα δούμε τις ομοιότητές τους και αργότερα τις διαφορές. Ακολουθεί ένα παράδειγμα : /* prog16.c χρήση του τελεστή αύξησης ++ */ int a = 0, b = 0; while (a < 5) a++; ++b; printf("b = %d, a = %d \n", b, a); Το αποτέλεσμα θα είναι : b = 1, a = 1 b = 2, a = 2 b = 3, a = 3 b = 4, a = 4 b = 5, a = 5 Θα μπορούσαμε να πάρουμε το ίδιο αποτέλεσμα χρησιμοποιώντας τις εξής εντολές : b = a + 1; a = a + 1; Ο λόγος που χρησιμοποιούμε αυτόν τον τελεστή αύξησης είναι ότι έχει κάποια πλεονεκτήματα που θα φανούν αργότερα. Και για να γίνουμε πιο σαφείς, ακολουθεί ένα παράδειγμα : euro = 2.0; while (++euro < ) draxmes = * euro; printf("%10.2f %20.2f \n", euro, draxmes); Εδώ έχουμε συνδυάσει τη διαδικασία αύξησης και σύγκρισης του βρόχου while σε μία μόνο έκφραση, δηλ. η τιμή της μεταβλητής euro πρώτα αυξάνεται κατά 1 και αμέσως μετά συγκρίνεται με το Έτσι, έχουμε τον έλεγχο του βρόχου και την αύξηση της μεταβλητής στο ίδιο μέρος. Ας δούμε ακόμα ένα παράδειγμα : /* prog17.c προγενέστεροι και μεταγενέστεροι */

18 int a =1, b = 1; int aplus, plusb; aplus = a++; /* μεταγενέστερος */ plusb = ++b; /* προγενέστερος */ printf("a aplus b plusb \n"); printf("%1d %5d %5d %5d\n", a, aplus, b, plusb); Το αποτέλεσμα θα είναι : a aplus b plusb Τόσο η a όσο και η b αυξάνονται κατά ένα. Επομένως, η aplus έχει την τιμή της a πριν η a αλλάξει και η plusb έχει την τιμή της b μετά την αλλαγή της b. aplus = a++; /* μεταγενέστερη : η a άλλαξε μετά τη χρήση της τιμής της */ plusb = ++b; /* προγενέστερη : η b άλλαξε πριν τη χρήση της τιμής της */ Αν ένας από τους τελεστές αύξησης χρησιμοποιείται μόνος του σε κάποια πρόταση, τότε δεν έχει σημασία ποια μορφή θα χρησιμοποιήσουμε. Η επιλογή, όμως, έχει σημασία όταν ο τελεστής και ο τελεστέος αποτελούν μέρη κάποιας έκφρασης, όπως μόλις είδαμε. Για να συνοψίσουμε, το n++ σημαίνει : "κάνε χρήση του n και μετά αύξησέ το" και το ++n σημαίνει : "αύξησε το n και μετά χρησιμοποίησέ το". Ο Τελεστής Μείωσης - - Δεν θα ήταν δυνατόν φυσικά να μην υπήρχε και ο αντίστοιχος τελεστής μείωσης, δηλ. αντί για το ++ χρησιμοποιούμε το count; /* τελεστής προγενέστερης μείωσης */ count- -; /* τελεστής μεταγενέστερης μείωσης */ Ακολουθεί κι ένα παράδειγμα με την χρήση του τελεστή μείωσης : /* prog18.c χρήση του τελεστή μείωσης */ #define MAX 100 int count = MAX + 1; while ( --count > 0) printf("υπάρχουν %d βιβλία στη βιβλιοθήκη \n", count); printf("πάρε ένα βιβλίο, \n"); printf("%d βιβλία έμειναν στη βιβλιοθήκη \n\n", count-1); Το αποτέλεσμα θα είναι : Υπάρχουν 100 βιβλία στη βιβλιοθήκη Πάρε ένα βιβλίο,

19 99 βιβλία έμειναν στη βιβλιοθήκη Υπάρχουν 99 βιβλία στη βιβλιοθήκη Πάρε ένα βιβλίο, 98 βιβλία έμειναν στη βιβλιοθήκη... Οι τελεστές αύξησης και μείωσης έχουν υψηλή προτεραιότητα και μόνο οι παρενθέσεις έχουν υψηλότερη. Πρέπει πάντως να αποκτήσει κανείς αρκετή εμπειρία με τους τελεστές αύξησης και μείωσης, να μάθει τις ιδιαιτερότητες της έκδοσης της C με την οποία δουλεύει και μετά να τους χρησιμοποιεί. Πρέπει να έχουμε υπόψη μας τα εξής : Δεν πρέπει να χρησιμοποιούμε τελεστές αύξησης ή μείωσης σε μεταβλητή που αποτελεί μέρος περισσότερων του ενός ορισμάτων ή συναρτήσεων. Δεν πρέπει να χρησιμοποιούμε τελεστές αύξησης ή μείωσης σε μεταβλητή που εμφανίζεται περισσότερες από μία φορές σε μια έκφραση. Δηλαδή, οι παρακάτω εκφράσεις μπορεί να μπερδέψουν τη C και πάντως κανείς δεν εγγυάται για το αποτέλεσμά τους : printf("%10d %10d\n", num, num*num++); a = num/2 + 5*(1 + num++); b = n++ + n++; Εκφράσεις και Προτάσεις Μια έκφραση αποτελείται από έναν συνδυασμό τελεστών και τελεστέων (ο τελεστέος είναι αυτό, πάνω στο οποίο δρα ο τελεστής). Η απλούστερη έκφραση είναι ένας μόνο τελεστέος. Ακολουθούν μερικές εκφράσεις : a*(b + c/d)/20 q = 5*2 x = ++q % 3 q > 3 Οι τελεστέοι μπορεί να είναι σταθερές, μεταβλητές ή συνδυασμοί αυτών των δύο. Κάθε έκφραση στη C έχει μια τιμή και για να βρούμε την τιμή αυτή, εκτελούμε τις πράξεις με τη σειρά που υποδεικνύεται από την προτεραιότητα των τελεστών. Εκφράσεις σχέσεων, όπως η q > 3, έχουν τιμή 1 αν είναι αληθείς και 0 αν είναι ψευδείς. Ακολουθούν μερικές εκφράσεις : Έκφραση Τιμή c = >3 1 6+(c=3+8) 17 Οι προτάσεις είναι τα πρωταρχικά δομικά στοιχεία ενός προγράμματος, δηλ. το πρόγραμμα είναι μια σειρά προτάσεων και σημείων στίξης. Στη C οι προτάσεις κλείνουν με το σύμβολο ;. Έτσι, η a = 4 είναι μια έκφραση, αλλά η a= 4; είναι μια πρόταση. Στο παράδειγμα : x = 6 + (y=5); η υποέκφραση y=5 είναι μια ολοκληρωμένη εντολή, αλλά απλά είναι μέρος μιας πρότασης. Επειδή συνεπώς μια ολοκληρωμένη εντολή δεν είναι και απαραίτητα μια πρόταση, το σύμβολο (;) χρειάζεται για να χαρακτηρίζει τις εντολές που είναι αληθινές προτάσεις. Στο επόμενο παράδειγμα χρησιμοποιούμε τέσσερα είδη προτάσεων: /* prog19.c τα τέσσερα είδη προτάσεων */

20 /* βρίσκει το άθροισμα των 20 πρώτων ακεραίων */ int count, sum; /* πρόταση δήλωσης */ count = 0; /* πρόταση καταχώρησης */ sum = 0; /* πρόταση καταχώρησης */ while (count++ < 20) /* πρόταση ελέγχου while */ sum = sum + count; /* πρόταση */ printf("άθροισμα = %d\n", sum); /* πρόταση - συνάρτηση */ Μια σύνθετη πρόταση αποτελείται από δύο ή περισσότερες προτάσεις που περικλείονται από αγκύλες. Λέγεται επίσης και μπλοκ (block). Ακολουθούν παραδείγματα : /* τμήμα προγράμματος 1 */ index = 0; while (index++ < 10) sum = 10*index + 2; printf("sum = %d\n", sum); /* τμήμα προγράμματος 2 */ index = 0; while (index++ < 10) sum = 10*index + 2; printf("sum = %d\n", sum); Στο τμήμα προγράμματος 1, ο βρόχος while περιλαμβάνει μόνο μια πρόταση αντικατάστασης, δηλ. όταν λείπουν τα και, μια πρόταση while τρέχει από το while μέχρι το επόμενο σύμβολο ;. Στο τμήμα προγράμματος 2, τα σύμβολα και δηλώνουν ότι και οι δύο προτάσεις αποτελούν μέρος του βρόχου while. Ολόκληρη η σύνθετη πρόταση θεωρείται σαν μια απλή πρόταση με την έννοια της δομής της πρότασης while. Οι Μετατροπές Τύπου Η C δεν γκρινιάζει τόσο εύκολα όσο η Pascal όταν ανακατεύουμε μεταβλητές και σταθερές διαφορετικών τύπων δεδομένων. Η C χρησιμοποιεί ορισμένους κανόνες για να μετατρέψει αυτόματα τους τύπους : 1. Όταν εμφανίζονται σε εκφράσεις, τόσο ο τύπος char όσο και ο τύπος short, με πρόσημο ή χωρίς, αυτόματα μετατρέπονται σε τύπο int. Επειδή αυτές είναι μετατροπές προς κάποιο μεγαλύτερο τύπο, λέγονται προαγωγές. 2. Σε κάθε πράξη όπου εμπλέκονται δύο τύποι, οι δύο τιμές μετατρέπονται στον τύπο αυτής με τον "υψηλότερο" βαθμό. 3. Η ιεραρχία των τύπων από τους υψηλότερους προς τους χαμηλότερους είναι η εξής : long double, double, float, unsigned long, long, unsigned int και int. 4. Σε μια πρόταση καταχώρησης, το τελικό αποτέλεσμα των υπολογισμών μετατρέπεται στον τύπο της μεταβλητής στην οποία καταχωρήθηκε η τιμή. Έτσι, όμως, μπορεί μια τιμή να μετατραπεί σε τύπο χαμηλότερου βαθμού, όταν π.χ. καταχωρούμε τύπο float σε τύπο int και γίνεται, όπως είδαμε, στρογγυλοποίηση του αριθμού. Ακολουθεί ένα παράδειγμα : /* prog20.c αυτόματη μετατροπή τύπων */

21 char ch; int i; float fl; fl = i = ch = A ; printf("ch = %c, i = %d, fl = %2.2f \n", ch, i, fl); ch = ch + 1; i = fl + 2 * ch; fl = 2.0 * ch + i; printf("ch = %c, i = %d, fl = %2.2f \n", ch, i, fl); Το αποτέλεσμα θα είναι : ch = A, i = 65, fl = ch = B, i = 197, fl = Ο Τελεστής Εκμαγείο Όλες οι μετατροπές τύπων που αναφέραμε μέχρι τώρα γίνονται αυτόματα. Όμως, είναι πιθανό να θέλουμε να δώσουμε εμείς τις οδηγίες για την ακριβή μετατροπή του τύπου που θέλουμε. Η μέθοδος αυτή λέγεται εκμαγείο και συνίσταται στην τοποθέτηση μπροστά από την ποσότητα του ονόματος, του επιθυμούμενου τύπου μέσα σε παρενθέσεις. Οι παρενθέσεις μαζί με το όνομα του τύπου αποτελούν τον τελεστή-εκμαγείο. Ακολουθούν παραδείγματα, όπου η μεταβλητή m είναι τύπου int : m = ; m = (int) (int) 1.7; Το πρώτο παράδειγμα κάνει αυτόματη μετατροπή και η μεταβλητή m παίρνει την τιμή 3. Το δεύτερο παράδειγμα περιέχει δύο εκμαγεία τύπου int και οι μετατροπές σε ακεραίους γίνονται πριν από την πρόσθεση και έτσι η τιμή της μεταβλητής m είναι 2. Ορίσματα Συναρτήσεων και Μετατροπές Τύπων Το επόμενο παράδειγμα περιέχει μια συνάρτηση που τυπώνει έναν ορισμένο αριθμό συμβόλων #. Το παράδειγμα αυτό δείχνει ακόμα μερικά σημεία που αφορούν μετατροπές τύπου. /* prog21.c ορίζει μια συνάρτηση μ ένα όρισμα (argument) */ int times = 4; char ch =! ; /* o ASCII κώδικας είναι 33 */ float f = 5.0; f(times); /* όρισμα τύπου int */ f(ch); /* char αυτόματα int */ f((int) f); /* το εκμαγείο αναγκάζει την f int */ f(n) /* παλιός τρόπος επικεφαλίδας συνάρτησης */ int n; /* η συνάρτηση έχει ένα όρισμα τύπου int */ while (n- - > 0) printf("#");

Η Γλώσσα Προγραμματισμού C (Μέρος 1 - Εισαγωγή)

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

3ο σετ σημειώσεων - Πίνακες, συμβολοσειρές, συναρτήσεις

3ο σετ σημειώσεων - Πίνακες, συμβολοσειρές, συναρτήσεις 3ο σετ σημειώσεων - Πίνακες, συμβολοσειρές, συναρτήσεις 5 Απριλίου 01 1 Πίνακες Είδαμε ότι δηλώνοντας μία μεταβλητή κάποιου συγκεκριμένου τύπου δεσμεύουμε μνήμη κατάλληλη για να αποθηκευτεί μία οντότητα

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΥΠΟΛΟΓΙΣΤΩΝ & ΥΠΟΛΟΓΙΣΤΙΚΗ ΦΥΣΙΚΗ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΥΠΟΛΟΓΙΣΤΩΝ & ΥΠΟΛΟΓΙΣΤΙΚΗ ΦΥΣΙΚΗ Μέρος 3ο ΝΙΚΟΛΑΟΣ ΣΤΕΡΓΙΟΥΛΑΣ ΤΜΗΜΑ ΦΥΣΙΚΗΣ ΑΡΙΣΤΟΤΕΛΕΙΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΕΣΣΑΛΟΝΙΚΗΣ 1 ΕΚΤΥΠΩΣΗ ΚΕΙΜΕΝΟΥ Ένα κείμενο μπορεί να εκχωρηθεί ως τιμή μιας μεταβλητής

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

ΓΛΩΣΣΑ ΑΛΦΑΒΗΤΟ ΤΥΠΟΙ ΔΕΔΟΜΕΝΩΝ ΣΤΑΘΕΡΕΣ ΜΕΤΑΒΛΗΤΕΣ ΓΛΩΣΣΑ ΑΛΦΑΒΗΤΟ Κεφαλαία και μικρά γράμματα ελληνικού αλφαβήτου: Α Ω και α ω Κεφαλαία και μικρά γράμματα λατινικού αλφαβήτου: A Z και a z Αριθμητικά ψηφία: 0 9 Ειδικοί χαρακτήρες: + - * / =. ( ),! & κενός

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

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

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

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

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

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

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

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

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

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

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

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

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

ΑΣΚΗΣΗ 2: ΧΕΙΡΙΣΜΟΣ ΜΕΤΑΒΛΗΤΩΝ ΣΤΗ C

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

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

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

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

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

TMHMA TEXNΟΛΟΓΙΑΣ ΠΛΗΡΟΦΟΡΙΚΗΣ ΚΑΙ ΤΗΛ/ΝΙΩΝ Προγραμματισμός Ι ΑΚΑΔΗΜΑΪΚΟ ΕΤΟΣ , Α ΕΞΑΜΗΝΟ Βασίλης Μποζαντζής. Βασίλης Μποζαντζής

TMHMA TEXNΟΛΟΓΙΑΣ ΠΛΗΡΟΦΟΡΙΚΗΣ ΚΑΙ ΤΗΛ/ΝΙΩΝ Προγραμματισμός Ι ΑΚΑΔΗΜΑΪΚΟ ΕΤΟΣ , Α ΕΞΑΜΗΝΟ Βασίλης Μποζαντζής. Βασίλης Μποζαντζής TMHMA TEXNΟΛΟΓΙΑΣ ΠΛΗΡΟΦΟΡΙΚΗΣ ΚΑΙ ΤΗΛ/ΝΙΩΝ Προγραμματισμός Ι ΑΚΑΔΗΜΑΪΚΟ ΕΤΟΣ 2010 2011, Α ΕΞΑΜΗΝΟ Βασίλης Μποζαντζής Βασίλης Μποζαντζής Εισαγωγικά Οι 32 δεσμευμένες λέξεις σύμφωνα με το πρότυπο ANSI

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

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

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

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

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

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

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

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

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

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

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

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

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

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

ΠΛΗΡΟΦΟΡΙΚΗ Ι JAVA Τμήμα θεωρίας με Α.Μ. σε 3, 7, 8 & 9 25/10/07 ΠΛΗΡΟΦΟΡΙΚΗ Ι JAVA Τμήμα θεωρίας με Α.Μ. σε 3, 7, 8 & 9 25/10/07 Αριθμητική στο δυαδικό σύστημα (γενικά) Συμπληρωματικά για δυαδικό σύστημα Η πρόσθεση στηρίζεται στους κανόνες: 0 + 0 = 0, 0 + 1 = 1, 1

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

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

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

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

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

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

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

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

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

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

lab2 -Στην printf να βάζεις \n έτσι ώστε να αλλάζει γραµµή όποτε σου εµφανίζει κάποιο µήνυµα.

lab2 -Στην printf να βάζεις \n έτσι ώστε να αλλάζει γραµµή όποτε σου εµφανίζει κάποιο µήνυµα. Α. Μ. Βαθμός Σχόλιο 1183 lab2 - Πολύ καλή δουλειά κατά τα άλλα 1194 1238 1239 FAIL 1240 1241 1242 1243 1244 1245 1246 - πολύ καλό (*υπάρχουν οι τελεστές = ). Ο κώδικας είναι καλά σχολιασµένος -

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

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

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

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

Παρακάτω δίνεται o σκελετός προγράμματος σε γλώσσα C. Σχολιάστε κάθε γραμμή του κώδικα.

Παρακάτω δίνεται o σκελετός προγράμματος σε γλώσσα C. Σχολιάστε κάθε γραμμή του κώδικα. Ερωτήσεις προόδου C Παρακάτω δίνεται o σκελετός προγράμματος σε γλώσσα C. Σχολιάστε κάθε γραμμή του κώδικα. #include // δίνει οδηγία στον compiler να // συμπεριλάβει την βιβλιοθήκη stdio int

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

5ο σετ σημειώσεων - Δείκτες

5ο σετ σημειώσεων - Δείκτες 5ο σετ σημειώσεων - Δείκτες 11 Ιουνίου 01 1 Γενικά Σύμφωνα με το γενικό μοντέλο υπολογιστή, ένας υπολογιστής είναι μία μηχανή που διαθέτει μία κεντρική μονάδα επεξεργασίας η οποία μπορεί μεταξύ άλλων να

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Προγραμματισμός Ι (ΗΥ120) Προγραμματισμός Ι (ΗΥ120) Διάλεξη 4: Τελεστές Τελεστές: Τελεστής Ανάθεσης 2 Το σύμβολο της ανάθεσης είναι το = Προσοχή: το σύμβολο ελέγχου ισότητας είναι το ==. Η μορφή των προτάσεων ανάθεσης είναι:

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

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

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

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

Pascal, απλοί τύποι, τελεστές και εκφράσεις

Pascal, απλοί τύποι, τελεστές και εκφράσεις Pascal, απλοί τύποι, τελεστές και εκφράσεις 15 Νοεμβρίου 2011 1 Γενικά Στην standard Pascal ορίζονται τέσσερις βασικοί τύποι μεταβλητών: integer: Παριστάνει ακέραιους αριθμούς από το -32768 μέχρι και το

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

1η+2η εβδομάδα. 1 Ιστορία της C. 5 Μαρτίου 2012

1η+2η εβδομάδα. 1 Ιστορία της C. 5 Μαρτίου 2012 1η+2η εβδομάδα 5 Μαρτίου 2012 1 Ιστορία της C Η γλώσσα C επινοήθηκε στα εργαστήρια Bell της AT&T την περίοδο από το 1969 έως το 1973 κατά κύριο λόγο από τον Dennis Ritchie. Εκείνη τη χρονική περίοδο υπήρχαν

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

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

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

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

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

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

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

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

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

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

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

Αλγοριθμική & Δομές Δεδομένων- Γλώσσα Προγραμματισμού Ι (PASCAL) (PASCAL ) Μεταβλητές- Τύποι- Τελεστές Αλγοριθμική & Δομές Δεδομένων- Γλώσσα Προγραμματισμού Ι (PASCAL) (PASCAL ) Μεταβλητές- Τύποι- Τελεστές Μεταβλητές 2 Δήλωση μεταβλητών Η δήλωση (declaration) πληροφορεί το μεταγλωττιστή για το όνομα και

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

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

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

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

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

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

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

Χρησιμοποιείται για να αποφασίσει το πρόγραμμα αν θα κάνει κάτι σε ένα σημείο της εκτέλεσής του, εξετάζοντας αν ισχύει ή όχι μια συνθήκη.

Χρησιμοποιείται για να αποφασίσει το πρόγραμμα αν θα κάνει κάτι σε ένα σημείο της εκτέλεσής του, εξετάζοντας αν ισχύει ή όχι μια συνθήκη. Εργαστήριο 4: 4.1 Η Δομή Ελέγχου if Χρησιμοποιείται για να αποφασίσει το πρόγραμμα αν θα κάνει κάτι σε ένα σημείο της εκτέλεσής του, εξετάζοντας αν ισχύει ή όχι μια συνθήκη. Γενική Μορφή: Παρατηρήσεις:

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

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

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

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

Διορθώσεις Συμπληρώσεις επί της επανεκτύπωσης 2003 της 2 ης έκδοσης του βιβλίου «Διαδικαστικός Προγραμματισμός C»

Διορθώσεις Συμπληρώσεις επί της επανεκτύπωσης 2003 της 2 ης έκδοσης του βιβλίου «Διαδικαστικός Προγραμματισμός C» Διορθώσεις Συμπληρώσεις επί της επανεκτύπωσης 2003 της 2 ης έκδοσης του βιβλίου «Διαδικαστικός Προγραμματισμός C» Τα λάθη δίνονται με την σειρά που εμφανίζονται στο κείμενο. Καταγράφονται λάθη που εντοπίστηκαν

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

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

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

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

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

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

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

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

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

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

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

Εισαγωγή στη γλώσσα προγραμματισμού C++14 Εισαγωγή στη γλώσσα προγραμματισμού C++14 Σταμάτης Σταματιάδης Τμήμα Επιστήμης και Τεχνολογίας Υλικών, Πανεπιστήμιο Κρήτης Σχετικά με το μάθημα Διαλέξεις Ασκήσεις Παρασκευή 17:00-20:00 στην αίθουσα υπολογιστών

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

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

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

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

Αλγόριθμοι. Χρυσόστομος Στύλιος. Εργαστήριο Γνώσης και Ευφυούς Πληροφορικής. Δομές Δεδομένων & Αλγόριθμοι 1

Αλγόριθμοι. Χρυσόστομος Στύλιος. Εργαστήριο Γνώσης και Ευφυούς Πληροφορικής. Δομές Δεδομένων & Αλγόριθμοι 1 Αλγόριθμοι Χρυσόστομος Στύλιος stylios@teiep.gr Πληροφορικής Αλγόριθμοι 1 Εργασία Αντικείμενο: υλοποίηση αλγορίθμων και δομών δεδομένων σε C++ Τμήματα: - Θεωρητική μελέτη - Κώδικας με σχόλια - Πειραματικές

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

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

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

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

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

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

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