Δύσκολη μετατροπή

Ξεκίνησε από nicolas, 25 Ιαν 2020, 04:15:01 ΜΜ

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

nicolas

Καλησπέρα σας
Θα χρειαστώ την πολύτιμη βοήθειά σας στο παρακάτω
Σε κάποιο σχολείο ο καθηγητής έδωσε την παρακάτω άσκηση σε διαγώνισμα:

Άσκηση
Να ξαναγράψετε το παρακάτω τμήμα κώδικα με τη δομή επανάληψης Για...από...μέχρι

Κώδικας: javascript
Διάβασε Χ, Υ
Α <-- Χ
Αρχή_Επανάληψης
        Α <-- Α + 2
        Αν Α>5 τότε 
             Β <-- Α + 2
             Γράψε  Β, Α
        Τέλος_αν
Μέχρις_ότου Α >= Υ


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

thanos_xg

Με την προϋπόθεση ότι οι μεταβλητές είναι ακέραιες τότε μια πρόταση μετατροπής είναι:

    Διάβασε Χ, Υ
    Α <-- Χ
    Α <-- Α + 2
    Αν Α>5 τότε
        Β <-- Α + 2
        Γράψε  Β, Α
    Τέλος_αν
    Για Α απο Χ+2 μέχρι Υ-1 με βήμα 2
            Αν Α+2>5 τότε
                 Β <-- (Α + 2)+2
                 Γράψε  Β, Α+2
            Τέλος_αν
    Τέλος επανάληψης

Αν οι μεταβλητές δεν είναι ακέραιες χρειάζεται να γνωρίζουμε την ακρίβεια δεκαδικών ψηφίων των πραγματικών μεταβλητών. Αυτό χρειάζεται για να εκτιμήσουμε την τελική τιμή της Για.

Αν Μεταβλητές ακέραιες η τελική τιμή θα είναι Υ-1
Αν έχω μέγιστη ακρίβεια 2 δεκαδικών τότε τελική τιμή Υ-0.01 κλπ
Θανάσης Χ.

akalest0s

#2
ΔΙΑΒΑΣΕ Χ, Υ
Α <- Χ
    ΑΝ Α > 5 ΤΟΤΕ
      β <- Α + 2
      ΓΡΑΨΕ β, Α
    ΤΕΛΟΣ_ΑΝ
  ΓΙΑ Α ΑΠΟ Χ + 2 ΜΕΧΡΙ Υ + 1 ΜΕ_ΒΗΜΑ 2
    ΑΝ Α > 5 ΤΟΤΕ
      β <- Α + 2
      ΓΡΑΨΕ β, Α
    ΤΕΛΟΣ_ΑΝ
  ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ
είπε ο Θανάσης, "Με την προϋπόθεση ότι οι μεταβλητές είναι ακέραιες".
edit -> διόρθωσα τη σκέψη μου, βάσει του κώδικα του Θανάση, για να συμπεριλάβω την περίπτωση όπου το Α ξεκινάει ήδη μεγαλύτερο του 5.
Θανάση γιατί στην λύση σου περνάς τα +2 παντού;


Οκ, μετά από μπόλικες δοκιμές,... ας μείνουμε στην παραπάνω λύση  ;D ::)
(ίσως η πιο εξεζητημένη περίπτωση μετατροπής που έχω συναντήσει)
"Abstraction is not the first stage, but the last stage, in a mathematical development." MK
"I don't want to write about a high level thing, unless I fully understand about a low level thing" DK

ApoAntonis

#3

edit:
[ignore]
Δεν είναι δύσκολη, είναι αδύνατη με αυτήν την εκφώνηση και μόνο.

Η δομή ΓΙΑ, δεν κάνει για κάθε ζεύγος Χ,Υ επαναλήψεις. [/ignore :) ]

akalest0s

Αδύνατη λόγω του ότι δεν ορίζονται οι τύποι των μεταβλητών Χ, Υ;
γιατί κατά τα άλλα, η λύση του Θανάση προβλέπει κάθε συνδυασμό Χ, Υ.
"Abstraction is not the first stage, but the last stage, in a mathematical development." MK
"I don't want to write about a high level thing, unless I fully understand about a low level thing" DK

ApoAntonis

Παράθεση από: ApoAntonis στις 25 Ιαν 2020, 05:20:39 ΜΜ
Η δομή ΓΙΑ, δεν κάνει για κάθε ζεύγος Χ,Υ επαναλήψεις.

με αυτό που έγραψα...ούτε εγώ δεν καταλαβαίνω τι εννοώ  :D

ο thanos_xg έχει δίκιο