ΠαράθεσηΔίνεται το ακόλουθο τμήμα αλγορίθμου κωδικοποιημένο σε ψευδογλωσσα:
σ ← 0
μ ← 0
Αρχή_επανάληψης
Διαβασε χ
Σ ← Σ +χ
μ ← μ+1
Μέχρις_ότου (σ>=1000 ή μ=50)
Εμφάνισε Σ, μ
Να γραφτεί τμήμα αλγορίθμου που θα δίνει την ίδια έξοδο για κάθε είσοδο χρησιμοποιώντας τη "Όσο .. επανάλαβε" αντί της εντολής «Αρχή_επανάληψης.. Μέχρις_ότου».
Παραθέτω λύση για σχολιασμό:
Σ<-0
μ<-0
Διάβασε Χ
Σ<-Σ+Χ
μ<-μ+1
¨Οσο (Σ<=1000 και μ<>50) επανάλαβε
Διάβασε Χ
Σ<-Σ+Χ
μ<-μ+1
Τέλος_επανάληψης
Εμφάνισε Σ,μ
ok μου φαίνεται..
Επειδή έβγαλες μια φορά τις εντολές έξω από το βρόχο είσαι ασφαλής. Ένα μικρό μάλλον τυπογραφικό είναι στην άρνηση της συνθήκης Οσο (Σ<1000 και μ<>50)
ναι σωστά μου ξέφυγε το =...
Νομίζω ότι στην συγκεκριμένη περίπτωση δεν χρειάζεται (περιττό) η ομάδα εντολών να μπει και πριν ξεκινήσει η δομή επανάληψης αφού η Όσο εκτελείται τουλάχιστον μια φορά (ικανοποιείται η αρχική συνθήκη). Βέβαια σε άλλες περιπτώσεις που δεν ικανοποιείται ή δεν γνωρίζουμε αν ικανοποιείται (χρήση μεταβλητών) τότε πρέπει να βάζουμε την ομάδα εντολών και πριν ξεκινήσει η επαναληπτική δομή.
Λύση:
Σ<-0
μ<-0
¨Οσο (Σ<1000 και μ<>50) επανάλαβε
Διάβασε Χ
Σ<-Σ+Χ
μ<-μ+1
Τέλος_επανάληψης
Εμφάνισε Σ,μ