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

Γενικό Λύκειο => Γ΄ Λυκείου => Πολυδιάστατοι πίνακες => Μήνυμα ξεκίνησε από: Aischinis στις 27 Μάι 2017, 11:39:17 μμ

Τίτλος: Ταξινόμηση
Αποστολή από: Aischinis στις 27 Μάι 2017, 11:39:17 μμ
Συνάδελφοι,

πως ταξινομείται ένας μονοδιάστατος πίνακας και ταυτόχρονα ένας δισδιάστατος πίνακας;  :o

Μπορούμε να έχουμε ένα παράδειγμα;

thanks  :angel:
Τίτλος: Απ: Ταξινόμηση
Αποστολή από: petrosp13 στις 28 Μάι 2017, 12:26:30 πμ
Αν ο μονοδιάστατος είναι παράλληλος με τις γραμμές του δισδιάστατου, τότε κάθε φορά που αντιμετατίθενται 2 στοιχεία του μονοδιάστατου, θα πρέπει να αντιμετατίθενται και οι αντίστοιχες γραμμές του δισδιάστατου
Τίτλος: Απ: Ταξινόμηση
Αποστολή από: Λαμπράκης Μανώλης στις 28 Μάι 2017, 07:42:00 πμ
Καλημέρα σε όλους

υποθέτω συνάδελφε ζητάς κάτι τέτοιο ?? έστω έχουμε 100 πωλητές σε μία εταιρία με τις μηνιαίες πωλήσεις τους σε ένα χρόνο
σε πωλ[100,12] και παράλληλο πίνακα με τα ονόματα των μηνών μήνες[12]  .. ζητάμε τις 5 μεγαλύτερες πωλήσεις κάθε πωλητή και σε ποιους μήνες τις πέτυχε .. κατά την αντιμετάθεση στοιχείων  των γραμμών "χαλάει η παραλληλότητα" με τους μήνες και κατά συνέπεια με όλες τις άλλες γραμμές, οπότε χρειάζονται αρκετές αντιμετεθέσεις για να παραμείνουν παράλληλες οι επόμενες γραμμές με τους μήνες για τις ταξινομήσεις των επόμενων γραμμών

Αλγόριθμος ταξινόμηση_δισδιάστατου
    Δεδομένα //πωλ, μήνες//   
    Για γρ από 1 μέχρι 100   
        Για i από 2 μέχρι 12   
   Για j από 12 μέχρι i με_βήμα -1   
       Αν  πωλ[γρ, j-1]<πωλ[γρ, j] τότε
      ! αντιμετάθεσε τους μήνες
             Αντιμετάθεσε μην[j-1], μην[j]
! και όλες τις γραμμές για να παραμείνουν παράλληλες   
             Για κ από 1 μέχρι 100
                Αντιμετάθεσε πωλ[κ, j-1], πωλ[κ,j]
             Τέλος_επανάληψης
       Τέλος_αν
             Τέλος_επανάληψης
          Τέλος_επανάληψης
           Για λ από 1 μέχρι 5   ! εμφάνισε τα 5 πρώτα στοιχεία και μήνες
       Εμφάνισε πωλ[γρ, λ], μην[λ]
        Τέλος_επανάληψης
    Τέλος_επανάληψης
Τέλος  ταξινόμηση_δισδιάστατου
Τίτλος: Απ: Ταξινόμηση
Αποστολή από: Aischinis στις 28 Μάι 2017, 10:23:45 πμ
Καλημέρα  :)

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

Ευχαριστώ!
Τίτλος: Απ: Ταξινόμηση
Αποστολή από: eris_st στις 29 Μάι 2017, 12:25:25 μμ
μια λύση για αυτή την άσκηση;
Τίτλος: Απ: Ταξινόμηση
Αποστολή από: Λάμπρος Παπαδόπουλος στις 29 Μάι 2017, 02:31:08 μμ
Μερικές φορές είναι βολικό να χρησιμοποιείς αντίγραφα των δεδομένων που χρειάζεσαι.
Με την προϋπόθεση οτι δεν είναι όλες άκυρες και όλες οι δεύτερες επιδόσεις είναι διαφορετικές, μια
πρόχειρη λύση για τα δυο τελευταία ερωτήματα είναι η παρακάτω:
Κώδικας: Bash
  1. max1 <- 0
  2. ΓΙΑ i ΑΠΟ 1 ΜΕΧΡΙ 12
  3.    ΓΙΑ j ΑΠΟ 1 ΜΕΧΡΙ 6
  4.       αντΕπ[j] <- Επίδοση[i,j]
  5.    ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ
  6.  
  7.    ταξινόμηση ΚΑΙ εκτύπωση του αντΕπ
  8.  
  9.    ΑΝ αντΕπ[1] > max1 ΤΟΤΕ
  10.       max1 <- αντΕπ[1]
  11.       max2 <- αντΕπ[2]
  12.       νικητής <- ΟΝ[i]
  13.    ΑΛΛΙΩΣ_ΑΝ αντΕπ[1] = max1 ΤΟΤΕ
  14.       ΑΝ αντΕπ[2]>max2 ΤΟΤΕ
  15.          max2 <- αντΕπ[2]
  16.          νικητής <- ΟΝ[i]
  17.       ΤΕΛΟΣ_ΑΝ
  18.    ΤΕΛΟΣ_ΑΝ
  19. ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ
Τίτλος: Απ: Ταξινόμηση
Αποστολή από: Λάμπρος Παπαδόπουλος στις 30 Μάι 2017, 12:13:13 πμ
Μια ολοκληρωμένη λύση είναι η παρακάτω
(τελικά δεν χρειάζεται αντίγραφο. Όταν έγραψα το προηγούμενο post έφτιαχνα μια άσκηση που είχε έναν πίνακα από πάνω και
παρασύρθηκα...)
Κώδικας: Bash
  1. ΠΡΟΓΡΑΜΜΑ Άλμα_εις_μήκος
  2. ΜΕΤΑΒΛΗΤΕΣ
  3.   ΑΚΕΡΑΙΕΣ: i, j, γρ
  4.   ΠΡΑΓΜΑΤΙΚΕΣ: Επίδοση[12, 6], tmp, max1, max2
  5.   ΧΑΡΑΚΤΗΡΕΣ: ON[12], νικητής
  6.  
  7. ΑΡΧΗ
  8.   ΓΙΑ i ΑΠΟ 1 ΜΕΧΡΙ 12
  9.     ΓΡΑΨΕ 'Όνομα ', i, 'ου αθλητή'
  10.     ΔΙΑΒΑΣΕ ON[i]
  11.     ΓΙΑ j ΑΠΟ 1 ΜΕΧΡΙ 6
  12.       ΓΡΑΨΕ 'Επίδοση στο ', j, 'o άλμα'
  13.       ΔΙΑΒΑΣΕ Επίδοση[i, j]
  14.     ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ
  15.   ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ
  16.  
  17.   ΓΙΑ γρ ΑΠΟ 1 ΜΕΧΡΙ 12
  18.  
  19.     ΓΙΑ i ΑΠΟ 2 ΜΕΧΡΙ 6
  20.       ΓΙΑ j ΑΠΟ 6 ΜΕΧΡΙ i ΜΕ_ΒΗΜΑ -1
  21.         ΑΝ Επίδοση[γρ, j] > Επίδοση[γρ, j - 1] ΤΟΤΕ
  22.           tmp <- Επίδοση[γρ, j]
  23.           Επίδοση[γρ, j] <- Επίδοση[γρ, j - 1]
  24.           Επίδοση[γρ, j - 1] <- tmp
  25.         ΤΕΛΟΣ_ΑΝ
  26.       ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ
  27.     ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ
  28.  
  29.     ΓΡΑΨΕ ON[γρ]
  30.     j <- 1
  31.     ΟΣΟ j <= 6 ΕΠΑΝΑΛΑΒΕ
  32.       ΑΝ Επίδοση[γρ, j] > 0 ΤΟΤΕ
  33.         ΓΡΑΨΕ Επίδοση[γρ, j]
  34.         j <- j + 1
  35.       ΑΛΛΙΩΣ
  36.         j <- 7
  37.       ΤΕΛΟΣ_ΑΝ
  38.     ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ
  39.  
  40.   ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ
  41.  
  42.   max1 <- 0
  43.   ΓΙΑ i ΑΠΟ 1 ΜΕΧΡΙ 12
  44.     ΑΝ Επίδοση[i, 1] > max1 ΤΟΤΕ
  45.       max1 <- Επίδοση[i, 1]
  46.       max2 <- Επίδοση[i, 2]
  47.       νικητής <- ON[i]
  48.     ΑΛΛΙΩΣ_ΑΝ Επίδοση[i, 1] = max1 ΤΟΤΕ
  49.       ΑΝ Επίδοση[i, 2] > max2 ΤΟΤΕ
  50.         max2 <- Επίδοση[i, 2]
  51.         νικητής <- ON[i]
  52.       ΤΕΛΟΣ_ΑΝ
  53.     ΤΕΛΟΣ_ΑΝ
  54.   ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ
  55.   ΓΡΑΨΕ 'Νικητής ο ', νικητής
  56.  
  57. ΤΕΛΟΣ_ΠΡΟΓΡΑΜΜΑΤΟΣ
  58.