powered by simpleCommunicator - 2.0.37     © 2025 Programmizd 02
Форумы / Caché, Ensemble, DeepSee, MiniM, IRIS, GT.M [игнор отключен] [закрыт для гостей] / Интересная задачка на Developer Community
23 сообщений из 48, страница 2 из 2
Интересная задачка на Developer Community
    #39247570
servit
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
servitВот ещё https://wwwx.youtube.com/watch?v=-h2EuNe9AOA#t=70
...
Рейтинг: 0 / 0
Интересная задачка на Developer Community
    #39247723
MX-9
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
servit,
n*1111 вместо n_n_n_n
круто !
...
Рейтинг: 0 / 0
Интересная задачка на Developer Community
    #39247825
gluconat_ca
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
"Короткие, но мудрёные" решения были, внесу свою лепту в "длинные, но понятные" :)
Написано не в каше.
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
ToPhone(x)
 n (x)
 s a="abcdefghijklmnopqrstuvwxyz "
 s d=$tr(x,a,"222333444555666777788899990")
 s n=$tr(x,a,"123123123123123123412312341")
 s (y,o)=""
 f i=1:1:$l(d)  s c=$e(d,i)  s:c=o y=y_" "  s o=c  f j=1:1:$e(n,i)  s y=y_c
 q y
...
Рейтинг: 0 / 0
Интересная задачка на Developer Community
    #39247846
Alexey Maslov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Отмечусь и я. 149:
Код: plaintext
1.
2.
3.
ClassMethod ToPhone(t) As %String [ ProcedureBlock = 1 ]
{
 s s="",a="!""#123ABCQRSabcqrstЃ‚ѓ‘’“”•" f i=1:1:$l(t){s p=$a(a,$a(t,i)-96),j=p\16 s:$e(s,*)=j s=s_" " s s=s_$s('j:0,1:$tr($j("",p#16)," ",j))} q s
}
...
Рейтинг: 0 / 0
Интересная задачка на Developer Community
    #39247878
Alexey Maslov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Можно короче: 148. Забыл сказать, что код правильно работает только в 8-битных установках Cache.
Код: plaintext
1.
2.
3.
ClassMethod am(t) As %String [ ProcedureBlock = 1 ]
{
 s s="",a="!""#123ABCQRSabcqrstЃ‚ѓ‘’“”•" f i=1:1:$l(t){s p=$a(a,$a(t,i)-96),j=p\16 s:$e(s,*)=j s=s_" " s s=s_$s(j:$tr($j("",p#16)," ",j),1:0)} q s
}
...
Рейтинг: 0 / 0
Интересная задачка на Developer Community
    #39247881
Фотография DAiMor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Сколько интересных вариантов, и что самое интересное, не считая сотрудников InterSystems, только русское сообщество вовлеклось, и сколько интересных примеров предложило.
...
Рейтинг: 0 / 0
Интересная задачка на Developer Community
    #39247959
gluconat_ca
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Ну, и тарабарщины, до кучи :)
Код: plaintext
1.
2.
ToPhone(x)
 n (x) s (y,o)="" f i=1:1:$l(x) s c=$e(x,i),a=$a(c)-97,z=c]" ",d=a\3+2-("svyz"[c)*z s:d=o y=y_" " s o=d f j=1:1:a-(c]"s")#3+("sz"[c*3)*z+1 s y=y_d
 q y
...
Рейтинг: 0 / 0
Интересная задачка на Developer Community
    #39248023
Alexey Maslov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
gluconat_ca,

если перенести в Cache, то можно сократить длину до 147 символов. См.
Код: plaintext
1.
2.
3.
ClassMethod gluconat(x) As %String [ ProcedureBlock = 1 ]
{
 s (y,o)="" f i=1:1:$l(x){s c=$e(x,i),a=$a(c)-97,z=c]" ",d=a\3+2-("svyz"[c)*z s:d=o y=y_" " s o=d f j=1:1:a-(c]"s")#3+("sz"[c*3)*z+1 s y=y_d} q y
}
...
Рейтинг: 0 / 0
Интересная задачка на Developer Community
    #39248029
Alexey Maslov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
И даже до 143, если не запоминать последний добавленный символ (такой приём уже применяли):
Код: plaintext
1.
2.
3.
ClassMethod gluconatV2(x) As %String [ ProcedureBlock = 1 ]
{
 s y="" f i=1:1:$l(x){s c=$e(x,i),a=$a(c)-97,z=c]" ",d=a\3+2-("svyz"[c)*z s:d=$e(y,*) y=y_" " f j=1:1:a-(c]"s")#3+("sz"[c*3)*z+1 s y=y_d} q y
}
...
Рейтинг: 0 / 0
Интересная задачка на Developer Community
    #39248038
gluconat_ca
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Alexey Maslov,
До лучших образцов всё равно не досъёживается. :)
А, вот * в $e и в $p - полезный сахар, иногда не хватает таких фич для лаконичности.
...
Рейтинг: 0 / 0
Интересная задачка на Developer Community
    #39248070
Alexey Maslov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
gluconat_caДо лучших образцов всё равно не досъёживается. :)Почему же, вроде как третье место по community - поздравляю!
...
Рейтинг: 0 / 0
Интересная задачка на Developer Community
    #39248141
gluconat_ca
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Alexey Maslov,

Ради последовательности идеи :)
Код: plaintext
1.
2.
3.
ClassMethod gluconatV2(x) As %String [ ProcedureBlock = 1 ]
{
 s y="" f i=1:1:$l(x){s c=$e(x,i),a=$a(c)-97-(c]"r")-(c]"y"),z=c]" ",d=a\3+2*z s:d=$e(y,*) y=y_" " f j=1:1:a#3+("sz"[c)*z+1 s y=y_d} q y
}
...
Рейтинг: 0 / 0
Интересная задачка на Developer Community
    #39248377
gluconat_ca
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
последняя правка
Код: plaintext
1.
2.
3.
ClassMethod gluconatV2(x) As %String [ ProcedureBlock = 1 ]
{
 s y="" f i=1:1:$l(x){s c=$e(x,i),a=$a(c)-97-(c]"r")-(c]"y"),z=c]" ",d=a\3+2*z s:d=$e(y,*) y=y_" " f j=0:1:a#3+("sz"[c)*z s y=y_d} q y
}
...
Рейтинг: 0 / 0
Интересная задачка на Developer Community
    #39248403
Шваров Евгений
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
gluconat_caпоследняя правка
Код: plaintext
1.
2.
3.
ClassMethod gluconatV2(x) As %String [ ProcedureBlock = 1 ]
{
 s y="" f i=1:1:$l(x){s c=$e(x,i),a=$a(c)-97-(c]"r")-(c]"y"),z=c]" ",d=a\3+2*z s:d=$e(y,*) y=y_" " f j=0:1:a#3+("sz"[c)*z s y=y_d} q y
}
на Developer Community теперь результат?
...
Рейтинг: 0 / 0
Интересная задачка на Developer Community
    #39248404
Шваров Евгений
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MX-9
Код: plaintext
s R="" f %=1:1:$l(t) f N=0:1:3 s n=$f("adgjmptw ",$c($a($e(t,%))-N)) s:n n=n#10,R=R_$e(" ",R_-1[(n_-1))_$e(n_n_n_n,1,N+1),N=9

скобку -N)) надо
MX-9, опубликовал ваш вариант на DC .
...
Рейтинг: 0 / 0
Интересная задачка на Developer Community
    #39248410
gluconat_ca
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Шваров Евгений,
Если это вопрос-разрешение на помещение туда, то и в мыслях не было туда соваться, тем более что я не каше программист.
Это - просто небольшой отдых от основной работы. :)
...
Рейтинг: 0 / 0
Интересная задачка на Developer Community
    #39248578
Шваров Евгений
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
gluconat_caШваров Евгений,
Если это вопрос-разрешение на помещение туда, то и в мыслях не было туда соваться, тем более что я не каше программист.
Это - просто небольшой отдых от основной работы. :)
А почему нет? Там это тоже "отдых от работы" )
...
Рейтинг: 0 / 0
Интересная задачка на Developer Community
    #39248609
gluconat_ca
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Шваров Евгений,
на ваше усмотрение
...
Рейтинг: 0 / 0
Интересная задачка на Developer Community
    #39248617
gluconat_ca
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Alexey MaslovМожно короче: 148. Забыл сказать, что код правильно работает только в 8-битных установках Cache.
Код: plaintext
1.
2.
3.
ClassMethod am(t) As %String [ ProcedureBlock = 1 ]
{
 s s="",a="!""#123ABCQRSabcqrstЃ‚ѓ‘’“”•" f i=1:1:$l(t){s p=$a(a,$a(t,i)-96),j=p\16 s:$e(s,*)=j s=s_" " s s=s_$s(j:$tr($j("",p#16)," ",j),1:0)} q s
}
Если последний символ в переменной 'a' будет =$c(161) , то можно укоротить
Код: plaintext
1.
2.
3.
4.
5.
f i=1:1:$l(t){s p=$a(a,$a(t,i)-96),j=p\16 s:$e(s,*)=j s=s_" " s s=s_$s('j:0,1:$tr($j("",p#16)," ",j))} q s
на
f i=1:1:$l(t){s p=$a(a,$a(t,i)-96),j=p\16#10 s:$e(s,*)=j s=s_" " s s=s_$tr($j("",p#16)," ",j)} q s
или
f i=1:1:$l(t){s p=$a(a,$a(t,i)-96),j=p\16#10 s:$e(s,*)=j s=s_" " f n=1:1:p#16 s s=s_j} q s
...
Рейтинг: 0 / 0
Интересная задачка на Developer Community
    #39248618
MX-9
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Шваров Евгений,

спасибо за публикацию !
в Лиепае сейчас рекордная жара - мы совсем обленились
...
Рейтинг: 0 / 0
Интересная задачка на Developer Community
    #39248619
gluconat_ca
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
gluconat_ca,
последнее сообщение ошибочно, сорри, Алексей Маслов :)
...
Рейтинг: 0 / 0
Интересная задачка на Developer Community
    #39248932
Alexey Maslov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
gluconat_ca,

мне тоже хотелось избежать исключений из правил, но чтобы вписать в общую схему пробел, надо прилепить к строке начало: set a=$c(1)_$j("",64)_<старая a> - и код получается длиннее. Однако спасибо: вы напомнили мне, что s_$tr($j("",N)," ",j) - хоть и самый наглядный, но вовсе не самый короткий способ добавить к строке N символов j. Это позволило сократить код со 148 до 140 символов:
Код: plaintext
1.
2.
3.
ClassMethod am(t) As %String [ ProcedureBlock = 1 ]
{
 s s="",a="!""#123ABCQRSabcqrstЃ‚ѓ‘’“”•" f i=1:1:$l(t){s p=$a(a,$a(t,i)-96),j=p\16 s:$e(s,*)=j s=s_" " f n=1:1:$s(j:p#16,1:1) s s=s_j} q s
}
...
Рейтинг: 0 / 0
Интересная задачка на Developer Community
    #39249015
gluconat_ca
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Alexey Maslov,
я имел ввиду загнать пробел на 27 место после 'z' (об этом,кстати, упустил написать) ,транслировав его во входящей строке в '{', но забыл про саму трансляцию, которая сводит всё на нет своей длиной.
...
Рейтинг: 0 / 0
23 сообщений из 48, страница 2 из 2
Форумы / Caché, Ensemble, DeepSee, MiniM, IRIS, GT.M [игнор отключен] [закрыт для гостей] / Интересная задачка на Developer Community
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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