ASCANNA — различия между версиями

Материал из Фабиус wiki
Перейти к: навигация, поиск
м
м
Строка 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

Смотрите также

Полезные функции

Функции Delphi