Τελεστές σύγκρισης, λογικής και επαναλήψεις
Διομήδης Σπινέλλης
Τμήμα Διοικητικής Επιστήμης και Τεχνολογίας
Οικονομικό Πανεπιστήμιο Αθηνών
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ικό ποσό και
-  τον αριθμό των περιόδων (ετών).
 
-  Στη συνέχεια ζητάει το επιτόκιο που ισχύει για κάθε περίοδο.
-  Στο τέλος εμφανίζει το τελικό ποσό της κατάθεσης.