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

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

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

Transcript

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

2 Αλφαριθµητικά - Εισαγωγή Ένα αλφαριθµητικό (string) είναι µία ακολουθία χαρακτήρων, η οποία πρέπει να τελειώνει µε έναν ειδικό χαρακτήρα, ο οποίος είναι ο χαρακτήρας '\0' Ο χαρακτήρας αυτός ('\0') ονοµάζεται τερµατικός χαρακτήρας (null character) και οριοθετεί το τέλος του αλφαριθµητικού Προσοχή στο ότι ο τερµατικός χαρακτήρας '\0' και ο χαρακτήρας '0' είναι δύο διαφορετικοί χαρακτήρες Η ASCII τιµή του τερµατικού χαρακτήρα είναι 0 (µηδέν), ενώ του µηδενικού ψηφίου είναι 48 2

3 Κυριολεκτικά Αλφαριθµητικά Μία ακολουθία χαρακτήρων που περιέχεται µέσα σε διπλά εισαγωγικά ονοµάζεται κυριολεκτικό αλφαριθµητικό και αποθηκεύεται στη µνήµη σαν να ήταν πίνακας χαρακτήρων Για παράδειγµα, αν ο µεταγλωττιστής συναντήσει στο πρόγραµµα το αλφαριθµητικό "message" δεσµεύει για αυτό οκτώ θέσεις µνήµης, ώστε να αποθηκεύσει τους επτά χαρακτήρες του και τον τερµατικό χαρακτήρα ('\0') Αφού ένα κυριολεκτικό αλφαριθµητικό αποθηκεύεται σαν πίνακας χαρακτήρων, µπορούµε να το χρησιµοποιήσουµε και σαν «δείκτη σε χαρακτήρα», δηλαδή δείκτη µε τύπο char* 3

4 Αποθήκευση Αλφαριθµητικών Η αποθήκευση αλφαριθµητικών γίνεται σε µεταβλητές που δηλώνονται σαν πίνακες χαρακτήρων Π.χ. η πρόταση: char str[10]; δηλώνει έναν πίνακα str µε στοιχεία 10 χαρακτήρες ΣΗΜΑΝΤΙΚΗ ΠΑΡΑΤΗΡΗΣΗ Στην πραγµατικότητα, στον πίνακα str επιτρέπεται να αποθηκεύσουµε µέχρι και 9 χαρακτήρες και όχι 10, γιατί µία θέση δεσµεύεται για τον τερµατικό χαρακτήρα '\0' Γενικά, για να αποθηκεύσουµε ένα αλφαριθµητικό που µπορεί να έχει µέχρι και Ν χαρακτήρες θα πρέπει να δηλώσουµε έναν πίνακα µε Ν+1 θέσεις χαρακτήρων 4

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

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

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

8 Παρατηρήσεις (Ι) Ο µεταγλωττιστής για να ανακαλύψει το τέλος ενός αλφαριθµητικού ψάχνει να βρει τον τερµατικό χαρακτήρα ('\0') Εποµένως, κάθε αλφαριθµητικό πρέπει να τελειώνει µε τον τερµατικό χαρακτήρα '\0' Επίσης, ο τερµατικός χαρακτήρας ('\0') πρέπει να υπάρχει, για να µπορούν να λειτουργήσουν σωστά και οι αντίστοιχες συναρτήσεις χειρισµού αλφαριθµητικών (π.χ. strlen(), strcpy(), ) τις οποίες θα εξετάσουµε παρακάτω 8

9 Παρατηρήσεις (ΙΙ) Ένας τρόπος για να εξασφαλιστεί ότι ο τερµατικός χαρακτήρας '\0' θα περιέχεται οπωσδήποτε σε έναν πίνακα χαρακτήρων, είναι να τεθεί στα στοιχεία του η τιµή '\0', κατά τη δήλωσή του (δηλ. να γίνει ταυτόχρονη αρχικοποίηση µε τη δήλωσή του) Π.χ. µε τη δήλωση: char str[100] = {0}; όλα τα στοιχεία του πίνακα str γίνονται ίσα µε την ASCII τιµή 0, η οποία αντιστοιχίζεται στον τερµατικό χαρακτήρα '\0' 9

10 Παρατηρήσεις (ΙΙΙ) Όπως µε όλους τους πίνακες, αν το πλήθος των χαρακτήρων είναι µικρότερο από το µέγεθος του πίνακα, οι τιµές των υπολοίπων στοιχείων αρχικοποιούνται µε µηδέν Αφού η ASCII τιµή του '\0' είναι µηδέν (0), σηµαίνει ότι αρχικοποιούνται µε '\0' Π.χ. µε τη δήλωση: char str[8] = "me"; το str[0] γίνεται 'm', το str[1] γίνεται 'e' και τα υπόλοιπα στοιχεία (str[2], str[3],, str[7]) ίσα µε '\0' 10

11 Παραδείγµατα (Ι) Το παρακάτω πρόγραµµα αποθηκεύει το κυριολεκτικό αλφαριθµητικό "This is the text" σε έναν πίνακα χαρακτήρων. Υπάρχει κάποια αδυναµία??? Η αδυναµία έγκειται στο ότι έχουν δεσµευτεί στη µνήµη 100 bytes ενώ αν η αποθήκευση του αλφαριθµητικού γινόταν ως: char str[] = "This is the text"; θα δεσµεύονταν ακριβώς 17 bytes (όσα δηλ. οι χαρακτήρες του αλφαριθµητικού (16) συν τον τερµατικό χαρακτήρα) 11

12 Παραδείγµατα (ΙΙ) Ποια είναι η έξοδος του παρακάτω προγράµµατος??? Έξοδος: 17 12

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

14 Παραδείγµατα (ΙV) Υπάρχει προγραµµατιστικό λάθος στο παρακάτω πρόγραµµα??? Mε την εντολή char str1[] = "abc"; ο µεταγλωττιστής δηµιουργεί έναν πίνακα τεσσάρων θέσεων, για να αποθηκεύσει τους χαρακτήρες 'a', 'b', 'c' και τον '\0' και παρόµοια τον πίνακα str2 για να αποθηκεύσει τους χαρακτήρες 'e', 'f', 'g' και τον '\0'. Το λάθος συµβαίνει όταν το πρόγραµµα επιχειρεί να αποθηκεύσει τον χαρακτήρα 'w' σε θέση του πίνακα str2 που είναι εκτός των ορίων του. Άρα, µε την εντολή str2[4] = 'w' γίνεται υπερεγγραφή µνήµης και αυθαίρετη αλλοίωση των δεδοµένων που είναι αποθηκευµένα εκεί. ηλαδή, το πρόγραµµα µπορεί να εµφανίσει 'a' µπορεί όµως και να εµφανίσει 'w' αν οι πίνακες str1 και str2 έχουν αποθηκευτεί σε διαδοχικές θέσεις µνήµης. 14

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

16 Εµφάνιση Αλφαριθµητικών µε την printf() (ΙΙ) Προφανώς, µπορούµε να εµφανίσουµε οποιοδήποτε τµήµα του αλφαριθµητικού επιθυµούµε κάνοντας τον δείκτη να δείχνει στην ανάλογη θέση Για παράδειγµα, για να εµφανίσουµε στο προηγούµενο πρόγραµµα το τµήµα του αλφαριθµητικού από τον έκτο χαρακτήρα και µετά, δηλαδή το is text, θα γράφαµε: ή ισοδύναµα: 16

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

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

19 Παράδειγµα (ΙΙ) Ποια είναι η έξοδος των παρακάτω προγραµµάτων??? Έξοδος: ab 19

20 Παράδειγµα (ΙΙΙ) Ποια είναι η έξοδος του παρακάτω προγράµµατος??? Απαντήσατε Right??? Προσοχή!!! Το '0' που περιέχεται στο αλφαριθµητικό δεν αντιστοιχεί στον τερµατικό χαρακτήρα ('\0'), αλλά στους εξής τρεις χαρακτήρες: το µονό εισαγωγικό, το µηδέν και ξανά το µονό εισαγωγικό. Άρα, το πρόγραµµα εµφανίζει: Right'0'Wrong Για να ήταν η απάντησή σας σωστή, θα έπρεπε να είχαµε δηλώσει το αλφαριθµητικό ως: char str[] = "Right\0Wrong"; 20

21 Δείκτες και Αλφαριθµητικά (Ι) Ένας εναλλακτικός τρόπος για να χειριστούµε ένα κυριολεκτικό αλφαριθµητικό είναι να δηλώσουµε έναν δείκτη που να δείχνει στον πρώτο χαρακτήρα του αλφαριθµητικού αυτού Παράδειγµα: 21

22 Δείκτες και Αλφαριθµητικά (ΙΙ) Δηλώνοντας έναν δείκτη σε ένα αλφαριθµητικό µπορούµε να το χειριστούµε µε τον ίδιο τρόπο όπως αν το είχαµε αποθηκεύσει σε έναν πίνακα χαρακτήρων Δηλαδή µε τις εντολές: char *ptr = "This is text"; και char ptr[] = "This is text"; µπορούµε να χειριστούµε το αλφαριθµητικό µε τη χρήση του δείκτη ptr, γιατί και στη δεύτερη περίπτωση το ptr είναι επίσης δείκτης στη διεύθυνση του πρώτου χαρακτήρα του αλφαριθµητικού Και γιατί αυτό???? Θυµηθείτε ότι το όνοµα ενός πίνακα (χωρίς τις αγκύλες) είναι δείκτης στο πρώτο στοιχείο του 22

23 Δείκτες και Αλφαριθµητικά (ΙΙΙ) Τους χαρακτήρες ενός αλφαριθµητικού µπορούµε να τους χειριστούµε είτε χρησιµοποιώντας τη σηµειογραφία δείκτη είτε χρησιµοποιώντας τη θέση τους στον πίνακα Παράδειγµα: Παρατηρήστε ότι ο for βρόχος εκτελείται µέχρι να συναντήσουµε τον τερµατικό χαρακτήρα '\0' 23

24 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') 24

25 char *ptr vs. char ptr[] char *ptr = "This is text"; char ptr[] = "This is text"; 2) Αντίθετα, αν έχουµε χρησιµοποιήσει τον 1ο τρόπο δήλωσης, δηλαδή: char *ptr = "This is text"; µετά τη δήλωση και την αρχικοποίηση αυτή, επιτρέπεται να κάνουµε τον δείκτη ptr να δείξει σε ένα άλλο αλφαριθµητικό, ακόµα και αν αυτό έχει περισσότερους χαρακτήρες Παράδειγµα: 25

26 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) 26

27 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'; εκτελούνται κανονικά 27

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

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

30 Παρατηρήσεις (Ι) Και οι δύο συναρτήσεις (scanf() και gets()) δέχονται σαν παράµετρο έναν δείκτη προς χαρακτήρα Υπενθυµίζεται ότι το όνοµα ενός πίνακα χωρίς αγκύλες είναι δείκτης στο πρώτο στοιχείο του πίνακα Εποµένως, στα προηγούµενα παραδείγµατα µπορεί να χρησιµοποιηθεί σαν παράµετρος το str, γιατί το str είναι δείκτης σε χαρακτήρα και συγκεκριµένα στον πρώτο χαρακτήρα του πίνακα Αρκετοί προγραµµατιστές προτιµούν τη συνάρτηση gets() έναντι της συνάρτησης scanf(), γιατί διαβάζει και τους κενούς χαρακτήρες Προσοχή όµως, γιατί και οι δύο συναρτήσεις δεν είναι απολύτως ασφαλείς για το διάβασµα αλφαριθµητικών...(δείτε τη συνέχεια) 30

31 Παρατηρήσεις (ΙΙ) Ο δείκτης που δέχονται σαν παράµετρο οι συναρτήσεις scanf() και gets() πρέπει να δείχνει σε µία µνήµη που έχει δεσµευτεί για την αποθήκευση του αλφαριθµητικού που θα εισάγει ο χρήστης Π.χ. Για να µην υπάρχει πρόβληµα π.χ.: char ptr[100]; Έξοδος: εν θα εκτελεστεί σωστά το πρόγραµµα, αφού δεν έχει δεσµευτεί µνήµη για την αποθήκευση του αλφαριθµητικού 31

32 Παρατηρήσεις (ΙΙΙ) Οι scanf() και gets() δεν ελέγχουν αν υπάρχει διαθέσιµος χώρος για την αποθήκευση όλων των χαρακτήρων του αλφαριθµητικού Εποµένως, αν ο χρήστης εισάγει ένα αλφαριθµητικό που έχει περισσότερους χαρακτήρες από το µέγεθος της δεσµευµένης µνήµης, το πρόγραµµα θα έχει απρόβλεπτη συµπεριφορά Το λέµε και το ξαναλέµε λοιπόν: Μεγάλη προσοχή όταν χρησιµοποιείτε τις scanf() και gets() για να διαβάσετε αλφαριθµητικά. Δεν είναι ασφαλείς... 32

33 Παράδειγµα Ποια είναι η έξοδος του παρακάτω προγράµµατος αν ο χρήστης εισάγει το αλφαριθµητικό: You are a moonchild...??? Ποιοι είπατε: You a 20??? Και ποιοι λέτε: You 20??? Είπε κανείς: You are a moonchild (ίσως, µε πιθανότητα %) Προσοχή στην υπέρβαση ορίων της επιτρεπόµενης δεσµευµένης µνήµης όταν χρησιµοποιείτε τις συναρτήσεις scanf() και gets() 33

34 Διάβασµα αλφαριθµητικών µε µεγαλύτερη ασφάλεια (Ι) Όταν χρησιµοποιούµε τη συνάρτηση gets(), θεωρούµε, για λόγους απλότητας, ότι το µήκος του αλφαριθµητικού που διαβάζουµε από το πληκτρολόγιο είναι µέχρι ένα λογικό πλήθος χαρακτήρων (π.χ. 100) Ωστόσο, αν θέλετε να αισθάνεστε πιο ασφαλείς ότι δεν θα δηµιουργηθεί πρόβληµα στις δικές σας εφαρµογές µε το διάβασµα ενός αλφαριθµητικού από το πληκτρολόγιο, προτείνονται κι άλλες εναλλακτικές µέθοδοι, όπως: 1) Χρησιµοποιείστε τη συνάρτηση fgets(), η οποία είναι πιο ασφαλής από την gets()(περιγράφεται στο κεφάλαιο των αρχείων), γιατί καθορίζει το µέγιστο πλήθος των χαρακτήρων που θα αποθηκευτούν στον πίνακα, άρα αποφεύγεται η υπερχείλισή του Για το διάβασµα ενός αλφαριθµητικού από το πληκτρολόγιο, µπορείτε απλώς να αντικαταστήσετε την: gets(str) µε την: fgets(str, sizeof(str), stdin) (η παράµετρος stdin αναφέρεται στο πληκτρολόγιο) 34

35 Διάβασµα αλφαριθµητικών µε µεγαλύτερη ασφάλεια (ΙΙ) 2) Στη scanf() αντί για το προσδιοριστικό %s καλύτερα να χρησιµοποιείτε το %ns, όπου το n δηλώνει το µέγιστο πλήθος των χαρακτήρων που θα διαβαστούν 3) Το µέγεθος του πίνακα, στον οποίο θα αποθηκευτεί το αλφαριθµητικό, φροντίστε να είναι αρκετά µεγάλο, ώστε να «χωράει» σίγουρα το αλφαριθµητικό (π.χ. char str[5000]) 4) Μπορείτε χρησιµοποιώντας τη συνάρτηση malloc() να δεσµεύσετε δυναµικά πολλή µνήµη, η οποία να είστε σίγουροι ότι θα χωράει το αλφαριθµητικό (π.χ bytes), να αποθηκεύσετε το αλφαριθµητικό στη µνήµη αυτή και µετά, µε χρήση της συνάρτησης realloc(), να µικραίνετε το µέγεθός της και να το κάνετε ίσο µε το µήκος του αλφαριθµητικού Περισσότερες λεπτοµέρειες για τη malloc() και τη realloc() θα δείτε στη διάλεξη που αφορά τη διαχείριση µνήµης 35

36 Διάβασµα αλφαριθµητικών µε µεγαλύτερη ασφάλεια (ΙΙΙ) 5) Αν δεν σας καλύπτει τίποτα από τα προηγούµενα, τότε µπορείτε να... φτιάξετε έναν ατέρµονο while βρόχο, ο οποίος θα διαβάζει συνέχεια χαρακτήρες µε τη συνάρτηση getchar() µέχρι είτε συναντηθεί ο χαρακτήρας '\n' είτε επιστραφεί η τιµή EOF Οι χαρακτήρες θα αποθηκεύονται σε περιοχή της µνήµης που πρέπει να έχει δεσµευτεί δυναµικά µε τη συνάρτηση malloc() (π.χ. αρχικό µέγεθος µνήµης 3000 bytes) Όταν η δεσµευµένη αυτή µνήµη γεµίσει, τότε πρέπει να καλείτε τη συνάρτηση realloc() για να µεγαλώσετε το µέγεθός της (π.χ. την πρώτη φορά που θα γεµίσει το νέο µέγεθός της να γίνει 6000 bytes, την επόµενη 9000 bytes, κ.ο.κ, δηλαδή κάθε φορά που γεµίζει να προσθέτετε 3000 bytes) Φυσικά, όλοι οι παραπάνω τρόποι είναι σίγουρα πολύ ασφαλείς, αλλά ταυτόχρονα και «παρανοϊκοί» (ή τουλάχιστον περιττοί, για ένα µη-επαγγελµατικό πρόγραµµα ενός πρωτοετούς φοιτητή...), δηλ. στο πλαίσιο του µαθήµατος, δεν χρειάζεται να τους ακολουθήσετε... 36

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

38 Παραδείγµατα (ΙΙ) Ποια είναι η έξοδος του παρακάτω προγράµµατος??? Έξοδος: 99 ο 38

39 Παραδείγµατα (ΙΙΙ) Γράψτε ένα πρόγραµµα το οποίο να διαβάζει 10 φορές ένα αλφαριθµητικό (µέχρι 100 χαρακτήρες) και να εµφανίζει το πλήθος των πεζών και κεφαλαίων γραµµάτων που περιέχονται σε αυτό 39

40 Η συνάρτηση strlen() Η συνάρτηση strlen() δηλώνεται στο αρχείο string.h και επιστρέφει τον αριθµό των χαρακτήρων που περιέχει ένα αλφαριθµητικό, χωρίς να µετράει τον τερµατικό χαρακτήρα ('\0') Το όνοµά της προκύπτει από την έκφραση «string length» Η συνάρτηση strlen() δέχεται σαν παράµετρο έναν δείκτη προς τη µνήµη που είναι αποθηκευµένη το αλφαριθµητικό Το πρωτότυπό της δηλώνεται ως εξής: size_t strlen(const char *str); Ο δείκτης δηλώνεται ως const ώστε να µην µπορεί η strlen() να µεταβάλει το περιεχόµενο του αλφαριθµητικού Ο τύπος size_t είναι δηλωµένος στην C βιβλιοθήκη σαν απρόσηµος ακέραιος (συνήθως ως unsigned int) 40

41 Παραδείγµατα (Ι) Γράψτε ένα πρόγραµµα το οποίο να διαβάζει ένα αλφαριθµητικό µέχρι 100 χαρακτήρες και να εµφανίζει το πλήθος των χαρακτήρων του µε χρήση της συνάρτησης strlen() 41

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

43 Η συνάρτηση strcpy() Η συνάρτηση strcpy() δηλώνεται στο αρχείο string.h και χρησιµοποιείται για την αντιγραφή ενός αλφαριθµητικού σε µία άλλη θέση µνήµης (string copy) Η συνάρτηση strcpy() δέχεται σαν παραµέτρους δύο δείκτες και αντιγράφει το αλφαριθµητικό στο οποίο δείχνει ο δεύτερος δείκτης (source), συµπεριλαµβανοµένου του τερµατικού χαρακτήρα, στη µνήµη που δείχνει ο πρώτος δείκτης (dest) Το πρωτότυπό της δηλώνεται ως εξής: char *strcpy(char *dest, const char *source); Όταν αντιγραφεί και ο τερµατικός χαρακτήρας, η συνάρτηση strcpy() τερµατίζει και επιστρέφει τον δείκτη dest (δηλαδή δείχνει στη διεύθυνση µνήµης που δείχνει και ο δείκτης dest) Π.χ. η παρακάτω εντολή αντιγράφει το αλφαριθµητικό "something" στον πίνακα str char str[100]; strcpy(str, "something"); 43

44 Παρατηρήσεις Η strcpy() δεν ελέγχει αν η µνήµη - στην οποία θα αντιγραφεί το αλφαριθµητικό χωράει όλους τους χαρακτήρες του, οπότε πρέπει να έχετε εξασφαλίσει ότι το µέγεθός της θα είναι αρκετά µεγάλο, ώστε να αποφευχθεί η υπερεγγραφή µνήµης Με άλλα λόγια, να προσέχετε, ώστε το µέγεθος της µνήµης που έχει δεσµευτεί για το 1ο αλφαριθµητικό να είναι αρκετά µεγάλο για να χωράει όλους τους χαρακτήρες του 2ου αλφαριθµητικού Αν δεν είναι, τότε οι πλεονάζοντες χαρακτήρες θα εγγραφούν σε µη δεσµευµένη µνήµη, το οποίο µπορεί να προκαλέσει την δυσλειτουργία του προγράµµατος Π.χ. το επόµενο πρόγραµµα δεν θα εκτελεστεί σωστά (θα εµφανιστεί λάθος κατά την εκτέλεση του προγράµµατος), γιατί το µέγεθος του πίνακα str είναι µικρότερο από ότι θα έπρεπε char str[5]; strcpy(str, "something"); Πριν την αντιγραφή του αλφαριθµητικού πρέπει να έχει προηγηθεί η δέσµευση της αντίστοιχης µνήµης 44

45 Παραδείγµατα (Ι) Γράψτε ένα πρόγραµµα το οποίο να διαβάζει ένα αλφαριθµητικό µέχρι 100 χαρακτήρες και να το αντιγράφει σε έναν πίνακα χαρακτήρων µε χρήση της συνάρτησης strcpy() 45

46 Παραδείγµατα (ΙΙ) Ποια είναι η έξοδος του παρακάτω προγράµµατος??? Έξοδος: test 46

47 Η συνάρτηση strncpy() Η συνάρτηση strncpy() δηλώνεται στο αρχείο string.h και χρησιµοποιείται για την αντιγραφή ενός συγκεκριµένου πλήθους χαρακτήρων ενός αλφαριθµητικού σε µία άλλη θέση µνήµης (string copy n chars) Η συνάρτηση strncpy() είναι παρόµοια µε τη συνάρτηση strcpy() µε τη διαφορά ότι δέχεται µία επιπλέον παράµετρο, που είναι το πλήθος των χαρακτήρων που θα αντιγραφούν Το πρωτότυπό της δηλώνεται ως εξής: char *strncpy(char *dest,const char *source,size_t count); Εάν η τιµή της παραµέτρου count είναι µικρότερη από το πλήθος των χαρακτήρων του αλφαριθµητικού στο οποίο δείχνει ο source δείκτης, τότε δεν προστίθεται ο τερµατικός χαρακτήρας '\0' στο τέλος της µνήµης που δείχνει ο dest δείκτης Εάν είναι µεγαλύτερη, τότε προστίθενται τερµατικοί χαρακτήρες '\0' στο τέλος της µνήµης που δείχνει ο dest δείκτης µέχρι να συµπληρωθεί ο αριθµός count 47

48 Παράδειγµα Ποια είναι η έξοδος του παρακάτω προγράµµατος??? Έξοδος: New text Get 48

49 Η συνάρτηση strcat() Η συνάρτηση strcat() δηλώνεται στο αρχείο string.h και χρησιµοποιείται για τη συνένωση ενός αλφαριθµητικού µε ένα άλλο (string concatenate) Η συνάρτηση strcat() δέχεται σαν παραµέτρους δύο δείκτες και προσθέτει το αλφαριθµητικό στο οποίο δείχνει ο δείκτης source στο τέλος της µνήµης που δείχνει ο δείκτης dest Ο τερµατικός χαρακτήρας '\0' προστίθεται αυτόµατα στο τέλος του νέου αλφαριθµητικού Το πρωτότυπό της δηλώνεται ως εξής: char *strcat(char *dest, const char *source); Η συνάρτηση strcat() επιστρέφει τον δείκτη dest, ο οποίος δείχνει στη µνήµη που περιέχει τα ενωµένα αλφαριθµητικά 49

50 Παρατηρήσεις Να προσέχετε, ώστε το µέγεθος της µνήµης που έχει δεσµευτεί για το 1ο αλφαριθµητικό να είναι αρκετά µεγάλο για να χωράει το άθροισµα των χαρακτήρων του 1ου και 2ου αλφαριθµητικού Αν δεν είναι, τότε οι πλεονάζοντες χαρακτήρες θα εγγραφούν σε µνήµη µετά από το επιτρεπτό όριο, υπερεγγράφοντας τα δεδοµένα που υπάρχουν εκεί Ισχύει επίσης η αντίστοιχη παρατήρηση της συνάρτησης strcpy() για τη δέσµευση µνήµης πριν τη συνένωση αλφαριθµητικών, δηλαδή πριν την αντιγραφή του αλφαριθµητικού πρέπει να έχει προηγηθεί η δέσµευση της αντίστοιχης µνήµης 50

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

52 Η συνάρτηση strcmp() Η συνάρτηση strcmp() δηλώνεται στο αρχείο string.h και χρησιµοποιείται για τη σύγκριση αλφαριθµητικών (string compare) Η συνάρτηση strcmp() δέχεται σαν παραµέτρους δύο δείκτες και συγκρίνει το αλφαριθµητικό στο οποίο δείχνει ο δείκτης str1 µε το αλφαριθµητικό στο οποίο δείχνει ο δείκτης str2 Το πρωτότυπό της δηλώνεται ως εξής: int strcmp(const char *str1, const char *str2); Αν τα δύο αλφαριθµητικά είναι ακριβώς ίδια, τότε η συνάρτηση strcmp() επιστρέφει την τιµή µηδέν (0) Αν το πρώτο αλφαριθµητικό είναι µικρότερο από το δεύτερο, τότε επιστρέφει µία αρνητική τιµή, ενώ αν είναι µεγαλύτερο επιστρέφει µία θετική τιµή 52

53 Η συνάρτηση strcmp() Ένα αλφαριθµητικό θεωρείται µικρότερο από κάποιο άλλο αν: α) η τιµή του πρώτου µη κοινού χαρακτήρα είναι µικρότερη από την τιµή του αντίστοιχου χαρακτήρα στο δεύτερο αλφαριθµητικό β) οι χαρακτήρες τους είναι οι ίδιοι, αλλά το µήκος του είναι µικρότερο Δείτε παρακάτω, θεωρώντας ότι η σύγκριση των αλφαριθµητικών βασίζεται στις ASCII τιµές που έχουν οι χαρακτήρες τους (θυµηθείτε ότι στον ASCII κώδικα τα κεφαλαία γράµµατα έχουν µικρότερη τιµή από τα αντίστοιχα πεζά) Εποµένως, η εντολή: επιστρέφει µία αρνητική τιµή, ενώ η εντολή: strcmp("one", "one"); strcmp("yes", "Yes"); επιστρέφει µία θετική τιµή, αντίστοιχα 53

54 Συνεχίζοντας, η εντολή: Η συνάρτηση strcmp() strcmp("w", "many"); επιστρέφει µία θετική τιµή (αφού η ASCII τιµή του πρώτου µη κοινού χαρακτήρα 'w' είναι µεγαλύτερη από την αντίστοιχη του 'm'), ενώ η εντολή: strcmp("some", "something"); επιστρέφει µία αρνητική τιµή, αντίστοιχα, διότι µπορεί οι πρώτοι τέσσερις χαρακτήρες των δύο αλφαριθµητικών να είναι ίδιοι, αλλά το µήκος του πρώτου αλφαριθµητικού είναι µικρότερο από το µήκος του δεύτερου 54

55 Η συνάρτηση strncmp() Η συνάρτηση strncmp() είναι παρόµοια µε τη strcmp(), δηλώνεται κι αυτή στο αρχείο string.h και χρησιµοποιείται για να συγκρίνει ένα συγκεκριµένο πλήθος χαρακτήρων (string compare n chars) Το πρωτότυπό της δηλώνεται ως εξής: int strncmp(const char *str1,const char *str2,int count); Η παράµετρος count δηλώνει το πλήθος των χαρακτήρων που θα συγκριθούν 55

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

57 Διδιάστατοι πίνακες και αλφαριθµητικά (I) Οι διδιάστατοι πίνακες χρησιµοποιούνται πολύ συχνά για την αποθήκευση αλφαριθµητικών Π.χ., µε την εντολή: char str[3][40]; δηλώνεται ο πίνακας str, ο οποίος περιέχει 3 γραµµές και σε κάθε γραµµή του πίνακα µπορεί να αποθηκευτεί ένα αλφαριθµητικό µέχρι 40 χαρακτήρες Μπορούµε να αποθηκεύσουµε κυριολεκτικά αλφαριθµητικά σε έναν διδιάστατο πίνακα ταυτόχρονα µε τη δήλωσή του Π.χ. µε τη δήλωση: char str[3][40] = {"One", "Two", "Three"}; οι χαρακτήρες του "One" αποθηκεύονται στην πρώτη γραµµή του πίνακα str, του "Two" στη δεύτερη και του "Three" στην τρίτη 57

58 Διδιάστατοι πίνακες και αλφαριθµητικά (II) Θυµηθείτε από την ενότητα των «Δεικτών» ότι µπορούµε να χειριστούµε το καθένα από τα N στοιχεία str[0], str[1],..., str[n-1] ενός διδιάστατου πίνακα, έστω str[n][m], σαν δείκτη σε πίνακα που περιέχει τα Μ στοιχεία της αντίστοιχης γραµµής. Άρα, στο προηγούµενο παράδειγµα, το str[0] µπορεί να χρησιµοποιηθεί σαν δείκτης σε έναν πίνακα 40 χαρακτήρων, ο οποίος περιέχει το αλφαριθµητικό "One", ενώ µε παρόµοιο τρόπο µπορούµε να χειριστούµε και τα στοιχεία str[1] και str[2] 58

59 Παράδειγµα Ποια είναι η έξοδος του παρακάτω προγράµµατος??? Έξοδος: Monday is No.1 week day Sunday is No.7 week day 59

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

for for for for( . */

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Κεφάλαιο Αλφαριθμητικές Σειρές Χαρακτήρων (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*%

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

int a[5]; a[0] a[1] a[2] a[3] a[4] 15/10/2009

int a[5]; a[0] a[1] a[2] a[3] a[4] 15/10/2009 Προγραµµατισµός Ι (ΗΥ10) ιάλεξη : Πίνακες, Αλφαριθµητικά Πίνακες Ο πίνακας είναι µια ειδική δοµή για την αποθήκευση µιας σειράς από δεδοµένα του ίδιου τύπου. Η δήλωσηενός πίνακα γίνεται όπως για µια κανονική

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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 Διαχείριση

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

ΣΕΤ ΑΣΚΗΣΕΩΝ 3. Προθεσµία: Τετάρτη 7/12/2016, 21:00

ΣΕΤ ΑΣΚΗΣΕΩΝ 3. Προθεσµία: Τετάρτη 7/12/2016, 21:00 ΣΕΤ ΑΣΚΗΣΕΩΝ 3 ΕΡΓΑΣΤΗΡΙΟ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ I, ΑΚΑΔΗΜΑΪΚΟ ΕΤΟΣ 2016-2017 Προθεσµία: Τετάρτη 7/12/2016, 21:00 Διαβάστε πριν ξεκινήσετε Διαβάστε όλη την εκφώνηση προσεκτικά πριν ξεκινήσετε να γράφετε κώδικα.

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

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

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

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

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

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

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

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

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

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

ΔΟΜΗΜΕΝΟΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ Κεφάλαιο 8 : H γλώσσα προγραµµατισµού Pascal

ΔΟΜΗΜΕΝΟΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ Κεφάλαιο 8 : H γλώσσα προγραµµατισµού Pascal ΔΟΜΗΜΕΝΟΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ Κεφάλαιο 8 : H γλώσσα προγραµµατισµού Pascal Δοµή προγράµµατος 1. Δοµή προγράµµατος program όνοµα_προγράµµατος(αρχείο_1, αρχείο_2,...αρχείο_ν); ΕΠΙΚΕΦΑΛΙΔΑ ΒΙΒΛΙΟΘΗΚΕΣ uses όνοµα_βιβλιοθήκης,όνοµα_βιβλιοθήκης;

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Επιλογή και επανάληψη. Λογική έκφραση ή συνθήκη

Επιλογή και επανάληψη. Λογική έκφραση ή συνθήκη Επιλογή και επανάληψη Η ύλη που αναπτύσσεται σε αυτό το κεφάλαιο είναι συναφής µε την ύλη που αναπτύσσεται στο 2 ο κεφάλαιο. Όπου υπάρχουν διαφορές αναφέρονται ρητά. Προσέξτε ιδιαίτερα, πάντως, ότι στο

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Πανεπιστήµιο Θεσσαλίας, THMMY HY120, Σεπτέµβριος 2015 ΟΝΟΜΑΤΕΠΩΝΥΜΟ:

Πανεπιστήµιο Θεσσαλίας, THMMY HY120, Σεπτέµβριος 2015 ΟΝΟΜΑΤΕΠΩΝΥΜΟ: ΟΝΟΜΑΤΕΠΩΝΥΜΟ: AEM: ΜΕΡΟΣ Α: ΕΡΩΤΗΣΕΙΣ ΠΟΛΛΑΠΛΩΝ ΕΠΙΛΟΓΩΝ [15 µονάδες] ΣΗΜΑΝΤΙΚΕΣ ΔΙΕΥΚΡΙΝΙΣΕΙΣ: Επιλέξτε ΜΙΑ σωστή απάντηση για κάθε ερώτηση. Λάθος απαντήσεις βαθµολογούνται αρνητικά Σε ερωτήσεις που

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

Οι δείκτες στη γλώσσα C

Οι δείκτες στη γλώσσα C Οι δείκτες στη γλώσσα C Δείκτης είναι µία µεταβλητή η οποία περιέχει σαν τιµή µία διεύθυνση της µνήµης Η τιµή ενός δείκτη δείχνει σε µία άλλη µεταβλητή, η οποία µπορεί να προσεγγισθεί έµµεσα µε τους ειδικούς

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

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

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

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

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

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

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

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

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

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

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

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

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