ΠΑΙΔΙΑ ΜΠΟΡΕΙ ΚΑΠΟΙΟΣ ΝΑ ΜΟΥ ΕΞΗΓΗΣΕΙ ΓΙΑΤΙ ΠΡΕΠΕΙ ΝΑ ΧΡΗΣΙΜΟΠΟΙΩ ΤΟΝ ΑΛΓΟΡΙΘΜΟ 1 (ΟΠΩΣ ΕΧΩ ΒΡΕΙ ΣΕ ΑΡΚΕΤΑ ΒΙΒΛΙΑ) ΓΙΑ ΤΟΝ ΥΠΟΛΟΓΙΣΜΟ ΜΕΓΙΣΤΟΥ ΓΡΑΜΜΗΣ ΑΝΤΙ ΤΟΥ ΑΛΓΟΡΙΘΜΟΥ 2. ΥΠΑΡΧΟΥΝ ΔΙΑΦΟΡΕΣ ;;;
ΤΜΗΜΑ ΑΛΓΟΡΙΘΜΟΥ 1
ΓΙΑ Ι ΑΠΟ 1 ΜΕΧΡΙ 10
ΜΑΧ <-- Α [Ι,1]
ΓΙΑ J ΑΠΟ 2 ΜΕΧΡΙ 20
ΑΝ ΜΑΧ > Α [I,J] TOTE
MAX <-- A [I,J]
ΤΕΛΟΣ_ΑΝ
ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ
ΜΕΓ[Ι] <-- ΜΑΧ
ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ
ΤΜΗΜΑ ΑΛΓΟΡΙΘΜΟΥ 2
ΓΙΑ Ι ΑΠΟ 1 ΜΕΧΡΙ 10
ΜΑΧ[Ι] <-- Α [Ι,1]
ΓΙΑ J ΑΠΟ 2 ΜΕΧΡΙ 20
ΑΝ ΜΑΧ[Ι] > Α [I,J] TOTE
MAX[Ι] <-- A [I,J]
ΤΕΛΟΣ_ΑΝ
ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ
ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ
ΥΠΑΡΧΕΙ ΠΡΟΒΛΗΜΑ ΠΟΥ ΧΡΗΣΙΜΟΠΟΙΩ ΤΟΝ ΠΙΝΑΚΑ ΜΑΧ[Ι] ΜΕΣΑ ΣΤΗΝ ΕΠΑΝΑΛΗΨΗ ΚΑΙ ΔΟΥΛΕΥΩ ΜΕ ΤΑ ΣΤΟΙΧΕΙΑ ΤΟΥ ;;;;; :-[ :-[
???ΓΙΑΤΙ ΠΡΕΠΕΙ ΝΑ ΔΟΥΛΕΥΩ ΜΕ ΜΕΤΑΒΛΗΤΗ ΚΑΙ ΜΕΤΑ ΝΑ ΤΗΝ ΑΠΟΘΗΚΕΥΩ ΣΤΗΝ ΘΕΣΗ ΤΟΥ ΠΙΝΑΚΑ ΜΕΓ[Ι] ???
ΣΗΜΕΙΩΣΗ :
MAX[Ι] ΣΤΟΝ 2ο ΑΛΓΟΡΙΘΜΟ EINAI O ΜΕΓ[Ι] ΣΤΟΝ 1ο ΑΛΓΟΡΙΘΜΟ
ΕΥΧΑΡΙΣΤΩ ΕΚ ΤΩΝ ΠΡΟΤΕΡΩΝ ΓΙΑ ΤΗΝ ΒΟΗΘΕΙΑ
Σωστά και τα δύο.
Απλά το 1ο είναι πιο κατανοητό στο ... λαό.
Είναι όμως
Αν ΜΑΧ < Α [I,J] ... (1ο)
και
Αν ΜΑΧ[Ι] < Α [I,J] ... (2ο)
Ανδρέας
Εγώ πάλι θεωρώ το δεύτερο πιο κατανοητό και αυτό διδάσκω
Και τα δυο ειναι σωστά. Εγώ πάντως διδάσκω τον πρώτο τρόπο.
Για κάποιον που έχει μαθηματική κουλτούρα ο 2ος τρόπος είναι μάλλον πιο λογικός.
Για τα παιδιά δε ξέρω τι θα είναι πιο ευκολονόητο - επειδή η πλειοψηφία τους στα μαθηματικά είναι για τα μπάζα μάλλον ο πρώτος τρόπος θα είναι πιο εύπεπτος.
Θεωρώ όμως ότι για τους μαθητές που έχουν δυνατότητες και σοβαρές αξιώσεις πρέπει να διδαχθεί ο δεύτερος.
απαντηση στον andreas_p
Sorry, έχεις δίκιο , ο δαίμων της πληκτρολόγησης
Βεβαίως και είναι MAX<A[I,J]
ΕΥΧΑΡΙΣΤΩ ΓΙΑ ΤΙΣ ΑΠΑΝΤΗΣΕΙΣ ΣΑΣ
ΠΑΝΤΩΣ ΣΤΗΝ ΒΙΒΛΙΟΓΡΑΦΙΑ ΑΝΑΦΕΡΕΤΑΙ Ο ΠΡΩΤΟΣ ΑΛΓΟΡΙΘΜΟΣ
FRAGILE
Κατ'αρχήν διαφωνώ με την άποψη ότι οι 2 τρόποι είναι ισοδύναμοι. Μπορεί να βγάζουν το ίδιο αποτέλεσμα όμως ισοδύναμοι σίγουρα δεν είναι και ο λόγος είναι απλός: Όταν ένας μαθητής χρησιμοποιεί τον 1ο τρόπο είναι σαν να μου λέει ότι "Δεν έχω καταλάβει ότι το MAX[ι] είναι μια μεταβλητή και όχι πίνακας και ότι μπορεί να μπει όπου μπορεί να μπει μια μεταβλητή". Σε κανένα σοβαρό βιβλίο αλγορίθμων ή προγραμματισμού δεν θα βρείτε τον 1ο τρόπο. Ο 2ος είναι αυτονόητος. Για ποιο λόγο να χρησιμοποιήσεις μια παραπάνω μεταβλητή αφού δεν την έχεις ανάγκη.
Για να μην παρεξηγηθώ δε μιλάω από βαθμολογικής πλευράς, μιλάω από την πλευρά της εξέτασης του μαθητή ως διαδικασία ανατροφοδότησης της μάθησης. Δηλαδή να δεις τι έχει καταλάβει από αυτά που του έχεις διδάξει. Και όταν ένας μαθητής χρησιμοποιεί τον 1ο τρόπο σημαίνει ότι δεν έχει κατανόησει πλήρως τη λειτουργία και τη σημασιολογία των πινάκων.
Ένα παράδειγμα είναι το παρακάτω
Αντί ο μαθητής να γράψει κατευθείαν
a[ x[i] ] <-- έκφραση
όπου το x είναι ένας πίνακας από δείκτες στα στοιχεία του πίνακα a
γράφει
b <-- x[i]
a[ b ] <-- έκφραση
Ξέρω ότι το παραπάνω παράδειγμα μπορεί να θεωρηθεί λίγο τραβηγμένο αλλά δείχνει αν ο μαθητής έχει καταλάβει ότι το στοιχείο x[ι] είναι μια απλή μεταβλητή και χρησιμοποιείται έτσι και ότι το x είναι ο πίνακας