Помощь - Поиск - Пользователи - Календарь
Полная версия: Суммирование рядов функций
Форум «Всё о Паскале» > Pascal, Object Pascal > Задачи
Валерия19
Ребят,помогите,прошу!
Вот постановка задачи:
Требуется разработать программу, позволяющую выполнять расчёт значений для некоторого набора функций в заданной точке с заданной погрешностью за счёт разложения этих функций в ряд Тейлора.
В дальнейшем под точностью понимается модуль разницы эталонного значения функции, полученного с помощью встроенной функции Pascal, и подсчитанной вами суммы. Под погрешностью понимается модуль разницы двух последних элементов ряда.

Программа должна работать в двух режимах:
Однократный расчет функции в заданной точке.
Серийный эксперимент.

При работе в режиме 1 пользователь должен иметь возможность:
выбрать функцию,
задать точку x, в которой необходимо вычислить значение,
задать точность вычисления (от 0.000001 и больше)
задать число элементов ряда для выполнения расчета (от 1 до 100).

Расчет значения выбранной функции выполняется либо до достижения заданной точности, либо до исчерпания введенного числа слагаемых. По результатам расчета программа должна вывести следующую информацию:
эталонное значение (полученное с использованием встроенных математических функций Pascal),
вычисленную оценку значения функции,
разницу между оценкой и эталонным значением,
количество слагаемых, которое было вычислено.

При работе в режиме 2 пользователь должен иметь возможность:
выбрать функцию,
задать точку x, в которой необходимо вычислить значение,
задать максимальное число элементов ряда для выполнения расчета (NMax - от 1 до 100).
По результатам расчета программа должна вывести следующую информацию:
эталонное значение (полученное с использованием встроенных математических функций Pascal),
таблицу из NMax строк со следующими столбцами: число слагаемых слагаемых, вычисленную оценку значения функции, разницу между оценкой и эталонным значением.
Технические требования:
В программе должны быть использованы процедуры и/или функции.
В программе должен быть использован процедурный тип данных.
В программе должны быть использованы модули.
Каждый студент должен реализовать расчет функций sin(x), cos(x), exp(x) и одной уникальной функции из списка ниже.
Валерия19
 
Program Lab2;
uses Crt,My_lib2;
var
SumSin:real;
SumCos:real;
SumLog:real;
SumExpon:real;
x,eps:real;
count,b,numberfunc,countmax,i:integer;


procedure Casefunc();
begin
case numberfunc of
1: begin
while (x<0) do
x:=x+2*pi;
while (x>=2*pi) do
x:=x-2*pi;
Sum1(a0sin,qsin,x,countmax,eps,sumsin,count);
write ('|',sin(x)10.gif6,' |');
write(sumsin:12:6,' |');
end;
2: begin
while (x<0) do
x:=x+2*pi;
while (x>=2*pi) do
x:=x-2*pi;
Sum1(a0cos,qcos,x,countmax,eps,sumcos,count);
write ('|',cos(x)10.gif6,' |');
write(sumcos:12:6,' |');
end;
3: begin
Sum1(a0expon,qExpon,x,countmax,eps,sumexpon,count);
write ('|',exp(x)10.gif6,' |');
write(sumexpon:12:6,' |');
end;
4: begin
Sum1(a0log,qlog,x,countmax,eps,sumlog,count);
write ('|',ln(x)10.gif6,' |');
write (sumlog:12:6,' |');
end;
end;
end;

procedure Casefunc2();
begin
case numberfunc of
1: begin
while (x<0) do
x:=x+2*pi;
while (x>=2*pi) do
x:=x-2*pi;
Sum1(a0sin,qsin,x,i,eps,sumsin,count);
write('|',sumsin:6:4,' |');
end;
2: begin
while (x<0) do
x:=x+2*pi;
while (x>=2*pi) do
x:=x-2*pi;
Sum1(a0cos,qcos,x,i,eps,sumcos,count);
write('|',sumcos:6:4,' |');
end;
3: begin
Sum1(a0expon,qExpon,x,i,eps,sumexpon,count);
write('|',sumexpon:6:4,' |');
end;
4: begin
Sum1(a0log,qlog,x,i,eps,sumlog,count);
write('|',sumlog:6:4,' |');
end;
end;
end;
begin

writeln ('Выберите режим');
writeln(' 1.Однократный расчет функции в заданной точке.');
writeln(' 2.Серийный эксперимент');
readln(b);
if b=1 then
begin
repeat
numberfunc:=Viborfunc();
writeln ('Введите x');
readln(x);
writeln('Введите точность');
readln(eps);
writeln('Введите максимальное число слагаемых');
readln(countmax);



вот что у меня есть
Это текстовая версия — только основной контент. Для просмотра полной версии этой страницы, пожалуйста, нажмите сюда.