Девятая программа: «Вечный вопрос» — Функции


#1

Что делать с “Не удалось проинициализировать исходные переменные” (string) ?

Уже взял код с видео объяснения все равно эта ошибка:

var initialAmount = 250000;
var duration = 14;
var simplePercent = 7;
var complexPercent = 6;

var calculateDeposit = function(amount, percent, duration, isCapitalized) {
var result = amount;
var percentForMonth = percent / 1200;

for (var i = 1; i <= duration; i++){
if (isCapitalized){
result += result *percentForMonth;
} else {
result += percentForMonth * amount;
}
}
return Math.round(result);
};

var simple = calculateDeposit(initialAmount, simplePercent, duration, false);
var complex = calculateDeposit(initialAmount, complexPercent, duration, false);

var recommendedType;
var finalAmount;

if(simple > complex){
recommendedType = ‘simple’;
finalAmount = simple;
} else {
recommendedType = ‘complex’;
finalAmount = complex;
}


#2

Исходные переменные объявите не в функции


#3

C утра по раньше не заметил что они и так вне функции :neutral_face:


#5

в тексте отпечатка

написано

1.initialAmount — исходный размер депозита,
2.depositDuration — срок депозита в месяцах,
3.simplePercent — процентная ставка для депозита с простыми процентами,

т.е calculateDeposit(initialAmount,depositDuration,simplePercent,false);

но дает неправильный результат т.к. надо наоборот заменить depositDuration на simplePercent
т.е calculateDeposit(initialAmount,simplePercent,depositDuration ,false);

а по теме у меня такой код получился

Hide
var initialAmount = 300000;
var depositDuration = 18;
var simplePercent = 7.2;
var complexPercent = 6;

var calculateDeposit = function (deposit,precent,termDeposit,capitalize) {
  var result = deposit;
  var percentMonth = precent / 100 / 12;
      for (var i = 1;i<= termDeposit;i++){
      if (capitalize) {
       result = result + result * percentMonth;
      } else {
    result = result + deposit * percentMonth;
    }
  }
  return Math.round(result);
};

var simple = calculateDeposit(initialAmount,simplePercent,depositDuration,false);
var complex = calculateDeposit(initialAmount,complexPercent,depositDuration,true);

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

console.log(finalAmount);

#6

я создал 2 функции и то что они мне возвращають а ето результат с капитализацией или без я сравниваю между собой, думаю такой вариант также может быть использован

вариант

var initialAmount = 50000;
var depositDuration = 12;
var simplePercent = 7;
var complexPercent = 6;
var recommendedType = “”;
var finalAmount;

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

var calculateDeposit1 = function(initialAmount, depositDuration,simplePercent){
initialAmount += (simplePercent / 100 / 12) * depositDuration * initialAmount;
return Math.round(initialAmount);
};

var complexInitialAmount = calculateDeposit(initialAmount,depositDuration, complexPercent);
var simpleInitialAmount = calculateDeposit1(initialAmount, depositDuration,simplePercent);

if(complexInitialAmount > simpleInitialAmount){
recommendedType = “complex”;
finalAmount = complexInitialAmount;
} else {
recommendedType = “simple”;
finalAmount = simpleInitialAmount;
}