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

Delphi Sources



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

 
 
Опции темы Поиск в этой теме Опции просмотра
  #2  
Старый 03.04.2015, 04:18
lmikle lmikle вне форума
Модератор
 
Регистрация: 17.04.2008
Сообщения: 8,087
Версия Delphi: 7, XE3, 10.2
Репутация: 49089
По умолчанию

Интересная задачка на 10 мин.
Как-то так:
Код:
uses Math;

function F(Z : Double; Idx : Integer) : Double;
begin
  Result := Sin(Sqr(Z)) - Z/(Idx+2);
end;

function FindMaxF(A : Array Of Double; ALow, AHigh : Integer) : Double;
begin
  If ALow = AHigh
    Then Result := F(A[ALow],ALow)
    Else Result := Max(FindMaxF(A,ALow,ALow + (AHigh-ALow) div 3),FindMaxF(A,(ALow + (AHigh-ALow) div 3) + 1,AHigh));
end;

// Проверка.
procedure TForm1.Button1Click(Sender: TObject);
var
  I : Integer;
  A : Array [1..9] Of Double;
begin
  Memo1.Clear;
  For I := Low(A) To High(A) Do A[i] := Random(100);

  ShowMessage(FloatToStr(FindMaxF(A,Low(A),High(A))));
end;
Ответить с цитированием
 


Delphi Sources

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

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

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

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


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


 

Сайт

Форум

FAQ

Соглашения

Прочее

 

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