======ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ - PASCAL - JAVA - NETBEANS - UML====== Έκδοση 0.1 ====== Εισαγωγή ====== ===== Εγκατάσταση Εργαλείων ανάπτυξης για Pascal - Java ===== ==== Εγκατάσταση Lazarus IDE για Pascal ==== === Windows === === Linux === ==== Εγκατάσταση Java ==== === Windows === === Linux === ==== Εγκατάσταση Netbeans IDE για Java ==== === Windows === === Linux === ==== Εγκατάσταση UML plugin στο Netbeans για Μοντελοποίηση ==== ===== Εγχειρίδια - Βοηθήματα ===== ==== Pascal ==== * Μαθετε την pascal - Πανεπιστήμιο Μακεδονίας - Τμήμα Εφαρμοσμένης Πληροφορικής * Στο DVD που σας δίνεται πλοηγηθείται στον φάκελο programmatismos/pascal/books/Learn_Pascal/pashtm/. Ανοίξτε το αρχείο index.html με έναν περιηγητή ιστοσελίδων. * Η διεύθυνση στο Internet είναι http://www.it.uom.gr/project/itweb21/periexomena.htm ==== Java - console ==== * Μαθήματα Java - Πανεπιστήμιο Μακεδονίας - Τμήμα Εφαρμοσμένης Πληροφορικής * Στο DVD που σας δίνεται πλοηγηθείται στον φάκελο programmatismos/java/books/Learn_Java. Ανοίξτε το αρχείο index.html με έναν περιηγητή ιστοσελίδων. * Η διεύθυνση στο Internet είναι http://www.it.uom.gr/project/java/tutorial.htm * Εισαγωγή στη Java ©2004 - Κωνσταντίνος Μαργαρίτης - debian developer - Άδεια χρήσης: GNU FDL * Στο DVD που σας δίνεται πλοηγηθείται στον φάκελο programmatismos/java/books/. Ανοίξτε το java_introduction.pdf * Η διεύθυνση στο Internet είναι http://people.debian.org/~markos/guides/Course-Java-Notes.pdf * Αντικειμενοστραφής Προγραμματισμός ΙΙ Java Κακαρόντζας Γιώργος * Στο DVD που σας δίνεται πλοηγηθείται στον φάκελο programmatismos/java/books/. Ανοίξτε το java_programming.pdf * Η διεύθυνση στο Internet είναι http://www.cs.teilar.gr/gkakaron ==== Αντιστοιχία Pascal και Java ==== Δείτε παρακάτω μια εισαγωγική αντιστοίχιση λειτουργιών και εντολών μεταξύ Pascal και Java http://www.geocities.com/SiliconValley/Park/3230/pas/pas2java.html Λόγω της έλλειψης αρκετών βασικών εντολών εισόδου-εξόδου σε κονσόλα, θα χρειαστούμε επίσης μια class Console που θα μας τις παρέχει. Θα χρησιμοποιήσουμε λοιπόν μια τροποποιημένη έκδοση του αρχείου Console.java που βρέθηκε σε δικτυακό φάκελο ενός πανεπιστημίου στην Washightonμετά από αναζήτηση στο Internet, . http://faculty.washington.edu/edhong/previousquarters/305wi03/statpac/ ==== Java - gui ==== * (Στα αγγλικά) - Επίσημο tutorial από το Netbeans για να ξεκινήσετε * Στο DVD που σας δίνεται πλοηγηθείται στον φάκελο programmatismos/java/books/Netbeans/quickstart/. Ανοίξτε το αρχείο index.html με έναν περιηγητή ιστοσελίδων. * Η διεύθυνση στο Internet είναι http://www.netbeans.org/kb/55/quickstart.html * (Στα αγγλικά) - Επίσημο tutorial από το Netbeans για να ξεκινήσετε gui εφαρμογές * Στο DVD που σας δίνεται πλοηγηθείται στον φάκελο programmatismos/java/books/Netbeans/quickstartgui/. Ανοίξτε το αρχείο index.html με έναν περιηγητή ιστοσελίδων. * Η διεύθυνση στο Internet είναι http://www.netbeans.org/kb/55/quickstart-gui.html ==== Μοντελοποίηση - uml - Netbeans ==== * (Στα αγγλικά) - Επίσημο tutorial από το Netbeans * Στο DVD που σας δίνεται πλοηγηθείται στον φάκελο programmatismos/java/books/uml. Ανοίξτε το αρχείο index.html με έναν περιηγητή ιστοσελίδων. * Η διεύθυνση στο Internet είναι http://www.netbeans.org/kb/55/uml-fe.html ===== Συμβάσεις ===== * Το όνομα της κατηγορίας Αντικειμένου με έντονη γραφή, π.χ. **Σκύλος**, **Menou** * Η τιμές ενός στιγμιοτύπου κατηγορίας, μιας μεταβλητής κτλ με απλή γραφή, π.χ. Λάσι, basikoMenou * Οι ονομασίες μεταβλητών ξεκινάνε με μικρό και έχουν κεφαλαίο το 1ο γράμμα κάθε νέας λέξης που έχουν στην ονομασία τους. Π.χ. arithmosEpilogis * Όταν αναφερόμαστε σε ομάδες ομοειδών μεταβλητών, δηλαδή πίνακες μεταβλητών, θα υπάρχει το [] στο τέλος και η ονομασία τους θα είναι πάντα στον ενικό. Π.χ keimenoEpilogis[] για πίνακα κείμενων επιλογών * Οι διαδικασίες (procedures) και οι συναρτήσεις (functions) θα έχουν κεφαλαίο το 1ο γράμμα κάθε νέας λέξης που έχουν στην ονομασία τους και θα τελειώνουν με () Π.χ. TroeiDoloma() ====== Ξεκινώντας ====== ===== Δημιουργία ενός έργου - project ===== Ξεκινώντας θα πρέπει να δημιουργήσουμε ένα νέο project σε ένα περιβάλλον ανάπτυξης για μια γλώσσα προγραμματισμού. Εδώ θα δούμε τα περιβάλλοντα Lazarus 0.9 για Pascal και Netbeans 5.5 για Java ==== Pascal ==== Εκκινούμε το περιβάλλον ανάπτυξης Pascal Lazarus * Δημιουργία Project - Πηγαίνουμε Project/New Project, επιλέγουμε Program και Πατάμε Create. * Αποθήκευση Project - Πηγαίνουμε Project/Save Project. - Πηγαίνουμε σε έναν φάκελο που θα έχουμε όλα τα προγράμματά μας και πατάμε Create Dir. Όνομα φακέλου : FidakiPrj - Μπαίνουμε στον φάκελο που μόλις δημιουργήσαμε και αποθηκεύουμε με ίδιο όνομα project, δηλαδή FidakiPrj. ==== Java - console ==== Εκκινούμε το περιβάλλον ανάπτυξης Java Netbeans * Δημιουργία / Αποθήκευση Project - Πηγαίνουμε File/New Project - Αφήνουμε στο Categories: General, στο Project: Java Application και πατάμε Next. - Πηγαίνουμε από το κουμπάκι browse σε έναν φάκελο που θα έχουμε όλα τα προγράμματά μας. - Project Name βάζουμε FidakiPrj και πατάμε Finish ==== Java - gui ==== ===== Έξοδος στην Οθόνη ===== Στο πρώτο πρόγραμμά μας παραδοσιακά θα ξεκινήσουμε εμφανίζωντας το μύνημα 'Hello World!' στην προκαθορισμένη έξοδο (stdout: standard output) που είναι η οθόνη. ==== Pascal ==== Το πρόγραμμά μας ξεκινάει από το begin και τελειώνει στο end. Για να εμφανίσουμε το μύνημα γράφουμε ανάμεσα, την εντολή writeln('Hello World'); Για να σταματήσουμε το πρόγραμμά μας, ώστε να δούμε τα αποτελέσματα στην οθόνη, ακριβώς πριν το end. γράφουμε readln; Το κάνουμε έτσι να περιμένει από την προκαθορισμένη είσοδο (stdin: standard input) που είναι η οθόνη, να πληκτρολογήσουμε κάτι και να πατήσουμε ENTER. Αν δουλεύουμε σε linux θα πρέπει να ορίσουμε να εμφανίζει κάπου τα αποτελέσματα ως εξής: * Πηγαίνουμε Run / Run Parameters και τσεκάρουμε Use launching application Για να το εκτελέσουμε,( να το τρέξουμε) * Πηγαίνουμε Run / Run ( ή F9 ή πατάμε το κουμπάκι με το κλασικο σύμβολο play) ==== Java - console ==== Το πρόγραμμά μας ξεκινάει από το public static void main(String[] args) { και τελειώνει στο αμέσως επόμενο }. Για να εμφανίσουμε το μύνημα γράφουμε ανάμεσα, την εντολή System.out.print("Hello World!"); (Χρησιμοποιούμε την αυτόματη συμπλήρωση. Γράφουμε System.o, πατάμε enter, γράφουμε p, παταμε enter κτλ) Για να το εκτελέσουμε,( να το τρέξουμε) * Πηγαίνουμε Run / Run Main Project ( ή F6 ή πατάμε το κουμπάκι με το κλασικο σύμβολο play) ==== Java - gui ==== ==== Ασκήσεις ==== ===== Εισαγωγή στις έννοιες αντικειμένων ===== Τα πολύπλοκα προβλήματα χρειάζονται σωστή σχεδίαση και διάσπασή τους σε μικρότερα κομμάτια, ώστε να απλοποιηθούν και να λυθούν βήμα βήμα. Θέλουμε να φτιάξουμε ένα παιχνίδι, κάτι αρκετά πολύπλοκο. Η έννοια των αντικειμένων που έχουμε γύρω μας είναι οικεία και υπάρχει και στον προγραμματισμό. Θέλουμε να εμφανίζεται ένα αρχικό μενού επιλογών στο χρήστη((Θα χρησιμοποιούμε greeklish διότι η εμφάνιση ελληνικών στην κονσόλα πολλές φορές έχει προβλήματα. Αν σε εσάς εμφανίζονται γράψτε κανονικά ελληνικά)). Για παράδειγμα: 1.Enarksi 2.Epiloges 3.HighSkor 4.Boitheia 5.Exodos Θα ορίσουμε στον Κόσμο του Παιχνιδιού μας, μια Κατηγορία αντικειμένου **Menou**, όπως υπάρχει στον πραγματικό μας κόσμο η Κατηγορία ζώου **Σκύλος**. Θα δημιουργήσουμε στην συνέχεια ένα νεό στιγμιότυπο κατηγορίας αντικειμένου **Menou** και θα το ονομάσουμε BasikoMenou. Όπως γεννιέται ένα νέος **Σκύλος** και τον ονομάζουμε Λάσι. | | Πραγματικός Κόσμος | Κόσμος Παιχνιδιού | | Κατηγορία ^ Σκύλος ^ Menou | | Στιγμιότυπο | Λάσι | BasikoMenou | * Η κατηγορία **Σκύλος** έχει χαρακτηριστικά __χρώμα__, __ηλικία__ κτλ για το σκυλί. * Ο νέος **Σκύλος** Λάσι έχει κατά την γέννηση του τις εξής τιμές στα χαρακτηριστικά. * __χρώμα__=καφέ, και * __ηλικία__=0 ^ Σκύλος | __χρώμα__ | __ηλικία__ | | Λάσι | καφέ | 0 | * Η κατηγορία **Menou** έχει χαρακτηριστικά : __arithmosEpilogon__ , και αρκετά κείμενα προς εμφάνιση, ένα για κάθε επιλογή, θα φτιάξουμε μια ομάδα κειμένων, έναν πίνακα, και θα τον ονομάσουμε __keimenoEpilogis[]__ . Έχει επίσης μια __epilogiExodou__ από το μενού. Καθώς και μια __epilogi__ στην οποία αποθηκεύουμε την επιλογή του χρήστη από το μενού που βλέπει (αρχικά καμία επιλογή δεν έχει γίνει και την συμβολίζουμε με -1). * Το νέο στιγμιότυπο BasikoMenou έχει, μετά την δημιουργία του, τις εξής τιμές στα χαρακτηριστικά. * __arithmosEpilogon__=5, * Κείμενα επιλογής: * __keimenoEpilogis[1]__='1.Enarksi' * __keimenoEpilogis[2]__='2.Epiloges' * __keimenoEpilogis[3]__='3.HighSkor' * __keimenoEpilogis[4]__='4.Boitheia' * __keimenoEpilogis[5]__='5.Exodos' * __epilogiExodou__=5 * __εpilogi__ = -1 ^ Menou | __arithmosEpilogon__ | __keimenoEpilogis[]__ | __epilogiExodou__ | epilogi | | BasikoMenou | 5 | '1.Enarksi', '2.Epiloges' .. | 5 | -1 | Ο σκύλος //γεννιέται//, έτσι και η κατηγορία Menou θα έχει μια διαδικασία δημιουργίας που συνήθως έχει όνομα ίδιο με την κατηγορία δηλαδή Menou(). O σκύλος τρώει, τρέχει, γαυγίζει. Έτσι και η κατηγορία Menou έχει μια διαδικασία εμφανισης: Emfanisi() αλλά και απαντάει αν την ρωτήσουμε ποια είναι η τρέχουσα επιλογή του χρήστη, την συνάρτηση GetEpilogi(). Πριν προχωρήσουμε στην σχεδίαση θα πρέπει να δούμε τι εργαλεία μας δίνουν οι γλώσσες προγραμματισμού για : * την αποθήκευση και διατήρηση χαρακτηριστικών (attributes) αλλά και * τον ορισμό ενεργειών που ονομάζονται διαδικασίες (ή συναρτήσεις εάν επιστρέφουν τιμή). ===== Βασικοί Τύποι μεταβλητών ===== Τα χαρακτηριστικά των αντικειμένων και οτιδήποτε άλλο θέλουμε να αποθηκεύσουμε κάπου πριν το χειριστούμε, αποθηκεύονται σε //μεταβλητές//, ανάλογα με την τιμή τους, (κείμενο, ακέραιος ή δεκαδικός αριθμός κτλ) ^ Τύπος((όπου + είναι μόνο θετικοί, αλλιώς μισοί θετικοί, μισοί αρνητικοί)) | Μέγεθος bytes ((περίπου αφού ανά γλώσσα και πλατφόρμα μπορεί να διαφέρει)) | Pascal | Java | Τιμές((Στην java οι προσημασμένοι ακέραιοι είναι byte,short,int,long με 1,2,4 και 8 bytes αντίστοιχα)) | | μικρός ακέραιος | 1 | shortint| short | -128..127 | | ακέραιος | 2 | integer | int | -32768..32767 | | μεγάλος ακέραιος | 4 | longint | long |-2δις έως 2δις((περίπου))| | πραγματικός | 6 | real | float | όλοι((με όριο μόνο στην ακρίβεια))| | χαρακτήρας | 1 | char | char | | | κείμενο | 255 | string | String | έως 255 χαρακτήρες((Στην java και περισσότεροι)) | | λογικός | 1 ((1 bit κανονικά)) | boolean | boolean | true ή false | | μικρός ακέραιος+ | 1 | byte | byte | 0 .. 255((-128..127 στην java))| | ακέραιος+ | 2 | word | | 0 .. 65535 | Για να μην μπλεχτούμε στις διαφορές μεταξύ γλωσσών προγραμματισμού, στους ακεραίους δεν ασχολούμαστε με τους θετικούς και ξεχνάμε ότι η java μας επιτρέπει μεγαλύτερες τιμές ===== Σχεδίαση κατηγοριών αντικειμένων ===== ==== Κατηγορία Menou ==== Πάμε λοιπόν να σχεδιάσουμε σε UML την κατηγορία Menou. === UML === Εκκινούμε το περιβάλλον ανάπτυξης Java Netbeans * Δημιουργία / Αποθήκευση Project UML - Πηγαίνουμε File/New Project - Επιλέγουμε στο Categories: UML, στο Project: Java-Platform Model και πατάμε Next. - Πηγαίνουμε από το κουμπάκι browse στον φάκελο με τα προγράμματά μας. - Project Name βάζουμε FidakiUMLPrj και πατάμε Finish - Diagram Type επιλέγουμε Class Diagram, όνομα FidakiClassDiagram και πατάμε Finish Class (ή κλάση) είναι η κατηγορία του αντικειμένου: * Δημιουργία κατηγορίας Menou - Από την βασική παλέτα Basic Palette επιλέγουμε Class - κάνουμε μία φορά κλικ στον κενό χώρο για να προστεθεί μια νέα κατηγορία - κάνουμε δεξί κλικ στον κενό χώρο για να φύγουμε από την κατάσταση προσθήκης κατηγορίας - Κάνουμε διπλό κλικ στο όνομα της κατηγορίας (στο unnamed), εισάγουμε Menou και πατάμε ENTER. Αυτόματα ορίστηκε επίσης η διαδικασία δημιουργίας της κατηγορίας με όνομα Menou() και δικαιώματα πρόσβασης public από όλους. * Προσθήκη χαρακτηριστικών στην κατηγορία Menou - Κάνουμε δεξί κλικ στο Attributes (Χαρακτηριστικά) και επιλέγουμε Insert Attribute (Προσθήκη Χαρακτηριστικού) - Ορίζουμε τύπο:short, όνομα : arithmosEpilogon, και πατάμε Enter. Δημιουργήθηκε μία διαδικασία ορισμού της τιμής του χαρακτηριστικού setArithmosEpilogon() και μία συνάρτηση που επιστρέφει την τρέχουσα τιμή του getArithmosEpilogon(). - Επαναλαμβάνουμε την διαδικασία για τα χαρακτηριστικά epilogiExodou και epilogi με τύπο short, και στο keimenoEpilogis βάζουμε τύπο String[]. * Προσθήκη διαδικασιών στην κατηγορία Menou - Κάνουμε δεξί κλικ στο Operation (Λειτουργίες-Διαδικασίες) και επιλέγουμε Insert Operation (Προσθήκη Λειτουργίας) - Την ονομάζουμε emfanisi() * Δημιουργία αυτόματα του κώδικα σε Java - Κάνουμε δεξί κλικ στο FidakiUMLPrj και επιλέγουμε Generate Code - Από το browse Βρίσκουμε και επιλέγουμε τον φάκελο FidakiPrj/src/fidakiprj - Ξετσεκάρουμε το backup existing source files και πατάμε Ok, και ξανά ok στην ερώτηση να σώσουμε - Δημιουργήθηκε μια νέα κατηγορία (κλάση) java Menou. Για να την δούμε πάμε FidakiPrj/Source Packages/fidakiprj === Ασκήσεις === ==== Κατηγορία FidakiGame ==== Ωραία ως εδώ έχουμε ορίσει μια γενική κατηγορία Menou. Όμως κάποιος πρέπει να την χρησιμοποιήσει. Να δημιουργήσει κάποιο στιγμιότυπό της. Φανταστείτε ότι έχετε γράψει οδηγίες για το τι υλικά και τι ενέργειες χρειάζονται για να φτιάξετε ένα γλυκό. Κάποιος δεν πρέπει να ξεκινήσει και να το φτιάξει; Στον κόσμο του Παιχνιδιού μας αυτός ο κάποιος, είναι μια άλλη κατηγορία, ας την πούμε FidakiGame. Αυτή η κατηγορία αντιπροσωπεύει ολόκληρο το παιχνίδι. Έχει ως χαρακτηριστικό της (attribute) όχι μεταβλητές τύπου int,String κτλ το BasikoMenou που είναι στιγμιότυπο της κατηγορίας Menou. Σαν να λέγαμε ότι ο Κώστας έχει στα χαρακτηριστικά του, την ηλικία του (απλή μεταβλητή), τον σκύλο του την Λάσι που είναι ένας Σκύλος και ένα γλυκό κανταϊφι που είναι στιγμιότυπο ενός Γλυκού. θα πρέπει όμως να κάνει τον κόπο να το φτιάξει, με μια διαδικασία DimiourgiaGlikou(). Έτσι και εμείς θα πρέπει να φτιάξουμε το basikoMenou. Θα το κάνουμε με την διαδικασία dimiourgiaBasikoMenou(). Ας φτιάξουμε λοιπόν την κατηγορία αυτή, τα χαρακτηριστικά και τις διαδικασίες τις === UML === - Δημιουργία κατηγορίας FidakiGame, με τον ίδιο τρόπο όπως και πριν - Προσθήκη χαρακτηριστικών στην κατηγορία Menou * Ένα χαρακτηριστικό με όνομα basikoMenou και τύπο Menou - Προσθήκη διαδικασίας στην κατηγορία FidakiGame * Μια διαδικασία με όνομα dimiourgiaBasikoMenou(). - Δημιουργία αυτόματα του κώδικα σε Java με τον τρόπο που είδαμε πριν στον φάκελο FidakiPrj/src/fidakiprj * Δημιουργήθηκε μια νέα κατηγορία (κλάση) java FidakiGame. Για να την δούμε πάμε FidakiPrj/Source Packages/fidakiprj ==== Ασκήσεις ==== ===== Δημιουργία και εμφάνιση ενός μενού ===== Έχουμε σχεδιάσει σε αρχικό στάδιο την εφαρμογή μας. Στο κυρίως πρόγραμμα λοιπόν : - θα ξεκινήσουμε να δημιουργήσουμε το στιγμιότυπο μιας κατηγορίας FidakiGame με όνομα newGame. - Στην διαδικασία δημιουργίας του, FidakiGame(), Θα εισάγουμε περιεχόμενο στο basikoMenou, βάζωντας κώδικα στην διαδικασία dimiourgiaBasikoMenou(). θα φτιάξουμε έναν πίνακα από 5 κείμενα (strings) και θα τον εισάγουμε στο basikoMenou καλώντας την διαδικασία του setKeimenoEpilogis() -Θα εμφανίσουμε το μενού καλώντας μια καινούργια διαδικασία emfanisi() της κατηγορίας FidakiGame, στην οποία θα καλούμε με την σειρά μας την διαδικασία εμφάνιση του menou ==== Java - console ==== Στην κλάση Main στην διαδικασία public static void main(String[] args) εισάγουμε τον παρακάτω κώδικα FidakiGame newGame= new FidakiGame(); Δοκιμάζουμε να εκτελέσουμε το πρόγραμμα. Θα μας εμφανιστεί μύνημα λάθους, ότι δεν μπορεί να βρει την κατηγορία FidakiGame. Για να το επιλύσουμε προσθέτουμε στις κατηγορίες FidakiGame και Menou την δήλωση ότι ανήκουν στο πακέτο fidakiprj, όπως ήδη ανήκει η main package fidakiprj; Στην κατηγορία FidakiGame στην διαδικασία public void dimiourgiaBasikoMenou() εισάγουμε τον παρακάτω κώδικα. short arithmosEpilogon=5; basikoMenou = new Menou(); basikoMenou.setArithmosEpilogon(arithmosEpilogon); ArrayList keimeno = new ArrayList(arithmosEpilogon); keimeno.add("1.Enarksi"); keimeno.add("2.Epiloges"); keimeno.add("3.HighSkor"); keimeno.add("4.Boitheia"); keimeno.add("5.Exodos"); basikoMenou.setKeimenoEpilogis(keimeno); Δοκιμάζουμε να το τρέξουμε. Θα μας εμφανίσει μύνημα ότι δεν μπορεί να βρεί την κατηγορία ArrayList. Για να του δόσουμε οδηγίες που θα την εντοπίσει εισάγουμε στην 2η γραμμή της κατηγορίας FidakiGame κάτω από το package fidakiprj; package fidakiprj; import java.util.ArrayList; Κατά την δημιουργία της κατηγορίας FidakiGame (στην διαδικασία FidakiGame()) όλα τα χαρακτηριστικά της πρέπει να πάρουν αρχική τιμή. Για το λόγο αυτό θα καλέσουμε την διαδικασία dimiourgiaBasikoMenou() που αρχικοποιεί/δημιουργεί τo basikoMenou. public FidakiGame() { this.dimiourgiaBasikoMenou(); } Δημιουργούμε μια νέα διαδικασία στην κατηγορία FidakiGame με όνομα emfanisi() και στον κώδικά της ορίζουμε να καλεί την διαδικασία emfanisi() του Menou, basikoMenou. Την τοποθετούμε πριν από το τελευταίο } που είναι το τέλος της κατηγορίας. public void emfanisi() { basikoMenou.emfanisi(); } Εισάγουμε τον κώδικα εμφάνισης στην διαδικασία emfanisi() της κατηγορίας Menou public void emfanisi() { int i; String keimeno; keimeno= new String(); i=0; for(i=0; i<=4; i++){ keimeno=this.keimenoEpilogis.get(i); System.out.println(keimeno); } } Τέλος στο κυρίως πρόγραμμα στην Main κλάση, καλούμε την διαδικασία εμφάνισης του στιγμιοτύπου newGame FidakiGame newGame= new FidakiGame(); newGame.emfanisi(); Τρέχουμε την εφαρμογή μας. Επειδή έχουμε κάνει αλλαγές στις κατηγορίες μας προσθέτοντας μια καινούργια διαδικασία emfanisi στην κατηγορία FidakiGame, θα ενημερώσουμε το UML διάγραμμα ως εξής: * Στο FidakiPrj/Source Packages/fidakiprj επιλέγουμε κρατώντας το CTRL πατημένο τις 3 κατηγορίες FidakiGame.java, Main.java, Menou.java * Κάνωντας δεξί κλικ επιλέγουμε Reverse Engineer, επιλέγουμε Use Existing UML project το FidakiUMLPrj. ==== Ασκήσεις ==== ===== Νέο Κεφάλαιο ===== ==== UML ==== ==== Pascal ==== ==== Java - gui ==== ==== Ασκήσεις ====