Το Στέκι των Πληροφορικών

Γενικό Λύκειο => Μονοδιάστατοι πίνακες => Γ΄ Λυκείου => Αναζήτηση => Μήνυμα ξεκίνησε από: dimpapp στις 08 Μαρ 2012, 12:39:13 ΠΜ

Τίτλος: Διευκρίνιση
Αποστολή από: dimpapp στις 08 Μαρ 2012, 12:39:13 ΠΜ
υπάρχει διαφορά ανάμεσα σε αυτό

θέση <- 0
Ι <- 1
Οσο  Ι<= Ν και θέση=0 επανάλαβε
  Αν Π[Ι]= key τοτε
       θεση <- Ι
   αλλιώς
       Ι <- Ι+1
  Τελος_αν
Τελος_επαναληψης


και στο παρακάτω;

θέση <- 0
Ι <- 1
Οσο  Ι<= Ν και θέση=0 επανάλαβε
  Αν Π[Ι]= key τοτε
       θεση <- Ι
   Τέλος_αν
       Ι <- Ι+1
Τελος_επαναληψης
Τίτλος: Απ: Διευκρίνιση
Αποστολή από: petrosp13 στις 08 Μαρ 2012, 01:01:00 ΠΜ
Προφανώς το πρώτο δεν προχωράει στην επόμενη θέση όταν βρει το ζητούμενο και ταιριάζει με την λογικη "Αν στην θέση που είμαστε δεν υπάρχει το ζητούμενο, πάνε στην επόμενη"
Τίτλος: Απ: Διευκρίνιση
Αποστολή από: Λαμπράκης Μανώλης στις 12 Φεβ 2014, 11:54:19 ΠΜ
ήθελα και εγώ μία ερώτηση "παραλλαγής" στην κλασσική  αναζήτηση, δεν ανοίγω νέο θέμα, την βάζω εδώ

αν κάνουμε μία αναζήτηση με την "κλασσική" μορφή του βιβλίου και στο τέλος πούμε πχ

θέση <- 0
Ι <- 1
Οσο  Ι<= Ν και θέση=0 επανάλαβε
  Αν Π[Ι]= key τοτε
       θεση <- Ι
   αλλιώς
       Ι <- Ι+1
  Τελος_αν
Τελος_επαναληψης
ΑΝ έλεγος=αληθής τότε
   εμφάνισε "βρέθηκε στην θέση", i                
Αλλιώς                                               
   εμφάνισε "δεν βρέθηκε"           
Τέλος_αν


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

σωστή η σκέψη ή μου διαφεύγει κάτι ??
Τίτλος: Απ: Διευκρίνιση
Αποστολή από: petrosp13 στις 12 Φεβ 2014, 12:10:04 ΜΜ
Σωστή η σκέψη σου
Απλά, ο αλγόριθμος σειριακής αναζήτησης, όπως ορίζεται στο βιβλίο, περιέχει 2 μεταβλητές εκτός από το i (λογική και θέση) και καλό θα είναι να χρησιμοποιούνται όταν η εκφώνηση προσδιορίζει να χρησιμοποιήσουμε τον αλγόριθμο
Αν και είναι περιττές και οι 2
Τίτλος: Απ: Διευκρίνιση
Αποστολή από: Λαμπράκης Μανώλης στις 12 Φεβ 2014, 12:33:08 ΜΜ
Βασικά και εγώ τους λέω καλύτερα να συμβαδίζουμε με το βιβλίο, απλά σαν σκέψη ήθελα να δω....να ρωτήσω, λες είναι περιττές και οι δύο ... είναι περιττές και οι δύο μαζί υποθέτω, όχι και οι δύο γενικά, την μία την θέλουμε να σταματήσει την επανάληψη για περιττούς ελέγχους, σωστα ??

ευχαριστώ
Τίτλος: Απ: Διευκρίνιση
Αποστολή από: petrosp13 στις 12 Φεβ 2014, 02:17:58 ΜΜ
Η επανάληψη μπορεί να σταματήσει και με το i

i<--1
Όσο (i <= N) επανάλαβε
    Αν (Α=ζητούμενο) τότε
          Εμφάνισε ...
          i <-- N+100
    Αλλιώς
          i <-- i + 1
    Τέλος_Αν
Τέλος_Επανάληψης

Αν (i = N+100) τότε
     Εμφάνισε 'Δεν βρέθηκε'
Τέλος_Αν
   
Τίτλος: Απ: Διευκρίνιση
Αποστολή από: Λαμπράκης Μανώλης στις 12 Φεβ 2014, 04:47:29 ΜΜ
ναι σωστά ευχαριστώ...
Τίτλος: Απ: Διευκρίνιση
Αποστολή από: evry στις 12 Φεβ 2014, 07:58:12 ΜΜ
Ο παρακάτω αλγόριθμος έχει το πρόβλημα ότι δεν κρατάς τη θέση του ζητούμενου κατι που εχει ζητηθει πολλες φορες στις εξετασεις. Άρα η μεταβλητή θέση θα έλεγα ότι μάλλον ειναι απαραίτητη.
Επίσης ο παρακάτω αλγοριθμος

Κώδικας [Επιλογή]

Όσο (i <= N) επανάλαβε
    Αν (Α(i)=ζητούμενο) τότε
          Εμφάνισε ...
          i <-- N+100
    ΤΑ
     i <-- i + 1
    Τέλος_Αν
Τέλος_Επανάληψης


δεν ειναι ισοδυναμος με αυτον?
(όπου ισοδυναμος = έχουν το ιδιο διάγραμμα ροης)

Κώδικας [Επιλογή]
i<--1
Για ι από 1 μεχρι Ν
    Αν (Α(i)=ζητούμενο) τότε
          Εμφάνισε ...
          i <-- N+100
    ΤΑ
    Τέλος_Αν
Τέλος_Επανάληψης


Γιατι ο ένας να ειναι κακη πρακτικη και ο άλλος όχι?

Να σημειώσω ότι η παρακάτω τεχνική θεωρείται πολύ καλή σε αρκετές σύγχρονες γλώσσες προγραμματισμού


Κώδικας [Επιλογή]
i<--1
Για ι από 1 μεχρι Ν
    Αν (Α(i)=ζητούμενο) τότε
          Εμφάνισε ...
          break;
    ΤΑ
    Τέλος_Αν
Τέλος_Επανάληψης



@mkouv
το σκεπτικό σου ειναι πολύ σωστό, μπορείς  να πεις στους μαθητες σου να το χρησιμοποιουν αφοβα
Τίτλος: Απ: Διευκρίνιση
Αποστολή από: Λαμπράκης Μανώλης στις 12 Φεβ 2014, 10:18:36 ΜΜ
καλησπέρα

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

τώρα σχετικά με το Για, δεν διακόπτει τις επαναλήψεις, οπότε "στα πλαίσια του μαθήματος" δεν το χρησιμοποιούμε...

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

καλό βράδυ σε όλους


Τίτλος: Απ: Διευκρίνιση
Αποστολή από: itt στις 13 Φεβ 2014, 12:27:34 ΠΜ
Παράθεση από: evry στις 12 Φεβ 2014, 07:58:12 ΜΜ
Ο παρακάτω αλγόριθμος έχει το πρόβλημα ότι δεν κρατάς τη θέση του ζητούμενου κατι που εχει ζητηθει πολλες φορες στις εξετασεις. Άρα η μεταβλητή θέση θα έλεγα ότι μάλλον ειναι απαραίτητη.

Δεν νομίζω ότι μπορείς να πεις ότι ειναι απαραίτητη άμα δεν θες να κρατάς την θέση.

Παράθεση από: evry στις 12 Φεβ 2014, 07:58:12 ΜΜ

Γιατι ο ένας να ειναι κακη πρακτικη και ο άλλος όχι?

Να σημειώσω ότι η παρακάτω τεχνική θεωρείται πολύ καλή σε αρκετές σύγχρονες γλώσσες προγραμματισμού

Υποθέτω στα πλαίσια του μαθήματος, καλό είναι αυτό που θεωρείται περισσότερο δομημένο, οπότε και οι δύο αντιμετωπίσεις ειναι αρκετά άκομψες.

Παράθεση από: mkouv στις 12 Φεβ 2014, 10:18:36 ΜΜ
στον δρόμο απ το φροντιστήριο σκεφτόμουν ότι όντως αν θέλουμε την θέση να την κρατήσουμε δεν βολεύει ο αλγόριθμος δίχως την "θέση"

Όπως είπα, δεν ειναι θέμα του κατα πόσον βολεύει. Άμα χρειάζεσαι την θέση, κρατάς την θέση άμα δεν την χρειάζεσαι δεν την κρατάς.
Τίτλος: Απ: Διευκρίνιση
Αποστολή από: evry στις 13 Φεβ 2014, 10:19:19 ΜΜ
Παράθεση από: itt στις 13 Φεβ 2014, 12:27:34 ΠΜ
Δεν νομίζω ότι μπορείς να πεις ότι ειναι απαραίτητη άμα δεν θες να κρατάς την θέση.
Απαραίτητη για τις εξετάσεις είναι, γιατί η συντριπτική πλειοψηφία των θεμάτων που έχει πέσει με σειριακή αναζήτηση σου ζητάει τη θέση.

Παράθεση
Υποθέτω στα πλαίσια του μαθήματος, καλό είναι αυτό που θεωρείται περισσότερο δομημένο, οπότε και οι δύο αντιμετωπίσεις ειναι αρκετά άκομψες.
προφανώς το ερώτημα ήταν ρητορικό
Τίτλος: Απ: Διευκρίνιση
Αποστολή από: itt στις 13 Φεβ 2014, 10:56:43 ΜΜ
ΠαράθεσηΑπαραίτητη για τις εξετάσεις είναι, γιατί η συντριπτική πλειοψηφία των θεμάτων που έχει πέσει με σειριακή αναζήτηση σου ζητάει τη θέση.

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

Παράθεσηπροφανώς το ερώτημα ήταν ρητορικό

Είναι όμως ενδιαφέρον.
Τίτλος: Απ: Διευκρίνιση
Αποστολή από: evry στις 13 Φεβ 2014, 11:17:07 ΜΜ
Δυστυχώς, όταν δουλεύεις σε φροντιστήριο η ουσία είναι τα παιδιά να πετύχουν στις εξετάσεις κάτι που δεν συνεπάγεται αυτόματα κριτική αντιμετώπιση.
Για αυτό απάντησα με σκεπτικό που πρέπει να δώσουν βάρος σε σχέση πάντα με τα θέματα που μπαίνουν.

Παράθεση από: itt στις 13 Φεβ 2014, 10:56:43 ΜΜ
Νομίζα ότι η ουσία είναι τα παιδιά να αποκτήσουν μια κριτική αντιμετώπιση, όχι να σκέφτονται με ποσόδειξη. Τελοσπάντων, δεν διαφωνούμε σε κάτι ουσιώδες.
Τίτλος: Απ: Διευκρίνιση
Αποστολή από: Λαμπράκης Μανώλης στις 14 Φεβ 2014, 09:14:59 ΠΜ
Παράθεση από: evry στις 13 Φεβ 2014, 11:17:07 ΜΜ
Δυστυχώς, όταν δουλεύεις σε φροντιστήριο η ουσία είναι τα παιδιά να πετύχουν στις εξετάσεις κάτι που δεν συνεπάγεται αυτόματα κριτική αντιμετώπιση.
Για αυτό απάντησα με σκεπτικό που πρέπει να δώσουν βάρος σε σχέση πάντα με τα θέματα που μπαίνουν.


καλημέρα σε όλους...

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

ευχαριστώ
Τίτλος: Απ: Διευκρίνιση
Αποστολή από: itt στις 15 Φεβ 2014, 02:51:50 ΜΜ
Μιλάμε όμως για κάτι που έχει εξαιρετικά μικρό cognitive load, πολύ μικρότερο σε σχέση π.χ με τα θεωρήματα του απειροστικού λογισμού. Επίσης μιλάμε για κάτι relatively straigthforward που δείχνει και την κατανόηση του πρόβληματος. Ie, κατα πόσον εξετάζω την ύπαρξη vs ψάχνω τη θέση ενός στοιχείου.