Αποστολέας Θέμα: Μετατροπή Όσο σε Για με προσθήκη μεταβλητής...  (Αναγνώστηκε 1085 φορές)

meteo_xampos

  • Ομάδα διαγωνισμάτων 2010
  • *
  • Μηνύματα: 187
Καλησπέρα σας!!! Έχουμε ένα τμήμα αλγορίθμου το εξής...

Σ<- 0
χ<- 1
Όσο χ<=10 επανάλαβε
    χ<- χ+1
    Σ<- Σ+χ
Τελος_επανάληψης

και το μετέτρεψε ένας μαθητής μου ως εξής...

Σ<- 0
χ<- 1
Για ι από 1 μέχρι 10 !αφού το αρχικό τμημα μου δίνει 10 επαναλήψεις, κάνω και εγώ 10 επαναλήψεις με τη Για...
    χ<- χ+1
    Σ<- Σ+χ
Τελος_επανάληψης

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

gpapargi

  • Γενικός διαχειριστής
  • *****
  • Μηνύματα: 2457
  • I 'm not young enough to know everything
Απ: Μετατροπή Όσο σε Για με προσθήκη μεταβλητής...
« Απάντηση #1 στις: 10 Νοε 2016, 10:56:15 πμ »
Αυτά τα ερωτήματα προκύπτουν γιατί ποτέ δεν έχει δοθεί επίσημα κάποιος ορισμός για το τι εννοούμε όταν μιλάμε για μετατροπή από τη μια δομή επανάληψη σε μια άλλη.
Εννοούμε απλά να έχουμε την ίδια τιμή στις μεταβλητές μας; Εννοούμε να έχουμε την ίδια τιμή σε κάποιες μεταβλητές;
Η παρακάτω απάντηση που αφήνει τις ίδιες τιμές στις μεταβλητές είναι σωστή; Αν όχι γιατί;
Σ<-65
Χ<-11 
Μπορούμε να δώσουμε ένα σαφή ορισμό μετατροπής; Μετά θα απαντηθούν όλα

ΚΑΛΟΓΙΑΝΝΗΣ ΝΕΣΤΟΡΑΣ

  • Ομάδα Νέου Λυκείου
  • *
  • Μηνύματα: 45
Απ: Μετατροπή Όσο σε Για με προσθήκη μεταβλητής...
« Απάντηση #2 στις: 14 Νοε 2016, 05:03:13 μμ »
Το ερώτημα που προκύπτει είναι εφόσον στην δομή Όσο το χ χρησιμοποιείται ως μετρητής στη δομή Για τη θέση του μετρητή παίρνει το ι οπότε ποιό το νόημα να υπάρχει το χ στη ΓΙΑ,μέσα στο βρόχο της επανάληψής του,Για να είναι ακριβής η μετατροπή από τη μια μορφή στην άλλη ???
,

Καρκαμάνης Γεώργιος

  • Ομάδα διαγωνισμάτων 2010
  • *
  • Μηνύματα: 1133
Απ: Μετατροπή Όσο σε Για με προσθήκη μεταβλητής...
« Απάντηση #3 στις: 03 Δεκ 2016, 12:06:22 πμ »
Για να αποφεύγονται  τέτοιου είδους προβλήματα με την χρήση νέων μεταβλητών, σε ορισμένα θέματα πανελληνίων αναφέρεται "χωρίς τη χρήση νέων μεταβλητών".

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