Представить коэффициенты многочлена в виде простого однонаправленных списка - PascalABC.NET
Формулировка задачи:
Представить коэффициенты многочлена в виде простого однонаправленных списка и написать процедуру для вычисления значения многочлена в точке х.
Решение задачи: «Представить коэффициенты многочлена в виде простого однонаправленных списка»
textual
Листинг программы
type
tList = class
a : Real;
n : tList;
constructor Create(index : Integer; next : tList);
begin
Write('a' + index.toString + ' =');
a := ReadlnReal();
n := next;
end;
function Find(x : Real) : Real;
var t : tList;
begin
Result := 0;
t := Self;
while t <> nil do
begin
Result := Result*x + t.a;
t := t.n;
end;
end;
end;
var
a : tList;
begin
Write('n =');
var n := ReadInteger();
a := nil;
for var i := 0 to n do
a := tList.Create(i, a);
Write('x =');
var x := ReadReal();
WriteLn('F(', x, ') = ', a.Find(x));
end.
Объяснение кода листинга программы
В этом коде создается простой однонаправленный список для представления коэффициентов многочлена.
- Объявляется тип
tList, который представляет элемент списка, содержащий полеaдля хранения коэффициента и полеnдля хранения ссылки на следующий элемент списка. - Создается конструктор
Createдля инициализации нового элемента списка. Он принимает индекс элемента и ссылку на следующий элемент списка. Код выводит сообщение с индексом элемента, запрашивает значение коэффициента и сохраняет его в полеaнового элемента списка. Затем он сохраняет ссылку на следующий элемент списка в полеnнового элемента списка. - Объявляется функция
Find, которая находит значение многочлена для заданного значенияx. Она начинает с нулевого элемента списка и последовательно умножает значениеxна текущий коэффициент и добавляет его к результату. Функция продолжает работу до тех пор, пока не достигнет конца списка. - В основной части кода запрашивается количество элементов списка, затем запрашивается значение
x. Создается пустой списокa. Затем в цикле создаетсяnэлементов списка, каждый с помощью конструктораCreate. Наконец, выводится сообщение, которое использует функциюFindдля вычисления значения многочлена при заданном значенииx.