Использование многомерных массивов в процедурах и функциях из модуля MathDelphi , Синтаксис , МатематикаИспользование многомерных массивов в процедурах и функциях из модуля 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; Программа на Delphi, демонстрирующая использование многомерных массивов с помощью процедур и функций из единицы Math. Автором кода является Александр Шараhev, и он был опубликован на сайте delphibase.endimus.com. Цель примера - продемонстрировать, как доступ к многомерным массивам использовать процедуры и функции, ожидаемые одномерными открытыми массивами в параметрах. Например, процедура Mean ожидает одномерный массив Double-значений. Однако мы можем использовать эти процедуры с многомерными массивами, конвертируя их в одномерные массивы или используя указатели для доступа к конкретным элементам. Код определяет тип TMaxIntValue, представляющий функцию, принимающую два параметра: Data (указатель) и Bound (целое число). Этот тип используется для вызова функции MaxIntValue из единицы Math, которая возвращает максимальное значение в массиве. Пример использует этот тип для вызова функции MaxIntValue с многомерным массивом как входными данными. Разбивка кода:
Код демонстрирует пример использования многомерных массивов с помощью процедур и функций из единицы Math. Он продемонстрировал, как конвертировать многомерные массивы в одномерные или использовать указатели для доступа к конкретным элементам. В статье описывается использование многомерных массивов в процедурах и функциях модуля Math из Delphi, а также приведены примеры использования типа TMaxIntValue для доступа к функции MaxIntValue. Комментарии и вопросыПолучайте свежие новости и обновления по Object Pascal, Delphi и Lazarus прямо в свой смартфон. Подпишитесь на наш Telegram-канал delphi_kansoftware и будьте в курсе последних тенденций в разработке под Linux, Windows, Android и iOS Материалы статей собраны из открытых источников, владелец сайта не претендует на авторство. Там где авторство установить не удалось, материал подаётся без имени автора. В случае если Вы считаете, что Ваши права нарушены, пожалуйста, свяжитесь с владельцем сайта. :: Главная :: Математика ::
|
||||
©KANSoftWare (разработка программного обеспечения, создание программ, создание интерактивных сайтов), 2007 |