При таком коде он проходит 2 проверки а на третьей проверке вместо 270581 получается 270417 и тип другой выходит.
из условия вижу,что должен поставить сначала одно значение с другим типом,а если оно не выполняется то другие значения.
Если их ставлю то везде тип становится верным но значения .
Можете подсказать что именно не так ? или весь код переделывать?
У вас неправильно считается сумма депозита с капитализацией.
Здесь отсутствует знак умножения. И не нужно умножать на duration, потому что эта переменная используется в цикле.
Еще есть ошибка в условии. Рекомендуемый вид депозита - это большая из двух величин. У вас наоборот.
я так понимаю, лучше записывать рез-т выполнения функции в переменные как у вас - типа для читабельности? а не сравнивать :)) а то подумалось, как топором написано. проверки прошло
Лишний знак ; в конце кода. А в целом всё правильно.
Придираться можно только к имени переменной-флага. В теории акцентируется внимание на том, с каким названием она чаще всего создается.
Функцию benefit можно было не выделять, а значение finalAmount дописать в choice, тем более что условия одинаковые.
Обращайте внимание на оформление кода (табы/пробелы, отступы между частями кода для улучшения читабельности). Также помните о правиле именования переменных camelCase.
Например, не percenttime, а percentTime или не Deposisimple, а deposiSimple.
не совсем понимаю почему функция benefit не нужна, если я значение finalAmount допишу в choice , функция choice всё равно выдаст только первое значени которое будет записано в return
Что за траблы с проверкой на сайте, ребята? Убил пару часов на постоянно выскакивающую ошибку “Не удалось проинициализировать исходные переменные” (string)" в то время как код рабочий и отрабатывает в codepen.io на 100% Что означает эта ошибка?
var calculateDeposit = function (initialAmount, duration, simplePercent, complexPercent) {
var recommendedType;
var finalAmount;
var simpleProfit = initialAmount / 100 * simplePercent / 12 * duration;
var simpleAmount = initialAmount + simpleProfit;
var complexAmount = initialAmount;
for (var i = 0; i < duration; i++) {
complexAmount += complexAmount / 100 * complexPercent / 12;
}
if (simpleAmount > complexAmount) {
recommendedType = 'simple';
finalAmount = Math.round(simpleAmount);
} else {
recommendedType = 'complex';
finalAmount = Math.round(complexAmount);
}
return console.log(recommendedType, finalAmount);
}
calculateDeposit(250000, 14, 7, 6.8);
вроде все получилось (над предыдущим поломала голову, а это по аналогии), но задание вызвало вопрос - а зачем здесь функции? у меня такой код:
var simpleAmount=initialAmount+initialAmount*(simplePercent/100/12)duration;
for(i=0; i<duration; i++){
initialAmount=initialAmount+initialAmount(complexPercent/100/12);
var complexAmount=Math.round(initialAmount);}
if (simpleAmount<complexAmount) {
var recommendedType=“complex”;
finalAmount=complexAmount;}
else {
recommendedType=“simple”;
var finalAmount=simpleAmount;}``
В начале кода у вас определена переменная finalAmount, но ей не присвоено никакое начальное значение. Помните о том, что функция может возвращать только одно значение. То есть всё, что написано после первого return, игнорируется.
Здравствуйте! Подскажите, пожалуйста, в чем ошибка? Выдает, что переменные “recommendedType” и “finalAmount” не определены, хотя я задаю им значения в цикле.
var simple = calculateDeposit(initialAmount, simplePercent, duration, false);
var capitalize = calculateDeposit(initialAmount, complexPercent, duration, true);
console.log(simple, capitalize);
var recommend = function(simple, capitalize) {
var recommendedType = 'simple’
var finalAmount = simple;
if (simple < capitalize) {
recommendedType = ‘complex’;
finalAmount = capitalize;
}
return recommendedType
};
console.log(recommendedType, finalAmount);
А еще не очень понимаю, зачем в последнем задании использовать именно функцию, почему нельзя просто иф? пробовала через иф, на оследнюю проверку не проходит
if(simple > capitalize){
var recommendedType = ‘simple’;
var finalAmount = simple;
}else{
recommendedType = ‘complex’;
finalAmount = capitalize;
}