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

Save this PDF as:
 WORD  PNG  TXT  JPG

Μέγεθος: 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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

ΕΙΣΑΓΩΓΗ ΣΤΟΥΣ ΑΛΓΟΡΙΘΜΟΥΣ ΚΑΙ ΣΤΟΝ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΑΙΓΑΙΟΥ ΤΜΗΜΑ ΠΟΛΙΤΙΣΜΙΚΗΣ ΤΕΧΝΟΛΟΓΙΑΣ ΚΑΙ ΕΠΙΚΟΙΝΩΝΙΑΣ. Διδάσκουσα Δρ Β.

ΕΙΣΑΓΩΓΗ ΣΤΟΥΣ ΑΛΓΟΡΙΘΜΟΥΣ ΚΑΙ ΣΤΟΝ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΑΙΓΑΙΟΥ ΤΜΗΜΑ ΠΟΛΙΤΙΣΜΙΚΗΣ ΤΕΧΝΟΛΟΓΙΑΣ ΚΑΙ ΕΠΙΚΟΙΝΩΝΙΑΣ. Διδάσκουσα Δρ Β. ΕΙΣΑΓΩΓΗ ΣΤΟΥΣ ΑΛΓΟΡΙΘΜΟΥΣ ΚΑΙ ΣΤΟΝ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΑΙΓΑΙΟΥ ΤΜΗΜΑ ΠΟΛΙΤΙΣΜΙΚΗΣ ΤΕΧΝΟΛΟΓΙΑΣ ΚΑΙ ΕΠΙΚΟΙΝΩΝΙΑΣ Διδάσκουσα Δρ Β. Καβακλή Χειμερινό Εξάμηνο 2001 1 Σύνολο χαρακτήρων της Pascal Για

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

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

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

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

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

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

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

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

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

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

1. Πότε χρησιμοποιούμε την δομή επανάληψης; Ποιες είναι οι διάφορες εντολές (μορφές) της;

1. Πότε χρησιμοποιούμε την δομή επανάληψης; Ποιες είναι οι διάφορες εντολές (μορφές) της; 1. Πότε χρησιμοποιούμε την δομή επανάληψης; Ποιες είναι οι διάφορες (μορφές) της; Η δομή επανάληψης χρησιμοποιείται όταν μια σειρά εντολών πρέπει να εκτελεστεί σε ένα σύνολο περιπτώσεων, που έχουν κάτι

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

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

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

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

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

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

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

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

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

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

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

2 ΟΥ και 7 ΟΥ ΚΕΦΑΛΑΙΟΥ ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ ΕΠΙΜΕΛΕΙΑ: ΜΑΡΙΑ Σ. ΖΙΩΓΑ ΚΑΘΗΓΗΤΡΙΑ ΠΛΗΡΟΦΟΡΙΚΗΣ ΘΕΩΡΙΑ 2 ΟΥ και 7 ΟΥ ΚΕΦΑΛΑΙΟΥ ΒΑΣΙΚΕΣ ΕΝΝΟΙΕΣ ΑΛΓΟΡΙΘΜΩΝ και ΔΟΜΗ ΑΚΟΛΟΥΘΙΑΣ 2.1 Να δοθεί ο ορισμός

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

Σηµειώσεις στις σειρές

Σηµειώσεις στις σειρές . ΟΡΙΣΜΟΙ - ΓΕΝΙΚΕΣ ΕΝΝΟΙΕΣ Σηµειώσεις στις σειρές Στην Ενότητα αυτή παρουσιάζουµε τις βασικές-απαραίτητες έννοιες για την µελέτη των σειρών πραγµατικών αριθµών και των εφαρµογών τους. Έτσι, δίνονται συστηµατικά

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

7. Βασικά στοιχεία προγραµµατισµού.

7. Βασικά στοιχεία προγραµµατισµού. 7. Βασικά στοιχεία προγραµµατισµού. ΗΜ01-Θ1Γ Δίνονται οι παρακάτω έννοιες: 1. Λογικός τύπος δεδοµένων 2. Επιλύσιµο 3. Ακέραιος τύπος δεδοµένων 4. Περατότητα 5. Μεταβλητή 6. Ηµιδοµηµένο 7. Πραγµατικός τύπος

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

Πληροφορική & Τηλεπικοινωνίες K18 - Υλοποίηση Συστηµάτων Βάσεων εδοµένων Εαρινό Εξάµηνο 2009 2010

Πληροφορική & Τηλεπικοινωνίες K18 - Υλοποίηση Συστηµάτων Βάσεων εδοµένων Εαρινό Εξάµηνο 2009 2010 Πληροφορική & Τηλεπικοινωνίες K18 - Υλοποίηση Συστηµάτων Βάσεων εδοµένων Εαρινό Εξάµηνο 2009 2010 Καθηγητής. Γουνόπουλος Άσκηση 1 Σκοπός της εργασίας αυτής είναι η κατανόηση της εσωτερικής λειτουργίας

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

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

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

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

Κεφάλαιο 5ο: Εντολές Επανάληψης

Κεφάλαιο 5ο: Εντολές Επανάληψης Χρήστος Τσαγγάρης ΕΕ ΙΠ Τµήµατος Μαθηµατικών, Πανεπιστηµίου Αιγαίου Κεφάλαιο 5ο: Εντολές Επανάληψης Η διαδικασία της επανάληψης είναι ιδιαίτερη συχνή, αφού πλήθος προβληµάτων µπορούν να επιλυθούν µε κατάλληλες

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

Εργαστήριο Δομημένος Προγραμματισμός (C#) Τμήμα Μηχανολογίας Νικόλαος Ζ. Ζάχαρης Καθηγητής Εφαρμογών

Εργαστήριο Δομημένος Προγραμματισμός (C#) Τμήμα Μηχανολογίας Νικόλαος Ζ. Ζάχαρης Καθηγητής Εφαρμογών Εργαστήριο Δομημένος Προγραμματισμός (C#) Τμήμα Μηχανολογίας Νικόλαος Ζ. Ζάχαρης Καθηγητής Εφαρμογών Σκοπός Nα κατασκευάσουν πίνακες από δεδομένα. Να κατασκευάσουν συναρτήσεις με πίνακες. Να κάνουν χρήση

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

Τύποι, Σταθερές και Μεταβλητές

Τύποι, Σταθερές και Μεταβλητές ΚΕΦΑΛΑΙΟ 3 Τύποι, Σταθερές και Μεταβλητές Η έννοια της μεταβλητής Γενικά μπορούμε να πούμε ότι η έννοια της μεταβλητής στον προγραμματισμό είναι άμεσα συνδεδεμένη με την έννοια που αυτή έχει σε μαθηματικό

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

Κεφάλαιο 2.6: Είσοδος / Έξοδος εδοµένων, Μορφοποίηση εδοµένων Εξόδου. ( ιάλεξη 7) ιδάσκων: ηµήτρης Ζεϊναλιπούρ

Κεφάλαιο 2.6: Είσοδος / Έξοδος εδοµένων, Μορφοποίηση εδοµένων Εξόδου. ( ιάλεξη 7) ιδάσκων: ηµήτρης Ζεϊναλιπούρ Κεφάλαιο 2.6: Είσοδος / Έξοδος εδοµένων, Μορφοποίηση εδοµένων Εξόδου ( ιάλεξη 7) ιδάσκων: ηµήτρης Ζεϊναλιπούρ 1 Είσοδος/ Έξοδος Σε σχεδόν όλα τα προγράµµατα πρέπει να πάρουµε κάποια δεδοµένα και να δώσουµε

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

Αρχιτεκτονική Υπολογιστών Ασκήσεις Εργαστηρίου

Αρχιτεκτονική Υπολογιστών Ασκήσεις Εργαστηρίου Αρχιτεκτονική Υπολογιστών Ασκήσεις Εργαστηρίου Ενότητα: ΕΡΓΑΣΤΗΡΙΑΚΗ ΑΣΚΗΣΗ Νο 07 Δρ. Μηνάς Δασυγένης mdasyg@ieee.org Τμήμα Μηχανικών Πληροφορικής και Τηλεπικοινωνιών Εργαστήριο Ψηφιακών Συστημάτων και

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

1. ΓΛΩΣΣΑ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ C++

1. ΓΛΩΣΣΑ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ C++ Email: liliadis@fmenr.duth.gr 1. ΓΛΩΣΣΑ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ C++ Τα προγράµµατα αποτελούνται από εντολές οι οποίες γράφονται σε έναν απλό επεξεργαστή που προσφέρει και το Περιβάλλον της Visual C++. Οι εντολές

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

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

Αρχιτεκτονική Υπολογιστών Ι Αρχιτεκτονική Υπολογιστών Ι Επιλεγμένες εντολές και συναρτήσεις assembly Από το βιβλίο Αρχιτεκτονική Υπολογιστών & Προγραμματισμός Assembly (Συγγραφέας / Εκδότης : Παναγιώτης Παπάζογλου) Δρ. Παναγιώτης

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

ιαχείριση Πληροφοριών στο ιαδίκτυο

ιαχείριση Πληροφοριών στο ιαδίκτυο ιαχείριση Πληροφοριών στο ιαδίκτυο Εργαστήριο (Φυλλάδιο 8) ΤΕΙ Καβάλας - Σχολή ιοίκησης & Οικονοµίας Τµήµα ιαχείρισης Πληροφοριών ιδάσκων: Μαρδύρης Βασίλειος, ιπλ. Ηλ. Μηχανικός & Μηχ. Υπολογιστών, MSc

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

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

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

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

Διακριτά Μαθηματικά. Απαρίθμηση: Εισαγωγικά στοιχεία Αρχή του Περιστεριώνα

Διακριτά Μαθηματικά. Απαρίθμηση: Εισαγωγικά στοιχεία Αρχή του Περιστεριώνα Διακριτά Μαθηματικά Απαρίθμηση: Εισαγωγικά στοιχεία Αρχή του Περιστεριώνα Συνδυαστική ανάλυση μελέτη της διάταξης αντικειμένων 17 ος αιώνας: συνδυαστικά ερωτήματα για τη μελέτη τυχερών παιχνιδιών Απαρίθμηση:

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

ΑΣΚΗΣΗ 5 η Η σειριακή επικοινωνία ΙΙ 1.1 ΣΚΟΠΟΣ Σκοπός της άσκησης αυτής είναι η κατανόηση σε βάθος των λειτουργιών που παρέχονται από το περιβάλλον LabView για τον χειρισµό της σειριακής επικοινωνίας

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

Διάλεξη 2. Μεταβλητές - Δομές Δεδομένων - Eίσοδος δεδομένων - Έξοδος: Μορφοποίηση - Συναρτήσεις. Διοργάνωση : ΚΕΛ ΣΑΤΜ

Διάλεξη 2. Μεταβλητές - Δομές Δεδομένων - Eίσοδος δεδομένων - Έξοδος: Μορφοποίηση - Συναρτήσεις. Διοργάνωση : ΚΕΛ ΣΑΤΜ Διάλεξη 2 Μεταβλητές - Δομές Δεδομένων - Eίσοδος δεδομένων - Έξοδος: Μορφοποίηση - Συναρτήσεις Διοργάνωση : ΚΕΛ ΣΑΤΜ Διαφάνειες: Skaros, MadAGu Παρουσίαση: MadAGu Άδεια: Creative Commons 3.0 2 Internal

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

Αʹ. Πίνακες. Άσκηση 1. Λύση. Άσκηση 2. Λύση. Ασκήσεις Εργαστηρίου Προγραμματισμού

Αʹ. Πίνακες. Άσκηση 1. Λύση. Άσκηση 2. Λύση. Ασκήσεις Εργαστηρίου Προγραμματισμού Αʹ. Πίνακες Άσκηση 1 Να γράψετε ένα πρόγραμμα στη γλώσσα προγραμματισμού C, το οποίο να δημιουργεί έναν πίνακα με το όνομα E, ο οποίος να έχει ακέραιο τύπο δεδομένων και 40 θέσεις. Στη συνέχεια να αναθέσετε

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

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

ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΓΛΩΣΣΑ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ C ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΓΛΩΣΣΑ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ C Ιανουάριος 2013 Τι είναι ένα πρόγραμμα; Πρόγραμμα είναι μία σειρά από οδηγίες που δίνουμε στον υπολογιστή προκειμένου αυτός να κάνει κάποια συγκεκριμένη εργασία Πώς

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

ΔΙΑΔΙΚΑΣΤΙΚΟΣ ΠΡΟΓΡΑ Ρ Μ Α ΜΑΤΙ Τ ΣΜΟΣ

ΔΙΑΔΙΚΑΣΤΙΚΟΣ ΠΡΟΓΡΑ Ρ Μ Α ΜΑΤΙ Τ ΣΜΟΣ Τμήμα Εφαρμοσμένης Πληροφορικής ΔΙΑΔΙΚΑΣΤΙΚΟΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ Εξάμηνο Α' Φύλλο Ασκήσεων 3 ΔΟΜΕΣ ΕΠAΝΑΛΗΨΗΣ Διδάσκοντες: Μάγια Σατρατζέμη, Αλέξανδρος Χατζηγεωργίου, Ηλίας Σακελλαρίου, Στέλιος Ξυνόγαλος

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

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

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

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

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

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

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

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

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

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

Εισαγωγή στις Συναρτήσεις

Εισαγωγή στις Συναρτήσεις Εισαγωγή στις Συναρτήσεις Η φιλοσοφία σχεδίασης της C βασίζεται στη χρήση των συναρτήσεων. Έχουμε ήδη δει και χρησιμοποιήσει πολλές συναρτήσεις που έχει το σύστημα, όπως είναι οι printf(), scanf(),αλλά

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

Pascal - Βασικές Έννοιες

Pascal - Βασικές Έννοιες Pasal - Βασικές Έννοιες «Ο ΠΗΛΟΣ ΑΝ ΜΗ ΑΡΗ ΚΕΡΑΜΟΣ ΟΥ ΓΙΝΕΤΑΙ» Σηµαίνει: «Η λάσπη αν δε ζυµωθεί δε γίνετε κεραµίδι» ηλαδή: «Χωρίς τη δοκιµασία της πρακτικής εξάσκησης δεν αποκτάς ικανότητα, πείρα». (Αρχαία

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

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

ΔΙΑΓΩΝΙΣΜΑ ΠΡΟΣΟΜΟΙΩΣΗΣ ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ ΔΙΑΓΩΝΙΣΜΑ ΠΡΟΣΟΜΟΙΩΣΗΣ ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ ΘΕΜΑ 1 (Α) Σημειώστε δίπλα σε κάθε πρόταση «Σ» ή «Λ» εφόσον είναι σωστή ή λανθασμένη αντίστοιχα. 1. Τα συντακτικά λάθη ενός προγράμματος

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

2. Στοιχεία Πολυδιάστατων Κατανοµών

2. Στοιχεία Πολυδιάστατων Κατανοµών Στοιχεία Πολυδιάστατων Κατανοµών Είναι φανερό ότι έως τώρα η µελέτη µας επικεντρώνεται κάθε φορά σε πιθανότητες που αφορούν µία τυχαία µεταβλητή Σε αρκετές όµως περιπτώσεις ενδιαφερόµαστε να εξετάσουµε

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

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

ΠΑΝΕΠΙΣΤΗΜΙΟ ΠΑΤΡΩΝ ΠΟΛΥΤΕΧΝΙΚΗ ΣΧΟΛΗ ΤΜΗΜΑ ΜΗΧΑΝΙΚΩΝ ΗΛΕΚΤΡΟΝΙΚΩΝ ΥΠΟΛΟΓΙΣΤΩΝ & ΠΛΗΡΟΦΟΡΙΚΗΣ ΠΑΝΕΠΙΣΤΗΜΙΟ ΠΑΤΡΩΝ ΠΟΛΥΤΕΧΝΙΚΗ ΣΧΟΛΗ ΤΜΗΜΑ ΜΗΧΑΝΙΚΩΝ ΗΛΕΚΤΡΟΝΙΚΩΝ ΥΠΟΛΟΓΙΣΤΩΝ & ΠΛΗΡΟΦΟΡΙΚΗΣ ΕΙΣΑΓΩΓΗ ΣΤΟ ΔΙΑΔΙΚΑΣΤΙΚΟ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟ (2009-2010) ΥΠΕΥΘΥΝΟΙ ΔΙΔΑΣΚΟΝΤΕΣ ΕΡΓΑΣΤΗΡΙΟΥ: Α. ΦΩΚΑ, K. ΣΤΑΜΟΣ

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

Μηχανές Πεπερασµένων Καταστάσεων

Μηχανές Πεπερασµένων Καταστάσεων Μηχανές Επεξεργασίας Πληροφοριών Μηχανές Πεπερασµένων Καταστάσεων Είναι µηχανές που δέχονται ένα σύνολο από σήµατα εισόδου και παράγουν ένα αντίστοιχο σύνολο σηµάτων εξόδου Σήµατα Εισόδου Μηχανή Επεξεργασίας

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

ΚΕΦΑΛΑΙΟ 2 ΔΙΑΤΑΞΕΙΣ, ΜΕΤΑΘΕΣΕΙΣ, ΣΥΝΔΥΑΣΜΟΙ

ΚΕΦΑΛΑΙΟ 2 ΔΙΑΤΑΞΕΙΣ, ΜΕΤΑΘΕΣΕΙΣ, ΣΥΝΔΥΑΣΜΟΙ ΚΕΦΑΛΑΙΟ ΔΙΑΤΑΞΕΙΣ ΜΕΤΑΘΕΣΕΙΣ ΣΥΝΔΥΑΣΜΟΙ Εισαγωγή. Οι σχηματισμοί που προκύπτουν με την επιλογή ενός συγκεκριμένου αριθμού στοιχείων από το ίδιο σύνολο καλούνται διατάξεις αν μας ενδιαφέρει η σειρά καταγραφή

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

ΒΑΣΙΚΟΙ ΤΥΠΟΙ ΔΕΔΟΜΕΝΩΝ

ΒΑΣΙΚΟΙ ΤΥΠΟΙ ΔΕΔΟΜΕΝΩΝ Η ΓΛΩΣΣΑ PASCAL ΒΑΣΙΚΟΙ ΤΥΠΟΙ ΔΕΔΟΜΕΝΩΝ Απλοί ή στοιχειώδης Τ.Δ. Ακέραιος τύπος Πραγματικός τύπος Λογικός τύπος Χαρακτήρας Σύνθετοι Τ.Δ. Αλφαριθμητικός 1. Ακέραιος (integer) Εύρος: -32768 έως 32767 Δήλωση

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

Δρ. Παναγιώτης Μ. Παπάζογλου Επίκουρος Καθηγητής ΤΕΙ Λαμίας. Διδακτικό βοήθημα γρήγορης μελέτης για τον προγραμματισμό του μικροεπεξεργαστή MIPS 32bit

Δρ. Παναγιώτης Μ. Παπάζογλου Επίκουρος Καθηγητής ΤΕΙ Λαμίας. Διδακτικό βοήθημα γρήγορης μελέτης για τον προγραμματισμό του μικροεπεξεργαστή MIPS 32bit Δρ. Παναγιώτης Μ. Παπάζογλου Επίκουρος Καθηγητής ΤΕΙ Λαμίας Διδακτικό βοήθημα γρήγορης μελέτης για τον προγραμματισμό του μικροεπεξεργαστή MIPS 32bit Το υλικό του οδηγού έχει αντικατασταθεί από το βιβλίο

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

Διάλεξη 6: Δείκτες και Πίνακες

Διάλεξη 6: Δείκτες και Πίνακες Τμήμα Πληροφορικής Πανεπιστήμιο Κύπρου ΕΠΛ132 Αρχές Προγραμματισμού II Διάλεξη 6: Δείκτες και Πίνακες (Κεφάλαιο 12, KNK-2ED) Δημήτρης Ζεϊναλιπούρ http://www.cs.ucy.ac.cy/courses/epl132 6-1 Περιεχόμενο

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

Projects στο Εργαστήριο Αρχιτεκτονικής Υπολογιστών Version 2 Ισχύει από Φεβρουάριο 2009

Projects στο Εργαστήριο Αρχιτεκτονικής Υπολογιστών Version 2 Ισχύει από Φεβρουάριο 2009 ΤΕΧΝΟΛΟΓΙΚΟ ΕΚΠΑΙ ΕΥΤΙΚΟ Ι ΡΥΜΑ ΣΕΡΡΩΝ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ & ΕΠΙΚΟΙΝΩΝΙΩΝ ΜΑΘΗΜΑ : ΑΡΧΙΤΕΚΤΟΝΙΚΗ ΥΠΟΛΟΓΙΣΤΩΝ 4 ο ΕΞΑΜΗΝΟ Projects στο Εργαστήριο Αρχιτεκτονικής Υπολογιστών Version 2 Ισχύει από Φεβρουάριο

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

Διάλεξη 20: Χαμηλού Επιπέδου Προγραμματισμός II

Διάλεξη 20: Χαμηλού Επιπέδου Προγραμματισμός II Τμήμα Πληροφορικής Πανεπιστήμιο Κύπρου ΕΠΛ132 Αρχές Προγραμματισμού II Διάλεξη 20: Χαμηλού Επιπέδου Προγραμματισμός II (Κεφάλαια 25.2, KNK-2ED) Δημήτρης Ζεϊναλιπούρ http://www.cs.ucy.ac.cy/courses/epl132

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

2.3. Ασκήσεις σχ. βιβλίου σελίδας 100 104 Α ΟΜΑ ΑΣ

2.3. Ασκήσεις σχ. βιβλίου σελίδας 100 104 Α ΟΜΑ ΑΣ .3 Ασκήσεις σχ. βιβλίου σελίδας 00 04 Α ΟΜΑ ΑΣ. Έξι διαδοχικοί άρτιοι αριθµοί έχουν µέση τιµή. Να βρείτε τους αριθµούς και τη διάµεσό τους. Αν είναι ο ποιο µικρός άρτιος τότε οι ζητούµενοι αριθµοί θα είναι

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

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

ΠΛΗΡΟΦΟΡΙΚΗ Ι JAVA Τμήμα θεωρίας με Α.Μ. σε 3, 7, 8 & 9 22/11/07 Ακαδ έτος 2007-2008 ΠΛΗΡΟΦΟΡΙΚΗ Ι Φερεντίνος 22/11/07 ΠΛΗΡΟΦΟΡΙΚΗ Ι JAVA Τμήμα θεωρίας με ΑΜ σε 3, 7, 8 & 9 22/11/07 Παράδειγμα με if/else if και user input: import javautil*; public class Grades public

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

ΘΕΜΑ Α ΑΡΧΗ 1ΗΣ ΣΕΛΙΔΑΣ

ΘΕΜΑ Α ΑΡΧΗ 1ΗΣ ΣΕΛΙΔΑΣ 1ΗΣ ΣΕΛΙΔΑΣ ΘΕΜΑ Α ΑΝΑΚΕΦΑΛΑΙΩΤΙΚΟ ΔΙΑΓΩΝΙΣΜΑ Γ' ΤΑΞΗΣ ΗΜΕΡΗΣΙΟΥ ΓΕΝΙΚΟΥ ΛΥΚΕΙΟΥ ΠΕΜΠΤΗ 26 ΑΠΡΙΛΙΟΥ 2012 ΕΞΕΤΑΖΟΜΕΝΟ ΜΑΘΗΜΑ: ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ ΤΕΧΝΟΛΟΓΙΚΗΣ ΚΑΤΕΥΘΥΝΣΗΣ (ΚΥΚΛΟΥ

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

ΑΣΚΗΣΗ 1. Structural Programming

ΑΣΚΗΣΗ 1. Structural Programming ΑΣΚΗΣΗ 1 Structural Programming Στην άσκηση αυτή θα υλοποιήσετε σε C ένα απλό πρόγραµµα Βάσης εδοµένων το οποίο θα µπορούσε να χρησιµοποιηθεί από την γραµµατεία ενός πανεπιστηµίου για την αποθήκευση και

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

Το πλήθος των δεικτών και οι µεγαλύτερες τιµές που µπορούν να πάρουν ορίζεται µε µία δηλωτική εντολή που λέγεται Dimension.

Το πλήθος των δεικτών και οι µεγαλύτερες τιµές που µπορούν να πάρουν ορίζεται µε µία δηλωτική εντολή που λέγεται Dimension. Χρήστος Τσαγγάρης ΕΕ ΙΠ Τµήµατος Μαθηµατικών, Πανεπιστηµίου Αιγαίου Κεφάλαιο 6ο: Πίνακες Στο κεφάλαιο αυτό θα ασχοληθούµε µε µια από πιο ενδιαφέρουσες δοµές δεδοµένων, τους πίνακες. Οι πίνακες είναι σύνθετες

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

ΠΡΟΓΡΜΜΑΤΑ ΣΕ C. Γράψτε σε γλώσσα προγραμματισμού C τη συνάρτηση:

ΠΡΟΓΡΜΜΑΤΑ ΣΕ C. Γράψτε σε γλώσσα προγραμματισμού C τη συνάρτηση: ΠΡΟΓΡΜΜΑΤΑ ΣΕ C Γράψτε σε γλώσσα προγραμματισμού C τη συνάρτηση: int b_to_d(int dyad[16]) που δέχεται ως είσοδο έναν θετικό ακέραιο δυαδικό αριθμό με τη μορφή πίνακα δυαδικών ψηφίων και επιστρέφει τον

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

ΕΡΓΑΣΤΗΡΙΟ 3: Προγραμματιστικά Περιβάλλοντα και το Πρώτο Πρόγραμμα C

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

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

Γραµµικη Αλγεβρα Ι Επιλυση Επιλεγµενων Ασκησεων Φυλλαδιου 3

Γραµµικη Αλγεβρα Ι Επιλυση Επιλεγµενων Ασκησεων Φυλλαδιου 3 Γραµµικη Αλγεβρα Ι Επιλυση Επιλεγµενων Ασκησεων Φυλλαδιου ιδασκοντες: Ν Μαρµαρίδης - Α Μπεληγιάννης Βοηθος Ασκησεων: Χ Ψαρουδάκης Ιστοσελιδα Μαθηµατος : http://wwwmathuoigr/ abeligia/linearalgebrai/laihtml

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

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

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

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

ΚΕΦΑΛΑΙΟ 1ο 3ο. ΚΕΦΑΛΑΙΟ 5ο 6ο. ΚΕΦΑΛΑΙΟ 7ο. Δομημένος Προγραμματισμός - Γενικές Ασκήσεις Επανάληψης

ΚΕΦΑΛΑΙΟ 1ο 3ο. ΚΕΦΑΛΑΙΟ 5ο 6ο. ΚΕΦΑΛΑΙΟ 7ο. Δομημένος Προγραμματισμός - Γενικές Ασκήσεις Επανάληψης ΚΕΦΑΛΑΙΟ 1ο 3ο 1. Συμπληρώστε τα κενά με τη λέξη που λείπει. α. Ένα πρόβλημα το χωρίζουμε σε άλλα απλούστερα, όταν είναι ή όταν έχει τρόπο επίλυσης. β. Η επίλυση ενός προβλήματος προϋποθέτει την του. γ.

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

Δυαδικό Σύστημα Αρίθμησης

Δυαδικό Σύστημα Αρίθμησης Δυαδικό Σύστημα Αρίθμησης Το δυαδικό σύστημα αρίθμησης χρησιμοποιεί δύο ψηφία. Το 0 και το 1. Τα ψηφία ενός αριθμού στο δυαδικό σύστημα αρίθμησης αντιστοιχίζονται σε δυνάμεις του 2. Μονάδες, δυάδες, τετράδες,

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

ΒΑΣΙΚΕΣ ΕΝΤΟΛΕΣ. Mε την εντολή αυτή μπορούμε να δημιουργήσουμε έναν καινούριον υποκατάλογο.

ΒΑΣΙΚΕΣ ΕΝΤΟΛΕΣ. Mε την εντολή αυτή μπορούμε να δημιουργήσουμε έναν καινούριον υποκατάλογο. ΟΙ ΕΝΤΟΛΕΣ ΣΤΟ MS DOS ΒΑΣΙΚΕΣ ΕΝΤΟΛΕΣ ΕΝΤΟΛΗ md Mε την εντολή αυτή μπορούμε να δημιουργήσουμε έναν καινούριον υποκατάλογο. Η σύνταξη της εντολής είναι ως εξής: md π.χ. md class1 md

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

Αναδρομή. Τι γνωρίζετε για τη δυνατότητα «κλήσης» αλγορίθμων; Τι νόημα έχει;

Αναδρομή. Τι γνωρίζετε για τη δυνατότητα «κλήσης» αλγορίθμων; Τι νόημα έχει; ΜΑΘΗΜΑ 7 Κλήση αλγορίθμου από αλγόριθμο Αναδρομή Σ χ ο λ ι κ ο Β ι β λ ι ο ΥΠΟΚΕΦΑΛΑΙΟ 2.2.7: ΕΝΤΟΛΕΣ ΚΑΙ ΔΟΜΕΣ ΑΛΓΟΡΙΘΜΟΥ ΠΑΡΑΓΡΑΦΟI 2.2.7.5: Κλήση αλγορίθμου από αλγόριθμο 2.2.7.6: Αναδρομή εισαγωγη

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

10 Α2. 5 Α3. (ΟΧΙ = 20-4*2^2)) H (X>Ψ ΚΑΙ X > Ψ

10 Α2. 5 Α3. (ΟΧΙ = 20-4*2^2)) H (X>Ψ ΚΑΙ X > Ψ Α Π Α Ν Τ Η Σ Ε Ι Σ Θ Ε Μ Α Τ Ω Ν Π Α Ν Ε Λ Λ Α Δ Ι Κ Ω Ν Ε Ξ Ε Τ Α Σ Ε Ω Ν 2 0 1 4 Α Ν Α Π Τ Υ Ξ Η Ε Φ Α Ρ Μ Ο Γ Ω Ν Σ Ε Π Ρ Ο Γ Ρ Α Μ Μ Α Τ Ι Σ Τ Ι Κ Ο Π Ε Ρ Ι Β Α Λ Λ Ο Ν Τ Ε Χ Ν Ο Λ Ο Γ Ι Κ Η Σ Κ Α

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

Πρόσθεση, αφαίρεση και πολλαπλασιασμός φυσικών αριθμών

Πρόσθεση, αφαίρεση και πολλαπλασιασμός φυσικών αριθμών Πρόσθεση, αφαίρεση και πολλαπλασιασμός φυσικών αριθμών TINΑ ΒΡΕΝΤΖΟΥ www.ma8eno.gr www.ma8eno.gr Σελίδα 1 Πρόσθεση, αφαίρεση και πολλαπλασιασμός φυσικών αριθμών Στους πραγματικούς αριθμούς ορίστηκαν οι

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

3 Αλληλεπίδραση Αντικειμένων

3 Αλληλεπίδραση Αντικειμένων Αφαίρεση και Αρθρωσιμότητα 3 Αλληλεπίδραση Αντικειμένων Πώς συνεργάζονται τα αντικείμενα που δημιουργούμε Αφαίρεση (abstraction) είναι η δυνατότητα να αγνοούμε τις λεπτομέρειες και να εστιάζουμε την προσοχή

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

3. Σηµειώσεις Access. # Εισαγωγή ψηφίου ή κενού διαστήµατος. Επιτρέπονται τα ση-

3. Σηµειώσεις Access. # Εισαγωγή ψηφίου ή κενού διαστήµατος. Επιτρέπονται τα ση- Μάθηµα 3 Προχωρηµένες ιδιότητες πεδίων Μάσκες εισαγωγής Οι ιδιότητες Μορφή και Μάσκα εισαγωγής περιγράφονται µαζί γιατί έχουν κοινά χαρακτηριστικά που αφορούν την εµφάνιση. Με την ιδιότητα Μορφή καθορίζουµε

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

Αντικείμενα (Objects) στην Java. Αντικείμενα στη Java. Δημιουργία Αντικειμένων. Δηλώσεις Μεταβλητών (2) Ο τελεστής new (1)

Αντικείμενα (Objects) στην Java. Αντικείμενα στη Java. Δημιουργία Αντικειμένων. Δηλώσεις Μεταβλητών (2) Ο τελεστής new (1) Αντικείμενα (Objects) στην Java Αντικείμενα στη Java Παύλος Εφραιμίδης Ένα πρόγραμμα Java κατά την εκτέλεσή του δημιουργεί αντικείμενα τα αντικείμενα αλληλεπιδρούν, στέλνοντας μηνύματα το ένα στο άλλο

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

ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ Η/Υ. Εισαγωγή στην FORTRAN. Δρ. Ιωάννης Λυχναρόπουλος 2014-2015

ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ Η/Υ. Εισαγωγή στην FORTRAN. Δρ. Ιωάννης Λυχναρόπουλος 2014-2015 ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ Η/Υ Εισαγωγή στην FORTRAN Δρ. Ιωάννης Λυχναρόπουλος 2014-2015 Fortran FORmula TRANslation: (Μία από τις πρώτες γλώσσες τρίτης γενιάς) Εκδόσεις FORTRAN (1957) FORTRAN II (1958) FORTRAN III

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

Σενάριο 17: Παιχνίδι μνήμης με εικόνες

Σενάριο 17: Παιχνίδι μνήμης με εικόνες Σενάριο 17: Παιχνίδι μνήμης με εικόνες Φύλλο Εργασίας Τίτλος: Παιχνίδι μνήμης με εικόνες Γνωστικό Αντικείμενο: Εφαρμογές Πληροφορικής-Υπολογιστών Διδακτική Ενότητα: Διερευνώ - Δημιουργώ Ανακαλύπτω, Συνθετικές

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

5.1 Θεωρητική εισαγωγή

5.1 Θεωρητική εισαγωγή ΨΗΦΙΑΚΑ ΚΥΚΛΩΜΑΤΑ - ΕΡΓΑΣΤΗΡΙΑΚΗ ΑΣΚΗΣΗ 5 ΚΩ ΙΚΟΠΟΙΗΣΗ BCD Σκοπός: Η κατανόηση της µετατροπής ενός τύπου δυαδικής πληροφορίας σε άλλον (κωδικοποίηση/αποκωδικοποίηση) µε τη µελέτη της κωδικοποίησης BCD

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

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

ΠΑΝΕΠΙΣΤΗΜΙΟ ΜΑΚΕΔΟΝΙΑΣ ΟΙΚΟΝΟΜΙΚΩΝ ΚΑΙ ΚΟΙΝΩΝΙΚΩΝ ΕΠΙΣΤΗΜΩΝ ΤΜΗΜΑ ΕΦΑΡΜΟΣΜΕΝΗΣ ΠΛΗΡΟΦΟΡΙΚΗΣ ΘΕΩΡΙΑ ΥΠΟΛΟΓΙΣΜΩΝ ΚΑΙ ΑΥΤΟΜΑΤΩΝ ΠΑΝΕΠΙΣΤΗΜΙΟ ΜΑΚΕΔΟΝΙΑΣ ΟΙΚΟΝΟΜΙΚΩΝ ΚΑΙ ΚΟΙΝΩΝΙΚΩΝ ΕΠΙΣΤΗΜΩΝ ΤΜΗΜΑ ΕΦΑΡΜΟΣΜΕΝΗΣ ΠΛΗΡΟΦΟΡΙΚΗΣ ΘΕΩΡΙΑ ΥΠΟΛΟΓΙΣΜΩΝ ΚΑΙ ΑΥΤΟΜΑΤΩΝ Τελικές εξετάσεις 3 Ιανουαρίου 27 Διάρκεια εξέτασης: 3 ώρες (2:-5:) ΘΕΜΑ ο

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

ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ Κεφάλαιο 2 ο Αν χ και y μεταβλητές με τιμές 5 και 10 αντίστοιχα να εξηγηθούν οι ακόλουθες εντολές εξόδου.

ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ Κεφάλαιο 2 ο Αν χ και y μεταβλητές με τιμές 5 και 10 αντίστοιχα να εξηγηθούν οι ακόλουθες εντολές εξόδου. 2.1 Αν χ και y μεταβλητές με τιμές 5 και 10 αντίστοιχα να εξηγηθούν οι ακόλουθες εντολές εξόδου. 1) Η τιμή του χ είναι,χ Ητιμή του χ είναι 5 Ηεντολή εμφανίζει ότι υπάρχει στα διπλά εισαγωγικά ως έχει.

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

10. Με πόσους και ποιους τρόπους μπορεί να αναπαρασταθεί ένα πρόβλημα; 11. Περιγράψτε τα τρία στάδια αντιμετώπισης ενός προβλήματος.

10. Με πόσους και ποιους τρόπους μπορεί να αναπαρασταθεί ένα πρόβλημα; 11. Περιγράψτε τα τρία στάδια αντιμετώπισης ενός προβλήματος. 1. Δώστε τον ορισμό του προβλήματος. 2. Σι εννοούμε με τον όρο επίλυση ενός προβλήματος; 3. Σο πρόβλημα του 2000. 4. Σι εννοούμε με τον όρο κατανόηση προβλήματος; 5. Σι ονομάζουμε χώρο προβλήματος; 6.

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

µηδενικό πολυώνυµο; Τι ονοµάζουµε βαθµό του πολυωνύµου; Πότε δύο πολυώνυµα είναι ίσα;

µηδενικό πολυώνυµο; Τι ονοµάζουµε βαθµό του πολυωνύµου; Πότε δύο πολυώνυµα είναι ίσα; ΘΕΩΡΙΑ ΠΟΛΥΩΝΥΜΩΝ 1. Τι ονοµάζουµε µονώνυµο Μονώνυµο ονοµάζεται κάθε γινόµενο το οποίο αποτελείται από γνωστούς και αγνώστους (µεταβλητές ) πραγµατικούς αριθµούς. Ο γνωστός πραγµατικός αριθµός ονοµάζεται

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

ΤΑΞΙΝΟΜΗΣΗ ΑΠΟΤΕΛΕΣΜΑΤΩΝ ΕΡΩΤΗΜΑΤΟΣ

ΤΑΞΙΝΟΜΗΣΗ ΑΠΟΤΕΛΕΣΜΑΤΩΝ ΕΡΩΤΗΜΑΤΟΣ ΤΑΞΙΝΟΜΗΣΗ ΑΠΟΤΕΛΕΣΜΑΤΩΝ ΕΡΩΤΗΜΑΤΟΣ Η συνθήκη WHERE βάζει περιορισμούς στις εγγραφές που επιστρέφονται. Ο όρος ORDER BY ταξινομεί τις εγγραφές που επιστρέφονται. Παράδειγμα: SELECT * FROM table_name ORDER

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

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

Εισαγωγή στον Προγραμματισμό Εισαγωγή στον Προγραμματισμό Εισαγωγή Δημήτρης Μιχαήλ Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο Ακ. Έτος 2012-2013 Βιβλιογραφία "C Προγραμματισμός", Deitel & Deitel, Πέμπτη Έκδοση, Εκδόσεις

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

2 Ορισμός Κλάσεων. Παράδειγμα: Μηχανή για Εισιτήρια. Δομή μιας Κλάσης. Ο Σκελετός της Κλάσης για τη Μηχανή. Ορισμός Πεδίων 4/3/2008

2 Ορισμός Κλάσεων. Παράδειγμα: Μηχανή για Εισιτήρια. Δομή μιας Κλάσης. Ο Σκελετός της Κλάσης για τη Μηχανή. Ορισμός Πεδίων 4/3/2008 Παράδειγμα: Μηχανή για Εισιτήρια 2 Ορισμός Κλάσεων Σύνταξη κλάσης: πεδία, κατασκευαστές, μέθοδοι Ένας αυτόματος εκδότης εισιτηρίων είναι μια μηχανή που δέχεται χρήματα και εκδίδει ένα εισιτήριο. Εκδίδει

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

Αρχές Γλωσσών Προγραμματισμού και Μεταφραστών: Εργαστηριακή Άσκηση 2012-2013

Αρχές Γλωσσών Προγραμματισμού και Μεταφραστών: Εργαστηριακή Άσκηση 2012-2013 Αρχές Γλωσσών Προγραμματισμού και Μεταφραστών: Εργαστηριακή Άσκηση 2012-2013 27 Μαρτίου 2013 Περίληψη Σκοπός της παρούσας εργασίας είναι η εξοικείωσή σας με τις θεμελιώδεις θεωρητικές και πρακτικές πτυχές

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

Φυσικοί αριθμοί - Διάταξη φυσικών αριθμών - Στρογγυλοποίηση

Φυσικοί αριθμοί - Διάταξη φυσικών αριθμών - Στρογγυλοποίηση Φυσικοί αριθμοί - Διάταξη φυσικών αριθμών - Στρογγυλοποίηση TINΑ ΒΡΕΝΤΖΟΥ www.ma8eno.gr Βρέντζου Τίνα Φυσικός Μεταπτυχιακός τίτλος: «Σπουδές στην εκπαίδευση» ΜEd Email : stvrentzou@gmail.com 2 Φυσικοί

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

Pascal Βασικοί τύποι δεδοµένων

Pascal Βασικοί τύποι δεδοµένων Pasal Βασικοί τύποι δεδοµένων «ΜΗ ΕΝ ΠΟΛΛΟΙΣ ΟΛΙΓΑ ΛΕΓΕ, ΑΛΛ ΕΝ ΟΛΙΓΟΙΣ ΠΟΛΛΑ» Σηµαίνει: "Μη λες πολλά χωρίς ουσία, αλλά λίγα που να αξίζουν πολλά" (Πυθαγόρας) Κουλλάς Χρίστος www.oullas.om oullas 2 Στόχοι

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

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

ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ ΔΙΑΓΩΝΙΣΜΑ ΠΡΟΣΟΜΟΙΩΣΗΣ Γ ΛΥΚΕΙΟΥ - 02/05/2014 ΘΕΜΑ Α Α1. Έστω ο παρακάτω αλγόριθμος ταξινόμησης: Για κ από.. μέχρι 19 Για λ από 19 μέχρι κ με_βήμα -1

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

ΑΡΧΗ 1ΗΣ ΣΕΛΙ ΑΣ Γ ΗΜΕΡΗΣΙΩΝ

ΑΡΧΗ 1ΗΣ ΣΕΛΙ ΑΣ Γ ΗΜΕΡΗΣΙΩΝ ΑΡΧΗ 1ΗΣ ΣΕΛΙ ΑΣ Γ ΗΜΕΡΗΣΙΩΝ ΠΑΝΕΛΛΑΔΙΚΕΣ ΕΞΕΤΑΣΕΙΣ Γ ΤΑΞΗΣ ΗΜΕΡΗΣΙΟΥ ΓΕΝΙΚΟΥ ΛΥΚΕΙΟΥ ΠΑΡΑΣΚΕΥΗ 6 ΙΟΥΝΙΟΥ 2014 ΕΞΕΤΑΖΟΜΕΝΟ ΜΑΘΗΜΑ: ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ ΤΕΧΝΟΛΟΓΙΚΗΣ ΚΑΤΕΥΘΥΝΣΗΣ

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

1ο. Η αριθµητική του υπολογιστή

1ο. Η αριθµητική του υπολογιστή 1ο. Η αριθµητική του υπολογιστή 1.1 Τί είναι Αριθµητική Ανάλυση Υπάρχουν πολλά προβλήµατα στη µαθηµατική επιστήµη για τα οποία δεν υπάρχουν αναλυτικές εκφράσεις λύσεων. Στις περιπτώσεις αυτές έχουν αναπτυχθεί

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

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

ΚΡΥΠΤΟΓΡΑΦΙΑ ΚΑΙ ΑΣΦΑΛΕΙΑ ΥΠΟΛΟΓΙΣΤΩΝ ΚΡΥΠΤΟΓΡΑΦΙΑ ΚΑΙ ΑΣΦΑΛΕΙΑ ΥΠΟΛΟΓΙΣΤΩΝ Δ Εξάμηνο Συναρτήσεις Κατακερματισμού και Πιστοποίηση Μηνύματος Διδάσκων : Δρ. Παρασκευάς Κίτσος Επίκουρος Καθηγητής e-mail: pkitsos@teimes.gr, pkitsos@ieee.org Αντίρριο

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

Αρχιτεκτονική Υπολογιστών Ασκήσεις Εργαστηρίου

Αρχιτεκτονική Υπολογιστών Ασκήσεις Εργαστηρίου Αρχιτεκτονική Υπολογιστών Ασκήσεις Εργαστηρίου Ενότητα: ΕΡΓΑΣΤΗΡΙΑΚΗ ΑΣΚΗΣΗ No 05 Δρ. Μηνάς Δασυγένης mdasyg@ieee.org Τμήμα Μηχανικών Πληροφορικής και Τηλεπικοινωνιών Εργαστήριο Ψηφιακών Συστημάτων και

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

Visual Basic Βασικές Έννοιες

Visual Basic Βασικές Έννοιες Visual Basi Βασικές Έννοιες «Είδα στον ύπνο µου ότι η ζωή είναι χαρά. Ξύπνησα και είδα ότι είναι χρέος. Αγωνίστηκα και είδα ότι τo χρέος είναι χαρά.» Ραµπριτανάθ Ταγκόρ Κουλλάς Χρίστος www.oullas.om oullas

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

Πώς μπορούμε να δημιουργούμε γεωμετρικά σχέδια με τη Logo;

Πώς μπορούμε να δημιουργούμε γεωμετρικά σχέδια με τη Logo; Κεφάλαιο 2 Εισαγωγή Πώς μπορούμε να δημιουργούμε γεωμετρικά σχέδια με τη Logo; Η Logo είναι μία από τις πολλές γλώσσες προγραμματισμού. Κάθε γλώσσα προγραμματισμού έχει σκοπό τη δημιουργία προγραμμάτων

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

ΙΑΝΥΣΜΑΤΑ ΘΕΩΡΙΑ ΘΕΜΑΤΑ ΘΕΩΡΙΑΣ. Τι ονοµάζουµε διάνυσµα; αλφάβητου επιγραµµισµένα µε βέλος. για παράδειγµα, Τι ονοµάζουµε µέτρο διανύσµατος;

ΙΑΝΥΣΜΑΤΑ ΘΕΩΡΙΑ ΘΕΜΑΤΑ ΘΕΩΡΙΑΣ. Τι ονοµάζουµε διάνυσµα; αλφάβητου επιγραµµισµένα µε βέλος. για παράδειγµα, Τι ονοµάζουµε µέτρο διανύσµατος; ΙΝΥΣΜΤ ΘΕΩΡΙ ΘΕΜΤ ΘΕΩΡΙΣ Τι ονοµάζουµε διάνυσµα; AB A (αρχή) B (πέρας) Στη Γεωµετρία το διάνυσµα ορίζεται ως ένα προσανατολισµένο ευθύγραµµο τµήµα, δηλαδή ως ένα ευθύγραµµο τµήµα του οποίου τα άκρα θεωρούνται

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

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

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

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

Γ' ΛΥΚΕΙΟΥ ΤΕΧΝΟΛΟΓΙΚΗ ΚΑΤΕΥΘΥΝΣΗ ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ. Óõíåéñìüò ΕΚΦΩΝΗΣΕΙΣ

Γ' ΛΥΚΕΙΟΥ ΤΕΧΝΟΛΟΓΙΚΗ ΚΑΤΕΥΘΥΝΣΗ ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ. Óõíåéñìüò ΕΚΦΩΝΗΣΕΙΣ 1 ΘΕΜΑ 1 o Γ' ΛΥΚΕΙΟΥ ΤΕΧΝΟΛΟΓΙΚΗ ΚΑΤΕΥΘΥΝΣΗ ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ ΕΚΦΩΝΗΣΕΙΣ Α. Να γράψετε στην κόλλα σας τον αριθµό καθεµιάς από τις παρακάτω προτάσεις 1 5 και δίπλα τη λέξη

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

ΚΕΦΑΛΑΙΟ 3ο ΤΥΧΑΙΟΙ ΑΡΙΘΜΟΙ ΕΛΕΓΧΟΣ ΤΥΧΑΙΟΤΗΤΑΣ

ΚΕΦΑΛΑΙΟ 3ο ΤΥΧΑΙΟΙ ΑΡΙΘΜΟΙ ΕΛΕΓΧΟΣ ΤΥΧΑΙΟΤΗΤΑΣ ΚΕΦΑΛΑΙΟ 3ο ΤΥΧΑΙΟΙ ΑΡΙΘΜΟΙ ΕΛΕΓΧΟΣ ΤΥΧΑΙΟΤΗΤΑΣ 3.1 Τυχαίοι αριθμοί Στην προσομοίωση διακριτών γεγονότων γίνεται χρήση ακολουθίας τυχαίων αριθμών στις περιπτώσεις που απαιτείται η δημιουργία στοχαστικών

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

Τεχνικός Εφαρμογών Πληροφορικής

Τεχνικός Εφαρμογών Πληροφορικής Τεχνικός Εφαρμογών Πληροφορικής ΓΛΩΣΣΑ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ ΠΙΝΑΚΕΣ Εξάμηνο: 2014Β Διδάσκουσα: Ηλεκτρονική Τάξη: Κανελλοπούλου Χριστίνα_ΠΕ19 Πληροφορικής Περιεχόμενα Πίνακες Τι είναι πίνακας; Οι πίνακες χρησιμοποιούνται

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

Γραµµική Άλγεβρα. Εισαγωγικά. Μέθοδος Απαλοιφής του Gauss

Γραµµική Άλγεβρα. Εισαγωγικά. Μέθοδος Απαλοιφής του Gauss Γραµµική Άλγεβρα Εισαγωγικά Υπάρχουν δύο βασικά αριθµητικά προβλήµατα στη Γραµµική Άλγεβρα. Το πρώτο είναι η λύση γραµµικών συστηµάτων Aλγεβρικών εξισώσεων και το δεύτερο είναι η εύρεση των ιδιοτιµών και

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

Φροντιστήρια Επίγνωση Προτεινόμενα Θέματα Πανελλαδικών ΑΕΠΠ 2015

Φροντιστήρια Επίγνωση Προτεινόμενα Θέματα Πανελλαδικών ΑΕΠΠ 2015 Φροντιστήρια Επίγνωση Προτεινόμενα Θέματα Πανελλαδικών ΑΕΠΠ 2015 Βάλβης Δημήτριος Μηχανικός Πληροφορικής ΘΕΜΑ Α Α1. Να γράψετε στο τετράδιό σας τον αριθμό καθεμιάς από τις παρακάτω προτάσεις 1-5 και δίπλα

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

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

ΠΑΝΕΠΙΣΤΗΜΙΟ ΙΩΑΝΝΙΝΩΝ ΤΜΗΜΑ ΜΑΘΗΜΑΤΙΚΩΝ ΠΑΝΕΠΙΣΤΗΜΙΟ ΙΩΑΝΝΙΝΩΝ ΤΜΗΜΑ ΜΑΘΗΜΑΤΙΚΩΝ ΕΡΓΑΣΤΗΡΙΟ ΒΑΣΕΩΝ Ε ΟΜΕΝΩΝ ΜΕΡΟΣ ΠΕΜΠΤΟ Triggers, Stored procedures Γιώργος Μαρκοµανώλης Περιεχόµενα Triggers-Ενηµέρωση δεδοµένων άλλων πινάκων... 1 Ασφάλεια...

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

public void printstatement() { System.out.println("Employee: " + name + " with salary: " + salary);

public void printstatement() { System.out.println(Employee:  + name +  with salary:  + salary); Κληρονομικότητα Η κληρονομικότητα (inheritance) αποτελεί έναν από τους χαρακτηριστικότερους μηχανισμούς των αντικειμενοστρεφών γλωσσών προγραμματισμού. Επιτρέπει την δημιουργία μιας νέας κλάσης απορροφώντας

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

ΑΝΑΛΥΤΙΚΟ ΠΡΟΓΡΑΜΜΑ ΚΑΙ ΕΞΕΤΑΣΤΕΑ ΥΛΗ. ΔΟΜΗΜΕΝΟΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ Με τις Γλώσσες Προγραμματισμού Pascal, C, C++, Java

ΑΝΑΛΥΤΙΚΟ ΠΡΟΓΡΑΜΜΑ ΚΑΙ ΕΞΕΤΑΣΤΕΑ ΥΛΗ. ΔΟΜΗΜΕΝΟΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ Με τις Γλώσσες Προγραμματισμού Pascal, C, C++, Java ΑΝΑΛΥΤΙΚΟ ΠΡΟΓΡΑΜΜΑ ΚΑΙ ΕΞΕΤΑΣΤΕΑ ΥΛΗ ΔΟΜΗΜΕΝΟΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ Με τις Γλώσσες Προγραμματισμού Pascal, C, C++, Java 1 ο & 2 o ΕΠΙΠΕΔΟ Αναλυτικό Πρόγραμμα Εξετάσεων Σελίδα: 1/20 Απρίλιος 2011 Γλωσσών Προγραμματισμού

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

Η Γλώσσα Προγραµµατισµού C++ (The C++ Programming Language) Ιστοσελίδα του µαθήµατος. Περιεχόµενα. ηµήτριος Κατσαρός, Ph.D. Κλάσεις.

Η Γλώσσα Προγραµµατισµού C++ (The C++ Programming Language) Ιστοσελίδα του µαθήµατος. Περιεχόµενα. ηµήτριος Κατσαρός, Ph.D. Κλάσεις. 1 Η Γλώσσα Προγραµµατισµού C++ (The C++ Programming Language) ηµήτριος Κατσαρός, Ph.D. Χειµώνας 2005 ιάλεξη 5η Ιστοσελίδα του µαθήµατος 2 http://skyblue.csd.auth.gr/~dimitris/courses/cpp_fall05.htm Θα

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