ΑΕΠΠ - Δομή Επανάληψης (Μετατροπές)
-
Upload
konstantinos-paraskevopoulos -
Category
Documents
-
view
1.606 -
download
11
description
Transcript of ΑΕΠΠ - Δομή Επανάληψης (Μετατροπές)
12/1/2012
1
Κεφάλαιο 2 + Κεφάλαιο 8 (αναφορές)
Μετατροπές από τη µια δοµή επανάληψης σε άλλη ισοδύναµή της
Ανάπτυξη Εφαρµογών σε Προγραµµατιστικό Περιβάλλον
Γ Λυκείου – Τεχνολογική Κατεύθυνση
Κωνσταντίνος Παρασκευόπουλος
Ανάπτυξη Εφαρµογών σε Προγραµµατιστικό Περιβάλλον
Γ Λυκείου – Τεχνολογική Κατεύθυνση
Κωνσταντίνος Παρασκευόπουλος
Ελληνικό Κολλέγιο
Θεσσαλονίκης
Ελληνικό Κολλέγιο
Θεσσαλονίκης
Μετατροπή της επαναληπτικής δοµήςγια…από…µέχρι στη δοµή όσο…επανάλαβε
Κωνσταντίνος Παρασκευόπουλος - Ελληνικό Κολλέγιο Θεσσαλονίκης
Η µετατροπή της δοµής για…από…µέχρι τη δοµή όσο…επανάλαβε έχει ως εξής:
Για µτβ από ατ µέχρι ττ µε_βήµα β
Όµαδα εντολών
Τέλος_επανάληψης
µτβ ← ατ
Όσο µτβ ≤ ττ επανάλαβε
Οµάδα εντολών
µτβ ← µτβ + β
Τέλος_επανάληψης
Περίπτωση 1 – Βήµα µεταβολής θετικό
Για µτβ από ατ µέχρι ττ µε_βήµα - β
Όµαδα εντολών
Τέλος_επανάληψης
µτβ ← ατ
Όσο µτβ ≥ ττ επανάλαβε
Οµάδα εντολών
µτβ ← µτβ + β
Τέλος_επανάληψης
Περίπτωση 2 – Βήµα µεταβολής αρνητικό
12/1/2012
2
Παράδειγµα µετατροπήςγια…από…µέχρι στη δοµή όσο…επανάλαβε
Κωνσταντίνος Παρασκευόπουλος - Ελληνικό Κολλέγιο Θεσσαλονίκης
Τα επόµενα τµήµατα αλγορίθµων να γραφούν ξανά χρησιµοποιώντας την επαναληπτική δοµή όσο…επανάλαβε.
x ← 1
i ← 1
Όσο i ≤ 50 επανάλαβε
x ← x – 1
i ← i + 3
Τέλος_επανάληψης
x ← 1
Για i από 1 µέχρι 50 µε_βήµα 3
x ← x - 1
Τέλος_επανάληψης
1.
x ← 100
i ← 9
Όσο i ≥ -5 επανάλαβε
x ← x – 1
i ← i - 3
Τέλος_επανάληψης
X ← 100
Για i από 9 µέχρι -5 µε_βήµα -3
x ← x - 1
Τέλος_επανάληψης
2.
Μετατροπή της επαναληπτικής δοµήςόσο…επανάλαβε στη δοµή για…από…µέχρι
Κωνσταντίνος Παρασκευόπουλος - Ελληνικό Κολλέγιο Θεσσαλονίκης
Η γενική µορφή της δοµής επανάληψης όσο…επανάλαβε για την οποία επιτρέπεται η µετατροπή της στη δοµή για…από…µέχρι είναι η εξής :
µτβ ← τ1
Όσο µτβ τσ τ2 επανάλαβε
Οµάδα εντολών 1
µτβ ← µτβ + τ3
Οµάδα εντολών 2
Τέλος_επανάληψης
o τσ : τελεστής σύγκρισης (>, <, =, ≠, ≥, ≤)
o µτβ: µια µεταβλητή που παίζει τον ρόλο του µετρητή και σε κάθε επανάληψη µεταβάλλεται κατά σταθερή ποσότητα τ3
o τ1, τ2, τ3 : σταθεροί ακέραιοι ή πραγµατικοί αριθµοί, ή µεταβλητές.
o Το περιεχόµενο των µεταβλητών τ2, τ3 δεν πρέπει να µεταβάλλεται µέσα στην επανάληψη.
o Κάποια από τις οµάδες εντολών 1 και 2 µπορεί να µην περιέχει καµία εντολή.
12/1/2012
3
Μετατροπή της επαναληπτικής δοµήςόσο…επανάλαβε στη δοµή για…από…µέχρι
Κωνσταντίνος Παρασκευόπουλος - Ελληνικό Κολλέγιο Θεσσαλονίκης
Η µετατροπή της δοµής όσο…επανάλαβε στη δοµή για…από…µέχρι έχει ως εξής:
µτβ ← τ1
Όσο µτβ τσ τ2 επανάλαβε
Οµάδα εντολών 1
µτβ ← µτβ + τ3
Οµάδα εντολών 2
Τέλος_επανάληψης
Για µτβ από τ1 µέχρι ττ µε βήµα τ3
Οµάδα εντολών 1
Οµάδα εντολών 2
Τέλος_επανάληψης
o Οι εντολές µτβ ← τ1 και µτβ ← µτβ + τ3 δεν πρέπει να υπάρχουν στη Για αφού εκτελούνται από την ίδια τη δοµή.
o Εάν υπάρχει η µεταβλητή µτβ οπουδήποτε µέσα στην οµάδα εντολών Οµάδα εντολών 2 της Για τότε αυτή θα πρέπει να αντικατασταθεί µε την παράσταση µτβ + τ3.
Παράδειγµα µετατροπήςόσο…επανάλαβε στη δοµή για…από…µέχρι
Κωνσταντίνος Παρασκευόπουλος - Ελληνικό Κολλέγιο Θεσσαλονίκης
Τα επόµενα τµήµατα αλγορίθµων να γραφούν ξανά χρησιµοποιώντας την επαναληπτική δοµή όσο…επανάλαβε.
κ ← 1
i ← 0
Όσο i < 10 επανάλαβε
i ← i + 1
k ← i * 2
Τέλος_επανάληψης
1.
Ανάλυση
κ ← 1
i ← 0
Όσο i < 10 επανάλαβε
{ … }
i ← i + 1
k ← i * 2
Τέλος_επανάληψης
Αρχικοποίηση µετρητή
Οµάδα εντολών 1
Μεταβολή µετρητή
Οµάδα εντολών 2
κ ← 1
Για i από 0 µέχρι 9
k ← (i + 1) * 2
Τέλος_επανάληψης
Μ ε τ α τ ρ ο π ή
Η τελική τιµή του µετρητή είναι 9 γιατί το iδεν πρέπει να πάρει την τιµή 10 .
Η µεταβλητή i αντικαθίσταται από την παράσταση i + 1 αφού η εντολή βρίσκεται στην οµάδα εντολών 2 .
12/1/2012
4
Παράδειγµα µετατροπήςόσο…επανάλαβε στη δοµή για…από…µέχρι
Κωνσταντίνος Παρασκευόπουλος - Ελληνικό Κολλέγιο Θεσσαλονίκης
κ ← 1
i ← 0
Όσο i < 10 επανάλαβε
k ← i * 2
i ← i + 1
Τέλος_επανάληψης
2.
Ανάλυση
κ ← 1
i ← 0
Όσο i < 10 επανάλαβε
k ← i * 2
i ← i + 1
{ … }
Τέλος_επανάληψης
Αρχικοποίηση µετρητή
Οµάδα εντολών 1
Μεταβολή µετρητή
Οµάδα εντολών 2
κ ← 1
Για i από 0 µέχρι 9
k ← i * 2
Τέλος_επανάληψης
Μ ε τ α τ ρ ο π ή
Η τελική τιµή του µετρητή είναι 9 γιατί το iδεν πρέπει να πάρει την τιµή 10 .
Η µεταβλητή i παραµένει ως έχει αφού η εντολή ανήκει στην οµάδα εντολών 1.
Παράδειγµα µετατροπήςόσο…επανάλαβε στη δοµή για…από…µέχρι
Κωνσταντίνος Παρασκευόπουλος - Ελληνικό Κολλέγιο Θεσσαλονίκης
κ ← 1
i ← 0
Όσο i < 10 επανάλαβε
k ← i * 2
i ← i + k
Τέλος_επανάληψης
3. Αδύνατον να γίνει η µετατροπή.
Το βήµα της επανάληψης είναι η µεταβλητή k η οποία σε κάθε επανάληψη παίρνει διαφορετική τιµή.
Η µεταβλητή i της επανάληψης δεν µεταβάλλεται κατά µία σταθερή ποσότητα εποµένως δεν είναι δυνατή η µετατροπή.
12/1/2012
5
Μετατροπή της επαναληπτικής δοµήςµέχρις_ότου στη δοµή όσο_επανάλαβε
Κωνσταντίνος Παρασκευόπουλος - Ελληνικό Κολλέγιο Θεσσαλονίκης
Η µετατροπή της δοµής µέχρις_ότου στη δοµή όσο…επανάλαβε έχει ως εξής:
Οµάδα εντολών
Όσο όχι( συνθήκη) επανάλαβε
Οµάδα εντολών
Τέλος_επανάληψης
Ενέργειες για τη µετατροπή
1. Θέτουµε ως συνθήκη της δοµής Όσο…επανάλαβε την αντίστροφη της συνθήκης που βρίσκεται στη δοµή Μέχρις_ότου.
2. Στη δοµή Όσο…επανάλαβε ξαναγράφουµε την οµάδα εντολών που επαναλαµβάνεται πριν ακριβώς από τον βρόχο, έτσι ώστε να εκτελεστεί τουλάχιστον µία φορά.
Αρχή_επανάληψης
οµάδα εντολών
Μέχρις_ότου συνθήκη
Παράδειγµα µετατροπήςµέχρις_ότου στη δοµή όσο_επανάλαβε
Κωνσταντίνος Παρασκευόπουλος - Ελληνικό Κολλέγιο Θεσσαλονίκης
Το επόµενο τµήµα αλγορίθµου να γραφεί ξανά χρησιµοποιώντας την επαναληπτική δοµή όσο…επανάλαβε.
∆ιάβασε x
Αρχή_επανάληψης
Εµφάνισε x
x ← x + 1
Μέχρις_ότου x > 15
∆ιάβασε x
Όσο x ≤ 15 επανάλαβε
Εµφάνισε x
x ← x + 1
Τέλος_επανάληψηςΛάθος
Υπάρχουν τιµές του x (π.χ. x = 20) για τις οποίες η παραπάνω Όσο δεν θα εκτελεστεί καµία φορά σε αντίθεση µε την Αρχή_επανάληψης η οποία θα εκτελεστεί τουλάχιστον µία φορά.
∆ιάβασε x
Εµφάνισε x
x ← x + 1
Όσο x ≤ 15 επανάλαβε
Εµφάνισε x
x ← x + 1
Τέλος_επανάληψης
Σωστό
Οι εντολές µέσα στον βρόχο θα εκτελεστούν τουλάχιστον µία φορά αφού τις έχουµε µεταφέρει και πριν από αυτόν.
12/1/2012
6
Μετατροπή της επαναληπτικής δοµήςόσο_επανάλαβε στη δοµή µέχρις_ότου
Κωνσταντίνος Παρασκευόπουλος - Ελληνικό Κολλέγιο Θεσσαλονίκης
Η µετατροπή της δοµής όσο_επανάλαβε στη δοµή µέχρις_ότου έχει ως εξής:
Όσο συνθήκη επανάλαβε
Οµάδα εντολών
Τέλος_επανάληψης
Ενέργειες για τη µετατροπή
1. Θέτουµε ως συνθήκη της δοµής Μέχρις_ότου την αντίστροφη της συνθήκης που βρίσκεται στη δοµή Όσο…επανάλαβε .
2. Ολόκληρη η δοµή µέχρις_ότου τοποθετείται µέσα σε µια απλή δοµή επιλογής αν…τέλος_αν µε συνθήκη επιλογής τη συνθήκη επανάληψης της Όσο…επανάλαβε, έτσι ώστε να αποτραπεί η εκτέλεση της µέχρις_ότου αν η συνθήκη στο όσο…επανάλαβε είναι εξαρχής ψευδής.
Αν συνθήκη τότε
Αρχή_επανάληψης
οµάδα εντολών
Μέχρις_ότου όχι( συνθήκη)
Τέλος_αν
Παράδειγµα µετατροπήςόσο_επανάλαβε στη δοµή µέχρις_ότου
Κωνσταντίνος Παρασκευόπουλος - Ελληνικό Κολλέγιο Θεσσαλονίκης
Το επόµενο τµήµα αλγορίθµου να γραφεί ξανά χρησιµοποιώντας την επαναληπτική δοµή µέχρις_ότου.
∆ιάβασε x
Όσο x > 0 επανάλαβε
Εµφάνισε 2 * x
∆ιάβασε x
Τέλος_επανάληψης
∆ιάβασε x
Αν x > 0 τότε
Αρχή_επανάληψης
Εµφάνισε 2 * x
∆ιάβασε x
Μέχρις_ότου x ≤ 0
Τέλος_αν
12/1/2012
7
Μετατροπή της επαναληπτικής δοµήςγια…από…µέχρι στη δοµή µέχρις_ότου
Κωνσταντίνος Παρασκευόπουλος - Ελληνικό Κολλέγιο Θεσσαλονίκης
Η µετατροπή της δοµής για…από…µέχρι στη δοµή µέχρις_ότου γίνεται ως εξής:
1. Μετατρέπουµε τη δοµή για…από…µέχρι στη δοµή Όσο…επανάλαβε.
2. Μετατρέπουµε τη δοµή Όσο…επανάλαβε στην µέχρις_ότου όπως µάθαµε στις προηγούµενες διαφάνειες.
Μετατροπή της επαναληπτικής δοµήςµέχρις_ότου στη δοµή για…από…µέχρι
Κωνσταντίνος Παρασκευόπουλος - Ελληνικό Κολλέγιο Θεσσαλονίκης
Η µετατροπή της δοµής για…από…µέχρι στη δοµή µέχρις_ότου γίνεται ως εξής:
1. Μετατρέπουµε τη δοµή µέχρις_ότου στη δοµή Όσο…επανάλαβε.
2. Μετατρέπουµε τη δοµή Όσο…επανάλαβε στην Για…από…µέχρι όπως µάθαµε στις προηγούµενες διαφάνειες.
Προσοχή
Η µετατροπή αυτή µπορεί να γίνει µόνο για επαναλήψεις µε γνωστό αριθµό επαναλήψεων!
12/1/2012
8
Τέλος Μαθήµατος
Ελληνικό Κολλέγιο Θεσσαλονίκης
Κωνσταντίνος Παρασκευόπουλος