Вычислить и вывести в виде таблицы значения функции - PascalABC.NET
Формулировка задачи:
Вычислить и вывести в виде таблицы значения функции, заданной с помощью ряда Тейлора, на интервале от х(нач) до х(кон) с шагом дельта х с точностью Е(епсила). Каждая строка таблицы должна содержать значение аргумента, значение функции и количество просуммированных членов ряда.
Решение задачи: «Вычислить и вывести в виде таблицы значения функции»
textual
Листинг программы
function FindMe(x, eps : Real) : String;
begin
var r := 1.0;
var s := r;
var d := 0;
repeat
r *= (x-1) / x;
d += 1;
s += r / d;
until abs(r / d) < eps;
Result := String.Format(' {0,5:0.##} | {1,10:0.00000000} | {2}', x, s, d);
end;
begin
var Xнач := ReadLnReal(' X нач. =');
var Xкон := ReadLnReal(' X кон. =');
var dX := ReadLnReal(' dX =');
var eps := ReadLnReal('точность e =');
WriteLn(' x | ln(x) | кол-во');
WriteLn('-------+------------+-------');
var x := Xнач;
repeat
WriteLn( FindMe(x, eps) );
x += dX;
until x > Xкон;
end.
Объяснение кода листинга программы
- Создаётся функция FindMe, которая принимает два аргумента типа Real — x и eps.
- Внутри функции объявляются три переменные: r, s и d.
- Переменная r инициализируется значением 1.0.
- Переменная s инициализируется значением r.
- Переменная d инициализируется значением 0.
- Запускается цикл repeat, который выполняется до тех пор, пока значение r/d не станет меньше заданной точности eps.
- Внутри цикла значение переменной r обновляется, и к переменной s добавляется значение r/d.
- Значение переменной d увеличивается на 1.
- В конце цикла формируется результат работы функции — строка, которая выводится на экран.
- Значения переменных x, s и d подставляются в строку с помощью функции String.Format.
- Функция FindMe вызывается в цикле, который выполняется до тех пор, пока значение x не станет больше Xкон.
- Значения переменных Xнач, Xкон, dX и eps считываются с помощью функции ReadLnReal.
- Выводится таблица с значениями x, ln(x) и количеством итераций.
- Запускается программа.