Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Caché, Ensemble, DeepSee, MiniM, IRIS, GT.M [игнор отключен] [закрыт для гостей] / Работа с массивами / 11 сообщений из 11, страница 1 из 1
12.03.2012, 11:01
    #37700088
Артур1
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Работа с массивами
Здравствуйте!


Подскажите как можно перебрать массив имеющий такую структуру
arr(1) = 1
arr(2) = 1
arr(3) = 1
и т.д.


Где почитать о работе с массивами


Спасибо
...
Рейтинг: 0 / 0
12.03.2012, 12:02
    #37700251
Ahilles
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Работа с массивами
Артур1,
Поясниет где этот массив и чем вы собираетесь пребрать.
Пока я вижу что это не массив, а глобаль в памяти. В М перебирается $o().
...
Рейтинг: 0 / 0
12.03.2012, 12:19
    #37700292
Артур1
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Работа с массивами
обычный массив, впрочем массивы от глобалей отличаются логически ни чем, лишь местом хранения

вот нужно или найти функцию для подсчета элементов массива
или есть другой способ его перебора

SET len=$LENGTH(arr)
FOR index=1:1:len {
do $FF(arr(index))
}
...
Рейтинг: 0 / 0
12.03.2012, 12:31
    #37700336
Ahilles
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Работа с массивами
s x="" f s x=$o(m(x)) q:x="" W m(x)
...
Рейтинг: 0 / 0
12.03.2012, 12:38
    #37700364
Ahilles
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Работа с массивами
s x="" f__s x=$o(arr(x)) q:x=""__W !,arr(x)
;в твоем случае __-lдвойной пароль
...
Рейтинг: 0 / 0
12.03.2012, 12:41
    #37700375
Ahilles
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Работа с массивами
__ двойной пробел :)
...
Рейтинг: 0 / 0
12.03.2012, 13:09
    #37700452
krvsa
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Работа с массивами
Ahilles
Код: vbnet
1.
2.
s x="" 
f  s x=$o(m(x)) q:x=""  W m(x)


Вот так код оформлять нужно
...
Рейтинг: 0 / 0
12.03.2012, 13:11
    #37700461
krvsa
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Работа с массивами
Артур1
Код: vbnet
1.
SET len=$LENGTH(arr)


Посмоти что вернёт тебе эта функция...
...
Рейтинг: 0 / 0
12.03.2012, 13:26
    #37700494
Ptn
Ptn
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Работа с массивами
Артур1вот нужно или найти функцию для подсчета элементов массива
или есть другой способ его перебора

Это на самом деле не массив, а дерево. К примеру

Код: c#
1.
2.
3.
4.
5.
arr(1) = 1
arr(2) = 1
arr(2,1) = 3
arr(2,6) = 42
arr(3) = 1



У дерева количество узлов нужно вычислять перебором, оно не храниться.

Можно через $order для одноуровневых деревьев, или к примеру $query для многоуровневых
...
Рейтинг: 0 / 0
12.03.2012, 14:03
    #37700601
D_De1mos
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Работа с массивами
Простой перебор:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
a(1) = 5
a(2) = 4
a(3) = 3
a(4) = 2
a(5) = 1

s key=""  
f {
  s key=$o(a(key),1,val)  
  q:key=""  
  w "a("_key_") = " _ val,!
}



доставать элемент можно внутри $o(rder) третьим параметром, либо отдельно обращаясь по ключу к элементу, т.е.:
Код: plaintext
1.
a(key)
...
Рейтинг: 0 / 0
14.03.2012, 12:11
    #37704500
servit
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Работа с массивами
Артур1Подскажите как можно перебрать массив имеющий такую структуру
arr(1) = 1
arr(2) = 1
arr(3) = 1
и т.д.Например, так:

  ; заполняем локальный массив № 1
  for i=1:1:5 set a(i)="Value"_i

  ; заполняем локальный массив № 2
  set arr=##class(%ArrayOfDataTypes).%New()
  for i=1:1:3  do arr.SetAt("Значение"_i,i)

  do output
  
  ; очищаем данные
  do arr.Clear()
  ; заполняем данными из другого массива
  
merge arr.Data=a

  do output

output()
  ; выводим результат
  write "Количество элементов=",arr.Count(),!
  for i=1:1:arr.Count() {
    write arr.GetAt(i),!
  }

Результат:

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
USER>do ^test
Количество элементов=3
Значение1
Значение2
Значение3
Количество элементов=5
Value1
Value2
Value3
Value4
Value5
Артур1Где почитать о работе с массивами Multidimensional Arrays
Array Classes
...
Рейтинг: 0 / 0
Форумы / Caché, Ensemble, DeepSee, MiniM, IRIS, GT.M [игнор отключен] [закрыт для гостей] / Работа с массивами / 11 сообщений из 11, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]