Программа вычисления многочлена Лагранжа

Пример программы на языке Паскаль: по заданному набору точек вычислить коэффициенты интерполяционного многочлена Лагранжа.
{ Полином Лагранжа }
CONST QuantityPoint=3; { Количество точек }
TYPE TabFunction=array[(X,Y),1..QuantityPoint] of real;
                                          { Тип - таблично-заданная функция }
VAR F:TabFunction;  { Функция }
    PointX:real;    { Аргумент }
PROCEDURE InputArray (var B:TabFunction); { Процедура ввода таблицы функции }
  Var i:word; { Счетчик }
  Begin
    for i:=1 to QuantityPoint do { Цикл ввода элементов таблицы функции }
      begin
        Write('Введите точку (X',i,',Y',i,') ');
                         { Вывод приглашения ввести элемент таблицы функции }
        ReadLn(B[X,i],B[Y,i])   { Ввод элемента таблицы функции }
      end
  End;
FUNCTION Lag(F:TabFunction;PointX:real;i:word):real;
           { Функция формирования сомножителя для интерполяционного полинома }
  Var k:word; { Счетчик }
      Product:real; { Буфурная переменная для набора произведения }
  Begin
    Product:=1; { Начальное определение сомножителя }
    for k:=1 to QuantityPoint do  { Цикл набора проиэведения }
      if k<>i then Product:=Product*(PointX-F[X,k])/(F[X,i]-F[X,k]);
        { исключение из произведения точки k=i }
    Lag:=Product  { Определение значения функции }
  End;
FUNCTION Interpolate(F:TabFunction;X:real):real;  { Интеполяция }
  Var i:word; { Счетчик }
      Sum:real; { Буфурная переменная для набора суммы }
  Begin
    Sum:=0;  { Сброс суммы }
    for i:=1 to QuantityPoint do Sum:=Sum+F[Y,i]*Lag(F,X,i);
                                            { Набор суммы (полином Лагранжа) }
    Interpolate:=Sum  { Определение функции }
  End;
BEGIN
  WriteLn;  { Пропуск строки }
  InputArray(F); { Ввод табличной функции }
  WriteLn;  { Пропуск строки }
  Write('Введите X '); { Вывод приглашения }
  ReadLn(PointX);           { Ввод X }
  WriteLn('F(',PointX:0:2,')=',Interpolate(F,PointX))
                                           { Вычисление и вывод результата }
END.

Бесплатные примеры программ
Примеры написанных программ
Помощь студентам по программированию