Имя: Пароль:
1C
 
Как создать многомерную таблицу?
0 Stim
 
05.11.15
10:56
Например, есть переменные А,В,С
Они могут принимать положительные или отрицательные значения.
Нужно создать такую таблицу, из которой в ячейке на пересечении строк можно сразу узнать знак произведения значений этих переменных.
Если б переменных было всех 2, была бы простая 2мерная таблица произведения А*В:

    
       А+  А-       В+  В-
А+     +   -        +   -
А-     -   +        -   +
В+     +   -        +   -
В-     -   +        _   +


но вот как быть с 3 и более переменными?
Как представить произведение 3 переменных в одной таблице?
1 1Сергей
 
05.11.15
10:57
в ячейках другие таблицы
2 Лефмихалыч
 
05.11.15
10:59
соответствие из соответствий, чтобы синтаксис был красивый и удобный
<code>
Матрица[A][B]
</code>

задолбишься инициализировать такую, но зато использование простое и понятное
3 Stim
 
05.11.15
11:01
(1) да, так и должно быть. только как представить это в удобном и понятном виде - хз
4 Mikeware
 
05.11.15
11:02
(2) не слишком ли для такой задачи?
Хотя... для фиксированных размерностей проще,  а вот для динамических...
5 Stim
 
05.11.15
11:05
(1) идеально - если б вместо плоской таблицы была трехмерная, типа кубика-рубика. тогда бы в 3мерных ячейках внутри кубика можно было писать значения. и я честно не представляю, как выглядел бы такой кубик для 4 переменных.
а тут нужно трехмерную модель перенести на двумерную плоскую таблицу
6 Лефмихалыч
 
05.11.15
11:05
(4) да ну... где там слишком?
с динамическими размерностями проблема возникнет только, если ты в момент обращения к матрице не уверен, что все эти А и Б в ней есть. ВОт тогда синтаксис Матрица[А][Б] использовать нельзя, т.к. после получения [А] надо проверять его на неопределено
7 Лефмихалыч
 
05.11.15
11:05
(5) ты дальше первого поста не читаешь, да?
8 Ненавижу 1С
 
гуру
05.11.15
11:07
а почему не так?

       А+  А-       В+  В-       C+  C-
А+     +   -        +   -        +   -
А-     -   +        -   +        -   +
В+     +   -        +   -        +   -
В-     -   +        _   +        -   +
C+     +   -        +   -        +   -
C-     -   +        _   +        -   +
9 Nuobu
 
05.11.15
11:08
А+С+  А-С+       В+С+  В-С+      А+С-  А-С-       В+С-  В-С-
А+     +     -          +     -         -     +          -     +
А-     -     +          -     +         +     -          +     -
В+     +     -          +     -         -     +          -     +
В-     -     +          -     +         +     -          +     -



Так пойдёт?
10 Stim
 
05.11.15
11:08
(7) я не понимаю, что ты хочешь сказать в (2)
11 Лефмихалыч
 
05.11.15
11:10
(10) а, ну ладно тогда
12 vde69
 
05.11.15
11:10
предлагаю трехмерную диаграмму, вместо знака цвет красный/синий
13 Asmody
 
05.11.15
11:13
(0) Таблицы истинности, информатика, 9й класс
14 Лефмихалыч
 
05.11.15
11:14
стоп, а значения надо узнавать программно или это надо человеку показывать, чтобы человек понял?
15 Asmody
 
05.11.15
11:17
вот так строится:


| x1 | x2 | x3 | f(x1,x2,x3) |
| -  | -  | -  |   -         |
| -  | -  | +  |   +         |
| -  | +  | -  |   +         |
| -  | +  | +  |   -         |
| +  | -  | -  |   +         |
| +  | -  | +  |   -         |
| +  | +  | -  |   -         |
| +  | +  | +  |   +         |

16 1Сергей
 
05.11.15
11:23
17 ДемонМаксвелла
 
05.11.15
11:28
а почему не массив?
18 Stim
 
05.11.15
11:45
(13) там всегда для двух операторов
19 Stim
 
05.11.15
11:45
(15) хитро, слушай
20 Mikeware
 
05.11.15
11:50
(18) с чего вдруг?
ну и по крайней мере в ВУЗе ты должен был карты Карно изучать - у тебя ж какое-то электротехническое образование было...
21 Stim
 
05.11.15
11:51
(20) это было давно и не правда!
22 Mikeware
 
05.11.15
11:52
(21) ахринеть....
"все мы учились понемногу - чему-нибудь,Ю и как-нибудь..."©
23 singlych
 
05.11.15
11:57
(15) +1.
Обычный РС же.
24 Ildarovich
 
05.11.15
12:02
Вообще непонятно: зачем это табулировать, если можно посчитать?

ЗнакПроизведения = 1 - ((А < 0) + (Б < 0) + (C < 0)) % 2 * 2
25 mszsuz
 
05.11.15
12:16
(24) А если считать - почему не так?
ЗнакПроизведения = ?(А < 0, -1, 1) * ?(Б < 0, -1, 1) * ?(С < 0, -1, 1);
26 Stim
 
05.11.15
12:19
(24) это я для примера. основная задача - сделать удобную таблицу типа "если клиент - поставщик и сумма долга меньше S и .. и ... тогда .."
27 Asmody
 
05.11.15
12:22
(26) Блок-схему нарисуй
28 Ildarovich
 
05.11.15
12:36
(27) Не думаю, что подойдет. - Как я понял, ТС хочет "таблицу решений" запрограммировать.
Тогда (15) подойдет, только нужно в качестве возможных значений аргументов прочерки добавить.
Тогда соответствующую логическую функцию можно будет минимизировать (методом тех же карт Карно). Иначе при 4 и более переменных таблица истинности будет уже необозримой.
По таблице можно будет затем и дерево решений построить и логическое выражение для проверки через "Выполнить".
29 Mikeware
 
05.11.15
13:24
(26) шаблоны для писем выбирать?
http://www.cossa.ru/upload/iblock/a32/big_11434308290_1433951928.jpg
30 Гёдза
 
05.11.15
13:27
(26) Есть такая фишка как регистр правил. Посмотри на досуге
31 Mikeware
 
05.11.15
13:27
(30) если он таблицы истинности и карты карно уже забыл...
32 Гёдза
 
05.11.15
13:28
(31) Ну забыл и что? Миста же напомнит
33 Гёдза
 
05.11.15
13:29
Хотя не совсем понятно как таблица истинности сочетается с (26) ?
Тут же простое условие И
Проблемы невозможно решaть нa том же уровне компетентности, нa котором они возникaют. Альберт Эйнштейн