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

Μέγεθος: 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 Ροές και είσοδος/έξοδος αρχείων Τα δεδομένα εισόδου

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

Εξαιρέσεις (Exceptions) Λάθη (Errors) Χειρισμός των Εξαιρέσεων (Exception Handling) Assertions

Εξαιρέσεις (Exceptions) Λάθη (Errors) Χειρισμός των Εξαιρέσεων (Exception Handling) Assertions (Object Oriented Programming) Εξαιρέσεις (Exceptions) Λάθη (Errors) Χειρισμός των Εξαιρέσεων (Exception Handling) Assertions PhD http://aetos.it.teithe.gr/~sfetsos/ sfetsos@it.teithe.gr Περιεχόμενα Μαθήματος

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

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

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

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

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

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

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

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

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

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

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

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

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

Οντοκεντρικός Προγραμματισμός Οντοκεντρικός Προγραμματισμός Ενότητα 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) 4. Διαχείριση εξαιρέσεων

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

ΠΛΗΡΟΦΟΡΙΚΗ Ι JAVA Τμήμα θεωρίας με Α.Μ. σε 3, 7, 8 & 9 6/12/07 Πρώτοι αριθμοί ΠΛΗΡΟΦΟΡΙΚΗ Ι JAVA Τμήμα θεωρίας με Α.Μ. σε 3, 7, 8 & 9 6/12/07 Ένας ακέραιος μεγαλύτερος του 1 είναι πρώτος αν έχει ακριβώς δύο διαιρέτες (τη μονάδα και τον εαυτό του). Πρόβλημα: έλεγχος

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

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

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

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

10.1 Γενικά για τα streams

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

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

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

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

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

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

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

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

Generics και ArrayLists

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

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

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

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

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

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

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

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

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

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

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

Αντικειμενοστρεφής Προγραμματισμός Διάλεξη 9 : ΕΞΑΙΡΕΣΕΙΣ ΚΑΙ Ο ΧΕΙΡΙΣΜΟΣ ΤΟΥΣ

Αντικειμενοστρεφής Προγραμματισμός Διάλεξη 9 : ΕΞΑΙΡΕΣΕΙΣ ΚΑΙ Ο ΧΕΙΡΙΣΜΟΣ ΤΟΥΣ Αντικειμενοστρεφής Προγραμματισμός Διάλεξη 9 : ΕΞΑΙΡΕΣΕΙΣ ΚΑΙ Ο ΧΕΙΡΙΣΜΟΣ ΤΟΥΣ EXCEPTIONS & EXCEPTION HANDLING Εξαιρέσεις (Exceptions) Γνωμικό της Μηχανικής Λογισμικού: το 80% της δουλειάς των μηχανικών

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

Αρχεία και Ρεύματα. Αρχεία

Αρχεία και Ρεύματα. Αρχεία Αρχεία Αρχεία και Ρεύματα sequential files(σειριακά αρχεία) direct access(απ'ευθείας πρόσβασης) Ρεύματα (I/O Streams) Ένα ρεύμα είναι μια σειριακή ροή δεδομένων από μία πηγή προς έναν προορισμό. Όταν ένα

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

Διαδικτυακές Εφαρμογές Ενότητα 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

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

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

ΠΛΗΡΟΦΟΡΙΚΗ Ι JAVA Τμήμα θεωρίας με Α.Μ. σε 3, 7, 8 & 9 29/11/07 Συνέχεια για το for: ΠΛΗΡΟΦΟΡΙΚΗ Ι JAVA Τμήμα θεωρίας με Α.Μ. σε 3, 7, 8 & 9 29/11/07 Nested for-loops (for μέσα σε for): π.χ. int k; for (int i=0; i

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

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

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

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

Οντοκεντρικός Προγραμματισμός ΦΡΟΝΤΙΣΤΗΡΙΟ JAVA

Οντοκεντρικός Προγραμματισμός ΦΡΟΝΤΙΣΤΗΡΙΟ JAVA Οντοκεντρικός Προγραμματισμός ΦΡΟΝΤΙΣΤΗΡΙΟ JAVA Αρχεία δεδομένων Το πακέτο java.io περιλαμβάνει περισσότερες από 60 κλάσεις και διασυνδέσεις για το χειρισμό αρχείων δεδομένων. Αρκετές από τις κλάσεις του

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

Wrapper Classes Τοποθέτηση Δεδομένων Κλήση Μεθόδων. Παναγιώτης Σφέτσος, PhD

Wrapper Classes Τοποθέτηση Δεδομένων Κλήση Μεθόδων. Παναγιώτης Σφέτσος, PhD (Object Oriented Programming) Wrapper Classes Τοποθέτηση Δεδομένων Κλήση Μεθόδων PhD http://aetos.it.teithe.gr/~sfetsos/ sfetsos@it.teithe.gr Περιεχόμενα Μαθήματος Wrapper Classes Τοποθέτηση Δεδομένων

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

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

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

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

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

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

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

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

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

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

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

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

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

Εξαιρέσεις στη 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 Εξαιρέσεις Πολλές φορές όταν προγραµµατίζουµε σε κάποια γλώσσα προγραµµατισµού συµβαίνουν διάφορα σφάλµατα που οφείλονται είτε σε διάφορες αιτίες όπως σε λάθη

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

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

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

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

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

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

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

ΠΛΗΡΟΦΟΡΙΚΗ ΙI Ενότητα 2: Βασικές εντολές

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

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

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

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

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

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

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Εξαιρέσεις Αρχεία String processing ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ Εξαιρέσεις Αρχεία String processing ΕΞΑΙΡΕΣΕΙΣ Εξαιρέσεις οι Εξαιρέσεις (Exceptions) είναι ένας μηχανισμός που έχει η Java για να αντιμετωπίζει περιπτώσεις

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

Week 9: Input / Output

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

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

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

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

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

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Εισαγωγή στη 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

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

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

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

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

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

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

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

ΑΤΕΙ ΘΕΣΣΑΛΟΝΙΚΗΣ ΤΜΗΜΑ ΜΗΧΑΝΙΚΩΝ ΠΛΗΡΟΦΟΡΙΚΗΣ Αλγοριθμική και Προγραμματισμός. Παναγιώτης Σφέτσος. 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) ένδειξη

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Το πρόγραμμα 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 υποστηρίζει

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

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

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

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

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

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

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

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

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

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

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

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

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

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

ΑΤΕΙ ΘΕΣΣΑΛΟΝΙΚΗΣ ΤΜΗΜΑ ΜΗΧΑΝΙΚΩΝ ΠΛΗΡΟΦΟΡΙΚΗΣ Αλγοριθμική και Προγραμματισμός. Παναγιώτης Σφέτσος ΑΤΕΙ ΘΕΣΣΑΛΟΝΙΚΗΣ ΤΜΗΜΑ ΜΗΧΑΝΙΚΩΝ ΠΛΗΡΟΦΟΡΙΚΗΣ Αλγοριθμική και Προγραμματισμός Παναγιώτης Σφέτσος sfetsos@it.teithe.gr ΕΡΓΑΣΤΗΡΙΟ - 6 ΘΕΜΑΤΑ: Εντολές if, if..else, if else if και switch..case Προσοχή!!!

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

2 ΓΡΑΜΜΙΚΕΣ ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ

2 ΓΡΑΜΜΙΚΕΣ ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ 2 ΓΡΑΜΜΙΚΕΣ ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ (Linear Data Structures) Ας θεωρήσουµε µία δοµή δεδοµένων το σύνολο των στοιχείων της οποίας είναι διατεταγµένο µε τέτοιο τρόπο ώστε να ισχύουν τα εξής: (α) υπάρχει ένα µόνο

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

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

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

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

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

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

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

Εξαιρέσεις (στη Java) Vincent van Gogh, Irises, 1889

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

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

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

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

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

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

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

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

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

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

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

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

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

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

ΠΛΗΡΟΦΟΡΙΚΗ ΙΙ (JAVA) 1/4/2008

ΠΛΗΡΟΦΟΡΙΚΗ ΙΙ (JAVA) 1/4/2008 ΠΛΗΡΟΦΟΡΙΚΗ ΙΙ (JAVA) 1/4/2008 Η Κλάση String (συνέχεια από το προηγούμενο μάθημα) Μέθοδοι δημιουργίας νέων αντικειμένων String (συνέχεια) - public String touppercase() - public String trim() κόβει τα

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

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

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

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

Κωστής Σαγώνας Πιάσιμο εξαιρέσεων (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

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

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

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

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

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

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

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

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

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

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

C Programming EPL032 Maria Stavrinou Ioannou Εισαγωγή στη Γλώσσα C

C Programming EPL032 Maria Stavrinou Ioannou Εισαγωγή στη Γλώσσα C Εισαγωγή στη Γλώσσα C Η C είναι µια δοµηµένη (structured ) γλώσσα ηλαδή ένα C πρόγραµµα αποτελείται από υποπρογράµµατα τα οποία ονοµάζονται συναρτήσεις ( functions ), όπου η κάθε συνάρτηση εκτελεί µια

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

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

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

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

Α ν ύ σ μ α τ α - 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 μας βοηθά να δημιουργήσουμε δυναμικούς πίνακες, δηλαδή

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

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

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

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

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

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

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

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

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

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

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

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

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

10 ΕΙΣΟΔΟΣ ΕΞΟΔΟΣ ΔΕΔΟΜΕΝΩΝ

10 ΕΙΣΟΔΟΣ ΕΞΟΔΟΣ ΔΕΔΟΜΕΝΩΝ 10 ΕΙΣΟΔΟΣ ΕΞΟΔΟΣ ΔΕΔΟΜΕΝΩΝ Οι περιςςότερεσ εφαρμογζσ τθσ Java δε ςτθρίηονται ςε προγράμματα, τα οποία δζχονται είςοδο δεδομζνων απ το πλθκτρολόγιο, αλλά ςε applets, εφαρμογζσ που βαςίηονται ςτθν παρακυρικι

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

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

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

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

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

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

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

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

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

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