Ερώτημα πάνω στο θέμα 1.Γ.2 Διαγωνίσματος 06-07 Δ.επανάληψης

Ξεκίνησε από mbathas, 08 Οκτ 2009, 11:00:08 ΠΜ

« προηγούμενο - επόμενο »

mbathas

ΠαράθεσηΔίνεται το ακόλουθο τμήμα αλγορίθμου κωδικοποιημένο σε ψευδογλωσσα:

σ ← 0
μ ← 0
Αρχή_επανάληψης
  Διαβασε χ
  Σ ← Σ +χ
  μ ← μ+1
Μέχρις_ότου (σ>=1000 ή μ=50)

Εμφάνισε Σ, μ

Να γραφτεί τμήμα αλγορίθμου που θα δίνει την ίδια έξοδο για κάθε είσοδο χρησιμοποιώντας τη "Όσο .. επανάλαβε" αντί της εντολής «Αρχή_επανάληψης.. Μέχρις_ότου».

Παραθέτω λύση για σχολιασμό:

Σ<-0
μ<-0
Διάβασε Χ
Σ<-Σ+Χ
μ<-μ+1
¨Οσο (Σ<=1000 και μ<>50) επανάλαβε
     Διάβασε Χ
     Σ<-Σ+Χ
     μ<-μ+1
Τέλος_επανάληψης
Εμφάνισε Σ,μ
Μιχάλης Μπάθας
Μηχανικός Η/Υ Συστημάτων
Καθηγητής Πληροφορικής

P.Tsiotakis


gpapargi

Επειδή έβγαλες μια φορά τις εντολές έξω από το βρόχο είσαι ασφαλής. Ένα μικρό μάλλον τυπογραφικό είναι στην άρνηση της συνθήκης  Οσο (Σ<1000 και μ<>50)

mbathas

Μιχάλης Μπάθας
Μηχανικός Η/Υ Συστημάτων
Καθηγητής Πληροφορικής

amanou

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

Λύση:

Σ<-0
μ<-0
¨Οσο (Σ<1000 και μ<>50) επανάλαβε
     Διάβασε Χ
     Σ<-Σ+Χ
     μ<-μ+1
Τέλος_επανάληψης
Εμφάνισε Σ,μ


Αντώνης Μανουσάκης

Ηλεκτρονικός και Μηχανικός Η/Υ