Επαναλητική Δομή Για

Ξεκίνησε από marg, 09 Μαΐου 2006, 07:49:24 ΜΜ

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

marg

Τι θα εμφανίσει το παρακάτω τμήμα αλγορίθμου;

Για Κ από 1 μέχρι 4 με_βήμα -1
Εμφάνισε K
Tέλος_Επανάληψης

Ενα εξωσχολικό βιβλίο ο συγγραφέας υποστηρίζει ότι θα εμφανιστούν άπειρες τιμές (1, 0, -1 ,...).
Εγώ πιστεύω ότι δεν θα εμφανιστεί καμία τιμή (δεν θα εκτελεστεί καμία φορά η επανάληψη και κατά συνέπεια η εντολή Εμφάνισε).
Ποια είναι η άποψή σας;

filippos

Το εξωσχολικό βιβλίο έχει λάθος.

Αυτό που λες εσύ είναι το σωστό.

Όταν το βήμα είναι αρνητικό οι τιμές "κατεβαίνουν".  Η "συνθήκη συνέχειας" ελέγχει ότι η μεταβλητή ελέγχου έχει τιμή μεγαλύτερη ή ίση από την τιμή τερματισμού, επομένως ο ισοδύναμος αλγόριθμος χρησιμοποιώντας τη δομή ΟΣΟ είναι ο:

Κώδικας: ΑΛΓΟΡΙΘΜΟΣ
κ<- 1
όσο κ >= 4 επανάλαβε
  Εμφάνισε κ
  κ <- κ -1
τελος_επανάληψης


που εύκλολα φαίνεται ότι δε θα εκτελεστεί καμμία φορά αφού εξ αρχής το κ (1) δεν είναι μεγαλύτερο (ή ίσο) του 4

marg

Ευχαριστώ για την άμεση απάντηση

nikosx

Καλησπέρα,

έστω ότι δίνουν στα παιδιά τον παρακάτω αλγόριθμο για να βρεθεί ο αριθμός των επαναλήψεων του βρόγχου ή τι θα εμφανίσει:

α <-- 8
Όσο α <= 12 επανάλαβε
  Εμφάνισε α
  α <-- α - 4
Τέλος_Επανάληψης

Ποια θα ήταν η απάντηση; Τι λέτε;

Από την άλλη ο παραπάνω αλγόριθμος (αν μπορούμε να τον ονομάσουμε έτσι) είναι ισοδύναμος με τον παρακάτω;

Για α από 8 μέχρι 12 με_βήμα -4
  Εμφάνισε α
Τέλος_επανάληψης

Νίκος Ξ.
Νίκος Ξένος
Καθηγητής Πληροφορικής
nxenos@sch.gr

petepan

ΣΤΗ ΠΡΩΤΗ ΠΕΡΙΠΤΩΣΗ ΘΑ ΕΚΤΕΛΕΣΤΟΥΝ ΑΠΕΙΡΕΣ ΕΠΑΝΑΛΗΨΕΙΣ (ΔΕΝ ΙΚΑΝΟΠΟΙΕΙΤΑΙ ΤΟ ΚΡΙΤΗΡΙΟ ΤΗΣ ΠΕΡΑΤΟΤΗΤΑΣ).
Ο ΔΕΥΤΕΡΟΣ ΑΛΓΟΡΙΘΜΟΣ ΔΕΝ ΕΙΝΑΙ ΙΣΟΔΥΝΑΜΟΣ ΜΕ ΤΟΝ ΠΡΩΤΟ ΑΦΟΥ ΣΥΜΦΩΝΑ ΜΕ ΤΟ ΒΙΒΛΙΟ ΟΤΑΝ ΤΟ ΒΗΜΑ ΕΙΝΑΙ ΑΡΝΗΤΙΚΟ Η ΣΥΝΘΗΚΗ ΠΟΥ ΕΛΕΓΧΕΤΑΙ ΕΙΝΑΙ Η ΕΞΗΣ:
ΟΣΟ  ΤΙΜΗ ΜΕΤΡΗΤΗ >= ΤΕΛΙΚΗ ΤΙΜΗ  ΕΠΑΝΑΛΑΒΕ.
ΕΠΟΜΕΝΩΣ Η ΕΝΤΟΛΗ «ΓΙΑ Α ΑΠΟ 8 ΜΕΧΡΙ 12 ΜΕ_ΒΗΜΑ -4»  ΔΕΝ ΘΑ ΕΚΤΕΛΕΣΤΕΙ ΟΥΔΕΜΙΑ ΦΟΡΑ.

nik

marg o suggrafeas exei dikio.  tha efmanistoun apeires times

P.Tsiotakis

Η δομή:

Για Κ από 1 μέχρι 4 με_βήμα -1
Εμφάνισε K
Tέλος_Επανάληψης

είναι ισοδύναμη με τη δομή Όσο

κ<- 1
Όσο κ >= 4 επανάλαβε
Εμφάνισε κ
κ <- κ -1
Τέλος_επανάληψης

Επομένως και στις δυο δεν θα εκτελεστεί καμία επανάληψη