Πρωτοβάθμια και Δευτεροβάθμια Εκπαίδευση

Αδιόριστοι Εκπαιδευτικοί => Πίνακες αναπληρωτών - Εξετάσεις ΑΣΕΠ => Κλάδος ΠΕ86 Πληροφορικής => Μήνυμα ξεκίνησε από: euler18 στις Μάρτιος 29, 2021, 10:41:58 μμ

Τίτλος: ΑΛΓΟΡΙΘΜΟΣ ΕΥΡΕΣΗΣ ΜΕΓΙΣΤΟΥ
Αποστολή από: euler18 στις Μάρτιος 29, 2021, 10:41:58 μμ
Αλγόριθμος Εύρεση_Μεγίστου
Εμφάνισε "Δώσε μου 3 αριθμούς"
Διάβασε α, β, γ
Αν α > β και α > γ τότε
  Εμφάνισε "ο μεγαλύτερος είναι ο ", α
Αλλιώς_αν β > α και β > γ τότε
  Εμφάνισε "ο μεγαλύτερος είναι ο ", β
Αλλιώς
  Εμφάνισε "ο μεγαλύτερος είναι ο ", γ
Τέλος_αν
Τέλος Εύρεση_Μεγίστου


Καλησπέρα, βρίσκετε κάποιο λάθος σε αυτόν τον αλγόριθμο?
Τίτλος: Απ: ΑΛΓΟΡΙΘΜΟΣ ΕΥΡΕΣΗΣ ΜΕΓΙΣΤΟΥ
Αποστολή από: Landau στις Μάρτιος 29, 2021, 10:48:48 μμ
Δεν χρειάζεται και συνθήκη if.. then.. και για το γ ?
Τίτλος: Απ: ΑΛΓΟΡΙΘΜΟΣ ΕΥΡΕΣΗΣ ΜΕΓΙΣΤΟΥ
Αποστολή από: euler18 στις Μάρτιος 29, 2021, 10:51:54 μμ
Πιστεύω πως οχι, διαφωνείς?
Τίτλος: Απ: ΑΛΓΟΡΙΘΜΟΣ ΕΥΡΕΣΗΣ ΜΕΓΙΣΤΟΥ
Αποστολή από: victor123 στις Μάρτιος 29, 2021, 10:53:16 μμ
Αλγόριθμος Εύρεση_Μεγίστου
Εμφάνισε "Δώσε μου 3 αριθμούς"
Διάβασε α, β, γ
Αν α > β και α > γ τότε
  Εμφάνισε "ο μεγαλύτερος είναι ο ", α
Αλλιώς_αν β > α και β > γ τότε
  Εμφάνισε "ο μεγαλύτερος είναι ο ", β
Αλλιώς
  Εμφάνισε "ο μεγαλύτερος είναι ο ", γ
Τέλος_αν
Τέλος Εύρεση_Μεγίστου


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

Εγώ θα έλεγα το.λαθος είναι πως πρέπει να θεωρήσεις δεδομένο ότι όποιος τον τρέξει θα εισάγει τρεις διαφορετικούς αριθμούς. Αν δώσει για τιμές a=5, b=5, c=3 δεν θα τρέξει σωστά. Μάλιστα θα σου βγάλει ότι ο μεγαλύτερος είναι το c=3 που προφανώς είναι λάθος.  Επίσης ο αλγόριθμος με τη λογική αυτή θα μεγάλωνε δυσανάλογα αν ήθελες να συγκρίνεις 4 αριθμούς και παραπάνω. Το σωστότερο είναι να γίνει με max.
Τίτλος: Απ: ΑΛΓΟΡΙΘΜΟΣ ΕΥΡΕΣΗΣ ΜΕΓΙΣΤΟΥ
Αποστολή από: euler18 στις Μάρτιος 29, 2021, 10:56:17 μμ
Σωστός!
Τίτλος: Απ: ΑΛΓΟΡΙΘΜΟΣ ΕΥΡΕΣΗΣ ΜΕΓΙΣΤΟΥ
Αποστολή από: victor123 στις Μάρτιος 29, 2021, 10:59:55 μμ
Σωστός!

Αν χρειαστείς βοήθεια να τον κάνεις με max πες το μου να σου τον γράψω.
Τίτλος: Απ: ΑΛΓΟΡΙΘΜΟΣ ΕΥΡΕΣΗΣ ΜΕΓΙΣΤΟΥ
Αποστολή από: euler18 στις Μάρτιος 29, 2021, 11:09:39 μμ
Την ξερω τη μεθοδολογια με το max, απλα ειπα να σκεφτω κατι άλλο... (για 3 παντα αριθμους) Ευχαριστώ!
Τίτλος: Απ: ΑΛΓΟΡΙΘΜΟΣ ΕΥΡΕΣΗΣ ΜΕΓΙΣΤΟΥ
Αποστολή από: euler18 στις Απρίλιος 25, 2021, 08:41:20 μμ
Αλγόριθμος Μέγιστος
βρεθηκε_μεγ ← Ψευδής
max ← 0
Για i από 1 μέχρι 3
  Εμφάνισε "Δωσε μου έναν αριθμό"
  Διάβασε α
  Αν βρεθηκε_μεγ = Ψευδής και max = 0 τότε
    βρεθηκε_μεγ ← Αληθής
    max ← α
  αλλιώς_αν α > max και βρεθηκε_μεγ = Αληθής τότε
    max ← α
  Τέλος_αν
Τέλος_επανάληψης
Εμφάνισε max
Τέλος Μέγιστος


Καλύπτει όλες τις περιπτώσεις?
Τίτλος: Απ: ΑΛΓΟΡΙΘΜΟΣ ΕΥΡΕΣΗΣ ΜΕΓΙΣΤΟΥ
Αποστολή από: victor123 στις Απρίλιος 25, 2021, 10:29:05 μμ
Αλγόριθμος Μέγιστος
βρεθηκε_μεγ ← Ψευδής
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 και πόσους αριθμούς εισήγαγες.
Τίτλος: Απ: ΑΛΓΟΡΙΘΜΟΣ ΕΥΡΕΣΗΣ ΜΕΓΙΣΤΟΥ
Αποστολή από: gf στις Απρίλιος 26, 2021, 10:15:33 πμ
Δεν θα μπορούσες να έχεις καλύτερη συμβουλή από όσα έγραψε από πάνω ο viktor123.

Ενημερωτικά μόνο, και επειδή έχεις το nickname που έχεις, δουλεύει και αυτό:

Κώδικας: [Επιλογή]
Αλγόριθμος μ
Διάβασε  α, β, γ
max <- ( (α+β+Α_Τ(α-β))/2 + γ + Α_Τ((α+β+Α_Τ(α-β))/2 -γ ) )/2
Εμφάνισε max
ΤΕΛΟΣ μ

Μην αρχίσεις να επιδιώκεις τέτοιες λύσεις και προς Θεού μην γράψεις κάτι τέτοιο στις πανελλήνιες.

Παραλλαγή του απλούστερου τρόπου:
Παράθεση
Διάβασε a,b,c
Αν a<b τότε
  max <-  b
Αλλίως
  max <-  a
Τέλος_αν
Αν c>max τότε
  max <-  c
Τέλος_αν
Εμφάνισε max