Помогите с прогой. Вклад составляет x рублей. Ежегодно он увеличивается на p процентов, после чего дробная часть копеек отбрасывается. Каждый год сумма вклада становится больше. Определите, через сколько лет вклад составит не м...

Помогите с прогой. Вклад составляет x рублей. Ежегодно он увеличивается на p процентов, после чего дробная часть копеек отбрасывается. Каждый год сумма вклада становится больше. Определите, через сколько лет вклад составит не менее y рублей. Входные данные Программа получает на вход три натуральных числа: x, p, y. Выходные данные Программа должна вывести одно целое число. Написал: program u1; var x,p,y,year:longint; s: real; begin readln (x); readln (p); readln (y); s:=x; year:=0; while s begin while s s:= s+(1+p/100); year:=year+1;end; writeln (year); end. Не выводит ответ. Помогите найти ошибку. Я новичок.
Гость
Ответ(ы) на вопрос:
Гость
Не особо знаю паскаль, так что дабы не накосячить с синтаксисом, покажу на примере. Тут всё просто - тебе лишь нужен цикл For и расчет процентов. FOR i = 1 TO 100 percents = FIX(x * p / 100) ' здесь у нас есть переменная percents, которой присваиваются округленные функцией fix проценты (насколько я знаю, в паскале аналогичная функция называется Round) x = x + percents 'тут всё понятно - переменной X присваивается она сама и годовые проценты по вкладу IF x >= y THEN 'проверяем, не равен или не превысил ли наш вклад ожидаемую сумму PRINT i 'в цикле For можно не заморачиваться с отслеживанием лет, переменная i сама подсчитает количество итераций-лет END 'завершаем программу END IF NEXT i ' конец цикла Можно ещё чисто для себя добавить в условие вывод переменной X, чтобы было нагляднее.  
Не нашли ответ?
Ответить на вопрос
Похожие вопросы