Всем привет!
Представлена внешняя обработка на обычных формах, тестировал на пустой базе 1С:Предприятие 8.3 (8.3.23.1865).
Версия платформы не имеет значения - поскольку платформенные функции и процедуры не использую.
Новшество, которое я применил для разработки алгоритмов с матрицами - заключается в том, что я начал заводить матрицы как многострочную строку с пробелами между значениями матрицы - см. рис.
Матрица в широком смысле и в платформе 1С представляется как двумерный массив массивов. Для преобразования начальной строки матрицы в двумерный массив массивов я использую функцию преобразования (собственной разработки).
Для вывода двумерного массива массивов в строку - я также использую другую функцию преобразования (собственной разработки). Это новшество позволяет удобно отлаживать алгоритмы алгебраических преобразований матриц, можно даже выводить пошаговую отладку - см. рис.
Обработка представляет из себя ДЕМО - СТЕНД.
Обработку надо открывать через меню Файл-Открыть. Задаете вручную две матрицы в левом поле и поле посередине. Выбираете флажок для алгебраического преобразования и нажимаете кнопку "Выполнить". Результат расчета будет показан на правом поле. Ниже будет представлено видео - лучше один раз посмотреть.
На данный момент в обработке разработаны и собраны такие функции:
- копирование матрицы
- деление матрицы на скаляр
- умножение матриц
- транспонирование матрицы
- вычеркивание из матрицы i-той строки и j-того столбца
- получение определителя матрицы - используется один из способов получения определителя
- получение единичной матрицы
- возведение в степень
- получение расширения матрицы
Также в расчет были добавлены функции преобразования чисел с запятой в дроби: то есть число 0,6666667 можно преобразовать в дробь 2/3. Далее использовать дроби в алгебраических преобразованиях матриц. Таким образом будет получен более точный результат вычислений.
Для преобразования чисел в дроби используется алгоритм Евклида или что тоже самое алгоритм получение НОД - наибольшего общего делителя. В демо-стенде можно испытать умножение дробей, преобразование числа в дробь и обратно, получение дробей с разным округлением чисел - так к примеру, для чисел 0,67 и 0,667 будут рассчитаны разные дроби: 67/100 и 667/1000.
Демо-стенд напоминает калькулятор, собранный на коленке - для тестирования матриц достаточно задать матрицы и выбрать операцию. Для тестирования алгебры дробей - нужно также использовать матрицы. Отдельного блока для тестирования чисел и дробей не создано. То есть для расчетов в дробях просто поставьте галочку (флажок) - "Показать в дробях" и укажите округление чисел - см. рис.
Вы можете отдельно от матриц только "Найти НОД" - выберите флажок и нажмите "Выполнить". Обработка предложит вам задать два числа - для которых будет найден НОД, результат будет выведен в служебное сообщение пользователя.
Также вы можете отдельно протестить умножение чисел в виде дробей. Дроби задавайте через точку - которая отделяет целую и дробную часть. Возведите флажок "Умножение чисел" и нажмите "Выполнить" - см. рис.
Результаты расчетов сравнивались с калькуляторами матриц онлайн.
На сегодняшний день обработка представляет из себя лишь математический и исследовательский интерес. Была разработана на энтузиазме и по следам неведомых мотиваций. В промышленной эксплуатации не применялась.
На этом все. Всем добра!
С пользой для клиентов, Рустем
Проверено на следующих конфигурациях и релизах:
- Управление торговлей, редакция 10.3, релизы 10.3.88.3