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

Μέγεθος: 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: Από τη Θεωρία στην Εφαρμογή Σωτήρης

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Η γλώσσα προγραμματισμού C Η γλώσσα προγραμματισμού C Χειρισμός χαρακτήρων, συμβολοσειρές Συμβολοσειρές Συμβολοσειρά ονομάζουμε μια οποιαδήποτε ακολουθία αλφαριθμητικών χαρακτήρων: «Κώστας», «Κώστας Βασιλάκης», «Δαιδάλου 23» Στην

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

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

Η γλώσσα προγραμματισμού C Η γλώσσα προγραμματισμού C Χειρισμός χαρακτήρων, συμβολοσειρές Συμβολοσειρές Συμβολοσειρά ονομάζουμε μια οποιαδήποτε ακολουθία αλφαριθμητικών χαρακτήρων: «Κώστας», «Κώστας Βασιλάκης», «Δαιδάλου 23» Στην

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

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

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

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

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

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

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

Διάλεξη 2: Επανάληψη Προγραμματισμού Συμβολοσειρές (strings) Διδάσκων: Παναγιώτης Ανδρέου

Διάλεξη 2: Επανάληψη Προγραμματισμού Συμβολοσειρές (strings) Διδάσκων: Παναγιώτης Ανδρέου Διάλεξη 2: Επανάληψη Προγραμματισμού Συμβολοσειρές (strings) Στην ενότητα αυτή θα μελετηθούν τα εξής επιμέρους θέματα: Εισαγωγή στις έννοιες: - Εισαγωγικές Έννοιες σε Strings - Πίνακες από Strings - Συναρτήσεις

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

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

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

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

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

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

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

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

Η γλώσσα προγραμματισμού C Η γλώσσα προγραμματισμού C Χειρισμός χαρακτήρων, συμβολοσειρές Συμβολοσειρές Συμβολοσειρά ονομάζουμε μια οποιαδήποτε ακολουθία αλφαριθμητικών χαρακτήρων: «Κώστας», «Κώστας Βασιλάκης», «Δαιδάλου 23» Στην

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

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

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

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

Κεφάλαιο Αλφαριθμητικές Σειρές Χαρακτήρων (Strings) (Διάλεξη 20) 1) Strings στη C

Κεφάλαιο Αλφαριθμητικές Σειρές Χαρακτήρων (Strings) (Διάλεξη 20) 1) Strings στη C Κεφάλαιο 9.1-9.2 Αλφαριθμητικές Σειρές Χαρακτήρων (Strings) (Διάλεξη 20) 1) Strings στη C Ένα string είναι μία ακολουθία αλφαριθμητικών χαρακτήρων, σημείων στίξης κτλ. Π.χ. Hello How are you? 121212 *Apple#123*%

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

Διδάσκων: Κωνσταντίνος Κώστα Διαφάνειες: Δημήτρης Ζεϊναλιπούρ

Διδάσκων: Κωνσταντίνος Κώστα Διαφάνειες: Δημήτρης Ζεϊναλιπούρ Διάλεξη 2:Αλφαριθμητικές Σειρές Χαρακτήρων (Strings)- Επανάληψη Στην ενότητα αυτή θα μελετηθούν τα εξής επιμέρους θέματα: Εισαγωγικές Έννοιες σε Strings(Αρχικοποίηση, Ανάγνωση & Εκτύπωση) Πίνακες από Strings

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

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

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

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

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

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

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

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

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

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

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

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

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

Στόχοι και αντικείμενο ενότητας. Τύπος πίνακα. Τύπος πίνακα (συν.) #6. Πίνακες και Δείκτες

Στόχοι και αντικείμενο ενότητας. Τύπος πίνακα. Τύπος πίνακα (συν.) #6. Πίνακες και Δείκτες Στόχοι και αντικείμενο ενότητας Ο τύπος του Πίνακα (βλ. ενότητα #2α) Ορισμός και αρχικοποίηση Αποθήκευση πινάκων στη μνήμη Πολυδιάστατοι πίνακες #6. Πίνακες και Δείκτες Ο τύπος του Δείκτη Η έννοια του

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

ΑΣΚΗΣΗ 7: ΑΛΦΑΡΙΘΜΗΤΙΚΑ

ΑΣΚΗΣΗ 7: ΑΛΦΑΡΙΘΜΗΤΙΚΑ ΑΣΚΗΣΗ 7: ΑΛΦΑΡΙΘΜΗΤΙΚΑ Σκοπός της Άσκησης Ο σκοπός αυτής της εργαστηριακής άσκησης είναι η εξοικείωση με τον ορισμό, τη δήλωση και τη χρήση των χαρακτήρων, συνεπώς και των αλφαριθμητικών, της Γλώσσας

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Προγραμματισμός Ι (ΗΥ120) Προγραμματισμός Ι (ΗΥ120) Διάλεξη 8: Πίνακες, Αλφαριθμητικά Πίνακες Ο πίνακας είναι μια ειδική δομή για την αποθήκευση μιας σειράς από δεδομένα του ίδιου τύπου. Η δήλωση ενός πίνακα γίνεται όπως για μια

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

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

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

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

Αναφορά (1/2) Μπορούμε να ορίσουμε μια άλλη, ισοδύναμη αλλά ίσως πιο σύντομη, ονομασία για ποσότητα (μεταβλητή, σταθερή, συνάρτηση, κλπ.

Αναφορά (1/2) Μπορούμε να ορίσουμε μια άλλη, ισοδύναμη αλλά ίσως πιο σύντομη, ονομασία για ποσότητα (μεταβλητή, σταθερή, συνάρτηση, κλπ. ΤΡΙΤΗ ΔΙΑΛΕΞΗ Αναφορά (1/2) Μπορούμε να ορίσουμε μια άλλη, ισοδύναμη αλλά ίσως πιο σύντομη, ονομασία για ποσότητα (μεταβλητή, σταθερή, συνάρτηση, κλπ.): Σύνταξη τύπος όνομαα; τύπος όνομαβ{όνομαα}; όνομαβ

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

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

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

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

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

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

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

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

Sheet1_2. - Δεν απελευθερώνεις τη δυναµικά δεσµευµένη µνήµη. - Η έξοδος του προγράµµατός σου δεν είναι ακριβώς όπως ζητούσε η άσκηση. Sheet1_2 AEM 0001 0002 0003 0004 0006 COMMENTS - Segmentation fault λόγω λάθους στην αναδροµή. Δες τη λύση, αλλά προσπάθησε να το ξανακάνεις και στο σπίτι για εξ - Πρόσεχε λίγο τη στοίχιση - Καλή δουλειά

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

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

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

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

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

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

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

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

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

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

Προγραμματισμός H/Y Ενότητα 3: Πίνακες αριθμών και χαρακτήρων. Επικ. Καθηγητής Συνδουκάς Δημήτριος Τμήμα Διοίκησης Επιχειρήσεων (Γρεβενά)

Προγραμματισμός H/Y Ενότητα 3: Πίνακες αριθμών και χαρακτήρων. Επικ. Καθηγητής Συνδουκάς Δημήτριος Τμήμα Διοίκησης Επιχειρήσεων (Γρεβενά) Προγραμματισμός H/Y Ενότητα 3: Πίνακες αριθμών και χαρακτήρων Επικ. Καθηγητής Συνδουκάς Δημήτριος Τμήμα Διοίκησης Επιχειρήσεων (Γρεβενά) Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης

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

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

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

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

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

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

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

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

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

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

Μεθόδων Επίλυσης Προβλημάτων

Μεθόδων Επίλυσης Προβλημάτων ΕΠΛ 032.3: 3: Προγραμματισμός Μεθόδων Επίλυσης Προβλημάτων Αχιλλέας Αχιλλέως, Τμήμα Πληροφορικής, Πανεπιστήμιο Κύπρου Email: achilleas@cs.ucy.ac.cy Κεφάλαιο 14 Αλφαριθμητικές Σειρές Χαρακτήρων (Strings)

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

Βαθμός Σχόλια. lab6 PASS PASS. - Πολύ καλή δουλειά, αλλά προσπάθησε να κάνεις την άσκηση χρησιµοποιώντας συναρτήσεις από το string.

Βαθμός Σχόλια. lab6 PASS PASS. - Πολύ καλή δουλειά, αλλά προσπάθησε να κάνεις την άσκηση χρησιµοποιώντας συναρτήσεις από το string. Α. Μ. Βαθμός Σχόλια 1183 1194 1238 1239 1240 1241 1242 1243 - Πολύ καλή δουλειά κατά τα άλλα, µπράβο. - Πολύ καλή δουλειά, αλλά προσπάθησε να κάνεις την άσκηση χρησιµοποιώντας συναρτήσεις από το string.h

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

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

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

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

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

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

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

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

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

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

ΚΕΦΑΛΑΙΟ 9 ΒΑΣΙΚΕΣ ΕΝΤΟΛΕΣ

ΚΕΦΑΛΑΙΟ 9 ΒΑΣΙΚΕΣ ΕΝΤΟΛΕΣ ΚΕΦΑΛΑΙΟ 9 ΒΑΣΙΚΕΣ ΕΝΤΟΛΕΣ 9.1 Εντολές Εισόδου/εξόδου Στην Pascal, 1. Tα δεδομένα των προγραμμάτων λαμβάνονται: είτε από το πληκτρολόγιο είτε από ένα αρχείο με τη χρήση των διαδικασιών read και readln,

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

Προγραμματισμός Ι Εργαστήριο 9ο Ακαδ. Έτος ΕΡΓΑΣΤΗΡΙΟ 9 ΕΡΓΑΣΤΗΡΙΟ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ I, ΑΚΑΔΗΜΑΪΚΟ ΕΤΟΣ

Προγραμματισμός Ι Εργαστήριο 9ο Ακαδ. Έτος ΕΡΓΑΣΤΗΡΙΟ 9 ΕΡΓΑΣΤΗΡΙΟ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ I, ΑΚΑΔΗΜΑΪΚΟ ΕΤΟΣ ΕΡΓΑΣΤΗΡΙΟ 9 ΕΡΓΑΣΤΗΡΙΟ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ I, ΑΚΑΔΗΜΑΪΚΟ ΕΤΟΣ 2014-2015 Στόχοι Φορμαρισμένη είσοδος και έξοδος Αλφαριθμητικά Δείκτες Προσοχή: Απαγορεύεται αυστηρά η χρήση goto. Πριν ξεκινήσετε Πηγαίνετε στο

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

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

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

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

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

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

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

ΑΣΚΗΣΗ 6: ΔΕΙΚΤΕΣ. Σκοπός της Άσκησης. 1. Εισαγωγικά στοιχεία για τους Δείκτες

ΑΣΚΗΣΗ 6: ΔΕΙΚΤΕΣ. Σκοπός της Άσκησης. 1. Εισαγωγικά στοιχεία για τους Δείκτες Σκοπός της Άσκησης ΑΣΚΗΣΗ 6: ΔΕΙΚΤΕΣ Ο σκοπός αυτής της εργαστηριακής άσκησης είναι η εξοικείωση με τη χρήση των δεικτών (pointers). Οι δείκτες δίνουν την δυνατότητα σε προγράμματα να προσομοιώνουν τη

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

for for for for( . */

for for for for( . */ Εισαγωγή Στον Προγραµµατισµό «C» Βρόχοι Επανάληψης Πανεπιστήµιο Πελοποννήσου Τµήµα Πληροφορικής & Τηλεπικοινωνιών Νικόλαος Δ. Τσελίκας Νικόλαος Προγραµµατισµός Δ. Τσελίκας Ι Ο βρόχος for Η εντολή for χρησιµοποιείται

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Προγραμματισμός Η/Υ. Ενότητα 6: Πίνακες και Δείκτες

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

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

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

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

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

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

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

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

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

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

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

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

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

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

2ο ΓΕΛ ΑΓ.ΔΗΜΗΤΡΙΟΥ ΑΕΠΠ ΘΕΟΔΟΣΙΟΥ ΔΙΟΝ ΠΡΟΣΟΧΗ ΣΤΑ ΠΑΡΑΚΑΤΩ

2ο ΓΕΛ ΑΓ.ΔΗΜΗΤΡΙΟΥ ΑΕΠΠ ΘΕΟΔΟΣΙΟΥ ΔΙΟΝ ΠΡΟΣΟΧΗ ΣΤΑ ΠΑΡΑΚΑΤΩ ΠΡΟΣΟΧΗ ΣΤΑ ΠΑΡΑΚΑΤΩ ΣΤΑΘΕΡΕΣ είναι τα μεγέθη που δεν μεταβάλλονται κατά την εκτέλεση ενός αλγόριθμου. Εκτός από τις αριθμητικές σταθερές (7, 4, 3.5, 100 κλπ), τις λογικές σταθερές (αληθής και ψευδής)

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

Sheet2 Α.Μ FAIL. οριακό PASS. - Έπρεπε να χρησιµοποιήσετε συναρτήσεις από τη string.h

Sheet2 Α.Μ FAIL. οριακό PASS. - Έπρεπε να χρησιµοποιήσετε συναρτήσεις από τη string.h Α.Μ. 1375 FAIL 1413 1417 1420 1421 FAIL 1422 FAIL 1424 1425 FAIL 1426 FAIL - Πρώτα να ελέγχετε αν η malloc επέστρεψε NULL και µετά να προσπαθείτε να προσπελάσετε τη δεσµευµένη µνήµη - Όταν διαβάζετε string

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

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

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

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

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

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

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

Προγραμματισμός ΙI (Θ)

Προγραμματισμός ΙI (Θ) Τεχνολογικό Εκπαιδευτικό Ίδρυμα Κεντρικής Μακεδονίας - Σέρρες Τμήμα Μηχανικών Πληροφορικής Προγραμματισμός ΙI (Θ) Δρ. Δημήτρης Βαρσάμης Επίκουρος Καθηγητής Μάρτιος 2017 Δρ. Δημήτρης Βαρσάμης Μάρτιος 2017

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Προγραμματισμός ΗΥ και Υπολογιστική Φυσική. Χρήστος Γκουμόπουλος

Προγραμματισμός ΗΥ και Υπολογιστική Φυσική. Χρήστος Γκουμόπουλος Προγραμματισμός ΗΥ και Υπολογιστική Φυσική Χρήστος Γκουμόπουλος Προγραμματισμός ΗΥ και Υπολογιστική Φυσική Χρήστος Γκουμόπουλος Προγραμματισμός ΗΥ και Υπολογιστική Φυσική Χρήστος Γκουμόπουλος Προγραμματισμός

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

Επεξεργασία κειμένου και συμβολοσειρών σε C

Επεξεργασία κειμένου και συμβολοσειρών σε C Εθνικό Μετσόβιο Πολυτεχνείο Σχολή Ηλεκτρολόγων Μηχανικών και Μηχανικών Υπολογιστών ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΗΛΕΚΤΡΟΝΙΚΩΝ ΥΠΟΛΟΓΙΣΤΩΝ Διδάσκοντες: Στάθης Ζάχος (zachos@cs.ntua.gr) Νίκος Παπασπύρου (nickie@softlab.ntua.gr)

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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