Το Στέκι των Πληροφορικών

Γενικό Λύκειο => Δομή επανάληψης => Γ΄ Λυκείου => Εντολή ΓΙΑ...ΑΠΟ...ΜΕΧΡΙ => Μήνυμα ξεκίνησε από: ilias_s στις 21 Οκτ 2019, 09:14:51 ΜΜ

Τίτλος: Μετατροπή ΜΕΧΡΙΣ_ΟΤΟΥ σε ΓΙΑ
Αποστολή από: ilias_s στις 21 Οκτ 2019, 09:14:51 ΜΜ
Καλησπέρα!

Θα ήθελα τη γνώμη σας για την Άσκηση 6 Σελ 58 των Οδηγιών Μελέτης

Παραθέτει το τμήμα προγράμματος :

Παράθεσηsum <- 10
  ΔΙΑΒΑΣΕ x
  ΑΡΧΗ_ΕΠΑΝΑΛΗΨΗΣ
    sum <- sum + x
    ΔΙΑΒΑΣΕ x
  ΜΕΧΡΙΣ_ΟΤΟΥ x <= 0

και ζητάει τη μετατροπή σε ΟΣΟ...ΕΠΑΝΑΛΑΒΕ (οκ!) και ΓΙΑ...ΑΠΟ...ΜΕΧΡΙ

Μιλάμε για μη-προκαθορισμένο αριθμό επαναλήψεων οπότε η χρήση της ΓΙΑ...ΑΠΟ...ΜΕΧΡΙ δεν συνίσταται από τον ίδιο τον ορισμό της. Κάποιος που θέλει να κάνει αυτή τη μετατροπή μπορεί μεν, αλλά αυτό προϋποθέτει χρήση της ΓΙΑ με "ανορθόδοξο" τρόπο (αλλαγή της μεταβλητής εντός του βρόγχου κτλ). Εκτός αυτού, το ίδιο το διδακτικό πακέτο, κάπου αναφέρει (στο τετράδιο μαθητή αν θυμάμαι καλά) πως κάτι τέτοιο πρέπει να αποφεύγεται...

Έχει νόημα τώρα αυτό το πράγμα;

Η συγκεκριμένη άσκηση πάντως υπήρχε και στην 1η έκδοση των Οδηγιών Μελέτης και συνεχίζει να υπάρχει και στη 2η.
Τίτλος: Απ: Μετατροπή ΜΕΧΡΙΣ_ΟΤΟΥ σε ΓΙΑ
Αποστολή από: Κωστας τζιαννης στις 21 Οκτ 2019, 09:50:38 ΜΜ
μηπως εννοει οτι πρεπει να το δειξεις ως παραδειγμα στους μαθητες περιπτωσης που δεν μπορεις να το μετατρεψεις σε για?? αλλιως δεν εχει νοημα ειναι λαθος
Τίτλος: Απ: Μετατροπή ΜΕΧΡΙΣ_ΟΤΟΥ σε ΓΙΑ
Αποστολή από: FANBOY_21 στις 21 Οκτ 2019, 10:07:40 ΜΜ
Κι όμως μπορεί να γίνει, αλλά... είναι ΠΟΛΥ ΑΙΣΧΡΗ πρακτική:

Κώδικας [Επιλογή]

  sum <- 10
  ΔΙΑΒΑΣΕ x
  ΓΙΑ i ΑΠΟ 1 ΜΕΧΡΙ 1
    sum <- sum + x
    ΔΙΑΒΑΣΕ x
    ΑΝ ΟΧΙ (x <= 0) ΤΟΤΕ
      i <- 0
    ΤΕΛΟΣ_ΑΝ
  ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ


Χμ... ναι, πιστεύω πως η αποφυγή ή η αρνητική διαπίστωση είναι καλύτερη λύση.
Τίτλος: Απ: Μετατροπή ΜΕΧΡΙΣ_ΟΤΟΥ σε ΓΙΑ
Αποστολή από: Κωστας τζιαννης στις 21 Οκτ 2019, 10:19:42 ΜΜ
γενικα ναι γινεται αλλα στο συγκεκριμενο μαθημα απαγορευεται να αλλαζεις το μετρητη της για
Τίτλος: Απ: Μετατροπή ΜΕΧΡΙΣ_ΟΤΟΥ σε ΓΙΑ
Αποστολή από: FANBOY_21 στις 21 Οκτ 2019, 10:26:36 ΜΜ
Παράθεση από: Κωστας τζιαννης στις 21 Οκτ 2019, 10:19:42 ΜΜ
γενικα ναι γινεται αλλα στο συγκεκριμενο μαθημα απαγορευεται να αλλαζεις το μετρητη της για

Ακριβώς, εξού και γιατί είναι αισχρότατος ο κώδικας που παρέθεσα.

Επίσης, λίγο άσχετο, αλλά νομίζω πως ο αρχικός κώδικας είναι λίγο κακοφτιαγμένος, καθώς αν ο πρώτος αριθμός είναι αρνητικός, δεν τον μετράει για τιμή-φρουρό.
Τίτλος: Απ: Μετατροπή ΜΕΧΡΙΣ_ΟΤΟΥ σε ΓΙΑ
Αποστολή από: Κωστας τζιαννης στις 21 Οκτ 2019, 10:44:51 ΜΜ
Παράθεση από: FANBOY_21 στις 21 Οκτ 2019, 10:26:36 ΜΜ
Ακριβώς, εξού και γιατί είναι αισχρότατος ο κώδικας που παρέθεσα.

Επίσης, λίγο άσχετο, αλλά νομίζω πως ο αρχικός κώδικας είναι λίγο κακοφτιαγμένος, καθώς αν ο πρώτος αριθμός είναι αρνητικός, δεν τον μετράει για τιμή-φρουρό.

βασικα οντως δικιο εχεις. μαλλον τους ξεφυγε τελειως αυτη η ασκηση
Τίτλος: Απ: Μετατροπή ΜΕΧΡΙΣ_ΟΤΟΥ σε ΓΙΑ
Αποστολή από: ApoAntonis στις 22 Οκτ 2019, 09:39:48 ΠΜ
Παράθεση από: Κωστας τζιαννης στις 21 Οκτ 2019, 10:44:51 ΜΜ
βασικα οντως δικιο εχεις. μαλλον τους ξεφυγε τελειως αυτη η ασκηση

Υπάρχει και στην προηγούμενη έκδοση στις ασκήσεις 5 και 6.

Σε ν εκδόσεις από τώρα, θα γίνει διόρθωση.