Προγραμματισμός FORTRAN > Παραδείγματα > Ταξινόμηση Διανύσματος

Αρχική-HomeΠαραδείγματαΕντολές-ΣυναρτήσειςΟδηγίες-FAQsΣυνδέσεις-Links

ΠΑΡΑΔΕΙΓΜΑ: ΤΑΞΙΝΟΜΗΣΗ ΔΙΑΝΥΣΜΑΤΟΣ

Να γραφεί πρόγραμμα που να ταξινομεί n τους αριθμούς που περιέχει ένα διάνυσμα (μονοδιάστατος πίνακας) κατά αύξουσα και φθίνουσα σειρά. Το πρόγραμμα θα διαβάζει τα περιεχόμενα του διανύσματος Α(n) από ένα αρχείο και θα τυπώνει τα δυο αποτελέσματα σε ένα άλλο αρχείο:

          


Κώδικας:

PROGRAM taxinomisi
IMPLICIT NONE
  INTEGER, PARAMETER:: Nmax=100
  INTEGER:: A(Nmax), temp
  INTEGER:: N, i, j, k
  OPEN(10, FILE='data.txt')
  OPEN(20, FILE='apotel.txt')
  READ(10,*) N
  READ(10,*) (A(i),i=1,N)
  WRITE(20,'(I6\)') (A(i),i=1,N) ; WRITE(20,*)
!
  DO i = 1, N-1
    k = i
    DO j = i+1, N
      IF (A(k) > A(j)) k = j
    END DO
    IF (k /= i) THEN
      temp = A(i) ; A(i) = A(k) ; A(k) = temp
    END IF
  END DO
  WRITE(20,'(I6\)') (A(i),i=1,N) ; WRITE(20,*)
!
  DO i = 1, N-1
    k = i
    DO j = i+1, N
      IF (A(k) < A(j)) k = j
    END DO
    IF (k /= i) THEN
      temp = A(i) ; A(i) = A(k) ; A(k) = temp
    END IF
  END DO
!
  WRITE(20,'(I6\)') (A(i),i=1,N) ; WRITE(20,*)
END


Αρχείο Δεδομένων (data.txt):

10
3 92 10 12 0 -4 45 -20 9 23


Εκτέλεση: ENTER


Αρχείο Αποτελεσμάτων (apotel.txt):

3 92 10 12 0 -4 45 -20 9 23
-20 -4 0 3 9 10 12 23 45 92
92 45 23 12 10 9 3 0 -4 -20


Σχόλια ή Επεκτάσεις

 


©2006 Δρ. Β. Χ. Μούσας, Επικ. Καθ., e-mail Τ.Ε.Ι. ΑθήναςΤμήμα Πολιτικών Έργων Υποδομής