Max και Min

Ξεκίνησε από Kalli, 01 Νοε 2010, 01:50:02 ΜΜ

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

Kalli

Γεια σας συνάδελφοι! Εχω μια ερώτηση για το μέγιστο και ελάχιστο. Αν η άσκηση ζητάει το max και min 200 βαθμών, γράφουμε:

max<--0
min <-- 21
Για i από 1 μέχρι 200
    Διάβασε β
    Αν max<β τότε
        max<--β
    Τελος_αν
    Αν min >β τότε
        min <--β
    Τελος_αν
Τελος_επαναληψης

Είναι σωστό και το παρακάτω;;;;;;;
max<--0
min <-- 21
Για i από 1 μέχρι 200
    Διάβασε β
    Αν max<β τότε
        max<--β
    Αλλιώς
        min <--β
    Τελος_αν
Τελος_επαναληψης

petrosp13

Όταν μια τιμή δεν είναι μεγαλύτερη της μέγιστης, δεν σημαίνει αυτόματα ότι είναι και μικρότερη της ελάχιστης
max=8
min=2
και εξετάζεται π.χ. το 6. Θα το βάλεις min επειδή δεν είναι μεγαλύτερο του max;;;;

Ο πρώτος αλγόριθμος είναι σωστός εφόσον εξασφαλίζεται ότι οι βαθμοί είναι στην κλίμακα 0-20
Παπαδόπουλος Πέτρος
Καθηγητής Πληροφορικής

Δημήτρης Γκίνης

@Kalli:
Γνώμη μου είναι ότι όπου ζητείται μέγιστο ή ελάχιστο από μια σειρά αριθμών (το ίδιο ισχύει και για χαρακτήρες φυσικά), καλό είναι να συμβουλεύουμε τους μαθητές μας να ορίζουν ως μέγιστο (ή ελάχιστο ) τον πρώτο από τους αριθμούς (ή χαρακτήρες) και να συγκρίνουν τους υπόλοιπους με αυτό .
Όχι ότι η λογική που παρουσιάζει το παράδειγμά σου είναι λάθος (αναφέρομαι στο να θέτεις  στο max την τιμή 0 και στο min το 21, γιατί κατά τα άλλα θα συμφωνήσω με τον petrosp13 ότι η δεύτερη λύση είναι λάθος), αλλά αρκετοί μαθητές τείνουν να εφαρμόζουν την μεθοδολογία αυτή ως "τυφλοσούρτη" με αποτέλεσμα σε ασκήσεις όπως το παρακάτω παράδειγμα να την πατάνε:
"Να γραφεί αλγόριθμος μου διαβάζει 100 αριθμούς και βρίσκει τον μέγιστο από αυτούς και τον εμφανίζει"

mour

Παράθεση από: Δημήτρης Γκίνης στις 01 Νοε 2010, 03:40:48 ΜΜ
@Kalli:
Γνώμη μου είναι ότι όπου ζητείται μέγιστο ή ελάχιστο από μια σειρά αριθμών (το ίδιο ισχύει και για χαρακτήρες φυσικά), καλό είναι να συμβουλεύουμε τους μαθητές μας να ορίζουν ως μέγιστο (ή ελάχιστο ) τον πρώτο από τους αριθμούς (ή χαρακτήρες) και να συγκρίνουν τους υπόλοιπους με αυτό .
Όχι ότι η λογική που παρουσιάζει το παράδειγμά σου είναι λάθος (αναφέρομαι στο να θέτεις  στο max την τιμή 0 και στο min το 21, γιατί κατά τα άλλα θα συμφωνήσω με τον petrosp13 ότι η δεύτερη λύση είναι λάθος), αλλά αρκετοί μαθητές τείνουν να εφαρμόζουν την μεθοδολογία αυτή ως "τυφλοσούρτη" με αποτέλεσμα σε ασκήσεις όπως το παρακάτω παράδειγμα να την πατάνε:
"Να γραφεί αλγόριθμος μου διαβάζει 100 αριθμούς και βρίσκει τον μέγιστο από αυτούς και τον εμφανίζει"

Συμφωνώ απόλυτα με αυτη την άποψη και επι πλέον η κλίμακα των βαθμών στο λύκειο είναι από 0 έως και 100  ;)

Νίκος Αδαμόπουλος

... και για να το πάρει το ποτάμι, το:

   Αν max<β τότε
        max<--β
    Τελος_αν
    Αν min >β τότε
        min <--β
    Τελος_αν

... θα ήταν ισοδύναμο με το

    Αν max<β τότε
        max<--β
    αλλιώς_αν min >β τότε
        min <--β
    Τελος_αν

... αν δεν υπήρχε περίπτωση να ίσχυαν ταυτόχρονα και οι δύο συνθήκες max<β και min>β. Αυτό όντως θα συνέβαινε αν είχες εκχωρήσει τον πρώτο αριθμό που διαβάζεται ως αρχική τιμή του max και min. Π.χ.

Διάβασε β
max<--β
min <-- β
Για i από 2 μέχρι 200
    Διάβασε β
    Αν max<β τότε
        max<--β
    αλλιώς_αν min >β τότε
        min <--β
    Τελος_αν
Τελος_επαναληψης

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