Γενικό Λύκειο > Δομή επιλογής

Μετατροπή σε Απλή δομή επιλογής

(1/2) > >>

vaggelism:
Πως μετατρεπεται το παρακατω κομμάτι αλγοριθμου σε απλή δομή επιλογής;

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

evry:
y<-500
Αν χ>0 Τότε y <- y + 50 + z

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

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

y <- 500 + (50 + z)*( 1 + χ/Α_Τ(χ) )/2

vaggelism:
Απόλυτα σωστός evry,ευχαριστώ για τις extra πληροφορίες.

Gnirut:

--- Παράθεση από: evry στις 05 Νοε 2012, 04:29:01 μμ ---y<-500
Αν χ>0 Τότε y <- y + 50 + z

--- Τέλος παράθεσης ---

γιατί όχι:

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

evry:
προφανώς και το παρακάτω είναι σωστό και με το σκεπτικό αυτό η παρακάτω επιλογή

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

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

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

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

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

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

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

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





--- Παράθεση από: Gnirut στις 06 Νοε 2012, 01:32:47 πμ ---γιατί όχι:

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

--- Τέλος παράθεσης ---

Πλοήγηση

[0] Λίστα μηνυμάτων

[#] Επόμενη σελίδα

Μετάβαση στην πλήρη έκδοση