# 4.11.jl
# 2024-10-12
# $Id: 4.11.jl 1.1 2024/11/02 07:49:14 s Exp $
#
# x,  cash flow stream
# s,  spot rates
# d,  discount factor
# pv, present value

using Printf

# input
const x          = [-40, 10,  10,  10,  10,  10,  10 ]
const s_percent  = [  0, 5.0, 5.3, 5.6, 5.8, 6.0, 6.1]

# calculate
const s  = s_percent ./ 100
const n  = length(s)
const i  = 0:n-1
const d  = 1 ./ (1 .+ s) .^ i
const xd = x .* d
const pv = sum(xd)

# output
println("4.11.jl")
@printf("%10s%10s%10s%10s%10s\n",
        "k", "s", "d", "x", "x*d")
println(repeat("-", 50))
for k = 1:n
    @printf("%10d%10.3f%10.2f%10.0f%10.2f\n", 
              k, s[k], d[k], x[k], xd[k])
end
println(repeat("-", 50))
@printf("%40s%10.2f\n", "pv=", pv)
# eof