ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ Η/Υ Ενότητα: ΔΟΜΕΣ ΕΠΙΛΟΓΗΣ-MSGBOX ΚΥΡΟΠΟΥΛΟΣ ΚΩΝΣΤΑΝΤΙΝΟΣ Τμήμα Διοίκηση Επιχειρήσεων (Κοζάνη)
Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative Commons. Για εκπαιδευτικό υλικό, όπως εικόνες, που υπόκειται σε άλλου τύπου άδειας χρήσης, η άδεια χρήσης αναφέρεται ρητώς. Χρηματοδότηση Το παρόν εκπαιδευτικό υλικό έχει αναπτυχθεί στα πλαίσια του εκπαιδευτικού έργου του διδάσκοντα. Το έργο «Ανοικτά Ακαδημαϊκά Μαθήματα στο TEI Δυτικής Μακεδονίας και στην Ανώτατη Εκκλησιαστική Ακαδημία Θεσσαλονίκης» έχει χρηματοδοτήσει μόνο τη αναδιαμόρφωση του εκπαιδευτικού υλικού. Το έργο υλοποιείται στο πλαίσιο του Επιχειρησιακού Προγράμματος «Εκπαίδευση και Δια Βίου Μάθηση» και συγχρηματοδοτείται από την Ευρωπαϊκή Ένωση (Ευρωπαϊκό Κοινωνικό Ταμείο) και από εθνικούς πόρους. 2
Περιεχόμενα 1. Τοπικές vs Καθολικές Μεταβλητές... Error! Bookmark not defined. 2. Το Λογικό Διάγραμμα... Error! Bookmark not defined. 3. Σχεδιασμός Φόρμας... Error! Bookmark not defined. 4. Κωδικοποίηση... Error! Bookmark not defined. 5. Παράρτημα... 18 3
1. Συνθήκες Σε αυτό το κεφάλαιο θα μάθουμε πως θα δημιουργούμε συνθήκες στον προγραμματισμό. Όπως γνωρίζετε στους αλγόριθμους έχομε συγκεκριμένο τρόπο παρουσίασης. Η δομή Επιλογής ή Δομή Διακλάδωσης ή Συνθήκη παρουσιάζεται στα Λογικά διαγράμματα με το σχήμα του ρόμβου ΟΧΙ ΝΑΙ Συνθήκ η Εάν η συνθήκη είναι ορθή εκτελείτε το σκέλος του ΝΑΙ, αν η απάντηση στην συνθήκη είναι ΌΧΙ τότε εκτελείτε το άλλο σκέλος. Σε πολλές περιπτώσεις αντι του ΝΑΙ και του ΟΧΙ μπορεί να δείτε το ΟΡΘΟ / ΛΑΘΟΣ, ή τους Αγγλικούς Όρους TRUE / FALSE. Για παράδειγμα θα μπορούσαμε να ρωτήσουμε «Είσαι μεγαλύτερος των 18 χρόνων» Η απάντηση σε αυτή την ερώτηση είναι ΝΑΙ ή ΟΧΙ. Αν η απάντηση είναι ΟΧΙ, η σημασία της είναι ότι το άτομο είναι Μικρότερο ή Ίσο με 18 χρόνια. Στις συνθήκες γενικά χρησιμοποιούμε τα συγκριτικά σύμβολα Συγκριτικά Σύμβολα Ισότητα = Μεγαλύτερο Μεγαλύτερο Ίσο = Μικρότερο Μικρότερο Ίσο = Άνισο Ανοίξτε ένα καινούργιο Αρχείο στην Visual Basic 4
(1) Δημιουργήστε μια Φόρμα (2) Αλλάξτε την ιδιότητα «Caption» της Φόρμας σε "SELECTION" (3) Δημιουργήστε μία ετικέτα «Label», αλλάξτε την τιμή της ιδιότητας «caption» σε "Παρακαλώ Πληκτρολόγησε την Ηλικία σου" (4) Δημιουργήστε ένα «text box». Διαγράψετε την λέξη «TEXT1» από την ιδιότητα «text» του εργαλείου «text box». (5) Δημιουργήστε ένα «κουμπί εντολών», αλλάξτε την ιδιότητα «caption» του κουμπιού σε "Επιβεβαίωση Ηλικίας" Η φόρμα σας θα έχει την μορφή που φαίνετε στο σχήμα 1 (6) Δημιουργήστε μια Καθολική Μεταβλητή με το όνομα AGE και τύπο «integer» (Ακέραιο) (7) Διπλοπατήστε (Double click) το «κουμπί εντολών» (command button) που δημιουργήσατε και γράψετε τις πιο κάτω εντολές στο παράθυρο κώδικα που ανοίγει: age = Val(Text1.Text) 'Η Εντολή Επιλογής If age < 18 Then End End If 5
Σχήμα 1 Οι πιο πάνω εντολές αντιγράφουν το τι έχει γράψει ο χρήστης μέσα στην ιδιότητα «text» του εργαλείου «text box» στην μεταβλητή «age». Εάν τώρα η τιμή που έχει αποθηκευτεί στην μεταβλητή «age» είναι μικρότερη από 18 (<) τότε «Σταμάτα το πρόγραμμα», (end). Στην Visual Basic, όταν δημιουργούμε μία δομή επιλογών (Διακλάδωσης) χρησιμοποιούμε την εντολή «IF», η οποία ακολουθείτε από την συνθήκη (age<18), και ακολούθως από την εντολή «THEN». Η δομή επιλογής στην Visual Basic χρειάζεται στο τέλος την εντολή «END IF» η οποία προσδιορίζει που τελειώνει η Συνθήκη και κατά προέκταση η δομή επιλογής. Το συντακτικό της εντολής «IF» - «THEN» - «END IF» αναλύεται στο σχήμα πιο κάτω. 2. Η Εντολή «IF THEN ELSE» Στην επόμενη άσκηση θα δούμε πως η Visual Basic αντιμετωπίζει περιπτώσεις με περισσότερες από μία επιλογές ή Συνθήκες στην ίδια Εντολή. Αυτού του τύπου η εντολή μπορεί να μεταφραστεί: 6
ΕΑΝ «ΣΥΝΘΗΚΗ» ΤΟΤΕ ΑΛΛΙΩΣ ΚΑΝΕ ΑΥΤΟ IF «ΣΥΝΘΗΚΗ» THEN ELSE ΚΑΝΕ ΑΥΤΟ ΤΕΛΟΣ ΕΑΝ ΚΑΝΕ ΚΑΤΙ ΑΛΛΟ Ας υποθέσουμε ότι κατασκευάζετε μια σελίδα στο διαδύκτιο, στην οποία θέλετε να επιτρέψετε την είσοδο μόνο σε άτομα άνω των 18 χρόνων. Αν ο χρήστης είναι κάτω των 18, τότε το σύστημα θα σταματά, αλλιώς θα μπαίνει στην κύρια σελίδα του προγράμματος. Αυτό θα επιτευχθεί με ελαφρές μεταβολές στον κώδικα που γράψαμε προηγουμένως. (8) Προσθέστε ένα εικονίδιο (είδωλο- Image, του χαμογελαστού προσώπου-(happy face) στην φόρμα σας. Αλλάξτε την ιδιότητα. εμφάνισης (visible) του εικονιδίου στην τιμή «FALSE». (9) Δημιουργήστε μια δεύτερη ετικέτα (Label) και αλλάξτε την ιδιότητα «caption» στην τιμή "Καλώς Ορίσατε στην Ιστοσελίδα μας". Ακολούθως αλλάξετε την ιδιότητα «visible» της ετικέτας στην τιμή «false». (10) Δημιουργήστε ένα δεύτερο «κουμπί επιλογών) (command button), και αλλάξτε την ιδιότητα «caption» στην τιμή "Νέα Επιβεβαίωσης Ηλικίας" (11) Δημιουργήστε ένα τρίτο κουμπί επιλογών, και αλλάξτε την ιδιότητα «caption» στην τιμή «ΕΞΟΔΟΣ». Τέλος αλλάξτε την ιδιότητα «Enable» στην τιμή «false». (12) Διπλοπατήστε το κουμπί εντολών «Νέα Πιστοποίηση Ηλικίας». Για να αλλάξουμε το χρώμα φόντου της φόρμας, να εμφανιστεί το εικονίδιο «χαρούμενο πρόσωπο», να εμφανίσουμε την δεύτερη ετικέτα (Label2) με το μήνυμα «Καλώς Ορίσατε στην Ιστοσελίδα μας» και να ενεργοποιήσουμε το κουμπί Εξόδου. θα πρέπει να γράψουμε τον πιο κάτω κώδικα: age = Val(Text1.Text) 'the selection statement If age < 21 Then 7
End If Αφού ο χρήστης πληκτρολογήσει την ηλικία του στο κουτί «TEXT1», πιστοποιεί εάν η τιμή αυτή είναι μικρότερη του 21. Εάν ΝΑΙ το πρόγραμμα σταματά την λειτουργία του, εάν ΟΧΙ τότε εμφανίζει το εικονίδιο, αλλάζει το χρώμα της φόρμας σε πράσινο. Η τιμή της ιδιότητας «Enabled» του κουμπιού εκτέλεσης «Έξοδος» (Το όνομα κουμπιού είναι Command3) σε «TRUE». Η ιδιότητα «BackColor» των ετικετών αλλάζει αναλόγως. Η ολοκληρωμένη φόρμα φαίνεται στο σχήμα 2 Κουμπί «Νέα Πιστοποίηση Ηλικίας» Το κουμπί «ΕΞΟΔΟΣ» είναι Σχήμα 2 Τρέξτε το πρόγραμμα σας, και γράψετε τον αριθμό 25 στο κουτί ηλικίας, μετά πατήστε το κουμπί εντολών «Νέα Πιστοποίηση Ηλικίας» (σχήμα 3) 8
Σχήμα 3 3. The MESSAGE BOX Ένα πολύ εύχρηστο εργαλείο της Visual Basic είναι το MESSAGE BOX. Αυτό το εργαλείο ανοίγει ένα μικρό παράθυρο στο οποίο ο χρήστης μπορεί να διαβάσει ένα μήνυμα από το σύστημα. Το συντακτικό για την δημιουργία ενός MESSAGE BOX είναι το ακόλουθο. MsgBox(«Μήνυμα που θα εμφανίζει»[, «Κουμπιά που θα υπάρχουν»]) Το MESSAGE BOX μας επιτρέπει να διαλέγουμε ποια κουμπιά να εμφανίζονται όταν το καλούμε. όταν γίνεται αυτό το MESSAGE BOX θα πρέπει να συνοδεύεται από μια μεταβλητή. Στην οποία θα αποθηκεύουμε την τιμή που θα επιστρέφει το MESSAGE BOX Μεταβλητή = MsgBox(«Μήνυμα που θα εμφανίζει»[, «Κουμπιά που θα υπάρχουν»]) 9
Εάν δεν επιλέξετε τύπο κουμπιών και το αφήσετε κενό το μέρος για τα κουμπιά δεν χρειάζεται να χρησιμοποιήσετε μεταβλητή. Το παραθυράκι που θα εμφανίζεται φαίνεται στο σχήμα MsgBox(«Μήνυμα που θα εμφανίζει») Σχήμα 4 MsgBox(«Χαίρεται» Τα κουμπιά που θα χρησιμοποιήσετε με το ανάλογο παράθυρο του MESSAGE BOX παρουσιάζονται στον πιο κάτω πίνακα. Constant Value Description vbokonly vbokcancel vbabortretryignore vbyesnocancel 10
vbyesno vbretrycancel Ανάλογα με το ποιο κουμπί θα επιλέξετε η ανάλογη τιμή επιστρέφεται από το MESSAGE BOX, και η τιμή αυτή αποθηκεύεται στην μεταβλητή Κουμπί Τιμή που Επιστρέφεται vbok 1 vbcancel 2 vbabort 3 vbretry 4 vbignore 5 vbyes 6 vbno 7 (13) Στην Φόρμα σας δημιουργήστε ένα «FRAME», αλλάξτε την ιδιότητα «caption» στην τιμή «Φύλο», επίσης την ιδιότητα «visible» σε «False». (14) Μέσα στο «frame Φύλο» δημιουργήστε δύο«κουμπιά επιλογών (option buttons)», αλλάξτε την ιδιότητα «caption» του πρώτου κουμπιού σε «Άντρας» και του δεύτερου σε «Γυναίκα».Επίσης αλλάξτε την ιδιότητα «visible» και των δύο κουμπιών σε «False». (15) Δημιουργήστε ένα δεύτερο «frame», και αλλάξτε την τιμή της ιδιότητας «caption» σε «Κατανομή Ηλικιών», επίσης την ιδιότητα «visible» σε «False (16) Στο «frameκατανομή Ηλικιών» δημιουργήστε δύο «κουμπιά επιλογής - option buttons». Αλλάξτε την τιμή της ιδιότητας «caption» του πρώτου σε «18-44» και του δευτέρου «Μεγαλύτερος των 45».Επίσης αλλάξτε την ιδιότητα «visible» σε «False». (17) Δημιουργήστε δύο νέα «command buttons». Αλλάξτε την ιδιότητα «caption» του πρώτου σε «Δημογραφικά», και του δευτέρου σε «Έλεγχος Δημογραφικών». Επίσης αλλάξετε την ιδιότητα «enabled» σε «false» 11
Διπλοπατήστε το κουμπί «Νέα Πιστοποίηση Ηλικίας» (σχήμα 3), και προσθέστε την γραμμή Command3.enabled=true Command4.enabled=true Το κουμπί «Δημογραφικά» θα εμφανίζει στην οθόνη ένα MessageBox, και θα ερωτά των χρήστη αν θέλει να φανερώσει την Ηλικία του και το Φύλο του. Εάν η απάντηση είναι «ΝΑΙ» τα τέσσερα κουμπιά επιλογής θα εμφανίζονται, Εάν όχι τότε ένα αποχαιρετιστήριο μήνυμα θα εμφανίζεται. (18) Διπλοπατήστε στο κουμπί «Δημογραφικά» και πληκτρολογήστε τον πιο κάτω Κώδικα Dim x As Integer x = MsgBox("Θα θέλαμε να μάθουμε περισσότερς Λεπτομέρειες για το άτομο σας. Θα θέλατε να μας τις δώσετε; ", vbyesno, "Demographics") If x = 6 Then Else MsgBox ("Παρακαλώ απαντήστε τις ερωτήσεις") Frame1.visible=True Frame2.visible=True Option1.Visible = True Option2.Visible = True Option3.Visible = True Option4.Visible = True Command5.Enabled = True MsgBox ("OK Χαίρεται") End If 12
Η εντολή «message box» χρησιμοποιεί τα κουμπιά «vbyesno» δηλαδή στο παραθυράκι θα εμφανίζονται τα κουμπιά «YES» και «NO». Εάν το κουμπί «yes» έχει επιλεχθεί τότε ο αριθμός 6 θα επιστραφεί στην μεταβλητή «Χ» και όλα τα κατάλληλα αντικείμενα να εμφανιστούν στην φόρμα, αν όχι τότε το μήνυμα «ΟΚ. Χαίρεται» θα εμφανιστεί σε ένα παραθυράκι. Το σημαντικό σημείο του κώδικα αυτού είναι η σύγκριση της τιμής που έχει αποθηκευτεί στην μεταβλητή «Χ» με τον αριθμό 6 Σχήμα 5 Το παραθυράκι που ερωτά τον χρήστη αν θέλει να δώσει πληροφορίες για το άτο μο του, θα είναι παρόμοιο με αυτό. Τα κουμπιά επιλογής είναι το «Yes» και το «No» Το «Yes» επιστρέφει την τιμή 6 και το «No» την τιμή 7 Απάντηση «No» Απάντηση «Yes Σχήμα 6 Εάν ο χρήστης επιλέξει το κουμπί «Yes» το επόμενο παραθυράκι εμφανίζεται 13
Option1 Option3 Option2 Option4 Command1 Command2 Command4 Command5 Command Σχήμα 7 Εμφάνιση αντικειμένων φόρμας, σε περίπτωση που χρήστης επιλέξει το κουμπί «Yes» Όπως αντιλαμβάνεστε τα ονόματα των κουμπιών δεν έχουν αλλαχθεί από εμάς έτσι χρησιμοποιούμε τα ονόματα που δόθηκαν αυτόματα από το σύστημα. Η ονομασία του κάθε κουμπιού φαίνεται στο σχήμα 7 4. Συνθήκες μέσα σε Συνθήκες Σε αυτό το μέρος του κεφαλαίου θα εξετάσουμε την δυνατότητα να δημιουργούμε Συνθήκες μέσα σε συνθήκες. Από το προηγούμενο παράδειγμα, μπορούμε να αναγνωρίσουμε 4 πιθανότητες για τα άτομα που μπορούν να χρησιμοποιήσουν το πρόγραμμα μας: (1) Κοπέλες ηλικίας 18 45 (2) Κοπέλες ηλικίας άνω των 45 ετών, (3) Άνδρες Ηλικίας 18-45, (4) Άνδρες Ηλικίας άνω των 45 ετών. Για κάθε κατηγορία χρηστών θα θέλαμε να εμφανίζεται ένα μήνυμα με την χρήση «MessageBox». Για την πρώτη κατηγορία θα θέλαμε να εμφανίσουμε το μήνυμα «Θα μπορούσατε να επισκεφθείτε τα καταστήματα Νεανικής Γυναικείας Μόδας στο κέντρο της πόλης»,για την δεύτερη κατηγορία το μήνυμα «Τα βιβλία μαγειρικής των καταστημάτων μας παρέχουν πληροφορίες για όλους τους τύπους Μαγειρικής», για την Τρίτη ομάδα «Μπορείτε να μαθαίνεται και να παρακολουθείτε όλα τα ΣΠΟΡ από τις γιγαντο-οθόνες των καταστημάτων μας». Τέλος για την τέταρτη κατηγορία, «Τα καταστήματα Κηπουρικής και Do It Yourself είναι στην διάθεση σας 24 ώρες το εικοσιτετράωρο» Η δημιουργία Συνθηκών μέσα σε Συνθήκες ακολουθεί την δομή που παρουσιάζεται στο σχήμα 5 14
ΟΧΙ ΝΑΙ Συνθή κη ΟΧΙ Συνθή κη ΝΑΙ ΟΧΙ Συνθή κη ΝΑΙ Σχήμα 5 Στην δική μας περίπτωση όπως είπαμε έχομε 4 συνδυασμούς. Το όνομα του κάθε κουμπιού επιλογής φαίνεται στο σχήμα 3 (Άνδρες option 1, Γυναίκες option 2, Ηλικία 18 44 option 3, Ηλικία άνω των 45 option 4) Οι πιθανοί συνδυασμοί σύμφωνα με την ονομασία των κουμπιών είναι οι εξής: (α) Άνδρες Ηλικίας 18-44 : Option 1 και Option 3 να είναι ΟΡΘΑ - TRUE (β) Άνδρες Ηλικίας Άνω των 45: Option 1 και Option 4 να είναι ΟΡΘΑ - TRUE (γ) Γυναίκες Ηλικίας 18-44: Option 2 και Option 3 να είναι ΟΡΘΑ - TRUE (δ) Γυναίκες Ηλικίας Άνω των 45: Option 2 και Option 4 να είναι ΟΡΘΑ - TRUE (19) Διπλοπατήστε το κουμπί «Έλεγχος Δημογραφικών» και πληκτρολογήστε τον πιο κάτω κώδικα If Option1.Value = True Then If Option3.Value = True Then MsgBox ("Μπορείτε να μαθαίνεται και να παρακολουθείτε όλα τα ΣΠΟΡ από τις γιγαντο-οθόνες των καταστημάτων μας ") Else 15
MsgBox ("Τα καταστήματα Κηπουρικής και Do It Yourself είναι στην διάθεση σας 24 ώρες το εικοσιτετράωρο ") Else End If If Option3.Value = True Then MsgBox ("Θα μπορούσατε να επισκεφθείτε τα καταστήματα Νεανικής Γυναικείας Μόδας στο κέντρο της πόλης ") Else MsgBox ("Τα βιβλία μαγειρικής των καταστημάτων μας παρέχουν πληροφορίες για όλους τους τύπους Μαγειρικής ") End If End If Ο κώδικας εδώ αρχίζει, με το να ελέγχει αν η τιμή του κουμπιού επιλογής 1 (Option 1) είναι Ορθή (TRUE) δηλαδή επιλέχθηκε. Αν ναι συνεχίζει με το να ελέγξει αν το τρίτο κουμπί επιλογής (Option 3) έχει επιλεχθεί, και αν ναι, εμφανίζει το κατάλληλο μήνυμα. Αν το τρίτο κουμπί επιλογής (Option 3) δεν έχει επιλεχθεί, εμφανίζει κάποιο άλλο μήνυμα. Αν τώρα το κουμπί επιλογής 1 (Option 1) δεν έχει επιλεχθεί, σημαίνει ότι το κουμπί επιλογής 2 (Option 2) έχει επιλεχθεί. Ελέγχουμε πάλι σε ποια κατηγορία ηλικίας ανήκουν οι χρήστες και τα κατάλληλα μηνύματα εμφανίζονται. Οι τέσσερις συνδυασμοί εμφανίζονται στα σχήματα 6-9 Σχήμα 6 16
(α) Άνδρες Ηλικίας 18-44 : Option 1 και Option 3 να είναι ΟΡΘΑ - TRUE Σχήμα 7 (β) Άνδρες Ηλικίας Άνω των 45: Option 1 και Option 4 να είναι ΟΡΘΑ - TRUE Σχήμα 8 17
(γ) Γυναίκες Ηλικίας 18-44: Option 2 και Option 3 να είναι ΟΡΘΑ - TRUE Σχήμα 9 (δ) Γυναίκες Ηλικίας Άνω των 45: Option 2 και Option 4 να είναι ΟΡΘΑ - TRUE (20) Αποθηκεύστε την φόρμα σας με το όνομα «SimpleIF» και το Project επίσης με το όνομα «SimpleIF» 5. Παράρτημα Σημείωμα Αναφοράς. Copyright ΤΕΙ Δυτικής Μακεδονίας, ΚΥΡΟΠΟΥΛΟΣ ΚΩΝΣΤΑΝΤΙΝΟΣ. «ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ Η/Υ». Έκδοση: 1.0. Κοζάνη 2015. Σημείωμα Αδειοδότησης. Το παρόν υλικό διατίθεται με τους όρους της άδειας χρήσης Creative Commons Αναφορά, Μη Εμπορική Χρήση Παρόμοια Διανομή 4.0 [1] ή μεταγενέστερη, Διεθνής Έκδοση. Εξαιρούνται τα αυτοτελή έργα τρίτων π.χ. φωτογραφίες, διαγράμματα κ.λ.π., τα οποία εμπεριέχονται σε αυτό και τα οποία αναφέρονται μαζί με τους όρους χρήσης τους στο «Σημείωμα Χρήσης Έργων Τρίτων». [1] http://creativecommons.org/licenses/by-nc-sa/4.0/ Ως Μη Εμπορική ορίζεται η χρήση: 18
που δεν περιλαμβάνει άμεσο ή έμμεσο οικονομικό όφελος από την χρήση του έργου, για το διανομέα του έργου και αδειοδόχο. που δεν περιλαμβάνει οικονομική συναλλαγή ως προϋπόθεση για τη χρήση ή πρόσβαση στο έργο. που δεν προσπορίζει στο διανομέα του έργου και αδειοδόχο έμμεσο οικονομικό όφελος (π.χ. διαφημίσεις) από την προβολή του έργου σε διαδικτυακό τόπο. Ο δικαιούχος μπορεί να παρέχει στον αδειοδόχο ξεχωριστή άδεια να χρησιμοποιεί το έργο για εμπορική χρήση, εφόσον αυτό του ζητηθεί. Διατήρηση Σημειωμάτων. Οποιαδήποτε αναπαραγωγή ή διασκευή του υλικού θα πρέπει να συμπεριλαμβάνει: το Σημείωμα Αναφοράς. το Σημείωμα Αδειοδότησης. τη δήλωση Διατήρησης Σημειωμάτων. το Σημείωμα Χρήσης Έργων Τρίτων (εφόσον υπάρχει). μαζί με τους συνοδευόμενους υπερσυνδέσμους. 19