Или не одобрит, хехех
В этом выпуске вы сможете потренировать программистскую конструкцию «Если...то» — один из главных кирпичиков любой программы. Для интереса обернем эту конструкцию в понятную задачу.
Когда банк выдаёт кредит, он проверяет человека по многим параметрам. Один из них — платежеспособность. Это значит, что банк берёт уровень доходов, примерно прикидывает ваши траты и смотрит, хватит ли вам денег рассчитаться по кредиту.
Проблема в том, что критериев платежеспособности и трат может быть очень много и они могут ветвиться: если у человека одна ситуация, считать одно; если другая — считать другое. Чтобы ускорить проверку, банки создают автоматические системы оценки — по-нашему, системы скоринга. Сейчас мы напишем похожую программу: она будет учитывать несколько критериев и выдавать оценку платежеспособности по нашей собственной методике.
Зачем вам такой калькулятор — решайте сами: можно открыть собственный банк, можно оценивать бизнес-проекты, можно прикидывать экономическую эффективность поездки на дачу.
Банки используют намного более сложный анализ клиента, чем тот, который опишем в этой программе мы. Результаты, которые вы получите после выполнения программы — примерные, и не влияют на получение реального кредита.
Объявляем переменные
Смысл решения в том, чтобы вначале узнать у человека всё про кредит и про его семейное положение, затем выяснить размер ежемесячного платежа и наконец рассчитать нужный уровень зарплаты.
Для начала объявим переменные, которые будем использовать в расчётах.
Мы сразу указали уровень минимальных трат каждый месяц — 20 тысяч рублей. Вы можете подкорректировать эту сумму под свою ситуацию или сможете запросить эти данные у пользователя.
Собираем данные пользователя
Теперь нужно узнать как можно больше подробностей о клиенте банка. Используем для этого команду prompt() — она покажет пользователю диалоговое окно с вопросом, в которое тот введет ответ. За внешний вид диалогового окна отвечает браузер и JavaScript, нас оно не должно волновать.
Мы используем prompt() в строго учебных целях, чтобы ускорить работу — обычно в вебе эта команда не используется. В реальном продукте мы бы нарисовали веб-страницу, в которой была бы форма, а пользователь вводил бы свои данные в неё, но это тема для отдельной статьи.
Результат работы prompt() — строка, даже если пользователь ввел число. А нам нужно работать с числами. Поэтому нужно принудительно перевести все введённые значения в числа, чтобы в программе не возникло случайных ошибок (о них мы писали в статье о типах данных). Используем для этого функцию Number(), которая работает так: в скобках подаем строку, а возвращается число.
Логика калькулятора
Теперь мы знаем всё, что нужно. Начинаем вычислять.
Банки смотрят, сколько у вас несовершеннолетних детей. По закону их обязаны содержать родители, и банки на каждого ребёнка закладывают определённую сумму. Её вычитают из вашей зарплаты, чтобы оценить, хватит ли денег платить за кредит каждый месяц.
Изначально предполагаем, что у клиента нет детей и нет и расходов на них нет. Если дальше выяснится, что дети всё-таки есть, то переменной child_expense присвоим новое значение.
child_expense = 0;
Теперь смотрим на возраст. Давайте предположим, что чем старше человек, тем сложнее ему будет выплатить кредит. Это необязательно так, но при решении будем исходить из этого — так интереснее.
Чтобы проверить возраст, будем использовать условный оператор if. В общем виде он выглядит так:
По-русски это звучит так: если условие выполнилось, то выполняем какое-то действие. Иногда нужно дополнительно что-то сделать, если условие не выполняется. Для этого в конец условного оператора добавляют else {}
Внутри одного условного оператора тоже можно использовать другие условные операторы, вкладывая их друг в друга. Они не перепутаются внутри, если внимательно следить за фигурными скобками: {}. Сколько у нас открывающих скобок {, сколько же должно быть и закрывающих }, иначе программа не будет работать.
Вот как выглядит наша проверка возраста с вложенным условием. Если клиенту больше 55 лет, то делаем повышенный коэффициент риска. В противном случае(else) мы смотрим, сколько у него детей. Если ребёнок один — делаем одни расходы, если два и больше — другие.
Теперь рассчитываем ежемесячный размер платежа. Для этого складываем сумму кредита с размером процентов, которые набегут за время кредита, и делим всё на количество месяцев.
credit = (money + ( (money*percent/(12* 100)) * month )) / month;
Чтобы посчитать минимально необходимую зарплату, берём наш ежемесячный платёж, умножаем его на возрастной коэффициент, и добавляем расходы на себя и на ребёнка.
salary = (credit*age_coeff) + month_expense + child_expense;
Нам не нужна точность до копеек — округлим зарплату до целых рублей функцией toFixed(). В скобках указываем, сколько цифр после запятой нам нужно. Так как нам копейки не нужны — указываем ноль.
salary = salary.toFixed(0);
Когда всё посчитано, выводим результат на экран.
alert('В месяц вам нужно будет платить ' + credit.toFixed(0) + 'р. Чтобы повысить шансы на одобрение такого кредита, ваша зарплата должна быть не ниже ' + salary + ' р.');
Итоговый код
Этот алгоритм можно сделать более приближёным к жизни: проверить стаж работы, семейное положение, трудовой стаж и так далее. Попробуйте изменить код под свои нужды: поставьте мощь компьютерной логики на службу себе.
Подписывайтесь на наш канал, чтобы научиться хорошо зарабатывать без кредитов!
Делитесь мнением: кредиты — зло или необходимость?