Visual Basic Εκπαιδευτικό εγχειρίδιο

Citation preview

Το παρόν εκπονήθηκε στο πλαίσιο του Υποέργου 13 «Προσαρµογή Λογισµικού-Φάση ΙΙΙ» της Πράξης «Επαγγελµατικό λογισµικό στην ΤΕΕ: επιµόρφωση και εφαρµογή» (Γ’ ΚΠΣ, ΕΠΕΑΕΚ, Μέτρο 2.3, Ενέργεια 2.3.2)

που συγχρηµατοδοτείται από την Ευρωπαϊκή Ένωση/Ευρωπαϊκό Κοινωνικό Ταµείο

ΠΕΡΙΕΧΟΜΕΝΑ

4 47 129

ΠΕΡΙΕΧΟΜΕΝΑ Εισαγωγή.................................................................................................................................. 4 Οδηγίες Εγκατάστασης της Visual Basic........................................................................... 5 Εισαγωγή ............................................................................................................................................5 Βήµατα εγκατάστασης της VB 2008 ..............................................................................................5 3. Χρήση........................................................................................................................................... 16

∆ιαδικαστικές (Procedural) έναντι µη ∆ιαδικαστικών γλωσσών (Non-...................... 16 Ετικέτες (Labels), Πεδία κειµένου (Text Boxes) και Κουµπιά Εντολών (Command Buttons) ................................................................................................................................. 17 Τύποι σφαλµάτων................................................................................................................. 17 Ειδικές συναρτήσεις (Functions) και µέθοδοι (Methods) ............................................. 18 Μεταβλητές (Variables) και σταθερές (Constants) ....................................................... 19 ∆ηλώνοντας µια µεταβλητή (VARIABLE)......................................................................... 19 ∆ηλώνοντας µια σταθερά (CONSTANT)........................................................................... 20 Εµβέλεια των µεταβλητών.................................................................................................. 22 Ιδιότητες (PROPERTIES)..................................................................................................... 22 Κουµπιά επιλογών (Option Buttons)... Μορφοποίηση (Formats)............................... 23 Κουµπί επιλογής (OPTION BUTTONS) ............................................................................. 24 Κουµπί επιλογών (CHECK BOXES) ................................................................................... 24 Εικόνες (IMAGES) ................................................................................................................ 24 Σχήµατα (SHAPES) .............................................................................................................. 24 Γραµµές (LINES) .................................................................................................................. 25 Καθορίζοντας την εστίαση (Focus) ................................................................................... 25 ∆ουλεύοντας µε αλφαριθµητικά (Strings) ...................................................................... 25 Μορφοποιήσεις (Formats) .................................................................................................. 25 Πεδία εισαγωγής (Input Boxes), µηνύµατα (Message) και πεδία από λίστες (List Boxes) .................................................................................................................................... 26 Form Load.............................................................................................................................. 27 Πεδία Μηνυµάτων και Πεδία Λιστών ................................................................................ 27 ∆ήλωση Πλαισίου Μηνύµατος............................................................................................ 27 Συνάρτηση Πλαισίου Μηνύµατος ...................................................................................... 28 Πεδία Λιστών ......................................................................................................................... 28 Ιδιότητα ListIndex................................................................................................................ 29 Ιδιότητα Sorted:................................................................................................................... 29 Μέθοδος Clear: ..................................................................................................................... 29 Μέθοδος RemoveItem......................................................................................................... 30 Υπο–∆ιαδικασίες (Sub Procedures), Τυχαίοι αριθµοί (Random Numbers) ............... 30 Σκοπός των ∆ιαδικασιών: ................................................................................................... 30 Τύποι ∆ιαδικασιών: .............................................................................................................. 30 ∆ηµιουργώντας µια νέα Υπο-∆ιαδικασία .......................................................................... 31 ∆ήλωση WITH ....................................................................................................................... 32 Συνήθη στοιχεία ελέγχου διαλόγων (COMMON DIALOG CONTROL)......................... 32 Χαρακτηριστικά του στοιχείου ελέγχου διαλόγου (DIALOG CONTROL) ................... 32 Ανακτώντας τα συνήθη διαλογικά στοιχεία ελέγχου (αν δεν υπάρχουν ήδη) ......... 33 Αλλάζοντας τις γραµµατοσειρές (FONTS) ....................................................................... 33 Αλλάζοντας τα χρώµατα ..................................................................................................... 33 ΤΥΧΑΙΟΙ ΑΡΙΘΜΟΙ................................................................................................................ 34 INT() ΛΕΙΤΟΥΡΓΙΑ ................................................................................................................ 34 Μενού, Αναδυόµενες Λίστες (Combo Boxes) και Χρώµατα (QB Color) .................... 34 ΜΕΡΗ ΤΟΥ ΜΕΝΟΥ................................................................................................................ 35 Αναδυόµενα Πεδία (COMBO BOXES) ............................................................................... 36 ∆ιαφορές µεταξύ του List Box και του Combo Box ....................................................... 36 Εισαγωγή στοιχείων στη λίστα, χρησιµοποιώντας την ιδιότητα λίστας (LIST PROPERTY) ............................................................................................................................ 36

Πρόσθεση αντικειµένων στη λίστα, χρησιµοποιώντας τη µέθοδο εισαγωγής στοιχείων (ADDITEM).......................................................................................................... 36 Πρόσθεση αντικειµένων στον Πίνακα Εισαγωγής Στοιχείων (ItemData ARRAY).... 36 Εισαγωγή στοιχείων στη λίστα........................................................................................... 37 Ιδιότητα Κειµένου (TEXT PROPERTY):............................................................................. 37 QB COLOR.............................................................................................................................. 38 Στοιχεία Ελέγχου Πίνακες (Control Arrays), Μπάρες Κύλισης (Scroll Bars) και Λειτουργία RGB (Red-Blue-Green RGB Function) ......................................................... 38 ∆ηµιουργώντας ένα Στοιχείο Ελέγχου Πίνακα (CONTROL ARRAY):.......................... 39 Σύνολο και Μέσος Όρος των αποτελεσµάτων του Τεστ, χρησιµοποιώντας Στοιχεία Έλεγχου Πίνακες (CONTROL ARRAYS): .......................................................................... 40 Μπάρες Κύλισης (Scroll Bars) και RGB Λειτουργία (RGB Function) .......................... 40 Ιδιότητες της Μπάρας Κύλισης (SCROLL BAR)............................................................... 40 Τύποι από Μπάρες Κύλισης ................................................................................................ 41 Γεγονότα της Μπάρας Κύλισης .......................................................................................... 41 Λειτουργία RGB (RGB FUNCTION).................................................................................... 42 Πολλαπλές Φόρµες (Multiple Forms), Λέξη Κλειδί ME (ME Keyword) και Συµπέρασµα .......................................................................................................................... 42 Λέξη Κλειδί ME (Εγώ) .......................................................................................................... 43

Εισαγωγή Η Visual Basic είναι µια αντικειµενοστραφής γλώσσα προγραµµατισµού η οποία χρησιµοποιεί τη πλατφόρµα των Microsoft Windows. Τα προγράµµατα τα οποία δηµιουργούνται χρησιµοποιώντας τη Visual Basic (VB) θα µοιάζουν και θα συµπεριφέρονται όπως τα καθιερωµένα προγράµµατα των Windows. Η Visual Basic παρέχει τα εργαλεία για δηµιουργία παραθύρων µε στοιχεία όπως µενού (menus), πεδία κειµένου (text boxes), κουµπιά εντολών, κουµπιά επιλογών, λίστες επιλογών (list boxes) και γραµµές κύλισης (scroll bars). Αυτό το εγχειρίδιο δεν καλύπτει πλήρως όλες τις πτυχές της Visual Basic. Αποτελεί κατά βάση απλώς µια επισκόπηση για να δώσει το έναυσµα σε κάποιον αρχάριο. Βάσεις ∆εδοµένων, τα Crystal Reports και άλλα δεν περιλαµβάνονται για να διατηρήσουν αυτό το εκπαιδευτικού κειµένου κάτω από 500 σελίδες και να µη κουράσει τα χέρια σας. Αν και αυτό το εγχειρίδιο απευθύνεται σε αρχάριους, γράφτηκε µε την παραδοχή ότι ο αναγνώστης να έχει κάποιες γνώσεις προγραµµατισµού. Για παράδειγµα: τι σηµαίνει µια δήλωση IF / THEN / ELSE, FOR / NEXT βρόχο και ούτω καθεξής. Εάν έχετε ασχοληθεί µε τη Basic ή τη QBasic, θα ήταν ιδανικό προτού ασχοληθείτε µε την ανάγνωση αυτού του άρθρου.

Οδηγίες Εγκατάστασης της Visual Basic

Εισαγωγή Το εγχειρίδιο αυτό αποτελεί ένα οδηγό εγκατάστασης για τη Visual Basic 2008 Express Edition (VB) χρησιµοποιώντας το DVD που σας παρέχεται. To DVD αυτό περιλαµβάνει το Visual Studio Express, το πλήρες περιβάλλον της Microsoft για την ανάπτυξης προγραµµάτων. Ένα από τα εργαλεία ανάπτυξης αυτά αποτελεί και η Visual Basic και βρίσκεται στο DVD Που σας παρέχεται. Εναλλακτικά µπορείτε να εγκαταστήσετε τη VB από το Internet αφού έχετε µεταφορτώσει (download) το αντίστοιχο πρόγραµµα εγκατάστασης. Μπορείτε να µεταφορτώσετε το πρόγραµµα εγκατάστασης από την ηλεκτρονική διεύθυνση: http://www.microsoft.com/express/vb/ Προτού προχωρήσετε στην εγκατάσταση της Visual Basic, εκτελέστε το Windows Update (ενηµέρωση των windows) για βεβαιωθείτε ότι ο υπολογιστής σας είναι αναβαθµισµένος στις τελευταίες ενηµερώσεις. Το DVD που σας παρέχεται είναι εγγεγραµµένο σε UDF µορφή. Για τη χρήση του χρειάζεται κάποιο πρόγραµµα ανάγνωσης UDF, όπως το Nero, Deamon Tools κτλ. Παρακάτω παρουσιάζονται τα βήµατα εγκατάστασης από το DVD. Πριν ξεκινήσετε την εγκατάσταση της VB θα πρέπει να κλείσετε όλα τα προγράµµατα που εκτελούνται για να µην υπάρχει κάποια σύγκρουση.

Βήµατα εγκατάστασης της VB 2008 1.

Εισάγετε το DVD στη θήκη του DVD στον υπολογιστή σας. Ο οδηγός εγκατάστασης θα ξεκινήσει αυτόµατα. Σε περίπτωση που αυτό δεν γίνει, µπορείτε να περιηγηθείτε στο drive του DVD σας και να τρέξετε το setup.exe. Ενδεικτικά, εάν το DC drive σας είναι στο γράµµα D, µπορείτε να εκτελέσετε την εντολή ‘d:\setup.hta’ στην εκτέλεση εργασιών.

2.

Το πρόγραµµα εγκατάστασης θα ξεκινήσει δείχνοντάς σας τη παρακάτω εικόνα και προτρέποντας σας να επιλέξετε το πρόγραµµα εγκατάστασης που επιθυµείτε.

Στο µενού αυτό των επιλογών, επιλέγουµε να εγκαταστήσουµε τη Visual Basic 2008 Express Edition. Οπότε το πρόγραµµα εγκατάστασης της Visual Basic θα ξεκινήσει την

εγκατάσταση του περιβάλλοντος ανάπτυξης προγραµµάτων χρησιµοποιώντας τη VB.

3.

Στη συνέχεια εµφανίζεται η αρχική οθόνη εγκατάστασης για τη Visual Basic όπως φαίνεται στη παρακάτω εικόνα.

Η οθόνη αυτή σας προτρέπει, εφόσον επιθυµείτε, να συµµετάσχετε στο πρόγραµµα συλλογής δεδοµένων της Microsoft για τη βελτίωση των προϊόντων της. Για να συµµετάσχετε στο πρόγραµµα αυτό, επιλέγετε το Yes checkbox. Τους αναλυτικούς όρους για την πολιτική της Microsoft σχετικά µε τη συλλογή δεδοµένων και προστασία ευαίσθητων και προσωπικών δεδοµένων, µπορείτε να τους βρείτε επιλέγοντας το σύνδεσµο ‘Data Collection Policy’. Για να προχωρήσετε στην εγκατάσταση επιλέγετε το κουµπί Next (Επόµενο).

4.

Το πρόγραµµα εγκατάστασης σας εµφανίζει τους όρους εγκατάστασης και χρήσης αυτού του προϊόντος (License Terms). Θα πρέπει να διαβάσετε τους όρους χρήσης για να ενηµερωθείτε για τα δικαιώµατα και τις υποχρεώσεις σας απέναντι στη Microsoft χρησιµοποιώντας αυτό το προϊόν.

Για να προχωρήσετε µε την εγκατάσταση της VB θα πρέπει να διαβάσετε τους όρους και να συµφωνήσετε µε αυτούς. Το κουµπί Next (Επόµενο) θα ενεργοποιηθεί, εφόσον επιλέξετε το πεδίο ‘I have read and accept the license terms’ (Τους διάβασα τους όρους χρήσης και συµφωνώ) όπως φαίνεται παρακάτω. Εάν δε συµφωνείτε µε τους όρους χρήσης τότε δεν µπορείτε να χρησιµοποιήσετε πλέον αυτό το πρόγραµµα. Εάν δε συµφωνείτε µε τους όρους αυτούς, µπορείτε να ανατρέξετε στο Internet και να βρείτε κάποιο άλλο περιβάλλον ανάπτυξης προγραµµάτων µε τη Visual Basic κάποιας άλλης εταιρείας. Είναι στην ευχέρεια της κάθε εταιρείας οι όροι χρήσης των προϊόντων λογισµικού που διανέµει.

Επιπλέον η επιλογή στο τέλος σας επιτρέπει να ενεργοποιήσετε τη δυνατότητα στο περιβάλλον ανάπτυξης να συλλέγει νέα από το Internet και τη Microsoft και να σας τα παρουσιάζει στην αρχική σας σελίδα. Τώρα µπορείτε να προχωρήσετε παρακάτω.

5.

Στην επόµενη οθόνη ο οδηγός εγκατάστασης σας δίνει τη δυνατότητα να εγκαταστήσετε το Microsoft SQL Server 2008 Express Edition.

Εάν σκοπεύετε να αναπτύξετε προγράµµατα σε συνδυασµό µε βάσεις δεδοµένων τότε ίσως σας χρειάζεται και το συγκεκριµένο σύστηµα διαχείρισης βάσεων δεδοµένων, εφόσον δε διαθέτετε κάποιο άλλο. Το Microsoft SQL Server 2008 Express Edition δεν είναι απαραίτητο για να αναπτύξετε τα προγράµµατά σας χρησιµοποιήσετε τη Visual Basic, όπότε µπορείτε και να επιλέξετε να µην εγκατασταθεί.

6.

Προχωρώντας παρακάτω το πρόγραµµα εγκατάστασης σας εµφανίζει τη προεπιλεγµένη διαδροµή στο δίσκο σας που θα εγκαταστήσει όλα τα απαραίτητα αρχεία για τη VB.

Επιπλέον σας εµφανίζει και µια λίστα µε τα προαπαιτούµενα για τη χρήση της VB και το συνολικό χώρο στο δίσκο που θα καταλάβει η εγκατάσταση. Μπορείτε να επιλέξετε διαφορετική διαδροµή στο δίσκο, ή να επιλέξετε διαφορετικό δίσκο, εφόσον στον υπολογιστή σας διαθέτετε περισσότερους από έναν δίσκο. Αυτό µπορείτε να το κάνετε πατώντας στο κουµπί Browse (Περιαγωγή) Είστε έτοιµος να προχωρήσετε παρακάτω πατώντας το κουµπί Install (Εγκατάσταση)

7.

Το πρόγραµµα εγκατάστασης ξεκινά. Η οθόνη εγκατάστασης σας εµφανίζει τη λίστα µε τα προαπαιτούµενα εργαλεία για το περιβάλλον ανάπτυξης της Visual Basic.

Το βελάκι στη λίστα των προαπαιτούµενων σας δείχνει το στοιχείο που εγκαθίσταται, ενώ η µπάρα στο κάτω µέρος σας δείχνει την πρόοδο εγκατάστασης.

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

Επανα-κινήστε τον υπολογιστή σας και η εγκατάσταση του περιβάλλοντός ανάπτυξης σας θα ολοκληρωθεί. Συγχαρητήρια, µόλις εγκαταστήσατε το περιβάλλον ανάπτυξης Visual Basic προγραµµάτων της Microsoft. Τώρα είστε έτοιµοι να αρχίσετε την ανάπτυξη Visual Basic προγραµµάτων.

3. Χρήση Εφόσον όλα πήγαν καλά µε την εγκατάσταση µπορείτε να ξεκινήσετε τo περιβάλλον ανάπτυξης. Στην αρχική οθόνη µπορείτε να δείτε νέα και ειδήσεις, εφόσον στο βήµα 4 κάνατε αυτή την επιλογή (RSS ειδήσεις)

Καλώς ήρθατε στην κοινότητα των προγραµµατιστών.

∆ιαδικαστικές (Procedural) έναντι µη ∆ιαδικαστικών γλωσσών (NonProcedural) ∆ιαδικαστικές γλώσσες - Γλώσσες προγραµµατισµού που έχουν ένα σύνολο από σχέδια που ακολουθείτε για να εκτελέσει ένα πρόγραµµα. Με άλλα λόγια, έχετε έναν αλγόριθµο ή διαδικασία για την εκτέλεση βήµα προς βήµα. Οι δηλώσεις αυτές εκτελούνται κατά σειρά από την αρχή µέχρι το τέλος και το πρόγραµµα θα τερµατίσει αφού εκτελεστεί και η τελευταία δήλωση.

Παράδειγµα ∆ιαδικαστικών Γλωσσών: • FORTRAN • COBOL • BASIC • C

• PASCAL όπως και άλλες µη διαδεδοµένες... Μη ∆ιαδικαστικές Γλώσσες - Αυτές είναι οι αντικειµενοστραφείς (Object-Oriented) γλώσσες προγραµµατισµού, οι οποίες είναι καθοδηγούµενες από τα γεγονότα. Με τις µη ∆ιαδικαστικές γλώσσες, κάποιος δεν έχει µόνο µια σειρά από δηλώσεις οι οποίες εκτελούνται, αλλά πολλές επιλογές από διαφορετικά πράγµατα που µπορείτε να κάνετε σε ένα πρόγραµµα. Εσείς επιλέξτε το συµβάν που θέλετε να συµβεί και µόνο ο κώδικας για την περίπτωση αυτή, θα εκτελεστεί. Παραδείγµατα µη διαδικαστικών γλωσσών: • Visual Basic • C++ • DELPHI • JAVA •

Ετικέτες (Labels), Πεδία κειµένου (Text Boxes) και Κουµπιά Εντολών (Command Buttons) Η ετικέτα (Label) - Ένα στοιχείο που χρησιµοποιείται για να εµφανίσει κείµενο ως λεζάντα. Οι ετικέτες δεν µπορούν να τροποποιηθούν από το χρήστη. Απλά χρησιµοποιούνται για να εµφανίζονται ως επικεφαλίδες σε αποτελέσµατα επεξεργασίας, καθώς και άλλες πληροφορίες σε µια φόρµα. Όταν γράφουµε κώδικα οι ετικέτες ξεκινούν µε ένα ‘lbl’ πρόθεµα. Παραδείγµατα από ετικέτες: • lblName • lblAddress • lblCity Πεδία κειµένου (Text Box) – Ένα στοιχείο που χρησιµοποιείται για να εισάγετε πληροφορίες σε µια φόρµα. Το πεδία κειµένου µπορεί να έχει την προσοχή (focus), και είναι τα κύρια µέσα για τις εισηγήσεις σε ένα έργο σε Visual Basic. Τα πεδία κείµενο συνήθως δηλώνονται µε το πρόθεµα του τύπου txt. Παραδείγµατα δήλωσης πεδίων κειµένου: • txtSponge • txtBob • txtNum1 Κουµπιά εντολών (Command Buttons) ή κουµπιά – Στοιχείο ελέγχου που χρησιµοποιείται για την ενεργοποίηση της διαδικασίας. Όταν ένα κουµπί έχει πατηθεί ή ενεργοποιηθεί χρησιµοποιώντας ένα κλειδί πρόσβασης, ένα γεγονός θα λάβει χώρα (ο διαδικασία πίσω από το πάτηµα του κουµπιού εκτελείται.). Τα κουµπιά αρχίζουν µε το πρόθεµα cmd.

Τύποι σφαλµάτων Συντακτικό σφάλµα - Αυτό είναι ένα λάθος που προκαλείται από την παραβίαση της δοµής των κανόνων σύνταξης της Visual Basic (VB). Πρόκειται για λάθη µεταγλωττιστή τα οποία συµβαίνουν όταν ο κώδικας µετατρέπεται σε γλώσσα µηχανής. Η VB θα υπογραµµίσει αυτά τα λάθη µε κόκκινο χρώµα. Λάθη στο χρόνο εκτέλεσης (Run-Time) - Σφάλµα που συµβαίνουν κατά την εκτέλεση του προγράµµατος. Αυτοί οι τύποι λαθών θα προκαλέσουν στο πρόγραµµα να τερµατίσει ανώµαλα. Παραδείγµατα σφάλµατα χρόνου εκτέλεσης είναι: διαίρεση µε το µηδέν, ή υπολογισµούς µε µη αριθµητικά δεδοµένα. Η VB θα εµφανιστεί ένα παράθυρο διαλόγου, θα σταµατήσει στο επηρεασµένο κώδικα στην οθόνη, και υπογραµµίσει το σηµείο µε κίτρινο χρώµα όπου το σφάλµα συµβαίνει.

Λογικά Σφάλµατα (Logical Error) - Αυτό είναι ένα λάθος που επιτρέπει στο έργο σας να εκτελεστεί, αλλά θα παράγει λανθασµένα αποτελέσµατα. Αυτά τα λάθη είναι δύσκολο να βρεθούν και να αναιρεθούν, διότι δεν θα εµφανιστεί ή τονιστεί κάποιο µήνυµα λάθους. Θα πρέπει να ψάξετε τον κώδικα για να βρείτε το λάθος (ή τα λάθη). Παραδείγµατα λογικών σφαλµάτων είναι: πρόσθεση 3 αντί αφαίρεση 3, ή εµφάνιση λάθος πληροφορίες σε µια ετικέτα.

Ειδικές συναρτήσεις (Functions) και µέθοδοι (Methods) VAL - Μια συνάρτηση που µετατρέπει ένα αλφαριθµητικό (string) σε µια αριθµητική τιµή. Θα ξεκινήσουµε µε το πρώτο αριστερό χαρακτήρα του αλφαριθµητικού (string). Αν αυτός ο χαρακτήρας είναι ψηφίο αριθµητικής, δεκαδικό σηµείο ή πρόσηµο, η συνάρτηση VAL θα µετατρέψει το χαρακτήρα σε µια αριθµητική τιµή, και θα συνεχίσει στον επόµενο χαρακτήρα. Μόλις ένα µη αριθµητικός χαρακτήρας βρίσκεται, την συνάρτηση VAL θα σταµατήσει. PrintForm - Μια µέθοδος που τυπώνει την τρέχουσα φόρµα στον εκτυπωτή. Αυτό πραγµατοποιείται κατά τη διάρκεια του χρόνου εκτέλεσης. FORMAT - Χρησιµοποιείται για να διαµορφώσετε µια µεταβλητή. Μεταβλητές µπορούν να διαµορφωθεί ως σταθερός αριθµός, το νόµισµα και ποσοστά π.χ. αν η µεταβλητή θα εµφανιστεί ως 7.1500 ή 7.15€. Η σύνταξη έχει ως εξής: < var > = FORMAT( < var > ," < type of format > ")

Παραδείγµατα: lblTotal = Format(lblTotal,"Currency") 'Formats number w ith a $ lblArea = Format(lblTotal,"Fixed") ' Formats number as decimal w LblPctTotal = Format(lblPctTotal,"Percent") 'Formats number as

FormatCurrency - Η συνάρτηση αυτή λαµβάνει έναν αριθµό και το µορφοποιεί ως νόµισµα µε δύο δεκαδικά ψηφία και ένα σηµάδι $ ή €. Υπάρχει µόνο µια παράµετρος εισόδου, ο αριθµός που θέλετε να µορφοποιήσετε. lblSum = FormatCurrency(NumToFormat) lblTotalAmount = FormatCurrency(curTotal)

FormatNumber - Η συνάρτηση αυτή θα µορφοποιήσει ένα νούµερο ως δεκαδικό αριθµό µε ένα πλήθος από δεκαδικά ψηφία. Εδώ υπάρχουν δύο ορίσµατα, ο αριθµός που θέλετε να µορφοποιήσετε και το πλήθος των δεκαδικών που θέλετε ο αριθµός σας να έχει.

lblTotal = FormatNumber(NumToFormat, NumOfDecimalPlaces) lblSum = FormatNumber(Sum, 2)

FormatPercent - Η µέθοδος αυτή θα λάβει έναν αριθµό και θα το διαµορφώσει ως ποσοστό πολλαπλασιάζοντας τον µε το 100 και προσθέτοντας του το επί της εκατό σύµβολο (%) στο τέλος. Από προεπιλογή, ο αριθµός θα στρογγυλοποιείται σε µηδέν δεκαδικά ψηφία εάν δεν προσδιορίζει µια δεύτερη παράµετρος. (δείτε παράδειγµα στην άλλη σελίδα)

lblTotalPct = FormatPercent(NumToFormatAsPercent) lblSumPct = FormatPercent(NumToFormatAsPercent, NumOfPlaces) lblCurrInterest = FormatPercent(CurrentInterest)

FormatDate and Time - Η συνάρτηση αυτή θα λάβει ένα αλφαριθµητικό (string) και θα το διαµορφώσει ως ηµεροµηνία, ώρα ή και τα δύο. Η πρώτη παράµετρος είναι η ηµεροµηνία ή την ώρα που πρέπει να µορφοποιηθεί. Το δεύτερο επιχείρηµα είναι η µορφή της ηµεροµηνίας/ώρας που αποφασίσετε να χρησιµοποιήσετε. π.χ. 21/02/81 ή 21 Φεβρουαρίου 1981 είναι µορφοποιήσεις της ίδια ηµεροµηνίας.

lblCurrentDate = FormatDateTime(StartingDate, vbShortDate) lblCurrentDate = FormatDateTime(EndingDate, vbLongDate) lblCurrentTime = FormatDateTime(StartingTime, vbShortTime) lblCurrentTime = FormatDateTime(StartingTime, vbLongTime)

Μεταβλητές (Variables) και σταθερές (Constants) Επιλογή (Option) Ρητή (Explicit) - Μια δήλωση που θα σας αναγκάσει να δηλώσετε όλες τις µεταβλητές που χρησιµοποιούνται στο πρόγραµµα σας. Εάν αποτύχουµε να δηλώσουµε µια µεταβλητή, ένα λάθος θα προκύψει κατά την εκτέλεση του προγράµµατός σας.

∆ηλώνοντας µια µεταβλητή (VARIABLE)

Όταν δηλώνετε µια µεταβλητή, η VB δεσµεύει χώρο στη µνήµη του υπολογιστή και χορηγεί ένα όνοµα σε αυτό. Όταν δηλώνονται µεταβλητές, ορισµένοι κανόνες πρέπει να ακολουθούνται. Κανόνες για τα Ονόµατα των µεταβλητών: • • • • •

Πρέπει να ξεκινούν µε ένα γράµµα (όχι νούµερο ή σύµβολο πχ abc αλλά όχι 1abc) Μπορούν να έχουν γράµµατα, αριθµούς και σύµβολο υπογράµµισης ( π.χ. abc1_2) ∆εν πρέπει να περιέχουν κενά και τελείες (π.χ. όχι ab c, όχι ab.c) Το µήκος του ονόµατος µπορεί να είναι από 1 µέχρι 255 χαρακτήρες (όλα µαζί, πχ a, b, a1, b1, … µέχρι 255 χαρακτήρες) ∆εν µπορεί να είναι δεσµευµένες λέξεις (όπως π.χ. VAL ή IF που χρησιµοποιούνται από τη VB)

Σηµείωση: Οι κανόνες που σηµειώνονται παραπάνω, εφαρµόζονται επίσης στα ονόµατα των στοιχείων σε µια φόρµα. Η δήλωση DIM χρησιµοποιείται για να δηλώσει µεταβλητές στη VB. Σύνταξη της DIM: DIM < όνοµα µεταβλητής > as < τύπος µεταβλητής > Παραδείγµατα δήλωσης µεταβλητών: µεταβλητή inNum1, τύπος Integer (ακέραιος) µεταβλητή strName, τύπος String (αλφαριθµητικό) µεταβλητή curTotalAmount, τύπος Currency (νόµισµα)

DIM inNum1 as Integer DIM strName as String DIM curTotalAmount as Currency

∆ηλώνοντας µια σταθερά (CONSTANT) Οι σταθερές είναι δηλώνονται πάντα χρησιµοποιώντας τη λέξη-κλειδί CONST. Σε µια σταθερά µεταβλητή δίνετε όνοµα, τύπο και τιµή. Μόλις η τιµή έχει χαρακτηριστεί ως σταθερή, δεν µπορεί ποτέ να αλλάξει και πάλι στο πρόγραµµα. Εάν προσπαθήσετε να αλλάξετε µια σταθερά θα προκληθεί ένα σφάλµα. Οι κανόνες ονοµατολογίας ισχύουν επίσης για τις µεταβλητές σταθερές. Σύνταξη: DIM < όνοµα σταθεράς > as < τύπος > = Παραδείγµατα:

DIM sngPI as Single = 3.14 DIM curTaxRate as Currency = .08

Επώνυµες Σταθερές (NAMED CONSTANTS) - Αυτές είναι οι σταθερές τους δίνετε εσείς όνοµα µαζί µε τη λέξη-κλειδί CONST. Επώνυµες σταθερές µπορεί να είναι µε τη µορφή που αριθµητικών (numeric) και αλφαριθµητικών (string) σταθερών. Αριθµητικές Σταθερές (NUMERIC CONSTANTS) – Σταθερές οι τιµές των οποίων µπορούν να περιέχουν µόνο αριθµητικά ψηφία και µια τελεία δεκαδικών ψηφίων. Αλφαριθµητικές Σταθερές (STRING CONSTANTS) - Σταθερές ότι µπορούν να περιέχουν γράµµατα, αριθµούς και ειδικούς χαρακτήρες, όπως#$%^&*. Οι αλφαριθµητικές σταθερές πρέπει να περικλείονται σε διπλά εισαγωγικά. Σταθερές συστήµατος (INSTRINCT CONSTANTS) – Σταθερές του συστήµατος οι οποίες βρίσκονται µέσα στη VB. Παραδείγµατα τέτοιων σταθερών είναι: • vbRed • vbGreen • vbBlue • Checked • vbYellow • UnChecked

Εµβέλεια των µεταβλητών Η εµβέλεια (Scope) – Είναι ένας όρος ο οποίος χρησιµοποιείται για την ορατότητα των µεταβλητών. ∆ιάρκεια ζωής (Lifetime) – Η διάρκεια για την οποία οι µεταβλητές υπάρχουν µέσα στο πρόγραµµα.

3 Επίπεδα εµβέλειας Καθολικές µεταβλητές (Global Variable) – Μεταβλητές προσπελάσιµες παντού στη, σε κάθε φόρµα που είναι τµήµα του έργου (project). Μεταβλητές επιπέδου µονάδας (Module-Level) – Μεταβλητές οι οποίες είναι προσπελάσιµες σε όλες τις µεθόδους στη φόρµα που δηλώνονται. Τοπικές µεταβλητές – Μεταβλητές προσπελάσιµες µόνο στη µέθοδο στην οποία δηλώνονται.

Ιδιότητες (PROPERTIES) Ιδιότητα Default - επιλέγει αυτόµατα ένα κουµπί εντολών όταν ο χρήστης πατήσει το κλειδί . Για να κάνετε ένα κουµπί ένα προεπιλεγµένο κουµπί, θέτετε την ιδιότητα του DEFAULT σε TRUE. Μόνο ένα κουµπί ανά φόρµα µπορεί να έχει τη ιδιότητα του Default σε TRUE. Όταν το πρόγραµµα εκτελείται, αυτό το κουµπί θα φωτιστεί. Ιδιότητα Cancel – Το κουµπί που είναι επιλεγµένο όταν ο χρήστης πατήσει το κλειδί. Για να ορίσετε ένα κουµπί για να ακυρώσετε το πρόγραµµα, θέστε την ιδιότητά του CANCEL σε TRUE. Μόνο ένα κουµπί ανά φόρµα µπορεί να έχει το κουµπί ακύρωσης που να ισχύει. Ιδιότητα TabStop – Αναπαριστά όλα τα στοιχεία ελέγχου σε µια φόρµα που µπορούν να εστιασθούν. Αν η ιδιότητα TabStop έχει τεθεί σε TRUE, ένα στοιχείο ελέγχου µπορεί να λάβει την εστίαση. Εάν είναι FALSE, τότε δεν µπορεί. Ορισµένοι στοιχεία ελέγχου λαµβάνουν εστίαση, άλλα δεν Πλαίσια κειµένου και κουµπιά µπορούν να λάβουν Ετικέτες και Εικόνες και δεν µπορούν να έχουν την εστίαση.

µπορούν. εστίαση.

TabIndex – Καθορίζει τη σειρά εστίασης καθώς ο χρήστης πατά το κλειδί . Name (όνοµα) - Χρησιµοποιείται για την εκχώρηση του ονόµατος σε ένα στοιχείο ελέγχου, όπως είναι γνωστό στο έργο. Caption (Λεζάντα) - Η ετικέτα που εµφανίζεται δίπλα ή στην κορυφή του στοιχείου ελέγχου, όταν πηγαίνουµε πάνω του µε το ποντίκι. BackColor

(Χρώµα

Φόντου)

-

το

χρώµα

στο

φόντο

του

στοιχείου

ελέγχου.

ForeColor (Μπροστινό Χρώµα) - Το χρώµα για το κείµενο που εµφανίζεται πάνω ή δίπλα από τα στοιχεία ελέγχου. Text (Κείµενο) – Το κείµενο που εµφανίζεται σε ένα πλαίσιο κειµένου. Alignment (Στοίχιση) – Καθορίζει τη στοίχιση του κειµένου στην ετικέτα (Label) ή στο πλαίσιο κειµένου (Text Box)

• 0 - Left – αριστερή στοίχιση • 1 - Right – δεξιά • 2 - Center –στο κέντρο MultiLine – Επιτρέπει σε ένα αλφαριθµητικό να απλώνεται σε περισσότερες από µια γραµµές. Font – Σας επιτρέπει να ορίσετε την εµφάνιση του κειµένου (γραµµατοσειρά και µέγεθος) σε ένα στοιχείο ελέγχου. Visible – Ιδιότητα που χρησιµοποιείται για να κάνει ένα στοιχείο ελέγχου ορατό ή αόρατο.

lblTotal.Visible = True 'label w ill be displayed on the form. lblTotal.Visible = False 'label w ill not be displayed on the form.

FillStyle – Κυρίως χρησιµοποιείται σε σχήµατα, χρησιµοποιείται για την κάλυψη του σχήµατος. ∆ιαφορές επιλογές είναι διαθέσιµες. • 0 - Solid - Στερεά • 1 - Transparent - ∆ιαφανές • 2 - Horizontal Line – Οριζόντιες γραµµές • 3 - Vertical Line - Κατακόρυφες γραµµές • 4 - Upward Diagonal – Ανοδικές διαγώνια • 5 - Downward Diagonal – Καθοδικές διαγώνια • 6 - Cross - Σταυροί • 7 - Diagonal Cross – ∆ιαγώνιοι σταυροί Παραδείγµατα χρήσης: Square.FillStyle = 0 Square.FillStyle = 8

Κουµπιά επιλογών (Option Buttons)... Μορφοποίηση (Formats) Option Buttons – Ένα σύνολο από στοιχεία ελέγχου από τα οποία µόνο ένα µπορεί να επιλεχθεί κάθε φορά. Check Boxes - Ένα σύνολο από στοιχεία ελέγχου από τα οποία ένα ή και περισσότερα µπορούν να επιλεχθούν. Frame – Ένα στοιχείο ελέγχου που συχνά δρα σας δοχείο για ένα σύνολο από κουµπιά επιλογής. Image – Στοιχείο ελέγχου που χρησιµοποιείται να κρατά ένα γραφικό (εικόνα). Shape – Στοιχείο ελέγχου που χρησιµοποιείται για να κρατά σχήµατα, όπως τρίγωνα, τετράγωνα και κύκλους σε µια φόρµα.

Κουµπί επιλογής (OPTION BUTTONS) Η ιδιότητα VALUE στο κουµπί επιλογής έχει την τιµή TRUE αν θέλετε που θα επιλεγµένο, αλλιώς, FALSE. Ρυθµίστε την ιδιότητα CAPTION (λεζάντα) στα κουµπιά επιλογής µε το κείµενο που θέλετε να φαίνεται δίπλα στο κουµπί επιλογής. Όταν εκχωρείτε όνοµα σε ένα κουµπί επιλογής, το όνοµα µεταβλητής ξεκινά µε το πρόθεµα opt. Αν θέλετε ένα γεγονός να συµβεί όταν κάνετε κλικ σε ένα κουµπί επιλογής, µπορείτε να κάνετε διπλό κλικ στο κουµπί επιλογής σας από τη φόρµα για να εισάγετε τον κώδικα που θέλετε να εκτελεστεί.

Κουµπί επιλογών (CHECK BOXES) Περισσότερα από ένα πλαίσια επιλογών µπορούν να επιλεχθούν κάθε φορά. Η ιδιότητα VALUE σε ένα κουµπί επιλογών τίθεται σε CHECKED αν θέλετε να είναι επιλεγµένο, διαφορετικά, τίθεται σε UNCHECKED για να µην είναι επιλεγµένο. Μια δεύτερη επιλογή είναι να θέτετε την ιδιότητα VALUE στα πλαίσια επιλογής σε 0, 1 ή 2. • 0 - UnChecked – µη επιλεγµένο • 1 - Checked - επιλεγµένο • 2 - Grayed - µισό-επιλεγµένο Θέστε την ιδιότητα CAPTION να έχει το κείµενο που επιθυµείτε να εµφανίζει δίπλα στο πλαίσιο επιλογής. Όταν εκχωρείτε όνοµα σε ένα κουµπί επιλογών, αυτό θα πρέπει να ξεκινά µε το πρόθεµα chk. Αν θέλετε ένα γεγονός να συµβεί όταν πατάτε σε ένα πλαίσιο επιλογής πατήστε διπλό click για να τοποθετήσετε τον κώδικα από πίσω.

Εικόνες (IMAGES) Κάντε κλικ πάνω στην ιδιότητα PICTURE των εικόνων και εντοπίστε το φάκελο στο δίσκο όπου βρίσκεται η εικόνα σας. Επιλέξτε την εικόνα που θέλετε, και αυτή θα τοποθετηθεί στη φόρµα σας. Αν ορίσετε την ιδιότητα STRECH της εικόνας σε TRUE, αυτό θα αλλάξει το µέγεθος της εικόνας στο µέγεθος του στοιχείου ελέγχου που ορίζεται στη φόρµα. Όλα τα στοιχεία ελέγχου που είναι εικόνες θα πρέπει να αρχίσει µε το πρόθεµα img.

Σχήµατα (SHAPES) Ο τύπος των σχηµάτων και οι κωδικοί τους εµφανίζονται παρακάτω: • 0 - Rectangle - Τρίγωνο • 1 - Square - Τετράγωνο • 2 - Oval – Οβάλ, έλλειψη • 3 - Circle - Κύκλος • 4 - Rounded Rectangle – Στρογγυλοποιηµένο ορθογώνιο • 5 - Rounded Square - Στρογγυλοποιηµένο τετράγωνο Όλα τα στοιχεία ελέγχου πρέπει να ξεκινούν µε το πρόθεµα shp.

Γραµµές (LINES) Χρησιµοποιήστε το δείκτη για να σύρετε µια γραµµή σε ολόκληρη την οθόνη. Μπορείτε να στρέψετε τη γραµµή προς οποιαδήποτε κατεύθυνση και τεντώστε τη µέχρι να αφήσετε το κουµπί µετακίνησης. Όλες οι γραµµές θα πρέπει να αρχίσει σύµφωνα µε το πρόθεµα lin.

Καθορίζοντας την εστίαση (Focus) Focus - Αναφέρεται στο τρέχον επιλεγµένο στοιχείο ελέγχου στη φόρµα. Αυτό µπορεί να υποδεικνύεται από µια | γραµµή στα πλαίσια κειµένου, από επιλεγµένο κείµενο, τονισµένη λεζάντα ή ένα διακεκοµµένο σύνορο. Το στοιχείο έλεγχος που έχει την εστίαση είναι έτοιµο για λήψη στοιχείων, είναι αυτό που λαµβάνει στοιχεία από το χρήστη κάθε φορά. SetFocus – Είναι µια ενσωµατωµένη λειτουργία η οποία όταν θα εκτελεστεί θα µετακινήσει τον κέρσορα στο στοιχείο ελέγχου και θα του δόση την εστίαση. Η µέθοδος αυτή (SetFocus) µπορεί να χρησιµοποιηθεί µε πλαίσια κειµένου, κουµπιά, κουµπιά επιλογής και κουµπιά επιλογών. Παραδείγµατα χρήσης της setFocus: txtNum1.setFocus 'w ill place cursor in the text box. cmdCalc.setFocus 'w ill hilight this command button. optBlue.setFocus 'w ill put dotted lines around this opt button.

∆ουλεύοντας µε αλφαριθµητικά (Strings) Συνένωση (Concatenation) - Αναφέρεται επίσης στο συνδυασµό δύο ή περισσότερων µικρότερων αλφαριθµητικών σε ένα µεγαλύτερο αλφαριθµητικό (string). Στη VB, µπορείτε είτε να χρησιµοποιήσετε τα σύµβολα + ή & για να τα ενώσετε. Παραδείγµατα συνένωσης: StrFirstName + " " + strMiddleInitial + ". " + StrLastName StrFirstName & " " + strMiddleInitial & ". " + StrLastName

Μορφοποιήσεις (Formats) Κεντράροντας µια φόρµα στη µέση της οθόνης: (Αυτός ο κώδικας τοποθετηµένος στη µέθοδο FORM LOAD (η οποία θα δηµιουργηθεί πατώντας διπλό κλικ οπουδήποτε µέσα στη φόρµα) θα κεντράρει τη φόρµα σας στην οθόνη)

< όνοµα της φόρµας > .Top = (Screen.Height - < όνοµα της φόρµας > .Height)/2 < όνοµα της φόρµας > .Left = (Screen.Width - < όνοµα της φόρµας > .Width)/2 < όνοµα της φόρµας > - Αυτό είναι το πραγµατικό όνοµα της φόρµας σας, όπως το έχετε σώσει στο πρόγραµµά σας. Αν ονοµάσατε τη φόρµα σας "myForm" τότε θα έχετε τον ακόλουθο κώδικα για να κεντράρετε τη “myForm” :

myForm.Top = (Screen.Height - myForm.Height)/2 myForm.Left = (Screen.Height - myForm.Width)/2

Πεδία εισαγωγής (Input Boxes), µηνύµατα (Message) και πεδία από λίστες (List Boxes) Input Box (πεδίο εισαγωγής) – Αυτή είναι µια συνάρτηση η οποία θα εµφανίζει ένα µήνυµα και θα επιτρέπει στο χρήστη να εισάγει πληροφορία σε ένα πεδίο κειµένου. Στο πεδίο εισαγωγής µπορείτε να εµφανίζετε ένα µήνυµα που λέγετε προτροπή. Το µήνυµα προτροπής (prompt) που εµφανίζεται βοηθάει τον χρήστη να συµπληρώσει το πεδίο κειµένου. Το πεδίο εισαγωγής έχει ένα πεδίο κειµένου, µε το µήνυµα προτροπής και δύο πλήκτρα (ΟΚ και CANCEL - Αναίρεση). Με το πλήκτρο ΟΚ, το πλαίσιο εισαγωγής καταχωρεί το κείµενο που συµπλήρωσε ο χρήστης στην µεταβλητή, της οποίας το όνοµα εµφανίζεται στα αριστερά από το σύµβολο ‘=’. Με το πλήκτρο Αναίρεση η εφαρµογή αγνοεί το κείµενο που έχει συµπληρωθεί στο πεδίο και επαναφέρει τον χρήστη στην φόρµα. Τα πεδία εισαγωγής χρησιµοποιούνται συνήθως για την ανάκτηση εγγραφών από αρχεία. VariableName = InputBox("Prompt","Title") Παραδείγµατα: StrName = InputBox("Enter your name", "bs0d") StrCareer = InputBox("Enter your w orkplace", "AllSyntax.com")

Το µήνυµα προτροπής πρέπει να περιέχεται σε διπλά εισαγωγικά (“). Οι τίτλοι των πεδίων πρέπει επίσης να περιέχονται σε διπλά εισαγωγικά και να εµφανίζονται στην µπάρα Τίτλου του πεδίου εισαγωγής. Αν ο χρήστης δεν συµπληρώσει τον τίτλο για το πεδίο, στην µπάρα Τίτλου εµφανίζεται το όνοµα του έργου. Τα πλαίσια εισαγωγής µπορούν να εµφανίζονται στα παρακάτω: • Form_Load • Πλήκτρα Εντολών • Πλήκτρα Επιλογών • Κουτιά Επιλογής (CheckBox)

Form Load Form_Load – Κώδικας που εκτελείται όταν φορτώνεται το έργο. Την πρώτη φορά που εµφανίζεται µία φόρµα µέσα στο έργο, η γλώσσα VB παράγει ένα γεγονός τύπου FORM_LOAD. Κατόπιν εκτελείται ο κώδικας της συνάρτησης Form_Load. Η λειτουργικότητα που µπορεί να υλοποιείται στο FORM_LOAD τµήµα του κώδικα ενός προγράµµατος VB, περιλαµβάνει τα παρακάτω: • Κώδικας που θέτει την φόρµα στο κέντρο της οθόνης • Κώδικας που αρχικοποιεί µεταβλητές • Κώδικας που αρχικοποιεί πλαίσια εισαγωγής • Εµφάνιση πληροφορίας στις ετικέτες της φόρµας Για να προσθέσετε κώδικα στη συνάρτηση του γεγονότος FORM_LOAD, κάντε διπλό κλικ στην κενή περιοχή της φόρµας. Ο κώδικας του γεγονότος περικλείεται από τις παρακάτω γραµµές δεσµευµένων λέξεων: Private Sub Form_Load() < Place Code Here > End Sub Παράδειγµα κώδικα του γεγονότος FORM_LOAD: Private Sub Form_Load() InputBoxes.Top = Screen.Height - InputBoxes.Height)/2 InputBoxes.Left = Screen.Width - InputBoxes.Width)/2 StrName = InputBox("Enter your name", " Title Bar Text.") LblName = StrName

Πεδία Μηνυµάτων και Πεδία Λιστών Πλαίσιο Μηνύµατος – Ειδικού τύπου δήλωση/συνάρτηση της γλώσσας VB, µε την οποία η εφαρµογή εµφανίζει ένα µήνυµα στον χρήστη µέσα σε ένα πλαίσιο. Μπορεί να είναι είτε δήλωση είτε συνάρτηση και έχει το όνοµα MsgBox. Ένα Πλαίσιο Μηνύµατος µπορεί να περιέχει τα παρακάτω: • Μήνυµα • Εικονίδιο • Τίτλο • Κουµπιά Εντολών

∆ήλωση Πλαισίου Μηνύµατος Η δήλωση ενός Πλαισίου Μηνύµατος καταλαµβάνει µία γραµµή. Το συντακτικό της έχεις ως εξής: MsgBox < "Μήνυµα Προτροπής" > , < Πλήκτρα/Εικονίδια > , < "Τίτλος" >

MsgBox "AllSyntax.com is a great site!",vbInformation, "AllSyntax.com"

Μήνυµα Προτροπής – Το κείµενο που θα εµφανίζεται στο πλαίσιο. Κουµπιά/Εικονίδια – Τα κουµπιά εντολών και τα εικονίδια που θα εµφανίζονται στο κάτω µέρος του πλαισίου (προαιρετικά). Τίτλο – Το κείµενο που εµφανίζεται στην µπάρα Τίτλου στο παράθυρο του πλαισίου.

Συνάρτηση Πλαισίου Μηνύµατος Η συνάρτηση Πλαισίου Μηνύµατος εµφανίζεται στο δεξί µέρος του συµβόλου ίσον (=). Αν το Πλαίσιο Μηνύµατος οριστεί σε συνάρτηση, τα ορίσµατα της πρέπει να περικλείονται από παρενθέσεις ‘(‘ και ‘)’. Όνοµα Μεταβλητής = MsgBox( < "Μήνυµα Προτροπής" > , < Πλήκτρα/Εικονίδια > , < "Τίτλος" > )

IntRes = MsgBox("Are my fingers tired?", vbYesNo + vbQuestion,"My Question")

Παράδειγµα Κώδικα Πλαισίων Μηνυµάτων:

Private Sub cmdCheck_Click() If val(txtNum1) > val(txtNum2) Then MsgBox "First Number is greater than second", vbInformation, "Comparing Numbers" ElseIf val(txtNum2) > val(txtNum1) Then MsgBox "Second Number is greater than the first", vbInformation, "Comparing Numbers" Else MsgBox "The tw o numbers are equal", vbInformation, "Comparing Numbers" End If End Sub

Πεδία Λιστών Πεδίο Λίστας – Είδος πεδίου που εµφανίζει µία λίστα αντικειµένων, από τα οποία ο χρήστης µπορεί να επιλέξει ένα κάνοντας κλικ πάνω σε αυτό. Για να δηλώστε ένα πλαίσιο λίστας πρέπει να χρησιµοποιήσετε το πρόθεµα lst.

Μπορείτε να προσθέσετε αντικείµενα στο πλαίσιο λίστας µε δύο τρόπους. Χρησιµοποιώντας την µεταβλητή LIST του πλαισίου. Χρησιµοποιώντας τη µέθοδο AddItem. < όνοµα_αντικειµένου > .AddItem < τιµή > Αν οι τιµές των αντικειµένων είναι τύπου συµβολοσειράς, πρέπει να περικλείονται σε διπλά εισαγωγικά. Όταν ένα αντικείµενο προστίθεται στη λίστα, του ανατίθεται ένας αύξων αριθµός. Το πρώτο αντικείµενο έχει α/α 0, το δεύτερο 1 κλπ. Παράδειγµα προσθήκης αντικειµένων σε Πεδίο Λίστας:

lstSchools.AddItem "Harvard" lstSchools.Additem "Yale" lstSchools.Additem "Princeton" lstSchools.Additem "Brow n" lstSchools.Additem "Cornell" lstSchools.ListIndex = 3

Το επιλεγµένο αντικείµενο της λίστας είναι το “Brown”. Το αντικείµενο “Harvard” θα έχει α/α 0, το αντικείµενο “Yale” θα έχει α/α 1 κ.λ.π.

Ιδιότητα ListIndex Η ιδιότητα ListIndex δηλώνει το επιλεγµένο αντικείµενο της λίστας κατά την εκτέλεση της εφαρµογής. Με αυτήν µπορεί κανείς να θέσει σαν επιλεγµένο αντικείµενο µόνον ένα από τα αντικείµενα της λίστας. Η χρήση της µεταβλητής παρουσιάζεται στο παρακάτω παράδειγµα: < πεδίο > .ListIndex = 3 'Επιλέγει το 4ο αντικείµενο της λίστας.

lstSchools.ListIndex = 3 'This w ill highlight the 4th school in lstSchools.

Ιδιότητα Sorted: Θέτοντας την Ιδιότητα SORTED στην τιµή αληθές (TRUE), τα αντικείµενα της λίστας ταξινοµούνται κατά αλφαβητική σειρά. Αυτό σηµαίνει ότι αλλάζει και η σειρά τους µέσα στη λίστα, δηλαδή ο αύξων αριθµός τους. Χρησιµοποιώντας τη µεταβλητή ListIndex θα αλλάξει το επιλεγµένο αντικείµενο της λίστας.

Μέθοδος Clear: Η µέθοδος καθαρίζει τη λίστα αντικειµένων του πεδίου Λίστας.

< πεδίο > .Clear

lstSchools.Clear

Μέθοδος RemoveItem ∆ιαγράφει ένα αντικείµενο από τη λίστα. Παίρνει σαν όρισµα τον αύξοντα αριθµό του αντικειµένου προς διαγραφή. < πεδίο > .RemoveItem < αύξων αριθµός >

LstSchools.RemoveItem 3

Αυτό θα αφαιρέσει από τη λίστα το στοιχείο µε δείκτη 3, αυτό είναι το τέταρτο στοιχείο της λίστας (αφού η αρίθµηση ξεκινά από το µηδέν). ListCount – Η ιδιότητα ListCount χρησιµοποιείται για να κρατά το πλήθος των στοιχείων στη λίστα. Το ListCount θα είναι πάντα κατά ένα µεγαλύτερο από το στοιχείο µε το υψηλότερο δείκτη στη λίστα.

Υπο–∆ιαδικασίες (Sub Procedures), Τυχαίοι αριθµοί (Random Numbers) Procedure (διαδικασία) - Μια µονάδα του κώδικα που εκτελεί µια συγκεκριµένη εργασία και µπορεί να κληθεί από άλλες τοποθεσίες του προγράµµατος.

Σκοπός των ∆ιαδικασιών: • • • •

Χωρίζουν µεγάλα τµήµατα κώδικα σε µικρότερες µονάδες κώδικα για την εκτέλεση µιας συγκεκριµένης εργασίας. ∆ιευκολύνουν την εκσφαλµάτωση (debug) και τη συντήρηση του προγράµµατος ∆ιαιρούν το ποσό του κώδικα που πρέπει να γραφτεί και α Μειώνει στο ποσό του κώδικα που πρέπει να είναι γραφτεί και εξαλείφει την επικάλυψη του κώδικα.

Τύποι ∆ιαδικασιών: Υπο-διαδικασίες (Sub Procedure) – Είναι µια διαδικασία η οποία εκτελεί µια εργασία αλλά ∆ΕΝ επιστρέφει τιµή στη µονάδα που την καλεί.

Συναρτησιακή ∆ιαδικασία (Function Procedure) - Μια διαδικασία η οποία εκτελεί µια εργασία και επιστρέφει µια τιµή πίσω στη µονάδα που την κάλεσε. Με συναρτησιακές διαδικασίες, η τιµή επιστρέφεται πίσω στη µονάδα που την καλεί χρησιµοποιώντας το όνοµα της συνάρτησης.

∆ηµιουργώντας µια νέα Υπο-∆ιαδικασία 1. 2. 3. 4. 5. 6. 7.

Εµφανίστε το παράθυρο µε τον κώδικα της φόρµας Επιλέξτε ADD PROCEDURE από το µενού TOOLS ή "Εργαλεία" Εισάγετε το όνοµα της διαδικασίας στο πεδίο κειµένου όπου λέει ΝΑΜΕ Επιλέξτε PRIVATE για ιδιωτική εµβέλεια (εκεί που λέει scope) Κάντε κλικ στο OK Έτσι θα σας δοθεί το ‘κέλυφος’ της διαδικασίας. Πληκτρολογήστε µέσα το περιεχόµενο της διαδικασίας, αυτό που θέλετε να κάνει. Κάντε κλικ στο κουµπί κώδικα για να βγείτε από την διαδικασία

Παράδειγµα µια υπο-διαδικασίας:

Private Sub AddNumbers() Sum = val(txtNum1) + val(txtNum2) LblSum = Sum End Sub

Παράδειγµα κλήσης µιας υπο-διαδικασίας: Private Sub cmdCalculate_Click() AddNumbers End Sub

Παράδειγµα µιας συναρτησιακής διαδικασίας:

Private Function AddNumbers() AddNumbers = val(txtNum1) + val(txtNum2) End Function

Παράδειγµα κλήσης µιας συναρτησιακής διαδικασίας:

Private Sub cmdCalculate_Click() LblSum = AddNumbers() End Sub

∆ήλωση WITH Η λέξη κλειδί WITH σας επιτρέπει να περιορίσετε τη γραφή κώδικα όταν ασχολείστε µε τις ιδιότητες των στοιχείων ελέγχου. Παράδειγµα δήλωσης WITH: With < control > .< ιδιότητα1> = < τιµή1 > .< ιδιότητα 2> = < τιµή2 > .< ιδιότητα 3> = < τιµή3 > End With Αναθέτοντας στοιχεία ελέγχου χωρίς τη χρήση της δήλωσης WITH: lblEmployee.Font.Name = dlgCommon.FontName lblEmployee.Font.Bold = dlgCommon.FontBold lblEmployee.Font.Italic = dlgCommon.FontItalic

Αναθέτοντας στοιχεία ελέγχου µε τη χρήση της δήλωσης WITH: With lblEmployee.Font .Name = dlgCommon.FontName .Bold = dlgCommon.FontBold .Italic = dlgCommon.FontItalic End With

Συνήθη στοιχεία ελέγχου διαλόγων (COMMON DIALOG CONTROL) Επιτρέπει στο έργο σας χρησιµοποιήσετε τα παράθυρα διαλόγου που παρέχονται ως µέρος του περιβάλλοντος των Windows για να ρυθµίσετε τις ιδιότητες για τα στοιχεία ελέγχου, όπως γραµµατοσειρά, µέγεθος και χρώµα.

Χαρακτηριστικά του στοιχείου ελέγχου διαλόγου (DIALOG CONTROL) • •

Χρειάζεστε συνήθη διαλογικά στοιχεία ελέγχου στη φόρµα σας ∆εν µπορείτε να αλλάξετε το µέγεθος των στοιχείων ελέγχου

• • • • •

Η θέση των στοιχείων ελέγχου δεν έχει σηµασία Το στοιχείο ελέγχου θα είναι ορατό όταν το πρόγραµµα θα εκτελεστεί. ∆ιαλογικά στοιχεία ελέγχου (Dialog controls) αποθηκεύονται στο δίσκο µε την κατάληξη .ocx Όταν ονοµάζετε διαλογικά στοιχεία ελέγχου (Dialog controls), ξεκινήστε µε το πρόθεµα dlg Το σύνηθες διαλογικό παράθυρο µπορεί να µην εµφανίζεται στην εργαλειοθήκη σας. Είναι ένα σύνηθες στοιχείο ελέγχου και θα πρέπει να προστεθεί στο έργο σας προτού τα χρησιµοποιήσετε.

Ανακτώντας τα συνήθη διαλογικά στοιχεία ελέγχου (αν δεν υπάρχουν ήδη) 1. 2. 3. 4. 5. 6.

κλικ στο Project κλικ στο Components κυλήστε προς τα κάτω και βρείτε τα Microsoft Common Dialog Control 6.0 κλικ στο πεδίο επιλογής που βρίσκεται δίπλα του και επιλέξτε το κλικ στο OK αυτό θα τοποθετηθεί στην εργαλειοθήκη σας κάντε κλικ στο Dialog Control και σείρτε το και τοποθετήστε το στη φόρµα σας.

Αλλάζοντας τις γραµµατοσειρές (FONTS) Παράδειγµα σύνταξης για να θέσετε τις γραµµατοσειρές: With dlgCommon (υποθέτοντας ότι έτσι το ονοµάσατε) .Flags = cdlCFScreenFonts ‘Φορτώνει διαφορετικές γραµµατοσειρές στη µνήµη .ShowFont End With

With txtName.Font .Bold = dlgCommon.FontBold .Italic = dlgCommon.FontItalic .Name = dlgCommon.FontName .Size = dlgCommon.FontSize End With

Αλλάζοντας τα χρώµατα Παράδειγµα σύνταξης για την αλλαγή χρώµατος: dlgCommon.Show Color 'Brings up the color box txtName.ForeColor = dlgCommon.Color 'Applies it to the font

ΤΥΧΑΙΟΙ ΑΡΙΘΜΟΙ Rnd – Παράγει έναν τυχαίο αριθµό µεταξύ 0 και 1. Randomize – Ενηµερώνει τη VB να παράγει τυχαία αριθµούς για τη δήλωση rnd. Χρησιµοποιώντας το randomize, θα επιτρέψει στη δήλωση rnd να παράγει έναν εντελώς τυχαίο σύνολο αριθµών, οι οποίοι δεν ακολουθούν κανένα αναγνωρίσιµο µοτίβο. Παραγωγή Αριθµών µεταξύ 1 και 10: Num = Int((10 - 1 + 1)* rnd + 1)

Παραγωγή Αριθµών µεταξύ 1 και 100: Num = Int((100 - 10 + 1)* rnd + 1)

INT() ΛΕΙΤΟΥΡΓΙΑ Μετατρέπει ένα σηµείο µεταβλητής τιµής (floating point value) σε έναν ακέραιο αριθµό µε το να αφαιρεί οποιοδήποτε υπόλοιπο έχει αυτός ο αριθµός. INT(4.656) θα επιστρέψει τιµή ύψους 4.

Μενού, Αναδυόµενες Λίστες (Combo Boxes) και Χρώµατα (QB Color) Μενού – Μια αναδυόµενη λίστα από αντικείµενα που προβάλλονται κάτω από ένα όνοµα µενού στην οθόνη, από τα οποία επιλέγετε ένα στοιχείο. Τόσο στα Windows όσο και στο VB, ένα µενού αποτελείται από µία µπάρα (menu bar) µε ονόµατα (menu names), καθεµία από τις οποίες αναδύεται, ώστε να προβάλει µια λίστα από εντολές. Μπορείτε να χρησιµοποιείτε τις εντολές του µενού στη θέση ή σε αντίθεση µε τα κουµπιά εντολών, ώστε να ενεργοποιήσετε µια διαδικασία. Οι εντολές του Μενού είναι στην πραγµατικότητα στοιχεία ελέγχου (controls) και έχουν γεγονότα (events) και ιδιότητες. Κάθε εντολή Μενού έχει µια Ονοµαστική ιδιότητα (Name property) και ένα κλικ γεγονός, παρόµοιο µε το κουµπί εντολής. Για να δηµιουργήσετε ένα µενού για τη φόρµα σας, θα χρησιµοποιήσετε τον Επεξεργαστή Μενού της Visual Basic, ο οποίος είναι προσπελάσιµος πατώντας < CTRL > + E ή πατώντας το Εικονίδιο Επεξεργασίας Μενού.

ΜΕΡΗ ΤΟΥ ΜΕΝΟΥ Caption (Λεζάντα) - Συγκρατεί τις λέξεις που θέλετε να εµφανίζονται στην οθόνη. Name (Όνοµα) - Προσδιορίζει το όνοµα του στοιχείου ελέγχου µενού και πως αναφέρεται το στοιχείο ελέγχου αυτό από το πρόγραµµα. Κατά την ονοµατοδοσία, ξεκινήστε µε το πρόθεµα "mnu". Για παράδειγµα, αν είχατε έναν έλεγχο µενού για “file”, θα το ονοµάζατε, "mnuFile". ΥΠΟΜΕΝΟΥ (SUBMENU) - Ο κατάλογος των εντολών που εµφανίζεται κάτω από µια εντολή µενού, (ένα µενού σε ένα µενού). Για να δηµιουργήσετε ένα υποµενού, πατήστε το δεξί πλήκτρο βέλους για να µετακινηθείτε στο επόµενο επίπεδο. Λίστα Επιλογών του Μενού (Menu List Box) - Εµφανίζει τη λίστα µε όλα τα στοιχεία µενού που έχουν δηµιουργηθεί, καθώς και την ένδειξη επίπεδων. Μπορείτε να µετακινηθείτε πάνω, κάτω, αριστερά και δεξιά, κάνοντας κλικ στο όνοµα του στοιχείου µενού και στη συνέχεια κάνοντας κλικ σε ένα από τα τέσσερα κουµπιά βέλος. ∆ιαχωριστικές Μπάρες (Separator Bars) – Μία Οριζόντια γραµµή που χωρίζει το ένα µενού από το άλλο. Για να ορίσετε µια διαχωριστική µπάρα, πληκτρολογήστε µια µονή παύλα (-) για τη λεζάντα και δώστε του ένα όνοµα. Παρότι δεν µπορείτε ποτέ να αναφέρετε τη διαχωριστική µπάρα στον κώδικα, θα πρέπει παρόλα αυτά να του δώσετε ένα όνοµα. Αν έχετε περισσότερες από µία διαχωριστικές µπάρες, κάθε µία πρέπει να έχει ένα µοναδικό όνοµα (mnuSep1, mnuSep2, ... κλπ.). Πλήκτρα Συντόµευσης (Shortcut Keys) - Μπορείτε να δηµιουργήσετε µια συντόµευση πληκτρολογίου για ένα βασικό στοιχείο του µενού όταν το δηµιούργησε. Επιλέξτε ένα πλήκτρο συντόµευσης για το στοιχείο µενού, επιλέγοντάς το από τη λίστα που παρέχεται. Ο σκοπός των συντοµεύσεων είναι να προσφέρει µια εναλλακτική λύση για διαλογή µέσω µενού, ώστε να εκτελεί ένα ενιαίο έργο. Checked (Επιλεγµένο) - Αν θέλετε να εµφανίζεται ένα σηµάδι ελέγχου δίπλα σε ένα στοιχείο στο µενού σας, θα πρέπει να βάλετε ένα σηµάδι εκεί. Ελέγξτε τα σηµάδια αν είναι κανονικά για τις επιλογές που θέλετε να ανάβουν και να σβήνουν. Enabled (Ενεργοποιηµένο) - Εάν θέλετε ο χρήστης να µπορεί να επιλέξει ένα στοιχείο µενού, αυτό θα πρέπει να ελεγχθεί. Εξ’ ορισµού, όλα είναι ενεργοποιηµένα. Αν δεν ελεγχθεί, αυτό το στοιχείο µενού θα απενεργοποιηθεί. Μπορείτε επίσης να αλλάξετε αυτή την ιδιότητα στον κώδικα (mnuStar.Enabled = False). Visible (Ορατό) - Καθορίζει το αν ένα στοιχείο µενού προβάλλεται στην οθόνη ή όχι. Αν είναι τσεκαρισµένο το πλαίσιο ελέγχου, το στοιχείο µενού θα εµφανίζεται στην οθόνη. Αν το πλαίσιο δεν είναι τσεκαρισµένο, το στοιχείο µενού δε θα εµφανίζεται. Αυτή η ιδιότητα µπορεί επίσης να αλλάξει στον κώδικα (mnuStar.Visible = True). Insert (Εισαγωγή) - Κάντε κλικ σε αυτό, αν θέλετε να εισάγετε ένα στοιχείο στο µέσον ενός µενού. Το στοιχείο θα εισαχθεί στη θέση του τρέχοντος στοιχείου. Όλα τα στοιχεία κάτω από αυτό το σηµείο θα µετακινηθούν προς τα κάτω. Delete (∆ιαγραφή) - Θα διαγράψει το επιλεγµένο µενού. Η Ακύρωση θα κλείσει τον επεξεργαστή του µενού χωρίς να αποθηκεύσει τις αλλαγές, και το OK θα αποθηκεύσει τις αλλαγές στο µενού και θα κλείσει τον επεξεργαστή του µενού.

Αναδυόµενα Πεδία (COMBO BOXES) Combo Box - Ένα στοιχείο ελέγχου που χρησιµοποιείται ώστε να διατηρείται µία λίστα στοιχείων, από την οποία ο χρήστης επιλέγει ένα από ένα αναδυόµενο προς τα κάτω µενού.

∆ιαφορές µεταξύ του List Box και του Combo Box •

Με το List Box, δεν υπάρχει ανάδυση του µενού, οι χρήστες µετακινούνται στη λίστα χρησιµοποιώντας τις µπάρες κύλισης και επιλέγουν το στοιχείο της επιλογής τους. Με το Combo Box, ο χρήστης πρέπει να κάνει κλικ σε ένα βέλος, απ’ όπου εµφανίζεται ένα αναδυόµενο µενού και ο χρήστης επιλέγει πατώντας ένα αντικείµενο στον κατάλογο.



Μπορείτε να πληκτρολογήσετε τη δική σας καταχώρηση στη λίστα µε το Combo Box. Με το List Box, δεν µπορείτε να πληκτρολογείτε τις δικές σας καταχωρήσεις.

Όπως στα List Boxes, τα στοιχεία µπορούν να προστεθούν σε ένα Combo Box µε δύο τρόπους... • •

Χρησιµοποιώντας τη List property (ιδιότητα λίστας) Χρησιµοποιώντας τη µέθοδο AddItem (εισαγωγή στοιχείου)

Εισαγωγή στοιχείων στη λίστα, χρησιµοποιώντας την ιδιότητα λίστας (LIST PROPERTY) 1. 2. 3. 4. 5.

Μετακινηθείτε διαµέσου του παραθύρου ιδιοτήτων στην ιδιότητα ‘LIST΄ Πατήστε πάνω στο κάτω βέλος, για να µια κενή λίστα Πληκτρολογήστε το πρώτο στοιχείο και πατήστε < CTRL > < ENTER > Συνεχίστε εισάγοντας στοιχεία όπως περιγράφετε στο 3 ανωτέρω µέχρι να ολοκληρώσετε Πατήστε < ENTER > ή κλικάρετε εκτός του list box για να ολοκληρώσετε τη λειτουργία.

Πρόσθεση αντικειµένων στη λίστα, χρησιµοποιώντας τη µέθοδο εισαγωγής στοιχείων (ADDITEM) • •

∆ιπλό κλικ στη φόρµα για να ανοίξει το FORM_LOAD Εισάγετε τα στοιχεία, χρησιµοποιώντας την κάτωθι µορφοποίηση: < όνοµα αντικειµένου > .AddItem " < τιµή αντικειµένου > "

Πρόσθεση αντικειµένων στον Πίνακα Εισαγωγής Στοιχείων (ItemData ARRAY) < object_name > .AddItem " < Value > " < object_name > .ItemData(< object_name > .NewIndex) = < Value >

Εισαγωγή στοιχείων στη λίστα Ο κώδικας παρακάτω, θα εισάγει στοιχεία στη λίστα ενός Combo Box: cboSchool.AddItem "Harvard" cboSchool.AddItem "Yale" cboSchool.AddItem "Princeton" cboSchool.AddItem "Brow n" cboSchool.AddItem "Cornell"

Το Harvard θα έχει την ένδειξη 0, το Yale την ένδειξη 1 κλπ. Εισάγοντας Στοιχεία στον πίνακα ItemData ενός Combo Box...

cboOffice.AddItem "Paper" cboOffice.ItemData(cboOffice.New Index) cboOffice.AddItem "Cartrige" cboOffice.ItemData(cboOffice.New Index) cboOffice.AddItem "Folders" cboOffice.ItemData(cboOffice.New Index) cboOffice.AddItem "Binder" cboOffice.ItemData(cboOffice.New Index)

= 300 = 3200 = 250 = 400

Ιδιότητα Κειµένου (TEXT PROPERTY): Η Ιδιότητα κειµένου (Text property) αναφέρεται στο πραγµατικό αντικείµενο που είναι ήδη επιλεγµένο στη λίστα. < label > = < control > .Text lblFood = cboFood.Text

Το ListIndex λειτουργεί παρόµοια µε το List Boxes. Όµοια µε NewIndex, ItemData, Sorted, Clear, RemoveItem, ListCout... κλπ. Όταν δίνουµε όνοµα στα Combo Boxes, χρησιµοποιείστε το πρόθεµα, "cbo". Για παράδειγµα, αν θα θέλατε να ονοµάσετε ένα combo box “School”, θα το ονοµάζατε, cboSchool.

QB COLOR QBCOLOR - Είναι µια ενσωµατωµένη λειτουργία στο VB που προβάλει 15 διαφορετικά χρώµατα. Η λειτουργία QBCOLOR έχει µια παράµετρο, η οποία είναι η ένδειξη του χρώµατος που θα εµφανίζεται. Η ένδειξη µπορεί να κυµαίνεται σε αξίες από 0 έως 15. Εδώ είναι οι αξίες για σας:

-Index0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15

-ColorBlack Blue Green Cyan Red Magenta Yellow White Gray Light Blue Light Green Light Cyan Light Red Light Magenta Light Yellow Bright White

Παράδειγµα: ShpRectangle.FillColor = QBColor(1) ‘Will be show n in blue ShpCircle.FillColor = QBColor(6) ‘ Will be show n in yellow

Στοιχεία Ελέγχου Πίνακες (Control Arrays), Μπάρες Κύλισης (Scroll Bars) και Λειτουργία RGB (Red-Blue-Green RGB Function) Πίνακας (Array) - Μια οµάδα στοιχείων που αναφέρονται µε το ίδιο όνοµα. Στοιχείο Ελέγχου Πίνακα (Control Array) - Μια οµάδα ελέγχων που µοιράζονται το ίδιο όνοµα και διαδικασίες. ∆είκτης (Index) – Μια µεταβλητή που χρησιµοποιείται για να δηλώσει κάθε στοιχείο στο στοιχείο ελέγχου πίνακα. Τα Στοιχεία Ελέγχου Πίνακες µπορούν να χρησιµοποιηθούν µε τα ακόλουθα στοιχεία ελέγχου: • Πλαίσια Κειµένου (Text Boxes) • Κουµπιά Επιλογής (Option Buttons) • Πεδία Ελέγχου (Check Boxes) • Χαρακτηρισµοί (Labels)



Κουµπιά Εντολών (Command Buttons)

Τα Στοιχεία Ελέγχου Πίνακες χρησιµοποιούνται συνήθως µε πλαίσια κειµένου και κουµπιά επιλογής.

∆ηµιουργώντας ένα Στοιχείο Ελέγχου Πίνακα (CONTROL ARRAY): • • • • • •

Επιλέξτε έναν στοιχείο ελέγχου στη φόρµα και να ορίσετε του ένα όνοµα. Επιλέξτε ένα δεύτερο στοιχείο ελέγχου στη φόρµα και να ορίσετε το ίδιο όνοµα. Θα σας δοθεί ένα µήνυµα που θα αναφέρει ότι έχετε ήδη έναν έλεγχο επ’ ονόµατι «οτιδήποτε» και θα σας ρωτήσει αν θέλετε να δηµιουργήσετε ένα στοιχείο ελέγχου πίνακα. Πατήστε "Yes" και αυτό θα δηµιουργήσει το δικό σας στοιχείο ελέγχου πίνακα (control array). Τώρα, για κάθε επόµενη εισαγωγή στοιχείου, δώστε του επίσης το ίδιο όνοµα. Από τη στιγµή που θα δηµιουργήσετε το στοιχείο ελέγχου πίνακα, κάθε στοιχείο εντός του πίνακα θα έχει µια ένδειξη. Το πρώτο θα έχει την ένδειξη 0, το δεύτερο την ένδειξη 1, το τρίτο την ένδειξη 2 κλπ..

Παράδειγµα Στοιχείο Ελέγχου Πίνακα (Control Array) χρησιµοποιώντας µία Περίπτωση Επιλογής (Select Case): Το παράδειγµα αυτό είναι αν είχατε έξι κουµπιά επιλογής µε τα ονόµατα των χρωµάτων και ένα Rounded Square σχήµα που θα συµπληρώσει το χρώµα του επιλεγµένου κουµπιού επιλογής. Private Sub optColors_Click(Index As Integer) Select Case Index Case 0: shpRoundSquare.FillColor = vbBlack Case 1: shpRoundSquare.FillColor = vbBlue Case 2: shpRoundSquare.FillColor = vbYellow Case 3: shpRoundSquare.FillColor = vbGreen Case 4: shpRoundSquare.FillColor = vbRed Case 5: shpRoundSquare.FillColor = vbMagenta End Select End Sub

Σύνολο και Μέσος Όρος των αποτελεσµάτων του Τεστ, χρησιµοποιώντας Στοιχεία Έλεγχου Πίνακες (CONTROL ARRAYS): Εδώ έχουµε άλλο ένα παράδειγµα από ένα control array. Αυτό θα είναι αν θα θέλατε να υπολογίσετε το άθροισµα και το µέσο όρο των αποτελεσµάτων των τεστ.

'Calculating Sum and Average Private Sub cmdCalculate_Click() For X = 0 to 9 Sum = Sum + val(txtTest(X)) Next X Average = Sum / 10 End Sub 'Clearing text boxes and totals Private Sub cmdClear_Click() For Z = 0 to 9 TxtTest(Z) = "" Next Z LblSum = "" LblAvg = "" Sum = 0 Average = 0 End Sub

Μπάρες Κύλισης (Scroll Bars) και RGB Λειτουργία (RGB Function) Μπάρα Κύλισης (Scroll Bar) – Ένα στοιχείο ελέγχου που σας επιτρέπει να δείτε κρυµµένες πληροφορίες στην οθόνη. Αυτές οι πληροφορίες µπορεί να είναι κείµενο, εικόνα ή άλλα στοιχεία. Στο VB µια µπάρα κύλισης χρησιµοποιείται για να εκπροσωπήσει ένα εύρος αξιών. Οι µπάρες κύλισης χρησιµοποιούνται επίσης για έλεγχο επιπέδου ήχου, χρώµατος, µεγέθους και άλλων αξιών που µπορούν να αλλαχθούν σε µικρά ποσά ή σε µεγάλες προσαυξήσεις. Πεδίο Κύλισης (Scroll Box) – Το µικρό τετράγωνο, το οποίο εµφανίζεται µέσα στην µπάρα κύλισης. Πατώντας κάτω στο πεδίο κύλισης (scroll box) αλλάζει την ιδιότητα της τιµής της µπάρας κύλισης. Ένα άλλο όνοµα για το πεδίο κύλισης (Scroll Box) είναι το Thumb.

Ιδιότητες της Μπάρας Κύλισης (SCROLL BAR) • • • • •

Min – Η µικρότερη τιµή που µπορεί να πάρει η µπάρα κύλισης Max – Η µεγαλύτερη τιµή που µπορεί να πάρει η µπάρα κύλισης Small Change – Η απόσταση κίνησης, όταν ο χρήστης κλικάρει τα βέλη κύλισης. Large Change – Η απόσταση κίνησης, όταν ο χρήστης κλικάρει στην γκρι περιοχή της µπάρας κύλισης. Value (Τιµή) – ∆είχνει την τρέχουσα θέση της µπάρας κύλισης και της αντίστοιχης τιµής εντός της µπάρας κύλισης.

Τύποι από Μπάρες Κύλισης • •

Κάθετη Μπάρα Κύλισης – Ξεκινάει µε το πρόθεµα "vsb" Οριζόντια Μπάρα Κύλισης – Ξεκινάει µε το πρόθεµα "hsb"

Γεγονότα της Μπάρας Κύλισης Change (Γεγονός Αλλαγής) – Συµβαίνει όταν ο χρήστης κλικάρει στην γκρι περιοχή της µπάρας κύλισης. Scroll (Γεγονός Κύλισης) – Συµβαίνει όταν ο χρήστης σέρνει το scroll box. Από τη στιγµή που ο χρήστης αφήσει το κουµπί του ποντικιού, το γεγονός κύλισης παύει και ένα γεγονός αλλαγής συµβαίνει. Όταν γράφετε κώδικα για τη µπάρα κύλισης, θα θέλετε να γράψετε κώδικα τόσο για την Γεγονός αλλαγής (Change Event), όσο και για το Γεγονός Κύλισης (Scroll event). ∆είγµα προγράµµατος, χρησιµοποιώντας Οριζόντια Μπάρα Κύλισης: Private Sub cmdExit_Click() End End Sub Private Sub Form_Load() Hscroll.Top = (Screen.Height - Hscroll.Height)/2 Hscroll.Left = (Screen.Width - Hscroll.Width)/2 End Sub Private Sub hsbScroll_Change() LblValue = hsbScroll.Value End Sub Private Sub hsbScroll_Scroll() LblValue = hsbScroll.Value End Sub

∆είγµα προγράµµατος, χρησιµοποιώντας Κάθετη Μπάρα Κύλισης:

Private Sub cmdExit_Click() End End Sub Private Sub Form_Load() Vscroll.Top = (Screen.Height - Vscroll.Height)/2 Vscroll.Left = (Screen.Width - Vscroll.Width)/2 End Sub Private Sub vsbScroll_Change() LblValue = vsbScroll.Value End Sub Private Sub vsbScroll_Scroll() LblValue = vsbScroll.Value End Sub

Λειτουργία RGB (RGB FUNCTION) Η λειτουργία RGB καθορίζει τις ποσότητες των κόκκινων, πράσινων και µπλε για µια µεγάλη ποικιλία χρωµάτων. Η τιµή για κάθε χρώµα διακυµαίνεται από 0 έως 255, µε το 0 να είναι το λιγότερο έντονο και το 255 να είναι το περισσότερο έντονο. Οι χρωµατικές παράµετροι είναι στην ίδια σειρά όπως τα γράµµατά τους στο λειτουργικό τους όνοµα, κόκκινο πρώτα, µετά πράσινο και µετά τελικά το µπλε. Μπορείτε να χρησιµοποιείτε τη λειτουργία RGB, ώστε να καθορίσετε το χρώµα σε µια ιδιότητα ή να προσδιορίσετε το χρώµα σε µια γραφική µέθοδο. επιλεγµένο χρώµα = RGB(RedValue, GreenValue, BlueValue) Παραδείγµατα: RGB(0,0,0) 'w ould be BLACK RGB(255,255,255) 'w ould be WHITE RGB(255,0,0) 'w ould be RED RGB(0,255,0) 'w ould be GREEN RGB(0,0,255) 'w ould be BLUE

Πολλαπλές Φόρµες (Multiple Forms), Λέξη Κλειδί ME (ME Keyword) και Συµπέρασµα Ένα έργο VB µπορεί να αποτελείται από διάφορες φόρµες. Κάθε φόρµα έχει το δικό της παράθυρο, τµήµα φόρτωσης της φόρµας, τµήµα γενικών δηλώσεων και παράθυρο πηγαίου κώδικα. Όλες οι φόρµες σε ένα έργο είναι συνδεδεµένες κάτω από το όνοµα του έργου. Όταν τρέχετε το πρόγραµµα, µπορείτε να επιστρέψετε και να επανέλθετε µεταξύ διαφορετικών φορµών. StartUp Φόρµα – Η πρώτη φόρµα που προβάλλεται, όταν ένα έργο φορτώνεται. Load (Φόρτωση) – Φορτώνει µια φόρµα στη µνήµη του υπολογιστή (δεν την προβάλει στην οθόνη).

· Load < form_name > Unload (Ξεφόρτωση) - Ξεφορτώνει τη φόρµα από τη µνήµη του υπολογιστή. Επίσης, αν τρέχετε υπερβολικό αριθµό από φόρµες, θα πρέπει να τις αφαιρέσετε, ώστε να κερδίσετε χώρο στη µνήµη. · Unload < form_name > Show (Προβολή) – Προβάλει τη φόρµα στην οθόνη. · < form_name > .Show Hide (Απόκρυψη) – Κάνει τη φόρµα να εξαφανίζεται. Η φόρµα θα παραµείνει στη µνήµη. Απλά δε θα προβάλλεται στην οθόνη. · < form_name > .Hide

Λέξη Κλειδί ME (Εγώ) Μπορείτε να αναφερθείτε στην τρέχουσα φόρµα χρησιµοποιώντας την ειδική λέξη κλειδί ME. Η ME πράττει σαν µεταβλητή και αναφέρεται στη τρέχουσα ενεργή φόρµα. Μπορείτε να χρησιµοποιείτε τη ME στη θέση του ονόµατος της φόρµας, όταν κωδικοποιείτε δηλώσεις και µεθόδους. Παραδείγµατα: Unload Me 'Unloads the current form that is executing code Me.Hide 'Hides the form currently executing code Me.Show 'Show s the form currently executing code

ΠΕΡΙΕΧΟΜΕΝΑ

1.

Γνωριµία µε το περιβάλλον εργασίας της Visual Basic................................................. 5 ∆ραστηριότητα 1 : ∆ηµιουργία εφαρµογής κονσόλας ...................................................... 5 ∆ραστηριότητα 2 : Εφαρµογή Φορµών.......................................................................... 11

2.

Τα χειριστήρια της Visual Basic – Προγραµµατισµός µε συµβάντα ............................ 17 ∆ραστηριότητα 1 : ∆ηµιουργία εφαρµογής φορµών ....................................................... 17 ∆ραστηριότητα 2: Παίζοντας µε τις ιδιότητες ................................................................ 27

3.

Η έννοια των σταθερών και των µεταβλητών στη Visual Basic................................... 30 ∆ραστηριότητα 1 : Σταθερές στην Visual Basic ............................................................. 30 ∆ραστηριότητα 2 : Η εντολή καταχώρησης στην Visual Basic ....................................... 31 ∆ραστηριότητα 3: Ορισµός µεταβλητών και τύποι µεταβλητών στη Visual Basic ........... 32 ∆ραστηριότητα 4: Οι αριθµητικές µεταβλητές αναλυτικότερα........................................ 34 ∆ραστηριότητα 5 : Πράξεις µε αριθµητικές µεταβλητές ................................................. 35 ∆ραστηριότητα 6: Αλφαριθµητικές µεταβλητές ............................................................. 37

4.

Οι συναρτήσεις και υπορουτίνες στη Visual Basic ..................................................... 39 ∆ραστηριότητα 1 : ∆ηµιουργία µιας υπορουτίνας ........................................................ 39 ∆ραστηριότητα 2: Υπορουτίνα µε παραµέτρους............................................................ 42 ∆ραστηριότητα 3 : Υπορουτίνες που επιστρέφουν τιµές (συναρτήσεις). ......................... 44 ∆ραστηριότητα 4 : Υπορουτίνες µε περισσότερες παραµέτρους. .................................... 46 ∆ραστηριότητα 5 : Κλήση υπορουτίνας από υπορουτίνα. ............................................... 47

5. Εισαγωγή στα αντικείµενα στη Visual Basic................................................................. 48 ∆ραστηριότητα 1 : Το αντικείµενο console ................................................................... 48 ∆ραστηριότητα 2: Tο αντικείµενο Math ........................................................................ 51 ∆ραστηριότητα 3: Το String σαν αντικείµενο................................................................. 52 ∆ραστηριότητα 4: Η κλάση Date................................................................................... 54 6. Λογικές συναρτήσεις και παραστάσεις η ροή του προγράµµατος................................... 56

VVIISSUUAALL BBAASSIICC 22000088 ΕΕΚΚΠΠΑΑΙΙ∆∆ΕΕΥΥΤΤΙΙΚΚΟΟ ΕΕΓΓΧΧΕΕΙΙΡΡΙΙ∆∆ΙΙΟΟ –– ΤΤΕΕΤΤΡΡΑΑ∆∆ΙΙΟΟ Μ ΜΑΑΘ ΘΗΗΤΤΗΗ ∆ραστηριότητα 1 : η εντολή If .. then ... else................................................................. 56 ∆ραστηριότητα 2: nested if .......................................................................................... 58 ∆ραστηριότητα 3: Οι εντολές AND , OR, NOT ............................................................ 59 ∆ραστηριότητα 4: Το σύνθετο σχήµα If…Then…ElseIf................................................. 63 ∆ραστηριότητα 5: ∆οµή Select Case............................................................................. 64 7. Πίνακες και Επαναληπτικές ∆οµές (3ωρες) .................................................................. 66 ∆ραστηριότητα 1 : Η δοµή repeat.................................................................................. 66 ∆ραστηριότητα 2 : H δοµή while................................................................................... 70 ∆ραστηριότητα 3 : Η δοµή for .. next ........................................................................... 72 ∆ραστηριότητα 4 : Οι πίνακες στη Visual Basic............................................................ 74 8. Εκσφαλµάτωση ............................................................................................................ 77 ∆ραστηριότητα 1 : Συντακτικά λάθη. ............................................................................ 77 ∆ραστηριότητα 2 : Επιλογές που επηρεάζουν τα συντακτικά λάθη. (Option Explicit)...... 78 ∆ραστηριότητα 3 : Επιλογές που επηρεάζουν τα συντακτικά λάθη. (Option Strict). ........ 79 ∆ραστηριότητα 4 : Οι εντολές try … catch .................................................................... 80 ∆ραστηριότητα 5 : Λογικά λάθη 1................................................................................. 82 ∆ραστηριότητα 6 : Λογικά λάθη 2................................................................................. 83

ΠΑΡΑΓΩΓΗ CONCEPTUM

4

VVIISSUUAALL BBAASSIICC 22000088 ΕΕΚΚΠΠΑΑΙΙ∆∆ΕΕΥΥΤΤΙΙΚΚΟΟ ΕΕΓΓΧΧΕΕΙΙΡΡΙΙ∆∆ΙΙΟΟ –– ΤΤΕΕΤΤΡΡΑΑ∆∆ΙΙΟΟ Μ ΜΑΑΘ ΘΗΗΤΤΗΗ

Φύλλο εργασίας 1. Γνωριµία µε το περιβάλλον εργασίας της Visual Basic

Όνοµα: Τάξη: ∆ιάρκεια: 4 διδακτικές ώρες.

∆ιδακτικοί στόχοι: Με το συγκεκριµένο φύλλο εργασίας •

Θα µάθεις πώς να δηµιουργείς ένα νέο έργο µε το περιβάλλον εργασίας της Visual Basic



Θα γνωρίσεις τα παράθυρα που αποτελούν το περιβάλλον εργασίας της Visual Basic



Θα µάθεις πώς θα µεταγλωττιστεί (compile) ένα έργο σε Visual Basic, ώστε να δηµιουργήσεις µια εκτελέσιµη εφαρµογή.



Θα γνωρίσεις τις «εφαρµογές κονσόλας» και τις «εφαρµογές φορµών» της Visual Basic

∆ραστηριότητα 1 : ∆ηµιουργία εφαρµογής κονσόλας Στάδιο 1 : ∆ηµιουργώντας ένα νέο Έργο (project).

Για να ξεκινήσουµε το περιβάλλον της visual basic πρέπει να πάµε στο µενού έναρξη (start) των windows και να εντοπίσουµε τη συντόµευση «Microsoft Visual Basic 2008 Express Edition» ή την αντίστοιχη έκδοση που έχουµε στον υπολογιστή µας.

ΠΑΡΑΓΩΓΗ CONCEPTUM

5

VVIISSUUAALL BBAASSIICC 22000088 ΕΕΚΚΠΠΑΑΙΙ∆∆ΕΕΥΥΤΤΙΙΚΚΟΟ ΕΕΓΓΧΧΕΕΙΙΡΡΙΙ∆∆ΙΙΟΟ –– ΤΤΕΕΤΤΡΡΑΑ∆∆ΙΙΟΟ Μ ΜΑΑΘ ΘΗΗΤΤΗΗ

Κάνοντας κλικ στο εικονίδιο ξεκινάει το περιβάλλον εργασίας της γλώσσας. Με τη Visual Basic µπορούµε να δηµιουργήσουµε εφαρµογές διαφόρων ειδών. Εδώ θα ασχοληθούµε µε δυο τύπους εφαρµογών: τις «Εφαρµογές Κονσόλας» (Console application) και τις «Εφαρµογές Φορµών» (Windows Forms application). Για να δηµιουργήσουµε µια εφαρµογή οποιουδήποτε τύπου µε την Visual Basic πρέπει πρώτα να δηµιουργήσουµε ένα «Έργο» (Project). Η πρώτη οθόνη του περιβάλλοντος εργασίας της Visual Basic µας καλεί να δηµιουργήσουµε ένα νέο έργο ή να ανοίξουµε ένα υπάρχον.

Πατήστε «Create Project» (∆ηµιουργία Έργου) στην αρχική οθόνη. Θα σας ανοίξει η οθόνη επιλογής. Σε αυτή την οθόνη επιλέγουµε τι τύπο εφαρµογής θέλουµε να φτιάξουµε. Επιλέξτε «Console application» για να δηµιουργήστε µια εφαρµογή κονσόλας και ονοµάστε την drasttiriotita1_1

ΠΑΡΑΓΩΓΗ CONCEPTUM

6

VVIISSUUAALL BBAASSIICC 22000088 ΕΕΚΚΠΠΑΑΙΙ∆∆ΕΕΥΥΤΤΙΙΚΚΟΟ ΕΕΓΓΧΧΕΕΙΙΡΡΙΙ∆∆ΙΙΟΟ –– ΤΤΕΕΤΤΡΡΑΑ∆∆ΙΙΟΟ Μ ΜΑΑΘ ΘΗΗΤΤΗΗ

Στάδιο 2: Εξερεύνηση του περιβάλλοντος έργου (console application)

Το περιβάλλον εργασίας της Visual Basic δηµιουργεί ένα νέο έργο, από το οποίο µπορούµε να δηµιουργήσουµε (γράφοντας κώδικα) µια εφαρµογή κονσόλας.

Το περιβάλλον εργασίας για το έργο µας είναι µοιρασµένο σε παράθυρα. Βλέπουµε αριστερά το παράθυρο κώδικα (Module1.vb), δεξιά πάνω το παράθυρο έργου (Solution Explorer) και δεξιά κάτω το παράθυρο ιδιοτήτων (Properties). ΠΑΡΑΓΩΓΗ CONCEPTUM

7

VVIISSUUAALL BBAASSIICC 22000088 ΕΕΚΚΠΠΑΑΙΙ∆∆ΕΕΥΥΤΤΙΙΚΚΟΟ ΕΕΓΓΧΧΕΕΙΙΡΡΙΙ∆∆ΙΙΟΟ –– ΤΤΕΕΤΤΡΡΑΑ∆∆ΙΙΟΟ Μ ΜΑΑΘ ΘΗΗΤΤΗΗ

Ένα έργο στη Visual Basic αποτελεί τµήµα µιας «Λύσης» (Solution). Μέσα σε µια λύση µπορούν να οµαδοποιηθούν πολλά έργα. Οι εφαρµογές δηµιουργούνται από την µεταγλώττιση (compilation) της Λύσης (Solution). Εµείς θα ασχοληθούµε µε λύσεις που περιέχουν ένα έργο. Στο παράθυρο έργου βλέπουµε τα αρχεία που περιέχονται στη «Λύση» που δουλεύουµε. Επιλέξτε το αρχείο Module1.vb από το παράθυρο έργου και παρατηρήστε το παράθυρο ιδιοτήτων. Στάδιο 3. Αποθήκευση και ανάκτηση του έργου

Πατήστε από το µενού «File» που βρίσκεται στην µπάρα την επιλογή «Save all». Στο παράθυρο που εµφανίζεται επιλέξτε τον φάκελο µέσα στον οποίο θα σώσετε τη δουλειά σας και πατήστε «Αποθήκευση» (Save).

Κλείστε το περιβάλλον εργασίας της Visual Basic. Χρησιµοποιόντας τον Windows Explorer βρείτε το φάκελο που σώσατε τη δουλειά σας. ∆είτε τα αρχεία που έχουν δηµιουργηθεί. Υπάρχει το αρχείο drastiriotita1_1.sln στο πρώτο επίπεδο και ένας φάκελος µε όνοµα drastiriotita1_1 που περιέχει τα υπόλοιπα αρχεία που δηµιούργησε το περιβάλλον εργασίας της visual basic. Για να ξανανοίξουµε το έργο που δηµιουργήσαµε και να συνεχίσουµε να δουλεύουµε, µπορούµε να ανοίξουµε το αρχείο drastiriotita1_1.sln (κάνοντας διπλό κλικ επάνω του). Επίσης, µπορούµε να ανοίξουµε το περιβάλλον εργασίας της Visual basic και να πατήσουµε την επιλογή Open Project· από το παράθυρο διαλόγου που θα ανοίξει µπορούµε να εντοπίσουµε το drastiriotita1_1.sln και να το ανοίξουµε.

ΠΑΡΑΓΩΓΗ CONCEPTUM

8

VVIISSUUAALL BBAASSIICC 22000088 ΕΕΚΚΠΠΑΑΙΙ∆∆ΕΕΥΥΤΤΙΙΚΚΟΟ ΕΕΓΓΧΧΕΕΙΙΡΡΙΙ∆∆ΙΙΟΟ –– ΤΤΕΕΤΤΡΡΑΑ∆∆ΙΙΟΟ Μ ΜΑΑΘ ΘΗΗΤΤΗΗ

Στάδιο 4. Μεταγλώττιση(compilation) Ανοίξτε ξανά το έργο που φτιάξατε. Από το παράθυρο έργου κάντε διπλό κλικ στο module1.vb. Με αυτή την ενέργεια ανοίγετε το παράθυρο κώδικα. Ας γράψουµε τώρα το πρώτο µας πρόγραµµα. Στο παράθυρο κώδικα µετά την γραµµή «Sub Main()» και πριν την γραµµή «End Sub» θα πληκτρολογήσουµε την εντολή «System.Console.WriteLine("Hello world")» Πληκτρολογήστε: System. Το περιβάλλον εργασίας της Visual Basic εµφανίζει ένα drop down menu µε

όλες

γεγονότα

τις

ιδιότητες,

κλπ

που

µεθόδους,

περικλείει

το

είναι

µια

αντικείµενο «System». Η αντικειµενοστραφής

(Object

oriented)

Visual

γλώσσα

Basic

προγραµµατισµού.

Όλες

οι

δυνατότητες που έχει είναι οµαδοποιηµένες µέσα σε κλάσεις που τις παρέχει το «.Net Framework Class Library (FCL)». Η κλάση System είναι από τις σηµαντικότερες. Η σχέση µεταξύ της κλάσης και των «παιδιών» της αναπαρίσταται µε την «.». Πληκτρολογώντας λοιπόν System. Εµφανίζονται όλα τα «παιδιά» της κλάσης αυτής. Συνεχίστε

πληκτρολογώντας

την

εντολή

«System.Console.WriteLine(».

Η

«WriteLine» είναι µια µέθοδος (method) που ανήκει στην κλάση «Console» που µε τη σειρά της ανήκει στην κλάση «System». Η εντολή «WriteLine» εµφανίζει στην κονσόλα µια συµβολοσειρά (String). Οι µέθοδοι της Visual Basic συντάσσονται µε παρενθέσεις στο τέλος. Μέσα στις παρενθέσεις βάζουµε τις παραµέτρους (arguments) της µεθόδου. Βάλτε την παράµετρο «“Hello world”» στην µέθοδο WriteLine και κλείστε τις παρενθέσεις. Αλλάξτε

γραµµή

και

συνεχίστε

πληκτρολογώντας

την

επόµενη

εντολή:

«System.Console.ReadLine()». Η µέθοδος «ReadLine» σταµατάει την εκτέλεση του προγράµµατος και περιµένει να πληκτρολογήσουµε κάτι στην κονσόλα. Θα ΠΑΡΑΓΩΓΗ CONCEPTUM

9

VVIISSUUAALL BBAASSIICC 22000088 ΕΕΚΚΠΠΑΑΙΙ∆∆ΕΕΥΥΤΤΙΙΚΚΟΟ ΕΕΓΓΧΧΕΕΙΙΡΡΙΙ∆∆ΙΙΟΟ –– ΤΤΕΕΤΤΡΡΑΑ∆∆ΙΙΟΟ Μ ΜΑΑΘ ΘΗΗΤΤΗΗ

καταλάβει πως τελειώσαµε την πληκτρολόγηση όταν πατήσουµε το πλήκτρο «Enter» και θα συνεχίσει την εκτέλεση του προγράµµατος. Τώρα ήρθε η ώρα να εκτελέσουµε το πρόγραµµα που γράψαµε. Από το µενού debug επιλέξτε «Start Debugging». Θα εµφανιστεί οθόνη κονσόλας που βλέπουµε παρακάτω.

΄ Τι πρέπει να κάνουµε για να ολοκληρωθεί η εκτέλεση του προγράµµατος; (Θυµηθείτε τι κάνει η µέθοδος ReadLine). _____________________________________________________________________ _____________________________________________________________________ _____________________________________________________________________ _________________ Κλείστε το περιβάλλον εργασίας της Visual Basic. Ερευνήστε στο φάκελο που σώσατε το έργο drastiriotita1_1. Ποια νέα αρχεία έχουν δηµιουργηθεί. _____________________________________________________________________ _____________________________________________________________________ _____________________________________________________________________ Βρείτε µέσα στον φάκελο «bin/debug» το αρχείο drastiriotita1_1.exe και τρέξτε το κάνοντας διπλό κλικ πάνω του.

ΠΑΡΑΓΩΓΗ CONCEPTUM

10

VVIISSUUAALL BBAASSIICC 22000088 ΕΕΚΚΠΠΑΑΙΙ∆∆ΕΕΥΥΤΤΙΙΚΚΟΟ ΕΕΓΓΧΧΕΕΙΙΡΡΙΙ∆∆ΙΙΟΟ –– ΤΤΕΕΤΤΡΡΑΑ∆∆ΙΙΟΟ Μ ΜΑΑΘ ΘΗΗΤΤΗΗ

∆ραστηριότητα 2 : Εφαρµογή Φορµών Στάδιο 1 - Γνωριµία µε την εφαρµογή φορµών

Ανοίξτε το έργο drastiriotita1_2.sln από τον φάκελο βοηθητικού υλικού «drastiriotita1_2» . Πατήστε από το µενού «Debug->Start debugging». Στο πεδίο στο πάνω µέρος της φόρµας πληκτρολογήστε «www.google.com» ή οποιοδήποτε άλλο site και µετά πατήστε το κουµπί «Button 1».

Το πρόγραµµα αυτό προσοµοιάζει έναν web browser. Αν έχετε σύνδεση στο Internet θα εµφανιστεί η σελίδα που πληκτρολογήσατε. Κλείστε το παράθυρο της φόρµας για να τερµατίσετε την εφαρµογή.

ΠΑΡΑΓΩΓΗ CONCEPTUM

11

VVIISSUUAALL BBAASSIICC 22000088 ΕΕΚΚΠΠΑΑΙΙ∆∆ΕΕΥΥΤΤΙΙΚΚΟΟ ΕΕΓΓΧΧΕΕΙΙΡΡΙΙ∆∆ΙΙΟΟ –– ΤΤΕΕΤΤΡΡΑΑ∆∆ΙΙΟΟ Μ ΜΑΑΘ ΘΗΗΤΤΗΗ

Στο περιβάλλον εργασίας της Visual Basic αυτή τη φορά δεν βλέπουµε το παράθυρο κώδικα, αλλά το παράθυρο σχεδιασµού της φόρµας. Για να δούµε τον κώδικα του προγράµµατος πατάµε δεξί κλικ πάνω σε οποιοδήποτε σηµείο της φόρµας και επιλέγουµε «View Code».

Εµφανίζεται το παράθυρο κώδικα σε ένα νέο TAB δίπλα στο παράθυρο σχεδιασµού. Στα αριστερά του περιβάλλοντος εργασίας της Visual Basic βρίσκεται το παράθυρο της εργαλειοθήκης. Μετακινηθείτε µεταξύ των δυο TAB (κώδικα και σχεδιασµού) της φόρµας Form1.vb. Τι παρατηρείτε στο παράθυρο της εργαλειοθήκης;

ΠΑΡΑΓΩΓΗ CONCEPTUM

12

VVIISSUUAALL BBAASSIICC 22000088 ΕΕΚΚΠΠΑΑΙΙ∆∆ΕΕΥΥΤΤΙΙΚΚΟΟ ΕΕΓΓΧΧΕΕΙΙΡΡΙΙ∆∆ΙΙΟΟ –– ΤΤΕΕΤΤΡΡΑΑ∆∆ΙΙΟΟ Μ ΜΑΑΘ ΘΗΗΤΤΗΗ

_____________________________________________________________________ _____________________________________________________________________ _____________________________________________________________________ _____________________________________________________________________ _____________________________________________________________________

Πηγαίνετε στο παράθυρο σχεδιασµού της φόρµας και µε το ποντίκι επιλέξτε τα διάφορα αντικείµενα που βρίσκονται εκεί (button, textbox, webbrowser). Ταυτόχρονα προσέξτε τις αλλαγές που γίνονται στο παράθυρο ιδιοτήτων. Τι παρατηρείτε; _____________________________________________________________________ _____________________________________________________________________ _____________________________________________________________________ _____________________________________________________________________ _____________________________________________________________________ Στάδιο 2 - breakpoints και παράθυρα άµεσης εκτέλεσης και τοπικών µεταβλητών.

Κατά τη διάρκεια της δηµιουργίας µια εφαρµογή ο προγραµµατιστής χρειάζεται πολλές φορές να σταµατήσει την εκτέλεση του προγράµµατος και να ελέγξει τις τιµές που παίρνουν οι διάφορες µεταβλητές. Για να σταµατήσουµε την εκτέλεση του προγράµµατος πριν από µια εντολή βάζουµε breakpoints πατώντας αριστερά από την γραµµή εντολής που θέλουµε (ή επιλέγουµε τη γραµµή που θέλουµε και πατάµε στο µενού «Debug->Toggle Breakpoints»). Τοποθετήστε breakpoints όπως στο παρακάτω σχήµα και τρέξτε την εφαρµογή. Αντί για «Debug->Start debugging» µπορείτε να πατήσετε το πλήκτρο F5.

ΠΑΡΑΓΩΓΗ CONCEPTUM

13

VVIISSUUAALL BBAASSIICC 22000088 ΕΕΚΚΠΠΑΑΙΙ∆∆ΕΕΥΥΤΤΙΙΚΚΟΟ ΕΕΓΓΧΧΕΕΙΙΡΡΙΙ∆∆ΙΙΟΟ –– ΤΤΕΕΤΤΡΡΑΑ∆∆ΙΙΟΟ Μ ΜΑΑΘ ΘΗΗΤΤΗΗ

Πληκτρολογήστε «www.google.gr» στο πεδίο στο πάνω µέρος της φόρµας και πατήστε το «Button 1».

Η εκτέλεση του προγράµµατος σταµατά πριν από την εντολή που βρίσκεται το πρώτο breakpoint. Από το µενού «Debug» επιλέξτε «Windows->Locals». Ένα νέο παράθυρο ανοίγει στο κάτω µέρος της οθόνης.

Εδώ βλέπουµε τις τοπικές µεταβλητές και τις τιµές τους κατά τη διάρκεια εκτέλεσης του προγράµµατος. Πατήστε F11 για να εκτελεστεί

η εντολή

«str =

Me.TextBox1.Text». Τι άλλαξε στο παράθυρο Τοπικών µεταβλητών; _____________________________________________________________________ _____________________________________________________________________ _____________________________________________________________________

ΠΑΡΑΓΩΓΗ CONCEPTUM

14

VVIISSUUAALL BBAASSIICC 22000088 ΕΕΚΚΠΠΑΑΙΙ∆∆ΕΕΥΥΤΤΙΙΚΚΟΟ ΕΕΓΓΧΧΕΕΙΙΡΡΙΙ∆∆ΙΙΟΟ –– ΤΤΕΕΤΤΡΡΑΑ∆∆ΙΙΟΟ Μ ΜΑΑΘ ΘΗΗΤΤΗΗ

Από το µενού «Debug» επιλέξτε «Windows->Immediate» βλέπουµε ένα νέο παράθυρο στο περιβάλλον εργασίας της Visual Basic – Immediate Window(Παράθυρο άµεσης εκτέλεσης). Πατήστε F11 για να εκτελεστεί η εντολή «Debug.Print("navigating to: " + str)». Τι βλέπετε στο παράθυρο άµεσης εκτέλεσης; _____________________________________________________________________ _____________________________________________________________________ _____________________________________________________________________

Πατήστε δεξί κλικ στο Παράθυρο άµεσης εκτέλεσης

και επιλέξτε «Clear all».

Αφαιρέστε τα breakpoints από το παράθυρο κώδικα, πατήστε F5 για να συνεχιστεί η εκτέλεση του προγράµµατος. Στη φόρµα πατήστε «Button 1». Παρατηρήστε ξανά το παράθυρο άµεσης εκτέλεσης. Τι πιστεύετε πως κάνει η εντολή Debug.Print. _____________________________________________________________________ _____________________________________________________________________ _____________________________________________________________________ _____________________________________________________________________ _____________________________________________________________________ _____________________________________________________________________ Τερµατίστε την εφαρµογή. Πηγαίνετε στο Παράθυρο άµεσης εκτέλεσης και πληκτρολογήστε εκεί «Debug.Print(«Hello world»)» και µετά την εντολή «Debug.Print(1+1)». Η εντολή που επιστρέφει την τετραγωνική ρίζα ενός αριθµού Χ είναι η Math.Sqrt(Χ). Τι πρέπει να γράψω στο Παράθυρο άµεσης εκτέλεσης ώστε να τυπωθεί η τετραγωνική ρίζα του 2; _____________________________________________________________________ _____________________________________________________________________ ΠΑΡΑΓΩΓΗ CONCEPTUM

15

VVIISSUUAALL BBAASSIICC 22000088 ΕΕΚΚΠΠΑΑΙΙ∆∆ΕΕΥΥΤΤΙΙΚΚΟΟ ΕΕΓΓΧΧΕΕΙΙΡΡΙΙ∆∆ΙΙΟΟ –– ΤΤΕΕΤΤΡΡΑΑ∆∆ΙΙΟΟ Μ ΜΑΑΘ ΘΗΗΤΤΗΗ

Φύλλο εργασίας 2. Τα χειριστήρια της Visual Basic – Προγραµµατισµός µε συµβάντα

Όνοµα: Τάξη: ∆ιάρκεια: 3 διδακτικές ώρες. ∆ιδακτικοί στόχοι: Με το συγκεκριµένο φύλλο εργασίας: •

Θα µάθεις να δηµιουργείς εφαρµογές φορµών



Θα µάθεις να τοποθετείς κουµπιά πάνω στις φόρµες



Θα µάθεις να χειρίζεσαι τα συµβάντα γράφοντας κώδικα



Θα µάθεις να τερµατίζεις την εφαρµογή σου µε κώδικα

∆ραστηριότητα 1 : ∆ηµιουργία εφαρµογής φορµών Στάδιο 1 : ∆ηµιουργία µιας φόρµας µε αντικείµενα.

Ξεκινήστε το περιβάλλον της Visual Basic και δηµιουργήστε ένα νέο έργο. Το έργο αυτό θα είναι εφαρµογή φορµών. Αποθηκεύστε το όπως µάθατε στο προηγούµενο φύλλο εργασίας, µε το όνοµα drastiriotita2_1.

ΠΑΡΑΓΩΓΗ CONCEPTUM

17

VVIISSUUAALL BBAASSIICC 22000088 ΕΕΚΚΠΠΑΑΙΙ∆∆ΕΕΥΥΤΤΙΙΚΚΟΟ ΕΕΓΓΧΧΕΕΙΙΡΡΙΙ∆∆ΙΙΟΟ –– ΤΤΕΕΤΤΡΡΑΑ∆∆ΙΙΟΟ Μ ΜΑΑΘ ΘΗΗΤΤΗΗ

Το περιβάλλον εργασίας της Visual Basic δηµιουργεί ένα νέο έργο (project) που περιέχει µια φόρµα. Το κεντρικό παράθυρο στο περιβάλλον είναι το παράθυρο σχεδίασης της φόρµας. Όπως έχει αναφερθεί σε προηγούµενο µάθηµα, το παράθυρο της εργαλειοθήκης (toolbox) είναι ενεργό όταν είναι επιλεγµένο το παράθυρο σχεδιασµού της φόρµας. Πάνω στη φόρµα µπορούµε να τοποθετήσουµε αντικείµενα που θα πάρουµε από την εργαλειοθήκη (toolbox). Επιλέξετε το αντικείµενο «Button» από την εργαλειοθήκη και σχεδιάστε ένα «Button» πάνω στη φόρµα. Επαναλάβετε τη διαδικασία και δηµιουργήστε ένα δεύτερο «Button». Η φόρµα σας θα µοιάζει κάπως έτσι:

Πατήστε F5 για να τρέξετε τη εφαρµογή. Πιέστε µε το ποντίκι τα «Button» για να δείτε πως συµπεριφέρονται. ∆οκιµάστε να πετύχετε την ίδια συµπεριφορά χρησιµοποιώντας το πληκτρολόγιο. Κλείστε τη φόρµα και επιστρέψτε στο περιβάλλον εργασίας της Visual Basic. Επιλέξτε το αντικείµενο «Label» από την εργαλειοθήκη και σχεδιάστε ένα «Label» πάνω στη φόρµα.

ΠΑΡΑΓΩΓΗ CONCEPTUM

18

VVIISSUUAALL BBAASSIICC 22000088 ΕΕΚΚΠΠΑΑΙΙ∆∆ΕΕΥΥΤΤΙΙΚΚΟΟ ΕΕΓΓΧΧΕΕΙΙΡΡΙΙ∆∆ΙΙΟΟ –– ΤΤΕΕΤΤΡΡΑΑ∆∆ΙΙΟΟ Μ ΜΑΑΘ ΘΗΗΤΤΗΗ Στάδιο 2: ∆ίνοντας τίτλους στα αντικείµενα

Στην εφαρµογή που θα φτιάξουµε πατώντας το ένα κουµπί (Button) θα εµφανίζεται το κείµενο «Hello World» και πατώντας το άλλο κουµπί θα εµφανίζεται το κείµενο «Γειά σου κόσµε». Επιλέξτε µε το ποντίκι το αντικείµενο «Button1» που βρίσκεται πάνω στη φόρµα. Προσέξτε το παράθυρο ιδιοτήτων. Εκεί φαίνονται οι ιδιότητες (properties) του αντικειµένου και τις τιµές που αυτές έχουν. Μπορείτε να µεγαλώσετε το παράθυρο ιδιοτήτων και να βλέπετε περισσότερες ιδιότητες. Στο πάνω µέρος του παραθύρου βλέπετε το όνοµα του αντικειµένου που έχει επιλεγεί, στην δική µας περίπτωση βλέπουµε το όνοµα Button1. Εντοπίστε τις ιδιότητες µε όνοµα «Text» και «Name». Και οι δύο αυτές ιδιότητες έχουν τιµή Button1. Όταν δηµιουργείτε ένα νέο αντικείµενο οι ιδιότητές του πρέπει να έχουν κάποια τιµή. Η Visual Basic βάζει τιµές στις ιδιότητες του αντικειµένου που ο προγραµµατιστής µπορεί να αλλάξει αλλάζοντας έτσι και τη συµπεριφορά και την εµφάνιση του αντικειµένου. Πειραµατιστείτε αλλάζοντας τιµή στην ιδιότητα «Text». Τι συµβαίνει στο Button1 που βρίσκεται στο παράθυρο σχεδιασµού της φόρµας όταν αλλάζετε την ιδιότητα text από το παράθυρο ιδιοτήτων; _____________________________________________________________________ _____________________________________________________________________ _____________________________________________________________________ ∆ώστε τώρα την τιµή «Αγγλικά» στην ιδιότητα «Text» του Button1. Στη συνέχεια επιλέξτε το Button2 και δώστε την τιµή «Ελληνικά» στην ιδιότητα Text. Επιλέξτε τώρα το αντικείµενο Label1 και δώστε την τιµή «??» Η ιδιότητα «Text» υπάρχει σε πολλά από τα αντικείµενα που είναι διαθέσιµα από το toolbox. Η τιµή της ιδιότητας «Text» είναι µια συµβολοσειρά που εµφανίζεται πάνω στο αντικείµενο.

ΠΑΡΑΓΩΓΗ CONCEPTUM

19

VVIISSUUAALL BBAASSIICC 22000088 ΕΕΚΚΠΠΑΑΙΙ∆∆ΕΕΥΥΤΤΙΙΚΚΟΟ ΕΕΓΓΧΧΕΕΙΙΡΡΙΙ∆∆ΙΙΟΟ –– ΤΤΕΕΤΤΡΡΑΑ∆∆ΙΙΟΟ Μ ΜΑΑΘ ΘΗΗΤΤΗΗ

Πατήστε τώρα σε ένα σηµείο της φόρµας που δεν υπάρχει κανένα αντικείµενο. Στο παράθυρο ιδιοτήτων πρέπει να φαίνεται επιλεγµένο το αντικείµενο Form1 δηλαδή η φόρµα µας. Βρείτε την ιδιότητα «Text» και αλλάξτε την τιµή της. Τι αλλάζει στην εµφάνιση της φόρµας; _____________________________________________________________________ _____________________________________________________________________ _____________________________________________________________________

Στάδιο 3: Αλλάζοντας τα ονόµατα των αντικειµένων. Επιλέξτε πάλι το κουµπί «Button1» από τη φόρµα και πηγαίνετε στο παράθυρο ιδιοτήτων. Εντοπίστε την ιδιότητα «Name». ∆ώστε της την τιµή «btnEn». Τι άλλαξε στην εµφάνιση της φόρµας και τι στο παράθυρο ιδιοτήτων. _____________________________________________________________________ _____________________________________________________________________ _____________________________________________________________________ Το όνοµα (Name) που δώσατε στο κουµπί σάς χρειάζεται για να είναι προσβάσιµο το κουµπί – όπως και οποιοδήποτε άλλο αντικείµενο – από τον κώδικα. Εφόσον αλλάξατε το όνοµά του, το συγκεκριµένο κουµπί από εδώ και µπρος θα το αποκαλείτε btnEn και όχι Button1. Τα ονόµατα των αντικειµένων καλό είναι να προσδιορίζουν και τον τύπο τους, έτσι ώστε όταν κάποιος διαβάζει τον κώδικα που γράψατε να καταλαβαίνει σε τι τύπο αντικειµένου αναφέρεστε. Έτσι, τα ονόµατα των κουµπιών (Buttons) συστήνεται να ξεκινούν να το btn. Έχετε βαφτίσει το κουµπί που θα εµφανίζει το αγγλικό µήνυµα btnEn (En ως συντοµογραφία για το English). Αλλάξτε το όνοµα του κουµπιού αυτού. Αντίστοιχα το όνοµα του κουµπιού που θα εµφανίζει το Ελληνικό µήνυµα θα πρέπει να διαµορφωθεί σε btnEl. Τα ονόµατα στα αντικείµενα Label συστήνεται να ξεκινούν µε το πρόθεµα lbl. Ας αλλάξουµε το όνοµα του Label1 σε lblMessage.

ΠΑΡΑΓΩΓΗ CONCEPTUM

20

VVIISSUUAALL BBAASSIICC 22000088 ΕΕΚΚΠΠΑΑΙΙ∆∆ΕΕΥΥΤΤΙΙΚΚΟΟ ΕΕΓΓΧΧΕΕΙΙΡΡΙΙ∆∆ΙΙΟΟ –– ΤΤΕΕΤΤΡΡΑΑ∆∆ΙΙΟΟ Μ ΜΑΑΘ ΘΗΗΤΤΗΗ

Στάδιο 4. Ελέγχοντας τα συµβάντα (events) Πατήστε F5 για να τρέξετε την εφαρµογή σας. Πατώντας τα κουµπιά τώρα, η εφαρµογή σας δεν κάνει αυτό που θέλετε δηλαδή να εµφανίζει τα αντίστοιχα µηνύµατα ανάλογα µε το κουµπί που πατήσατε. Για να υλοποιήσετε αυτή τη δυνατότητα θα πρέπει να γράψετε και κώδικα. Κλείστε την εφαρµογή, πηγαίνετε στο περιβάλλον εργασίας της Visual Basic, στο παράθυρο σχεδιασµού της φόρµας Form1. Πατήστε δεξί κλικ πάνω στη φόρµα και επιλέξτε «View Code». Το περιβάλλον εργασίας της Visual Basic εµφανίζει το παράθυρο κώδικα της φόρµας Form1. Προσέξτε τον κώδικα που βρίσκεται εκεί.

Τώρα επιστρέψτε στο παράθυρο σχεδιασµού της φόρµας. Πατήστε διπλό κλικ πάνω στο κουµπί btnEn. Η Visual Basic σας επιστρέφει στο παράθυρο κώδικα. Τι διαφοροποίηση υπάρχει στον κώδικα; _____________________________________________________________________ _____________________________________________________________________ _____________________________________________________________________ Η Visual Basic έχει δηµιουργήσει µια υπορουτίνα που είναι o διαχειριστής συµβάντος (event handler). Ας την εξετάσουµε: Private Sub btnEn_Click(

Εδώ δηλώνεται η αρχή και το όνοµα της υπορουτίνας

ByVal sender As System.Object, ByVal e As

Εδώ δηλώνονται οι παράµετροι της

System.EventArgs) Handles btnEn.Click

ΠΑΡΑΓΩΓΗ CONCEPTUM

Με αυτή τη δήλωση ζητάµε από τη

21

VVIISSUUAALL BBAASSIICC 22000088 ΕΕΚΚΠΠΑΑΙΙ∆∆ΕΕΥΥΤΤΙΙΚΚΟΟ ΕΕΓΓΧΧΕΕΙΙΡΡΙΙ∆∆ΙΙΟΟ –– ΤΤΕΕΤΤΡΡΑΑ∆∆ΙΙΟΟ Μ ΜΑΑΘ ΘΗΗΤΤΗΗ

Visual Basic να θεωρήσει αυτή την υπορουτίνα ως διαχειριστή συµβάντος για το συµβάν Click του κουµπιού btnEn End Sub

Εδώ δηλώνεται το τέλος της υπορουτίνας

Οι εφαρµογές φορµών της Visual Basic είναι οδηγούµενες από συµβάντα (event driven). ∆ηλαδή απλώς περιµένουν µέχρι να συµβεί κάποιο συµβάν – όπως όταν ο χρήστης πατήσει κάποιο κουµπί – και τότε αναλαµβάνει δράση ο ανάλογος διαχειριστής συµβάντων. Η υπορουτίνα που ετοίµασε για µας η Visual Basic διαχειρίζεται το συµβάν του αντικειµένου btnEn που ονοµάζεται click. Αυτό το συµβάν λαµβάνει χώρα όταν ο χρήστης πατήσει το κουµπί btnEn µε το ποντίκι. Το ζητούµενο από την εφαρµογή σας είναι όταν πατηθεί αυτό το κουµπί (btnEn) στη θέση του lblMessage να εµφανιστεί το µήνυµα «Hello World». Αυτή τη στιγµή το lblMessage εµφανίζει το µήνυµα «??». Θυµηθείτε πως αυτό το κάναµε αλλάζοντας την τιµή της ιδιότητας Text του lblMessage. Για να υλοποιήσετε την απαίτηση της εφαρµογής θα πρέπει ο κώδικάς σας να αλλάξει την τιµή της ιδιότητας Text του lblMessage. Αυτό γίνεται µε την παρακάτω εντολή καταχώρησης. Me.lblMessage.Text = "Hello world" Πληκτρολογήστε την ανάµεσα στις γραµµές που ορίζουν την αρχή και το τέλος της υπορουτίνας διαχείρισης. Ο κώδικάς µας πρέπει να είναι ο εξής: Private Sub btnEn_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnEn.Click Me.lblMessage.Text = "Hello world" End Sub Πατήστε F5 για να τρέξετε την εφαρµογή και πατήστε το btnEn. Η εφαρµογή εµφανίζει αντί για «??» το µήνυµα «Hello world».

ΠΑΡΑΓΩΓΗ CONCEPTUM

22

VVIISSUUAALL BBAASSIICC 22000088 ΕΕΚΚΠΠΑΑΙΙ∆∆ΕΕΥΥΤΤΙΙΚΚΟΟ ΕΕΓΓΧΧΕΕΙΙΡΡΙΙ∆∆ΙΙΟΟ –– ΤΤΕΕΤΤΡΡΑΑ∆∆ΙΙΟΟ Μ ΜΑΑΘ ΘΗΗΤΤΗΗ

Στάδιο 5. Γράφοντας κώδικα για ένα συµβάν Χρησιµοποιώντας όλα όσα έχετε µάθει στα προηγούµενα στάδια υλοποιήστε το υπόλοιπο της εφαρµογής. ∆ηλαδή όταν πατηθεί το κουµπί btnEl να εµφανιστεί το µήνυµα «Γεια σου κόσµε». Στάδιο 6. Τερµατισµός της εφαρµογής. Μέχρι τώρα για να τερµατίσετε την εφαρµογή σας κλείνατε απλώς την φόρµα. Ωστόσο, αυτό δεν είναι πάντα σωστό, καθώς οι πιο σύνθετες εφαρµογές πριν τερµατίσουν χρειάζεται να κάνουν κάποιες ενέργειες (π.χ. να κλείσουν τα αρχεία που έχουν ανοίξει). Παρακάτω θα µάθετε πώς να τερµατίζετε την εφαρµογή σας µε κώδικα. Σχεδιάστε ένα νέο κουµπί πάνω στην φόρµα και δώστε του όνοµα btnExit και τίτλο «Έξοδος». ∆ηµιουργήστε το διαχειριστή συµβάντος (event handler) του κουµπιού αυτού (πατώντας διπλό κλικ πάνω στο κουµπί). Συµπληρώστε την ακόλουθη εντολή µέσα στην υπορουτίνα διαχείρισης του συµβάντος: Application.Exit() Πατήστε F5 για να τρέξετε την εφαρµογή. ∆οκιµάστε το κουµπί «Έξοδος» (btnExit). Μόλις το πατήσετε η εφαρµογή θα τερµατιστεί. Στάδιο 7. ∆ιαχείριση και άλλων συµβάντων. Μέχρι τώρα µάθατε να διαχειριζόµαστε το συµβάν «Click» του αντικειµένου κουµπί (Button). Ωστόσο, αυτό δεν είναι το µοναδικό συµβάν που µπορείτε να διαχειριστείτε.

Τα συµβάντα ενός αντικειµένου που βρίσκεται πάνω σε µια φόρµα φαίνονται από το παράθυρο ιδιοτήτων πατώντας το κουµπί events που βρίσκεται στο πάνω µέρος του

ΠΑΡΑΓΩΓΗ CONCEPTUM

23

VVIISSUUAALL BBAASSIICC 22000088 ΕΕΚΚΠΠΑΑΙΙ∆∆ΕΕΥΥΤΤΙΙΚΚΟΟ ΕΕΓΓΧΧΕΕΙΙΡΡΙΙ∆∆ΙΙΟΟ –– ΤΤΕΕΤΤΡΡΑΑ∆∆ΙΙΟΟ Μ ΜΑΑΘ ΘΗΗΤΤΗΗ

παραθύρου ιδιοτήτων. Έχοντας επιλέξει το btnEn βλέπετε τα συµβάντα του αντικειµένου αυτού που µπορείτε να διαχειριστείτε. Μόνο το συµβάν «Click» έχει τιµή. Η τιµή του είναι το όνοµα της υπορουτίνας που ορίσατε ότι θα το διαχειρίζεται. Επιλέξτε το συµβάν «MouseEnter». Αυτό το συµβάν ενεργοποιείται µόλις ο δείκτης του ποντικιού εισέλθει στην περιοχή της οθόνης που καταλαµβάνει το αντικείµενο. Πατήστε διπλό click πάνω στο παράθυρο ιδιοτήτων στο συµβάν «MouseEnter». Η Visual Basic γράφει πάλι λίγο κώδικα για σας δηµιουργώντας µια υπορουτίνα διαχείρισης: Private Sub btnEn_MouseEnter(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnEn.MouseEnter End Sub Εσείς πρέπει τώρα να προσθέσετε τον κώδικα, δηλαδή τις εντολές που θα εκτελούνται όταν συµβαίνει αυτό το συµβάν. Επιστρέψτε στο παράθυρο σχεδιασµού της φόρµας και σχεδιάστε ένα νέο αντικείµενο Label. ∆ώστε του όνοµα (Name) lblMessageHelp και τίτλο (Text) «??». Γυρίστε στο παράθυρο κώδικα και στη υπορουτίνα διαχείρισης του συµβάντος «MouseEnter». Συµπληρώστε την παρακάτω γραµµή κώδικα: Me.lblMessageHelp.Text = "Πατηστε για να δειτε ενα µηνυµα στα Αγγλικά" Πατήστε F5 για να τρέξετε τη εφαρµογή και περάστε το δείκτη του ποντικιού πάνω από το κουµπί btnEn. Το µήνυµα «Πατήστε για να δείτε ένα µήνυµα στα Αγγλικά» εµφανίζεται στο lblMessageHelp. Τώρα θα πρέπει να κάνετε το µήνυµα να εξαφανίζεται όταν ο δείκτης του ποντικιού φεύγει από την περιοχή της οθόνης που καταλαµβάνει το κουµπί btnEn. Για να το κάνετε αυτό θα χρησιµοποιήσετε το συµβάν «MouseLeave». Θα γράψετε την υπορουτίνα διαχείρισης του συµβάντος κατευθείαν στο παράθυρο κώδικα.

ΠΑΡΑΓΩΓΗ CONCEPTUM

24

VVIISSUUAALL BBAASSIICC 22000088 ΕΕΚΚΠΠΑΑΙΙ∆∆ΕΕΥΥΤΤΙΙΚΚΟΟ ΕΕΓΓΧΧΕΕΙΙΡΡΙΙ∆∆ΙΙΟΟ –– ΤΤΕΕΤΤΡΡΑΑ∆∆ΙΙΟΟ Μ ΜΑΑΘ ΘΗΗΤΤΗΗ

Επιλέξτε την υπορουτίνα διαχείρισης που µόλις γράψατε αντιγράψτε την (Copy) και επικολλήστε την (Paste) πριν από την δήλωση «End Class».

Ο κώδικας στο παράθυρο κώδικα θα πρέπει να είναι ο εξής: Public Class Form1 Private Sub btnEn_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnEn.Click Me.lblMessage.Text = "Hello world" End Sub Private Sub btnEl_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnEl.Click Me.lblMessage.Text = "Γειά σου Κόσµε" End Sub Private Sub btnExit_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnExit.Click Application.Exit() End Sub Private Sub btnEn_MouseEnter(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnEn.MouseEnter Me.lblMessageHelp.Text = "Πατήστε για να δείτε ένα µήνυµα στα Αγγλικά" End Sub Private Sub btnEn_MouseEnter(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnEn.MouseEnter Me.lblMessageHelp.Text = " Πατήστε για να δείτε ένα µήνυµα στα Αγγλικά" End Sub

ΠΑΡΑΓΩΓΗ CONCEPTUM

25

VVIISSUUAALL BBAASSIICC 22000088 ΕΕΚΚΠΠΑΑΙΙ∆∆ΕΕΥΥΤΤΙΙΚΚΟΟ ΕΕΓΓΧΧΕΕΙΙΡΡΙΙ∆∆ΙΙΟΟ –– ΤΤΕΕΤΤΡΡΑΑ∆∆ΙΙΟΟ Μ ΜΑΑΘ ΘΗΗΤΤΗΗ

End Class

Τροποποιήστε το τµήµα κώδικα που αντιγράψατε σύµφωνα µε τα παρακάτω: Αλλάξτε το όνοµα της υπορουτίνας σε btnEn_MouseLeave. Αλλάξτε τη δήλωση Handles btnEn.MouseEnter σε Handles btnEn.MouseLeave Αλλάξτε την εντολή Me.lblMessageHelp.Text = " Πατήστε για να δείτε ένα µήνυµα στα Αγγλικά" σε Me.lblMessageHelp.Text = "" Η υπορουτίνα διαχείρισης θα µοιάζει ως εξής: Private Sub btnEn_MouseLeave(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnEn.MouseLeave Me.lblMessageHelp.Text = "" End Sub Πατήστε F5 για να τρέξετε τη εφαρµογή και περάστε το δείκτη του ποντικιού πάνω από το κουµπί btnEn µερικές φορές για να ελέγξετε τη συµπεριφορά του προγράµµατος.

Στάδιο 8. Γράφοντας ξανά κώδικα για συµβάντα. ∆ηµιουργήστε τον αντίστοιχο κώδικα για το κουµπί btnEl. Όταν ο δείκτης του ποντικιού περνάει πάνω από το κουµπί αυτό θα πρέπει να εµφανίζεται το µήνυµα «Πατήστε για να δείτε ένα µήνυµα στα Ελληνικά».

ΠΑΡΑΓΩΓΗ CONCEPTUM

26

VVIISSUUAALL BBAASSIICC 22000088 ΕΕΚΚΠΠΑΑΙΙ∆∆ΕΕΥΥΤΤΙΙΚΚΟΟ ΕΕΓΓΧΧΕΕΙΙΡΡΙΙ∆∆ΙΙΟΟ –– ΤΤΕΕΤΤΡΡΑΑ∆∆ΙΙΟΟ Μ ΜΑΑΘ ΘΗΗΤΤΗΗ

∆ραστηριότητα 2: Παίζοντας µε τις ιδιότητες Στάδιο 1. ∆ηµιουργία εφαρµογής µε δυο διαχειριστές συµβάντων ∆ηµιουργήστε µια νέα εφαρµογή φορµών. Αποθηκεύστε το έργο µε όνοµα drastiriotita2. Πάνω στην φόρµα δηµιουργήστε ένα κουµπί και δώστε του όνοµα «btnUp» και τίτλο «Πάτησέ µε». ∆ηµιουργήστε και ένα δεύτερο κουµπί µε όνοµα «btnDown» και τίτλο «Πάτησέ µε». ∆ηµιουργήστε το διαχειριστή συµβάντος Click του κουµπιού btnUp και συµπληρώστε τον παρακάτω κώδικα. Me.btnDown.Text = "Πάτησέ µε" Me.btnDown.Enabled = True sender.text = "Με πάτησες" sender.enabled = False ∆ηµιουργήστε το διαχειριστή συµβάντος Click του κουµπιού btnDown και συµπληρώστε τον παρακάτω κώδικα. Me.btnUp.Text = "Πάτησέ µε" Me.btnUp.Enabled = True sender.text = "Με πάτησες" sender.enabled = False Πατήστε F5 για να τρέξετε την εφαρµογή. Επεξήγηση των εντολών. Πατώντας το κουµπί btnUp θα εκτελεστούν πρώτα οι εντολές Me.btnDown.Text = "Πάτησέ µε" Me.btnDown.Enabled = True Το αντικείµενο «Me» είναι µια σύµβαση της Visual Basic και αναφέρεται στη φόρµα πάνω στην οποία βρίσκεται ο κώδικας. Επειδή τα κουµπιά btnDown και btnUp βρίσκονται πάνω στη φόρµα θεωρούνται παιδιά της φόρµας και µπορείτε να αναφερθείτε σε αυτά βάζοντας µια τελεία (.) µετά το «Me». Η ιδιότητα Text ανήκει ΠΑΡΑΓΩΓΗ CONCEPTUM

27

VVIISSUUAALL BBAASSIICC 22000088 ΕΕΚΚΠΠΑΑΙΙ∆∆ΕΕΥΥΤΤΙΙΚΚΟΟ ΕΕΓΓΧΧΕΕΙΙΡΡΙΙ∆∆ΙΙΟΟ –– ΤΤΕΕΤΤΡΡΑΑ∆∆ΙΙΟΟ Μ ΜΑΑΘ ΘΗΗΤΤΗΗ

στο κουµπί btnDown και έτσι µπορούµε να αναφερθούµε σε αυτή βάζοντας τελεία (.) µετά το όνοµα του κουµπιού. Το ίδιο ισχύει για την ιδιότητα «Enabled», που µπορεί να πάρει µόνο δυο τιµές (true και false). Όταν έχει τιµή true το κουµπί µπορεί να πατηθεί, ενώ όταν έχει τιµή false το κουµπί είναι ανενεργό. Οι επόµενες δυο γραµµές χρησιµοποιούν την παράµετρο «Sender». Προσέξτε στο ορισµό του διαχειριστή συµβάντος τις παραµέτρους: Private Sub btnUp_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnUp.Click Η παράµετρος sender αναφέρεται στο αντικείµενο που ενεργοποίησε το συµβάν. Σε αυτή την περίπτωση η παράµετρος sender αναφέρεται στο αντικείµενο btnUp, επειδή αυτό το αντικείµενο ενεργοποίησε το συµβάν. ∆οκιµάστε να αντικαταστήσετε την εντολή sender.text = "Με πάτησες" µε την εντολή Me.btnUp.text = "Με πάτησες" Τρέξτε το πρόγραµµα. Παρατηρείτε κάποια διαφορά; _____________________________________________________________________ _____________________________________________________________________

Στάδιο 2. ∆ιαχείριση πολλών συµβάντων µε την ίδια υπορουτίνα Ανοίξτε το έργο drastiriotita2_2. Τρέξτε την εφαρµογή. ∆εν πρέπει να έχει καµία διαφορά µε την εφαρµογή που φτιάξατε στο προηγούµενο στάδιο. Τώρα ανοίξτε το παράθυρο κώδικα και παρατηρήστε τον κώδικα. Public Class Form1 Private Sub btn_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnUp.Click, btnDown.Click ΠΑΡΑΓΩΓΗ CONCEPTUM

28

VVIISSUUAALL BBAASSIICC 22000088 ΕΕΚΚΠΠΑΑΙΙ∆∆ΕΕΥΥΤΤΙΙΚΚΟΟ ΕΕΓΓΧΧΕΕΙΙΡΡΙΙ∆∆ΙΙΟΟ –– ΤΤΕΕΤΤΡΡΑΑ∆∆ΙΙΟΟ Μ ΜΑΑΘ ΘΗΗΤΤΗΗ

Me. btnDown.Text = "Πάτησέ µε" Me.btnDown.Enabled = True Me.btnUp.Text = "Πάτησέ µε" Me.btnUp.Enabled = True sender.text = "Με πάτησες" sender.enabled = False End Sub End Class Υπάρχει µόνο µια υπορουτίνα που διαχειρίζεται τα συµβάντα Click και των δυο κουµπιών (btnUp, btnDown). Αυτό το πετυχαίνουµε αναφέροντας µετά τη δήλωση «Handles» τα συµβάντα που θα διαχειριστεί αυτή η υπορουτίνα χωρίζοντάς τα µε κόµµα. Τα συµβάντα τα δηλώνουµε µε τη εξής σύνταξη: αντικείµενο.συµβάν (π.χ. Handles btnUp.Click, btnDown.Click). Όταν πατηθεί οποιοδήποτε από τα δυο κουµπιά το πρόγραµµα µε τις εντολές Me. btnDown.Text = "Πάτησέ µε" Me.btnDown.Enabled = True Me.btnUp.Text = "Πάτησέ µε" Me.btnUp.Enabled = True βάζει τίτλο «Πάτησέ µε» και στα δυο κουµπιά και τα κάνει και τα δυο ενεργά. Ακολούθως χρησιµοποιώντας την παράµετρο sender µε τις εντολές sender.text = "Με πάτησες" sender.enabled = False Βάζει τον τίτλο «Με πάτησες» στο κουµπί που πατήθηκε και το κάνει και ανενεργό. Κλείστε το έργο drastiriotita2_2. Μετά επιστρέψτε στο έργο drastiriotita2 που φτιάξατε εσείς. Σβήστε τον κώδικα και δοκιµάστε να τον ξαναγράψετε µε τον τρόπο που µάθατε στο έργο drastiriotita2_2.

ΠΑΡΑΓΩΓΗ CONCEPTUM

29

VVIISSUUAALL BBAASSIICC 22000088 ΕΕΚΚΠΠΑΑΙΙ∆∆ΕΕΥΥΤΤΙΙΚΚΟΟ ΕΕΓΓΧΧΕΕΙΙΡΡΙΙ∆∆ΙΙΟΟ –– ΤΤΕΕΤΤΡΡΑΑ∆∆ΙΙΟΟ Μ ΜΑΑΘ ΘΗΗΤΤΗΗ

Φύλλο εργασίας

3. Η έννοια των σταθερών και των µεταβλητών στη Visual Basic

Όνοµα: Τάξη: ∆ιάρκεια: 3 διδακτικές ώρες.

∆ιδακτικοί στόχοι: Μετά την ολοκλήρωση των δραστηριοτήτων του συγκεκριµένου φύλλο εργασίας θα: •

γνωρίζετε τους τύπους των σταθερών και των µεταβλητών της Visual Basic



γνωρίζετε πώς δηλώνονται οι µεταβλητές



είστε ικανοί να κάνετε αριθµητικές και αλφαριθµητικές πράξεις µέσα από κώδικα της Visual Basic



γνωρίζετε να βάζετε σχόλια σε ένα πρόγραµµα Visual Basic

∆ραστηριότητα 1 : Σταθερές στην Visual Basic Όταν γράφετε κώδικα χρειάζεται να αποτυπώνετε σταθερές τιµές µε τρόπο που να τις καταλαβαίνει ο µεταγλωττιστής. Οι σταθερές τιµές χωρίζονται σε τρεις µεγάλες κατηγορίες : αριθµητικές , λογικές , αλφαριθµητικές Οι αριθµητικές σταθερές αναπαριστούν αριθµούς. Για να αναπαρασταθεί µια αριθµητική σταθερά στον κώδικα της Visual Basic χρειάζεται να γραφτεί απλώς ο αριθµός που εκφράζει, π.χ 1 ή 1345678. Προσοχή δεν θα πρέπει να χωρίζετε τις χιλιάδες µε τελεία (.). Για να γράψετε ένα δεκαδικό αριθµό χρησιµοποιείστε την τελεία (.) για να χωρίσετε το δεκαδικό από το ακέραιο µέρος π.χ. 210.10 Οι λογικές σταθερές είναι δυο (true και false). ΠΑΡΑΓΩΓΗ CONCEPTUM

30

VVIISSUUAALL BBAASSIICC 22000088 ΕΕΚΚΠΠΑΑΙΙ∆∆ΕΕΥΥΤΤΙΙΚΚΟΟ ΕΕΓΓΧΧΕΕΙΙΡΡΙΙ∆∆ΙΙΟΟ –– ΤΤΕΕΤΤΡΡΑΑ∆∆ΙΙΟΟ Μ ΜΑΑΘ ΘΗΗΤΤΗΗ

Οι αλφαριθµητικές σταθερές αναπαριστούν µια σειρά χαρακτήρων. Στην Visual Basic οι αλφαριθµητικές σταθερές µπαίνουν µέσα σε αγγλικά εισαγωγικά(”), π.χ. “Hello World” ή “Στις 8 το βράδυ”. Σαν σταθερές, επίσης, µπορούν να χρησιµοποιηθούν και πράξεις µεταξύ σταθερών, π.χ. για να γράψετε σαν σταθερά το διπλάσιο του 686 χωρίς να χρησιµοποιήσετε calculator µπορείτε να γράψετε κατευθείαν 686*2. Γράψτε δίπλα σε κάθε σταθερά τι τύπου σταθερά είναι (αριθµητική, λογική, αλφαριθµητική) 18 “2104896520” “A9” 9.30 true 10/2

∆ραστηριότητα 2 : Η εντολή καταχώρησης στην Visual Basic Όπως όλες οι γλώσσες προγραµµατισµού έτσι και η Visual Basic χρησιµοποιεί µεταβλητές για να αποθηκεύσει τιµές. Η τιµή µιας µεταβλητής, όπως προκύπτει και από το όνοµά της, µπορεί να µεταβληθεί κατά τη διάρκεια της εκτέλεσης του προγράµµατος χρησιµοποιώντας εντολές καταχώρησης. Η εντολή καταχώρησης στη Visual Basic αναπαρίσταται µε το σύµβολο “=”. Μια απλή εντολή καταχώρησης είναι η παρακάτω: a =1 Η παραπάνω εντολή διαβάζεται ως εξής: καταχώρησε στην µεταβλητή a την τιµή 1. Η µεταβλητή a θα διατηρήσει την τιµή 1 µέχρι να την αλλάξουµε µε µια νέα εντολή καταχώρησης ή µέχρι να τερµατιστεί το πρόγραµµα.

ΠΑΡΑΓΩΓΗ CONCEPTUM

31

VVIISSUUAALL BBAASSIICC 22000088 ΕΕΚΚΠΠΑΑΙΙ∆∆ΕΕΥΥΤΤΙΙΚΚΟΟ ΕΕΓΓΧΧΕΕΙΙΡΡΙΙ∆∆ΙΙΟΟ –– ΤΤΕΕΤΤΡΡΑΑ∆∆ΙΙΟΟ Μ ΜΑΑΘ ΘΗΗΤΤΗΗ

Άλλο παράδειγµα είναι το εξής: str = “Hello World” αυτό διαβάζεται : καταχώρησε στη µεταβλητή str την τιµή “Hello World” Ένα πιο σύνθετο παράδειγµα a=1 b=a αυτό διαβάζεται: καταχώρησε στην µεταβλητή a την τιµή 1. καταχώρησε στην µεταβλητή b την τιµή της µεταβλητής a. Μετά την εκτέλεση των δυο εντολών η µεταβλητή b θα έχει και αυτή την τιµή 1. Παρακολουθήστε τις παρακάτω εντολές και γράψτε τι τιµή θα έχει η µεταβλητή c: a=3 b=4 c=b c=a c=c _____________________________________________________________________ _____________________________________________________________________ _____________________________________________________________________

∆ραστηριότητα 3: Ορισµός µεταβλητών και τύποι µεταβλητών στη Visual Basic Για να χρησιµοποιηθεί µια µεταβλητή πρέπει πρώτα να οριστεί. Αυτό σηµαίνει πως δίνουµε εντολή στον υπολογιστή να δηµιουργήσει µια µεταβλητή. ∆ηλαδή, ο υπολογιστής θα κρατήσει ένα χώρο στη µνήµη, στον οποίο θα µπορεί το πρόγραµµα µας να αποθηκεύει τιµές. Οι τιµές που θα αποθηκευτούν εκεί µπορεί να είναι διαφορετικών τύπων (θυµηθείτε τους τρεις τύπους σταθερών που προαναφέραµε). Αντίστοιχα και όταν δηλώνουµε µια µεταβλητή θα πρέπει να εξηγήσουµε στον

ΠΑΡΑΓΩΓΗ CONCEPTUM

32

VVIISSUUAALL BBAASSIICC 22000088 ΕΕΚΚΠΠΑΑΙΙ∆∆ΕΕΥΥΤΤΙΙΚΚΟΟ ΕΕΓΓΧΧΕΕΙΙΡΡΙΙ∆∆ΙΙΟΟ –– ΤΤΕΕΤΤΡΡΑΑ∆∆ΙΙΟΟ Μ ΜΑΑΘ ΘΗΗΤΤΗΗ

υπολογιστή τι τύπους τιµών σχεδιάζουµε να αποθηκεύσουµε εκεί, ώστε να κρατήσει τον ανάλογο χώρο στη µνήµη. Ο ορισµός µιας µεταβλητής γίνεται µε την δήλωση Dim. Μετά βάζουµε το όνοµα της µεταβλητής, δηλαδή ένα όνοµα, µε το οποίο θα µπορούµε να αναφερθούµε σε αυτή την περιοχή της µνήµης έτσι ώστε να µπορούµε να αποθηκεύουµε τιµές και µετά να τις διαβάζουµε. Μετά µπαίνει η δήλωση as και στο τέλος ο τύπος της µεταβλητής, για παράδειγµα: Dim num As Integer (δηµιούργησε µια µεταβλητή στη οποία θα αποθηκεύουµε ακέραιες τιµές) Dim str As String (δηµιούργησε µια µεταβλητή στη οποία θα αποθηκεύουµε αλφαριθµητικές τιµές Dim bool As Boolean (δηµιούργησε µια µεταβλητή στη οποία θα αποθηκεύουµε λογικές τιµές) Στις µεταβλητές µπορείτε να καταχωρήσετε τιµές που να αντιστοιχούν µε τον τύπο τους. Εντοπίστε αν οι παρακάτω καταχωρήσεις καταχωρούν τιµές σύµφωνα µε το τύπο της µεταβλητής και γιατί (θεωρήστε ότι ισχύουν οι τρεις δηλώσεις µεταβλητών που δόθηκαν σαν παράδειγµα πιο πάνω). num = 100 num = 12.10 str = 100 str = “είµαι µαθητής” str = “18.30” bool = 217 bool = false

ΠΑΡΑΓΩΓΗ CONCEPTUM

33

VVIISSUUAALL BBAASSIICC 22000088 ΕΕΚΚΠΠΑΑΙΙ∆∆ΕΕΥΥΤΤΙΙΚΚΟΟ ΕΕΓΓΧΧΕΕΙΙΡΡΙΙ∆∆ΙΙΟΟ –– ΤΤΕΕΤΤΡΡΑΑ∆∆ΙΙΟΟ Μ ΜΑΑΘ ΘΗΗΤΤΗΗ

Αν δοκιµάσετε να καταχωρίσετε τιµή άλλου τύπου από τον τύπο της µεταβλητής, η Visual Basic θα προσπαθήσει να µετατρέψει την τιµή στον τύπο της µεταβλητής (το αποτέλεσµα δεν είναι πάντα το αναµενόµενο και πρέπει να αποφεύγεται). Αν δεν τα καταφέρει το πρόγραµµα σας θα τερµατιστεί µε ένα µήνυµα λάθους.

∆ραστηριότητα 4: Οι αριθµητικές µεταβλητές αναλυτικότερα Στην προηγούµενη δραστηριότητα ορίσατε µια µεταβλητή ως ακέραιο (Integer). Στο χώρο της µνήµης που κρατάει ο υπολογιστής για µια µεταβλητή τύπου Integer µπορείτε να αποθηκεύσετε τιµές από µείον 2 δισεκατοµµύρια µέχρι δυο δισεκατοµµύρια περίπου. Για την ακρίβεια από -2.147.483.648 εως 2.147.483.647 . Για να αποθηκεύσετε µεγαλύτερους ακεραίους ή δεκαδικούς αριθµούς χρειάζεστε άλλου τύπου µεταβλητές. Στον παρακάτω πίνακα παρατίθενται (από το αρχείο βοήθειας της Visual Basic) όλοι οι τύποι αριθµητικών µεταβλητών που µπορούν να οριστούν και οι τιµές που µπορούν να πάρουν. Byte

0 through 255 (unsigned)

Decimal 0 through +/79,228,162,514,264,337,593,543,950,335 (+/7.9...E+28) † with no decimal point; 0 through +/7.9228162514264337593543950335 with 28 places to the right of the decimal; smallest nonzero number is +/0.0000000000000000000000000001 (+/-1E-28) † Double

-1.79769313486231570E+308 through -

(double- 4.94065645841246544E-324 † for negative values; precision 4.94065645841246544E-324 through floating- 1.79769313486231570E+308 † for positive values point) Integer

-2,147,483,648 through 2,147,483,647 (signed)

ΠΑΡΑΓΩΓΗ CONCEPTUM

34

VVIISSUUAALL BBAASSIICC 22000088 ΕΕΚΚΠΠΑΑΙΙ∆∆ΕΕΥΥΤΤΙΙΚΚΟΟ ΕΕΓΓΧΧΕΕΙΙΡΡΙΙ∆∆ΙΙΟΟ –– ΤΤΕΕΤΤΡΡΑΑ∆∆ΙΙΟΟ Μ ΜΑΑΘ ΘΗΗΤΤΗΗ

Long

-9,223,372,036,854,775,808 through

(long

9,223,372,036,854,775,807 (9.2...E+18 †) (signed)

integer) SByte

-128 through 127 (signed)

Short

-32,768 through 32,767 (signed)

(short integer) Single

-3.4028235E+38 through -1.401298E-45 † for

(single-

negative values;

precision 1.401298E-45 through 3.4028235E+38 † for positive floating- values point) UInteger 0 through 4,294,967,295 (unsigned) ULong

0 through 18,446,744,073,709,551,615 (1.8...E+19 †) (unsigned)

UShort

0 through 65,535 (unsigned)

Σηµειώστε στην τελευταία στήλη αν οι τιµές που µπορεί να πάρει κάθε τύπος είναι ακέραιες ή δεκαδικές. Στη συνέχεια, σηµειώστε µε ένα ναι ή ένα όχι στην τελευταία στήλη αν ο τύπος µπορεί να πάρει αρνητικές τιµές (π.χ -2)

∆ραστηριότητα 5 : Πράξεις µε αριθµητικές µεταβλητές Με τις µεταβλητές µπορούν να γίνουν αριθµητικές πράξεις, άλλωστε οι υπολογιστές αρχικά κατασκευάστηκαν γι αυτό το σκοπό.

ΠΑΡΑΓΩΓΗ CONCEPTUM

35

VVIISSUUAALL BBAASSIICC 22000088 ΕΕΚΚΠΠΑΑΙΙ∆∆ΕΕΥΥΤΤΙΙΚΚΟΟ ΕΕΓΓΧΧΕΕΙΙΡΡΙΙ∆∆ΙΙΟΟ –– ΤΤΕΕΤΤΡΡΑΑ∆∆ΙΙΟΟ Μ ΜΑΑΘ ΘΗΗΤΤΗΗ

Για να γίνουν αριθµητικές πράξεις µε την visual Basic χρησιµοποιούνται οι εξής τελεστές: Πρόσθεση

+

a = 1+2

Το a παίρνει τιµή 3

Αφαίρεση

-

a = 3-4

Το a παίρνει τιµή -1

Πολλαπλασιασµός

*

a = 4*5

Το a παίρνει τιµή 20

∆ιαίρεση

/

a = 9/2

Το a παίρνει τιµή 4.5

Ύψωση σε δύναµη

^

a = 2^3

Το a παίρνει τιµή 8

Ακέραιο µέρος διαίρεσης

\

a = 9/2

Το a παίρνει τιµή 4

Υπόλοιπο διαίρεσης

Mod

10 Mod 3

Το a παίρνει τιµή 1

Οι αριθµητικές πράξει µπορούν να γίνουν όχι µόνο µε σταθερές τιµές, όπως στα παραπάνω παραδείγµατα, αλλά και µε τιµές µεταβλητών, π.χ.: Dim num As Integer 'δηµιουργησε µια µεταβλητη τυπου Integer µε όνοµα num num = 10

'βάλε τιµή 10 στην µεταβλητή num

num = num + 1

'υπολόγισε την τιµή num + 1 και καταχώρησέ την στη µεταβλητή

num Στην Visual Basic όταν χρειάζεται να µπουν σχόλια στον κώδικα χρησιµοποιείται το σύµβολο (‘). Η Visual Basic αγνοεί οτιδήποτε γραφτεί µετά από αυτό το σύµβολο και µέχρι το τέλος της γραµµής. Στο παραπάνω παράδειγµα σε σχόλια βρίσκεται ο ψευδοκώδικας του προγράµµατος. Στις παρακάτω γραµµές κώδικα συµπληρώστε στα σχόλια τις τιµές που παίρνουν οι µεταβλητές που ζητούνται µετά την εκτέλεση της εντολής. Dim num As Integer Dim int As Integer num = 10

' num : ......

ΠΑΡΑΓΩΓΗ CONCEPTUM

36

VVIISSUUAALL BBAASSIICC 22000088 ΕΕΚΚΠΠΑΑΙΙ∆∆ΕΕΥΥΤΤΙΙΚΚΟΟ ΕΕΓΓΧΧΕΕΙΙΡΡΙΙ∆∆ΙΙΟΟ –– ΤΤΕΕΤΤΡΡΑΑ∆∆ΙΙΟΟ Μ ΜΑΑΘ ΘΗΗΤΤΗΗ

num = num + 1 ' num : ...... int = 9

' num : ...... , int : ......

num = int \ 3 ' num : ...... , int : ...... int = num + int ' num : ...... , int : ...... num = int Mod 5 ' num : ...... , int : ...... Όταν υπάρχουν πολύπλοκες αριθµητικές παραστάσεις π.χ. a = 2 * 3 + 2 * 4 µε διαφορετικούς τελεστές, οι πράξεις µεταξύ των τελεστών του πολλαπλασιασµού και της διαίρεσης εκτελούνται πρώτα και µετά οι πράξεις µεταξύ τελεστών πρόσθεσης και αφαίρεσης. Στο παραπάνω παράδειγµα η µεταβλητή a θα πάρει τιµή 14 και είναι ισοδύναµο µε το a = (2*3) + (2 * 4). Για να υπολογιστεί το a = 2 * (3 + 2) * 4, που δίνει την τιµή 40 στην µεταβλητή a, χρησιµοποιούνται παρενθέσεις για να εξηγηθεί στην Visual Basic ποια πράξη να εκτελέσει πρώτα. Σηµείωση. Όταν δηλώνουµε µια µεταβλητή µπορούµε να δώσουµε αρχική τιµή στην γραµµή της δήλωσης. ∆ηλαδή : Dim num As Integer = 0 Αυτή η εντολή ειναι ισδυναµη µε τις παρακάτω Dim num As Integer num = 0

∆ραστηριότητα 6: Αλφαριθµητικές µεταβλητές Υπάρχουν δυο τύποι αλφαριθµητικών µεταβλητών. Στις αλφαριθµητικές µεταβλητές µπορούν να δοθούν σαν τιµές χαρακτήρες. Ο τύπος Char µπορεί να πάρει τιµές που αποτελούνται από έναν χαρακτήρα, π.χ.: Dim ch As Char ch = "a" Dim myChar As Char myChar = ";"

ΠΑΡΑΓΩΓΗ CONCEPTUM

37

VVIISSUUAALL BBAASSIICC 22000088 ΕΕΚΚΠΠΑΑΙΙ∆∆ΕΕΥΥΤΤΙΙΚΚΟΟ ΕΕΓΓΧΧΕΕΙΙΡΡΙΙ∆∆ΙΙΟΟ –– ΤΤΕΕΤΤΡΡΑΑ∆∆ΙΙΟΟ Μ ΜΑΑΘ ΘΗΗΤΤΗΗ

Ο άλλος τύπος είναι ο τύπος String, µε τον οποίο ασχοληθήκατε στη δραστηριότητα 3. Μπορεί να πάρει τιµές που αποτελούνται σειρές χαρακτήρων, π.χ.: Dim str As String str = "Μια φορά και έναν καιρό" Dim myStr As String myStr = "2108865328, το τηλέφωνο µου" Με τις αλφαριθµητικές µεταβλητές µπορεί να γίνει µόνο µια πράξη, η σύνθεση (Concatenation). Ο τελεστής της σύνθεσης είναι ο “&”. Εναλλακτικά, µπορεί να χρησιµοποιηθεί και ο τελεστής “+” Παράδειγµα: Dim strHello As String strHello = "Hello" Dim space As Char space = " " Dim strWorld As String strWorld = "World" Dim str As String str = strHello & space & strWorld Η µεταβλητή str θα πάρει την τιµή “Hello World” µετά την εκτέλεση των εντολών. Συµπληρώστε παρακάτω στα σχόλια τις τιµες που θα πάρει η µεταβλητή str µετα την εκτέλεση της κάθε εντολής Dim str As String str = "Hello " + "World" '_______________________________________ str = str & "."

'_______________________________________

str = "Hello+" & "world" '_______________________________________ str = "Hello & World"

'_______________________________________

str = "Hello & " + "World" '_______________________________________

ΠΑΡΑΓΩΓΗ CONCEPTUM

38

VVIISSUUAALL BBAASSIICC 22000088 ΕΕΚΚΠΠΑΑΙΙ∆∆ΕΕΥΥΤΤΙΙΚΚΟΟ ΕΕΓΓΧΧΕΕΙΙΡΡΙΙ∆∆ΙΙΟΟ –– ΤΤΕΕΤΤΡΡΑΑ∆∆ΙΙΟΟ Μ ΜΑΑΘ ΘΗΗΤΤΗΗ

Φύλλο εργασίας

4. Οι συναρτήσεις και υπορουτίνες στη Visual Basic

Όνοµα: Τάξη: ∆ιάρκεια: 3 διδακτικές ώρες.

∆ιδακτικοί στόχοι: Με το συγκεκριµένο φύλλο εργασίας: •

θα µάθετε να δηµιουργείτε υπορουτίνες στη Visual Basic



θα µάθετε να δηµιουργείτε συναρτήσεις που επιστρέφουν τιµές



θα αποκτήσετε µία πρώτη επαφή µε τις έννοιες των τοπικών και καθολικών µεταβλητών.

∆ραστηριότητα 1 : ∆ηµιουργία µιας υπορουτίνας Στο προηγούµενο φύλλο εργασίας µάθατε πώς συντάσσονται οι εντολές καταχώρησης και επίσης πώς µπορείτε να κάνετε αριθµητικές πράξεις και να καταχωρήσετε το αποτέλεσµά τους σε µια µεταβλητή. Στον κώδικα που ακολουθεί τοποθετήστε την τιµή 3.333… στην µεταβλητή num. Με τις υπόλοιπες εντολές προσπαθήστε να κρατήσετε µόνο τα δυο πρώτα δεκαδικά του περιοδικού αυτού αριθµού, έτσι ώστε να καταχωρήσετε στη µεταβλητή num τον αριθµό 3.33 . Sub Main() Dim num As Double num = 10 / 3 Console.WriteLine(num) ' δειξε την τιµή του num στην κονσολα Dim temp As Double

ΠΑΡΑΓΩΓΗ CONCEPTUM

39

VVIISSUUAALL BBAASSIICC 22000088 ΕΕΚΚΠΠΑΑΙΙ∆∆ΕΕΥΥΤΤΙΙΚΚΟΟ ΕΕΓΓΧΧΕΕΙΙΡΡΙΙ∆∆ΙΙΟΟ –– ΤΤΕΕΤΤΡΡΑΑ∆∆ΙΙΟΟ Μ ΜΑΑΘ ΘΗΗΤΤΗΗ

temp = num * 100 ' Βάλε στη µεταβλητή temp την τιµή num *100 -> 333.33333... temp = temp \ 1 ' Βαλε στη µεταβλητή temp την τιµή (ακέραιο µερος της διάρεσης (temp δια 1) -> 333) temp = temp / 100 ' Βάλε στη µεταβλητή temp την τιµή temp δια 100 num = temp ' Βάλε στη µεταβλητή num την τιµή temp Console.WriteLine(num) ' δειξε την τιµή του num στην κονσολα Console.ReadLine() ' διάβασε χαρακτήρες από το πληκτρολόγιο µεχρι να πατηθεί enter End Sub ∆ηµιουργήστε µια νέα εφαρµογή κονσόλας σε Visual Basic και πληκτρολογήστε τον κώδικα. Εµφανίζονται τα παρακάτω αποτελέσµατα όταν τρέξετε την εφαρµογή:

Ο υπολογισµός που κάνατε (να βρείτε την τιµή ενός αριθµού µε ακρίβεια δυο δεκαδικών ψηφίων) απαιτεί περισσότερες από µια εντολές. Οι εντολές αυτές θα ήταν καλό να οµαδοποιηθούν. Για την οµαδοποίηση εντολών η visual basic προσφέρει υπορουτίνες (subs) και συναρτήσεις (functions). Συναντήσατε πρώτη φορά τις υπορουτίνες όταν γράψατε υπορουτίνες χειρισµού συµβάντων στο φύλλο εργασίας 2. Οι υπορουτίνες οµαδοποιούν µια σειρά εντολών. Όταν «καλείτε» µια υπορουτίνα εκτελούνται οι εντολές που περιλαµβάνει. Στο Φ.Ε.2 οι υπορουτίνες χειρισµού συµβάντων που φτιάξατε καλούνται από την Visual Basic όταν πατάτε το αντίστοιχο κουµπί. Ωστόσο, µπορείτε να φτιάξετε υπορουτινες που να τις καλείτε από τον κώδικα, σαν να ήταν εντολές της Visual Basic. Όπως και οι µεταβλητές, οι υπορουτίνες πρέπει να δηλώνονται. Η δήλωση της υπορυτίνας γίνεται ως εξής: Sub calcubateTwodecimalPlaces() End Sub

ΠΑΡΑΓΩΓΗ CONCEPTUM

40

VVIISSUUAALL BBAASSIICC 22000088 ΕΕΚΚΠΠΑΑΙΙ∆∆ΕΕΥΥΤΤΙΙΚΚΟΟ ΕΕΓΓΧΧΕΕΙΙΡΡΙΙ∆∆ΙΙΟΟ –– ΤΤΕΕΤΤΡΡΑΑ∆∆ΙΙΟΟ Μ ΜΑΑΘ ΘΗΗΤΤΗΗ

Στην αρχή µπαίνει η δήλωση «Sub». Μετά το όνοµα της υπορουτίνας ακολουθούµενο από παρενθέσεις. Μετά γράφετε τις εντολές που θα περιέχει η υπορουτίνα. Τέλος, µπαίνει η δήλωση «End Sub». Ξαναγράψτε τον κώδικά σας µε χρήση υπορουτίνας Module Module1 Dim num As Double Sub calcubateTwoDecimalPlaces () Dim temp As Double temp = num * 100 ' Βάλε στη µεταβλητή temp την τιµή num *100 -> 333.33333... temp = temp \ 1 ' Βαλε στη µεταβλητή temp την τιµή (ακέραιο µερος της διάρεσης (temp δια 1) -> 333) temp = temp / 100 ' Βάλε στη µεταβλητή temp την τιµή temp δια 100 num = temp ' Βάλε στη µεταβλητή num την τιµή temp End Sub Sub Main() num = 10 / 3 Console.WriteLine(num) ' δειξε την τιµή του num στην κονσολα calcubateTwoDecimalPlaces() ' καλούµε την υπορουτίνα calcubateTwoDecimalPlaces Console.WriteLine(num) ' δειξε την τιµή του num στην κονσολα Console.ReadLine() ' διάβασε χαρακτήρες από το πληκτρολόγιο µεχρι να πατηθεί enter End Sub End Module

Παρατηρήστε τη δήλωση «Dim num As Double». Έχει µετακινηθεί έξω από τη δήλωση «Sub Main()». Πληκτρολογήστε τον παραπάνω κώδικα. ∆οκιµάστε να µεταφέρετε την δήλωση «Dim num As Double» µετά τη δήλωση «Sub Main()» και προσπαθήστε να τρέξετε το πρόγραµµα. Τι Παρατηρείτε; .......................................................................................................................................... .......................................................................................................................................... .......................................................................................................................................... ..........................................................................................................................................

ΠΑΡΑΓΩΓΗ CONCEPTUM

41

VVIISSUUAALL BBAASSIICC 22000088 ΕΕΚΚΠΠΑΑΙΙ∆∆ΕΕΥΥΤΤΙΙΚΚΟΟ ΕΕΓΓΧΧΕΕΙΙΡΡΙΙ∆∆ΙΙΟΟ –– ΤΤΕΕΤΤΡΡΑΑ∆∆ΙΙΟΟ Μ ΜΑΑΘ ΘΗΗΤΤΗΗ

∆ραστηριότητα 2: Υπορουτίνα µε παραµέτρους. Οι υπορουτίνες χρησιµοποιούνται για να οµαδοποιηθούν εντολές και να γίνουν όσο το δυνατόν πιο ανεξάρτητες από το υπόλοιπο πρόγραµµα. Η υπορουτίνα που γράψατε υπολογίζει τα δυο πρώτα δεκαδικά ψηφία της µεταβλητής num. Φανταστείτε πως έχετε δυο µεταβλητές τις num1 και num2 που πρέπει να κάνετε τον ίδιο υπολογισµό. ∆εν θα ήταν δόκιµο να γράψετε µια διαφορετική υπορουτίνα για κάθε µία. Γι αυτό το λόγο χρησιµοποιούνται οι παράµετροι. Η παράµετρος είναι µια µεταβλητή που «στέλνεται» σε µια υπορουτίνα. Έτσι µπορείτε να κάνετε µια υπορουτίνα να κάνει διαφορετικά πράγµατα ανάλογα µε τις παραµέτρους που της στέλνετε. Η δήλωση υπορουτίνας µε παραµέτρους γίνεται ως εξής: Sub calculate2DecimalPlaces(ByVal theNum As Double) End Sub Παρατηρήστε ότι µέσα στις παρενθέσεις δηλώνεται µια µεταβλητή µετά την δήλωση «ByVal». Όταν καλείτε την υπορουτίνα χρειάζεται να της στέλνετε µια τιµή που θα είναι η αρχική τιµή της παραµέτρου. Την τιµή αυτή τη στέλνετε βάζοντας µέσα στις παρενθέσεις µια µεταβλητή ή µια σταθερά. ∆είτε τον παρακάτω κώδικα: Module Module1 Sub calculate2DecimalPlaces(ByVal theNum As Double) Dim temp As Double temp = theNum * 100 ' Βάλε στη µεταβλητή temp την τιµή num *100 temp = temp \ 1 ' Βαλε στη µεταβλητή temp την τιµή (ακέραιο µερος της διάρεσης (temp δια 1) temp = temp / 100 ' Βάλε στη µεταβλητή temp την τιµή temp δια 100 theNum = temp ' Βάλε στη µεταβλητή num την τιµή temp End Sub Sub Main() Dim num1 As Double num1 = 10 / 3 Console.WriteLine(num1) ' δειξε την τιµή του num στην κονσολα calculate2DecimalPlaces(num1) ' καλούµε την calcubateTwoDecimalPlaces Console.WriteLine(num1) ' δειξε την τιµή του num στην κονσολα ΠΑΡΑΓΩΓΗ CONCEPTUM

42

υπορουτίνα

VVIISSUUAALL BBAASSIICC 22000088 ΕΕΚΚΠΠΑΑΙΙ∆∆ΕΕΥΥΤΤΙΙΚΚΟΟ ΕΕΓΓΧΧΕΕΙΙΡΡΙΙ∆∆ΙΙΟΟ –– ΤΤΕΕΤΤΡΡΑΑ∆∆ΙΙΟΟ Μ ΜΑΑΘ ΘΗΗΤΤΗΗ

Console.ReadLine() πατηθεί enter

' διάβασε χαρακτήρες από το πληκτρολόγιο µεχρι να

End Sub End Module Έχετε δηµιουργήσει µια υπορουτίνα µε παράµετρο. Σαν παράµετρο όταν καλείτε την υπορουτίνα µε την εντολή calculate2DecimalPlaces(num1) περνάτε την τιµή της µεταβλητής num1. Όταν αρχίζει να εκτελείται η υπορουτίνα, η µεταβλητή theNum που είναι το όνοµα τής παραµέτρου παίρνει σαν τιµή την τιµή της µεταβλητής num1. Προσέξτε τη δήλωση «Dim num1 As Double». Αυτή βρίσκεται µετά τη δήλωση «Sub Main()». ∆οκιµάστε να την µεταφέρετε κάτω από τη δήλωση «Module Module1». Παρατηρείστε πως δεν υπάρχει πρόβληµα. Πληκτρολογήστε και τρέξτε το πρόγραµµα. Το αποτέλεσµα του προγράµµατος είναι αυτό:

Ωστόσο, αυτό δεν είναι το επιθυµητό αποτέλεσµα. Ο κώδικας που γράψατε στη δραστηριότητα 1 είχε το παρακάτω αποτέλεσµα:

Προσπαθήστε να εξηγήσετε γιατί συµβαίνει αυτό. (Γράψτε την εντολή «Console.WriteLine(theNum)» ακριβώς πριν από το τέλος της υπορουτίνας calculate2DecimalPlaces() για να κατανοήσετε καλύτερα το πρόβληµα). .......................................................................................................................................... .......................................................................................................................................... .......................................................................................................................................... .......................................................................................................................................... ΠΑΡΑΓΩΓΗ CONCEPTUM

43

VVIISSUUAALL BBAASSIICC 22000088 ΕΕΚΚΠΠΑΑΙΙ∆∆ΕΕΥΥΤΤΙΙΚΚΟΟ ΕΕΓΓΧΧΕΕΙΙΡΡΙΙ∆∆ΙΙΟΟ –– ΤΤΕΕΤΤΡΡΑΑ∆∆ΙΙΟΟ Μ ΜΑΑΘ ΘΗΗΤΤΗΗ

.......................................................................................................................................... .......................................................................................................................................... .......................................................................................................................................... .......................................................................................................................................... .......................................................................................................................................... ........................................................................................................................................

∆ραστηριότητα 3 : Υπορουτίνες που επιστρέφουν τιµές (συναρτήσεις). Στην προηγούµενη δραστηριότητα διαπιστώσαµε πως η µεταβλητή theNum. που είναι παράµετρος της υπορουτίνας. Αλλάξτε τιµή µέσα στην υπορουτίνα. Ωστόσο, η µεταβλητή num1 δεν άλλαξε τιµή. Ένας τρόπος για να µεταφέρετε µια τιµή από µια υπορουτίνα είναι να δηµιουργήσετε µια συνάρτηση (function) αντί για µια υπορουτίνα. Συνάρτηση είναι µια υπορουτίνα που, αφού εκτελεστεί, επιστρέφει µια τιµή. Η δήλωση µιας συνάρτησης γίνεται ως εξής: Function calculate2DecimalPlaces(ByVal theNum As Double) As Double End Function Η κλήση της συνάρτησης γίνεται καταχωρώντας την τιµή της συνάρτησης σε µια µεταβλητή: num1 = calculate2DecimalPlaces(num1) Παρατηρείστε στη δήλωση της συνάρτησης πως στο τέλος ακολουθεί και µια δήλωση τύπου («As Double» στην προκειµένη περίπτωσή). Επειδή η συνάρτηση επιστρέφει µια τιµή που µπορείτε να καταχωρήσετε σε µια µεταβλητή, πρέπει να δηλώσετε τι είδους τιµές θα επιστρέφει η συνάρτηση, όπως όταν δηλώνετε µεταβλητή. Παρακάτω

βλέπετε

τον

κώδικα

που

χρησιµοποιεί

τη

συνάρτηση

calculate2DecimalPlaces έτσι ώστε να δείξει τις σωστές τιµές στην οθόνη: Module Module1 Dim num1 As Double Function calculate2DecimalPlaces(ByVal theNum As Double) As Double Dim temp As Double ΠΑΡΑΓΩΓΗ CONCEPTUM

44

VVIISSUUAALL BBAASSIICC 22000088 ΕΕΚΚΠΠΑΑΙΙ∆∆ΕΕΥΥΤΤΙΙΚΚΟΟ ΕΕΓΓΧΧΕΕΙΙΡΡΙΙ∆∆ΙΙΟΟ –– ΤΤΕΕΤΤΡΡΑΑ∆∆ΙΙΟΟ Μ ΜΑΑΘ ΘΗΗΤΤΗΗ

temp = theNum * 100 ' Βάλε στη µεταβλητή temp την τιµή num *100 -> 333.33333... temp = (temp \ 1) ' Βαλε στη µεταβλητή temp την τιµή (ακέραιο µερος της διάρεσης (temp δια 1) -> 333) temp = temp / 100 ' Βάλε στη µεταβλητή temp την τιµή temp δια 100 theNum = temp ' Βάλε στη µεταβλητή num την τιµή temp Return theNum End Function Sub Main() num1 = 10 / 3 Console.WriteLine(num1) ' δειξε την τιµή του num στην κονσολα num1 = calculate2DecimalPlaces(num1)'καλούµε την υπορουτίνα calculate2DecimalPlaces µε παράµετρο τη µεταβλητή num1 και καταχωρούµε την τιµή της στη µεταβλητή num1 Console.WriteLine(num1) ' δειξε την τιµή του num στην κονσολα Console.ReadLine() ' διάβασε χαρακτήρες από το πληκτρολόγιο µεχρι να πατηθεί enter End Sub End Module Πληκτρολογήστε και τρέξτε τον κώδικα. Το αποτέλεσµα του προγράµµατος είναι αυτό:

Τώρα έχετε το επιθυµητό αποτέλεσµα. Παρατηρήστε στον κώδικα µε ποια εντολή επιστρέφουµε τιµές από την συνάρτηση. Η εντολή return διακόπτει την εκτέλεση των εντολών της συνάρτησης και επιστρέφει µια τιµή. ∆οκιµάστε να γράψετε µια συνάρτησης µε όνοµα piValue. ∆εν θα έχει παραµέτρους και θα επιστρέφει πάντα την τιµή του αριθµού π (3.1415926535). Το π είναι τύπου Double. ………………………………………………………………………………………… ………………………………………………………………………………………… ………………………………………………………………………………………… ………………………………………………………………………………………… ΠΑΡΑΓΩΓΗ CONCEPTUM

45

VVIISSUUAALL BBAASSIICC 22000088 ΕΕΚΚΠΠΑΑΙΙ∆∆ΕΕΥΥΤΤΙΙΚΚΟΟ ΕΕΓΓΧΧΕΕΙΙΡΡΙΙ∆∆ΙΙΟΟ –– ΤΤΕΕΤΤΡΡΑΑ∆∆ΙΙΟΟ Μ ΜΑΑΘ ΘΗΗΤΤΗΗ

………………………………………………………………………………………… ………………………………………………………………………………………….

∆ραστηριότητα 4 : Υπορουτίνες µε περισσότερες παραµέτρους. Στις υπορουτίνες και τις συναρτήσεις µπορούν να περάσουν περισσότερες από µια παραµέτρους. Παρακάτω

βλέπετε

µια εξελιγµένη µορφή της συνάρτησης

calculate2DecimalPlaces που ονοµάζεται calculateNDecimalPlaces. Η πρώτη παράµετρος είναι ο αριθµός που θα στρογγυλοποιηθεί. Η δεύτερη παράµετρος είναι ο αριθµός των δεκαδικών ψηφίων που είναι το ζητούµενο. Function calculateNDecimalPlaces(ByVal theNum As Double, ByVal decimalDigits As Integer) As Double Dim temp As Double Dim multiplier As Integer multiplier = 10 ^ decimalDigits temp = theNum * multiplier temp = (temp \ 1) temp = temp / multiplier theNum = temp Return theNum End Function Πληκτρολογήστε και τρέξτε τον κώδικα. Για να καλέσετε την υπορουτίνα αυτή, πρέπει να βάλετε δυο τιµές µέσα στις παρενθέσεις, πχ. num1 = calculateNDecimalPlaces(num1, 0). Η παραπάνω εντολή θα επιστρέψει τον αριθµό num1 χωρίς δεκαδικά ψηφία. ∆οκιµάστε να γράψετε την συνάρτηση που περιγράφεται παρακάτω. Η συνάρτηση ονοµάζεται embadonOrt και υπολογίζει το εµβαδόν ενός ορθογωνίου. Παίρνει δυο παραµέτρους: βάση και ύψος. Όλες οι τιµές (βάση, ύψος, embadonOrt) είναι τύπου Double. ………………………………………………………………………………………… ………………………………………………………………………………………… ………………………………………………………………………………………… …………………………………………………………………………………………

ΠΑΡΑΓΩΓΗ CONCEPTUM

46

VVIISSUUAALL BBAASSIICC 22000088 ΕΕΚΚΠΠΑΑΙΙ∆∆ΕΕΥΥΤΤΙΙΚΚΟΟ ΕΕΓΓΧΧΕΕΙΙΡΡΙΙ∆∆ΙΙΟΟ –– ΤΤΕΕΤΤΡΡΑΑ∆∆ΙΙΟΟ Μ ΜΑΑΘ ΘΗΗΤΤΗΗ

………………………………………………………………………………………… ………………………………………………………………………………………….

∆ραστηριότητα 5 : Κλήση υπορουτίνας από υπορουτίνα. ∆οκιµάστε να γράψετε την συνάρτηση που περιγράφεται παρακάτω. Η συνάρτηση ονοµάζεται embadonKyklou και υπολογίζει το εµβαδόν ενός κύκλου (π*R^2). Παίρνει σαν παράµετρο την ακτίνα του κύκλου. Τον αριθµό π θα τον βρείτε καλώντας τη συνάρτηση piValue που γράψατε στη δραστηριότητα 3. Όλες οι τιµές (ακτίνα, π, embadonKyklou ) είναι τύπου Double. ………………………………………………………………………………………… ………………………………………………………………………………………… ………………………………………………………………………………………… ………………………………………………………………………………………… ………………………………………………………………………………………… ………………………………………………………………………………………….

ΠΑΡΑΓΩΓΗ CONCEPTUM

47

VVIISSUUAALL BBAASSIICC 22000088 ΕΕΚΚΠΠΑΑΙΙ∆∆ΕΕΥΥΤΤΙΙΚΚΟΟ ΕΕΓΓΧΧΕΕΙΙΡΡΙΙ∆∆ΙΙΟΟ –– ΤΤΕΕΤΤΡΡΑΑ∆∆ΙΙΟΟ Μ ΜΑΑΘ ΘΗΗΤΤΗΗ

Φύλλο εργασίας

5. Εισαγωγή στα αντικείµενα στη Visual Basic

Όνοµα: Τάξη: ∆ιάρκεια: 3 διδακτικές ώρες.

∆ιδακτικοί στόχοι: Με το συγκεκριµένο φύλλο εργασίας: •

Θα εξοικειωθείτε µε το αντικείµενο Console της Visual Basic και θα µάθετε να το µεταχειρίζεστε για να παίρνετε input από τον χρήστη σε εφαρµογές κονσόλας καθώς και να δίνετε output στον χρήστη.



Θα µάθετε τις βασικές µεθόδους του αντικειµένου Math



Θα µάθετε να χειρίζεστε τις µεταβλητές τύπου String σαν αντικείµενα



Θα µάθετε την κλάση Date για τον χειρισµό ηµεροµηνιών

∆ραστηριότητα 1 : Το αντικείµενο console Στα παραδείγµατα µε τα οποία έχετε ασχοληθεί µέχρι τώρα στις εφαρµογές κονσόλας χρησιµοποιήσατε τις εντολές «Console.WriteLine()» και «Console.ReadLine()». Οι εντολές αυτές αποτελούνται από δυο λέξεις που ενώνονται µεταξύ τους µε τελεία(.). Η πρώτη λέξη και στις δυο, όπως φαίνεται, είναι η λέξη Console. Console είναι το όνοµα ενός αντικειµένου που είναι διαθέσιµο στις εφαρµογές κονσόλας. Τα αντικείµενα µπορούν να θεωρηθούν σαν ένα σύνολο από κώδικα, τµήµατα του οποίου µπορούν χρησιµοποιηθούν. Τα αντικείµενα για τον προγραµµατιστή είναι µαύρα κουτιά (black boxes). Αυτό σηµαίνει πως δεν βλέπει τις διεργασίες που γίνονται µέσα στο αντικείµενο, αλλά µόνο τις τιµές που δίνονται στην είσοδο και την

ΠΑΡΑΓΩΓΗ CONCEPTUM

48

VVIISSUUAALL BBAASSIICC 22000088 ΕΕΚΚΠΠΑΑΙΙ∆∆ΕΕΥΥΤΤΙΙΚΚΟΟ ΕΕΓΓΧΧΕΕΙΙΡΡΙΙ∆∆ΙΙΟΟ –– ΤΤΕΕΤΤΡΡΑΑ∆∆ΙΙΟΟ Μ ΜΑΑΘ ΘΗΗΤΤΗΗ

έξοδο. Τα αντικείµενα χρησιµοποιούνται σαν προκατασκευασµένα τµήµατα κώδικα που –µέσα από ένα πρόγραµµα – µπορούν να τα επαναχρησιµοποιηθούν. Η Visual Basic προσφέρει ορισµένα έτοιµα αντικείµενα όπως το αντικείµενο Console που είδατε στις εφαρµογές κονσόλας ή το αντικείµενο button που είδατε στις εφαρµογές φορµών. Ωστόσο, µπορείτε να χρησιµοποιήσετε και άλλα αντικείµενα που έχει φτιάξει κάποιος άλλος προγραµµατιστής ή να φτιάξετε δικά σας. Τα αντικείµενα διαθέτουν τις δυνατότητές τους µέσα από τις ιδιότητες (properties), τις µεθόδους (methods) και τα συµβάντα (events). Στο φύλλο εργασίας 2 διαχειριστήκατε το συµβάν click του αντικειµένου button και επίσης αλλάξατε τις τιµές στις ιδιότητες text και enabled. Στις εφαρµογές κονσόλας µεταχειριστήκατε τις µεθόδους WriteLine και ReadLine του αντικειµένου Console. Στο προηγούµενο φύλλο εργασίας (ΦΕ4) µάθατε για τις υπορουτίνες (subs) και τις συναρτήσεις (functions) της Visual Basic. Οι µέθοδοι (methods) είναι υπορουτίνες και συναρτήσεις που είναι ενσωµατωµένες σε ένα αντικείµενο. Μπορείτε να τις χρησιµοποιήσετε, αλλά δεν µπορείτε να δείτε τον κώδικά τους. Η µέθοδος WriteLine γράφει ένα string που της δίνεται σαν παράµετρο στην κονσόλα και µετά αλλάζει γραµµή. Το Console αντικείµενο διαθέτει και τη µέθοδο Write που γράφει ένα string που της δίνεται σαν παράµετρο στην κονσόλα χωρίς να αλλάζει γραµµή. Η µέθοδος ReadLine

περιµένει

να

πληκτρολογήσετε

κάτι

στην

κονσόλα

µέχρι

να

πληκτρολογήσετε enter. Η ReadLine συµπεριφέρεται σαν συνάρτηση (function). Αυτά που πληκτρολογεί ο χρήστης τα επιστρέφει µε την µορφή string. ∆ηµιουργήστε µια εφαρµογή κονσόλας και πληκτρολογήστε τον παρακάτω κώδικα: Module Module1 Sub Main() Console.Write("Γράψε το επώνυµό σου:") Dim lastName As String = Console.ReadLine() Console.WriteLine() Console.Write("Γράψε το όνοµά σου:") Dim firstName As String = Console.ReadLine() Console.WriteLine() ΠΑΡΑΓΩΓΗ CONCEPTUM

49

VVIISSUUAALL BBAASSIICC 22000088 ΕΕΚΚΠΠΑΑΙΙ∆∆ΕΕΥΥΤΤΙΙΚΚΟΟ ΕΕΓΓΧΧΕΕΙΙΡΡΙΙ∆∆ΙΙΟΟ –– ΤΤΕΕΤΤΡΡΑΑ∆∆ΙΙΟΟ Μ ΜΑΑΘ ΘΗΗΤΤΗΗ

Console.WriteLine("Λέγεσαι : " + firstName + " " + lastName) Console.WriteLine() Console.WriteLine() Console.Write("Πάτα enter για να τερµατιστεί η εφαρµογή") Console.ReadLine() End Sub End Module

Τρέξτε την εφαρµογή και πληκτρολογήστε επώνυµο και όνοµα για να δείτε την απάντηση που θα τυπωθεί στην οθόνη. Το πρόγραµµα καταχωρεί το input που παίρνει από τον χρήστη στις δυο µεταβλητές: . Ακολούθως, χρησιµοποιεί την αλφαριθµητική πράξη της σύνθεσης (concatenation) για να εµφανίσει στην κονσόλα τη φράση «Λέγεσαι όνοµα επώνυµο». Αντικαταστήστε την εντολή Console.WriteLine("Λέγεσαι : " + firstName + " " + lastName) µε τις ακόλουθες. Console.Write("Λέγεσαι : ") Console.Write(firstName) Console.Write(" ") Console.WriteLine(lastName) Τρέξτε την εφαρµογή. Παρατηρήστε πως δεν υπάρχει διαφορά στο µήνυµα που εµφανίζεται στην κονσόλα. Με όσα έχετε µάθει µέχρι τώρα φτιάξετε µια εφαρµογή κονσόλας µε τις παρακάτω προδιαγραφές. Στόχος της εφαρµογής: ο υπολογισµός του εµβαδού ενός τριγώνου. Περιγραφή.

ΠΑΡΑΓΩΓΗ CONCEPTUM

50

VVIISSUUAALL BBAASSIICC 22000088 ΕΕΚΚΠΠΑΑΙΙ∆∆ΕΕΥΥΤΤΙΙΚΚΟΟ ΕΕΓΓΧΧΕΕΙΙΡΡΙΙ∆∆ΙΙΟΟ –– ΤΤΕΕΤΤΡΡΑΑ∆∆ΙΙΟΟ Μ ΜΑΑΘ ΘΗΗΤΤΗΗ

Εµφανίζεται το µήνυµα «∆ώσε τιµή για βάση». Ο χρήστης πληκτρολογεί µια τιµή Εµφανίζεται το µήνυµα «∆ώσε τιµή για ύψος» Ο χρήστης πληκτρολογεί µια τιµή Εµφανίζεται το µήνυµα «Το εµβαδόν του τριγώνου είναι: » και η τιµή του εµβαδού (που υπολογίζεται από τον τύπο Ε=β*υ/2)

∆ραστηριότητα 2: Tο αντικείµενο Math Στο προηγούµενο φύλλο εργασίας (ΦΕ 4) δηµιουργήσατε µια συνάρτηση (function) που στρογγυλοποιεί έναν δεκαδικό αριθµό. Η Visual Basic για να κάνει τη ζωή µας πιο εύκολη, ώστε όταν χρειαζόµαστε µια στρογγυλοποίηση να µην αναγκαζόµαστε να γράψουµε µια νέα συνάρτηση, έχει έτοιµη την συνάρτηση round καθώς και αρκετές ακόµα συναρτήσεις. Η συνάρτηση αυτή µαζί µε όλες τις µαθηµατικές συναρτήσεις έχουν οµαδοποιηθεί µέσα στο αντικείµενο Math. Για παράδειγµα, αν θέλετε να εµφανίσετε στην κονσόλα τη στρογγυλοποίηση του αριθµού 3.14159 πρέπει να γράψετε: Console.WriteLine(Math.Round(3.14159)) Άλλες συναρτήσεις που βρίσκονται στο αντικείµενο Math µε τη µορφή method είναι: Abs

Επιστρέφει τη απόλυτη τιµή ενός αριθµού

Ceiling

Στρογγυλοποιεί έναν δεκαδικό προς τα πάνω .π.χ. Math.Ceiling(6.2) επιστρέφει 7.

Floor

Στρογγυλοποιεί έναν δεκαδικό προς τα κάτω. π.χ. Math.Floor(6.8) επιστρέφει 6

Round

Στρογγυλοποιεί έναν δεκαδικό στον πλησιέστερο ακέραιο π.χ. Math. Round (6.8) επιστρέφει 7.ενώ

Math. Round (6.2) επιστρέφει 6.

Επίσης δέχεται και δεύτερη παράµετρο που προσδιορίζει στα πόσα ψηφία να γίνει η στρογγυλοποίηση.

ΠΑΡΑΓΩΓΗ CONCEPTUM

51

VVIISSUUAALL BBAASSIICC 22000088 ΕΕΚΚΠΠΑΑΙΙ∆∆ΕΕΥΥΤΤΙΙΚΚΟΟ ΕΕΓΓΧΧΕΕΙΙΡΡΙΙ∆∆ΙΙΟΟ –– ΤΤΕΕΤΤΡΡΑΑ∆∆ΙΙΟΟ Μ ΜΑΑΘ ΘΗΗΤΤΗΗ

Max

Επιστρέφει τον µεγαλύτερο από τους δυο αριθµούς που δέχεται σαν παράµετρο.

Min

Επιστρέφει τον µικρότερο από τους δυο αριθµούς που δέχεται σαν παράµετρο

Sqrt

Επιστρέφει την τετραγωνική ρίζα ενός αριθµού.

Cos , Sin,Tan Τριγωνοµετρικές συναρτήσεις (συνηµίτονο, ηµίτονο, εφαπτοµένη)

Επίσης το αντικείµενο Math µας διαθέτει δυο σταθερές (constant) ιδιότητες (properties) που µας δίνουν µαθηµατικές σταθερές: Math.PI. Επιστρέφει τον αριθµό π. Math.E. Τροποποιήστε την εφαρµογή που δηµιουργήσαµε στη δραστηριότητα 1, ώστε να υπολογίζει το εµβαδόν και την περίµετρο ενός κύκλου παίρνοντας σαν input µόνο την ακτίνα του. ∆ραστηριότητα 3: Το String σαν αντικείµενο. Στο φύλλο εργασίας 2 είδατε πως µπορείτε να δηλώσετε µεταβλητές στη Visual Basic. Οι αλφαριθµητικές µεταβλητές δηλώνονται ως τύπου String. Όταν δηµιουργείτε µια µεταβλητή, δηµιουργείτε ένα αντικείµενο. Το αντικείµενο αυτό είναι ένα στιγµιότυπο (instance) της κλάσης του. Η κλάση String είναι εξοπλισµένη µε µια σειρά ιδιοτήτων και µεθόδων τις οποίες αποκτά αυτόµατα κάθε αντικείµενο της κλάσης αυτής που δηµιουργείται. Για παράδειγµα, η ιδιότητα length µας επιστρέφει τον αριθµό των χαρακτήρων που περιέχει ένα string. ∆είτε το παρακάτω παράδειγµα.

Dim str1 As String str1 = "παπαδόπουλος" ' τυπώνει τον αριθµό 12 Console.WriteLine(str1.Length) Dim str2 As String = "Μια φορά και έναν καιρό" ΠΑΡΑΓΩΓΗ CONCEPTUM

52

VVIISSUUAALL BBAASSIICC 22000088 ΕΕΚΚΠΠΑΑΙΙ∆∆ΕΕΥΥΤΤΙΙΚΚΟΟ ΕΕΓΓΧΧΕΕΙΙΡΡΙΙ∆∆ΙΙΟΟ –– ΤΤΕΕΤΤΡΡΑΑ∆∆ΙΙΟΟ Μ ΜΑΑΘ ΘΗΗΤΤΗΗ

Console.WriteLine(str2.Length) 'τυπώνει τον αριθµό 23 Βλέπουµε πως και οι δυο µεταβλητές που δηλώσαµε διαθέτουν την ιδιότητα length. Η κλάση String διαθέτει, όπως προαναφέρθηκε, και µια σειρά από µεθόδους. Η µέθοδος Substring συντάσσεται µε δυο παραµέτρους τύπου integer. Μας επιστρέφει ένα νέο string που περιέχει τους χαρακτήρες από την θέση που δηλώνει η πρώτη παράµετρος και για µήκος όσο δηλώνει η δεύτερη παράµετρος. ∆είτε το παρακάτω παράδειγµα. Dim str As String = "Μια φορά και έναν καιρό"

Dim lexi1 =

str.Substring(0, 3) Console.WriteLine(lexi1) ' τυπώνει "Μια" Console.ReadLine() Ο πρώτος χαρακτήρας ενός String βρίσκεται στη θέση 0. Μπορείτε να πάρετε το χαρακτήρα που βρίσκεται σε οποιαδήποτε θέση ενός string µε την ακόλουθη σύνταξη: string(θέση). ∆είτε το παράδειγµα. Μια άλλη µέθοδος της κλάσης String είναι η indexOf. Αυτή µας επιστρέφει τη θέση µέσα σε ένα string ενός άλλου string που περνάµε σαν παράµετρο. ∆είτε το παράδειγµα. Dim str = "Μια φορά και έναν καιρό" Console.WriteLine(str.IndexOf("φορά")) ' τυπώνει "4" Υπάρχουν πολλές άλλες µέθοδοι διαθέσιµες από την κλάση string. Με αυτά που έχετε µάθει µέχρι τώρα δηµιουργήστε µια εφαρµογή κονσόλας µε τις παρακάτω προδιαγραφές: Στόχος της εφαρµογής: βρίσκει και τυπώνει την πρώτη λέξη και το µήκος της από µια φράση που πληκτρολογεί ο χρήστης. Περιγραφή: Εµφανίζεται το µήνυµα «Πληκτρολόγησε µια φράση ». Ο χρήστης πληκτρολογεί µια φράση ΠΑΡΑΓΩΓΗ CONCEPTUM

53

VVIISSUUAALL BBAASSIICC 22000088 ΕΕΚΚΠΠΑΑΙΙ∆∆ΕΕΥΥΤΤΙΙΚΚΟΟ ΕΕΓΓΧΧΕΕΙΙΡΡΙΙ∆∆ΙΙΟΟ –– ΤΤΕΕΤΤΡΡΑΑ∆∆ΙΙΟΟ Μ ΜΑΑΘ ΘΗΗΤΤΗΗ

Εµφανίζεται το µήνυµα «Η πρώτη λέξη της φράσης σου είναι: » και η πρώτη λέξη Εµφανίζεται το µήνυµα «Η λέξη έχει x χαρακτήρα/ες» όπου x ο αριθµός χαρακτήρων της λέξης.

∆ραστηριότητα 4: Η κλάση Date. Μέχρι τώρα µάθατε πώς µπορούµε να δηλώσουµε αριθµητικές, αλφαριθµητικές και λογικές µεταβλητές. Όπως είδαµε οι αλφαριθµητικές µεταβλητές που δηλώνονται ως τύπου string αποτελούν στιγµιότυπα της κλάσης String. Παρακάτω θα µάθετε την κλάση Date. Με την κλάση αυτή µπορείτε να δηµιουργήσετε µεταβλητές στις οποίες θα καταχωρείτε ηµεροµηνίες. Ένα παράδειγµα: Dim dt As Date = Date.Now Console.WriteLine(dt.ToString()) ' τυπώνει στην οθόνη τη σηµερινή ηµεροµηνία µε τη µορφή 22/9/2008 12:47:16 µµ Στο παραπάνω παράδειγµα βλέπετε για πρώτη φορά τη µέθοδο ToString(). Αυτή η µέθοδος υπάρχει σε όλες τις κλάσεις που δίνει η Visual Basic και επιστρέφει πάντα ένα string που συνήθως είναι η τιµή του στιγµιότυπου της κλάσης σε αλφαριθµητική µορφή. ∆οκιµάστε τον παρακάτω κώδικα: Η κλάση Date αποθηκεύει µια ηµεροµηνία. Από αυτή την ηµεροµηνία µπορείτε να πάρετε όποιο µέρος θέλετε (π.χ. το έτος) χρησιµοποιώντας τις ιδιότητες και µεθόδους που διαθέτει η κλάση Date. ∆είτε το παράδειγµα: Dim dt As Date = Date.Now Console.WriteLine(dt.Year) ' τυπώνει στην οθόνη to τρέχον έτος Για να καταχωρήσετε µια ηµεροµηνία σε µια µεταβλητή τύπου date χρησιµοποιείστε τη µέθοδο Parse. ∆είτε το παράδειγµα: Dim dt As Date = Date.Parse("9/10/08") Console.WriteLine(dt.ToString()) ' τυπώνει 9/10/2008 12:00:00 πµ

ΠΑΡΑΓΩΓΗ CONCEPTUM

54

VVIISSUUAALL BBAASSIICC 22000088 ΕΕΚΚΠΠΑΑΙΙ∆∆ΕΕΥΥΤΤΙΙΚΚΟΟ ΕΕΓΓΧΧΕΕΙΙΡΡΙΙ∆∆ΙΙΟΟ –– ΤΤΕΕΤΤΡΡΑΑ∆∆ΙΙΟΟ Μ ΜΑΑΘ ΘΗΗΤΤΗΗ

Μπορείτε να κάνετε πράξεις µεταξύ µεταβλητών τύπου date. Ωστόσο, το αποτέλεσµα που παίρνετε δεν είναι πάντα τύπου date. ∆είτε το παράδειγµα: Dim dt1 As Date = Date.Parse("9/10/08") Dim dt2 As Date = Date.Parse("11/10/08") Dim dtDiff As TimeSpan = dt2 - dt1 Console.WriteLine(dtDiff.Days) ' τυπώνει στην οθόνη 2 δηλαδή 2 ηµέρες διαφορά. Η διαφορά µεταξύ δυο µεταβλητών τύπου Date είναι µια µεταβλητή τύπου TimeSpan. Χρησιµοποιώντας όσα µάθατε µέχρι τώρα, φτιάξτε µια εφαρµογή κονσόλας µε τις παρακάτω προδιαγραφές: Στόχος της εφαρµογής: βρίσκει την ηλικία του χρήστη, αφού ο χρήστης έχει πληκτρολογήσει την ηµεροµηνία γέννησης Περιγραφή: Εµφανίζεται το µήνυµα «Πληκτρολόγησε την ηµεροµηνία γέννησης µε τη µορφή µέρα/µήνας/έτος ». Ο χρήστης πληκτρολογεί µια ηµεροµηνία Εµφανίζεται το µήνυµα «Με βάση τα στοιχεία που έδωσες σήµερα είσαι x ετών» όπου x η ηλικία του χρήστη σε έτη.

ΠΑΡΑΓΩΓΗ CONCEPTUM

55

VVIISSUUAALL BBAASSIICC 22000088 ΕΕΚΚΠΠΑΑΙΙ∆∆ΕΕΥΥΤΤΙΙΚΚΟΟ ΕΕΓΓΧΧΕΕΙΙΡΡΙΙ∆∆ΙΙΟΟ –– ΤΤΕΕΤΤΡΡΑΑ∆∆ΙΙΟΟ Μ ΜΑΑΘ ΘΗΗΤΤΗΗ

Φύλλο εργασίας 6. Λογικές συναρτήσεις και παραστάσεις η ροή του προγράµµατος

Όνοµα: Τάξη: ∆ιάρκεια: 3 διδακτικές ώρες.

∆ιδακτικοί στόχοι: Με το συγκεκριµένο φύλλο εργασίας •

Θα µάθεις τις εντολές διακλάδωσης If .. then ... else



Θα µάθεις τις λογικές πράξεις AND και OR και πως αυτές συνδυάζονται µε τις εντολές διακλάδωσης



Θα µάθεις τις πιο σύνθετες εντολές διακλάδωσης If .. then ... elseIf και select .. case

∆ραστηριότητα 1 : η εντολή If .. then ... else Μέχρι τώρα µάθατε να γράφετε εντολές που το πρόγραµµα εκτελεί σειριακά (την µια µετά την άλλη). Ωστόσο, πολύ συχνά χρειαζόµαστε το πρόγραµµα µας να εκτελεί ορισµένες εντολές µόνο όταν ισχύουν συγκεκριµένες συνθήκες. Σε αυτή την περίπτωση πρέπει να ελέγξουµε τη συνθήκη και να δούµε αν ισχύει και εφόσον ισχύει να εκτελεστεί η κατάλληλη οµάδα των εντολών. Στη Visual Basic ο έλεγχος γίνεται µε την εντολή If Then που συντάσσεται ως εξής: If συνθήκη Then εντολές End if Το παρακάτω παράδειγµα είναι µια συνάρτηση που επιστρέφει την απόλυτη τιµή ενός ακεραίου που της περνάµε σαν παράµετρο. Function abs(ByVal x As Integer) ΠΑΡΑΓΩΓΗ CONCEPTUM

56

VVIISSUUAALL BBAASSIICC 22000088 ΕΕΚΚΠΠΑΑΙΙ∆∆ΕΕΥΥΤΤΙΙΚΚΟΟ ΕΕΓΓΧΧΕΕΙΙΡΡΙΙ∆∆ΙΙΟΟ –– ΤΤΕΕΤΤΡΡΑΑ∆∆ΙΙΟΟ Μ ΜΑΑΘ ΘΗΗΤΤΗΗ

If x < 0 Then x = x * -1 End If Return x End Function Στο παραπάνω παράδειγµα το πρόγραµµα ελέγχει την τιµή της παραµέτρου x. Αν η παράµετρος είναι θετικός αριθµός πρέπει να επιστρέψει τον ίδιο. Αν όµως είναι αρνητικός αριθµός θα πρέπει να επιστρέψει τον αντίθετο. Με την εντολή If Then ελέγχουµε αν ο αριθµός είναι µικρότερος από το µηδέν (δηλαδή αρνητικός). Μόνο σε αυτή την περίπτωση, αν ισχύει δηλαδή η συνθήκη x < 0, εκτελείται η εντολή καταχώρησης x = x * -1. Οι εντολές που βρίσκονται µετά το If x < 0 Then δεν εκτελούνται, παρά µόνο όταν η συνθήκη είναι αληθής(true). Πολλές φορές χρειάζεται το πρόγραµµά µας να κάνει µια ενέργεια αν ισχύει µια συνθήκη και µια διαφορετική στην περίπτωση που η συνθήκη αυτή δεν ισχύει. Σε αυτή την περίπτωση χρησιµοποιούµε την εντολή if Then Else. Αυτή συντάσσεται ως εξής: If συνθήκη Then εντολές Else εντολές End if Οι εντολές που βρίσκονται µετά το If συνθήκη Then εκτελούνται µόνον όταν η συνθήκη είναι αληθής (true), ενώ οι εντολές που βρίσκονται µετά το else εκτελούνται µόνον όταν η συνθήκη είναι ψευδής (false). Το παρακάτω παράδειγµα είναι µια εφαρµογή κονσόλας που ανάλογα µε τη ώρα της ηµέρας τυπώνει «καληµέρα» ή «καλησπέρα». Module Module1 Sub Main() Dim dt As Date = Date.Now Debug.Print(dt.ToString()) ΠΑΡΑΓΩΓΗ CONCEPTUM

57

VVIISSUUAALL BBAASSIICC 22000088 ΕΕΚΚΠΠΑΑΙΙ∆∆ΕΕΥΥΤΤΙΙΚΚΟΟ ΕΕΓΓΧΧΕΕΙΙΡΡΙΙ∆∆ΙΙΟΟ –– ΤΤΕΕΤΤΡΡΑΑ∆∆ΙΙΟΟ Μ ΜΑΑΘ ΘΗΗΤΤΗΗ

If dt.Hour < 12 Then Console.WriteLine("Καληµέρα") Else Console.WriteLine("Καλησπέρα") End If Console.ReadLine() End Sub End Module Η εφαρµογή εξετάζει την ώρα και αν είναι µικρότερη από δώδεκα τυπώνει «Καληµέρα» σε οποιαδήποτε άλλη περίπτωση τυπώνει «Καλησπέρα».

Τώρα δηµιουργήστε την παρακάτω εφαρµογή. Στόχος της εφαρµογής: Η εφαρµογή τυπώνει αν κυκλοφορούν σήµερα τα µόνα ή τα ζυγά αυτοκίνητα. Περιγραφή: Η εφαρµογή παίρνει τη σηµερινή ηµεροµηνία. Εξετάζει την ηµέρα του µήνα (από την ιδιότητα Day) και αν αυτή διαιρείται ακριβώς µε το 2 εµφανίζει το µήνυµα «Σήµερα κυκλοφορούν τα ζυγά» αλλιώς εµφανίζει το µήνυµα «Σήµερα κυκλοφορούν τα µονά.». Χρησιµοποιείτε τον τελεστή mod για να υπολογίσετε το υπόλοιπο της διαίρεσης της ηµεροµηνίας µε το 2.

∆ραστηριότητα 2: nested if Όπως αναφέρθηκε παραπάνω ανάµεσα στις εντολές if Then και End If µπαίνουν οι εντολές θα εκτελεστούν αν ισχύει η συνθήκη. Οι εντολές αυτές µπορεί να είναι οτιδήποτε, ακόµα και ένα νέο If. Σε αυτή την περίπτωση (που υπάρχει if µέσα σε if) αποκαλείται nested if.

ΠΑΡΑΓΩΓΗ CONCEPTUM

58

VVIISSUUAALL BBAASSIICC 22000088 ΕΕΚΚΠΠΑΑΙΙ∆∆ΕΕΥΥΤΤΙΙΚΚΟΟ ΕΕΓΓΧΧΕΕΙΙΡΡΙΙ∆∆ΙΙΟΟ –– ΤΤΕΕΤΤΡΡΑΑ∆∆ΙΙΟΟ Μ ΜΑΑΘ ΘΗΗΤΤΗΗ

Υλοποιήστε µια εφαρµογή κονσόλας που θα ζητάει τον λήγοντα από τον αριθµό κυκλοφορίας του χρήστη και αν ο χρήστης δεν µπορεί να κυκλοφορήσει στο κέντρο θα τυπώνει το ανάλογο µήνυµα.

Υλοποιήστε την εφαρµογή βασιζόµενοι στον παρακάτω ψευδοκώδικα που χρησιµοποιεί nested if. -

Ο χρήστης πληκτρολογεί το λήγοντα από την πινακίδα του αυτοκινήτου του.

-

Το πρόγραµµα παίρνει τη σηµερινή ηµεροµηνία.

-

Εάν σήµερα δεν είναι Κυριακή (η ηµέρα της εβδοµάδας δίνεται από την ιδιότητα DayOfWeek του αντικειµένου Date. Η ∆ευτέρα είναι το 1 και η Κυριακή το 7).

-

Εάν σήµερα δεν είναι Σάββατο: o Καταχώρησε στη µεταβλητή pinakidaYpoloipo το υπόλοιπο της διαίρεσης του λήγοντα της πινακίδας του χρήστη µε το δύo. o Καταχώρησε στη µεταβλητή meraYpoloipo το υπόλοιπο της διαίρεσης της ηµέρας του µήνα (day) µε το δύo. o Εάν οι µεταβλητές pinakidaYpoloipo και meraYpoloipo δεν είναι ίσες, τότε τύπωσε «Σήµερα αν κατέβεις στο κέντρο, θα σε γράψουν».

∆ραστηριότητα 3: Οι εντολές AND , OR, NOT Στο προηγούµενο παράδειγµα το µήνυµα εµφανίζεται µόνο όταν ισχύον µια σειρά από συνθήκες. Για να το υλοποιήσουµε, εφαρµόσαµε την τεχνική προγραµµατισµού µε τα nested if. Σε αυτή τη δραστηριότητα θα την υλοποιήσετε χρησιµοποιώντας τον λογικό τελεστή AND. Οι λογικοί τελεστές εφαρµόζονται µεταξύ λογικών µεταβλητών ή σταθερών. Στη ∆ραστηριότητα 1 χρησιµοποιήσατε την εντολή: If dt.Hour < 12 Then ΠΑΡΑΓΩΓΗ CONCEPTUM

59

VVIISSUUAALL BBAASSIICC 22000088 ΕΕΚΚΠΠΑΑΙΙ∆∆ΕΕΥΥΤΤΙΙΚΚΟΟ ΕΕΓΓΧΧΕΕΙΙΡΡΙΙ∆∆ΙΙΟΟ –– ΤΤΕΕΤΤΡΡΑΑ∆∆ΙΙΟΟ Μ ΜΑΑΘ ΘΗΗΤΤΗΗ

Αυτή η εντολή µπορεί να ξαναγράφει ως εξής: Dim isProi As Boolean = dt.Hour < 12 If isProi Then Η µεταβλητή isProi είναι µια λογική µεταβλητή και σε αυτή µπορείτε να χρησιµοποιήσετε λογικούς τελεστές. Αν θέλετε να δηµιουργήσετε µια σύνθετη συνθήκη µπορείτε να τη δηµιουργήσετε από απλές συνθήκες που θα συνδεθούν µεταξύ τους µε λογικούς τελεστές. ∆είτε την εφαρµογή που φτιάξατε στη δραστηριότητα 1 πώς υλοποιείται µε τη χρήση του τελεστή AND. Module Module1 Sub Main() Console.Write("δωσε τον λήγοντα από την πινακίδα του αυτοκινήτου σου") Dim pinakida As Integer = Console.ReadLine() Dim dt As Date = Date.Now Dim mera As Integer = dt.DayOfWeek Dim isNotSunday As Boolean = mera 7 Dim isNotSaturday As Boolean = mera 6 Dim pinakidaYpoloipo As Integer = pinakida Mod 2 Dim meraYpoloipo As Integer = dt.Day Mod 2 Dim isWronDayForMyCar As Boolean = pinakidaYpoloipo meraYpoloipo If isNotSunday And isNotSaturday And isWronDayForMyCar Then Console.WriteLine("Σήµερα αν κατέβεις στο κέντρο, θα σε γράψουν") Else Console.WriteLine("Μπορείς να πας στο κέντρο σήµερα") End If Console.ReadLine() End Sub End Module ΠΑΡΑΓΩΓΗ CONCEPTUM

60

VVIISSUUAALL BBAASSIICC 22000088 ΕΕΚΚΠΠΑΑΙΙ∆∆ΕΕΥΥΤΤΙΙΚΚΟΟ ΕΕΓΓΧΧΕΕΙΙΡΡΙΙ∆∆ΙΙΟΟ –– ΤΤΕΕΤΤΡΡΑΑ∆∆ΙΙΟΟ Μ ΜΑΑΘ ΘΗΗΤΤΗΗ

Παρατηρήστε πως δηλώνονται οι λογικές µεταβλητές για την αποθήκευση τις τιµές των συνθηκών (π.χ. Dim isNotSunday As Boolean = mera 7). Στη συνέχεια συνδέστε τις λογικές µεταβλητές µε τον τελεστή AND, έτσι ώστε να φτιάξετε µια σύνθετη συνθήκη. If isNotSunday And isNotSaturday And isWronDayForMyCar Then Θα µπορούσαµε να καταχωρήσουµε το αποτέλεσµα της συνθήκης αυτής σε µια νέα µεταβλητή π.χ. Dim denKikloforo As Boolean = isNotSunday And isNotSaturday And isWronDayForMyCar If denKikloforo Then Η σύνθετη συνθήκη που δηµιουργήσατε µε τον τελεστή AND είναι αληθής µόνο όταν όλες οι λογικές µεταβλητές που τη συνθέτουν είναι αληθείς. Αν έστω και µια είναι ψευδής, τότε ολόκληρη η συνθήκη είναι ψευδής (false). Στις λογικές πράξεις όπως και στις αριθµητικές µπορούν να χρησιµοποιηθούν παρενθέσεις για να οριστεί η σειρά των πράξεων, π.χ. Dim denKikloforo As Boolean = (isNotSunday And isNotSaturday) And isWronDayForMyCar Ο τελεστής OR δίνει τιµή αληθή (true) αν έστω και µια από τις συνθήκες που αποτελούν µια σύνθετη συνθήκη είναι αληθής, ενώ δίνει τιµή ψευδή (false), αν όλες οι συνθήκες που αποτελούν µια σύνθετη συνθήκη είναι ψευδείς. ∆είτε το παρακάτω παράδειγµα όπου χρησιµοποιείται ο τελεστής OR. Module Module1 Sub Main() Dim dt As Date = Date.Now Dim mera As Integer = dt.DayOfWeek Dim isSunday As Boolean = (mera = 7) Dim isSaturday As Boolean = (mera = 6) If isSaturday Or isSunday Then ΠΑΡΑΓΩΓΗ CONCEPTUM

61

VVIISSUUAALL BBAASSIICC 22000088 ΕΕΚΚΠΠΑΑΙΙ∆∆ΕΕΥΥΤΤΙΙΚΚΟΟ ΕΕΓΓΧΧΕΕΙΙΡΡΙΙ∆∆ΙΙΟΟ –– ΤΤΕΕΤΤΡΡΑΑ∆∆ΙΙΟΟ Μ ΜΑΑΘ ΘΗΗΤΤΗΗ

Console.WriteLine("Σήµερα κάνεις ότι θες") Else Console.WriteLine("Σήµερα πρέπει να πας στη δουλειά") End If Console.ReadLine() End Sub End Module

Με όσα µάθατε µέχρι τώρα, δηµιουργήστε µια εφαρµογή κονσόλας µε τις παρακάτω προδιαγραφές. Στόχος της εφαρµογής: Ελέγχει αν ένα έτος είναι δίσεκτο χρησιµοποιώντας τα AND και OR. Περιγραφή: Η εφαρµογή ζητάει από το χρήστη να πληκτρολογήσει έναν αριθµό που αντιπροσωπεύει ένα έτος (ακέραιος τετραψήφιος αριθµός). Στη συνέχεια ελέγχει αν το έτος αυτό είναι δίσεκτο. Σηµείωση: ∆ίσεκτα είναι τα έτη που διαιρούνται µε το 4 και δεν διαιρούνται µε το 100, εκτός αν διαιρούνται µε το 400, π.χ το 1996 είναι δίσεκτο, το 2000 είναι δίσεκτο, αλλά το 1900 δεν είναι δίσεκτο. Τέλος εµφανίζει ένα αντίστοιχο µήνυµα «Το έτος x είναι/ δεν είναι δίσεκτο». Χρησιµοποιήστε τους τελεστές and και or για να δηµιουργήσετε µια συνθήκη που να αληθεύει αν το έτος είναι δίσεκτο.

ΠΑΡΑΓΩΓΗ CONCEPTUM

62

VVIISSUUAALL BBAASSIICC 22000088 ΕΕΚΚΠΠΑΑΙΙ∆∆ΕΕΥΥΤΤΙΙΚΚΟΟ ΕΕΓΓΧΧΕΕΙΙΡΡΙΙ∆∆ΙΙΟΟ –– ΤΤΕΕΤΤΡΡΑΑ∆∆ΙΙΟΟ Μ ΜΑΑΘ ΘΗΗΤΤΗΗ

∆ραστηριότητα 4: Το σύνθετο σχήµα If…Then…ElseIf Η εντολή If…Then…ElseIf είναι µία άλλη µορφή συνδυασµού πολλών If…Then. Η σύνταξή της έχει ως εξής. If συνθήκη Then εντολές ElseIf συνθήκη Then εντολές ElseIf συνθήκη Then εντολές Else εντολές End if Το πρόγραµµα ελέγχει την πρώτη συνθήκη (µετά το If), αν είναι αληθής, εκτελεί τις εντολές µετά το πρώτο Then, αν όχι ελέγχει τη συνθήκη µετά το ElseIf, αν είναι αληθής εκτελεί τις εντολές µετά το Then , αν όχι συνεχίζει µέχρι να βρει µια συνθήκη αληθή. Αν καµία δε είναι αληθής, τότε εκτελούνται οι εντολές µετά το Else. Η συγκεκριµένη σύνταξη µπορεί να γίνει πιο κατανοητή µε το παράδειγµα του δίσεκτου έτους και µε την υλοποίηση που προτείνεται παρακάτω.

Υλοποιήστε την παρακάτω εφαρµογή χρησιµοποιώντας τον ψευδοκώδικα που δίνεται πιο κάτω για να υπολογίσετε αν ένα έτος είναι δίσεκτο ή όχι. Στόχος της εφαρµογής: Ελέγχει αν ένα έτος είναι δίσεκτο χρησιµοποιώντας το If ..Then .. ElseIf. Περιγραφή: Η εφαρµογή ζητάει από το χρήστη να πληκτρολογήσει έναν αριθµό που αντιπροσωπεύει ένα έτος. Ο αριθµός αποθηκεύεται στη µεταβλητή theYear. Στη συνέχεια ελέγχει αν το έτος αυτό είναι δίσεκτο µε τον τρόπο που ακολουθεί.

ΠΑΡΑΓΩΓΗ CONCEPTUM

63

VVIISSUUAALL BBAASSIICC 22000088 ΕΕΚΚΠΠΑΑΙΙ∆∆ΕΕΥΥΤΤΙΙΚΚΟΟ ΕΕΓΓΧΧΕΕΙΙΡΡΙΙ∆∆ΙΙΟΟ –– ΤΤΕΕΤΤΡΡΑΑ∆∆ΙΙΟΟ Μ ΜΑΑΘ ΘΗΗΤΤΗΗ

-Αποθήκευσε στη µεταβλητή div4 το αποτέλεσµα της συνθήκης «το υπόλοιπο του theYear αν διαιρεθεί µε το 4 είναι 0» -Αποθήκευσε στη µεταβλητή div100 το αποτέλεσµα της συνθήκης «το υπόλοιπο του theYear αν διαιρεθεί µε το 100 είναι 0» -Αποθήκευσε στη µεταβλητή div400 το αποτέλεσµα της συνθήκης «το υπόλοιπο του theYear αν διαιρεθεί µε το 400 είναι 0» -∆ήλωσε την µεταβλητή isLeapYear. -Εάν ισχύει div400 τότε κάνε το isLeapYear αληθές -Αλλιώς εάν ισχύει div100 τότε κάνε το isLeapYear ψευδές -Αλλιώς εάν ισχύει div4 τότε κάνε το isLeapYear αληθές -Αλλιώς isLeapYear ψευδές -Αν ισχύει isLeapYear τότε εµφάνισε «το έτος είναι δίσεκτο, αλλιώς εµφάνισε «το έτος δεν είναι δίσεκτο».

∆ραστηριότητα 5: ∆οµή Select Case Μια άλλη δοµή που διευκολύνει τη συγγραφή κώδικα είναι η εντολή select ..case. Τη δοµή αυτή τη χρησιµοποιούµε όταν χρειάζεται να συγκριθεί η τιµή µιας µεταβλητής έναντι πολλών τιµών. Αν, για παράδειγµα, θέλετε να τυπώσετε την µέρα της εβδοµάδας θα µπορούσατε να χρησιµοποιήσετε τον παρακάτω κώδικα: Dim dt As Date = Date.Now Dim dayOfWeek As Integer = dt.DayOfWeek Select Case dayOfWeek Case 1 Console.WriteLine("Σήµερα ειναι ∆ευτέρα") Case 2 Console.WriteLine("Σήµερα ειναι Τρίτη") Case 3 Console.WriteLine("Σήµερα ειναι Τετάρτη") Case 4 Console.WriteLine("Σήµερα ειναι Πέµπτη") Case 5 Console.WriteLine("Σήµερα ειναι Παρσκευή") ΠΑΡΑΓΩΓΗ CONCEPTUM

64

VVIISSUUAALL BBAASSIICC 22000088 ΕΕΚΚΠΠΑΑΙΙ∆∆ΕΕΥΥΤΤΙΙΚΚΟΟ ΕΕΓΓΧΧΕΕΙΙΡΡΙΙ∆∆ΙΙΟΟ –– ΤΤΕΕΤΤΡΡΑΑ∆∆ΙΙΟΟ Μ ΜΑΑΘ ΘΗΗΤΤΗΗ

Case 6, 7 Console.WriteLine("Σαββατοκύριακο, µπορείς να ξεκουραστεις") End Select Console.ReadLine() Στο παραπάνω παράδειγµα συγκρίνονται διαδοχικά, η τιµή της µεταβλητής dayOfWeek µε τους αριθµούς 1,2,3,4,5,(6 και 7). Βλέπετε ότι µπορείτε να συγκρίνετε σε µια case µε περισσότερους από έναν αριθµούς. Επίσης, µπορείτε να βάλετε ένα εύρος. Π.χ. Case 1 To 5 Μπορείτε να γράψετε ένα πρόγραµµα µε πολλούς τρόπους. Τώρα υλοποιήστε τον παραπάνω κώδικα χωρίς να χρησιµοποιήσετε τη δοµή select ..case. Aντί για αυτή χρησιµοποιήστε τη δοµή If ..Then .. ElseIf

ΠΑΡΑΓΩΓΗ CONCEPTUM

65

VVIISSUUAALL BBAASSIICC 22000088 ΕΕΚΚΠΠΑΑΙΙ∆∆ΕΕΥΥΤΤΙΙΚΚΟΟ ΕΕΓΓΧΧΕΕΙΙΡΡΙΙ∆∆ΙΙΟΟ –– ΤΤΕΕΤΤΡΡΑΑ∆∆ΙΙΟΟ Μ ΜΑΑΘ ΘΗΗΤΤΗΗ

Φύλλο εργασίας

7. Πίνακες και Επαναληπτικές ∆οµές (3ωρες)

Όνοµα: Τάξη: ∆ιάρκεια: 3 διδακτικές ώρες. ∆ιδακτικοί στόχοι: Με το συγκεκριµένο φύλλο εργασίας •

Θα µάθεις να χρησιµοποιείς τις δοµές επανάληψης while, repeat, for.



Θα µάθεις τη διαφοροποίηση ανάµεσα στις δοµές repeat και while



Θα µπορείς να δηµιουργείς πίνακες στη Visual Basic



Θα µπορείς να προσπελάσεις όλα τα στοιχεία ενός πίνακα µε τη χρήση της δοµής for.

∆ραστηριότητα 1 : Η δοµή repeat

Ένα από τα πλεονεκτήµατα των υπολογιστών είναι πως µπορούν να εκτελούν πολλές επαναλήψεις µιας εργασίας. Ο αριθµός των επαναλήψεων στον κώδικα καθορίζεται από τη χρήση των δοµών επανάληψης. Υπάρχουν τρεις δοµές επανάληψης: -Η δοµή «while» που έχει τη γενική µορφή «όσο ισχύει η συνθήκη ελέγχου εκτέλεσε τις εντολές». -Η δοµή «repeat» που έχει τη γενική µορφή «εκτέλεσε τις εντολές και συνέχισε να τις εκτελείς όσο ισχύει η συνθήκη ελέγχου». ΠΑΡΑΓΩΓΗ CONCEPTUM

66

VVIISSUUAALL BBAASSIICC 22000088 ΕΕΚΚΠΠΑΑΙΙ∆∆ΕΕΥΥΤΤΙΙΚΚΟΟ ΕΕΓΓΧΧΕΕΙΙΡΡΙΙ∆∆ΙΙΟΟ –– ΤΤΕΕΤΤΡΡΑΑ∆∆ΙΙΟΟ Μ ΜΑΑΘ ΘΗΗΤΤΗΗ

-Η δοµή «for» που έχει τη γενική µορφή «εκτέλεσε τις εντολές για ορισµένο αριθµό επαναλήψεων». -Η διαφορά των δοµών «while» και «repeat» είναι πως ενώ στη δοµή «while» µπορεί να µην εκτελεστεί καµία επανάληψη, στη δοµή «repeat» εκτελείται τουλάχιστον µια επανάληψη. Στην πρώτη δραστηριότητα θα δούµε τη

δοµή «repeat» χρησιµοποιώντας τη

εφαρµογή υπολογισµού του δίσεκτου έτους. Όπως είχαµε δηµιουργήσει την εφαρµογή αυτή ο χρήστης έδινε ένα έτος και το πρόγραµµα υπολόγιζε αν αυτό είναι δίσεκτο. Για να υπολογίσει ένα άλλο έτος ο χρήστης θα πρέπει να ξαναεκτελέσει το πρόγραµµα. Παρακάτω θα δείτε τον κώδικα τροποποιηµένο ώστε να υπολογίζει όσα έτη δίνει ο χρήστης µέχρι αυτός να πατήσει χωρίς να πληκτρολογήσει τίποτε άλλο. Η δοµή «repeat» ονοµάζεται έτσι γιατί σε παλιότερες γλώσσες προγραµµατισµού υλοποιούνταν µε την εντολή repeat. Στην Visual Basic υλοποιείται µε την εντολή Do … Loop until ή Do .. loop While. ∆είτε το κώδικα: Module Module1 Sub Main() Console.Write("∆ώσε έτος:") Dim strTheYear As String = Console.ReadLine() Dim theYear As Integer Do theYear = strTheYear Dim div4 As Boolean = (theYear Mod 4) = 0 Dim div100 As Boolean = (theYear Mod 100) = 0 Dim div400 As Boolean = (theYear Mod 400) = 0 Dim isLeapYear As Boolean If div400 Then isLeapYear = True ElseIf div100 Then isLeapYear = False ElseIf div4 Then isLeapYear = True Else isLeapYear = False End If If isLeapYear Then Console.WriteLine("∆ισεκτο") Else Console.WriteLine("δεν ειναι ∆ισεκτο")

ΠΑΡΑΓΩΓΗ CONCEPTUM

67

VVIISSUUAALL BBAASSIICC 22000088 ΕΕΚΚΠΠΑΑΙΙ∆∆ΕΕΥΥΤΤΙΙΚΚΟΟ ΕΕΓΓΧΧΕΕΙΙΡΡΙΙ∆∆ΙΙΟΟ –– ΤΤΕΕΤΤΡΡΑΑ∆∆ΙΙΟΟ Μ ΜΑΑΘ ΘΗΗΤΤΗΗ End If Console.Write("∆ώσε έτος:") strTheYear = Console.ReadLine() Loop Until strTheYear = "" End Sub End Module

Επειδή ο κώδικας αυτός είναι πολύ µακρύς, για την καλύτερη κατανόησή του από τον ίδιο αλλά και από κάποιον άλλο προγραµµατιστή που θα τον διαβάσει αργότερα, θα πρέπει να δοµηθεί αποµονώνοντας αυτόνοµα κοµµάτια του και οµαδοποιώντας τα σε υπορουτίνες και συναρτήσεις. ∆είτε το παράδειγµα: Module Module1 Function isThisAleapyear(ByVal theYear As Integer) As Boolean Dim div4 As Boolean = (theYear Mod 4) = 0 Dim div100 As Boolean = (theYear Mod 100) = 0 Dim div400 As Boolean = (theYear Mod 400) = 0 Dim isLeapYear As Boolean If div400 Then isLeapYear = True ElseIf div100 Then isLeapYear = False ElseIf div4 Then isLeapYear = True Else isLeapYear = False End If Return isLeapYear End Function Sub Main() Console.Write("∆ώσε έτος:") Dim strTheYear As String = Console.ReadLine() Dim theYear As Integer Do theYear = strTheYear If isThisAleapyear(theYear) Then Console.WriteLine("Το έτος " + theYear.ToString() + " είναι δίσεκτο.") Else Console.WriteLine("Το έτος " + theYear.ToString() + " δεν είναι δίσεκτο, µπορείς να παντρευτείς.") End If Console.Write("∆ώσε έτος:") strTheYear = Console.ReadLine() Loop Until strTheYear = "" End Sub End Module

Πριν εξετάσουµε τη δοµή επανάληψης δείτε µερικά σηµεία στον κώδικα.

ΠΑΡΑΓΩΓΗ CONCEPTUM

68

VVIISSUUAALL BBAASSIICC 22000088 ΕΕΚΚΠΠΑΑΙΙ∆∆ΕΕΥΥΤΤΙΙΚΚΟΟ ΕΕΓΓΧΧΕΕΙΙΡΡΙΙ∆∆ΙΙΟΟ –– ΤΤΕΕΤΤΡΡΑΑ∆∆ΙΙΟΟ Μ ΜΑΑΘ ΘΗΗΤΤΗΗ

To theYear.ToString() Όπως είδαµε στο φύλλο εργασίας 5 η Visual Basic αντιµετωπίζει τα String σαν

αντικείµενα. Το ίδιο συµβαίνει και µε τις µεταβλητές τύπου Integer. Η Visual Basic τις αντιµετωπίζει σαν αντικέιµενα. Η µέθοδος ToString επιστρέφει ένα string που αναπαριστά τον αριθµό. Έτσι µπορούµε να το χρησιµοποιήσουµε σε αλφαριθµητικές πράξεις. To theYear = strTheYear Εδώ έχουµε µια ανορθόδοξη καταχώρηση. Καταχωρούµε ένα string σε έναν Integer. Σε αυτή την περίπτωση η Visual Basic προσπαθεί να µετατρέψει την τιµή που βρίσκεται στο δεξιό µέρος της καταχώρισης στον τύπο µεταβλητής που βρίσκεται στο αριστερό µέρος. Αν αυτό δεν είναι δυνατόν το πρόγραµµά µας θα «σκάσει», δηλαδή θα βγάλει ένα µήνυµα λάθους και θα σταµατήσει τη λειτουργία του. Do και Loop Until Οι εντολές που επαναλαµβάνονται είναι οι εντολές που βρίσκονται µεταξύ των Do και Loop Until. Μετά το Loop Until ακλουθεί µια λογική συνθήκη. Όταν φτάσει εκεί το πρόγραµµα θα εξετάσει τη συνθήκη. Αν αυτή είναι ψευδής τότε θα επαναλάβει την εκτέλεση των εντολών από την εντολή Do και µετά. Αν είναι αληθής θα βγει από τη δοµή επανάληψης και θα εκτελεστεί η αµέσως επόµενη εντολή, στην περίπτωση µας η εντολή End Sub που τερµατιζει την εφαρµογή. strTheYear = Console.ReadLine() Επειδή οι εντολές που βρίσκονται µέσα στη δοµή επανάληψης θα εκτελούνται µέχρι η συνθήκη να είναι αληθής οι παράγοντες που επηρεάζουν τη συνθήκη (µπορούν δηλαδή να της αλλάξουν τιµή) πρέπει να ανανεώνονται µέσα στη δοµή επανάληψης. Στην περίπτωσή µας αυτό γίνεται µε την τελευταία εντολή πριν από το Loop Until: strTheYear = Console.ReadLine(). Αν η συνθήκη δεν ανανεωθεί το πρόγραµµα θα πέσει σε ατέρµονη επανάληψη και δεν θα µπορεί να τερµατιστεί φυσιολογικά.

Τώρα δηµιουργήστε την παρακάτω εφαρµογή κονσόλας.

ΠΑΡΑΓΩΓΗ CONCEPTUM

69

VVIISSUUAALL BBAASSIICC 22000088 ΕΕΚΚΠΠΑΑΙΙ∆∆ΕΕΥΥΤΤΙΙΚΚΟΟ ΕΕΓΓΧΧΕΕΙΙΡΡΙΙ∆∆ΙΙΟΟ –– ΤΤΕΕΤΤΡΡΑΑ∆∆ΙΙΟΟ Μ ΜΑΑΘ ΘΗΗΤΤΗΗ

Στόχος της εφαρµογής: ζητάει από το χρήστη να πληκτρολογήσει µια λέξη µέχρι ο χρήστης να πληκτρολογήσει τη λέξη «bye», µε αυτή τη λέξη τερµατίζεται η εφαρµογή. ∆ραστηριότητα 2 : H δοµή while. Στις επόµενες δραστηριότητες θα δείτε µια εφαρµογή που χρησιµοποιεί και τις τρεις δοµές επανάληψης. Σε αυτή τη δραστηριότητα θα ασχοληθείτε µε τη δοµή «while». Όπως αναφέρθηκε πιο πάνω µε τη δοµή «while» πρώτα γίνεται ο έλεγχος αν ισχύει η συνθήκη που ελέχγει τις επαναλήψεις και µετά εκτελούνται οι επαναλήψεις. Αυτό σηµαίνει πως είναι πιθανόν να µην εκτελεστεί καµία επανάληψη. Στον παρακάτω κώδικα έχουµε µια εφαρµογή που υπολογίζει το παραγοντικό ενός αριθµού που πληκτρολογεί ο χρήστης. Η διαδικασία επαναλαµβάνεται µέχρι ο χρήστης να πληκτρολογήσει το αριθµό 0. Έχει µια µεγάλη διαφοροποίηση από τις εφαρµογές που είδατε µέχρι τώρα, κάνει έλεγχο στα δεδοµένα που πληκτρολογεί ο χρήστης έτσι ώστε αν αυτός πληκτρολογήσει µη αποδεκτά δεδοµένα το πρόγραµµα να συνεχίσει τη λειτουργία του. ∆είτε τον κώδικα: Module Module1 Function calculateParagontiko(ByVal number As Integer) As String Return "Η συνάρτηση αυτή δεν είναι ακόµα έτοιµη" End Function Function getUserInput() As Integer Dim strTheNumber As String Dim theNumber As Integer Do Console.Write("∆ωσε έναν αριθµό") Console.Write("0 για τερµατισµό)") strTheNumber = Console.ReadLine() Loop Until IsNumeric(strTheNumber) theNumber = strTheNumber Return theNumber End Function Sub Main() Dim n As Integer n = getUserInput() Do While n 0 Console.Write("Το παραγοντικό του " + n.ToString() + " είναι ") Console.WriteLine(calculateParagontiko(n)) n = getUserInput() Loop End Sub End Module

ΠΑΡΑΓΩΓΗ CONCEPTUM

70

VVIISSUUAALL BBAASSIICC 22000088 ΕΕΚΚΠΠΑΑΙΙ∆∆ΕΕΥΥΤΤΙΙΚΚΟΟ ΕΕΓΓΧΧΕΕΙΙΡΡΙΙ∆∆ΙΙΟΟ –– ΤΤΕΕΤΤΡΡΑΑ∆∆ΙΙΟΟ Μ ΜΑΑΘ ΘΗΗΤΤΗΗ

Για να κατανοήσετε καλύτερα τη λειτουργία του προγράµµατος δηµιουργήστε µια νέα εφαρµογή κονσόλας και πληκτρολογήστε το παραπάνω. Μετά πάρτε το ρόλο του χρήστη και εισάγετε διάφορες τιµές αριθµητικές και µη. Η εφαρµογή αποτελείται από την κεντρική υπορουτίνα και δυο συναρτήσεις. Η µια συνάρτηση calculateParagontiko() δεν είναι ακόµα έτοιµη και θα την δείτε στην επόµενη δραστηριότητα. Η άλλη getUserInput() επιστρέφει τον αριθµό που πληκτρολόγησε ο χρήστης αφού κάνει πρώτα έλεγχο πως ο χρήστης πληκτρολόγησε πράγµατι έναν αριθµό. Ο έλεγχος γίνεται µε την συνάρτηση IsNumeric της Visual Basic. Η συνάρτηση αυτή είναι µια λογική(Boolean) συνάρτηση, επιστρέφει δηλαδή τιµές true ή false. Η τιµή της γίνεται true όταν το string που δέχεται σαν παράµετρο είναι µετατρέψιµο σε αριθµό. Η κεντρική υπορουτίνα του προγράµµατος Sub Main() χρησιµοποιεί την δοµή «while» για να επαναλαµβάνει την διαδικασία µέχρι ο χρήστης να πληκτρολογήσει την τιµή 0. Παρατηρήστε πως αν ο χρήστης πληκτρολογήσει την πρώτη φορά το 0 η συνάρτηση calculateParagontiko δεν εκτελειται ποτέ. Η δοµή while συντάσσεται ως εξής: Do while συνθήκη εντολές Loop

Συγκρίνετε την εφαρµογή αυτή µε την εφαρµογή που είδατε σαν παράδειγµα στη δραστηριότητα 1. Τι συµβαίνει εκεί αν ο χρήστης πατήσει για πρώτη φορά ; Τώρα εξετάστε την συνάρτηση getUserInput(). Σε αυτή χρησιµοποιούµε τη δοµή repeat για να εξασφαλίσουµε πως ο χρήστης έχει πληκτρολογήσει ένα string που µπορεί να µετατραπεί σε αριθµό. Εξετάστε τη δοµή της συνάρτησης και µετατρέψετε την ως εξής: όταν ο χρήστης πληκτρολογήσει κάτι που δεν είναι αριθµός τότε πρέπει να εµφανίζεται ένα µήνυµα που να λέει «το x δεν είναι αριθµός» οπού x το string που πληκτρολόγησε ο χρήστης. Η κονσόλα όπου εκτελείται η εφαρµογή θα πρέπει να µοιάζει µε το παρακάτω: ΠΑΡΑΓΩΓΗ CONCEPTUM

71

VVIISSUUAALL BBAASSIICC 22000088 ΕΕΚΚΠΠΑΑΙΙ∆∆ΕΕΥΥΤΤΙΙΚΚΟΟ ΕΕΓΓΧΧΕΕΙΙΡΡΙΙ∆∆ΙΙΟΟ –– ΤΤΕΕΤΤΡΡΑΑ∆∆ΙΙΟΟ Μ ΜΑΑΘ ΘΗΗΤΤΗΗ

Σκεφτείτε η δοµή «repeat» είναι η κατάλληλη για να υλοποιήσετε τη ζητούµενη συνάρτηση;

∆ραστηριότητα 3 : Η δοµή for .. next Η τρίτη δοµή επανάληψης είναι η δοµή «for .. next». Η δοµή αυτή εκτελεί ένα πακέτο εντολών για ένα συγκεκριµένο αριθµό επαναλήψεων. ∆εν έχει συνθήκη ελέγχου για να τερµατιστεί όπως οι δοµές «repeat» και «while». Αντίθετα χαρακτηριστικό της είναι ένας ακέραιος που αποκαλείται δείκτης. Ο δείκτης έχει µια αρχική τιµή και µια τελική τιµή. Σε κάθε επανάληψη η τιµή του δείκτη αυξάνεται κατά 1 (ή κάποιον άλλον αριθµό όπως θα δούµε παρακάτω). Οι επαναλήψεις τερµατίζονται όταν η τιµή του δείκτη γίνει µεγαλύτερη από την τελική τιµή. Η σύνταξη της δοµής « for .. next» είναι η εξής: For i = αρχική τιµή To τελική τιµή εντολές Next

Για να κατανοήσετε καλλίτερα τη δοµή «for .. next» φτιάξτε εφαρµογή κονσόλας. Module Module1 Sub Main() For i = 0 To 10 Console.WriteLine(i) ΠΑΡΑΓΩΓΗ CONCEPTUM

72

την παρακάτω

VVIISSUUAALL BBAASSIICC 22000088 ΕΕΚΚΠΠΑΑΙΙ∆∆ΕΕΥΥΤΤΙΙΚΚΟΟ ΕΕΓΓΧΧΕΕΙΙΡΡΙΙ∆∆ΙΙΟΟ –– ΤΤΕΕΤΤΡΡΑΑ∆∆ΙΙΟΟ Μ ΜΑΑΘ ΘΗΗΤΤΗΗ Next Console.ReadLine() End Sub End Module

Η εφαρµογή αυτή τυπώνει στην οθόνη τους αριθµούς από το 0 µέχρι το 10, δηλαδή ένδεκα αριθµούς. Βλέπετε πως ο δείκτης αλλάζει τιµή µετά από κάθε επανάληψη. Ο δείκτης µπορεί να αλλάζει και µε τιµές διαφορετικές του 1. Η ρυθµός µεταβολής του δείκτη ορίζεται µε τη δήλωση Step. Ο παρακάτω κώδικας τυπώνει του άρτιους αριθµούς από το 0 µέχρι το 10. Module Module1 Sub Main() For i = 0 To 10 Step 2 Console.WriteLine(i) Next Console.ReadLine() End Sub End Module

Η παρακάτω εφαρµογή είναι µια απλή εφαρµογή που υπολογίζει το άθροισµα των αριθµών από το 1 έως το 100. Module Module1 Sub Main() Dim sum As Integer = 0 For i = 0 To 100 sum = sum + i Next Console.WriteLine(sum) Console.ReadLine() End Sub End Module

Τώρα επιστρέψτε στην εφαρµογή που φτιάξατε στη δραστηριότητα 2 και συµπληρώστε την συνάρτηση που επιστρέφει το παραγοντικό ενός αριθµού. Η τελική οθόνη πρέπει να µοιάζει µε το παρακάτω.

ΠΑΡΑΓΩΓΗ CONCEPTUM

73

VVIISSUUAALL BBAASSIICC 22000088 ΕΕΚΚΠΠΑΑΙΙ∆∆ΕΕΥΥΤΤΙΙΚΚΟΟ ΕΕΓΓΧΧΕΕΙΙΡΡΙΙ∆∆ΙΙΟΟ –– ΤΤΕΕΤΤΡΡΑΑ∆∆ΙΙΟΟ Μ ΜΑΑΘ ΘΗΗΤΤΗΗ

∆ραστηριότητα 4 : Οι πίνακες στη Visual Basic Όταν έχουµε πολλές όµοιες τιµές είναι καλό να µπορούµε να τις οµαδοποιούµε. Οι γλώσσες προγραµµατισµού γι’ αυτό τον σκοπό διαθέτουν τους πινάκες. Οι πίνακες είναι µεταβλητές που µέσα τους καταχωρούνται άλλες µεταβλητές. Για να έχουµε πρόσβαση σε µια από τις µεταβλητές που βρίσκονται µέσα σε έναν πίνακα χρησιµοποιούµε δείκτες. Ένα παράδειγµα πίνακα που γνωρίζετε πολύ καλά ήδη είναι η µεταβλητή τύπου string. Αυτή η µεταβλητή αποτελείται από πολλές µεταβλητές τύπου char. ∆είτε στο παρακάτω παράδειγµα πως µπορούµε να χειριστούµε ένα string σαν πίνακα. Module Module1 Sub Main() Console.Write("Πληκτρολόγησε µια λέξη >") Dim str As String = Console.ReadLine() Dim ch As Char Do While str "" For i = 0 To str.Length - 1 ch = str(i) Console.WriteLine(ch) Next Console.Write("Πληκτρολόγησε µια λέξη >") str = Console.ReadLine() Loop End Sub End Module

ΠΑΡΑΓΩΓΗ CONCEPTUM

74

VVIISSUUAALL BBAASSIICC 22000088 ΕΕΚΚΠΠΑΑΙΙ∆∆ΕΕΥΥΤΤΙΙΚΚΟΟ ΕΕΓΓΧΧΕΕΙΙΡΡΙΙ∆∆ΙΙΟΟ –– ΤΤΕΕΤΤΡΡΑΑ∆∆ΙΙΟΟ Μ ΜΑΑΘ ΘΗΗΤΤΗΗ

Στο παράδειγµα αυτό ο χρήστης πληκτρολογεί µια σειρά χαρακτήρων στο πληκτρολόγιο και µετά το πρόγραµµα εκτυπώνει ένα χαρακτήρα σε κάθε γραµµή. Η τελική τιµή της δοµής «for» καθορίζεται από την ιδιότητα Length του string. Η ιδιότητα Length υπάρχει σε όλους του πίνακες και επιστρέφει τον αριθµό των µεταβλητών

που

έχουν

αποθηκευτεί

µέσα

στον

πίνακα.

Οι

µεταβλητές

αποθηκεύονται στο πίνακα σε σειρά. Για να προσπελάσουµε µια µεταβλητή που είναι αποθηκευµένη σε έναν πίνακα χρειαζόµαστε να ξέρουµε την θέση της. Η προσπέλαση γίνεται µε έναν δείκτη. Ο δείκτης ξεκινάει από τη τιµή µηδέν. Έτσι αν έχουµε ένα string µε τιµή «Μια γάτα» µπορούµε να προσπελάσουµε το «Μ» βάζοντας για δείκτη την τιµή µηδέν. Έτσι ο κώδικας Dim str As String = “Μια γάτα” Console.Write(str(0))

θα τυπώσει το «Μ» Το string όπως αναφέραµε είναι ένας πίνακας από µεταβλητές τύπου char. Μπορούµε να δηλώσουµε πίνακες από µεταβλητές οποιουδήποτε τύπου. Παρακάτω βλέπουµε πως µπορούµε να δηλώσουµε έναν πίνακα που να αποθηκεύουµε µεταβλητές τύπου string Dim strArray(0 To 6) As String strArray(0) = "∆ευτέρα" strArray(1) = "Τρίτη" strArray(2) = "Τετάρτη" strArray(3) = "Πέµπτη" strArray(4) = "Παρασκευή" strArray(5) = "Σάββατο" strArray(6) = "Κυριακή"

ΠΑΡΑΓΩΓΗ CONCEPTUM

75

VVIISSUUAALL BBAASSIICC 22000088 ΕΕΚΚΠΠΑΑΙΙ∆∆ΕΕΥΥΤΤΙΙΚΚΟΟ ΕΕΓΓΧΧΕΕΙΙΡΡΙΙ∆∆ΙΙΟΟ –– ΤΤΕΕΤΤΡΡΑΑ∆∆ΙΙΟΟ Μ ΜΑΑΘ ΘΗΗΤΤΗΗ

µε τη δήλωση Dim strArray(0 To 6) As String φτιάχνουµε µια σειρά από επτά µεταβλητές µε τη µορφή πίνακα. Για να τις προσπελάσουµε χρησιµοποιούµε τον δείκτη. Όταν κάνουµε τη δήλωση του πινάκα στην παρένθεση γράφουµε πόσες θέσεις θα έχει ο πίνακας. Η δήλωση Dim strArray(0 To 6) As String είναι ισοδύναµη µε τη δήλωση Dim strArray(6) As String. Απλώς η πρώτη είναι πιο κατανοητή από τη δεύτερη. Στο «Φύλλο Εργασίας 6» είχαµε δηµιουργήσει ένα πρόγραµµα που τύπωνε την ηµέρα της εβδοµάδας. Η παρακάτω εφαρµογή κάνει ακριβώς το ίδιο µε τη χρήση πινάκων µε λιγότερες γραµµές κώδικα. Module Module1 Sub Main() Dim strArray(0 To 7) As String strArray(0) = "∆ευτέρα" strArray(1) = "Τρίτη" strArray(2) = "Τετάρτη" strArray(3) = "Πέµπτη" strArray(4) = "Παρασκευή" strArray(5) = "Σάββατο" strArray(6) = "Κυριακή" Dim dt As Date = Date.Now Dim dayOfWeek As Integer = dt.DayOfWeek Console.WriteLine(strArray(dayOfWeek - 1)) Console.ReadLine() End Sub End Module

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

ΠΑΡΑΓΩΓΗ CONCEPTUM

76

VVIISSUUAALL BBAASSIICC 22000088 ΕΕΚΚΠΠΑΑΙΙ∆∆ΕΕΥΥΤΤΙΙΚΚΟΟ ΕΕΓΓΧΧΕΕΙΙΡΡΙΙ∆∆ΙΙΟΟ –– ΤΤΕΕΤΤΡΡΑΑ∆∆ΙΙΟΟ Μ ΜΑΑΘ ΘΗΗΤΤΗΗ

Φύλλο εργασίας

8. Εκσφαλµάτωση

Όνοµα: Τάξη: ∆ιάρκεια: 3 διδακτικές ώρες. ∆ιδακτικοί στόχοι: Με το συγκεκριµένο φύλλο εργασίας •

Θα εξασκηθείς στην αντιµετώπιση λαθων0

∆ραστηριότητα 1 : Συντακτικά λάθη. Κατά τη διάρκεια της συγγραφής κώδικα, όπως ίσως ήδη έχετε διαπιστώσει, µπορούν να γίνουν λάθη που επηρεάζουν τη σωστή λειτουργία της εφαρµογής. Τα λάθη χωρίζονται σε τρείς µεγάλες κατηγορίες. Πρώτη τα συντακτικά λάθη. Συντακτικό λάθος σηµαίνει πως οι εντολές που γράψαµε δεν είναι κατανοητές από τον µεταγλωττιστή (compiler ). Σε αυτή την περίπτωση, όταν δοκιµάσουµε να τρέξουµε τον κώδικα που γράψαµε, ο compiler της Visual Basic θα µας εµφανίσει το παρακάτω µήνυµα.

ΠΑΡΑΓΩΓΗ CONCEPTUM

77

VVIISSUUAALL BBAASSIICC 22000088 ΕΕΚΚΠΠΑΑΙΙ∆∆ΕΕΥΥΤΤΙΙΚΚΟΟ ΕΕΓΓΧΧΕΕΙΙΡΡΙΙ∆∆ΙΙΟΟ –– ΤΤΕΕΤΤΡΡΑΑ∆∆ΙΙΟΟ Μ ΜΑΑΘ ΘΗΗΤΤΗΗ Τα συντακτικά λάθη που έχουµε κάνει εµφανίζονται στο παράθυρο µε τη λίστα λαθών που βρίσκεται (συνήθως) κάτω από το παράθυρο κώδικα.

Στις παρακάτω γραµµές κώδικα εντοπίστε τα συντακτικά λάθη. Dim str As String str = ""; Dim num As Integer = 0 Console.WriteLine ("Ο αριθµός "num" ειναι 0")

………………………………………………………………………………………………… ………………………………………………………………………………………………… ………………………………………………………………………………………………… ………………………………………………………………………………………………… ………………………………………………………………………………………………… ………………………………………………………………………………… ………………………………………………………………………………………………… ………………………………………………………………………………………………… ………………………………………………………………………………………………… ………………………………………………………………………………………………… ………………………………………………………………………………………………… …………………………………………………………………………………

∆ραστηριότητα 2 : Επιλογές που επηρεάζουν τα συντακτικά λάθη. (Option Explicit) Η αυστηρότητα στη σύνταξη της Visual Basic επηρεάζεται από ορισµένες επιλογές του προγραµµατιστή. Οι επιλογές αυτές γράφονται στις πρώτες γραµµές του προγράµµατος µε τη µορφή Option χχχ On/Off. Η επιλογή Option Explicit On κάνει τον compiler να χτυπάει συντακτικό λάθος όταν χρησιµοποιούµε µια µεταβλητή που δεν έχουµε προηγουµένως δηλώσει. Παράδειγµα ο παρακάτω κώδικας δεν έχει συντακτικό λάθος (κατά τον compiler) Option Explicit Off Module Module1 Sub Main() ΠΑΡΑΓΩΓΗ CONCEPTUM

78

VVIISSUUAALL BBAASSIICC 22000088 ΕΕΚΚΠΠΑΑΙΙ∆∆ΕΕΥΥΤΤΙΙΚΚΟΟ ΕΕΓΓΧΧΕΕΙΙΡΡΙΙ∆∆ΙΙΟΟ –– ΤΤΕΕΤΤΡΡΑΑ∆∆ΙΙΟΟ Μ ΜΑΑΘ ΘΗΗΤΤΗΗ thisInt = 10 End Sub End Module

Ενώ ο κώδικας που βρίσκεται πιο κάτω έχει συντακτικό λάθος Option Explicit On Module Module1 Sub Main() thisInt = 10 End Sub End Module

Βρείτε ποια είναι η default κατάσταση του Option Explicit. ∆ηλαδή αν δεν δηλώσουµε καθόλου του Option Explicit ο compiler συµπεριφέρεται σαν να είναι δηλωµένο on ή off?

………………………………………………………………………………………………… ………………………………………………………………………………………………… ………………………………………………………………………………………………… ………………………………………………………………………………………………… ………………………………………………………………………………………………… …………………………………………………………………………………

∆ραστηριότητα 3 : Επιλογές που επηρεάζουν τα συντακτικά λάθη. (Option Strict). Στο κώδικα που είδατε µέχρι τώρα συναντήστε εντολές που µετατρέπουν ένα είδος µεταβλητής σε άλλο. Πχ. Dim str As String = Console.ReadLine() Dim num As Integer = str

Η δεύτερη εντολή µετατρέπει το αλφαριθµητικό σε ακέραιο επειδή το num είναι δηλωµένο σαν ακέραιος. Όπως έχει τονιστεί στο Φ.Ε 7 αυτή η τεχνική δεν είναι ασφαλής και δεν πρέπει να χρησιµοποιείται. Υπάρχουν ασφαλέστεροι τρόποι µετατροπής. Π.χ. για την µετατροπή οποιουδήποτε αντικειµένου σε αλφαριθµητικό θα πρέπει να χρησιµοποιείται η µέθοδος toString(). Γι αυτό το λόγο η Visual Basic προσφέρει την δήλωση Option Strict . Όταν η επιλογή αυτή είναι On τότε ο παραπάνω κώδικας θα χτυπήσει συντακτικό λάθος. Βρείτε στον παρακάτω κώδικα ποιες εντολές θα χτυπήσουν συντακτικό λάθος. Option Strict On Module Module1

ΠΑΡΑΓΩΓΗ CONCEPTUM

79

VVIISSUUAALL BBAASSIICC 22000088 ΕΕΚΚΠΠΑΑΙΙ∆∆ΕΕΥΥΤΤΙΙΚΚΟΟ ΕΕΓΓΧΧΕΕΙΙΡΡΙΙ∆∆ΙΙΟΟ –– ΤΤΕΕΤΤΡΡΑΑ∆∆ΙΙΟΟ Μ ΜΑΑΘ ΘΗΗΤΤΗΗ Sub Main() Console.WriteLine("Ο αριθµός 10 ειναι άρτιος") Console.WriteLine("Ο αριθµός " + 11 + " ειναι περιττός") Dim str As String = 0 Dim myName As String myName = "∆ηµήτρης" Dim myAge As Integer = 40 Console.WriteLine(myName + ", " + myAge) End Sub End Module

………………………………………………………………………………………………… ………………………………………………………………………………………………… ………………………………………………………………………………………………… ………………………………………………………………………………………………… ………………………………………………………………………………………………… ………………………………………………………………………………… ………………………………………………………………………………………………… ………………………………………………………………………………………………… ………………………………………………………………………………………………… ………………………………………………………………………………………………… ………………………………………………………………………………………………… ……………………………………………………………………………… ………………………………………………………………………………………………… ………………………………………………………………………………………………… ………………………………………………………………………………………………… ………………………………………………………………………………………………… ………………………………………………………………………………………………… ……………………………………………………………………

∆ραστηριότητα 4 : Οι εντολές try … catch Στις προηγούµενες δραστηριότητες µιλήσαµε για συντακτικά λάθη που είναι η πρώτη κατηγορία λαθών. Η δεύτερη κατηγορία είναι τα run time error. Τα λάθη αυτά συµβαίνουν όταν ο κώδικάς µας εκτελεί µια εσφαλµένη εντολή κατά τη διάρκεια της εκτέλεσης του. Σε αυτή την περίπτωση το πρόγραµµα θα εµφανίσει ένα µήνυµα λάθους σαν αυτό.

ΠΑΡΑΓΩΓΗ CONCEPTUM

80

VVIISSUUAALL BBAASSIICC 22000088 ΕΕΚΚΠΠΑΑΙΙ∆∆ΕΕΥΥΤΤΙΙΚΚΟΟ ΕΕΓΓΧΧΕΕΙΙΡΡΙΙ∆∆ΙΙΟΟ –– ΤΤΕΕΤΤΡΡΑΑ∆∆ΙΙΟΟ Μ ΜΑΑΘ ΘΗΗΤΤΗΗ

∆οκιµάστε τον παρακάτω κώδικα που έχετε ξαναδεί. Module Module1 Sub Main() Dim int As Integer = Console.ReadLine() End Sub End Module

Επειδή δεν έχουµε Option Strict On ο compiler δεν θα εµφανίσει λάθος. ∆ηµιουργήστε µια νέα εφαρµογή κονσόλας και αποθηκεύστε την. Πληκτρολογήστε τον παραπάνω κώδικα. Τρέξτε το πρόγραµµα και πληκτρολογήστε κάτι που δεν είναι αριθµός και δείτε τι συµβαίνει. Μετά βρείτε το exe αρχείο που δηµιούργησε ο compiler. (είναι στο φάκλεο bin\debug). Τρέξτε το αρχείο και πληκτρολογήστε κάτι που δεν είναι αριθµός και δείτε τι συµβαίνει Τέτοιου είδους λάθη είναι πολύ πιθανόν να συµβούν ακόµα και αν έχουν την επιλογή Option Strict On . Ωστόσο µπορείτε να τα διαχειριστείτε µε τη δοµή try .. catch. ∆είτε ένα παράδειγµα µε τη χρήση αυτής της δοµής. Module Module1 Sub Main() Try Dim int As Integer = Console.ReadLine() Catch ex As Exception Console.WriteLine("∆εν έδωσες σωστά στοιχεία.") Console.ReadLine() End Try End Sub

Πληκτρολογήστε το και τρέξτε το. Παρατηρείστε τη διαφορά. Το πρόγραµµα δεν τερµατίζεται όταν ο χρήστης πληκτρολογήσει λάθος δεδοµένα. Όταν εκτελούνται οι εντολές που βρίσκονται µεταξύ του try και catch όταν συµβεί κάτι που θα προκαλέσει run time error το σταµατά η εκτέλεση των εντολών και αρχίζουν να εκτελούνται οι εντολές που βρίσκονται µεταξύ catch και end try. ∆είτε όµως το παρακάτω παράδειγµα.

ΠΑΡΑΓΩΓΗ CONCEPTUM

81

VVIISSUUAALL BBAASSIICC 22000088 ΕΕΚΚΠΠΑΑΙΙ∆∆ΕΕΥΥΤΤΙΙΚΚΟΟ ΕΕΓΓΧΧΕΕΙΙΡΡΙΙ∆∆ΙΙΟΟ –– ΤΤΕΕΤΤΡΡΑΑ∆∆ΙΙΟΟ Μ ΜΑΑΘ ΘΗΗΤΤΗΗ Module Module1 Sub Main() Dim int As Integer Try int = Console.ReadLine() Catch ex As Exception Console.WriteLine("∆εν έδωσες σωστά στοιχεία." + int) Console.ReadLine() End Try End Sub End Module

Σε αυτό το παράδειγµα αν ο χρήστης δώσει λάθος δεδοµένα θα προκληθεί πάλι run time error. Οι εντολές που βρίσκονται µεταξύ catch και end try δεν «προστατεύονται». Στο παρακάτω παράδειγµα δείτε τη χρήση της µεταβλητής που η visual Basic µάς διαθέτει για να χειριζόµαστε τα λάθη (ex στον κώδικά µας). Module Module1 Sub Main() Dim int As Integer Try int = Console.ReadLine() Catch ex As Exception Console.WriteLine(ex.Message) Console.ReadLine() End Try End Sub End Module

Η µεταβλητή ex έχει δηλωθεί σαν στιγµιότυπο (instance) της κλάσης Exception. Η κλάση αυτή δίνει την ιδιότητα Message τύπου string που περιέχει το µήνυµα λάθους. Στο προηγούµενο Φ.Ε δηµιουργήσατε µια εφαρµογή που υπολογίζει το παραγοντικό ενός αριθµού. Ωστόσο, αν προσπαθούσε ο χρήστης να υπολογίσει το παραγοντικό ενός µεγάλου αριθµού, το πρόγραµµα θα τερµατιζόταν µε run time error. Τροποποιήστε αυτή την εφαρµογή ώστε να µην τερµατίζεται, αλλά να δίνει ένα µήνυµα λάθους στο χρήστη.

∆ραστηριότητα 5 : Λογικά λάθη 1. Η τρίτη κατηγορία σφαλµάτων είναι τα λογικά σφάλµατα. Λογικό σφάλµα λέγεται ένα λάθος όταν το πρόγραµµα θα έπρεπε να έχει διαφορετική συµπεριφορά από αυτή που πραγµατικά έχει. ∆ειτε για παράδειγµα τον παρακάτω κώδικα:

ΠΑΡΑΓΩΓΗ CONCEPTUM

82

VVIISSUUAALL BBAASSIICC 22000088 ΕΕΚΚΠΠΑΑΙΙ∆∆ΕΕΥΥΤΤΙΙΚΚΟΟ ΕΕΓΓΧΧΕΕΙΙΡΡΙΙ∆∆ΙΙΟΟ –– ΤΤΕΕΤΤΡΡΑΑ∆∆ΙΙΟΟ Μ ΜΑΑΘ ΘΗΗΤΤΗΗ Module Module1 Sub Main() Dim numbers() As Double = {1, 1, 1, 1, 1, 1} Dim sum = 0 For i = 1 To numbers.Length - 1 sum = sum + numbers(i) Next Console.WriteLine(sum) Console.ReadLine() End Sub End Module

Ο προφανής στόχος αυτού του κώδικα είναι να υπολογίσει το σύνολο των τιµών του πίνακα numbers. Το αποτέλεσµα που θα εµφανιστεί στην οθόνη θα έπρεπε να είναι 6. Ωστόσο ο κώδικας εµφανίζει 5. Αυτό είναι ένα λογικό λάθος. Για να εντοπιστει πρέπει να παρακολουθήσετε την ροή του προγράµµατος βήµα-βήµα Αυτό γίνεται πατώντας Debug-> Step Into .ή πατώντας F8. Το πρόγραµµα εκτελεί την πρώτη εντολή και περιµένει. Ο προγραµµατιστής µπορεί να δει τις τιµές που παίρνουν οι µεταβλητές µετά την εκτέλεση της πρώτης εντολής. Πατώντας ξανά F8 εκτελείται η επόµενη εντολή και µπορούµε να δούµε τις νέες τιµές που πήραν οι µεταβλητές. Πληκτρολογήστε τον παραπάνω κώδικα και τρέξτε τον βήµα βήµα. Προσπαθήστε να εντοπίσετε το λάθος.

∆ραστηριότητα 6 : Λογικά λάθη 2 Φτιάξτε µια νέα εφαρµογή φορµών. Στην φόρµα τοποθετήστε ένα button, δυο labels και δυο textboxes. ∆ώστε τιµές στις ιδιότητες Text των αντικειµένων ώστε η φόρµα να µοιάζει µε το παρακάτω.

ΠΑΡΑΓΩΓΗ CONCEPTUM

83

VVIISSUUAALL BBAASSIICC 22000088 ΕΕΚΚΠΠΑΑΙΙ∆∆ΕΕΥΥΤΤΙΙΚΚΟΟ ΕΕΓΓΧΧΕΕΙΙΡΡΙΙ∆∆ΙΙΟΟ –– ΤΤΕΕΤΤΡΡΑΑ∆∆ΙΙΟΟ Μ ΜΑΑΘ ΘΗΗΤΤΗΗ Με το πρόγραµµα αυτό θα καταχωρούµε το χρόνο σε λεπτά και τη απόσταση που διανύθηκε σε χιλιόµετρα. Πατώντας το button1 το πρόγραµµα θα υλοπογίζει την µεση ωριαία ταχύτητα. ∆ηµιουργήστε το διαχεριστη συµβάντων του button1 (πατώντας διπλό κλικ πάνω του). Προσθέστε στον διαχειριστη συµβάτων τον πατακάτω κώδικα: Dim minutes As Integer = TextBox1.Text Dim kilometers As Double = TextBox2.Text Dim hours As Double = 0 hours = minutes / 60 MessageBox.Show("Μέση ωριαία ταχύτητα : " & GetKMPH(hours, kilometers))

Ο κώδικας αυτός χρησιµοποιεί τη συνάρτηση GetKMPH(). Πληκτρολογήστε τη συνάρτηση αυτή ακριβώς όπως δίνεται παρακάτω. Function GetKMPH(ByVal kms As Double, ByVal hs As Double) As String Return (kms / hs).ToString() End Function

Τωρα τρέξτε το πρόγραµµα. ∆ώστε τιµές για χρόνο 60 και για απόσταση 10. Αν κάποιος διανύσει 10 χλµ σε 60 λεπτά η µέση ωριαία ταχύτητά του είναι 10χλµ/ω. πατήστε το κουµπί υπολογισµού.

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

Το αποτέλεσµα είναι προφανώς λάθος. Χρησιµοποιώντας αυτά που έχετε µάθει εντοπίστε το λάθος. Ακολούθως διορθώστε την εφαρµογή ώστε να αντιµετωπίσει προβλήµατα που θα προκύψουν αν ο χρήστης δεν πληκτρολογήσει αριθµούς ή αν πληκτρολογήσει την τιµή 0 στο πεδίο του χρόνου.

ΠΑΡΑΓΩΓΗ CONCEPTUM

84

ΠΕΡΙΕΧΟΜΕΝΑ 1. Γνωριµία µε το περιβάλλον εργασίας της Visual Basic ...........................................4 ∆ραστηριότητα 1 : ∆ηµιουργία εφαρµογής κονσόλας ..............................................6 ∆ραστηριότητα 2 : Εφαρµογή φορµών......................................................................7 2. Τα χειριστήρια της Visual Basic – Προγραµµατισµός µε συµβάντα .....................10 ∆ραστηριότητα 1 : ∆ηµιουργία εφαρµογής φορµών ...............................................12 ∆ραστηριότητα 2 : Παίζοντας µε τις ιδιότητες ........................................................16 3. Η έννοια των σταθερών και των µεταβλητών στη Visual Basic .............................18 ∆ραστηριότητα 1: σταθερές στην Visual Basic.......................................................19 ∆ραστηριότητα 2: Η εντολή καταχώρησης στην Visual Basic ...............................20 ∆ραστηριότητα 3 : Ορισµός µεταβλητών και τύποι µεταβλητών στη Visual Basic20 ∆ραστηριότητα 4: οι αριθµητικές µεταβλητές αναλυτικότερα................................22 ∆ραστηριότητα 5: πράξεις µε αριθµητικές µεταβλητές...........................................24 ∆ραστηριότητα 6 : Αλφαριθµητικές µεταβλητές.....................................................25 4. Οι συναρτήσεις και υπορουτίνες στη Visual Basic .................................................26 ∆ραστηριότητα 1: δηµιουργία µιας υπορουτίνας ..................................................27 ∆ραστηριότητα 2: Υπορουτίνα µε παραµέτρους....................................................28 ∆ραστηριότητα 3: Υπορουτίνες που επιστρέφουν τιµές (συναρτήσεις). ...............29 ∆ραστηριότητα 4: Υπορουτίνες µε περισσότερες παραµέτρους. ...........................29 ∆ραστηριότητα 5: Κλήση υπορουτίνας από υπορουτίνα. ......................................30 5. Οι συναρτήσεις και υπορουτίνες στη Visual Basic .................................................32 ∆ραστηριότητα 1- Το αντικείµενο console.............................................................33 ∆ραστηριότητα 2: Tο αντικείµενο Math..................................................................35 ∆ραστηριότητα 3: Το String σαν αντικείµενο .........................................................36 ∆ραστηριότητα 4: Η κλάση Date.............................................................................37 6. Οι συναρτήσεις και υπορουτίνες στη Visual Basic .................................................39 ∆ραστηριότητα 1 : Η εντολή If .. then ... else..........................................................40 ∆ραστηριότητα 2 : Νested if....................................................................................42 ∆ραστηριότητα 3 : Οι εντολές AND , OR, NOT....................................................42 ∆ραστηριότητα 4 : Το σύνθετο σχήµα If…Then…Else If ......................................43 ∆ραστηριότητα 5 : ∆οµή Select Case ......................................................................44 7. Οι συναρτήσεις και υπορουτίνες στη Visual Basic .................................................46 ∆ραστηριότητα 1 : Η δοµή repeat............................................................................48 ∆ραστηριότητα 2 : Η δοµή while.............................................................................49 ∆ραστηριότητα 3 : Η δοµή for .. next.....................................................................50 ∆ραστηριότητα 4 : Οι πίνακες στη Visual Basic ....................................................50 8. Οι συναρτήσεις και υπορουτίνες στη Visual Basic .................................................53 ∆ραστηριότητα 1 : Συντακτικά λάθη......................................................................54 ∆ραστηριότητα 2 : Που επηρεάζουν τα συντακτικά λάθη. (Option Explicit).........55 ∆ραστηριότητα 3 : Επιλογές που επηρεάζουν τα συντακτικά λάθη. (Option Strict) ..................................................................................................................................55 ∆ραστηριότητα 4 : Οι εντολές try … catch .............................................................56 ∆ραστηριότητα 5 : Λογικά λάθη 1...........................................................................57 ∆ραστηριότητα 6 : Λογικά λάθη 2..........................................................................57

VVIISSUUAALL BBAASSIICC 22000088 ΕΕΚΚΠΠΑΑΙΙ∆∆ΕΕΥΥΤΤΙΙΚΚΟΟ ΕΕΓΓΧΧΕΕΙΙΡΡΙΙ∆∆ΙΙΟΟ –– ΒΒΙΙΒΒΛΛΙΙΟΟ ΚΚΑΑΘ ΘΗΗΓΓΗΗΤΤΗΗ

Σενάριο Εκπαιδευτικών ∆ραστηριοτήτων -

1. Γνωριµία µε το περιβάλλον εργασίας της Visual Basic Σύντοµη περιγραφή Στο συγκεκριµένο σενάριο οι µαθητές χωρίζονται σε οµάδες των 2 ατόµων. Οι µαθητές µε τη δραστηριότητα 1 θα δηµιουργήσουν µια απλή εφαρµογή κονσόλας, ενώ µε τη δραστηριότητα 2 θα ανοίξουν µια πιο σύνθετη εφαρµογή φορµών, µε τη βοήθεια της οποίας θα αποκτήσουν µεγαλύτερη εξοικείωση µε το περιβάλλον. Ακολουθώντας τις οδηγίες του φύλου εργασίας, θα ανοίξουν το περιβάλλον εργασίας της Visual Basic. Ένα µέλος της οµάδας ακολουθώντας τις οδηγίες του Φύλου εργασίας, θα χρησιµοποιήσει το περιβάλλον για να δηµιουργήσει βήµα βήµα την ζητούµενη εφαρµογή. Το δεύτερο µέλος παρακολουθεί, ελέγχει και συµβουλεύει. Προτείνεται τα δυο µέλη να εναλλάσσουν ρόλους σε κάθε στάδιο της δραστηριότητας.

Γνωστικό αντικείµενο και σύνδεση µε το πρόγραµµα σπουδών Τάξη: Τοµέας:

ΠΛΗΡΟΦΟΡΙΚΗΣ

Γνωστικό Αντικείµενο:

ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΥΠΟΛΟΓΙΣΤΩΝ

∆ιδακτική ενότητα:



∆ιδακτικές ώρες:

4

Αριθµός µαθητών:

Στο συγκεκριµένο σενάριο οι µαθητές χωρίζονται σε οµάδες των 2 ατόµων. Η επιλογή των ατόµων της κάθε οµάδας θα γίνεται σύµφωνα µε τη κρίση του καθηγητή µε βασικό κριτήριο την καλύτερη συνεργασία των µαθητών µεταξύ τους.

ΠΑΡΑΓΩΓΗ CONCEPTUM

4

VVIISSUUAALL BBAASSIICC 22000088 ΕΕΚΚΠΠΑΑΙΙ∆∆ΕΕΥΥΤΤΙΙΚΚΟΟ ΕΕΓΓΧΧΕΕΙΙΡΡΙΙ∆∆ΙΙΟΟ –– ΒΒΙΙΒΒΛΛΙΙΟΟ ΚΚΑΑΘ ΘΗΗΓΓΗΗΤΤΗΗ

∆ιδακτικοί Στόχοι για το Σενάριο Μετά το πέρας της εκπαιδευτικής δραστηριότητας οι µαθητές θα είναι σε θέση: •

Να µπορούν να δηµιουργήσουν ένα νέο έργο (project) µε το περιβάλλον εργασίας της Visual Basic



Να γνωρίσουν τα βασικά παράθυρα που αποτελούν το περιβάλλον εργασίας της Visual Basic



Να µπορούν να µεταγλωττίσουν (compile) ένα έργο σε Visual Basic, ώστε να δηµιουργήσουν µια εκτελέσιµη εφαρµογή.



Να κατανοήσουν την διαφοροποίηση µεταξύ «εφαρµογών κονσόλας» και «εφαρµογών φορµών» της Visual Basic

∆ιδακτική προσέγγιση Για την επίτευξη των στόχων του συγκεκριµένου σεναρίου έχει επιλεγεί η οµαδοσυνεργατική διδακτική προσέγγιση. Οι µαθητές χωρίζονται σε µικρές οµάδες (2 – 3 ατόµων) και µε τη βοήθεια του εκπαιδευτικού καλούνται να ολοκληρώσουν τις προτεινόµενες στο φύλλο εργασίας δραστηριότητες. Ο ρόλος του εκπαιδευτικού είναι υποστηρικτικός, καθοδηγώντας τους µαθητές στα σηµεία που είναι απαραίτητο και βοηθώντας τους να ανακαλύψουν τη γνώση, συµµετέχοντας ενεργά στην διδακτική διαδικασία. Εργαλεία ΤΠΕ που αξιοποιούνται στο πλαίσιο του σεναρίου •

Microsoft Visual basic 2008 Express Edition



Το έργο «drastiriotita1_2»

ΠΑΡΑΓΩΓΗ CONCEPTUM

5

VVIISSUUAALL BBAASSIICC 22000088 ΕΕΚΚΠΠΑΑΙΙ∆∆ΕΕΥΥΤΤΙΙΚΚΟΟ ΕΕΓΓΧΧΕΕΙΙΡΡΙΙ∆∆ΙΙΟΟ –– ΒΒΙΙΒΒΛΛΙΙΟΟ ΚΚΑΑΘ ΘΗΗΓΓΗΗΤΤΗΗ

Βήµατα υλοποίησης του σεναρίου Ο καθηγητής κάνει µια εισαγωγή σχετικά µε τα εργαλεία προγραµµατισµού και τις ιδιαιτερότητες της Visual Basic .net. Θα πρέπει να αναφερθεί το Microsoft .Net Framework και το Net Framework class library. Θα πρέπει επίσης να διευκρινιστεί ο ρόλος του προγραµµατιστή και ο ρόλος του χρήστη µιας εφαρµογής. Το ζητούµενο προϊόν από τον προγραµµατιστή είναι ένα αρχείο .exe που θα το δουλέψει ο χρήστης της εφαρµογής. Το περιβάλλον εργασίας της Visual Basic είναι ένα εργαλείο για τον προγραµµατιστή, ενώ το περιβάλλον εργασίας του χρήστη θα το κατασκευάσει ο προγραµµατιστής.

∆ραστηριότητα 1 : ∆ηµιουργία εφαρµογής κονσόλας Στάδιο 1 Οι µαθητές καλούνται να δηµιουργήσουν ένα νέο έργο (project). Για µια πρώτη επαφή µε το περιβάλλον επιλέχτηκε να δηµιουργήσουν µια εφαρµογή κονσόλας. Στάδιο 2 Οι µαθητές καλούνται να εξερευνήσουν τα παράθυρα έργου, ιδιοτήτων και κώδικα. Στάδιο 3 Οι µαθητές καλούνται να αποθηκεύσουν το έργο που δηµιούργησαν. Καλούνται επίσης να εξερευνήσουν τα αρχεία που δηµιουργήθηκαν από την Visual Basic. Στόχος είναι να κατανοήσουν πώς ένα έργο αποτελείται από ένα σύνολο αρχείων. Είναι σηµαντικό να εξοικειωθούν µε την αποθήκευση και ανάκτηση ενός «έργου». Στάδιο 4 Οι µαθητές θα συµπληρώσουν τον παρακάτω κώδικα System.Console.WriteLine("Hello world") System.Console.ReadLine() για να εξοικειωθούν µε το παράθυρο κώδικα της Visual Basic. Εξηγούνται στο φύλλο εργασίας οι δυο προαναφερόµενες εντολές.

ΠΑΡΑΓΩΓΗ CONCEPTUM

6

VVIISSUUAALL BBAASSIICC 22000088 ΕΕΚΚΠΠΑΑΙΙ∆∆ΕΕΥΥΤΤΙΙΚΚΟΟ ΕΕΓΓΧΧΕΕΙΙΡΡΙΙ∆∆ΙΙΟΟ –– ΒΒΙΙΒΒΛΛΙΙΟΟ ΚΚΑΑΘ ΘΗΗΓΓΗΗΤΤΗΗ

Στη συνέχεια, θα µεταγλωττίσουν το έργο ώστε να δηµιουργήσουν ένα εκτελέσιµο αρχείο και να τρέξουν την εφαρµογή τους.

Η εφαρµογή εµφανίζει το µήνυµα «Hello wold» στην κονσόλα. Για να τερµατιστεί η εφαρµογή ο µαθητής πρέπει να πατήσει «Enter». Ο µαθητής καλείται να εντοπίσει τα νέα αρχεία που δηµιούργησε η µεταγλώττιση (compilation) του προγράµµατος. Σηµαντικό είναι να εντοπίσει το εκτελέσιµο αρχείο drastiriotita1_1.exe και να εκτελέσει την εφαρµογή έξω από το περιβάλλον της Visual Basic.

∆ραστηριότητα 2 : Εφαρµογή φορµών Στάδιο 1

Ο µαθητής ανοίγει το έργο dratiriotita1_2 από τον φάκελο βοηθητικού υλικού «dratiriotita1_2». Η εφαρµογή είναι αρκετά απλή και εντυπωσιακή. Είναι ένας web browser. Ο µαθητής θα πρέπει πρώτα να δουλέψει την εφαρµογή πηγαίνοντας ΠΑΡΑΓΩΓΗ CONCEPTUM

7

VVIISSUUAALL BBAASSIICC 22000088 ΕΕΚΚΠΠΑΑΙΙ∆∆ΕΕΥΥΤΤΙΙΚΚΟΟ ΕΕΓΓΧΧΕΕΙΙΡΡΙΙ∆∆ΙΙΟΟ –– ΒΒΙΙΒΒΛΛΙΙΟΟ ΚΚΑΑΘ ΘΗΗΓΓΗΗΤΤΗΗ

τουλάχιστον σε µια σελίδα πχ. www.google.com και µετά να παρατηρήσει στο περιβάλλον της Visual Basic τις διαφοροποιήσεις που υπάρχουν ανάµεσα σε αυτή την εφαρµογή φορµών και την προηγούµενη εφαρµογή κονσόλας. Πρέπει να εντοπίσει τον κώδικα της εφαρµογής µε δεξί κλικ πάνω σε οποιοδήποτε σηµείο της φόρµας και επιλέγοντας «View Code». Επίσης, πρέπει να εντοπίσει το παράθυρο της εργαλειοθήκης (Toolbox). Στο φύλλο εργασίας του ζητείται να απαντήσει πώς η εργαλειοθήκη ενεργοποιείται, µόνο όταν είναι επιλεγµένο το TAB σχεδιασµού. Στη συνέχεια ζητείται από τον µαθητή να περιηγηθεί στο παράθυρο σχεδιασµού της φόρµας. Επιλέγοντας διαδοχικά τα διάφορα αντικείµενα, θα παρατηρήσει το παράθυρο ιδιοτήτων. Θα πρέπει να απαντήσει ότι οι ιδιότητες που αναφέρονται στο παράθυρο ιδιοτήτων αλλάζουν ανάλογα µε το αντικείµενο που είναι επιλεγµένο. Προαιρετικά µπορεί να ζητηθεί από τους µαθητές να εντοπίσουν κοινές ιδιότητες στα τρία αντικείµενα που βρίσκονται πάνω στην φόρµα, όπως οι ιδιότητες «Anchor» και «Dock». Στάδιο 2 Εδω ζητείται από τον µαθητή να βάλει breakpoints στην εφαρµογή και να τρέξει τις εντολές που εκτελούνται µετά το πάτηµα του κουµπιού «Button 1» µια προς µια. Ταυτόχρονα, πρέπει να εχουν ανοιχτό το παράθυρο τοπικών µεταβλητών και να παρατηρούν την αλλαγή των τιµών στη µεταβλητή str. Στην ερώτηση «τι άλλαξε στο παράθυρο Τοπικών µεταβλητών µετά την εκτέλεση της εντολής str = Me.TextBox1.Text» θα πρέπει να απαντήσουν πως η µεταβλητή str πηρε σαν τιµή αυτά που πληκτρολόγησε στο πεδίο «TextBox1». Στη συνέχεια ο µαθητής θα πειραµατιστεί µε την εντολή Debug.Print και το παράθυρο άµεσης εκτέλεσης. Στην ερώτηση «Τι βλέπετε στο παράθυρο άµεσης εκτέλεσης µετά την εκτέλεση της εντολής Debug.Print("navigating to: " + str)» θα πρέπει να απαντήσει πως η παράµετρος της µεδόδου Debug.Print εκτυπώθηκε στο παράθυρο άµεσης εκτέλεσης. Τέλος, οι µαθητές θα πληκτρολογήσουν την εντολή Debug.Print απευθείας στο παράθυρο άµεσης εκτέλεσης, ενώ δεν εκτελείται η εφαρµογή. Ζητείται από τον

ΠΑΡΑΓΩΓΗ CONCEPTUM

8

VVIISSUUAALL BBAASSIICC 22000088 ΕΕΚΚΠΠΑΑΙΙ∆∆ΕΕΥΥΤΤΙΙΚΚΟΟ ΕΕΓΓΧΧΕΕΙΙΡΡΙΙ∆∆ΙΙΟΟ –– ΒΒΙΙΒΒΛΛΙΙΟΟ ΚΚΑΑΘ ΘΗΗΓΓΗΗΤΤΗΗ

µαθητή να πειραµατιστεί µε εντολές όπως Debug.Print(«Hello world») και Debug.Print(1+1). Τέλος του ζητείται να γράψει µια εντολή που να τυπώνει στο παράθυρο εκτέλεσης την τετραγωνική ρίζα του 2. Η εντολή αυτή είναι Debug.Print(Math.Sqrt(2)).

ΠΑΡΑΓΩΓΗ CONCEPTUM

9

VVIISSUUAALL BBAASSIICC 22000088 ΕΕΚΚΠΠΑΑΙΙ∆∆ΕΕΥΥΤΤΙΙΚΚΟΟ ΕΕΓΓΧΧΕΕΙΙΡΡΙΙ∆∆ΙΙΟΟ –– ΒΒΙΙΒΒΛΛΙΙΟΟ ΚΚΑΑΘ ΘΗΗΓΓΗΗΤΤΗΗ

Σενάριο Εκπαιδευτικών ∆ραστηριοτήτων – 2. Τα χειριστήρια της Visual Basic – Προγραµµατισµός µε συµβάντα Σύντοµη περιγραφή Στο συγκεκριµένο σενάριο οι µαθητές εργάζονται σε οµάδες των 2 ατόµων. Οι µαθητές µε τη δραστηριότητα 1 δηµιουργούν µια εφαρµογή φορµών και τοποθετούν αντικείµενα (controls) πάνω στη φόρµα. Σαν παράδειγµα για να εξοικειωθούν µε τα αντικείµενα αυτά χρησιµοποιούν το αντικείµενο κουµπί (Button) και το αντικείµενο (Label). Ακολουθώντας τις οδηγίες του φύλλου εργασίας δηµιουργούν δυο κουµπιά και τις υπορουτίνες διαχείρισης συµβάντων του πρώτου κουµπιού. Στη συνέχεια, δηµιουργούν µόνοι τους τις υπορουτίνες διαχείρισης συµβάντων του δεύτερου κουπιού. Ακολούθως, δηµιουργούν ένα κουµπί του όταν πατηθεί τερµατίζει την εφαρµογή. Η δραστηριότητα 2 είναι προαιρετική και ο εκπαιδευτικός θα κρίνει ανάλογα µε το επίπεδο της τάξης αν χρειάζεται να προχωρήσει στην υλοποίησή της. Σε αυτήν την δραστηριότητα οι µαθητές εµβαθύνουν στη διαχείριση συµβάντων χρησιµοποιώντας µια υπορουτινα διαχείρισης για να χειριστούν δυο συµβάντα από διαφορετικά αντικείµενα. Ένα µέλος της οµάδας ακολουθώντας τις οδηγίες του Φύλλου εργασίας θα χρησιµοποιήσει το περιβάλλον για να δηµιουργήσει βήµα-βήµα τις ζητούµενες εφαρµογες. Το δεύτερο µέλος παρακολουθεί, ελέγχει και συµβουλεύει. Συστήνεται τα δυο µέλη να εναλλάσσουν ρόλους σε κάθε στάδιο της κάθε δραστηριότητας. Γνωστικό αντικείµενο και σύνδεση µε το πρόγραµµα σπουδών Τάξη: Τοµέας:

ΠΛΗΡΟΦΟΡΙΚΗΣ-

Γνωστικό Αντικείµενο:

ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΑ ΕΡΓΑΛΕΊΑ

∆ιδακτική ενότητα:



∆ιδακτικές ώρες:

3

Αριθµός µαθητών:

Στο συγκεκριµένο σενάριο οι µαθητές χωρίζονται σε οµάδες των 2 ατόµων. Η επίλογη των ατόµων της

ΠΑΡΑΓΩΓΗ CONCEPTUM

10

VVIISSUUAALL BBAASSIICC 22000088 ΕΕΚΚΠΠΑΑΙΙ∆∆ΕΕΥΥΤΤΙΙΚΚΟΟ ΕΕΓΓΧΧΕΕΙΙΡΡΙΙ∆∆ΙΙΟΟ –– ΒΒΙΙΒΒΛΛΙΙΟΟ ΚΚΑΑΘ ΘΗΗΓΓΗΗΤΤΗΗ

κάθε οµάδας θα γίνεται σύµφωνα µε τη κρίση του καθηγητή µε βασικό κριτήριο την καλύτερη συνεργασία των µαθητών µεταξύ τους. ∆ιδακτικοί Στόχοι για το Σενάριο Μετά το πέρας της εκπαιδευτικής δραστηριότητας οι µαθητές θα είναι σε θέση: •

να δηµιουργούν εφαρµογές φορµών



να σχεδιάζουν αντικείµενα πάνω στις φόρµες



να χειρίζονται συµβάντα των αντικειµένων µε κώδικα



να τερµατίζουν την εφαρµογή χρησιµοποιώντας κώδικα.

∆ιδακτική προσέγγιση Για την επίτευξη των στόχων του συγκεκριµένου σεναρίου έχει επιλεγεί η οµαδοσυνεργατική-ανακαλυπτική διδακτική προσέγγιση. Οι µαθητές χωρίζονται σε µικρές οµάδες (2 ατόµων) και µε τη βοήθεια του εκπαιδευτικού καλούνται να ολοκληρώσουν τις προτεινόµενες στο φύλλο εργασίας δραστηριότητες. Ο ρόλος του εκπαιδευτικού είναι υποστηρικτικός, καθοδηγώντας τους µαθητές στα σηµεία που είναι απαραίτητο και βοηθώντας τους να ανακαλύψουν τη γνώση, συµµετέχοντας ενεργά στην διδακτική διαδικασία. Εργαλεία ΤΠΕ που αξιοποιούνται στο πλαίσιο του σεναρίου •

Microsoft Visual basic 2008 Express Edition



Το έργο «drastiriotita2_2»

Βήµατα υλοποίησης του σεναρίου Ο καθηγητής θυµίζει στους µαθητές τι είναι µια εφαρµογή φορµών. Καλό είναι να τους δώσει ένα παράδειγµα µε µια έτοιµη εφαρµογή φορµών, όπως το calculator και εξηγήσει τα διαφορετικά αντικείµενα που υπάρχουν στη φόρµα του calculator.

ΠΑΡΑΓΩΓΗ CONCEPTUM

11

VVIISSUUAALL BBAASSIICC 22000088 ΕΕΚΚΠΠΑΑΙΙ∆∆ΕΕΥΥΤΤΙΙΚΚΟΟ ΕΕΓΓΧΧΕΕΙΙΡΡΙΙ∆∆ΙΙΟΟ –– ΒΒΙΙΒΒΛΛΙΙΟΟ ΚΚΑΑΘ ΘΗΗΓΓΗΗΤΤΗΗ

∆ραστηριότητα 1 : ∆ηµιουργία εφαρµογής φορµών Στάδιο 1. ∆ηµιουργία µιας φόρµας µε αντικείµενα. Οι µαθητές καλούνται να δηµιουργήσουν ένα νέο έργο (project) που θα δηµιουργεί µια εφαρµογή φορµών. Στο στάδιο αυτό θα δηµιουργήσουν µια απλή φόρµα µε δυο κουµπιά. Όταν τρέξουν την εφαρµογή καλούντα να πατήσουν τα κουµπιά µε το ποντίκι και µετά να ανακαλύψουν τρόπους που µπορούν να κάνουν το ίδιο χρησιµοποιώντας το πληκτρολόγιο. Αυτό γίνεται χρησιµοποιώντας τα κουµπιά «TAB» και «SPACE» του πληκτρολογίου. Στάδιο 2. ∆ίνοντας τίτλους στα αντικείµενα Οι µαθητές καλούνται χρησιµοποιώντας το παράθυρο ιδιοτήτων να αλλάξουν τις τιµές στην ιδιότητα Text των κουµπιών και µετά της φόρµας. Στην πρώτη άσκηση οι µαθητές πρέπει να παρατηρήσουν πως αλλάζοντας την τιµή της ιδιότητας Text αλλάζει το κείµενο που εµφανίζεται πάνω στο αντικείµενο που βρίσκεται στη φόρµα. Στη δεύτερη άσκηση ο µαθητής καλείται να εντοπίσει την αλλαγή που γίνεται στον τίτλο της φόρµας όταν αλλάζει η τιµή της ιδιότητας Text στην φόρµα. Ο καθηγητής θα πρέπει να βοηθήσει τους µαθητές να κατανοήσουν ότι η ιδιότητα Text που είναι κοινή σε πολλά αντικείµενα επηρεάζει τον τρόπο που αυτά εµφανίζονται στο χρήστη της εφαρµογής.

Στάδιο 3. Αλλάζοντας τα ονόµατα των αντικειµένων. Οι µαθητές καλούνται χρησιµοποιώντας το παράθυρο ιδιοτήτων να αλλάξουν τις τιµές στην ιδιότητα όνοµα (Name) των αντικειµένων. Στην πρώτη άσκηση σε αυτό το στάδιο θα πρέπει να παρατηρήσουν πως δεν αλλάζει η εµφάνιση του αντικειµένου αλλάζοντας τιµή σε αυτή την ιδιότητα, αλλά αλλάζει το όνοµα του αντικειµένου στο παράθυρο ιδιοτήτων. Από τον καθηγητή θα πρέπει να τονιστούν οι

ΠΑΡΑΓΩΓΗ CONCEPTUM

12

VVIISSUUAALL BBAASSIICC 22000088 ΕΕΚΚΠΠΑΑΙΙ∆∆ΕΕΥΥΤΤΙΙΚΚΟΟ ΕΕΓΓΧΧΕΕΙΙΡΡΙΙ∆∆ΙΙΟΟ –– ΒΒΙΙΒΒΛΛΙΙΟΟ ΚΚΑΑΘ ΘΗΗΓΓΗΗΤΤΗΗ

συµβάσεις ονοµατοδοσίας της Visual Basic που εξασφαλίζουν την αναγνωσιµότητα του κώδικα. Π.χ. Αντικέιµενο

Πρόθεµα

Παράδειγµα

CheckBox

chk

chkPrint

Button

btn

btnOk

Label

lbl

lblMessage

ListBox

lst

lstResults

Panel

pnl

pnlSettings

TextBox

txt

txtAddress

Στάδιο 4. Ελέγχοντας τα συµβάντα (events) Οι µαθητές καλούνται χρησιµοποιώντας τις δυνατότητες του περιβάλλοντος της Visual Basic και γράφοντας µια γραµµή κώδικα να δηµιουργήσουν την υπορουτίνα διαχείρισης του συµβάντος Click του κουµπιού btnEn. Στην πρώτη άσκηση θα πρέπει να παρατηρήσουν πως πατώντας διπλό κλικ πάνω στο κουµπί η Visual basic έγραψε δυο γραµµές κώδικα που ορίζουν µια υπορουτίνα. Στη συνέχεια τους εξηγείται η δήλωση «Handles» που δηλώνει αυτή την υπορουτινα ως υπορουτίνα διαχείρισης συµβάντος. Τέλος, υποδεικνύεται ο κώδικας που θα εµφανίζει το µήνυµα «Hello world» στη φόρµα όταν πατηθεί το κουµπί btnEn. Στάδιο 5. Γράφοντας κώδικα για ένα συµβάν Εδώ οι µαθητές καλούνται να επαναλάβουν µόνοι τους όσα έκαναν στο προηγούµενο στάδιο εφαρµόζοντάς τα στο κουµπί btnEl της φόρµας. Ο κώδικας που θα πρέπει να γράψουν έχει ως εξής: Private Sub btnEl_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnEl.Click Me.lblMessage.Text = "Γειά σου Κόσµε" End Sub

ΠΑΡΑΓΩΓΗ CONCEPTUM

13

VVIISSUUAALL BBAASSIICC 22000088 ΕΕΚΚΠΠΑΑΙΙ∆∆ΕΕΥΥΤΤΙΙΚΚΟΟ ΕΕΓΓΧΧΕΕΙΙΡΡΙΙ∆∆ΙΙΟΟ –– ΒΒΙΙΒΒΛΛΙΙΟΟ ΚΚΑΑΘ ΘΗΗΓΓΗΗΤΤΗΗ

Στάδιο 6. Τερµατισµός της εφαρµογής. Εδώ µαθαίνουν την απλή εντολή Application.Exit() που τερµατίζει την εφαρµογή. Με τις οδηγίες του φύλου εργασίας δηµιουργούν πάλι ένα νέο κουµπί το btnExit και έναν διαχειριστή συµβάντων του κουµπιού αυτού που θα τερµατίζει την εφαρµογή µόλις πατηθεί το btnExit. Παρατίθεται ο κώδικας του διαχειριστή συµβάντος του κουµπιού αυτού: Private Sub btnExit_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnExit.Click Application.Exit() End Sub

Στάδιο 7. ∆ιαχείριση και άλλων συµβάντων. Οι µαθητές µε τις οδηγίες του φύλου εργασίας µαθαίνουν να διαχειρίζονται και άλλα συµβάντα, τα συµβάντα MouseEnter και MouseLeave του κουµπιού btnEn. Το φύλλο εργασίας τους καθοδηγεί να δηµιουργήσουν την υπορουτίνα διαχείρισης του πρώτου συµβάντος (MouseEnter) χρησιµοποιώντας τις δυνατότητες του περιβάλλοντος της Visual Basic και γράφοντας µια γραµµή κώδικα. Για την δηµιουργία της υπορουτίνας διαχείρισης του δεύτερου συµβάντος (MouseLeave) το φύλλο εργασία καθοδηγεί τους µαθητές έτσι ώστε να τη δηµιουργήσουν απευθείας στο παράθυρο κώδικα. Η τελική µορφή της υπορουτίνας είναι η εξής: Private Sub btnEn_MouseLeave(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnEn.MouseLeave Me.lblMessageHelp.Text = "" End Sub Στάδιο 8. Γράφοντας ξανά κώδικα για συµβάντα. Οι µαθητές καλούνται να δηµιουργήσουν τις υπορουτίνες διαχείρισης των συµβάντων MouseEnter και MouseLeave του κουµπιού btnEl. Μπορούν να τις δηµιουργήσουν µε οποιονδήποτε από τους δύο τρόπους που έµαθαν παραπάνω. Η τελική µορφή του κώδικα που καλούνται να γράψουν έχει ως εξής: Private Sub btnEl_MouseEnter(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnEl.MouseEnter Me.lblMessageHelp.Text = "Πατηστε για να δειτε ενα µηνυµα στα Ελληνικά" End Sub

ΠΑΡΑΓΩΓΗ CONCEPTUM

14

VVIISSUUAALL BBAASSIICC 22000088 ΕΕΚΚΠΠΑΑΙΙ∆∆ΕΕΥΥΤΤΙΙΚΚΟΟ ΕΕΓΓΧΧΕΕΙΙΡΡΙΙ∆∆ΙΙΟΟ –– ΒΒΙΙΒΒΛΛΙΙΟΟ ΚΚΑΑΘ ΘΗΗΓΓΗΗΤΤΗΗ

Private Sub btnEl_MouseLeave(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnEl.MouseLeave Me.lblMessageHelp.Text = "" End Sub

ΠΑΡΑΓΩΓΗ CONCEPTUM

15

VVIISSUUAALL BBAASSIICC 22000088 ΕΕΚΚΠΠΑΑΙΙ∆∆ΕΕΥΥΤΤΙΙΚΚΟΟ ΕΕΓΓΧΧΕΕΙΙΡΡΙΙ∆∆ΙΙΟΟ –– ΒΒΙΙΒΒΛΛΙΙΟΟ ΚΚΑΑΘ ΘΗΗΓΓΗΗΤΤΗΗ

∆ραστηριότητα 2 : Παίζοντας µε τις ιδιότητες Στάδιο 1. ∆ηµιουργία εφαρµογής µε δυο διαχειριστές συµβάντων Σε αυτό το στάδιο οι µαθητές επαναλαµβάνοντας αυτά που έχουν µάθει µέχρι τώρα δηµιουργούν µια νέα εφαρµογή φορµών µε δυο κουµπιά. Το φύλλο εργασίας τούς καθοδηγεί να αλλάξουν µε κώδικα την ιδιότητα enabled των κουµπιών µέσα από την υπορουτίνα διαχείρισης συµβάντος κάθε κουµπιού. Με την

ιδιότητα enabled

έρχονται σε µια πρώτη επαφή µε τις λογικές µεταβλητές της Visual Basic. Στην εφαρµογή θα πρέπει να εναλλάσσονται οι δυο παρακάτω καταστάσεις.

Επίσης, µαθαίνουν την παράµετρο sender που χρησιµοποιούν οι υπορουτίνες διαχείρισης συµβάντων. Ο µαθητής πρέπει να απαντήσει στην άσκηση ότι δεν υπάρχει καµία διαφορά στην εκτέλεση του προγράµµατος, είτε χρησιµοποιήσουµε την παράµετρο sender, είτε το όνοµα του αντικειµένου που προκάλεσε το συµβάν. Αυτό το στάδιο είναι προετοιµασία για το επόµενο. Στάδιο 2. ∆ιαχείριση πολλών συµβάντων µε την ίδια υπορουτίνα Σε αυτό το στάδιο οι µαθητές καλούνται να ανοίξουν ένα έτοιµο έργο το drastiriotita2_2. Αυτό το έργο έχει ακριβώς την ίδια συµπεριφορά µε το έργο που δηµιουργήθηκε στο προηγούµενο στάδιο. Υπάρχει όµως µια διαφοροποίηση στον κώδικα. Αντί για δυο υπορουτίνες διαχείρισης συµβάντων υπάρχει µόνο µια που διαχειρίζεται και τα δυο συµβάντα χρησιµοποιώντας το αντεικέιµενο sender για να επηρεάσει την εµφάνιση του κουµπιου που πατήθηκε και προκάλεσε το συµβάν. Οι µαθητές καλούνται να ξαναγράψουν τη εφαρµογή που έγραψαν στο προηγούµενο στάδιο µε τον νέο αυτό τρόπο.

ΠΑΡΑΓΩΓΗ CONCEPTUM

16

VVIISSUUAALL BBAASSIICC 22000088 ΕΕΚΚΠΠΑΑΙΙ∆∆ΕΕΥΥΤΤΙΙΚΚΟΟ ΕΕΓΓΧΧΕΕΙΙΡΡΙΙ∆∆ΙΙΟΟ –– ΒΒΙΙΒΒΛΛΙΙΟΟ ΚΚΑΑΘ ΘΗΗΓΓΗΗΤΤΗΗ

Εναλλακτικά µπορείτε να συζητήσετε τα πλεονεκτήµατα και τα µειονεκτήµατα της διαχείρισης πολλών συµβάντων µε την ίδια υπορουτίνα. Για παράδειγµα, αναφερθείτε την εφαρµογή του calculator. Στην εφαρµογή αυτή υπάρχουν δέκα κουµπιά µε τα νούµερα µηδέν έως εννέα. Τα κουµπιά αυτά κάνουν σχεδόν την ίδια δουλειά. Θα ήταν προτιµότερο να φτιαχτεί µια υπορουτίνα για κάθε κουµπί (δηλαδή δέκα υπορουτίνες συνολικά) ή µια υπορουτίνα που να διαχειρίζεται το συµβάν Click και για τα δέκα κουµπιά;

ΠΑΡΑΓΩΓΗ CONCEPTUM

17

VVIISSUUAALL BBAASSIICC 22000088 ΕΕΚΚΠΠΑΑΙΙ∆∆ΕΕΥΥΤΤΙΙΚΚΟΟ ΕΕΓΓΧΧΕΕΙΙΡΡΙΙ∆∆ΙΙΟΟ –– ΒΒΙΙΒΒΛΛΙΙΟΟ ΚΚΑΑΘ ΘΗΗΓΓΗΗΤΤΗΗ

Σενάριο Εκπαιδευτικών ∆ραστηριοτήτων – 3. Η έννοια των σταθερών και των µεταβλητών στη Visual Basic Σύντοµη περιγραφή Στο συγκεκριµένο σενάριο οι µαθητές χωρίζονται σε οµάδες των 2-3 ατόµων. Οι µαθητές εκτελούν τις δραστηριότητες του φύλλου εργασίας, έτσι ώστε να κατανοήσουν την έννοια των µεταβλητών και την έννοια της καταχώρησης στη Visual Basic.

Γνωστικό αντικείµενο και σύνδεση µε το πρόγραµµα σπουδών Τάξη: Τοµέας:

ΠΛΗΡΟΦΟΡΙΚΗΣ-

Γνωστικό Αντικείµενο:

ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΑ ΕΡΓΑΛΕΊΑ

∆ιδακτική ενότητα:



∆ιδακτικές ώρες:

3

Αριθµός µαθητών:

Στο συγκεκριµένο σενάριο οι µαθητές χωρίζονται σε οµάδες των 2-3 ατόµων. Η επιλογή των ατόµων της κάθε οµάδας θα γίνεται σύµφωνα µε τη κρίση του καθηγητή µε βασικό κριτήριο την καλύτερη συνεργασία των µαθητών µεταξύ τους.

∆ιδακτικοί Στόχοι για το Σενάριο Μετά το πέρας της εκπαιδευτικής δραστηριότητας οι µαθητές θα: •

γνωρίζουν τους τύπους των µεταβλητών και των σταθερών στη Visual Basic



µπορούν να δηλώνουν µεταβλητές σε ένα πρόγραµµα σε Visual Basic



είναι ικανοί να γράφουν εντολές καταχώρησης σε Visual Basic



είναι ικανοί να επιλέγουν το κατάλληλο τύπο µεταβλητής για να αποθηκεύει τις τιµές που χρειάζεται το πρόγραµµα.



είναι ικανοί να βάζουν σχόλια σε ένα πρόγραµµα Visual Basic

ΠΑΡΑΓΩΓΗ CONCEPTUM

18

VVIISSUUAALL BBAASSIICC 22000088 ΕΕΚΚΠΠΑΑΙΙ∆∆ΕΕΥΥΤΤΙΙΚΚΟΟ ΕΕΓΓΧΧΕΕΙΙΡΡΙΙ∆∆ΙΙΟΟ –– ΒΒΙΙΒΒΛΛΙΙΟΟ ΚΚΑΑΘ ΘΗΗΓΓΗΗΤΤΗΗ

∆ιδακτική προσέγγιση Για την επίτευξη των στόχων του συγκεκριµένου σεναρίου έχει επιλεγεί η οµαδοσυνεργατική διδακτική προσέγγιση. Οι µαθητές χωρίζονται σε µικρές οµάδες (2-3 ατόµων) και µε τη βοήθεια του εκπαιδευτικού καλούνται να ολοκληρώσουν τις προτεινόµενες στο φύλλο εργασίας δραστηριότητες. Ο ρόλος του εκπαιδευτικού είναι υποστηρικτικός, καθοδηγώντας τους µαθητές στα σηµεία που είναι απαραίτητο και βοηθώντας τους να ανακαλύψουν τη γνώση, συµµετέχοντας ενεργά στην διδακτική διαδικασία. Εργαλεία ΤΠΕ που αξιοποιούνται στο πλαίσιο του σεναρίου •

Microsoft Visual basic 2008 Express Edition

Βήµατα υλοποίησης του σεναρίου Ο καθηγητής θυµίζει στους µαθητές το ρόλο των µεταβλητών και των σταθερών στη Visual Basic. Επίσης, καλό είναι να τους θυµίσει πώς γράφεται ένα πρόγραµµα σε ψευδοκώδικα. Οι δραστηριότητες του σεναρίου υλοποιούνται στο φύλλο εργασίας. Προαιρετικά ο καθηγητής µπορεί να ζητήσει από τους µαθητές να δηµιουργήσουν µια εφαρµογή κονσόλας και, αφού λύσουν τις ασκήσει που έχουν κώδικα στο φύλλο εργασίας, να πληκτρολογήσουν τις εντολές στην εφαρµογή. Μετά βάζοντας breakpoints θα µπορούν να παρακολουθήσουν τις τιµές των µεταβλητών στο παράθυρο τοπικών µεταβλητών.

∆ραστηριότητα 1: σταθερές στην Visual Basic Στο φύλλο εργασίας εξηγούνται στους µαθητές οι τρεις τύποι σταθερών (αριθµητικές, λογικές, αλφαριθµητικές) Ακολούθως του ζητείται να κατηγοριοποιήσουν τις σταθερές στον επόµενο πίνακα σε αριθµητικές, αλφαριθµητικές και λογικές. 18 “2104896520”

ΠΑΡΑΓΩΓΗ CONCEPTUM

αριθµητική αλφαριθµητική

19

VVIISSUUAALL BBAASSIICC 22000088 ΕΕΚΚΠΠΑΑΙΙ∆∆ΕΕΥΥΤΤΙΙΚΚΟΟ ΕΕΓΓΧΧΕΕΙΙΡΡΙΙ∆∆ΙΙΟΟ –– ΒΒΙΙΒΒΛΛΙΙΟΟ ΚΚΑΑΘ ΘΗΗΓΓΗΗΤΤΗΗ

“A9”

αλφαριθµητική

9.30

αριθµητική

true

λογική

10/2

αριθµητική

∆ραστηριότητα 2: Η εντολή καταχώρησης στην Visual Basic Οι µαθητές µαθαίνουν µε παραδείγµατα την εντολή καταχώρισης. Μετά θα πρέπει να απαντήσουν στην παρακάτω άσκηση. Παρακολουθήστε τις παρακάτω εντολές και στο τέλος γράψτε τι τιµή θα έχει η µεταβλητή c: a=3 b=4 c = b ' εδώ παίρνει την τιµή 4 c = a ' εδώ παίρνει την τιµή 3 c = c ' εδώ παίρνει την τιµή 3 Η µεταβλητή c θα έχει την τιµή 3 ______________________________ Ο εκπαιδευτικός θα πρέπει να ενθαρρύνει τους µαθητές να διατυπώσουν σε ψευδοκώδικα τις εντολές καταχώρησης, έτσι ώστε να κατανοήσουν καλύτερα την λειτουργία των εντολών.

∆ραστηριότητα 3 : Ορισµός µεταβλητών και τύποι µεταβλητών στη Visual Basic Στο φύλλο εργασίας εξηγείται στους µαθητές πώς γίνεται ο ορισµός των µεταβλητών στη Visual Basic και δίνεται το παρακάτω παράδειγµα (σε παρένθεση παρατίθεται ο τρόπος που διαβάζεται η εντολή δήλωσης) Dim num As Integer (δηµιούργησε µια µεταβλητή, στην οποία θα αποθηκεύονται ακέραιες τιµές) Dim str As String (δηµιούργησε µια µεταβλητή, στην οποία θα αποθηκεύονται αλφαριθµητικές τιµές

ΠΑΡΑΓΩΓΗ CONCEPTUM

20

VVIISSUUAALL BBAASSIICC 22000088 ΕΕΚΚΠΠΑΑΙΙ∆∆ΕΕΥΥΤΤΙΙΚΚΟΟ ΕΕΓΓΧΧΕΕΙΙΡΡΙΙ∆∆ΙΙΟΟ –– ΒΒΙΙΒΒΛΛΙΙΟΟ ΚΚΑΑΘ ΘΗΗΓΓΗΗΤΤΗΗ

Dim bool As Boolean (δηµιούργησε µια µεταβλητή, στην οποία θα αποθηκεύονται λογικές τιµές) Στην παρακάτω άσκηση οι µαθητές καλούνται να αναγνωρίσουν αν οι καταχωρίσεις σταθερών στις µεταβλητές είναι σωστές (σύµφωνα µε τον τύπο της µεταβλητής). Εντοπίστε αν οι παρακάτω καταχωρήσεις καταχωρούν τιµές σύµφωνα µε τον τύπο της µεταβλητής και γιατί (θεωρήστε τις τρεις δηλώσει µεταβλητών που δώσαµε σαν παράδειγµα πιο πάνω). num = 100

Σωστή. Το 100 είναι ακέραιος (integer)

num = 12.10

Λάθος. Το 12.10 είναι δεκαδικός

str = 100

Λάθος. Το 100 είναι ακέραιος ενώ το str αλφαριθµητικό

str = “είµαι µαθητής”

Σωστή. Καταχώρηση αλφαριθµητικής σταθεράς σε αλφαριθµητική µεταβλητή

str = “18.30”

Σωστή. Το 18.30 είναι δεκαδικός

bool = 217

Λάθος. Καταχώρηση ακέραιου σε λογική µεταβλητή

bool = false

Σωστή. Καταχώρηση λογικής σταθεράς σε λογική µεταβλητή

Προαιρετικά οι µαθητές µπορούν να πληκτρολογήσουν τον κώδικα σε µια εφαρµογή κονσόλας της Visual Basic. Παρατίθεται ο συνολικός κώδικας: Option Strict On Module Module1 Sub Main() Dim num As Integer Dim str As String Dim bool As Boolean num = 100 num = 12.1 str = 100

ΠΑΡΑΓΩΓΗ CONCEPTUM

21

VVIISSUUAALL BBAASSIICC 22000088 ΕΕΚΚΠΠΑΑΙΙ∆∆ΕΕΥΥΤΤΙΙΚΚΟΟ ΕΕΓΓΧΧΕΕΙΙΡΡΙΙ∆∆ΙΙΟΟ –– ΒΒΙΙΒΒΛΛΙΙΟΟ ΚΚΑΑΘ ΘΗΗΓΓΗΗΤΤΗΗ

str = "είµαι µαθητής" str = "18.30" bool = 217 bool = False End Sub End Module Καλέστε του µαθητές να πειραµατιστούν µε την επιλογή «Option Strict On».

∆ραστηριότητα 4: οι αριθµητικές µεταβλητές αναλυτικότερα Εδώ εξηγείται στους µαθητές το εύρος τιµών των αριθµητικών µεταβλητών. Παρακάτω παρατίθεται ο πίνακας µε όλους τους τύπους αριθµητικών µεταβλητών της Visual Basic. Οι µαθητές καλούνται να απαντήσουν στην παρακάτω άσκηση: Byte

0 through 255 (unsigned)

ακέραιες

Decimal 0 through +/-

Όχι

δεκαδικές ναι

79,228,162,514,264,337,593,543,950,335 (+/7.9...E+28) † with no decimal point; 0 through +/7.9228162514264337593543950335 with 28 places to the right of the decimal; smallest nonzero number is +/0.0000000000000000000000000001 (+/-1E-28) † Double

-1.79769313486231570E+308 through †

(double- 4.94065645841246544E-324 for negative values; precision 4.94065645841246544E-324 through floating- 1.79769313486231570E+308 † for positive values point)

ΠΑΡΑΓΩΓΗ CONCEPTUM

22

δεκαδικές ναι

VVIISSUUAALL BBAASSIICC 22000088 ΕΕΚΚΠΠΑΑΙΙ∆∆ΕΕΥΥΤΤΙΙΚΚΟΟ ΕΕΓΓΧΧΕΕΙΙΡΡΙΙ∆∆ΙΙΟΟ –– ΒΒΙΙΒΒΛΛΙΙΟΟ ΚΚΑΑΘ ΘΗΗΓΓΗΗΤΤΗΗ

Integer

-2,147,483,648 through 2,147,483,647 (signed)

ακέραιες

ναι

Long

-9,223,372,036,854,775,808 through

ακέραιες

ναι

(long

9,223,372,036,854,775,807 (9.2...E+18 †) (signed)

integer) SByte

-128 through 127 (signed)

ακέραιες

ναι

Short

-32,768 through 32,767 (signed)

ακέραιες

ναι

Single

-3.4028235E+38 through -1.401298E-45 † for

δεκαδικές ναι

(single-

negative values;

(short integer)

precision 1.401298E-45 through 3.4028235E+38 † for positive floating- values point) UInteger 0 through 4,294,967,295 (unsigned) ULong

0 through 18,446,744,073,709,551,615 (1.8...E+19 †)

ακέραιες

όχι

ακέραιες

όχι

ακέραιες

όχι

(unsigned) UShort

0 through 65,535 (unsigned)

Σηµειώστε στην τρίτη στήλη αν οι τιµές που µπορεί να πάρει κάθε τύπος είναι ακέραιες ή δεκαδικές. Μετά σηµειώστε µε ένα ναι ή ένα όχι στην τελευταία στήλη αν ο τύπος µπορεί να πάρει αρνητικές τιµές (π.χ -2) Προτείνεται οι µαθητές να ανοίξουν µια εφαρµογή κονσόλας της Visual Basic και, αφού δηλώσουν «Option Strict On», να φτιάξουν παραδείγµατα µε τους παραπάνω τύπους µεταβλητών. Π.χ. Option Strict On

ΠΑΡΑΓΩΓΗ CONCEPTUM

23

VVIISSUUAALL BBAASSIICC 22000088 ΕΕΚΚΠΠΑΑΙΙ∆∆ΕΕΥΥΤΤΙΙΚΚΟΟ ΕΕΓΓΧΧΕΕΙΙΡΡΙΙ∆∆ΙΙΟΟ –– ΒΒΙΙΒΒΛΛΙΙΟΟ ΚΚΑΑΘ ΘΗΗΓΓΗΗΤΤΗΗ

Module Module1 Sub Main() Dim myByte As Byte myByte = 300 myByte = -10 myByte = 200 End Sub End Module

∆ραστηριότητα 5: πράξεις µε αριθµητικές µεταβλητές Στη δραστηριότητα αυτή οι µαθητές µαθαίνουν να δηµιουργούν αριθµητικές παραστάσεις µε την Visual Basic και να καταχωρούν το αποτέλεσµά τους σε µεταβλητές. ∆ίνονται παραδείγµατα και µετά ζητείται να λύσουν την παρακάτω άσκηση. Στις παρακάτω γραµµές κώδικα συµπληρώστε στα σχόλια τις τιµές που παίρνουν οι µεταβλητές που ζητούνται µετά την εκτέλεση της εντολής. Dim num As Integer Dim int As Integer num = 10

' num : ..10..

num = num + 1 ' num : ..11.. int = 9

' num : ..11.. , int : ..9...

num = int \ 3 ' num : ...3.. , int : ..9... int = num + int ' num : ...3.. , int : ..12.. num = int Mod 5 ' num : ...2.. , int : ..12.. Μετά τη λύση της άσκησης καλό θα είναι οι µαθητές να πληκτρολογήσουν τις εντολές σε µια εφαρµογή κονσόλας της Visual Basic και να ελέγξουν την ορθότητα των απαντήσεών τους, βάζοντας breakpoints και παρακολουθώντας τις τιµές των µεταβλητών από το παράθυρο τοπικών µεταβλητών.

ΠΑΡΑΓΩΓΗ CONCEPTUM

24

VVIISSUUAALL BBAASSIICC 22000088 ΕΕΚΚΠΠΑΑΙΙ∆∆ΕΕΥΥΤΤΙΙΚΚΟΟ ΕΕΓΓΧΧΕΕΙΙΡΡΙΙ∆∆ΙΙΟΟ –– ΒΒΙΙΒΒΛΛΙΙΟΟ ΚΚΑΑΘ ΘΗΗΓΓΗΗΤΤΗΗ

∆ραστηριότητα 6 : Αλφαριθµητικές µεταβλητές Στη δραστηριότητα αυτή εξηγείται στους µαθητές η δήλωση των αλφαριθµητικών µεταβλητών και δίνονται παραδείγµατα χρήσης τους. Επίσης, εξηγείται η πράξη της σύνθεσης (concatenation) αλφαριθµητικών τιµών. Οι µαθητές µπορούν να τα πληκτρολογήσουν σε µια εφαρµογή κονσόλας της Visual Basic. Τέλος, ζητείται από του µαθητές να λύσουν την παρακάτω άσκηση: Συµπληρώστε παρακάτω στα σχόλια τις τιµες που θα πάρει η µεταβλητή str µετα την εκτέλεση της κάθε εντολής Dim str As String str = "Hello " + "World" '______"Hello World"______ str = str & "."

'_____"Hello World."__________________

str = "Hello+" & "world" '______"Hello+world"________ str = "Hello & World"

'_______"Hello & World"_______________

str = "Hello & " + "World" '________"Hello & World"__________

ΠΑΡΑΓΩΓΗ CONCEPTUM

25

VVIISSUUAALL BBAASSIICC 22000088 ΕΕΚΚΠΠΑΑΙΙ∆∆ΕΕΥΥΤΤΙΙΚΚΟΟ ΕΕΓΓΧΧΕΕΙΙΡΡΙΙ∆∆ΙΙΟΟ –– ΒΒΙΙΒΒΛΛΙΙΟΟ ΚΚΑΑΘ ΘΗΗΓΓΗΗΤΤΗΗ

Σενάριο Εκπαιδευτικών ∆ραστηριοτήτων – 4. Οι συναρτήσεις και υπορουτίνες στη Visual Basic Σύντοµη περιγραφή Στο συγκεκριµένο σενάριο οι µαθητές χωρίζονται σε οµάδες των 2 ατόµων. Ακολουθώντας τις οδηγίες του φύλλου εργασίας, θα πρέπει να απαντήσουν στην ερώτηση που βρίσκεται στο τέλος κάθε δραστηριότηταw. Ωστόσο, για να κατανοήσουν την ερώτηση θα πρέπει πρώτα να έχουν γράψει τον κώδικα που δίνεται στο φύλλο εργασίας σε µια εφαρµογή κονσόλας της Visual Basic. Ένα µέλος της οµάδας θα χρησιµοποιήσει το περιβάλλον για να πληκτρολογήσει τον κώδικα. Το δεύτερο µέλος παρακολουθεί, ελέγχει και συµβουλεύει. Προτείνεται τα δυο µέλη να εναλλάσσουν ρόλους σε κάθε στάδιο της δραστηριότητας. Γνωστικό αντικείµενο και σύνδεση µε το πρόγραµµα σπουδών Τάξη: Τοµέας:

ΠΛΗΡΟΦΟΡΙΚΗΣ-

Γνωστικό Αντικείµενο:

ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΑ ΕΡΓΑΛΕΊΑ

∆ιδακτική ενότητα: ∆ιδακτικές ώρες:

3

Αριθµός µαθητών:

Στο συγκεκριµένο σενάριο οι µαθητές χωρίζονται σε οµάδες των 2 ατόµων. Η επιλογή των ατόµων της κάθε οµάδας θα γίνεται σύµφωνα µε τη κρίση του καθηγητή µε βασικό κριτήριο την καλύτερη συνεργασία των µαθητών µεταξύ τους.

∆ιδακτικοί Στόχοι για το Σενάριο Μετά το πέρας της εκπαιδευτικής δραστηριότητας οι µαθητές θα είναι ικανοί να: •

αναγνωρίζουν τους τύπους των µεταβλητών και των σταθερών στη Visual Basic



δηλώνουν µεταβλητές σε ένα πρόγραµµα σε Visual Basic



γράφουν εντολές καταχώρησης σε Visual Basic

ΠΑΡΑΓΩΓΗ CONCEPTUM

26

VVIISSUUAALL BBAASSIICC 22000088 ΕΕΚΚΠΠΑΑΙΙ∆∆ΕΕΥΥΤΤΙΙΚΚΟΟ ΕΕΓΓΧΧΕΕΙΙΡΡΙΙ∆∆ΙΙΟΟ –– ΒΒΙΙΒΒΛΛΙΙΟΟ ΚΚΑΑΘ ΘΗΗΓΓΗΗΤΤΗΗ



επιλέγουν το κατάλληλο τύπο µεταβλητής για να αποθηκεύουν τις τιµές που χρειάζεται το πρόγραµµα.



προσθέτουν σχόλια σε ένα πρόγραµµα Visual Basic

∆ιδακτική προσέγγιση Για την επίτευξη των στόχων του συγκεκριµένου σεναρίου έχει επιλεγεί η οµαδοσυνεργατική-ανακαλυπτική διδακτική προσέγγιση. Οι µαθητές χωρίζονται σε µικρές οµάδες (2 ατόµων) και µε τη βοήθεια του εκπαιδευτικού καλούνται να ολοκληρώσουν τις προτεινόµενες στο φύλλο εργασίας δραστηριότητες. Ο ρόλος του εκπαιδευτικού είναι υποστηρικτικός, καθοδηγώντας τους µαθητές στα σηµεία που είναι απαραίτητο και βοηθώντας τους να ανακαλύψουν τη γνώση, συµµετέχοντας ενεργά στην διδακτική διαδικασία. Εργαλεία ΤΠΕ που αξιοποιούνται στο πλαίσιο του σεναρίου •

Microsoft Visual basic 2008 Express Edition

Βήµατα υλοποίησης του σεναρίου Ο καθηγητής θυµίζει στους µαθητές το ρόλο των υπορουτίνων και των συναρτήσεων στον προγραµµατισµό. Επίσης, καλό είναι να γίνει µια εισαγωγή σχετικά µε τις τοπικές και καθολικές µεταβλητές (local variables, global variables). Οι δραστηριότητες

του

σεναρίου

υλοποιούνται

στο

φύλλο

εργασίας,

αλλά

χρησιµοποιείται το περιβάλλον εργασίας της Visual Basic για να κατανοήσουν την λειτουργία υπορουτίνων και συναρτήσεων.

∆ραστηριότητα 1: δηµιουργία µιας υπορουτίνας Στη δραστηριότητα αυτή δίνεται αρχικά ένα παράδειγµα κώδικα µε τη µορφή εφαρµογής κονσόλας. Ο κώδικας αυτός καταχωρεί σε µια µεταβλητή, την num, τον περιοδικό αριθµό 3.3... Μετά καταχωρεί στην ίδια µεταβλητή τον ίδιο αριθµό στρογγυλοποιηµένο στα δυο δεκαδικά ψηφία. Οι µαθητές καλούνται να πληκτρολογήσουν τον κώδικα και να παρατηρήσουν το αποτέλεσµα.

ΠΑΡΑΓΩΓΗ CONCEPTUM

27

VVIISSUUAALL BBAASSIICC 22000088 ΕΕΚΚΠΠΑΑΙΙ∆∆ΕΕΥΥΤΤΙΙΚΚΟΟ ΕΕΓΓΧΧΕΕΙΙΡΡΙΙ∆∆ΙΙΟΟ –– ΒΒΙΙΒΒΛΛΙΙΟΟ ΚΚΑΑΘ ΘΗΗΓΓΗΗΤΤΗΗ

Ακολούθως, τους δίνεται ένας κώδικας που έχει το ίδιο αποτέλεσµα αλλά χρησιµοποιεί µια υπορουτίνα και µια καθολική µεταβλητή (num). Στη δραστηριότητα που δίνεται, οι µαθητές καλούνται να µεταφέρουν τη δήλωση της µεταβλητής µέσα στην κεντρική υπορουτίνα του προγράµµατος µετατρέποντάς την σε τοπική µεταβλητή. Καλούνται να παρατηρήσουν πως το περιβάλλον εργασίας της Visual Basic επισηµαίνει το λάθος βγάζοντας το µήνυµα «Name ‘num’ is not declared », όταν χρησιµοποιείται η µεταβλητή num µέσα στην υπορουτίνα. Σε αυτό το σηµείο είναι καλό να αναλυθεί ξανά από τον εκπαιδευτικό η έννοια των καθολικών και τοπικών µεταβλητών. Επίσης, µπορεί να αναλυθεί η δοµή µιας εφαρµογής κονσόλας. Οι εφαρµογές κονσόλας έχουν µια κεντρική υπορουτίνα την «Sub Main(». Από αυτή ξεκινάει η εκτέλεση του προγράµµατος. Οι µεταβλητές που δηλώνονται µέσα στην «Sub Main(» είναι τοπικές. Οι καθολικές µεταβλητές δηλώνονται εκτός υπορουτινών.

∆ραστηριότητα 2: Υπορουτίνα µε παραµέτρους. Στη δραστηριότητα αυτή τροποποιείται ο παραπάνω κώδικας έτσι ώστε η υπορουτίνα να κληθεί µε παραµέτρους. Οι µαθητές καλούνται να προσέξουν ότι η αλλαγή της δήλωσης της µεταβλητής «num» από καθολική σε τοπική και αντίστροφα δεν δηµιουργεί πρόβληµα. Ωστόσο, όταν εκτελεστεί το πρόγραµµα, το αποτέλεσµα δεν είναι το επιθυµητό.

Οι µαθητές καλούνται να ανακαλύψουν τον λόγο. Για την υλοποίηση αυτής της δραστηριότητας θα ήταν χρήσιµο οι µαθητές να βάλουν breakpoints στον κώδικα και

ΠΑΡΑΓΩΓΗ CONCEPTUM

28

VVIISSUUAALL BBAASSIICC 22000088 ΕΕΚΚΠΠΑΑΙΙ∆∆ΕΕΥΥΤΤΙΙΚΚΟΟ ΕΕΓΓΧΧΕΕΙΙΡΡΙΙ∆∆ΙΙΟΟ –– ΒΒΙΙΒΒΛΛΙΙΟΟ ΚΚΑΑΘ ΘΗΗΓΓΗΗΤΤΗΗ

από το παράθυρο τοπικών µεταβλητών να παρατηρήσουν την εξέλιξη των τιµών. Στην ερώτηση του φύλλου εργασίας θα πρέπει να απαντήσουν πως, ενώ η τιµή της µεταβλητής «theNum» µέσα στην υπορουτίνα µεταβάλλεται, η τιµή της µεταβλητής «num» που περάστηκε σαν παράµετρος δεν µεταβλήθηκε. ∆ραστηριότητα 3: Υπορουτίνες που επιστρέφουν τιµές (συναρτήσεις). Μετά το πρόβληµα που τέθηκε από την προηγούµενη δραστηριότητα, δηλαδή πως µια υπορουτίνα µπορεί να επιστρέψει µια τιµή, παρουσιάζονται στους µαθητές οι συναρτήσεις της Visual Basic. Θα πρέπει να τονιστεί στους µαθητές ότι οι συναρτήσεις έχουν και τύπο (π.χ. Double). ∆ίνεται τροποποιηµένος ο κώδικας που δόθηκε πριν. Αντί για υπορουτίνα, αυτή τη φορά χρησιµοποιείται συνάρτηση. Η κλήση της γίνεται µε την εντολή καταχώρησης «num1 = calculate2DecimalPlaces(num1)». Αν τρέξουµε το πρόγραµµα το αποτέλεσµα είναι πλέον το επιθυµητό.

Ο καθηγητής θα πρέπει να καθοδηγεί τους µαθητές ώστε να κατανοήσουν πως η εντολή «return» δεν τερµατίζει απλώς την εκτέλεση της συνάρτησης, αλλά επιστρέφει και την τιµή της συνάρτησης. Άρα, η τιµή που θα επιστρέψει η εντολή «return» θα πρέπει να είναι ίδιου τύπου µε τον τύπο της συνάρτησης. Τέλος, ζητείται από τους µαθητές να γράψουν την παρακάτω συνάρτηση. Function piValue() As Double Return 3.1415926535 End Function

∆ραστηριότητα 4: Υπορουτίνες µε περισσότερες παραµέτρους. Στη δραστηριότητα αυτή δίνεται τροποποιηµένη η συνάρτηση της προηγούµενης δραστηριότητας. Αυτή τη φορά έχει δυο παραµέτρους. Η πρώτη είναι πάλι ο αριθµός που θέλουµε να στρογγυλοποιήσουµε και η δεύτερη είναι ο αριθµός των δεκαδικών ψηφίων. Σαν παράδειγµα δίνεται η κλήση της συνάρτησης µε τις εξής παραµέτρους: num1 = calculateNDecimalPlaces(num1, 0).

ΠΑΡΑΓΩΓΗ CONCEPTUM

29

VVIISSUUAALL BBAASSIICC 22000088 ΕΕΚΚΠΠΑΑΙΙ∆∆ΕΕΥΥΤΤΙΙΚΚΟΟ ΕΕΓΓΧΧΕΕΙΙΡΡΙΙ∆∆ΙΙΟΟ –– ΒΒΙΙΒΒΛΛΙΙΟΟ ΚΚΑΑΘ ΘΗΗΓΓΗΗΤΤΗΗ

Ο εκπαιδευτικός θα πρέπει να ενθαρρύνει τους µαθητές να καλέσουν την συνάρτηση µε διαφορετικές παραµέτρους, π.χ num1 = calculateNDecimalPlaces(num1, 3) num1 = calculateNDecimalPlaces(num1, -1). num1 = calculateNDecimalPlaces(10.125478 , 0). Στο τέλος ζητείται από του µαθητές να γράψουν την παρακάτω συνάρτηση ή το ισοδύναµό της. Function embadonOrt(ByVal basi As Double, ByVal ypsos As Double) As Double Dim embadon As Double embadon = basi * ypsos Return embadon End Function Καλό θα είναι να δηµιουργήσουν οι µαθητές µια εφαρµογή κονσόλας και να χρησιµοποιήσουν αυτή την συνάρτηση.

∆ραστηριότητα 5: Κλήση υπορουτίνας από υπορουτίνα. Σε αυτή την δραστηριότητα ζητείται από τους µαθητές να δηµιουργήσουν µια συνάρτηση που να υπολογίζει το εµβαδόν του κύκλου, όπως η παρακάτω: Function embadonKyklou(ByVal aktina As Double) As Double Dim embadon As Double embadon = piValue() * (aktina ^2) Return embadon End Function Στην συνάρτηση αυτή οι µαθητές χρησιµοποιούν τη συνάρτηση piValue που δηµιούργησαν στη δραστηριότητα 3. Συστήνεται να φτιάξουν µια εφαρµογή κονσόλας που να χρησιµοποιεί την συνάρτηση αυτή. Παράδειγµα εφαρµογής δίνεται παρακάτω: Module Module1 Function piValue() As Double Return 3.14159 End Function Function embadonKyklou(ByVal aktina As Double) As Double Dim embadon As Double embadon = piValue() * (aktina ^ 2)

ΠΑΡΑΓΩΓΗ CONCEPTUM

30

VVIISSUUAALL BBAASSIICC 22000088 ΕΕΚΚΠΠΑΑΙΙ∆∆ΕΕΥΥΤΤΙΙΚΚΟΟ ΕΕΓΓΧΧΕΕΙΙΡΡΙΙ∆∆ΙΙΟΟ –– ΒΒΙΙΒΒΛΛΙΙΟΟ ΚΚΑΑΘ ΘΗΗΓΓΗΗΤΤΗΗ

Return embadon End Function Sub Main() Dim emb As Double emb = embadonKyklou(2) Console.WriteLine(emb) Console.ReadLine() End Sub End Module

ΠΑΡΑΓΩΓΗ CONCEPTUM

31

VVIISSUUAALL BBAASSIICC 22000088 ΕΕΚΚΠΠΑΑΙΙ∆∆ΕΕΥΥΤΤΙΙΚΚΟΟ ΕΕΓΓΧΧΕΕΙΙΡΡΙΙ∆∆ΙΙΟΟ –– ΒΒΙΙΒΒΛΛΙΙΟΟ ΚΚΑΑΘ ΘΗΗΓΓΗΗΤΤΗΗ

Σενάριο Εκπαιδευτικών ∆ραστηριοτήτων 5. Οι συναρτήσεις και υπορουτίνες στη Visual Basic Σύντοµη περιγραφή Στο συγκεκριµένο σενάριο οι µαθητές χωρίζονται σε οµάδες των 2 ατόµων. Ακολουθώντας τις οδηγίες του φύλλου εργασίας θα πρέπει σε κάθε δραστηριότητα να απαντήσουν στην ερώτηση που βρίσκεται στο τέλος. Ωστόσο, για να κατανοήσουν την ερώτηση θα πρέπει πρώτα να έχουν γράψει τον κώδικα που δίνεται στο φύλλο εργασίας σε µια εφαρµογή κονσόλας της Visual Basic. Ένα µέλος της οµάδας θα χρησιµοποιήσει το περιβάλλον για να πληκτρολογήσει τον κώδικα. Το δεύτερο µέλος παρακολουθεί, ελέγχει και συµβουλεύει. Προτείνεται τα δυο µέλη να εναλλάσσουν ρόλους σε κάθε στάδιο της δραστηριότητας.

Γνωστικό αντικείµενο και σύνδεση µε το πρόγραµµα σπουδών Τάξη: Τοµέας:

ΠΛΗΡΟΦΟΡΙΚΗΣ-

Γνωστικό Αντικείµενο:

ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΑ ΕΡΓΑΛΕΊΑ

∆ιδακτική ενότητα:



∆ιδακτικές ώρες:

3

Αριθµός µαθητών:

Στο συγκεκριµένο σενάριο οι µαθητές χωρίζονται σε οµάδες των 2 ατόµων. Η επιλογή των ατόµων της κάθε οµάδας θα γίνεται σύµφωνα µε τη κρίση του καθηγητή µε βασικό κριτήριο την καλύτερη συνεργασία των µαθητών µεταξύ τους.

∆ιδακτικοί Στόχοι για το Σενάριο Μετά το πέρας της εκπαιδευτικής δραστηριότητας οι µαθητές θα: •

γνωρίζουν τους τύπους των µεταβλητών και των σταθερών στη Visual Basic



µπορούν να µεταχειριστούν το αντικείµενο Console της Visual Basic για να δηµιουργούν input/output σε εφαρµογές κονσόλας

ΠΑΡΑΓΩΓΗ CONCEPTUM

32

VVIISSUUAALL BBAASSIICC 22000088 ΕΕΚΚΠΠΑΑΙΙ∆∆ΕΕΥΥΤΤΙΙΚΚΟΟ ΕΕΓΓΧΧΕΕΙΙΡΡΙΙ∆∆ΙΙΟΟ –– ΒΒΙΙΒΒΛΛΙΙΟΟ ΚΚΑΑΘ ΘΗΗΓΓΗΗΤΤΗΗ



µπορούν να χρησιµοποιούν τις βασικές συναρτήσεις του αντικειµένου Math



µπορούν να χειρίζονται τις µεταβλητές τύπου String σαν αντικείµενα



µπορούν να δηλώσουν µεταβλητές τύπου Date και να τους δώσουν τιµές

∆ιδακτική προσέγγιση Για την επίτευξη των στόχων του συγκεκριµένου σεναρίου έχει επιλεγεί η οµαδοσυνεργατική διδακτική προσέγγιση. Οι µαθητές χωρίζονται σε µικρές οµάδες (2 ατόµων) και µε τη βοήθεια του εκπαιδευτικού καλούνται να ολοκληρώσουν τις προτεινόµενες στο φύλλο εργασίας δραστηριότητες. Ο ρόλος του εκπαιδευτικού είναι υποστηρικτικός, καθοδηγώντας τους µαθητές στα σηµεία που είναι απαραίτητο και βοηθώντας τους να ανακαλύψουν τη γνώση, συµµετέχοντας ενεργά στην διδακτική διαδικασία. Εργαλεία ΤΠΕ που αξιοποιούνται στο πλαίσιο του σεναρίου •

Microsoft Visual basic 2008 Express Edition

Βήµατα υλοποίησης του σεναρίου Σε αυτό το φύλλο εργασίας γίνεται µία εισαγωγή στον αντικειµενοστραφή προγραµµατισµό. Ο εκπαιδευτικός καλό θα είναι να θυµίσει στους µαθητές τη χρησιµότητα των αντικειµένων στον προγραµµατισµό. Επίσης, είναι σηµαντικό να διευκρινίσει τη διαφορά µεταξύ κλάσης και στιγµιότυπου (instance).

∆ραστηριότητα 1- Το αντικείµενο console ∆ίνεται στους µαθητές έτοιµος ο κώδικας για µια εφαρµογή κονσόλας που ζητάει όνοµα και επώνυµο από το χρήστη και τυπώνει µια φράση που τα χρησιµοποιεί. Ο κώδικας αυτός θα χρησιµεύσει σαν παράδειγµα για τον κώδικα που ζητείται από τους µαθητές να γράψουν.

ΠΑΡΑΓΩΓΗ CONCEPTUM

33

VVIISSUUAALL BBAASSIICC 22000088 ΕΕΚΚΠΠΑΑΙΙ∆∆ΕΕΥΥΤΤΙΙΚΚΟΟ ΕΕΓΓΧΧΕΕΙΙΡΡΙΙ∆∆ΙΙΟΟ –– ΒΒΙΙΒΒΛΛΙΙΟΟ ΚΚΑΑΘ ΘΗΗΓΓΗΗΤΤΗΗ

Ο κώδικας που πρέπει να γράψουν οι µαθητές έχει τις παρακάτω προδιαγραφές: Στόχος της εφαρµογής: ο υπολογισµός του εµβαδού ενός τριγώνου. Περιγραφή. Εµφανίζεται το µήνυµα «∆ώσε τιµή για βάση». Ο χρήστης πληκτρολογεί µια τιµή Εµφανίζεται το µήνυµα «∆ώσε τιµή για ύψος» Ο χρήστης πληκτρολογεί µια τιµή Εµφανίζεται το µήνυµα «Το εµβαδόν του τριγώνου είναι: » και η τιµή του εµβαδού (που υπολογίζεται από τον τύπο Ε=β*υ/2) Ο κώδικας που πρέπει να δηµιουργήσουν οι µαθητές δίνεται παρακάτω: Module Module1 Sub Main() Console.WriteLine(Math.Floor(6.8)) Console.Write("∆ώσε τιµή για βάση:") Dim basi As Integer = Console.ReadLine() Console.WriteLine() Console.Write("∆ώσε τιµή για ύψος:") Dim ypsos As Integer = Console.ReadLine() Console.WriteLine() Console.Write("Το εµβαδόν του τριγώνου ειναι: ") Console.Write(basi * ypsos / 2) Console.WriteLine() Console.WriteLine() Console.Write("Πάτα enter για να τερµατιστεί η εφαρµογή")

ΠΑΡΑΓΩΓΗ CONCEPTUM

34

VVIISSUUAALL BBAASSIICC 22000088 ΕΕΚΚΠΠΑΑΙΙ∆∆ΕΕΥΥΤΤΙΙΚΚΟΟ ΕΕΓΓΧΧΕΕΙΙΡΡΙΙ∆∆ΙΙΟΟ –– ΒΒΙΙΒΒΛΛΙΙΟΟ ΚΚΑΑΘ ΘΗΗΓΓΗΗΤΤΗΗ

Console.ReadLine()

End Sub End Module Παρακάτω δίνεται το output της εφαρµογής

∆ραστηριότητα 2: Tο αντικείµενο Math Στη δραστηριότητα αυτή οι µαθητές µαθαίνουν να χρησιµοποιούν το αντικείµενο Math. Τους ζητειται να δηµιουργήσουν ένα απλό πρόγραµµα που υπολογιζει εµβαδόν και περίµετρο του κύκλου µε βαση την ακτινα που δινει ο χρήστης. Οι µαθητές θα πρέπει να χρησιµοποιήσουν την σταθερά Math.PI για να υλοποιήσουν το πρόγραµµα. Παρακάτω παρατίθεται ο κώδικας Module Module1 Sub Main() Console.Write("∆ώσε τιµή για ακτίνα:") Dim r As Integer = Console.ReadLine() Console.WriteLine() Console.Write("Το εµβαδόν του κύκλου ειναι: ")

ΠΑΡΑΓΩΓΗ CONCEPTUM

35

VVIISSUUAALL BBAASSIICC 22000088 ΕΕΚΚΠΠΑΑΙΙ∆∆ΕΕΥΥΤΤΙΙΚΚΟΟ ΕΕΓΓΧΧΕΕΙΙΡΡΙΙ∆∆ΙΙΟΟ –– ΒΒΙΙΒΒΛΛΙΙΟΟ ΚΚΑΑΘ ΘΗΗΓΓΗΗΤΤΗΗ

Console.Write((r ^ 2) * Math.PI) Console.WriteLine() Console.Write("Η περίµετρος του κύκλου ειναι: ") Console.Write(2 * Math.PI * r) Console.WriteLine() Console.WriteLine() Console.Write("Πάτα enter για να τερµατιστεί η εφαρµογή") Console.ReadLine() End Sub End Module

Συζητήστε στην τάξη το πλεονέκτηµα της χρήσης της σταθεράς Math.PI που δίνει η Visual Basic έναντι της χρήσης µιας σταθεράς που θα πληκτρολογήσει ο προγραµµατιστής (π.χ 3.14)

∆ραστηριότητα 3: Το String σαν αντικείµενο Σε αυτή τη δραστηριότητα οι µαθητές θα πρέπει να εµβαθύνουν στη χρήση των αντικειµένων. Γίνεται για πρώτη φορά η διαφοροποίηση µεταξύ κλάσης και απεικόνισης (instance). Σαν παράδειγµα χρησιµοποιείται η κλάση String. ∆ίνονται τµήµατα κώδικα έτσι ώστε οι µαθητές να εξοικειωθούν µε την κλάση String. Ο εκπαιδευτικός µπορεί να ζητήσει από τους µαθητές να δηµιουργήσουν µια εφαρµογή κονσόλας και να δοκιµάσουν τις ιδιότητες και µεθόδους της κλάσης String που παρουσιάζονται. Στο τέλος ζητείται από του µαθητές να δηµιουργήσουν µια εφαρµογή µε τις παρακάτω προδιαγραφές. Στόχος της εφαρµογής: βρίσκει και τυπώνει την πρώτη λέξη και το µήκος της από µια φράση που πληκτρολογεί ο χρηστής. Περιγραφή.

ΠΑΡΑΓΩΓΗ CONCEPTUM

36

VVIISSUUAALL BBAASSIICC 22000088 ΕΕΚΚΠΠΑΑΙΙ∆∆ΕΕΥΥΤΤΙΙΚΚΟΟ ΕΕΓΓΧΧΕΕΙΙΡΡΙΙ∆∆ΙΙΟΟ –– ΒΒΙΙΒΒΛΛΙΙΟΟ ΚΚΑΑΘ ΘΗΗΓΓΗΗΤΤΗΗ

Εµφανίζεται το µήνυµα «Πληκτρολόγησε µια φράση ». Ο χρήστης πληκτρολογεί µια φράση Εµφανίζεται το µήνυµα «Η πρώτη λέξη της φράσης σου είναι: » και η πρώτη λέξη Εµφανίζεται το µήνυµα «Η λέξη έχει x χαρακτήρα/ες» όπου x ο αριθµός χαρακτήρων της λέξης. Οι µαθητές θα πρέπει να αναγνωρίσουν την πρώτη λέξη της φράσης από το πρώτο κενό που θα συναντήσουν. Συζητείστε στην τάξη τα προβλήµατα που µπορούν να προκύψουν (π.χ στη φράση «εποµένως, το συµπέρασµα που βγαίνει είναι ...») Ο ενδεικτικός κώδικας για την υλοποίηση της εφαρµογής παρατίθεται πιο κάτω: Module Module1 Sub Main() Console.Write("Πληκτρολόγησε µια φράση ") Dim frasi As String = Console.ReadLine() Dim i As Integer = frasi.IndexOf(" ") Dim lexi As String = frasi.Substring(0, i) Console.Write("Η πρώτη λέξη της φράσης σου ειναι:") Console.WriteLine(lexi) Console.Write("Η λέξη έχει ") Console.Write(lexi.Length) Console.WriteLine(" χαρακτήρα/ες") Console.ReadLine() End Sub End Module

∆ραστηριότητα 4: Η κλάση Date Σε αυτή τη δραστηριότητα οι µαθητές έρχονται σε επαφή µε τις κλάσεις Date και TimeSpan. ∆ίνονται παραδείγµατα κώδικα για τη χρήση των µεταβλητών τύπου Date.

ΠΑΡΑΓΩΓΗ CONCEPTUM

37

VVIISSUUAALL BBAASSIICC 22000088 ΕΕΚΚΠΠΑΑΙΙ∆∆ΕΕΥΥΤΤΙΙΚΚΟΟ ΕΕΓΓΧΧΕΕΙΙΡΡΙΙ∆∆ΙΙΟΟ –– ΒΒΙΙΒΒΛΛΙΙΟΟ ΚΚΑΑΘ ΘΗΗΓΓΗΗΤΤΗΗ

Ακολούθως εξηγείται η πράξη αφαίρεσης Date από Date που το αποτέλεσµά της είναι τύπου TimeSpan. Οι µαθητές συνδυάζοντας τις γνώσεις που έχουν αποκτήσει µέχρι τώρα µπορούν να υλοποιήσουν την εφαρµογή που τους ζητείται. Στόχος της εφαρµογής: βρίσκει την ηλικία του χρήστη αφού ο χρήστης έχει πληκτρολογήσει την ηµεροµηνία γέννησης Περιγραφή. Εµφανίζεται το µήνυµα «Πληκτρολόγησε την ηµεροµηνία γέννησης µε τη µορφή µέρα/µήνας/έτος ». Ο χρήστης πληκτρολογεί µια ηµεροµηνία Εµφανίζεται το µήνυµα «Με βάση τα στοιχεία που έδωσες σήµερα είσαι x ετών» όπου x η ηλικία του χρήστη σε έτη. Ενδεικτικός κώδικας για τη υλοποίηση της εφαρµογή παρατίθεται παρακάτω. Module Module1 Sub Main() Console.Write("Πληκτρολόγησε την ηµεροµηνία γεννησης µε τη µορφή µερα/µηνας/ετος ") Dim dateOfBirthStr As String = Console.ReadLine() Dim dateOfBirth As Date = Date.Parse(dateOfBirthStr) Dim dateOfToday As Date = Date.Now Dim dtDiff As TimeSpan = dateOfToday - dateOfBirth Dim userYears As Integer = Math.Round(dtDiff.Days / 365) Console.Write("Με βάση τα στοιχεία που έδωσες σήµερα είσαι ") Console.Write(userYears) Console.WriteLine(" ετών") Console.ReadLine() End Sub End Module

ΠΑΡΑΓΩΓΗ CONCEPTUM

38

VVIISSUUAALL BBAASSIICC 22000088 ΕΕΚΚΠΠΑΑΙΙ∆∆ΕΕΥΥΤΤΙΙΚΚΟΟ ΕΕΓΓΧΧΕΕΙΙΡΡΙΙ∆∆ΙΙΟΟ –– ΒΒΙΙΒΒΛΛΙΙΟΟ ΚΚΑΑΘ ΘΗΗΓΓΗΗΤΤΗΗ

Σενάριο Εκπαιδευτικών ∆ραστηριοτήτων 6. Οι συναρτήσεις και υπορουτίνες στη Visual Basic Σύντοµη περιγραφή Στο συγκεκριµένο σενάριο οι µαθητές χωρίζονται σε οµάδες των 2 ατόµων. Σε κάθε δραστηριότητα δίνεται ένα παράδειγµα κώδικα κει µετά ζητείται από τους µαθητές να δηµιουργήσουν µια ανάλογη εφαρµογή. Σε µερικές από τις δραστηριότητες δίνεται στους µαθητές ψευδοκώδικας που θα πρέπει να υλοποιήσουν σε Visual Basic. Ένα µέλος της οµάδας θα πρέπει να χειρίζεται τον υπολογιστή πληκτρολογώντας τον κώδικα, αφού έχει συζητήσει µαζί µε το άλλο µέλος σχετικά µε την υλοποίηση του. Το δεύτερο µέλος της οµάδας θα λάβει το ρόλο του χρήστη και θα ρεστάρει τις εφαρµογές που θα δηµιουργήσουν σε αυτές τις δραστηριότητες. Προτείνεται τα δυο µέλη να εναλλάσσουν ρόλους σε κάθε δραστηριότητα.

Γνωστικό αντικείµενο και σύνδεση µε το πρόγραµµα σπουδών Τάξη: Τοµέας:

ΠΛΗΡΟΦΟΡΙΚΗΣ-

Γνωστικό Αντικείµενο:

ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΑ ΕΡΓΑΛΕΊΑ

∆ιδακτική ενότητα:



∆ιδακτικές ώρες:

3

Αριθµός µαθητών:

Στο συγκεκριµένο σενάριο οι µαθητές χωρίζονται σε οµάδες των 2 ατόµων. Η επιλογή των ατόµων της κάθε οµάδας θα γίνεται σύµφωνα µε τη κρίση του καθηγητή µε βασικό κριτήριο την καλύτερη συνεργασία των µαθητών µεταξύ τους.

∆ιδακτικοί Στόχοι για το Σενάριο Μετά το πέρας των εκπαιδευτικών δραστηριοτήτων οι µαθητές θα: •

γνωρίζουν τις εντολές διακλάδωσης If .. then ... else

ΠΑΡΑΓΩΓΗ CONCEPTUM

39

VVIISSUUAALL BBAASSIICC 22000088 ΕΕΚΚΠΠΑΑΙΙ∆∆ΕΕΥΥΤΤΙΙΚΚΟΟ ΕΕΓΓΧΧΕΕΙΙΡΡΙΙ∆∆ΙΙΟΟ –– ΒΒΙΙΒΒΛΛΙΙΟΟ ΚΚΑΑΘ ΘΗΗΓΓΗΗΤΤΗΗ



γνωρίζουν τις λογικές πράξεις AND και OR και πώς αυτές συνδυάζονται µε τις εντολές διακλάδωσης



γνωρίζουν τις πιο σύνθετες εντολές διακλάδωσης If .. then ... elseIf και select .. case

∆ιδακτική προσέγγιση Για την επίτευξη των στόχων του συγκεκριµένου σεναρίου έχει επιλεγεί η οµαδοσυνεργατική-ανακαλυπτική διδακτική προσέγγιση. Οι µαθητές χωρίζονται σε µικρές οµάδες (2 ατόµων) και µε τη βοήθεια του εκπαιδευτικού καλούνται να ολοκληρώσουν τις προτεινόµενες στο φύλλο εργασίας δραστηριότητες. Ο ρόλος του εκπαιδευτικού είναι υποστηρικτικός, καθοδηγώντας τους µαθητές στα σηµεία που είναι απαραίτητο και βοηθώντας τους να ανακαλύψουν τη γνώση, συµµετέχοντας ενεργά στην διδακτική διαδικασία. Εργαλεία ΤΠΕ που αξιοποιούνται στο πλαίσιο του σεναρίου •

Microsoft Visual basic 2008 Express Edition

Βήµατα υλοποίησης του σεναρίου Σε αυτό το φύλλο εργασίας οι µαθητές εξασκούνται στις εντολές διακλάδωσης if .. then, if .. then .. elseIf, select .. case και στις λογικές πράξεις. Σε κάθε δραστηριότητα δίνεται ένα παράδειγµα κώδικα που καλό θα είναι οι µαθητές να το υλοποιήσουν έτσι ώστε να το κατανοήσουν καλύτερα. Στη συνέχεια, τους ζητείται να φτιάξουν ένα αντίστοιχο. Ο εκπαιδευτικός θα πρέπει να εξηγήσει στους µαθητές τη χρησιµότητα αυτών των εντολών µε τη χρήση λογικού διαγράµµατος ή ψευδοκώδικα.

∆ραστηριότητα 1 : Η εντολή If .. then ... else Στην δραστηριότητα αυτή παρουσιάζονται στους µαθητές παραδείγµατα χρήσης των εντολών If .. then .. else. Πρώτα τους παρουσιάζεται µια συνάρτηση που υπολογίζει την απόλυτη τιµή ενός αριθµού, χρησιµοποιώντας µόνο if .. then. Μετά του

ΠΑΡΑΓΩΓΗ CONCEPTUM

40

VVIISSUUAALL BBAASSIICC 22000088 ΕΕΚΚΠΠΑΑΙΙ∆∆ΕΕΥΥΤΤΙΙΚΚΟΟ ΕΕΓΓΧΧΕΕΙΙΡΡΙΙ∆∆ΙΙΟΟ –– ΒΒΙΙΒΒΛΛΙΙΟΟ ΚΚΑΑΘ ΘΗΗΓΓΗΗΤΤΗΗ

παρουσιάζεται µια εφαρµογή κονσόλας που ανάλογα µε την ώρα της ηµέρας τυπώνει «καληµέρα» ή «καλησπέρα», χρησιµοποιώντας if .. then .. else. Στη συνέχει ζητείται από τους µαθητές να δηµιουργήσουν µια εφαρµογή κονσόλας µε τις παρακάτω προδιαγραφές: Στόχος της εφαρµογής: Η εφαρµογή τυπώνει αν κυκλοφορούν σήµερα τα µονά η τα ζυγά αυτοκίνητα (δεν λαµβάνει υπ όψιν της το σαββατοκύριακο) Περιγραφή: Η εφαρµογή παίρνει τη σηµερινή ηµεροµηνία Εξετάζει την ηµέρα του µήνα (από την ιδιότητα Day) και αν αυτή διαιρείται ακριβώς µε το 2 εµφανίζει το µήνυµα «Σήµερα κυκλοφορούν τα ζυγά» αλλιώς εµφανίζει το µήνυµα «Σήµερα κυκλοφορούν τα µονά.» Χρησιµοποιείτε τον τελεστή mod για να υπολογίσετε το υπόλοιπο της διαίρεσης της ηµεροµηνίας µε το 2 Για την υλοποίησή της οι µαθητές θα πρέπει να χρησιµοποιήσουν δεξιότητες που έχουν αποκτήσει στα προηγούµενα φύλλα εργασίας (π.χ το χειρισµό του αντικειµένου console.). Παρακάτω παρατίθεται µια ενδεικτική υλοποίηση. Module Module1 Sub Main() Dim dt As Date = Date.Now Dim day As Integer = dt.Day() Dim ypol As Integer = day Mod 2 If ypol = 1 Then Console.WriteLine("Σήµερα κυκλοφορούν τα µονά") Else Console.WriteLine("Σήµερα κυκλοφορούν τα ζυγά") End If Console.ReadLine() End Sub End Module

ΠΑΡΑΓΩΓΗ CONCEPTUM

41

VVIISSUUAALL BBAASSIICC 22000088 ΕΕΚΚΠΠΑΑΙΙ∆∆ΕΕΥΥΤΤΙΙΚΚΟΟ ΕΕΓΓΧΧΕΕΙΙΡΡΙΙ∆∆ΙΙΟΟ –– ΒΒΙΙΒΒΛΛΙΙΟΟ ΚΚΑΑΘ ΘΗΗΓΓΗΗΤΤΗΗ

∆ραστηριότητα 2 : Νested if Στη δραστηριότητα αυτή οι µαθητές θα τοποθετήσουν τις εντολές if .. then µέσα σε εντολές if .. then για να κατανοήσουν την έννοια του nested if. Ζητείται από τους µαθητές να επεκτείνουν την εφαρµογή που έγραψαν στην προηγούµενη

δραστηριότητα

λαµβάνοντας

υπ

όψιν

και

τον

παράγοντα

σαββατοκύριακο. Η υλοποίηση της εφαρµογής µπορεί να γίνει µε πολλούς τρόπους. Γι αυτό δίνεται στους µαθητές ψευδικώδικας που πρέπει να ακολουθήσουν. Η υλοποίηση της εφαρµογής µε βάση τον ψευδοκώδικα βρίσκεται παρακάτω: Module Module1 Sub Main() Console.Write("δωσε τον λήγοντα από την πινακίδα του αυτοκινήτου σου") Dim pinakida As Integer = Console.ReadLine() Dim dt As Date = Date.Now Dim mera As Integer = dt.DayOfWeek If mera 7 Then If mera 6 Then Dim pinakidaYpoloipo As Integer = pinakida Mod 2 Dim meraYpoloipo As Integer = dt.Day Mod 2 If pinakidaYpoloipo meraYpoloipo Then Console.WriteLine("Σήµερα αν κατέβεις στο κέντρο, θα σε γράψουν") End If End If End If Console.ReadLine() End Sub End Module

∆ραστηριότητα 3 : Οι εντολές AND , OR, NOT Στη δραστηριότητα αυτή, παρουσιάζεται στους µαθητές η χρήση των λογικών τελεστών. Σαν παράδειγµα τούς δίνεται η υλοποίηση της εφαρµογή που ζητήθηκε στην προηγούµενη δραστηριότητα µε τη χρήση του τελεστή and. Επίσης, τους παρουσιάζεται η µέθοδος της αποθήκευσης των αποτελεσµάτων λογικών πράξεων σε λογικές µεταβλητές. Για την κατανόηση του τελεστή or παρουσιάζεται µια νέα εφαρµογή που ελέγχει την ηµέρα της εβδοµάδας και τυπώνει ένα µήνυµα ανάλογα αν είναι σαββατοκύριακο ή αν είναι καθηµερινή. Τέλος, ζητείται από τους µαθητές να υλοποιήσουν µια εφαρµογή που να υπολογίζει αν ένα έτος είναι δίσεκτο ή όχι. Για την υλοποίηση της θα πρέπει να χρησιµοποιήσουν τους τελεστές and και or.

ΠΑΡΑΓΩΓΗ CONCEPTUM

42

VVIISSUUAALL BBAASSIICC 22000088 ΕΕΚΚΠΠΑΑΙΙ∆∆ΕΕΥΥΤΤΙΙΚΚΟΟ ΕΕΓΓΧΧΕΕΙΙΡΡΙΙ∆∆ΙΙΟΟ –– ΒΒΙΙΒΒΛΛΙΙΟΟ ΚΚΑΑΘ ΘΗΗΓΓΗΗΤΤΗΗ

Παρακάτω δίνεται η υλοποίηση της εφαρµογή αυτής µε τη χρήση λογικών τελεστών. Module Module1 Sub Main() Console.WriteLine("∆ώσε έτος:") Dim theYear As Integer = Console.ReadLine() Dim div4 As Boolean = (theYear Mod 4) = 0 Dim notDiv100 As Boolean = (theYear Mod 100) 0 Dim div400 As Boolean = (theYear Mod 400) = 0 If (div4 And notDiv100) Or div400 Then Console.WriteLine("∆ισσεκτο") Else Console.WriteLine("δεν ειναι ∆ισσεκτο") End If Console.ReadLine() End Sub End Module

Για να κατανοήσουν οι µαθητές τη χρήση του NOT ο καθηγητής θα πρέπει να τους ζητήσει να αντικαταστήσουν την εντολή Dim notDiv100 As Boolean = (theYear Mod 100) 0

µε τις Dim div100 As Boolean = (theYear Mod 100) = 0 Dim notDiv100 As Boolean = Not div100

∆ραστηριότητα 4 : Το σύνθετο σχήµα If…Then…Else If Στόχος της δραστηριότητας αυτής είναι οι µαθητές να κατανοήσουν τη δοµή if .. then .. elseIf. Πρώτα εξηγείται στους µαθητές πως δοµείται ένα πρόγραµµα µε την εν λόγω δοµή. Μετά τους ζητείται να υλοποιήσουν ξανά την εφαρµογή που έφτιαξαν στην προηγούµενη δραστηριότητα µε τη χρήση αυτής της δοµής. Για να βοηθηθούν οι µαθητές δίνεται ψευδοκώδικας που θα πρέπει να ακολουθήσουν για την υλοποίηση. Παρακάτω παρατίθεται η υλοποίηση της εφαρµογής. Module Module1 Sub Main() Console.WriteLine("∆ώσε έτος:") Dim theYear As Integer = Console.ReadLine() Dim div4 As Boolean = (theYear Mod 4) = 0 Dim div100 As Boolean = (theYear Mod 100) = 0 Dim div400 As Boolean = (theYear Mod 400) = 0 Dim isLeapYear As Boolean If div400 Then isLeapYear = True

ΠΑΡΑΓΩΓΗ CONCEPTUM

43

VVIISSUUAALL BBAASSIICC 22000088 ΕΕΚΚΠΠΑΑΙΙ∆∆ΕΕΥΥΤΤΙΙΚΚΟΟ ΕΕΓΓΧΧΕΕΙΙΡΡΙΙ∆∆ΙΙΟΟ –– ΒΒΙΙΒΒΛΛΙΙΟΟ ΚΚΑΑΘ ΘΗΗΓΓΗΗΤΤΗΗ ElseIf div100 Then isLeapYear = False ElseIf div4 Then isLeapYear = True Else isLeapYear = False End If If isLeapYear Then Console.WriteLine("∆ισσεκτο") Else Console.WriteLine("δεν ειναι ∆ισσεκτο") End If Console.ReadLine() End Sub End Module

Οι µαθητές θα πρέπει να αποθηκεύσουν την εφαρµογή για να τη χρησιµοποιήσουν στο επόµενο φύλλο εργασίας.

∆ραστηριότητα 5 : ∆οµή Select Case Στους µαθητές παρουσιάζεται η δοµή select .. case. Τους δίνεται µια εφαρµογή που εξετάζει την ηµεροµηνία και τυπώνει την αντίστοιχη µέρα της εβδοµάδας. Οι µαθητές καλό θα είναι να γράψουν την εφαρµογή αυτή σε Visual Basic και να τη δοκιµάσουν. Ακολούθως τους ζητείται να την ξαναγράψουν χρησιµοποιώντας τη δοµή if .. then .. elseIf Παρακάτω δίνεται η υλοποίηση της εφαρµογής. Module Module1 Sub Main() Dim dt As Date = Date.Now Dim dayOfWeek As Integer = dt.DayOfWeek If dayOfWeek = 1 Then Console.WriteLine("Σήµερα ειναι ∆ευτέρα") ElseIf dayOfWeek = 2 Then Console.WriteLine("Σήµερα ειναι Τρίτη") ElseIf dayOfWeek = 3 Then Console.WriteLine("Σήµερα ειναι Τετάρτη") ElseIf dayOfWeek = 4 Then Console.WriteLine("Σήµερα ειναι Πέµπτη") ElseIf dayOfWeek = 5 Then Console.WriteLine("Σήµερα ειναι Παρσκευή") ElseIf dayOfWeek = 5 Or dayOfWeek = 6 Then Console.WriteLine("Σαββατοκύριακο, µπορείς να ξεκουραστεις") End If Console.ReadLine() End Sub

ΠΑΡΑΓΩΓΗ CONCEPTUM

44

VVIISSUUAALL BBAASSIICC 22000088 ΕΕΚΚΠΠΑΑΙΙ∆∆ΕΕΥΥΤΤΙΙΚΚΟΟ ΕΕΓΓΧΧΕΕΙΙΡΡΙΙ∆∆ΙΙΟΟ –– ΒΒΙΙΒΒΛΛΙΙΟΟ ΚΚΑΑΘ ΘΗΗΓΓΗΗΤΤΗΗ End Module

Τέλος συζητήστε στην τάξη του διαφορετικούς τρόπους που είδατε για την υλοποίηση µια εφαρµογής. Ποιον τρόπο πρέπει να επιλέγουµε και µε ποιο κριτήριο; (ταχύτητα υλοποίησης, αναγνωσιµότητα, ταχύτητα εκτέλεσης)

ΠΑΡΑΓΩΓΗ CONCEPTUM

45

VVIISSUUAALL BBAASSIICC 22000088 ΕΕΚΚΠΠΑΑΙΙ∆∆ΕΕΥΥΤΤΙΙΚΚΟΟ ΕΕΓΓΧΧΕΕΙΙΡΡΙΙ∆∆ΙΙΟΟ –– ΒΒΙΙΒΒΛΛΙΙΟΟ ΚΚΑΑΘ ΘΗΗΓΓΗΗΤΤΗΗ

Σενάριο Εκπαιδευτικών ∆ραστηριοτήτων 7. Οι συναρτήσεις και υπορουτίνες στη Visual Basic Σύντοµη περιγραφή Στο συγκεκριµένο σενάριο οι µαθητές χωρίζονται σε οµάδες των 2 ατόµων. Σε κάθε δραστηριότητα δίνεται ένα παράδειγµα κώδικα κει µετά ζητείται από τους µαθητές να δηµιουργήσουν µια ανάλογη εφαρµογή. Σε µερικές από τις δραστηριότητες δίνεται στους µαθητές ψευδοκώδικας που θα πρέπει να υλοποιήσουν σε Visual Basic. Ένα µέλος της οµάδας θα πρέπει να χειρίζεται τον υπολογιστή πληκτρολογώντας τον κώδικα, αφού έχει συζητήσει µαζί µε το άλλο µέλος σχετικά µε την υλοποίησή του. Το δευτερο µέλος της οµάδας θα λάβει το ρόλο του χρήστη και θα τεστάρει τις εφαρµογές που θα δηµιουργήσουν σε αυτές τις δραστηριότητες. Προτείνεται τα δυο µέλη να εναλλάσσουν ρόλους σε κάθε δραστηριότητα.

Γνωστικό αντικείµενο και σύνδεση µε το πρόγραµµα σπουδών Τάξη: Τοµέας:

ΠΛΗΡΟΦΟΡΙΚΗΣ-

Γνωστικό Αντικείµενο:

ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΑ ΕΡΓΑΛΕΊΑ

∆ιδακτική ενότητα:



∆ιδακτικές ώρες:

3

Αριθµός µαθητών:

Στο συγκεκριµένο σενάριο οι µαθητές χωρίζονται σε οµάδες των 2 ατόµων. Η επιλογή των ατόµων της κάθε οµάδας θα γίνεται σύµφωνα µε τη κρίση του καθηγητή µε βασικό κριτήριο την καλύτερη συνεργασία των µαθητών µεταξύ τους.

∆ιδακτικοί Στόχοι για το Σενάριο Μετά το πέρας της εκπαιδευτικής δραστηριότητας οι µαθητές θα: •

Θα γνωρίζουν να χρησιµοποιούν τις δοµές επανάληψης while, repeat, for.



Θα γνωρίζουν τη διαφοροποίηση ανάµεσα στις δοµές repeat και while

ΠΑΡΑΓΩΓΗ CONCEPTUM

46

VVIISSUUAALL BBAASSIICC 22000088 ΕΕΚΚΠΠΑΑΙΙ∆∆ΕΕΥΥΤΤΙΙΚΚΟΟ ΕΕΓΓΧΧΕΕΙΙΡΡΙΙ∆∆ΙΙΟΟ –– ΒΒΙΙΒΒΛΛΙΙΟΟ ΚΚΑΑΘ ΘΗΗΓΓΗΗΤΤΗΗ



Θα µπορούν να δηµιουργούν πίνακες στη Visual Basic



Θα µπορούν να προσπελάσουν όλα τα στοιχεία ενός πίνακα µε τη χρήση της δοµής for.

∆ιδακτική προσέγγιση Για την επίτευξη των στόχων του συγκεκριµένου σεναρίου έχει επιλεγεί η οµαδοσυνεργατική-ανακαλυπτική διδακτική προσέγγιση. Οι µαθητές χωρίζονται σε µικρές οµάδες (2 ατόµων) και µε τη βοήθεια του εκπαιδευτικού καλούνται να ολοκληρώσουν τις προτεινόµενες στο φύλλο εργασίας δραστηριότητες. Ο ρόλος του εκπαιδευτικού είναι υποστηρικτικός, καθοδηγώντας τους µαθητές στα σηµεία που είναι απαραίτητο και βοηθώντας τους να ανακαλύψουν τη γνώση, συµµετέχοντας ενεργά στην διδακτική διαδικασία. Εργαλεία ΤΠΕ που αξιοποιούνται στο πλαίσιο του σεναρίου •

Microsoft Visual basic 2008 Express Edition

Βήµατα υλοποίησης του σεναρίου Σε αυτό το φύλλο εργασίας οι µαθητές εξασκούνται στις δοµές επανάληψης. ∆ίνονται παραδείγµατα κώδικα που χρησιµοποιεί δοµές επανάληψης και µετά ζητείται από τους µαθητές µα βάση τα παραδείγµατα του φύλου εργασίας να συγγράψουν δικό τους κώδικα. Θα ήταν χρήσιµο οι µαθητές να δηµιουργήσουν σε περιβάλλον Visual Basic τις εφαρµογές που δίνονται σαν παράδειγµα. Ο καθηγητής θα πρέπει να εξηγήσει στους µαθητές τη λειτουργία των δοµών επανάληψης µε τη χρήση λογικού διαγράµµατος και ειδικότερα τη διαφοροποίηση της δοµής «repeat» από τη δοµή «while».

ΠΑΡΑΓΩΓΗ CONCEPTUM

47

VVIISSUUAALL BBAASSIICC 22000088 ΕΕΚΚΠΠΑΑΙΙ∆∆ΕΕΥΥΤΤΙΙΚΚΟΟ ΕΕΓΓΧΧΕΕΙΙΡΡΙΙ∆∆ΙΙΟΟ –– ΒΒΙΙΒΒΛΛΙΙΟΟ ΚΚΑΑΘ ΘΗΗΓΓΗΗΤΤΗΗ

∆οµή while

∆οµή repeat

Η σύνταξη των δοµών αυτών γίνεται µε πολλούς τρόπους στη Visual Basic. Στο φύλλο εργασίας δίνεται µόνο ένας τρόπος σύνταξης για κάθε δοµή. Ανάλογα το επίπεδο της τάξης ο καθηγητής µπορεί να εξηγήσει στους µαθητές και τους υπόλοιπους τρόπους σύνταξης που βελτιώνουν την αναγνωσιµότητα του κώδικα. Π.χ. Do while not a < 0 µπορεί να συνταθεί ως Do Until a < 0.

∆ραστηριότητα 1 : Η δοµή repeat Στη δραστηριότητα αυτή στους µαθητές δινονται παραδείγµατα επαναληπτικών διαδικασιών µε τη χρήση της δοµής «repeat». Τέλος ζητείται από τους µαθητές να δηµιουργήσουν µια απλή εφαρµογή κονσόλας µε την παρακάτω περιγραφή: Στόχος της εφαρµογής: ζητάει από το χρηστή να πληκτρολογήσει µια λέξη µέχρι ο χρήστης να πληκτρολογήσει τη λέξη «bye», µε αυτή τη λέξη τερµατίζεται η εφαρµογή. Καλό θα είναι ο καθηγητής να ζητήσει από τους µαθητές να υλοποιήσουν την εφαρµογή σε λογικό διάγραµµα πριν προχωρήσουν στην υλοποίησή της σε κώδικα. Παρακάτω δίνεται ο κώδικας της εφαρµογής Module Module1

ΠΑΡΑΓΩΓΗ CONCEPTUM

48

VVIISSUUAALL BBAASSIICC 22000088 ΕΕΚΚΠΠΑΑΙΙ∆∆ΕΕΥΥΤΤΙΙΚΚΟΟ ΕΕΓΓΧΧΕΕΙΙΡΡΙΙ∆∆ΙΙΟΟ –– ΒΒΙΙΒΒΛΛΙΙΟΟ ΚΚΑΑΘ ΘΗΗΓΓΗΗΤΤΗΗ Dim str As String Sub Main() Do Console.Write("∆ώσε τη µαγική λέξη:") str = Console.ReadLine() Loop Until str = "bye" End Sub End Module

Συζητήστε στην τάξη γιατί η δοµή «repeat» είναι η πιο κατάληλη για την υλοποιηση αυτή της εφαρµογής.

∆ραστηριότητα 2 : Η δοµή while Στη δραστηριότητα 2 και 3 δίνεται στου µαθητές ένας κώδικας που στην τελική του µορφή χρησιµοποιεί και τις τρεις δοµές. Σε αυτή τη δραστηριότητα δίνεται ο κώδικας µε τις δοµές «repeat» και «while» ενώ η συνάρτηση που θα χρησιµοποιήσει την δοµή «for» δίνεται ηµιτελής. Η εφαρµογή υπολογίζει το παραγοντικό ενός αριθµού που πληκτρολογεί ο χρήστης. Οι µαθητές έρχονται για πρώτη φορά σε επαφή µε την αξιολόγηση των δεδοµένων εισόδου. Οι µαθητές θα πρέπει να συγκρίνουν τη χρήση της δοµής «repeat» που είδαν στην πρώτη δραστηριότητα µε τη χρήση της δοµής «while» που δίνεται σε αυτή της δραστηριότητα, στην κεντρική υπορουτίνα του προγράµµατος. Επίσης θα πρέπει να δουν την χρήση της δοµής «repeat» στην υπορουτίνα getUserInput(). Τέλος ζητείται από τους µαθητές να τροποποιήσουν την υπορουτίνα getUserInput() έτσι ώστε να εµφανίζει ένα µήνυµα αν ο χρήστης δεν πληκτρολογήσει τα αναµενόµενα

δεδοµένα.

Για

την

υλοποίηση

της

παραπάνω

προδιαγραφή

καταλληλότερη είναι η δοµή «while». Παρακάτω παρατίθεται η υλοποίηση της υπορουτίνας. Function getUserInput() As Integer Dim strTheNumber As String Dim theNumber As Integer Console.WriteLine("∆ωσε έναν αριθµό") Console.Write("0 για τερµατισµό)") strTheNumber = Console.ReadLine() Do While Not IsNumeric(strTheNumber)

ΠΑΡΑΓΩΓΗ CONCEPTUM

49

VVIISSUUAALL BBAASSIICC 22000088 ΕΕΚΚΠΠΑΑΙΙ∆∆ΕΕΥΥΤΤΙΙΚΚΟΟ ΕΕΓΓΧΧΕΕΙΙΡΡΙΙ∆∆ΙΙΟΟ –– ΒΒΙΙΒΒΛΛΙΙΟΟ ΚΚΑΑΘ ΘΗΗΓΓΗΗΤΤΗΗ αριθµός")

Console.WriteLine("To '" + strTheNumber + "' δεν ειναι

Console.WriteLine("∆ωσε έναν αριθµό") Console.Write("0 για τερµατισµό)") strTheNumber = Console.ReadLine() Loop theNumber = strTheNumber Return theNumber End Function

∆ραστηριότητα 3 : Η δοµή for .. next Στη δραστηριότητα αυτή εξηγείται στους µαθητές η χρήση της δοµής «for». ∆ίνονται παραδείγµατα χρήσης της δοµής. Τέλος ζητείται από τους µαθητές να συµπληρώσουν την υπορουτίνα που υπολογίζει το παραγοντικό (calculateParagontiko). Ο κώδικας της υπορουτίνας παρατίθεται παρακάτω. Function calculateParagontiko(ByVal number As Integer) As String Dim parag As Long = 1 For i = 1 To number parag = parag * i Next Return parag.ToString() End Function

Στην υπορουτίνα αυτή είναι σηµαντικός ο τύπος µεταβλητής που επιλέγεται για να αποθηκεύσει το παραγοντικό. Ωστόσο ο αριθµός που προκύπτει είναι υπερβολικά µεγάλος για να χειριστεί από µεταβλητές ακόµα και τύπου long. Συζητείστε το πρόβληµα αυτό στην τάξη.

∆ραστηριότητα 4 : Οι πίνακες στη Visual Basic Σε αυτή τη δραστηριότητα οι µαθητές έρχονται σε επαφή µε την έννοια του πίνακα. Αρχικά τους παρουσιάζεται η µεταβλητή τύπου string σαν πίνακας από char. Τους δίνεται σαν παράδειγµα µια εφαρµογή που παίρνει ένα string και τυπώνει τους χαρακτήρες στην οθόνη έναν ανά γραµµή.

ΠΑΡΑΓΩΓΗ CONCEPTUM

50

VVIISSUUAALL BBAASSIICC 22000088 ΕΕΚΚΠΠΑΑΙΙ∆∆ΕΕΥΥΤΤΙΙΚΚΟΟ ΕΕΓΓΧΧΕΕΙΙΡΡΙΙ∆∆ΙΙΟΟ –– ΒΒΙΙΒΒΛΛΙΙΟΟ ΚΚΑΑΘ ΘΗΗΓΓΗΗΤΤΗΗ

Η εφαρµογή χρησιµοποιεί τη δοµή «while» για να συνεχίσει τη λειτουργία της µέχρι ο χρήστης να πατήσει απλώς το . Μπορείτε αν θέλετε να ζητήσετε από τους µαθητές να αντικαταστήσουν την εντολή Do While str "" µε την Do Until str = "". Μετά τους δίνεται σαν παράδειγµα ένας πίνακας τύπου string όπου αποθηκεύονται οι µέρες της εβδοµάδος. Με τη χρήση αυτού του πίνακα δίνεται στους µαθητές µια υλοποίηση της εφαρµογής που είδαν στο «φύλλο εργασίας 6», που τυπώνει την τρέχουσα µέρα της εβδοµάδας. Τέλος ζητείται από τους µαθητές να δηµιουργήσουν µια εφαρµογή που θα ζητάει από το χρήστη 3 αριθµούς. Οι αριθµοί θα αποθηκεύονται σε έναν πίνακα και στο τέλος θα εµφανίζει το άθροισµά τους. Μπορείτε να ζητήσετε από τους µαθητές να ενσωµατώσουν έλεγχο για τα δεδοµένα που πληκτρολογεί ο χρήστης. Παρακάτω παρατίθεται ο κώδικας της εφαρµογής: Module Module1 Function getUserInput() As Integer Dim strTheNumber As String Dim theNumber As Integer Console.WriteLine("∆ωσε έναν αριθµό") Console.Write("0 για τερµατισµό)") strTheNumber = Console.ReadLine() Do While Not IsNumeric(strTheNumber) Console.WriteLine("To '" + strTheNumber + "' δεν ειναι αριθµός") Console.WriteLine("∆ωσε έναν αριθµό") strTheNumber = Console.ReadLine() Loop theNumber = strTheNumber Return theNumber End Function

ΠΑΡΑΓΩΓΗ CONCEPTUM

51

VVIISSUUAALL BBAASSIICC 22000088 ΕΕΚΚΠΠΑΑΙΙ∆∆ΕΕΥΥΤΤΙΙΚΚΟΟ ΕΕΓΓΧΧΕΕΙΙΡΡΙΙ∆∆ΙΙΟΟ –– ΒΒΙΙΒΒΛΛΙΙΟΟ ΚΚΑΑΘ ΘΗΗΓΓΗΗΤΤΗΗ Sub Main() Dim n As Double Dim numbers(2) As Double For i = 0 To 2 n = getUserInput() numbers(i) = n Next Dim sum As Double = 0 For i = 0 To 2 sum = sum + numbers(i) Next Console.Write("Το άθροισµα των αριθµών που έδωσες είναι: ") Console.WriteLine(sum) Console.ReadLine() End Sub End Module

Η εφαρµογή ξαναχρησιµοποιεί την υπορουτίνα getUserInput που χρησιµοποιήθηκε στην δραστηριότητα 2.

ΠΑΡΑΓΩΓΗ CONCEPTUM

52

VVIISSUUAALL BBAASSIICC 22000088 ΕΕΚΚΠΠΑΑΙΙ∆∆ΕΕΥΥΤΤΙΙΚΚΟΟ ΕΕΓΓΧΧΕΕΙΙΡΡΙΙ∆∆ΙΙΟΟ –– ΒΒΙΙΒΒΛΛΙΙΟΟ ΚΚΑΑΘ ΘΗΗΓΓΗΗΤΤΗΗ

Σενάριο Εκπαιδευτικών ∆ραστηριοτήτων 8. Οι συναρτήσεις και υπορουτίνες στη Visual Basic Σύντοµη περιγραφή Στο συγκεκριµένο σενάριο οι µαθητές χωρίζονται σε οµάδες των 2 ατόµων. Σε κάθε δραστηριότητα δίνεται ένα παράδειγµα κώδικα κει µετά ζητείται από τους µαθητές να δηµιουργήσουν µια ανάλογη εφαρµογή. Σε µερικές από τις δραστηριότητες δίνεται στους µαθητές ψευδοκώδικας που θα πρέπει να υλοποιήσουν σε Visual Basic. Ένα µέλος της οµάδας θα πρέπει να χειρίζεται τον υπολογιστή πληκτρολογώντας τον κώδικα, αφού έχει συζητήσει µαζί µε το άλλο µέλος σχετικά µε την υλοποίησή του. Το δευτερο µέλος της οµάδας θα λάβει το ρόλο του χρήστη και θα τεστάρει τις εφαρ,ογές που θα δηµιουργήσουν σε αυτές τις δραστηριότητες. Προτείνεται τα δυο µέλη να εναλλάσσουν ρόλους σε κάθε δραστηριότητα.

Γνωστικό αντικείµενο και σύνδεση µε το πρόγραµµα σπουδών Τάξη: Τοµέας:

ΠΛΗΡΟΦΟΡΙΚΗΣ-

Γνωστικό Αντικείµενο:

ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΑ ΕΡΓΑΛΕΊΑ

∆ιδακτική ενότητα:



∆ιδακτικές ώρες:

3

Αριθµός µαθητών:

Στο συγκεκριµένο σενάριο οι µαθητές χωρίζονται σε οµάδες των 2 ατόµων. Η επιλογή των ατόµων της κάθε οµάδας θα γίνεται σύµφωνα µε τη κρίση του καθηγητή µε βασικό κριτήριο την καλύτερη συνεργασία των µαθητών µεταξύ τους.

∆ιδακτικοί Στόχοι για το Σενάριο Μετά το πέρας της εκπαιδευτικής δραστηριότητας οι µαθητές θα: •

Θα γνωρίζουν να χρησιµοποιούν τις δοµές επανάληψης while, repeat, for.



Θα γνωρίζουν τη διαφοροποίηση ανάµεσα στις δοµές repeat και while

ΠΑΡΑΓΩΓΗ CONCEPTUM

53

VVIISSUUAALL BBAASSIICC 22000088 ΕΕΚΚΠΠΑΑΙΙ∆∆ΕΕΥΥΤΤΙΙΚΚΟΟ ΕΕΓΓΧΧΕΕΙΙΡΡΙΙ∆∆ΙΙΟΟ –– ΒΒΙΙΒΒΛΛΙΙΟΟ ΚΚΑΑΘ ΘΗΗΓΓΗΗΤΤΗΗ



Θα µπορούν να δηµιουργούν πίνακες στη Visual Basic



Θα µπορούν να προσπελάσουν όλα τα στοιχεία ενός πίνακα µε τη χρήση της δοµής for.

∆ιδακτική προσέγγιση Για την επίτευξη των στόχων του συγκεκριµένου σεναρίου έχει επιλεγεί η οµαδοσυνεργατική-ανακαλυπτική διδακτική προσέγγιση. Οι µαθητές χωρίζονται σε µικρές οµάδες (2 ατόµων) και µε τη βοήθεια του εκπαιδευτικού καλούνται να ολοκληρώσουν τις προτεινόµενες στο φύλλο εργασίας δραστηριότητες. Ο ρόλος του εκπαιδευτικού είναι υποστηρικτικός, καθοδηγώντας τους µαθητές στα σηµεία που είναι απαραίτητο και βοηθώντας τους να ανακαλύψουν τη γνώση, συµµετέχοντας ενεργά στην διδακτική διαδικασία. Εργαλεία ΤΠΕ που αξιοποιούνται στο πλαίσιο του σεναρίου •

Microsoft Visual basic 2008 Express Edition

Βήµατα υλοποίησης του σεναρίου Σε

αυτό

το

φύλλο

εργασίας

οι

µαθητές

εξασκούνται

στην

διαδικασία

εκσφαλµάτωσης. Πρώτα τους εξηγείται η διαδικασία αντιµετώπισης συντακτικών σφαλµάτων. Στη συνέχεια η αντιµετώπιση run time errors µε τη δοµή try .. catch. Τέλος εξασκούνται στην αντιµετώπιση λογικών λαθών µέσα από παραδείγµατα.

∆ραστηριότητα 1 : Συντακτικά λάθη. Στη δραστηριότητα αυτή εξηγείται στους µαθητές πως υποδεικνλυει ο compiler τα συντακτικά λάθη. Στην άσκηση τους ζητειται να εντοπίσουν τα συντακτικά λάθη στις παρακάτω γραµµές κώδικα. Dim str As String str = ""; Dim num As Integer = 0 Console.WriteLine ("Ο αριθµός "num" ειναι 0")

Τα λάθη είναι :

ΠΑΡΑΓΩΓΗ CONCEPTUM

54

VVIISSUUAALL BBAASSIICC 22000088 ΕΕΚΚΠΠΑΑΙΙ∆∆ΕΕΥΥΤΤΙΙΚΚΟΟ ΕΕΓΓΧΧΕΕΙΙΡΡΙΙ∆∆ΙΙΟΟ –– ΒΒΙΙΒΒΛΛΙΙΟΟ ΚΚΑΑΘ ΘΗΗΓΓΗΗΤΤΗΗ str = ""; Το σύµβολο “;” δεν µπορεί να τοποθετηθεί στο τέλος µια εντολής. Console.WriteLine ("Ο αριθµός "num" ειναι 0") η παράσταση στην παρένθεση δεν είναι συντακτικά σωστή. Η σωστή είναι Console.WriteLine ("Ο αριθµός "&num&" ειναι 0")

∆ραστηριότητα 2 : Που επηρεάζουν τα συντακτικά λάθη. (Option Explicit) Στη δραστηριότητα αυτή παρουσιάζονται στους µαθητές οι επιλογές που µπορεί να κανει ο προγραµµατιστής και επηρεάζουν τον τρόπο που ο compiler αντιµετωπίζει τα συντακτικά λάθη. Στην συγκεκριµένη δραστηριότητα απρουσιάζεται η επιλογή Option Explicit. Στην άσκηση ζητείται από τους µαθητές να εντοπίσουν τη default τιµή της επιλογής Option Explicit. Η τιµή αυτή είναι On.

∆ραστηριότητα 3 : Επιλογές που επηρεάζουν τα συντακτικά λάθη.

(Option

Strict) Στη δραστηριότητα αυτή παρουσιάζεται η επιλογή Option Strict. Η default τιµή της είναι off. Από τους µαθητές ζητείται να βάλουν την επιλογή αυτή on και να δουν την αλλαγή στην συµπεριφορά του compiler. Στην άσκηση τους ζητειται να εντοπίσουν τα λάθη που θα εντοπίσει ο compiler στον παρακάτω κώδικα. Option Strict On Module Module1 Sub Main() Console.WriteLine("Ο αριθµός 10 ειναι άρτιος") Console.WriteLine("Ο αριθµός " + 11 + " ειναι περιττός") Dim str As String = 0 Dim myName As String myName = "∆ηµήτρης" Dim myAge As Integer = 40 Console.WriteLine(myName + ", " + myAge) End Sub End Module

Τα λάθη είναι στις γραµµές : Console.WriteLine("Ο αριθµός " + 11 + " ειναι περιττός") Dim str As String = 0

ΠΑΡΑΓΩΓΗ CONCEPTUM

55

VVIISSUUAALL BBAASSIICC 22000088 ΕΕΚΚΠΠΑΑΙΙ∆∆ΕΕΥΥΤΤΙΙΚΚΟΟ ΕΕΓΓΧΧΕΕΙΙΡΡΙΙ∆∆ΙΙΟΟ –– ΒΒΙΙΒΒΛΛΙΙΟΟ ΚΚΑΑΘ ΘΗΗΓΓΗΗΤΤΗΗ Console.WriteLine(myName + ", " + myAge)

∆ραστηριότητα 4 : Οι εντολές try … catch Στη δραστηριότητα αυτή οι µαθητές µαθαίνουν να χειρίζοναται τα run time errors µε τη δοµή try .. catch. ∆ίνονται παραδείγµατα χρήσης της δοµής και τέλος ζητειται από τους µαθητές να εφαρµόσουν τη δοµή αυτή στην εφαρµογή υπολογισµού του παραγοντικού που δηµιούργησαν στο Φ.Ε 7.

Ο κώδικας που θα πρέπει να

δηµιουργήσουν θα πρέπει να έχει την εξής µορφή: Module Module1 Function calculateParagontiko(ByVal number As Integer) As String Dim parag As ULong = 1 Try For i = 1 To number parag = parag * i Next Catch ex As Exception Return "πολύ µεγάλο για να υπολογιστεί από αυτό το λογισµικό" End Try Return parag.ToString() End Function Function getUserInput() As Integer Dim strTheNumber As String Dim theNumber As Integer Do Console.Write("∆ωσε έναν αριθµό") Console.Write("0 για τερµατισµό)") strTheNumber = Console.ReadLine() Loop Until IsNumeric(strTheNumber) theNumber = strTheNumber Return theNumber End Function Sub Main() Dim n As Integer n = getUserInput() Do While n 0 Console.Write("Το παραγοντικό του " + n.ToString() + " είναι ") Console.WriteLine(calculateParagontiko(n)) n = getUserInput() Loop End Sub End Module

ΠΑΡΑΓΩΓΗ CONCEPTUM

56

VVIISSUUAALL BBAASSIICC 22000088 ΕΕΚΚΠΠΑΑΙΙ∆∆ΕΕΥΥΤΤΙΙΚΚΟΟ ΕΕΓΓΧΧΕΕΙΙΡΡΙΙ∆∆ΙΙΟΟ –– ΒΒΙΙΒΒΛΛΙΙΟΟ ΚΚΑΑΘ ΘΗΗΓΓΗΗΤΤΗΗ

∆ραστηριότητα 5 : Λογικά λάθη 1. Στη δραστηριότητα αυτή εξηγείται στους µαθητές η Τρίτη κατηγορία λαθών, τα λογικά λάθη. Σαν άσκηση τους παρουσιάζεται ένα πρόγραµµα που πρέπει να πληκτρολογήσουν. Το πρόγραµµα θα έπρεπε να εµφανίζει το σύνολο των τιµών που είναι αποθηκευµένες σε έναν πίνακα, αλλά εµφανίζει κάτι διαφορετικό. Ζητείται από τους µαθητές να εντοπίσουν το λάθος στον κώδικα. Module Module1 Sub Main() Dim numbers() As Double = {1, 1, 1, 1, 1, 1} Dim sum = 0 For i = 1 To numbers.Length - 1 sum = sum + numbers(i) Next Console.WriteLine(sum) Console.ReadLine() End Sub End Module

Το λάθος βρίσκεται στη γραµµή For i = 1 To numbers.Length - 1

Η σωατή διατυπωση είναι For i = 0 To numbers.Length - 1

∆ραστηριότητα 6 : Λογικά λάθη 2 Στην δραστηριότητα αυτή οι µαθητές καλούνται να αντιµετωπίσουν ένα σύνθετο πρόβληµα. Τους ζητείται να πληκτρολογήσουν µια εφαρµογή η οποία έχει ένα λογικό λάθος. Παράλληλα αυτή η εφαρµογή δεν θεωρείται σταθερή διότι είναι ευάλωτη σε run time errors. Το λογικό λάθος της εφαρµογής βρίσκεται στην κλήση της συνάρτησης GetKMPH(hours, kilometers)

. Η σωστή κλήση είναι GetKMPH( kilometers,

hours) .

ΠΑΡΑΓΩΓΗ CONCEPTUM

57