Καλησπέρα σε όλους.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) ;)γιατί χρησιμοποιεί επιπλέον μεταβλητή;
Αυτονόητα σωστό :)
Σωστό.
επανάλαβε
Αν το key το βρω γιατί να αυξήσω το j ;
δλδ
Αν Α[j] = key τότε
pos <-- j
αλλιώς
j <-- j+1
Τέλος_αν
Παράθεση από: tina28 στις 05 Φεβ 2009, 02:36:26 ΜΜ
τι λετε;δεν μπορεί το Pos έτσι να παίξει και ρόλο flag?(2 σε 1) ;)γιατί χρησιμοποιεί επιπλέον μεταβλητή;
Φυσικά και το pos μπορεί να παίξει ρόλο flag.
Κατά τη γνώμη μου το βιβλίο χρησιμοποιεί δύο μεταβλητές για να φανεί ξεκάθαρα ότι ο αλγόριθμος έχει δύο αποτελέσματα, το ΑΝ βρέθηκε, και το ΠΟΥ βρέθηκε.
Το {αν pos <> 0 θεωρούμε ότι βρέθηκε} είναι μια σύμβαση η οποία θέλει εξήγηση, δεν είναι ξεκάθαρο αποτέλεσμα.
Το βιβλίο καθηγητή έχει μία συζήτηση στη σελίδα 65 για ένα παραπλήσιο (αλλά όχι ταυτόσημο) ερώτημα.
Σωστό αυτό που λες απλώς το έκανε έτσι η μαθήτρια και μιας και το είδα έτσι λυμένο σε σχολικό βοήθημα(Λαζαρίδη) είπα να μην της το χαλάσω.Πολλές φορές αυτό είναι ένα πρόβλημα γιατί σε ρωτάνε "γιατί δεν πρέπει έτσι?δεν τρέχει???"
Παράθεση από: andreas_p στις 05 Φεβ 2009, 05:50:33 ΜΜ
Σωστό.
επανάλαβε
Αν το key το βρω γιατί να αυξήσω το j ;
δλδ
Αν Α[j] = key τότε
pos <-- j
αλλιώς
j <-- j+1
Τέλος_αν
Παράθεση από: tina28 στις 05 Φεβ 2009, 09:32:22 ΜΜ
Πολλές φορές αυτό είναι ένα πρόβλημα γιατί σε ρωτάνε "γιατί δεν πρέπει έτσι?δεν τρέχει???"
Παράθεση από: andreas_p στις 05 Φεβ 2009, 05:50:33 ΜΜ
Φυσικά και 'τρέχει'. Απλά εγώ ως διορθωτής - βαθμολογητής εισπράττω μήνυμα. Που ενδεχομένως μπορεί να το λάβω υπόψιν, μπορεί και όχι. Ανάλογα με τη συνολική εικόνα του γραπτού.
Πάντως άσχετα με την ορθότητα του αλγορίθμου, πιστεύω ότι η σειριακή αναζήτηση (έτσι όπως την έχει το βιβλίο) είναι ένα πάρα πολύ καλό σημείο για να εξηγήσεις στους μαθητές την χρησιμότητα των λογικών μεταβλητών, αν βέβαια δεν το έχεις κάνει πιο νωρίς.
Θα προτιμούσα βέβαια να ήταν κάπως έτσι :
Όσο δεν_βρέθηκε και ι <= ν επανάλαβε
https://alkisg.mysch.gr/steki/index.php?topic=1702.msg12789#msg12789
Μια χαρά είναι. Αρκεί να καταλαβαίνουν πως δουλεύει και αν βάλουν flag ή pos δεν πειράζει.
Συμφωνώ με την Ελένη