Πρωτοβάθμια και Δευτεροβάθμια Εκπαίδευση
Αδιόριστοι Εκπαιδευτικοί => Πίνακες αναπληρωτών - Εξετάσεις ΑΣΕΠ => Κλάδος ΠΕ86 Πληροφορικής => Μήνυμα ξεκίνησε από: euler18 στις Μαρτίου 29, 2021, 10:41:58 pm
-
Αλγόριθμος Εύρεση_Μεγίστου
Εμφάνισε "Δώσε μου 3 αριθμούς"
Διάβασε α, β, γ
Αν α > β και α > γ τότε
Εμφάνισε "ο μεγαλύτερος είναι ο ", α
Αλλιώς_αν β > α και β > γ τότε
Εμφάνισε "ο μεγαλύτερος είναι ο ", β
Αλλιώς
Εμφάνισε "ο μεγαλύτερος είναι ο ", γ
Τέλος_αν
Τέλος Εύρεση_Μεγίστου
Καλησπέρα, βρίσκετε κάποιο λάθος σε αυτόν τον αλγόριθμο?
-
Δεν χρειάζεται και συνθήκη if.. then.. και για το γ ?
-
Πιστεύω πως οχι, διαφωνείς?
-
Αλγόριθμος Εύρεση_Μεγίστου
Εμφάνισε "Δώσε μου 3 αριθμούς"
Διάβασε α, β, γ
Αν α > β και α > γ τότε
Εμφάνισε "ο μεγαλύτερος είναι ο ", α
Αλλιώς_αν β > α και β > γ τότε
Εμφάνισε "ο μεγαλύτερος είναι ο ", β
Αλλιώς
Εμφάνισε "ο μεγαλύτερος είναι ο ", γ
Τέλος_αν
Τέλος Εύρεση_Μεγίστου
Καλησπέρα, βρίσκετε κάποιο λάθος σε αυτόν τον αλγόριθμο?
Εγώ θα έλεγα το.λαθος είναι πως πρέπει να θεωρήσεις δεδομένο ότι όποιος τον τρέξει θα εισάγει τρεις διαφορετικούς αριθμούς. Αν δώσει για τιμές a=5, b=5, c=3 δεν θα τρέξει σωστά. Μάλιστα θα σου βγάλει ότι ο μεγαλύτερος είναι το c=3 που προφανώς είναι λάθος. Επίσης ο αλγόριθμος με τη λογική αυτή θα μεγάλωνε δυσανάλογα αν ήθελες να συγκρίνεις 4 αριθμούς και παραπάνω. Το σωστότερο είναι να γίνει με max.
-
Σωστός!
-
Σωστός!
Αν χρειαστείς βοήθεια να τον κάνεις με max πες το μου να σου τον γράψω.
-
Την ξερω τη μεθοδολογια με το max, απλα ειπα να σκεφτω κατι άλλο... (για 3 παντα αριθμους) Ευχαριστώ!
-
Αλγόριθμος Μέγιστος
βρεθηκε_μεγ ← Ψευδής
max ← 0
Για i από 1 μέχρι 3
Εμφάνισε "Δωσε μου έναν αριθμό"
Διάβασε α
Αν βρεθηκε_μεγ = Ψευδής και max = 0 τότε
βρεθηκε_μεγ ← Αληθής
max ← α
αλλιώς_αν α > max και βρεθηκε_μεγ = Αληθής τότε
max ← α
Τέλος_αν
Τέλος_επανάληψης
Εμφάνισε max
Τέλος Μέγιστος
Καλύπτει όλες τις περιπτώσεις?
-
Αλγόριθμος Μέγιστος
βρεθηκε_μεγ ← Ψευδής
max ← 0
Για i από 1 μέχρι 3
Εμφάνισε "Δωσε μου έναν αριθμό"
Διάβασε α
Αν βρεθηκε_μεγ = Ψευδής και max = 0 τότε
βρεθηκε_μεγ ← Αληθής
max ← α
αλλιώς_αν α > max και βρεθηκε_μεγ = Αληθής τότε
max ← α
Τέλος_αν
Τέλος_επανάληψης
Εμφάνισε max
Τέλος Μέγιστος
Καλύπτει όλες τις περιπτώσεις?
Ναι. Αν θέλεις όμως τη γνώμη μου και επειδή το μάθημα το κάνω πάνω από 10 χρόνια είναι λάθος να το κάνεις έτσι. Ναι μεν βγάζει σωστό αποτέλεσμα αλλά είναι αναίτια πολύπλοκος ο αλγόριθμος. Σκέψου να είναι κομμάτι ή συνάρτηση κάποιου μεγαλύτερου προγράμματος. Να βιάζεσαι κιόλας. Το πιο πιθανό είναι να το κάνεις λάθος. Αν πρόκειται για 3 αριθμούς ο πιο σωστός τρόπος και ο απλούστερος είναι:
Διάβασε a,b,c
max<-a
Αν b->max τότε
max<-b
Τέλος_αν
Αν c->max τότε
max<-c
Τέλος_αν
Εμφάνισε max
Ξαναλέω όσο πιο πολύπλοκο κάνουμε κάτι αυξάνουμε γεωμετρικά τις πιθανότητες λάθους. Αν θες για παραπάνω αριθμούς μπορεί ο αλγόριθμος να μετατραπεί ώστε να σε ρωτάει αν θες να εισάγεις και άλλο αριθμό και αν πεις ναι να συνεχίζει και να ζητάει τον επόμενο αριθμό ενώ αν πεις όχι να τερματίζει. Μπορείς και με counter να βγάζεις στο τέλος εκτός από το max και πόσους αριθμούς εισήγαγες.
-
Δεν θα μπορούσες να έχεις καλύτερη συμβουλή από όσα έγραψε από πάνω ο viktor123.
Ενημερωτικά μόνο, και επειδή έχεις το nickname που έχεις, δουλεύει και αυτό:
Αλγόριθμος μ
Διάβασε α, β, γ
max <- ( (α+β+Α_Τ(α-β))/2 + γ + Α_Τ((α+β+Α_Τ(α-β))/2 -γ ) )/2
Εμφάνισε max
ΤΕΛΟΣ μ
Μην αρχίσεις να επιδιώκεις τέτοιες λύσεις και προς Θεού μην γράψεις κάτι τέτοιο στις πανελλήνιες.
Παραλλαγή του απλούστερου τρόπου:
Διάβασε a,b,c
Αν a<b τότε
max <- b
Αλλίως
max <- a
Τέλος_αν
Αν c>max τότε
max <- c
Τέλος_αν
Εμφάνισε max