Αποστολέας Θέμα: Απορία σε μετατρόπες απο μια δομή επανάληψης σε μια άλλη  (Αναγνώστηκε 2349 φορές)

theoni

  • Δεινόσαυρος
  • *****
  • Μηνύματα: 125
Καλήμερα μήπως κάποιος θα μπορούσε να μου λύσει την παρακάτω απορία???
Δίνεται η εξής εκφώνηση να ξαναγράψετε το τμήμα αυτό χρησιμοποιώντας την εντολή για αντι της όσο
Σ<--0
χ<--5
Οσο χ<26 επαναλαβε
   Χ<-χ+7
    Σ<--Σ+χ
Τελος επαναληψης
ΕμφανισεΣ


Η απάντηση που δίνεται είναι η εξης:
Σ<--0
Για χ απο 5 μεχρι 19 με βημα 7
     Σ<--Σ+χ
Τελος επαναληψης
 Εχω την εξής απορία αν η ασκηση δεν μας λεει ισοδυναμη μετατροπη θα κανουμε μονο τις βασικες αλλαγες στον τροπο γραφεις μεταξυ των δυο δομων επαναληψης????
« Τελευταία τροποποίηση: 24 Μάι 2016, 02:27:35 μμ από theoni »

Laertis

  • Γενικός διαχειριστής
  • *****
  • Μηνύματα: 1515
  • Sky's the limit
    • ΑΣΚΗΣΕΙΣ-ΘΕΜΑΤΑ ΑΕΠΠ
Κατ 'αρχάς η απάντηση που παραθέτεις έχει σοβαρότατα λάθη. Δεν είναι σωστή η μετατροπή το Οσο σε Για ( το χ μέχρι το 19 που κολλάει; Το Σ υπολογίζει άλλο άθροισμα κ.ο.κ)

Οι μετατροπές σε άλλες δομές έχουν νόημα όταν είναι ισοδύναμες, παράγουν δηλαδή τα ίδια αποτελέσματα στην έξοδο για την ίδια είσοδο. Δεν μπορώ να σκεφτώ κάποιο λόγο να ζητηθεί μη ισοδύναμη μετατροπή.
Νικολακάκης Γιώργος
Μηχανικός Η/Υ Συστημάτων
Καθηγητής Πληροφορικής
http://users.sch.gr/gnikola

Λαμπράκης Μανώλης

  • Ομάδα διαγωνισμάτων 2017
  • *
  • Μηνύματα: 824
Καλημέρα σε όλους

Το "τρικ" της μετατροπής είναι αυτό που μπήκε στην περσινή μετατροπή... δηλαδή στο όσο μπορούμε να αλλάξουμε πρώτα τοβ μετρητή και μετά να τον χρησιμοποίσουμε ενώ στο για όχι, οπότε πρέπει να βρούμε πως θα κάνουμε την αλλαγή...το όσο προσθέτει 5+7, για αυτό υποετω βάζει τις τιμές αυτές..ομως αυτό τι για θα προσθέσει 5+12+19 συμφωνώ και εγώ είναι αν το βλέπω σωστά τελείως λάθος..έχω την εντύπωση έτσι εξηγείται η φιλοσοφία της άσκησης

theoni

  • Δεινόσαυρος
  • *****
  • Μηνύματα: 125
Οκ αυτο ήθελα να εξακρίβωσω οτι οι μετατροπες μόνο ισοδυναμες εχούν νοημα να ύπαρχουν....όποτε η συγκεκριμένη για να ηταν σωστη θα επρεπε να ηταν



Σ<--0
Για χ απο 12 μεχρι  26 με βημα 7
     Σ<--Σ+χ
Τελος επαναληψης
   

theoni

  • Δεινόσαυρος
  • *****
  • Μηνύματα: 125
Και συγνωμη στην οσο η συνθηκη ειναι χ<26 εφαγα ενα 2

Λαμπράκης Μανώλης

  • Ομάδα διαγωνισμάτων 2017
  • *
  • Μηνύματα: 824
αυτό αλλάζει τα πράγματα  ;D :D .....  σε σχέση με τις τιμές που έχουν πιο πολύ νόημα τώρα....ουσιάστικά πάει τις τιμές του ΓΙΑ "μία τιμή πάνω" (σε σχήση με το βήμα) για να συμβαδίζουν με τις τιμές που θα προσθέσεις στο Όσο, γιατί είπαμε στο για δεν μπορώ να αλλάξω βήμα μέσα στην δομή, οπότε αλλάζω τις τιμές

theoni

  • Δεινόσαυρος
  • *****
  • Μηνύματα: 125
Αρα η λύση που έδωσα είναι σωστή????

Λαμπράκης Μανώλης

  • Ομάδα διαγωνισμάτων 2017
  • *
  • Μηνύματα: 824
αν δεν κάνω κάποιο λάθος είναι σωστή, το όσο κάνει επαναλήψεις στις τιμές 5,12,19 και σταματάει στην 26, και στο άθροισμα προσθέτει "τις επόμενες τιμές", δηλαδή 12+19+26 ... το ίδιο κάνει και το Για που έχεις γράψει ..

Vagnes

  • Θαμώνας
  • ***
  • Μηνύματα: 39
Επίσης σωστή είναι και αυτή κατα τη γνώμη μου... Αν οχι διορθώστε με..

Σ<--0
Για χ απο 5 μεχρι  25 με βημα 7
     Σ<--Σ+(χ+7)
Τελος επαναληψης

Λαμπράκης Μανώλης

  • Ομάδα διαγωνισμάτων 2017
  • *
  • Μηνύματα: 824
συνάδελφε και εγώ αυτή τη λύση θα έκανα να πω την αλήθεια ... το για λαμβάνει τις τιμές του όσο, μειώνουμε κατά 1 το 25 για να μην κάνει επανάληψη στο 26  και σε κάθε επανάληψη εμφανίζουμε τον "επόμενο" αριθμό με βάση το βήμα

gpapargi

  • Γενικός διαχειριστής
  • *****
  • Μηνύματα: 2457
  • I 'm not young enough to know everything
Με τα θέματα μετατροπών εγώ έχω γενικά ένα πρόβλημα και το έχω ξαναγράψει και αναλύσει στο παρελθόν:
Θα πρέπει να ξεκαθαρίσουμε τι εννοούμε όταν λέμε μετατροπή από τη μια εντολή στην άλλη.
1) Εννοούμε να έχουν την ίδια έξοδο αν δεχτούν την ίδια είσοδο;
2) Εννοούμε να έχουν στο τέλος και τις ίδιες τιμές στις μεταβλητές;
3) Εννοούμε να έχουν και τον ίδιο αριθμό βημάτων;
4) Εννοούμε να κάνουν τα ίδια ακριβώς βήματα και  με την ίδια ακριβώς σειρά;

Για μένα μόνο το 4 είναι σωστό. Όλα τα άλλα θα οδηγήσουν σε ασυνέπειες από μέρους μας.
Δίνω ένα παράδειγμα για να γίνει σαφές τι εννοώ:
Έστω ότι θέλω να βρω το άθροισμα των στηλών ενός δισδιάστατου πίνακα α[30,15] και να το αποθηκεύω σε κατάλληλο μονοδιάστατο S[15] που έχει ήδη αρχικοποιηθεί με μηδενικά. Γράφω 2 κώδικες. Ο ένας σαρώνει κατά γραμμή και ο άλλος κατά στήλη.
! σάρωση κατά γραμμή
Για γ από 1 μέχρι 30
  Για σ από 1 μέχρι 15
    S[σ]<--S[σ]+α[γ,σ]
  Τέλος_επανάληψης
Τέλος_επανάληψης

! σάρωση κατά στήλη
Για σ από 1 μέχρι 15
  Για γ από 1 μέχρι 30
    S[σ]<--S[σ]+α[γ,σ]
  Τέλος_επανάληψης
Τέλος_επανάληψης

Ας πούμε ότι μετατρέπω έναν από τους 2 σε κάποια άλλη εντολή εκτός της Για. Έχω ίδια έξοδο για την ίδια είσοδο. Έχω και τις ίδιες τιμές στις μεταβλητές στο τέλος. Έχω και ίδιο αριθμό βημάτων. Αλλά δεν έχω ίδια βήματα και με την ίδια σειρά. Οι δύο αλγόριθμοι κάνουν άλλα πράγματα.
Αυτό εννοώ όταν λέω ότι οι ερμηνείες 1 ως 3 οδηγούν σε ασυνέπειες.

Λαμπράκης Μανώλης

  • Ομάδα διαγωνισμάτων 2017
  • *
  • Μηνύματα: 824
Καλημέρα σε όλους..
όντως είναι κάπως γενικός ο ορισμός της μετατροπής μεταξύ δομών επανάληψης..στο συγκεκριμένο παράδειγμα ας πούμε, το για δεν μπορεί  πρώτα να αλλάξει τιμή στη μεταβλητή και μετά να την χρησιμοποιήσει, οπότε το κάνει έμμεσα..θεωρείς συνάδελφε πως δεν έχει νόημα γενικά αυτή η μετατροπη; Με τις λύσεις διαφωνείς;

gpapargi

  • Γενικός διαχειριστής
  • *****
  • Μηνύματα: 2457
  • I 'm not young enough to know everything
Καλημέρα σε όλους..
όντως είναι κάπως γενικός ο ορισμός της μετατροπής μεταξύ δομών επανάληψης..στο συγκεκριμένο παράδειγμα ας πούμε, το για δεν μπορεί  πρώτα να αλλάξει τιμή στη μεταβλητή και μετά να την χρησιμοποιήσει, οπότε το κάνει έμμεσα..θεωρείς συνάδελφε πως δεν έχει νόημα γενικά αυτή η μετατροπη; Με τις λύσεις διαφωνείς;
Βασικά διαφωνώ με το πρόβλημα :)
Κατά τη γνώμη μου ο ορισμός 4 είναι ο μόνος που δεν οδηγεί σε ασυνέπειες (τις οποίες προσπάθησα να δείξω με το παράδειγμα που έδωσα). Στη συγκεκριμένη άσκηση δίνουμε μια Όσο με αλλαγή του μετρητή στην αρχή και όχι στο τέλος όπως το κάνει η Για. Επίσης στη συνθήκη της Όσο ο συγκριτικός τελεστής είναι < και όχι <= όπως στη Για. Άρα με τον ορισμό 4 η άσκηση δεν είναι σωστή.
Δηλαδή για να μιλάμε για τέτοιες ασκήσεις θα πρέπει πρώτα να εξηγήσουμε με συνεπή τρόπο τι εννοούμε όταν λέμε "μετατροπή". Διαφορετικά ο καθένας θα θεωρεί σωστό κάτι που ο άλλος το θεωρεί λάθος. πχ έβλεπες πέρυσι να σου λέει κάποιος  η λύση αυτή δίνει ίδια έξοδο αλλά δεν αφήνει τις ίδιες τιμές στις μεταβλητές. Προφανώς ο πρώτος έδινε σαν ορισμό τον 1 και ο άλλος τον 2.
Η συζήτηση θα πρέπει να ξεκινήσει από τον ορισμό. Να θέσουμε πρώτα "καλώς" το πρόβλημα και μετά να το λύσουμε. Διαφορετικά ο καθένας λύνει ότι θέλει.

Laertis

  • Γενικός διαχειριστής
  • *****
  • Μηνύματα: 1515
  • Sky's the limit
    • ΑΣΚΗΣΕΙΣ-ΘΕΜΑΤΑ ΑΕΠΠ
Βασικά διαφωνώ με το πρόβλημα :)
Κατά τη γνώμη μου ο ορισμός 4 είναι ο μόνος που δεν οδηγεί σε ασυνέπειες (τις οποίες προσπάθησα να δείξω με το παράδειγμα που έδωσα). Στη συγκεκριμένη άσκηση δίνουμε μια Όσο με αλλαγή του μετρητή στην αρχή και όχι στο τέλος όπως το κάνει η Για. Επίσης στη συνθήκη της Όσο ο συγκριτικός τελεστής είναι < και όχι <= όπως στη Για. Άρα με τον ορισμό 4 η άσκηση δεν είναι σωστή.
Δηλαδή για να μιλάμε για τέτοιες ασκήσεις θα πρέπει πρώτα να εξηγήσουμε με συνεπή τρόπο τι εννοούμε όταν λέμε "μετατροπή". Διαφορετικά ο καθένας θα θεωρεί σωστό κάτι που ο άλλος το θεωρεί λάθος. πχ έβλεπες πέρυσι να σου λέει κάποιος  η λύση αυτή δίνει ίδια έξοδο αλλά δεν αφήνει τις ίδιες τιμές στις μεταβλητές. Προφανώς ο πρώτος έδινε σαν ορισμό τον 1 και ο άλλος το
Η συζήτηση θα πρέπει να ξεκινήσει από τον ορισμό. Να θέσουμε πρώτα "καλώς" το πρόβλημα και μετά να το λύσουμε. Διαφορετικά ο καθένας λύνει ότι θέλει.

Ο ορισμός της μετατροπής σε ισοδύναμο αλγόριθμο, ακολουθώντας τη μέχρι τώρα πρακτική των θεμάτων, ακολουθεί όλα τα άλλα εκτός απο το 4. Τον ορισμό 4 τον έβαλες εσύ Γιώργο για να θολώσεις τα νερά  ;D
Τι σημαίνει "κάνουν τα ίδια ακριβώς βήματα και  με την ίδια ακριβώς σειρά;' . Ο όρος της λέξης μετατροπή όντως είναι το πρόβλημα, κι εγώ αντιλαμβάνομαι τη μετατροπή ως τα 1,2 και 3 χωρίς υποχρεωτικά το 4. Ίσως μας βοηθήσει η λέξη "ισοδύναμος" που δε σημαίνει κατ 'αναγκη αυτό που λές. Άσε που είναι και εξαιρετικά επίκαιρος (ισοδύναμα μέτρα κλπ)
Νικολακάκης Γιώργος
Μηχανικός Η/Υ Συστημάτων
Καθηγητής Πληροφορικής
http://users.sch.gr/gnikola

gpapargi

  • Γενικός διαχειριστής
  • *****
  • Μηνύματα: 2457
  • I 'm not young enough to know everything
Ναι ουσιαστικά διαφωνώ με τη λογική των θεμάτων  >:D  :)
Για να δεις τι μπορεί να πάει στραβά με τα 1,2,3 χωρίς το 4 δες το παράδειγμα που αναφέρω στο αρχικό μου μήνυμα σε αυτό το θέμα. Πες πως σου δίνει τον πρώτο κώδικα εύρεσης αθροίσματος στηλών και ζητάει μετατροπή σε Όσο. Και κάποιος απαντάει με τον δεύτερο χρησιμοποιώντας όμως Όσο αντί για Για. Δεν παραβίασε τα 1,2,3 αλλά δεν μπορούμε να πούμε ότι έκανε τη μετατροπή γιατί ο κώδικάς του κάνει άλλα πράγματα από τα αρχικά.
Θέλουμε δηλαδή ένα ορισμό της μετατροπής (ή της ισοδυναμίας).
Για μένα σωστό είναι να μιλάμε για μετατροπή του ίδιου αλγορίθμου (ίδιων βημάτων)   με τη ζητούμενη εντολή (άλλη κωδικοποίηση δηλαδή).

Laertis

  • Γενικός διαχειριστής
  • *****
  • Μηνύματα: 1515
  • Sky's the limit
    • ΑΣΚΗΣΕΙΣ-ΘΕΜΑΤΑ ΑΕΠΠ
Παραθέτω τις εκφωνήσεις των θεμάτων των εξετασεων που ζητούν αυτό που συζητάμε :

Θ1β.Να μετατρέψετε την παραπάνω δομή σε ισοδύναμη δομή επανάληψης Όσο ... επανάλαβε.   (2001)
Θ1γ. Να μετατραπεί σε ισοδύναμο με χρήση της δομής Όσο … Επανάλαβε (2005)
Θ2γ. Να γράψετε τμήμα αλγορίθμου, που θα έχει το ίδιο αποτέλεσμα με το παρακάτω τμήμα ……………  χρησιμοποιώντας αντί της εντολής Όσο την εντολή Για (2009)
Α4. ξαναγράψετε στο τετράδιό σας το παραπάνω τμήμα αλγορίθμου με αποκλειστική χρήση της δομής επανάληψης «Όσο ... επανάλαβε». (2012)
A4β. Να γράψετε στο τετράδιό σας το τμήμα αλγορίθμου ΙΙ με συμπληρωμένα τα κενά, ώστε να παράγει το ίδιο αποτέλεσμα με το τμήμα αλγορίθμου Ι. (2015)

Είναι σαφής η διαφοροποίηση των εκφωνήσεων με την απάλειψη της λέξης μετατροπή απο το 2009 και μετά. Παρόλα αυτά ζητείται το ίδιο πράγμα. Λόγω όμως χρήσης της ορολογίας "μετατροπη" για 9 συναπτά έτη, έγινε και η καθιέρωση του όρου. Οπότε λέγοντας μετατροπή σχεδόν όλοι θεωρούμε το ίδιο, εκτός του Παπαργύρη που θέλει να σπέρνει καινά δαιμόνια.  ;D
Νικολακάκης Γιώργος
Μηχανικός Η/Υ Συστημάτων
Καθηγητής Πληροφορικής
http://users.sch.gr/gnikola