σειριακή αναζήτηση-flag

Ξεκίνησε από summer, 05 Φεβ 2009, 02:36:26 ΜΜ

« προηγούμενο - επόμενο »

summer

Καλησπέρα σε όλους.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) ;)γιατί χρησιμοποιεί επιπλέον μεταβλητή;

Laertis

Νικολακάκης Γιώργος
Μηχανικός Η/Υ Συστημάτων
Καθηγητής Πληροφορικής
http://users.sch.gr/gnikola

andreas_p

Σωστό.

επανάλαβε

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

δλδ

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


alkisg

Παράθεση από: tina28 στις 05 Φεβ 2009, 02:36:26 ΜΜ
τι λετε;δεν μπορεί το Pos έτσι να παίξει και ρόλο flag?(2 σε 1) ;)γιατί χρησιμοποιεί επιπλέον μεταβλητή;
Φυσικά και το pos μπορεί να παίξει ρόλο flag.

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

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

summer

Σωστό αυτό που λες απλώς το έκανε έτσι η μαθήτρια και μιας και το είδα έτσι λυμένο σε σχολικό βοήθημα(Λαζαρίδη) είπα να μην της το χαλάσω.Πολλές φορές αυτό είναι ένα πρόβλημα γιατί σε ρωτάνε "γιατί δεν πρέπει έτσι?δεν τρέχει???"




Παράθεση από: andreas_p στις 05 Φεβ 2009, 05:50:33 ΜΜ
Σωστό.

επανάλαβε

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

δλδ

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



andreas_p

Παράθεση από: tina28 στις 05 Φεβ 2009, 09:32:22 ΜΜ
Πολλές φορές αυτό είναι ένα πρόβλημα γιατί σε ρωτάνε "γιατί δεν πρέπει έτσι?δεν τρέχει???"
Παράθεση από: andreas_p στις 05 Φεβ 2009, 05:50:33 ΜΜ

Φυσικά και 'τρέχει'. Απλά εγώ ως διορθωτής - βαθμολογητής εισπράττω μήνυμα.  Που ενδεχομένως μπορεί να το λάβω υπόψιν,  μπορεί και όχι. Ανάλογα με τη συνολική εικόνα του γραπτού.

sstergou

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

Θα προτιμούσα βέβαια να ήταν κάπως έτσι :
Κώδικας: Ψευδογλώσσα
Όσο δεν_βρέθηκε και ι <= ν επανάλαβε


P.Tsiotakis


EleniK

Μια χαρά είναι. Αρκεί να καταλαβαίνουν πως δουλεύει και αν βάλουν flag ή pos δεν πειράζει.
Ελένη Κοκκίνου
Καθηγήτρια Πληροφορικής, ΠΕ19

Καρκαμάνης Γεώργιος