ΣΗΜΕΙΩΣΕΙΣ ΜΑΘΗΜΑΤΟΣ «ΓΛΩΣΣΕΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ»

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

Download "ΣΗΜΕΙΩΣΕΙΣ ΜΑΘΗΜΑΤΟΣ «ΓΛΩΣΣΕΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ»"

Transcript

1 ΣΗΜΕΙΩΣΕΙΣ ΜΑΘΗΜΑΤΟΣ «ΓΛΩΣΣΕΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ» Κωνσταντίνος Π. Φερεντίνος Διδάσκων ΠΔ 407/80 Οι σημειώσεις αυτές του μαθήματος «Γλώσσες Προγραμματισμού» αναπτύχθηκαν στα πλαίσια του προγράμματος «ΕΠΕΑΕΚ 2 Πρόγραμμα Αναβάθμισης Προπτυχιακών Σπουδών» ΙΟΥΝΙΟΣ 2005 ebooks4greeks.gr

2 Σημειώσεις JAVA 1 η εβδομάδα Γιατί JAVA; 1) Portable (φορητότητα): εκτέλεση του ίδιου κώδικα ανεξαρτήτως πλατφόρμας (αρκεί να είναι εγκατεστημένος ο αντίστοιχος μεταγλωττιστής Java) Internet 2) Αντικειμενοστραφής αλλά απλούστερη της C++. 3) Μεγάλη βιβλιοθήκη κλάσεων (έτοιμων προγραμμάτων) 4) Χρησιμοποιεί στοιχεία της C. Άλλα χαρακτηριστικά της JAVA: Ασφαλής, κατανεμημένη, multithreaded. Αλγόριθμος: Βήμα προς βήμα διαδικασία για την επίλυση κάποιου προβλήματος. Το πλήθος των βημάτων πρέπει να είναι πεπερασμένο. 1) Καθορισμός στόχου - περιορισμοί; - παραδοχές; (υποθέσεις) 2) Καταμερισμός σε λογικά βήματα - απαραίτητα inputs - σταθερές - user inputs - data από αρχείο - data από άλλο μέρος του προγράμματος 3) Επιλογή των outputs - Ποια; - Που; (οθόνη; αρχείο; εκτυπωτή; αλλού;) 4) Διαδικασίες για τη λύση του προβλήματος - Καταμερισμός σε υπο-προβλήματα / ενέργειες / εξισώσεις - Εφαρμογή βημάτων σε λογική σειρά Κλάση υποστήριξης Αντικείμενο Κλάση υποστήριξης Αντικείμενο Κλάση εφαρμογής Κλάση υποστήριξης Αντικείμενο

3 ΠΡΟΓΡΑΜΜΑ Αποτελείται από Κλάσεις Αποτελούνται από Μέλη (members) είναι είναι πεδία μέθοδοι είναι είναι μεταβλητές ορίζονται με αντικείμενα ορίζονται με τύπο (type) κλάση Ανάπτυξη εφαρμογής: 1) Κώδικας Java κλάσεις αρχεία: Class1.java, Class2.java, 2) Compiler (μεταγλωτιστής): javac Class1.java Class1.class, 3) Interpreter (διερμηνευτής): εκτελεί αρχεία.class: java Class1, Αν είναι applet: εκτέλεση μέσω browser ή appletviewer.

4 Απλή εφαρμογή: (Μία μόνο κλάση κλάση εφαρμογής) class Hello public static void main (String [ ] args) System.out.println( Hello! ); save: Hello.java C:\> javac Hello.java C:\> java Hello ΚΛΑΣΗ: σύνθετος τύπος δεδομένων Types: - primitive types (πρωτογενείς) (Boolean, int, double, κτλ.) - String - Κλάσεις σύνθετη δομή σχεδιασμένη απ τον προγραμματιστή Όπως μια μεταβλητή a μπορεί να είναι ακέραια: public int a; έτσι και ένα αντικείμενο fiat μπορεί να είναι της κλάσης Car: Car fiat = new Car(); (ένα αντικείμενο λέγεται και στιγμιότυπο (instance) μιας κλάσης) ΚΛΑΣΗ: Επικεφαλίδα Πεδία (μεταβλητές, αντικείμενα) Constructors (κατασκευαστές ή δημιουργοί) (περισσότερα σε επόμενη παράδοση) Μέθοδοι

5 Κάποιοι κανόνες σύνταξης της Java: Δεσμευμένες λέξεις (reserved): class, public, private, int, double, char, κ.α. Identifiers ονόματα πραγμάτων (μεθόδων, κλάσεων, μεταβλητών...) - ξεκινάνε με: γράμμα, _, # - περιέχουν: γράμματα, νούμερα, _, # - μέχρι 256 χαρακτήρες (3-15 συνήθως) - χωρίς κενά Συνήθως: - ονόματα Κλάσεων ξεκινάνε με Κεφαλαίο - υπόλοιπα ονόματα: με μικρό - σταθερές: ΟΛΑ κεφαλαία Παράδειγμα Κλάσης: Επικεφαλίδα: > public class ToKelvin > Πεδία: > private double C2K = ; > > Μέθοδος: > public double returnkelvin (double tempc) > > return (tempc + C2K); > // end class

6 Ορισμός μεταβλητής: [ορατότητα] <τύπος> <όνομα> [= <τιμή>]; public int private double π.χ.: public double var1; private int var2 = 5; Ορισμός μεθόδου: [ορατότητα] <τύπος> <όνομα> ([παράμετροι]) public void private int. double.... void: η μέθοδος δεν επιστρέφει τίποτα int, double, char,... : η μέθοδος επιστρέφει μια μεταβλητή του αντίστοιχου τύπου, άρα περιέχει τη λέξη return. Οι παράμετροι, εάν υπάρχουν, είναι της μορφής: <όνομα_μεθόδου> (<τύπος> <παράμ.1>, <τύπος> <παράμ.2>,...) Η κλάση ToKelvin είναι μια κλάση υποστήριξης. Για να «τρέξει» πρέπει να φτιάξουμε μια κλάση εφαρμογής (TempConv), έτσι ώστε: ToKelvin C TempConv Κλάση Υποστήριξης Κλάση Εφαρμογής K

7 public class TempConv public static void main (String [ ] args) // dimiourgia metavlitwn: double C = 15.5; double K; // dimiourgia antikeimenou tis klasis ToKelvin: ToKelvin ToK = new ToKelvin(); // klisi tis methodou returnkelvin me apostoli // tis thermokrasias se vathmous Celsiou // kai epistrofi tis se vathmous Kelvin: K = ToK.returnKelvin(C); // ektypwsi stin othoni tis therm. se Kelvin: System.out.println(K); // end main // end class ΠΟΛΥ ΣΗΜΑΝΤΙΚΟ: Εκτέλεση μεθόδου του στιγμιότυπου (αντικειμένου) μιας κλάσης: 1) Δημιουργία στιγμιότυπου (αντικειμένου) της κλάσης: <όνομα_κλάσης> <όνομα_αντικειμ> = new <όνομα_κλάσης> ( ); π.χ.: Class1 obj1 = new Class1(); 2) Κλήση μεθόδου (invoke method): <όνομα_αντικειμ>.<όνομα_μεθόδου> ( ); π.χ.: obj1.method1();

8 Παράδειγμα: Κλάση υποστήριξης: public class Class1 private int a = 5; private int b = 3; public int c; public void method1() c = 2 * a + b; Κλάση εφαρμογής: public class Class2 public static void main (String [ ] args) // dimiourgia 2 antikeimenwn tis Class1: Class1 obj1 = new Class1(); Class1 obj2 = new Class1(); // klisi tis methodou method1 gia to antikeimeno obj1 obj1.method1(); // ektypwsi stin othoni: System.out.println(obj1.c); // tha typwsei: 13 System.out.println(obj2.c); // tha typwsei: 0 // end method // end class

9 Το obj1.c είναι 13 γιατί έχουμε καλέσει πριν τη μέθοδο method1 για το συγκεκριμένο αντικείμενο (obj1). Το obj2.c είναι 0 γιατί δεν έχουμε καλέσει τη method1 για το αντικείμενο αυτό (obj2). Καλύτερη προσέγγιση Χρήση accessor methods: Κάνουμε τις εξής αλλαγές στον κώδικα: Κάνουμε private τη μεταβλητή c της κλάσης Class1 Προσθέτουμε μια accessor method στην Class1: public int method2() return c; Στην Class2 αλλάζουμε τις System.out.println διαταγές σε: System.out.println(obj1.method2()); System.out.println(obj2.method2()); Το αποτέλεσμα είναι ακριβώς το ίδιο. Όμως, με τον τρόπο αυτό δεν επιτρέπεται στην Class2 να αλλάξει τη μεταβλητή c όπως θέλει, άρα η c αλλάζει μόνο όπως ο προγραμματιστής έχει επιλέξει στην Class1 (μέσω της method1() ). Αυτός θεωρείται ασφαλής τρόπος προγραμματισμού, και είναι ο ενδεδειγμένος.

10 Άρα, διακρίνουμε 3 είδη μεθόδων: 1) Operator methods (λειτουργικές): public void opmethod() //δηλώσεις; //υπολογισμοί; (είναι πάντα void, δεν επιστρέφουν τίποτα, απλά υπολογίζουν κάτι) 2) Modifier methods (τροποποιητικές) private double var1; public void modmethod(double var2) var1 = var2; (δέχονται πάντα κάποια παράμετρο (π.χ. var2), την τιμή της οποίας «περνάνε» σε κάποια private μεταβλητή της κλάσης τους (π.χ. var1) ) 3) Accessor methods (πρόσβασης) private int var3; public int accessmethod() return var3; (είναι πάντα public, επιστρέφουν (return) μια private μεταβλητή και είναι του ίδιου τύπου με τη μεταβλητή που επιστρέφουν στο παραπάνω παράδειγμα int) Συχνά υπάρχουν μέθοδοι που είναι συνδυασμοί των παραπάνω τύπων, κυρίως των τύπων (2) και (3).

11 Σημειώσεις JAVA 2 η εβδομάδα Οι 5 βασικές λειτουργικές έννοιες της αντικειμενοστραφούς φιλοσοφίας της JAVA: (υπάρχουν και άλλες βασικές έννοιες, για τις οποίες θα μιλήσουμε αργότερα...) 1) Ορισμός Κλάσης: public class Name // μεταβλητές // μέθοδοι 2) Ορισμός μεταβλητής: [ορατότητα] <τύπος> <όνομα> [=τιμή]; public int var1 = 5; private double var2 ; public String var3 = Hello. ; 3) Ορισμός μεθόδου: [ορατότητα] <τύπος> <όνομα> ( [παράμετροι] )... π.χ. private void method1()... public double method2() return doublevar; private int a; private double b; public void method3(int x, double b) a = x; this.b = b; // το this. «δείχνει» τη μεταβλητή της κλάσης 4) Δημιουργία αντικειμένου (στιγμιότυπου) κλάσης: <Κλάση> <αντικείμενο> = new <Κλάση> ( );

12 Circle c1 = new Circle(); Dog ivan = new Dog(); 5) Κλήση μεθόδου αντικειμένου ΠΡΟΣΟΧΗ: Όχι «κλήση μεθόδου κλάσης». Η κλάση είναι «καλούπι» για αντικείμενα. Οι μέθοδοι μιας κλάσης ανήκουν στην ουσία στα αντικείμενά της. <αντικείμενο>.<μέθοδος>( ); π.χ. Αν έχουμε μια κλάση υποστήριξης ως εξής: public class Dog private String color; public void setcolor(string a) color = a; public String accesscolor() return color; τότε από κάποια άλλη κλάση υποστήριξης ή από την κλάση εφαρμογής, μπορούμε να φτιάξουμε αντικείμενα της κλάσης Dog, να στείλουμε τα χρώματα των αντικειμένων αυτών, ή από κάπου αλλού να «διαβάσουμε» τα χρώματά τους: // δημιουργία αντικειμένων της κλάσης Dog Dog ivan = new Dog(); Dog voula = new Dog(); // αποστολή του χρώματος του κάθε αντικειμένου ivan.setcolor(black); voula.setcolor(white); // Όταν κάπου αλλού θέλουμε να ανακτήσουμε τα χρώματα // των αντικειμένων που έχουμε φτιάξει: String mydogcolor; // το χρώμα του σκύλου μου String nikosdogcolor; // το χρώμα του σκύλου του Νίκου

13 // αν ο σκύλος μου είναι ο Ivan και ο σκύλος του Νίκου η Βούλα: mydogcolor = ivan.accesscolor(); nikosdogcolor = voula.accesscolor(); // επιστρέφει black // επιστρέφει white Δηλαδή, η μεταβλητή color της κλάσης Dog, στην ουσία δεν έχει κάποια συγκεκριμένη τιμή. Συγκεκριμενοποιείται μόνο όταν φτιάξουμε κάποιο αντικείμενο της κλάσης Dog και έχει τόσα «αντίγραφα» όσα είναι τα αντικείμενα. Αφού συγκεκριμενοποιηθεί από τη δημιουργία αντικειμένου, παίρνει συγκεκριμένη τιμή όταν καλέσουμε τη μέθοδο setcolor. Primitive Types (πρωτογενείς τύποι μεταβλητών) byte -128 ακέραιος 127 short ακέραιος int ακέραιος long ακέραιος float δεκαδικός ακρίβεια: ±10-46 εύρος: ±10 38 double δεκαδικός ακρίβεια: ± εύρος: ± char χαρακτήρας unicode boolean false, true π.χ. int a = 18743; double b = ; char c = A ; Boolean d = true; To = δεν είναι το μαθηματικό =. Είναι μεταβίβαση της τιμής στα δεξιά του στη μεταβλητή στα αριστερά του. Άρα, τα ακόλουθα είναι σωστά στη JAVA: a = a + 5; x = 1; y = 2; x = y; Τύπος String (κλάση) public String x = Αύριο είναι ; public String y = Σαββάτο ; System.out.println(x+y) // --> Αύριο είναι Σαββάτο public String a = 10 ;

14 public String b = 20 ; System.out.println(x+y) // --> 1020 Μετατροπή τύπων: doublevar = (double) intvar; intvar = (int) doublevar; Τελεστές πράξεων: +, -, *, /. % 3*4 --> 12, 3/4 --> 0 (ακέραιοι!), 3%4 --> 3, 11%3 --> 2 Μαθηματικές συναρτήσεις: Math.sin(x) --> ημ(x), Math.cos(x) --> συν(x), Math.exp(x) --> e x, Math.pow(x,y) --> x y Math.PI --> π a+=x; --> a=a+x; a-=x; --> a=a-x; a*=x; --> a=a*x; a/=x; --> a=a/x; a++; --> a=a+1; ++a; a--; --> a=a-1; --a; π.χ. int a, b, c; a=2; a+=6; --> a=8 a-=3; --> a=5 a*=2; --> a=10 b = 2 * a++; --> a=11, b=20 c = 2 * ++a; --> a=12, b=24

15 Παράδειγμα μετατροπής τύπων: int a = 73, b = 10; double c, d; c = a / b; --> c=7.0 d = (double) a / b; --> d=7.3 Σύγκριση μεταβλητών: a==b a<b a>b --> boolean a!=b a<=b a>=b (5==5) --> true (5==3) --> false boolean isrefriglighton; boolean isrefrigdooropen; isrefriglighton = (isrefrigdooropen==true); Λογικές σχέσεις: Α&&Β, Α&Β AND (το && σταματάει αν η πρώτη έκφραση είναι false) Α Β, Α Β OR (το σταματάει αν η πρώτη έκφραση είναι true)!a NOT (3==7) && (2==(3/0)) --> false (3==7) & (2==(3/0)) --> σφάλμα στο compilation (division by zero) Επικοινωνία με το χρήστη Μέσω διαλόγων (dialog boxes) --> import javax.swing.*; Χρήση της class: JOptionPane Μέθοδοι: 1) showinputdialog --> ζητάει εισαγωγή δεδομένων (input) 2) showmessagedialog --> εξαγωγή αποτελεσμάτων (output) 3) showconfirmdialog --> επιλογή περιπτώσεων (Yes/No/Cancel) 1) String s; s = JOptionPane.showInputDialog(<μήνυμα>)

16 π.χ. String s = JOptionPane.showInpurDialog( Δώσε την ηλικία σου ); (επιστρέφει την είσοδο σαν String. Άρα, αν η είσοδος είναι νούμερο, πρέπει να το μετατρέψουμε: --> Πώς μετατρέπουμε String σε int και double? - Σε int: int age; age = Integer.parseInt(s); showinputdialog // s είναι το string που πήρε ο - Σε double: double age; age = Double.parseDouble(s); 2) JOptionPane.showMessageDialog(null, ); 3) int i; i = JOptionPane.showConfirmDialog(null, ) YES --> 0, NO --> 1, CANCEL --> 2 ή i=joptionpane.showconfirmdialog(null, question, box title, x) όπου το x επιλέγει τον τύπο του παραθύρου και μπορεί να είναι 0, 1 ή 2, ως εξής: 0 --> YES/NO 1 --> YES/NO/CANCEL 2 --> OK/CANCEL

17 Σημειώσεις JAVA 3 η εβδομάδα Constructors (κατασκευαστές ή δημιουργοί) Ειδικός τύπος μεθόδων, οι οποίες: - Είναι public και έχουν το ίδιο όνομα με αυτό της κλάσης - χρησιμοποιούνται για να αρχικοποιήσουν κάποιες μεταβλητές των αντικειμένων που δημιουργούν - καλούνται αυτόματα όταν αρχικοποιούμε ένα αντικείμενο κάποιας κλάσης - δεν επιστρέφουν κάποια τιμή Σε μία κλάση με το όνομα ClassName: public class ClassName private int a; private String b; // default constructor: public ClassName() // another constructor: public ClassName(int x, String s) a = x; b = s; // other statements, methods, etc.

18 Παράδειγμα constructors στην κλάση Circle: public class Circle private double x, y; // συντεταγμένες κέντρου private double r; // ακτίνα // μέθοδος για υπολογισμό εμβαδού κύκλου public double area() return Math.PI*Math.pow(r,2); // μέθοδος για υπολογισμό περιφέρειας κύκλου public double circumf() return 2*Math.PI*r; Οι μεταβλητές x, y και r είναι private. Ένας τρόπος για να τους δώσουμε τιμές θα ήταν η ύπαρξη αντίστοιχων modifier μεθόδων στην κλάση Circle. Επειδή όμως, κάθε αντικείμενο («κύκλος») που θα δημιουργούμε, αναγκαστικά θα πρέπει να έχει τουλάχιστον κάποια δεδομένη ακτίνα, μπορούμε να αυτοματοποιήσουμε την απόδοση τιμών σε (κάποιες από) αυτές τις μεταβλητές, με την δημιουργία κάποιων constructors: public Circle(double a, double b, double c) x = a; y = b; r = c; public Circle(double r) x = 0; y = 0; this.r = r; public Circle() x = 0; y = 0; r = 1;

19 Ο πρώτος constructor αρχικοποιεί όλες τις μεταβλητές, ο δεύτερος αρχικοποιεί μόνο την ακτίνα, ενώ ο τρίτος είναι παραλλαγή του default constructor και δημιουργεί «μοναδιαίους κύκλους» (αντικείμενα με r = 1). Έτσι, μπορούμε να έχουμε τα εξής statements για τη δημιουργία αντικειμένων της κλάσης Class: Circle circle1 = new Circle(2.5, 3.5, 6); Circle circle2 = new Circle(4.3); Circle circle3 = new Circle(); Circle circle4 = new Circle(1.3, 4.5); ΛΑΘΟΣ! Δεν έχουμε φτιάξει constructor που να δέχεται δύο παραμέτρους...

20 ΕΛΕΓΧΟΣ ΡΟΗΣ ΠΡΟΓΡΑΜΜΑΤΟΣ Ι. Ελεγκτές συνθηκών ή περιπτώσεων: i) if/else ii) switch II. Επαναληπτικές διαδικασίες: i) for ii) while iii) do/while - if/else: if (συνθήκη) if (συνθήκη) statements; // if true statements; else else if(συνθήκη) statements; // if false statements; else if(συνθήκη) statements; else statements; Η συνθήκη είναι πάντα boolean έκφραση. Σε περίπτωση απόδοσης τιμής (x=y), το if/else μπορεί να γραφτεί σε συνοπτική μορφή: if (x > y) max = x; else max = (x > y)? x : y; max = y;

21 π.χ. if (grade>90) lettergrade = A ; else if (grade>80) lettergrade = B ; else if (grade>70) lettergrade = C ; else if (grade>60) lettergrade = D ; else lettergrade = F ; // πάνω από 90 -> Α // από 81 εως 90 -> Β // από 71 εως 80 -> C // από 61 εως 70 -> D // από 60 και κάτω -> F - switch: switch (varname) case value1: statements; break; // ή return case value2: statements; break; case value3: statements; break; default: statements; Η μεταβλητή VarName είναι είτε ακέραια, είτε τύπου boolean, είτε τύπου char.

22 Το switch «στέλνει» τη ροή του κώδικα στο ισχύον case. Αν δεν υπάρχει κάποιο break (ή return) στο τέλος ενός case, τότε η ροή του κώδικα συνεχίζει στο επόμενο case! π.χ. switch (lettergrade) case A : System.out.println( O vathmos einai megalyteros tou 90. ); break; case B : System.out.println( O vathmos einai metaksi 81 kai 90. ); break; case C : System.out.println( O vathmos einai metaksi 71 kai 80. ); break; case D : System.out.println( O vathmos einai metaksi 61 kai 70. ); break; default: System.out.println( O vathmos einai apo 60 kai katw... ); Παράδειγμα με παράλειψη κάποιου break: switch (lettergrade) case A : System.out.println( Poly kala!!! ); case B : System.out.println( Bravo! ); break; case C : System.out.println( Oxi ki asxima. );

23 break; case D : System.out.println( Etsi ki etsi... ); break; default: System.out.println( Wx... ); Το break στο case A λείπει. Άρα, σε περίπτωση που ο βαθμός είναι A, θα εμφανιστεί: Poly kala!!! Bravo! δηλαδή θα εκτελεστεί και το case B, ενώ αν ο βαθμός είναι Β, θα εμφανιστεί μόνο το: Bravo!

24 - for: for (counter=initval; counter<=finalval; counter++) statements; Σειρά εκτέλεσης εντολών: i) counter = initval; ii) έλεγχος counter<=finalval? iii) statements; iv) counter++ v) έλεγχος κτλ. Διάγραμμα Ροής του for-loop START FOR counter = initvalue OXI counter <= finalval? NAI statements; counter++ END FOR Συνήθως ο μετρητής (counter) ορίζεται τοπικά, στο πρώτο μέρος της παρένθεσης του forloop, δηλαδή είναι μια τοπική μεταβλητή (με εμβέλεια (scope) μόνο το for-loop). Παράδειγμα: for (int i=0; i<5; i++) Τυπώνει: 0 1 System.out.println(i); 2 3 4

25 Άλλο ένα παράδειγμα: Πρόγραμμα υπολογισμού του ν! (είμαστε μέσα σε μια κλάση και έχει γίνει import το javax.swing.*) private int n; private int factorial = 1; // methodos pou ypologizei to n!, opou to n eisagetai apo ton xristi public int fact() String s = JOptionPane.showInputDialog( Dwse enan akeraio ); n = Integer.ParseInt(s); for (int i=1; i<=n; i++) factorial *= i; JOptionPane.showMessageDialog( To + n + paragontiko + einai iso me + factorial); Nested for-loops: π.χ. for (int i=1; i<=5; i++) Σειρά εκτέλεσης: Μία φορά τα statements_1 //statements_1; Τρεις φορές τα statements_2 Μία φορά τα statements_3 for (int j=1; j=<3; j++) Δεύτερη φορά τα statements_1 Άλλες τρεις φορές τα statements_2 //statements_2; κτλ. // statements_3; - while: - do/while while(συνθήκη) do statements; statements; while(συνθήκη);

26 Η συνθήκη είναι ένα boolean expression (άρα: true ή false) Κάνουν επανάληψη των statements καθ όσον η συνθήκη είναι αληθής. Η διαφορά μεταξύ τους είναι ότι το do/while θα εκτελέσει τα statements τουλάχιστον μία φορά, ανεξάρτητα με το αν είναι true η συνθήκη, αφού την ελέγχει στο τέλος του loop, ενώ η while δεν μπαίνει καθόλου στο loop αν αρχικά η συνθήκη είναι false. Διαγράμματα Ροής του while και του do/while START while START do/while OXI boolean true? NAI statements; statements; boolean true? NAI OXI END while END do/while Παράδειγμα επιλογής while ή do/while: Θέλουμε να ζητήσουμε από τον χρήστη μια τιμή για τη μεταβλητή x η οποία να είναι μεγαλύτερη ή ίση του μηδενός. Αν ο χρήστης δίνει αρνητική τιμή, τότε η ερώτηση θα επαναλαμβάνεται μέχρι να δοθεί τιμή μεγαλύτερη ή ίση του μηδενός: private double x; public void askuser() while(x<0) // do

27 String s = JOptionPane.showInputDialog( Dwse mi arnitiki timi gia to x ); x = Double.parseDouble(s); // while(x<0); Όπως είναι γραμμένος ο κώδικας, θα χρησιμοποιήσουμε είτε τον κόκκινο κώδικα (while) είτε τον μπλε (do/while) ο οποίος είναι σαν comments εδώ. Ποιο από τα δύο θα επιλέξουμε; Η επιλογή του while είναι ΛΑΘΟΣ, γιατί το x είναι ήδη 0, άρα η ροή του κώδικα δεν θα μπει ποτέ μέσα στις αγκύλες του while, αφού το (x<0) είναι αρχικά false! Άρα δεν θα ζητηθεί ποτέ από τον χρήστη να εισάγει κάποια τιμή για το x Το σωστό είναι να χρησιμοποιήσουμε το do/while.

28 Σημειώσεις JAVA 4 η εβδομάδα Ανακεφαλαίωση: - Σύνταξη δεσμευμένες λέξεις, identifiers (ονόματα) - Ορισμός Κλάσης public class ClassName save σε αρχείο ClassName.java - Η Κλάση έχει: - μεταβλητές private int varname; public String varname2; - Είδη μεθόδων: - constructors public ClassName(...) - μεθόδους public void methodname(...) private int methodname2() i) operator public void methodname1() statements; ii) modifier iii) accessor private double var1; public void methodname2(double v1) var1 = v1; private boolean var2; public boolean methodname3() return var2; - Application Class main method Support Classes «καλούπια» για δημιουργία αντικειμένων Circle c1 = new Circle(); Circle c2 = new Circle(4,3,2); - Κλήση μεθόδων των αντικειμένων: double a;

29 a = c2.area(); - Πρωτογενείς (primitive) τύποι μεταβλητών - Μαθηματικές πράξεις, λογικές σχέσεις, συγκρίσεις μεταβλητών, μετατροπές τύπων, εμβέλεια (scope) μεταβλητών - If / else - Switch - For-loop - while do / while Ποια είναι η τιμή της μεταβλητής var4; ΑΣΚΗΣΕΙΣ ΠΑΡΑΔΕΙΓΜΑΤΑ double var1 = 4.3; double var2 = 2.7; int var3 = 4; int var4; var4 = (((int)var1)*(int)var2)%var3; ( 4 * 2 ) % 4 8 % 4 0 Τι θα τυπώσουν τα ακόλουθα προγράμματα; double w=75; double p; if (w>=35) p=20.0; if (w>=50) p=50; if (w>=75) p=100.0; System.out.println(p); double w=75; double p; if (w>=35) p=20.0; else if (w>=50) p=50; else if (w>=75) p=100.0; System.out.println(p); Απάντηση: Απάντηση: 20.0

30 Ο παρακάτω κώδικας να γραφεί χρησιμοποιώντας το switch: if (prefix == m ) System.out.println( milli ); if (prefix == c ) System.out.println( centi ); if (prefix == k ) System.out.println( kilo ); Απάντηση: switch(prefix) case m : System.out.println( milli ); break; case c : System.out.println( centi ); break; case k : System.out.println( kilo ); break; Τι τιμές έχουν τα s και n μετά την εκτέλεση των παρακάτω; int s = 1; int n = 1; while (s<10) s+=n; n++; Απάντηση: s = 11 n = 5 int s = 1; int n = 1; for (n=1; n<5; ++n) s-=n; Απάντηση: s = -9 n = 5 int s = 1; int n = 1; do s+=n; n--; while(n>-2); Απάντηση: s = 1 n = -2 Μια διευκρίνηση για την System.out.println: double x = 10; double y = 15;

31 System.out.println( Το άθροισμα είναι + x + y); System.out.println(x + y); System.out.println( Το άθροισμα είναι + (x + y)); Αυτό θα τυπώσει στην οθόνη: Το άθροισμα είναι Το άθροισμα είναι 25.0 Τι θα τυπώσουν τα ακόλουθα τμήματα κώδικα (το S.O.P. χρησιμοποιείται αντί του System.out.println για συντομία δεν είναι εντολή της JAVA); int x = 9; int y = 11; if (x<10) if (y>10) S.O.P.(x+y); else S.O.P.(x-y); S.O.P.(x%y); Απάντηση: 20 9 int x = 11; int y = 9; if (x<10) if (y>10) S.O.P.(x+y); else S.O.P.(x-y); S.O.P.(x%y); Απάντηση: 2 int x = 9; int y = 11; if (x<10) if (y>10) S.O.P.(x+y); else S.O.P.(x-y); S.O.P.(x%y); int x = 11; int y = 9; if (x<10) if (y>10) S.O.P.(x+y); else S.O.P.(x-y); S.O.P.(x%y); Απάντηση: 20 Απάντηση: 2 2 Να γίνει System.out.println των περιττών μεταξύ 10 και 100 με δύο τρόπους: α) με for-loop και β) με while. Απάντηση: α) for (int i=11; i<100; i+=2) System.out.println(i); β) int i=11; while (i<100) System.out.println(i); i+=2;

32 Τι θα τυπωθεί στην οθόνη όταν γίνει κλήση της μεθόδου methodname(); private int n=4;... public void methodname() for (int n=0; n<4; ++n) do while (n<3) System.out.println( n = + n++); n+=1; while (n<10); System.out.println( Final value of n = + n); Απάντηση: n = 0 n = 1 n = 2 Final value of n = 4 Nested for-loops: Τι θα τυπώσει στην οθόνη ο παρακάτω κώδικας; int k; for (int i=0; i<3; i++) k=0; for (int j=0; j<5; j++) k = k + j + i; System.out.println(k); Απάντηση:

33 Σημειώσεις JAVA 5 η εβδομάδα Η Κλάση String Κάθε αλφαριθμητικό (string) είναι αντικείμενο της κλάσης String. Βασική ιδιότητα: Τα strings, δηλ. τα αντικείμενα της κλάσης String, δεν μπορούν να τροποποιηθούν. Τρόποι δημιουργίας strings: i) Με τη χρήση εισαγωγικών: Hello ii) iii) Με τη χρήση των + ή += πάνω σε υπάρχοντα strings Hello + World --> νέο string --> Hello World Με κανονική δημιουργία αντικειμένου μέσω της new. Η string έχει δύο constructors: public String() και public String(String value) π.χ. String str1 = new String(); String str2 = new String(a); // a είναι ένα υπάρχον String Βασικές μέθοδοι της κλάσης String - public int length()--> επιστρέφει το πλήθος των χαρακτήρων του αλφ/κού π.χ. String a = blah blah ; int b = a.length(); // --> b = 9 - public char charat(int index) --> επιστρέφει τον χαρακτήρα στο σημείο index char d = a.charat(3); // --> d = h (μετράμε από το 0!) - public int indexof(char ch) --> επιστρέφει την πρώτη θέση του ch a.indexof( a ); --> 2

34 - public int indexof(char ch, int start) -->επιστρέφει την πρώτη θέση του ch από τη θέση start και μετά. a.indexof( a,3); --> 7 - public int indexof(string str) --> επιστρέφει την πρώτη θέση του str - public int indexof(string str, int start)-->επιστρέφει την πρώτη θέση του str από τη θέση start και μετά. - public int lastindexof(char ch) --> επιστρέφει την τελευταία θέση του ch - public int lastindexof(char ch, int start) --> επιστρέφει την τελευταία μέχρι και το start θέση του ch -...[αντίστοιχα και για παράμετρο String str]. Όλες αυτές οι μέθοδοι αν δεν βρουν αυτό που ψάχνουν στο string (το ch ή το str), επιστρέφουν -1. Μέθοδοι σύγκρισης - public boolean equals(string str) --> true, αν βρει ίδιο μήκος και ακριβώς ίδιους χαρακτήρες --> false, σε διαφορετική περίπτωση π.χ. String e = blah blah ; boolean f = a.equals(e); // --> f = true ΠΡΟΣΟΧΗ! boolean g = (a==e); // --> g = false Η equals ελέγχει για ισότητα. Η == ελέγχει για ταύτιση! Τα a και e είναι ίσα (ίδιο μήκος και ίδιοι χαρακτήρες) αλλά είναι διαφορετικά αντικείμενα, άρα δεν ταυτίζονται! - public boolean equalsignorecase(string str) Αγνοεί κεφαλαία ή μικρά γράμματα - public int compareto(string str) --> < 0 αν κάποιο string έχει < μήκος του str --> = 0 αν κάποιο string έχει = μήκος με το str --> > 0 αν κάποιο string έχει > μήκος του str String h = blah ; int i = h.compareto(a); // --> i<0

35 - public boolean regionmatches(int start, String str, int strstart, int len) h.regionmatches(1,a,6,3); // --> true h --> b l a h a --> b l a h b l a h a.regionmatches(2, Ah,0,2); // --> false (ah!= Ah) - public boolean regionmatches(boolean ignorecase, int start, String str, int strstart, int len) a.regionmatches(true,2, Ah,0,2); // --> true Μέθοδοι ελέγχου αρχής/τέλους: - public boolean startswith(string prefix) - public boolean startswith(string prefix, int offset) - public boolean endswith(string suffix) a.endswith( ah ) --> true Μέθοδοι δημιουργίας νέων αντικειμένων String - public String replace(char oldchar, char newchar) String j = a.replace( a, i ); // --> blih blih Δεν αλλάζει το string a. Φτιάχνει νέο string (αντικείμενο) - public String tolowercase() π.χ. Στην περίπτωση απλών αντικειμένων π.χ. μιας κλάσης υποστήριξης SuppClass, θα μπορούσαμε να έχουμε τον εξής κώδικα σε μια άλλη κλάση: // Dimiourgia antikeimenou tis SuppClass SuppClass obj1 = new SuppClass(); // Apodosi timis sti metavliti x tou obj1 obj1.x = 10;

36 // Dimiourgia antigrafou tou antikeimenou obj1 SuppClass obj2 = obj1; // Apodosi timis sti metavliti x tou obj2 obj2.x = 5; // Ektypwsi stin othoni tou x tou obj1 System.out.println(obj1.x); Ο κώδικας αυτός θα εκτυπώσει την τιμή 5. Στην ουσία έχουμε ένα αντικείμενο της SuppClass, το οποίο έχει δύο ονόματα, obj1 και obj2. Οπότε, αλλάζοντας την τιμή του x στο obj2, στην ουσία αλλάζει η τιμή και στο obj1. Αν τώρα έχουμε έναν αντίστοιχο κώδικα, αλλά με αντικείμενα της κλάσης String αντί κάποιας άλλης κλάσης: // Dimiourgia antikeimenwn typou String String k, m; // Apodosi timis sto antikeimeno k k = Hello ; // Dimiourgia antigrafou tou antikeimenou k m = k; // Tropopoiisi tou antikeimenou m m.tolowercase(); // Ektypwsi stin othoni tou antikeimenou k System.out.println(k); Ο κώδικας αυτός θα εκτυπώσει Hello και όχι hello όπως θα περίμενε κάποιος, σε αντιστοιχία με το προηγούμενο παράδειγμα με την SuppClass. Αυτό συμβαίνει γιατί κατά την εκτέλεση της εντολής m.tolowercase() δεν αλλάζει η τιμή του m και άρα και του k, αλλά δημιουργείται ένα νέο αντικείμενο, στο οποίο «βλέπει» πλέον το αντικείμενο m. Άρα, το αρχικό αντικείμενο k μένει αμετάβλητο (Hello), το m παύει να υπάρχει ως αντίγραφο του k και δημιουργείται ένα νέο αντικείμενο (hello) με το όνομα m. Τα αντικείμενα τύπου String λοιπόν, δεν μπορεί να μεταβληθούν. Κάθε «τροποποίηση» επιστρέφει ένα νέο αντικείμενο τύπου String. - public String touppercase() - public String trim()--> κόβει τα κενά σε αρχή και τέλος

37 - public String concat(string str) --> το ίδιο με το + // Apo prin: a=blah blah kai h=blah a.concat(h); // --> blah blahblah (ίδιο με το a+h;) Μετατροπές απο/σε String Από μεταβλητή τύπου boolean, int, long, float, double σε String: String().valueOf(<μεταβλητή>); int n = 10; String p = String().valueOf(n); // --> p = 10 Από String σε boolean --> new Boolean(str).booleanValue() int --> Integer.ParseInt(str) long --> Long.ParseLong(str) float --> new Float(str).floatValue() double --> new Double(str).doubleValue() Ο χαρακτήρας \ χρησιμοποιείται σε ειδικές περιπτώσεις, όπως για την εκτύπωση των εισαγωγικών: System.out.println( Say \ Hi\! ); --> τυπώνει: Say Hi! (το παραπάνω string έχει 9 χαρακτήρες και όχι 11. Το \ δεν μετράει σαν χαρακτήρας) Για εκτύπωση του \: \\ System.out.println( abc\\def ); --> τυπώνει: abc\def \n --> new line \t --> tab Η Κλάση StringBuffer Είναι η κλάση που τροποποιεί αλφαριθμητικά. Constructors: public StringBuffer() και public StringBuffer(String str) Για τροποποίηση: - public void setcharat(int index, char newchar)

38 Το πρόβλημα με την String: String name = title + + firstname + + lastname; Η εντολή αυτή θα δημιουργήσει διαδοχικά 5 νέα αντικείμενα της κλάσης String, από τα οποία μας ενδιαφέρει μόνο το τελευταίο. Αντίθετα, η StringBuffer φτιάχνει μόνο ένα αντικείμενο: StringBuffer name = new StringBuffer().append(title). append( ).append(firstname). append( ).append(lastname); Μετατροπές String / StringBuffer public String changestring(string str) // metatropi tou String str se StringBuffer StringBuffer buffer = new StringBuffer(str); // tropopoiisi tou buffer //... // metatropi tou StringBuffer se String kai epistrofi tou return buffer.tostring(); Ένα αντικείμενο StringBuffer είναι διάνυσμα από char μεταβλητού μεγέθους. - public StringBuffer(int capacity) --> constructor - public void ensurecapacity(int minimum) --> διασφαλίζει μια ελάχιστη χωρητικότητα - public int capacity()--> επιστρέφει την τρέχουσα χωρητικότητα

39 Σημειώσεις JAVA 6 η εβδομάδα Πακέτα (Packages) Τα πακέτα αποτελούν τρόπο ομαδοποίησης κλάσεων συναφούς λειτουργικότητας. Ένα πακέτο λειτουργεί σαν βιβλιοθήκη κλάσεων που μπορούν να χρησιμοποιηθούν από ένα πρόγραμμα χωρίς να βρίσκονται στο directory του. Κάθε πακέτο έχει ένα όνομα και όλες του οι κλάσεις βρίσκονται στο ίδιο directory, που έχει το ίδιο όνομα με το πακέτο. Οι κλάσεις ενός πακέτου είναι κανονικές κλάσεις, άρα ορίζονται: public class <ClassName> // save σε αρχείο <ClassName>.java αλλά πριν τον ορισμό τους (την επικεφαλίδα τους ή την ταυτότητά τους) έχουν τη δήλωση της μορφής: package <packagename>; π.χ. Έστω ότι είμαστε μέσα στο directory με όνομα pack1, το οποίο έχει μέσα δύο αρχεία κλάσεων, ClassOne.java και ClassTwo.java: Αρχείο ClassOne.java: package pack1; public class ClassOne Αρχείο ClassTwo.java: package pack1; public class ClassTwo Επίσης, έστω ότι στο directory pack1 υπάρχει sub-directory με το όνομα smallpack το οποίο περιέχει τις ακόλουθες κλάσεις: Αρχείο Class1.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 ο εξ) Εργαστήριο #2 ο : Ανατομία προγραμμάτων εφαρμογών, η

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

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

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

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

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

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 Στην ενότητα αυτή θα μελετηθούν τα εξής επιμέρους θέματα: Εισαγωγή στις έννοιες: - Στοιχειώδης Προγραμματισμός - Προγραμματισμός με Συνθήκες - Προγραμματισμός με Βρόγχους

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Προγραμματισμός Ι. Κλάσεις και Αντικείμενα. Δημήτρης Μιχαήλ. Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο Προγραμματισμός Ι Κλάσεις και Αντικείμενα Δημήτρης Μιχαήλ Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο Κλάσεις Η γενική μορφή μιας κλάσης είναι η εξής: class class-name { private data and

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

Αρχές Τεχνολογίας Λογισμικού Εργαστήριο

Αρχές Τεχνολογίας Λογισμικού Εργαστήριο Αρχές Τεχνολογίας Λογισμικού Εργαστήριο Κωδικός Μαθήματος: TP323 Ώρες Εργαστηρίου: 2/εβδομάδα (Διαφάνειες Νίκου Βιδάκη) 1 JAVA Inheritance Εβδομάδα Νο. 3 2 Προηγούμενο μάθημα (1/2) Τι είναι αντικείμενο?

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

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

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

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

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

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

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

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

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

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

Μέθοδοι. Μέθοδοι ηµιουργοί, Υπερφόρτωση και Υπέρβαση Μεθόδων

Μέθοδοι. Μέθοδοι ηµιουργοί, Υπερφόρτωση και Υπέρβαση Μεθόδων Μέθοδοι Μέθοδοι ηµιουργοί, Υπερφόρτωση και Υπέρβαση Μεθόδων Μέθοδοι Οιµέθοδοικαθορίζουντηνσυµπεριφοράενόςαντικειµένου. Τα βασικά µέρη από τα οποία αποτελείται µία µέθοδος είναι τα εξής: Το όνοµα της µεθόδου

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

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

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

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

ΕΠΛ 012. JavaScripts

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

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

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

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

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

Πληρουορική Γ Γσμμασίοσ

Πληρουορική Γ Γσμμασίοσ Πληρουορική Γ Γσμμασίοσ Προγραμματισμός και Αλγόριθμοι Από το και τημ Χελώμα στημ Ευριπίδης Βραχνός http://evripides.mysch.gr/ 2014 2015 1 Προγραμματισμός Ζάννειο Πρότυπο Πειραματικό Γυμνάσιο Πειραιά Ενότητα:

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

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

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

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

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

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

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

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

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

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

8. Μέθοδοι (Methods)

8. Μέθοδοι (Methods) 8. Μέθοδοι (Methods) Χειμερινό εξάμηνο 2012 Πέτρος Κωμοδρόμος komodromos@ucy.ac.cy http://www.eng.ucy.ac.cy/petros 1 Θέματα Μέθοδοι που παρέχονται από τη τάξη Math του Java API Χρήση στατικών μεθόδων και

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

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

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

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

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

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

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

Δυναμικές Ιστοσελίδες Εισαγωγή στην Javascript για προγραμματισμό στην πλευρά του client

Δυναμικές Ιστοσελίδες Εισαγωγή στην Javascript για προγραμματισμό στην πλευρά του client ΕΣΔ 516 Τεχνολογίες Διαδικτύου Δυναμικές Ιστοσελίδες Εισαγωγή στην Javascript για προγραμματισμό στην πλευρά του client Περιεχόμενα Περιεχόμενα Javascript και HTML Βασική σύνταξη Μεταβλητές Τελεστές Συναρτήσεις

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

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

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

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

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

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

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

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

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

(Διαφάνειες Νίκου Βιδάκη)

(Διαφάνειες Νίκου Βιδάκη) (Διαφάνειες Νίκου Βιδάκη) JAVA Inheritance Εβδομάδα Νο. 3 2 Προηγούμενο μάθημα (1/2) Τι είναι αντικείμενο? Ανάλυση αντικειμένων Πραγματικά αντικείμενα Καταστάσεις Συμπεριφορές Αντικείμενα στον προγραμματισμό

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

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

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

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

4 Συλλογές Αντικειμένων

4 Συλλογές Αντικειμένων 4 Συλλογές Αντικειμένων Πώς χειριζόμαστε αντικείμενα σε ομάδες με επανάληψη Η Απαίτηση Συλλογών Αντικειμένων Πολλές εφαρμογές χρειάζονται πλήθος αντικειμένων: Κατάλογος βιβλίων Φοιτητολόγιο Πελατολόγιο

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

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

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

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

Είδη εντολών. Απλές εντολές. Εντολές ελέγχου. Εκτελούν κάποια ενέργεια. Ορίζουν τον τρόπο με τον οποίο εκτελούνται άλλες εντολές

Είδη εντολών. Απλές εντολές. Εντολές ελέγχου. Εκτελούν κάποια ενέργεια. Ορίζουν τον τρόπο με τον οποίο εκτελούνται άλλες εντολές Μορφές Εντολών Είδη εντολών Απλές εντολές Εκτελούν κάποια ενέργεια Εντολές ελέγχου Ορίζουν τον τρόπο με τον οποίο εκτελούνται άλλες εντολές Εντολές και παραστάσεις Μιαεντολήείναιμιαπαράστασηπου ακολουθείται

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

API: Applications Programming Interface

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

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

Προγραμματισμός ΙΙ (Java) 1. Εισαγωγή

Προγραμματισμός ΙΙ (Java) 1. Εισαγωγή Προγραμματισμός ΙΙ (Java) 1. Εισαγωγή 1 Στόχοι Όσοι ολοκληρώνουν το μάθημα με επιτυχία να: Γνωρίζουν καλά τις βασικές αρχές του αντικειμενοστρεφούς προγραμματισμού: αντικείμενα, κλάσεις, γνωρίσματα, μεθόδους,

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

ΘΕΜΑΤΑ ΕΞΕΤΑΣΕΩΝ ΟΜΑΔΑ Α

ΘΕΜΑΤΑ ΕΞΕΤΑΣΕΩΝ ΟΜΑΔΑ Α ΤΕΧΝΟΛΟΓΙΚΟ ΕΚΠΑΙΔΕΥΤΙΚΟ ΙΔΡΥΜΑ ΘΕΣΣΑΛΙΑΣ ΤΜΗΜΑ ΜΗΧΑΝΙΚΩN ΠΛΗΡΟΦΟΡΙΚΗΣ ΜΑΘΗΜΑ: ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΗΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ Ι ΕΞΕΤΑΣΤΙΚΗ ΠΕΡΙΟΔΟΣ: ΙΟΥΝΙΟΣ 2015 (10/7/2015) ΘΕΜΑΤΑ ΕΞΕΤΑΣΕΩΝ ΟΜΑΔΑ Α 1. (3.5 μονάδες)

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

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

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

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

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

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

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

Κεφάλαιο 8.7. Πολυδιάστατοι Πίνακες (Διάλεξη 19)

Κεφάλαιο 8.7. Πολυδιάστατοι Πίνακες (Διάλεξη 19) Κεφάλαιο 8.7 Πολυδιάστατοι Πίνακες (Διάλεξη 19) Πολυδιάστατοι πίνακες Μέχρι τώρα μιλούσαμε για Μονοδιάστατους Πίνακες. ή π.χ. int age[5]= {31,28,31,30,31; για Παράλληλους πίνακες, π.χ. int id[5] = {1029,1132,1031,9991,1513;

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

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 Σχεδίαση-Ανάπτυξη

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

ΜΑΗΣ 2007 - ΕΞΕΤΑΣΤΙΚΟ ΔΟΚΙΜΙΟ

ΜΑΗΣ 2007 - ΕΞΕΤΑΣΤΙΚΟ ΔΟΚΙΜΙΟ ΜΑΗΣ 2007 - ΕΞΕΤΑΣΤΙΚΟ ΔΟΚΙΜΙΟ ΟΔΗΓΙΕΣ: ΝΑ ΑΠΑΝΤΗΣΕΤΕ ΣΕ ΟΛΕΣ ΤΙΣ ΕΡΩΤΗΣΕΙΣ. Το εξεταστικό δοκίμιο αποτελείται από δύο Ενότητες Α και Β. ΕΝΟΤΗΤΑ Α - Αποτελείται από δέκα (10) ερωτήσεις. Κάθε ορθή απάντηση

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

Τα δεδομένα στη C++ χωρίζονται σε 3 κατηγορίες: τους αριθμούς (numbers), τους χαρακτήρες (characters) και τις συμβολοσειρές (strings).

Τα δεδομένα στη C++ χωρίζονται σε 3 κατηγορίες: τους αριθμούς (numbers), τους χαρακτήρες (characters) και τις συμβολοσειρές (strings). Για να λύσουμε ένα πρόβλημα στη C++ χρειαζόμαστε δυο βασικές έννοιες. Η μια είναι οι οδηγίες εντολές, ο αλγόριθμος δηλαδή, που πρέπει να ακολουθήσουμε για να λύσουμε το πρόβλημά μας και η άλλη είναι τα

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

12. ΑΛΦΑΡΙΘΜΗΤΙΚΑ. υο είδη αλφαριθµητικών Τα αλφαριθµητικά της C πίνακες τύπου char Ta αντικείµενα της κλάσης string

12. ΑΛΦΑΡΙΘΜΗΤΙΚΑ. υο είδη αλφαριθµητικών Τα αλφαριθµητικά της C πίνακες τύπου char Ta αντικείµενα της κλάσης string 12. ΑΛΦΑΡΙΘΜΗΤΙΚΑ υο είδη αλφαριθµητικών Τα αλφαριθµητικά της C πίνακες τύπου char Ta αντικείµενα της κλάσης string Aλφαριθµητικά της C int main() const int max=80; char str[max); //κάθε char δεσµεύει

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

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

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

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

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

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

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

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

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

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

Πώς γίνεται το debug? Το debug γίνεται με δύο τρόπους, ως επί το πλείστον. Τουλάχιστον, εγώ δύο έμαθα, και αυτούς αναφέρω.

Πώς γίνεται το debug? Το debug γίνεται με δύο τρόπους, ως επί το πλείστον. Τουλάχιστον, εγώ δύο έμαθα, και αυτούς αναφέρω. Τι είναι το debug μαμα? Με απλά λόγια, debug (αποσφαλμάτωση αλλά που να κάθεσαι να το πεις), είναι η διαδικασία εντοπισμού και διόρθωσης σφαλμάτων που υπάρχουν σε κώδικα (ασχέτως γλώσσας προγραμματισμού).

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

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

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

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

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

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

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

Η λέξη κλειδί this. Γαβαλάς Δαμιανός dgavalas@aegean.gr

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

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

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

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

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

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

Η γλώσσα προγραμματισμού C Η γλώσσα προγραμματισμού C Εισαγωγή στη C Λίγα λόγια για την C Γλώσσα προγραμματισμού υψηλού επιπέδου. Σχεδιάστηκε και υλοποιήθηκε από τον Dennis Richie στις αρχές της δεκαετίας του 1970 (Bell Labs). Η

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

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

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

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

Α' Εξάμηνο ΕΙΣΑΓΩΓΗ ΣΤΟ ΔΟΜΗΜΕΝΟ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟ

Α' Εξάμηνο ΕΙΣΑΓΩΓΗ ΣΤΟ ΔΟΜΗΜΕΝΟ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟ Α' Εξάμηνο ΕΙΣΑΓΩΓΗ ΣΤΟ ΔΟΜΗΜΕΝΟ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟ Εργαστήριο 9η εβδομάδα. Κοζάνη, 2 Δεκεμβρίου 2008. Δίνονται παραδείγματα που αποσαφηνίζουν και συμπληρώνουν όσα αναφέρθηκαν στο μάθημα σχετικά με τις δομές

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

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

ΕΙΣΑΓΩΓΗ ΣΤΟ ΔΟΜΗΜΕΝΟ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟ ΕΙΣΑΓΩΓΗ ΣΤΟ ΔΟΜΗΜΕΝΟ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟ Τρίτη Διάλεξη Εντολές Επιλογής και Επανάληψης Εντολές επιλογής Εντολή if Η πιο απλή μορφή της if συντάσσεται ως εξής: if ( συνθήκη ) Οι εντολές μέσα στα άγκιστρα αποτελούν

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

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

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

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

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) είναι γνωστό και ίδιο σε όλες τις

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

Διάλεξη 6: Δείκτες και Πίνακες

Διάλεξη 6: Δείκτες και Πίνακες Τμήμα Πληροφορικής Πανεπιστήμιο Κύπρου ΕΠΛ132 Αρχές Προγραμματισμού II Διάλεξη 6: Δείκτες και Πίνακες (Κεφάλαιο 12, KNK-2ED) Δημήτρης Ζεϊναλιπούρ http://www.cs.ucy.ac.cy/courses/epl132 6-1 Περιεχόμενο

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

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

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

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

ΚΛΗΡΟΝΟΜΙΚΟΤΗΤΑ. Σχηματική παράσταση του προγράμματος. logariasmos

ΚΛΗΡΟΝΟΜΙΚΟΤΗΤΑ. Σχηματική παράσταση του προγράμματος. logariasmos ΚΛΗΡΟΝΟΜΙΚΟΤΗΤΑ ΒΑΣΙΚΗ ΚΑΙ ΠΑΡΑΓΩΓΕΣ ΚΛΑΣΕΙΣ #include class logariasmos //basikh klash //prostateymeno dedomeno-melos float ypoloipo; logariasmos() //dhlosh constructor ypoloipo=0; float pareypoloipo()

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

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

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

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

Επανάληψη για τις Τελικές εξετάσεις

Επανάληψη για τις Τελικές εξετάσεις Επανάληψη για τις Τελικές εξετάσεις ( ιάλεξη 21) ιδάσκων: ηµήτρης Ζεϊναλιπούρ Εισαγωγή Το µάθηµα EPL032 έχει ως βασικό στόχο την επίλυση προβληµάτων πληροφορικής µε την χρήση της γλώσσας προγραµµατισµού

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

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

2 ΟΥ και 8 ΟΥ ΚΕΦΑΛΑΙΟΥ ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ ΕΠΙΜΕΛΕΙΑ: ΜΑΡΙΑ Σ. ΖΙΩΓΑ ΚΑΘΗΓΗΤΡΙΑ ΠΛΗΡΟΦΟΡΙΚΗΣ ΘΕΩΡΙΑ 2 ΟΥ και 8 ΟΥ ΚΕΦΑΛΑΙΟΥ ΒΑΣΙΚΕΣ ΕΝΝΟΙΕΣ ΔΟΜΗ ΕΠΑΝΑΛΗΨΗΣ 1) Πότε χρησιμοποιείται η δομή επανάληψης

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

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

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

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

Η-Υ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ. Εργαστήριο 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 στην

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

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

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

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

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

Αλγοριθμική & Δομές Δεδομένων- Γλώσσα Προγραμματισμού Ι (PASCAL) Αλγοριθμική & Δομές Δεδομένων- Γλώσσα Προγραμματισμού Ι (PASCAL) Pascal- Εισαγωγή Η έννοια του προγράμματος Η επίλυση ενός προβλήματος με τον υπολογιστή περιλαμβάνει, όπως έχει ήδη αναφερθεί, τρία εξίσου

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

Άσκηση 1 (α) Να διατυπώσετε την πιο κάτω λογική έκφραση στη Visual Basic κάνοντας χρήση μεταβλητών:

Άσκηση 1 (α) Να διατυπώσετε την πιο κάτω λογική έκφραση στη Visual Basic κάνοντας χρήση μεταβλητών: Άσκηση 1 (α) Να διατυπώσετε την πιο κάτω λογική έκφραση στη Visual Basic κάνοντας χρήση μεταβλητών: (Μον.2) Η ηλικία είναι μεταξύ των 15 και 18 συμπεριλαμβανομένων (β) Αν Χ= 4, Υ=2, Κ=2 να βρείτε το αποτέλεσμα

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

Εντολή Δεδομένα Περιεχόμενα μετά την εκτέλεση 1 read(x) 122 x= 2 read(a,b,c) 133 244 355 a= b= c= 3 read(d,e) 166 277 3888

Εντολή Δεδομένα Περιεχόμενα μετά την εκτέλεση 1 read(x) 122 x= 2 read(a,b,c) 133 244 355 a= b= c= 3 read(d,e) 166 277 3888 ΕΡΩΤΗΣΕΙΣ 1. Να αναφέρετε μερικά από τα ιδιαίτερα χαρακτηριστικά της Pascal. 2. Ποιο είναι το αλφάβητο της Pascal; 3. Ποια είναι τα ονόματα-ταυτότητες και σε τι χρησιμεύουν; 4. Σε τι χρησιμεύει το συντακτικό

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

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

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

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

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

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

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

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

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

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

ΑΝΑΛΥΤΙΚΟ ΠΡΟΓΡΑΜΜΑ ΚΑΙ ΕΞΕΤΑΣΤΕΑ ΥΛΗ. ΔΟΜΗΜΕΝΟΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ Με τις Γλώσσες Προγραμματισμού Pascal, C, C++, Java

ΑΝΑΛΥΤΙΚΟ ΠΡΟΓΡΑΜΜΑ ΚΑΙ ΕΞΕΤΑΣΤΕΑ ΥΛΗ. ΔΟΜΗΜΕΝΟΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ Με τις Γλώσσες Προγραμματισμού Pascal, C, C++, Java ΑΝΑΛΥΤΙΚΟ ΠΡΟΓΡΑΜΜΑ ΚΑΙ ΕΞΕΤΑΣΤΕΑ ΥΛΗ ΔΟΜΗΜΕΝΟΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ Με τις Γλώσσες Προγραμματισμού Pascal, C, C++, Java 1 ο & 2 o ΕΠΙΠΕΔΟ Αναλυτικό Πρόγραμμα Εξετάσεων Σελίδα: 1/20 Απρίλιος 2011 Γλωσσών Προγραμματισμού

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

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

ΕΠΛ031 - Εισαγωγή στον Προγραμματισμό Εισαγωγή στην Fortran ΕΠΛ031 Εισαγωγή στον Προγραμματισμό Νέαρχος Πασπαλλής Επισκέπτης Ακαδημαϊκός (Λέκτορας) nearchos@cs.ucy.ac.cy Γραφείο #B120, Τηλ. ext. 2744 FORTRAN: Ιστορική Αναδρομή 1954 1957, πρώτος

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

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

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

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

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

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

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

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

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

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

Αρχές Γλωσσών Προγραμματισμού και Μεταφραστών: Εργαστηριακή Άσκηση 2012-2013

Αρχές Γλωσσών Προγραμματισμού και Μεταφραστών: Εργαστηριακή Άσκηση 2012-2013 Αρχές Γλωσσών Προγραμματισμού και Μεταφραστών: Εργαστηριακή Άσκηση 2012-2013 27 Μαρτίου 2013 Περίληψη Σκοπός της παρούσας εργασίας είναι η εξοικείωσή σας με τις θεμελιώδεις θεωρητικές και πρακτικές πτυχές

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

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

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

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

ΜΑΘΗΜΑ / ΤΑΞΗ : ΔΟΜΗΜΕΝΟΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ / Γ ΕΠΑΛ ΣΕΙΡΑ: ΗΜΕΡΟΜΗΝΙΑ: 27/01/2013

ΜΑΘΗΜΑ / ΤΑΞΗ : ΔΟΜΗΜΕΝΟΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ / Γ ΕΠΑΛ ΣΕΙΡΑ: ΗΜΕΡΟΜΗΝΙΑ: 27/01/2013 ΜΑΘΗΜΑ / ΤΑΞΗ : ΔΟΜΗΜΕΝΟΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ / Γ ΕΠΑΛ ΣΕΙΡΑ: ΗΜΕΡΟΜΗΝΙΑ: 27/01/2013 ΘΕΜΑ Α Α1. Να χαρακτηρίσετε τις προτάσεις που ακολουθούν, γράφοντας δίπλα στο γράμμα που αντιστοιχεί σε κάθε πρόταση τη

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

Περιεχόµενα. 1 Εισαγωγή στις οµές εδοµένων 3. 2 Στοίβα (Stack) 5

Περιεχόµενα. 1 Εισαγωγή στις οµές εδοµένων 3. 2 Στοίβα (Stack) 5 Περιεχόµενα 1 Εισαγωγή στις οµές εδοµένων 3 2 Στοίβα (Stack) 5 i ΠΕΡΙΕΧΟΜΕΝΑ ΠΕΡΙΕΧΟΜΕΝΑ ii Πληροφορίες Εργαστηρίου Σκοπός του εργαστηρίου Το εργαστήριο οµές εδοµένων αποσκοπεί στην εφαρµογή των τεχνολογιών

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

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

Εισαγωγή στον Προγραμματισμό Εισαγωγή στον Προγραμματισμό Ενότητα 5 Δομές Ελέγχου Πανεπιστήμιο Αιγαίου Τμήμα Μηχανικών Πληροφοριακών και Επικοινωνιακών Συστημάτων Δομές Ελέγχου Οι Boehm και Jacopini απέδειξαν ότι οποιοσδήποτε αλγόριθμος

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

Διάγραμμα Κλάσεων. Class Diagram

Διάγραμμα Κλάσεων. Class Diagram Διάγραμμα Κλάσεων Class Diagram Γενικά Ορίζει τις κλάσεις αντικειμένων σε ένα σύστημα, τις μεθόδους και τις συναρτήσεις τους, και τις συσχετίσεις μεταξύ των κλάσεων. Περιγράφουν την δομή και συμπεριφορά

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

Δομές Δεδομένων. Σημειώσεις από το εργαστήριο για τον χειρισμό του προγράμματος Eclipse. 5ο εξάμηνο. v1.0

Δομές Δεδομένων. Σημειώσεις από το εργαστήριο για τον χειρισμό του προγράμματος Eclipse. 5ο εξάμηνο. v1.0 Δομές Δεδομένων 5ο εξάμηνο Σημειώσεις από το εργαστήριο για τον χειρισμό του προγράμματος Eclipse v1.0 Τις σημειώσεις κράτησαν και διαμόρφωσαν σε word οι: Κονδύλη Γαλήνη, ΑΜ 5576 Μάλλιου Χριστίνα, ΑΜ 5413

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