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

0 голосов
61 просмотров

Помогите с прогой.

Вклад составляет 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.

Не выводит ответ. Помогите найти ошибку. Я новичок.


Информатика (205 баллов) | 61 просмотров
Дан 1 ответ
0 голосов

Не особо знаю паскаль, так что дабы не накосячить с синтаксисом, покажу на примере. Тут всё просто - тебе лишь нужен цикл 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, чтобы было нагляднее.  

(1.4k баллов)