Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > .NET Frameworks (точка нет фреймворки) > C# (си шарп)
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 10.01.2014, 18:28   #1
SERGO123
 
Регистрация: 25.12.2013
Сообщений: 7
По умолчанию помогите перевести на C#

Код:
type
  TValue = record
    X, Y: Extended;
  end;
  TValues = Array of TValue;
  TRealArray = Array of Extended;
 
function ncGetLagrange(Points: TValues; X: Extended): Extended;
var
  i, j, n: Integer;
  l1, l2: TRealArray;
begin
  n := High(Points);
  SetLength(l1, n + 1);
  SetLength(l2, n + 1);
  for i := 0 to n do
    l1[i] := Points[i].Y;
  for j := 1 to n do
    begin
      for i := 0 to n - j do
        l2[i] := (l1[i] * (Points[i + j].X - X) - l1[i + 1] * (Points[i].X - X)) /
                 (Points[j + i].X - Points[i].X);
      SetLength(l2, High(l2));
      l1 := l2;
    end;
  Result := l1[0];
end;

Последний раз редактировалось Stilet; 10.01.2014 в 22:45.
SERGO123 вне форума Ответить с цитированием
Старый 10.01.2014, 19:03   #2
alexusankov
Пользователь
 
Регистрация: 04.01.2011
Сообщений: 66
По умолчанию

Ух ты, уж год, код на паскале не читал.
Через часок приеду, сброшу пример.
Тут же элементарные операции, в чем же трудность?
alexusankov вне форума Ответить с цитированием
Старый 12.01.2014, 18:39   #3
WorldMaster
Старожил
 
Аватар для WorldMaster
 
Регистрация: 25.08.2011
Сообщений: 2,841
По умолчанию

Код:
class TValue
    {
        public double X, Y;
    }

double ncGetLagrange(TValue[] Points, double X)
        {
            int i, j, n;
            double[] l1, l2;

            n = Points.Length;

            l1 = new double[n + 1];
            l2 = new double[n + 1];

            for (i = 0; i < n; i++) l1[i] = Points[i].Y;


            for (j = 1; j < n; j++)
            {
                for (i = 0; i < n - j; i++)
                    l2[i] = (l1[i] * (Points[i + j].X - X) - l1[i + 1] * (Points[i].X - X)) / (Points[j + i].X - Points[i].X);

                l2 = new double[l2.Length];
                l1 = l2;
            }
            return l1[0];
        }

Че то типа этого. На правильность алгоритма не проверял.
Skype - wmaster_s E-Mail - WorldMasters@gmail.com
Работаем по 3 критериям - быстро, качественно, недорого. Заказчик выбирает любые два.
WorldMaster вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
помогите перевести SERGO123 C# (си шарп) 3 07.01.2014 22:26
Помогите перевести на VBA never_mind Microsoft Office Excel 23 13.04.2010 07:58
Помогите перевести на C++ Пaвeл Общие вопросы C/C++ 2 12.11.2009 19:02
Помогите перевести с C++ на Delphi Gerzs Общие вопросы Delphi 3 16.10.2009 02:20
Помогите перевести на С Foxtrot_1 Помощь студентам 1 20.06.2009 21:42