Найти первое х деленное на у - Turbo Pascal
Формулировка задачи:
Всем привет, не могу вот решить задачу, помогите пожалуйста.
Вот задача:
Даны положительные действительные числа a,b,e. Последовательности х1,х2,...., у1,у2,...., образованы по закону: Хn=a+bcos(0.5n),
Уn=0.5an-ba1n(0.5n). Найти первое Хn/Уn, такое что |Уn|>е и n<100.
Понял что нужно использовать цикл,а вот как его применить не знаю.
Решение задачи: «Найти первое х деленное на у»
textual
Листинг программы
var a,b,e,x,y:real; n:integer; begin writeln('Введите 3 положительных действительных числа'); readln(a,b,e); n:=1; y:=0; while(abs(y)<=e)and(n<100) do begin x:=a+b*cos(0.5*n); y:=0.5*a*n-b*a*ln(0.5*n); n:=n+1; end; if n>=100 then write('Меньше чем за 100 итераций результат не достижим') else writeln('|y|=',abs(y):0:2,' xn/yn=',x/y:0:2,' n=',n); end.
Объяснение кода листинга программы
- В начале кода объявляются переменные: a, b, e, x, y и n, которые представляют собой действительные числа и переменную для счета итераций.
- Затем идет команда readln(a, b, e), которая считывает три положительных действительных числа от пользователя.
- Переменная n инициализируется значением 1.
- Затем запускается цикл while, который выполняется до тех пор, пока значение y не превысит e или n меньше 100.
- Внутри цикла вычисляются значения x и y по формулам a + b cos(0.5 n) и 0.5 a n - b a ln(0.5 * n) соответственно.
- После каждой итерации значение n увеличивается на 1.
- Если n превышает 100, то выводится сообщение о том, что результат не достижим за 100 итераций.
- В противном случае выводятся значения abs(y), x/y и n.
- Конец программы.