Friday, January 5, 2018

Transpusa matricei rare

Matricea rară este reprezentată prin 3 vectori ce conțin informații doar despre elementele sale nenule. A calcula transpusa unei matrice rare înseamnă a interschimba conținutul vectorilor pentru linii cu cel pentru coloane. Subprogramul este:

          SUBROUTINE TRARAR(LIN,ICOL,K, IK)
          INTEGER AUX
          IK=0
          IF((K.LE.0).OR.(K.GT.N)) GO TO 20
          K1=0
          DO 10  I=1,K
          AUX=ICOL(I)
          ICOL(I)=LIN(I)
          LIN(I)= AUX                   
          LIN1(K1)=LIN(I)
          ICOL(K1)=ICOL(I)
          VAL1(K1)=VAL1(I)
10      CONTINUE
          IK=1
20      CONTINUE
          RETURN
          END
Variabila AUX de tip întreg ajută la efectuarea interschimbului. Aici nu este necesar apelul subprogramului de efectuare a interschimbului elementelor unui vector pentru că s-ar efectua un apel inutil de subprogram, ori așa, am încorporat secvența pur și simplu că nu este  lungă și este simplă.

(05 ianuarie 2018)

No comments:

Post a Comment