Испытание:Вечный вопрос


#49

Сделайте вызов функции в консоль в конце и все заработает
console.log(calculateDeposit(initialAmount, duration, simplePercent, complexPercent));


#50

Спасибо!


#51

подскажите логику - а зачем выводить это в консоль?
Спасибо.


#52

В консоль не обязательно, нужно вызов функции произвести…


#53

Считая уже сумму вкладов, как программа заменяет данные при выполнении функции(расчет процентов)?Я никак не могу понять этого, поэтому и не смогла выполнить задание((


#54

Данные в функцию обычно передаются через параметры при вызове ф-ии, либо ф-ия замыкает внешнее окружение при определение(читайте про замыкание)


#55


не могу пройти 1 тест , хотя код верный . Помогите , что делать?


#56

Код текстом, пожалуйста. Кнопка для форматирования </> в редакторе сообщений.
Ваш код не верный, хотя бы потому что сумма не совпадает, и она не округляется, если заметили.


#57

код уж точно не верный, как минимум возврат нескольких данных не производится через запятую, а используются для этого составные данные(массив, объект и др.)

И не думаю что здесь нужен вообще возврат


#58

Что не так?
Ни один код не воспроизводит(


#59

Видимо глаз замылился, немогу найти ошибку, в общем у меня неверно считается депозит с капитализацией.
Вот код, где тут может быть ошибка?

var initialAmount = 250000;
var depositDuration = 14;
var simplePercent = 7;
var complexPercent = 6.8;

var simpleDeposit = simplePercent / 1200 * depositDuration * initialAmount + initialAmount;
var complexDeposit = initialAmount;
for (var i = 1; i <= depositDuration; i++) {
  complexDeposit += complexPercent / 1200 * complexDeposit; 
}

if ( simpleDeposit > complexDeposit) {
  var recommendedType = 'simple';
  var finalAmount = Math.round(simpleDeposit);
} else {
  var recommendedType = 'complex';
  var finalAmount = Math.round(complexDeposit);
}

UPD: Ошибку сам нашел в цикле была неверная формула:

 complexDeposit += complexPercent / 1200 * initialAmount;

а должно быть:

 complexDeposit += complexPercent / 1200 * complexDeposit;

#60

Мой топорный вариант, нужны комментарии :pensive:

Вечный вопрос
var initialAmount = 50000;
var depositDuration = 12;
var simplePercent = 7;
var complexPercent = 6;
var recommendedType = '';
var finalAmount = 0;


var calculateDeposit = function (initialAmount, percent, depositDuration, isCapitalization) {
  var totalAmount = initialAmount;
  if (isCapitalization) {
    for (var i = 0; i < depositDuration; i++) {
      totalAmount += totalAmount * (percent / 100 / 12);
    }
  }else {
    totalAmount += totalAmount * (percent / 100 / 12 * depositDuration);
  }
  return Math.round(totalAmount);
}

var simpleAmount = calculateDeposit(initialAmount, simplePercent, depositDuration, false);
var complexAmount= calculateDeposit(initialAmount, complexPercent, depositDuration, true);

if (simpleAmount > complexAmount) {
  recommendedType = 'simple';
  finalAmount = simpleAmount;
  
}else {
  recommendedType = 'complex';
  finalAmount = complexAmount;
}