Αποστολέας Θέμα: Άσκηση με Ταξινόμηση επιμέρους τμημάτων πίνακα  (Αναγνώστηκε 988 φορές)

Sergio

  • Αστέριος Φανίκος, Καθηγητής Πληροφορικής, fanikosaATschDOTgr
  • Δεινόσαυρος
  • *****
  • Μηνύματα: 797
  • Κάλλιο γνώση, παρά γρόσι.. (ΛΑΪΚΗ ΠΑΡΟΙΜΙΑ)
    • Προσωπική Σελίδα
Μία από τις ασκήσεις που μπορούν να λειτουργήσουν ως ευκαιρία εμπέδωσης του μηχανισμού της ταξινόμησης αλλά, περισσότερο, να βοηθήσει στην ανάπτυξη της φαντασίας τους σχετικά με τη χρήση των πινάκων σε προβλήματα

Τα ονόματα και τα επίθετα των 300 μαθητών ενός σχολικού συγκροτήματος βρίσκονται καταχωρημένα σε πίνακες Ο και Ε αντίστοιχα.  Στην αρχή του πίνακα βρίσκονται τα στοιχεία για τους 80 μαθητές του δημοτικού, στη συνέχεια τα στοιχεία των 120 μαθητών του Γυμνασίου και τέλος των 100 μαθητών του Λυκείου.  Να σχεδιάσετε αλγόριθμο που να ταξινομεί τα στοιχεία των μαθητών του συγκροτήματος αλφαβητικά με βάση το επίθετο και το όνομα, διατηρώντας τους χωρισμένους κατά βαθμίδα.
Απ τη μια η θητεία μου σε σχολικές αίθουσες: να φλυαρώ - να ελπίζω πως κατι κατάλαβαν - να εξερευνώ - να μαθαίνω. Απ την άλλη, σχεδόν συνομήλικη, η Διδακτική της Πληροφορικής: ερευνά διαδικασίες μάθησης - φλερτάρει με την Ψυχολογία - με καλεί να αφήσω το βλέμμα του Πληροφορικού και να δω με τα μάτια του δασκάλου. Τέκνα των 2, οι απόψεις μου.. (προσαρμοσμένο από τον πρόλογο του βιβλίου "Το μακρόν Φυσική προ του βραχέως διδάσκω" του Ανδρέα Κασσέτα)

gpapargi

  • Γενικός διαχειριστής
  • *****
  • Μηνύματα: 2444
  • I 'm not young enough to know everything
Απ: Άσκηση με Ταξινόμηση επιμέρους τμημάτων πίνακα
« Απάντηση #1 στις: 27 Φεβ 2011, 09:39:55 μμ »
Θα έφτιαχνα μια διαδικασία που δέχεται σαν παραμέτρους τον πινάκα (η τους πινάκες) και 2 θέσεις που σηματοδοτούν το αρχικό και το τελικό σημείο ταξινόμησης. Μετά θα καλούσα τη διαδικασία 3 φόρες. Αν θέλω να γενικεύσω μπορώ να βάλω τα άκρα σε πινάκα και να σαρώσω επαναληπτικά καλώντας γα κάθε ζευγάρι άκρων τη διαδικασία.

Sergio

  • Αστέριος Φανίκος, Καθηγητής Πληροφορικής, fanikosaATschDOTgr
  • Δεινόσαυρος
  • *****
  • Μηνύματα: 797
  • Κάλλιο γνώση, παρά γρόσι.. (ΛΑΪΚΗ ΠΑΡΟΙΜΙΑ)
    • Προσωπική Σελίδα
Απ: Άσκηση με Ταξινόμηση επιμέρους τμημάτων πίνακα
« Απάντηση #2 στις: 28 Φεβ 2011, 12:55:22 πμ »
Όντως υπάρχουν πολλές λύσεις για το συγκεκριμένο πρόβλημα..

Αφού ο μαθητής δώσει τη δική του, εφόσον υπάρχει χρόνος, μπορούν να παρουσιαστούν και καποιες από τις υπόλοιπες ώστε να διαπιστωθούν συγκριτικά πλεονεκτήματα και μειονεκτήματα..

1) Τρεις διαδοχικές ταξινομήσεις:
Κώδικας: [Επιλογή]
Για ι από 2 μέχρι 80
  Για κ από 80 μέχρι ι με_βήμα -1
    ..

Για ι από 82 μέχρι 200
  Για κ από 200 μέχρι ι με_βήμα -1
    ..

Για ι από 202 μέχρι 300
  Για κ από 300 μέχρι ι με_βήμα -1
    ..

2) Δημιουργία πίνακα βαθμίδας (1, 2 ή 3) για κάθε μαθητή.  Στη συνέχεια ταξινόμηση με τη βαθμίδα ως πρωτεύον κριτήριο και στη συνέχεια επίθετο και όνομα
Κώδικας: [Επιλογή]
Για ι από 1 μέχρι 80
  Β[ι] <- 1
Τέλος_επανάληψης

Για ι από 81 μέχρι 200
  Β[ι] <- 2
Τέλος_επανάληψης

Για ι από 201 μέχρι 300
  Β[ι] <- 3
Τέλος_επανάληψης

Για ι από 2 μέχρι 300
  Για κ από 300 μέχρι ι με_βήμα -1
    Αν Β[κ] < Β[κ-1] Ή
        (Β[κ] = Β[κ-1] ΚΑΙ Ε[κ] < Ε[κ-1]) Ή
        (Β[κ] = Β[κ-1] ΚΑΙ Ε[κ] = Ε[κ-1] ΚΑΙ Ο[κ]<Ο[κ-1]) τότε
      Αντιμετάθεσε Β[κ], Β[κ-1]
      Αντιμετάθεσε Ε[κ], Ε[κ-1]
      Αντιμετάθεσε ΒΟ[κ], Ο[κ-1]
    Τέλος_αν
  Τέλος_επανάληψης
Τέλος_επανάληψης

3) Ταξινόμηση με .. διακοπές
Κώδικας: [Επιλογή]
Για ι από 2 μέχρι 300
  Για κ από 300 μέχρι ι με_βήμα -1
    Αν κ <> 81 ΚΑΙ κ <> 201 τότε
      ...

4) Ταξινόμηση με μεταβλητά άκρα και επιλογή
Κώδικας: [Επιλογή]
Για ι από 1 μέχρι 3
  Αν ι = 1 τότε
    Α <- 2
    Β <- 80
  αλλιώς_αν ι = 2 τότε
    Α <- 82
    Β <- 200
  αλλιώς
    Α <- 202
    Β <- 300
  Τέλος_αν

  Για κ από Α μέχρι Β
    Για λ από Β μέχρι κ με_βήμα -1
      Αν Ε[λ] < Ε[λ-1] ...

5. Ταξινόμηση με μεταβλητά άκρα σε πίνακες
Κώδικας: [Επιλογή]
Α[1] <- 2
Β[1] <- 80
Α[2] <- 82
Β[2] <- 200
Α[3] <- 202
Β[3] <- 300

Για ι από 1 μέχρι 3
  Για κ από Α[ι] μέχρι Β[ι]
    Για λ από Β[ι] μέχρι κ με_βήμα -1
      Αν Ε[λ] < Ε[λ-1] ...

6. Ταξινόμηση με μεταβλητά άκρα σε πίνακες και κλήση διαδικασίας
Κώδικας: [Επιλογή]
Α[1] <- 2
Β[1] <- 80
Α[2] <- 82
Β[2] <- 200
Α[3] <- 202
Β[3] <- 300

Για ι από 1 μέχρι 3
  ΚΑΛΕΣΕ Ταξινόμηση(Ο, Ε, Α[ι], Β[ι])
Τέλος_επανάληψης
..
..
Διαδικασία Ταξινόμηση(Π1, Π2, Α, Β)
..
Για ι από Α μέχρι Β
  Για κ από Β μέχρι ι με_βήμα -1
    Αν Π1[κ] ..

Τι λέτε; Να σχολιάσουμε τα σχετικά πλεονεκτήματα και μειονεκτήματα της κάθε λύσης ;
Απ τη μια η θητεία μου σε σχολικές αίθουσες: να φλυαρώ - να ελπίζω πως κατι κατάλαβαν - να εξερευνώ - να μαθαίνω. Απ την άλλη, σχεδόν συνομήλικη, η Διδακτική της Πληροφορικής: ερευνά διαδικασίες μάθησης - φλερτάρει με την Ψυχολογία - με καλεί να αφήσω το βλέμμα του Πληροφορικού και να δω με τα μάτια του δασκάλου. Τέκνα των 2, οι απόψεις μου.. (προσαρμοσμένο από τον πρόλογο του βιβλίου "Το μακρόν Φυσική προ του βραχέως διδάσκω" του Ανδρέα Κασσέτα)