Περιεχόμενα. vii. Πρόλογος... xv. Κεφάλαιο 1: Εισαγωγή Κεφάλαιο 2: Οι τύποι ακεραίων και η αριθμητική των τιμών τους... 19

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

Download "Περιεχόμενα. vii. Πρόλογος... xv. Κεφάλαιο 1: Εισαγωγή... 1. Κεφάλαιο 2: Οι τύποι ακεραίων και η αριθμητική των τιμών τους... 19"

Transcript

1

2

3 Περιεχόμενα Πρόλογος... xv Κεφάλαιο 1: Εισαγωγή Οργάνωση υπολογιστών Αλγόριθμοι... 3 Ασκήσεις 1.1.* Προγράμματα Μεταγλώττιση και εκτέλεση προγραμμάτων Java Ασκήσεις Δεδομένα Παραστάσεις εκχώρησης, τοπικές και τελικές μεταβλητές Προγράμματα Απαντήσεις Κεφάλαιο 2: Οι τύποι ακεραίων και η αριθμητική των τιμών τους Οι τύποι ακεραίων byte, short, int και long Παραστάσεις ακέραιων τύπων Αριθμητικοί τελεστές Τελεστές διαχείρισης και μετατόπισης δυφίων Καλούπωμα τύπων Σταθερές παραστάσεις και μεταβλητές Αποτίμηση παραστάσεων Ασκήσεις Είσοδος και έξοδος τιμών ακέραιων τύπων Έξοδος τιμών ακέραιων τύπων Είσοδος τιμών τύπου int Ασκήσεις Σφάλματα Προγραμματισμού Συντακτικά σφάλματα Σημασιολογικά σφάλματα vii

4 viii Προγραμματισμός με Java Προγράμματα Απαντήσεις Απαντήσεις Κεφάλαιο 3: Ο τύπος boolean και οι βασικές δομές ελέγχου Συγκρίσεις Παραστάσεις τύπου boolean Είσοδος και έξοδος τιμών τύπου boolean Έξοδος τιμών τύπου boolean Είσοδος τιμών τύπου boolean Χρήσιμοι νόμοι της άλγεβρας του Boole Ασκήσεις H εντολή while Ασκήσεις H εντολή if Ασκήσεις Προγράμματα Απαντήσεις Απαντήσεις Απαντήσεις Κεφάλαιο 4: Ο τύπος char και η δομημένη ανάπτυξη προγραμμάτων Αναπαράσταση χαρακτήρων Το πρότυπο Unicode Ο τύπος char Δηλώσεις και παραστάσεις εκχώρησης Συγκρίσεις Είσοδος και έξοδος τιμών τύπου char Έξοδος τιμών τύπου char Είσοδος τιμών τύπου char Εισαγωγή στο δομημένο προγραμματισμό Ασκήσεις Προγράμματα Απαντήσεις Κεφάλαιο 5: Άλλες δομές ελέγχου και αποσφαλμάτωση προγραμμάτων Η εντολή do Η εντολή for Ετικέτες... 88

5 Περιεχόμενα ix 5.4. Η εντολή switch Οι εντολές break και continue Ασκήσεις Εντοπισμός και άρση σφαλμάτων Προγράμματα Απαντήσεις Κεφάλαιο 6: Οι τύποι float και double και τα σφάλματα των τιμών τους Το πρότυπο IEEE Oι τύποι float και double Παραστάσεις τύπων float και double Τελεστές Ειδικές τιμές Η τάξη Math Συμβατότητα εκχώρησης Είσοδος και έξοδος τιμών τύπων float και double Έξοδος τιμών τύπων float και double Είσοδος τιμών τύπων float και double Σφάλματα τιμών κινητής υποδιαστολής Ασκήσεις Προγράμματα Απαντήσεις Κεφάλαιο 7: Μέθοδοι Δηλώσεις μεθόδων Κλήσεις μεθόδων Μεταβίβαση (πέρασμα) ορισμάτων Ασκήσεις Υπερφόρτωση μεθόδων Παραγωγή ψευδοτυχαίων αριθμών Ασκήσεις Αναδρομικές μέθοδοι Ασκήσεις Προγράμματα Απαντήσεις Απαντήσεις Απαντήσεις

6 x Προγραμματισμός με Java Κεφάλαιο 8: Τάξεις και αντικείμενα Τάξεις Πεδία Μέθοδοι Κατασκευαστές Η λέξη-κλειδί this Αντικείμενα Σύγκριση αναφορών Ασκήσεις Αρχικοποιητές Τάξεις περιτυλίγματος Πακέτα Δηλώσεις πακέτων Εισαγωγή πακέτων Ασκήσεις Απαντήσεις Απαντήσεις Κεφάλαιο 9: Πίνακες Μεταβλητές τύπων πινάκων Αντικείμενα πίνακες Επεξεργασία πινάκων Ασκήσεις Η εμπλουτισμένη εντολή for Σύγκριση πινάκων Ασκήσεις Πολυδιάστατοι πίνακες Ασκήσεις Παράμετροι μεταβλητού βαθμού Προγράμματα Απαντήσεις Απαντήσεις Απαντήσεις Κεφάλαιο 10: Συμβολοσειρές Η τάξη String Κατασκευαστές Επισύναψη Σύγκριση Επεξεργασία Ασκήσεις

7 Περιεχόμενα xi Η τάξη StringBuffer Κατασκευαστές Μέθοδοι Η τάξη StringBuilder Ασκήσεις Προγράμματα Απαντήσεις Απαντήσεις Κεφάλαιο 11: Κληρονομικότητα και πολυμορφισμός Κληρονομικότητα Συμβατότητα εκχώρησης Η λέξη-κλειδί super Ακύρωση Απόκρυψη Τελικές μέθοδοι και τάξεις Αφηρημένες μέθοδοι και τάξεις Πολυμορφισμός Η τάξη Object Προγράμματα Κεφάλαιο 12: Διεπαφές, φωλιασμένοι και απαριθμητοί τύποι Φωλιασμένες τάξεις Στατικές φωλιασμένες τάξεις Εσωτερικές τάξεις Τάξεις-μέλη Ανώνυμες τάξεις Τοπικές τάξεις Διεπαφές Κληρονομικότητα διεπαφών Υλοποίηση διεπαφών Συμβατότητα εκχώρησης Η διεπαφή Cloneable Απαριθμητοί τύποι Απαριθμητές σταθερές Αποκομιδή απορριμμάτων Αρχικοποίηση τύπων Ονομασία αρχείων πηγαίου κώδικα

8 xii Προγραμματισμός με Java Κεφάλαιο 13: Εξαιρέσεις Τάξεις εξαιρέσεων Ρίψη εξαιρέσεων Προσδιορισμός και χειρισμός εξαιρέσεων Δήλωση εξαιρέσεων Χειρισμός εξαιρέσεων Αυτόματη διαχείριση πόρων Αλυσιδοποίηση εξαιρέσεων Περισσότερα για τις εξαιρέσεις Κεφάλαιο 14: Είσοδος/Έξοδος Ονόματα διαδρομών Η τάξη File Η διεπαφή Path Διαχείριση αρχείων και ευρετηρίων Συστήματα αρχείων Ρεύματα Ρεύματα δυφιοσυλλαβών Ρεύματα αρχείων Ενταμιευμένα ρεύματα Ρεύματα αντικειμένων Άλλα ρεύματα Ρεύματα χαρακτήρων Ρεύματα αρχείων Ενταμιευμένα ρεύματα Άλλα ρεύματα Μετάβαση από ρεύματα δυφιοσυλλαβών σε ρεύματα χαρακτήρων Ασκήσεις Ενταμιευτές Κανάλια Κωδικοποίηση και αποκωδικοποίηση χαρακτήρων Άλλα εργαλεία Προγράμματα Απαντήσεις Κεφάλαιο 15: Γενικότητες Μεταβλητές τύπων Γενικές τάξεις Γενικές διεπαφές Η διεπαφή Comparable Φράγματα

9 Περιεχόμενα xiii Μπαλαντέρ Συμβατότητα εκχώρησης Γενικές μέθοδοι Γενικοί κατασκευαστές Διαγραφή τύπων Κεφάλαιο 16: Συλλογές Επαναλήπτες Συγκριτές Η διεπαφή Collection Λίστες Η διεπαφή List Η τάξη ArrayList Η τάξη Vector Στοίβες Ουρές Η διεπαφή Queue Η διεπαφή Deque Η τάξη ArrayDeque Ασκήσεις Σύνολα Η διεπαφή Set Η τάξη HashSet Η τάξη LinkedHashSet Απεικονίσεις Η διεπαφή Map Η τάξη HashMap Η τάξη Hashtable Η τάξη LinkedHashMap Ασκήσεις Προγράμματα Απαντήσεις Απαντήσεις Παράρτημα Α Λέξεις-κλειδιά της Java Παράρτημα Β Προτεραιότητα και Προσεταιριστικότητα Τελεστών της Java Παράρτημα Γ Η τάξη Anagnwsthrio

10 xiv Προγραμματισμός με Java Παράρτημα Δ Επικεφαλίδες μεθόδων και κατασκευαστών διαφόρων τάξεων της Java Βιβλιογραφία Ευρετήριο

11 ΚΕΦΑΛΑΙΟ 1 Εισαγωγή Επιτέλους ανακάλυψα ότι όλα τα πράγματα είχαν ονόματα. Μετά άρχισα να διερωτώμαι γιατί είχαν τα ονόματα που είχαν. Όταν τελικά εγκατέλειψα την προσπάθεια αυτή, τότε άρχισα να αναγνωρίζω τον κόσμο και να προσπαθώ να επικοινωνήσω με τους άλλους με τις λέξεις που άκουγα και είχα μάθει απλώς να ξεχωρίζω. jc «Όταν χρησιμοποιώ μια λέξη», είπε ο Humpty Dumpty σε μάλλον χλευαστικό τόνο, «σημαίνει ό,τι εγώ την επιλέγω να σημαίνει τίποτα περισσότερο ή λιγότερο». Lewis Carroll, Μέσα από τον Καθρέφτη Θα τα κάναμε μούσκεμα αν τα κάναμε μαζί. Βλέπεις, είμαστε διαφορετικοί τύποι Οργάνωση υπολογιστών Όλοι οι υπολογιστές από πρώτης ως και τέταρτης γενιάς, εκτός από τους υπερυπολογιστές, αποτελούνται από τέσσερα μέρη: την κύρια μνήμη την Κεντρική Μονάδα Επεξεργασίας (ΚΜΕ) τη βοηθητική μνήμη και τις συσκευές εισόδου/εξόδου. Η κύρια ή εσωτερική ή κεντρική μνήμη (main ή internal ή central memory) χρησιμοποιείται για να αποθηκεύει τα προγράμματα που εκτελεί ο υπολογιστής, καθώς και τα δεδομένα που απαιτούνται και τα αποτελέσματα που παράγονται από την εκτέλεση των προγραμμάτων αυτών. Γι αυτόν το λόγο η κύρια μνήμη είναι γνωστή και ως κύρια αποθήκη (main store ή storage). Επειδή η κύρια μνήμη έχει πεπερασμένη χωρητικότητα και είναι σχετικά ακριβή, χρησιμοποιείται για να αποθηκεύει εντολές και δεδομένα που χρειάζονται άμεσα. Τα υπόλοιπα αποθηκεύονται στη μεγαλύτερη, φτηνότερη και πιο αργή βοηθητική μνήμη ή αποθήκη (βλ. παρακάτω). Η κύρια μνήμη αποτελείται από έναν αριθμό θέσεων ή κελιών, καθένα από τα οποία περιέχει το ίδιο πλήθος δυαδικών ψηφίων (binary digits), γνωστών ως δυφίων (bits). Σε κάθε θέση αντιστοιχεί μια (δυαδική) διεύθυνση, δηλαδή ένας αριθμός μέσω του οποίου ένα πρόγραμμα μπορεί να αναφερθεί στη συγκεκριμένη θέση. Κάθε θέση της μνήμης 1

12 2 Προγραμματισμός με Java είναι ικανή να αποθηκεύσει μια δυφιοσυλλαβή (byte), δηλαδή μια ομάδα οκτώ δυφίων, όπως δείχνει το Σχήμα 1.1. οκτώ δυφία (δυαδική) διεύθυνση (δυαδικά) περιεχόμενα Σχήμα 1.1. Κύρια μνήμη ή αποθήκη. Πρέπει να μπορούμε να διακρίνουμε τη διεύθυνση μιας θέσης της μνήμης από τα περιεχόμενά της. Η Κεντρική Μονάδα Επεξεργασίας, ΚΜΕ (Central Processing Unit, CPU), που είναι γνωστή και ως κεντρικός επεξεργαστής (central processor), ανακαλεί αυτόματα εντολές από την κύρια μνήμη και τις εκτελεί ακολουθιακά. Η ΚΜΕ περιέχει έναν αριθμό καταχωρητών (registers), στους οποίους τοποθετεί τα δεδομένα. Στη συνέχεια μπορεί να εκτελέσει απλές πράξεις σε αυτά, όπως πρόσθεση, αφαίρεση, πολλαπλασιασμό κ.ά. Τα αποτελέσματα των πράξεων καταλήγουν και αυτά στους καταχωρητές. Οι καταχωρητές είναι παρόμοιοι με το συσσωρευτή (accumulator) που διαθέτουν οι υπολογιστές τσέπης. Ο υπολογιστής είναι ένας επεξεργαστής με (κύρια) μνήμη. Οι πληροφορίες μεταδίδονται από τον «εξωτερικό κόσμο» στον υπολογιστή μέσω των συσκευών εισόδου (input devices) και από τον υπολογιστή στον «εξωτερικό κόσμο» μέσω των συσκευών εξόδου. Υπάρχουν πολλές συσκευές εισόδου/εξόδου. Οι πιο συνηθισμένες συσκευές εισόδου είναι το πληκτρολόγιο και το ποντίκι, ενώ οι πιο συνηθισμένες συσκευές εξόδου είναι η οθόνη και ο εκτυπωτής. Τέλος, οι πιο γνωστές συσκευές βοηθητικής αποθήκευσης (backing storage devices) είναι οι σκληροί δίσκοι. Οι μονάδες εισόδου/εξόδου και η βοηθητική μνήμη είναι γνωστές ως περιφερειακές συσκευές ή περιφερειακές μονάδες (peripheral devices ή peripheral units). Τα κυκλώματα και τα μηχανικά τμήματα ενός υπολογιστή αποτελούν το υλισμικό ή υλικό (hardware) του, το οποίο οργανώνεται όπως δείχνει το Σχήμα 1.2. Οι διακεκομμέ-

13 Κεφάλαιο 1: Εισαγωγή 3 νες γραμμές δείχνουν τη φορά των σημάτων ελέγχου (control signals), ενώ οι συνεχόμενες τη ροή των δεδομένων (data flow). Ο όρος σύστημα υπολογιστή (computer system) περιλαμβάνει, εκτός από τον ίδιο τον υπολογιστή, τις περιφερειακές συσκευές του και όλα τα προγράμματα που ελέγχουν τη λειτουργία του και βοηθούν τους χρήστες να επικοινωνούν με αυτόν και να εκτελούν τις εργασίες τους. Τα προγράμματα αυτά αποτελούν το λογισμικό (software) του συστήματος 1. Συσκευές βοηθητικής μνήμης Συσκευές εισόδου Κύρια μνήμη Συσκευές εξόδου ΚΜΕ (CPU) Σχήμα 1.2. Οργάνωση υπολογιστών Αλγόριθμοι Η δουλειά των υπολογιστών είναι να λύνουν προβλήματα ακολουθώντας τις δικές μας εντολές. Οι εντολές αυτές δεν πρέπει σε καμία περίπτωση να είναι διφορούμενες (ambiguous), δηλαδή δεν πρέπει να είναι δυνατό να ερμηνευτούν με περισσότερους από έναν τρόπους. Για παράδειγμα, μια εντολή της μορφής «υπολόγισε το μέσο όρο των βαθμών των φοιτητών», είναι πολύ ασαφής. Πάρα πολλές λεπτομέρειες έχουν παραλειφθεί, για παράδειγμα «ποιων φοιτητών», «σε ποιο ή σε ποια μαθήματα», «πού βρίσκονται οι βαθμοί», «πόσοι είναι οι βαθμοί», «θα ληφθούν υπόψη όσοι φοιτητές έδωσαν λευκή κόλλα» κ.ά. 1 Για περισσότερες πληροφορίες βλ. Κάβουρα Ι. Κ. Οργάνωση Συστημάτων Υπολογιστών (Συστήματα Υπολογιστών, Τόμος Ι), εκδ. Κλειδάριθμος, Έκδοση 7 η, Αθήνα 2007.

14 4 Προγραμματισμός με Java Υπάρχουν πάρα πολλά προβλήματα που φαίνονται δύσκολα ή πολύπλοκα από τη σκοπιά του προγραμματισμού. Η πολυπλοκότητα κάποιων από αυτά (π.χ. κάποιων σύνθετων μαθηματικών προβλημάτων) μπορεί να οφείλεται στην ίδια τη φύση τους, ενώ κάποιων άλλων (π.χ. του παραπάνω προβλήματος υπολογισμού του μέσου όρου των βαθμών των φοιτητών) μπορεί να οφείλεται απλώς στην έλλειψη σαφήνειας κατά την περιγραφή τους. Βασικό ρόλο στην επίλυση των προβλημάτων παίζουν οι αλγόριθμοι. Ο αλγόριθμος (algorithm) 2 είναι μια διατεταγμένη ακολουθία βημάτων που οδηγεί στη λύση ενός προβλήματος. Η σχεδίαση αλγορίθμων είναι μια δημιουργική εργασία και μπορεί να θεωρηθεί μια μορφή τέχνης. Γι αυτό, όπως συμβαίνει και με την τέχνη, υπάρχουν καλοί και κακοί αλγόριθμοι. Τα βασικά χαρακτηριστικά ενός καλού αλγορίθμου είναι: η ακρίβεια (precision): Tα βήματα του αλγορίθμου πρέπει να είναι σαφή και μη διφορούμενα (unambiguous). η γενικότητα (generality): Ο αλγόριθμος πρέπει να μπορεί να εφαρμοστεί σε πολλά και διαφορετικά δεδομένα. η απόδοση (efficiency): Ο αλγόριθμος θα πρέπει να απαιτεί όσο το δυνατόν λιγότερο χώρο και χρόνο για να εκτελεστεί. η ορθότητα (correctness): Ο αλγόριθμος πρέπει όντως να λύνει το πρόβλημα για το οποίο έχει σχεδιαστεί. ο τερματισμός (termination): Ο αλγόριθμος πρέπει να τερματίζεται μετά από την εκτέλεση ενός πεπερασμένου αριθμού βημάτων. Κάθε φορά που θέλουμε να λύσουμε ένα πρόβλημα, είναι βασικό να μπορούμε να ξεχωρίζουμε τις δύο φάσεις που φαίνονται στο Σχήμα 1.3: τη φάση σχεδίασης ενός αλγορίθμου για το συγκεκριμένο πρόβλημα και τη φάση υλοποίησης του αλγορίθμου αυτού σε κάποια γλώσσα προγραμματισμού. Στη φάση σχεδίασης (design phase) του αλγορίθμου επικεντρώνουμε την προσοχή μας στην εύρεση ενός καλού αλγορίθμου για την επίλυση του προβλήματος. Όταν βεβαιωθούμε ότι ο αλγόριθμος που βρήκαμε είναι κατάλληλος για να λύσει το πρόβλημα, τότε μόνο στρέφουμε την προσοχή μας στη φάση υλοποίησης (implementation phase) του αλγορίθμου αυτού σε κάποια γλώσσα προγραμματισμού. Παρόλο που στο βιβλίο αυτό θα χρησιμοποιήσουμε τη γλώσσα Java, η περιγραφή των αλγορίθμων μας θα είναι τέτοια ώστε να μπορούν να υλοποιηθούν εύκολα σε οποιαδήποτε γλώσσα προγραμματισμού. 2 Ο όρος προέρχεται από τη λατινική έκδοση του ονόματος του Πέρση μαθηματικού Al-Khwarizmi που έζησε γύρω στο 825 μ.χ.

15 Κεφάλαιο 1: Εισαγωγή 5 Φάση σχεδίασης του αλγορίθμου Φάση υλοποίησης του αλγορίθμου Πρόβλημα Αλγόριθμος Πρόγραμμα σε κάποια γλώσσα προγραμματισμού Σχήμα 1.3. Φάσεις επίλυσης ενός προβλήματος. Ας δοκιμάσουμε να σχεδιάσουμε έναν αλγόριθμο που να εκτελεί μια γνωστή διαδικασία: την αντικατάσταση μιας καμένης λάμπας. Η βασική λειτουργία μπορεί να διαιρεθεί αρχικά σε δύο βήματα ως εξής: Αφαίρεσε την καμένη λάμπα Βάλε την καινούρια λάμπα Τα βήματα αυτά φαίνεται να λύνουν το πρόβλημα, αλλά ας υποθέσουμε ότι οι οδηγίες μας προορίζονται για ένα οικιακό ρομπότ και ότι αυτές δεν είναι αρκετά απλές για να τις καταλάβει το ρομπότ μας που δεν γνωρίζει πολλές βασικές λεπτομέρειες. Έτσι προχωρούμε στον προσδιορισμό περισσότερων λεπτομερειών για κάθε βήμα. Αν υποθέσουμε ότι η καμένη λάμπα βρίσκεται σε ένα πολύφωτο που είναι κρεμασμένο από το ταβάνι, τότε χρειαζόμαστε μια σκάλα. Αφού τοποθετήσουμε τη σκάλα κάτω από το πολύφωτο, πρέπει να ανεβούμε στη σκάλα και να γυρίσουμε τη λάμπα (καλός αλγόριθμος) ή να γυρίσουμε τη σκάλα (κακός αλγόριθμος) με αντιωρολογιακή φορά. Έτσι το πρώτο από τα αρχικά βήματα (Αφαίρεσε την καμένη λάμπα) αναλύεται στα εξής βήματα: Βάλε τη σκάλα κάτω από την καμένη λάμπα Ανέβα στη σκάλα Όσο η καμένη λάμπα δεν αποσπάται Γύρνα τη με αντιωρολογιακή φορά Το δεύτερο από τα αρχικά βήματα απαιτεί την επιλογή μιας λάμπας παρόμοιας με αυτήν που κάηκε (αν υπάρχει) και την τοποθέτηση της λάμπας αυτής στη θέση του πολύφωτου από την οποία αφαιρέσαμε την καμένη λάμπα. Έτσι, το βήμα Βάλε την καινούρια λάμπα αναλύεται στα εξής βήματα: Διάλεξε μια καινούρια λάμπα ίδια με αυτή που κάηκε Βάλε την καινούρια λάμπα στη σωστή θέση Όσο η καινούρια λάμπα δεν βιδώνεται Γύρνα τη με ωρολογιακή φορά

16 6 Προγραμματισμός με Java Είναι ίσως φανερό ότι η επιλογή της καινούριας λάμπας πρέπει να προηγηθεί του βήματος Ανέβα στη σκάλα (καλός αλγόριθμος), γιατί στην αντίθετη περίπτωση το ρομπότ θα πρέπει να κατέβει και να ξανανέβει τη σκάλα (κακός αλγόριθμος). Είναι ίσως επίσης φανερό ότι το ρομπότ πρέπει να κατεβεί τελικά από τη σκάλα και να τη βάλει στη θέση της. Έτσι, στην τελική του μορφή ο αλγόριθμός μας είναι ο εξής: Διάλεξε μια καινούρια λάμπα ίδια με αυτή που κάηκε Αν βρήκες μια τέτοια λάμπα, τότε Βάλε τη σκάλα κάτω από την καμένη λάμπα Ανέβα στη σκάλα Όσο η καμένη λάμπα δεν αποσπάται Γύρνα τη με αντιωρολογιακή φορά Βάλε την καινούρια λάμπα στη σωστή θέση Όσο η καινούρια λάμπα δεν βιδώνεται Γύρνα τη με ωρολογιακή φορά Κατέβα από τη σκάλα Βάλε τη σκάλα στη θέση της Ειδάλλως μην κάνεις τίποτα Το πόσο λεπτομερής θα είναι ένας αλγόριθμος εξαρτάται πάντα από το ποιος θα τον εκτελέσει. Για παράδειγμα, μια συνταγή για κολοκυθόπιτα πρέπει να περιέχει πολύ περισσότερες λεπτομέρειες όταν προορίζεται για κάποιον που δεν ξέρει να βράζει ούτε ένα αυγό, ενώ μπορεί να είναι πολύ πιο σύντομη όταν προορίζεται για τον αρχιμάγειρα ενός μεγάλου ξενοδοχείου. Το ίδιο ισχύει και για τους αλγορίθμους που πρόκειται να εκτελεστούν από ένα υπολογιστικό σύστημα: Οι γλώσσες προγραμματισμού έχουν γενικά πολύ περιορισμένο λεξιλόγιο («ρεπερτόριο» εντολών) και οι αλγόριθμοι πρέπει τελικά να εκφραστούν σε αυτό. Ασκήσεις 1.1.* Κατά τη σχεδίαση του αλγορίθμου για την αντικατάσταση της καμένης λάμπας είδαμε δύο βασικές έννοιες: την έννοια της επανάληψης (Όσο) και την έννοια της λογικής απόφασης (Αν... τότε... ειδάλλως...). Με βάση αυτές τις δύο (μόνο) έννοιες θα πρέπει τώρα οπωσδήποτε να επιχειρήσετε τουλάχιστον δύο από τις παρακάτω ασκήσεις, υποθέτοντας ότι εσείς είστε η (ανθρώπινη) μηχανή που θα εκτελέσει τους αλγορίθμους που θα σχεδιάσετε. 1. Σχεδιάστε έναν αλγόριθμο για την αντικατάσταση μιας ρόδας αυτοκινήτου. Υποθέστε ότι το αυτοκίνητό σας διαθέτει μια καλή ρεζέρβα και έναν κατάλληλο γρύλο. 2. Σχεδιάστε έναν αλγόριθμο για το ψήσιμο αβγών με μπέικον. 3. Σχεδιάστε έναν αλγόριθμο για την αντικατάσταση ενός σπασμένου τζαμιού σε κάποιο από τα παράθυρα του σπιτιού σας. Περιγράψτε ξεχωριστά σε έναν κατάλογο τα υλικά που θα χρειαστούν.

17 Κεφάλαιο 1: Εισαγωγή 7 4. Σχεδιάστε έναν αλγόριθμο που να σας βγάζει το πρωί από το σπίτι σας. Το πρώτο βήμα πρέπει να είναι το Άκουσα το ξυπνητήρι και πρέπει να συμπεριλάβετε όλες τις συνηθισμένες σας ενέργειες. 5. Σχεδιάστε έναν αλγόριθμο για το πλύσιμο, το άπλωμα και το σιδέρωμα ρούχων Προγράμματα Ας δούμε το πρώτο μας πρόγραμμα στη γλώσσα προγραμματισμού Java, το οποίο απλώς εμφανίζει στην οθόνη τη φράση Γεια σου!. Παράδειγμα // GeiaSou.java 2 // Εμφανίζει τη φράση Γεια σου!. 3 public class GeiaSou 4 { 5 public static void main(string args[]) 6 { 7 System.out.print("Γεια σου!"); /* αυτό θα γίνει */ 8 // αυτό όχι 9 // System.out.print("Γεια σου και πάλι!"); 10 System.out.println(); 11 } 12 } Οι γραμμές 1-2 του παραπάνω προγράμματος περιέχουν σχόλια. Στην Java υπάρχουν δύο ειδών σχόλια: τα σχόλια υλοποίησης και τα σχόλια τεκμηρίωσης. Τα σχόλια υλοποίησης (implementation comments) είτε ξεκινούν με //, οπότε επεκτείνονται μόνο μέχρι το τέλος της αντίστοιχης γραμμής, είτε περικλείονται μεταξύ των /* και */, οπότε μπορούν να καταλαμβάνουν περισσότερες από μια γραμμές. Σκοπός τους είναι συνήθως να επεξηγήσουν το κομμάτι κώδικα που ακολουθεί μετά από αυτά (γραμμές 1, 2 και 8) ή το κομμάτι κώδικα που προηγείται (αν βρίσκονται στην ίδια γραμμή, όπως στη γραμμή 7), ή απλώς να ζητήσουν την παράβλεψη συγκεκριμένων κομματιών κώδικα από το μεταγλωττιστή (γραμμή 9). Τα σχόλια τεκμηρίωσης (documentation comments) περικλείονται μεταξύ των συμβόλων /** και */. Τα σχόλια αυτά περιέχουν συνήθως γενικές πληροφορίες για το πρόγραμμα. Χρησιμοποιώντας το εργαλείο javadoc μπορούμε να εξαγάγουμε τα σχόλια τεκμηρίωσης ενός προγράμματος σε αρχεία HTML, τα οποία στη συνέχεια μπορούν να χρησιμοποιηθούν από οποιονδήποτε που επιθυμεί να πάρει μια γενική ιδέα για το τι κάνει το πρόγραμμα, χωρίς να έχει στη διάθεσή του τον κώδικα του προγράμματος αυτού. Ένα σχόλιο τεκμηρίωσης για το παραπάνω πρόγραμμα θα μπορούσε να ήταν το παρακάτω:

18 8 Προγραμματισμός με Java /** * Εμφανίζει τη φράση Γεια σου!. * Γράφτηκε στις 01/09/2008. * jc 1.0 */ Επειδή τα //, /*, /** και */ στην πραγματικότητα αντιπροσωπεύουν ένα μόνο σύμβολο, δεν πρέπει να υπάρχει κανένα κενό διάστημα μεταξύ των πλάγιων γραμμών και των αστερίσκων. Κατά σύμβαση, όλες οι γραμμές μέσα σε σχόλια που περικλείονται σε /** και */ ή σε /* και */ ξεκινούν με έναν αστερίσκο (που αγνοείται από τα εργαλεία τεκμηρίωσης), προκειμένου να διευκολύνεται η ανάγνωσή τους από το χρήστη. Κάθε πρόγραμμα της Java χτίζεται από τάξεις. Οι γραμμές 3-12 του παραπάνω προγράμματος δηλώνουν μια τάξη (class) που ονομάζεται GeiaSou. Το τι είναι τάξη θα το εξηγήσουμε λεπτομερέστερα στην Κεφάλαιο 8. Προς το παρόν αρκεί να αναφέρουμε ότι: Κάθε πρόγραμμα της Java πρέπει να περιέχει τουλάχιστον μία τάξη. Η τάξη αποτελείται από μέλη (members) που δηλώνονται ανάμεσα στα άγκιστρα { και } που ακολουθούν το όνομά της. Στην Επιστήμη των Υπολογιστών, τα ονόματα ονομάζονται αναγνωριστικά (identifiers). Στην Java τα αναγνωριστικά πρέπει να αρχίζουν είτε με κάποιο γράμμα του κώδικα UNICODE, είτε με χαρακτήρα υπογράμμισης (_), είτε με σύμβολο δολαρίου ($). Οι επόμενοι χαρακτήρες των αναγνωριστικών μπορούν να περιλαμβάνουν επίσης ένα ή περισσότερα αριθμητικά ψηφία (0-9). Οι λέξεις-κλειδιά (keywords) της Java (βλ. Παράρτημα Α), καθώς και οι σταθερές τιμές null, false και true, δεν μπορούν να χρησιμοποιηθούν ως αναγνωριστικά. Τέλος, είναι καλό να περιορίζουμε τη χρήση του χαρακτήρα δολαρίου ($) σε μηχανικά δημιουργούμενο κώδικα ή σε περιπτώσεις όπου θέλουμε να προσπελάσουμε προϋπάρχοντα ονόματα σε κληρονομημένα συστήματα (legacy systems). Όλα τα αναγνωριστικά πρέπει να επιλέγονται από τους προγραμματιστές με τέτοιον τρόπο ώστε να δηλώνουν τη σημασία του αφηρημένου αντικειμένου που αντιπροσωπεύουν. Έτσι, αν χρειαζόταν να διαλέξουμε το αναγνωριστικό της τάξης του παραπάνω προγράμματος ανάμεσα στα: Salute Πρώτη ΓειαΣου Prog1 P001 είναι μάλλον φανερό ότι η επιλογή του ονόματος Salute ή του ΓειαΣου θα ήταν προτιμότερη από την επιλογή κάποιου από τα Πρώτη, Prog1, ή P001.

19 Κεφάλαιο 1: Εισαγωγή 9 Κατά σύμβαση, τα αναγνωριστικά τάξεων [και γενικά τύπων αναφορών (βλ. Κεφ. 8.1)] της Java είναι ουσιαστικά. Το πρώτο γράμμα ενός τέτοιου αναγνωριστικού, καθώς και το πρώτο γράμμα κάθε λέξης που περιέχεται σε αυτό είναι κεφαλαία. Όλα τα υπόλοιπα γράμματα του αναγνωριστικού είναι πεζά, με εξαίρεση την περίπτωση των ακρωνυμίων που μπορεί να περιέχονται μέσα σε ένα αναγνωριστικό και τα οποία γράφονται με κεφαλαία. Η τάξη GeiaSou περιέχει ένα μόνο μέλος, μια μέθοδο που ονομάζεται main. Η δήλωση μιας μεθόδου (method declaration) αποτελείται από την επικεφαλίδα και το σώμα της. Η επικεφαλίδα 3 της μεθόδου (method header) main πρέπει πάντα να είναι η: public static void main(string args[]) ή η: public static void main(string... args) Η μέθοδος main πρέπει πάντα να δηλώνεται ως δημόσια και στατική. Δημόσια μέθοδος (public method) μιας τάξης είναι μια μέθοδος που μπορεί να χρησιμοποιηθεί (να κληθεί) από οποιαδήποτε μέθοδο μιας οποιασδήποτε άλλης τάξης που έχει πρόσβαση στην τάξη στην οποία έχει δηλωθεί η πρώτη (βλ. Εν. 8.1). Στατική μέθοδος (static method) είναι μια μέθοδος που ανήκει στην τάξη στην οποία αυτή έχει δηλωθεί, και όχι στα αντικείμενα της τάξης αυτής (βλ. Εν ). Τέλος, πριν από το όνομα της μεθόδου εμφανίζεται ο τύπος του αποτελέσματός της, που στην περίπτωση της main είναι void (κενός), επειδή η μέθοδος αυτή δεν επιστρέφει καμία τιμή. Μετά το όνομα της μεθόδου ακολουθούν οι παράμετροί της (parameters), μία (πιθανόν κενή) ακολουθία από ζευγάρια τύπων και αναγνωριστικών, που ξεχωρίζονται με κόμματα και περικλείονται μέσα σε παρενθέσεις ( και ). Οι παράμετροι μιας μεθόδου προσδιορίζουν από πού παίρνει τα δεδομένα της. Η μέθοδος main έχει μία μόνο παράμετρο: έναν πίνακα αντικειμένων τύπου String που ονομάζεται args. Οι πίνακες (arrays) συμβολίζονται με ένα ζεύγος από αγκύλες [ και ] μετά τον τύπο ή μετά από το αναγνωριστικό τους (βλ. Εν. 10.2). Ο πίνακας args είναι ο μηχανισμός μέσω του οποίου καθίσταται δυνατό να μεταβιβάζονται, κατά τη διάρκεια της εκτέλεσης του προγράμματος, πληροφορίες σε αυτό. Κάθε συμβολοσειρά του πίνακα args ονομάζεται όρισμα της γραμμής εντολών (command-line argument) (βλ. και Κεφ ). Μετά την επικεφαλίδα μιας μεθόδου ακολουθεί το σώμα (body) της, που περιλαμβάνει τις εντολές της. Η κάθε εντολή πρέπει να τελειώνει με ένα ελληνικό ερωτηματικό (;). Το σώμα μιας μεθόδου αρχίζει με το ειδικό σύμβολο { (το οποίο σημαίνει «άρχισε») και τελειώνει με το ειδικό σύμβολο } (το οποίο σημαίνει «τέλειωσε») με εξαίρεση την περίπτωση που η μέθοδος αυτή είναι αφηρημένη (abstract) (βλ. Εν. 11.3). 3 Στην ελληνική βιβλιογραφία αναφέρεται επίσης συχνά και ως κεφαλίδα.

20 10 Προγραμματισμός με Java Η μέθοδος main είναι μια ειδική μέθοδος: Πρέπει να δηλωθεί όπως ακριβώς περιγράψαμε και οι εντολές της εκτελούνται ακολουθιακά, αρχίζοντας από την πρώτη και τελειώνοντας στην τελευταία, όταν η τάξη που την περιέχει φορτώνεται (loaded), συνδέεται (linked) και αρχικοποιείται (initialized). Στο παράδειγμά μας υπάρχουν μόνο δύο ε- ντολές μέσα στη μέθοδο main. Η εντολή: System.out.print("Γεια σου!"); είναι μια κλήση της μεθόδου print του στατικού πεδίου out της τάξης System της Java με (πραγματικό) όρισμα (βλ. Εν. 7.2) τη συμβολοσειρά "Γεια σου!". Η μέθοδος αυτή εμφανίζει στην οθόνη ό,τι βρίσκεται ανάμεσα στα διπλά εισαγωγικά " και ", όπως ακριβώς αυτό έχει πληκτρολογηθεί (οι χαρακτήρες λευκών διαστημάτων δεν αγνοούνται μέσα στις συμβολοσειρές). Η επόμενη εντολή του προγράμματος: System.out.println(); αλλάζει γραμμή. Η μέθοδός μας θα μπορούσε να περιέχει μία μόνο εντολή, την: System.out.println("Γεια σου!"); που κάνει και τις δύο δουλειές μαζί Μεταγλώττιση και εκτέλεση προγραμμάτων Java Ένα πρόγραμμα πηγής (source program), ή πηγαίο πρόγραμμα, της Java μπορεί να γραφτεί σε κάποια εφαρμογή συντάκτη (editor) και πρέπει να αποθηκευτεί σε ένα αρχείο που να έχει το κατάλληλο όνομα τάξης (βλ. Εν. 12.6) και προέκταση.java. Αφού ετοιμάσουμε το πρόγραμμα πηγής, χρειάζεται να το μεταγλωττίσουμε στη γλώσσα της Εικονικής Μηχανής Java (Java Virtual Machine, JVM). Η γλώσσα αυτή ονομάζεται κώδικας δυφιοσυλλαβών Java (Java byte code). Για να μεταγλωττίσουμε ένα πρόγραμμα σε κώδικα δυφιοσυλλαβών Java, χρησιμοποιούμε μια εντολή της μορφής: javac όνομα_αρχείου.java όπου ο javac 4 είναι ο μεταγλωττιστής Java (Java compiler) που παρέχεται από την εταιρεία Oracle. Το εργαλείο αυτό διαβάζει προγράμματα Java και τα μετατρέπει στα κατάλληλα κομμάτια κώδικα δυφιοσυλλαβών Java. Για παράδειγμα, για να μεταγλωττίσουμε το πρόγραμμα του Παραδείγματος 1.1, πρέπει αρχικά να το γράψουμε και να το αποθηκεύσουμε σε ένα αρχείο με το όνομα GeiaSou.java και κατόπιν να εκτελέσουμε την εντολή: 4 Αρχικά ο μόνος μεταγλωττιστής προγραμμάτων Java σε κώδικα δυφιοσυλλαβών Java ήταν ο javac της Oracle. Από τη στιγμή, όμως, που δημοσιοποιήθηκαν οι προδιαγραφές του κώδικα δυφιοσυλλαβών Java, έκαναν την εμφάνισή τους και άλλοι μεταγλωττιστές, όπως ο gcj, ο jikes, και ο ecj.

21 Κεφάλαιο 1: Εισαγωγή 11 javac GeiaSou.java Αν η μεταγλώττιση είναι επιτυχής, τότε ο μεταγλωττιστής θα παραγάγει ένα αρχείο με όνομα όνομα_τάξης.class, για την κάθε τάξη που περιέχεται στο αρχείο πηγής. Για να εκτελέσουμε το πρόγραμμα θα πρέπει να πληκτρολογήσουμε μια εντολή της μορφής: java όνομα_τάξης όρισμα1 όρισμα2... όπου ο java είναι ο εκκινητής εφαρμογών Java (Java application launcher). Το εργαλείο αυτό εκτελεί μια εφαρμογή της Java: Ξεκινά ένα Περιβάλλον Εκτέλεσης Java (Java Runtime Environment, JRE), φορτώνει μια συγκεκριμένη τάξη, και καλεί τη μέθοδο main της τάξης αυτής. Το όνομα_τάξης είναι το όνομα της τάξης που περιέχει τη μέθοδο main, της τάξης δηλαδή που φορτώνεται (μεταξύ άλλων) από τον εκκινητή. Η εφαρμογή της Java μπορεί να δεχτεί ορίσματα από τη γραμμή εντολών. Όπως είδαμε παραπάνω, τα ορίσματα αυτά ακολουθούν το όνομα της τάξης στην εντολή εκτέλεσης της εφαρμογής. Κατά την εκκίνηση της εφαρμογής, το περιβάλλον εκτέλεσης μεταβιβάζει τα ορίσματα αυτά στη μέθοδο main μέσω του πίνακα args. Έτσι, αν είναι επιτυχής η μεταγλώττιση του προγράμματος που βρίσκεται αποθηκευμένο στο αρχείο GeiaSou.java, θα δημιουργηθεί το αρχείο GeiaSou.class, το οποίο στη συνέχεια μπορούμε να το εκτελέσουμε με χρήση της εντολής: java GeiaSou H εκτέλεση του προγράμματος αυτού θα εμφανίσει στην οθόνη μας το μήνυμα: Γεια σου! Παράδειγμα 1.2. Είναι μάλλον φανερό πως, αν θέλαμε να πάρουμε στην οθόνη μας τα μηνύματα: Καλή σου μέρα! Πώς είσαι; Είσαι καλά; θα έπρεπε να ετοιμάσουμε, να μεταγλωττίσουμε και να εκτελέσουμε το εξής πρόγραμμα. 1 // Xairetismos.java 2 // Εμφανίζει έναν τυπικό χαιρετισμό. 3 public class Xairetismos 4 { 5 public static void main(string arguments[]) 6 { 7 System.out.println("Καλή σου μέρα!"); 8 System.out.print("Πώς είσαι;"); 9 System.out.println(" Είσαι καλά;"); 10 } 11 }

22 12 Προγραμματισμός με Java Παράδειγμα 1.3. Το παρακάτω πρόγραμμα εμφανίζει σε ξεχωριστές γραμμές της οθόνης τα τρία πρώτα ορίσματα που δίνονται στη γραμμή εντολών. 1 // Orismata.java 2 // Εμφανίζει τα τρία πρώτα ορίσματα της γραμμής εντολών. 3 public class Orismata 4 { 5 public static void main(string[] args) 6 { 7 System.out.println(args[0]); // πρώτο όρισμα 8 System.out.println(args[1]); // δεύτερο όρισμα 9 System.out.println(args[2]); // τρίτο όρισμα 10 } 11 } Αφού ετοιμάσουμε το πρόγραμμα αυτό, το αποθηκεύσουμε σε ένα αρχείο με όνομα Orismata.java, και το μεταγλωττίσουμε, μπορούμε να το εκτελέσουμε δίνοντάς του τουλάχιστον τρία ορίσματα, για παράδειγμα με χρήση της εντολής: java Orismata μια ωραία πεταλούδα Το αποτέλεσμα της εκτέλεσης του προγράμματος Orismata στην περίπτωση αυτή θα είναι: μια ωραία πεταλούδα Σε όλες τις περιπτώσεις, η σημασιολογία (semantics) του προγράμματος είναι η ίδια: Η εκτέλεση των εντολών γίνεται ακολουθιακά (η μία μετά την άλλη), αρχίζοντας από την πρώτη και τελειώνοντας στην τελευταία εντολή της μεθόδου main. Ασκήσεις Ποια από τα παρακάτω αναγνωριστικά είναι ορθά; Εξηγήστε γιατί τα υπόλοιπα δεν είναι. (α) omega (β) prog.2 (γ) 5Bez710K (δ) NaCl (ε) H2SO4 (στ) Backus-Naur (ζ) εφ(θ) (η) { (θ) Jaws 3

23 Κεφάλαιο 1: Εισαγωγή Δεδομένα Τα δεδομένα (data) παριστάνουν πληροφορίες που πρέπει να δοθούν σε ένα πρόγραμμα. Το πρόγραμμα επεξεργάζεται τις πληροφορίες αυτές για να παραγάγει αποτελέσματα, όπως φαίνεται στο Σχήμα 1.4. Τα δεδομένα μπορεί να προέρχονται από τον «εξωτερικό κόσμο» (συσκευές εισόδου), από αρχεία που βρίσκονται αποθηκευμένα στη βοηθητική μνήμη (συσκευές δίσκων) του υπολογιστή, ή από το Διαδίκτυο, και να αντιπροσωπεύουν γεγονότα, παρατηρήσεις, μετρήσεις, ιδέες για τον κόσμο κ.ά. Τα ζωντανά όντα αντλούν τα δεδομένα από εικόνες, κείμενα, ομιλίες κ.ά. μέσω των αισθήσεών τους 5. Οι ηλεκτρονικοί υπολογιστές μπορούν και αυτοί να επεξεργαστούν, εκτός από κείμενα, δεδομένα ήχου, εικόνων κ.ά., εφόσον τα τελευταία έχουν ψηφιοποιηθεί (digitized). Δεδομένα Πρόγραμμα Αποτελέσματα Σχήμα 1.4. Πρόγραμμα. Τα δεδομένα έχουν κάποιον τύπο (type) που ορίζει τη σημασία τους, δηλαδή το σύνολο των τιμών (values) που μπορούν να πάρουν και τις πράξεις που μπορούν να εκτελεστούν στις τιμές αυτές. Η Java υποστηρίζει οκτώ πρωταρχικούς τύπους (primitive types) 6, που παρουσιάζονται στον Πίνακα 1.1. Οι τιμές των τύπων αυτών ανήκουν σε (γνήσια) υποσύνολα των χαρακτήρων της κωδικοποίησης UTF-16 (βλ. Εν. 4.1), της αλήθειας (true) και του ψέματος (false) (βλ. Κεφ. 3), των ακεραίων σε αναπαράσταση συμπληρώματος ως προς 2 (βλ. Εν. 2.1), και των πραγματικών αριθμών σε αναπαράσταση IEEE 754 (βλ. Κεφ. 6.1), αντίστοιχα. Σε αντίθεση με άλλες γλώσσες προγραμματισμού, το μορφότυπο (format) και το μέγεθος (size) των πρωταρχικών τύπων δεδομένων της Java είναι ρητά προκαθορισμένα και δεν εξαρτώνται από το κάθε σύστημα υπολογιστή, στο οποίο αυτή υλοποιείται. Γι αυτόν το λόγο, τα προγράμματα που είναι γραμμένα σε Java είναι φορητά (portable). Τέλος, η Java μας επιτρέπει να ορίσουμε και δικούς μας τύπους. 5 6 Τα δεδομένα δεν αντιπροσωπεύουν ακριβώς το φυσικό κόσμο, αλλά παρέχουν απλώς προσεγγιστικά μοντέλα τμημάτων του. Που είναι γνωστοί και ως εσωτερικοί ή ενυπάρχοντες τύποι (intrinsics).

24 14 Προγραμματισμός με Java Τύπος boolean byte char short int long float double Μέγεθος 1 δυφιοσυλλαβή 1 δυφιοσυλλαβή 2 δυφιοσυλλαβές 2 δυφιοσυλλαβές 4 δυφιοσυλλαβές 8 δυφιοσυλλαβές 4 δυφιοσυλλαβές 8 δυφιοσυλλαβές Πίνακας 1.1. Πρωταρχικοί τύποι της Java. Μερικά από τα δεδομένα που χρησιμοποιούνται σε ένα πρόγραμμα δεν αλλάζουν ποτέ. Τα δεδομένα αυτά μπορούν να παρασταθούν με σταθερές (constants), οι οποίες είναι γνωστές και ως κυριολεκτήματα ή κυριολεκτικές τιμές (literals). Για να ορίσουμε στην Java μια σταθερά, γράφουμε την τιμή της. Για παράδειγμα, τα: '_' (χαρακτήρας υπογράμμισης) '@' (παπάκι) '#' (δίεση) false true L 897L l f 1.666E-14F και D 1.666Ε e ορίζουν σταθερές των τύπων char, boolean, int, long, float και double, αντίστοιχα. Άλλα δεδομένα υπόκεινται σε αλλαγή. Για παράδειγμα, σε ένα πρόγραμμα ή σε έναν υπολογιστή τσέπης που προσθέτει αριθμούς, το τρέχον άθροισμα μεταβάλλεται κάθε φορά που προστίθεται σε αυτό ένας νέος αριθμός. Τα δεδομένα της μορφής αυτής παριστάνονται με μεταβλητές. Οι μεταβλητές (variables), όπως και τα πλήκτρα μνήμης των υπολογιστών τσέπης, παριστάνουν θέσεις της κύριας μνήμης του υπολογιστή (βλ. Εν. 1.1). Έτσι, όταν θα αναφερόμαστε στην «τιμή μιας μεταβλητής», θα εννοούμε στην πραγματικότητα «τα περιεχόμενα της θέσης της μνήμης που αντιστοιχεί στη μεταβλητή αυτή». Σε αντίθεση με τους υπολογιστές τσέπης, οι υπολογιστές μάς επιτρέπουν να χρησιμοποιήσουμε όσες μεταβλητές χρειαζόμαστε, και να τις ονομάσουμε όπως μας βολεύει (δεν μας περιορίζουν σε ονόματα όπως Μ, STO1 κ.λπ. που χρησιμοποιούν οι υπολογιστές τσέπης).

25 Κεφάλαιο 1: Εισαγωγή 15 Η μεταβλητή δημιουργείται κατά την εκτέλεση του προγράμματος με τη δήλωσή της. Η δήλωση μιας μεταβλητής (variable declaration) πρέπει να περιλαμβάνει τον τύπο και το αναγνωριστικό της. Κατά σύμβαση, τα αναγνωριστικά μεταβλητών της Java είναι ουσιαστικά. Το πρώτο γράμμα ενός τέτοιου αναγνωριστικού είναι πεζό, ενώ το πρώτο γράμμα κάθε λέξης που περιέχεται σε αυτό (με εξαίρεση την πρώτη) είναι κεφαλαίο. Όλα τα υπόλοιπα γράμματα του αναγνωριστικού είναι πεζά, με εξαίρεση την περίπτωση των ακρωνυμίων που μπορεί να περιέχονται μέσα στο αναγνωριστικό και που γράφονται με κεφαλαία. Σχετικά παραδείγματα δηλώσεων μεταβλητών είναι τα εξής: int wresergasias, yperwries; float aktina, emvadon; char shmeiostikshs; boolean petyxe; double perifereia; Η δήλωση μιας μεταβλητής αντιστοιχίζει απλώς το αναγνωριστικό της στη διεύθυνση μιας θέσης της μνήμης του υπολογιστή, και περιγράφει τον τύπο των τιμών που μπορούν να αποθηκευτούν στη θέση αυτή Παραστάσεις εκχώρησης, τοπικές και τελικές μεταβλητές Μια παράσταση εκχώρησης (assignment expression) έχει σύνταξη: αναγνωριστικό = παράσταση όπου ο τύπος για την παράσταση που βρίσκεται στο δεξιό σκέλος του ειδικού συμβόλου = πρέπει να είναι ίδιος ή «βραχύτερος» σε σχέση με τον τύπο της μεταβλητής που βρίσκεται στο αριστερό σκέλος. Η σημασιολογία μιας παράστασης εκχώρησης είναι: Υ- πολόγισε την τιμή της παράστασης που βρίσκεται δεξιά από το = και αποθήκευσέ τη (εκχώρησέ τη) στη θέση (διεύθυνση) που προσδιορίζει η μεταβλητή αριστερά από το =. Σχετικά παραδείγματα είναι τα ακόλουθα (το σύμβολο * παριστάνει τον τελεστή «επί»): wresergasias = 8; yperwries = 5; aktina = 3.5f;

26 16 Προγραμματισμός με Java perifereia = 2 * * aktina; shmeiostikshs = '!'; petyxe = true; Η αποτίμηση μιας παράστασης εκχώρησης έχει αποτέλεσμα την αλλαγή της τιμής της μεταβλητής που βρίσκεται στο αριστερό σκέλος της παράστασης. Η τιμή που είχε η μεταβλητή αυτή πριν από την αποτίμηση της παράστασης εκχώρησης χάνεται για πάντα. Οι τιμές των μεταβλητών που βρίσκονται στο δεξιό σκέλος της παράστασης εκχώρησης δεν αλλάζουν (εκτός και αν κάποια από αυτές βρίσκεται και στο αριστερό σκέλος της παράστασης). Οι μεταβλητές που δηλώνονται μέσα στο σώμα μιας μεθόδου ονομάζονται τοπικές μεταβλητές (local variables) της μεθόδου αυτής. Όλες οι δηλώσεις των (τοπικών) μεταβλητών μιας μεθόδου ακολουθούν μετά το πρώτο { της μεθόδου. Όταν δημιουργείται μια τοπική μεταβλητή (μιας μεθόδου), μέσω της δήλωσής της, η τιμή της είναι απροσδιόριστη (undefined), εκτός και αν ο προγραμματιστής της δώσει ταυτόχρονα αρχική τιμή, όπως θα δούμε σε λίγο. Αν θέλουμε ταυτόχρονα να δηλώσουμε μια μεταβλητή και να της δώσουμε αρχική τιμή, θα πρέπει να χρησιμοποιήσουμε μια παράσταση που περιλαμβάνει μια δήλωση και μια εκχώρηση. Σχετικά παραδείγματα τέτοιων παραστάσεων είναι τα εξής: int wresergasias = 8, yperwries = 5; float aktina = 3.5f, emvadon; double perifereia = 2* * aktina; char shmeiostikshs = '!'; boolean petyxe = true; Όλες οι μεταβλητές μιας παράστασης εκχώρησης πρέπει να έχουν δηλωθεί. Όλες οι μεταβλητές που βρίσκονται στο δεξιό σκέλος μιας παράστασης εκχώρησης πρέπει οπωσδήποτε να έχουν ήδη πάρει (ορισμένες) τιμές. Η τιμή μιας παράστασης εκχώρησης είναι πάντα η νέα τιμή της μεταβλητής που βρίσκεται στο αριστερό σκέλος της παράστασης. Έτσι, η παράσταση: wresergasias = yperwries = 8; έχει αποτέλεσμα την εκχώρηση της τιμής 8 στη μεταβλητή yperwries και κατόπιν την εκχώρηση της νέας τιμής της μεταβλητής yperwries (8) στη μεταβλητή wresergasias. Οι μεταβλητές που διατηρούν την τιμή τους σταθερή καθόλη τη διάρκεια εκτέλεσης του προγράμματος ονομάζονται τελικές μεταβλητές (final variables) στην Java, και στις δηλώσεις τους εμφανίζεται η λέξη-κλειδί final μπροστά από τον τύπο τους. Για παράδειγμα, οι παραστάσεις:

27 Κεφάλαιο 1: Εισαγωγή 17 final int EVDOMADES_XRONOY = 52; final char ΑΣΤΕΡΑΚΙ = '*'; final boolean ALHTHEIA = true; final double Π = ; δηλώνουν και εκχωρούν τιμές σε τέσσερις τελικές μεταβλητές τύπου int, char, boolean και double, αντίστοιχα. Η δήλωση μιας τελικής μεταβλητής δίνει ένα όνομα (αναγνωριστικό) σε μια τιμή. Κατά σύμβαση, τα αναγνωριστικά τελικών μεταβλητών της Java είναι ουσιαστικά. Όλα τα γράμματα ενός τέτοιου αναγνωριστικού είναι κεφαλαία, ενώ οι επιμέρους λέξεις που περιέχονται μέσα σε αυτό χωρίζονται μεταξύ τους με _. Δεν επιτρέπεται να επιχειρήσουμε να τροποποιήσουμε μια τελική μεταβλητή. Τυχόν προσπάθεια να κάνουμε κάτι τέτοιο προκαλεί σφάλμα μεταγλώττισης. Συμπερασματικά: Ο τύπος μιας μεταβλητής καθορίζει το σύνολο των τιμών που αυτή μπορεί να πάρει και τις πράξεις που μπορούν να εφαρμοστούν σε αυτή. Κάθε δεδομένο έχει έναν και μόνο ορισμένο τύπο. Ο τύπος μιας μεταβλητής εξαρτάται από τη δήλωσή της, και όχι από τις τιμές που μπορεί να πάρει κατά τη διάρκεια της εκτέλεσης του προγράμματος. Μια παράσταση μπορεί να είναι μια σταθερά, μια μεταβλητή, μια κλήση μεθόδου, ή ένας συνδυασμός σταθερών, μεταβλητών, και κλήσεων μεθόδων μέσω κατάλληλων τελεστών. Προγράμματα Γράψτε ένα πρόγραμμα που να εμφανίζει τα παρακάτω σχήματα, το ένα δίπλα στο άλλο. Αλλάξτε το πρόγραμμά σας, ώστε να εμφανίζει τα σχήματα το ένα πάνω από το άλλο. Μήπως η ευκολία της αλλαγής του προγράμματός σας εξαρτάται από τον τρόπο με τον οποίο το έχετε γράψει; * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 2. Γράψτε ένα πρόγραμμα που να εμφανίζει τα αρχικά σας με κεφαλαία γράμματα. Για παράδειγμα, αν το πρόγραμμα γραφόταν από το Γιάννη, θα έπρεπε να εμφανίζει:

28

Όλοι οι υπολογιστές από πρώτης ως και τέταρτης γενιάς, εκτός από τους υπερυπολογιστές,

Όλοι οι υπολογιστές από πρώτης ως και τέταρτης γενιάς, εκτός από τους υπερυπολογιστές, ΚΕΦΑΛΑΙΟ 1 Εισαγωγή Επιτέλους ανακάλυψα ότι όλα τα πράγματα είχαν ονόματα. Μετά άρχισα να διερωτώμαι γιατί είχαν τα ονόματα που είχαν. Όταν τελικά εγκατέλειψα την προσπάθεια αυτή, τότε άρχισα να αναγνωρίζω

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Βασικά Στοιχεία της Java

Βασικά Στοιχεία της Java Βασικά Στοιχεία της Java Παύλος Εφραιμίδης Java Βασικά Στοιχεία της γλώσσας Java 1 Τύποι Δεδομένων Η Java έχει δύο κατηγορίες τύπων δεδομένων: πρωτογενείς (primitive) τύπους δεδομένων αναφορές Java Βασικά

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

Αντικειμενοστρεφής Προγραμματισμός Διάλεξη 2 : ΜΕΤΑΒΛΗΤΕΣ ΤΕΛΕΣΤΕΣ & ΕΚΦΡΑΣΕΙΣ ΕΛΕΓΧΟΣ ΡΟΗΣ

Αντικειμενοστρεφής Προγραμματισμός Διάλεξη 2 : ΜΕΤΑΒΛΗΤΕΣ ΤΕΛΕΣΤΕΣ & ΕΚΦΡΑΣΕΙΣ ΕΛΕΓΧΟΣ ΡΟΗΣ Αντικειμενοστρεφής Προγραμματισμός Διάλεξη 2 : ΜΕΤΑΒΛΗΤΕΣ ΤΕΛΕΣΤΕΣ & ΕΚΦΡΑΣΕΙΣ ΕΛΕΓΧΟΣ ΡΟΗΣ Κων. Κόκκινος Μεταβλητές-1 Οι μεταβλητές αποτελούν θέσεις μνήμης στις οποίες αποθηκεύονται τιμές αντίστοιχες

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

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

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

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

Εισαγωγή στη JAVA. Εισαγωγή στη Java. Η Java είναι δημιούργημα της SUN MICROSYSTEMS.

Εισαγωγή στη JAVA. Εισαγωγή στη Java. Η Java είναι δημιούργημα της SUN MICROSYSTEMS. Εισαγωγή στη JAVA Σύντομο Ιστορικό Η Java και το διαδίκτυο Το πρώτο απλό πρόγραμμα σε JAVA Μεταβλητές και σταθερές Παραστάσεις και εντολές Οι βασικοί τύποι δεδομένων στη Java Οι βασικοί Τελεστές στη Java

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

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

Εισαγωγή στον Προγραμματισμό Εισαγωγή στον Προγραμματισμό Ακαδημαϊκό έτος 2010/2011 Επιμέλεια Ξενοφών Βασιλάκος Περιεχόμενα Φροντιστηρίου A. Πρωταρχικοί τύποι B. Είσοδος/ Έξοδος C. Πράξεις 2 Δήλωση / Αρχικοποίηση / Εκχώρηση A. Πρωταρχικοί

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

Βασικά Στοιχεία της Java

Βασικά Στοιχεία της Java Βασικά Στοιχεία της Παύλος Εφραιμίδης 1 Βασικά Στοιχεία της γλώσσας Τύποι Δεδομένων Η έχει δύο κατηγορίες τύπων δεδομένων: πρωτογενείς (primitive) iti τύπους δεδομένων δδ αναφορές 2 Βασικά Στοιχεία της

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

Αντικειµενοστρεφής Προγραµµατισµός

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

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

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

ΕΙΔΙΚΟΤΗΤΑ: ΤΕΧΝΙΚΟΣ ΕΦΑΡΜΟΓΩΝ ΠΛΗΡΟΦΟΡΙΚΗΣ ΜΑΘΗΜΑ: ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΠΛΗΡΟΦΟΡΙΚΗ ΕΙΔΙΚΟΤΗΤΑ: ΤΕΧΝΙΚΟΣ ΕΦΑΡΜΟΓΩΝ ΠΛΗΡΟΦΟΡΙΚΗΣ ΜΑΘΗΜΑ: ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΠΛΗΡΟΦΟΡΙΚΗ (Τμήματα Υπολογιστή) ΕΚΠΑΙΔΕΥΤΗΣ:ΠΟΖΟΥΚΙΔΗΣ ΚΩΝΣΤΑΝΤΙΝΟΣ ΤΜΗΜΑΤΑ ΗΛΕΚΤΡΟΝΙΚΟΥ ΥΠΟΛΟΓΙΣΤΗ Κάθε ηλεκτρονικός υπολογιστής αποτελείται

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

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

Εισαγωγή στον Προγραμματισμό Εισαγωγή στον Προγραμματισμό Ακαδημαϊκό έτος: 2010-2011 Επιμέλεια Ξενοφών Βασιλάκος Περιεχόμενα Φροντιστηρίου 1. Εισαγωγή 2. Εντολές Εκχώρησης και Τελικές μεταβλητές 3. Μεταγλώττιση και διερμηνεία των

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

Mεταβλητές (variables) και Σταθερές (constants)

Mεταβλητές (variables) και Σταθερές (constants) Mεταβλητές (variables) και Σταθερές (constants) Οι μεταβλητές είναι οι θέσεις μνήμης στις οποίες ένα πρόγραμμα τοποθετεί τα δεδομένα του κατά τη διάρκεια της λειτουργίας του. θα μάθουμε: πως δηλώνουμε

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

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

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

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

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

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

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

Γενική οργάνωση υπολογιστή «ΑΒΑΚΑ»

Γενική οργάνωση υπολογιστή «ΑΒΑΚΑ» Περιεχόμενα Γενική οργάνωση υπολογιστή «ΑΒΑΚΑ»... 2 Καταχωρητές... 3 Αριθμητική-λογική μονάδα... 3 Μονάδα μνήμης... 4 Μονάδα Εισόδου - Εξόδου... 5 Μονάδα ελέγχου... 5 Ρεπερτόριο Εντολών «ΑΒΑΚΑ»... 6 Φάση

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

1 ΕΙΣΑΓΩΓΗ. Πρωταρχικοί Τύποι

1 ΕΙΣΑΓΩΓΗ. Πρωταρχικοί Τύποι 1 ΕΙΣΑΓΩΓΗ Η γλώσσα προγραµµατισµού Java είναι ισχυρά τυποποιηµένη (strongly typed), που σηµαίνει ότι κάθε µεταβλητή και κάθε έκφραση έχει κάποιο τύπο, ο οποίος πρέπει να είναι γνωστός κατά το χρόνο της

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

Στοιχειώδης προγραμματισμός σε C++

Στοιχειώδης προγραμματισμός σε C++ Στοιχειώδης προγραμματισμός σε C++ Σύντομο Ιστορικό. Το πρόγραμμα Hello World. Ο τελεστής εξόδου. Μεταβλητές και δηλώσεις τους. Αντικείμενα, μεταβλητές, σταθερές. Ο τελεστής εισόδου. Θεμελιώδεις τύποι.

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

Μάθημα 3: Αρχιτεκτονική Υπολογιστών

Μάθημα 3: Αρχιτεκτονική Υπολογιστών Μάθημα 3: Αρχιτεκτονική Υπολογιστών 3.1 Περιφερειακές μονάδες και τμήμα επεξεργασίας Στην καθημερινή μας ζωή ερχόμαστε συνέχεια σε επαφή με υπολογιστές. Ο υπολογιστής είναι μια συσκευή που επεξεργάζεται

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

Αντικειμενοστρεφής Προγραμματισμός

Αντικειμενοστρεφής Προγραμματισμός Αντικειμενοστρεφής Προγραμματισμός Διδάσκουσα: Αναπλ. Καθηγήτρια Ανδριάνα Πρέντζα aprentza@unipi.gr Εργαστηριακός Συνεργάτης: Δρ. Βασιλική Κούφη vassok@unipi.gr Εργαστήριο 2 Βασικοί Τύποι Μεταβλητών Java

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

Μάθημα 4: Κεντρική Μονάδα Επεξεργασίας

Μάθημα 4: Κεντρική Μονάδα Επεξεργασίας Μάθημα 4: Κεντρική Μονάδα Επεξεργασίας 4.1 Γενικά Ο υπολογιστής επεξεργάζεται δεδομένα ακολουθώντας βήμα βήμα, τις εντολές ενός προγράμματος. Το τμήμα του υπολογιστή, που εκτελεί τις εντολές και συντονίζει

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

ΠΑΡΑΡΤΗΜΑ: QUIZ ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ

ΠΑΡΑΡΤΗΜΑ: QUIZ ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ ΠΑΡΑΡΤΗΜΑ: QUIZ ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ (Οι ερωτήσεις µε κίτρινη υπογράµµιση είναι εκτός ύλης για φέτος) ΕΙΣΑΓΩΓΗ Q1. Οι Πρωταρχικοί τύποι (primitive types) στη Java 1. Είναι όλοι οι ακέραιοι και όλοι οι πραγµατικοί

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

Διάλεξη 3: Προγραμματισμός σε JAVA I. Διδάσκων: Παναγιώτης Ανδρέου

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

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

Αντικειμενοστραφής Προγραμματισμός I(5 ο εξ) Εργαστήριο #2 ο : Ανατομία προγραμμάτων εφαρμογών, η

Αντικειμενοστραφής Προγραμματισμός I(5 ο εξ) Εργαστήριο #2 ο : Ανατομία προγραμμάτων εφαρμογών, η Αντικειμενοστραφής Προγραμματισμός I(5 ο εξ) Εργαστήριο #2 ο : Ανατομία προγραμμάτων εφαρμογών, η μέθοδος main(), εμφάνιση μηνυμάτων, Java προγράμματα που εκτελούν αριθμητικές πράξεις 2 Ανατομία ενός προγράμματος

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

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

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

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

Αντικειμενοστραφής Προγραμματισμός I (5 ο εξ) Εργαστήριο #2 ο : Ανατομία προγραμμάτων εφαρμογών, η

Αντικειμενοστραφής Προγραμματισμός I (5 ο εξ) Εργαστήριο #2 ο : Ανατομία προγραμμάτων εφαρμογών, η Αντικειμενοστραφής Προγραμματισμός I (5 ο εξ) Εργαστήριο #2 ο : Ανατομία προγραμμάτων εφαρμογών, η μέθοδος main(), εμφάνιση μηνυμάτων, Java προγράμματα που εκτελούν αριθμητικές πράξεις Γαβαλάς Δαμιανός

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

5 ΕΙΣΑΓΩΓΗ ΣΤΗ ΘΕΩΡΙΑ ΑΛΓΟΡΙΘΜΩΝ

5 ΕΙΣΑΓΩΓΗ ΣΤΗ ΘΕΩΡΙΑ ΑΛΓΟΡΙΘΜΩΝ 5 ΕΙΣΑΓΩΓΗ ΣΤΗ ΘΕΩΡΙΑ ΑΛΓΟΡΙΘΜΩΝ 5.1 Εισαγωγή στους αλγορίθμους 5.1.1 Εισαγωγή και ορισμοί Αλγόριθμος (algorithm) είναι ένα πεπερασμένο σύνολο εντολών οι οποίες εκτελούν κάποιο ιδιαίτερο έργο. Κάθε αλγόριθμος

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

Τύποι δεδομένων, τελεστές, μεταβλητές

Τύποι δεδομένων, τελεστές, μεταβλητές Τύποι δεδομένων, τελεστές, μεταβλητές Βασικά στοιχεία της γλώσσας Η Java χαρακτηρίζεται από ένα αρκετά καλά οργανωμένο σύνολο εντολών κι ένα μέρος της επιτυχίας της οφείλεται στα διάφορα APIs (βιβλιοθήκες)

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

Εισαγωγή στην Αριθμητική Ανάλυση

Εισαγωγή στην Αριθμητική Ανάλυση Εισαγωγή στην Αριθμητική Ανάλυση Εισαγωγή στη MATLAB ΔΙΔΑΣΚΩΝ: ΓΕΩΡΓΙΟΣ ΑΚΡΙΒΗΣ ΒΟΗΘΟΙ: ΔΗΜΗΤΡΙΑΔΗΣ ΣΩΚΡΑΤΗΣ, ΣΚΟΡΔΑ ΕΛΕΝΗ E-MAIL: SDIMITRIADIS@CS.UOI.GR, ESKORDA@CS.UOI.GR Τι είναι Matlab Είναι ένα περιβάλλον

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

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Κλάσεις και Αντικείμενα Αναφορές

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Κλάσεις και Αντικείμενα Αναφορές ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ Κλάσεις και Αντικείμενα Αναφορές Μαθήματα από το lab Υπενθύμιση: Η άσκηση ζητούσε να υλοποιήσετε μία κλάση vector που να διαχειρίζεται διανύσματα οποιουδήποτε

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

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

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

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

ΠΕΡΙΕΧΟΜΕΝΑ ΜΕΡΟΣ Α : ΘΕΜΑΤΑ ΒΑΣΗΣ 1. ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΠΛΗΡΟΦΟΡΙΚΗ...11 2. ΑΡΙΘΜΗΤΙΚΑ ΣΥΣΤΗΜΑΤΑ...30

ΠΕΡΙΕΧΟΜΕΝΑ ΜΕΡΟΣ Α : ΘΕΜΑΤΑ ΒΑΣΗΣ 1. ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΠΛΗΡΟΦΟΡΙΚΗ...11 2. ΑΡΙΘΜΗΤΙΚΑ ΣΥΣΤΗΜΑΤΑ...30 ΠΕΡΙΕΧΟΜΕΝΑ ΜΕΡΟΣ Α : ΘΕΜΑΤΑ ΒΑΣΗΣ 1. ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΠΛΗΡΟΦΟΡΙΚΗ...11 1.1 Τι είναι Πληροφορική;...11 1.1.1 Τι είναι η Πληροφορική;...12 1.1.2 Τι είναι ο Υπολογιστής;...14 1.1.3 Τι είναι το Υλικό και το

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

Β. Εισαγωγή στον Προγραμματισμό Η/Υ με την JavaScript

Β. Εισαγωγή στον Προγραμματισμό Η/Υ με την JavaScript Β. Εισαγωγή στον Προγραμματισμό Η/Υ με την JavaScript Β.1 Τύποι Δεδομένων Όλες οι γλώσσες προγραμματισμού (πρέπει να) υποστηρίζουν πέντε (5) πρωταρχικούς τύπους δεδομένων: char (character) int (integer)

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

Τι χρειάζεται ένας φοιτητής για τη σωστή παρακολούθηση και συμμετοχή στο μαθημα;

Τι χρειάζεται ένας φοιτητής για τη σωστή παρακολούθηση και συμμετοχή στο μαθημα; Εισαγωγή Τι χρειάζεται ένας φοιτητής για τη σωστή παρακολούθηση και συμμετοχή στο μαθημα; 1. Σελίδα μαθήματος Εγγραφή Ο κάθε φοιτητής πρέπει να κάνει εγγραφή στη σελίδα του μαθήματος στην πλατφόρμα e-class

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

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

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

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

Στοιχεία από την αρχιτεκτονική των μικροϋπολογιστών

Στοιχεία από την αρχιτεκτονική των μικροϋπολογιστών Στοιχεία από την αρχιτεκτονική των μικροϋπολογιστών Η επεξεργασία των δεδομένων ακολουθεί μια στερεότυπη διαδρομή: τα δεδομένα εισάγονται στο υπολογιστικό σύστημα, υφίστανται μια ορισμένη επεξεργασία και

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

Μάθημα 3.2: Κεντρική Μονάδα Επεξεργασίας

Μάθημα 3.2: Κεντρική Μονάδα Επεξεργασίας Κεφάλαιο 3 ο Αρχιτεκτονική Υπολογιστών Μάθημα 3.: Κεντρική Μονάδα Επεξεργασίας Όταν ολοκληρώσεις το κεφάλαιο θα μπορείς: Να σχεδιάζεις την εσωτερική δομή της ΚΜΕ και να εξηγείς τη λειτουργία των επιμέρους

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

ΠΛΗΡΟΦΟΡΙΚΗ Ι JAVA Τμήμα θεωρίας με Α.Μ. σε 8 & 9 18/10/07 ΠΛΗΡΟΦΟΡΙΚΗ Ι JAVA Τμήμα θεωρίας με Α.Μ. σε 8 & 9 18/10/07 Αλγόριθμος: Βήμα προς βήμα διαδικασία για την επίλυση κάποιου προβλήματος. Το πλήθος των βημάτων πρέπει να είναι πεπερασμένο. Αλλιώς: Πεπερασμένη

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

Κεφάλαιο 7 ο Βασικές Έννοιες Προγραμματισμού (σελ )

Κεφάλαιο 7 ο Βασικές Έννοιες Προγραμματισμού (σελ ) Κεφάλαιο 7 ο Βασικές Έννοιες Προγραμματισμού (σελ. 147 159) Για τις γλώσσες προγραμματισμού πρέπει να έχουμε υπόψη ότι: Κάθε γλώσσα προγραμματισμού σχεδιάζεται για συγκεκριμένο σκοπό, δίνοντας ιδιαίτερη

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

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

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

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

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

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

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

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

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

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

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

Προγραμματισμός Ι (HY120) Προγραμματισμός Ι (HY20) # μνήμη & μεταβλητές πρόγραμμα & εκτέλεση Ψηφιακά δεδομένα, μνήμη, μεταβλητές 2 Δυαδικός κόσμος Οι υπολογιστές είναι δυαδικές μηχανές Όλη η πληροφορία (δεδομένα και κώδικας) κωδικοποιείται

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

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

Εισαγωγή στον Προγραμματισμό Εισαγωγή στον Προγραμματισμό Ακαδημαϊκό Έτος 2010-2011 Επιμέλεια Ξενοφών Βασιλάκος Περιεχόμενα Φροντιστηρίου 1. Κωδικοποίηση και Δυαδική Αναπαράσταση 2. Κωδικοποίηση ASCII Κωδικοποίηση Unicode Εισαγωγή

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

Τύποι Δεδομένων και Απλές Δομές Δεδομένων. Παύλος Εφραιμίδης V1.0 ( )

Τύποι Δεδομένων και Απλές Δομές Δεδομένων. Παύλος Εφραιμίδης V1.0 ( ) Τύποι Δεδομένων και Απλές Δομές Δεδομένων Παύλος Εφραιμίδης V1.0 (2014-01-13) Απλές Δομές Δεδομένων Στην ενότητα αυτή θα γνωρίσουμε ορισμένες απλές Δομές Δεδομένων και θα τις χρησιμοποιήσουμε για την αποδοτική

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

Δομές ελέγχου ροής προγράμματος

Δομές ελέγχου ροής προγράμματος Δομές ελέγχου ροής προγράμματος Υπάρχουν δύο είδη δομών ελέγχου ροής (control flow): Οι δομές επιλογής και Οι δομές επανάληψης Δομές ελέγχου ροής προγράμματος Είδος δομής Δομές επιλογής Δομή ελέγχου ροής

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

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

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

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

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

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

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

Περιεχόμενα. Πρόλογος... 21

Περιεχόμενα. Πρόλογος... 21 Περιεχόμενα Πρόλογος... 21 Κεφάλαιο 1: Εισαγωγή στον προγραμματισμό... 25 Εισαγωγή...27 Πώς να διαβάσετε αυτό το βιβλίο...27 Η δομή των κεφαλαίων...28 Γιατί να μάθω προγραμματισμό;...31 Γιατί να μάθω C;...31

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

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

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

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

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

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

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

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

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

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

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

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

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

Προβλήματα, αλγόριθμοι, ψευδοκώδικας

Προβλήματα, αλγόριθμοι, ψευδοκώδικας Προβλήματα, αλγόριθμοι, ψευδοκώδικας October 11, 2011 Στο μάθημα Αλγοριθμική και Δομές Δεδομένων θα ασχοληθούμε με ένα μέρος της διαδικασίας επίλυσης υπολογιστικών προβλημάτων. Συγκεκριμένα θα δούμε τι

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

3. Εκφράσεις και έλεγχος ροής

3. Εκφράσεις και έλεγχος ροής 3. Εκφράσεις και έλεγχος ροής Τελειώνοντας αυτό το κεφάλαιο θα μπορείτε: Να διακρίνετε ανάμεσα σε μεταβλητές μέλη και αυτόματες μεταβλητές Να περιγράφετε την αρχικοποίηση των μεταβλητών μελών Να αναγνωρίζετε

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

Ανάπτυξη Εφαρμογών σε Προγραμματιστικό Περιβάλλον

Ανάπτυξη Εφαρμογών σε Προγραμματιστικό Περιβάλλον Ανάπτυξη Εφαρμογών σε Προγραμματιστικό Περιβάλλον ΚΕΦΑΛΑΙΟ 2 2.4 Βασικές συνιστώσες/εντολές ενός αλγορίθμου 2.4.1 Δομή ακολουθίας ΚΕΦΑΛΑΙΟ 7 7.1 7.9 Σταθερές (constants): Προκαθορισμένες τιμές που παραμένουν

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

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

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

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

Δομές Δεδομένων. Λουκάς Γεωργιάδης. http://www.cs.uoi.gr/~loukas/courses/data_structures/ email: loukas@cs.uoi.gr

Δομές Δεδομένων. Λουκάς Γεωργιάδης. http://www.cs.uoi.gr/~loukas/courses/data_structures/ email: loukas@cs.uoi.gr Δομές Δεδομένων http://www.cs.uoi.gr/~loukas/courses/data_structures/ Λουκάς Γεωργιάδης email: loukas@cs.uoi.gr Αλγόριθμος: Μέθοδος για την επίλυση ενός προβλήματος Δεδομένα: Σύνολο από πληροφορίες που

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

Μικροεπεξεργαστές. Σημειώσεις Μαθήματος Υπεύθυνος: Δρ Άρης Παπακώστας,

Μικροεπεξεργαστές. Σημειώσεις Μαθήματος Υπεύθυνος: Δρ Άρης Παπακώστας, Μικροεπεξεργαστές Σημειώσεις Μαθήματος 2013-14 Υπεύθυνος: Δρ Άρης Παπακώστας, Η γλώσσα assembly είναι μια γλώσσα προγραμματισμού χαμηλού επιπέδου για συγκεκριμένους υπολογιστές ή άλλη προγραμματιζόμενη

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

Κεφάλαιο 3 Αρχιτεκτονική Ηλεκτρονικού Τμήματος (hardware) των Υπολογιστικών Συστημάτων ΕΡΩΤΗΣΕΙΣ ΑΣΚΗΣΕΙΣ

Κεφάλαιο 3 Αρχιτεκτονική Ηλεκτρονικού Τμήματος (hardware) των Υπολογιστικών Συστημάτων ΕΡΩΤΗΣΕΙΣ ΑΣΚΗΣΕΙΣ Κεφάλαιο 3 Αρχιτεκτονική Ηλεκτρονικού Τμήματος (hardware) των Υπολογιστικών Συστημάτων ΕΡΩΤΗΣΕΙΣ ΑΣΚΗΣΕΙΣ 1. Τι εννοούμε με τον όρο υπολογιστικό σύστημα και τι με τον όρο μικροϋπολογιστικό σύστημα; Υπολογιστικό

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

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Κλάσεις και Αντικείμενα Μέθοδοι

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Κλάσεις και Αντικείμενα Μέθοδοι ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ Κλάσεις και Αντικείμενα Μέθοδοι Παράδειγμα 1 Θέλουμε ένα πρόγραμμα που να προσομοιώνει την κίνηση ενός αυτοκινήτου, το οποίο κινείται και τυπώνει τη θέση του.

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

Τμήμα Λογιστικής. Εισαγωγή στους Ηλεκτρονικούς Υπολογιστές. Μάθημα 8. 1 Στέργιος Παλαμάς

Τμήμα Λογιστικής. Εισαγωγή στους Ηλεκτρονικούς Υπολογιστές. Μάθημα 8. 1 Στέργιος Παλαμάς ΤΕΙ Ηπείρου Παράρτημα Πρέβεζας Τμήμα Λογιστικής Εισαγωγή στους Ηλεκτρονικούς Υπολογιστές Μάθημα 8 Κεντρική Μονάδα Επεξεργασίας και Μνήμη 1 Αρχιτεκτονική του Ηλεκτρονικού Υπολογιστή Μονάδες Εισόδου Κεντρική

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

Εισαγωγή στον Αντικειμενοστρεφή Προγραμματισμό Διάλεξη #2

Εισαγωγή στον Αντικειμενοστρεφή Προγραμματισμό Διάλεξη #2 Ανασκόπηση Μια εφαρμογή Java είναι ένα σύνολο από συνεργαζόμενες κλάσεις Διάλεξη #2: Αντικείμενα, Κλάσεις και Μέθοδοι Εισαγωγή στον Αντικειμενοστρεφή Προγραμματισμό,, Slide 1 Εισαγωγή στον Αντικειμενοστρεφή

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

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

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

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

ΑΣΚΗΣΗ 5: ΠΙΝΑΚΕΣ. Σχήµα 1: H έννοια των πινάκων

ΑΣΚΗΣΗ 5: ΠΙΝΑΚΕΣ. Σχήµα 1: H έννοια των πινάκων Σκοπός της Άσκησης ΑΣΚΗΣΗ 5: ΠΙΝΑΚΕΣ Ο σκοπός αυτής της εργαστηριακής άσκησης είναι η εξοικείωση µε τη χρήση πινάκων σαν διατάξεις αποθήκευσης δεδοµένων της Γλώσσας Προγραµµατισµού C. H συγκεκριµένη άσκηση

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

ΠΛΗΡΟΦΟΡΙΚΗ ΙI Ενότητα 1: Εισαγωγικές έννοιες

ΠΛΗΡΟΦΟΡΙΚΗ ΙI Ενότητα 1: Εισαγωγικές έννοιες ΠΛΗΡΟΦΟΡΙΚΗ ΙI Ενότητα 1: Εισαγωγικές έννοιες Μιχάλης Δρακόπουλος Σχολή Θετικών επιστημών Τμήμα Μαθηματικών ΠΛΗΡΟΦΟΡΙΚΗ ΙΙ (Java) Ενότητα 1 Αλγόριθμος: Βήμα προς βήμα διαδικασία για την επίλυση κάποιου

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

3 ο Εργαστήριο Μεταβλητές, Τελεστές

3 ο Εργαστήριο Μεταβλητές, Τελεστές 3 ο Εργαστήριο Μεταβλητές, Τελεστές Μια μεταβλητή έχει ένα όνομα και ουσιαστικά είναι ένας δείκτης σε μια συγκεκριμένη θέση στη μνήμη του υπολογιστή. Στη θέση μνήμης στην οποία δείχνει μια μεταβλητή αποθηκεύονται

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

Κλάσεις και Αντικείµενα

Κλάσεις και Αντικείµενα Κλάσεις και Αντικείµενα Γρηγόρης Τσουµάκας Τµήµα Πληροφορικής, Αριστοτέλειο Πανεπιστήµιο Θεσσαλονίκης Κλάσεις και Αντικείµενα 2 Τα αντικείµενα σε µια αντικειµενοστρεφή γλώσσα προγραµµατισµού, µοντελοποιούν

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

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

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

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

Αντικειμενοστρεφής Προγραμματισμός Διάλεξη 6 : ΠΙΝΑΚΕΣ

Αντικειμενοστρεφής Προγραμματισμός Διάλεξη 6 : ΠΙΝΑΚΕΣ Αντικειμενοστρεφής Προγραμματισμός Διάλεξη 6 : ΠΙΝΑΚΕΣ Κων. Κόκκινος ΠΙΝΑΚΕΣ (ARRAYS) Είναι χώροι της μνήμης για προσωρινή αποθήκευση δεδομένων του ίδιου τύπου. Οι πίνακες είναι δομές δεδομένων που τις

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

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

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

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

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Στατικές μέθοδοι και μεταβλητές Εσωτερικές κλάσεις

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Στατικές μέθοδοι και μεταβλητές Εσωτερικές κλάσεις ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ Στατικές μέθοδοι και μεταβλητές Εσωτερικές κλάσεις Στατικές μέθοδοι Τι σημαίνει το keyword static στον ορισμό της main μεθόδου? Τι είναι μια στατική μέθοδος?

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

Το ολοκληρωμένο κύκλωμα μιας ΚΜΕ. «Φέτα» ημιαγωγών (wafer) από τη διαδικασία παραγωγής ΚΜΕ

Το ολοκληρωμένο κύκλωμα μιας ΚΜΕ. «Φέτα» ημιαγωγών (wafer) από τη διαδικασία παραγωγής ΚΜΕ Το ολοκληρωμένο κύκλωμα μιας ΚΜΕ Η Κεντρική Μονάδα Επεξεργασίας (Central Processing Unit -CPU) ή απλούστερα επεξεργαστής αποτελεί το μέρος του υλικού που εκτελεί τις εντολές ενός προγράμματος υπολογιστή

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

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

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

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

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

ΕΠΛ 003: ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΕΠΙΣΤΗΜΗ ΤΗΣ ΠΛΗΡΟΦΟΡΙΚΗΣ ΕΠΛ 003: ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΕΠΙΣΤΗΜΗ ΤΗΣ ΠΛΗΡΟΦΟΡΙΚΗΣ Δρ. Κόννης Γιώργος Πανεπιστήμιο Κύπρου - Τμήμα Πληροφορικής Προγραμματισμός Στόχοι 1 Να περιγράψουμε τις έννοιες του Υπολογιστικού Προβλήματος και του Προγράμματος/Αλγορίθμου

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

ΕΦΑΡΜΟΓΕΣ ΠΛΗΡΟΦΟΡΙΚΗΣ. Α Γενικού Λυκείου (Μάθημα Επιλογής)

ΕΦΑΡΜΟΓΕΣ ΠΛΗΡΟΦΟΡΙΚΗΣ. Α Γενικού Λυκείου (Μάθημα Επιλογής) ΕΦΑΡΜΟΓΕΣ ΠΛΗΡΟΦΟΡΙΚΗΣ Α Γενικού Λυκείου (Μάθημα Επιλογής) Σύγχρονα Υπολογιστικά Συστήματα τους υπερυπολογιστές (supercomputers) που χρησιμοποιούν ερευνητικά εργαστήρια τα μεγάλα συστήματα (mainframes)

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

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Κλάσεις και Αντικείμενα Μέθοδοι

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Κλάσεις και Αντικείμενα Μέθοδοι ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ Κλάσεις και Αντικείμενα Μέθοδοι Παράδειγμα Θέλουμε ένα πρόγραμμα που να προσομοιώνει την κίνηση ενός αυτοκινήτου, το οποίο κινείται και τυπώνει τη θέση του.

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

ΠΙΝΑΚΑΣ ΠΕΡΙΕΧΟΜΕΝΩΝ

ΠΙΝΑΚΑΣ ΠΕΡΙΕΧΟΜΕΝΩΝ ii ΠΙΝΑΚΑΣ ΠΕΡΙΕΧΟΜΕΝΩΝ 1. Εισαγωγή - Βασικές έννοιες....1 1.1 Εσωτερική παράσταση δεδομένων....2 1.1.1 Παράσταση θέσης....3 1.1.2 Μετατροπές μεταξύ συστημάτων διαφορετικών βάσεων....5 1.1.3 Οι αριθμητικές

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

2.1 Αντικειµενοστρεφής προγραµµατισµός

2.1 Αντικειµενοστρεφής προγραµµατισµός 2.1 Αντικειµενοστρεφής προγραµµατισµός Στον αντικειµενοστρεφή προγραµµατισµό (object oriented programming, OOP) ένα πρόγραµµα υπολογιστή είναι ένα σύνολο αλληλεπιδρώντων αντικειµένων. Μπορεί να ειπωθεί

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

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

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

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

Αναπαράσταση Δεδομένων (2 ο μέρος) ΜΥΥ-106 Εισαγωγή στους Η/Υ και στην Πληροφορική

Αναπαράσταση Δεδομένων (2 ο μέρος) ΜΥΥ-106 Εισαγωγή στους Η/Υ και στην Πληροφορική Αναπαράσταση Δεδομένων (2 ο μέρος) ΜΥΥ-106 Εισαγωγή στους Η/Υ και στην Πληροφορική «Λογικές» πράξεις, μάσκες Πώς βρίσκουμε το υπόλοιπο μιας διαίρεσης με το 4; διαίρεση με 4 = δεξιά ολίσθηση 2 bits Το υπόλοιπο

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

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

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

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

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Κλάσεις και Αντικείμενα Μέθοδοι

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Κλάσεις και Αντικείμενα Μέθοδοι ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ Κλάσεις και Αντικείμενα Μέθοδοι Παράδειγμα 1 Θέλουμε ένα πρόγραμμα που να προσομοιώνει την κίνηση ενός αυτοκινήτου, το οποίο κινείται πάνω σε μία ευθεία πάντα

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

Σχολικό Βιβλίο - Κεφάλαιο 7 ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΜΕ PASCAL ΠΑΡΟΥΣΙΑΣΗ 13

Σχολικό Βιβλίο - Κεφάλαιο 7 ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΜΕ PASCAL ΠΑΡΟΥΣΙΑΣΗ 13 Σχολικό Βιβλίο - Κεφάλαιο 7 ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΜΕ PASCAL ΠΑΡΟΥΣΙΑΣΗ 13 ΙΣΤΟΡΙΚΑ Παρουσιάστηκε το 1970 από το Niklaus Wirth Προγενέστερη γλώσσα ήταν η Algol 60 Είναι δομημένη γλώσσα προγραμματισμού υψηλού

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

Περιεχόμενα. Πρόλογος... 17

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

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

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

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

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

Εισαγωγή σε αντικειμενοστραφή concepts. Και λίγη C#

Εισαγωγή σε αντικειμενοστραφή concepts. Και λίγη C# Εισαγωγή σε αντικειμενοστραφή concepts Και λίγη C# Κλάσεις Κλάση: τύπος δεδομένων που αποτελεί συλλογή πεδίων, ορισμών συναρτήσεων/μεθόδων και ορισμών άλλων τύπων δεδομένων. Αντίστοιχο σκεπτικό με struct

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

Είναι το «μυαλό» του υπολογιστή μας. Αυτός κάνει όλους τους υπολογισμούς και τις πράξεις. Έχει δική του ενσωματωμένη μνήμη, τη λεγόμενη κρυφή

Είναι το «μυαλό» του υπολογιστή μας. Αυτός κάνει όλους τους υπολογισμούς και τις πράξεις. Έχει δική του ενσωματωμένη μνήμη, τη λεγόμενη κρυφή 1 Είναι το «μυαλό» του υπολογιστή μας. Αυτός κάνει όλους τους υπολογισμούς και τις πράξεις. Έχει δική του ενσωματωμένη μνήμη, τη λεγόμενη κρυφή μνήμη(cache). Η cache είναι πολύ σημαντική, πολύ γρήγορη,

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

ΔΟΜΗΜΕΝΟΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ Κεφάλαιο 8 : H γλώσσα προγραµµατισµού Pascal 1 ο Μέρος σηµειώσεων (Ενότητες 8.1 & 8.2 σχολικού βιβλίου)

ΔΟΜΗΜΕΝΟΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ Κεφάλαιο 8 : H γλώσσα προγραµµατισµού Pascal 1 ο Μέρος σηµειώσεων (Ενότητες 8.1 & 8.2 σχολικού βιβλίου) ΔΟΜΗΜΕΝΟΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ Κεφάλαιο 8 : H γλώσσα προγραµµατισµού Pascal 1 ο Μέρος σηµειώσεων (Ενότητες 8.1 & 8.2 σχολικού βιβλίου) 1. Εισαγωγή Χαρακτηριστικά της γλώσσας Τύποι δεδοµένων Γλώσσα προγραµµατισµού

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

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

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

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

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

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

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

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Αναφορές Στοίβα και Σωρός Μνήμης Αντικείμενα ως ορίσματα

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Αναφορές Στοίβα και Σωρός Μνήμης Αντικείμενα ως ορίσματα ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ Αναφορές Στοίβα και Σωρός Μνήμης Αντικείμενα ως ορίσματα ΑΝΑΦΟΡΕΣ new Όπως είδαμε για να δημιουργήσουμε ένα αντικείμενο χρειάζεται να καλέσουμε τη new. Για

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