|
Использование массива из записи в процедуре (функции).
|
|||
---|---|---|---|
#18+
S.G.Андрей ИгоревичКак напрямую использовать массив из записи в процедуре, минуя использование промежуточных массивов. Можно его вообще не объявлять в списке входно/выходных переменных процедуры, и пользовать как "внешнюю" для нее переменную. Это несколько выпадает из канонов, но не запрещается. Код: pascal 1. 2.
Можно. Сейчас залез в свой в код и понял, что оба способа не подходят мне :). Суть в том, что я стараюсь максимально универсивицировать процедуры и функции, то есть процедуры способны, например, сортировать массив, интерполировать по значению, найти ближайшее соответствие, ещё как-нибудь обрабатывать. И я использую её везде, где нужно, не повторяя код. Но, что вариант с использованием записи, что с использованием глобальных переменных\записей делает этот кусок кода пригодным только под эту задачу, так и вообще можно без вызова процедуры обойтись. ... |
|||
:
Нравится:
Не нравится:
|
|||
05.12.2017, 13:12 |
|
Использование массива из записи в процедуре (функции).
|
|||
---|---|---|---|
#18+
Андрей ИгоревичS.G.пропущено... Можно его вообще не объявлять в списке входно/выходных переменных процедуры, и пользовать как "внешнюю" для нее переменную. Это несколько выпадает из канонов, но не запрещается. Код: pascal 1. 2.
Можно. Сейчас залез в свой в код и понял, что оба способа не подходят мне :). Суть в том, что я стараюсь максимально универсивицировать процедуры и функции, то есть процедуры способны, например, сортировать массив, интерполировать по значению, найти ближайшее соответствие, ещё как-нибудь обрабатывать. И я использую её везде, где нужно, не повторяя код. Но, что вариант с использованием записи, что с использованием глобальных переменных\записей делает этот кусок кода пригодным только под эту задачу, так и вообще можно без вызова процедуры обойтись. Я не знаю, насколько универсальным вы хотите сделать свой код, но "капсулирование" данных и методов в один объект (как это делается в коде выше, да и вообще является основой Паскаля/Дельфи), делает именно это - универсальность. У вас есть объект, "переменые" в нем (то есть, ваш массив), задают "состояние" объекта, а "методы" - процедуры и функции - переводят его из одного состояния в другое. Ну и решается типичная задача: - начальное заполнение данных, (из другого объекта, из базы данных, из файла) - обработка - выгрузка (в другой объекта, в базу данных, в файл). Как внутри проходит передача данных, через явное указание в виде параметров процедур, или в виде глобальной переменной, неважно (важно для компилятора, но не очень для нас) ... |
|||
:
Нравится:
Не нравится:
|
|||
05.12.2017, 13:42 |
|
|
Start [/forum/topic.php?fid=58&tid=2041477&gotonew=1]: |
0ms |
get settings: |
2ms |
get forum list: |
7ms |
check forum access: |
1ms |
check topic access: |
1ms |
track hit: |
11ms |
get topic data: |
5ms |
get first new msg: |
3ms |
get forum data: |
1ms |
get page messages: |
19ms |
get tp. blocked users: |
0ms |
others: | 66ms |
total: | 116ms |
0 / 0 |