Δευτέρα, 6 Οκτωβρίου 2014

Οι βρόγχοι στον προγραμματισμό

Οι επαναληπτικές διαδικασίες (βρόγχοι) στον προγραμματισμό μας βοηθούν στην εκτέλεση τμημάτων του κώδικα περισσότερες από μια φορές. Οι διαδικασίες αυτές βασίζονται σε κάποια συνθήκη επανάληψης και στην περίπτωση που γνωρίζουμε τον ακριβή αριθμό επαναλήψεων ονομάζονται σταθερές ενώ όταν δεν τον γνωρίζουμε ονομάζονται μεταβλητές.

Όσον αφορά καθορισμένο αριθμό επαναλήψεων έχουμε την εξής συνθήκη:
ForNext

Σύνταξη :

For’ ‘(μεταβλητή )’ ‘=’ ‘(αρχή)’ ‘to’ ‘(τέλος)’ [βήμα]
Κώδικας προς εκτέλεση
‘Next (μεταβλητή)’

 Ας δούμε μερικά παραδείγματα για να την κατανοήσουμε καλύτερα.

For i = 1 To 10
Debug.Print i + 2
Next i

Ας δούμε τι κάνει η κάθε σειρά.
For i = 1 To 10 à Ξεκινάει ο βρόγχος (διαδικασία επανάληψης). Η μεταβλητή i ξεκινάει από την τιμή 1 και καταλήγει στο 10 αυξάνοντας κάθε φορά κατά 1 (βήμα), όταν φτάσει στην Next. Όταν παραλείπεται το [βήμα] θεωρείται μονάδα.
Debug.Print i + 2 à Εκτυπώνει την τιμή του i αυξημένη κατά 2.
Next i à Η τιμή της μεταβλητής αυξάνεται κατά την τιμή του βήματος (εδώ θεωρείται μονάδα).

Μπορούμε επίσης να έχουμε έναν βρόγχο μέσα σε έναν άλλο βρόγχο, όπως το επόμενο παράδειγμα.

For j = 1 To 100
    For k = 1 To 50 Step 5
        Debug.Print k, j * k, k + j
    Next k
Next j

For j = 1 To 100 à Ξεκινάει ο βρόγχος του j μέχρι η τιμή του να γίνει 100 αυξάνοντας κατά 1 σε κάθε επανάληψη (βήμα).
For k = 1 To 50 Step 5 à Ξεκινάει ο βρόγχος του k μέχρι η τιμή του να γίνει 50 αυξάνοντας κατά 5 σε κάθε επανάληψη (βήμα).
Debug.Print k, j * k, k + j à Εκτυπώνει τις τιμές του k, j*k, k+j
Next k à Αυξάνει την τιμή του k κατά 5. Όταν η τιμή του k γίνει μεγαλύτερη του 50 τότε η επαναληπτική διαδικασία του k σταματάει.
Next j à Αυξάνει την τιμή του j κατά 1. Όταν η τιμή του j γίνει μεγαλύτερη του 100 τότε τελειώνει ο βρόγχος και συνεχίζονται οι επόμενες εντολές του προγράμματος.


Για βρόγχους μεταβλητής επαναληπτικότητας έχουμε τις εξής συνθήκες:

§  While … Wend

Σύνταξη

While’ ‘(συνθήκη)
Κώδικας προς εκτέλεση
‘Wend’

Παράδειγμα με μεταβλητό κύκλο επαναλήψεων

x = 10
While x >= 0
x = x - 2
Wend

Ας δούμε την κάθε σειρά
x = 10 à Θέτουμε στην μεταβλητή x την τιμή 10.
While x >= 0 à Η επανάληψη συνεχίζεται για όσο το x είναι μεγαλύτερο του ή ίσο του 0
Debug.Print x à Εκτυπώνει το x
x = x – 2 à Μειώνει την τιμή του x κατά 2
Wend à Επιστρέφει στην αρχική συνθήκη (x>=0) για να την ελέγξει ξανά.

Παρόμοιες διαδικασίες μπορούν να εκτελούνται επ’ αόριστον ή να μην εκτελούνται και καθόλου.

§  Do While … Loop

Σύνταξη:

‘Do’ ‘While’ ‘(συνθήκη)’
Κώδικας προς εκτέλεση
Loop

Το αποτέλεσμα είναι ακριβώς το ίδιο με την WhileWend και το μόνο που αλλάζει είναι ο τρόπος σύνταξης.


§  Do Until … Loop


Σύνταξη:

Do’ ‘Until’ ‘(συνθήκη)’
Κώδικας προς εκτέλεση
Loop

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

Παράδειγμα:

x = 1
Do Until x >= 20
Debug.Print x
x = x + 2
Loop

Η διαδικασία σταματάει όταν η τιμή του x ξεπεράσει ή γίνει ίση με το 20.

Οι παρακάτω DoLoop έχουν και εναλλακτικό τρόπο σύνταξης.

Do
Κώδικας προς εκτέλεση
Loop’ ‘While’ ‘(συνθήκη)’

ή

Do
Κώδικας προς εκτέλεση
Loop’ ‘Until’ ‘(συνθήκη)’

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

Πηγή: Οδηγός προγραμματισμού στο περιβάλλον της visual basic 6, Θεοφάνης Γεωργάκης, Κωνσταντίνος Κατσάμπαλος 

Δεν υπάρχουν σχόλια:

Δημοσίευση σχολίου