ΑΕΠΠ - Δομή Επανάληψης (Μετατροπές)

8
12/1/2012 1 Κεφάλαιο 2 + Κεφάλαιο 8 (αναφορές) Μετατροπές από τη µια δοµή επανάληψης σε άλλη ισοδύναµή της Ανάπτυξη Εφαρµογών σε Προγραµµατιστικό Περιβάλλον Γ Λυκείου Τεχνολογική Κατεύθυνση Κωνσταντίνος Παρασκευόπουλος Ανάπτυξη Εφαρµογών σε Προγραµµατιστικό Περιβάλλον Γ Λυκείου Τεχνολογική Κατεύθυνση Κωνσταντίνος Παρασκευόπουλος Ελληνικό Κολλέγιο Θεσσαλονίκης Ελληνικό Κολλέγιο Θεσσαλονίκης Μετατροπή της επαναληπτικής δοµής γιααπόµέχρι στη δοµή όσοεπανάλαβε Κωνσταντίνος Παρασκευόπουλος - Ελληνικό Κολλέγιο Θεσσαλονίκης Η µετατροπή της δοµής γιααπόµέχρι τη δοµή όσοεπανάλαβε έχει ως εξής: Για µτβ από ατ µέχρι ττ µε_βήµα β Όµαδα εντολών Τέλος_επανάληψης µτβ ατ Όσο µτβ ττ επανάλαβε Οµάδα εντολών µτβ µτβ + β Τέλος_επανάληψης Περίπτωση 1 – Βήµα µεταβολής θετικό Για µτβ από ατ µέχρι ττ µε_βήµα -β Όµαδα εντολών Τέλος_επανάληψης µτβ ατ Όσο µτβ ττ επανάλαβε Οµάδα εντολών µτβ µτβ + β Τέλος_επανάληψης Περίπτωση 2 – Βήµα µεταβολής αρνητικό

description

Μετατροπές στις Δομές επανάληψης, Ανάπτυξη Εφαρμογών σε Προγραμματιστικό Περιβάλλον

Transcript of ΑΕΠΠ - Δομή Επανάληψης (Μετατροπές)

Page 1: ΑΕΠΠ - Δομή Επανάληψης (Μετατροπές)

12/1/2012

1

Κεφάλαιο 2 + Κεφάλαιο 8 (αναφορές)

Μετατροπές από τη µια δοµή επανάληψης σε άλλη ισοδύναµή της

Ανάπτυξη Εφαρµογών σε Προγραµµατιστικό Περιβάλλον

Γ Λυκείου – Τεχνολογική Κατεύθυνση

Κωνσταντίνος Παρασκευόπουλος

Ανάπτυξη Εφαρµογών σε Προγραµµατιστικό Περιβάλλον

Γ Λυκείου – Τεχνολογική Κατεύθυνση

Κωνσταντίνος Παρασκευόπουλος

Ελληνικό Κολλέγιο

Θεσσαλονίκης

Ελληνικό Κολλέγιο

Θεσσαλονίκης

Μετατροπή της επαναληπτικής δοµήςγια…από…µέχρι στη δοµή όσο…επανάλαβε

Κωνσταντίνος Παρασκευόπουλος - Ελληνικό Κολλέγιο Θεσσαλονίκης

Η µετατροπή της δοµής για…από…µέχρι τη δοµή όσο…επανάλαβε έχει ως εξής:

Για µτβ από ατ µέχρι ττ µε_βήµα β

Όµαδα εντολών

Τέλος_επανάληψης

µτβ ← ατ

Όσο µτβ ≤ ττ επανάλαβε

Οµάδα εντολών

µτβ ← µτβ + β

Τέλος_επανάληψης

Περίπτωση 1 – Βήµα µεταβολής θετικό

Για µτβ από ατ µέχρι ττ µε_βήµα - β

Όµαδα εντολών

Τέλος_επανάληψης

µτβ ← ατ

Όσο µτβ ≥ ττ επανάλαβε

Οµάδα εντολών

µτβ ← µτβ + β

Τέλος_επανάληψης

Περίπτωση 2 – Βήµα µεταβολής αρνητικό

Page 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 µπορεί να µην περιέχει καµία εντολή.

Page 3: ΑΕΠΠ - Δομή Επανάληψης (Μετατροπές)

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 .

Page 4: ΑΕΠΠ - Δομή Επανάληψης (Μετατροπές)

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 της επανάληψης δεν µεταβάλλεται κατά µία σταθερή ποσότητα εποµένως δεν είναι δυνατή η µετατροπή.

Page 5: ΑΕΠΠ - Δομή Επανάληψης (Μετατροπές)

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

Τέλος_επανάληψης

Σωστό

Οι εντολές µέσα στον βρόχο θα εκτελεστούν τουλάχιστον µία φορά αφού τις έχουµε µεταφέρει και πριν από αυτόν.

Page 6: ΑΕΠΠ - Δομή Επανάληψης (Μετατροπές)

12/1/2012

6

Μετατροπή της επαναληπτικής δοµήςόσο_επανάλαβε στη δοµή µέχρις_ότου

Κωνσταντίνος Παρασκευόπουλος - Ελληνικό Κολλέγιο Θεσσαλονίκης

Η µετατροπή της δοµής όσο_επανάλαβε στη δοµή µέχρις_ότου έχει ως εξής:

Όσο συνθήκη επανάλαβε

Οµάδα εντολών

Τέλος_επανάληψης

Ενέργειες για τη µετατροπή

1. Θέτουµε ως συνθήκη της δοµής Μέχρις_ότου την αντίστροφη της συνθήκης που βρίσκεται στη δοµή Όσο…επανάλαβε .

2. Ολόκληρη η δοµή µέχρις_ότου τοποθετείται µέσα σε µια απλή δοµή επιλογής αν…τέλος_αν µε συνθήκη επιλογής τη συνθήκη επανάληψης της Όσο…επανάλαβε, έτσι ώστε να αποτραπεί η εκτέλεση της µέχρις_ότου αν η συνθήκη στο όσο…επανάλαβε είναι εξαρχής ψευδής.

Αν συνθήκη τότε

Αρχή_επανάληψης

οµάδα εντολών

Μέχρις_ότου όχι( συνθήκη)

Τέλος_αν

Παράδειγµα µετατροπήςόσο_επανάλαβε στη δοµή µέχρις_ότου

Κωνσταντίνος Παρασκευόπουλος - Ελληνικό Κολλέγιο Θεσσαλονίκης

Το επόµενο τµήµα αλγορίθµου να γραφεί ξανά χρησιµοποιώντας την επαναληπτική δοµή µέχρις_ότου.

∆ιάβασε x

Όσο x > 0 επανάλαβε

Εµφάνισε 2 * x

∆ιάβασε x

Τέλος_επανάληψης

∆ιάβασε x

Αν x > 0 τότε

Αρχή_επανάληψης

Εµφάνισε 2 * x

∆ιάβασε x

Μέχρις_ότου x ≤ 0

Τέλος_αν

Page 7: ΑΕΠΠ - Δομή Επανάληψης (Μετατροπές)

12/1/2012

7

Μετατροπή της επαναληπτικής δοµήςγια…από…µέχρι στη δοµή µέχρις_ότου

Κωνσταντίνος Παρασκευόπουλος - Ελληνικό Κολλέγιο Θεσσαλονίκης

Η µετατροπή της δοµής για…από…µέχρι στη δοµή µέχρις_ότου γίνεται ως εξής:

1. Μετατρέπουµε τη δοµή για…από…µέχρι στη δοµή Όσο…επανάλαβε.

2. Μετατρέπουµε τη δοµή Όσο…επανάλαβε στην µέχρις_ότου όπως µάθαµε στις προηγούµενες διαφάνειες.

Μετατροπή της επαναληπτικής δοµήςµέχρις_ότου στη δοµή για…από…µέχρι

Κωνσταντίνος Παρασκευόπουλος - Ελληνικό Κολλέγιο Θεσσαλονίκης

Η µετατροπή της δοµής για…από…µέχρι στη δοµή µέχρις_ότου γίνεται ως εξής:

1. Μετατρέπουµε τη δοµή µέχρις_ότου στη δοµή Όσο…επανάλαβε.

2. Μετατρέπουµε τη δοµή Όσο…επανάλαβε στην Για…από…µέχρι όπως µάθαµε στις προηγούµενες διαφάνειες.

Προσοχή

Η µετατροπή αυτή µπορεί να γίνει µόνο για επαναλήψεις µε γνωστό αριθµό επαναλήψεων!

Page 8: ΑΕΠΠ - Δομή Επανάληψης (Μετατροπές)

12/1/2012

8

Τέλος Μαθήµατος

Ελληνικό Κολλέγιο Θεσσαλονίκης

Κωνσταντίνος Παρασκευόπουλος