Правильно ли реализовано вычисление функции? - Turbo Pascal
Формулировка задачи:
Помогите, пожалуйста
Само задание во вложениях указано ниже.
Составить программу для вычисления функции
До выполнения условия
где
ε = 0.001; 0.01; 0.0001
x = 2.3; 3.01; 4.56
Решение задачи: «Правильно ли реализовано вычисление функции?»
textual
Листинг программы
function ff(x,e:real):real; var n:integer; s,t:real; begin n:=1; t:=1; s:=0; while abs(t*sin((n+1)*x)/(2*n-1))>e do begin s:=s+t*sin((n+1)*x)/(2*n-1); n:=n+1; t:=-t; end; ff:=s; end; begin writeln('----------------------------------'); writeln('| x | e=0.01 |e=0.001 |e=0.0001|'); writeln('----------------------------------'); writeln('|2.30 |',ff(2.3,0.01):8:4,'|',ff(2.3,0.001):8:4,'|',ff(2.3,0.0001):8:4,'|'); writeln('|3.01 |',ff(3.01,0.01):8:4,'|',ff(3.01,0.001):8:4,'|',ff(3.01,0.0001):8:4,'|'); writeln('|4.56 |',ff(4.56,0.01):8:4,'|',ff(4.56,0.001):8:4,'|',ff(4.56,0.0001):8:4,'|'); writeln('----------------------------------'); readln end.
Объяснение кода листинга программы
- В функции ff объявлены три переменные: x, e и n. Переменная n является целочисленной, а переменные s и t являются вещественными.
- В цикле while выполняется следующее:
- переменная s инициализируется как сумма предыдущего значения переменной t и текущего значения функции sin, делённого на (2*n-1).
- переменная n увеличивается на 1.
- переменная t инвертируется.
- После выхода из цикла, значение переменной s присваивается переменной ff.
- В основной программе выводится таблица с различными значениями x и e. Значения вычисляются с помощью функции ff.
- Выводится заголовок таблицы.
- Выводятся значения функции ff для различных значений x и e.
- Программа завершается с помощью команды readln.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д