Переменные recommendedType и finalAmount должны быть объявлены за пределами функции.
Что касается второго варианта, то вы объявили переменные только для одной ветки условия. Для ветки else обе переменных остаются не определены. То есть здесь тоже переменные нужно было объявить строкой выше условия.
Для второго варианта так же объявила перменные выше, результат не поменялся(
if(simple > capitalize){
recommendedType = ‘simple’;
finalAmount = simple;
}else{
recommendedType = ‘complex’;
finalAmount = capitalize;
}
Проходит два испытания из двух с разницей значений между ожидаемым и фактическим 164
Подскажите, плиз!
for (var i = 1; i <= duration; i++) {
var hhh = initialAmount + (0.01*complexPercent/12)*initialAmount;
var finalMoneyComplex = hhh + (0.01*complexPercent/12)*hhh;
}
finalMoneyComplex = (Math.round(finalMoneyComplex));
var finalMoneySimple = initialAmount +initialAmount*(0.01 * simplePercent/12)*duration;
finalMoneySimple = (Math.round(finalMoneySimple));
var recommendedType;
var finalAmount;
if (finalMoneyComplex > finalMoneySimple) {
var recommendedType = 'complex';
var finalAmount = finalMoneyComplex;
console.log('Рекомендую '+recommendedType+' сумма '+finalAmount);
} else {
var recommendedType = 'simple';
var finalAmount =finalMoneySimple;
console.log('Рекомендую '+recommendedType+' сумма '+finalAmount);
}
Третий тест. Исходный размер депозита: 250000 рублей, срок вклада: 14 мес., простой процент: 7, сложный процент: 6.8. Ожидаю рекомендацию: complex, конечную сумму: 270581 рублей.
“Рекомендую simple сумма 270417” (string)
Ваше значение recommendedType равное “simple” не совпадает с ожидаемым значением “complex”.
Ваше значение finalAmount равное 270417 не совпадает с ожидаемым значением 270581.
Понял задание иначе чем остальные и сделал функцию сравнения, по идее здесь бы еще хорошо разделить время для разных видов вкладов и вполне рабочий вариант, наверное
Оцените:
var initialAmount = 50000;
var duration = 12;
var simplePercent = 7;
var complexPercent = 6;
var finalAmount = 0;
var recommendedType = 0;
var calculateDeposit = function (initialAmount, simplePercent, complexPercent, duration) {
// Рассчет депозита с простыми процентами
var percent = simplePercent / 100 / 12;
var sumSimpleDeposit = initialAmount;
sumSimpleDeposit *= (1 + percent * duration)
// Рассчет депозита с капитализацией процентов
var percent = complexPercent / 100 / 12;
var sumComplexDeposit = initialAmount;
for (var i = 0; i < duration; i++) {
sumComplexDeposit += sumComplexDeposit*percent
}
// Сравнение депозитов
if (sumSimpleDeposit > sumComplexDeposit) {
finalAmount = Math.round(sumSimpleDeposit);
recommendedType = 'simple';
} else {
finalAmount = Math.round(sumComplexDeposit);
recommendedType = 'complex';
}
return finalAmount
};
Здравствуйте. Прошел данное испытание не без труда.
Я новичок, есть пара простых вопросов.
Summary
var initialAmount = 50000;
var duration = 2;
var simplePercent = 7;
var complexPercent = 6;
var finalAmount = 0;
var sum = 0;
var recommendedType = ‘’;
var calculateMoney = function (initialAmount, duration, persentNomber, isCapital) {
var sum = initialAmount;
if (!isCapital) {
sum = initialAmount + initialAmount * persentNomber / 100 / 12 * duration;
} else {
for (var i = 0; i < duration; i++) {
sum += sum * persentNomber / 100 / 12;
}
}
return Math.round(sum);
}
Пытаюсь вместо новых названий переменных и аргументов для функции использовать уже имеющиеся в условии. Это считается дурным тоном или наоборот, это хорошо?
Вместо sum в функции не удается вставить сразу initialAmount - перестает проходить проверку. Почему здесь надо использовать именно другую переменную (ведь var sum = initialAmount)?
Доброго времени суток.
Скажите, пожалуйста, для чего нужна вторая функция **“var recommend = function(value1, value2)”*** И где задаются значения для переменных “Value1” и “Value2”? И можно ли в место функции использовать условие? Например, если простой депозит лучше сложного, то одна рекомендация и сумма, и наоборот.
Вариант с функцией является более универсальным. То есть можно сравнивать два значения не один раз (когда вы просто пишете условие), а много раз, подставляя разные данные.
Значения для параметров value1, value2 берутся из вызовов функции calculateDeposit() чуть выше по коду.
Добрый день! Кто-нибудь может подсказать, что не так с кодом? При приемке все по нулям, а в консоли хрома он работает, на запросы recommendedType и finalAmount выдает те же ответы, что показываются в качестве ожидаемых при приемке программы.
Summary
var initialAmount = 50000;
var duration = 12;
var simplePercent = 7;
var complexPercent = 6;
var recommendedType = ‘’;
var finalAmount = 0;
var finalSim = 0;
var finalCom = 0;