Спрогой. вклад составляет 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. не выводит ответ. найти ошибку. я новичок.

12345657934 12345657934    3   01.08.2019 09:10    21

Ответы
dianka2712 dianka2712  29.09.2020 07:21
Не особо знаю паскаль, так что дабы не накосячить с синтаксисом, покажу на примере. Тут всё просто - тебе лишь нужен цикл 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, чтобы было нагляднее.  
ПОКАЗАТЬ ОТВЕТЫ
Другие вопросы по теме Информатика