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

Σχετικά έγγραφα
Εισαγωγή στον Προγραμματισμό

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

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

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

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

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

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

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

Πληροφορική 2. Γλώσσες Προγραμματισμού

Σχεδίαση Εφαρμογών και Υπηρεσιών Διαδικτύου 7 η Διάλεξη: Σύντομη εισαγωγή στην Java

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

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

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

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

Σχεδίαση με Ηλεκτρονικούς Υπολογιστές (ΗΥ)

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

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

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

Εισαγωγή στη γλώσσα προγραμματισμού JAVA. Δομές Δεδομένων Διδάσκων: Π.Α. Μήτκας Τομέας Ηλεκτρονικής και Υπολογιστών

ΕΙΔΗ,ΤΕΧΝΙΚΕΣ ΚΑΙ ΠΕΡΙΒΑΛΛΟΝΤΑ ΠΡΟΓΡΑΜΜΑΤΙ- ΣΜΟΥ

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

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

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

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

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

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

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

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

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

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

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

Εισαγωγή. Διαλέξεις στο μάθημα: Μεταφραστές Γιώργος Μανής

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

Κεφάλαιο 3 Λειτουργικά Συστήματα Β ΕΠΑΛ

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

Μαλούτα Θεανώ Σελίδα 1

Δεδομένα & Αναπαράσταση Πληροφορίας

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

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

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

ΛΟΓΙΣΜΙΚΟ (software)

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

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

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

Α. Ερωτήσεις Ανάπτυξης

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

Τεχνικές σχεδίασης προγραμμάτων, Προγραμματιστικά Περιβάλλοντα

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

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

ΚΕΦΑΛΑΙΟ 5. Κύκλος Ζωής Εφαρμογών ΕΝΟΤΗΤΑ 2. Εφαρμογές Πληροφορικής. Διδακτικές ενότητες 5.1 Πρόβλημα και υπολογιστής 5.2 Ανάπτυξη εφαρμογών

ΠΡΟΒΛΗΜΑ ΕΠΕΓΕΡΓΑΣΙΑ. (Είναι οι σκέψεις και οι πράξεις που κάνουμε για να λυθεί το πρόβλημα) ΕΙΣΟΔΟΥ - ΕΞΟΔΟΥ

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

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

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

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

Αντικειμενοστραφής Προγραμματισμός I (5 ο εξ) Εργαστήριο #1 ο : Εισαγωγή στο Περιβάλλον Ανάπτυξης (IDE)

Αντικειμενοστραφής Προγραμματισμός I(5 ο εξ) Εργαστήριο #1 ο : Εισαγωγή στο Περιβάλλον Ανάπτυξης (IDE)

Προγραμματισμός και Χρήση Ηλεκτρονικών Υπολογιστών - Βασικά Εργαλεία Λογισμικού

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

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

Λ.Σ. και Ασφάλεια Πληροφοριακών Συστημάτων

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

Κεφάλαιο 2 ο Βασικές Έννοιες Αλγορίθμων (σελ )

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

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

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

ΕΠΛ 233: Αντικειμενοστρεφής Προγραμματισμός (Object-oriented programming)

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

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

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

ΠΛΗΡΟΦΟΡΙΚΗ ΙΙ (JAVA) 26/2/2008

Ελληνική Δημοκρατία Τεχνολογικό Εκπαιδευτικό Ίδρυμα Ηπείρου. Πληροφορική II. Ενότητα 3 : Γλώσσες προγραμματισμού. Δρ.

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

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

Μάθημα 10 ο ΔΙΑΧΕΙΡΙΣΗ ΕΙΣΟΔΟΥ ΕΞΟΔΟΥ (INPUT/OUTPUT)

11/1/18. Κεφάλαιο 2. Κατανόηση των ψηφιακών εξαρτηµάτων. Εξέταση του υπολογιστή: Από τι αποτελείται. Στόχοι. Κατανόηση του υπολογιστή σας

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

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

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

Χωρική Βάση δεδοµένων Autocad

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

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

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

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

ΕΡΓΑΣΤΗΡΙΟ 1 ΕΙΣΑΓΩΓΗ ΣΤΗ C. Τµήµα Πληροφορικής και Τηλεπικοινωνιών

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

Συμβολική γλώσσα Εκπαιδευτικού Υπολογιστή - Λογισμικό Υπολογιστών

Προγραμματισμός Υπολογιστών

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

ΗΜΥ 100 Εισαγωγή στην Τεχνολογία ιάλεξη 5

ΚΕΦΑΛΑΙΟ 2. Τιμές, τύποι, μεταβλητές, λέξεις-κλειδιά, εντολές. 2.1 Εισαγωγή

ΤΕΙ ΙΟΝΙΩΝ ΝΗΣΩΝ ΣΧΟΛΗ ΔΙΟΙΚΗΣΗΣ ΚΑΙ ΟΙΚΟΝΟΜΙΑΣ ΤΜΗΜΑ ΔΙΟΙΚΗΣΗΣ ΕΠΙΧΕΙΡΗΣΕΩΝ - ΕΙΣ

Β1.1 Αναπαράσταση Δεδομένων και Χωρητικότητα Μονάδων Αποθήκευσης

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

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

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

Παραδείγματα Δεδομένων: Οι τιμές στο κυλικείο, μια λίστα από ονόματα, τα σήματα της τροχαίας.

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

Κεφάλαιο 2.3: Προγραμματισμός. Επιστήμη ΗΥ Κεφ. 2.3 Καραμαούνας Πολύκαρπος

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

Transcript:

Εισαγωγή στον Προγραμματισμό Ακαδημαϊκό έτος: 2010-2011 Επιμέλεια Ξενοφών Βασιλάκος

Περιεχόμενα Φροντιστηρίου 1. Εισαγωγή 2. Εντολές Εκχώρησης και Τελικές μεταβλητές 3. Μεταγλώττιση και διερμηνεία των προγραμμάτων Εισαγωγή στον Προγραμματισμό Υπολογιστών

Δεδομένα και πληροφορίες (τι είναι δεδομένο) Δεδομένα στον προγραμματισμό Εισαγωγή 3

Δεδομένα και Πληροφορίες 1/2 Τι είναι το δεδομένο (datum)? Είναι ένα σύμβολο πχ ένα ψηφίο (7), ένα γράμμα (φ), ή ένα μαθηματικό σύμβολο (,,,%).. Τι είναι το πληροφορία Ένα σύνολο από δεδομένα μαζί με την ερμηνεία επί αυτών «Παναγιωτόπουλος»: Αν ερμηνευτεί ως όνομα ανθρώπου μας πληροφορεί για το πώς ονομάζεται το εν λόγω άτομο Εκτός και αν ερμηνευτεί ως επωνυμία επιχείρησης.. κ.λπ. Εισαγωγή στον Προγραμματισμό Υπολογιστών 4

Δεδομένα και Πληροφορίες 2/2 «3020010»: Αν ερμηνευτεί ως αριθμός ή πλήθος, τότε υποδηλώνει μια πληροφορία σε σχέση με κάποια ποσότητα χρηματικό ποσό, ή πληθυσμός μιας χώρας κ.ο.κ. Αν ερμηνευτεί ως αριθμός μητρώου, τότε μας πληροφορεί ότι ο εν λόγω φοιτητής: είναι του τμήματος πληροφορικής (3), έχει έτος εισαγωγής το 2002 (02), μπήκε με πανελλαδικές εξετάσεις (0), και είναι ο 10 ος με αλφαβητική σειρά στο έτος του Εισαγωγή στον Προγραμματισμό Υπολογιστών 5

Δεδομένα στον προγραμματισμό 1/3 Τα προγράμματα παίρνουν δεδομένα ως είσοδο, τα επεξεργάζονται, και παράγουν άλλα δεδομένα εξόδου Πηγή Δεδομένα εισόδου Πρόγραμμα Δεδομένα εξόδου Έξοδος Πιθανές πηγές εισόδου: Συσκευές εισόδου από εξωτερικό περιβάλλον Κάμερα, πληκτρολόγιο, ποντίκι, μικρόφωνο, σαρωτής (scanner).. Αρχεία στη βοηθητική μνήμη Δίσκος, USB flash disk, cd/dvd/ blue ray players Διαδίκτυο (πχ το www ή το skype) Πιθανές Έξοδοι: Συσκευές εξόδου στο εξωτερικό περιβάλλον Οθόνη, ηχεία, εκτυπωτής Αρχεία στη βοηθητική μνήμη Διαδίκτυο (πχ το www ή το skype) 6

Δεδομένα στον προγραμματισμό 2/3 Δεδομένα κατανοητά στον Η/Υ Οι ζωντανοί οργανισμοί αναγνωρίζουν ήχους, εικόνες.. γενικά οτιδήποτε αναλογικά (συνεχής τιμές) δεδομένα συλλαμβάνουν με τις αισθήσεις τους Οι Η/Υ (τόσο το λογισμικό όσο και υλικό τους) κατανοούν ψηφιοποιημένα δεδομένα (digitized) Δηλ. τμήματα της συνεχούς πληροφορίας (ψηφίδες) Βλ. και κωδικοποίηση από φροντιστήριο 1 Όχι όλη τη πληροφορία πχ το mp3 αγνοεί οτιδήποτε δεν αντιλαμβάνεται ο άνθρωπος (συχνότητες, διαφορές στην ένταση των ήχων κτλ..) Εισαγωγή στον Προγραμματισμό Υπολογιστών 7

Δεδομένα στον προγραμματισμό 3/3 Δεδομένα κατανοητά στον Η/Υ Ορίζουν τη σημασία των δεδομένων (πχ ακέραιος ή ψευδής/αληθής) Το εύρος τιμών (πχ από το -128 έως το 127) Πρωταρχικοί (primitive) τύποι δεδομένων της java Τύπος char Στη μνήμη 1 byte (= 8 bits) 2b Τι κωδικοποιεί Έναν χαρακτήρα (UTF-16) boolean 1b True / false byte 1b [- 128, 127] short 2b [- 32768, 32767] int 4b [- 2147483648, 2147483647] long 8b [- 2 63, 2 63-1] float 4b [- 3.4x10 38, 3.4x10 38 ] double 8b [- 1.8x10 308, 1.8x10 308 ] Εισαγωγή στον Προγραμματισμό Υπολογιστών 8

Σταθερές Vs. Μεταβλητές Δήλωση Vs. Εκχώρηση Μεταβλητής Τελικές Μεταβλητές Εντολές Εκχώρησης / Τελικές Μεταβλητές 9

Σταθερές Vs. Μεταβλητές! Σταθερές (constants) Τιμή που δεν εξαρτάται (δεν αλλάζει) από την ροή εκτέλεσης των εντολών του προγράμματος Θ 0 24 32767-897L 3.141592 3.141592f 9.7854e-3 Μεταβλητές (variables) Περιέχουν τιμές που μπορεί να μεταβάλλονται κατά την εκτέλεση του προγράμματος Αντιστοιχούν σε θέσεις της κύριας μνήμης Τιμή μεταβλητής τιμή στη θέση μνήμης Μια μεταβλητή δημιουργείται κατά την εκτέλεση του προγράμματος Με την δήλωση της μεταβλητής, πχ int i; Εισαγωγή στον Προγραμματισμό Υπολογιστών 10

Δήλωση Vs. Εκχώρηση 1 /6 Γενικά Δήλωση: type varname; Εκχώρηση: varname = κάποια σταθερά ή παράσταση Δήλωση με ταυτόχρονη εκχώρηση (αρχικοποίηση) type varname = κάποια σταθερά ή παράσταση Εισαγωγή στον Προγραμματισμό Υπολογιστών 11

Δήλωση Vs. Εκχώρηση 2 /6 Δήλωση int myint; O int έχει μήκος 32 bit στη java H μεταβλητή myint είναι πλέον συνώνυμο της θέσης 3 στη μνήμη Διεύθυν ση 0 1 2 3 4 5 6 7 8 9 10 11 12 Μνήμη Περιεχόμενο (λέξη 32 bits) Εισαγωγή στον Προγραμματισμό Υπολογιστών 12

Δήλωση Vs. Εκχώρηση 2 /6 Δήλωση int myint; O int έχει μήκος 32 bit στη java H μεταβλητή myint είναι πλέον συνώνυμο της θέσης 3 στη μνήμη Εκχώρηση σταθεράς myint = 5; Διεύθυν ση 0 1 2 3 4 5 6 7 8 9 10 11 12 Μνήμη Περιεχόμενο (λέξη 32 bits) 0000 000000101 Εισαγωγή στον Προγραμματισμό Υπολογιστών 13

Δήλωση Vs. Εκχώρηση 2 /6 Δήλωση int myint; O int έχει μήκος 32 bit στη java H μεταβλητή myint είναι πλέον συνώνυμο της θέσης 3 στη μνήμη Εκχώρηση σταθεράς myint = 5; Εκχώρηση παράστασης myint = 5 * myint; Διεύθυν ση 0 1 2 3 4 5 6 7 8 9 10 11 12 Μνήμη Περιεχόμενο (λέξη 32 bits) 0000 00011001 Εισαγωγή στον Προγραμματισμό Υπολογιστών 14

Δήλωση Vs. Εκχώρηση Σειρά από ερωτήματα.. Πως γίνεται η εκχώρηση;? Πως γίνεται η εκχώρηση από παράσταση (και όχι σταθερά); Είναι λάθος ή σωστό το short mysrt = 99999; Εισαγωγή στον Προγραμματισμό Υπολογιστών 15

Δήλωση Vs. Εκχώρηση Σειρά από ερωτήματα.. και οι απαντήσεις αυτών.. Πως γίνεται η εκχώρηση; Το δεξί τμήμα εκχωρείται στη περιοχή της μνήμης που αντιπροσωπεύει η μεταβλητή Πως γίνεται η εκχώρηση από παράσταση (και όχι σταθερά); Το δεξί τμήμα υπολογίζεται (γίνονται πράξεις στη μνήμη από τον επεξεργαστή) και στη συνέχεια εκχωρείται στη περιοχή της μνήμης που αντιπροσωπεύει η μεταβλητή Είναι λάθος ή σωστό το short mysrt = 99999; Λάθος! Βοήθεια: ο short είναι μήκους 16 bits Επιπλέον βοήθεια: η default ερμηνεία των ακεραίων στη java είναι σε int. Απάντηση: ο short τύπος δεν μπορεί να αναπαραστήσει τιμές εκτός του πεδίου [- 32768, 32767] Εισαγωγή στον Προγραμματισμό Υπολογιστών? 16

Δήλωση Vs. Εκχώρηση? Πως γίνεται η δέσμευση μνήμης και στη συνέχεια εκχώρηση τιμής σε μια long μεταβλητή Βοήθεια: ο long πιάνει 64 bits στη μνήμη Απάντηση: επόμενη διαφάνεια Εισαγωγή στον Προγραμματισμό Υπολογιστών 17

Δήλωση Vs. Εκχώρηση 5/6 Δήλωση long mylng; O long έχει μήκος 2x32 bit στη java H μεταβλητή mylngt είναι πλέον συνώνυμο της περιοχής στη μνήμη που ξεκινά από τη θέση 3 στη μνήμη Διεύθυν ση 0 1 2 3 4 5 6 7 8 9 10 11 12 Μνήμη Περιεχόμενο (λέξη 32 bits) Εισαγωγή στον Προγραμματισμό Υπολογιστών 18

Δήλωση Vs. Εκχώρηση 5/6 Δήλωση long mylng; O long έχει μήκος 2x32 bit στη java H μεταβλητή mylngt είναι πλέον συνώνυμο της περιοχής στη μνήμη που ξεκινά από τη θέση 3 στη μνήμη Εκχώρηση σταθεράς mylng = 5; Διεύθυν ση 0 1 2 3 4 5 6 7 8 9 10 11 12 Μνήμη Περιεχόμενο (λέξη 32 bits) 0000 000000101 Εισαγωγή στον Προγραμματισμό Υπολογιστών 19

Δήλωση Vs. Εκχώρηση 5/6 Δήλωση long mylng; O long έχει μήκος 2x32 bit στη java H μεταβλητή mylngt είναι πλέον συνώνυμο της περιοχής στη μνήμη που ξεκινά από τη θέση 3 στη μνήμη Εκχώρηση σταθεράς mylng = 5; Εκχώρηση παράστασης mylng = 5 * myint; Διεύθυν ση 0 1 2 3 4 5 6 7 8 9 10 11 12 Μνήμη Περιεχόμενο (λέξη 32 bits) 0000 000011001 Εισαγωγή στον Προγραμματισμό Υπολογιστών 20

Δήλωση Vs. Εκχώρηση 6/6 Άλλα παραδείγματα Δήλωση με ταυτόχρονη εκχώρηση (αρχικοποίηση) byte i = - 128; byte i = 128; char c = θ ; char cc = 65; Ισοδύναμο του char cc = A ; What is a in Unicode UTF-16 ερώτημα στο Google» Διάλεξα την σελίδα: http://www.asciitable.com/ αφού τα πρώτα σύμβολα του Unicode ταυτίζονται με εκείνα του ASCII boolean myboolean = false; double d = 10483.2948; float ff = 18.18364f; float f = 18.18364; double dd = 10483.2948f; Compiler: possible loss of precision, γιατί ενώ πριν όχι; Ο μεταγλωττιστής (compiler) θα το απαγορεύσει, γιατί; Ο μεταγλωττιστής (compiler) θα το επιτρέψει και γιατί; Εισαγωγή στον Προγραμματισμό Υπολογιστών 21

Τελικές μεταβλητές 1/3 Λέξη κλειδί: final «Μεταβλητές» που δεν μεταβάλλεται η τιμή τους κατά την εκτέλεση του προγράμματος Παίρνουν μια φορά αρχική τιμή και την διατηρούν μέχρι το τέλος της εκτέλεσης Ουσιαστικά, δεν υποδηλώνουν θέση στη μνήμη Είναι πιο πολύ κάτι σαν όνομα μια σταθεράς Παραδείγματα final μεταβλητών: final int daysjan = 31; final float pi = 3.141592f; final char charspace = ; Ο μεταγλωττιστής (compiler) θα διαμαρτυρηθεί αν παραλείψω το f στο τέλος της σταθεράς, γιατί; 22

Τελικές μεταβλητές 2/3 1. final int daysjan = 31; 2. final float pi = 3.141592f; 3. final char charspace = ; 4. charspace = 2 * pi Ο μεταγλωττιστής (compiler) θα διαμαρτυρηθεί, γιατί; 1 ον λείπει το ; 2 ον μήπως φταίει ότι πολλαπλασιάζω ένα χαρακτήρα με εάν αριθμό; Όχι διότι επιτρέπονται πράξεις με ακεραίους αριθμούς και το αποτέλεσμα είναι τύπου int.. το πειράζει όμως που είναι δεκαδικός ο αριθμός. 3 ον φταίει ότι προσπαθώ να αλλάξω μια τελική μεταβλητή.. Εισαγωγή στον Προγραμματισμό Υπολογιστών 23

Τελικές μεταβλητές 3/3 Γιατί να κάνουμε χρήση final μεταβλητών? Γιατί να κάνουμε χρήση final μεταβλητών; Τότε ποια η διαφορά από μια σταθερά τιμή όπως το «3.14»; Εισαγωγή στον Προγραμματισμό Υπολογιστών 24

Τελικές μεταβλητές 3/3 Γιατί να κάνουμε χρήση final μεταβλητών? Γιατί να κάνουμε χρήση final μεταβλητών; Είναι πολύ χρήσιμες για περιπτώσεις τιμών που παραμένουν αμετάβλητες καθ όλη τη διάρκεια της εκτέλεσης ενός προγράμματος ή/και όταν θέλουμε να διασφαλίσουμε ότι το περιεχόμενο των μεταβλητών αυτών ΔΕΝ θα αλλάξει Τότε ποια η διαφορά από μια σταθερά τιμή όπως το «3.14»; Δεν είναι απαραίτητο να έχει ορισθεί η τιμή της final μεταβλητής at compile time.. Σε αντίθεση με τις σταθερές, η πρώτη και μοναδική ανάθεση τιμής σε μία final μεταβλητή μπορεί να γίνει κατά την εκτέλεση του προγράμματος με ανάθεση σταθεράς ή αποτελέσματος παράστασης μέσα στο πηγαίο αρχείο κώδικα Πχ: final int i; i = j*8 /32; // αρχικοποίηση σε μεταγενέστερο στάδιο. Δεν // μπορεί να γίνει πάλι ανάθεση τιμής στην i. Εισαγωγή στον Προγραμματισμό Υπολογιστών 25

JDK Από τη συγγραφή στην εκτέλεση (βήμα προς βήμα) Μεταγλώττιση και διερμηνεία των προγραμμάτων 26

JDK 1/2 Τι είναι το JDK; JDK: Ακρωνύμιο από τις λέξεις «Java Development Kit» Πρόκειται για όλη την πλατφόρμα της java όπως αυτή σχεδιάστηκε και υλοποιήθηκε από τη SUN API classes (βιβλιοθήκη κώδικα ήδη υλοποιημένου Application Program Interface / Διεπαφή Προγραμματικών Εφαρμογών) Java compiler (μεταγλωττιστής) Java Virtual Machine interpreter (διερμηνευτής εικονικής μηχανής Java) Εισαγωγή στον Προγραμματισμό Υπολογιστών 27

JDK 2/2 Τι είναι το JDK; Χρησιμοποιείται για compile και το τρέξιμο των Java applications και των applets applets (εφαρμογές για υπολογιστές που τρέχουν μέσα από browsers όπως ο Firefox) Σημ: Η πιο σύγχρονη έκδοση του JDK είναι η J2SE 1.7 (Java 2 Standard Edition). Υπάρχει και micro edition για εφαρμογές για κινητά, καθώς και η enterprise edition για εμπορικό Software με αυξημένες απαιτήσεις Από την 1.5 και μετά υπάρχουν πολλές και σημαντικές βελτιώσεις / προσθήκες στη γλώσσα και το API αυτής. Εισαγωγή στον Προγραμματισμό Υπολογιστών 28

Από τη συγγραφή στην εκτέλεση 1/5 Βήμα προς βήμα: 1 ον Συγγραφή αρχείου κώδικα Πρόκειται ουσιαστικά για αρχείο κειμένου με την κατάληξη «.java» Αρχείο Πηγαίου Κώδικα Συγγραφή με οποιονδήποτε συντάκτη κειμένου όπως το vi Περιφερειακή Μονάδα Μνήμης Ή με κάποιο ολοκληρωμένο εργαλείο (IDE) που κάνει όλα τα βήματα που περιγράφουμε σε αυτή την υποενότητα Προσοχή, ένα αρχείο που περιλαμβάνει το κώδικα της κλάσης ClassName, πρέπει να ονομαστεί ClassName.java Προγραμματι στής Εισαγωγή στον Προγραμματισμό Υπολογιστών 29

Από τη συγγραφή στην εκτέλεση 2.1/5 Βήμα προς βήμα: 2 ον Μεταγλώττιση (compiling) Είναι η διαδικασία με την οποία το κείμενο του πηγαίου αρχείου κώδικα μετατρέπεται σε ενδιάμεσο στάδιο κώδικα C:\javac όνομα.java ή $/javac όνομα.java Παράγεται ένα όνομα.class αρχείο Οι λέξεις κλειδιά μεταφράζονται σε ειδικά σύμβολα της γλώσσας δυφιοσυλλαβών εικονικής μηχανής java (JVM byte code language) Επίσης κάνει και βελτιώσεις στη σύνταξη που κάνουν πιο αποδοτικό το κώδικα (εάν επιδέχεται βελτιώσεων) Εισαγωγή στον Προγραμματισμό Υπολογιστών 30

Από τη συγγραφή στην εκτέλεση Βήμα προς βήμα: 2 ον Μεταγλώττιση (compilation) 2.2/5 Είναι η διαδικασία με την οποία το κείμενο του πηγαίου αρχείου κώδικα μετατρέπεται σε Ένα ενδιάμεσο στάδιο κώδικα Οι λέξεις κλειδιά μεταφράζονται σε ειδικά σύμβολα της γλώσσας δυφιοσυλλαβών εικονικής μηχανής java (JVM byte code language) Επίσης κάνει και βελτιώσεις στη σύνταξη που κάνουν πιο αποδοτικό το κώδικα (εάν επιδέχεται βελτιώσεων) Περιφερειακή Μονάδα Μνήμης Προγραμματιστής File: όνομα.class Java Compiler Εισαγωγή στον Προγραμματισμό Υπολογιστών 31

Από τη συγγραφή στην εκτέλεση 3.1/5 Βήμα προς βήμα: 3 ον Διερμήνευση / Τρέξιμο Αν όλα πάνε καλά τότε έχει παραχθεί το όνομα.class Αυτό είναι το αρχείο με τον java byte code κώδικα τον οποίο θα εκτελέσει το JVM ως εξής: C:\java όνομα ή $/java όνομα Εισαγωγή στον Προγραμματισμό Υπολογιστών 32

Από τη συγγραφή στην εκτέλεση 3.2/5 Βήμα προς βήμα: 3 ον Διερμήνευση / Τρέξιμο Αν όλα πάνε καλά τότε έχει παραχθεί το όνομα.class Αυτό είναι το αρχείο με τον java byte code κώδικα τον οποίο θα εκτελέσει το JVM ως εξής: java όνομα CPU Περιφερειακή Μονάδα Μνήμης RAM Προγραμματιστής... 4: Φόρτωσε executable code Java Interpreter File: όνομα.class Java Compiler 33

Από τη συγγραφή στην εκτέλεση 4/5 Just in time compiling Πληροφοριακά αναφέρουμε ότι μια βελτίωση της java είναι το just in time compiling.. Για λεπτομέρειες: http://www.java-tips.org/java-setips/java.lang/what-is-java-just-in-timecompiler.html Εισαγωγή στον Προγραμματισμό Υπολογιστών 34

Εκτέλεση προγράμματος Java Βήμα προς βήμα: Επισκόπηση / όλα τα βήματα 5/5 RAM CPU... Περιφερειακή Μονάδα Μνήμης Προγραμματι στής 4: Φόρτωσε executable code File: όνομα.class Java Interpreter Java Compiler 35

Τι Ακούσατε Σήμερα 1. Εισαγωγή Δεδομένα και πληροφορίες (τι είναι δεδομένο) Δεδομένα στον προγραμματισμό 2. Εντολές Εκχώρησης / Τοπικές και Τελικές μεταβλητές Δήλωση Vs. Εκχώρηση Τελικές Μεταβλητές 3. Μεταγλώττιση και διερμηνεία των προγραμμάτων JDK Βήμα προς βήμα από τη συγγραφή ως τη μεταγλώττιση Εισαγωγή στον Προγραμματισμό Υπολογιστών 36

ΤΕΛΟΣ!