ASCANNA — различия между версиями
Материал из Фабиус wiki
Hisava (обсуждение | вклад) м |
Hisava (обсуждение | вклад) м |
||
| Строка 1: | Строка 1: | ||
[[ASCANNA]] - это программа из справочника [[R266]] | [[ASCANNA]] - это программа из справочника [[R266]] | ||
[[ASCAN]] по выбранному измерению многомерного массива. (!) Возвращает МАССИВ индексов, найденных совпадений | [[ASCAN]] по выбранному измерению многомерного массива. (!) Возвращает МАССИВ индексов, найденных совпадений | ||
| + | [[ASCANNA]]( Массив, значение, измерение по которому искать ) | ||
| + | = Текст = | ||
| + | // [[ASCANNA]](arr, cmp, [nn] ) | ||
| + | |||
| + | // (!) Возвращает МАССИВ индексов, найденных совпадений | ||
| + | |||
| + | parameters arr, cmp, nn:=1 | ||
| + | |||
| + | if [[Empty]](arr); return(0); end | ||
| + | |||
| + | local ii, imax:=Len(arr), is_blk:=Valtype(cmp)='B' | ||
| + | result:={} | ||
| + | |||
| + | for ii:=1 to imax | ||
| + | if is_blk | ||
| + | if Eval(cmp,arr[ii,nn],ii); AADD(result,ii); end | ||
| + | else | ||
| + | if arr[ii,nn] == cmp; AADD(result,ii); end | ||
| + | endif | ||
| + | next | ||
= Смотрите также = | = Смотрите также = | ||
[[Полезные функции]] | [[Полезные функции]] | ||
[[Функции Delphi]] | [[Функции Delphi]] | ||
Версия 09:18, 20 октября 2017
ASCANNA - это программа из справочника R266
ASCAN по выбранному измерению многомерного массива. (!) Возвращает МАССИВ индексов, найденных совпадений
ASCANNA( Массив, значение, измерение по которому искать )
Текст
// ASCANNA(arr, cmp, [nn] ) // (!) Возвращает МАССИВ индексов, найденных совпадений parameters arr, cmp, nn:=1 if Empty(arr); return(0); end local ii, imax:=Len(arr), is_blk:=Valtype(cmp)='B' result:={} for ii:=1 to imax if is_blk if Eval(cmp,arr[ii,nn],ii); AADD(result,ii); end else if arr[ii,nn] == cmp; AADD(result,ii); end endif next