2. Προσδιοριστές, δεσμευμένες λέξεις και τύποι

Save this PDF as:
 WORD  PNG  TXT  JPG

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

Download "2. Προσδιοριστές, δεσμευμένες λέξεις και τύποι"

Transcript

1 2. Προσδιοριστές, δεσμευμένες λέξεις και τύποι Τελειώνοντας αυτό το κεφάλαιο θα μπορείτε: Να χρησιμοποιείτε σχόλια σε ένα πηγαίο πρόγραμμα Java. Να διακρίνετε σωστούς από λάθος προσδιοριστές. Να αναγνωρίζετε τις δεσμευμένες λέξεις της Java. Να παρουσιάζετε τους οκτώ βασικούς τύπους της Java. Να ορίζετε λεκτικές τιμές για αριθμητικούς και αλφαριθμητικούς τύπους. Να περιγράφετε τη βασική έννοια των όρων κλάση, αντικείμενο, μεταβλητή μέλος και αναφορά. Να δημιουργείτε έναν ορισμό μίας κλάσης σε Java για μία απλή κλάση που περιέχει βασικές μεταβλητές μέλη. Να δηλώνετε μεταβλητές τύπου κλάσης. Να δημιουργείτε, με χρήση της new, ένα αντικείμενο και να περιγράφετε την εξ ορισμού αρχικοποίησή του. Να προσπελαύνετε τις μεταβλητές μέλους ενός αντικειμένου με χρήση του συμβολισμού «τελείας». Να περιγράφετε τη σημαντικότητα μιας αναφοράς μεταβλητής και να δηλώνετε τις συνέπειες από την ανάθεση μεταξύ μεταβλητών τύπου κλάσεων. 2.1 Σχόλια Υπάρχουν τρία επιτρεπτά στυλ για την εισαγωγή σχολίων: // σχόλια σε μία γραμμή /* σχόλια σε μία ή περισσότερες γραμμές */ /** σχόλια τεκμηρίωσης */ Τα σχόλια τεκμηρίωσης τοποθετούνται αμέσως πριν έναν ορισμό (μιας μεταβλητής ή μίας μεθόδου) και δηλώνουν ότι το σχόλιο θα πρέπει να συμπεριλαμβάνεται σε οποιαδήποτε αυτόματα παραγόμενη τεκμηρίωση (τα αρχεία HTML που παράγονται από την εντολή javadoc). Τα σχόλια αυτά λειτουργούν ως περιγραφή του στοιχείου που δηλώνεται. 2.2 Ερωτηματικά, μπλοκ και κενά Στη Java οι εντολές τερματίζονται με ερωτηματικό. Ένα μπλοκ σημειώνεται μέσα σε άγκιστρα { και } και αποτελεί μία συμπαγή εντολή. Τα κενά επιτρέπονται ανάμεσα σε στοιχεία του πηγαίου κώδικα και οπουδήποτε επιτρέπεται κενό μπορείτε να χρησιμοποιήσετε όσο θέλετε. Τα κενά περιλαμβάνουν το χαρακτήρα κενό (spaces), τα tabs και την αλλαγή γραμμής, συνεπώς μπορείτε με τον τρόπο αυτό να βελτιώσετε την οπτική εμφάνιση του πηγαίου κώδικά σας. 1

2 2.3 Προσδιοριστές Στη Java ένας προσδιοριστής ξεκινά με ένα γράμμα, με underscore (_) ή με το σύμβολο του δολαρίου ($). Οι επόμενοι χαρακτήρες μπορούν να περιλαμβάνουν και αριθμητικά ψηφία. Οι προσδιοριστές επηρεάζονται από πεζά/κεφαλαία γράμματα και δεν έχουν μέγιστο μήκος. Τα ακόλουθα είναι επιτρεπτοί προσδιοριστές: identifier username User_name _sys_var1 $change ημεταβλητήμου Ο πηγαίος κώδικας σε Java γράφεται ουσιαστικά σε Unicode, και όχι σε ASCII, συνεπώς ένα γράμμα είναι σε μεγαλύτερο εύρος από το κλασικό a->z και A->Z. Προσοχή στους μη ASCII χαρακτήρες γιατί το Unicode μπορεί να υποστηρίζει διαφορετικούς χαρακτήρες οι οποίοι όμως να παρουσιάζονται ως ίδιοι. Οι προσδιοριστές μπορεί να περιέχουν, αλλά να μην είναι στην πράξη, δεσμευμένες λέξεις. Στη συνέχεια θα παρουσιάσουμε τις δεσμευμένες λέξεις. Συνεπώς, το thisone είναι επιτρεπτός προσδιοριστής, ενώ το this δεν είναι. Σημείωση Οι προσδιοριστές που περιέχουν το σύμβολο του δολαρίου ($) είναι γενικά μη συνηθισμένοι, αν και γλώσσες όπως η BASIC και οι φλοιοί του Unix, όπως και τα συστήματα VAX VMS το χρησιμοποιούν κατά κόρον. Επειδή δεν είναι συνήθεις, είναι καλύτερο να τους αποφεύγουμε εκτός αν υπάρχει μία τοπική σύμβαση ή άλλος λόγος που να χρειάζεται να συμπεριλάβουμε το σύμβολο αυτό στον προσδιοριστή. 2.4 Δεσμευμένες λέξεις abstract double int strictfp ** boolean else interface super break extends long switch byte final native synchronized case finally new this catch float package throw char for private throws class goto * protected transient const * if public try continue implements return void default import short volatile 2

3 do instanceof static while * δηλώνει μία δεσμευμένη λέξη που δε χρησιμοποιείται ** δηλώνει μία δεσμευμένη λέξη που εισήχθη στη Java 2 Σημείωση Στη Java, τα λεκτικά true, false και null είναι με πεζά, και όχι με κεφαλαία γράμματα όπως στη C++. Αυστηρά μιλώντας δεν είναι δεσμευμένες λέξεις, αλλά λεκτικά. Σημείωση Δεν υπάρχει τελεστής sizeof: το μέγεθος και η αναπαράσταση όλων των τύπων είναι προκαθορισμένη και δεν εξαρτάται από την υλοποίηση. Σημείωση Τα goto και const είναι δεσμευμένες λέξεις αλλά δε χρησιμοποιούνται στην πράξη από τη Java. 2.5 Πρωτογενείς τύποι στη Java Η Java ορίζει οκτώ πρωτογενείς τύπου δεδομένων και έναν ειδικό τύπο. Αυτοί μπορούν να χρησιμοποιηθούν ως λεκτικές τιμές ή σε μεταβλητές. Οι τύποι διακρίνονται σε τέσσερις κατηγορίες. Αυτές είναι λογικοί, κειμένου, ακέραιοι και κινητής υποδιαστολής Λογικοί boolean Οι λογικές τιμές έχουν δύο καταστάσεις. Συχνά τις σκεφτόμαστε ως «ανοικτό» και «κλειστό», «αληθές» και «ψευδές» ή «ναι» και «όχι». Στη Java μία τέτοια τιμή αναπαρίσταται με τον τύπο boolean. Ο τύπος boolean έχει δύο λεκτικές τιμές: true και false. Σημείωση. Δεν υπάρχει μετατροπή (cast) ανάμεσα σε τύπους ακεραίων και τον τύπο boolean. Ορισμένες γλώσσες, με χαρακτηριστικές τη C και την C++, επιτρέπουν σε αριθμητικές να διερμηνεύονται ως λογικές τιμές, θεωρώντας τυπικά το μηδέν ως ψευδές και τις μη μηδενικές τιμές ως αληθείς. Αυτό δεν επιτρέπεται στη Java και οπουδήποτε απαιτείται boolean δεν μπορεί να χρησιμοποιηθεί κάτι διαφορετικό Κειμένου char και String Για απλούς χαρακτήρες χρησιμοποιούμε αναπαράσταση με τον τύπο char. Ένα char αναπαριστά έναν χαρακτήρα Unicode με χρήση ενός μη προσημασμένου αριθμού των 16 bits στο εύρος Ένα λεκτικό τύπου char πρέπει να περιλαμβάνεται σε μονά εισαγωγικά ( ). a \t \u???? Το tab Ένας συγκεκριμένος Unicode, χαρακτήρας, όπου τα???? θα πρέπει να αντικατασταθούν από ακριβώς τέσσερα, δεκαεξαδικά ψηφία Ο τύπος String, που δεν είναι από τους βασικούς, χρησιμοποιείται για να αναπαραστήσει ακολουθίες χαρακτήρων. Οι χαρακτήρες είναι Unicode και οι ακολουθίες με χρήση του \ 3

4 που παρουσιάστηκαν στην περίπτωση του char, ισχύουν και εδώ. Ένα λεκτικό τύπου String περιλαμβάνεται σε διπλά εισαγωγικά ως εξής: The quick brown fox jumped over the lazy dog Ακέραιοι byte, short, int και long Υπάρχουν τέσσερις τύποι ακεραίων στη Java. Κάθε τύπος δηλώνεται με χρήση μίας από τις δεσμευμένες λέξεις byte, short, int ή long. Τα λεκτικά των ακεραίων μπορούν να αναπαρασταθούν σε δεκαδική, οκταδική ή δεκαεξαδική μορφή ως εξής: 2 Η δεκαδική τιμή είναι δύο 077 Το πρώτο μηδέν δηλώνει οκταδική τιμή 0xBABE Το αρχικό 0x δηλώνει δεκαεξαδική τιμή Σημείωση Όλοι οι ακέραιοι τύποι στη Java είναι προσημασμένοι αριθμοί. Τα ακέραια λεκτικά είναι τύπου int εκτός αν ακολουθούνται ρητά από το γράμμα L. Το L δηλώνει τιμή long. Σημειώστε ότι στη Java είναι επιτρεπτό να χρησιμοποιήσετε είτε το κεφαλαίο είτε το πεζό L, αλλά η επιλογή του πεζού γράμματος είναι άσχημη επιλογή, καθώς μπορεί να μην μπορείτε να το διακρίνετε από τον αριθμό 1 στις περισσότερες περιπτώσεις. Οι long εκδόσεις των πιο πάνω θα είναι: 2L 077L Η δεκαδική τιμή είναι δύο, ως long Το πρώτο μηδέν συνεχίζει να δηλώνει οκταδική τιμή 0xBABE Το αρχικό 0x συνεχίζει να δηλώνει δεκαεξαδική τιμή Το μήκος και το εύρος για τους τέσσερις ακέραιους τύπους παρουσιάζονται στη συνέχεια. Η αναπαράσταση του εύρους ορίζεται από την προδιαγραφή της Java ως συμπλήρωμα ως προς δύο και είναι ανεξάρτητη πλατφόρμας. Μήκος ακεραίου Όνομα ή τύπος Εύρος 8 bits byte ( ) 16 bits short ( ) 32 bits int bits long Κινητής υποδιαστολής float και double Μία μεταβλητή κινητής υποδιαστολής μπορεί να οριστεί με χρήση των δεσμευμένων λέξεων float ή double. Στη συνέχεια ακολουθούν παραδείγματα αριθμών κινητής υποδιαστολής. Ένα αριθμητικό λεκτικό είναι κινητής υποδιαστολής αν περιέχει υποδιαστολή, ή ένα μέρος εκθέτη (με το γράμμα E) ή ακολουθείται είτε από F είτε από D Μία απλή τιμή κινητής υποδιαστολής 6.02Ε23 Μία μεγάλη τιμή κινητής υποδιαστολής 4

5 2.718F Μία απλή τιμή μεγέθους float 123.4Ε+306D Μία μεγάλη τιμή double, με το D να είναι πλεονάζον Μήκος κινητής υποδιαστολής 32 bits float 64 bits double Όνομα ή τύπος Σημείωση Τα λεκτικά κινητής υποδιαστολής είναι double, εκτός αν δηλωθούν ρητά ως float. Η μορφή ενός αριθμού κινητής υποδιαστολής ορίζεται από τις προδιαγραφές της Java να ακολουθεί την IEEE 754 αναπαράσταση και να έχει τα μεγέθη που φαίνονται στον πιο πάνω πίνακα. Είναι ανεξάρτητη πλατφόρμας. 2.6 Μεταβλητές, δηλώσεις και αναθέσεις Το πιο κάτω πρόγραμμα παρουσιάζει πώς δηλώνουμε και αναθέτουμε τιμές σε μεταβλητές τύπου ακεραίου, κινητής υποδιαστολής, boolean, χαρακτήρων και συμβολοσειρών. 1 public class Assign { 2 public static void main(string args[]) { 3 4 int x, y; //ορίζουμε ακεραίους 5 float z = 3.414f; //ορισμός και ανάθεση κιν. Υποδ. 6 double w = ; //ορισμός και ανάθεση double 7 boolean truth = true; //ορισμός και ανάθεση boolean 8 9 char c; //ορισμός μεταβλητής χαρακτήρα 10 String str; //ορισμός μεταβλητής String 11 String str1= bye ; //ορισμός και ανάθεση String c = A ; //ανάθεση τιμής σε μεταβλητή char 14 str = Hi out there! //ανάθεση τιμής σε μεταβλητή String 15 x = 6; 16 y = 1000; //ανάθεση τιμής σε μεταβλητές int } 19 } 2.7 Συμβάσεις στον κώδικα της Java Κλάσεις Τα ονόματα των κλάσεων πρέπει να είναι ουσιαστικά, με πεζούς ή κεφαλαίους χαρακτήρες και με το πρώτο γράμμα να είναι κεφαλαίο. Διεπαφές Τα ονόματα των διεπαφών (interfaces) πρέπει να ξεκινάνε με κεφαλαίο το πρώτο γράμμα, όπως και των κλάσεων. 5

6 Μέθοδοι Τα ονόματα των μεθόδων πρέπει να είναι ρήματα, με πεζούς ή κεφαλαίους χαρακτήρες και με το πρώτο γράμμα να είναι πεζό. Μέσα σε κάθε όνομα μεθόδου χρησιμοποιούμε κεφαλαίο γράμμα για διαχωρισμό των λέξεων (Camel Notation). Μη χρησιμοποιείτε το underscore στα ονόματα των μεταβλητών. Σταθερές Οι σταθερές των βασικών τύπων θα πρέπει να είναι όλο κεφαλαία γράμματα και οι λέξεις να διαχωρίζονται με το χαρακτήρα underscore, ενώ οι σταθερές αντικειμένων μπορούν να είναι πεζά και κεφαλαία γράμματα. Μεταβλητές Όλες οι μεταβλητές στιγμιοτύπων, κλάσεων και οι καθολικές μεταβλητές θα πρέπει να είναι με πεζά και κεφαλαία γράμματα με το πρώτο γράμμα να είναι πεζό. Οι λέξεις διαχωρίζονται με κεφαλαία γράμματα (Camel Notation). Επίσης αποφεύγετε το σύμβολο του δολαρίου ($), καθώς το σύμβολο αυτό έχει ιδιαίτερη σημασία για τις εσωτερικές κλάσεις (inner classes) που θα δούμε στη συνέχεια. Οι μεταβλητές θα πρέπει να έχουν νόημα. Το όνομά τους θα πρέπει να υποδηλώνει στο συνήθη αναγνώστη το σκοπό χρήσης τους. Ονόματα ενός χαρακτήρα θα πρέπει να αποφεύγονται, εκτός ίσως από τις προσωρινές μεταβλητές που πρόκειται να «πεταχτούν» (για παράδειγμα, τα i, j, k, για τον έλεγχο ενός βρόχου που δεν πρόκειται να χρησιμοποιηθούν έξω από αυτόν) Άλλες συμβάσεις Δομές ελέγχου Χρησιμοποιείτε άγκιστρα ({ }) γύρω από όλες τις εντολές, ακόμα και από μονές εντολές, όταν αποτελούν μέρος μίας δομής ελέγχου όπως το if-else ή το for. Κενά Χρησιμοποιείτε μόνο μία εντολή σε κάθε γραμμή, με χρήση indentation 4 κενών για να είναι ο κώδικάς σας πιο αναγνώσιμος. Σχόλια Χρησιμοποιείτε σχόλια για επεξήγηση των τμημάτων του κώδικα που δεν είναι προφανή. Χρησιμοποιείται τα σχόλια // για απλή σχολίαση κώδικα, ώστε να μπορείτε να χρησιμοποιήσετε τα /*... */ για να σχολιάσετε μεγάλα τμήματα κώδικα (κατά τους ελέγχους). Επίσης χρησιμοποιείτε το /**... */ σχόλιο τεκμηρίωσης για να παρέχετε σε όποιον πρόκειται να συντηρήσει στο μέλλον τον κώδικά σας ένα API μέσω του javadoc. 2.8 Κατανοώντας τα αντικείμενα Εν αρχή ην... Οι πρώτες γλώσσες προγραμματισμού, και οι νέοι προγραμματιστές, έχουν την τάση να αντιμετωπίζουν τις μεταβλητές ως απομονωμένες καταστάσεις. Για παράδειγμα, αν ένα πρόγραμμα χρειάζεται να χειρίζεται ημερομηνίες, μπορούμε να δηλώσουμε τρεις διαφορετικούς ακεραίους int day, month, year; Η εντολή αυτή κάνει δύο πράγματα. Δηλώνει ότι όταν αναφερόμαστε σε day, month ή year θα χειριζόμαστε έναν ακέραιο αντί κάτι άλλου, στη μνήμη. Επίσης δεσμεύει τον απαραίτητο χώρο αποθήκευσης για τους ακεραίους αυτούς. Αν και αυτή η προσέγγιση είναι απλή στην κατανόησή της, έχει δύο σημαντικά μειονεκτήματα. Πρώτον, αν το πρόγραμμα πρέπει να παρακολουθεί περισσότερες από μία ημερομηνίες, τότε χρειαζόμαστε περισσότερες δηλώσεις. Για να διατηρήσουμε για παράδειγμα δύο ημερομηνίες γέννησης θα πρέπει να χρησιμοποιήσουμε: 6

7 int mybirthday, mybirthmonth, mybirthyear; int yourbirthday, yourbirthmonth, yourbirthyear; Η μέθοδος αυτή σύντομα θα οδηγήσει σε προβλήματα σε σχέση με το πλήθος των ονομάτων που χρειαζόμαστε. Το δεύτερο μειονέκτημα είναι ότι κάθε μία από τις τιμές αυτές είναι μία ανεξάρτητη μεταβλητή. Σε εννοιολογικό επίπεδο υπάρχει μία συσχέτιση ανάμεσα στις day, month και year. Είναι όλες μέρη του ίδιου πράγματος, στην περίπτωσή μας μίας ημερομηνίας Σύνθετοι τύποι δεδομένων Οι περισσότερες γλώσσες προγραμματισμού, ακόμα και οι παλαιότερες, υποστηρίζουν την έννοια των μεταβλητών με τύπο. Δηλαδή, μία τιμή μπορεί να είναι ακέραιος ή αριθμός κινητής υποδιαστολής ή ίσως ένας χαρακτήρας. Αν και οι γλώσσες αυτές έχουν ένα πλήθος ενσωματωμένων τύπων, θα ήταν πολύ ωραίο να μπορούσαμε να ορίσουμε νέους τύπους για να αναπαριστούν άλλες ιδέες, όπως αυτή της ημερομηνίας. Οι δυσκολίες αυτές αντιμετωπίζονται σε πολλές γλώσσες με την εισαγωγή των σύνθετων τύπων δεδομένων (aggregate data types). Οι σύνθετοι τύποι δεδομένων αναφέρονται σε ορισμένες λέξεις ως τύποι δομής (structured types) ή τύποι εγγραφής (record types). Οι σύνθετοι τύποι δεδομένων ορίζονται από τους προγραμματιστές στο πηγαίο πρόγραμμα. Από τη στιγμή που έχει γίνει ο ορισμός ο τύπος μπορεί να χρησιμοποιηθεί όπως οποιοσδήποτε άλλος. Για να ορίσει έναν τύπο, ο προγραμματιστής θα πρέπει να περιγράψει τα στοιχεία που αποτελούν ένα στιγμιότυπο της νέας μεταβλητής. Έστω η ακόλουθη δήλωση int day; Η Java γνωρίζει πόση μνήμη πρέπει να δεσμεύσει και μπορεί επίσης να ερμηνεύσει τα περιεχόμενα αυτού του χώρου μνήμης. Συνεπώς, για να ορίσουμε έναν νέο τύπο πρέπει να καθορίσουμε πόσο χώρο αποθήκευσης χρειάζεται στη μνήμη και πώς πρέπει να ερμηνεύουμε τα περιεχόμενα αυτού του χώρου. Αυτό συνήθως γίνεται, όχι χρησιμοποιώντας πλήθος bytes, ή ταξινομώντας και επεξηγώντας τι είναι κάθε bit, αλλά σε σχέση με άλλους τύπους οι οποίοι είναι ήδη γνωστοί. Για παράδειγμα για να ορίσουμε έναν τύπο που αναπαριστά μία ημερομηνία, χρειαζόμαστε επαρκή χώρο όσο για τρεις ακεραίους και θέλουμε το χώρο αυτό να τον αντιμετωπίζουμε ως τρεις διακριτούς ακεραίους. Επιπλέον, όταν τους χρησιμοποιούμε δίνουμε αντίστοιχα την έννοια της ημέρας, του μήνα και του χρόνου στους τρεις αυτούς ακεραίους. Στη Java αυτό γίνεται ως εξής: public class Date { int day; int month; int year; } Η λέξη class είναι μέρος της γλώσσας Java και πρέπει να γράφεται εξ ολοκλήρου με πεζά γράμματα. Το όνομα Date γράφεται με κεφαλαίο το πρώτο γράμμα με βάση τη σύμβαση, και όχι ως απαίτηση της γλώσσας. 7

8 Σημείωση Μία κλάση είναι κάτι περισσότερο από έναν απλό σύνθετο τύπο, αλλά αυτά τα ζητήματα θα τα δούμε στη συνέχεια. Τώρα μπορούμε να ορίσουμε μία μεταβλητή ως τύπου Date και τα μέρη της ημέρας, μήνα και χρόνου θα εννοούνται από τη δήλωση που ακολουθεί: Date mybirth, yourbirth; Με χρήση αυτής της δήλωσης η Java επιτρέπει να προσπελαύνουμε τα μέρη (day, month, year) των μεταβλητών με χρήση του τελεστή τελεία (.) όπως φαίνεται στη συνέχεια. mybirth.day = 26; mybirth.month = 11; mybirth.year = 1960; Η προσέγγιση των σύνθετων τύπων δεδομένων παρέχει ένα μέσο συσχέτισης των τμημάτων των συνιστωσών του μοντέλου μίας ημερομηνίας, αντιμετωπίζοντάς τα όχι ως απομονωμένα στοιχεία, αλλά ως στοιχεία ενός μεγαλύτερου όλου. Επίσης μειώνει το βάρος στους χώρους ονομάτων, καθώς ένα μόνο όνομα απαιτείται για κάθε ημερομηνία και όχι τρία. Κάθε ένα από τα στοιχεία που αποτελούν μία κλάση, δηλαδή, τα τμήματα day, month και year στην περίπτωση αυτή, συνήθως ονομάζονται πεδία (fields), αλλά στην αντικειμενοστρεφή ορολογία καλούνται μεταβλητές μέλη (member variables). Καθώς η Java είναι μία αντικειμενοστρεφής γλώσσα θα χρησιμοποιούμε τον όρο μεταβλητές μέλη ή απλά μέλη. Ένα στιγμιότυπο ενός σύνθετου τύπου, όπως ο Date, ονομάζεται αντικείμενο (object) Δημιουργία ενός αντικειμένου Όταν ορίζουμε μεταβλητές ενός βασικού τύπου, δηλαδή οποιουδήποτε των boolean, byte, short, int, long, float, και double, η περιοχή μνήμης δεσμεύεται ως μέρος της δήλωσης. Η δήλωση μίας μεταβλητής τύπου κλάσης, όπως η String, ή οποιουδήποτε άλλου τύπου που ορίζεται από το χρήστη, δε δεσμεύει χώρο στη μνήμη. Σημείωση Ορισμένες γλώσσες δεσμεύουν μνήμη, αλλά όχι η Java. Στην πράξη, μία μεταβλητή που δηλώνεται ότι είναι τύπου κλάσης δεν είναι από μόνη της δεδομένα, αλλά μία αναφορά σε δεδομένα. Σημείωση Μπορείτε να σκεφτόσαστε μία αναφορά ως ένα δείκτη - στις πιο πολλές υλοποιήσεις είναι ακριβώς αυτό και αν αυτή η έννοια έχει νόημα για σας, θα σας βοηθήσει στην κατανόηση. Συνεπώς, προτού να μπορέσετε να χρησιμοποιήσετε τη μεταβλητή θα πρέπει να δεσμευτεί ο πραγματικός χώρος αποθήκευσής της. Αυτό γίνεται με χρήση της δεσμευμένης λέξης new ως εξής: Date mybirth; mybirth = new Date(); Η πρώτη εντολή, η δήλωση, δεσμεύει επαρκή χώρο για την αναφορά. Η δεύτερη εντολή δεσμεύει χώρο για τους τρεις ακεραίους που χρησιμοποιούνται για να δημιουργήσουν μία Date. Η ανάθεση θέτει τη μεταβλητή mybirth ώστε να αναφέρεται ορθά στο νέο 8

9 αντικείμενο. Αφού έχουν πραγματοποιηθεί οι δύο πράξεις, μπορείτε να χειρίζεστε τις συνιστώσες του τύπου ημερομηνίας, όπως παρουσιάσαμε νωρίτερα. Ο πραγματικός αποθηκευτικός χώρος που δεσμεύεται με την κλήση της new Date() ονομάζεται αντικείμενο. Δεδομένου ενός ορισμού κλάσης για μία τυχαία κλάση Xxxx() μπορείτε να καλείτε την new Xxxx() για τη δημιουργία όσων αντικειμένων χρειαζόσαστε. Κάθε ένα είναι διακριτό από τα υπόλοιπα και έχει τη δική του αναφορά. Η αναφορά αυτή χρειάζεται για να αποθηκευθεί σε μία μεταβλητή ώστε να μπορείτε να χρησιμοποιήσετε το συνδυασμό «μεταβλητή τελεία μέλος» (όπως mybirth.day) για την προσπέλαση του κάθε μέλους του κάθε του αντικειμένου Δημιουργία ενός αντικειμένου Δέσμευση και διαμόρφωση μνήμης Στο σώμα μίας μεθόδου η δήλωση: Date today; today = new Date(); δεσμεύει αποθηκευτικό χώρο μόνο για μία αναφορά: today???? Η δημιουργία δεσμεύει και αρχικοποιεί τον αποθηκευτικό χώρο Date today; today = new Date(); today???? day month year Τέλος η ανάθεση θέτει τη μεταβλητή αναφοράς ώστε να δείχνει ορθά στο μόλις δημιουργημένο νέο αντικείμενο. Date today; today = new Date(); 9

10 today 0x01abcdef day month year Ανάθεση μεταβλητών αναφοράς Η Java αντιμετωπίζει τις μεταβλητές που δηλώνονται ως τύπου κλάσης ως αναφορές και αυτό έχει ορισμένες συνέπειες σχετικά με την έννοια της ανάθεσης. Έστω το ακόλουθο τμήμα κώδικα: int x = 7; int y = x; String s = Hello ; String t = s; Δημιουργούνται τέσσερις μεταβλητές: δύο τύπου int και δύο αναφορές σε String. Η τιμή της x είναι 7 και η τιμή αυτή αντιγράφεται στην y. Αμφότερες οι x και y είναι ανεξάρτητες μεταβλητές και μελλοντικές αλλαγές σε μία από τις δύο δεν επηρεάζουν την άλλη. Με τις μεταβλητές s και t υπάρχει μόνο ένα αντικείμενο String, και περιέχει το κείμενο Hello. Αμφότερες οι s και t αναφέρονται σε ένα μόνο αντικείμενο. x y s t 7 7 0x x Hello Εξ ορισμού αρχικοποίηση και η τιμή αναφοράς null Όταν εκτελείτε τη new για να δεσμεύσετε μνήμη για ένα αντικείμενο η Java αρχικοποιεί τις τιμές στο αποθηκευτικό χώρο σε μηδέν. Για τις αριθμητικές τιμές η τιμή είναι πράγματι το μηδέν. Για μεταβλητές boolean η τιμή είναι false. Για αναφορές, δηλαδή για οποιαδήποτε μεταβλητή τύπου αντικειμένου, χρησιμοποιείται μία ειδική τιμή η null. Στη Java η τιμή null δηλώνει ότι η αναφορά δεν αναφέρεται σε κάποιο αντικείμενο. Αυτό επιτρέπει στο σύστημα εκτέλεσης να ανιχνεύει τη χρήση μίας τέτοιας αναφοράς και να σταματά αμέσως την προσπέλαση, με καθαρό τρόπο και ανεξάρτητα από την 10

11 πλατφόρμα, χωρίς να επιτρέπει να συμβεί κάποια ζημιά. Περισσότερες λεπτομέρειες σχετικά με αυτή τη συμπεριφορά θα δούμε στη συνέχεια. Σημείωση Η εξ ορισμού αρχικοποίηση λαμβάνει χώρα μόνο στις μεταβλητές μέλη, όχι στις αυτόματες ή τοπικές μεταβλητές μεθόδων. Η χρήση μίας αυτόματης μεταβλητής προτού να της έχει σίγουρα ανατεθεί τιμή είναι λάθος κατά το χρόνο μεταγλώττισης. Μπορείτε όμως να αναθέσετε την τιμή null σε μία μεταβλητή. Οι προγραμματιστές C και C++ θα πρέπει να προσέξουν καθώς το λεκτικό null στη Java είναι με πεζά γράμματα σε αντίθεση με το αντίστοιχό του στις γλώσσες αυτές Επανάληψη στην ορολογία Στο κεφάλαιο αυτό εισαγάγαμε αρκετούς όρους. Στο υποκεφάλαιο αυτό θα τους δούμε εν συντομία Σύνθετοι τύποι δεδομένων Μία (μάλλον μαθηματική) ονομασία για ένα προγραμματιστικό μοντέλο. Το μοντέλο δημιουργείται τοποθετώντας μεταβλητές που περιγράφουν τις διαφορετικές απόψεις που καθορίζουν την κατάσταση μίας οντότητας σε ένα μόνο ορισμό. Από τη στιγμή που έχει οριστεί οι μεταβλητές μπορούν να δημιουργούνται με χρήση του ονόματος του τύπου. Ορισμένες γλώσσες χρησιμοποιούν τον όρο Εγγραφή ή τύποι δομής. Η Java χρησιμοποιεί τον όρο Κλάση (class). Κλάση Η αντικειμενοστρεφής έκδοση ενός σύνθετου τύπου αντικειμένων. Αυστηρά η ιδέα της κλάσης είναι υποσύνολο της ιδέας του σύνθετου τύπου δεδομένων, αλλά δεν έχουμε ακόμα αναφερθεί στα πολλά επιπλέον χαρακτηριστικά που έχει μία κλάση. Αντικείμενο Ένα στιγμιότυπο μίας κλάσης. Η κλάση μπορεί να θεωρηθεί ως ένα πρότυπο ένα μοντέλο για το αντικείμενο που περιγράφεται. Το αντικείμενο είναι αυτό που λαμβάνετε κάθε φορά που δημιουργείτε ένα στιγμιότυπο μίας κλάσης. Μέλος Ένα μέλος είναι ένα από τα στοιχεία που δημιουργούν το αντικείμενο. Ο όρος χρησιμοποιείται επίσης για τα στοιχεία της κλάσης που ορίζεται. Οι όροι μεταβλητή μέλος, μεταβλητή στιγμιοτύπου και πεδίο χρησιμοποιούνται χωρίς διάκριση. Αναφορά Στη Java, μία μεταβλητή που ορίζεται να έχει τύπο κλάσης δεν έχει στην πράξη τα δεδομένα για το αντικείμενο. Αντ αυτού η μεταβλητή είναι ένα μέσο αναγνώρισης ενός συγκεκριμένου αντικειμένου. Αυτού του είδους οι μεταβλητές ονομάζονται αναφορές. 11

12 2.9 Ασκήσεις Επίπεδο 1: Δημιουργία μιας κλάσης Java και των αντικειμένων 1. Ένα σημείο μπορεί να χαρακτηριστεί από τις συντεταγμένες x και y. Ορίστε μία κλάση Java που θα ονομάσετε Point και η οποία αναπαριστά την ιδέα αυτή. Πώς θα πρέπει να ονομάσετε το αρχείο; 2. Γράψτε τη μέθοδο main(), μέσα στην κλάση σας και στη συνέχεια δηλώστε δύο μεταβλητές τύπου Point. Ονομάστε τις μεταβλητές start και end. Δημιουργήστε δύο αντικείμενα με χρήση της new Point() και θέστε τις τιμές αναφοράς στις μεταβλητές. 3. Αναθέστε στα μέλη x και y του αντικειμένου start την τιμή Αναθέστε στο x του end την τιμή 20, και στο y την τιμή Εκτυπώστε τις τιμές για αμφότερα τα μέλη κάθε ενός από τα αντικείμενα start και end. 6. Μεταγλωττίστε και εκτελέστε το πρόγραμμα. Για το βήμα 5 θα πρέπει να ξέρετε μερικά ακόμα πράγματα σχετικά με την κλάση System.out. Το System.out.println() με ένα όρισμα String παρουσιάζει στην έξοδο μία συμβολοσειρά και ξεκινά μία νέα γραμμή. Η System.out.print() δεν ξεκινά νέα γραμμή. Αν χρησιμοποιήσετε τη System.out.print() θα πρέπει μετά να καλέσετε είτε τη System.out.println είτε τη System.out.flush() πριν τερματίσετε την εφαρμογή ώστε να εμφανιστεί αλλαγή γραμμής. Για να παρουσιάσετε αριθμούς μπορείτε να χρησιμοποιήσετε την ακόλουθη μορφή, που θα δούμε στη συνέχεια: System.out.println( Start Point = X: + start.x + Y: + start.y); Σημείωση Το σύμβολο συν (+) μετατρέπει τον τελεσταίο σε String αν ο πρώτος είναι επίσης String Επίπεδο 2: Επιθεωρώντας μία ανάθεση αναφοράς Χρησιμοποιώντας την κλάση Point που δημιουργήσατε πριν προσθέστε κώδικα στη μέθοδο main() για να κάνει τα ακόλουθα: 1. Ορίστε μία νέα μεταβλητή τύπου Point με όνομα stray. Θέστε αυτή την τιμή αναφοράς στην υπάρχουσα μεταβλητή end. 2. Εκτυπώστε τις τιμές των μελών x και y αμφοτέρων των μεταβλητών end και stray. 3. Θέστε νέες τιμές σε αμφότερα τα x και y της stray. 4. Εκτυπώστε τις τιμές των μελών αμφοτέρων των end και stray. Μεταγλωττίστε και εκτελέστε την κλάση Point. Παρατηρήστε ότι οι τιμές που αναφέρονται στην end αντικατοπτρίζουν τις αλλαγές που έγιναν στην stray, δηλώνοντας ότι και οι δύο μεταβλητές αναφέρονται στο ίδιο αντικείμενο Point. 5. Θέστε νέες τιμές σε αμφότερα τα μέλη x και y της start. 12

13 6. Εκτυπώστε τις τιμές των μελών αμφοτέρων των start και end. Μεταγλωττίστε και εκτελέστε ξανά την κλάση Point. Παρατηρήστε αυτή τη φορά ότι οι τιμές του start είναι ανεξάρτητες αυτών των stray και end, πράγμα που δηλώνει ότι η μεταβλητή start συνεχίζει να αναφέρεται σε ένα αντικείμενο Point διακριτό από αυτό στο οποίο αναφέρονται οι stray και end. 13

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

ΠΛΗΡΟΦΟΡΙΚΗ Ι 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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Εργαστήριο Java. Διδάσκουσα: Εργαστηριακοί Συνεργάτες:

Εργαστήριο Java. Διδάσκουσα: Εργαστηριακοί Συνεργάτες: Εργαστήριο Java Διδάσκουσα: Πρέντζα Ανδριάνα aprentza@unipi.gr Εργαστηριακοί Συνεργάτες: Γεωργιοπούλου Ρούλα Λύβας Χρήστος roulageorio@ssl-unipi.gr clyvas@unipi.gr Εργαστήριο 2 Βασικοί Τύποι Μεταβλητών

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

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

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

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

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

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

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

Δεδομένα, τελεστές, είσοδος/έξοδος

Δεδομένα, τελεστές, είσοδος/έξοδος 2 Δεδομένα, τελεστές, είσοδος/έξοδος Τι θα δούμε σε αυτό το μάθημα 1. βασικοί τύποι δεδομένων 2. ακέραιοι 3. κινητής υποδιαστολής 4. ο τύπος decimal 5. χαρακτήρες 6. bool 7. string 8. χρήση μεταβλητών

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

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

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

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

Μπορείτε να δηλώσετε πίνακα οποιουδήποτε τύπου είτε βασικού είτε κλάσης:

Μπορείτε να δηλώσετε πίνακα οποιουδήποτε τύπου είτε βασικού είτε κλάσης: 4. Πίνακες Τελειώνοντας αυτό το κεφάλαιο θα μπορείτε: Να δηλώνετε και να δημιουργείτε πίνακες βασικών τύπων, κλάσεων ή άλλων πινάκων Να δηλώνετε την ανάγκη, και να μπορείτε να αρχικοποιήσετε τα στοιχεία

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

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

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

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

ΑΤΕΙ ΘΕΣΣΑΛΟΝΙΚΗΣ ΤΜΗΜΑ ΜΗΧΑΝΙΚΩΝ ΠΛΗΡΟΦΟΡΙΚΗΣ Αλγοριθμική και Προγραμματισμός ΒΑΣΙΚΟΙ ΤΥΠΟΙ ΔΕΔΟΜΕΝΩΝ ΣΤΗ JAVA ΤΕΛΕΣΤΕΣ - ΜΕΤΑΒΛΗΤΕΣ

ΑΤΕΙ ΘΕΣΣΑΛΟΝΙΚΗΣ ΤΜΗΜΑ ΜΗΧΑΝΙΚΩΝ ΠΛΗΡΟΦΟΡΙΚΗΣ Αλγοριθμική και Προγραμματισμός ΒΑΣΙΚΟΙ ΤΥΠΟΙ ΔΕΔΟΜΕΝΩΝ ΣΤΗ JAVA ΤΕΛΕΣΤΕΣ - ΜΕΤΑΒΛΗΤΕΣ ΑΤΕΙ ΘΕΣΣΑΛΟΝΙΚΗΣ ΤΜΗΜΑ ΜΗΧΑΝΙΚΩΝ ΠΛΗΡΟΦΟΡΙΚΗΣ Αλγοριθμική και Προγραμματισμός Παναγιώτης Σφέτσος sfetsos@it.teithe.gr ΒΑΣΙΚΟΙ ΤΥΠΟΙ ΔΕΔΟΜΕΝΩΝ ΣΤΗ JAVA ΤΕΛΕΣΤΕΣ - ΜΕΤΑΒΛΗΤΕΣ Ας δούμε το απλό πρόγραμμα

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

Οντοκεντρικός Προγραμματισμός

Οντοκεντρικός Προγραμματισμός Οντοκεντρικός Προγραμματισμός Ενότητα 2: Η ΓΛΩΣΣΑ JAVA Σύγκριση JAVA-C ΔΙΔΑΣΚΟΝΤΕΣ: Ιωάννης Χατζηλυγερούδης, Χρήστος Μακρής Πολυτεχνική Σχολή Τμήμα Μηχανικών Η/Υ & Πληροφορικής ΣΥΓΚΡΙΣΗ JAVA - C ΤΥΠΟΙ

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

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

Αντικειμενοστρεφής Προγραμματισμός ΑΡΙΣΤΟΤΕΛΕΙΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΕΣΣΑΛΟΝΙΚΗΣ ΑΝΟΙΚΤΑ ΑΚΑΔΗΜΑΙΚΑ ΜΑΘΗΜΑΤΑ Αντικειμενοστρεφής Προγραμματισμός Ενότητα 2: Κλάσεις, Αντικείμενα και η Σύνταξη της Java Γρηγόρης Τσουμάκας, Επικ. Καθηγητής Άδειες Χρήσης

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

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

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

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

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

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

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

ΠΛΗΡΟΦΟΡΙΚΗ ΙΙ (JAVA) 11/3/2008

ΠΛΗΡΟΦΟΡΙΚΗ ΙΙ (JAVA) 11/3/2008 ΠΛΗΡΟΦΟΡΙΚΗ ΙΙ (JAVA) 11/3/2008 Κατασκευαστές (Constructors) Ειδικός τύπος μεθόδων, οι οποίες: - είναι public και έχουν το ίδιο όνομα με αυτό της κλάσης - χρησιμοποιούνται για να αρχικοποιήσουν κάποιες

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

ΑΤΕΙ ΘΕΣΣΑΛΟΝΙΚΗΣ ΤΜΗΜΑ ΜΗΧΑΝΙΚΩΝ ΠΛΗΡΟΦΟΡΙΚΗΣ Αλγοριθμική και Προγραμματισμός

ΑΤΕΙ ΘΕΣΣΑΛΟΝΙΚΗΣ ΤΜΗΜΑ ΜΗΧΑΝΙΚΩΝ ΠΛΗΡΟΦΟΡΙΚΗΣ Αλγοριθμική και Προγραμματισμός ΑΤΕΙ ΘΕΣΣΑΛΟΝΙΚΗΣ ΤΜΗΜΑ ΜΗΧΑΝΙΚΩΝ ΠΛΗΡΟΦΟΡΙΚΗΣ Αλγοριθμική και Προγραμματισμός Παναγιώτης Σφέτσος sfetsos@it.teithe.gr Εντολές ελέγχου συγκρίσεων επιλογής ή διακλαδώσεων ( if switch) Μία από τις σημαντικότερες

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

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

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

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

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

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

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

Κλάσεις στη Java. Παύλος Εφραιμίδης. Java Κλάσεις στη Java 1

Κλάσεις στη Java. Παύλος Εφραιμίδης. Java Κλάσεις στη Java 1 Κλάσεις στη Java Παύλος Εφραιμίδης Java Κλάσεις στη Java 1 Κλάσεις στην Java Θα δούμε τη διαδικασία δημιουργίας μιας κλάσης Θα υλοποιήσουμε μια κλάση για τη Δομή Δεδομένων Stack Java Κλάσεις στη Java 2

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

ΕΠΛ 012. JavaScripts

ΕΠΛ 012. JavaScripts ΕΠΛ 012 JavaScripts Γλώσσα JavaScript (JS) ηµιουργεί δυναµικές ιστοσελίδες και αλληλεπιδράσεις µε το χρήστη εν είναι Java, αλλά είναι αντικειµενοστραφής (απλό µοντέλο υποκειµένων) Objects, properties (τιµές

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

Κλάσεις στη Java. Στοίβα - Stack. Δήλωση της κλάσης. ΗκλάσηVector της Java. Ηκλάση Stack

Κλάσεις στη Java. Στοίβα - Stack. Δήλωση της κλάσης. ΗκλάσηVector της Java. Ηκλάση Stack Κλάσεις στην Java Κλάσεις στη Java Παύλος Εφραιμίδης Θα δούμε τη διαδικασία δημιουργίας μιας κλάσης Θα υλοποιήσουμε μια κλάση για τη Δομή Δεδομένων Stack Java Κλάσεις στη Java 1 Java Κλάσεις στη Java 2

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

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

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

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

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

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

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

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

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

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

6. Εξαιρέσεις στη γλώσσα Java

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

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

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

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

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

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

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

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

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

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

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

Π. Σταθοπούλου ή Οµάδα Α (Φοιτητές µε µονό αριθµό Μητρώου ) ιδασκαλία : Παρασκευή 11πµ-13µµ ΗΛ7

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Απλές Δοµές Δεδοµένων Στην ενότητα αυτή θα γνωρίσουµε ορισµένες απλές Δοµές Δεδοµένων και θα τις χρησιµοποιήσουµε για την αποδοτική επίλυση του προβλή

Απλές Δοµές Δεδοµένων Στην ενότητα αυτή θα γνωρίσουµε ορισµένες απλές Δοµές Δεδοµένων και θα τις χρησιµοποιήσουµε για την αποδοτική επίλυση του προβλή Απλές Δοµές Δεδοµένων Απλές Δοµές Δεδοµένων Στην ενότητα αυτή θα γνωρίσουµε ορισµένες απλές Δοµές Δεδοµένων και θα τις χρησιµοποιήσουµε για την αποδοτική επίλυση του προβλήµατος του ευσταθούς ταιριάσµατος

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

ΒΑΣΙΚΟΙ ΤΥΠΟΙ ΚΑΙ ΠΙΝΑΚΕΣ

ΒΑΣΙΚΟΙ ΤΥΠΟΙ ΚΑΙ ΠΙΝΑΚΕΣ ΒΑΣΙΚΟΙ ΤΥΠΟΙ ΚΑΙ ΠΙΝΑΚΕΣ Γεώργιος Παπαϊωάννου (2013-16) gepap@aueb.gr Περιγραφή: Βασικοί Τύποι Πίνακες (μέρος 1) Συμβολοσειρές Ο Προεπεξεργαστής Τελευταία ενημέρωση: Σεπτέμβριος 2016 Εισαγωγή - 2 short:

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

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

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

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

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

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

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

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

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

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

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Εισαγωγή στη Java III

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Εισαγωγή στη Java III ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ Εισαγωγή στη Java III Το if-else statement Το if-else statement δουλεύει καλά όταν στο condition θέλουμε να περιγράψουμε μια επιλογή με δύο πιθανά ενδεχόμενα.

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

ΔΟΜΗΜΕΝΟΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ Κεφάλαιο 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. Εισαγωγή Χαρακτηριστικά της γλώσσας Τύποι δεδοµένων Γλώσσα προγραµµατισµού

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

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

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

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

Εισαγωγή στον Προγραµµατισµό, Αντώνιος Συµβώνης, ΣΕΜΦΕ, ΕΜΠ,, Slide 6

Εισαγωγή στον Προγραµµατισµό, Αντώνιος Συµβώνης, ΣΕΜΦΕ, ΕΜΠ,, Slide 6 Εκµάθηση αντικειµενοστραφή προγρ/σµού Η εκµάθηση µίας γλώσσας προγραµµατισµού µπορεί να χωρισθεί σε δύο µέρη Εβδοµάδα 6: Η βιβλιοθήκη κλάσεων της Java Εκµάθηση της γλώσσας Σύνταξη, εντολές επιλογής, βρόγχοι,

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

ιορθώσεις επί της 2 ης έκδοσης εκτύπωσης 2002

ιορθώσεις επί της 2 ης έκδοσης εκτύπωσης 2002 ιορθώσεις επί της 2 ης έκδοσης εκτύπωσης 2002 Καταγράφονται παρακάτω λάθη που αναφέρονται στην δεύτερη έκδοση του βιβλίου εκτύπωσης 2002. Τα λάθη εντοπίστηκαν πριν από την 03/01/2003. Γενική διόρθωση Αφορά

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

ΠΛΗΡΟΦΟΡΙΚΗ Ι 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

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

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

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

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

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

ΤΕΧΝΟΛΟΓΙΑ ΚΑΙ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΥΠΟΛΟΓΙΣΤΩΝ ΠΑΝΕΠΙΣΤΗΜΙΟ ΠΑΤΡΩΝ ΠΟΛΥΤΕΧΝΙΚΗ ΣΧΟΛΗ ΤΜΗΜΑ ΜΗΧΑΝΙΚΩΝ Η/Υ ΚΑΙ ΠΛΗΡΟΦΟΡΙΚΗΣ ΤΕΧΝΟΛΟΓΙΑ ΚΑΙ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΥΠΟΛΟΓΙΣΤΩΝ ΠΑΝΕΠΙΣΤΗΜΙΟ ΠΑΤΡΩΝ ΠΟΛΥΤΕΧΝΙΚΗ ΣΧΟΛΗ ΤΜΗΜΑ ΜΗΧΑΝΙΚΩΝ Η/Υ ΚΑΙ ΠΛΗΡΟΦΟΡΙΚΗΣ Τελεστές - Κατηγορίες Εκφράσεις - Κατηγορίες Υπολογισμός εκφράσεων Προτάσεις - Κατηγορίες

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

Ηλεκτρονικοί Υπολογιστές

Ηλεκτρονικοί Υπολογιστές ΑΡΙΣΤΟΤΕΛΕΙΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΕΣΣΑΛΟΝΙΚΗΣ ΑΝΟΙΧΤΑ ΑΚΑΔΗΜΑΪΚΑ ΜΑΘΗΜΑΤΑ Ενότητα 3: Μεταβλητές στη C++ Ζαχαρούλα Ανδρεοπούλου Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative Commons.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Δημιουργώντας δικές μας Κλάσεις και Αντικείμενα ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ Δημιουργώντας δικές μας Κλάσεις και Αντικείμενα Μαθήματα από το πρώτο εργαστήριο Δημιουργία αντικειμένου Scanner Scanner input = new Scanner(System.in); Το

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

Οντοκεντρικός Προγραμματισμός

Οντοκεντρικός Προγραμματισμός Οντοκεντρικός Προγραμματισμός Ενότητα 5: H ΓΛΩΣΣΑ C++ Διαφορές Java και C++ ΔΙΔΑΣΚΟΝΤΕΣ: Ιωάννης Χατζηλυγερούδης, Χρήστος Μακρής Πολυτεχνική Σχολή Τμήμα Μηχανικών Η/Υ & Πληροφορικής ΔΙΑΦΟΡΕΣ JAVA C++ Η

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

Το πρόγραμμα HelloWorld.java. HelloWorld. Κλάσεις και Αντικείμενα (2) Ορισμός μιας Κλάσης (1) Παύλος Εφραιμίδης pefraimi <at> ee.duth.

Το πρόγραμμα HelloWorld.java. HelloWorld. Κλάσεις και Αντικείμενα (2) Ορισμός μιας Κλάσης (1) Παύλος Εφραιμίδης pefraimi <at> ee.duth. Το πρόγραμμα HelloWorld.java Σχόλια στη Java HelloWorld Παύλος Εφραιμίδης pefraimi ee.duth.gr Java Το πρόγραμμα HelloWorld 1 Java Το πρόγραμμα HelloWorld 2 Σχόλια στη Java ΗγλώσσαJava υποστηρίζει

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

Αντικείμενα στη Java. Παύλος Εφραιμίδης. Java Αντικείμενα στη Java 1

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

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

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

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

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

B. Ενσωμάτωση Ιθαγενών Μεθόδων

B. Ενσωμάτωση Ιθαγενών Μεθόδων B. Ενσωμάτωση Ιθαγενών Μεθόδων Στο τέλος αυτού του κεφαλαίου θα μπορείτε: Να δημιουργείτε κώδικα Java που θα φορτώνει βιβλιοθήκες και θα καλεί ιθαγενείς μεθόδους (native methods). Να χρησιμοποιείτε τη

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

Στόχοι και αντικείμενο ενότητας. Εκφράσεις. Η έννοια του τελεστή. #2.. Εισαγωγή στη C (Μέρος Δεύτερο) Η έννοια του Τελεστή

Στόχοι και αντικείμενο ενότητας. Εκφράσεις. Η έννοια του τελεστή. #2.. Εισαγωγή στη C (Μέρος Δεύτερο) Η έννοια του Τελεστή Στόχοι και αντικείμενο ενότητας Η έννοια του Τελεστή #2.. Εισαγωγή στη C (Μέρος Δεύτερο) Εκφράσεις Προτεραιότητα Προσεταιριστικότητα Χρήση παρενθέσεων Μετατροπές Τύπων Υπονοούμενες και ρητές μετατροπές

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

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

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

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

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

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

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

Οικονόμου Βαγγέλησ Διάλεξη Νο 2. Δομημένοσ Προγραμματιςμόσ - Διάλεξη 2

Οικονόμου Βαγγέλησ Διάλεξη Νο 2. Δομημένοσ Προγραμματιςμόσ - Διάλεξη 2 Οικονόμου Βαγγέλησ Διάλεξη Νο 2 Δομημένοσ Προγραμματιςμόσ - Διάλεξη 2 1 Η έννοια τησ μεταβλητήσ έδωςε λύςη ςτο πρόβλημα τησ αναφοράσ ςτην κύρια μνήμη του υπολογιςτή. Οι γλώςςεσ προγραμματιςμού υποςτηρίζουν

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

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Εισαγωγή στη Java

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Εισαγωγή στη Java ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ Εισαγωγή στη Java Είσοδος Χρησιμοποιούμε την κλάση Scanner της Java import java.util.scanner; Αρχικοποιείται με το ρεύμα εισόδου: Scanner in = new Scanner(System.in);

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

Εισαγωγή στον Προγραµµατισµό, Αντώνιος Συµβώνης, ΣΕΜΦΕ, ΕΜΠ,, Slide 6

Εισαγωγή στον Προγραµµατισµό, Αντώνιος Συµβώνης, ΣΕΜΦΕ, ΕΜΠ,, Slide 6 Ανασκόπηση Μια εφαρµογή Java είναι ένα σύνολο από συνεργαζόµενες κλάσεις Εβδοµάδα 2: Αντικείµενα, Κλάσεις και Μέθοδοι Εισαγωγή στον Προγραµµατισµό,,, Slide 1 Εισαγωγή στον Προγραµµατισµό,,, Slide 2 Ανασκόπηση:

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

ΠΛΗΡΟΦΟΡΙΚΗ ΙI Ενότητα 3: Έλεγχος ροής προγράμματος

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

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

CSD Univ. of Crete Φθινόπωρο Άσκηση 1 Εκφώνηση

CSD Univ. of Crete Φθινόπωρο Άσκηση 1 Εκφώνηση Άσκηση 1 Εκφώνηση Αναπτύξτε ένα πρόγραμμα σε Java σύμφωνα με το οποίο το σύστημα θα προσθέτει τους αριθμούς 12.0 και 24.0 και θα δίνει στην κύρια έξοδο το αποτέλεσμα της άθροισης Να χρησιμοποιήσετε αντί

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

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

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

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

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

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

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

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

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

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

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Μαθήματα από τα εργαστήρια

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Μαθήματα από τα εργαστήρια ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ Μαθήματα από τα εργαστήρια ΕΡΓΑΣΤΗΡΙΟ 1 Μαθήματα από το πρώτο εργαστήριο Δημιουργία αντικειμένου Scanner Scanner input = new Scanner(System.in); Το αντικείμενο

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

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

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

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

I (JAVA) Ονοματεπώνυμο: Α. Μ.: Δώστε τις απαντήσεις σας ΕΔΩ: Απαντήσεις στις σελίδες των ερωτήσεων ΔΕΝ θα ληφθούν υπ όψην.

I (JAVA) Ονοματεπώνυμο: Α. Μ.: Δώστε τις απαντήσεις σας ΕΔΩ: Απαντήσεις στις σελίδες των ερωτήσεων ΔΕΝ θα ληφθούν υπ όψην. I (JAVA) Ονοματεπώνυμο: Α. Μ.: + ΦΥΛΛΟ ΑΠΑΝΤΗΣΕΩΝ Δώστε τις απαντήσεις σας ΕΔΩ: Απαντήσεις στις σελίδες των ερωτήσεων ΔΕΝ θα ληφθούν υπ όψην. + 1 ΦΥΛΛΟ ΑΠΑΝΤΗΣΕΩΝ (σελ. 2/3) 2 ΦΥΛΛΟ ΑΠΑΝΤΗΣΕΩΝ (σελ. 3/3)

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

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

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

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

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

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

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

ΘΠ06 Μεταγλωττιστές. Εργασία Εξαμήνου: Υλοποίηση ενός Μεταγλωττιστή για τη Γλώσσα Floop2009

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

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

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

Αλγοριθμική & Δομές Δεδομένων- Γλώσσα Προγραμματισμού Ι (PASCAL) (PASCAL ) Μεταβλητές- Τύποι- Τελεστές Αλγοριθμική & Δομές Δεδομένων- Γλώσσα Προγραμματισμού Ι (PASCAL) (PASCAL ) Μεταβλητές- Τύποι- Τελεστές Μεταβλητές 2 Δήλωση μεταβλητών Η δήλωση (declaration) πληροφορεί το μεταγλωττιστή για το όνομα και

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

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

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

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

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

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

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

Γιάννης Σαμωνάκης. 1 ο ΣΧΟΛΕΙΟ ΚΩΔΙΚΑ «Βασικά Θέματα Προγραμματισμού στην Ανάπτυξη Δυναμικών Διαδικτυακών Εφαρμογών» (Part 4 - PHP)

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

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

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

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

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

32-bit signed υποδιαστολής) Double διπλής ακρίβειας 64-bit signed Char unicode character 16-bit Boolean Boolean true or false

32-bit signed υποδιαστολής) Double διπλής ακρίβειας 64-bit signed Char unicode character 16-bit Boolean Boolean true or false 3. Τύποι δεδομένων - εντολές - τελεστές 3.1 Τύποι δεδομένων στην JAVA Οι τύποι δεδομένων στην JAVA είναι σαν αυτούς της C με μόνη διαφορά ότι το μέγεθός τους (σε bytes) είναι γνωστό και ίδιο σε όλες τις

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

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

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

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

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

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

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

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

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

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

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

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

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

Αντικείµενα. ηµιουργία και χρησιµοποίηση αντικειµένων. ηµιουργία αντικειµένων

Αντικείµενα. ηµιουργία και χρησιµοποίηση αντικειµένων. ηµιουργία αντικειµένων Αντικείµενα ηµιουργία και χρησιµοποίηση αντικειµένων ηµιουργία αντικειµένων Για να δηµιουργήσω ένα νέο αντικείµενο χρησιµοποιώ τον τελεστή new µε τοόνοµατηςκλάσηςαπότηνοποίαθέλωναδηµιουργήσωένααντικείµενο,

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