Форум по Delphi программированию

Delphi Sources



Вернуться   Форум по Delphi программированию > Все о Delphi > Синтаксис
Ник
Пароль
Регистрация <<         Правила форума         >> FAQ Пользователи Календарь Поиск Сообщения за сегодня Все разделы прочитаны

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 01.11.2011, 22:18
nikolai1324 nikolai1324 вне форума
Прохожий
 
Регистрация: 22.07.2011
Сообщения: 8
Репутация: 10
По умолчанию Как реализовать ЗАМЫКАНИЕ в DELPHI 7

Нужно реализовать, например, след. консткукцию:

Код:
type TFunc=function(t:real):real;

function derive(x:TFunc):TFunc;

 const h=0.001;

 function xd(t:real):real;
  begin
   result:=result;
   result:=(x(t+h)-x(t))/h;
  end;

begin
 result:=xd; {Ошибка: Local procedure/function 'xd' assigned to procedure variable}
end;

Важен результат именно типа TFunc.
Важна реализация именно в Delphi 7.
Помогите пожалуйста корректно задать функцию.

Последний раз редактировалось nikolai1324, 02.11.2011 в 00:25.
Ответить с цитированием
  #2  
Старый 01.11.2011, 23:52
Аватар для Konrad
Konrad Konrad вне форума
Эксперт
 
Регистрация: 19.03.2009
Сообщения: 1,261
Репутация: 45834
По умолчанию

Хоть сам понял что написал?)
Тебе рекурсию нужно сделать?
Ответить с цитированием
  #3  
Старый 02.11.2011, 00:20
nikolai1324 nikolai1324 вне форума
Прохожий
 
Регистрация: 22.07.2011
Сообщения: 8
Репутация: 10
По умолчанию

Цитата:
Сообщение от Konrad
Хоть сам понял что написал?)
Тебе рекурсию нужно сделать?

Не рекурсию, а функцию (от заданной функции) возвращающую функцию (а не её значение в конкретной точке) .
function derive(x:TFunc):TFunc;
Ответить с цитированием
  #4  
Старый 02.11.2011, 03:21
lmikle lmikle вне форума
Модератор
 
Регистрация: 17.04.2008
Сообщения: 8,029
Версия Delphi: 7, XE3, 10.2
Репутация: 49089
По умолчанию

А через классы не проще сделать?
Хотя и через процедурный тип можно сделать. Только нельзя делать указатель на локальную функцию. Функция должна быть глобальной.
Но я все-же рекомендую делать через классы.
Ответить с цитированием
  #5  
Старый 02.11.2011, 06:49
Pyro Pyro вне форума
Так проходящий
 
Регистрация: 18.07.2011
Сообщения: 805
Версия Delphi: 7Lite
Репутация: 6063
По умолчанию

чёто подобное через классы так делал:
PHP код:
type
  TProc 
= class
  public
    
procedure call(senderTObject); virtual; abstract;
  
end;

  
NewX = class(TProc)
  private
    
a,b,cinteger;
  public
    
constructor Create(_a,_b,_cinteger);
    
procedure call(senderTObject); override;
  
end
Ответить с цитированием
Ответ


Delphi Sources

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB-коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход


Часовой пояс GMT +3, время: 04:28.


 

Сайт

Форум

FAQ

RSS лента

Прочее

 

Copyright © Форум "Delphi Sources" by BrokenByte Software, 2004-2023

ВКонтакте   Facebook   Twitter