Недавно добавленные исходники

•  DeLiKaTeS Tetris (Тетрис)  4 625

•  TDictionary Custom Sort  6 627

•  Fast Watermark Sources  6 405

•  3D Designer  9 351

•  Sik Screen Capture  6 738

•  Patch Maker  7 124

•  Айболит (remote control)  7 131

•  ListBox Drag & Drop  5 989

•  Доска для игры Реверси  97 568

•  Графические эффекты  7 323

•  Рисование по маске  6 611

•  Перетаскивание изображений  5 483

•  Canvas Drawing  5 859

•  Рисование Луны  5 581

•  Поворот изображения  5 092

•  Рисование стержней  3 658

•  Paint on Shape  2 891

•  Генератор кроссвордов  3 789

•  Головоломка Paletto  3 042

•  Теорема Монжа об окружностях  3 855

•  Пазл Numbrix  2 536

•  Заборы и коммивояжеры  3 248

•  Игра HIP  2 215

•  Игра Go (Го)  2 148

•  Симулятор лифта  2 527

•  Программа укладки плитки  2 168

•  Генератор лабиринта  2 664

•  Проверка числового ввода  2 319

•  HEX View  2 652

•  Физический маятник  2 283

 
скрыть

  Форум  

Delphi FAQ - Часто задаваемые вопросы

| Базы данных | Графика и Игры | Интернет и Сети | Компоненты и Классы | Мультимедиа |
| ОС и Железо | Программа и Интерфейс | Рабочий стол | Синтаксис | Технологии | Файловая система |



Использование многомерных массивов в процедурах и функциях из модуля Math



{ **** UBPFD *********** by delphibase.endimus.com ****
>> Использование многомерных массивов в процедурах и функциях из Math.pas

Многим процедурам и функциям из Math.pas в качестве одного из
параметров требуется одномерный открытый массив, например:
function Mean(const Data: array of Double): Extended;
function Sum(const Data: array of Double): Extended;
function MinValue(const Data: array of Double): Double;
function MaxValue(const Data: array of Double): Double;

Эти процедуры и функции можно применить также для работы с
многомерными массивами или подмассивами одномерного массива,
приводя их тип и заменяя описание открытого массива на пару
"Data: pointer; Bound: integer", где первый параметр -
указатель на первый обрабатываемый элемент массива,
второй - количество обрабатываемых элементов минус 1.

Например, для доступа к функции MaxIntValue можно использовать тип:
TMaxIntValue = function(Data: pointer; Bound: integer): integer;

Зависимости: Math
Автор:       Александр Шарахов, alsha@mailru.com, Москва
Copyright:   Александр Шарахов
Дата:        18 января 2003 г.
***************************************************** }

type // Тип для доступа к MaxIntValue
  TMaxIntValue = function(Data: pointer; Bound: integer): integer;

Пример использования:

type // Тип для доступа к MaxIntValue
  TMaxIntValue = function(Data: pointer; Bound: integer): integer;
var
  a: array[1..2, 1..2, 1..2] of integer;
  b: integer;
begin
  // Эквивалент для b:=MaxIntValue(a); если бы так можно было писать
  b := TMaxIntValue(@MaxIntValue)(@a, SizeOf(a) div SizeOf(integer) - 1);
end;