Upload
others
View
5
Download
0
Embed Size (px)
Citation preview
22/11/08 Ανάπτυξη εφαρμογών 1
Δομές Επανάληψης
Όσο – μέχρις ότου – για
22/11/08 Ανάπτυξη εφαρμογών 2
Όσο …. επανάλαβε
Συνθήκη Ομάδα εντολών
Όσο Συνθήκη επανάλαβε
Εντολή1
Εντολή2
……..
Εντολή Ν
Τέλος_ΕπανάληψηςΑληθής
Ψευδής1. Πρώτα ελέγχεται η συνθήκη
2. Αν είναι αληθινή εκτελείται η ομάδα εντολών και μετά ελέγχεται ξανά η συνθήκη
3. Όταν η συνθήκη γίνει ψευδής τερματίζεται η επανάληψη και ο έλεγχος μεταφέρεται στην πρώτη εντολή μετά το τέλος επανάληψης
Ομάδα εντολών
22/11/08 Ανάπτυξη εφαρμογών 3
Εμφάνιση διαδοχικών ακεραίων από 1 μέχρι 100με όσο.. επανάλαβε
• Αλγόριθμος ΟΣΟ1– Κ1– Όσο Κ<=100 επανάλαβε
• Εμφάνισε Κ• ΚΚ+1
– Τέλος Επανάληψης• Τέλος ΟΣΟ1
Κ<=100Αληθής
Ψευδής
αρχή
Κ1
ΚΚ+1
ΕμφάνισεΚ
τέλος
22/11/08 Ανάπτυξη εφαρμογών 4
Μέχρις …ότου
Συνθήκη
Ομάδα εντολών
Αληθής
ψευδής
Αρχή_ Επανάληψης
Εντολή1
Εντολή2
……..
Εντολή Ν
Μέχρις_ότου Συνθήκη = αληθής1. ΠΡΩΤΑ εκτελείται η ομάδα εντολών
ανεξάρτητα από την συνθήκη
2. Ελέγχεται η συνθήκη και αν είναι ψευδής επαναλαμβάνεται η ομάδα εντολών
3. Όταν η συνθήκη γίνει αληθής τερματίζεται η επανάληψη και ο έλεγχος μεταφέρεται στην πρώτη εντολή μετά το τέλος επανάληψης
Ομάδα εντολών
22/11/08 Ανάπτυξη εφαρμογών 5
Εμφάνιση διαδοχικών ακεραίων από 1 μέχρι 100με Μέχρις_ότου
• Αλγόριθμος Μέχρις1– Κ1– Αρχή επανάληψης
• Εμφάνισε Κ• ΚΚ+1
– Μέχρις_ότου Κ>100• Τέλος Μέχρις1
Κ>100
Αληθής
Ψευδής
αρχή
Κ1
ΚΚ+1
ΕμφάνισεΚ
τέλος
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 έχουμε ατέρμονα βρόχο ( άπειρες επαναλήψεις)
22/11/08 Ανάπτυξη εφαρμογών 7
Εμφάνιση διαδοχικών ακεραίων από 1 μέχρι 100με Για ..από … μέχρι..
• Αλγόριθμος Για1
– Για Κ από 1 μέχρι 100• Εμφάνισε Κ
– Τέλος Επανάληψης
• Τέλος Για1
Κ<=100Αληθής
Ψευδής
αρχή
Κ1
ΚΚ+1
ΕμφάνισεΚ
τέλος
22/11/08 Ανάπτυξη εφαρμογών 8
• Όσο … επανάλαβε– Έλεγχος στην αρχή– Εκτέλεση όταν συνθήκη
είναι αληθής– Τερματισμός όταν
συνθήκη γίνει ψευδής– Μπορεί να μην
εκτελεστεί ο βρόχος καμιά φορά ( αρχική συνθήκη ψευδής)
• Μέχρις_ότου– Έλεγχος στο τέλος– Εκτέλεση όταν συνθήκη
είναι ψευδής– Τερματισμός όταν
συνθήκη γίνει αληθής– Οι εντολές του βρόχου
εκτελούνται οπωσδήποτε μια φορά ( γιατί ο έλεγχος γίνεται μετά)
Διαφορές
1. Και οι δυο δομές χρησιμοποιούνται όταν δεν γνωρίζουμε το πλήθος των επαναλήψεων
2. Η συνθήκη πρέπει να ενημερώνεται κάθε φορά που τερματίζονται οι εντολές του βρόχου ώστε κάποια στιγμή να αλλάξει ( Αληθής σε ψευδή για την όσο, ψευδής σε αληθή για την μέχρις ότου). Αν δεν γίνει αυτό θα έχουμε άπειρες επαναλήψεις ( ατέρμων βρόχος)
22/11/08 Ανάπτυξη εφαρμογών 9
Εμφωλευμένοι βρόχοι
• Επιτρεπτοί• Για Κ …
– Για Λ ….• …
– Τέλος επανάληψης– Για Μ ..
• …..– Τέλος επανάληψης
• Τέλος Επανάληψης
• Μη Επιτρεπτοί• Για Κ …
– Για Λ ….• …
• Τέλος επανάληψης• Για Μ ..• …..
– Τέλος επανάληψης• Τέλος Επανάληψης
22/11/08 Ανάπτυξη εφαρμογών 10
Μετατροπή της δομής Όσο σε Μέχρις ότου
• Αρχική τιμή Σ• Όσο Σ επανάλαβε
– Εντολή 1– Εντολή 2– …– Εντολή ν– Ενημέρωση τιμής Σ
• Τέλος επανάληψης
• Αρχική τιμή Σ• Αρχή επανάληψης
– Εντολή 1– Εντολή 2– …– Εντολή ν– Ενημέρωση τιμής Σ
• Μέχρις_ότου ΌΧΙ Σ
Η συνθήκη στην μέχρις ότου είναι η άρνηση της συνθήκης στης όσο
Πχ ( α>0) και (β>0) (α<=0) ή ( β(<=0)
22/11/08 Ανάπτυξη εφαρμογών 11
Μετατροπή της δομής Όσο σε Μέχρις ότου
• Α6• Β10• Όσο (Α>0 και Β <30) επανάλαβε
– Εμφάνισε Α– Εμφάνισε Β– ΑΑ-2– ΒΒ+3
• Τέλος επανάληψης
• Α6• Β10• Αρχή επανάληψης
– Εμφάνισε Α– Εμφάνισε Β– ΑΑ-2– ΒΒ+3
• Μέχρις_ότου (Α<=0 ή Β>=30)
Η συνθήκη στην μέχρις ότου είναι η άρνηση της συνθήκης στης όσο
22/11/08 Ανάπτυξη εφαρμογών 12
Μετατροπή της δομής Για σε όσο
• Για Μ από Τ1 μέχρι Τ2 με βήμα β– Εντολή 1– Εντολή 2– …– Εντολή ν
• Τέλος επανάληψης
• ΜΤ1• Όσο Μ <=Τ2 επανάλαβε
– Εντολή 1– Εντολή 2– …– Εντολή ν– Μ Μ + β
• Τέλος επανάληψης
Αν Τ1>Τ2 τότε η συνθήκη γίνεται Όσο Μ>=Τ2 και το βήμα β<0
22/11/08 Ανάπτυξη εφαρμογών 13
Μετατροπή της δομής Για σε όσο
• Για κ από 100 μέχρι 20 με βήμα -5
– Εμφάνισε Κ
• Τέλος επανάληψης
• Κ100• Όσο Κ>=20 επανάλαβε
– Εμφάνισε Κ– ΚΚ-5
• Τέλος επανάληψης
22/11/08 Ανάπτυξη εφαρμογών 14
Μετρητές , αθροιστές• Διάβασμα βάρους 50 κιβωτίων και υπολογισμός μέσης
τιμής• Αλγόριθμος Μετρητές_Αθροιστές
– Μ 0 ! Μετρητής, αρχική τιμή 0– ΆΘροισμα0 ! Αθροιστής, αρχική τιμή 0– Διάβασε Βάρος ! Πρώτη τιμή βάρους– Όσο Μ<=50 επανάλαβε
• Αθροισμα Αθροισμα +Βάρος !Ενημέρωση αθροιστή• ΜΜ+1 !Ενημέρωση μετρητή• Διάβασε Βάρος ! Επόμενη τιμή βάρους
– Τέλος Επανάληψης– Μέση_τιμή Άθροισμα / Μ– Εμφάνισε Μέση_τιμή
• Τέλος Μετρητές_Αθροιστές
22/11/08 Ανάπτυξη εφαρμογών 15
Πολλαπλασιαστές• Αλγόριθμος Παραγοντικό
– Διάβασε Ν– Ρ1Αν Ν =0 τότε
• Ρ1– Αλλιώς
• Κ1• Όσο Κ <=Ν επανάλαβε
– ΡΡ*Ι– ΚΚ+1
• Τέλος Επανάληψης– Τέλος_αν– Εμφάνισε Ρ
• Τέλος Παραγοντικό
22/11/08 Ανάπτυξη εφαρμογών 16
Υπολογισμός Μέγιστου πολλών αριθμών γνωστού πλήθους - γνωστού εύρους τιμών
• Να γραφεί αλγόριθμος που αφού διαβάσει τις θερμοκρασίες κάθε μέρας για όλο το χρόνο ( 365 μέρες) για την Αθήνα, να βρίσκει την υψηλότερη και την χαμηλότερη τιμή τους
• Αρχική τιμή μέγιστου η μικρότερη πιθανή τιμή
• Αρχική τιμή ελάχιστου η μεγαλύτερη πιθανή τιμή
• Αλγόριθμος Μέγιστος_ελάχιστος• Μax-273 ! Δεν υπάρχει μικρότερη• Min +100 ! Δεν υπάρχει μεγαλύτερη• Για Κ από 1 μέχρι 365
– Διάβασε Θ– Αν Θ>Max τότε
• MaxΘ– Τέλος_αν– Αν Θ<Min τότε
• MinΘ– Τέλος_αν
• Τέλος_επανάληψης• Εμφάνισε Min, Max• Τέλος Μέγιστος_ελάχιστος
22/11/08 Ανάπτυξη εφαρμογών 17
Υπολογισμός Μέγιστου πολλών αριθμών γνωστού πλήθους -άγνωστου εύρους τιμών
• Να γραφεί αλγόριθμος που αφού διαβάσει 50 τυχαίους αριθμούς να βρίσκει τον μεγαλύτερο και τον μικρότερο
• Αρχικές τιμές μέγιστου και ελάχιστου η πρώτη τιμή
• Αλγόριθμος Μέγιστος_ελάχιστος• Διάβασε Α• Μέγιστος Α• Ελάχιστος Α• Για Κ από 1 μέχρι 49
– Διάβασε Α– Αν Α> Μέγιστος τότε
• ΜέγιστοςΘ– Τέλος_αν– Αν Α < Ελάχιστος τότε
• ΕλάχιστοςΑ– Τέλος_αν
• Τέλος_επανάληψης• Εμφάνισε Μέγιστος, Ελάχιστος• Τέλος Μέγιστος_ελάχιστος
22/11/08 Ανάπτυξη εφαρμογών 18
Υπολογισμός Μέγιστου πολλών αριθμών άγνωστου πλήθους -άγνωστου εύρους τιμών
• Να γραφεί αλγόριθμος που αφού διαβάσει 50 τυχαίους θετικούς αριθμούς να βρίσκει τον μεγαλύτερο και τον μικρότερο
• Αρχικές τιμές μέγιστου και ελάχιστου η πρώτη τιμή
• Αλγόριθμος Μέγιστος_ελάχιστος• Διάβασε Α• Μέγιστος Α• Ελάχιστος Α• Όσο Α>0 επανάλαβε
– Αν Α> Μέγιστος τότε• ΜέγιστοςΘ
– Τέλος_αν– Αν Α < Ελάχιστος τότε
• ΕλάχιστοςΑ– Τέλος_αν– Διάβασε Α
• Τέλος_επανάληψης• Εμφάνισε Μέγιστος, Ελάχιστος• Τέλος Μέγιστος_ελάχιστος
22/11/08 Ανάπτυξη εφαρμογών 19
Έλεγχος εγκυρότητας τιμών εισόδου
• Εξασφάλιση έγκυρου βαθμού λυκείου ( 0-20)
• Αρχή επανάληψης– Γράψε ‘ δώσε βαθμό από 0 -20:’– Διάβασε β
• Μέχρις_ότου ( β >=0 και β<=20)
1ος Τρόπος
2ος Τρόπος
Γράψε ‘ δώσε βαθμό από 0 -20:’ Διάβασε β
Όσο ( β<0 ή β>20) επανάλαβε Γράψε ‘ δώσε βαθμό από 0 -20:’ Διάβασε β
Τέλος_επανάληψης
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
22/11/08 Ανάπτυξη εφαρμογών 21
Πολλαπλασιασμός αλά ρωσικάΑρχή
ΔιάβασεΜ1, Μ2
Ρ 0
Μ2>0
Μ2 mod 2=1
ΡΡ + Μ1
Μ1Μ1*2Μ2[Μ2/2]
ΝαιΕμφάνισε
Ρ
Τέλος
όχι
Ναι
όχι
22/11/08 Ανάπτυξη εφαρμογών 22
Όταν δεν πρέπει να ξεπεράσουμε μια οριακή τιμή
• Διάβασμα βάρους κιβωτίων που το συνολικό βάρος δεν πρέπει να ξεπεράσει το 800 kg και υπολογισμός μέσης τιμής
• Αλγόριθμος Θέμα_3ο – Μ 0 ! Μετρητής, αρχική τιμή 0– ΆΘροισμα0 ! Αθροιστής, αρχική τιμή 0– Διάβασε Βάρος ! Πρώτη τιμή βάρους– Όσο (Άθροισμα+ Βάρος) <=800 επανάλαβε
• Αθροισμα Αθροισμα +Βάρος !Ενημέρωση αθροιστή• ΜΜ+1 !Ενημέρωση μετρητή• Διάβασε Βάρος ! Επόμενη τιμή βάρους
– Τέλος Επανάληψης– Μέση_τιμή Άθροισμα / Μ– Εμφάνισε Μέση_τιμή
• Τέλος Μετρητές_Αθροιστές
22/11/08 Ανάπτυξη εφαρμογών 23
Όταν δεν πρέπει να ξεπεράσουμε μια οριακή τιμή
• Διάβασμα βάρους κιβωτίων που το συνολικό βάρος δεν πρέπει να ξεπεράσει το 800 kg και υπολογισμός μέσης τιμής
• Αλγόριθμος Θέμα_3ο – Μ 0 ! Μετρητής, αρχική τιμή 0– ΆΘροισμα0 ! Αθροιστής, αρχική τιμή 0– Αρχή_Επανάληψης
• Διάβασε Βάρος ! Πρώτη τιμή βάρους• Αν Αθροισμα +Βάρος<=800 τότε
– Αθροισμα Αθροισμα +Βάρος !Ενημέρωση αθροιστή– ΜΜ+1
• Τέλος_αν – Μέχρις_ότου (Άθροισμα+ Βάρος) >800 – Μέση_τιμή Άθροισμα / Μ– Εμφάνισε Μέση_τιμή
• Τέλος Μετρητές_Αθροιστές
22/11/08 Ανάπτυξη εφαρμογών 24
Μετατροπή αδόμητου αλγόριθμου σε δομημένο
• 1 Αρχή• 2. Αν Σ1=Ψευδής πήγαινε 9• 3. εντολή2• 4 Αν Σ2 τότε
• Εντολή4• Πήγαινε 10
– Αλλιώς• Εντολή5
– Τέλος_αν• 6 πήγαινε 2• Τέλος
• ΑΡΧΗ• ΟΣΟ (Σ1=Αληθής) επανάλαβε• εντολή2• Αν Σ2 =Αληθής τότε
– Εντολή 4– Σ1 =Ψευδής
• Αλλιώς– Εντολή5
• Τέλος_αν• ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ• ΤΕΛΟΣ
22/11/08 Ανάπτυξη εφαρμογών 25
Μετατροπή αδόμητου αλγόριθμου σε δομημένο
• 1 Αρχή• 2. Αν Σ1=ΑΛΗΘΉΣ Τότε• εντολή1• Αν Σ2 =ΑΛΗΘΗΣ τότε
• Εντολή2• Εντολή3• Πήγαινε εντολή 5
– Τέλος_αν• εντολή4• Εντολή5
– πήγαινε 2• Τέλος_ΑΝ• Εντολή 6• ΤΕΛΟΣ
• ΑΡΧΗ• ΟΣΟ (Σ1=Αληθής) επανάλαβε• εντολή1• Αν Σ2 =Αληθής τότε
– Εντολή 2– Εντολή 3
• Αλλιώς– Εντολή4
• Τέλος_αν– Εντολή 5
• ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ– Εντολή6
• ΤΕΛΟΣ
22/11/08 Ανάπτυξη εφαρμογών 26
22/11/08 Ανάπτυξη εφαρμογών 1
Δομές Επανάληψης
Όσο – μέχρις ότου – για
22/11/08 Ανάπτυξη εφαρμογών 2
Όσο …. επανάλαβε
Συνθήκη Ομάδα εντολών
Όσο Συνθήκη επανάλαβε
Εντολή1
Εντολή2
……..
Εντολή Ν
Τέλος_ΕπανάληψηςΑληθής
Ψευδής1. Πρώτα ελέγχεται η συνθήκη
2. Αν είναι αληθινή εκτελείται η ομάδα εντολών και μετά ελέγχεται ξανά η συνθήκη
3. Όταν η συνθήκη γίνει ψευδής τερματίζεται η επανάληψη και ο έλεγχος μεταφέρεται στην πρώτη εντολή μετά το τέλος επανάληψης
Ομάδα εντολών
22/11/08 Ανάπτυξη εφαρμογών 3
Εμφάνιση διαδοχικών ακεραίων από 1 μέχρι 100με όσο.. επανάλαβε
• Αλγόριθμος ΟΣΟ1– Κ1– Όσο Κ<=100 επανάλαβε
• Εμφάνισε Κ• ΚΚ+1
– Τέλος Επανάληψης• Τέλος ΟΣΟ1
Κ<=100Αληθής
Ψευδής
αρχή
Κ1
ΚΚ+1
ΕμφάνισεΚ
τέλος
22/11/08 Ανάπτυξη εφαρμογών 4
Μέχρις …ότου
Συνθήκη
Ομάδα εντολών
Αληθής
ψευδής
Αρχή_ Επανάληψης
Εντολή1
Εντολή2
……..
Εντολή Ν
Μέχρις_ότου Συνθήκη = αληθής1. ΠΡΩΤΑ εκτελείται η ομάδα εντολών
ανεξάρτητα από την συνθήκη
2. Ελέγχεται η συνθήκη και αν είναι ψευδής επαναλαμβάνεται η ομάδα εντολών
3. Όταν η συνθήκη γίνει αληθής τερματίζεται η επανάληψη και ο έλεγχος μεταφέρεται στην πρώτη εντολή μετά το τέλος επανάληψης
Ομάδα εντολών
22/11/08 Ανάπτυξη εφαρμογών 5
Εμφάνιση διαδοχικών ακεραίων από 1 μέχρι 100με Μέχρις_ότου
• Αλγόριθμος Μέχρις1– Κ1– Αρχή επανάληψης
• Εμφάνισε Κ• ΚΚ+1
– Μέχρις_ότου Κ>100• Τέλος Μέχρις1
Κ>100
Αληθής
Ψευδής
αρχή
Κ1
ΚΚ+1
ΕμφάνισεΚ
τέλος
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 έχουμε ατέρμονα βρόχο ( άπειρες επαναλήψεις)
22/11/08 Ανάπτυξη εφαρμογών 7
Εμφάνιση διαδοχικών ακεραίων από 1 μέχρι 100με Για ..από … μέχρι..
• Αλγόριθμος Για1
– Για Κ από 1 μέχρι 100• Εμφάνισε Κ
– Τέλος Επανάληψης
• Τέλος Για1
Κ<=100Αληθής
Ψευδής
αρχή
Κ1
ΚΚ+1
ΕμφάνισεΚ
τέλος
22/11/08 Ανάπτυξη εφαρμογών 8
• Όσο … επανάλαβε– Έλεγχος στην αρχή– Εκτέλεση όταν συνθήκη
είναι αληθής– Τερματισμός όταν
συνθήκη γίνει ψευδής– Μπορεί να μην
εκτελεστεί ο βρόχος καμιά φορά ( αρχική συνθήκη ψευδής)
• Μέχρις_ότου– Έλεγχος στο τέλος– Εκτέλεση όταν συνθήκη
είναι ψευδής– Τερματισμός όταν
συνθήκη γίνει αληθής– Οι εντολές του βρόχου
εκτελούνται οπωσδήποτε μια φορά ( γιατί ο έλεγχος γίνεται μετά)
Διαφορές
1. Και οι δυο δομές χρησιμοποιούνται όταν δεν γνωρίζουμε το πλήθος των επαναλήψεων
2. Η συνθήκη πρέπει να ενημερώνεται κάθε φορά που τερματίζονται οι εντολές του βρόχου ώστε κάποια στιγμή να αλλάξει ( Αληθής σε ψευδή για την όσο, ψευδής σε αληθή για την μέχρις ότου). Αν δεν γίνει αυτό θα έχουμε άπειρες επαναλήψεις ( ατέρμων βρόχος)
22/11/08 Ανάπτυξη εφαρμογών 9
Εμφωλευμένοι βρόχοι
• Επιτρεπτοί• Για Κ …
– Για Λ ….• …
– Τέλος επανάληψης– Για Μ ..
• …..– Τέλος επανάληψης
• Τέλος Επανάληψης
• Μη Επιτρεπτοί• Για Κ …
– Για Λ ….• …
• Τέλος επανάληψης• Για Μ ..• …..
– Τέλος επανάληψης• Τέλος Επανάληψης
22/11/08 Ανάπτυξη εφαρμογών 10
Μετατροπή της δομής Όσο σε Μέχρις ότου
• Αρχική τιμή Σ• Όσο Σ επανάλαβε
– Εντολή 1– Εντολή 2– …– Εντολή ν– Ενημέρωση τιμής Σ
• Τέλος επανάληψης
• Αρχική τιμή Σ• Αρχή επανάληψης
– Εντολή 1– Εντολή 2– …– Εντολή ν– Ενημέρωση τιμής Σ
• Μέχρις_ότου ΌΧΙ Σ
Η συνθήκη στην μέχρις ότου είναι η άρνηση της συνθήκης στης όσο
Πχ ( α>0) και (β>0) (α<=0) ή ( β(<=0)
22/11/08 Ανάπτυξη εφαρμογών 11
Μετατροπή της δομής Όσο σε Μέχρις ότου
• Α6• Β10• Όσο (Α>0 και Β <30) επανάλαβε
– Εμφάνισε Α– Εμφάνισε Β– ΑΑ-2– ΒΒ+3
• Τέλος επανάληψης
• Α6• Β10• Αρχή επανάληψης
– Εμφάνισε Α– Εμφάνισε Β– ΑΑ-2– ΒΒ+3
• Μέχρις_ότου (Α<=0 ή Β>=30)
Η συνθήκη στην μέχρις ότου είναι η άρνηση της συνθήκης στης όσο
22/11/08 Ανάπτυξη εφαρμογών 12
Μετατροπή της δομής Για σε όσο
• Για Μ από Τ1 μέχρι Τ2 με βήμα β– Εντολή 1– Εντολή 2– …– Εντολή ν
• Τέλος επανάληψης
• ΜΤ1• Όσο Μ <=Τ2 επανάλαβε
– Εντολή 1– Εντολή 2– …– Εντολή ν– Μ Μ + β
• Τέλος επανάληψης
Αν Τ1>Τ2 τότε η συνθήκη γίνεται Όσο Μ>=Τ2 και το βήμα β<0
22/11/08 Ανάπτυξη εφαρμογών 13
Μετατροπή της δομής Για σε όσο
• Για κ από 100 μέχρι 20 με βήμα -5
– Εμφάνισε Κ
• Τέλος επανάληψης
• Κ100• Όσο Κ>=20 επανάλαβε
– Εμφάνισε Κ– ΚΚ-5
• Τέλος επανάληψης
22/11/08 Ανάπτυξη εφαρμογών 14
Μετρητές , αθροιστές• Διάβασμα βάρους 50 κιβωτίων και υπολογισμός μέσης
τιμής• Αλγόριθμος Μετρητές_Αθροιστές
– Μ 0 ! Μετρητής, αρχική τιμή 0– ΆΘροισμα0 ! Αθροιστής, αρχική τιμή 0– Διάβασε Βάρος ! Πρώτη τιμή βάρους– Όσο Μ<=50 επανάλαβε
• Αθροισμα Αθροισμα +Βάρος !Ενημέρωση αθροιστή• ΜΜ+1 !Ενημέρωση μετρητή• Διάβασε Βάρος ! Επόμενη τιμή βάρους
– Τέλος Επανάληψης– Μέση_τιμή Άθροισμα / Μ– Εμφάνισε Μέση_τιμή
• Τέλος Μετρητές_Αθροιστές
22/11/08 Ανάπτυξη εφαρμογών 15
Πολλαπλασιαστές• Αλγόριθμος Παραγοντικό
– Διάβασε Ν– Ρ1Αν Ν =0 τότε
• Ρ1– Αλλιώς
• Κ1• Όσο Κ <=Ν επανάλαβε
– ΡΡ*Ι– ΚΚ+1
• Τέλος Επανάληψης– Τέλος_αν– Εμφάνισε Ρ
• Τέλος Παραγοντικό
22/11/08 Ανάπτυξη εφαρμογών 16
Υπολογισμός Μέγιστου πολλών αριθμών γνωστού πλήθους - γνωστού εύρους τιμών
• Να γραφεί αλγόριθμος που αφού διαβάσει τις θερμοκρασίες κάθε μέρας για όλο το χρόνο ( 365 μέρες) για την Αθήνα, να βρίσκει την υψηλότερη και την χαμηλότερη τιμή τους
• Αρχική τιμή μέγιστου η μικρότερη πιθανή τιμή
• Αρχική τιμή ελάχιστου η μεγαλύτερη πιθανή τιμή
• Αλγόριθμος Μέγιστος_ελάχιστος• Μax-273 ! Δεν υπάρχει μικρότερη• Min +100 ! Δεν υπάρχει μεγαλύτερη• Για Κ από 1 μέχρι 365
– Διάβασε Θ– Αν Θ>Max τότε
• MaxΘ– Τέλος_αν– Αν Θ<Min τότε
• MinΘ– Τέλος_αν
• Τέλος_επανάληψης• Εμφάνισε Min, Max• Τέλος Μέγιστος_ελάχιστος
22/11/08 Ανάπτυξη εφαρμογών 17
Υπολογισμός Μέγιστου πολλών αριθμών γνωστού πλήθους -άγνωστου εύρους τιμών
• Να γραφεί αλγόριθμος που αφού διαβάσει 50 τυχαίους αριθμούς να βρίσκει τον μεγαλύτερο και τον μικρότερο
• Αρχικές τιμές μέγιστου και ελάχιστου η πρώτη τιμή
• Αλγόριθμος Μέγιστος_ελάχιστος• Διάβασε Α• Μέγιστος Α• Ελάχιστος Α• Για Κ από 1 μέχρι 49
– Διάβασε Α– Αν Α> Μέγιστος τότε
• ΜέγιστοςΘ– Τέλος_αν– Αν Α < Ελάχιστος τότε
• ΕλάχιστοςΑ– Τέλος_αν
• Τέλος_επανάληψης• Εμφάνισε Μέγιστος, Ελάχιστος• Τέλος Μέγιστος_ελάχιστος
22/11/08 Ανάπτυξη εφαρμογών 18
Υπολογισμός Μέγιστου πολλών αριθμών άγνωστου πλήθους -άγνωστου εύρους τιμών
• Να γραφεί αλγόριθμος που αφού διαβάσει 50 τυχαίους θετικούς αριθμούς να βρίσκει τον μεγαλύτερο και τον μικρότερο
• Αρχικές τιμές μέγιστου και ελάχιστου η πρώτη τιμή
• Αλγόριθμος Μέγιστος_ελάχιστος• Διάβασε Α• Μέγιστος Α• Ελάχιστος Α• Όσο Α>0 επανάλαβε
– Αν Α> Μέγιστος τότε• ΜέγιστοςΘ
– Τέλος_αν– Αν Α < Ελάχιστος τότε
• ΕλάχιστοςΑ– Τέλος_αν– Διάβασε Α
• Τέλος_επανάληψης• Εμφάνισε Μέγιστος, Ελάχιστος• Τέλος Μέγιστος_ελάχιστος
22/11/08 Ανάπτυξη εφαρμογών 19
Έλεγχος εγκυρότητας τιμών εισόδου
• Εξασφάλιση έγκυρου βαθμού λυκείου ( 0-20)
• Αρχή επανάληψης– Γράψε ‘ δώσε βαθμό από 0 -20:’– Διάβασε β
• Μέχρις_ότου ( β >=0 και β<=20)
1ος Τρόπος
2ος Τρόπος
Γράψε ‘ δώσε βαθμό από 0 -20:’ Διάβασε β
Όσο ( β<0 ή β>20) επανάλαβε Γράψε ‘ δώσε βαθμό από 0 -20:’ Διάβασε β
Τέλος_επανάληψης
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
22/11/08 Ανάπτυξη εφαρμογών 21
Πολλαπλασιασμός αλά ρωσικάΑρχή
ΔιάβασεΜ1, Μ2
Ρ 0
Μ2>0
Μ2 mod 2=1
ΡΡ + Μ1
Μ1Μ1*2Μ2[Μ2/2]
ΝαιΕμφάνισε
Ρ
Τέλος
όχι
Ναι
όχι
22/11/08 Ανάπτυξη εφαρμογών 22
Όταν δεν πρέπει να ξεπεράσουμε μια οριακή τιμή
• Διάβασμα βάρους κιβωτίων που το συνολικό βάρος δεν πρέπει να ξεπεράσει το 800 kg και υπολογισμός μέσης τιμής
• Αλγόριθμος Θέμα_3ο – Μ 0 ! Μετρητής, αρχική τιμή 0– ΆΘροισμα0 ! Αθροιστής, αρχική τιμή 0– Διάβασε Βάρος ! Πρώτη τιμή βάρους– Όσο (Άθροισμα+ Βάρος) <=800 επανάλαβε
• Αθροισμα Αθροισμα +Βάρος !Ενημέρωση αθροιστή• ΜΜ+1 !Ενημέρωση μετρητή• Διάβασε Βάρος ! Επόμενη τιμή βάρους
– Τέλος Επανάληψης– Μέση_τιμή Άθροισμα / Μ– Εμφάνισε Μέση_τιμή
• Τέλος Μετρητές_Αθροιστές
22/11/08 Ανάπτυξη εφαρμογών 23
Όταν δεν πρέπει να ξεπεράσουμε μια οριακή τιμή
• Διάβασμα βάρους κιβωτίων που το συνολικό βάρος δεν πρέπει να ξεπεράσει το 800 kg και υπολογισμός μέσης τιμής
• Αλγόριθμος Θέμα_3ο – Μ 0 ! Μετρητής, αρχική τιμή 0– ΆΘροισμα0 ! Αθροιστής, αρχική τιμή 0– Αρχή_Επανάληψης
• Διάβασε Βάρος ! Πρώτη τιμή βάρους• Αν Αθροισμα +Βάρος<=800 τότε
– Αθροισμα Αθροισμα +Βάρος !Ενημέρωση αθροιστή– ΜΜ+1
• Τέλος_αν – Μέχρις_ότου (Άθροισμα+ Βάρος) >800 – Μέση_τιμή Άθροισμα / Μ– Εμφάνισε Μέση_τιμή
• Τέλος Μετρητές_Αθροιστές
22/11/08 Ανάπτυξη εφαρμογών 24
Μετατροπή αδόμητου αλγόριθμου σε δομημένο
• 1 Αρχή• 2. Αν Σ1=Ψευδής πήγαινε 9• 3. εντολή2• 4 Αν Σ2 τότε
• Εντολή4• Πήγαινε 10
– Αλλιώς• Εντολή5
– Τέλος_αν• 6 πήγαινε 2• Τέλος
• ΑΡΧΗ• ΟΣΟ (Σ1=Αληθής) επανάλαβε• εντολή2• Αν Σ2 =Αληθής τότε
– Εντολή 4– Σ1 =Ψευδής
• Αλλιώς– Εντολή5
• Τέλος_αν• ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ• ΤΕΛΟΣ
22/11/08 Ανάπτυξη εφαρμογών 25
Μετατροπή αδόμητου αλγόριθμου σε δομημένο
• 1 Αρχή• 2. Αν Σ1=ΑΛΗΘΉΣ Τότε• εντολή1• Αν Σ2 =ΑΛΗΘΗΣ τότε
• Εντολή2• Εντολή3• Πήγαινε εντολή 5
– Τέλος_αν• εντολή4• Εντολή5
– πήγαινε 2• Τέλος_ΑΝ• Εντολή 6• ΤΕΛΟΣ
• ΑΡΧΗ• ΟΣΟ (Σ1=Αληθής) επανάλαβε• εντολή1• Αν Σ2 =Αληθής τότε
– Εντολή 2– Εντολή 3
• Αλλιώς– Εντολή4
• Τέλος_αν– Εντολή 5
• ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ– Εντολή6
• ΤΕΛΟΣ
22/11/08 Ανάπτυξη εφαρμογών 26