Εύρεση min max

Ξεκίνησε από ΜΑΚΡΙΔΑΚΗ ΣΤΕΛΛΑ, 06 Ιαν 2015, 05:02:05 ΜΜ

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

evry

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

Παράθεση από: petrosp13 στις 07 Ιαν 2015, 05:58:00 ΜΜ
Ποιος είναι ο κατάλληλος τρόπος εύρεσης μεγίστου με γνωστό αριθμό επαναλήψεων;
What I cannot create I do not understand -- Richard Feynman
http://evripides.mysch.gr

itt

Παράθεση από: evry στις 07 Ιαν 2015, 05:51:22 ΜΜ
αυτό που παρέθεσα για ι=1 είναι το ίδιο με αυτό που δόθηκε αρχικά. Έχει την ίδια λογική απλά δείχνει λίγο ακραία ότι κάτι δεν πάει καλά με αυτό το σκεπτικό.
όπως είπα και πριν δεν είναι θέμα πολυπλοκότητας αλλά φιλοσοφίας και τρόπου σκέψης

δεν είναι η ίδια, προφανώς εννοείς τάξη πολυπλοκότητας και όχι πολυπλοκότητα που είναι η συνάρτηση T(N)

Ναι οκ, τάξη πολυπλοκότητας, όριο, όπως βολεύεται ο καθένας. Ποια ειναι λοιπόν η φιλοσοφία που θα μεταφέρουμε σε ποιον;  Στον άνθρωπο που θα δει για ένα χρόνο από τη ζωή του ΑΕΠΠ και δεν θα ασχοληθεί ξανα ποτέ, ή στον άνθρωπο που θα ασχοληθεί και θα μάθει ότι δεν έχει καμια σημασία το συγκεκριμένο θέμα; Νόμιζα ότι πιάσαμε κάτι πολύ απλό και το τραβάμε από τα μαλλιά.

petrosp13

Παράθεση από: evry στις 07 Ιαν 2015, 06:01:33 ΜΜ
ο κατάλληλος είναι αυτός τον οποίο θα εφάρμοζες στο χαρτί, δηλαδή ο αλγόριθμος που θα σχεδίαζες στο φυσικό μοντέλο του πραγματικού κόσμου και όχι στο μοντέλο της νοητής μηχανής για την οποία προγραμματίζουμε. Τι θέλω να πω τώρα.
Αν σου έλεγα το εξής σενάριο
Σου δίνω αριθμούς (έναν-έναν) και βρες μου ποιος είναι ο μεγαλύτερος.
Μετά τον πρώτο αριθμό θα με ρώταγες συνέχεια ποιος είναι ο πρώτος;


Αυτούς τους αριθμούς, τους δέχομαι εντός επανάληψης και σε άσκηση που ζητάει άλλα 4-5 πράγματα
Δεν είναι απλά αριθμοί που ζητάμε το μέγιστο, όπου είναι αυτονόητο το τι κάνουμε (αυτό δηλαδή που κάνουμε στους πίνακες)
Παπαδόπουλος Πέτρος
Καθηγητής Πληροφορικής

ΜΑΚΡΙΔΑΚΗ ΣΤΕΛΛΑ

Για μένα ο καλύτερος τρόπος είναι ο παρακάτω:

Διάβασε χ
min ←  χ
max← χ
Για i από 2 μέχρι Κ
    Διάβασε χ
    Αν (χ < min) τότε
      min ← χ
    Τέλος_αν
    Αν (χ>max) τότε
      max ← χ
    Τέλος_αν
  Τέλος_επανάληψης
  Εκτύπωσε min, max

ΜΑΚΡΙΔΑΚΗ ΣΤΕΛΛΑ

Για μενα ο καλυτερος τροπος ειναι ο παρακατω:

Διάβασε χ
min ←  χ
max← χ
Για i από 2 μέχρι Κ
    Διάβασε χ
    Αν (χ < min) τότε
      min ← χ
    Τέλος_αν
    Αν (χ > max) τότε
      max ← χ
  Τέλος_επανάληψης
  Εκτύπωσε min, max


petrosp13

Και αν η άσκηση ζητά να βρεθεί ο μέσος όρος των βαθμών πάνω από 18, κάτω από 10 και ο μεγαλύτερος βαθμός κάτω του 15;
Παπαδόπουλος Πέτρος
Καθηγητής Πληροφορικής

anestis85

Καλησπέρα συνάδελφοι. Σε συνέχεια της συζήτησης θα ήθελα να θέσω το εξής ερώτημα. Κατά πόσο είναι έγκυρη η παρακάτω λογική αρχικοποίησης max και min? Στην Γλώσσα ορίζεται επίσημα το εύρος των τιμών;

min ←  10^9
max←  - 10^9
Για i από 1 μέχρι 200
    Διάβασε χ
    Aν χ < min τότε  min ← χ
    Aν χ>max τότε   max ← χ
Τέλος_επανάληψης
  Εκτύπωσε min, max

petrosp13

Η συγκεκριμένη μεθοδολογία είναι καλό να χρησιμοποιείται όταν υπάρχουν κάποια συγκεκριμένα ή λογικά όρια τιμών μιας μεταβλητής (πχ μόνο θετικά, 1-100, θερμοκρασίες στην Ελλάδα κτλ.)
Θα πρέπει να αποφεύγεται σε περιπτώσεις που δεν υπάρχουν όρια και να επιλέγεται κάποιος άλλος αλγόριθμος
Παπαδόπουλος Πέτρος
Καθηγητής Πληροφορικής

anestis85

Άρα θεωρείται εσφαλμένη η συγκεκριμένη διατύπωση; Την έχω εντοπίσει σε αρκετές λύσεις και σε βοηθήματα. Και αν θυμάμαι καλά είχε προταθεί αυτός ο αλγόριθμος ως λύση λόγω των ορίων που θέτει ο ίδιος ο μεταγλωττιστής της ΓΛΩΣΣΑΣ.

alkisg

#24
Παράθεση από: anestis85 στις 25 Αυγ 2018, 01:47:03 ΜΜ
είχε προταθεί αυτός ο αλγόριθμος ως λύση λόγω των ορίων που θέτει ο ίδιος ο μεταγλωττιστής της ΓΛΩΣΣΑΣ.

Η ΓΛΩΣΣΑ δεν έχει μεταγλωττιστή.
Η ΓΛΩΣΣΑ δεν ορίζει όρια.
Ο Διερμηνευτής της ΓΛΩΣΣΑΣ ορίζει όρια, αλλά δεν έχουν καμία απολύτως σχέση με αυτά που προαναφέρθηκαν:
https://alkisg.mysch.gr/ΓΛΩΣΣΑ/Τύποι_δεδομένων/

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

Γιαννούλης Γιώργος

Παράθεση από: ΜΑΚΡΙΔΑΚΗ ΣΤΕΛΛΑ στις 08 Ιαν 2015, 04:34:06 ΜΜ
Για μένα ο καλύτερος τρόπος είναι ο παρακάτω:

Διάβασε χ
min ←  χ
max← χ
Για i από 2 μέχρι Κ
    Διάβασε χ
    Αν (χ < min) τότε
      min ← χ
    Τέλος_αν
    Αν (χ>max) τότε
      max ← χ
    Τέλος_αν
  Τέλος_επανάληψης
  Εκτύπωσε min, max

Οι 2 τρόποι δεν είναι ισοδύναμοι...
Αν Κ < 1 τότε θα βγάλουν άλλα αποτελέσματα.

Αν ήθελες να το κάνεις πραγματικά ισοδύναμο θα έπρεπε να γράψεις:
Αν Κ>=1 τοτε
    Διάβασε χ
    min ←  χ
    max← χ
Τελος_Αν
Για i από 2 μέχρι Κ
    Διάβασε χ
    Αν (χ < min) τότε
      min ← χ
    Τέλος_αν
    Αν (χ>max) τότε
      max ← χ
    Τέλος_αν
  Τέλος_επανάληψης
  Εκτύπωσε min, max


Προσωπικά η επιπλέον πολυπλοκότητα στο γράψιμο του κώδικα είναι ασύμφορη σε επίπεδο χρόνου εξετάσεων, σε σχέση με τη λύση που δόθηκε από τον μαθητή. Το ποιες είναι οι προσωπικές μας απόψεις δεν αφορά την βαθμολογία. Η λύση που έδωσε είναι ορθότατη (προφανώς δεν κόβονται μονάδες). Αν την αφορούσε θα ήθελα να δω πως σε δισδιάστατο πίνακα θα βρούμε το min χωρις να το συγκρίνουμε 2 φορές.