menuuuu

Δομή Επανάληψης

Η Δομή της Επανάληψης εφαρμόζεται στις περιπτώσεις όπου μία ακολουθία εντολών πρέπει να εφαρμοσθεί σε ένα σύνολο περιπτώσεων που έχουν κάτι κοινό. Το τμήμα του Αλγόριθμου που επαναλαμβάνεται αποκαλείται  Βρόχος

Κατηγοριες Δομης Επαναληψης

Οσο ...... επανάλαβε

Η εντολή Όσο ..... επανάλαβε χρησιμοποιείται όταν δεν είναι γνωστό εξαρχής πόσες φορές θα εκτελεσθεί η επανάληψη. Με αυτή την δομή επανάληψης μπορούν να εκφραστούν όλες οι επαναλήψεις που χρειάζονται σε ένα αλγόριθμο. 
Η εκτέλεση της ξεκινάει ελέγχοντας μια συνθήκη που βρίσκεται στην αρχή της. Αν η συνθήκη αυτή είναι Αληθής τότε εκτελούνται οι εντολές που βρίσκονται μεταξύ του Όσο ..... επανάλαβε και του Τέλος_επανάληψης. Αν η συνθήκη γίνει Ψευδής τότε τερματίζεται η επανάληψη και εκτελούνται οι εντολές που υπάρχουν μετά το Τέλος_επανάληψης.
Η εντολή μπορεί να μην εκτελεσθεί καμία φορά στην περίπτωση που η συνθήκη της επανάληψης είναι εξαρχής Ψευδής.
Αν η συνθήκη της επανάληψης δεν πάρει ποτέ την τιμή Ψευδής τότε δεν θα τερματιστεί η επανάληψη. Στην περίπτωση αυτή έχουμε παραβίαση του κανόνα της περατότητας και ο βρόχος ονομάζεται Ατέρμων.


Παράδειγμα

Να γίνει αλγόριθμος ο οποίος να διαβάζει αριθμούς, να υπολογίζει και να εκτυπώνει το άθροισμα τους. Η διαδικασία να επαναλαμβάνεται μέχρι να διαβασθεί ο αριθμός μηδέν






Αρχή_επανάληψης .... Μέχρις_ότου

Η εντολή Αρχή_επανάληψης ...... Μέχρις_ότου χρησιμοποιείται όταν δεν είναι γνωστό εξαρχής πόσες φορές θα εκτελεσθεί η επανάληψη. Πρώτα εκτελούνται οι εντολές που βρίσκονται μεταξύ του Αρχή_επανάληψης και του Μέχρις_ότου και στην συνέχεια ελέγχεται η συνθήκη τερματισμού της. Αυτό έχει σαν αποτέλεσμα οι εντολές να εκτελεστούν τουλάχιστον μια φορά. 
Οι εντολές αυτές εκτελούνται συνέχεια όσο η συνθήκη είναι Ψευδής. Όταν η συνθήκη γίνει Αληθής τότε τερματίζεται η επανάληψη και εκτελούνται οι εντολές που υπάρχουν μετά το Μέχρις_ότου.
Αν η συνθήκη της επανάληψης δεν πάρει ποτέ την τιμή Αληθής τότε δεν θα τερματιστεί η επανάληψη. Στην περίπτωση αυτή έχουμε παραβίαση του κανόνα της περατότητας και ο βρόχος ονομάζεται Ατέρμων.


Παράδειγμα

Να γίνει αλγόριθμος ο οποίος να διαβάζει αριθμούς, να βρίσκει και να εμφανίζει το άθροισμά τους. Η διαδικασία να επαναλαμβάνεται μέχρι το άθροισμα τους ξεπεράσει το 1000



Για ... από ... μέχρι .. με_βήμα

Η εντολή Για ... από ... μέχρι ... με_βήμα χρησιμοποιείται αποκλειστικά όταν γνωρίζουμε πόσες θα επαναληφθεί η εκτέλεση κάποιων εντολών. 
Η εντολή αυτή χειρίζεται μια μεταβλητή στην οποία αρχικά εκχωρείται η αρχική τιμή. Η τιμή της μεταβλητής συγκρίνεται με την τελική τιμή και αν είναι μικρότερη ή ίση αυτής, τότε εκτελούνται οι εντολές που βρίσκονται ανάμεσα στο Για και το Τέλος_επανάληψης
Μετά την εκτέλεση των εντολών η μεταβλητή αυξάνεται κατά την τιμή που ορίζει το βήμα. Αν η νέα τιμή είναι μικρότερη ή ίση της τελικής τιμής, τότε ο βρόχος εκτελείται ξανά.
Η διαδικασία αυτή επαναλαμβάνεται συνεχώς, έως ότου η τιμή της μεταβλητής να γίνει μεγαλύτερη από την τελική τιμή, όποτε τερματίζεται η επανάληψη και εκτελούνται οι εντολές που βρίσκονται μετά το Τέλος_επανάληψης.

Παρατηρήσεις
  • Όταν το Βήμα είναι 1 τότε η φράση με_βήμα 1 παραλείπεται.
  • Το Βήμα μπορεί να έχει αρνητική τιμή με την προϋπόθεση ότι η αρχική τιμή είναι μεγαλύτερη της τελικής τιμής.
  • Το Βήμα δεν μπορεί να έχει την τιμή 0 γιατί τότε η εντολή θα εκτελείται επ' άπειρον (Ατέρμων Βρόχος)
  • Η αρχική τιμή, η τελική τιμή και το βήμα δεν είναι απαραίτητο να έχουν ακέραιες τιμές.
  • Κάθε επανάληψη που εκτελείται με μια εντολή Για .. από ... μέχρι μπορεί να υλοποιηθεί και με την χρήση των βασικών εντολών επανάληψης Όσο ... επανάλαβε και Αρχή_επανάληψης .... Μέχρις_ότου

Παράδειγμα

Να γίνει αλγόριθμος ο οποίος να διαβάσει 50 αριθμούς και να εμφανίσει πόσοι από αυτούς ήταν μεγαλύτεροι ή ίσοι του μηδενός και πόσοι μικρότεροι του μηδενός


Για να φτιάξουμε το διάγραμμα ροής θα πρέπει να μετατρέψουμε την εντολή Για ... από ... μέχρι σε εντολή Όσο ... επανάλαβε









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

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