скрыть

скрыть

  Форум  

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

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



Google  
 

Использование многомерных массивов в процедурах и функциях из модуля 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;





Copyright © 2004-2016 "Delphi Sources". Delphi World FAQ




Группа ВКонтакте   Ссылка на Twitter   Группа на Facebook