Τώρα είναι Σάβ 07 Δεκ 2024 06:14 pm

Όλοι οι χρόνοι είναι UTC + 2 ώρες [ DST ]




Δημιουργία νέου θέματος Απαντήστε στο θέμα  [ 4 Δημοσιεύσεις ] 
Συγγραφέας Μήνυμα
ΔημοσίευσηΔημοσιεύτηκε: Τετ 09 Μαρ 2005 12:17 pm 
Χωρίς σύνδεση

Εγγραφή: Πέμ 22 Απρ 2004 11:16 am
Δημοσιεύσεις: 60
Τοποθεσία: Θεσσαλονίκη
Syntax: [ Download ] [ Hide ]
!===========================================================
! Να αναπτύξετε πρόγραμμα το οποίο δέχεται ένα διδιάστατο
! πίνακα ακεραίων Α[Ν,Ν], και τον ταξινομει κατά αύξουσα
! σειρά, συνολικα. Μεταθέτει δηλαδή τα στοιχεία του έτσι
! ώστε στο τέλος να ισχύει
! Α[1,1]<=Α[1,2]<=Α[1,3]<=....<=Α[2,1]<=Α[2,2]<=.....Α[5,5]
!                      
! Αν ο αρχικος πίνακας είναι ο παρακάτω:
!
!    1  1  2  2  3
!    1  1  4  3  5
!    2  1  0  6  6
!    3  0  4  3  5
!    2  5  0  7  8
!
! Ο τελικός θα πρέπει να είναι ο επόμενος:
!
!    0  0  0  1  1
!    1  1  1  2  2
!    2  2  3  3  3
!    3  4  4  5  5
!    5  6  6  7  8
!
!===========================================================

ΠΡΟΓΡΑΜΜΑ shorting_for_square_table
ΣΤΑΘΕΡΕΣ
  Ν=5
ΜΕΤΑΒΛΗΤΕΣ
  ΑΚΕΡΑΙΕΣ: i,j,k, A[Ν,Ν],row,col, temp, min,Θi,Θj
  ΛΟΓΙΚΕΣ:change
ΑΡΧΗ
  ΓΙΑ i ΑΠΟ 1 ΜΕΧΡΙ Ν
    ΓΙΑ j ΑΠΟ 1 ΜΕΧΡΙ Ν
      ΔΙΑΒΑΣΕ A[i,j]
    ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ
  ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ

  ΓΙΑ i ΑΠΟ 1 ΜΕΧΡΙ Ν
    ΓΙΑ j ΑΠΟ 1 ΜΕΧΡΙ Ν
      ΓΡΑΨΕ_ A[i,j]
    ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ
    ΓΡΑΨΕ
  ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ

  row <-- 1
  col <-- 1
  ΓΙΑ k ΑΠΟ 1 ΜΕΧΡΙ Ν*Ν
    min <-- A[row,col]
    Θi <-- row
    Θj <-- col

    j <-- col
    change <-- ψευδής
    ΓΙΑ i ΑΠΟ row ΜΕΧΡΙ Ν
      ΟΣΟ j<=Ν ΕΠΑΝΑΛΑΒΕ
        ΑΝ A[i,j]<min ΤΟΤΕ
          min <-- A[i,j]
          Θi <-- i
          Θj <-- j
          change <-- αληθης
        ΤΕΛΟΣ_ΑΝ
        j <-- j+1
      ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ
      j <-- 1
    ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ
    ΑΝ change ΤΟΤΕ
      temp <-- A[Θi,Θj]
      A[Θi,Θj] <-- A[row,col]
      A[row,col] <-- temp
    ΤΕΛΟΣ_ΑΝ

    col <-- col+1
    ΑΝ col>Ν ΤΟΤΕ
      col <-- 1
      row <-- row+1
    ΤΕΛΟΣ_ΑΝ
  ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ

  ΓΡΑΨΕ
  ΓΙΑ i ΑΠΟ 1 ΜΕΧΡΙ Ν
    ΓΙΑ j ΑΠΟ 1 ΜΕΧΡΙ Ν
      ΓΡΑΨΕ_ A[i,j]
    ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ
    ΓΡΑΨΕ
  ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ

ΤΕΛΟΣ_ΠΡΟΓΡΑΜΜΑΤΟΣ

 

_________________
Φρειδερίκος Κώστας
FreiderikosK@hotmail.com


Κορυφή
 Προφίλ  
Απάντηση με παράθεση  
 Θέμα δημοσίευσης:
ΔημοσίευσηΔημοσιεύτηκε: Τετ 09 Μαρ 2005 03:10 pm 
Χωρίς σύνδεση
Διαχειριστής

Εγγραφή: Παρ 28 Φεβ 2003 06:10 pm
Δημοσιεύσεις: 84
Ή εναλλακτικά με βοηθητικό μονοδιάστατο πίνακα και χρήση της γνωστής ταξινόμησης φυσσαλίδας:

Syntax: [ Download ] [ Hide ]
!===========================================================
! Να αναπτύξετε πρόγραμμα το οποίο δέχεται ένα διδιάστατο
! πίνακα ακεραίων Α[Ν,Ν] και τον ταξινομεί κατά αύξουσα
! σειρά, ώστε στο τέλος να ισχύει
! Α[1,1]<=Α[1,2]<=Α[1,3]<=....<=Α[2,1]<=Α[2,2]<=.....Α[5,5]
!
! Αν ο αρχικος πίνακας είναι ο παρακάτω:
!
!    1  1  2  2  3
!    1  1  4  3  5
!    2  1  0  6  6
!    3  0  4  3  5
!    2  5  0  7  8
!
! Ο τελικός θα πρέπει να είναι ο επόμενος:
!
!    0  0  0  1  1
!    1  1  1  2  2
!    2  2  3  3  3
!    3  4  4  5  5
!    5  6  6  7  8
!
!===========================================================

ΠΡΟΓΡΑΜΜΑ Ταξινόμηση_διδιάστατου_πίνακα

ΣΤΑΘΕΡΕΣ
  Ν=5

ΜΕΤΑΒΛΗΤΕΣ
  ΑΚΕΡΑΙΕΣ: i,j, k, Α[Ν,Ν], Β[Ν*Ν], temp

ΑΡΧΗ

  ΓΙΑ i ΑΠΟ 1 ΜΕΧΡΙ Ν
    ΓΙΑ j ΑΠΟ 1 ΜΕΧΡΙ Ν
      ΔΙΑΒΑΣΕ Α[i,j]
    ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ
  ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ

  ΓΡΑΨΕ 'Αρχικός:'
  ΓΙΑ i ΑΠΟ 1 ΜΕΧΡΙ Ν
    ΓΙΑ j ΑΠΟ 1 ΜΕΧΡΙ Ν
      ΓΡΑΨΕ_ Α[i,j]
    ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ
    ΓΡΑΨΕ
  ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ

  k <-- 1
  ΓΙΑ i ΑΠΟ 1 ΜΕΧΡΙ Ν
    ΓΙΑ j ΑΠΟ 1 ΜΕΧΡΙ Ν
      Β[k] <-- Α[i,j]
      k <-- k+1
    ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ
  ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ

  ΓΙΑ i ΑΠΟ 2 ΜΕΧΡΙ Ν*Ν
    ΓΙΑ j ΑΠΟ Ν*Ν ΜΕΧΡΙ i ΜΕ ΒΗΜΑ -1
      ΑΝ Β[j-1]>Β[j] ΤΟΤΕ
        temp <-- Β[j-1]
        Β[j-1] <-- Β[j]
        Β[j] <-- temp
      ΤΕΛΟΣ_ΑΝ
    ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ
  ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ

  k <-- 1
  ΓΙΑ i ΑΠΟ 1 ΜΕΧΡΙ Ν
    ΓΙΑ j ΑΠΟ 1 ΜΕΧΡΙ Ν
      Α[i,j] <-- Β[k]
      k <-- k+1
    ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ
  ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ

  ΓΡΑΨΕ 'Ταξινομημένος:'
  ΓΙΑ i ΑΠΟ 1 ΜΕΧΡΙ Ν
    ΓΙΑ j ΑΠΟ 1 ΜΕΧΡΙ Ν
      ΓΡΑΨΕ_ Α[i,j]
    ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ
    ΓΡΑΨΕ
  ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ

ΤΕΛΟΣ_ΠΡΟΓΡΑΜΜΑΤΟΣ Ταξινόμηση_διδιάστατου_πίνακα

 


Τελευταία επεξεργασία από SpiN και Σάβ 03 Μαρ 2007 04:59 am, έχει επεξεργασθεί 1 φορά/ες συνολικά

Κορυφή
 Προφίλ  
Απάντηση με παράθεση  
 Θέμα δημοσίευσης:
ΔημοσίευσηΔημοσιεύτηκε: Τετ 09 Μαρ 2005 11:27 pm 
Χωρίς σύνδεση

Εγγραφή: Πέμ 22 Απρ 2004 11:16 am
Δημοσιεύσεις: 60
Τοποθεσία: Θεσσαλονίκη
Μας έβαλες τα γυαλιά κανονικά φίλε Σπύρο..... :roll:
Τελικά οι πιο όμορφες λύσεις, είναι οι απλές .....
Φιλικά
Κώστας

_________________
Φρειδερίκος Κώστας
FreiderikosK@hotmail.com


Κορυφή
 Προφίλ  
Απάντηση με παράθεση  
ΔημοσίευσηΔημοσιεύτηκε: Σάβ 04 Φεβ 2012 06:03 am 
Χωρίς σύνδεση

Εγγραφή: Σάβ 04 Φεβ 2012 05:37 am
Δημοσιεύσεις: 1
Υπάρχει ακόμα πιο απλή μεθοδος για την πλήρη ταξινόμηση

Syntax: [ Download ] [ Hide ]
ΠΡΟΓΡΑΜΜΑ ΤΑΞΙΝΟΜΗΣΗ_ΠΙΝΑΚΑ_3Χ5  
ΜΕΤΑΒΛΗΤΕΣ
  ΑΚΕΡΑΙΕΣ:Α[3,5],i,j,k,m,y
ΑΡΧΗ
  ΓΙΑ i από 1 μέχρι 3
    για j από 1 μέχρι 5
      διάβασε α[i,j]
    τέλος_επανάληψης
  ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ
  γράψε
  γραψε
  Για i από 1 μέχρι 3
    για j από 1 μέχρι 5
      για k από 1 μέχρι 3
        για m από 1 μέχρι 5
          αν α[i,j]<α[k,m] τότε
            y <-- α[i,j]
            α[i,j] <-- α[k,m]
            α[k,m] <-- y
          ΤΕΛΟΣ_ΑΝ
        ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ
      ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ
    ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ
  ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ
  ΓΙΑ i  ΑΠΟ  1  ΜΕΧΡΙ  3
    ΓΙΑ j  ΑΠΟ  1  ΜΕΧΡΙ  5
      ΓΡΑΨΕ α[i,j]
    ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ
  ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ
ΤΕΛΟΣ_ΠΡΟΓΡΑΜΜΑΤΟΣ


Κορυφή
 Προφίλ  
Απάντηση με παράθεση  
Τελευταίες δημοσιεύσεις:  Ταξινόμηση ανά  
Δημιουργία νέου θέματος Απαντήστε στο θέμα  [ 4 Δημοσιεύσεις ] 

Όλοι οι χρόνοι είναι UTC + 2 ώρες [ DST ]


Μέλη σε σύνδεση

Μέλη σε αυτή την Δ. Συζήτηση : Δεν υπάρχουν εγγεγραμμένα μέλη και 1 επισκέπτης


Δεν μπορείτε να δημοσιεύετε νέα θέματα σε αυτή τη Δ. Συζήτηση
Δεν μπορείτε να απαντάτε σε θέματα σε αυτή τη Δ. Συζήτηση
Δεν μπορείτε να επεξεργάζεστε τις δημοσιεύσεις σας σε αυτή τη Δ. Συζήτηση
Δεν μπορείτε να διαγράφετε τις δημοσιεύσεις σας σε αυτή τη Δ. Συζήτηση
Δεν μπορείτε να επισυνάπτετε αρχεία σε αυτή τη Δ. Συζήτηση

Αναζήτηση για:
Μετάβαση σε:  
Προβολές: