Σάββατο 15 Αυγούστου 2009

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

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

Η δομή επανάληψης χρησιμοποιείται με τρεις διαφορετικές εκδοχές (μορφές): την ’’Όσο…Επανάλαβε’’, τη ’’Μέχρις_Ότου’’ και τη ’’Για…Από…Μέχρι’’.


Η δομή ’’Όσο…Επανάλαβε’’ συντάσσεται ως εξής:


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

Παράδειγμα

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

Λύση

Aρχή
!Αρχικοποίηση τιμής αθροιστή
sum <— 0
! Είσοδος πρώτης τιμής
Γράψε 'Δώσε τιμή: '
Διάβασε t
!Επαναληπτική είσοδος τιμών και υπολογισμός αθροίσματος
Όσο t > 0 επανάλαβε
sum <— sum + t
Γράψε 'Δώσε τιμή: '
Διάβασε t
τελος_επαναληψης
!Έξοδος αποτελέσματος
Γράψε 'Άθροισμα : ' , sum
Τέλος

Δείτε το σχετικό video:



Η δομή ’’Μέχρις_Ότου’’ συντάσσεται ως εξής:


Η δομή Μέχρις_Ότου τερματίζει την εκτέλεση ενός βρόχου όταν μια συνθήκη γίνει αληθής. Το πλήθος των επαναλή- ψεων είναι άγνωστο αρχικά. Η λειτουργία της δομής αυτής περιγράφεται ως εξής:
  • Εκτελείται αρχικά η ομάδα εντολών που βρίσκεται μέσα στον βρόχο.
  • Εφόσον η συνθήκη είναι ψευδής επαναλαμβάνεται η εκτέλεση της ομάδας εντολών.
  • Όταν η συνθήκη γίνει αληθής η επανάληψη σταματάει και ο αλγόριθμος συνεχίζει με την εντολή που ακολου- θεί μετά την έκφραση Μέχρις_Ότου.
Παράδειγμα

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

Σ = 2 + 4 + 6 + 8+ ... + n

Λύση



Δείτε το σχετικό video:




Η δομή ’’Για…Από…Μέχρι’’ συντάσσεται ως εξής:



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


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

Παράδειγμα

Να γίνει αλγόριθμος υπολογισμού της παράστασης
Ρ = ι^κ
όπου ι και κ θετικοί ακέραιοι, χωρίς τη χρήση του τελεστή δύναμης (Λ).

Λύση


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

Αν ακολουθήσουμε τα παρακάτω βήματα, θα φτάσουμε στον υπολογισμό της δύναμης:


Βλέπουμε δηλαδή ότι σε κάθε βήμα από το 2° μέχρι και το τελευταίο, πολλαπλασιάζουμε το περιεχόμενο της μεταβλητής Ρ με το περιεχόμενο μιας μεταβλητής ι. Αρκεί λοιπόν μια επαναληπτική δομή που σε κάθε της επανάληψη να πολλαπλασιάζεται το Ρ με το ι. Από το σχήμα παρατηρούμε ότι η επαναληπτική δομή πρέπει να κάνει κ επαναλήψεις. Έτσι χρησιμοποιώντας την επαναληπτική δομή για...από...μέχρι για κ επαναλήψεις προκύπτει ο ακόλουθος αλγόριθμος:


Αρχή
διάβασε ι, κ
Ρ <- 1 για j από 1 μέχρι κ με βήμα 1 Ρ
<- Ρ * ι
τέλος επανάληψης
γράψε Ρ
Τέλος


Δείτε τη σχετική παρουσίαση

Για τη σύγκριση των τριών παραπάνω δομών δείτε τα παρακάτω παραδείγματα:

Ας θεωρήσουμε την περίπτωση ενός εργάτη που τοποθετεί πλακάκια δαπέδου. Έστω ότι για την κάλυψη ενός δωματίου χρειάζονται 100 πλακάκια. Η διαδικασία αυτή θα μπορούσε να περιγραφεί ως εξής με τις τρεις δομές επανάληψης:

i) Κάλυψη δαπέδου με πλακάκια (1)
Όσο δεν έχει τελειώσει η τοποθέτηση επαναλαμβάνω τα εξής:
  1. Παίρνω λάσπη από την παλέτα.
  2. Απλώνω τη λάσπη στο δάπεδο.
  3. Παίρνω ένα πλακάκι από το σωρό.
  4. Τοποθετώ το πλακάκι στο δάπεδο.
Κτυπώ το πλακάκι ώστε να στοιχηθεί σωστά.
Ελέγχω αν έχει τελειώσει η τοποθέτηση. Αν δεν έχει τελειώσει επιστρέφω στο βήμα 1.

Κάντε κλικ στην εικόνα:


ii) Κάλυψη δαπέδου με πλακάκια (2)
Επαναλαμβάνω τα εξής:
  1. Παίρνω λάσπη από την παλέτα.
  2. Απλώνω τη λάσπη στο δάπεδο.
  3. Παίρνω ένα πλακάκι από το σωρό.
  4. Τοποθετώ το πλακάκι στο δάπεδο.
  5. Κτυπώ το πλακάκι ώστε να στοιχηθεί σωστά. Μέχρι να τελειώσει η τοποθέτηση.

Κάντε κλικ στην εικόνα:


iii) Κάλυψη δαπέδου με πλακάκια (3)
Επαναλαμβάνω 100 φορές (από το 1° μέχρι το 100° πλακάκι) τα εξής:
  1. Παίρνω λάσπη από την παλέτα.
  2. Απλώνω τη λάσπη στο δάπεδο.
  3. Παίρνω ένα πλακάκι από το σωρό.
  4. Τοποθετώ το πλακάκι στο δάπεδο.
  5. Κτυπώ το πλακάκι ώστε να στοιχηθεί σωστά.

Κάντε κλικ στην εικόνα:


Δείτε το 3ο φύλλο εργασίας

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

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