Блог им. kurd
// Среднегодовая доходность с фиксированной ставкой
// Без капитализации = (FV/PV - 1) / N,
// C капитализацией = (FV/PV)^(1/N) - 1, где:
// PV - вложенная сумма, FV - полученная сумма,
// N - число ежегодных вложений.
var msg = "Расчёт средних доходностей.\n"
+ "cscript YieldMean.js R N [1]\n"
+ "R - годовая ставка, проценты. <a name="cut"></a> \n"
+ "N - число ежегодных вложений.\n"
+ "1 или пусто - вложения с индексацией."
if (WScript.Arguments.length != 2 &&
WScript.Arguments.length != 3) {
WScript.Echo (msg);
WScript.Quit (0);
}
var R = parseFloat (WScript.Arguments (0)) / 100
var N = parseInt (WScript.Arguments (1))
var I = (WScript.Arguments.length == 3)
if (I == 0)
WScript.Echo ("Без индексации вложений.")
else
WScript.Echo ("С индексацией вложений.")
var PV = 0.0, FV = 0.0, dlt = 1
for (i = 1; i <= N; ++i) {
PV += dlt // Первые меньшие вложения на больший срок!
FV += dlt * Math.pow (1 + R, N-i+1)
if (I != 0) dlt *= 1 + R
}
WScript.Echo ("Вложено ", formatNumber (PV, 4))
WScript.Echo ("Получено ", formatNumber (FV, 4))
var avrg = (FV/PV - 1) / N * 100
var mean = (Math.pow (FV/PV, 1 / N) - 1) * 100
WScript.Echo ("Без капитализации",formatNumber(avrg,4)+"%")
WScript.Echo ("C капитализацией ",formatNumber(mean,4)+"%")
//////////
function formatNumber (val, num) {
var fct = Math.pow (10, num)
return Math.round (val * fct) / fct
}
+ "R - годовая ставка, проценты. <a name="cut"></a> \n"вместо: + «R — годовая ставка, проценты.\n». А здесь нарисовал угловые кавычки вместо обычных двойных.


