Μετατροπή ΜΕΧΡΙΣ_ΟΤΟΥ σε ΓΙΑ

Ξεκίνησε από ilias_s, 21 Οκτ 2019, 09:14:51 ΜΜ

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

ilias_s

Καλησπέρα!

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

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

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

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

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

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

Η συγκεκριμένη άσκηση πάντως υπήρχε και στην 1η έκδοση των Οδηγιών Μελέτης και συνεχίζει να υπάρχει και στη 2η.

Κωστας τζιαννης

μηπως εννοει οτι πρεπει να το δειξεις ως παραδειγμα στους μαθητες περιπτωσης που δεν μπορεις να το μετατρεψεις σε για?? αλλιως δεν εχει νοημα ειναι λαθος

FANBOY_21

Κι όμως μπορεί να γίνει, αλλά... είναι ΠΟΛΥ ΑΙΣΧΡΗ πρακτική:

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


Χμ... ναι, πιστεύω πως η αποφυγή ή η αρνητική διαπίστωση είναι καλύτερη λύση.

Κωστας τζιαννης

γενικα ναι γινεται αλλα στο συγκεκριμενο μαθημα απαγορευεται να αλλαζεις το μετρητη της για

FANBOY_21

Παράθεση από: Κωστας τζιαννης στις 21 Οκτ 2019, 10:19:42 ΜΜ
γενικα ναι γινεται αλλα στο συγκεκριμενο μαθημα απαγορευεται να αλλαζεις το μετρητη της για

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

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

Κωστας τζιαννης

Παράθεση από: FANBOY_21 στις 21 Οκτ 2019, 10:26:36 ΜΜ
Ακριβώς, εξού και γιατί είναι αισχρότατος ο κώδικας που παρέθεσα.

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

βασικα οντως δικιο εχεις. μαλλον τους ξεφυγε τελειως αυτη η ασκηση

ApoAntonis

Παράθεση από: Κωστας τζιαννης στις 21 Οκτ 2019, 10:44:51 ΜΜ
βασικα οντως δικιο εχεις. μαλλον τους ξεφυγε τελειως αυτη η ασκηση

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

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