Εργαστήριο 10 Άσκηση 1 - Ανάλυση

Σχετικά έγγραφα
Εργαστήριο 5 - Άσκηση - Ανάλυση

Εργαστήριο 2 - Άσκηση - Ανάλυση

Εργαστήριο 1-1 η Άσκηση - Ανάλυση

Εργαστήριο 4 - Άσκηση - Ανάλυση

Εργαστήριο 6 - Άσκηση - Ανάλυση

Εργαστήριο 7 - Άσκηση - Ανάλυση

Εργαστήριο 9 - Άσκηση - Ανάλυση

Εργαστήριο 3 - Άσκηση - Ανάλυση

Εργαστήριο 8 - Άσκηση - Ανάλυση

Αριστείδης Παλιούρας Ανακαλύψτε το Scratch 2

«Αβάκιο» Οδηγός χρήσης Μικρόκοσμου που αποτελείται από τις ψηφίδες Καμβάς, Χελώνα, Γλώσσα, Μεταβολέας, Χρώματα.

> μεγαλύτερο <= μικρότερο ή ίσο < μικρότερο == ισότητα >= μεγαλύτερο ή ίσο!= διαφορετικό

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

Εισαγωγή στο περιβάλλον Code::Blocks

21. ΦΥΛΛΟ ΕΡΓΑΣΙΑΣ 4 - ΔΗΜΙΟΥΡΓΩΝΤΑΣ ΜΕ ΤΟ BYOB BYOB. Αλγόριθμος Διαδικασία Παράμετροι

ΕΡΓΑΣΤΗΡΙΟ 6: Συναρτήσεις και Αναδρομή

Αγώνες αυτοκινήτου Παιχνίδι για 2 παίκτες

ΔΡΑΣΤΗΡΙΟΤΗΤΑ : ΖΑΡΙΑ

Περιγραφή του βασικού παραθύρου του Cubase SE3. Εικόνα 1

Φύλλο Εργασίας: Παιχνίδι Λαβύρινθος (MAZE) Προγραμματιστικό Εργαλείο: SCRATCH. Ονοματεπώνυμο:

ΑΛΛΗΛΕΠΙ ΡΑΣΗ ΑΝΘΡΩΠΟΥ ΜΗΧΑΝΗΣ 6 o ΕΡΓΑΣΤΗΡΙO

3 ο εργαστήριο Scratch for NinjaCoders

Ας μετονομάσουμε τη γάτα που εμφανίζεται μόλις ανοίγουμε το Scratch. Επιλέγουμε το εικονίδιο Μορφή1 που βρίσκεται στη λίστα αντικειμένων.

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

Σενάριο 14: Προγραμματίζοντας ένα Ρομπότ ανιχνευτή

Φύλλα εργασίας. MicroWorlds Pro. Πολυμεσικές Εφαρμογές με την χρήση της γλώσσας LOGO Στο Γυμνάσιο. Β. Χ. Χρυσοχοΐδης

Σχεδίαση και ανάπτυξη δραστηριοτήτων στο προγραμματιστικό περιβάλλον MicroWorlds Pro

4 ο ΦΥΛΛΟ ΕΡΓΑΣΙΑΣ ΓΕΝΙΚΟΣ ΣΚΟΠΟΣ :

App Inventor. Εφαρμογή 7 η. Υπολογισμός Μέσου όρου μαθημάτων Επέκταση: Πέρασα ή δεν πέρασα? Version 2

Οδηγίες Εγκατάστασης της εφαρμογής Readium και Readium για μαθητές με αμβλυωπία για την ανάγνωση βιβλίων epub σε Υπολογιστή.

VK -14/10/2016 Σελίς 1

«Κρυπτογράφηση Εταιριών»

ΚΕΡΑΜΟΠΟΥΛΟΣ ΕΥΚΛΕΙΔΗΣ

Ράβδος Εργαλείων, σχεδόν τα ίδια εργαλεία και εικονίδια υπάρχουν όπως στα άλλα προγράμματα που έχετε μάθει μέχρι σήμερα.

Οπτικός Προγραμματισμός σε NetBeans με Java Swing

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

ΕΡΓΑΣΤΗΡΙΟ ΠΛΗΡΟΦΟΡΙΚΗ I. 3o ΕΡΓΑΣΤΗΡΙΟ ΕΠΕΞΕΡΓΑΣΙΑ ΜΕ ΤΟ WORD

Βιοϊατρική τεχνολογία

3 ο Εργαστήριο Μεταβλητές, Τελεστές

4 ο Εργαστήριο Τυχαίοι Αριθμοί, Μεταβλητές Συστήματος

Ενότητα 2: Εντολές Επανάληψης

Λεπτομέριες τοιχοποιίας Σχεδίαση κάτοψης

Hot Potatoes. Καυτές Πατάτες;

Καροτοκυνηγός. Αντικείμενα

ΦΥΛΛΟ ΕΞΟΙΚΕΙΩΣΗΣ ΜΕ ΤΟ ΕΙΚΟΝΙΚΟ ΕΡΓΑΣΤΗΡΙΟ

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

1.Puzzle. ΕΠΙΜΕΛΕΙΑ: ΓΕΩΡΓΙΑ ΚΛΩΣΤΡΑΚΗ Σελίδα 1

Σενάριο 13: Προγραμματίζοντας ένα Ρομπότ

App Inventor. Εφαρμογή 7 η. Υπολογισμός Μέσου όρου μαθημάτων

1ο μέρος 1. Φτιάχνουμε την πίστα. Μια ενδεικτική πίστα φαίνεται παρακάτω:

ΑΝΤΙΓΡΑΦΗ ΑΡΧΕΙΟΥ ΣΕ ΔΙΣΚΕΤΑ ΑΝΤΙΓΡΑΦΗ ΑΡΧΕΙΟΥ ΑΠΟ ΔΙΣΚΕΤΑ. Από τον κατάλογο που εμφανίζεται επιλέγω: Αποστολή προς Δισκέτα (3,5)

Ενδυμασίες. Μετονομάζουμε την νέα ενδυμασία του αντικείμενου μας και έχουμε ολοκληρώσει τη δημιουργία της.

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

1. Κατανόηση Και Αλλαγή Μεταξύ Προβολών Εμφάνισης Της Παρουσίασης. 1. Κατανόηση Και Αλλαγή Μεταξύ Προβολών Εμφάνισης Της Παρουσίασης

Kεφάλαιο 11 Λίστες και Ανάλυση Δεδομένων Kεφάλαιο 12 Εργαλεία ανάλυσης πιθανοτήτων Kεφάλαιο 13 Ανάλυση δεδομένων...

Movie Maker (Δημιουργία βίντεο)

Οδηγίες για τη Χρήση του Google Drive

Το σκηνικό μας είναι πλέον έτοιμο για εισάγουμε τα υπόλοιπα αντικείμενα του έργου μας.

Περιεχόμενα. Κεφάλαιο 1 Εισαγωγή στην Access Κεφάλαιο 2 Χειρισμός πινάκων... 27

Προγραμματισμός 2 Σημειώσεις εργαστηρίου

Οδηγίες για το CABRI - GEOMETRY II Μωυσιάδης Πολυχρόνης - Δόρτσιος Κώστας

Lego WeDo - Αεροπλάνο

ΗΜΥ211 Εργαστήριο Ψηφιακών Συστημάτων

Οδηγίες για τη Χρήση του Εκπαιδευτικού Κοινωνικού δικτύου

Βάσεις δεδομένων (Access)

να ακολουθήσουμε Έναρξη Όλα τα Προγράμματα και να ενεργοποιήσουμε την επιλογή Microsoft Word.

Ακαδημαϊκό Έτος , Χειμερινό Εξάμηνο Μάθημα: Εργαστήριο «Πληροφορική Υγείας» ΕΙΣΑΓΩΓΗ ΣΤΗΝ ACCESS

Θα αναπτύξουμε μια εφαρμογή που θα λειτουργεί σαν κουμπί πανικού. Η εφαρμογή θα αποτελείται από δύο κουμπιά.

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

Μέρος Α Γνωριμία με το περιβάλλον προγραμματισμού του ρομπότ OTTO

App Inventor 8ο Μάθημα (Ζωγραφική με τα δάχτυλα)

ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΑΝΑΛΟΓΙΑ

Λύσεις για τις ασκήσεις του lab5

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Graphical User Interfaces (GUI) SWING

Η εντολή «επανέλαβε Χ»

Οδηγίες για προσθήκη Web Frames Tools to the Quick Access Bar σε μεταγενέστερη έκδοση του Word

Εγκατάσταση του Lazarus

Ask1, Ask2, Ask3. private void jbutton1actionperformed(java.awt.event.actionevent evt) { jlabel1.settext( "You pressed the 1st button" ); }

Πώς μπορούμε να δημιουργούμε γεωμετρικά σχέδια με τη Logo;

Οδηγί ες γία τους γονεί ς Διδακτική περίοδος

Field Service Management ΕΓΧΕΙΡΙΔΙΟ ΧΡΗΣΗΣ

Πολύ Οδηγοί - Mleaders

VK - 04/11/2016- [1]

Γνωρίστε το Excel 2007

Αριστείδης Παλιούρας Ανακαλύψτε το Scratch 2

ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΣΤΗ VISUAL BASIC του EXCEL

Δημιουργία μιας εφαρμογής Java με το NetBeans

Πίνακες δημιουργία και μορφοποίηση πίνακα

ΟΔΗΓΙΕΣ ΓΙΑ ΤΟΥΣ ΜΑΘΗΤΕΣ

ΟΔΗΓΙΕΣ ΣΥΣΤΗΜΑΤΟΣ ΤΗΛΕΚΑΤΑΡΤΙΣΗΣ

Προγραμματισμός ΙI (Θ)

Σημειώσεις του εργαστηριακού μαθήματος Πληροφορική ΙΙ. Εισαγωγή στην γλώσσα προγραμματισμού

Φτιάξε ένα απλό παιχνίδι

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

Βήμα 1ο. Συνδεθείτε στο σύστημα διαχείρισης του Joomla ιστοχώρου σας. Η διεύθυνση θα είναι:

Visual Flowchart Γενικά

Εγχειρίδιο Χρήσης του MoPiX (Έκδοση 47)

Εργαστηριακή άσκηση 8 η (EXCEL) ΣΥΝΑΡΤΗΣΕΙΣ-ΣΧΗΜΑΤΑ-ΕΙΚΟΝΕΣ- ΓΡΑΦΗΜΑΤΑ

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

Visual Basic Γλώσσα οπτικού

Transcript:

Εργαστήριο 10 Άσκηση 1 - Ανάλυση Εκφώνηση: Στο moodle σας δίνονται οι εικόνες έξι ηρώων της ταινίας Star Wars. Για κάθε ήρωα σας δίνεται µία µεγάλη και µία µικρή εικόνα. Ε ίσης, σας δίνονται και οι εικόνες ενός δεξιού και ενός αριστερού βέλους. Στην εκκίνηση η εµφάνιση της εφαρµογής θα ρέ ει να είναι η αρακάτω: Στόχος της άσκησης είναι, οι εικόνες των έξι ηρώων να µ ουν σε µία σειρά. Κάθε φορά ου ο χρήστης ε ιλέγει το δεξί βελάκι, να γυρίζουν δεξιόστροφα, ενώ ό οτε ε ιλέγει το αριστερό βελάκι, αριστερόστροφα. Όταν, θα φτάνει στο τέλος της σειράς θα ξεκινά α ό την αρχή. Κάθε φορά α ό τις τρεις µικρές εικόνες ου θα εµφανίζονται, η µεσαία εικόνα θα αρουσιάζεται και στη µεγάλη της διάσταση. Ανάλυση και εξήγηση λύσης Βήμα 1: Δημιουργούμε ένα νέο project στο NetBeans με όνομα Askisi12. Βήμα 2: Δημιουργούμε ένα νέο Java αρχείο τύπου JFrame Form με όνομα Ergastirio10_1. Βήμα 3: Ορισμός Ιδιοτήτων στο JFrame. Ορίζουμε ως τίτλο του JFrame το «Star Wars Carousel». Βήμα 4: Κατεβάζουμε τις εικόνες από το moodle και τις αποθηκεύουμε στο Project. Βήμα 5: Προσθέτουμε τέσσερα JLabel και δύο JButton στον καμβά (JFrame). Στο πρώτο JLabel θα εμφανίζουμε τη μεγάλη εικόνα. Θα έχει όνομα μεταβλητής BasicLabel και διάσταση 500, 375 (Ιδιότητα Layout, Horizontal Size = 500 και Vertical Size = 375). Δρ. Ευκλείδης Κεραμόπουλος Σελίδα 1

Στα άλλα τρία JLabel θα εμφανίζουμε τις κατάλληλες μικρές εικόνες. Θα έχουν όνομα μεταβλητής MinL1, MinL2, MinL3 και διάσταση 99, 75. Στα δύο JButton θα εμφανίσουμε την εικόνα του αριστερού και δεξιού βέλους. Τα ονόματα μεταβλητών τους είναι LB και RB. Φροντίζουμε τα συστατικά να τα τοποθετήσουμε στην κατάλληλη θέση (Εικόνα 1). Εικόνα 1: Η σχεδίαση της εφαρμογής Βήμα 6: Σε αυτό το βήμα ορίζουμε την αρχική εμφάνιση της εφαρμογής μας. Μπορούμε να ορίσουμε τις κατάλληλες ιδιότητες (icon) στα συστατικά της εφαρμογής ή να καλέσουμε τις κατάλληλες εντολές στο δομητή της εφαρμογής αμέσως μετά το initcomponents, όπως φαίνεται στην Εικόνα 3. Στην Εικόνα 2, φαίνεται η δήλωση των εικόνων σε αντικείμενα ImageIcon για να μπορέσουμε να τις χρησιμοποιήσουμε στο πρόγραμμα. Αναλυτικά, στην Εικόνα 2, στις γραμμές 130-143 δηλώνουμε αντικείμενα ImageIcon (έχουμε προσθέσει την κατάλληλη βιβλιοθήκη) που αντιστοιχούν σε εικόνες που έχουμε τοποθετήσει στο Project (στον φάκελο του project). Στη γραμμή 144 δηλώνουμε έναν πίνακα ImageIcon, ο οποίος περιέχει τις έξι μικρές εικόνες σε σειρά και στη γραμμή 145 δηλώνουμε έναν άλλο πίνακα ImageIcon, ο οποίος περιέχει τις έξι μεγάλες εικόνες στην ίδια σειρά. Στην Εικόνα 3, στις γραμμές 8-13 ορίζουμε τις κατάλληλες εικόνες στα συστατικά της εφαρμογής. Η μεγάλη εικόνα (BasicLabel) θα πρέπει να εμφανίζει την ίδια εικόνα με την μεσαία μικρή εικόνα (MinL2). Δρ. Ευκλείδης Κεραμόπουλος Σελίδα 2

Εικόνα 2: Δήλωση εικόνων σε αντικείμενα ImageIcon Εικόνα 3: Εκκίνηση εφαρμογής Βήμα 7: Σε αυτό το βήμα θα προγραμματίσουμε το JButton LB (Εικόνα 4). Όταν ο χρήστης επιλέγει το «αριστερό βελάκι» γίνεται κύλιση των εικόνων προς τα αριστερά. Άρα, αν στην MinL1 υπάρχει η εικόνα minarray[0], στην MinL2 η εικόνα minarray[1] και στην MinL3 η εικόνα minarray[2] τότε, μόλις ο χρήστης πατήσει το αριστερό βελάκι η MinL1 θα έχει την εικόνα minarray[1], η MinL2 θα έχει την εικόνα minarray[2] και η MinL3 θα έχει την εικόνα minarray[3]. Ουσιαστικά σε κάθε JLabel εμφανίζεται η επόμενη εικόνα από αυτή που εμφανιζόταν. Δρ. Ευκλείδης Κεραμόπουλος Σελίδα 3

Αυτό το διαχειριζόμαστε με μία global ακέραια μεταβλητή (index), η οποία αρχικά έχει την τιμή 1. Όταν επιλεγεί το JButton LB αυξάνεται το index κατά 1 (γραμμή 81). Κάθε φορά στην MinL1 θα εμφανίζεται η εικόνα minarray[index - 1], στην MinL2 θα εμφανίζεται η εικόνα minarray[index] και στην MinL3 θα εμφανίζεται η εικόνα minarray[index + 1] και φυσικά στην BasicLabel η εικόνα maxarray[index], όπως εξηγήθηκε στο βήμα 6. Αυτή η λειτουργία θα δημιουργήσει προβλήματα αν για παράδειγμα το index πάρει την τιμή 6, ενώ ο πινάκας έχει 6 κελιά και επομένως μπορεί να πάρει ως παράμετρο τις τιμές 0 έως 5. Παρόμοια, θα δημιουργηθεί πρόβλημα αν το index+1 αθροίζει σε 6. Έτσι, στη γραμμή 82 γίνεται έλεγχος της δεύτερης περίπτωσης. Αν το index έχει την τιμή 5 (minarray.length-1) τότε το index+1 θα «βγει» έξω από τα όρια του πίνακα. Σε αυτή την περίπτωση, στις MinL1 και MinL2 θα εμφανιστούν κανονικά οι εικόνες minarray[index - 1] και minarray[index] αντίστοιχα, δηλαδή η προτελευταία και η τελευταία εικόνα του πίνακα minarray. Στην MinL3 δεν μπορεί να εμφανιστεί η εικόνα minarray[index + 1], με άλλα λόγια η minarray[6]. Έτσι, θα εμφανιστεί η επόμενη της τελευταίας, που είναι η πρώτη εικόνα, δηλαδή η minarray[0]. Εικόνα 4: Ο κώδικας του αριστερού κουμπιού Στη γραμμή 87 γίνεται έλεγχος της πρώτης περίπτωσης. Αν το index έχει την τιμή minarray.length, δηλαδή 6, τότε και το minarray[index] αλλά και το minarray[index + 1] είναι έξω από τα όρια του πίνακα. Έτσι, θα δώσουμε στο index την τιμή 0, η οποία είναι η επόμενη από το 5, αφού θέλουμε όταν «τελειώσουν» οι εικόνες να εμφανίζονται από την αρχή του πίνακα. Επομένως, στην MinL1 θα εμφανιστεί η εικόνα minarray[minarray.length 1] (δηλαδή Δρ. Ευκλείδης Κεραμόπουλος Σελίδα 4

η minarray[5]), στην MinL2 θα εμφανιστεί η εικόνα minarray[index] (δηλαδή η minarray[0]) και MinL3 θα εμφανιστεί η εικόνα minarray[index + 1] (δηλαδή η minarray[1]). Βήμα 8: Σε αυτό το βήμα θα προγραμματίσουμε το JButton RB (Εικόνα 5) με αντίστοιχο τρόπο με το LB. Όταν ο χρήστης επιλέγει το «δεξί βελάκι» γίνεται κύλιση των εικόνων προς τα δεξιά. Άρα, αν στην MinL1 υπάρχει η εικόνα minarray[1], στην MinL2 η εικόνα minarray[2] και στην MinL3 η εικόνα minarray[3] τότε, μόλις ο χρήστης πατήσει το δεξί βελάκι η MinL1 θα έχει την εικόνα minarray[0], η MinL2 θα έχει την εικόνα minarray[1] και η MinL3 θα έχει την εικόνα minarray[2]. Ουσιαστικά σε κάθε JLabel εμφανίζεται η προηγούμενη εικόνα από αυτή που εμφανιζόταν. Ο προγραμματισμός θα γίνει πάλι με βάση την τιμή του index, όπου το minarray[index] θα εμφανίζεται στο MinL2. Αυτή η λειτουργία θα δημιουργήσει προβλήματα όταν το index πάρει την τιμή 0 και -1. Επίσης, όταν το index πάρει την τιμή -1 πάλι θα δημιουργηθεί πρόβλημα. Έτσι, στη γραμμή 103 γίνεται έλεγχος της πρώτης περίπτωσης. Αν το index έχει την τιμή 0 τότε το index-1 θα έχει την τιμή -1 και έτσι θα ζητηθεί εικόνα έξω από τα όρια του πίνακα. Σε αυτή την περίπτωση, στις MinL2 και MinL3 θα εμφανιστούν κανονικά οι εικόνες minarray[index] και minarray[index+1] αντίστοιχα, δηλαδή η πρώτη και η δεύτερη εικόνα του πίνακα minarray. Στην MinL1 δεν μπορεί να εμφανιστεί η εικόνα minarray[index - 1], με άλλα λόγια η minarray[-1]. Έτσι, θα εμφανιστεί η προηγούμενη της πρώτης, που είναι η τελευταία εικόνα, δηλαδή η minarray[minarray.length-1]. Στη γραμμή 108 γίνεται έλεγχος της δεύτερης περίπτωσης. Αν το index έχει την τιμή -1, τότε και το minarray[index] αλλά και το minarray[index - 1] είναι έξω από τα όρια του πίνακα. Έτσι, θα δώσουμε στο index την τιμή minarray.length-1, η οποία είναι η επόμενη το 5, αφού θέλουμε όταν «τελειώσουν» οι εικόνες να εμφανίζονται από τo τέλος του πίνακα. Επομένως, στην MinL1 θα εμφανιστεί η εικόνα minarray[index 1] (δηλαδή η minarray[4]), στην MinL2 θα εμφανιστεί η εικόνα minarray[index] (δηλαδή η minarray[5]) και MinL3 θα εμφανιστεί η εικόνα minarray[0] (δηλαδή η πρώτη εικόνα η οποία είναι η επόμενη από την τελευταία). Δρ. Ευκλείδης Κεραμόπουλος Σελίδα 5

Εικόνα 5: Ο κώδικας του δεξιού κουμπιού Δρ. Ευκλείδης Κεραμόπουλος Σελίδα 6