Το Στέκι των Πληροφορικών

Γενικό Λύκειο => Δομή επανάληψης => Γ΄ Λυκείου => Εντολή ΓΙΑ...ΑΠΟ...ΜΕΧΡΙ => Μήνυμα ξεκίνησε από: Sergio στις 19 Ιαν 2011, 08:00:19 ΜΜ

Τίτλος: Για Μαθητές: Ερώτηση θεωρίας
Αποστολή από: Sergio στις 19 Ιαν 2011, 08:00:19 ΜΜ
Δίνεται ο παρακάτω αλγόριθμος για τον υπολογισμό της μέγιστης και της ελάχιστης τιμής κάποιων αριθμών:

Κώδικας [Επιλογή]

Αλγόριθμος Υπολογισμός_Ελάχιστης_Μέγιστης
Δεδομένα //Ν//

μιν <-   100
μαξ <-  -100
Για ι από 1 μέχρι N
  Διάβασε χ
  Αν χ < μιν τοτε μιν <- χ
  Αν χ > μαξ τοτε μαξ <- χ
Τέλος_επανάληψης

Αποτελέσματα //μιν, μαξ//
Τέλος Υπολογισμός_Ελάχιστης_Μέγιστης


α. Ποιά από τις δύο τιμές εξόδου θα υπολογιστεί λάθος εάν όλοι οι αριθμοί που θα δοθούν είναι μεγαλύτεροι του 500;
β. Να αιτιολογήσετε την απάντησή σας
Τίτλος: Απ: Για Μαθητές: Ερώτηση θεωρίας
Αποστολή από: lykos στις 19 Ιαν 2011, 08:24:49 ΜΜ
ΠαράθεσηΔεδομένα //Ν//
???
Που κολάει αυτό ρε Στέργιο? Η λόγω γρίπης μου δεν καταλαβαίνω?...
Τίτλος: Απ: Για Μαθητές: Ερώτηση θεωρίας
Αποστολή από: Sergio στις 19 Ιαν 2011, 08:39:28 ΜΜ
Για την ακρίβεια: το 30 που κολλάει (αφού η εκφώνηση μιλάει για 'κάποιους' αριθμούς..)

Ο δαίμων Βασίλη μου, ο δαίμων.. το διόρθωσα. Καλά που το είδες ;)


Σ(τ)έργιος :)
Τίτλος: Απ: Για Μαθητές: Ερώτηση θεωρίας
Αποστολή από: Νίκος Αδαμόπουλος στις 24 Ιαν 2011, 05:36:35 ΜΜ
Μήπως να μεταφέρουμε αυτό το θέμα στη Δομή Επανάληψης;
Τίτλος: Απ: Για Μαθητές: Ερώτηση θεωρίας
Αποστολή από: Sergio στις 25 Ιαν 2011, 10:49:49 ΜΜ
Παράθεση από: Νίκος Αδαμόπουλος στις 24 Ιαν 2011, 05:36:35 ΜΜ
Μήπως να μεταφέρουμε αυτό το θέμα στη Δομή Επανάληψης;

Ασφαλώς.. εκεί ανήκει  :-[  Και μάλιστα στο χώρο της ΓΙΑ  :angel:
Τίτλος: Απ: Για Μαθητές: Ερώτηση θεωρίας
Αποστολή από: ge0_ στις 22 Φεβ 2011, 11:33:03 ΜΜ
προφανώς θα υπολογιστεί λάθος το min αφού κάθε φορά ο αλγόριθμος θα προσπερνά την εντολή: Αν x<min τότε min<---x
Τίτλος: Απ: Για Μαθητές: Ερώτηση θεωρίας
Αποστολή από: Sergio στις 23 Φεβ 2011, 12:29:54 ΠΜ
Ακριβώς !!

Να γιατί τελικά δεν είναι τόσο καλή πρακτική η αυθαίρετη αρχικοποίηση του min (ή του max).

Ασφαλής είναι ουσιαστικά μόνο όταν είναι γνωστό εκ των προτέρων το εύρος των τιμών οπότε θεωρείται αρκετό να γίνει η αρχικοποίηση του min με τη μέγιστη δυνατή τιμή (και αντίστοιχα του max με την ελάχιστη δυνατή τιμή)

Αυτό όμως δεν είναι γνωστό σε όλα τα προβλήματα επομένως αυτή η "τεχνική" δεν αρκεί.

Βέβαια σε προγραμματιστικό επίπεδο υπάρχει κάποιο όριο στη μέγιστη τιμή που μπορεί να αναπαρασταθεί για κάποιους τύπους αριθμητικών μεταβλητών (πχ MAXINT για ακεραίους στην Pascal) οπότε συνηθίζεται η υιοθέτηση τέτοιων πρακτικών με σχετική ασφάλεια (min <- MAXINT).  Αυτό όμως δε μας αφορά ιδιαίτερα στο επίπεδο του μαθήματός μας οπότε, γενικά η αυθαίρετη αρχικοποίηση min / max καλό είναι να αποφεύγεται.

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

Εάν οι τιμές είναι ήδη αποθηκευμένες σε κάποια δομή
(πχ πίνακα) η αρχικοποίηση μπορεί να γίνει με οποιαδήποτε από τις τιμές του πίνακα.  Συνηθίζεται όμως να γίνεται με την πρώτη (min <- Π[1]) ώστε στη συνέχεια να "γλυτώνουμε μία επανάληψη" (Για ι από 2 μέχρι Ν).  Όμοια βέβαια θα μπορούσε να γίνει και με την τελευταία (min <- Π[Ν]) και στη συνέχεια .. (Για ι από 1 μέχρι Ν-1).  Εννοείται ότι θα μπορούσε να γίνει και με οποιαδήποτε άλλη τιμή του πίνακα (min <- Π[2] ή min <- Π[3] ή min <- Π[4] ) όμως σε αυτή την περίπτωση, ο μόνος τρόπος να "εξαιρεθεί" αυτή η τιμή από την παρακάτω επεξεργασία είναι με τη χρήση επιλογής μέσα στο βρόχο (π.χ. αν ι <> 2 τότε ..) κάτι που όμως πιό πολύ κακό κάνει (καθυστερεί την εκτέλεση) παρά καλό..

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


Μπράβο ge0_ (πες μας και τ'όνομά σου να μη σε λέμε ge0_ !!)
Τίτλος: Απ: Για Μαθητές: Ερώτηση θεωρίας
Αποστολή από: Sergio στις 23 Φεβ 2011, 12:39:26 ΠΜ
Ορεξάτο σε βλέπω.. δε δοκιμάζεις και το τσαμπατζή (https://alkisg.mysch.gr/steki/index.php?topic=3687.0) ;  8) ;)
Τίτλος: Απ: Για Μαθητές: Ερώτηση θεωρίας
Αποστολή από: dimitris76 στις 10 Οκτ 2012, 10:28:04 ΜΜ
ΤΟ MAX ΘΑ ΕΙΧΕ ΕΠΙΣΗΣ ΠΡΟΒΛΗΜΑ , ΑΝ ΟΛΕΣ ΟΙ ΤΙΜΕΣ ΗΤΑΝ ΜΙΚΡΟΤΕΡΕΣ ΤΟΥ -100
Τίτλος: Απ: Για Μαθητές: Ερώτηση θεωρίας
Αποστολή από: paulo machado στις 27 Ιαν 2014, 05:49:17 ΜΜ
ξερει κανεις να μου προτεινει ενα καλο βοηθημα για αεππ ;