Αποστολέας Θέμα: Δύσκολη μετατροπή  (Αναγνώστηκε 932 φορές)

nicolas

  • Νέος
  • *
  • Μηνύματα: 1
Δύσκολη μετατροπή
« στις: 25 Ιαν 2020, 04:15:01 μμ »
Καλησπέρα σας
Θα χρειαστώ την πολύτιμη βοήθειά σας στο παρακάτω
Σε κάποιο σχολείο ο καθηγητής έδωσε την παρακάτω άσκηση σε διαγώνισμα:

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

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

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

thanos_xg

  • Ομάδα διαγωνισμάτων 2010
  • *
  • Μηνύματα: 23
Απ: Δύσκολη μετατροπή
« Απάντηση #1 στις: 25 Ιαν 2020, 04:25:12 μμ »
Με την προϋπόθεση ότι οι μεταβλητές είναι ακέραιες τότε μια πρόταση μετατροπής είναι:

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

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

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

akalest0s

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


Οκ, μετά από μπόλικες δοκιμές,... ας μείνουμε στην παραπάνω λύση  ;D ::)
(ίσως η πιο εξεζητημένη περίπτωση μετατροπής που έχω συναντήσει)
« Τελευταία τροποποίηση: 25 Ιαν 2020, 05:10:39 μμ από 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

  • Δεινόσαυρος
  • *****
  • Μηνύματα: 124
Απ: Δύσκολη μετατροπή
« Απάντηση #3 στις: 25 Ιαν 2020, 05:20:39 μμ »

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

Η δομή ΓΙΑ, δεν κάνει για κάθε ζεύγος Χ,Υ επαναλήψεις. [/ignore :) ]
« Τελευταία τροποποίηση: 25 Ιαν 2020, 11:14:36 μμ από ApoAntonis »

akalest0s

  • Δεινόσαυρος
  • *****
  • Μηνύματα: 247
Απ: Δύσκολη μετατροπή
« Απάντηση #4 στις: 25 Ιαν 2020, 05:28:48 μμ »
Αδύνατη λόγω του ότι δεν ορίζονται οι τύποι των μεταβλητών Χ, Υ;
γιατί κατά τα άλλα, η λύση του Θανάση προβλέπει κάθε συνδυασμό Χ, Υ.
"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

  • Δεινόσαυρος
  • *****
  • Μηνύματα: 124
Απ: Δύσκολη μετατροπή
« Απάντηση #5 στις: 25 Ιαν 2020, 11:12:43 μμ »
Η δομή ΓΙΑ, δεν κάνει για κάθε ζεύγος Χ,Υ επαναλήψεις.

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

ο thanos_xg έχει δίκιο




Σάκης Δημόπουλος

  • Βετεράνος
  • ****
  • Μηνύματα: 94
  • Dimopoulos Informatics Tutorials
    • Dimopoulos Informatics Tutorials