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

Save this PDF as:
 WORD  PNG  TXT  JPG

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

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

Transcript

1 Τμήμα ΜΗΧΑΝΙΚΩΝ ΠΛΗΡΟΦΟΡΙΚΗΣ ΤΕ ΤΕΙ ΔΥΤΙΚΗΣ ΕΛΛΑΔΑΣ Διαδικασιακός Προγραμματισμός Διάλεξη 10 η Αλφαριθμητικά Οι διαλέξεις βασίζονται στο βιβλίο των Τσελίκη και Τσελίκα C: Από τη Θεωρία στην Εφαρμογή Σωτήρης Χριστοδούλου Αλφαριθμητικά - Εισαγωγή Ένα αλφαριθμητικό (string) είναι μία ακολουθία χαρακτήρων, η οποία πρέπει να τελειώνει με έναν ειδικό χαρακτήρα, ο οποίος είναι ο χαρακτήρας '\0' Ο χαρακτήρας αυτός ('\0') ονομάζεται τερματικός χαρακτήρας και οριοθετεί το τέλος του αλφαριθμητικού Προσοχή στο ότι ο τερματικός χαρακτήρας '\0' και ο χαρακτήρας '0' είναι δύο διαφορετικοί χαρακτήρες Η ASCII τιμή του τερματικού χαρακτήρα είναι 0 (μηδέν), ενώ του μηδενικού ψηφίου είναι

2 Αποθήκευση Αλφαριθμητικών Η αποθήκευση αλφαριθμητικών γίνεται σε πίνακες χαρακτήρων Π.χ. η πρόταση: char str[10]; δηλώνει έναν πίνακα str με στοιχεία 10 χαρακτήρες ΣΗΜΑΝΤΙΚΗ ΠΑΡΑΤΗΡΗΣΗ Στην πραγματικότητα, στον πίνακα str επιτρέπεται να αποθηκεύσουμε μέχρι και 9 χαρακτήρες και όχι 10, γιατί μία θέση δεσμεύεται για τον τερματικό χαρακτήρα '\0' Γενικά, για να αποθηκεύσουμε ένα αλφαριθμητικό που μπορεί να έχει μέχρι και Ν χαρακτήρες θα πρέπει να δηλώσουμε έναν πίνακα με Ν+1 θέσεις χαρακτήρων 3 Αποθήκευση Αλφαριθμητικών με τη Δήλωση (Ι) Α Τρόπος Τη δήλωση του πίνακα την ακολουθεί ο τελεστής = και οι χαρακτήρες του αλφαριθμητικού διαχωρίζονται με τον τελεστή κόμμα (,) μέσα σε άγκιστρα {} ΠΑΡΑΔΕΙΓΜΑ char str[8] = {'m','e','s','s','a','g','e','\0'}; Στο παραπάνω παράδειγμα η τιμή του str[0] γίνεται 'm', η τιμή του str[1] γίνεται 'e', η τιμή του str[2] γίνεται 's', κ.ο.κ. Προφανώς, η τιμή του τελευταίου στοιχείου του πίνακα str (δηλ. του str[7]) γίνεται '\0' 4 2

3 Αποθήκευση Αλφαριθμητικών με τη Δήλωση (ΙΙ) Β Τρόπος Παραπλήσιος με τον Α Τρόπο, αλλά πιο βολικός, γιατί το αλφαριθμητικό μπαίνει ανάμεσα σε διπλά εισαγωγικά "" ΠΑΡΑΔΕΙΓΜΑ char str[8] = "message"; Όπως και προηγουμένως, η τιμή του κάθε στοιχείου του πίνακα str γίνεται ίση με τον αντίστοιχο χαρακτήρα του αλφαριθμητικού Ο μεταγλωττιστής προσθέτει αυτόματα τον τερματικό χαρακτήρα στο τέλος του αλφαριθμητικού, άρα η τιμή του τελευταίου στοιχείου του πίνακα (δηλ. του str[7]) γίνεται '\0' 5 Αποθήκευση Αλφαριθμητικών με τη Δήλωση (ΙΙΙ) Γ Τρόπος Το κύριο μειονέκτημα των 2 προηγούμενων τρόπων ήταν ότι ο προγραμματιστής έπρεπε να μετρήσει τον αριθμό των χαρακτήρων του αλφαριθμητικού, να προσθέσει και τον τερματικό χαρακτήρα, ώστε να υπολογίσει τη διάσταση του πίνακα Προφανώς, αυτή η διαδικασία είναι χρονοβόρα, ιδίως στην περίπτωση που το αλφαριθμητικό έχει πολλούς χαρακτήρες, και - εκτός από αυτό - είναι πολύ πιθανό να προκύψει και λάθος στο μέτρημα Ο τρίτος και πιο ευέλικτος τρόπος είναι να μην δηλωθεί η διάσταση του πίνακα, ώστε να την υπολογίσει αυτόματα ο μεταγλωττιστής ΠΑΡΑΔΕΙΓΜΑ char str[] = "message"; Σε αυτό το παράδειγμα ο μεταγλωττιστής δημιουργεί έναν πίνακα χαρακτήρων με τόσες θέσεις όσες χρειάζονται για να αποθηκευτούν στα στοιχεία του οι χαρακτήρες του αλφαριθμητικού "message" και ο τερματικός χαρακτήρας Με αυτόν τον τρόπο ο προγραμματιστής δεν χρειάζεται να μετρήσει το μήκος του αλφαριθμητικού για να υπολογίσει τη διάσταση του πίνακα 6 3

4 Παρατηρήσεις (Ι) Ένα αλφαριθμητικό που περιέχεται οπουδήποτε μέσα σε ένα πρόγραμμα και είναι γραμμένο μέσα σε διπλά εισαγωγικά "" ονομάζεται κυριολεκτικό αλφαριθμητικό και αποθηκεύεται επίσης στη μνήμη Π.χ. αν υπάρχει το αλφαριθμητικό "message" γραμμένο μέσα στο πρόγραμμα, τότε ο μεταγλωττιστής το πρώτο πράγμα που κάνει όταν το συναντήσει είναι να δεσμεύσει μνήμη, για να αποθηκεύσει τους χαρακτήρες του και τον τερματικό χαρακτήρα Άρα, με τη δήλωση: char str[] = "message"; οι ενέργειες που κάνει ο μεταγλωττιστής είναι οι ακόλουθες: α) δεσμεύει μνήμη για την αποθήκευση του αλφαριθμητικού "message" και του τερματικού χαρακτήρα '\0' β) το αποθηκεύει σε αυτή γ) δεσμεύει μνήμη για τον πίνακα str δ) αντιγράφει το αλφαριθμητικό "message" στον πίνακα str 7 Παρατηρήσεις (ΙΙ) Ο μεταγλωττιστής για να ανακαλύψει το τέλος ενός αλφαριθμητικού ψάχνει να βρει τον τερματικό χαρακτήρα ('\0') Επομένως, κάθε αλφαριθμητικό πρέπει να τελειώνει με τον τερματικό χαρακτήρα '\0' Επίσης, ο τερματικός χαρακτήρας ('\0') πρέπει να υπάρχει, για να μπορούν να λειτουργήσουν σωστά και οι αντίστοιχες συναρτήσεις χειρισμού αλφαριθμητικών (π.χ. strlen(), strcpy(), ) τις οποίες θα εξετάσουμε παρακάτω 8 4

5 Παρατηρήσεις (ΙΙΙ) Ένας τρόπος για να εξασφαλιστεί ότι ο τερματικός χαρακτήρας '\0' θα περιέχεται οπωσδήποτε σε έναν πίνακα χαρακτήρων, είναι να τεθεί στα στοιχεία του η τιμή '\0', κατά τη δήλωσή του (δηλ. να γίνει ταυτόχρονη αρχικοποίηση με τη δήλωσή του) Π.χ. με την παρακάτω δήλωση: char str[100] = {0}; όλα τα στοιχεία του πίνακα str γίνονται ίσα με την ANSI τιμή 0, η οποία αντιστοιχίζεται στον τερματικό χαρακτήρα '\0' 9 Παραδείγματα (Ι) Το παρακάτω πρόγραμμα αποθηκεύει το αλφαριθμητικό "This is the text" σε έναν πίνακα χαρακτήρων. Υπάρχει κάποια αδυναμία??? Η αδυναμία έγκειται στο ότι έχουν δεσμευτεί στη μνήμη 100 bytes ενώ αν η αποθήκευση του αλφαριθμητικού γινόταν ως: char str[] = "This is the text"; θα δεσμεύονταν ακριβώς 17 bytes (όσα δηλ. οι χαρακτήρες του αλφαριθμητικού (16) συν τον τερματικό χαρακτήρα) 10 5

6 Παραδείγματα (ΙΙ) Ποια είναι η έξοδος του παρακάτω προγράμματος??? Έξοδος: Παραδείγματα (ΙΙΙ) Ποια είναι η διαφορά μεταξύ των εκφράσεων "a" και 'a'??? "a" : Αλφαριθμητικό, πίνακας χαρακτήρων με δύο χαρακτήρες, τον χαρακτήρα 'a' και τον τερματικό χαρακτήρα '\0' 'a' : απλώς, ο χαρακτήρας 'a' 12 6

7 Παραδείγματα (ΙV) Υπάρχει προγραμματιστικό λάθος στο παρακάτω πρόγραμμα??? Mε τις εντολές str[4] = 't' και str[5] = '\0' γίνεται υπερεγγραφή μνήμης και αυθαίρετη αλλοίωση των δεδομένων που είναι αποθηκευμένα εκεί, τα οποία μπορεί να χρησιμοποιούνται από κάποιο άλλο πρόγραμμα, αφού ο πίνακας str κατά την αρχικοποίησή του είναι 4 χαρακτήρων (και όχι 6). Γενικά, το μήκος των αλφαριθμητικών που μπορούν να αποθηκευτούν σε έναν πίνακα χαρακτήρων δεν πρέπει να υπερβαίνει το μέγεθος του πίνακα που δεσμεύτηκε για την πρώτη αποθήκευση. 13 Δείκτες και Αλφαριθμητικά (Ι) Ένας εναλλακτικός τρόπος για να χειριστούμε ένα αλφαριθμητικό είναι να δηλώσουμε έναν δείκτη που να δείχνει στον πρώτο χαρακτήρα του αλφαριθμητικού Παράδειγμα: 14 7

8 Δείκτες και Αλφαριθμητικά (ΙΙ) Δηλώνοντας έναν δείκτη σε ένα αλφαριθμητικό μπορούμε να το χειριστούμε με τον ίδιο τρόπο όπως αν το είχαμε αποθηκεύσει σε έναν πίνακα χαρακτήρων Δηλαδή με τις εντολές: char* ptr = "This is text"; και char ptr[] = "This is text"; μπορούμε να χειριστούμε το αλφαριθμητικό με τη χρήση του δείκτη ptr, γιατί και στη δεύτερη περίπτωση το ptr είναι επίσης δείκτης στη διεύθυνση του πρώτου χαρακτήρα του αλφαριθμητικού Και γιατί αυτό???? Θυμηθείτε ότι το όνομα ενός πίνακα (χωρίς τις αγκύλες) είναι δείκτης στο πρώτο στοιχείο του 15 Δείκτες και Αλφαριθμητικά (ΙΙΙ) Τους χαρακτήρες ενός αλφαριθμητικού μπορούμε να τους χειριστούμε είτε χρησιμοποιώντας τη σημειογραφία δείκτη είτε χρησιμοποιώντας τη θέση τους στον πίνακα Παράδειγμα: Παρατηρήστε ότι ο for βρόχος εκτελείται μέχρι να συναντήσουμε τον τερματικό χαρακτήρα '\0' 16 8

9 char* ptr vs. char ptr[] char* ptr = "This is text"; char ptr[] = "This is text"; 1) Αν έχουμε χρησιμοποιήσει τον 2 ο τρόπο δήλωσης, δηλαδή: char ptr[] = "This is text"; μετά τη δήλωση και την αρχικοποίηση αυτή, επιτρέπεται να αποθηκεύσουμε στον πίνακα ptr ένα άλλο αλφαριθμητικό, λαμβάνοντας όμως υπόψιν τον περιορισμό ότι το μήκος του νέου αλφαριθμητικού δεν θα πρέπει να υπερβαίνει το μέγεθος του πίνακα, που ισούται με το πλήθος των χαρακτήρων του αλφαριθμητικού αρχικοποίησης (δηλ. του "This is text") αυξημένο κατά ένα (για τον τερματικό χαρακτήρα '\0') 17 char* ptr vs. char ptr[] char* ptr = "This is text"; char ptr[] = "This is text"; 2) Αντίθετα, αν έχουμε χρησιμοποιήσει τον 1ο τρόπο δήλωσης, δηλαδή: char* ptr = "This is text"; μετά τη δήλωση και την αρχικοποίηση αυτή, επιτρέπεται να κάνουμε τον δείκτη ptr να δείξει σε ένα άλλο αλφαριθμητικό, ακόμα και αν αυτό έχει περισσότερους χαρακτήρες Παράδειγμα: 18 9

10 char* ptr vs. char ptr[] char* ptr = "This is text"; char ptr[] = "This is text"; 3) Αν χρησιμοποιήσουμε τον 2 ο τρόπο δήλωσης, δηλαδή: char ptr[] = "This is text"; η μεταβλητή ptr είναι πίνακας, άρα το μέγεθος της μνήμης που δεσμεύεται για τη μεταβλητή ptr είναι ίσο με το πλήθος των χαρακτήρων του αλφαριθμητικού και μία επιπλέον θέση για τον τερματικό χαρακτήρα '\0' Συγκεκριμένα, το μέγεθός της υπολογίζεται με τον τελεστή sizeof(ptr) Αντίθετα, αν χρησιμοποιήσουμε τον 1 ο τρόπο δήλωσης, δηλαδή: char* ptr = "This is text"; η μεταβλητή ptr είναι δείκτης σε χαρακτήρα, άρα το μέγεθος της μνήμης που δεσμεύεται για τη μεταβλητή ptr είναι ίσο με αυτό που δεσμεύεται για τον τύπο δείκτη (σε ένα 32-bit υπολογιστή το μέγεθός της είναι 4 bytes) 19 char* ptr vs. char ptr[] char* ptr = "This is text"; 4) Αν χρησιμοποιήσουμε τον 1 ο τρόπο δήλωσης, δηλαδή: char* ptr = "This is text"; char ptr[] = "This is text"; η μνήμη που δεσμεύει ο μεταγλωττιστής για να αποθηκεύσει το αλφαριθμητικό είναι συνήθως μόνο για διάβασμα (read-only) και δεν επιτρέπεται να μεταβληθούν τα περιεχόμενά της Άρα, είναι πολύ πιθανό να εμφανιστεί μήνυμα λάθους κατά την εκτέλεση του προγράμματος Αντίθετα, αν χρησιμοποιήσουμε τον 2 ο τρόπο δήλωσης, δηλαδή: char ptr[] = "This is text"; επιτρέπεται να αλλάξουν τα περιεχόμενα του πίνακα, άρα εντολές όπως η ptr[0] = 'a'; εκτελούνται κανονικά 20 10

11 Εμφάνιση Αλφαριθμητικών με την printf() Για την εμφάνιση ενός αλφαριθμητικού, μπορούμε να χρησιμοποιήσουμε τη γνωστή μας συνάρτηση printf() Για την εμφάνιση αλφαριθμητικού χρησιμοποιούμε το προσδιοριστικό %s στην εντολή printf(),το οποίο πρέπει να αντιστοιχίζεται με έναν δείκτη στην ακολουθία χαρακτήρων που επιθυμούμε να εμφανιστεί στην οθόνη Η συνάρτηση printf() εμφανίζει όλους τους χαρακτήρες από τον πρώτο χαρακτήρα στον οποίο δείχνει ο δείκτης μέχρι να συναντήσει τον τερματικό χαρακτήρα ('\0') 21 Εμφάνιση Αλφαριθμητικών με την puts() Για την εμφάνιση ενός αλφαριθμητικού, μπορούμε να χρησιμοποιήσουμε και τη συνάρτηση puts(), η οποία λειτουργεί περίπου όπως και η printf() Η συνάρτηση puts() δεν χρειάζεται ως παράμετρο το προσδιοριστικό μετατροπής %s και απαιτεί ως μοναδική παράμετρο έναν δείκτη στην ακολουθία χαρακτήρων που επιθυμούμε να εμφανιστεί στην οθόνη και την εμφανίζει μέχρι να συναντήσει τον τερματικό χαρακτήρα ('\0') Στο τέλος της ακολουθίας χαρακτήρων η puts() προσθέτει αυτόματα τον χαρακτήρα νέας γραμμής ('\n') 22 11

12 Παράδειγμα (Ι) Ποια είναι η έξοδος του παρακάτω προγράμματος??? Πιθανή Έξοδος (επειδή δεν έχει αρχικοποιηθεί ο πίνακας χαρακτήρων και άρα δεν περιέχει τον τερματικό χαρακτήρα ('\0'): ab Ξ[ 9Tⁿ 23 Παράδειγμα (ΙΙ) Ποια είναι η έξοδος των παρακάτω προγραμμάτων??? Έξοδος: ab 24 12

13 Διάβασμα Αλφαριθμητικών με την scanf() Για το διάβασμα ενός αλφαριθμητικού από το πληκτρολόγιο, μπορούμε να χρησιμοποιήσουμε τη γνωστή μας συνάρτηση scanf() Για το διάβασμα αλφαριθμητικών με τη συνάρτηση scanf() χρησιμοποιείται το προσδιοριστικό %s Η συνάρτηση scanf() στην απλή χρήση της σταματάει το διάβασμα του αλφαριθμητικού, όταν συναντήσει τον κενό χαρακτήρα ή τον χαρακτήρα νέας γραμμής Ποια θα είναι η έξοδος του διπλανού προγράμματος, αν ο χρήστης πληκτρολογήσει το αλφαριθμητικό: We don't need no education... Έξοδος: We 25 Διάβασμα Αλφαριθμητικών με την gets() Για το διάβασμα ενός αλφαριθμητικού από το πληκτρολόγιο, μπορούμε να χρησιμοποιήσουμε τη συνάρτηση gets() (και μάλιστα συνίσταται η συγκεκριμένη συνάρτηση) Σε αντίθεση με τη συνάρτηση scanf(), η συνάρτηση gets() διαβάζει όλους τους χαρακτήρες μέχρι να συναντήσει τον χαρακτήρα νέας γραμμής ('\n') Η gets() αντικαθιστά τον χαρακτήρα νέας γραμμής ('\n') με τον τερματικό χαρακτήρα ('\0') Ποια θα είναι η έξοδος του διπλανού προγράμματος, αν ο χρήστης πληκτρολογήσει το αλφαριθμητικό: We don't need no education... Έξοδος: We don't need no education

14 Παρατηρήσεις (Ι) Και οι δύο συναρτήσεις (scanf() και gets()) δέχονται σαν παράμετρο έναν δείκτη προς χαρακτήρα Υπενθυμίζεται ότι το όνομα ενός πίνακα χωρίς αγκύλες είναι δείκτης στο πρώτο στοιχείο του πίνακα Επομένως, στα προηγούμενα παραδείγματα μπορεί να χρησιμοποιηθεί σαν παράμετρος το str, γιατί το str είναι δείκτης σε χαρακτήρα και συγκεκριμένα στον πρώτο χαρακτήρα του πίνακα Συνήθως, για διάβασμα αλφαριθμητικών προτιμάται η συνάρτηση gets() έναντι της συνάρτησης scanf(), γιατί διαβάζει και τους κενούς χαρακτήρες 27 Παρατηρήσεις (ΙΙ) Ο δείκτης που δέχονται σαν παράμετρο οι συναρτήσεις scanf() και gets() πρέπει να δείχνει σε μία μνήμη που έχει δεσμευτεί για την αποθήκευση του αλφαριθμητικού που θα εισάγει ο χρήστης Π.χ. Για να μην υπάρχει πρόβλημα π.χ.: char ptr[100]; Έξοδος: Δεν θα εκτελεστεί σωστά το πρόγραμμα, αφού δεν έχει δεσμευτεί μνήμη για την αποθήκευση του αλφαριθμητικού Η σταθερά BUFSIZ που δηλώνεται στο αρχείο stdio.h καθορίζει το μέγιστο πλήθος χαρακτήρων που μπορεί να διαβαστεί από το πληκτρολόγιο με μία εντολή διαβάσματος και η τιμή αυτή είναι

15 Παράδειγμα Ποια είναι η έξοδος του παρακάτω προγράμματος αν ο χρήστης εισάγει το αλφαριθμητικό: You are a moonchild...??? Ποιοι είπατε: You a 20??? Και ποιοι λέτε: You 20??? Είπε κανείς: You are a moonchild (ίσως, με πιθανότητα %) Προσοχή στην υπέρβαση ορίων της επιτρεπόμενης δεσμευμένης μνήμης όταν χρησιμοποιείτε τις συναρτήσεις scanf() και gets() 29 Για ένα ασφαλές διάβασμα αλφαριθμητικού (Ι) Όταν χρησιμοποιούμε τη συνάρτηση gets(), θεωρούμε, για λόγους απλότητας, ότι το μήκος του αλφαριθμητικού που διαβάζουμε από το πληκτρολόγιο είναι μέχρι ένα λογικό πλήθος χαρακτήρων (π.χ. 100) Ωστόσο, αν θέλετε να αισθάνεστε πιο ασφαλείς ότι δεν θα δημιουργηθεί πρόβλημα στις δικές σας εφαρμογές με το διάβασμα ενός αλφαριθμητικού από το πληκτρολόγιο, προτείνονται κι άλλες εναλλακτικές μέθοδοι, όπως: 1) Χρησιμοποιείστε τη συνάρτηση fgets(), η οποία είναι πιο ασφαλής από την gets()(περιγράφεται στο κεφάλαιο των αρχείων) Για το διάβασμα ενός αλφαριθμητικού από το πληκτρολόγιο, μπορείτε απλώς να αντικαταστήσετε την: gets(str) με την: fgets(str,sizeof(str),stdin) (η παράμετρος stdin αναφέρεται στο πληκτρολόγιο) 30 15

16 Για ένα ασφαλές διάβασμα αλφαριθμητικού (ΙΙ) 2) Το μέγεθος του πίνακα, στον οποίο θα αποθηκευτεί το αλφαριθμητικό, φροντίστε να είναι αρκετά μεγάλο, ώστε να «χωράει» σίγουρα το αλφαριθμητικό (π.χ. char str[5000]) Δεν έγινε δηλαδή και τίποτα αν δεσμεύσετε bytes από τα GB της RAM που έχουν οι σημερινοί υπολογιστές 3) Μπορείτε χρησιμοποιώντας τη συνάρτηση malloc() να δεσμεύσετε δυναμικά πολλή μνήμη, η οποία να είστε σίγουροι ότι θα χωράει το αλφαριθμητικό (π.χ bytes), να αποθηκεύσετε το αλφαριθμητικό στη μνήμη αυτή και μετά, με χρήση της συνάρτησης realloc(), να μικραίνετε το μέγεθός της και να το κάνετε ίσο με το μήκος του αλφαριθμητικού Περισσότερες λεπτομέρειες για τη malloc() και τη realloc() θα δείτε στο κεφάλαιο που αφορά τη διαχείριση μνήμης 31 Για ένα ασφαλές διάβασμα αλφαριθμητικού (ΙΙΙ) 4) Αν δεν σας καλύπτει τίποτα από τα προηγούμενα, τότε μπορείτε να... φτιάξετε έναν ατέρμονο while βρόχο, ο οποίος θα διαβάζει συνέχεια χαρακτήρες με τη συνάρτηση getchar() μέχρι είτε συναντηθεί ο χαρακτήρας '\n' είτε επιστραφεί η τιμή EOF Οι χαρακτήρες θα αποθηκεύονται σε περιοχή της μνήμης που πρέπει να έχει δεσμευτεί δυναμικά με τη συνάρτηση malloc() (π.χ. αρχικό μέγεθος μνήμης 3000 bytes) Όταν η δεσμευμένη αυτή μνήμη γεμίσει, τότε πρέπει να καλείτε τη συνάρτηση realloc() για να μεγαλώσετε το μέγεθός της (π.χ. την πρώτη φορά που θα γεμίσει το νέο μέγεθός της να γίνει 6000 bytes, την επόμενη 9000 bytes, κ.ο.κ, δηλαδή κάθε φορά που γεμίζει να προσθέτετε 3000 bytes) Φυσικά, όλοι οι παραπάνω τρόποι είναι σίγουρα πολύ ασφαλείς, αλλά ταυτόχρονα και «παρανοϊκοί» (ή τουλάχιστον περιττοί, για ένα μη-επαγγελματικό πρόγραμμα ενός πρωτοετούς φοιτητή...), δηλ. στο πλαίσιο του μαθήματος, δεν χρειάζεται να τους ακολουθήσετε

17 Παραδείγματα (Ι) Γράψτε ένα πρόγραμμα το οποίο να διαβάζει ένα αλφαριθμητικό (μέχρι 100 χαρακτήρες) και να εμφανίζει τον αριθμό των χαρακτήρων του χωρίς τη χρήση της συνάρτησης strlen() 33 Παραδείγματα (ΙΙ) Ποια είναι η έξοδος του παρακάτω προγράμματος??? Έξοδος: 99 ο 34 17

18 Παραδείγματα (ΙΙΙ) Γράψτε ένα πρόγραμμα το οποίο να διαβάζει 10 φορές ένα αλφαριθμητικό (μέχρι 100 χαρακτήρες) και να εμφανίζει το πλήθος των πεζών και κεφαλαίων γραμμάτων που περιέχονται σε αυτό 35 Η συνάρτηση strlen() Η συνάρτηση strlen() δηλώνεται στο αρχείο string.h και επιστρέφει τον αριθμό των χαρακτήρων που περιέχει ένα αλφαριθμητικό, χωρίς να μετράει τον τερματικό χαρακτήρα ('\0') Το όνομά της προκύπτει από την έκφραση «string length» Η συνάρτηση strlen() δέχεται σαν παράμετρο έναν δείκτη προς τη μνήμη που είναι αποθηκευμένη το αλφαριθμητικό Το πρωτότυπό της δηλώνεται ως εξής: unsigned int strlen(char* str); 36 18

19 Παραδείγματα (Ι) Γράψτε ένα πρόγραμμα το οποίο να διαβάζει ένα αλφαριθμητικό μέχρι 100 χαρακτήρες και να εμφανίζει το πλήθος των χαρακτήρων του με χρήση της συνάρτησης strlen() 37 Παραδείγματα (ΙΙ) Γράψτε ένα πρόγραμμα το οποίο να διαβάζει ένα αλφαριθμητικό μέχρι 100 χαρακτήρες και να το εμφανίζει μόνο εάν οι δύο τελευταίοι χαρακτήρες του είναι ίσοι με 'a' 38 19

20 Η συνάρτηση strcpy() Η συνάρτηση strcpy() δηλώνεται στο αρχείο string.h και χρησιμοποιείται για την αντιγραφή ενός αλφαριθμητικού σε μία άλλη θέση μνήμης (string copy) Η συνάρτηση strcpy() δέχεται σαν παραμέτρους δύο δείκτες και αντιγράφει το αλφαριθμητικό στο οποίο δείχνει ο δεύτερος δείκτης (source), συμπεριλαμβανομένου του τερματικού χαρακτήρα, στη μνήμη που δείχνει ο πρώτος δείκτης (dest) Το πρωτότυπό της δηλώνεται ως εξής: char* strcpy(char* dest, char* source); Ο δείκτης που επιστρέφει η συνάρτηση strcpy() έχει την ίδια τιμή με τον δείκτη dest, δηλαδή δείχνει στην ίδια διεύθυνση μνήμης που δείχνει και ο δείκτης dest Π.χ. η παρακάτω εντολή αντιγράφει το αλφαριθμητικό "something" στον πίνακα str char str[100]; strcpy(str,"something"); 39 Παρατηρήσεις Να προσέχετε, ώστε το μέγεθος της μνήμης που έχει δεσμευτεί για το 1ο αλφαριθμητικό να είναι αρκετά μεγάλο για να χωράει όλους τους χαρακτήρες του 2ου αλφαριθμητικού Αν δεν είναι, τότε οι πλεονάζοντες χαρακτήρες θα εγγραφούν σε μη δεσμευμένη μνήμη, η οποία μπορεί να χρησιμοποιείται από κάποιο άλλο πρόγραμμα Π.χ. το επόμενο πρόγραμμα δεν θα εκτελεστεί σωστά (θα εμφανιστεί λάθος κατά την εκτέλεση του προγράμματος), γιατί το μέγεθος του πίνακα str είναι μικρότερο από ότι θα έπρεπε char str[5]; strcpy(str,"something"); Πριν την αντιγραφή του αλφαριθμητικού πρέπει να έχει προηγηθεί η δέσμευση της αντίστοιχης μνήμης 40 20

21 Παραδείγματα (Ι) Γράψτε ένα πρόγραμμα το οποίο να διαβάζει ένα αλφαριθμητικό μέχρι 100 χαρακτήρες και να το αντιγράφει σε έναν πίνακα χαρακτήρων με χρήση της συνάρτησης strcpy() 41 Παραδείγματα (ΙΙ) Ποια είναι η έξοδος του παρακάτω προγράμματος??? Έξοδος: test 42 21

22 Η συνάρτηση strncpy() Η συνάρτηση strncpy() δηλώνεται στο αρχείο string.h και χρησιμοποιείται για την αντιγραφή ενός συγκεκριμένου πλήθους χαρακτήρων ενός αλφαριθμητικού σε μία άλλη θέση μνήμης (string copy n chars) Η συνάρτηση strncpy() είναι παρόμοια με τη συνάρτηση strcpy() με τη διαφορά ότι δέχεται μία επιπλέον παράμετρο, που είναι το πλήθος των χαρακτήρων που θα αντιγραφούν Το πρωτότυπό της δηλώνεται ως εξής: char* strncpy(char* dest,char* source,int count); Εάν η τιμή της παραμέτρου count είναι μικρότερη από το πλήθος των χαρακτήρων του αλφαριθμητικού στο οποίο δείχνει ο source δείκτης, τότε δεν προστίθεται ο τερματικός χαρακτήρας '\0' στο τέλος της μνήμης που δείχνει ο dest δείκτης Εάν είναι μεγαλύτερη, τότε προστίθενται τερματικοί χαρακτήρες '\0' στο τέλος της μνήμης που δείχνει ο dest δείκτης μέχρι να συμπληρωθεί ο αριθμός count 43 Παράδειγμα Ποια είναι η έξοδος του παρακάτω προγράμματος??? Έξοδος: New text Get 44 22

23 Η συνάρτηση strcat() Η συνάρτηση strcat() δηλώνεται στο αρχείο string.h και χρησιμοποιείται για τη συνένωση ενός αλφαριθμητικού με ένα άλλο (string concatenate) Η συνάρτηση strcat() δέχεται σαν παραμέτρους δύο δείκτες και προσθέτει το αλφαριθμητικό στο οποίο δείχνει ο δείκτης source στο τέλος της μνήμης που δείχνει ο δείκτης dest Ο τερματικός χαρακτήρας '\0' προστίθεται αυτόματα στο τέλος του νέου αλφαριθμητικού Το πρωτότυπό της δηλώνεται ως εξής: char* strcat(char* dest,char* source); 45 Παρατηρήσεις Να προσέχετε, ώστε το μέγεθος της μνήμης που έχει δεσμευτεί για το 1ο αλφαριθμητικό να είναι αρκετά μεγάλο για να χωράει το άθροισμα των χαρακτήρων του 1ου και 2ου αλφαριθμητικού Αν δεν είναι, τότε οι πλεονάζοντες χαρακτήρες θα εγγραφούν σε μη δεσμευμένη μνήμη, η οποία μπορεί να χρησιμοποιείται από κάποιο άλλο πρόγραμμα Ισχύει επίσης η αντίστοιχη παρατήρηση της συνάρτησης strcpy() για τη δέσμευση μνήμης πριν τη συνένωση αλφαριθμητικών, δηλαδή πριν την αντιγραφή του αλφαριθμητικού πρέπει να έχει προηγηθεί η δέσμευση της αντίστοιχης μνήμης 46 23

24 Παράδειγμα Γράψτε ένα πρόγραμμα το οποίο να διαβάζει δύο αλφαριθμητικά μέχρι 100 χαρακτήρες, να τα ενώνει σε ένα τρίτο αλφαριθμητικό με χρήση της συνάρτησης strcat() και να το εμφανίζει στην οθόνη 47 Η συνάρτηση strcmp() Η συνάρτηση strcmp() δηλώνεται στο αρχείο string.h και χρησιμοποιείται για τη σύγκριση αλφαριθμητικών (string compare) Η συνάρτηση strcmp() δέχεται σαν παραμέτρους δύο δείκτες και συγκρίνει τους χαρακτήρες του αλφαριθμητικού που είναι αποθηκευμένο στη μνήμη που δείχνει ο δείκτης str1 με τους χαρακτήρες του αλφαριθμητικού που είναι αποθηκευμένο στη μνήμη που δείχνει ο δείκτης str2 Το πρωτότυπό της δηλώνεται ως εξής: int strcmp(char* str1,char* str2); Αν τα δύο αλφαριθμητικά είναι ακριβώς ίδια, τότε η συνάρτηση strcmp() επιστρέφει την τιμή μηδέν (0) Αν το πρώτο αλφαριθμητικό είναι μικρότερο από το δεύτερο, τότε επιστρέφει μία αρνητική τιμή, ενώ αν είναι μεγαλύτερο επιστρέφει μία θετική τιμή 48 24

25 Η συνάρτηση strcmp() Η σύγκριση των χαρακτήρων γίνεται σύμφωνα με την τιμή τους στον ASCII κώδικα Π.χ. σύμφωνα με τον ASCII κώδικα τα κεφαλαία γράμματα έχουν μικρότερη ASCII τιμή από τα αντίστοιχα πεζά Επομένως, αφού το αλφαριθμητικό "Yes" θεωρείται μικρότερο από το αλφαριθμητικό "yes", η εντολή: επιστρέφει μία αρνητική τιμή, ενώ η εντολή: strcmp("yes","yes"); strcmp("yes", "Yes"); επιστρέφει μία θετική τιμή, αντίστοιχα 49 Η συνάρτηση strncmp() Η συνάρτηση strncmp() είναι παρόμοια με τη strcmp(), δηλώνεται κι αυτή στο αρχείο string.h και χρησιμοποιείται για να συγκρίνει ένα συγκεκριμένο πλήθος χαρακτήρων (string compare n chars) Το πρωτότυπό της δηλώνεται ως εξής: int strncmp(char* str1,char* str2,int count ); Η παράμετρος count δηλώνει το πλήθος των χαρακτήρων που θα συγκριθούν 50 25

26 Παράδειγμα Γράψτε ένα πρόγραμμα το οποίο το οποίο να διαβάζει δύο αλφαριθμητικά μέχρι 100 χαρακτήρες και να τα συγκρίνει με χρήση της συνάρτησης strcmp(). Αν τα αλφαριθμητικά είναι διαφορετικά, να συγκρίνει τους 3 πρώτους χαρακτήρες τους με χρήση της συνάρτησης strncmp() 51 26

Προγραµµατισµός Ι Αλφαριθµητικά Πανεπιστήµιο Πελοποννήσου Τµήµα Πληροφορικής & Τηλεπικοινωνιών Προγραµµατισµός Ι 1 Νικόλαος Δ.

Προγραµµατισµός Ι Αλφαριθµητικά Πανεπιστήµιο Πελοποννήσου Τµήµα Πληροφορικής & Τηλεπικοινωνιών Προγραµµατισµός Ι 1 Νικόλαος Δ. Αλφαριθµητικά Πανεπιστήµιο Πελοποννήσου Τµήµα Πληροφορικής & Τηλεπικοινωνιών Νικόλαος Δ. Τσελίκας Νικόλαος Προγραµµατισµός Δ. Τσελίκας Ι 1 Αλφαριθµητικά - Εισαγωγή Ένα αλφαριθµητικό (string) είναι µία

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Εισαγωγή στον Προγραµµατισµό «C»

Εισαγωγή στον Προγραµµατισµό «C» Εισαγωγή Στον Προγραµµατισµό «C» Δείκτες Πανεπιστήµιο Πελοποννήσου Τµήµα Επιστήµης & Τεχνολογίας Τηλεπικοινωνιών Νικόλαος Δ. Τσελίκας Μνήµη Υπολογιστή Η µνήµη RAM (Random Access Memory) ενός υπολογιστή

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

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

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

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

Διάλεξη 8η: Αλφαριθμητικά (strings)

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

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

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

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

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

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

Προγραμματισμός Ι. Δομές & Ενώσεις. Πανεπιστήμιο Πελοποννήσου Τμήμα Πληροφορικής & Τηλεπικοινωνιών Δομές & Ενώσεις Πανεπιστήμιο Πελοποννήσου Τμήμα Πληροφορικής & Τηλεπικοινωνιών Νικόλαος Προγραμματισμός Δ. Τσελίκας Ι 1 Δομές (Structures) Δομή (structure) στη C είναι μία συλλογή από μεταβλητές οποιουδήποτε

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

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

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

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

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

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

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

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

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

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

Κεφάλαιο ΙV: Δείκτες και πίνακες. 4.1 Δείκτες.

Κεφάλαιο ΙV: Δείκτες και πίνακες. 4.1 Δείκτες. Κεφάλαιο ΙV: Δείκτες και πίνακες. 4.1 Δείκτες. Η C, όπως έχουμε αναφέρει, είναι μια γλώσσα προγραμματισμού υψηλού επιπέδου η οποία αναπτύχθηκε για πρώτη φορά το 1972 από τον Dennis Ritchie στα AT&T Bell

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

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

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

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

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

Ανάπτυξη και Σχεδίαση Λογισμικού Ανάπτυξη και Σχεδίαση Λογισμικού Η γλώσσα προγραμματισμού C Γεώργιος Δημητρίου Αλφαριθμητικά και Αρχεία Αλφαριθμητικά (strings) Αρχεία (files) τα βασικά στοιχεία Αλφαριθμητικά της C Συμβολοσειρές (= ακολουθίες

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

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

Η γλώσσα προγραμματισμού C Η γλώσσα προγραμματισμού C Οι πίνακες στη C (μονοδιάστατοι -συμβολοσειρές) Γενικά για τους πίνακες Ο πίνακας είναι μια αρκετά διαδεδομένη δομή που προσφέρεται από σχεδόν κάθε γλώσσα προγραμματισμού. Πρόκειται

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

Προγραμματισμός Ι. Θεματική ενότητα 6: Πίνακες αλφαριθμητικά

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Σε μία άλλη από τις εκτελέσεις του προγράμματος η αλληλεπίδραση με το χειριστή ήταν η επόμενη:

Σε μία άλλη από τις εκτελέσεις του προγράμματος η αλληλεπίδραση με το χειριστή ήταν η επόμενη: Κεφάλαιο 5: Πολυδιάστατοι πίνακες Πίνακες αλφαριθμητικών 119 Σε μία άλλη από τις εκτελέσεις του προγράμματος η αλληλεπίδραση με το χειριστή ήταν η επόμενη: 5.5 Συναρτήσεις χειρισμού αλφαριθμητικών Στις

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

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

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

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

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

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

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

ΕΡΓΑΣΤΗΡΙΟ 9: Συμβολοσειρές και Ορίσματα Γραμμής Εντολής

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

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

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

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

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

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

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

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

Τεχνολογία και Προγραμματισμός Υπολογιστών. Η γλώσσα προγραμματισμού C

Τεχνολογία και Προγραμματισμός Υπολογιστών. Η γλώσσα προγραμματισμού C Τεχνολογία και Προγραμματισμός Υπολογιστών Η γλώσσα προγραμματισμού C Με μια ματιά Τύπος Πίνακα Μεταβλητές με ενδείκτη Αλφαριθμητικά - Πίνακες Δισδιάστατος Πολυδιάστατος Πίνακας 2 2 Τύπος Πίνακα Σύνθετος

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

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

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

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

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

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

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

C: Από τη Θεωρία στην Εφαρμογή

C: Από τη Θεωρία στην Εφαρμογή Δρ. Γ. Σ. Τσελίκης Δρ. Ν. Δ. Τσελίκας C: Από τη Θεωρία στην Εφαρμογή Ενδεικτικές Ασκήσεις από το Βιβλίο C: Από τη Θεωρία στην Εφαρμογή (Γ. Σ. Τσελίκης Ν. Δ. Τσελίκας) Ενδεικτικές Ασκήσεις του Βιβλίου Ε.Α.1

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

Συμβολοσειρές Ορίσματα στη main()

Συμβολοσειρές Ορίσματα στη main() Εργαστήριο 7 ο Συμβολοσειρές Ορίσματα στη main() Σκοπός του παρόντος εργαστηρίου είναι η εξοικείωση μας με τις συμβολοσειρές στην ANSI C καθώς και με την χρήση ορισμάτων στην συνάρτηση main(). Θεωρία Συμβολοσειρά

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

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

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

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

Ο βρόχος for Η εντολή for χρησιμοποιείται για τη δημιουργία επαναληπτικών βρόχων στη C

Ο βρόχος for Η εντολή for χρησιμοποιείται για τη δημιουργία επαναληπτικών βρόχων στη C Ο βρόχος for Η εντολή for χρησιμοποιείται για τη δημιουργία επαναληπτικών βρόχων στη C Επαναληπτικός βρόχος καλείται το τμήμα του κώδικα μέσα σε ένα πρόγραμμα, το οποίο εκτελείται από την αρχή και επαναλαμβάνεται

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

Κεφάλαιο Αλφαριθµητικές Σειρές Χαρακτήρων (Strings)

Κεφάλαιο Αλφαριθµητικές Σειρές Χαρακτήρων (Strings) Κεφάλαιο 9.1-9.2 Αλφαριθµητικές Σειρές Χαρακτήρων (Strings) ( ιάλεξη 19) ιδάσκων: ηµήτρης Ζεϊναλιπούρ 1) Strings στη C Ένα string είναι µία ακολουθία αλφαριθµητικών χαρακτήρων, σηµείων στίξης κτλ. Π.χ.

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

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

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

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

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

ΠΑΝΕΠΙΣΤΗΜΙΟ ΠΑΤΡΩΝ ΠΟΛΥΤΕΧΝΙΚΗ ΣΧΟΛΗ ΤΜΗΜΑ ΜΗΧΑΝΙΚΩΝ ΗΛΕΚΤΡΟΝΙΚΩΝ ΥΠΟΛΟΓΙΣΤΩΝ ΚΑΙ ΠΛΗΡΟΦΟΡΙΚΗΣ ΠΑΝΕΠΙΣΤΗΜΙΟ ΠΑΤΡΩΝ ΠΟΛΥΤΕΧΝΙΚΗ ΣΧΟΛΗ ΤΜΗΜΑ ΜΗΧΑΝΙΚΩΝ ΗΛΕΚΤΡΟΝΙΚΩΝ ΥΠΟΛΟΓΙΣΤΩΝ ΚΑΙ ΠΛΗΡΟΦΟΡΙΚΗΣ 2 ο ΣΕΤ ΑΣΚΗΣΕΩΝ Οι ασκήσεις αυτού του φυλλαδίου καλύπτουν τα παρακάτω θέματα: Συναρτήσεις (κεφάλαιο Functions)

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Προγραμματισμός Ι. Συναρτήσεις. Πανεπιστήμιο Πελοποννήσου Τμήμα Πληροφορικής & Τηλεπικοινωνιών Συναρτήσεις Πανεπιστήμιο Πελοποννήσου Τμήμα Πληροφορικής & Τηλεπικοινωνιών Νικόλαος Προγραμματισμός Δ. Τσελίκας Ι Συναρτήσεις - Εισαγωγή Μία συνάρτηση είναι ένα ανεξάρτητο τμήμα κώδικα, που εκτελεί μία

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

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

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

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

#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 πίνακας

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

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

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

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

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

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

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

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

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

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

Επεξεργασία Αρχείων Κειµένου

Επεξεργασία Αρχείων Κειµένου Επεξεργασία Αρχείων Κειµένου Στην ενότητα αυτή θα µελετηθούν τα εξής επιµέρους θέµατα: Αρχεία Κειµένου Γενικά Συναρτήσεις Επεξεργασίας Αρχείων Κειµένου ΕΠΛ 132 Αρχές Προγραµµατισµού ΙΙ 1 Αρχεία Γενικά

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

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

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

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

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

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

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

ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΜΑΘΗΜΑ 2 Ο. Εισαγωγή στην C Εντολές εξόδου Εντολές εισόδου Μορφοποιητές ΣΙΝΑΤΚΑΣ Ι. ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ

ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΜΑΘΗΜΑ 2 Ο. Εισαγωγή στην C Εντολές εξόδου Εντολές εισόδου Μορφοποιητές ΣΙΝΑΤΚΑΣ Ι. ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΜΑΘΗΜΑ 2 Ο Εισαγωγή στην C Εντολές εξόδου Εντολές εισόδου Μορφοποιητές ΣΙΝΑΤΚΑΣ Ι. ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ 2010-11 1 Εισαγωγή στη C Η γλώσσα προγραμματισμού C είναι υψηλού επιπέδου με δυνατότητες

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

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

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

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

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

ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΥΠΟΛΟΓΙΣΤΩΝ & ΥΠΟΛΟΓΙΣΤΙΚΗ ΦΥΣΙΚΗ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΥΠΟΛΟΓΙΣΤΩΝ & ΥΠΟΛΟΓΙΣΤΙΚΗ ΦΥΣΙΚΗ Μέρος 5ο ΝΙΚΟΛΑΟΣ ΣΤΕΡΓΙΟΥΛΑΣ ΤΜΗΜΑ ΦΥΣΙΚΗΣ ΑΡΙΣΤΟΤΕΛΕΙΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΕΣΣΑΛΟΝΙΚΗΣ 1 Η ΕΝΤΟΛΗ for Με την εντολή for δημιουργούμε βρόχους επανάληψης σε

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

char name[5]; /* define a string of characters */

char name[5]; /* define a string of characters */ Συµβολοσειρές (Strings) Συµβολοσειρά (string) είναι µια σειρά αλφαριθµητικών χαρακτήρων (γενικά εκτυπώσιµων συµβόλων ASCII). Όταν λέµε σειρά εννοούµε διαδοχικές θέσεις µνήµης που µπορούν να αντιµετωπισθούν

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

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

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

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

Α' Εξάμηνο ΕΙΣΑΓΩΓΗ ΣΤΟ ΔΟΜΗΜΕΝΟ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟ

Α' Εξάμηνο ΕΙΣΑΓΩΓΗ ΣΤΟ ΔΟΜΗΜΕΝΟ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟ Α' Εξάμηνο ΕΙΣΑΓΩΓΗ ΣΤΟ ΔΟΜΗΜΕΝΟ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟ Εργαστήριο 9η εβδομάδα. Κοζάνη, 2 Δεκεμβρίου 2008. Δίνονται παραδείγματα που αποσαφηνίζουν και συμπληρώνουν όσα αναφέρθηκαν στο μάθημα σχετικά με τις δομές

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

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

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

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

ΕΝΤΟΛΕΣ ΕΠΑΝΑΛΗΨΗΣ. for (παράσταση_1; παράσταση_2; παράσταση_3) εντολή επόμενη εντολή

ΕΝΤΟΛΕΣ ΕΠΑΝΑΛΗΨΗΣ. for (παράσταση_1; παράσταση_2; παράσταση_3) εντολή επόμενη εντολή ΕΝΤΟΛΕΣ ΕΠΑΝΑΛΗΨΗΣ for (παράσταση_1; παράσταση_2; παράσταση_3) εντολή επόμενη εντολή παράσταση_1 = Παράσταση Αρχικοποίησης παράσταση_2 = Παράσταση Ελέγχου Επανάληψης παράσταση_3 = Παράσταση Ενημέρωσης

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

Περιεχόµενα. Πρόλογος... 15

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

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

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

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

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

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

ΠΑΝΕΠΙΣΤΗΜΙΟ ΠΑΤΡΩΝ ΠΟΛΥΤΕΧΝΙΚΗ ΣΧΟΛΗ ΤΜΗΜΑ ΜΗΧΑΝΙΚΩΝ ΗΛΕΚΤΡΟΝΙΚΩΝ ΥΠΟΛΟΓΙΣΤΩΝ ΚΑΙ ΠΛΗΡΟΦΟΡΙΚΗΣ ΠΑΝΕΠΙΣΤΗΜΙΟ ΠΑΤΡΩΝ ΠΟΛΥΤΕΧΝΙΚΗ ΣΧΟΛΗ ΤΜΗΜΑ ΜΗΧΑΝΙΚΩΝ ΗΛΕΚΤΡΟΝΙΚΩΝ ΥΠΟΛΟΓΙΣΤΩΝ ΚΑΙ ΠΛΗΡΟΦΟΡΙΚΗΣ ΕΙΣΑΓΩΓΗ ΣΤΟ ΔΙΑΔΙΚΑΣΤΙΚΟ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟ 1 ο ΣΕΤ ΑΣΚΗΣΕΩΝ Οι ασκήσεις αυτού του φυλλαδίου καλύπτουν τα παρακάτω

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

Ινστιτούτο Επαγγελµατική Κατάρτιση Κορυδαλλού "ΤΕΧΝΙΚΟΣ ΣΥΣΤΗΜΑΤΩΝ ΥΠΟΛΟΓΙΣΤΩΝ" (Ερωτήσεις Πιστοποίησης στην γλώσσα προγραµµατισµού C)

Ινστιτούτο Επαγγελµατική Κατάρτιση Κορυδαλλού ΤΕΧΝΙΚΟΣ ΣΥΣΤΗΜΑΤΩΝ ΥΠΟΛΟΓΙΣΤΩΝ (Ερωτήσεις Πιστοποίησης στην γλώσσα προγραµµατισµού C) Ινστιτούτο Επαγγελµατική Κατάρτιση Κορυδαλλού "ΤΕΧΝΙΚΟΣ ΣΥΣΤΗΜΑΤΩΝ ΥΠΟΛΟΓΙΣΤΩΝ" (Ερωτήσεις Πιστοποίησης στην γλώσσα προγραµµατισµού C) ΚΑΤΑΛΟΓΟΣ ΕΡΩΤΗΣΕΩΝ ΕΡΩΤΗΣΕΙΣ ΕΙ ΙΚΩΝ ΓΝΩΣΕΩΝ (γλώσσα προγραµµατισµού

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

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

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

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

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

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

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

Στη C++ υπάρχουν τρεις τύποι βρόχων: (a) while, (b) do while, και (c) for. Ακολουθεί η σύνταξη για κάθε μια:

Στη C++ υπάρχουν τρεις τύποι βρόχων: (a) while, (b) do while, και (c) for. Ακολουθεί η σύνταξη για κάθε μια: Εργαστήριο 6: 6.1 Δομές Επανάληψης Βρόγχοι (Loops) Όταν θέλουμε να επαναληφθεί μια ομάδα εντολών τη βάζουμε μέσα σε ένα βρόχο επανάληψης. Το αν θα (ξανα)επαναληφθεί η εκτέλεση της ομάδας εντολών καθορίζεται

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

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

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

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

Η-Υ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ. Εργαστήριο 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 στην

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

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

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

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

Master Mind εφαρμογή στη γλώσσα προγραμματισμού C

Master Mind εφαρμογή στη γλώσσα προγραμματισμού C Master Mind εφαρμογή στη γλώσσα προγραμματισμού C Φεβρουάριος/Μάρτιος 2013 v. 0.1 Master-mind: κανόνες παιχνιδιού Στο master mind χρειάζεται να παράγονται κάθε φορά 4 τυχαία σύμβολα από ένα πλήθος 6 διαφορετικών

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

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

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

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

Συναρτήσεις διαχείρισης αλφαριθμητικών

Συναρτήσεις διαχείρισης αλφαριθμητικών Συναρτήσεις διαχείρισης αλφαριθμητικών Όνομα βιβλιοθήκης: string.h Ενδεικτικές συναρτήσεις: char *strcpy(char *s1, char *s2): Αντιγράφει την ακολουθία χαρακτήρων s2 στον πίνακα s1. Επιστρέφεται η τιμή

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

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

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

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

Αρχιτεκτονική Υπολογιστών Ι

Αρχιτεκτονική Υπολογιστών Ι Αρχιτεκτονική Υπολογιστών Ι ΥΠΟΔΕΙΞΕΙΣ ΓΙΑ ΤΗ ΛΥΣΗ ΤΩΝ ΕΡΓΑΣΤΗΡΙΑΚΩΝ ΑΣΚΗΣΕΩΝ Από το βιβλίο Αρχιτεκτονική Υπολογιστών & Προγραμματισμός Assembly (Συγγραφέας / Εκδότης : Παναγιώτης Παπάζογλου) Δρ. Παναγιώτης

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

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

ΠΑΝΕΠΙΣΤΗΜΙΟ ΠΑΤΡΩΝ ΠΟΛΥΤΕΧΝΙΚΗ ΣΧΟΛΗ ΤΜΗΜΑ ΜΗΧΑΝΙΚΩΝ ΗΛΕΚΤΡΟΝΙΚΩΝ ΥΠΟΛΟΓΙΣΤΩΝ ΚΑΙ ΠΛΗΡΟΦΟΡΙΚΗΣ ΠΑΝΕΠΙΣΤΗΜΙΟ ΠΑΤΡΩΝ ΠΟΛΥΤΕΧΝΙΚΗ ΣΧΟΛΗ ΤΜΗΜΑ ΜΗΧΑΝΙΚΩΝ ΗΛΕΚΤΡΟΝΙΚΩΝ ΥΠΟΛΟΓΙΣΤΩΝ ΚΑΙ ΠΛΗΡΟΦΟΡΙΚΗΣ ΕΙΣΑΓΩΓΗ ΣΤΟ ΔΙΑΔΙΚΑΣΤΙΚΟ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟ 1 ο ΣΥΝΟΛΟ ΑΣΚΗΣΕΩΝ Οι ασκήσεις αυτού του φυλλαδίου καλύπτουν τα

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

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

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

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

Υπολογιστικά Συστήματα

Υπολογιστικά Συστήματα Υπολογιστικά Συστήματα Ενότητα 3: Βασικά στοιχεία της γλώσσας προγραμματισμού Visual Basic for Applications (VBA) Σαπρίκης Ευάγγελος Τμήμα Διοίκησης Επιχειρήσεων (Γρεβενά) Άδειες Χρήσης Το παρόν εκπαιδευτικό

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

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

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

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

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

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

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

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

Εισαγωγή στους Αλγόριθμους και τον Προγραμματισμό. 3η Διάλεξη Είσοδος Δεδομένων Συνθήκες Βρόχοι Παραδείγματα Εισαγωγή στους Αλγόριθμους και τον Προγραμματισμό 3η Διάλεξη Είσοδος Δεδομένων Συνθήκες Βρόχοι Παραδείγματα Τελεστές συντομογραφίας Τελεστές σύντομης ανάθεσης += παράδειγμα: sum+=10; αντί για: sum = sum

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

Προγραμματισμός Υπολογιστών με C++

Προγραμματισμός Υπολογιστών με C++ Προγραμματισμός Υπολογιστών με C++ ( 2012-13 ) 19η διάλεξη Ίων Ανδρουτσόπουλος http://www.aueb.gr/users/ion/ 1 Τι θα ακούσετε σήμερα Βασικές διαφορές της C από τη C++. Απλά παραδείγματα προγραμμάτων C.

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

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

ΤΜΗΜΑ ΗΛΕΚΤΡΟΛΟΓΩΝ ΜΗΧΑΝΙΚΩΝ ΚΑΙ ΜΗΧΑΝΙΚΩΝ Η/Υ, ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΕΣΣΑΛΙΑΣ ΤΜΗΜΑ ΗΛΕΚΤΡΟΛΟΓΩΝ ΜΗΧΑΝΙΚΩΝ ΚΑΙ ΜΗΧΑΝΙΚΩΝ Η/Υ, ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΕΣΣΑΛΙΑΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ I, ΑΚΑΔΗΜΑΪΚΟ ΕΤΟΣ 2016-2017 ΕΡΓΑΣΙΑ ΕΞΑΜΗΝΟΥ Ποιος πρέπει να ολοκληρώσει αυτή την εργασία? Φοιτητές έτους >= 2 που

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

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

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

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

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

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

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

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

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

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

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

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

Κεφάλαιο Πίνακες Ι. (Διάλεξη 16)

Κεφάλαιο Πίνακες Ι. (Διάλεξη 16) Κεφάλαιο 8.1-8.3 Πίνακες Ι (Διάλεξη 16) 15-1 Πίνακες (Arrays) Σε αυτή την ενότητα θα μιλήσουμε για την δομή δεδομένων Πίνακας: 1. Εισαγωγή & Σύνταξη 2. Δήλωση Πίνακα 3. Αρχικοποίηση Πίνακα 4. Πρόσβαση

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

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

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

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

Η Γλώσσα Προγραμματισμού C (Μέρος 3 - Συναρτήσεις, Πίνακες και Δείκτες) Εισαγωγή στις Συναρτήσεις

Η Γλώσσα Προγραμματισμού C (Μέρος 3 - Συναρτήσεις, Πίνακες και Δείκτες) Εισαγωγή στις Συναρτήσεις Η Γλώσσα Προγραμματισμού C (Μέρος 3 - Συναρτήσεις, Πίνακες και Δείκτες) Εισαγωγή στις Συναρτήσεις Η φιλοσοφία σχεδίασης της C βασίζεται στη χρήση των συναρτήσεων. Έχουμε ήδη δει και χρησιμοποιήσει πολλές

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

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

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

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

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

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

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

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

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

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