next up previous contents
Nächste Seite: Aufgabe 9 Aufwärts: Lösungen Vorherige Seite: Aufgabe 7   Inhalt

Aufgabe 8

PROGRAM C_04
 IMPLICIT NONE
 REAL :: p(0:2)=1.0, q(0:1)=1.0
 REAL, ALLOCATABLE :: pxq(:)
 INTEGER :: i, s1, s2
 INTERFACE
  SUBROUTINE multi (m, n, p, q, pxq)
   IMPLICIT NONE
   REAL :: p(0:), q(0:), pxq(0:)
   INTEGER :: m, n
  END SUBROUTINE
 END INTERFACE

 s1 = SIZE(p)-1
 s2 = SIZE(q)-1
 ALLOCATE (pxq(0:s1+s2))
 CALL multi(s1,s2,p,q,pxq)
 write (*,*) pxq
END PROGRAM

SUBROUTINE multi (m, n, p, q, pxq)
!
! (a0 + b1.x + b2.x^2) . (b0 + b1.x + b2.x^2) =
! a0.b0 +
! (a0.b1 + a1.b0).x +
! (a0.b2 + a1.b1 + a2.b0).x^2
!        + a1.b2 + a2.b1).x^3
!                + a2.b2.x^4
!
 IMPLICIT NONE
 REAL :: p(0:), q(0:), pxq(0:)
 INTEGER :: i, j, l, m, n, neu

 pxq = 0.0
 DO i = 0, m
  DO j = 0, n
   pxq(i+j) = pxq(i+j) + p(i)*q(j)
  ENDDO
 END DO
END SUBROUTINE


Reinfried O. Peter 2001-09-07