Αποστολέας Θέμα: Έξοδος από την ''Οσο'' σε αναζήτηση...  (Αναγνώστηκε 7232 φορές)

toufeki

  • Επισκέπτης
Απ: Έξοδος από την ''Οσο'' σε αναζήτηση...
« Απάντηση #15 στις: 09 Ιαν 2010, 04:47:09 μμ »
Συμφωνώ σε γενικές γραμμές και με τον Ευριπίδη και με τον συνάδελφο Δημήτρη (dimitrios67).
Συμφωνώ διότι μέσα στα περιορισμένα χρονικά-χωρικά περιθώρια διδασκαλίας ενός πανελλαδικώς εξεταζομένου μαθήματος δεν υπάρχουν πολλά περιθώρια πλουραλισμού (παιδαγωγικά και διδακτικά απαράδεκτο).
Έχω να επισημάνω επιπροσθέτως τα παρακάτω:
1. Εξεταστέα ύλη: http://www.aepp.edu.gr/index.php?module=Content&func=view&pid=6
2. Η δομή αναζήτησης βρίσκεται στο κεφ. 3. (3.6) το οποίο είναι μέσα στην ύλη.
3. Τα κριτήρια αξιολόγησης προγράμματος βρίσκονται στο κεφ. 14. 14.1.1 Απλότητα - τυπικότητα. το οποίο είναι εκτός ύλης.
4. Η ανάλυση αλγορίθμων στο κεφ.5 είναι εκτός ύλης.

Ρωτώ λοιπόν τα εξής:
1. Πως και πότε διδάχτηκε ο μαθητής την απλότητα και τυπικότητα στον προγραμματισμό. (σύμφωνα με την ύλη πάντα, διότι κάποιοι καθηγητές έχουν προνοήσει και το διδάξανε στα παιδιά, οι υπόλοιποι όμως που δεν το διδάξανε έπραξαν σωστά ή λανθασμένα;).
2. Με ποιο δικαιολογητικό ο βαθμολογητής θα κόψει βαθμούς σε κάποιον μαθητή που θα γράψει ένα "κόλπο"(που δουλεύει) στις εξετάσεις; (αφού το κεφ 14 είναι εκτός ύλης).
3. Υπάρχει δυνατότητα για ολοκληρωμένη διδακτική προσέγγιση στο αντικείμενο του προγραμματισμού όταν η ύλη τεμαχίζεται όπως κάποτε οι Άγγλοι-Γάλλοι κλπ τεμάχισαν την Αφρική και οι καημένοι Αφρικανοί ακόμα σκοτώνονται μεταξύ τους.

Σημ: Δεκτές όλων των τύπων οι βολές. Μόνο προειδοποιείστε με για να φορέσω κανένα κράνος. >:D


Νίκος Αδαμόπουλος

  • Γενικός διαχειριστής
  • *****
  • Μηνύματα: 2811
  • Πύργος Ηλείας
Απ: Έξοδος από την ''Οσο'' σε αναζήτηση...
« Απάντηση #16 στις: 09 Ιαν 2010, 06:00:15 μμ »
Και εμένα δεν μου αρέσει η χρήση του i έξω από το βρόχο για να δείχνει τη θέση του στοιχείου. Αυτό το έκανε και o toufeki και ο gthal (στην 3η λύση)... Ίσα ίσα που δεν μου φαίνεται κομψό κάτι τέτοιο...  Συμφωνώ με τον Ευριπίδη ότι η κάθε μεταβλητή πρέπει να χρησιμοποιείται για έναν μόνο σκοπό. Τόσο από διδακτικής άποψης όσο και από προγραμματιστικής!

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

Από προγραμματιστικής άποψης, τι πιστεύετε ότι είναι πιο σημαντικό; Να γλυτώσουμε κάποια λίγα bytes από τη μείωση των μεταβλητών, ή να δημιουργηθεί το πρόγραμμα σε λιγότερο χρόνο, να είναι πιο σταθερό, να μπορεί να τροποποιείται/επεκτείνεται πιο εύκολα, να περιέχει επαναχρησιμοποιήσιμο κώδικα, κλπ. Η μείωση μιας μεταβλητής δεν συνεπάγεται ούτε πιο γρήγορα εκτελέσιμο πρόγραμμα, ούτε μείωση της πολυπλοκότητας...

Ας μην βλέπουμε τον αλγόριθμο αποσπασματικά αλλά ας τον φανταζόμαστε ενταγμένο σε έναν πολύ μεγαλύτερο αλγόριθμο. Όλα τα "πραγματικά" προγράμματα αποτελούνται από χιλιάδες γραμμές κώδικα, που μπορεί να έχουν γραφτεί από περισσότερους του ενός προγραμματιστές!  Π.χ. για την σειριακή αναζήτηση, μπορεί η θέση στην οποία βρέθηκε το στοιχείο να χρειαστεί και μετά από καμιά 500-αριά γραμμές κώδικα. Είναι σχεδόν σίγουρο ότι ο προγραμματιστής και έχει ξεχαστεί και θα έχει ξαναχρησιμοποιήσει το i ως μετρητή και κάπου αλλού. Άρα η θέση θα έχει πλέον χαθεί. Όπως είπε και ο dimitrios67 αυτό σίγουρα θα κάνει πιο πολύπλοκα τα πράγματα στο debugging. Για ποιο λόγο να μη χρησιμοποιήσουμε μία ξεχωριστή μεταβλητή; Με αυτόν τον τρόπο ο κώδικας θα είναι περισσότερο μεταφέρσιμος. Ή θα μπορεί να χωριστεί πιο εύκολα σε υποπρογράμματα.

Νίκος Αδαμόπουλος

  • Γενικός διαχειριστής
  • *****
  • Μηνύματα: 2811
  • Πύργος Ηλείας
Απ: Έξοδος από την ''Οσο'' σε αναζήτηση...
« Απάντηση #17 στις: 09 Ιαν 2010, 06:33:51 μμ »
Αν έχει γίνει ήδη προεργασία με λογικές μεταβλητές κατά τη διδασκαλία των επαναληπτικών δομών (π.χ. https://alkisg.mysch.gr/steki/index.php?topic=2373.0), τότε δεν θα "φρικάρουν" με αυτές. Εγώ για να εισάγω τον αλγόριθμο της σειριακής αναζήτησης περνάω από τα παρακάτω βήματα σε συνεργασία με τους μαθητές:

Αρχικά με Για:

βρέθηκε <- ψευδής
Για ι από 1 μέχρι Ν
   Αν Α[ι]=χ τότε
      θ<- ι
      βρέθηκε <- αληθής
  Τέλος_αν
Τέλος_επανάληψης


Όμως αν βρεθεί γιατί να κάνει στη συνέχεια περιττούς ελέγχους; Άρα πρέπει να εγκαταλείψουμε την Για: Μετατροπή σε Όσο που ξέρουν ήδη να την κάνουν:

βρέθηκε <- ψευδής
ι<- 1
Όσο ι<= Ν επανάλαβε
   Αν Α[ι]=χ τότε
      θ<- ι
      βρέθηκε <- αληθής
  Τέλος_αν
  ι<- ι+1
Τέλος_επανάληψης


Και τέλος επέκταση της συνθήκης ώστε να σταματάει αν και όταν βρεθεί το στοιχείο.

βρέθηκε <- ψευδής
ι<- 1
Όσο ι<= Ν και βρέθηκε=ψευδής επανάλαβε
   Αν Α[ι]=χ τότε
      θ<- ι
      βρέθηκε <- αληθής
  Τέλος_αν
  ι<- ι+1
Τέλος_επανάληψης


Για όλες τις περιπτώσεις το παρακάτω νομίζω ότι είναι μια χαρά:

Αν βρέθηκε=αληθής τότε
  εμφάνισε 'βρέθηκε στη θέση', θ
αλλιώς
  εμφάνισε 'δεν βρέθηκε'
τέλος_αν


Τους θυμίζω και το εναλλακτικό (  ;)  ):

βρέθηκε <- ψευδής
ι<- 1
Όσο ι<= Ν και όχι βρέθηκε επανάλαβε
   Αν Α[ι]=χ τότε
      θ<- ι
      βρέθηκε <- αληθής
  Τέλος_αν
  ι<- ι+1
Τέλος_επανάληψης

Αν βρέθηκε τότε
  εμφάνισε 'βρέθηκε στη θέση', θ
αλλιώς
  εμφάνισε 'δεν βρέθηκε'
τέλος_αν

... (το έχουμε ξανακουβεντιάσει αυτό: https://alkisg.mysch.gr/steki/index.php?topic=2476.0) χωρίς όμως να επιμένω αφού και το βιβλίο δεν ασχολείται. Τους λέω μάλιστα καλύτερα να μην το χρησιμοποιήσουν και έχουμε ατυχήματα!

Το ότι το ι αυξάνει κατά ένα (για andreas_p) στο τέλος παρόλο που βρέθηκε, το λέμε με τα παιδιά, δεν δα και κακό (περισσότερο κακό είναι το Αλλιώς!), μου φαίνεται όμως καλύτερο αφού έτσι θυμίζει περισσότερο την Για. Σε αυτό αν θυμάμαι καλά o evry είχε αναφερθεί παλιότερα και το είχε χαρακτηρίσει καταραμένο, πράγμα στο οποίο συμφωνώ.

Επίσης το ότι το θ δεν παίρνει αρχική τιμή το 0 δεν είναι κακό αν όντως χρησιμοποιηθεί η μεταβλητή Βρέθηκε για τον έλεγχο στο τέλος. Τα λέμε όλα αυτά, ένα ποσοστό των μαθητών τα καταλαβαίνει όλα, και κλείνουμε λέγοντας "ΟΚ παιδιά ο αλγόριθμος είναι αυτός που έχει και το βιβλίο και πρέπει να τον ξέρετε!!!    8) "

toufeki

  • Επισκέπτης
Απ: Έξοδος από την ''Οσο'' σε αναζήτηση...
« Απάντηση #18 στις: 09 Ιαν 2010, 06:52:25 μμ »
Τελικά αυτές οι συζητήσεις είναι πολύ ωφέλιμες σε πολλαπλά επίπεδα.
Με άλλον προορισμό ξεκινά κάτι και αλλού καταλήγει.  Σε ολόκληρη όμως τη διαδρομή "κερδίζει" και πάει.

Το ξαναλέω. Δεν πρόκειται να πείσω τους μαθητές ότι η λύση που προτάθηκε είναι η ιδανικότερη γιατί πολύ απλά δεν είναι και δεν είναι για τους λόγους που λέτε και εσείς. 
 Το Θέμα δεν είναι τι συμφωνούμε μεταξύ μας(που δε γίνεται να διαφωνούμε σ'αυτά γιατί πολύ απλά είναι αντικειμενικά στοιχεία της επιστήμης της Πληροφορικής-βέβαια παλαιότερα δεν ήταν[πχ χρήση goto]).
Το θέμα είναι ποια είναι η ύλη που διδάσκεται ο μαθητής σύμφωνα με τους φωστήρες του υπουργείου.

Ως αναφορά τώρα στη διδακτική , εκτός από τον πλουραλισμό υπάρχουν και τα αντιπαραδείγματα, υπάρχει και η δια θεματικότητα:
1. Μέσα από τις παραπάνω 2 δομές που πρότεινα η μία χρησιμοποιεί "όσο" και η άλλη "μέχρι".
2. Καταλαβαίνει μέσα από αυτήν τη δομή την ανικανότητα του υπουργείου να τον διδάξει σωστά(Μελέτη περίπτωσης: Όπως έγινε και στην περίπτωση που περιέγραψε ο gthal αν κάποιος μαθητής προτείνει μια λύση που λειτουργεί αλλά δεν ικανοποιεί κάποια από τα κριτήρια της αξιολόγησης προγράμματος ο καθηγητής δεν θα πρέπει να αφιερώσει διδακτική ώρα για να του το εξηγήσει; Στην περίπτωση όμως αυτή δεν διδάσκει θέμα εκτός ύλης; Εάν κάποιος άλλος μαθητής διακόψει τον καθηγητή του και του πεί ότι αυτά που μας λές είναι εκτός ύλης τότε ο καθηγητής πως πρέπει να το διαχειριστεί;)

Ακούγονται πεζά όλα αυτά αλλά πεζή είναι και η πραγματικότητα στο ελληνικό εκπαιδευτικό σύστημα με όλα αυτά τα παράλογα που συμβαίνουν.

gthal

  • Ομάδα διαγωνισμάτων 2017
  • *
  • Μηνύματα: 945
Απ: Έξοδος από την ''Οσο'' σε αναζήτηση...
« Απάντηση #19 στις: 09 Ιαν 2010, 06:55:05 μμ »
Ευχαριστώ για τις απαντήσεις - με ενδιαφέρουν απόψεις από διδακτικής/παιδαγωγικής σκοπιάς. Είναι σωστοί - εντάξει. Γίνονται και καλύτεροι - Ναι. Όμως ποιες χρησιμοποιείτε εσείς? όλες ? μία από αυτές ? κάποια άλλη ?
Ποια συν/πλην βρίσκετε σε κάθε μια ?

Ο κ. Αδαμόπουλος είναι πολύ μέσα στο πνεύμα της ερώτησης και στα δύο posts !!  :) Ευχαριστώ ιδιαίτερα !
Στο δεύτερο post βρίσκω την προσέγγιση πολύ κοντινή στη διαισθητική αντίληψη των μαθητών - ότι πρέπει δηλαδή για την παρουσίαση της τελικής μορφής της σειριακής (θα δυσκολευόμουν βέβαια να δικαιολογήσω γιατί χρησιμοποιώ την βρέθηκε όταν αναζητώ με Για - επιμένω ότι πλεονάζει)

Στο προηγούμενο post, συμφωνώ ότι είναι λίγο πιο επικίνδυνη η χρήση του ι έξω από την επανάληψη, μόνο κ μόνο λόγω του ονόματός του όμως (επειδή έχουμε συνηθίσει ό,τι λέγεται ι να του αλλάζουμε τα φώτα  :) )  Αν λεγόταν αλλιώς όμως...

βρέθηκε<--ψευδής
θ<--1
Οσο θ<=Ν και βρέθηκε=ψευδής επανάλαβε
   Αν Α[θ]=χ τότε
      βρέθηκε<--αληθής
   αλλιώς
      θ <-- θ+1
   τέλος_αν
τέλος_επανάληψης
Αν βρέθηκε=αληθής τότε
  εμφάνισε 'βρέθηκε στη θέση', θ
Αλλιώς
  εμφάνισε 'δεν βρέθηκε'
τέλος_αν

χε χε, αστειεύομαι, αλλά μάλλον τώρα δεν κινδυνεύει τόσο, έτσι δεν είναι ;
Προσπαθώ να πω πάντως ότι ναι, κάθε μεταβλητή να έχει το ρόλο της, όμως δεν παραβιάζεται ο ρόλος του ι εδώ. Και το ι θέση είναι : η εκάστοτε θέση στον πίνακα. Όπου έμεινε, εκεί είναι το ζητούμενο στοιχείο.

Τώρα όσον αφορά μεγάλα προγράμματα και πολλούς προγραμματιστές, εντάξει, τότε αυτές οι δουλειές θα γίνονται προφανώς από υποπρογράμματα, θα επιστρέφεται η τιμή του ι και όλα καλά.

Φιλικά,
Γιώργος Θαλασσινός

gthal

  • Ομάδα διαγωνισμάτων 2017
  • *
  • Μηνύματα: 945
Απ: Έξοδος από την ''Οσο'' σε αναζήτηση...
« Απάντηση #20 στις: 09 Ιαν 2010, 07:02:11 μμ »
Α, ξέχασα:
1)  τι έχει χαρακτηρίσει καταραμένο ο evry και γιατί   ?
2)  θυμίζω ότι την εναλλακτική "Αν βρέθηκε τότε" τη λατρεύω   :)
Φιλικά,
Γιώργος Θαλασσινός

Νίκος Αδαμόπουλος

  • Γενικός διαχειριστής
  • *****
  • Μηνύματα: 2811
  • Πύργος Ηλείας
Απ: Έξοδος από την ''Οσο'' σε αναζήτηση...
« Απάντηση #21 στις: 09 Ιαν 2010, 07:48:43 μμ »
Ο κ. Αδαμόπουλος...

Καλύτερα Νίκος για να αισθάνομαι πιο όμορφα!


(θα δυσκολευόμουν βέβαια να δικαιολογήσω γιατί χρησιμοποιώ την βρέθηκε όταν αναζητώ με Για - επιμένω ότι πλεονάζει)

Γιατί μας αρέσουν οι λογικές μεταβλητές! Και είναι πιο κοντά στην ανθρώπινη σκέψη! Είχα αναφέρει ένα παιχνίδι με τους μαθητές στο https://alkisg.mysch.gr/steki/index.php?topic=2373.0
Ε λοιπόν σε ένα παρόμοιο παιχνίδι για τη σειριακή αναζήτηση, αν το αναζητούμενο στοιχείο τελικά δεν υπάρχει, οι μαθητές θα θυμούνται ότι "δεν βρέθηκε" (ή "όχι βρέθηκε" ή "βρέθηκε=ψευδής") και όχι ότι "θ=0" (!!!)


Α, ξέχασα:
1)  τι έχει χαρακτηρίσει καταραμένο ο evry και γιατί   ?
2)  θυμίζω ότι την εναλλακτική "Αν βρέθηκε τότε" τη λατρεύω   :)

Χμμ... Για να θυμηθώ κι εγώ: Google: [Στέκι πληροφορικών evry αλλιώς καταραμένο]. ΟΚ, νάτο:
https://alkisg.mysch.gr/steki/index.php?topic=2473.msg20281#msg20281

Νίκος Αδαμόπουλος

  • Γενικός διαχειριστής
  • *****
  • Μηνύματα: 2811
  • Πύργος Ηλείας
Απ: Έξοδος από την ''Οσο'' σε αναζήτηση...
« Απάντηση #22 στις: 09 Ιαν 2010, 08:06:39 μμ »
Με ποιο δικαιολογητικό ο βαθμολογητής θα κόψει βαθμούς σε κάποιον μαθητή που θα γράψει ένα "κόλπο"(που δουλεύει) στις εξετάσεις;

Παναγιώτη δεν νομίζω να είπε κανείς σε αυτό το topic ότι θα κόψει μονάδες από ένα τέτοιο κόλπο ή αν ένας μαθητής παρουσιάσει άλλη λύση από την αναμενόμενη. Αν δεις στα διάφορα topics, έχουν γίνει ακόμα και συζητήσεις για το όντως πρέπει να κοπούν μονάδες σε περίπτωση που ο μαθητής κάνει αναζήτηση απλά με χρήση της Για, σε περιπτώσεις που η εκφώνηση δεν ορίζει σαφώς ότι δεν πρέπει να γίνουν περιττοί έλεγχοι... Οι όποιες ενστάσεις έχουν να κάνουν με την σκοπιμότητα μιας τέτοιας διδακτικής προσέγγισης του αλγορίθμου... αλλά και πάλι μην στενοχωριέσαι! Όλοι μας το ψάχνουμε το θέμα. Κανείς δεν είναι (ή δεν θα έπρεπε να είναι) απόλυτος ότι ντε και καλά είναι σωστός...

Νίκος Αδαμόπουλος

  • Γενικός διαχειριστής
  • *****
  • Μηνύματα: 2811
  • Πύργος Ηλείας
Απ: Έξοδος από την ''Οσο'' σε αναζήτηση...
« Απάντηση #23 στις: 09 Ιαν 2010, 08:32:14 μμ »
Αν λεγόταν αλλιώς όμως...

βρέθηκε<--ψευδής
θ<--1
Οσο θ<=Ν και βρέθηκε=ψευδής επανάλαβε
   Αν Α[θ]=χ τότε
      βρέθηκε<--αληθής
   αλλιώς
      θ <-- θ+1
   τέλος_αν
τέλος_επανάληψης
Αν βρέθηκε=αληθής τότε
  εμφάνισε 'βρέθηκε στη θέση', θ
Αλλιώς
  εμφάνισε 'δεν βρέθηκε'
τέλος_αν

χε χε, αστειεύομαι, αλλά μάλλον τώρα δεν κινδυνεύει τόσο, έτσι δεν είναι ;
Προσπαθώ να πω πάντως ότι ναι, κάθε μεταβλητή να έχει το ρόλο της, όμως δεν παραβιάζεται ο ρόλος του ι εδώ. Και το ι θέση είναι : η εκάστοτε θέση στον πίνακα. Όπου έμεινε, εκεί είναι το ζητούμενο στοιχείο.


Σίγουρα έχεις κάνει και το εξής (εύρεση max και θέσης αυτού στον πίνακα - αρκεί ο max να είναι μοναδικός):

max<-A[1]
θ<-1
Για i από 2 μέχρι Ν
   Αν Α[ι]>max τότε
     max<-A[ι]
     θ<-ι
   Τέλος_αν
Τέλος_επανάληψης

(ή με παρόμοιο τρόπο)

Εδώ πρέπει να ελεγχθούν όλα τα στοιχεία του πίνακα. Αν χρησιμοποιήσουμε το i για να σαρώσουμε τον πίνακα και το θ για να μας δείχνει τη θέση, τότε γιατί στη σειριακή αναζήτηση να χρησιμοποιήσουμε άλλες μεταβλητές για τον ίδιο σκοπό (ή τις ίδιες μεταβλητές για διαφορετικό σκοπό); Δεν θα πρέπει να υπάρχει μία συνέχεια και μια ομοιομορφία στην προσέγγιση του κάθε αλγορίθμου; Έτσι, λοιπόν, και στους δύο αλγορίθμους π.χ. το i θα χρησιμεύσει για τη σάρωση του πίνακα (ολόκληρου ή μέρος αυτού) και το θ για τη θέση... Διαφορετικά πιστεύω ότι θα αιφνιδιάζουμε τους μαθητές...

gthal

  • Ομάδα διαγωνισμάτων 2017
  • *
  • Μηνύματα: 945
Απ: Έξοδος από την ''Οσο'' σε αναζήτηση...
« Απάντηση #24 στις: 09 Ιαν 2010, 08:38:01 μμ »
Εντάξει λοιπόν Νίκο  ;)
Παράθεση
Είχα αναφέρει ένα παιχνίδι με τους μαθητές στο https://alkisg.mysch.gr/steki/index.php?topic=2373.0
Ναι, το είχα διαβάσει αυτό κάποια στιγμή και πρέπει να σου πω ότι από τότε το χρησιμοποιώ κι εγώ, και νομίζω μ' αυτό κερδίζω πολύ χρόνο ακόμα και με τους πιο "αργούς" μαθητές !
Αλλά και εκεί θα με ενοχλούσε κάποιος και να τους μετράει και να χρησιμοποιεί τη λογική μεταβλητή - πλεονασμός. Μου αρέσει να καταλαβαίνουν πότε έχουν αρκετά "εφόδια" και να μην κουβαλάνε περιττό "βάρος" από ανασφάλεια ή άγνοια. Γιαυτό και η στήριξη
Παράθεση
Γιατί μας αρέσουν οι λογικές μεταβλητές! Και είναι πιο κοντά στην ανθρώπινη σκέψη!
με καλύπτει αρκετά. Αν ξέρουμε ότι  το θ φτάνει αλλά έτσι μας αρέσει καλύτερα, οκ.

Παράθεση
Χμμ... Για να θυμηθώ κι εγώ: Google: [Στέκι πληροφορικών evry αλλιώς καταραμένο]. ΟΚ, νάτο:
Εντυπωσιακό! Κι επίσης εντυπωσιακό ότι το τελευταίο σχόλιό σου εκεί είναι "όποιος ψάχνει βρίσκει" :)
(καλά, είναι γεγονός ότι δεν ξέρω να ψάχνω :(  ...
γιαυτό και ρωτάω περί αναζήτησης   ;)  )
Φιλικά,
Γιώργος Θαλασσινός

evry

  • Γενικός διαχειριστής
  • *****
  • Μηνύματα: 3517
  • to Iterate is human to Recurse divine
Απ: Έξοδος από την ''Οσο'' σε αναζήτηση...
« Απάντηση #25 στις: 09 Ιαν 2010, 08:52:57 μμ »
Ο τρόπος που προτιμώ είναι ο παρακάτω, στον οποίο η μεταβλητή θέση παίζει διττό ρόλο αλλά στην περίπτωση αυτή δεν θεωρώ ότι είναι κακό από διδακτικής άποψης. Μου αρέσει αυτός ο τρόπος γιατί μπορώ πολύ πιο εύκολα να οδηγήσω έναν μαθητή εκεί, παρά στην έκδοση με τη λογική μεταβλητή
Κώδικας: [Επιλογή]
θέση<--0
ι<--1
Οσο ι<=Ν και θέση=0 επανάλαβε
   Αν Α[ι]=χ τότε
        θέση=ι
   τέλος_αν
   ι <-- ι + 1
τέλος_επανάληψης
Αν θέση>0 τότε
  εμφάνισε 'βρέθηκε στη θέση', θέση
Αλλιώς
  εμφάνισε 'δεν βρέθηκε'
τέλος_αν
φυσικά ακόμα καλύτερα προτιμώ το παρακάτω αλλά.....

Κώδικας: [Επιλογή]
for (i=0; i<N && A[i]!=key; i++) ;
για λόγους συντομίας
What I cannot create I do not understand -- Richard Feynman
http://evripides.mysch.gr

gthal

  • Ομάδα διαγωνισμάτων 2017
  • *
  • Μηνύματα: 945
Απ: Έξοδος από την ''Οσο'' σε αναζήτηση...
« Απάντηση #26 στις: 09 Ιαν 2010, 08:54:34 μμ »
Είμαι συνέχεια ένα post πίσω ... ουφ !
Παράθεση
Αν χρησιμοποιήσουμε το i για να σαρώσουμε τον πίνακα και το θ για να μας δείχνει τη θέση, τότε γιατί στη σειριακή αναζήτηση να χρησιμοποιήσουμε άλλες μεταβλητές για τον ίδιο σκοπό
Ναι, δεν το υποστηρίζω - για πλάκα το έγραψα έτσι.
Θέλω να καταλαβαίνουν ότι το ι μας δείχνει και τη θέση.

Όπως πχ στο διαχωρισμό, όπου κάθε πίνακας έχει το δείκτη του (ας πούμε ότι j είναι ο δείκτης στον πίν. Β)
Αν ρωτήσεις "και πόσα στοιχεία πέρασαν στον Πίνακα Β;"  πολλοί μαθητές θα βάλουν έναν μετρητή για να τα μετρήσουν.  Θέλω οπωσδήποτε να καταλάβουν ότι αυτό είναι περιττό γιατί ο j άμεσα ή έμμεσα (ανάλογα με την υλοποίηση) θα τους δώσει και το πλήθος των στοιχείων.

ή ας πούμε, σε συμμετρίες, ότι δε χρειάζονται άλλον δείκτη διότι το συμμετρικό του i είναι το N+1-i (ότι μας αρκεί το i γιατί υπάρχει άμεση εξάρτηση)

ΥΓ.
Παράθεση
Αλλιώς
   i <- i + 1
θα συμπέρανα ότι ο μαθητής απλά αντιγράφει τον αλγόριθμο του βιβλίου και δεν έχει καταλάβει πως δουλεύει (πιθανότατα)
Α, ώστε το βιβλίο την κάνει με την αλλιώς ... ε, εκεί και αν είναι περιττό το position  !!!
Φιλικά,
Γιώργος Θαλασσινός

gthal

  • Ομάδα διαγωνισμάτων 2017
  • *
  • Μηνύματα: 945
Απ: Έξοδος από την ''Οσο'' σε αναζήτηση...
« Απάντηση #27 στις: 09 Ιαν 2010, 09:01:21 μμ »
evry, συμφωνώ και με τους δύο κώδικες
Διδάσκω τον πρώτο στους "δύσκολους" μαθητές και είμαστε καλυμμένοι ...
αλλά πρόσφατα είδα κάτι ερωτήσεις θεωρίας ή Σ-Λ  που αναφέρονται στη λογική μεταβλητή της σειριακής και άρχισαν να με ζώνουν φίδια ότι έτσι ίσως εκθέσω κάποιους μαθητές.

με το δεύτερο κώδικα συμφωνώ, κι εγώ το προτιμώ, γιαυτό και προτιμούμε άλλες γλώσσες (πλην της ΓΛΩΣΣΑΣ)  υποθέτω  ;)
Φιλικά,
Γιώργος Θαλασσινός

toufeki

  • Επισκέπτης
Απ: Έξοδος από την ''Οσο'' σε αναζήτηση...
« Απάντηση #28 στις: 09 Ιαν 2010, 09:10:36 μμ »
Ευριπίδη θα ήθελα να ρωτήσω για τον πίνακα στοιχείων στον 2ο κώδικα:
Ο πίνακας έχει Ν θέσεις ή Ν+1(0,1,2...,Ν);

Σημ: ΟΚ το ; (semicolon) ;)
« Τελευταία τροποποίηση: 09 Ιαν 2010, 09:22:00 μμ από toufeki »

evry

  • Γενικός διαχειριστής
  • *****
  • Μηνύματα: 3517
  • to Iterate is human to Recurse divine
Απ: Έξοδος από την ''Οσο'' σε αναζήτηση...
« Απάντηση #29 στις: 09 Ιαν 2010, 09:31:12 μμ »
 Ν θέσεις από 0-->Ν-1

@gthal
Για πες καμιά τέτοια ερώτηση θεωρίας για να καταλάβω τι εννοείς
What I cannot create I do not understand -- Richard Feynman
http://evripides.mysch.gr