Τελεστές σύγκρισης, λογικής και επαναλήψεις
Διομήδης Σπινέλλης
Τμήμα Διοικητικής Επιστήμης και Τεχνολογίας
Οικονομικό Πανεπιστήμιο Αθηνών
dds@aueb.gr
Τελεστές σύγκρισης
Οι αριθμητικές τιμές της Visual Basic μπορούν να συγκριθούν με τη
χρήση των παρακάτω τελεστών:
Σύγκριση | Τελεστής της Visual Basic |
Ίσο | = |
Διάφορο | <> |
Μικρότερο | < |
Μεγαλύτερο | > |
Μικρότερο ή ίσο | <= |
Μεγαλύτερο ή ίσο | >= |
- Για τον υπολογισμό μιας τιμής, πρώτα εκτελούνται οι πράξεις με την
παρακάτω σειρά:
- ^
- * /
- mod
- + -
- = <>. < > <= >=
- Η παραπάνω σειρά μπορεί να μεταβληθεί με τη χρήση παρενθέσεων.
- Το αποτέλεσμα της κάθε σύγκρισης είναι
αληθές (True) αν το αποτέλεσμα της σύγκρισης είναι
αληθές και
ψευδές (False) αν το αποτέλεσμα της σύγκρισης είναι
ψευδές.
- Οι τιμές True και False είναι λογικές σταθερές.
Παραδείγματα
MsgBox 1 + 1 = 2 ' Εμφανίζει True
MsgBox 1 > 2 ' Εμφανίζει False
MsgBox 5 <> 5 ' Εμφανίζει False
MsgBox 1 <= 5 ' Εμφανίζει True
MsgBox 1 <= 1 ' Εμφανίζει True
MsgBox 1 <= 0 ' Εμφανίζει False
Βρόχοι με την εντολή do while
- Μπορούμε να επαναλάβουμε την εκτέλεση ορισμένων εντολών με τη
δομή ελέγχου (control structure) do while ... loop.
- Αυτή χρησιμοποιείται ως εξής:
do while συνθήκη
εντολή
εντολή
...
loop
- Οι εντολές που ακολουθούν το do while εκτελούνται όσο η συνθήκη είναι
αληθής.
Παράδειγμα (εμφανίζει στην οθόνη τους αριθμούς από το 0 μέχρι το 4):
Sub main()
Dim i As Integer
i = 0
Do While i < 5
MsgBox i
i = i + 1
Loop
End Sub
- Αν η συνθήκη δεν είναι αληθής όταν εκτελεστεί το do while για πρώτη
φορά τότε οι εντολές που περιέχονται σε αυτό δε θα εκτελεστούν.
- Η δομή ελέγχου do while ... loop μπορεί να χρησιμοποιηθεί οπουδήποτε θα μπορούσε
και οποιαδήποτε άλλη εντολή (π.χ. η MsgBox) δηλαδή ακόμα και μέσα σε μια άλλη
do while.
Το παρακάτω παράδειγμα εμφανίζει στην οθόνη την προπαίδεια των αριθμών
από το 2 μέχρι το 5.
Sub main()
Dim i As Integer
Dim j As Integer
i = 2
Do While i <= 5
j = i
Do While j <= 5
MsgBox Str(i) + " * " + Str(j) + " = " + Str(i * j)
j = j + 1
Loop
i = i + 1
Loop
End Sub
Βρόχοι με την εντολή loop while
Προσδιορισμός της συνθήκης με τη χρήση της Until
- Μερικές φορές είναι πιο φυσικό να εκφράσουμε τη συνθήκη που
τερματίζει το βρόχο αντί για τη συνθήκη που πρέπει να είναι αληθής
για να εκτελείται ο βρόχος.
- Και οι δύο δομές ελέγχου που είδαμε μπορούν να διατυπωθούν με τη
χρήση του προσδιορισμού "Until συνθήκη" αντί για τον προσδιορισμό
"While συνθήκη".
- Έτσι, τα παραδείγματα που έχουμε δει μπορούν να γραφτούν και ως
εξής:
Παράδειγμα do while ... loop
(εμφανίζει στην οθόνη τους αριθμούς από το 0 μέχρι το 4):
Sub main()
Dim i As Integer
i = 0
Do Until i >= 5
MsgBox i
i = i + 1
Loop
End Sub
Παράδειγμα do ... loop while
(θέλουμε ο χρήστης να εισάγει έναν αριθμό μικρότερο του 10):
Sub main()
Dim Number As Integer
Do
Number = InputBox("Δώστε έναν αριθμό μικρότερο του 10")
Loop Until Number < 10
MsgBox "Δώσατε " + Str(Number)
End Sub
Λογικοί τελεστές
Τα λογικά αποτελέσματα στη Visual Basic μπορούν να συνδυαστούν με τη
χρήση των παρακάτω λογικών τελεστών:
- Τα αποτελέσματα χρήσης των τελεστών παριστάνονται από τους
παρακάτω πίνακες τιμών:
A | B | A And B | A Or B |
False | False | False | False |
False | True | False | True |
True | False | False | True |
True | True | True | True |
A | B | A Xor B | A Eqv B |
False | False | False | True |
False | True | True | False |
True | False | True | False |
True | True | False | True |
A | B | A Imp B |
False | False | True |
False | True | True |
True | False | False |
True | True | True |
A | Not A |
False | True |
True | False |
- Η προτεραιότητα υπολογισμού των λογικών τελεστών ορίζεται ως εξής:
- Not
- And
- Or
- Xor
- Eqv
- Imp
Παράδειγμα
Ο παρακάτω βρόχος μπορεί να αποτελεί τμήμα του προγράμματος
ελέγχου ενός τραπεζικού μηχανήματος αυτομάτων συναλλαγών:
Dim PIN As Integer
Dim Tries As Integer
Const CorrectPIN = 1234
Const MaxTries = 4
Tries = 0
Do
PIN = InputBox("Πληκτρολογήστε τον κωδικό εισόδου")
Tries = Tries + 1
Loop Until PIN = CorrectPIN Or Tries = MaxTries
Με τον προσδιορισμό Const μπορούμε να αντιστοιχούμε ονόματα σε
σταθερές τιμές.
Με τον τρόπο αυτό το πρόγραμμα διαβάζεται και συντηρείται ευκολότερα.
Λογικές τιμές
Ασκήσεις
Βρόχοι
- Να γράψετε ένα πρόγραμμα που να υπολογίζει τη συνολική απόδοση
μιας κατάθεσης με ετήσιο επιτόκιο που μεταβάλλεται κάθε χρόνο.
- Στην αρχή το πρόγραμμα ζητάει από το χρήστη
- το αρxικό ποσό και
- τον αριθμό των περιόδων (ετών).
- Στη συνέχεια ζητάει το επιτόκιο που ισχύει για κάθε περίοδο.
- Στο τέλος εμφανίζει το τελικό ποσό της κατάθεσης.