Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- {Начальные значения y1 и yn вводятся с клавиатуры.}
- {Последующие значения вычисляются как: yn2=0.25*sin(yn)+sin(y1)}
- var
- eps, y1, yn, yn2, a, b: real; {х — точка, для которой вычисляется предел, eps абсолютная величина, y1, yn, yn2 — значения функции, a, b — переменные для промежуточного сохранения и повторного использования начальной информации}
- begin
- Writeln ('Введите yo и y1 - начальные значения функции:'); {Просим пользователя ввести х, меньшее, чем 2, дробное число — так как для целых чисел и чисел, чей квадрат больше 2, данная функция имеет предел, равный бесконечности}
- readln (y1, yn); {Считываем х}
- Writeln('Введите значение абсолютной величины, число, принадлежащее промежутку (0; 0,1] '); {Просим пользователя ввести эпселан из данного промежутка}
- readln (eps); {Считываем эпселан}
- a:=y1; {Сохраняем начальные данные для последующего использования}
- b:=yn; {Для этого заносим полученные значения функций в дополнительные переменные}
- while abs(y1-yn)>eps do begin {Цикл: пока модуль разности последующего и предыдущего значений функции больше абсолютной величины}
- yn2:=0.25*sin(yn)+sin(y1); {вычисляем следующее значение функции, меняем предыдущие значения}
- y1:=yn;
- yn:=yn2;
- end;
- Writeln('Предел функции равен ', yn2:6:3); {Если происходит выход из цикла — предел достигнут. Сообщаем об этом пользователю.}
- Writeln;
- {==============================================}
- y1:=a; {Решаем задачу вторым способом. Для этого возвращаем начальные значения функций — вообще их можно вычислить заново, так как х остаётся неизменным, но и так тоже сделать можно, не велика разница.}
- yn:=b;
- if abs(y1-yn)>eps then begin {Используем ветвление на тот случай, если предел уже достигнут — условие «если предел ещё не достигнут, то»}
- repeat {Цикл с постусловием. Производим вычисления, аналогичные вычислениям в цикле с предусловием (см. выше)}
- yn2:=0.25*sin(yn)+sin(y1);
- y1:=yn;
- yn:=yn2;
- until abs(y1-yn)<eps; {Условие «Если предел достигнут»}
- Writeln ('Предел функции равен ', yn2:6:3); {Выводим полученное значение предела на экран}
- end else begin {Вторая часть оператора ветвления}
- writeln ('Предел функции равен ', yn:6:3);
- end;
- end.
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement