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

ΜΑΘΗΜΑ: ΕΝΤΟΛΕΣ ΠΙΝΑΚΩΝ

Η Fortran διαθέτει και ειδικές εντολές που προορίζονται μόνο για πίνακες. Τέτοιες είναι το πλάγιο DO (Implied DO), η εντολή επανάληψης FORALL, και η εντολή ελέγχου WHERE.


αρχή

ΕΝΤΟΛΗ IMPLIED DO

Για την ανάγνωση και εκτύπωση μητρώων χρησιμοποιούμε τη συνοπτική διατύπωση βρόγχων DO, το πλάγιο DO (IMPLIED DO). Το πλάγιο DO συντάσσεται ως εξής:

WRITE(*,*) ((a(i,j), j=1,5), i=1,100)

το οποίο είναι ισοδύναμο με τις 5 παρακάτω εντολές:

DO i=1,100
  DO j=1,5
    WRITE(*,*) a(i,j)
  END DO
END DO

Οι σύντομες IMPLIED DO διευκολύνουν την ανάγνωση και εκτύπωση πινάκων με τις εντολές READ και WRITE, και την απόδοση αρχικών τιμών στα στοιχεία του πίνακα

a = (/ REAL(i*j), i=1,100), j=1,5) /)

Ένας άλλος τρόπος που συνδυάζεται με το IMPLIED DO, είναι η χρήση των ορίων στη θέση των δεικτών:

WRITE(*,*) (a(i,1:5), i=1,100)


αρχή

ΕΝΤΟΛΗ FORALL ... END FORALL

Μια άλλη εντολή που διευκολύνει τον χειρισμό των μητρώων είναι η εντολή FORALL (συνθήκη) ... END FORALL. Η εντολή αυτή μπορεί να ενσωματώσει περισσότερα του ενός DO & IF σε μια μόνο εντολή όπως φαίνεται και στο επόμενο παράδειγμα.

Στο παράδειγμα αυτό όσα στοιχεία του πίνακα Α από τη διαγώνιο και κάτω είναι θετικά, αποθηκεύονται στον πίνακα C.

DO j=1,n
  DO k=1,j
    IF ( A(j,k) > 0.0 ) THEN
      C(j,k) = A(j,k)
    END IF
  END DO
END DO

Με τη χρήση της FORALL ο παραπάνω κώδικας γίνεται:

FORALL ( j=1:n, k=1:n, k<=j .AND. A(j,k)>0.0 )
  C(j,k) = A(j,k)
END FORALL


αρχή

ΕΝΤΟΛΗ WHERE ... ELSEWHERE ... END WHERE

Τέλος, η εντολή WHERE (συνθήκη) ... ELSEWHERE ... END WHERE χειρίζεται τους πίνακες όπως η εντολή IF τις βαθμωτές ποσότητες και εκτελεί τις εντολές που περιέχει για κάθε στοιχείο του πίνακα.

Για παράδειγμα, στη παρακάτω εντολή, όσα στοιχεία του πίνακα Α είναι μικρότερα των αντίστοιχων στοιχείων του πίνακα L θα γίνουν 0.0, και όσα δεν είναι θα γίνουν 1.0.

WHERE (A < L)
  A = 0.0
ELSEWHERE
  A = 1.0
END WHERE


αρχή

Prev Μάθημα Next


Παραδείγματα

Ερωτήσεις


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