# 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