# 3.3.jl # 2024-09-05 # $Id: 3.3.jl 1.1 2024/10/29 11:45:44 s Exp $ # a, age # df, discount factor # p , probability of becoming dead # pv, present value of x # r, interest rate # x, cash flow using Printf # input r = 0.08 istart = 90 iend = 101 n = iend - istart age=[90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101 ] x = [0, 10e3, 10e3, 10e3, 10e3, 10e3, 10e3, 10e3, 10e3, 10e3, 10e3, 10e3] p = [0.07, 0.08, 0.09, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.07, 0.05, 0.04] pp= [1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0 ] j = [x for x=1:12] # calculate for i = 2:n+1 pp[i] = pp[i - 1] - p[i - 1] end df = [1 / (1 + r) ^ (i-1) for i = 1:length(age)] pv = [x1 * x2 * x3 for (x1, x2, x3) in zip(pp, x, df)] # output @printf("%s", "3.3.jl\n") @printf("%8s%8s%8s%8s%8s%8s%8s\n", "i", "age", "p", "pp", "annuity", "df", "pv") println(repeat("-", 56)) for i = 1:length(age) @printf("%8d%8d%8.2f%8.2f%8.0f%8.2f%8.0f\n", i-1, age[i], p[i], pp[i], x[i], df[i], pv[i]) end println(repeat("-", 56)) @printf("%8s%16.2f%32d\n","sum",sum(p),sum(pv)) # end