Задача о трех банках php, задача для начинающих
Поскольку задача не имеет название, а задачу по php надо как-то называть, то я назвал эту задачу, как «Задача о трёх банках.Кредит предлагают 3 банка, и все на разных условиях:
Общая сумма кредита 40.000 рублей
кредит за 4% и (мелким шрифтом) 500 р комиссии в месяц от HomoCredit
кредит за 3% и 1000 р комиссии в месяц от того же банка (Softbank)
предложение от StrawberryBank за 2% в месяц, без комиссии, но с платой в размере 7777 р за открытие счета (эту сумма прибавляется к сумме долга)
Какой из этих кредитов самый дорогой, какой из этих кредитов самый дешёвый?
Сколько заплатил человек всего.
Данную информацию вывести на экран.
Решение задачи по Php погасить кредит.
Данную задачку, я решал в самом начале пути - изучения php, но когда мы переходили на новый дизайн, то мы пересматривали все страницы, анализируя содержание и тут мы пришли в некоторое замешательство, потому, что понять, как решается данная задачка я не смог! Поэтому, мы её решим заново и с новыми знаниями!
что вы всегда должны делать – это внятно и понятно писать названия переменных. И если вы только начинаете изучать php, то делайте подсказки по коду.
Потому, что потом, пройдет неделя, и уверяю вас – вы забудете напрочь о чем это тут вы писали!
это создание алгоритма, либо на бумаге, либо в компьютере.
И давайте создадим алгоритм.
Когда я её решал в первый раз, то потратил довольно много времени, а сейчас заново решил и написал страницу примерно за 1 час… Задача довольно простая, и мы не будем создавать огромные конструкции и вам не советую, делайте как можно проще! И если честно, то особого алгоритма здесь я не наблюдаю…
Создадим 3 цикла, в которых рассчитаем по очереди наши проценты для каждого банка…
Введем переменную - $summa она равна сумме кредита. Эта переменная у нас должна остаться без изменений к концу работы скрипта.
Далее нам нужно создать еще несколько переменных, которые будут также равны верхней переменной, но уже с ними мы будем работать в цикле.
Для работы в цикле нам нужно две переменные для первого банка такие:
Для первого банка $summa_bank_1_res = $summa = 40000.
Где $summa_bank_1_res – это та же сумма кредита, только будем её использовать в цикле, как изменяемую, также поступим со вторым банком, но с третьим эта конструкция немного изменится, потому, что начальная сумма уменьшится на сумме первого платежа 7777 руб.
Наши начальные переменные:
$summa_bank_2_res = $summa_bank_1_res = $summa = 40000;
$summa_bank_3_res = $summa - 7777;
И давайте напишем первый цикл , переменная $month – месяцы, начинаются с нуля, возьмем количество месяцев 100, чтобы точно не ошибиться.
Напишем - если $summa_bank_1_res меньше нуля, то останавливаем цикл break
Из основного условия сумма после первого месяца платежа должна уменьшится на 4% + 500 рублей ежемесячного платежа.
И для удобства добавим счетчик
Наш код для первого банка:
for ($month=0; $month < 100; $month++) {
if ($summa_bank_1_res < 0 )
{
echo "<br>УРА месяцев прошло $month : $summa_bank_1_res".' - это bank 1<br>' ; break;
}
else
{
$summa_bank_1_res = $summa_bank_1_res - (($summa * 0.04) + 500);
$n_bank_1 = $n_bank_1 + 1;
echo $n_bank_1.' '.$summa_bank_1_res.'<br>' ;
}
}
Смотрим результат работы скрипта…
2 35800
3 33700
4 31600
5 29500
6 27400
7 25300
8 23200
9 21100
10 19000
11 16900
12 14800
13 12700
14 10600
15 8500
16 6400
17 4300
18 2200
19 100
20 -2000
УРА месяцев прошло 20 : -2000 - это bank 1
далее для второго и третьего банка...
for ($month=0; $month < 100; $month++) {
if ($summa_bank_2_res < 0 )
{
echo "<br>УРА месяцев прошло $month : $summa_bank_2_res".' - это bank 2<br>' ; break;
}
else
{
$summa_bank_2_res = $summa_bank_2_res - (($summa * 0.03) + 1000);
$n_bank_2 = $n_bank_2 + 1;
echo $n_bank_2.' '.$summa_bank_2_res.'<br>' ;
}
}
for ($month=0; $month < 100; $month++) {
if ($summa_bank_3_res < 0 )
{
echo "<br>УРА месяцев прошло $month : $summa_bank_3_res".' - это bank 3 <br>' ; break;
}
else
{
$summa_bank_3_res = $summa_bank_3_res -($summa *0.03);
$n_bank_3 = $n_bank_3 + 1;
echo $n_bank_3.' '.$summa_bank_3_res.'<br>' ;
}
}
Результат:
2 35600
3 33400
4 31200
5 29000
6 26800
7 24600
8 22400
9 20200
10 18000
11 15800
12 13600
13 11400
14 9200
15 7000
16 4800
17 2600
18 400
19 -1800
УРА месяцев прошло 19 : -1800 - это bank 2
1 31023
2 29823
3 28623
4 27423
5 26223
6 25023
7 23823
8 22623
9 21423
10 20223
11 19023
12 17823
13 16623
14 15423
15 14223
16 13023
17 11823
18 10623
19 9423
20 8223
21 7023
22 5823
23 4623
24 3423
25 2223
26 1023
27 -177
УРА месяцев прошло 27 : -177 - это bank 3
Кто сколько заплатил
$N1 = $summa -$summa_bank_1_res;
$N2 = $summa -$summa_bank_2_res;
$N3 = $summa -$summa_bank_3_res;
echo 'Месяцев'. $n_bank_1.' Переплата '.$summa_bank_1_res.' ЗАПЛАТИЛ '.$N1.'<br>' ;
echo 'Месяцев'. $n_bank_2.' Переплата '.$summa_bank_2_res.' ЗАПЛАТИЛ '.$N2.'<br>' ;
echo 'Месяцев'. $n_bank_3.' Переплата '.$summa_bank_3_res.' ЗАПЛАТИЛ '.$N3.'<br>' ;
Результат:
Месяцев 19 Переплата -1800 ЗАПЛАТИЛ банку №2 41800
Месяцев 27 Переплата -177 ЗАПЛАТИЛ банку №3 40177
Ну и последнее какой кредит самый дешевый и какой самый дорогой...
if (($summa_bank_1_res > $summa_bank_2_res) && ($summa_bank_1_res > $summa_bank_3_res)){
echo 'Кредит банка №1 - Самый дешевый';
}
if (($summa_bank_2_res > $summa_bank_1_res) && ($summa_bank_2_res > $summa_bank_3_res)){
echo 'Кредит банка №2 - Самый дешевый';
}
if (($summa_bank_3_res > $summa_bank_1_res) && ($summa_bank_3_res > $summa_bank_2_res)){
echo 'Кредит банка №3 - Самый дешевый';
}
//ЕСЛИ ЦИФРА МЕНЬШЕ, ТО ЭТО САМЫЙ ДЕШЕВЫЙ
if (($summa_bank_1_res < $summa_bank_2_res) && ($summa_bank_1_res < $summa_bank_3_res)){
echo 'Кредит банка №1 - Самый дорогой';
}
if (($summa_bank_2_res < $summa_bank_1_res) && ($summa_bank_2_res < $summa_bank_3_res)){
echo 'Кредит банка №2 - Самый дорогой';
}
if (($summa_bank_3_res < $summa_bank_1_res) && ($summa_bank_3_res < $summa_bank_2_res)){
echo 'Кредит банка №3 - Самый дорогой';
}
Результат:
Кредит банка №1 - Самый дорогой
Свои комменты в ожидании переделки!
Когда сделаю не знаю!
Времени нет...
Иначе сообщение будет удалено, вас в бан - все просто!
Но если, сил нет как хочется высказать всё, что вы думаете об этом, пожалуйста - комменты от Vk - форма ниже: