Βρόχος Επανάληψης στην Pascal

Βρόχος Επανάληψης στην Pascal

Οι Βρόχοι (Loops)

Ο βρόχος (loop) είναι η συνεχής επανάληψη μίας μόνο εντολής ή και μιας ομάδας εντολών μέχρις ότου να ισχύσει μια συνθήκη (condition).
Οι βρόχοι στην Pascal είναι τριών ειδών:

  1. Η επανάληψη ενός βρόχου για έναν καθορισμένο αριθμό φορών.
  2. Ο έλεγχος μιας λογικής έκφρασης (συνθήκης) αρχικά και αν αυτή είναι αληθής (true), τότε ακολουθεί η εκτέλεση ενός βρόχου.
  3. Η εκτέλεση ενός βρόχου για μία τουλάχιστον φορά αρχικά και μετά ακολουθεί ο έλεγχος μιας λογικής έκφρασης (συνθήκης).

Ο Βρόχος For

Στην Pascal, η επανάληψη ενός βρόχου για έναν καθορισμένο αριθμό φορών γίνεται με την εντολή for, η γενική σύνταξη της οποίας είναι η εξής :
for index := ΑρχικήΧαμηλήΤιμή to ΤελικήΥψηλήΤιμή do
εντολή;
Η τιμή της μεταβλητής του δείκτη (index variable) θα πρέπει να είναι ενός βαθμωτού (ordinal) τύπου δεδομένων. Μπορούμε να χρησιμοποιήσουμε τον δείκτη σε υπολογισμούς μέσα στο σώμα ενός βρόχου, αλλά δεν πρέπει να αλλάξουμε την τιμή του.
Ακολουθεί ένα παράδειγμα χρήσης του δείκτη (index) :

sum := 0;
for count := 1 to 100 do
sum := sum + count;

Σ’ έναν βρόχο for-to-do, η αρχική τιμή θα πρέπει να είναι μικρότερη από την τελική τιμή, διαφορετικά ο βρόχος δεν θα εκτελεσθεί ποτέ.
Αν θέλουμε να μετρήσουμε ανάποδα, θα πρέπει να χρησιμοποιήσουμε τον βρόχο for-downto-do, ο οποίος έχει την εξής σύνταξη :

for index := ΑρχικήΥψηλήΤιμή downto ΤελικήΧαμηλήΤιμή do
εντολή;

Στην Pascal, με τον βρόχο for μπορούμε να έχουμε βήμα μόνο κατά 1.

program forLoop;
var
    a: integer;
begin
    for a := 10 to 20 do
    begin
        writeln('value of a: ', a);
    end;
end.

Ο Βρόχος While … Do

Ο βρόχος while … do έχει την εξής σύνταξη :

while Λογική Έκφραση do
εντολή;

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

 a := 5;
 while a < 6 do
    writeln (a);

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

a := 5;
while a < 6 do begin
   writeln (a);
   a := a + 1
end;

Ο βρόχος while … do είναι γνωστός και ως pretest loop επειδή η συνθήκη ελέγχεται πριν εκτελεσθεί έστω και μία φορά το σώμα του βρόχου.
Αυτό σημαίνει ότι αν η συνθήκη (λογική έκφραση) είναι ψευδής (false) από την αρχή, το σώμα του βρόχου while δεν θα εκτελεσθεί ποτέ.

 program whileLoop;
 var
     a: integer;
 begin
     a := 10;
     while a < 20 do
     begin
         writeln('value of a: ', a);
         a := a + 1;
     end;
 end.

Απάντηση

Αυτός ο ιστότοπος χρησιμοποιεί το Akismet για να μειώσει τα ανεπιθύμητα σχόλια. Μάθετε πώς υφίστανται επεξεργασία τα δεδομένα των σχολίων σας.