ΜΕΤΑΤΡΟΠΕΣ ΔΟΜΩΝ ΓΙΑ ΣΕ ΜΕΧΡΙΣ_ΟΤΟΥ ΚΑΙ ΤΟ ΑΝΤΙΘΕΤΟ

Ξεκίνησε από landreou, 05 Φεβ 2013, 08:02:10 ΠΜ

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

landreou

Καλημέρα στους φίλους του ΣτΠ. Θα ήθελα να ρωτήσω ποιά είναι η μεθοδολογία ( τα βήματα ) για τη μετατροπή από μία δομη Μέχρις_Οτου σε Για και το αντίστροφο .
Έχει πέσει και ένα θέμα 2001 :

∆ίνεται τµήµα αλγορίθµου
Χ ← Α
Αρχή_επανάληψης
Χ ← Χ + 2
Τύπωσε το Χ
Μέχρις_ότου Χ >= Μ
α. Να δώσετε τη δοµή επανάληψης "Για ... από ... µέχρι ...βήµα" η οποία τυπώνει
ακριβώς τις ίδιες τιµές µε το πιο πάνω τµήµα αλγορίθµου.                          Μονάδες 7
β. Τι θα τυπωθεί, αν Α = 4 και Μ = 9;                                                                  Μονάδες 3
γ. Τι θα τυπωθεί, αν Α = –5 και Μ = 0;                                                                Μονάδες 3

Αν γίνεται και παράδειγμα ξεχωριστό δικό μας να καταλάβουμε τι γίνεται .

ikariofil

#1
1) Μετατρέπω τη Μέχρις_Ότου σε ισοδύναμη Όσο...επανάλαβε

Χ ← Α
Χ ← Χ + 2
Εκτύπωσε Χ
Όσο Χ < Μ επανάλαβε
     Χ ← Χ + 2
     Εκτύπωσε Χ
Τέλος_επανάληψης

2) Μετατρέπω τη Όσο...επανάλαβε σε ισοδύναμη Για ... από ... μέχρι ... με_βήμα...

Χ ← Α
Χ ← Χ + 2
Εκτύπωσε Χ
Για Χ από Α+2 μέχρι Μ-1 με_βήμα 2
     Εκτύπωσε Χ+2
Τέλος_επανάληψης

landreou

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

ikariofil

Δεν φαίνεται το σκεπτικό από τα παραπάνω βήματα που παραθέτω;

landreou

Αναλυτικά πως έγινε η μετατροπή . Ετσι δε βοηθαει στην κατανόηση .

dpa2006

#5
Καλησπέρα,για τις μετατροπές-γενικά-δες και εδώ:

Μετατροπή από μία εντολή επανάληψης σε άλλη

αντιγράφω από το παραπάνω λινκ:
Παράθεση
Μία κατηγορία θεμάτων στις πανελλαδικές εξετάσεις είναι η μετατροπή ενός αλγόριθμου ή ενός τμήματος αλγόριθμου από μία εντολή επανάληψης σε μία άλλη ή και στις δύο άλλες εντολές επανάληψης, εφόσον αυτή είναι εφικτή.
Στο 5ο Πανελλήνιο Συνέδριο Καθηγητών Πληροφορικής, στα Ιωάννινα (1-3 Απριλίου 2011) παρουσιάστηκε μία ολοκληρωμένη προσέγγιση του συγκεκριμένου ζητήματος το οποίο: α) καλύπτει όλες τις περιπτώσεις, β) δεν αφήνει ανοικτά ζητήματα και γ) αντιμετωπίζει επιτυχώς τα προβλήματα που παρατηρούνται σε άλλες προτεινόμενες μεθοδολογίες.
Με την προτεινόμενη προσέγγιση καλύπτονται όλα τα θέματα μετατροπών:
Από Όσο...επανάλαβε σε Μέχρις_ότου
Από Μέχρις_ότου σε Όσο...επανάλαβε
Από Όσο...επανάλαβεσε Για...από...μέχρι
Από Για...από...μέχρισε Όσο...επανάλαβε
Η μετατροπή από Μέχρις_ότου σε Για...από...μέχρικαι από Για...από...μέχρισε Μέχρις_ότου γίνεται μέσω της μετατροπής αρχικά σε Όσο...επανάλαβεκαι στη συνέχεια από Όσο...επανάλαβεσε Για...από...μέχριή Μέχρις_ότου.
Μπορείτε να μεταφορτώσετε την εργασία που παρουσιάστηκε στο συνέδριο από τον ακόλουθο σύνδεσμο:
Πέρδος, Α., Δουκάκης, Σ., & Γιαννοπούλου, N. (2011). Αλγοριθμική  προσέγγιση της μετατροπής από μία εντολή επανάληψης σε άλλη, Πρακτικά 5ου Πανελληνίου Συνεδρίου Καθηγητών Πληροφορικής Δευτεροβάθμιας Εκπαίδευσης με θέμα: «Η Πληροφορική στην Πρωτοβάθμια και Δευτεροβάθμια Εκπαίδευση – Ο ρόλος του καθηγητή Πληροφορικής στο νέο σχολείο», 1-3 Απριλίου 2011, Ιωάννινα, σελ. 164-173.
Επίσης δείτε και το εξής(για ασκήσεις):
http://pliroforikiatschool.blogspot.gr/2011/01/blog-post.html
Computer science (abbreviated CS or CompSci) is the scientific and practical approach to computation and its applications. It is the systematic study of the feasibility, structure, expression, and mechanization of the methodical processes (or algorithms) that underlie the acquisition, representation, processing, storage, communication of, and access to information, whether such information is encoded in bits and bytes in a computer memory or transcribed engines and protein structures in a human cell.source:http://en.wikipedia.org/wiki/Computer_science

evry

Δεδομένης της τυποποίησης των τεχνικών μετατροπής μεταξύ δομών επανάληψης δεν ξέρω κατά πόσο είναι καλή ιδέα πλέον να ασχολούμαστε με τέτοια θέματα, δεδομένου ότι οι μετατροπές αυτές δεν είναι αυτοσκοπός αλλά μέσο για την κατανόηση των δομών επανάληψης. Από την στιγμή που γίνονται αυτοσκοπός και τυποποιούνται νομίζω ότι οι άσκησεις αυτές χάνουν την αξία τους.
What I cannot create I do not understand -- Richard Feynman
http://evripides.mysch.gr

landreou

#7
Χ ← Α
Χ ← Χ + 2
Εκτύπωσε Χ
Όσο Χ < Μ επανάλαβε
     Χ ← Χ + 2
     Εκτύπωσε Χ
Τέλος_επανάληψης

Το παραπάνω τμήμα πως το κάνουμε σε δομή Οσο και μετά σε δομή Για ;

Αθανάσιος Πέρδος

Παράθεση από: landreou στις 06 Φεβ 2013, 09:10:55 ΠΜ
Χ ← Α
Χ ← Χ + 2
Εκτύπωσε Χ
Όσο Χ < Μ επανάλαβε
     Χ ← Χ + 2
     Εκτύπωσε Χ
Τέλος_επανάληψης

Το παραπάνω τμήμα πως το κάνουμε σε δομή Οσο και μετά σε δομή Για ;


Προτεινόμενες μεθοδολογίες για το πως λύνεται υπάρχουν στην εργασία μας της οποίας το link υπάρχει παραπάνω.
Η παραπάνω λύση που δίνεται από ikariofil είναι σωστή μόνο αν τα Α και Μ είναι ακέραια. Αρκεί να το δοκιμάσεις για τις τιμές Α=4.1, Μ= 6.6. Εξάλλου στο συγκεκριμένο θέμα δεν διευκρίνιζε τι ακριβώς είναι τα Α και Μ. Ένας προτεινόμενος τρόπος αντιμετώπισης βρίσκεται στην εργασία και περιλάμβάνει τα εξής βήματα:

Πρώτα θα γίνει η Μετατροπή της Μέχρις_ότου σε Όσο...επανάλαβε

Χ <- Α
Χ <- Χ+2
Εκτύπωσε Χ
Όσο Χ < Μ επανάλαβε
Χ <- Χ+2
Εκτύπωσε Χ
Τέλος_επανάληψης

Οι τιμές των Α και Μ μπορεί να είναι οποιεσδήποτε
Υπάρχει αυστηρή ανισότητα στη συνθήκη της Όσο
Υπάρχουν εντολές μετά την αλλαγή της μεταβλητής κατά το βήμα στις οποίες χρησιμοποιείται η τιμή της μεταβλητής
Επειδή οι εντολές εκτελούνται ήδη μία φορά πριν από την εκτέλεση της Όσο η αρχική τιμή της Για θα είναι τώρα η ατ + τβ

Χ  <-Α
Χ <- Χ+2
Εκτύπωσε Χ

κ ← Α_Μ((Μ - Α) / 2)
ττπ ← Α + κ * 2         
Αν ττπ = Μ τότε ττπ ← ττπ – 2


Για Χ από Α+2 μέχρι ττπ με_βήμα 2
    Εκτύπωσε Χ + 2
Τέλος_επανάληψης


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

Η άποψη μου είναι το συγκεκριμένο θέμα δεν έπρεπε να τεθεί κατά αυτόν τον τρόπο. Υπάρχει άλλωστε και αντίστοιχη συζήτηση στο στέκι αν ψάξεις θα την βρεις.

Θα συμφωνήσω επίσης με τον evry ότι χάρη σε αυτήν την εργασία οι μετατροπές έχουν τυποποιηθεί πλήρως και ίσως χάνουν την αξία τους. Βέβαια με το ίδιο σκεπτικό θα πρέπει να σταματήσουν και οι ασκήσεις μετατροπών με διαγράμματα ροής αφού και αυτές είναι τυποποιημένες πλήρως όπως επίσης και οι μετατροπές από φυσική γλώσσα σε ψευδογλώσσα. Για όποιον ενδιαφέρεται μπορώ να δώσω την αντίστοιχη παρουσίαση.
Από την άλλη όμως το παρακάτω θέμα θεωρώ ότι δεν λύνεται μόνο με τις τυποποιημένες μεθοδολογίες αλλά απαιτεί και σκέψη και κυρίως σύνθεση.
   
1.      χ ← 3
2.       Αρχή_επανάληψης
3.          χ ← χ + 2
4.          y ← χ + 2      
5.          Όσο y < 15 επανάλαβε
6.               y ← y + 4
7.             Εμφάνισε y
8.          Τέλος_επανάληψης
9.          Αν χ > 6 τότε
10.          Εμφάνισε y – χ
11.       Τέλος_αν
12.       χ ← χ + 3
13.    Μέχρις_ότου χ mod 8 >= 5

Να μετατρέψετε ισοδύναμα το παραπάνω τμήμα αλγορίθμου ώστε να εκτυπώνονται οι ίδιες ακριβώς τιμές,  χρησιμοποιώντας όμως αποκλειστικά τη δομή επανάληψης Για αντί της δομής Μέχρις_ότου και της δομής Όσο, χωρίς όμως να χρησιμοποιήσετε άλλες μεταβλητές πέρα των χ και y.

evry

#9
Παράθεση από: aperdos στις 07 Φεβ 2013, 03:03:16 ΜΜ
Θα συμφωνήσω επίσης με τον evry ότι χάρη σε αυτήν την εργασία οι μετατροπές έχουν τυποποιηθεί πλήρως και ίσως χάνουν την αξία τους.

Θανάση δεν ανέφερα τη συγκεκριμένη εργασία, γενικά μιλούσα. Φυσικά και η δική σας εργασία ασχολείται με το θέμα. Νομίζω όμως ότι υπάρχουν και εργασίες άλλων συναδέλφων, για να μην τους αδικούμε, δεν θυμάμαι ονόματα δυστυχώς που έχουν κάνει αντίστοιχη δουλειά, όπως άλλωστε και σε πολλά βοηθήματα αξιόλογων συναδέλφων, υπάρχουν αντίστοιχες μεθοδολογίες.
  Εγώ είχα κυρίως στο μυαλό μου τις συζητήσεις στο στέκι, που είναι τόσες πολλές ώστε μπορεί κάλλιστα κάποιος αν ασχοληθεί με αυτό το υλικό να φτιάξει τις δικές του μεθοδολογίες.
What I cannot create I do not understand -- Richard Feynman
http://evripides.mysch.gr

landreou

1.      χ ← 3
2.       Αρχή_επανάληψης
3.          χ ← χ + 2
4.          y ← χ + 2     
5.          Όσο y < 15 επανάλαβε
6.               y ← y + 4
7.             Εμφάνισε y
8.          Τέλος_επανάληψης
9.          Αν χ > 6 τότε
10.          Εμφάνισε y – χ
11.       Τέλος_αν
12.       χ ← χ + 3
13.    Μέχρις_ότου χ mod 8 >= 5

Να μετατρέψετε ισοδύναμα το παραπάνω τμήμα αλγορίθμου ώστε να εκτυπώνονται οι ίδιες ακριβώς τιμές,  χρησιμοποιώντας όμως αποκλειστικά τη δομή επανάληψης Για αντί της δομής Μέχρις_ότου και της δομής Όσο, χωρίς όμως να χρησιμοποιήσετε άλλες μεταβλητές πέρα των χ και y.