ΑΤΕΙ ΘΕΣΣΑΛΟΝΙΚΗΣ ΤΜΗΜΑ ΜΗΧΑΝΙΚΩΝ ΠΛΗΡΟΦΟΡΙΚΗΣ Αλγοριθμική και Προγραμματισμός. Είσοδος Έξοδος (Input Output) Εξαιρέσεις (Exceptions)

Save this PDF as:
 WORD  PNG  TXT  JPG

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

Download "ΑΤΕΙ ΘΕΣΣΑΛΟΝΙΚΗΣ ΤΜΗΜΑ ΜΗΧΑΝΙΚΩΝ ΠΛΗΡΟΦΟΡΙΚΗΣ Αλγοριθμική και Προγραμματισμός. Είσοδος Έξοδος (Input Output) Εξαιρέσεις (Exceptions)"

Transcript

1 ΑΤΕΙ ΘΕΣΣΑΛΟΝΙΚΗΣ ΤΜΗΜΑ ΜΗΧΑΝΙΚΩΝ ΠΛΗΡΟΦΟΡΙΚΗΣ Αλγοριθμική και Προγραμματισμός Παναγιώτης Σφέτσος Είσοδος Έξοδος (Input Output) Εξαιρέσεις (Exceptions) Οι εφαρμογές της Java είναι ως επί το πλείστον γραφικές παραθυρικές εφαρμογές και βασίζονται επάνω στο εργαλείο Java s Abstract Window Toolkit (AWT). H είσοδος των δεδομένων επομένως στα προγράμματα γίνεται μέσα από όμορφο και φιλικό προς τον χρήστη γραφικό περιβάλλον και όχι μέσα από το τερματικό του υπολογιστή. Παρόλα αυτά θα μάθουμε να χρησιμοποιούμε τις μεθόδους εισόδου και εξόδου από το τερματικό. Η είσοδος και έξοδος δεδομένων στη Java Οι εργασίες εισόδου - εξόδου γίνονται μέσα από ρεύματα (ή δέσμες) συνεχούς ροής τα streams που συνδέονται με τις φυσικές μονάδες του υπολογιστή. Ένα ρεύμα (ή δέσμη συνεχούς ροής - stream) είναι ένα αντικείμενο το οποίο επιτρέπει τη ροή δεδομένων μεταξύ ενός προγράμματος και κάποιας συσκευής εισόδου/εξόδου ή αρχείου. Όταν τα δεδομένα εισάγονται στο πρόγραμμα, τότε το ρεύμα λέγεται ρεύμα εισόδου (input stream), ενώ όταν τα δεδομένα εξάγονται από το πρόγραμμα, τότε το ρεύμα λέγεται ρεύμα εξόδου (output stream). Με τον τρόπο αυτό οι ίδιες κλάσεις και μέθοδοι εφαρμόζονται για οποιαδήποτε συσκευή. Έτσι για παράδειγμα μια δέσμη εισόδου μπορεί να χειριστεί οποιαδήποτε είσοδο, είτε είσοδο από το τερματικό είτε είσοδο από αρχείο. Η java χειρίζεται τα streams μέσα από κλάσεις και μεθόδους του πακέτου java.io. Δύο τύποι δέσμης συνεχούς ροής: byte streams και streams χαρακτήρων H Java ορίζει δύο τύπους δέσμης συνεχούς ροής: τον byte και character stream. Οι δέσμες byte streams χειρίζονται εισόδους και εξόδους των bytes. Τέτοιες εισόδους και εξόδους έχουμε για παράδειγμα όταν διαβάζουμε ή γράφουμε δυαδικά δεδομένα από και προς τα αρχεία. Οι δέσμες character streams χειρίζονται εισόδους και εξόδους χαρακτήρων. Χρησιμοποιούν την δέσμη χαρακτήρων Unicode και για τον λόγο αυτό εφαρμόζονται σε διεθνείς εφαρμογές. Οι δέσμες αυτές είναι και πιο αποτελεσματικές από ότι οι δέσμες byte. Οι δέσμες Character προστέθηκαν στη Java με την έκδοση 1.1. Πάντως οι χαμηλού επιπέδου επεξεργασίες δέσμες byte. Ι/Ο εξακολουθούν να γίνονται με Παναγιώτης Σφέτσος, Αλγοριθμική και Προγραμματισμός με Java 1

2 Οι κλάσεις - byte stream Η Java ορίζει για την byte stream δύο ιεραρχικές κλάσεις τις: InputStream και OutputStream. Κάτω από αυτές τις κλάσεις υπάρχουν πολλές υποκλάσεις που χειρίζονται τις διαφορετικές συσκευές εισόδου και εξόδου. Μέσα στις δύο αυτές κύριες κλάσεις μπορούμε να ορίσουμε πολλές μεθόδους για την επεξεργασία των bytes αλλά οι δύο κυριότερες από αυτές είναι οι read() και write() για το διάβασμα και γράψιμο των bytes. Οι κλάσεις - character stream Η Java ορίζει για την character stream δύο ιεραρχικές κλάσεις τις: Reader και Writer. Οι δύο αυτές κλάσεις χειρίζονται την δέσμη Unicode που επιτρέπει την διεθνοποίηση των μηνυμάτων των εφαρμογών μας. Μέσα στις δύο αυτές κύριες κλάσεις μπορούμε να ορίσουμε πολλές μεθόδους για την επεξεργασία των χαρακτήρων. Οι δύο πιο κύριες από τις μεθόδους αυτές είναι η read() για το διάβασμα των χαρακτήρων και η write() για το γράψιμο των χαρακτήρων. Προκαθορισμένα streams Είσοδος χαρακτήρων από το τερματικό Όλα τα προγράμματα της Java κάνουν χρήση του πακέτου java.lang. Στο πακέτο αυτό ορίζεται μία σημαντική κλάση η System που πέρα από τις άλλες σπουδαίες εργασίες που εκτελεί ορίζει και τις προκαθορισμένες μεταβλητές δέσμης: in, out και err. Ήδη έχουμε χρησιμοποιήσει την System.out (ρεύμα εξόδου) για την εμφάνιση μηνυμάτων και αποτελεσμάτων στην κονσόλα, που εξ ορισμού είναι η οθόνη. Η System.in (ρεύμα εισόδου), χρησιμοποιείται για την αρχική είσοδο που είναι το πληκτρολόγιο. Η System.err χρησιμοποιείται για την αρχική δέσμη λαθών που είναι επίσης εξ ορισμού η οθόνη. Για να εισάγουμε χαρακτήρες από το τερματικό (πληκτρολόγιο) ενεργοποιούμε την System.in, συνδέουμε το πληκτρολόγιο με ένα buffer χαρακτήρων τον BufferedReader. Ο ορισμός του buffer αυτού γίνεται με την εντολή: BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); Παναγιώτης Σφέτσος, Αλγοριθμική και Προγραμματισμός με Java 2

3 Σε αυτόν τον ορισμό δημιουργείται ένα αντικείμενο (το br τυχαίο όνομα) του τύπου BufferedReader που θα χειριστεί τη δέσμη εισόδου. Πρώτα γίνεται κλήση της υποκλάσης InputStreamReader που μετατρέπει τα bytes σε χαρακτήρες. Για να επιτευχθεί αυτή η μετατροπή πρέπει να διασυνδεθεί η δέσμη με την System.in. Είσοδος χαρακτήρα(ων) από το τερματικό (input) Για να διαβάσουμε ένα χαρακτήρα από τον BufferedReader καλούμε την read(). Η έκδοση της read() είναι του τύπου: int read() throws IOException. Για τις εξαιρέσεις (IOException) θα αναφερθούμε παρακάτω. import java.io.*; class ReadAChar { public static void main(string args[]) throws IOException { char c; BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); System.out.print("Pliktrologise ena haractira "); c = (char)br.read(); System.out.println(); System.out.println("O xaraktiras pou eisageis einai o: " + c); Το αποτέλεσμα: Προσέξτε: 1) την εντολή import java.io.*; που εισάγει τις κλάσεις και μεθόδους του πακέτου io. 2) την σύνταξη throws IOException μετά την main() που θα συντάσσουμε πάντα όταν χειριζόμαστε είσοδο έξοδο από το τερματικό. Όλες οι εκδοχές της μεθόδου read() είναι του τύπου throws IOException. Δηλαδή: α) int read() throws IOException Παναγιώτης Σφέτσος, Αλγοριθμική και Προγραμματισμός με Java 3

4 β) int read(char data[]) throws IOException, και γ) int read(char data[], int start, int max) throws IOException Θα χειριστούμε προς το παρόν την πρώτη (α) παραλλαγή όπως στο ανωτέρω παράδειγμα. Όλες αυτές οι εντολές read() προκαλούν μία εξαίρεση (IOException) σε περίπτωση λάθους. Θα δούμε παρακάτω πως θα χειριστούμε αυτές τις εξαιρέσεις. 3) Για την ανάγνωση πολλών χαρακτήρων θα χρησιμοποιήσουμε εντολές επανάληψης (loops) που θα δούμε σε επόμενο κεφάλαιο. Είσοδος συμβολοσειρών (Strings) από το τερματικό Για την είσοδο ενός String από το πληκτρολόγιο χρησιμοποιούμε την readline() που είναι μέλος της κλάσης BufferedReader. H γενική της μορφή είναι : String readline() throws IOException Η είσοδος αυτού του τύπου τερματίζεται με το πάτημα του πλήκτρου Enter. Με αυτή την είσοδο θα επιστραφεί ένα αντικείμενο τύπου String που θα περιέχει τους χαρακτήρες που πληκτρολογήσαμε. Παράδειγμα: import java.io.*; class ReadLines { public static void main(string args[]) throws IOException { // create a BufferedReader using System.in BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); String str; System.out.println("Pliktrologise mia grammi keimenou: "); str = br.readline(); System.out.println( H grammi keimenou einai: +str); Το αποτέλεσμα: Για την ανάγνωση πολλών συμβολοσειρών (γραμμών Strings) θα χρησιμοποιήσουμε εντολές επανάληψης (loops) που θα δούμε επίσης σε επόμενο κεφάλαιο. Παναγιώτης Σφέτσος, Αλγοριθμική και Προγραμματισμός με Java 4

5 Έξοδος χαρακτήρα(ων) στο τερματικό (output) Οι μέθοδοι print() και println() που έχουμε ήδη χρησιμοποιήσει, ορίζονται από την κλάση PrintStream της System.out που κάνει έξοδο της μορφής byte ροής. Επειδή η PrintStream είναι δέσμη εξόδου που προέρχεται από την OutputStream περιέχει και την μέθοδο write() που χρησιμοποιείται για την έξοδο στο τερματικό (οθόνη). Η απλή της μορφή είναι: void write(int byteval) throws IOException Στο παρακάτω παράδειγμα εμφανίζεται ένας χαρακτήρας που εισάγεται μέσα στο πρόγραμμα (o χαρακτήρας Ν) και αφού αλλάξει γραμμή τελειώνει: class WriteDemo { public static void main(string args[]) { char b; b = 'N'; System.out.write(b); System.out.write('\n'); Το αποτέλεσμα: Έξοδος συμβολοσειρών (Strings) στην κονσόλα (output) Εκτός από την εμφάνιση αποτελεσμάτων στην κονσόλα με την System.out μπορούμε να εμφανίσουμε κείμενα και αποτελέσματα χρησιμοποιώντας την κλάση PrintWriter. H PrintWriter χρησιμοποιείται περισσότερο στις πραγματικές εφαρμογές από ότι η System.out. Υποστηρίζει τις μεθόδους print() και println() για έξοδο όλων των τύπων ακόμη και αντικειμένων (με την κλήση της μεθόδου tostring()). Για να γράψουμε στην οθόνη χρησιμοποιώντας την PrintWriter ορίζουμε πρώτα την System.out για τη δέσμη εξόδου. Η PrintWriter θα οδηγήσει τη δέσμη στην οθόνη μετά από κάθε νέα γραμμή. Για να γράψουμε στην οθόνη με την PrintWriter πρέπει πρώτα να ορίσουμε ένα αντικείμενο της, χρησιμοποιώντας έναν από Παναγιώτης Σφέτσος, Αλγοριθμική και Προγραμματισμός με Java 5

6 τους δομητές που μας προσφέρει. Εμείς θα χρησιμοποιήσουμε την πιο απλή μορφή δομητή που είναι: PrintWriter(OutputStream outputstream, Boolean emptytheoutputstream) όπου ορίζουμε το stream εξόδου και ορίζουμε την τιμή true (ή false) αν θέλουμε να αδειάζει το stream όταν τελειώνει η εμφάνιση στην κονσόλα. Για παράδειγμα: PrintWriter pw = new PrintWriter(System.out, true); Δηλαδή ορίζουμε ένα αντικείμενο της PrintWriter που προσδιορίζει την System.out σαν stream εξόδου και την τιμή true για το άδειασμα του stream μετά την εμφάνιση των αποτελεσμάτων. Το παρακάτω παράδειγμα δείχνει την χρήση της PrintWriter και της μεθόδου println() για έξοδο στην οθόνη. import java.io.*; public class PrintWriterDemo { public static void main(string args[]) { PrintWriter pw = new PrintWriter(System.out, true); int a=12; double b=98.76; pw.println("this is a string"); pw.println(a); pw.println(b); pw.println( To athroisma tou: +a+ kai +b+ einai: +(a+b)); Το αποτέλεσμα: Είσοδος αριθμών Κλάσεις και μέθοδοι τροποποίησης αριθμητικών String Ακέραιοι ή δεκαδικής υποδιαστολής αριθμοί εισάγονται υπό μορφή String χωρίς αυτόματη μετατροπή στην αντίστοιχη αριθμητική αξία. Η μετατροπή τους από αριθμητικά Strings σε αριθμούς γίνεται με την χρήση των κλάσεων Integer, Double, Float, Long, Short, Byte. Για τους Παναγιώτης Σφέτσος, Αλγοριθμική και Προγραμματισμός με Java 6

7 άλλους βασικούς τύπους χρησιμοποιούνται η Character και η Boolean. Οι αριθμητικές κλάσεις περιέχουν ένα πλήθος από μεθόδους μετατροπής που είναι οι παρακάτω: Κλάση Μέθοδοι Μετατροπής Integer static int parseint(string str) throws NumberFormatException Double Float Long Short Byte static double parsedouble(string str) throws NumberFormatException static float parsefloat(string str) throws NumberFormatException static long parselong(string str) throws NumberFormatException static short parseshort(string str) throws NumberFormatException static byte parsebyte(string str) throws NumberFormatException Για παράδειγμα αν ένας ακέραιος εισάγεται από το String str, τότε μπορεί να μετατραπεί σε ακέραιο ως εξής: String str=br.readline(); int x=integer.parseint(str); Παράδειγμα 1o: import java.io.*; public class ANumberInput { public static void main(string args[]) throws IOException { int a; String str; BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); System.out.println("Input a number: "); str=br.readline(); a = Integer.parseInt(str); System.out.println("O arithmos + 1 einai = " + (a+1)); Το αποτέλεσμα: Παναγιώτης Σφέτσος, Αλγοριθμική και Προγραμματισμός με Java 7

8 Παράδειγμα 2o: Στο παρακάτω παράδειγμα εισάγουμε δύο ακέραιους, τους προσθέτουμε και εμφανίζουμε το αποτέλεσμα: import java.io.*; public class NumInput { public static void main(string args[]) throws IOException { int a, b, c; BufferedReader din = new BufferedReader(new InputStreamReader(System.in)); System.out.println("Input number a: "); a = Integer.parseInt(din.readLine()); System.out.println("Input number b: "); b = Integer.parseInt(din.readLine()); c = a + b; System.out.println("a + b = "+c); Το αποτέλεσμα: Παράδειγμα 3o: Στο παρακάτω παράδειγμα θα εισάγουμε τρία αριθμητικά Strings των τριών αριθμητικών τύπων (int, float, και double), θα τους μετατρέψουμε σε αντίστοιχους αριθμούς, θα εκτελέσουμε την πρόσθεσή τους και θα εμφανίσουμε το αποτέλεσμα. import java.io.*; class NumbersInput{ public static void main(string[] args) throws IOException { BufferedReader br=new BufferedReader(new InputStreamReader(System.in)); int a; float f; double d; Παναγιώτης Σφέτσος, Αλγοριθμική και Προγραμματισμός με Java 8

9 System.out.println("Enter an integer: "); a=integer.parseint(br.readline()); System.out.println("Enter a float: "); f=float.parsefloat(br.readline()); System.out.println("Enter a double: "); d=double.parsedouble(br.readline()); System.out.println("To athrisma toys einai: " + (a+f+d)); Το αποτέλεσμα: Η μέθοδος valueof() της κλάσης Integer Μετατροπή αριθμητικού String σε ακέραιο μπορεί να γίνει και με τη χρήση της μεθόδου valueof() της κλάσης Integer. Παράδειγμα: import java.io.*; class Number_Input{ public static void main(string[] args) throws IOException { BufferedReader br=new BufferedReader(new InputStreamReader(System.in)); String numberone = "12"; String numbertwo = "45"; Integer myint1 = Integer.valueOf(numberOne); Integer myint2 = Integer.valueOf(numberTwo); int athrisma = myint1.intvalue() + myint2.intvalue(); System.out.println("To athrisma tous einai: "+athrisma); Παναγιώτης Σφέτσος, Αλγοριθμική και Προγραμματισμός με Java 9

10 Το αποτέλεσμα: Είσοδος από το τερματικό με την κλάση Scanner Από την έκδοση 5.0 και μετά η Java περιέλαβε την κλάση Scanner που κάνει πιο απλή την είσοδο από το πληκτρολόγιο. Για να χρησιμοποιήσουμε την κλάση και τις μεθόδους της πρώτα εισάγουμε την εντολή: import java.util.scanner; που κάνει διαθέσιμη την κλάση Scanner και τις μεθόδους της από την βιβλιοθήκη κλάσεων (package) της java.util. Μετά δημιουργούμε ένα αντικείμενο της κλάσης Scanner με την εντολή: Scanner input = new Scanner(System.in); Το όνομα του αντικειμένου μπορεί να είναι οποιοδήποτε θέλουμε εμείς (εδώ input). Μετά την δημιουργία του αντικειμένου μπορούμε να χρησιμοποιήσουμε τις μεθόδους της Scanner για είσοδο από το πληκτρολόγιο. Τέτοιες μέθοδοι είναι οι nextint, που διαβάζει μια τιμή int από το πληκτρολόγιο και την αναθέτει σε μια μεταβλητή. π.χ. int i = input.nextint();, η nextdouble, που διαβάζει μια τιμή double από το πληκτρολόγιο και την αναθέτει σε μια μεταβλητή. Προσοχή στην είσοδο του αριθμού (θέλει κόμμα κατά την είσοδο). Π.χ. double d = input.nextdouble();, κ.λ.π. Πολλαπλές είσοδοι διαχωρίζονται με το κενό διάστημα ή τα tabs και τα line breaks και πρέπει να διαβάζονται με πολλαπλές εισόδους. Η μέθοδος next() χρησιμοποιείται για την είσοδο ενός String. Πολλαπλά Strings μπορούν να εισαχθούν με το κενό διάστημα. Για παράδειγμα σε μια είσοδο του τύπου: String s1= input.next(); String s2= input.next(); και της γραμμής εισόδου: Nikas Nikos, τότε το s1 θα πάρει την τιμή Nikas, ενώ το s2 την τιμή Nikos. Η μέθοδος nextline() εισάγει μια ολόκληρη γραμμή κειμένου. Το τέλος της γραμμής σηματοδοτείται με το πάτημα του πλήκτρου Enter (χαρακτήρας διαφυγής \n ). Παναγιώτης Σφέτσος, Αλγοριθμική και Προγραμματισμός με Java 10

11 Παράδειγμα: import java.util.scanner; public class TestScanner { public static void main(string args[]) { byte b; short s; int i; long l; float f; double d; String str; Scanner input = new Scanner(System.in); System.out.print("Dose ena byte arithmo: "); b = input.nextbyte(); System.out.print("Dose ena short arithmo: "); s = input.nextshort(); System.out.print("Dose ena akeraio: "); i = input.nextint(); System.out.print("Dose ena long akeraio: "); l = input.nextlong(); System.out.print("Dose ena float ar. - me komma sta dekadika: "); f = input.nextfloat(); System.out.print("Dose ena double ar. - me komma sta dekadika: "); d = input.nextdouble(); System.out.print("Dose ena String: "); str = input.next(); System.out.println("O byte : " + b + " + 1 einai: " + (b+1)); System.out.println("O short : " + s + " + 1 einai: " + (s+1)); System.out.println("O int : " + i + " + 1 einai: " + (i+1)); System.out.println("O long : " + l + " + 1 einai: " + (l+1)); System.out.println("O float : " + f + " + 1 einai: " + (f+1)); System.out.println("O double: " + d + " + 1 einai: " + (d+1)); System.out.println("To String einai : " + str); Το αποτέλεσμα: Παναγιώτης Σφέτσος, Αλγοριθμική και Προγραμματισμός με Java 11

12 Η κλάση Scanner χρησιμοποιείται και για είσοδο δεδομένων από αρχεία, όμως ο χειρισμός των αρχείων δεν συμπεριλαμβάνεται στην ύλη του εξαμήνου. Εξαιρέσεις στη Java Η java παρέχει ένα μηχανισμό, τις Εξαιρέσεις (exceptions), που βοηθά το πρόγραμμα να βρει και να χειριστεί τα λάθη που προκύπτουν κατά τις εργασίες Ι/Ο. Εξαίρεση λέγεται ένα συμβάν, συνήθως λάθος, που διακόπτει την ροή εκτέλεσης ενός προγράμματος. Οι εξαιρέσεις είναι αντικείμενα που προέρχονται άμεσα ή έμμεσα από την κλάση Throwable. Η κλάση αυτή περιέχει δύο υποκλάσεις τις Error και Exception. Μία υποκλάση της Exception είναι η RuntimeException. Throwable Exception Error InterruptedException RuntimeException.... OutOfMemoryError ArithmeticException NullPointerException ClassCastException.. Οι κλάσεις που παράγονται από την Error χρησιμοποιούνται για σημαντικά λάθη του συστήματος, όπως για παράδειγμα το λάθος OutOfMemoryError, ενώ οι κλάσεις που παράγονται από την Exception και την RuntimeException, όπως π.χ. το ArithmeticException, χρησιμοποιούνται για Παναγιώτης Σφέτσος, Αλγοριθμική και Προγραμματισμός με Java 12

13 συνηθισμένα λάθη. Όταν συμβεί ένα λάθος στο πρόγραμμα, π.χ. διαίρεση δια του μηδέν, τότε η Java δημιουργεί αυτόματα ένα αντικείμενο αυτών των κλάσεων και το ρίχνει (throws) στο πρόγραμμα. Αν το πρόγραμμα δεν το πιάσει (catch), τότε διακόπτεται η ροή του προγράμματος με την εμφάνιση ενός μηνύματος λάθους. Η κλάση δείχνει τον τύπο του λάθους, ενώ το αντικείμενο περιέχει ένα λεπτομερές μήνυμα για το λάθος, όπως για παράδειγμα το που συνέβη. Για να δηλώσουμε ένα πιθανόν λάθος και να το διορθώσουμε πρέπει πρώτα να το στείλουμε στον κατάλληλο κώδικα και αυτό γίνεται με την εντολή - throw. Η γενική μορφή της εντολής είναι: throw <exception>; (δες αναλυτικά παρακάτω) Η throw διακόπτει την φυσική ροή του προγράμματος και προσπαθεί να βρει ένα χειριστή εξαιρέσεων (exception handler) για τον τύπο της εξαίρεσης που συνέβη. Ο χειριστής εξαιρέσεων είναι ένα κομμάτι κώδικα που χειρίζεται το ειδικό λάθος που προέκυψε. Ο κώδικας αυτός είτε ανακαλύπτει το λάθος είτε προκαλεί έξοδο από το πρόγραμμα αν αυτό δεν μπορεί να ανακαλυφθεί. Τρεις εντολές χειρίζονται τις εξαιρέσεις οι : try, catch και finally. try { εντολές : : catch (όνομα του τύπου της Εξαίρεσης) { εντολές : : catch (όνομα του τύπου της Εξαίρεσης) { εντολές : : finally { εντολές : : Η εντολή try περιέχει ένα κομμάτι κώδικα στο οποίο στέλνεται μία εξαίρεση. Αν συμβεί η εξαίρεση που έχει προβλέψει ο κώδικας της try, τότε μία εντολή catch με τον κατάλληλο κώδικα θα χειριστεί τον τύπο της εξαίρεσης. Εάν δεν συμβεί εξαίρεση στο τμήμα του κώδικα της try, τότε το κομμάτι του κώδικα της catch δεν εκτελείται. H εντολή finally, που συνοδεύει πάντα την try, περιέχει ένα κομμάτι κώδικα που εκτελείται είτε συμβεί λάθος είτε όχι μέσα στην try. Παράδειγμα: Ο παρακάτω κώδικας προκαλεί λάθος (διαίρεση δια του μηδενός) : class Lathos1 { public static void main(string args[]) { int b = 0; int a = 20 / b; Παναγιώτης Σφέτσος, Αλγοριθμική και Προγραμματισμός με Java 13

14 Επειδή συμβαίνει λάθος στην διαίρεση δημιουργείται εξαίρεση και το πρόγραμμα τερματίζει. Επειδή δεν έχουμε προγραμματίσει κώδικα χειρισμού της εξαίρεσης αναλαμβάνει δράση ο χειριστής εξαιρέσεων της java. Αυτός με την σειρά του εμφανίζει το μήνυμα της εξαίρεσης καθώς και ένα αντίγραφο της μνήμης στο σημείο που συνέβη, ενώ παράλληλα τερματίζει και την εκτέλεση του προγράμματος. Exception in thread "main" java.lang.arithmeticexception: /by zero at Lathos1.main(Lathos1.java:4) Για να αποφύγουμε μία τέτοια κατάσταση λάθους θα χρησιμοποιήσουμε μία try catch εντολή. Με τον τρόπο αυτό θα αποφύγουμε το λάθος και τον απρόσμενο τερματισμό του προγράμματος. Στην try γράφουμε τον κώδικα που υποθέτουμε ότι θα προκαλέσει το λάθος και στην catch τον κώδικα που πιάσει το λάθος δηλαδή, τον τύπο της εξαίρεσης που περιμένουμε. class CatchLathos { public static void main(string args[]) { int a, b; try { // ο κώδικας όπου περιμένουμε το λάθος b = 0; a = 20 / b; System.out.println("Ayto to mhnyma den tha emfanistei"); catch (ArithmeticException e) { // σύλληψη του λάθους System.out.println("Diairesi dia toy midenos"); System.out.println("Mhnyma meta ti syllipsi toy lathous (catch)"); Αν εκτελέσουμε το πρόγραμμα θα πάρουμε το παρακάτω αποτέλεσμα: Μπορούμε να εμφανίσουμε τον τύπο της εξαίρεσης τροποποιώντας την εντολή catch: catch (ArithmeticException e) { System.out.println("Exception: " + e); Παναγιώτης Σφέτσος, Αλγοριθμική και Προγραμματισμός με Java 14

15 Ο υψηλότερη στην ιεραρχία των κλάσεων είναι η κλάση της εξαίρεσης που συντάσσουμε στην catch τόσο περισσότερα λάθη πιάνουμε, όπως στο παρακάτω παράδειγμα: import java.io.*; class test { public static void main(string[] args) throws IOException { BufferedReader reader = new BufferedReader(new InputStreamReader(System.in)); Try { int inputline = Integer.parseInt(reader.readLine()); //String inputline = reader.readline(); catch(exception exc) { System.out.println("Lathos..." + exc); System.out.println("Telos..."); Αν κατά την εκτέλεση του προγράμματος πληκτρολογήσουμε στον εισαγόμενο αριθμό κάποιο χαρακτήρα τότε θα πάρουμε το παρακάτω αποτέλεσμα: Δηλαδή μπορούμε να πιάσουμε περισσότερα είδη εξαιρέσεων αν δηλώσουμε στην catch κάποια πιο γενική υπερκλάση όπως π.χ. την RuntimeException ή την Exception. Ο τύπος Throwable πιάνει όλες τις εξαιρέσεις. Συνήθως όμως χρησιμοποιούμε πολλές catch εντολές. Επίσης μπορούμε να χρησιμοποιήσουμε εστιασμένες try και catch εντολές. Ρίψη εξαίρεσης από κληθείσα μέθοδο Η εντολή try μπορεί να πιάσει εξαιρέσεις οι οποίες εγείρονται μέσα σε μεθόδους που καλούνται στο σώμα της. Π.χ. void mymethod1() try { mymethod2() Παναγιώτης Σφέτσος, Αλγοριθμική και Προγραμματισμός με Java 15

16 catch (ArithmeticException a) {..// kapoies entoles Αν η μέθοδος mymethod2() ρίξει μια ArithmeticException και δεν πιαστεί η εξαίρεση θα προωθηθεί στην mymethod1(). H Exception και η Throwable εμπεριέχουν τις ακόλουθες μεθόδους: String getmessage() //εμφανίζει το μήνυμα λάθους String tostring() // εμφανίζει το όνομα της εξαίρεσης void printstacktrace() // εμφανίζουν το σωρό των void printstacktrace(printstream) // μεθόδων που κλήθηκαν Throw Ρίψη εξαίρεσης μπορούμε να κάνουμε και εμείς, όπως και η java κατά την εκτέλεση του προγράμματος, χρησιμοποιώντας την εντολή throw. Τότε έχουμε ένα νέο ριπτόμενο αντικείμενο εξαίρεσης, π.χ. throw new RuntimeException. Η εντολή throw προκαλεί την προσωρινή διακοπή της εκτέλεσης του προγράμματος. Στην συνέχεια ελέγχονται οι try και catch διαδοχικά μέσα στο πρόγραμμα εάν η εξαίρεση ταιριάζει και έχει προβλεφθεί. Αν η εξαίρεση ταιριάξει με κάποια εντολή, τότε έχουμε διακλάδωση σε αυτήν. Διαφορετικά αν δεν γίνει διακλάδωση ο έλεγχος μεταβιβάζεται στον αρχικό χειριστή ο οποίος προκαλεί την διακοπή της εκτέλεσης του προγράμματος και εμφανίζει ένα αντίγραφο της μνήμης για το λάθος. Finally Κάθε try εντολή συνοδεύεται απαραίτητα από μία catch ή finally εντολή. Ο κώδικας της finally εκτελείται πάντα μετά από κάθε try εντολή. Η μόνη περίπτωση που δεν εκτελείται είναι να έχει προηγηθεί η εντολή System.exit(0) που προκαλεί την έξοδο από το πρόγραμμα. public class TestExceptions{ public static void main(string args[]){ try { System.out.println("Code before the error"); System.out.println(10/0); System.out.println("Code after the error"); catch(java.lang.arithmeticexception e){ System.out.println("Tmima kodika Catch"); Παναγιώτης Σφέτσος, Αλγοριθμική και Προγραμματισμός με Java 16

17 System.out.println(e.getMessage()); System.out.println("The operation is not possible."); finally{ System.out.println("Tmima kodika Finally"); Το αποτέλεσμα: Τις εντολές try catch finally θα τις δούμε και σε επόμενα κεφάλαια όπως στον χειρισμό των πινάκων (arrays), κλπ. Μορφοποίηση εξόδου με την printf Μετά την έκδοση 5.0, η Java περιλαμβάνει μια μέθοδο την printf (παρόμοιας με την print), που μπορεί να αναπαραστήσει την έξοδο με συγκεκριμένο τρόπο (format). Όπως και στην print, η ενφάνιση γίνεται στην τρέχουσα γραμμή. Η System.out.printf μπορεί να περιέχει οποιοδήποτε αριθμό ορισμάτων. Το πρώτο όρισμα είναι πάντοτε ένα String μορφοποίησης (format string) που εμπεριέχει ένα ή περισσότερους προσδιοριστές μορφοποίησης (format specifiers) για τα υπόλοιπα ορίσματα. Τα υπόλοιπα ορίσματα (εκτός από το πρώτο) είναι τιμές που θα εμφανιστούν στην οθόνη. Δύο σημαντικοί προσδιοριστές μορφοποίησης είναι ο % <αριθμός ψηφίων>.2f π.χ. %6.2f και ο %.2f. Οι δύο αυτοί προσδιοριστές χρησιμοποιούνται για την απεικόνιση των αριθμών με δεκαδικά ψηφία. Ο προσδιοριστής %n.2f σημαίνει: 1) έναρξη του προσδιοριστή με το σύμβολο % 2) εμφάνισε το πολύ n χαρακτήρες, δεξιά στοιχισμένους (αν χρειαστεί γέμισε με κενά διαστήματα από αριστερά) 3) εμφάνισε 2 ψηφία μετά την υποδιαστολή (.2) και τερμάτισε την εμφάνιση του αριθμού τύπου float Ο προσδιοριστής %.2f σημαίνει ότι θα εμφανιστούν 2 δεκαδικά ψηφία μετά την υποδιαστολή και θα χρησιμοποιηθεί το μικρότερο δυνατό εύρος ψηφίων. Παναγιώτης Σφέτσος, Αλγοριθμική και Προγραμματισμός με Java 17

18 Στο παρακάτω παράδειγμα γίνεται χρήση αυτών των προσδιοριστών: class NumberFormat { public static void main(string[] args){ double numb = ; System.out.printf("%6.2f", numb); System.out.println(" Euro"); System.out.printf("%.2f", numb); System.out.println(" Euro"); Αν εκτελέσουμε το πρόγραμμα θα πάρουμε το παρακάτω αποτέλεσμα: Άλλοι προσδιοριστές είναι ο %d για εμφάνιση ακεραίων, ο %e για εμφάνιση επιστημονικής μορφής (E-notation), o %g για επιστημονική ή μη μορφή (η java αποφασίζει) και τέλος ο %c για εμφάνιση χαρακτήρων. Μορφοποίηση με την NumberFormat και την DecimalFormat Με την κλάση NumberFormat μπορούμε να τυπώσουμε χρηματικά ποσά στην κατάλληλη μορφή. Πρώτα εισάγουμε την κλάση NumberFormat με την εντολή import: import java.text.numberformat και μετά δημιουργούμε ένα αντικείμενο του τύπου NumberFormat που χρησιμοποιούμε με την μέθοδο getcurrencyinstance(). Τέλος με τη μέθοδο format, που δέχεται ως όρισμα έναν αριθμό τύπου float, εμφανίζουμε τον αριθμό ως String στο τοπικό νόμισμα. Παράδειγμα: import java.text.numberformat; public class TestFormatDemo { public static void main(string[] args) { NumberFormat moneyformater = NumberFormat.getCurrencyInstance(); System.out.println(moneyFormater.format(89.9)); System.out.println(moneyFormater.format( )); System.out.println(moneyFormater.format(89.999)); System.out.println(moneyFormater.format(89)); System.out.println(NumberFormat.getCurrencyInstance().format( )); Παναγιώτης Σφέτσος, Αλγοριθμική και Προγραμματισμός με Java 18

19 Η κλάση DecimalFormat Η κλάση DecimalFormat επιτρέπει την μορφοποίηση των αριθμών με πολλούς διαφορετικούς τρόπους. Πρώτα εισάγεται η κλάση με την εντολή: import java.text.decimalformat; και μετά δημιουργείται ένα αντικείμενο της κλάσης το οποίο χρησιμοποιείται με την μέθοδο format και ένα προσδιοριστή για την απεικόνιση των αριθμών υπό μορφή String. import java.text.*; public class DecimalFormatTest { public static void main( String[] args ) { double d = ; DecimalFormat df = new DecimalFormat("#####.00"); System.out.println(df.format(d)); // emfanizei ,68 Μερικοί σημαντικοί προσδιοριστές: Προσδιοριστής Παράδειγμα Αποτέλεσμα , ## ## ## , , ,79 # ,340000,### #.#;(#.#) ,9 #.#;(#.#) ( ,9),###.## \u00a ,68 i,#00.00 \u00a4\u00a ,90 EUR,#00.00 \u00a4\u00a ,10 EUR Παναγιώτης Σφέτσος, Αλγοριθμική και Προγραμματισμός με Java 19

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

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

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

ΠΛΗΡΟΦΟΡΙΚΗ ΙI Ενότητα 12: Ροές και είσοδος/έξοδος αρχείων

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

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

ΕΞΑΙΡΕΣΕΙΣ. Εξαιρέσεις προκαλούνται. από το σύστηµα. από το πρόγραµµα

ΕΞΑΙΡΕΣΕΙΣ. Εξαιρέσεις προκαλούνται. από το σύστηµα. από το πρόγραµµα ΕΞΑΙΡΕΣΕΙΣ Εξαίρεση (Exception): Ένα συµβάν κατά τον χρόνο εκτέλεσης (π.χ. αδυναµία ανοίγµατος αρχείου ή ανάγνωσης πληροφορίας, µη ύπαρξη αντικειµένου στη στοίβα) που απαιτεί ειδικό χειρισµό. Ονοµάζεται

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

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

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

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

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

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

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

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

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

Συντακτικά λάθη, λάθη εκτέλεσης, Λογικά λάθη

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

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

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Αρχεία

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Αρχεία ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ Αρχεία Ρεύματα Τι είναι ένα ρεύμα (ροή)? Μια αφαίρεση που αναπαριστά μια ροή δεδομένων Η ροή αυτή μπορεί να είναι εισερχόμενη προς το πρόγραμμα (μια πηγή δεδομένων)

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

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Εξαιρέσεις

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

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

ΕΙΣΟ ΟΣ-ΕΞΟ ΟΣ Ε ΟΜΕΝΩΝ

ΕΙΣΟ ΟΣ-ΕΞΟ ΟΣ Ε ΟΜΕΝΩΝ ΕΙΣΟ ΟΣ-ΕΞΟ ΟΣ Ε ΟΜΕΝΩΝ Στην java οι πληροφορίες αποθηκεύονται και ανακαλούνται/ανασύρονται µε τη χρήση ενός συστήµατος επικοινωνίας που χρησιµοποιεί την έννοια του stream (κανάλι επικοινωνίας). Σαν stream

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

Προγραμματισμός ΙΙ (Java) 4. Διαχείριση εξαιρέσεων

Προγραμματισμός ΙΙ (Java) 4. Διαχείριση εξαιρέσεων Προγραμματισμός ΙΙ (Java) 4. Διαχείριση εξαιρέσεων Διαχείριση λαθών Εξαιρέσεις Δημιουργία Ανίχνευση Διαχείριση Βασικοί τύποι εξαιρέσεων Δημιουργία τύπων εξαίρεσης 2 Αντιμετώπιση λαθών Υπάρχουν λάθη χρόνου

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

Ειδικά Θέματα Προγραμματισμού

Ειδικά Θέματα Προγραμματισμού Ειδικά Θέματα Προγραμματισμού Ενότητα 3: Τύποι Δεδομένων - Τελεστές Μιχάλας Άγγελος Τμήμα Μηχανικών Πληροφορικής ΤΕ Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative Commons.

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

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

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

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

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

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

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

ΕΙΣΟ ΟΣ-ΕΞΟ ΟΣ Ε ΟΜΕΝΩΝ

ΕΙΣΟ ΟΣ-ΕΞΟ ΟΣ Ε ΟΜΕΝΩΝ ΕΙΣΟ ΟΣ-ΕΞΟ ΟΣ Ε ΟΜΕΝΩΝ Στην java οι πληροφορίες αποθηκεύονται και ανακαλούνται/ανασύρονται µε τη χρήση ενός συστήµατος επικοινωνίας που χρησιµοποιεί την έννοια του stream (κανάλι επικοινωνίας). Σαν stream

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

Generics και ArrayLists

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

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

ΠΛΗΡΟΦΟΡΙΚΗ ΙI Ενότητα 10: Exceptions handling (Χειρισμός εξαιρέσεων)

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

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

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

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

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

Διαδικτυακές Εφαρμογές Ενότητα 4: Streams

Διαδικτυακές Εφαρμογές Ενότητα 4: Streams Διαδικτυακές Εφαρμογές Ενότητα 4: Streams Μιχάλας Άγγελος Τμήμα Μηχανικών Πληροφορικής ΤΕ Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative Commons. Για εκπαιδευτικό υλικό,

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

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

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Εισαγωγή στη Java II ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ Εισαγωγή στη Java II HelloWorld.java class HelloWorld public static void main(string args[]) // print message System.out.println( Hello world! ); javac HelloWorld.java

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

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

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

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

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

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

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

Εξαιρέσεις (στη Java)

Εξαιρέσεις (στη Java) Εξαιρέσεις (στη Java) Vincent van Gogh, Irises, 1889 Κωστής Σαγώνας Εξαιρέσεις στη Java public class Test { public static void main(string[] args) { int i = Integer.parseInt(args[0]);

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

Εξαιρέσεις. try, catch, finally, throw, throws

Εξαιρέσεις. try, catch, finally, throw, throws Εξαιρέσεις try, catch, finally, throw, throws Εξαιρέσεις Πολλές φορές όταν προγραµµατίζουµε σε κάποια γλώσσα προγραµµατισµού συµβαίνουν διάφορα σφάλµατα που οφείλονται είτε σε διάφορες αιτίες όπως σε λάθη

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

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

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

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

Week 9: Input / Output

Week 9: Input / Output Week 9: Input / Output Μηχανισµοί εισόδου/εξόδου [I/O mechanisms] Όλα τα προγράµµατα χρειάζονται είσοδο/έξοδο για να επικοινωνούν µε το περιβάλλον τους. Εβδοµάδα 8: Είσοδος / Έξοδος [Input / Output] Η

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

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

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

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

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

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

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

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

Αντικειμενοστρεφής Προγραμματισμός Πανεπιστήμιο Πειραιά Τμήμα Ψηφιακών Συστημάτων Αντικειμενοστρεφής Προγραμματισμός 30/5/2016 Δρ. Ανδριάνα Πρέντζα Αναπληρώτρια Καθηγήτρια aprentza@unipi.gr Χειρισμός Εξαιρέσεων Εξαίρεση (Exception) ένδειξη

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

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

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

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

Προγραµµατισµός ΙΙ. Ηγλώσσααντικειµενοστραφούς. ιαχείριση Εξαιρέσεων. Εισαγωγή στη ιαχείριση Εξαιρέσεων

Προγραµµατισµός ΙΙ. Ηγλώσσααντικειµενοστραφούς. ιαχείριση Εξαιρέσεων. Εισαγωγή στη ιαχείριση Εξαιρέσεων Προγραµµατισµός ΙΙ Ηγλώσσααντικειµενοστραφούς προγραµµατισµού Java ιδάσκων ηµήτριος Κατσαρός, Ph.D. @ Τµ. Μηχανικών Η/Υ, Τηλεπικοινωνιών & ικτύων Πανεπιστήµιο Θεσσαλίας ιάλεξη 6η: 06/04/2006 1 ιαχείριση

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

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

ΠΛΗΡΟΦΟΡΙΚΗ ΙΙ (JAVA) 18/3/2008 ΠΛΗΡΟΦΟΡΙΚΗ ΙΙ (JAVA) 18/3/2008 - Παράδειγμα με switch (το οποίο δείχνει επίσης πότε σε μια άσκηση χρησιμοποιούμε user-input και System.out.println() για έξοδο και πότε χρησιμοποιούμε είσοδο σε μέθοδο

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

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

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

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

Χειρισµός Σφαλµάτων. Γρηγόρης Τσουµάκας. Τµήµα Πληροφορικής, Αριστοτέλειο Πανεπιστήµιο Θεσσαλονίκης. Έκδοση:

Χειρισµός Σφαλµάτων. Γρηγόρης Τσουµάκας. Τµήµα Πληροφορικής, Αριστοτέλειο Πανεπιστήµιο Θεσσαλονίκης. Έκδοση: Χειρισµός Σφαλµάτων Γρηγόρης Τσουµάκας Τµήµα Πληροφορικής, Αριστοτέλειο Πανεπιστήµιο Θεσσαλονίκης Έκδοση: 2010.12.06 Σφάλµατα, Σφάλµατα, Σφάλµατα 2 εν υπάρχουν προγράµµατα χωρίς λογικά λάθη Υλοποίηση που

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

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

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

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

Το πρόγραμμα HelloWorld.java. HelloWorld. Κλάσεις και Αντικείμενα (2) Ορισμός μιας Κλάσης (1) Παύλος Εφραιμίδης pefraimi 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 υποστηρίζει

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

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

ΑΤΕΙ ΘΕΣΣΑΛΟΝΙΚΗΣ ΤΜΗΜΑ ΜΗΧΑΝΙΚΩΝ ΠΛΗΡΟΦΟΡΙΚΗΣ Αλγοριθμική και Προγραμματισμός. Παναγιώτης Σφέτσος ΑΤΕΙ ΘΕΣΣΑΛΟΝΙΚΗΣ ΤΜΗΜΑ ΜΗΧΑΝΙΚΩΝ ΠΛΗΡΟΦΟΡΙΚΗΣ Αλγοριθμική και Προγραμματισμός Παναγιώτης Σφέτσος sfetsos@it.teithe.gr ΕΡΓΑΣΤΗΡΙΟ - 8 Π ί ν α κ ε ς - A r r a y s Προσοχή!!! Να εκτελεστούν πρώτα όλες οι

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

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

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

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

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

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

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

Δομή Προγράμματος C++, Χειρισμός Μεταβλητών και Συναρτήσεις Εισόδου - Εξόδου

Δομή Προγράμματος C++, Χειρισμός Μεταβλητών και Συναρτήσεις Εισόδου - Εξόδου Εργαστήριο 2: Δομή Προγράμματος C++, Χειρισμός Μεταβλητών και Συναρτήσεις Εισόδου - Εξόδου Ο σκοπός αυτής της εργαστηριακής άσκησης είναι η ανάλυση των βασικών χαρακτηριστικών της Γλώσσας Προγραμματισμού

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

Συμβολοσειρές ΣΥΜΒΟΛΟΣΕΙΡΕΣ. Γεώργιος Παπαϊωάννου ( )

Συμβολοσειρές ΣΥΜΒΟΛΟΣΕΙΡΕΣ. Γεώργιος Παπαϊωάννου ( ) ΣΥΜΒΟΛΟΣΕΙΡΕΣ Γεώργιος Παπαϊωάννου (2013-14) gepap@aueb.gr Περιγραφή: Ο τύπος string Μετατροπή από και προς τον τύπο string Βασικές μέθοδοι Χρήση Ελληνικών Συναρτήσεις C εκτύπωσης και ανάγνωσης Τελευταία

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

14. Δικτύωση με Java Δικτύωση με Java Sockets Δημιουργία της σύνδεσης Διευθυνσιοδότηση της σύνδεσης

14. Δικτύωση με Java Δικτύωση με Java Sockets Δημιουργία της σύνδεσης Διευθυνσιοδότηση της σύνδεσης 14. Δικτύωση με Java Τελειώνοντας αυτό το κεφάλαιο θα μπορείτε: Να δημιουργείτε έναν ελάχιστο εξυπηρέτη TCP/IP σε Java Να δημιουργείτε έναν ελάχιστο εξυπηρετούμενο TCP/IP σε Java Να κατανοείτε πώς υλοποιούνται

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

Εξαιρέσεις (στη Java)

Εξαιρέσεις (στη Java) Εξαιρέσεις στη Java Εξαιρέσεις (στη Java) Vincent van Gogh, Irises, 1889 Κωστής Σαγώνας public class Test { public static void main(string[] args) { int i = Integer.parseInt(args[0]);

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

Στοιχεία εξεταζόµενου Αριθµός Απάντησης Βαθµολογία. Σύνολο (Θέµα 4 ο )

Στοιχεία εξεταζόµενου Αριθµός Απάντησης Βαθµολογία. Σύνολο (Θέµα 4 ο ) Οικονοµικό Πανεπιστήµιο Αθηνών Τµήµα Πληροφορικής Εισαγωγή στον Προγραµµατισµό των Υπολογιστών Καθηγητής Ι. Κάβουρας Εξεταστική περίοδος Φεβρουαρίου 2004 Τετάρτη 10/3/2004, ώρα 8.00 Στοιχεία εξεταζόµενου

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

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

ΑΤΕΙ ΘΕΣΣΑΛΟΝΙΚΗΣ ΤΜΗΜΑ ΜΗΧΑΝΙΚΩΝ ΠΛΗΡΟΦΟΡΙΚΗΣ Αλγοριθμική και Προγραμματισμός. Παναγιώτης Σφέτσος sfetsos@it.teithe.gr ΑΤΕΙ ΘΕΣΣΑΛΟΝΙΚΗΣ ΤΜΗΜΑ ΜΗΧΑΝΙΚΩΝ ΠΛΗΡΟΦΟΡΙΚΗΣ Αλγοριθμική και Προγραμματισμός Παναγιώτης Σφέτσος sfetsos@it.teithe.gr ΕΡΓΑΣΤΗΡΙΟ - 9 Σ υ μ β ο λ ο σ ε ι ρ έ ς - S t r i n g s Προσοχή!!! Να εκτελεστούν

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

Κωστής Σαγώνας Πιάσιμο εξαιρέσεων (catching exceptions) Ρίψη εξαιρέσεων (throwing exceptions) Η πρόταση finally

Κωστής Σαγώνας Πιάσιμο εξαιρέσεων (catching exceptions) Ρίψη εξαιρέσεων (throwing exceptions) Η πρόταση finally Εξαιρέσεις στη Java Εξαιρέσεις (στη Java) public class Test { public static void main(string[] args) { int i = Integer.parseInt(args[0]); int j = Integer.parseInt(args[1]); System.out.println(i/j); > javac

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

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

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

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

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

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

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

Είσοδος & Έξοδος. Γρηγόρης Τσουµάκας. Τµήµα Πληροφορικής, Αριστοτέλειο Πανεπιστήµιο Θεσσαλονίκης. Έκδοση:

Είσοδος & Έξοδος. Γρηγόρης Τσουµάκας. Τµήµα Πληροφορικής, Αριστοτέλειο Πανεπιστήµιο Θεσσαλονίκης. Έκδοση: Είσοδος & Έξοδος Γρηγόρης Τσουµάκας Τµήµα Πληροφορικής, Αριστοτέλειο Πανεπιστήµιο Θεσσαλονίκης Έκδοση: 2010.12.09 Ρεύµατα (Streams) 2 Ένας ορισµός του ρεύµατος Αφαιρετική έννοια για κάτι το οποίο παράγει

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

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

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

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

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

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

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

Εισαγωγή στην Επιστήμη Υπολογιστών. Εισαγωγή στην Python

Εισαγωγή στην Επιστήμη Υπολογιστών. Εισαγωγή στην Python Εισαγωγή στην Επιστήμη Υπολογιστών Εισαγωγή στην Python Python scripts Ένα πρόγραμμα στην Python (συχνά αποκαλείται script) αποτελείται από μία ακολουθία ορισμών και εντολών. H ακολουθία των ορισμών και

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

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

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

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

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

ΑΤΕΙ ΘΕΣΣΑΛΟΝΙΚΗΣ ΤΜΗΜΑ ΜΗΧΑΝΙΚΩΝ ΠΛΗΡΟΦΟΡΙΚΗΣ Αλγοριθμική και Προγραμματισμός. Παναγιώτης Σφέτσος sfetsos@it.teithe.gr ΑΤΕΙ ΘΕΣΣΑΛΟΝΙΚΗΣ ΤΜΗΜΑ ΜΗΧΑΝΙΚΩΝ ΠΛΗΡΟΦΟΡΙΚΗΣ Αλγοριθμική και Προγραμματισμός Παναγιώτης Σφέτσος sfetsos@it.teithe.gr ΕΡΓΑΣΤΗΡΙΟ - 3 ΘΕΜΑΤΑ: Κλάσεις Αντικείμενα Δομητές/Κατασκευαστές - Μέθοδοι - Παράμετροι

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

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

Εισαγωγή στον Προγ/μό Η/Υ Εισαγωγή στον Προγ/μό Η/Υ Ενότητα 7 2ο μέρος: Επιπλέον έννοιες σχετικά με αντικείμενα Διδάσκων: Μιχάλης Τίτσιας Περιεχόμενα Τι μπορεί να περιέχει μια τάξη Μέθοδοι τάξης και σταθερές τάξης Πολυμορφισμός

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

Εξαιρέσεις (στη Java)

Εξαιρέσεις (στη Java) Εξαιρέσεις (στη Java) Vincent van Gogh, Irises, 1889 Κωστής Σαγώνας Νίκος Παπασπύρου Εξαιρέσεις στη Java public class Test { public static void main(string[]

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

Α ν ύ σ μ α τ α - V e c t o r s

Α ν ύ σ μ α τ α - V e c t o r s ΑΤΕΙ ΘΕΣΣΑΛΟΝΙΚΗΣ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ Προγραμματισμός H/Y-I Παναγιώτης Σφέτσος sfetsos@it.teithe.gr Α ν ύ σ μ α τ α - V e c t o r s Η κλάση Vector μας βοηθά να δημιουργήσουμε δυναμικούς πίνακες, δηλαδή

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

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

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

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

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

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Εισαγωγή στη Java ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ Εισαγωγή στη Java Ιστορία Ο Patrick Naughton απειλεί την Sun ότι θα φύγει. Τον βάζουν σε μία ομάδα αποτελούμενη από τους James Gosling και Mike Sheridan για

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

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

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Εισαγωγή στη Java ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ Εισαγωγή στη Java HelloWorld.java class HelloWorld public static void main(string args[]) // print message System.out.println( Hello world! ); javac HelloWorld.java

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

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

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

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

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

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

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

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

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

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

Τύποι Δεδομένων Είσοδος/Έξοδος

Τύποι Δεδομένων Είσοδος/Έξοδος Εργαστήριο 2 ο Τύποι Δεδομένων Είσοδος/Έξοδος Εισαγωγή Σκοπός του εργαστηρίου αυτού είναι η εισαγωγή μας στους τύπους δεδομένων της C και η εξοικείωση μας με συναρτήσεις του ρεπερτορίου της ANSI C σχετικές

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

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

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

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

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

ΑΤΕΙ ΘΕΣΣΑΛΟΝΙΚΗΣ. Αλγοριθμική και Προγραμματισμός ΑΤΕΙ ΘΕΣΣΑΛΟΝΙΚΗΣ ΤΜΗΜΑ ΜΗΧΑΝΙΚΩΝ ΠΛΗΡΟΦΟΡΙΚΗΣ Αλγοριθμική και Προγραμματισμός Παναγιώτης Σφέτσος sfetsos@it.teithe.gr Σ υ μ β ο λ ο σ ε ι ρ έ ς S t r i n g s Είδαμε τον τύπο char που απεικονίζει ένα χαρακτήρα,

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

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

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

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

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

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

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

ΑΝΑΚΕΦΑΛΑΙΩΣΗ. Τα βασικά για την γλώσσα Java

ΑΝΑΚΕΦΑΛΑΙΩΣΗ. Τα βασικά για την γλώσσα Java JAVA, NETBEANS ΑΝΑΚΕΦΑΛΑΙΩΣΗ Τα βασικά για την γλώσσα Java Java portability Το μεγαλύτερο πλεονέκτημα της Java είναι η μεταφερσιμότητα: ο κώδικας μπορεί να τρέξει πάνω σε οποιαδήποτε πλατφόρμα. Write-Once-Run-Anywhere

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

Προγραμματισμός Ι. Είσοδος/Έξοδος. Δημήτρης Μιχαήλ. Ακ. Έτος 2009-2010. Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο

Προγραμματισμός Ι. Είσοδος/Έξοδος. Δημήτρης Μιχαήλ. Ακ. Έτος 2009-2010. Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο Προγραμματισμός Ι Είσοδος/Έξοδος Δημήτρης Μιχαήλ Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο Ακ. Έτος 2009-2010 Είσοδος/Έξοδος Μέχρι τώρα όποτε θέλαμε να διαβάσουμε χρησιμοποιούσαμε πάντα

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

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

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

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

HelloWorld. Παύλος Εφραιμίδης. Java Το πρόγραμμα HelloWorld 1

HelloWorld. Παύλος Εφραιμίδης. Java Το πρόγραμμα HelloWorld 1 HelloWorld Παύλος Εφραιμίδης Java Το πρόγραμμα HelloWorld 1 Το πρόγραμμα HelloWorld.java Σχόλια στη Java /** * The HelloWorld class */ class HelloWorld { public static void main(string[] args) { System.out.println("Hello

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

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

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

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

Τ.Ε.Ι. Μεσολογγίου, Τµήµα τηλεπικοινωνιακών Συστημάτων & Δικτύων

Τ.Ε.Ι. Μεσολογγίου, Τµήµα τηλεπικοινωνιακών Συστημάτων & Δικτύων Εργαστήριο Java Αντικείμενο: Αρχεία Πακέτο java.io Πακέτο java.io.zip Στην Java δεν υπάρχει η έννοια των εγγραφών μέσα σε ένα αρχείο. Ο προγραμματιστής πρέπει να κατασκευάσει το αρχείο κατάλληλα έτσι ώστε

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

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

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

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

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

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

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

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

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

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

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

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Εισαγωγή στη Java ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ Εισαγωγή στη Java Ιστορία Ο Patrick Naughton απειλεί την Sun ότι θα φύγει. Τον βάζουν σε μία ομάδα αποτελούμενη από τους James Gosling και Mike Sheridan για

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

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

ΠΛΗΡΟΦΟΡΙΚΗ Ι JAVA Τμήμα θεωρίας με Α.Μ. σε 3, 7, 8 & 9 13/12/07 ΠΛΗΡΟΦΟΡΙΚΗ Ι JAVA Τμήμα θεωρίας με Α.Μ. σε 3, 7, 8 & 9 13/12/07 Ένα απλό παράδειγμα μιας κλάσης εφαρμογής με δύο μεθόδους (κλήση μεθόδου μέσα στην ίδια κλάση): import java.util.*; public class Example

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

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

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

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

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

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

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

Προγραµµατισµός ΙΙ Java 2

Προγραµµατισµός ΙΙ Java 2 Προγραµµατισµός ΙΙ Java 2 ιαχείριση Αρχείων Αρχεία Γιατί χρειαζόµαστε να γνωρίζουµε πως διαχειριζόµαστε αρχεία? Για να αποθηκεύουµε και να διαβάζουµε δεδοµένα από το δίσκο (τους λογικούς δίσκους πιο σωστά)

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

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

ΑΤΕΙ ΘΕΣΣΑΛΟΝΙΚΗΣ ΤΜΗΜΑ ΜΗΧΑΝΙΚΩΝ ΠΛΗΡΟΦΟΡΙΚΗΣ Αλγοριθμική και Προγραμματισμός. Παναγιώτης Σφέτσος sfetsos@it.teithe.gr ΑΤΕΙ ΘΕΣΣΑΛΟΝΙΚΗΣ ΤΜΗΜΑ ΜΗΧΑΝΙΚΩΝ ΠΛΗΡΟΦΟΡΙΚΗΣ Αλγοριθμική και Προγραμματισμός Παναγιώτης Σφέτσος sfetsos@it.teithe.gr ΕΡΓΑΣΤΗΡΙΟ - 4 ΘΕΜΑΤΑ: Κλάσεις Αντικείμενα Δομητές/Κατασκευαστές - Μέθοδοι - Παράμετροι

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

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

Fortran και Αντικειμενοστραφής προγραμματισμός. Fortran και Αντικειμενοστραφής προγραμματισμός www.corelab.ntua.gr/courses/fortran_naval/naval Διδάσκοντες: Άρης Παγουρτζής (pagour@cs.ntua.gr) (Επίκουρος Καθηγητής ΣΗΜΜΥ ) Δώρα Σούλιου (dsouliou@mail.ntua.gr)

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Πίνακες Κλάσεις και Αντικείμενα ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ Πίνακες Κλάσεις και Αντικείμενα Μαθήματα από το πρώτο εργαστήριο Έλεγχος ισότητας για Strings: Διαβάζουμε το String option και θέλουμε ένα loop να συνεχίσει

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

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

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

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

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

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

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

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

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

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

Η βασική συνάρτηση προγράμματος main()

Η βασική συνάρτηση προγράμματος main() Η βασική συνάρτηση προγράμματος main() HEADER FILES main(){ ΔΗΛΩΣΕΙΣ ΜΕΤΑΒΛΗΤΩΝ ΕΝΤΟΛΕΣ (σειριακές, επιλογής ή επανάληψης) ΕΠΙΣΤΡΕΦΟΜΕΝΟΣ ΤΥΠΟΣ (return 0;) Συναρτήσεις Η συνάρτηση είναι ένα υποπρόγραμμα

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

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

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

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

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

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

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

java.lang Class Throwable

java.lang Class Throwable EΞΑΙΡΕΣΕΙΣ Η java παρέχει ένα µηχανισµό, τις Εξαιρέσεις (exceptions), για να βρει και να χειριστεί τα λάθη που προκύπτουν κατά τις εργασίες Ι/Ο. Τα σφάλµατα και οι εξαιρέσεις είναι αντικείµενα της κλάσης

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

Java Μέρος Ι Αντικειμενοστρεφής Προγραμματισμός - 7

Java Μέρος Ι Αντικειμενοστρεφής Προγραμματισμός - 7 Περιεχόμενα 1 Εισαγωγικές Έννοιες...12 1.1 Το Αντικείμενο στην καθημερινότητα...12 1.2 Το Αντικείμενο στον Προγραμματισμό...12 1.3 Επικοινωνία αντικειμένων...13 1.4 Κλάση (class) αντικειμένων...14 1.4.1

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

ιαδικτυακές Εφαρµογές Πραγµατικού Χρόνου µε Java

ιαδικτυακές Εφαρµογές Πραγµατικού Χρόνου µε Java ιαδικτυακές Εφαρµογές Πραγµατικού Χρόνου µε Java Java Media Framework Ηβιβλιοθήκη JMF Εγκαθίσταται επιπρόσθετα στη Java Αναπαραγωγή πολυµέσων Αποστολή και λήψη πολυµέσων σε πραγµατικό χρόνο Γραφικά αντικείµενα

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

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

Αντικειμενοστραφής Προγραμματισμός I (5 ο εξ) Εργαστήριο #4 ο : Αποσφαλμάτωση (debugging), μετατροπές Αντικειμενοστραφής Προγραμματισμός I (5 ο εξ) Εργαστήριο #4 ο : Αποσφαλμάτωση (debugging), μετατροπές τύπων, δημιουργία τυχαίων αριθμών, λήψη εισόδου από χρήστη Γαβαλάς Δαμιανός dgavalas@aegean.gr Λογικά

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