Разработать алгоритм и составить программу вычисления таблицы значений функции - Pascal
Формулировка задачи:
Разработать алгоритм и составить программу вычисления таблицы значений функции, заданной в виде разложения в ряд. Значение функции вычислять с точностью ε>0, т.е., вычисление суммы членов ряда необходимо прекратить, когда абсолютная величина очередного члена ряда разложения окажется меньше ε: |ak|<ε.
При вычислении очередного члена ряда целесообразно воспользоваться рекуррентным выражением:
ak+1=ckak; k = 0, 1, 2, ...,
где
ak
- некоторый k-ый член ряда;ak+1
- следующийk+1
-ый член ряда;ck
- коэффициент, определяемый номеромk
. При создании программы необходимо по возможности воспользоваться операторами организации цикловWHILE, REPEAT, FOR.
Границы интервала вычисления функцииa
иb
, величина шага изменения аргументаh
и точность вычисления функцииε
задаются при вводе. На печать выводится номер по порядку, значение аргумента, соответствующее еьу, значение функции и номер члена ряда, на котором закончилось вычисление значения функции, в форме таблицы:№ | x | f(x) | №чл.р. |
1 | |||
2 | |||
3 | |||
... |
Решение задачи: «Разработать алгоритм и составить программу вычисления таблицы значений функции»
textual
Листинг программы
- uses crt;
- //процедура вычисления суммы ряда(s) и числа итераций(i)
- procedure F(x,e:real;var s:real;var i:longint);
- var t,x1:real;
- begin
- t:=1;//начальные значения при i=1
- s:=t;
- x1:=x/2;
- i:=0;
- while abs(t)>e do//пока модуль очередного члена ряда больше точности
- begin
- i:=i+1;//наращиваем счетчик
- t:=-t*x1*x1/sqr(i);//менякм знак, домножаем на x1^2 и делим на квадрат индекса
- s:=s+t;//и суммируем
- end;
- end;
- var a,b,h,e,s:real;
- i,n:integer;
- begin
- write('Введите начало интервала a=');
- readln(a);
- repeat
- write('Введите конец интервала b>',a:0:1,' b=');
- readln(b);
- until b>a;
- repeat
- write('Введите точность в интервале (0,1) e=');
- readln(e);
- until(e>0)and(e<1);
- repeat
- write('Введите шаг табуляции, положительное число меньше ',b-a:0:2,' h=');
- readln(h);
- until (h<b-a)and(h>0);
- clrscr;
- writeln('Таблица табулирования функции, представленной разложением в ряд');
- writeln('на интервале ',a:0:2,' ',b:0:2,' с шагом ',h:0:2,' с точностью ',e:0:6);
- writeln('----------------------------');
- writeln('| №пп | x | f(x) | n |');
- writeln('----------------------------');
- i:=0;
- while a<b+e do
- begin
- i:=i+1;
- F(a,e,s,n);
- writeln('|',i:4,' |',a:5:2,'|',s:8:4,'|',n:4,' |');
- a:=a+h;
- end;
- writeln('----------------------------');
- end.
Объяснение кода листинга программы
- Начало переменной a:
Введите начало интервала a=
- Начало переменной b:
Введите конец интервала b>
- Начало переменной e:
Введите точность в интервале (0,1) e=
- Начало переменной h:
Введите шаг табуляции, положительное число меньше, h=
- Начало переменной s: Объявление переменной s в процедуре F.
- Начало переменной i: Объявление переменной i в процедуре F.
- Производится ввод значений переменных a, b, e, и h с клавиатуры.
- Производится очистка экрана.
- Выводится заголовок таблицы табулирования функции.
- Начало цикла табулирования функции и вывод результатов: счетчик увеличивается на 1, выполняется процедура F для значения a, выводятся значения x, f(x), и n.
- Завершение цикла табулирования функции.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д