Только начал учить PHP и только недоавно дошел до циклов. Я вроде все понимал и все работало, пока в моем учебник ене дали задачку написать. Некто кладет в банк 10000р под 10% в год. Через сколько лет он станет милионером и доживет ли он. Я написал код, вроде все по правилам, но цикличность происходит лишь в действии, а в теле цикла не происходит. Т.е пишет что год увеличился на один, но вклад не увеличивается. Код (PHP): <?php error_reporting (-1); $sum1 = 10000; /* начальная сумма /* $perc = 1.1; /* банк начисляет 10% /* for ($year =16; $year <=80; $year++) { /* человеку 16 лет. Средний возраст 80 лет. /* $sum2 = $sum1 * $perc; /* количество денег приходящих каждый год /* echo " In {$year} have {$sum2} \n"; if ($sum2 >= 1000000) { /* если стал милионером то вывести возраст и остановить работу программы /* echo "You are a millionare at {$year}"; break; } } Нокогда я пытаюсь запустить, мне пишет что "в n году 11000". Что не так? Заранее спасибо!
чувак, за тебя в первый раз модератор уже поправил сообщение. ты люто игнорируешь правила сообщества. готовься к соответствующему отношению в свой адрес.
В алгоритме ошибка. Во-первых, банк начисляет сложные проценты, т.е. исходная сумма увеличивается, и на неё начисляется тот же процент. Во-вторых, у вас же sum2 всегда будет одним и тем же, вы же не увеличиваете её ни на какой процент. Написать вам самому этот алгоритм правильно - пара пустяков, но, попробуйте, всё же, исходя их подсказок, сделать самостоятельно.
у тебя sum1 не изменяется. и в 17 и в 37 и в 77 у чувака на счете будет одна и та же сумма. короче тебе с такими потугами идти изучать основы программирования. ну и букварик почитать чтоб правила осиливать.
Вы немножко просто невнимательны. 1. Почитайте про комментарии в php. Есть однострочные, что в данном случае использовать было бы логичнее. Вы здесь используете многострочные, и то неправильно. Вы пишете: /* комментарий /* А надо: /* комментарий */ 2. Чтобы понять вашу ошибку, вам надо было всего лишь написать каждую строчку не кодом, а перевести на русский язык. Что и как происходит в каждой строчке. Сами бы нашли ошибку. Попробуйте, перед тем, как читать пункт 3, там будет ответ. 3. У вас $sum1 объявлена вне цикла, а $year в цикле. У $year у вас инкремент на каждую итерацию цикла, следовательно начение этой переменной увеличивается с каждой итерацией. А вот $sum1 вы в цикле вызываете постоянно извне, а в цикле ей новое значение не присваиваете. Следовательно, у вас $sum1 всегда имеет то значение, с которым вы её объявили.
Спасибо вам!) Прочитал что вы написали, еще подумал немного и допер!) Вот что получилось у меня: Код (PHP): <?php error_reporting (-1); $sum1 = 10000; $perc = 10; for ($year =16; $year <=80; $year++) { $sum1 = $sum1 + (( $sum1 * 10) / 100); echo " In {$year} have $ {$sum1} \n"; if ($sum1 >= 1000000) { echo "You are a millionare at {$year}"; break; } elseif ( $year == 80) { echo "You died without $1000000"; break; } }
sum*=1.1 Добавлено спустя 1 минуту 15 секунд: зачем ты объявляешь эту переменную если потом используешь хардкодед константу 10 ?