2.5 part 4
code を Fortran で書く。
code
! 2.5.f90
! 2025/07/06
!
! r, a rate
! n, a nunber of years
! i, an index stream
! x, a cash flow stream
! pv, a present value
program ex2_5
implicit none
integer, parameter :: n = 20
integer :: k
integer, dimension(n) :: i
real, dimension(n) :: x
real :: pv, r
! input
r = 0.1
i = (/(k, k = 0, n - 1)/)
x = 500.0e3
call calc(r, i, x, pv)
call output(n, r, i, x, pv)
stop
contains
subroutine calc(r, i, x, pv)
implicit none
real, intent(in) :: r
integer, intent(in), dimension(:) :: i
real, intent(in), dimension(:) :: x
real, intent(out) :: pv
pv = sum(x / (1 + r) ** i)
return
end subroutine
subroutine output(n, r, i, x, pv)
implicit none
integer, intent(in) :: n
real, intent(in) :: r
integer, intent(in), dimension(:) :: i
real, intent(in), dimension(:) :: x
real, intent(in) :: pv
print *, '2.5.f90'
print '(a5, i5)', 'n= ', n
print '(a5, f5.3)', 'r= ', r
print '(a5, 20i3)', 'i= ', i
print '(a5, 20i7)', 'x= ', int(x)
print '(a5, i10)', 'pv= ', int(pv)
return
end subroutine
end program
! end of file
output
2.5.f90 n= 20 r= 0.100 i= 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 x= 500000 500000 500000 500000 500000 500000 500000 500000 500000 500000 500000 500000 500000 500000 500000 500000 500000 500000 500000 500000 pv= 4682459
history
2023-01-14 create.
2025-07-06 revise.