Определить k, при котором y становится больше a
На Паскале очень часто рассчитывают значения по формулам. Также решаются задачи по нахождению приближённого значения, с использованием некоторого параметра, который задаёт границу поиска. Если заранее неизвестно, сколько будет выполняться цикл, то это называется итерацией. Наша предлагаемая задача решается именно методом итерации.

Условие задачи
Дана формула y=xk/k при k=1,2,…. Определить k, при котором y становится больше a.
Пояснение к программе
Сперва мы должны ввести в программу значения двух параметров. Значение а будет задавать границу поиска.
Мы не знаем, когда закончится цикл, поэтому цикл с параметром здесь нельзя использовать. Будем применять цикл с предусловием while.
Ещё одним хитрым заданием в этой программе является нахождение числа возводимого в степень k. Встроенная функция в Паскале почему-то отсутствует (а может и специально).
Поэтому всем программистам, пишущим на Паскале, приходится идти на следующее ухищрение:
exp(k*LN(x))
, данная запись эквивалентна математическому возведению числа в степень xk.
Как вы понимаете, тип для этих данных нужно изначально задавать вещественный, потому что вычисления приближённые, так как используется натуральный логарифм.
Суть кода следующая:
Сперва мы вводим данные: x,y,k
Затем запускам цикл while и проверяем больше ли переменная a, чем y.
Если это так, то увеличиваем переменную k на единицу. Изначально, k=0.
Затем производим вычисление по формуле exp(k*LN(x))/k
После этого, вновь возвращаемся к проверке.
Код программы
Program iter1;
Var
a,x,y:real;
k:integer;
begin
write(введите x=);
readln(x);
write(введите y=);
readln(a);
k:=0;
while y<a do
begin
k:=k+1;
y:=exp(k*LN(x))/k;
end;
write(k=, k);
end.
Перевод числа из десятичной системы в двоичную