Λάθος (περιττός έλεγχος) στη δυαδική αναζήτηση στις ΟΔΗΓΙΕΣ ΜΕΛΕΤΗΣ

Ξεκίνησε από din_os, 16 Ιαν 2020, 10:14:44 ΠΜ

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

din_os

Στις ΟΔΗΓΙΕΣ ΜΕΛΕΤΗΣ στην σελίδα 75, 76 παρουσιάζεται η δυαδική αναζήτηση διαφοροποιημένη από τις Οδηγίες Διδασκαλίας. Πιο συγκεκριμένα περιέχει μια επιπλέον ΑΝ:

ΑΝ μέση >=1 ΚΑΙ μέση <= 100 ΤΟΤΕ


μετά από μια μικρή έρευνα θεωρώ ότι η ΑΝ είναι περιττή. Πιστεύω ότι ο προγραμματιστής ήθελε να σιγουρευτεί για την περίπτωση που θα πάρει μηδέν η μεταβλητή μέση (αυτό συμβαίνει όταν για παράδειγμα όταν ψάχνουμε το -3 σε πίνακα θετικών αριθμών) όμως δεν υπάρχει κίνδυνος γιατί στην μοναδική περίπτωση που το τέλος γίνει μηδέν (τέλος = 0, αρχή = 1), θα ισχύει τελος < αρχή όπου και η όσο θα έχει τερματιστεί πριν δημιουργήσει την επόμενη μέση.

Εκτός αν κάνω λάθος το υπουργείο οφείλει να στείλει διευκρίνηση.

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

Το πρόβλημα είναι ότι έχουμε 5  βιβλια για το μάθημα ΠΛΗΡΟΦΟΡΙΚΗ Γ ΛΥΚΕΙΟΥ όπου πολλές φορές το ίδιο γνωστικό αντικείμενο να παρουσιάζεται γραμμένο με διαφορετικό τρόπο σε διάφορα βιβλία από διαφορετικούς συγγραφείς. Αυτό έχει ως αποτέλεσμα να γράφονται τα ίδια πράγματα με άλλη οπτική γωνία....

din_os

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

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

Σκέφτομαι να τους πώ "με επιφύλαξη" η εντολή αυτή είναι περιττή.

Μέχρι τώρα νομίζω ο μόνος τρόπος για να αποτύχει η αναζήτηση χωρίς την εντολή αυτή είναι τα αρχή τέλος να είναι αρνητικά ( ; )

gthal

Μπορείς να παραθέσεις τον αλγόριθμο, γιατί δε βρίσκω αυτό που λες;
Φιλικά,
Γιώργος Θαλασσινός

Λαμπράκης Μανώλης

Γιώργο νομίζω είναι στη φετινή έκδοση, μήωπς κοιτάς την περσινή ??? έχουν κάπιοες διαφορές σε κάποιους κώδικες ... εγώ νομίζω δεν ελέγχει κάτι αυτή η δομή επιλογής, το όσο κάνιε μια χαρά τη δουλειά  >:D :laugh:

din_os

Παράθεση από: gthal στις 17 Ιαν 2020, 10:04:40 ΠΜ
Μπορείς να παραθέσεις τον αλγόριθμο, γιατί δε βρίσκω αυτό που λες;

ΔΙΑΒΑΣΕ KEY
αρχ <- 1
τέλος <- 100
δεικτης <- ΨΕΥΔΗΣ
ΟΣΟ αρχ <= τέλος ΚΑΙ δεικτης = ΨΕΥΔΗΣ ΕΠΑΝΑΛΑΒΕ
  μέση <- (αρχ + τέλος) div 2
  ΑΝ μέση >= 1 ΚΑΙ μέση <= 100 ΤΟΤΕ ! <------------ ΠΕΡΙΤΤΗ ΑΝ ;
    ΑΝ KEY < Α[μέση] ΤΟΤΕ
      τέλος <- μέση - 1
    ΑΛΛΙΩΣ_ΑΝ KEY > Α[μέση] ΤΟΤΕ
      αρχ <- μέση + 1
    ΑΛΛΙΩΣ
      δεικτης <- ΑΛΗΘΗΣ
    ΤΕΛΟΣ_ΑΝ
  ΤΕΛΟΣ_ΑΝ
ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ
ΑΝ δεικτης = ΑΛΗΘΗΣ ΤΟΤΕ
  ΓΡΑΨΕ 'Βρέθηκε στη θέση ', μέση
ΑΛΛΙΩΣ
  ΓΡΑΨΕ 'Δε βρέθηκε'
ΤΕΛΟΣ_ΑΝ

ApoAntonis

Παράθεση από: din_os στις 16 Ιαν 2020, 10:14:44 ΠΜ


μετά από μια μικρή έρευνα θεωρώ ότι η ΑΝ είναι περιττή. Πιστεύω ότι ο προγραμματιστής ήθελε να σιγουρευτεί για την περίπτωση που θα πάρει μηδέν η μεταβλητή μέση (αυτό συμβαίνει όταν για παράδειγμα όταν ψάχνουμε το -3 σε πίνακα θετικών αριθμών) όμως δεν υπάρχει κίνδυνος γιατί στην μοναδική περίπτωση που το τέλος γίνει μηδέν (τέλος = 0, αρχή = 1), θα ισχύει τελος < αρχή όπου και η όσο θα έχει τερματιστεί πριν δημιουργήσει την επόμενη μέση.

Εκτός αν κάνω λάθος το υπουργείο οφείλει να στείλει διευκρίνηση.

ναι

Αν μέση=0 <=>
(αρχ+τελος) DIV 2 =0 <=>
αρχ +τέλος <= 1

οπότε αρχ=0 και τέλος=1 (αδύνατο αφού το αρχ μόνο αυξάνεται)
ή
αρχ=1 και τέλος=0 (αδύνατο αφού ο έλεγχος της ΟΣΟ είναι ΗΔΗ ψευδής)


και αν (μέση > 100)

το οποίο επίσης είναι αδύνατο εφόσον η αρχική τιμή είναι 101/2 και συνεχώς το διάστημα μειώνεται

gthal

Παράθεση από: Λαμπράκης Μανώλης στις 17 Ιαν 2020, 10:16:35 ΠΜ
Γιώργο νομίζω είναι στη φετινή έκδοση, μήωπς κοιτάς την περσινή ??? έχουν κάπιοες διαφορές σε κάποιους κώδικες ... εγώ νομίζω δεν ελέγχει κάτι αυτή η δομή επιλογής, το όσο κάνιε μια χαρά τη δουλειά  >:D :laugh:
Όντως κοιτάζω την περσινή ...
Κι εγώ νομίζω ότι είναι περιττή αυτή η συνθήκη
Φιλικά,
Γιώργος Θαλασσινός

Αριστοτέλης Βιτωράτος

Η μεταβλητή μέση παίρνει τιμή (αρχ+τέλος) div2.
Με αρχ>=1 και τέλος<=100, η μέση θα ανήκει στο [1,100] οπωσδήποτε.
Άρα η ΑΝ αυτή είναι περιττή.
Παρόλα αυτά, σε περίπτωση που ζητηθεί ο αλγόριθμος δυαδικής αναζήτησης στις πανελλήνιες, είναι περιττό άγχος για τους εξεταζόμενους μαθητές
να μην την γράψουν και να φοβούνται για κόψιμο μονάδων.
Επίσης αν πέσει ο αλγόριθμος δυαδικής αναζήτησης σε συμπλήρωση κενού, θα τη χρειαστούν.
Το σωστό βέβαια είναι στο μέλλον να υπάρξει διόρθωση και να γραφτεί ο αλγόριθμος χωρίς την ύπαρξη αυτής της ΑΝ.

gthal

Παράθεση από: Aris_v στις 21 Ιαν 2020, 06:35:13 ΠΜ
Επίσης αν πέσει ο αλγόριθμος δυαδικής αναζήτησης σε συμπλήρωση κενού, θα τη χρειαστούν.
Καλό είναι πάντως οι μαθητές να μην παπαγαλίσουν τον αλγόριθμο αλλά να καταλάβουν τη λογική του γιατί μπορεί να δοθεί με πολλές μικρές παραλλαγές (στις οδηγίες διδασκαλίας, πέρυσι-πρόπερσι, ήταν διαφορετικός αν θυμάμαι καλά).
Και βέβαια, αν δοθεί για συμπλήρωση κενού, καλό θα ήταν να μην υπάρχουν τέτοια λάθη και περιττές εντολές γιατί εκεί μπορεί ο μαθητής, ενώ ξέρει και καταλαβαίνει τον αλγόριθμο, να μη μπορεί να φανταστεί τι πρέπει να βάλει ή μπορεί και να βάλει ότι να 'ναι.
πχ αν δοθούν κενά σ' αυτή την άχρηστη ΑΝ:
ΑΝ μέση >= ___ ΚΑΙ  ___ <= 100 ΤΟΤΕ
μόνο κάποιος που έχει παπαγαλίσει θα ξέρει τι "περιμένουμε" να βάλει. Αυτός που δεν έχει παπαγαλίσει (που τον προτιμάμε) ή θα κολλήσει και ενδέχεται να τα αφήσει κενά, ή αν έχει κέφια θα τρολλάρει συμπληρώνοντας πχ το 0 και στα δύο κενά, και δε μπορείς να πεις ότι είναι λάθος.

Αστεία μου φάνηκε πχ μια παραλλαγή που είδα σε ένα ... διαγώνισμα (ίσως το είδαν κι άλλοι  ;) )
X <-  1
ΑΡΧΗ<-1
ΤΕΛΟΣ<-__(α)__
DONE<-__(β)__
ΟΣΟ (ΑΡΧΗ<=ΤΕΛΟΣ) ΚΑΙ (DONE=ΨΕΥΔΗΣ) ΚΑΙ (X <= __(γ)__)  ΕΠΑΝΑΛΑΒΕ
  Μ <- (ΑΡΧΗ +ΤΕΛΟΣ)DIV2
  ΑΝ Α[Μ]=KEY ΤΟΤΕ
      ....
  ΑΛΛΙΩΣ_ΑΝ   ........
      ....
  ΑΛΛΙΩΣ
      ....
  ΤΕΛΟΣ_ΑΝ
   __(ζ)__ <- __(η)__ + 1
ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ

....

Όπου (εκτός ότι χρησιμοποιούνται δεσμευμένες λέξεις ως μεταβλητές!!!) συμμετέχει στη συνθήκη και ένα μυστηριώδες Χ    :D
εντελώς άχρηστο και δε χρησιμοποιείται και πουθενά παρακάτω (θα μπορούσε πχ να μετρά τις επαναλήψεις που έγιναν; αλλά γιατί να συμμετέχει στη συνθήκη)
Νομίζω ότι θα ήταν δείγμα ψυχικής υγείας, αν ένας μαθητής δε μπορούσε να διανοηθεί τι να συμπληρώσει στα αντίστοιχα κενά για την Χ  ;D
Η επίσημη λύση έδινε ότι στο (γ) είναι Χ<=5 !!!???  και στα (ζ) και (η)  Χ <- Χ + 1    οκέιιιιιιι
Αν δηλαδή έβαζα αντίστοιχα χ<=1  και παρακάτω  Χ <- 0 + 1 , πού θα ήμουν λάθος ;
Φιλικά,
Γιώργος Θαλασσινός


din_os

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

Καλή συνέχεια στον αγώνα φέτος! Ευχαριστώ.