powered by simpleCommunicator - 2.0.59     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Caché, Ensemble, DeepSee, MiniM, IRIS, GT.M [игнор отключен] [закрыт для гостей] / Глобалы и дробные числа
14 сообщений из 14, страница 1 из 1
Глобалы и дробные числа
    #35031419
=Dimon=
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Имею глобал следующего вида:
^a(.07) = 3
^a(.08) = 3
^a(.6) = 2
^a(1.2) = 4
Как можно с помощью $Q найти все вершины глобала, которые начинаются с "0."?
...
Рейтинг: 0 / 0
Глобалы и дробные числа
    #35031422
=Dimon=
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
=Dimon=Имею глобал следующего вида:
^a(.07) = 3
^a(.08) = 3
^a(.6) = 2
^a(1.2) = 4
Как можно с помощью $Q найти все вершины глобала, которые начинаются с "0."?

Дополняю, еще имеется вершина ^a(0) = 4.
Нужно найти первую вершину, которая начинается с "0."
...
Рейтинг: 0 / 0
Глобалы и дробные числа
    #35031486
servit
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Например, так:
Код: plaintext
1.
2.
3.
4.
5.
6.
s key="^a(0)"
for  {
	set key=$q(@key)
	q:((key="") || ( 1 <=$QS(key, 1 )))
	w key,"=",@key," index=",$QS(key, 1 ),!
}
...
Рейтинг: 0 / 0
Глобалы и дробные числа
    #35031508
=Dimon=
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
servitНапример, так:
Код: plaintext
1.
2.
3.
4.
5.
6.
s key="^a(0)"
for  {
	set key=$q(@key)
	q:((key="") || ( 1 <=$QS(key, 1 )))
	w key,"=",@key," index=",$QS(key, 1 ),!
}


Спасибо. Уточню еще.
Функция нужна для поиска по первым введенным значениям. Первым введенным значение является "0."
...
Рейтинг: 0 / 0
Глобалы и дробные числа
    #35031571
servit
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Тогда для введенного значения находите граничные значения индекса и в цикле проходитесь в этих пределах.

Например:
"0." = [0 .. 1)
"0.1" = [0.1 .. 0.2)
"1.28" = [1.28 .. 1.29)
...
Рейтинг: 0 / 0
Глобалы и дробные числа
    #35034048
=Dimon=
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
servitТогда для введенного значения находите граничные значения индекса и в цикле проходитесь в этих пределах.

Например:
"0." = [0 .. 1)
"0.1" = [0.1 .. 0.2)
"1.28" = [1.28 .. 1.29)

Спасибо. Но все равно немного не то. Вопрос видимо с самого начала не так описал :) А если помимо дробных чисел в вершине глобала содержатся еще символы. Например
.1 = 1
.2 = 1
.4 = 2
1 = 5
1.1 = 1
"0.4dfvrf3" = 1
и как тут найти значение начинаюшееся на 0.4 ? Сначала перебирать числа, а потом перебирать строки?
...
Рейтинг: 0 / 0
Глобалы и дробные числа
    #35034068
=Dimon=
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Как вообще Каше заставить .4 представить и записать как 0.4?
...
Рейтинг: 0 / 0
Глобалы и дробные числа
    #35034197
Фотография krvsa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
=Dimon=Сначала перебирать числа, а потом перебирать строки?
Да.
...
Рейтинг: 0 / 0
Глобалы и дробные числа
    #35034198
Фотография krvsa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
=Dimon=Как вообще Каше заставить .4 представить и записать как 0.4?
Как вариант так
Код: plaintext
s ^tmp(""_"0.4")=""
...
Рейтинг: 0 / 0
Глобалы и дробные числа
    #35034206
servit
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
В приведенном мной выше коде меняете
(1<=$QS(key,1)) на (1<=+$QS(key,1))

Пример:
>w +"0.3asd"
>.3
>w +"-.3asd"
>-.3
>w +"3e-1asd"
>.3
...
Рейтинг: 0 / 0
Глобалы и дробные числа
    #35034208
=Dimon=
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Как вариант так
Код: plaintext
s ^tmp(""_"0.4")=""

Зачем ""_? можно просто s ^tmp("0.4")=""
...
Рейтинг: 0 / 0
Глобалы и дробные числа
    #35034223
Фотография krvsa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
=Dimon=Зачем ""_?
Для пущей убедительности!
...
Рейтинг: 0 / 0
Глобалы и дробные числа
    #35034227
=Dimon=
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Спасибо. Это действительно единственный вариант! Не позиционироваться на вершину. А перебирать все.
...
Рейтинг: 0 / 0
Глобалы и дробные числа
    #35034276
Фотография krvsa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
=Dimon= , перебирать все не рентабельно. Этого "цифрового всего" может быть очень много.
Желательно выбрать все "цифровое", а потом искать "символьное". Что-то типа этого:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
s uz=$o(^tmp( 0 ))
while uz< 1  {
   w !,uz
   s uz=$o(^tmp(uz))
}
s uz=$o(^tmp("0."))
while $e(uz, 1 , 2 )="0." {
   w !,uz
   s uz=$o(^tmp(uz))
}
----------
Cache for Windows NT (Intel) 5.0.20 (Build 6305) Fri Sep 16 2005 11:54:10 EDT
...
Рейтинг: 0 / 0
14 сообщений из 14, страница 1 из 1
Форумы / Caché, Ensemble, DeepSee, MiniM, IRIS, GT.M [игнор отключен] [закрыт для гостей] / Глобалы и дробные числа
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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