|
Пятницотест. XOR на языке 1С 8 | ☑ | ||
---|---|---|---|---|
0
В тылу врага
26.04.13
✎
13:53
|
Реализуйте на языке 1С 8 наиболее элегантно ЛОГИЧЕСКУЮ функуцию XOR(A,Б)
A,Б - гарантированно логические значения (тип булево). |
|||
13
exwill
26.04.13
✎
13:59
|
Функция XOR(A,Б)
Возврат А<>Б КонецФункции |
|||
14
Wobland
26.04.13
✎
13:59
|
(8) НЕ (ложь ИЛИ ложь)=истина, ксор(ложь, ложь)=ложь
|
|||
15
Rie
26.04.13
✎
13:59
|
(8) +1000000000
А теперь, если В тылу врага не согласен - пусть опровергает. |
|||
16
В тылу врага
26.04.13
✎
13:59
|
(13) красавчик, ты выиграл
|
|||
17
zak555
26.04.13
✎
14:00
|
(14) да я забыл ксор, теперь понял ошибку
|
|||
18
Rie
26.04.13
✎
14:01
|
(15)
Да-да-да, ошибки... Ну тогда Функция XOR(А,Б) Возврат А<>Б; КонецФункции |
|||
19
andreymongol82
26.04.13
✎
14:01
|
(13) Блин, опередил!
|
|||
20
andreymongol82
26.04.13
✎
14:01
|
(15) +100500
|
|||
21
Rie
26.04.13
✎
14:01
|
(17) Несущественно. Хочется понять, что имел в виду ТС.
|
|||
22
В тылу врага
26.04.13
✎
14:01
|
(18) опоздун
|
|||
23
zak555
26.04.13
✎
14:02
|
(16) это из серии ?
Функция AND(A,Б) Возврат А * Б КонецФункции Функция OR(A,Б) Возврат А + Б КонецФункции |
|||
24
andreymongol82
26.04.13
✎
14:03
|
(23) Матлогика рулит. :)
|
|||
25
zak555
26.04.13
✎
14:06
|
хотя (23) должно будет преобразовать в результат в число
|
|||
26
andreymongol82
26.04.13
✎
14:09
|
(25) Булево как бы и есть число 0 или 1. по крайне мере, при
а=истина; Сообщить(а=1); выводит "Да" |
|||
27
olegves
26.04.13
✎
14:10
|
(0)
А%Б |
|||
28
NS
26.04.13
✎
14:10
|
(0) Может гарантированно числовые значения?
|
|||
29
В тылу врага
26.04.13
✎
14:28
|
(28) не, логические, логический XOR
|
|||
30
НЕА123
26.04.13
✎
14:28
|
(А+Б)%2
|
|||
31
Asmody
26.04.13
✎
14:28
|
вспоминая мат.логику, строим элементарную ДНФ:
Функция XOR(а, б) Возврат (а И НЕ б) ИЛИ (НЕ а И б); КонецФункции |
|||
32
exwill
26.04.13
✎
14:29
|
(31) а<>б короче
|
|||
33
Asmody
26.04.13
✎
14:30
|
(32) зато (31) математически верно
|
|||
34
В тылу врага
26.04.13
✎
14:31
|
(33) типа (13) не верно математически ))
|
|||
35
exwill
26.04.13
✎
14:31
|
(33) а (32), значит по-твоему, неверно?
|
|||
36
Rie
26.04.13
✎
14:34
|
(33) Так и (33) - математически верно.
|
|||
37
НЕА123
26.04.13
✎
14:34
|
НЕ Найти(А,Б)
|
|||
38
НЕА123
26.04.13
✎
14:43
|
ЛОЖЬ ИЛИ (А - Б)
|
|||
39
В тылу врага
26.04.13
✎
14:44
|
(38) выражение (ЛОЖЬ ИЛИ Х) эквивалентно просто Х
|
|||
40
exwill
26.04.13
✎
14:45
|
(39) Вот не даешь ты человеку развернуться ))))
|
|||
41
В тылу врага
26.04.13
✎
14:46
|
(40) больше не буду, прошу извиниь
|
|||
42
Jaffar
26.04.13
✎
14:49
|
только я вижу ошибку в (6)?
|
|||
43
НЕА123
26.04.13
✎
14:53
|
(39)
да. "ЛОЖЬ ИЛИ" добавлено только приведения типа. Ложь или (-1)= Истина |
|||
44
Волшебник
26.04.13
✎
15:01
|
Функция XOR(А, Б)
Скрипт = Новый COMObject("MSScriptControl.ScriptControl"); Скрипт.language = "vbscript"; Возврат Скрипт.Eval("" + Число(А) + " xor " + Число(Б)); КонецФункции |
|||
45
В тылу врага
26.04.13
✎
15:05
|
(44) ресурсоемко
|
|||
46
Волшебник
26.04.13
✎
15:05
|
(45) Работает!
|
|||
47
НЕА123
26.04.13
✎
15:07
|
(45) зато по-честному.
|
|||
48
В тылу врага
26.04.13
✎
15:08
|
(46) ну с этим я спорить не буду
|
|||
49
Asmody
26.04.13
✎
15:09
|
(44) по хорошему, надо бы веб-сервис на java написать…
|
|||
50
vde69
26.04.13
✎
15:14
|
Функция XOR(А, Б)
Возврат А+Б=1; КонецФункции |
|||
51
Reaper_1c
26.04.13
✎
15:16
|
Перепись отучившихся у Гилева чтоли?
|
|||
52
Волшебник
26.04.13
✎
15:17
|
Функция XOR(А, Б)
тз = Новый ТаблицаЗначений; тз.Колонки.Добавить("Значение"); стр = тз.Добавить(); стр.Значение = А; стр = тз.Добавить(); стр.Значение = Б; тз.Свернуть("Значение"); Возврат тз.Количество()-1; КонецФункции |
|||
53
vde69
26.04.13
✎
15:17
|
точнее:
Функция XOR(А, Б) Возврат (0+А+Б)=1; КонецФункции |
|||
54
Волшебник
26.04.13
✎
15:19
|
Функция XOR(А, Б)
аб = Новый Соответствие; аб[А]=Б; аб[Б]=А; Возврат аб.Количество()-1; КонецФункции |
|||
55
vde69
26.04.13
✎
15:22
|
другой вариант
Функция XOR(А, Б) Возврат Мин(А,Б) <> Макс(А,Б); КонецФункции |
|||
56
Волшебник
26.04.13
✎
15:26
|
Функция XOR(А, Б)
Возврат НЕ (0+А-Б=0); КонецФункции |
|||
57
vde69
26.04.13
✎
15:30
|
(56) плагиат!!! караул мою нетленку стырили! я может над ней 3 года работал!!!
|
|||
58
Волшебник
26.04.13
✎
15:31
|
(57) Ладно, можешь стырить мою.
Функция XOR(А, Б) Попытка о = 1/(А-Б); Возврат Истина; Исключение Возврат Ложь; КонецПопытки; КонецФункции |
|||
59
ssh2006
26.04.13
✎
15:37
|
?(А, НЕ Б, Б)
|
|||
60
НЕА123
26.04.13
✎
15:41
|
СтрДлина(""+ А + Б) = 5
|
|||
61
vde69
26.04.13
✎
15:43
|
(60) не будет работать при локализации например на английсуий
|
|||
62
НЕА123
26.04.13
✎
15:44
|
(61)
да. вот так можно, но тоже на грани фола СтрДлина(""+ А + Б) = СтрДлина(""+Истина + Ложь) |
|||
63
NS
26.04.13
✎
15:46
|
Разве единственный правильный ответ не дан уже в (13)?
|
|||
64
Волшебник
26.04.13
✎
15:47
|
Функция XOR(А, Б)
о = sin(А) + sin(Б); Возврат о > 0.8 И о < 0.9; КонецФункции |
|||
65
НЕА123
26.04.13
✎
15:47
|
СтрДлина("" +Формат( А,"БЛ=Нет; БИ=Да")+Формат(Б,"БЛ=Нет; БИ=Да"))
|
|||
66
НЕА123
26.04.13
✎
15:49
|
(63) сегодня нет. пятница.
|
|||
67
YHVVH
26.04.13
✎
15:50
|
я так и не понял что надо
|
|||
68
YHVVH
26.04.13
✎
15:50
|
что такое XOR
|
|||
69
НЕА123
26.04.13
✎
15:52
|
сам я пользуюсь (30)
|
|||
70
NS
26.04.13
✎
15:53
|
"XOR", он же "<>" - это строгая дизъюнкция.
|
|||
71
Jaffar
26.04.13
✎
15:55
|
(68) исключающее ИЛИ.
единица, если операнды не равны. ноль, если операнды равны. |
|||
72
Classic
26.04.13
✎
15:58
|
A<>B
|
|||
73
Asmody
26.04.13
✎
16:05
|
например, в javascript и других языках с неявным приведением типов, номер с <> не прокатит.
|
|||
74
Jaffar
26.04.13
✎
16:12
|
(73) ну автор какбэ ограничил в (0) языком 1С 8 :-)
|
|||
75
Волшебник
26.04.13
✎
16:18
|
Настоящая интеллектуальная программа должна найти метод решения в интернете, доработать его под конкретную задачу и выдать ответ. Посему вот вам Реально Интеллектуальное Эвристическое Решение:
ВНИМАНИЕ! Работает не всегда и не везде, как и положено интеллектуальным эвристическим решениям. Функция XOR(А,Б) путь = "c:\temp\file.txt"; КопироватьФайл("http://www.forum.mista.ru/topic.php?id=663017&format=pda&page=1",путь); Файл = Новый ТекстовыйДокумент(); Файл.Прочитать(путь); ветка = Файл.ПолучитьТекст(); поз = Найти(ветка, "[13 - 26-04-2013 13:59]"); программа = Сред(ветка,поз+65,10); программа = СтрЗаменить(программа,"<","<"); программа = СтрЗаменить(программа,">",">"); Возврат Вычислить(программа); КонецФункции |
|||
76
Jaffar
26.04.13
✎
16:24
|
(75) кхе, выделение синтаксиса не видит закрывающие кавычки в пути :-)
|
|||
77
Волшебник
26.04.13
✎
16:26
|
(76) Программа-разукрашка обладает низким уровня интеллекта, поэтому она не может осознать глубину элегантности Реально Интеллектуального Эвристического Решения.
|
|||
78
Волшебник
26.04.13
✎
16:31
|
(0) За прекрасную пятничную ветку я разбанил ник Ненавижу 1С
|
|||
79
Ненавижу 1С
гуру
26.04.13
✎
17:03
|
(78) благодарю
|
|||
80
Torquader
27.04.13
✎
01:12
|
Я, когда писал sha1 на 1С использовал XOR в таком виде (A+B)%2, где A и B - числа (0 или 1).
|
|||
81
Torquader
27.04.13
✎
01:13
|
(80)+ Собственно, и перенос в старшие разряды рассматривался также: (A-A%2)/2
|
|||
82
Steel_Wheel
27.04.13
✎
01:20
|
(0) На, держи
Функция XOR(A, B) Возврат ?(А=B, 0, 1) КонецФункции |
|||
83
Steel_Wheel
27.04.13
✎
01:21
|
Блин, в 13 уже было
|
|||
84
RayCon
27.04.13
✎
01:57
|
(0) Спрашивал бы сразу про XIRR, а то какую-то тривиальную XOR. Да ещё и "функуцию". Насколько "куцию"? :)
|
|||
85
zladenuw
27.04.13
✎
02:12
|
а вот первый раз. ажиотажа небыло
Побитовый XOR на языке 1С |
|||
86
zladenuw
27.04.13
✎
02:14
|
а таки было бы интересней.
http://1csoft.com/node/142 |
|||
87
zladenuw
27.04.13
✎
02:39
|
жаль что доступа нету :(
http://nashe1c.ru/materials-view.jsp?id=195 |
|||
88
Живой Ископаемый
27.04.13
✎
11:17
|
Запросом?
|
|||
89
cw014
27.04.13
✎
11:50
|
?((Не А и НЕ Б) или (А и Б),Истина,А Или Б)
|
|||
90
cw014
27.04.13
✎
11:52
|
Запросом:
ВЫБОР КОГДА (НЕ А И НЕ Б) ИЛИ (А И Б) ТОГДА ЛОЖЬ ИНАЧЕ А ИЛИ Б КОНЕЦ |
|||
91
cw014
27.04.13
✎
11:52
|
+(89) там вместо ИСТИНА должно быть ЛОЖЬ
|
|||
92
cw014
27.04.13
✎
11:53
|
А хотя можно так (исключающее же):
НЕ (А ИЛИ Б) |
|||
93
Живой Ископаемый
27.04.13
✎
11:57
|
неправильно
|
|||
94
cw014
27.04.13
✎
12:04
|
(93) Докажи
|
|||
95
cw014
27.04.13
✎
12:04
|
++(84) Докажи программисту, который написал интерпритатор
|
|||
96
Steel_Wheel
27.04.13
✎
12:07
|
(95) програмист, который написал интерпретатор, не может не знать таблицу истинности оператора XOR.
|
|||
97
cw014
27.04.13
✎
12:09
|
А, да, ошибся... При НЕ А И НЕ Б получается истина, а при А И Б - ложь
|
|||
98
Rie
27.04.13
✎
12:09
|
(96) Написавший интерпретатор - знает. А вот написавший "интерпритатор" (с) (95)
|
|||
99
cw014
27.04.13
✎
12:09
|
Прошу прощения, на пиве сижу... Наркоманнненннн ))))
|
|||
100
cw014
27.04.13
✎
12:09
|
(98) Пива, пива...)))))
|
|||
101
cw014
27.04.13
✎
12:10
|
Ладно, чо, хайте, лоханулся, так лоханулся... С кем не бывает
|
|||
102
cw014
27.04.13
✎
12:10
|
Но как идею взять можно
|
|||
103
cw014
27.04.13
✎
12:12
|
И кста, я сотый, стопервый, и стовторой, а этим постом еще и стопицотый
|
|||
104
Rie
модератор
27.04.13
✎
12:13
|
(103) Отдохни часок, протрезвей, успокойся.
|
|||
105
Живой Ископаемый
27.04.13
✎
15:30
|
(94) Консоль доажет, попробуй выполнить свое
ВЫБОР КОГДА (НЕ А И НЕ Б) ИЛИ (А И Б) ТОГДА ЛОЖЬ ИНАЧЕ А ИЛИ Б КОНЕЦ ужеб писал так ВЫБОР КОГДА (НЕ &А И НЕ &Б) ИЛИ (&А И &Б) ТОГДА ЛОЖЬ ИНАЧЕ &А ИЛИ &Б КОНЕЦ |
|||
106
cw014
27.04.13
✎
15:47
|
(105) А и Б могут быть полями запроса
|
|||
107
Живой Ископаемый
27.04.13
✎
15:48
|
окей, тогда правильно
|
|||
108
cw014
27.04.13
✎
16:03
|
(107) Воооооооооот, а меня забанили тут на час зачем то
|
|||
109
Steel_Wheel
27.04.13
✎
16:14
|
это типа вытрезвусика было xD
|
|||
110
фобка
27.04.13
✎
16:38
|
было?
Возврат не (а = б) и (а или б); |
|||
111
фобка
27.04.13
✎
16:42
|
+110 мда, похоже на (13)
|
|||
112
Живой Ископаемый
27.04.13
✎
16:43
|
2(108) это не я, я спал.
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |