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

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

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

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

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

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

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

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

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

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

Generics και ArrayLists

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

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

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

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

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

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

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

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

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

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

Εργαστήριο 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 Προσοχή!!! Να εκτελεστούν

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

Στοιχεία εξεταζόµενου Αριθµός Απάντησης Βαθµολογία. Σύνολο (Θέµα 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 επιτρέπει

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Πολυμορφισμός Αφηρημένες κλάσεις Interfaces (διεπαφές)

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Πολυμορφισμός Αφηρημένες κλάσεις Interfaces (διεπαφές) ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ Πολυμορφισμός Αφηρημένες κλάσεις Interfaces (διεπαφές) Βρείτε τα λάθη Στο πρόγραμμα στην επόμενη διαφάνεια υπάρχουν διάφορα λάθη Ποια είναι? public abstract

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

4. Εισαγωγή στη Java

4. Εισαγωγή στη Java ΠΠΜ 401 - Ανάπτυξη Λογισμικού Εφαρμογών Μηχανικής 4. Εισαγωγή στη Java Χειμερινό εξάμηνο 2014 Πέτρος Κωμοδρόμος komodromos@ucy.ac.cy http://www.eng.ucy.ac.cy/petros 1 Θέματα Εισαγωγή στη γλώσσα προγραμματισμού

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

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

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

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

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

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

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

ιαδικτυακές Εφαρµογές

ιαδικτυακές Εφαρµογές ιαδικτυακές Εφαρµογές µε Java2 Στοιχεία ικτυακής Επικοινωνίας Όροι IP address 32bit αριθµός που χρησιµοποιείται από το Internet Protocol για την παράδοση δεδοµένων στο σωστό υπολογιστή στο δίκτυο. Port

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

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

ΕΙΣΑΓΩΓΗ ΣΤΟΝ ΔΟΜΗΜΕΝΟ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟ Πανεπιστήμιο Δυτικής Μακεδονίας Τμήμα Μηχανικών Πληροφορικής και Τηλεπικοινωνιών ΕΙΣΑΓΩΓΗ ΣΤΟΝ ΔΟΜΗΜΕΝΟ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟ Αλφαριθμητικά Αλφαριθμητικά (strings) Ένα αλφαριθμητικό είναι μια ακολουθία αλφαβητικών

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

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

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

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

Εξοικείωση με το πρόγραμμα DEV C++ Επικοινωνία Χρήστη - Υπολογιστή

Εξοικείωση με το πρόγραμμα DEV C++ Επικοινωνία Χρήστη - Υπολογιστή Εξοικείωση με το πρόγραμμα DEV C++ Επικοινωνία Χρήστη - Υπολογιστή Δημιουργία Νέου αρχείου Από το μενού προγραμμάτων ανοίγετε το DEV C++ Επιλέγετε File-> New-> Source File (συντόμευση πληκτρολογίου Ctrl+N)

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

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

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

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

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

ΠΛΗΡΟΦΟΡΙΚΗ Ι JAVA Τμήμα θεωρίας με Α.Μ. σε 3, 7, 8 & 9 1/11/07 ΠΛΗΡΟΦΟΡΙΚΗ Ι JAVA Τμήμα θεωρίας με Α.Μ. σε 3, 7, 8 & 9 1/11/07 Κάποια πράγματα ξανά για τις μεταβλητές: - Δήλωση μεταβλητής: [=τιμή]; (προς το παρόν παραλείπουμε την ορατότητα)

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

Ορισµός Νήµα (thread) είναι µια ακολουθιακή ροή ελέγχου (δηλ. κάτι που έχει αρχή, ακολουθία εντολών και τέλος) σ ένα

Ορισµός Νήµα (thread) είναι µια ακολουθιακή ροή ελέγχου (δηλ. κάτι που έχει αρχή, ακολουθία εντολών και τέλος) σ ένα ΝΗΜΑΤΑ ΣΤΗ JAVA (1) Ορισµός Νήµα (thread) είναι µια ακολουθιακή ροή ελέγχου (δηλ. κάτι που έχει αρχή, ακολουθία εντολών και τέλος) σ ένα πρόγραµµα. Αιτία Η δυνατότητα αποµόνωσης (ή αυτονόµησης) κάποιων

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

API: Applications Programming Interface

API: Applications Programming Interface ÒØ Ñ ÒÓ ØÖ ÔÖÓ» Ñ ÒØ Ñ ÒÓ ØÖ ÔÖÓ Ö ÑÑ Ø Ñ ½ Ö Ø Ò Ô Ö Ø ÒØ Ñ ÒÛÒ ÒÒÓ ôòøóù ÔÖ Ñ Ø Ó ÑÓÙ Ì ÔÓ ÓÑ ÒÛÒ Ì µ (i) ÒÓÐÓØ ÑôÒ (ii)ôö Ü º Ð ØÖ Ò Ò ÖÛÔÓ ØÖ ÔÐ Ò Ø Ó Ó Ù Ø Ñ Ø ººº ½ºÈÖÛØ ÓÒØ Ø ÔÓ int double char

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

Διάλεξη 06: Συνδεδεμένες Λίστες & Εφαρμογές Στοιβών και Ουρών

Διάλεξη 06: Συνδεδεμένες Λίστες & Εφαρμογές Στοιβών και Ουρών ΕΠΛ231 Δομές Δεδομένων και Αλγόριθμοι 1 Διάλεξη 06: Συνδεδεμένες Λίστες & Εφαρμογές Στοιβών και Ουρών Στην ενότητα αυτή θα μελετηθούν τα εξής επιμέρους θέματα: - Υλοποίηση ΑΤΔ με Συνδεδεμένες Λίστες -

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

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

Η γλώσσα προγραμματισμού C Η γλώσσα προγραμματισμού C Συναρτήσεις εισόδου/εξόδου, τελεστές Η συνάρτηση scanf() είσοδος δεδομένων Διαβάζει από το πληκτρολόγιο (stdin) μορφοποιημένες τιμές μεταβλητών. scanf (ΣΕΙΡΑ_ΕΛΕΓΧΟΥ, δείκτης_μεταβλητής-1,

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

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

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

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

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

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

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

Διάλεξη 15: Αναδρομή (Recursion) Διδάσκων: Παναγιώτης Ανδρέου

Διάλεξη 15: Αναδρομή (Recursion) Διδάσκων: Παναγιώτης Ανδρέου Διάλεξη 15: Αναδρομή (Recursion) Στην ενότητα αυτή θα μελετηθούν τα εξής επιμέρους θέματα: Η έννοια της αναδρομής Μη αναδρομικός / Αναδρομικός Ορισμός Συναρτήσεων Παραδείγματα Ανάδρομης Αφαίρεση της Αναδρομής

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

Διδάσκων: Παναγιώτης Ανδρέου

Διδάσκων: Παναγιώτης Ανδρέου Διάλεξη 23: Εισαγωγή στην Δικτύωση (Networking) Στην ενότητα αυτή θα μελετηθούν τα εξής επιμέρους θέματα: - Διευθύνσεις και Θύρες - Sockets και ServerSockets Διδάσκων: Παναγιώτης Ανδρέου ΕΠΛ233 Αντικειμενοστρεφής

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

S, (5, -3, 34, -23, 7) ( /, @, *, _

S, (5, -3, 34, -23, 7) ( /, @, *, _ 1 Τι είναι αρχείο Οι πληροφορίες που καλείται να διαχειριστεί ο Η/Υ είναι τόσες πολλές που η μνήμη του δεν φτάνει να τις επεξεργαστεί όλες μαζί. Γι αυτό τον λόγο αποθηκεύονται σε μονάδες αποθήκευσης (π.χ

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

Διάλεξη 18η: Διαχείρηση Αρχείων

Διάλεξη 18η: Διαχείρηση Αρχείων Διάλεξη 18η: Διαχείρηση Αρχείων Τμήμα Επιστήμης Υπολογιστών, Πανεπιστήμιο Κρήτης Εισαγωγή στην Επιστήμη Υπολογιστών Πρατικάκης (CSD) Αρχεία CS100, 2015-2016 1 / 24 Η βιβλιοθήκη Εισόδου/Εξόδου Στο stdioh

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

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

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

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

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

Εισαγωγή στον Προγραμματισμό Εισαγωγή στον Προγραμματισμό Αριθμητική Δημήτρης Μιχαήλ Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο Ακ. Έτος 2012-2013 Δεύτερο Πρόγραμμα 1 / * Second Simple Program : add 2 numbers * / 2

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

Κεφάλαιο VΙ: Προσπέλαση Αρχείων. 5.1 Αρχεία δεδομένων.

Κεφάλαιο VΙ: Προσπέλαση Αρχείων. 5.1 Αρχεία δεδομένων. Κεφάλαιο VΙ: Προσπέλαση Αρχείων. 5.1 Αρχεία δεδομένων. Έως τώρα σε ένα πρόγραμμα έχουμε μάθει να εισάγουμε δεδομένα από το πληκτρολόγιο χρησιμοποιώντας την συνάρτηση scanf() και να εκτυπώνουμε δεδομένα

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

Προγραμματισμός Ι. Προχωρημένα Θέματα. Δημήτρης Μιχαήλ. Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο

Προγραμματισμός Ι. Προχωρημένα Θέματα. Δημήτρης Μιχαήλ. Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο Προγραμματισμός Ι Προχωρημένα Θέματα Δημήτρης Μιχαήλ Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο Ανακατεύθυνση Εισόδου/Εξόδου Συνήθως η τυπική είσοδος ενός προγράμματος (stdin) προέρχεται

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

Περιεχόμενα ΜΕΡΟΣ ΠΡΩΤΟ. Πρόλογος... 13

Περιεχόμενα ΜΕΡΟΣ ΠΡΩΤΟ. Πρόλογος... 13 Περιεχόμενα Πρόλογος... 13 ΜΕΡΟΣ ΠΡΩΤΟ Κεφ. 1 Περί προγραμματισμού και γλωσσών προγραμματισμού Προγράμματα και Λειτουργικά Συστήματα... 17 Γλώσσες προγραμματισμού και εργαλεία ανάπτυξης προγραμμάτων...

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

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

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

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

Δομές Δεδομένων & Ανάλυση Αλγορίθμων. 3ο Εξάμηνο. Ουρά (Queue) Υλοποίηση της με τη βοήθεια πίνακα. http://aetos.it.teithe.gr/~demos/teaching_gr.

Δομές Δεδομένων & Ανάλυση Αλγορίθμων. 3ο Εξάμηνο. Ουρά (Queue) Υλοποίηση της με τη βοήθεια πίνακα. http://aetos.it.teithe.gr/~demos/teaching_gr. Δομές Δεδομένων & Ανάλυση Αλγορίθμων 3ο Εξάμηνο Ουρά (Queue) Υλοποίηση της με τη βοήθεια πίνακα http://aetos.it.teithe.gr/~demos/teaching_gr.html Δημοσθένης Σταμάτης Τμήμα Μηχανικών Πληροφορικής ATEI ΘΕΣΣΑΛΟΝΙΚΗΣ

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

Αρχιτεκτονική Υπολογιστών Ι

Αρχιτεκτονική Υπολογιστών Ι Αρχιτεκτονική Υπολογιστών Ι ΥΠΟΔΕΙΞΕΙΣ ΓΙΑ ΤΗ ΛΥΣΗ ΤΩΝ ΕΡΓΑΣΤΗΡΙΑΚΩΝ ΑΣΚΗΣΕΩΝ Από το βιβλίο Αρχιτεκτονική Υπολογιστών & Προγραμματισμός Assembly (Συγγραφέας / Εκδότης : Παναγιώτης Παπάζογλου) Δρ. Παναγιώτης

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

ΔΙΑΔΙΚΑΣΤΙΚΟΣ ΠΡΟΓΡΑ Ρ Μ Α ΜΑΤΙ Τ ΣΜΟΣ

ΔΙΑΔΙΚΑΣΤΙΚΟΣ ΠΡΟΓΡΑ Ρ Μ Α ΜΑΤΙ Τ ΣΜΟΣ Τμήμα Εφαρμοσμένης Πληροφορικής ΔΙΑΔΙΚΑΣΤΙΚΟΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ Εξάμηνο Α' Φύλλο Ασκήσεων 3 ΔΟΜΕΣ ΕΠAΝΑΛΗΨΗΣ Διδάσκοντες: Μάγια Σατρατζέμη, Αλέξανδρος Χατζηγεωργίου, Ηλίας Σακελλαρίου, Στέλιος Ξυνόγαλος

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

class object Database Database Item Item [sub-typing and polymorphism] MusicCD Video MusicCD Video

class object Database Database Item Item [sub-typing and polymorphism] MusicCD Video MusicCD Video ιάγραµµα κλάσεων [Class diagram] Εβδοµάδα 2: Υπο-τύποι και πολυµορφισµός [sub-typing and polymorphism] Database Music Σχεδίαση-Ανάπτυξη Εφαρµογών Πληροφορικής Αντώνιος Συµβώνης, ΕΜΠ, Slide 1 Σχεδίαση-Ανάπτυξη

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

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

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

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

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

ΕΠΛ031 - Εισαγωγή στον Προγραμματισμό Επικοινωνία Προγράμματος Περιβάλλοντος ΕΠΛ031 Εισαγωγή στον Προγραμματισμό Επικοινωνία Προγράμματος Περιβάλλοντος Λογικές Μονάδες Μεταφορά εδομένων Μορφοποίηση εδομένων Νέαρχος Πασπαλλής Επισκέπτης Ακαδημαϊκός

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

Συνοπτικό εγχειρίδιο χρήσης του Microsoft Visual Studio 2010

Συνοπτικό εγχειρίδιο χρήσης του Microsoft Visual Studio 2010 Τμήμα Πληροφορικής & Επικοινωνιών Τομέας Υπολογιστικών Τεχνικών & Συστημάτων Συνοπτικό εγχειρίδιο χρήσης του Microsoft Visual Studio 2010 Ιωάννης Γεωργουδάκης - Πάρις Μαστοροκώστας Σεπτέμβριος 2011 ΠΕΡΙΕΧΟΜΕΝΑ

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

ΕΠΛ233 Βιβλιοθήκες και Προσδιοριστές Πρόσβασης στην JAVA

ΕΠΛ233 Βιβλιοθήκες και Προσδιοριστές Πρόσβασης στην JAVA Βιβλιοθήκες και Προσδιοριστές Πρόσβασης στην JAVA 2 «Μονάδα Μετάφρασης» 2 «Μονάδα Μετάφρασης» Όταν δημιουργείται ένα αρχείο πηγαίου κώδικα στην Java, το αρχείο καλείται µονάδα µετάφρασης (compilation unit)

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

Αρχιτεκτονική Υπολογιστών Ασκήσεις Εργαστηρίου

Αρχιτεκτονική Υπολογιστών Ασκήσεις Εργαστηρίου Αρχιτεκτονική Υπολογιστών Ασκήσεις Εργαστηρίου Ενότητα: ΕΡΓΑΣΤΗΡΙΑΚΗ ΑΣΚΗΣΗ Νο 04 Δρ. Μηνάς Δασυγένης mdasyg@ieee.org Τμήμα Μηχανικών Πληροφορικής και Τηλεπικοινωνιών Εργαστήριο Ψηφιακών Συστημάτων και

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

ΥΛΟΠΟΙΗΣΗ ΠΡΟΤΥΠΩΝ ΕΠΙΚΟΙΝΩΝΙΑΣ ΜΕ ΤΗ ΒΙΒΛΙΟΘΗΚΗ JAVA.NET ΣΤΑ ΠΛΑΙΣΙΑ ΤΟΥ ΜΑΘΗΜΑΤΟΣ ΔΙΚΤΥΑ ΥΠΟΛΟΓΙΣΤΩΝ ΤΟΥ ΚΥΚΛΟΥ ΠΛΗΡΟΦΟΡΙΚΗΣ ΤΟΥ ΤΕΕ

ΥΛΟΠΟΙΗΣΗ ΠΡΟΤΥΠΩΝ ΕΠΙΚΟΙΝΩΝΙΑΣ ΜΕ ΤΗ ΒΙΒΛΙΟΘΗΚΗ JAVA.NET ΣΤΑ ΠΛΑΙΣΙΑ ΤΟΥ ΜΑΘΗΜΑΤΟΣ ΔΙΚΤΥΑ ΥΠΟΛΟΓΙΣΤΩΝ ΤΟΥ ΚΥΚΛΟΥ ΠΛΗΡΟΦΟΡΙΚΗΣ ΤΟΥ ΤΕΕ 3 Ο ΣΥΝΕΔΡΙΟ ΣΤΗ ΣΥΡΟ-ΤΠΕ ΣΤΗΝ ΕΚΠΑΙΔΕΥΣΗ 145 ΥΛΟΠΟΙΗΣΗ ΠΡΟΤΥΠΩΝ ΕΠΙΚΟΙΝΩΝΙΑΣ ΜΕ ΤΗ ΒΙΒΛΙΟΘΗΚΗ JAVA.NET ΣΤΑ ΠΛΑΙΣΙΑ ΤΟΥ ΜΑΘΗΜΑΤΟΣ ΔΙΚΤΥΑ ΥΠΟΛΟΓΙΣΤΩΝ ΤΟΥ ΚΥΚΛΟΥ ΠΛΗΡΟΦΟΡΙΚΗΣ ΤΟΥ ΤΕΕ Βραχνός Ευριπίδης Καθηγητής

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

Στοιχεία Προγραμματισμού Σε Γραφικό Περιβάλλον Φύλλο εργασίας 1 ο

Στοιχεία Προγραμματισμού Σε Γραφικό Περιβάλλον Φύλλο εργασίας 1 ο Τετάρτη, 30 Οκτωβρίου 2013 Στοιχεία Προγραμματισμού Σε Γραφικό Περιβάλλον Φύλλο εργασίας 1 ο Λύστε στο Visual Basic Express 2010 τις παρακάτω ασκήσεις: 1. Να δημιουργήσετε ένα νέο Project του είδους Console

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

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

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

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

Λογικό "και" (AND) μας επιστρέφει 1 αν και οι δύο operands είναι όχι μηδέν, διαφορετικά 0)

Λογικό και (AND) μας επιστρέφει 1 αν και οι δύο operands είναι όχι μηδέν, διαφορετικά 0) 0ι Λογικοί Τελεστές: Πρόκειται για τελεστές που μας επιτρέπουν να συνδυάσουμε απλές εκφράσεις συσχετισμού και να δημιουργήσουμε πιό πολύπλοκες λογικές εκφράσεις. Εχουμε λοιπόν: && Λογικό "και" (AND) μας

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

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

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

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

Είσοδος και Έξοδος. (Input and Output) Διαφάνειες από τους Robert Sedgewick και Kevin Wayne. Τι θα δούµε σήµερα

Είσοδος και Έξοδος. (Input and Output) Διαφάνειες από τους Robert Sedgewick και Kevin Wayne. Τι θα δούµε σήµερα Είσοδος και Έξοδος (Input and Output) Διδάσκοντες: Νικόλας Νικολάου Εαρινό Εξάµηνο 2013/14 Τι θα δούµε σήµερα Συσκευές Εισόδου / Εξόδου Εκτύπωση στο StdOut Ανάγνωση δεδοµένων από Γραµµή Εντολής Ανάγνωση

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

Διδάσκων: Παναγιώτης Ανδρέου

Διδάσκων: Παναγιώτης Ανδρέου Διάλεξη 6: Αφαιρετικότητα, Βιβλιοθήκες Στην ενότητα αυτή θα μελετηθούν τα εξής επιμέρους θέματα: - Αφαιρετικότητα -Βιβλιοθήκες (packages) Διδάσκων: Παναγιώτης Ανδρέου ΕΠΛ233 Αντικειμενοστρεφής Προγραμματισμός

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

Εργαστήριο Δομημένος Προγραμματισμός (C#) Τμήμα Μηχανολογίας Νικόλαος Ζ. Ζάχαρης Καθηγητής Εφαρμογών

Εργαστήριο Δομημένος Προγραμματισμός (C#) Τμήμα Μηχανολογίας Νικόλαος Ζ. Ζάχαρης Καθηγητής Εφαρμογών Εργαστήριο Δομημένος Προγραμματισμός (C#) Τμήμα Μηχανολογίας Νικόλαος Ζ. Ζάχαρης Καθηγητής Εφαρμογών Σκοπός Να αναπτύξουν ένα πρόγραμμα όπου θα επαναλάβουν τα βήματα ανάπτυξης μιας παραθυρικής εφαρμογής.

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

Διάλεξη 5: Κλάσεις και Αντικείμενα. Διδάσκων: Παναγιώτης Ανδρέου

Διάλεξη 5: Κλάσεις και Αντικείμενα. Διδάσκων: Παναγιώτης Ανδρέου Διάλεξη 5: Κλάσεις και Αντικείμενα Στην ενότητα αυτή θα μελετηθούν τα εξής επιμέρους θέματα: Εισαγωγή στις έννοιες: - Κλάσεις και Αντικείμενα - Κατασκευή, Πρόσβαση Αντικειμένων - Διαχείριση Μνήμης, Garbage

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

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

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

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

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

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

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

Εργαστήριο Δομημένος Προγραμματισμός (C#) Τμήμα Μηχανολογίας Νικόλαος Ζ. Ζάχαρης Καθηγητής Εφαρμογών

Εργαστήριο Δομημένος Προγραμματισμός (C#) Τμήμα Μηχανολογίας Νικόλαος Ζ. Ζάχαρης Καθηγητής Εφαρμογών Εργαστήριο Δομημένος Προγραμματισμός (C#) Τμήμα Μηχανολογίας Νικόλαος Ζ. Ζάχαρης Καθηγητής Εφαρμογών Σκοπός Nα κατασκευάσουν πίνακες από δεδομένα. Να κατασκευάσουν συναρτήσεις με πίνακες. Να κάνουν χρήση

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

ΛΥΚΕΙΟ ΣΟΛΕΑΣ Σχολική χρονιά 2008-2009

ΛΥΚΕΙΟ ΣΟΛΕΑΣ Σχολική χρονιά 2008-2009 ΛΥΚΕΙΟ ΣΟΛΕΑΣ Σχολική χρονιά 2008-2009 ΓΡΑΠΤΕΣ ΠΡΟΑΓΩΓΙΚΕΣ ΕΞΕΤΑΣΕΙΣ ΙΟΥΝΙΟΥ 2009 ΜΑΘΗΜΑ: ΠΛΗΡΟΦΟΡΙΚΗ ΤΑΞΗ : Β ΗΜΕΡΟΜΗΝΙΑ: Τετάρτη, 3 Ιουνίου 2009 ΩΡΑ: 07:45 10:15 ΟΔΗΓΙΕΣ: Το εξεταστικό δοκίμιο αυτό αποτελείται

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

Αρχεία & Ρεύματα ΑΡΧΕΙΑ & ΡΕΥΜΑΤΑ. Γεώργιος Παπαϊωάννου (2013-14) gepap@aueb.gr

Αρχεία & Ρεύματα ΑΡΧΕΙΑ & ΡΕΥΜΑΤΑ. Γεώργιος Παπαϊωάννου (2013-14) gepap@aueb.gr ΑΡΧΕΙΑ & ΡΕΥΜΑΤΑ Γεώργιος Παπαϊωάννου (2013-14) gepap@aueb.gr Περιγραφή: Τύποι αρχείων Ρεύματα Άνοιγμα ρευμάτων Εγγραφή και ανάγνωση δεδομένων προς/από ένα ρεύμα Διαχείριση και κλείσιμο ρευμάτων Παραδείγματα

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

Αρχιτεκτονική Υπολογιστών Ασκήσεις Εργαστηρίου

Αρχιτεκτονική Υπολογιστών Ασκήσεις Εργαστηρίου Αρχιτεκτονική Υπολογιστών Ασκήσεις Εργαστηρίου Ενότητα: ΕΡΓΑΣΤΗΡΙΑΚΗ ΑΣΚΗΣΗ Νο 06 Δρ. Μηνάς Δασυγένης mdasyg@ieee.org Τμήμα Μηχανικών Πληροφορικής και Τηλεπικοινωνιών Εργαστήριο Ψηφιακών Συστημάτων και

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

ΣΥΣΧΕΤΙΣΕΙΣ ΚΛΑΣΕΩΝ (Class relationships)

ΣΥΣΧΕΤΙΣΕΙΣ ΚΛΑΣΕΩΝ (Class relationships) ΣΥΣΧΕΤΙΣΕΙΣ ΚΛΑΣΕΩΝ (Class relationships) Σκοπός Σκοπός των συσχετίσεων είναι να αναπαριστούν την αλληλεπίδραση μεταξύ των κλάσεων και των αντικειμένων. Απεικονίζονται διαγραμματικά με μία γραμμή μεταξύ

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

Προγραµµατισµός JAVA. ρ Γεώργιος Μαυροµµάτης Πειραιάς 2004

Προγραµµατισµός JAVA. ρ Γεώργιος Μαυροµµάτης Πειραιάς 2004 Προγραµµατισµός JAVA ρ Γεώργιος Μαυροµµάτης Πειραιάς 2004 Αλγόριθµος Ένας Αλγόριθµος είναι µία καλά ορισµένη υπολογιστική διαδικασία που δέχεται κάποιες τιµές σαν είσοδο και παράγει κάποιες τιµές σαν έξοδο.

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

ΣΥΝΑΡΤΗΣΕΙΣ Παραδείγματα χρήσης συναρτήσεων

ΣΥΝΑΡΤΗΣΕΙΣ Παραδείγματα χρήσης συναρτήσεων ΣΥΝΑΡΤΗΣΕΙΣ Παραδείγματα χρήσης συναρτήσεων ΠΟΛΛΕΣ ΕΝΤΟΛΕΣ ΕΠΙΣΤΡΟΦΗΣ Να γραφτεί ένα πρόγραμμα που να διπλασιάζει ένα ποσό που του δίνει ο χρήστης μεταξύ 0 και 1000. Να ελέγχει εάν το ποσό που εισήχθη

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

Τυπικές χρήσεις της Matlab

Τυπικές χρήσεις της Matlab Matlab Μάθημα 1 Τι είναι η Matlab Ολοκληρωμένο Περιβάλλον Περιβάλλον ανάπτυξης Διερμηνευμένη γλώσσα Υψηλή επίδοση Ευρύτητα εφαρμογών Ευκολία διατύπωσης Cross platform (Wintel, Unix, Mac) Τυπικές χρήσεις

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

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

ΕΙΣΑΓΩΓΗ ΣΤΟΝ ΔΟΜΗΜΕΝΟ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟ Πανεπιστήμιο Δυτικής Μακεδονίας Τμήμα Μηχανικών Πληροφορικής και Τηλεπικοινωνιών ΕΙΣΑΓΩΓΗ ΣΤΟΝ ΔΟΜΗΜΕΝΟ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟ Διαμόρφωση Ελέγχου Ροής Προγράμματος Δομημένος Προγραμματισμός Ο πιο απλός και συνηθισμένος

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

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

Προγραμματισμός Διαδικτύου 1 Ελληνική Δημοκρατία Τεχνολογικό Εκπαιδευτικό Ίδρυμα Ηπείρου Προγραμματισμός Διαδικτύου Ενότητα 7 : Αρχεία στην Java Ιωάννης Τσούλος 2 Ανοιχτά Ακαδημαϊκά Μαθήματα στο ΤΕΙ Ηπείρου Τμήμα Μηχανικών Πληροφορικής

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

5. Ανασκόπηση αντικειμενοστραφούς προγραμματισμού

5. Ανασκόπηση αντικειμενοστραφούς προγραμματισμού 5. Ανασκόπηση αντικειμενοστραφούς προγραμματισμού Χειμερινό εξάμηνο 2013 Πέτρος Κωμοδρόμος komodromos@ucy.ac.cy http://www.eng.ucy.ac.cy/petros 1 Θέματα Αντικειμενοστραφής προγραμματισμός Τάξεις (classes)

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

Διάλεξη 16-17: Πολυμορφισμός (Polymorphism) Διδάσκων: Παναγιώτης Ανδρέου

Διάλεξη 16-17: Πολυμορφισμός (Polymorphism) Διδάσκων: Παναγιώτης Ανδρέου Διάλεξη 16-17: Πολυμορφισμός (Polymorphism) Στην ενότητα αυτή θα μελετηθούν τα εξής επιμέρους θέματα: -Υπερφόρτωση (Overloading), Μεθόδων (Method Overloading), Τελεστών (Operator Overloading (C++, C#))

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

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

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

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

Στην ενότητα αυτή θα µελετηθούν τα εξής επιµέρους θέµατα: ΕΠΛ 131 Αρχές Προγραµµατισµού I 3-2

Στην ενότητα αυτή θα µελετηθούν τα εξής επιµέρους θέµατα: ΕΠΛ 131 Αρχές Προγραµµατισµού I 3-2 Εισαγωγή στην C Στην ενότητα αυτή θα µελετηθούν τα εξής επιµέρους θέµατα: Σύνταξη και Σηµασιολογία της C Σχολιασµός Μεταβλητές / Σταθερές Τύποι εδοµένων και Τελεστές Βιβλίο µαθήµατος: Chapter 2,, Sec.

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

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

Εισαγωγή στη γλώσσα προγραμματισμού JAVA. Δομές Δεδομένων Διδάσκων: Π.Α. Μήτκας Τομέας Ηλεκτρονικής και Υπολογιστών Εισαγωγή στη γλώσσα προγραμματισμού JAVA Δομές Δεδομένων Διδάσκων: Π.Α. Μήτκας Τομέας Ηλεκτρονικής και Υπολογιστών Το πρώτο φλιτζάνι Java Λίστα με τα απαραίτητα Το πρώτο μου πρόγραμμα(hello World) Συνεχίζοντας

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