Η δομή ΜΕΧΡΙΣ_ΟΤΟΥ

Print
Category: Uncategorised
Published on 04 November 2012
Written by Super User Hits: 2566

 Βασικά (όπως και με την Όσο) και με αυτή δομή εκφράζουμε – επιλύουμε προβλήματα που συνήθως δεν γνωρίζουμε τον αριθμό των επαναλήψεων, αλλά σαφώς και όταν τον γνωρίζουμε. Θα εστιάσουμε σε προβλήματα με άγνωστο αριθμό επαναλήψεων, αλλά κυρίως στις διαφορές και στο τρόπο μετατροπής που έχει η δομή ΜΕΧΡΙΣ_ΟΤΟΥ από την ΟΣΟ, που είναι περισσότερο στην έκφραση των αλγορίθμων και στη συνθήκη της δομής επανάληψης. Θα κάνουμε χρήση των ίδιων προβλημάτων – παραδειγμάτων για γίνουν πιο εύκολα κατανοητές οι διαφορές. 

Ø      Να δίνονται τυχαίοι αριθμοί. Να υπολογίζεται και να εμφανίζεται ο μέσος όρος τους. Ο αλγόριθμος να τερματίζει όταν δοθεί το μηδέν (0).

Αρχή

Sß 0

Mß 0

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

   Διάβασε Α

   SßS + Α

   Μ ß Μ + 1

Μέχρις_ότου Α=0

   ΜΟ ßS

   Γράψε ΜΟ

Τέλος

 

Παρόλο που η μεταβλητή της εντολής εισόδου Διάβασε  εμπλέκεται στη συνθήκη της δομής επανάληψης, μπαίνει μόνο μια φορά μέσαπρώτη στη δομή επανάληψης.

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

Επίσης παρατηρούμε ότι άλλαξε μόνο η συνθήκη, που είναι ακριβώς η αντίθετη (Α=0) της συνθήκης με ΟΣΟ (Α<>0).  Όλες οι άλλες εντολές είναι οι ίδιες.

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

Αρχή

Sß 0

ΠΛ ß 0

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

   Διάβασε Α

   SßS + Α

   ΠΛßΠΛ + 1

Μέχρις_ότου S > 1500

   Γράψε ΠΛ

  ΠΕΡ ßS – 1500

  Γράψε ΠΕΡ

Τέλος

 

Εδώ όλες οι εντολές είναι οι ίδιες και μάλιστα με την ίδια ακριβώς – αντίστοιχη σειρά που ήταν και με την Όσο.

Η εντολή Διάβασε μπαίνει μια φορά μέσα – πρώτη στη δομή επανάληψης, όπως και στην Όσο χωρίς καμία διαφορά και παρατηρούμε ότι άλλαξε μόνο η συνθήκη, που είναι ακριβώς η αντίθετη (S > 1500) της συνθήκης με ΟΣΟ (S<= 1500).

 

 Ø      Να δίνονται οι γενικές βαθμολογίες των μαθητών μιας τάξης. Να βρεθεί και να εμφανιστεί η μέση βαθμολογία της τάξης. Ο αλγόριθμος να τερματίζει όταν δοθεί βαθμολογία εκτός της 20βάθμιας κλίμακας (δηλ. 0-20). 

Αρχή

Sß 0

ΠΛ ß 0

Διάβασε Β

Όσο Β >=0 και Β<=20 επανάλαβε

            SßS+ Β

            ΠΛ ß ΠΛ + 1

            Διάβασε Β

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

            ΜΟ ßS/ ΠΛ

            Γράψε ΜΟ

Τέλος

 

Αρχή

Sß 0

ΠΛ ß 0

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

           Διάβασε Β

            SßS+ Β

            ΠΛ ß ΠΛ + 1

Μέχρις_ότου Β < 0 ή  Β>20

            ΜΟ ßS/ ΠΛ

            Γράψε ΜΟ

Τέλος

 

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

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

 Ø      Να δίνονται οι γενικές βαθμολογίες και τα ονόματα των μαθητών μιας τάξης, που κυμαίνονται υποχρεωτικά από 0 έως και 20. Σε περίπτωση λάθους εισαγωγής βαθμολογίας (δηλ. εκτός [0,20] να δίνεται η δυνατότητα εκ νέου εισαγωγής της βαθμολογίας. Με άλλα λόγια να γίνεται έλεγχος εγκυρότητας των τιμών. Να βρεθεί και να εμφανιστεί η μέση βαθμολογία της τάξης. Ο αλγόριθμος να τερματίζει όταν για επώνυμο μαθητή η λέξη ‘τέλος’ ή το κενό (δηλ. ο κενός χαρακτήρας ‘  ‘).

Αρχή

Sß 0

ΠΛ ß 0

Διάβασε ΟΝ

Όσο ΟΝ <> ‘ΤΕΛΟΣ’ και ΟΝ<>’  ‘ επανάλαβε

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

            Γράψε ‘Δώσε βαθμό’

           ΔιάβασεΒ

    Μέχρις_ότου Β>=0 και Β<=20

            SßS + Β

            ΠΛ ß ΠΛ + 1

            Διάβασε ΟΝ

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

            ΜΟ ßS / ΠΛ

            Γράψε ΜΟ

Τέλος

Αρχή

Sß 0

ΠΛ ß 0

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

     Διάβασε ΟΝ

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

            Γράψε ‘Δώσε βαθμό’

           Διάβασε Β

    Μέχρις_ότου Β>=0 και Β<=20

            SßS + Β

            ΠΛ ß ΠΛ + 1

Μέχρις_ότου ΟΝ = ‘ΤΕΛΟΣ’ ή  ΟΝ= ’ ‘     

            ΜΟ ßS / ΠΛ

            Γράψε ΜΟ

Τέλος

Η εισαγωγή του βαθμού δεν σχετίζεται με την συνθήκη της δομής επανάληψης, όπου ο αλγόριθμος τερματίζει σε περίπτωση εισόδου ονόματος με τις λέξεις ‘τέλος’ και το κενό. Όμως όταν δοθεί βαθμός εκτός 20βάθμιας κλίμακας ο αλγόριθμος δεν τερματίζει, αλλά εμφανίζει μήνυμα και αναμένει νέα εισαγωγή βαθμού, μέχρι να δοθεί η σωστή, αλλιώς δεν συνεχίζει. Έχουμε λοιπόν Έλεγχο Εγκυρότητας ή Ορθότητας τιμών και πρέπει κάθε φορά να μην τη συγχέουμε με το κριτήριο περατότητας του αλγορίθμου.

Ομοίως – μετατροπή της εξωτερικής επανάληψης σε Μέχρις_ότου, όπου παρατηρούμε ότι η συνθήκη της εξωτερικής  δομής επανάληψης είναι ακριβώς η αντίθετη.

 Ø      Να γίνει πρόγραμμα όπου θα δίνεται ένας κρυφός κωδικός (π.χ. ο 1234). Αν δοθεί σωστά να εμφανίζει το μήνυμα «Καλώς Ορίσατε». Σε περίπτωση που δοθεί όμως λάθος να εμφανίζει το μήνυμα «Λάθος κωδικός – Ξαναπροσπαθήστε». Ο αλγόριθμος να τερματίζει αν δοθεί σωστά ή αν δοθεί λάθος 3 φορές.

Πρόγραμμα κωδικός

Σταθερές

            PIN=1234

Μεταβλητές

            Ακέραιες : Ν, ΚΩΔ

Αρχή

Ν ß 0

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

   Γράψε ‘δώσε το κωδικό σου’

   Διάβασε ΚΩΔ

   Αν ΚΩΔ=PIN τότε

            Γράψε ‘ Καλώς Ορίσατε ‘

            Αλλιώς

            Γράψε ‘ Λάθος κωδικός – Ξαναπροσπάθησε‘

   Τέλος_Αν

            Ν ß Ν+1

Μέχρις_ότου  Ν = 3 ή  ΚΩΔ=PIN

Τέλος_προγράμματος