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