Σχετικά με το div και το mod

Ξεκίνησε από G-ORFANOS, 05 Νοε 2003, 11:34:44 ΜΜ

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

G-ORFANOS

Μπορούμε να χρησιμοποιήσουμε στον ψευδοκώδικα το Div και το Mod ή μόνο στην γλώσσα επιτρέπεται αυτό
Γιώργος Ορφανός

Sergio

Φίλε Γιώργο,

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

Ειδικά για τους DIV και MOD, θα βρείς παράδειγμα χρήσης τους με ψευδογλώσσα στη σελίδα 48 του σχολικού βιβλίου (πολ/σμός  αλά ρωσικά)

Σέργιος
Απ τη μια η θητεία μου σε σχολικές αίθουσες: να φλυαρώ - να ελπίζω πως κατι κατάλαβαν - να εξερευνώ - να μαθαίνω. Απ την άλλη, σχεδόν συνομήλικη, η Διδακτική της Πληροφορικής: ερευνά διαδικασίες μάθησης - φλερτάρει με την Ψυχολογία - με καλεί να αφήσω το βλέμμα του Πληροφορικού και να δω με τα μάτια του δασκάλου. Τέκνα των 2, οι απόψεις μου.. (προσαρμοσμένο από τον πρόλογο του βιβλίου "Το μακρόν Φυσική προ του βραχέως διδάσκω" του Ανδρέα Κασσέτα)

G-ORFANOS

#2
Μου έδωσες την αφορμή με την απαντησή σου να σε ρωτήσω το εξής. Γιατί στον πολλαπλασιασμό αλά ρωσικά χρησιμοποιεί την εντολή Μ2<--[Μ2/2] και όχι την Μ2 <-- Μ2 DIV 2 ;
Γιώργος Ορφανός

Sergio

Πολύ καλή ερώτηση και σωστή παρατήρηση !!!

Κατ'αρχήν να παρατηρήσω ότι οι τελεστές DIV και MOD είναι ήδη πλημμελώς ορισμένοι (για περιπτώσεις ετερόσημων τελεστέων).  Σε παραπέμπω στη συζήτηση (Συζήτηση για τους τελεστές DIV και MOD) που έχει ξεκινήσει παράλληλα με το δικό σου ερώτημα, από τη συνάδελφο Φανή (pfan)

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

Για την ακρίβεια, αν δεν κάνω λάθος, ο τελεστής DIV πρωτο-ορίζεται στο βιβλίο στη σελίδα 153 κατά τον ορισμό της ΓΛΩΣΣΑΣ (αν κάνω λάθος διορθώστε με)

Βέβαια το ίδιο γίνεται και με τον τελεστή MOD ο οποίος ενώ χρησιμοποιείται στα πρώτα κεφάλαια της παρουσίασης της αλγοριθμικής προσέγγισης στην επίλυση προβλημάτων (σελ.48, 71), ουσιαστικά πρωτο-ορίζεται και αυτός στη ΓΛΩΣΣΑ (σελ.153).

Κανένας από τους δύο τελεστές (DIV, MOD) δεν υπάρχει στον ορισμό της ψευδογλώσσας (σελ.46, 47)

Ενώ όμως τον MOD τον χρησιμοποιεί όπου χρειάζεται, τον DIV το βιβλίο αποφεύγει (συμπτωματικά; ) να τον χρησιμοποιήσει στα πρώτα κεφάλαια.  

Ίσως απλά δεν μπορεί να αποφύγει τη χρήση του MOD (αφού δεν υπάρχει κάτι αντίστοιχο στην απλή ... αριθμητική), ενώ μπορεί και χρησιμοποιεί το / αντί του DIV, κάνοντας βέβαια και την απαραίτητη .. διευκρύνιση (αντί ορισμού!; ) την πρώτη φορά που το χρησιμοποιεί.

Στον στον πολ/σμό α λα ρωσικά (σελ.48 ) καταφεύγει στη χρήση μιάς περίεργης σημειολογίας της μορφής:
 Μ2 <- [Μ2/2]  
με το σχόλιο "θεώρησε μόνο το ακέραιο μέρος" στην παρουσίαση του αλγορίθμου με φυσική γλώσσα κατά βήματα (που προηγείται της ψευδογλώσσας)

Την ίδια σημειολογία, χρησιμοποιεί και στον αλγόριθμο της δυαδικής αναζήτησης στη σελίδα 86 (εκτός ύλης), χρησιμοποιώντας την εντολή:
 meso <- [arxi + telos] /2  

Βέβαια, αν θεωρήσουμε ότι ο συμβολισμός [] υποδηλώνει το ακέραιο μέρος της παράστασης που περιβάλει.. στην περίπτωση της δυαδικής αναζήτησης, νομίζω ότι και αυτή η σημειολογία χρησιμοποιείται εσφαλμένα, μιά και υποδηλώνει το ακέραιο μέρος του arxi + telos αντί για το ακέραιο μέρος του (arxi + telos) /2.  ... αλλιώς ποιό στοιχείο του πίνακα Phones προσπελαύνει ο αλγόριθμος εάν arxi είναι 1 και telos είναι 12;..[1+12]/2=[13]/2=6.5... επομένως το phones[6.5]; Ενώ το Meso <- (arxi + telos) DIV 2 είναι σίγουρα ορθότερο... ή έστω το [(arxi + telos) / 2])

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

Με την ίδια παραδοχή όμως, δε θα θεωρούσα λάθος από ένα μαθητή, αντίθετα θα θεωρούσα ασφαλέστερο (και ορθότερο) να χρησιμοποιήσει τον τελεστή DIV σε περιπτώσεις ανάλογες με αυτές των σελίδων 48 και 86 αντί του [].

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

ΣΥΜΠΕΡΑΣΜΑΤΙΚΑ

Αν το δούμε αυστηρά, όντως το σημείο που πρόσεξες εισάγει μία ασάφεια αλλά, προσωπικά νομίζω, ότι:

α) είναι ασφαλής η χρήση του DIV και του MOD όταν ζητείται η κατασκευή προγράμματος σε ΓΛΩΣΣΑ (αφού οι τελεστές έχουν οριστεί στη σελ.153)

β) είναι ασφαλής η χρήση του DIV και του MOD σε οποιαδήποτε μορφή παράστασης αλγόριθμου αφού η κοινή λογική το επιτρέπει.  Και βέβαια γίνεται απόλυτα ασφαλής έναντι του οποιουδήποτε βαθμολογητή εάν ορίσει τον τελεστή που χρησιμοποιεί στα πλαίσια της απάντησής του (π.χ. λέγοντας ... όπου A DIV Β το πηλίκο της ακέραιας διαίρεσης του Α με το Β).

Σέργιος
Απ τη μια η θητεία μου σε σχολικές αίθουσες: να φλυαρώ - να ελπίζω πως κατι κατάλαβαν - να εξερευνώ - να μαθαίνω. Απ την άλλη, σχεδόν συνομήλικη, η Διδακτική της Πληροφορικής: ερευνά διαδικασίες μάθησης - φλερτάρει με την Ψυχολογία - με καλεί να αφήσω το βλέμμα του Πληροφορικού και να δω με τα μάτια του δασκάλου. Τέκνα των 2, οι απόψεις μου.. (προσαρμοσμένο από τον πρόλογο του βιβλίου "Το μακρόν Φυσική προ του βραχέως διδάσκω" του Ανδρέα Κασσέτα)

Sergio

Με αφορμή το θέμα που ξεκίνησε η Φανή (pfan) εδώ και μία εβδομάδα (πώς δηλαδή ορίζονται οι τελεστές mod και div για ετερόσημους τελεστέους), παρατήρησα κάτι το οποίο αφορά και το θέμα που ξεκίνησες εσύ Γιώργο, δηλαδή γιατί το βιβλίο αποφεύγει να χρησιμοποιήσει τον τελεστή div πριν το κεφάλαιο 7.

Αναζητώντας απάντηση στο ερώτημα της Φανής, κοίταξα το βιβλίο μαθηματικών κατεύθυνσης της Γ' Λυκείου, στο οποίο παρουσιάζονται κάποια στοιχεία της θεωρίας αριθμών.  

Παρατήρησα λοιπόν, ότι ΚΑΙ σε αυτό το βιβλίο, ενώ χρησιμοποιείται ευρέως ο τελεστής mod, δεν χρησιμοποιείται πουθενά ο div.

Κατέληξα λοιπόν στο συμπέρασμα ότι όπως πρέπει να έχει γίνει σαφές από την επίσημη 'φωνή' του μαθήματος (το Δ.Π.): Το συγκεκριμένο μάθημα επιχειρεί να διδάξει αλγοριθμική σκέψη σε μαθητές που για πρώτη φορά (με την εξαίρεση ίσως της Γ' Γυμνασίου) έρχονται σε επαφή με το αντικείμενο.

Στην προσπάθεια αυτή, νομίζω ότι σκόπιμα οι συγγραφείς επέλεξαν να χρησιμοποιήσουν ΜΟΝΟ τελεστές οι οποίοι είναι ήδη γνωστοί στα παιδιά προκειμένου να αποφύγουν περιττούς ... θορύβους, όπως θα ήταν η εκμάθηση νέων τελεστών (έτσι εξηγείται και η χρήση των γνωστών από τα μαθηματικά τελεστών ανισοϊσότητας και διάφορου, αντί των <=, >=, <> που πρωτο-εισάγονται στο κεφάλαιο 7!!!)


Εξαίρεση ίσως αποτελεί ο τελεστής ^ ο οποίος αναγκαστικά παρουσιάζεται στο κεφάλαιο 2, προκειμένου να επιτρέψει στο μαθητή να εκφράζει τη σκέψη του χρησιμοποιώντας κοινούς, πεζούς χαρακτήρες (χωρίς εκθέτες ή δείκτες) χωρίς όμως και αυτός ο τελεστής να διδάσκει κάτι νέο! (όπως το div για το πηλίκο της ευκλείδιας διαίρεσης)
[/i]

Με αυτό τον τρόπο, ο μαθητής χρειάζεται μόνο να μάθει την αλγοριθμική προσέγγιση στην εφαρμογή ... γνώσεων που ΗΔΗ έχει.  Υπ'αυτό το πρίσμα, το βιβλίο δέχεται, και μάλιστα προτείνει στο μαθητή, να κάνει ακέραια διαίρεση απλά γράφοντας:
 Μ2 <- [Μ2/2]
αφού προηγούμενα σηπαρατηρήσει ότι ... "παίρνουμε μόνο το ακέραιο μέρος".  Λάθος από το πρίσμα μίας γλώσσας προγραμματισμού, δεν εμποδίζει σε τίποτα τον (νεοεισαγώμενο στην αλγοριθμική) μαθητή να περιγράψει με σαφήνεια (και καθοριστικότητα και αποτελεσματικότητα κ.λ.π.) τον τρόπο επίλυσης του προβλήματος.

Αργότερα, έχοντας 'κατακτήσει' αυτό τον πρώτο στόχο, καλείται (Κεφ.7,8,9) να ακολουθήσει την αυστηρή γραμματική και συντακτική προσσέγγιση μιάς γλώσσας προγραμματισμού.  Εκεί, έχοντας πλέον ξεπεράσει τα πρώτα εμπόδια, και έχοντας ήδη αποκτήσει αλγοριθμική σκέψη, είναι μάλλον καταλληλότερη στιγμή για να ασχοληθεί και με νέους τελεστές (όπως ο div, σελ.153) ή και με άλλους, προσφορότερους για τον Η/Υ τρόπους για την αποτύπωση γνωστών τελεστών (<=, >=, <>)

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

Αυτό είναι το νόημα του μαθήματος, εκεί νομίζω πρέπει να κατευθύνουμε τους μαθητές μας και με αυτό κατα νού να αξιολογούμε τα γραπτά τους.
Απ τη μια η θητεία μου σε σχολικές αίθουσες: να φλυαρώ - να ελπίζω πως κατι κατάλαβαν - να εξερευνώ - να μαθαίνω. Απ την άλλη, σχεδόν συνομήλικη, η Διδακτική της Πληροφορικής: ερευνά διαδικασίες μάθησης - φλερτάρει με την Ψυχολογία - με καλεί να αφήσω το βλέμμα του Πληροφορικού και να δω με τα μάτια του δασκάλου. Τέκνα των 2, οι απόψεις μου.. (προσαρμοσμένο από τον πρόλογο του βιβλίου "Το μακρόν Φυσική προ του βραχέως διδάσκω" του Ανδρέα Κασσέτα)

P.Tsiotakis

#5
Αστέριε,

μεγάλο λάθος της συγγραφικής ομάδας η χρήση της εντολής [M2 / 2] για το ακέραιο μέρος. Πάλι καλά που οι πολύ παρατηρητικοί (!!) μαθητές δεν θυμήθηκαν αργότερα οτι οι αγκύλες χρησιμοποιούνται και στους πίνακες!!

Απο την αρχή ξεκαθάρισα στους μαθητές μου οτι επιβάλλεται το σύμβολο <> στο αλγόριθμο, ^ για τη δύναμη και φυσικά div, mod. Έτσι, δεν υπήρξαν απορίες και σύγχυση αργότερα

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

Με εκτίμηση,