Αποστολέας Θέμα: Μετατροπή σε Απλή δομή επιλογής  (Αναγνώστηκε 2569 φορές)

vaggelism

  • Μαθητης
  • Νέος
  • *
  • Μηνύματα: 3
Μετατροπή σε Απλή δομή επιλογής
« στις: 05 Νοέ 2012, 04:04:03 μμ »
Πως μετατρεπεται το παρακατω κομμάτι αλγοριθμου σε απλή δομή επιλογής;

Αν χ>0 τοτε
y<-550+z
Αλλιως
y<-500
Τελος_αν

evry

  • Γενικός διαχειριστής
  • *****
  • Μηνύματα: 3017
  • to Iterate is human to Recurse divine
Απ: Μετατροπή σε Απλή δομή επιλογής
« Απάντηση #1 στις: 05 Νοέ 2012, 04:29:01 μμ »
y<-500
Αν χ>0 Τότε y <- y + 50 + z

Η ιδέα είναι να παρατηρήσεις ποιο τμήμα εντολών είναι κοινό και στις δύο περιπτώσεις και να το βγάλεις έξω από τη δομή επιλογής.
Εδώ ουσιαστικά έπρεπε να παρατηρήσεις ότι το y θα γίνει 500 και στις 2 περιπτώσεις αλλά στην μια θα προσθέσεις και κάτι.

ή αν θεωρήσουμε ότι το χ είναι πάντα διάφορο του μηδενός θα μπορούσαμε να μην χρησιμοποιήσουμε καθόλου δομή επιλογής

y <- 500 + (50 + z)*( 1 + χ/Α_Τ(χ) )/2
« Τελευταία τροποποίηση: 05 Νοέ 2012, 04:50:06 μμ από evry »
What I cannot create I do not understand -- Richard Feynman
http://evripides.mysch.gr

vaggelism

  • Μαθητης
  • Νέος
  • *
  • Μηνύματα: 3
Απ: Μετατροπή σε Απλή δομή επιλογής
« Απάντηση #2 στις: 06 Νοέ 2012, 12:00:11 πμ »
Απόλυτα σωστός evry,ευχαριστώ για τις extra πληροφορίες.

Gnirut

  • Επισκέπτης
Απ: Μετατροπή σε Απλή δομή επιλογής
« Απάντηση #3 στις: 06 Νοέ 2012, 01:32:47 πμ »
y<-500
Αν χ>0 Τότε y <- y + 50 + z

γιατί όχι:

y<-500
Αν χ>0 τότε y<-550+z

evry

  • Γενικός διαχειριστής
  • *****
  • Μηνύματα: 3017
  • to Iterate is human to Recurse divine
Απ: Μετατροπή σε Απλή δομή επιλογής
« Απάντηση #4 στις: 06 Νοέ 2012, 12:31:01 μμ »
προφανώς και το παρακάτω είναι σωστό και με το σκεπτικό αυτό η παρακάτω επιλογή

Αν συνθήκη τότε
   Εντολές1
Αλλιώς
   Εντολές2
Τέλος_Αν

μπορεί να γραφτεί

Εντολές1
Αν όχι συνθήκη τότε Εντολές2

εφόσον οι Εντολές1, Εντολές2 είναι ανεξάρτητες μεταξύ τους

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

Αν συνθήκη τότε
   Εντολές
   Εντολές1
Αλλιώς
   Εντολές
   Εντολές2
Τέλος_Αν

το οποίο γίνεται έτσι

Εντολές
Αν συνθήκη τότε
   Εντολές1
Αλλιώς
   Εντολές2
Τέλος_Αν




γιατί όχι:

y<-500
Αν χ>0 τότε y<-550+z
« Τελευταία τροποποίηση: 06 Νοέ 2012, 01:00:36 μμ από evry »
What I cannot create I do not understand -- Richard Feynman
http://evripides.mysch.gr

fof

  • Ομάδα Νέου Λυκείου
  • *
  • Μηνύματα: 291
Απ: Μετατροπή σε Απλή δομή επιλογής
« Απάντηση #5 στις: 20 Νοέ 2012, 10:35:27 μμ »
Αν χ <= 0 τότε
        δ<-- 0
τέλος_αν
κ <-- δ + 550

τι λέτε γι αυτή την λύση;

Λευτέρης Δουκέρης

  • Ομάδα διαγωνισμάτων 2013
  • *
  • Μηνύματα: 185
  • ΝΑ ΔΙΝΟΥΜΕ ΑΞΙΑ ΣΤΑ ΠΡΑΓΜΑΤΑ ΓΙΑ ΑΥΤΟΠΟΥ ΣΗΜΑΙΝΟΥΝ
    • ΓΥΜΝΑΣΙΟ ΛΑΥΡΙΟΥ
Απ: Μετατροπή σε Απλή δομή επιλογής
« Απάντηση #6 στις: 21 Νοέ 2012, 09:26:13 μμ »
καλησπέρα fof. πανέξυπνη και ολόσωστη και αυτή η λύση. Μπράβο στον μαθητή σου που την σκέφτηκε! βέβαια η λύση
Υ <- 500
 Αν χ>0 τοτε
Υ<- Υ+z
Τελος_αν
είναι μια ολόσωστη αλλά "τετριμένη" λύση (δηλ λύση που "διδάσκεται" μέσα στην τάξη )
ΛΕΥΤΕΡΗΣ  ΚΕΡΑΤΕΑ
http://glavrio.blogspot.com"Ο ιδανικός δάσκαλος είναι εκείνος που γίνεται γέφυρα για να περάσει αντίπερα ο μαθητής του και όταν , πια του διευκολύνει το πέρασμα , αφήνεται χαρούμενα να γκρεμιστεί , ενθαρρύνοντας το μαθητή του να φτιάξει τις δικές του γέφυρ

gthal

  • Ομάδα διαγωνισμάτων 2017
  • *
  • Μηνύματα: 879
Απ: Μετατροπή σε Απλή δομή επιλογής
« Απάντηση #7 στις: 23 Νοέ 2012, 01:54:00 πμ »
Εγώ δεν καταλαβαίνω αυτή τη λύση fof.
Θα με διευκόλυνε αν μέναμε με τις μεταβλητές x, y, και z που έχει το αρχικό τμήμα αλγορίθμου για να καταλάβω τις αντιστοιχίες.
Από ότι καταλαβαίνω πάντως, το τμήμα αυτό έχει σαν έξοδο κάποιον κ, που άλλοτε έχει την τιμή 550 και άλλοτε την τιμή 550 συν κάποιο δ
ενώ το αρχικό τμήμα αλγορίθμου έχει σαν έξοδο την y που άλλοτε έχει την τιμή 500 και άλλοτε την τιμή 550 συν κάποιο z
Δε βλέπω πώς αυτά είναι ισοδύναμα... :-\
Φιλικά,
Γιώργος Θαλασσινός