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

Γενικό Λύκειο => Ανάπτυξη εφαρμογών σε προγραμματιστικό περιβάλλον => Μονοδιάστατοι πίνακες => Μήνυμα ξεκίνησε από: summer στις 05 Φεβ 2009, 02:36:26 μμ

Τίτλος: σειριακή αναζήτηση-flag
Αποστολή από: summer στις 05 Φεβ 2009, 02:36:26 μμ
Καλησπέρα σε όλους.Eγώ θέλω να ρωτήσω κάτι άλλο σαν συνέχεια του προηγούμενου θέματος.Στον αλγόριθμο σειριακής όπως τον έχει το βιβλίο με ρώτησε μια μαθήτρια τι χρειάζεται το flag τη στιγμή που υπάρχει το Pos.Πρότεινε η μικρή την εξής λύση


j<--1
pos<--0
οσο j<=n και Pos=0 επανέλαβε 
    Αν Α[j]=key τότε
        pos<--j
    Τέλος_Αν
 j<--j+1
Τέλος επανάληψης

Αν pos=0 τότε Εμφάνισε 'Δε βρέθηκε το key'
αλλιώς Εμφάνισε 'Βρέθηκε το key στη θέση',Pos


τι λετε;δεν μπορεί το Pos έτσι να παίξει και ρόλο flag?(2 σε 1) ;)γιατί χρησιμοποιεί επιπλέον μεταβλητή;
Τίτλος: Απ: σειριακή αναζήτηση-flag
Αποστολή από: Laertis στις 05 Φεβ 2009, 02:57:22 μμ
Αυτονόητα σωστό  :)
Τίτλος: Απ: σειριακή αναζήτηση-flag
Αποστολή από: andreas_p στις 05 Φεβ 2009, 05:50:33 μμ
Σωστό.

επανάλαβε

Αν το key  το βρω γιατί να αυξήσω το j ;

δλδ

Αν Α[j] = key  τότε
   pos <-- j
αλλιώς
   j <-- j+1
Τέλος_αν

Τίτλος: Απ: σειριακή αναζήτηση-flag
Αποστολή από: alkisg στις 05 Φεβ 2009, 06:48:32 μμ
τι λετε;δεν μπορεί το Pos έτσι να παίξει και ρόλο flag?(2 σε 1) ;)γιατί χρησιμοποιεί επιπλέον μεταβλητή;
Φυσικά και το pos μπορεί να παίξει ρόλο flag.

Κατά τη γνώμη μου το βιβλίο χρησιμοποιεί δύο μεταβλητές για να φανεί ξεκάθαρα ότι ο αλγόριθμος έχει δύο αποτελέσματα, το ΑΝ βρέθηκε, και το ΠΟΥ βρέθηκε.
Το {αν pos <> 0 θεωρούμε ότι βρέθηκε} είναι μια σύμβαση η οποία θέλει εξήγηση, δεν είναι ξεκάθαρο αποτέλεσμα.

Το βιβλίο καθηγητή έχει μία συζήτηση στη σελίδα 65 για ένα παραπλήσιο (αλλά όχι ταυτόσημο) ερώτημα.
Τίτλος: Απ: σειριακή αναζήτηση-flag
Αποστολή από: summer στις 05 Φεβ 2009, 09:32:22 μμ
Σωστό αυτό που λες απλώς το έκανε έτσι η μαθήτρια και μιας και το είδα έτσι λυμένο σε σχολικό βοήθημα(Λαζαρίδη) είπα να μην της το χαλάσω.Πολλές φορές αυτό είναι ένα πρόβλημα γιατί σε ρωτάνε "γιατί δεν πρέπει έτσι?δεν τρέχει???"




Σωστό.

επανάλαβε

Αν το key  το βρω γιατί να αυξήσω το j ;

δλδ

Αν Α[j] = key  τότε
   pos <-- j
αλλιώς
   j <-- j+1
Τέλος_αν


Τίτλος: Απ: σειριακή αναζήτηση-flag
Αποστολή από: andreas_p στις 05 Φεβ 2009, 10:25:16 μμ
Πολλές φορές αυτό είναι ένα πρόβλημα γιατί σε ρωτάνε "γιατί δεν πρέπει έτσι?δεν τρέχει???"

Φυσικά και 'τρέχει'. Απλά εγώ ως διορθωτής - βαθμολογητής εισπράττω μήνυμα.  Που ενδεχομένως μπορεί να το λάβω υπόψιν,  μπορεί και όχι. Ανάλογα με τη συνολική εικόνα του γραπτού.
Τίτλος: Απ: σειριακή αναζήτηση-flag
Αποστολή από: sstergou στις 05 Φεβ 2009, 10:43:49 μμ
Πάντως άσχετα με την ορθότητα του αλγορίθμου, πιστεύω ότι η σειριακή αναζήτηση (έτσι όπως την έχει το βιβλίο) είναι ένα πάρα πολύ καλό σημείο για να εξηγήσεις στους μαθητές την χρησιμότητα των λογικών μεταβλητών, αν βέβαια δεν το έχεις κάνει πιο νωρίς.

Θα προτιμούσα βέβαια να ήταν κάπως έτσι :
Κώδικας: Text
  1. Όσο δεν_βρέθηκε και ι <= ν επανάλαβε
Τίτλος: Απ: σειριακή αναζήτηση-flag
Αποστολή από: Παναγιώτης Τσιωτάκης στις 06 Φεβ 2009, 03:26:14 μμ
http://alkisg.mysch.gr/steki/index.php?topic=1702.msg12789#msg12789
Τίτλος: Απ: σειριακή αναζήτηση-flag
Αποστολή από: EleniK στις 16 Φεβ 2009, 01:28:23 πμ
Μια χαρά είναι. Αρκεί να καταλαβαίνουν πως δουλεύει και αν βάλουν flag ή pos δεν πειράζει.
Τίτλος: Απ: σειριακή αναζήτηση-flag
Αποστολή από: Καρκαμάνης Γεώργιος στις 16 Φεβ 2009, 01:39:36 πμ
 Συμφωνώ με την Ελένη