Не особо знаю паскаль, так что дабы не накосячить с синтаксисом, покажу на примере. Тут всё просто - тебе лишь нужен цикл 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, чтобы было нагляднее.
Var x,y,z,Ans:integer; u:real; Begin Write('Введите числа x,y,z: '); Readln(x,y,z); Writeln('Что вычислить из числа ',x,' ?'); Writeln('1 - sin; 2 - cos; 3 - tg;'); Readln(Ans); case Ans of 1: begin u:=sin(x); Writeln('sin(',x,') = ',u) end; 2: begin u:=cos(x); Writeln('cos(',x,') = ',u) end; 3: begin u:=tan(x); Writeln('tg(',x,') = ',u) end; else Writeln('Ошибка!') end; Writeln('Найти максимальное число из ряда ',u,', ',y,', ',z); Writeln('Без модуля - 1; по модулю - 2'); Readln(Ans); case Ans of 1: begin if (u>y) and (u>z) then Writeln('Максимальное число - ',u) else if (y>u) and (y>z) then Writeln('Максимальное число - ',y) else if (z>u) and (z>y) then Writeln('Максимальное число - ',z) else Writeln('Все числа равны.') end; 2: begin if (abs(u)>abs(y)) and (abs(u)>abs(z)) then Writeln('Максимальное число - ',u) else if (abs(y)>abs(u)) and (abs(y)>abs(z)) then Writeln('Максимальное число - ',y) else if (abs(z)>abs(u)) and (abs(z)>abs(y)) then Writeln('Максимальное число - ',z) else Writeln('Все числа равны.') end end End.
Вот надеюсь поймёшь рад