52
22/11/08 Ανάπτυξη εφαρμογών 1 Δομές Επανάληψης Όσο – μέχρις ότου – για

Δομές Επανάληψηςusers.sch.gr/chtzokas/PDF_domesEpanalipsis.pdf · εντολών και μετά ελέγχεται ξανά η συνθήκη 3. Όταν η συνθήκη

  • Upload
    others

  • View
    5

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Δομές Επανάληψηςusers.sch.gr/chtzokas/PDF_domesEpanalipsis.pdf · εντολών και μετά ελέγχεται ξανά η συνθήκη 3. Όταν η συνθήκη

22/11/08 Ανάπτυξη εφαρμογών 1

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

Όσο – μέχρις ότου – για

Page 2: Δομές Επανάληψηςusers.sch.gr/chtzokas/PDF_domesEpanalipsis.pdf · εντολών και μετά ελέγχεται ξανά η συνθήκη 3. Όταν η συνθήκη

22/11/08 Ανάπτυξη εφαρμογών 2

Όσο …. επανάλαβε

Συνθήκη Ομάδα εντολών

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

Εντολή1

Εντολή2

……..

Εντολή Ν

Τέλος_ΕπανάληψηςΑληθής

Ψευδής1. Πρώτα ελέγχεται η συνθήκη

2. Αν είναι αληθινή εκτελείται η ομάδα εντολών και μετά ελέγχεται ξανά η συνθήκη

3. Όταν η συνθήκη γίνει ψευδής τερματίζεται η επανάληψη και ο έλεγχος μεταφέρεται στην πρώτη εντολή μετά το τέλος επανάληψης

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

Page 3: Δομές Επανάληψηςusers.sch.gr/chtzokas/PDF_domesEpanalipsis.pdf · εντολών και μετά ελέγχεται ξανά η συνθήκη 3. Όταν η συνθήκη

22/11/08 Ανάπτυξη εφαρμογών 3

Εμφάνιση διαδοχικών ακεραίων από 1 μέχρι 100με όσο.. επανάλαβε

• Αλγόριθμος ΟΣΟ1– Κ1– Όσο Κ<=100 επανάλαβε

• Εμφάνισε Κ• ΚΚ+1

– Τέλος Επανάληψης• Τέλος ΟΣΟ1

Κ<=100Αληθής

Ψευδής

αρχή

Κ1

ΚΚ+1

ΕμφάνισεΚ

τέλος

Page 4: Δομές Επανάληψηςusers.sch.gr/chtzokas/PDF_domesEpanalipsis.pdf · εντολών και μετά ελέγχεται ξανά η συνθήκη 3. Όταν η συνθήκη

22/11/08 Ανάπτυξη εφαρμογών 4

Μέχρις …ότου

Συνθήκη

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

Αληθής

ψευδής

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

Εντολή1

Εντολή2

……..

Εντολή Ν

Μέχρις_ότου Συνθήκη = αληθής1. ΠΡΩΤΑ εκτελείται η ομάδα εντολών

ανεξάρτητα από την συνθήκη

2. Ελέγχεται η συνθήκη και αν είναι ψευδής επαναλαμβάνεται η ομάδα εντολών

3. Όταν η συνθήκη γίνει αληθής τερματίζεται η επανάληψη και ο έλεγχος μεταφέρεται στην πρώτη εντολή μετά το τέλος επανάληψης

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

Page 5: Δομές Επανάληψηςusers.sch.gr/chtzokas/PDF_domesEpanalipsis.pdf · εντολών και μετά ελέγχεται ξανά η συνθήκη 3. Όταν η συνθήκη

22/11/08 Ανάπτυξη εφαρμογών 5

Εμφάνιση διαδοχικών ακεραίων από 1 μέχρι 100με Μέχρις_ότου

• Αλγόριθμος Μέχρις1– Κ1– Αρχή επανάληψης

• Εμφάνισε Κ• ΚΚ+1

– Μέχρις_ότου Κ>100• Τέλος Μέχρις1

Κ>100

Αληθής

Ψευδής

αρχή

Κ1

ΚΚ+1

ΕμφάνισεΚ

τέλος

Page 6: Δομές Επανάληψηςusers.sch.gr/chtzokas/PDF_domesEpanalipsis.pdf · εντολών και μετά ελέγχεται ξανά η συνθήκη 3. Όταν η συνθήκη

22/11/08 Ανάπτυξη εφαρμογών 6

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

ΜΤ1

Μ<=Τ2

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

ΜΜ +β

Ναι

Όχι

Για Μ από Τ1 μέχρι Τ2 με_βήμα β

εντολή1

εντολή2

….

εντολή ν

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

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

1. Αρχικά η μεταβλητή Μ παίρνει την αρχική τιμή Τ1

2. Ελέγχεται αν η Μ είναι Μικρότερη της τελικής τιμής Τ2

3. Αν είναι εκτελείται η ομάδα εντολών του βρόχου και η Μ παίρνει την επόμενη τιμή της

4. Ο βρόχος τερματίζεται όταν η Μ πάρει τιμή μεγαλύτερη της Τ2

5. Το βήμα μπορεί να παραλειφθεί όταν είναι 1

6. Όταν Τ2>=Τ1 τότε πρέπει το βήμα να είναι θετικό, ενώ όταν Τ2<=Τ1 πρέπει το βήμα να είναι αρνητικό ( στις αντίθετες περιπτώσεις δεν εκτελείται ο βρόχος επανάληψης )

7. Όταν το βήμα είναι 0 έχουμε ατέρμονα βρόχο ( άπειρες επαναλήψεις)

Page 7: Δομές Επανάληψηςusers.sch.gr/chtzokas/PDF_domesEpanalipsis.pdf · εντολών και μετά ελέγχεται ξανά η συνθήκη 3. Όταν η συνθήκη

22/11/08 Ανάπτυξη εφαρμογών 7

Εμφάνιση διαδοχικών ακεραίων από 1 μέχρι 100με Για ..από … μέχρι..

• Αλγόριθμος Για1

– Για Κ από 1 μέχρι 100• Εμφάνισε Κ

– Τέλος Επανάληψης

• Τέλος Για1

Κ<=100Αληθής

Ψευδής

αρχή

Κ1

ΚΚ+1

ΕμφάνισεΚ

τέλος

Page 8: Δομές Επανάληψηςusers.sch.gr/chtzokas/PDF_domesEpanalipsis.pdf · εντολών και μετά ελέγχεται ξανά η συνθήκη 3. Όταν η συνθήκη

22/11/08 Ανάπτυξη εφαρμογών 8

• Όσο … επανάλαβε– Έλεγχος στην αρχή– Εκτέλεση όταν συνθήκη

είναι αληθής– Τερματισμός όταν

συνθήκη γίνει ψευδής– Μπορεί να μην

εκτελεστεί ο βρόχος καμιά φορά ( αρχική συνθήκη ψευδής)

• Μέχρις_ότου– Έλεγχος στο τέλος– Εκτέλεση όταν συνθήκη

είναι ψευδής– Τερματισμός όταν

συνθήκη γίνει αληθής– Οι εντολές του βρόχου

εκτελούνται οπωσδήποτε μια φορά ( γιατί ο έλεγχος γίνεται μετά)

Διαφορές

1. Και οι δυο δομές χρησιμοποιούνται όταν δεν γνωρίζουμε το πλήθος των επαναλήψεων

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

Page 9: Δομές Επανάληψηςusers.sch.gr/chtzokas/PDF_domesEpanalipsis.pdf · εντολών και μετά ελέγχεται ξανά η συνθήκη 3. Όταν η συνθήκη

22/11/08 Ανάπτυξη εφαρμογών 9

Εμφωλευμένοι βρόχοι

• Επιτρεπτοί• Για Κ …

– Για Λ ….• …

– Τέλος επανάληψης– Για Μ ..

• …..– Τέλος επανάληψης

• Τέλος Επανάληψης

• Μη Επιτρεπτοί• Για Κ …

– Για Λ ….• …

• Τέλος επανάληψης• Για Μ ..• …..

– Τέλος επανάληψης• Τέλος Επανάληψης

Page 10: Δομές Επανάληψηςusers.sch.gr/chtzokas/PDF_domesEpanalipsis.pdf · εντολών και μετά ελέγχεται ξανά η συνθήκη 3. Όταν η συνθήκη

22/11/08 Ανάπτυξη εφαρμογών 10

Μετατροπή της δομής Όσο σε Μέχρις ότου

• Αρχική τιμή Σ• Όσο Σ επανάλαβε

– Εντολή 1– Εντολή 2– …– Εντολή ν– Ενημέρωση τιμής Σ

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

• Αρχική τιμή Σ• Αρχή επανάληψης

– Εντολή 1– Εντολή 2– …– Εντολή ν– Ενημέρωση τιμής Σ

• Μέχρις_ότου ΌΧΙ Σ

Η συνθήκη στην μέχρις ότου είναι η άρνηση της συνθήκης στης όσο

Πχ ( α>0) και (β>0) (α<=0) ή ( β(<=0)

Page 11: Δομές Επανάληψηςusers.sch.gr/chtzokas/PDF_domesEpanalipsis.pdf · εντολών και μετά ελέγχεται ξανά η συνθήκη 3. Όταν η συνθήκη

22/11/08 Ανάπτυξη εφαρμογών 11

Μετατροπή της δομής Όσο σε Μέχρις ότου

• Α6• Β10• Όσο (Α>0 και Β <30) επανάλαβε

– Εμφάνισε Α– Εμφάνισε Β– ΑΑ-2– ΒΒ+3

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

• Α6• Β10• Αρχή επανάληψης

– Εμφάνισε Α– Εμφάνισε Β– ΑΑ-2– ΒΒ+3

• Μέχρις_ότου (Α<=0 ή Β>=30)

Η συνθήκη στην μέχρις ότου είναι η άρνηση της συνθήκης στης όσο

Page 12: Δομές Επανάληψηςusers.sch.gr/chtzokas/PDF_domesEpanalipsis.pdf · εντολών και μετά ελέγχεται ξανά η συνθήκη 3. Όταν η συνθήκη

22/11/08 Ανάπτυξη εφαρμογών 12

Μετατροπή της δομής Για σε όσο

• Για Μ από Τ1 μέχρι Τ2 με βήμα β– Εντολή 1– Εντολή 2– …– Εντολή ν

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

• ΜΤ1• Όσο Μ <=Τ2 επανάλαβε

– Εντολή 1– Εντολή 2– …– Εντολή ν– Μ Μ + β

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

Αν Τ1>Τ2 τότε η συνθήκη γίνεται Όσο Μ>=Τ2 και το βήμα β<0

Page 13: Δομές Επανάληψηςusers.sch.gr/chtzokas/PDF_domesEpanalipsis.pdf · εντολών και μετά ελέγχεται ξανά η συνθήκη 3. Όταν η συνθήκη

22/11/08 Ανάπτυξη εφαρμογών 13

Μετατροπή της δομής Για σε όσο

• Για κ από 100 μέχρι 20 με βήμα -5

– Εμφάνισε Κ

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

• Κ100• Όσο Κ>=20 επανάλαβε

– Εμφάνισε Κ– ΚΚ-5

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

Page 14: Δομές Επανάληψηςusers.sch.gr/chtzokas/PDF_domesEpanalipsis.pdf · εντολών και μετά ελέγχεται ξανά η συνθήκη 3. Όταν η συνθήκη

22/11/08 Ανάπτυξη εφαρμογών 14

Μετρητές , αθροιστές• Διάβασμα βάρους 50 κιβωτίων και υπολογισμός μέσης

τιμής• Αλγόριθμος Μετρητές_Αθροιστές

– Μ 0 ! Μετρητής, αρχική τιμή 0– ΆΘροισμα0 ! Αθροιστής, αρχική τιμή 0– Διάβασε Βάρος ! Πρώτη τιμή βάρους– Όσο Μ<=50 επανάλαβε

• Αθροισμα Αθροισμα +Βάρος !Ενημέρωση αθροιστή• ΜΜ+1 !Ενημέρωση μετρητή• Διάβασε Βάρος ! Επόμενη τιμή βάρους

– Τέλος Επανάληψης– Μέση_τιμή Άθροισμα / Μ– Εμφάνισε Μέση_τιμή

• Τέλος Μετρητές_Αθροιστές

Page 15: Δομές Επανάληψηςusers.sch.gr/chtzokas/PDF_domesEpanalipsis.pdf · εντολών και μετά ελέγχεται ξανά η συνθήκη 3. Όταν η συνθήκη

22/11/08 Ανάπτυξη εφαρμογών 15

Πολλαπλασιαστές• Αλγόριθμος Παραγοντικό

– Διάβασε Ν– Ρ1Αν Ν =0 τότε

• Ρ1– Αλλιώς

• Κ1• Όσο Κ <=Ν επανάλαβε

– ΡΡ*Ι– ΚΚ+1

• Τέλος Επανάληψης– Τέλος_αν– Εμφάνισε Ρ

• Τέλος Παραγοντικό

Page 16: Δομές Επανάληψηςusers.sch.gr/chtzokas/PDF_domesEpanalipsis.pdf · εντολών και μετά ελέγχεται ξανά η συνθήκη 3. Όταν η συνθήκη

22/11/08 Ανάπτυξη εφαρμογών 16

Υπολογισμός Μέγιστου πολλών αριθμών γνωστού πλήθους - γνωστού εύρους τιμών

• Να γραφεί αλγόριθμος που αφού διαβάσει τις θερμοκρασίες κάθε μέρας για όλο το χρόνο ( 365 μέρες) για την Αθήνα, να βρίσκει την υψηλότερη και την χαμηλότερη τιμή τους

• Αρχική τιμή μέγιστου η μικρότερη πιθανή τιμή

• Αρχική τιμή ελάχιστου η μεγαλύτερη πιθανή τιμή

• Αλγόριθμος Μέγιστος_ελάχιστος• Μax-273 ! Δεν υπάρχει μικρότερη• Min +100 ! Δεν υπάρχει μεγαλύτερη• Για Κ από 1 μέχρι 365

– Διάβασε Θ– Αν Θ>Max τότε

• MaxΘ– Τέλος_αν– Αν Θ<Min τότε

• MinΘ– Τέλος_αν

• Τέλος_επανάληψης• Εμφάνισε Min, Max• Τέλος Μέγιστος_ελάχιστος

Page 17: Δομές Επανάληψηςusers.sch.gr/chtzokas/PDF_domesEpanalipsis.pdf · εντολών και μετά ελέγχεται ξανά η συνθήκη 3. Όταν η συνθήκη

22/11/08 Ανάπτυξη εφαρμογών 17

Υπολογισμός Μέγιστου πολλών αριθμών γνωστού πλήθους -άγνωστου εύρους τιμών

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

• Αρχικές τιμές μέγιστου και ελάχιστου η πρώτη τιμή

• Αλγόριθμος Μέγιστος_ελάχιστος• Διάβασε Α• Μέγιστος Α• Ελάχιστος Α• Για Κ από 1 μέχρι 49

– Διάβασε Α– Αν Α> Μέγιστος τότε

• ΜέγιστοςΘ– Τέλος_αν– Αν Α < Ελάχιστος τότε

• ΕλάχιστοςΑ– Τέλος_αν

• Τέλος_επανάληψης• Εμφάνισε Μέγιστος, Ελάχιστος• Τέλος Μέγιστος_ελάχιστος

Page 18: Δομές Επανάληψηςusers.sch.gr/chtzokas/PDF_domesEpanalipsis.pdf · εντολών και μετά ελέγχεται ξανά η συνθήκη 3. Όταν η συνθήκη

22/11/08 Ανάπτυξη εφαρμογών 18

Υπολογισμός Μέγιστου πολλών αριθμών άγνωστου πλήθους -άγνωστου εύρους τιμών

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

• Αρχικές τιμές μέγιστου και ελάχιστου η πρώτη τιμή

• Αλγόριθμος Μέγιστος_ελάχιστος• Διάβασε Α• Μέγιστος Α• Ελάχιστος Α• Όσο Α>0 επανάλαβε

– Αν Α> Μέγιστος τότε• ΜέγιστοςΘ

– Τέλος_αν– Αν Α < Ελάχιστος τότε

• ΕλάχιστοςΑ– Τέλος_αν– Διάβασε Α

• Τέλος_επανάληψης• Εμφάνισε Μέγιστος, Ελάχιστος• Τέλος Μέγιστος_ελάχιστος

Page 19: Δομές Επανάληψηςusers.sch.gr/chtzokas/PDF_domesEpanalipsis.pdf · εντολών και μετά ελέγχεται ξανά η συνθήκη 3. Όταν η συνθήκη

22/11/08 Ανάπτυξη εφαρμογών 19

Έλεγχος εγκυρότητας τιμών εισόδου

• Εξασφάλιση έγκυρου βαθμού λυκείου ( 0-20)

• Αρχή επανάληψης– Γράψε ‘ δώσε βαθμό από 0 -20:’– Διάβασε β

• Μέχρις_ότου ( β >=0 και β<=20)

1ος Τρόπος

2ος Τρόπος

Γράψε ‘ δώσε βαθμό από 0 -20:’ Διάβασε β

Όσο ( β<0 ή β>20) επανάλαβε Γράψε ‘ δώσε βαθμό από 0 -20:’ Διάβασε β

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

Page 20: Δομές Επανάληψηςusers.sch.gr/chtzokas/PDF_domesEpanalipsis.pdf · εντολών και μετά ελέγχεται ξανά η συνθήκη 3. Όταν η συνθήκη

22/11/08 Ανάπτυξη εφαρμογών 20

Δημιουργία πίνακα τιμών

• Αλγόριθμος Εμφάνιση• Α0• Β0• Για Ι από 2 μέχρι 12 με βήμα 3

– ΑΑ+Ι– Αν Α<=8 τότε

• Για J από 1 μέχρι Α– ΒΒ+1

• Τέλος_επανάληψης– Τέλος_αν– Γράψε I, J, A, B

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

Φάσεις I J A B

Αρχή ? ? 0 0

1η 2 3 2 2

2η 5 8 7 9

3η 8 8 15 9

4η 11 8 26 9

Έξοδος 14 8 26 9

Page 21: Δομές Επανάληψηςusers.sch.gr/chtzokas/PDF_domesEpanalipsis.pdf · εντολών και μετά ελέγχεται ξανά η συνθήκη 3. Όταν η συνθήκη

22/11/08 Ανάπτυξη εφαρμογών 21

Πολλαπλασιασμός αλά ρωσικάΑρχή

ΔιάβασεΜ1, Μ2

Ρ 0

Μ2>0

Μ2 mod 2=1

ΡΡ + Μ1

Μ1Μ1*2Μ2[Μ2/2]

ΝαιΕμφάνισε

Ρ

Τέλος

όχι

Ναι

όχι

Page 22: Δομές Επανάληψηςusers.sch.gr/chtzokas/PDF_domesEpanalipsis.pdf · εντολών και μετά ελέγχεται ξανά η συνθήκη 3. Όταν η συνθήκη

22/11/08 Ανάπτυξη εφαρμογών 22

Όταν δεν πρέπει να ξεπεράσουμε μια οριακή τιμή

• Διάβασμα βάρους κιβωτίων που το συνολικό βάρος δεν πρέπει να ξεπεράσει το 800 kg και υπολογισμός μέσης τιμής

• Αλγόριθμος Θέμα_3ο – Μ 0 ! Μετρητής, αρχική τιμή 0– ΆΘροισμα0 ! Αθροιστής, αρχική τιμή 0– Διάβασε Βάρος ! Πρώτη τιμή βάρους– Όσο (Άθροισμα+ Βάρος) <=800 επανάλαβε

• Αθροισμα Αθροισμα +Βάρος !Ενημέρωση αθροιστή• ΜΜ+1 !Ενημέρωση μετρητή• Διάβασε Βάρος ! Επόμενη τιμή βάρους

– Τέλος Επανάληψης– Μέση_τιμή Άθροισμα / Μ– Εμφάνισε Μέση_τιμή

• Τέλος Μετρητές_Αθροιστές

Page 23: Δομές Επανάληψηςusers.sch.gr/chtzokas/PDF_domesEpanalipsis.pdf · εντολών και μετά ελέγχεται ξανά η συνθήκη 3. Όταν η συνθήκη

22/11/08 Ανάπτυξη εφαρμογών 23

Όταν δεν πρέπει να ξεπεράσουμε μια οριακή τιμή

• Διάβασμα βάρους κιβωτίων που το συνολικό βάρος δεν πρέπει να ξεπεράσει το 800 kg και υπολογισμός μέσης τιμής

• Αλγόριθμος Θέμα_3ο – Μ 0 ! Μετρητής, αρχική τιμή 0– ΆΘροισμα0 ! Αθροιστής, αρχική τιμή 0– Αρχή_Επανάληψης

• Διάβασε Βάρος ! Πρώτη τιμή βάρους• Αν Αθροισμα +Βάρος<=800 τότε

– Αθροισμα Αθροισμα +Βάρος !Ενημέρωση αθροιστή– ΜΜ+1

• Τέλος_αν – Μέχρις_ότου (Άθροισμα+ Βάρος) >800 – Μέση_τιμή Άθροισμα / Μ– Εμφάνισε Μέση_τιμή

• Τέλος Μετρητές_Αθροιστές

Page 24: Δομές Επανάληψηςusers.sch.gr/chtzokas/PDF_domesEpanalipsis.pdf · εντολών και μετά ελέγχεται ξανά η συνθήκη 3. Όταν η συνθήκη

22/11/08 Ανάπτυξη εφαρμογών 24

Μετατροπή αδόμητου αλγόριθμου σε δομημένο

• 1 Αρχή• 2. Αν Σ1=Ψευδής πήγαινε 9• 3. εντολή2• 4 Αν Σ2 τότε

• Εντολή4• Πήγαινε 10

– Αλλιώς• Εντολή5

– Τέλος_αν• 6 πήγαινε 2• Τέλος

• ΑΡΧΗ• ΟΣΟ (Σ1=Αληθής) επανάλαβε• εντολή2• Αν Σ2 =Αληθής τότε

– Εντολή 4– Σ1 =Ψευδής

• Αλλιώς– Εντολή5

• Τέλος_αν• ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ• ΤΕΛΟΣ

Page 25: Δομές Επανάληψηςusers.sch.gr/chtzokas/PDF_domesEpanalipsis.pdf · εντολών και μετά ελέγχεται ξανά η συνθήκη 3. Όταν η συνθήκη

22/11/08 Ανάπτυξη εφαρμογών 25

Μετατροπή αδόμητου αλγόριθμου σε δομημένο

• 1 Αρχή• 2. Αν Σ1=ΑΛΗΘΉΣ Τότε• εντολή1• Αν Σ2 =ΑΛΗΘΗΣ τότε

• Εντολή2• Εντολή3• Πήγαινε εντολή 5

– Τέλος_αν• εντολή4• Εντολή5

– πήγαινε 2• Τέλος_ΑΝ• Εντολή 6• ΤΕΛΟΣ

• ΑΡΧΗ• ΟΣΟ (Σ1=Αληθής) επανάλαβε• εντολή1• Αν Σ2 =Αληθής τότε

– Εντολή 2– Εντολή 3

• Αλλιώς– Εντολή4

• Τέλος_αν– Εντολή 5

• ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ– Εντολή6

• ΤΕΛΟΣ

Page 26: Δομές Επανάληψηςusers.sch.gr/chtzokas/PDF_domesEpanalipsis.pdf · εντολών και μετά ελέγχεται ξανά η συνθήκη 3. Όταν η συνθήκη

22/11/08 Ανάπτυξη εφαρμογών 26

Page 27: Δομές Επανάληψηςusers.sch.gr/chtzokas/PDF_domesEpanalipsis.pdf · εντολών και μετά ελέγχεται ξανά η συνθήκη 3. Όταν η συνθήκη

22/11/08 Ανάπτυξη εφαρμογών 1

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

Όσο – μέχρις ότου – για

Page 28: Δομές Επανάληψηςusers.sch.gr/chtzokas/PDF_domesEpanalipsis.pdf · εντολών και μετά ελέγχεται ξανά η συνθήκη 3. Όταν η συνθήκη

22/11/08 Ανάπτυξη εφαρμογών 2

Όσο …. επανάλαβε

Συνθήκη Ομάδα εντολών

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

Εντολή1

Εντολή2

……..

Εντολή Ν

Τέλος_ΕπανάληψηςΑληθής

Ψευδής1. Πρώτα ελέγχεται η συνθήκη

2. Αν είναι αληθινή εκτελείται η ομάδα εντολών και μετά ελέγχεται ξανά η συνθήκη

3. Όταν η συνθήκη γίνει ψευδής τερματίζεται η επανάληψη και ο έλεγχος μεταφέρεται στην πρώτη εντολή μετά το τέλος επανάληψης

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

Page 29: Δομές Επανάληψηςusers.sch.gr/chtzokas/PDF_domesEpanalipsis.pdf · εντολών και μετά ελέγχεται ξανά η συνθήκη 3. Όταν η συνθήκη

22/11/08 Ανάπτυξη εφαρμογών 3

Εμφάνιση διαδοχικών ακεραίων από 1 μέχρι 100με όσο.. επανάλαβε

• Αλγόριθμος ΟΣΟ1– Κ1– Όσο Κ<=100 επανάλαβε

• Εμφάνισε Κ• ΚΚ+1

– Τέλος Επανάληψης• Τέλος ΟΣΟ1

Κ<=100Αληθής

Ψευδής

αρχή

Κ1

ΚΚ+1

ΕμφάνισεΚ

τέλος

Page 30: Δομές Επανάληψηςusers.sch.gr/chtzokas/PDF_domesEpanalipsis.pdf · εντολών και μετά ελέγχεται ξανά η συνθήκη 3. Όταν η συνθήκη

22/11/08 Ανάπτυξη εφαρμογών 4

Μέχρις …ότου

Συνθήκη

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

Αληθής

ψευδής

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

Εντολή1

Εντολή2

……..

Εντολή Ν

Μέχρις_ότου Συνθήκη = αληθής1. ΠΡΩΤΑ εκτελείται η ομάδα εντολών

ανεξάρτητα από την συνθήκη

2. Ελέγχεται η συνθήκη και αν είναι ψευδής επαναλαμβάνεται η ομάδα εντολών

3. Όταν η συνθήκη γίνει αληθής τερματίζεται η επανάληψη και ο έλεγχος μεταφέρεται στην πρώτη εντολή μετά το τέλος επανάληψης

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

Page 31: Δομές Επανάληψηςusers.sch.gr/chtzokas/PDF_domesEpanalipsis.pdf · εντολών και μετά ελέγχεται ξανά η συνθήκη 3. Όταν η συνθήκη

22/11/08 Ανάπτυξη εφαρμογών 5

Εμφάνιση διαδοχικών ακεραίων από 1 μέχρι 100με Μέχρις_ότου

• Αλγόριθμος Μέχρις1– Κ1– Αρχή επανάληψης

• Εμφάνισε Κ• ΚΚ+1

– Μέχρις_ότου Κ>100• Τέλος Μέχρις1

Κ>100

Αληθής

Ψευδής

αρχή

Κ1

ΚΚ+1

ΕμφάνισεΚ

τέλος

Page 32: Δομές Επανάληψηςusers.sch.gr/chtzokas/PDF_domesEpanalipsis.pdf · εντολών και μετά ελέγχεται ξανά η συνθήκη 3. Όταν η συνθήκη

22/11/08 Ανάπτυξη εφαρμογών 6

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

ΜΤ1

Μ<=Τ2

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

ΜΜ +β

Ναι

Όχι

Για Μ από Τ1 μέχρι Τ2 με_βήμα β

εντολή1

εντολή2

….

εντολή ν

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

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

1. Αρχικά η μεταβλητή Μ παίρνει την αρχική τιμή Τ1

2. Ελέγχεται αν η Μ είναι Μικρότερη της τελικής τιμής Τ2

3. Αν είναι εκτελείται η ομάδα εντολών του βρόχου και η Μ παίρνει την επόμενη τιμή της

4. Ο βρόχος τερματίζεται όταν η Μ πάρει τιμή μεγαλύτερη της Τ2

5. Το βήμα μπορεί να παραλειφθεί όταν είναι 1

6. Όταν Τ2>=Τ1 τότε πρέπει το βήμα να είναι θετικό, ενώ όταν Τ2<=Τ1 πρέπει το βήμα να είναι αρνητικό ( στις αντίθετες περιπτώσεις δεν εκτελείται ο βρόχος επανάληψης )

7. Όταν το βήμα είναι 0 έχουμε ατέρμονα βρόχο ( άπειρες επαναλήψεις)

Page 33: Δομές Επανάληψηςusers.sch.gr/chtzokas/PDF_domesEpanalipsis.pdf · εντολών και μετά ελέγχεται ξανά η συνθήκη 3. Όταν η συνθήκη

22/11/08 Ανάπτυξη εφαρμογών 7

Εμφάνιση διαδοχικών ακεραίων από 1 μέχρι 100με Για ..από … μέχρι..

• Αλγόριθμος Για1

– Για Κ από 1 μέχρι 100• Εμφάνισε Κ

– Τέλος Επανάληψης

• Τέλος Για1

Κ<=100Αληθής

Ψευδής

αρχή

Κ1

ΚΚ+1

ΕμφάνισεΚ

τέλος

Page 34: Δομές Επανάληψηςusers.sch.gr/chtzokas/PDF_domesEpanalipsis.pdf · εντολών και μετά ελέγχεται ξανά η συνθήκη 3. Όταν η συνθήκη

22/11/08 Ανάπτυξη εφαρμογών 8

• Όσο … επανάλαβε– Έλεγχος στην αρχή– Εκτέλεση όταν συνθήκη

είναι αληθής– Τερματισμός όταν

συνθήκη γίνει ψευδής– Μπορεί να μην

εκτελεστεί ο βρόχος καμιά φορά ( αρχική συνθήκη ψευδής)

• Μέχρις_ότου– Έλεγχος στο τέλος– Εκτέλεση όταν συνθήκη

είναι ψευδής– Τερματισμός όταν

συνθήκη γίνει αληθής– Οι εντολές του βρόχου

εκτελούνται οπωσδήποτε μια φορά ( γιατί ο έλεγχος γίνεται μετά)

Διαφορές

1. Και οι δυο δομές χρησιμοποιούνται όταν δεν γνωρίζουμε το πλήθος των επαναλήψεων

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

Page 35: Δομές Επανάληψηςusers.sch.gr/chtzokas/PDF_domesEpanalipsis.pdf · εντολών και μετά ελέγχεται ξανά η συνθήκη 3. Όταν η συνθήκη

22/11/08 Ανάπτυξη εφαρμογών 9

Εμφωλευμένοι βρόχοι

• Επιτρεπτοί• Για Κ …

– Για Λ ….• …

– Τέλος επανάληψης– Για Μ ..

• …..– Τέλος επανάληψης

• Τέλος Επανάληψης

• Μη Επιτρεπτοί• Για Κ …

– Για Λ ….• …

• Τέλος επανάληψης• Για Μ ..• …..

– Τέλος επανάληψης• Τέλος Επανάληψης

Page 36: Δομές Επανάληψηςusers.sch.gr/chtzokas/PDF_domesEpanalipsis.pdf · εντολών και μετά ελέγχεται ξανά η συνθήκη 3. Όταν η συνθήκη

22/11/08 Ανάπτυξη εφαρμογών 10

Μετατροπή της δομής Όσο σε Μέχρις ότου

• Αρχική τιμή Σ• Όσο Σ επανάλαβε

– Εντολή 1– Εντολή 2– …– Εντολή ν– Ενημέρωση τιμής Σ

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

• Αρχική τιμή Σ• Αρχή επανάληψης

– Εντολή 1– Εντολή 2– …– Εντολή ν– Ενημέρωση τιμής Σ

• Μέχρις_ότου ΌΧΙ Σ

Η συνθήκη στην μέχρις ότου είναι η άρνηση της συνθήκης στης όσο

Πχ ( α>0) και (β>0) (α<=0) ή ( β(<=0)

Page 37: Δομές Επανάληψηςusers.sch.gr/chtzokas/PDF_domesEpanalipsis.pdf · εντολών και μετά ελέγχεται ξανά η συνθήκη 3. Όταν η συνθήκη

22/11/08 Ανάπτυξη εφαρμογών 11

Μετατροπή της δομής Όσο σε Μέχρις ότου

• Α6• Β10• Όσο (Α>0 και Β <30) επανάλαβε

– Εμφάνισε Α– Εμφάνισε Β– ΑΑ-2– ΒΒ+3

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

• Α6• Β10• Αρχή επανάληψης

– Εμφάνισε Α– Εμφάνισε Β– ΑΑ-2– ΒΒ+3

• Μέχρις_ότου (Α<=0 ή Β>=30)

Η συνθήκη στην μέχρις ότου είναι η άρνηση της συνθήκης στης όσο

Page 38: Δομές Επανάληψηςusers.sch.gr/chtzokas/PDF_domesEpanalipsis.pdf · εντολών και μετά ελέγχεται ξανά η συνθήκη 3. Όταν η συνθήκη

22/11/08 Ανάπτυξη εφαρμογών 12

Μετατροπή της δομής Για σε όσο

• Για Μ από Τ1 μέχρι Τ2 με βήμα β– Εντολή 1– Εντολή 2– …– Εντολή ν

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

• ΜΤ1• Όσο Μ <=Τ2 επανάλαβε

– Εντολή 1– Εντολή 2– …– Εντολή ν– Μ Μ + β

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

Αν Τ1>Τ2 τότε η συνθήκη γίνεται Όσο Μ>=Τ2 και το βήμα β<0

Page 39: Δομές Επανάληψηςusers.sch.gr/chtzokas/PDF_domesEpanalipsis.pdf · εντολών και μετά ελέγχεται ξανά η συνθήκη 3. Όταν η συνθήκη

22/11/08 Ανάπτυξη εφαρμογών 13

Μετατροπή της δομής Για σε όσο

• Για κ από 100 μέχρι 20 με βήμα -5

– Εμφάνισε Κ

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

• Κ100• Όσο Κ>=20 επανάλαβε

– Εμφάνισε Κ– ΚΚ-5

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

Page 40: Δομές Επανάληψηςusers.sch.gr/chtzokas/PDF_domesEpanalipsis.pdf · εντολών και μετά ελέγχεται ξανά η συνθήκη 3. Όταν η συνθήκη

22/11/08 Ανάπτυξη εφαρμογών 14

Μετρητές , αθροιστές• Διάβασμα βάρους 50 κιβωτίων και υπολογισμός μέσης

τιμής• Αλγόριθμος Μετρητές_Αθροιστές

– Μ 0 ! Μετρητής, αρχική τιμή 0– ΆΘροισμα0 ! Αθροιστής, αρχική τιμή 0– Διάβασε Βάρος ! Πρώτη τιμή βάρους– Όσο Μ<=50 επανάλαβε

• Αθροισμα Αθροισμα +Βάρος !Ενημέρωση αθροιστή• ΜΜ+1 !Ενημέρωση μετρητή• Διάβασε Βάρος ! Επόμενη τιμή βάρους

– Τέλος Επανάληψης– Μέση_τιμή Άθροισμα / Μ– Εμφάνισε Μέση_τιμή

• Τέλος Μετρητές_Αθροιστές

Page 41: Δομές Επανάληψηςusers.sch.gr/chtzokas/PDF_domesEpanalipsis.pdf · εντολών και μετά ελέγχεται ξανά η συνθήκη 3. Όταν η συνθήκη

22/11/08 Ανάπτυξη εφαρμογών 15

Πολλαπλασιαστές• Αλγόριθμος Παραγοντικό

– Διάβασε Ν– Ρ1Αν Ν =0 τότε

• Ρ1– Αλλιώς

• Κ1• Όσο Κ <=Ν επανάλαβε

– ΡΡ*Ι– ΚΚ+1

• Τέλος Επανάληψης– Τέλος_αν– Εμφάνισε Ρ

• Τέλος Παραγοντικό

Page 42: Δομές Επανάληψηςusers.sch.gr/chtzokas/PDF_domesEpanalipsis.pdf · εντολών και μετά ελέγχεται ξανά η συνθήκη 3. Όταν η συνθήκη

22/11/08 Ανάπτυξη εφαρμογών 16

Υπολογισμός Μέγιστου πολλών αριθμών γνωστού πλήθους - γνωστού εύρους τιμών

• Να γραφεί αλγόριθμος που αφού διαβάσει τις θερμοκρασίες κάθε μέρας για όλο το χρόνο ( 365 μέρες) για την Αθήνα, να βρίσκει την υψηλότερη και την χαμηλότερη τιμή τους

• Αρχική τιμή μέγιστου η μικρότερη πιθανή τιμή

• Αρχική τιμή ελάχιστου η μεγαλύτερη πιθανή τιμή

• Αλγόριθμος Μέγιστος_ελάχιστος• Μax-273 ! Δεν υπάρχει μικρότερη• Min +100 ! Δεν υπάρχει μεγαλύτερη• Για Κ από 1 μέχρι 365

– Διάβασε Θ– Αν Θ>Max τότε

• MaxΘ– Τέλος_αν– Αν Θ<Min τότε

• MinΘ– Τέλος_αν

• Τέλος_επανάληψης• Εμφάνισε Min, Max• Τέλος Μέγιστος_ελάχιστος

Page 43: Δομές Επανάληψηςusers.sch.gr/chtzokas/PDF_domesEpanalipsis.pdf · εντολών και μετά ελέγχεται ξανά η συνθήκη 3. Όταν η συνθήκη

22/11/08 Ανάπτυξη εφαρμογών 17

Υπολογισμός Μέγιστου πολλών αριθμών γνωστού πλήθους -άγνωστου εύρους τιμών

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

• Αρχικές τιμές μέγιστου και ελάχιστου η πρώτη τιμή

• Αλγόριθμος Μέγιστος_ελάχιστος• Διάβασε Α• Μέγιστος Α• Ελάχιστος Α• Για Κ από 1 μέχρι 49

– Διάβασε Α– Αν Α> Μέγιστος τότε

• ΜέγιστοςΘ– Τέλος_αν– Αν Α < Ελάχιστος τότε

• ΕλάχιστοςΑ– Τέλος_αν

• Τέλος_επανάληψης• Εμφάνισε Μέγιστος, Ελάχιστος• Τέλος Μέγιστος_ελάχιστος

Page 44: Δομές Επανάληψηςusers.sch.gr/chtzokas/PDF_domesEpanalipsis.pdf · εντολών και μετά ελέγχεται ξανά η συνθήκη 3. Όταν η συνθήκη

22/11/08 Ανάπτυξη εφαρμογών 18

Υπολογισμός Μέγιστου πολλών αριθμών άγνωστου πλήθους -άγνωστου εύρους τιμών

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

• Αρχικές τιμές μέγιστου και ελάχιστου η πρώτη τιμή

• Αλγόριθμος Μέγιστος_ελάχιστος• Διάβασε Α• Μέγιστος Α• Ελάχιστος Α• Όσο Α>0 επανάλαβε

– Αν Α> Μέγιστος τότε• ΜέγιστοςΘ

– Τέλος_αν– Αν Α < Ελάχιστος τότε

• ΕλάχιστοςΑ– Τέλος_αν– Διάβασε Α

• Τέλος_επανάληψης• Εμφάνισε Μέγιστος, Ελάχιστος• Τέλος Μέγιστος_ελάχιστος

Page 45: Δομές Επανάληψηςusers.sch.gr/chtzokas/PDF_domesEpanalipsis.pdf · εντολών και μετά ελέγχεται ξανά η συνθήκη 3. Όταν η συνθήκη

22/11/08 Ανάπτυξη εφαρμογών 19

Έλεγχος εγκυρότητας τιμών εισόδου

• Εξασφάλιση έγκυρου βαθμού λυκείου ( 0-20)

• Αρχή επανάληψης– Γράψε ‘ δώσε βαθμό από 0 -20:’– Διάβασε β

• Μέχρις_ότου ( β >=0 και β<=20)

1ος Τρόπος

2ος Τρόπος

Γράψε ‘ δώσε βαθμό από 0 -20:’ Διάβασε β

Όσο ( β<0 ή β>20) επανάλαβε Γράψε ‘ δώσε βαθμό από 0 -20:’ Διάβασε β

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

Page 46: Δομές Επανάληψηςusers.sch.gr/chtzokas/PDF_domesEpanalipsis.pdf · εντολών και μετά ελέγχεται ξανά η συνθήκη 3. Όταν η συνθήκη

22/11/08 Ανάπτυξη εφαρμογών 20

Δημιουργία πίνακα τιμών

• Αλγόριθμος Εμφάνιση• Α0• Β0• Για Ι από 2 μέχρι 12 με βήμα 3

– ΑΑ+Ι– Αν Α<=8 τότε

• Για J από 1 μέχρι Α– ΒΒ+1

• Τέλος_επανάληψης– Τέλος_αν– Γράψε I, J, A, B

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

Φάσεις I J A B

Αρχή ? ? 0 0

1η 2 3 2 2

2η 5 8 7 9

3η 8 8 15 9

4η 11 8 26 9

Έξοδος 14 8 26 9

Page 47: Δομές Επανάληψηςusers.sch.gr/chtzokas/PDF_domesEpanalipsis.pdf · εντολών και μετά ελέγχεται ξανά η συνθήκη 3. Όταν η συνθήκη

22/11/08 Ανάπτυξη εφαρμογών 21

Πολλαπλασιασμός αλά ρωσικάΑρχή

ΔιάβασεΜ1, Μ2

Ρ 0

Μ2>0

Μ2 mod 2=1

ΡΡ + Μ1

Μ1Μ1*2Μ2[Μ2/2]

ΝαιΕμφάνισε

Ρ

Τέλος

όχι

Ναι

όχι

Page 48: Δομές Επανάληψηςusers.sch.gr/chtzokas/PDF_domesEpanalipsis.pdf · εντολών και μετά ελέγχεται ξανά η συνθήκη 3. Όταν η συνθήκη

22/11/08 Ανάπτυξη εφαρμογών 22

Όταν δεν πρέπει να ξεπεράσουμε μια οριακή τιμή

• Διάβασμα βάρους κιβωτίων που το συνολικό βάρος δεν πρέπει να ξεπεράσει το 800 kg και υπολογισμός μέσης τιμής

• Αλγόριθμος Θέμα_3ο – Μ 0 ! Μετρητής, αρχική τιμή 0– ΆΘροισμα0 ! Αθροιστής, αρχική τιμή 0– Διάβασε Βάρος ! Πρώτη τιμή βάρους– Όσο (Άθροισμα+ Βάρος) <=800 επανάλαβε

• Αθροισμα Αθροισμα +Βάρος !Ενημέρωση αθροιστή• ΜΜ+1 !Ενημέρωση μετρητή• Διάβασε Βάρος ! Επόμενη τιμή βάρους

– Τέλος Επανάληψης– Μέση_τιμή Άθροισμα / Μ– Εμφάνισε Μέση_τιμή

• Τέλος Μετρητές_Αθροιστές

Page 49: Δομές Επανάληψηςusers.sch.gr/chtzokas/PDF_domesEpanalipsis.pdf · εντολών και μετά ελέγχεται ξανά η συνθήκη 3. Όταν η συνθήκη

22/11/08 Ανάπτυξη εφαρμογών 23

Όταν δεν πρέπει να ξεπεράσουμε μια οριακή τιμή

• Διάβασμα βάρους κιβωτίων που το συνολικό βάρος δεν πρέπει να ξεπεράσει το 800 kg και υπολογισμός μέσης τιμής

• Αλγόριθμος Θέμα_3ο – Μ 0 ! Μετρητής, αρχική τιμή 0– ΆΘροισμα0 ! Αθροιστής, αρχική τιμή 0– Αρχή_Επανάληψης

• Διάβασε Βάρος ! Πρώτη τιμή βάρους• Αν Αθροισμα +Βάρος<=800 τότε

– Αθροισμα Αθροισμα +Βάρος !Ενημέρωση αθροιστή– ΜΜ+1

• Τέλος_αν – Μέχρις_ότου (Άθροισμα+ Βάρος) >800 – Μέση_τιμή Άθροισμα / Μ– Εμφάνισε Μέση_τιμή

• Τέλος Μετρητές_Αθροιστές

Page 50: Δομές Επανάληψηςusers.sch.gr/chtzokas/PDF_domesEpanalipsis.pdf · εντολών και μετά ελέγχεται ξανά η συνθήκη 3. Όταν η συνθήκη

22/11/08 Ανάπτυξη εφαρμογών 24

Μετατροπή αδόμητου αλγόριθμου σε δομημένο

• 1 Αρχή• 2. Αν Σ1=Ψευδής πήγαινε 9• 3. εντολή2• 4 Αν Σ2 τότε

• Εντολή4• Πήγαινε 10

– Αλλιώς• Εντολή5

– Τέλος_αν• 6 πήγαινε 2• Τέλος

• ΑΡΧΗ• ΟΣΟ (Σ1=Αληθής) επανάλαβε• εντολή2• Αν Σ2 =Αληθής τότε

– Εντολή 4– Σ1 =Ψευδής

• Αλλιώς– Εντολή5

• Τέλος_αν• ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ• ΤΕΛΟΣ

Page 51: Δομές Επανάληψηςusers.sch.gr/chtzokas/PDF_domesEpanalipsis.pdf · εντολών και μετά ελέγχεται ξανά η συνθήκη 3. Όταν η συνθήκη

22/11/08 Ανάπτυξη εφαρμογών 25

Μετατροπή αδόμητου αλγόριθμου σε δομημένο

• 1 Αρχή• 2. Αν Σ1=ΑΛΗΘΉΣ Τότε• εντολή1• Αν Σ2 =ΑΛΗΘΗΣ τότε

• Εντολή2• Εντολή3• Πήγαινε εντολή 5

– Τέλος_αν• εντολή4• Εντολή5

– πήγαινε 2• Τέλος_ΑΝ• Εντολή 6• ΤΕΛΟΣ

• ΑΡΧΗ• ΟΣΟ (Σ1=Αληθής) επανάλαβε• εντολή1• Αν Σ2 =Αληθής τότε

– Εντολή 2– Εντολή 3

• Αλλιώς– Εντολή4

• Τέλος_αν– Εντολή 5

• ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ– Εντολή6

• ΤΕΛΟΣ

Page 52: Δομές Επανάληψηςusers.sch.gr/chtzokas/PDF_domesEpanalipsis.pdf · εντολών και μετά ελέγχεται ξανά η συνθήκη 3. Όταν η συνθήκη

22/11/08 Ανάπτυξη εφαρμογών 26