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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 18.06.2014, 16:11   #1
anakinskyoker
Пользователь
 
Регистрация: 18.06.2014
Сообщений: 15
По умолчанию Тип Function как параметр другой функции

Здравствуйте. Мне требуется созданную на Delphi процедуру для нахождения корней полиномов переписать на язык VB. Почему именно на VB? Так нужно, ибо дальше работать именно с ним т.к пишем аддон на API к системе Autodesk Inventor, а объектная модель ее на VB.

Вот кусок кода, что нужно переписать на VB:
Код:
unit zerofun;
interface
uses math;
 type
        funtype=function(x:double):double;
   
   procedure ppmetod(a,b,eps,h:double; fun:funtype; var n:integer; var x);
 implementation

procedure ppmetod(a,b,eps,h:double; fun:funtype; var n:integer; var x);
  
     var f:double; w:integer;
         xi,c,r:extended;
     xx:arraytype absolute x;
     begin
      c:=h; n:=0; xi:=a; f:=fun(xi);
      if f>0 then w:=1 else w:=-1;
      repeat
       xi:=xi+c; r:=xi-c; if r>=b then exit;
       f:=fun(xi);
       if (f*w/c<0) or (r=xi) then
        begin
         c:=-c/4;
         if (abs(c)<eps/4) or (r=xi) then
          begin
           n:=n+1;
           xx[n]:=xi;
           c:=h; w:=-w;
          end;
        end;
        until false;
   end;

Вот что написал я:
Код:
 Public Sub ppmetod(ByVal a As Double, ByVal b As Double, ByVal eps As Double, ByVal h As Double, ByVal fun As, ByVal n As Integer, ByVal x As Array)
        Dim f As Double
        Dim w As Integer
        Dim xi, c, r As Double
        Dim xx() As Double
        c = h
        n = 0
        xi = a
        f = fun(xi)
        If f > 0 Then w = 1 Else w = -1

        Do
            xi = xi + c
            r = xi - c
            If r >= b Then Exit Do
            f = fun(xi)
            If (f * w / c < 0) Or (r = xi) Then
                c = -c / 4
            End If
            If (Abs(c) < eps / 4) Or (r = xi) Then

                n = n + 1
                xx(n) = xi
                c = h
                w = -w
            End If
        Loop
    End Sub
У меня возникает вопрос как написать аналог
Код:
 type
        funtype=function(x:double):double;
на бейсике, чтобы можно было использовать функцию как параметр другой функции.
Спасибо.

Последний раз редактировалось anakinskyoker; 18.06.2014 в 16:15.
anakinskyoker вне форума Ответить с цитированием
Старый 19.06.2014, 21:22   #2
phomm
personality
Старожил
 
Аватар для phomm
 
Регистрация: 28.04.2009
Сообщений: 2,882
По умолчанию

VB или VB.Net ? Этот раздел именно по вбнету, насчет просто вб - не знаю, надо Вам погуглить по словам "указатели/ссылки на процедуры/функции vb".
Вот по вбнету на msdn статья по Вашей теме http://msdn.microsoft.com/ru-ru/library/ms172879.aspx
phomm вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как по другому задать параметр функции Tolikv Microsoft Office Excel 13 16.04.2014 05:52
Массив связных списков как параметр функции. Freewill Общие вопросы C/C++ 1 04.03.2012 23:28
массив как параметр функции makc101 Помощь студентам 2 19.04.2011 22:47
Массив как параметр функции MovsesIV Общие вопросы C/C++ 2 02.12.2010 03:07
C++ - массив как параметр функции kefir Помощь студентам 8 12.04.2010 17:48