Γενικό Λύκειο > Δομή επανάληψης

Εύρεση min max

(1/6) > >>

ΜΑΚΡΙΔΑΚΗ ΣΤΕΛΛΑ:
Καλησπέρα και καλή χρονιά σε όλη την ομάδα!

Θέλω να ρωτήσω αν η παρακάτω λύση της συγκεκριμένης άσκησης είναι σωστή.

Εκφώνηση: Να αναπτυχθεί αλγόριθμος που θα διαβάζει Κ ακεραίους και να υπολογίζει και να εμφανίζει τον μεγαλυτερο και τον ελαχιστο.

Λύση:

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

sstergou:
Δεν είναι σωστή αφού θεωρεί ως μέγιστο κάθε αριθμό που είναι μεγαλύτερος ή ίσος του ελάχιστου.

ΜΑΚΡΙΔΑΚΗ ΣΤΕΛΛΑ:
Δηλαδή αυτό είναι σωστό;

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

Το 1ο που είναι λαθός κατά τη γνώμη μου ειίναι το μπλοκ των εντολών     Αν ( i=1) τοτε
                                                                                                                      min ←  χ
                                                                                                                       max← χ

Δεν πρέπει η αρχικοποίηση να γίνεται έξω από την επανάληψη;;;

sstergou:
Είναι άκομψο και λίγο "χαζό" (αφού συνεχώς ελέγχει την τιμή του μετρητή) αλλά το αποτέλεσμα που βγάζει είναι σωστό.

Laertis:
Δεν είναι λάθος να ελέγχεις Αν  i=1 , αλλά λίγο "χαζό" όπως είπε ο Στάθης να ελέγχεις Κ φορές κάτι που ισχύει μόνο μιά φορά. Απο την άλλη δε μπορείς να κάνεις αυθαίρετη αρχικοποίηση παρά μόνο αν γνωρίζεις το διάστημα τιμών του χ. Οπότε μια άλλη λύση είναι η παρακάτω :

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

Πλοήγηση

[0] Λίστα μηνυμάτων

[#] Επόμενη σελίδα

Μετάβαση στην πλήρη έκδοση