|   |   | 
| 
 | Получить транспонированную матрицу | ☑ | ||
|---|---|---|---|---|
| 0
    
        YamEgor 16.11.20✎ 10:00 | 
        добрый день! подскажите как получить транспонированную Матрицу: Сделать матрицу случайных чисел 5 x 5. Вывести пользователю. Получить по исходной матрице транспонированную матрицу. Вывести пользователю.
 Генератор = Новый ГенераторСлучайныхЧисел(); Матрица = Новый Массив(5,5); Для Инд = 0 по Матрица.ВГраница() Цикл Для ИндКол = 0 По Матрица[Инд].ВГраница() Цикл Матрица[Инд][ИндКол] = Генератор.СлучайноеЧисло(1,100); КонецЦикла; КонецЦикла; Для каждого СтрМасс Из Матрица Цикл Сообщить("Матрица "+СтрМасс[0]+" "+СтрМасс[1]+" "+СтрМасс[2]+" "+СтрМасс[3]+" "+СтрМасс[4]); КонецЦикла; НовМатрица = Новый Массив; Для Стр = 0 По Матрица.Количество() - 1 Цикл Для Значение = 0 По Матрица[Стр].Количество() - 1 Цикл Для Сч = 1 По Значение Цикл НовСтр = Сред(Стр,Сч,1) + НовСтр; КонецЦикла; НовМатрица.Добавить(НовСтр); НовСтр = ""; КонецЦикла; КонецЦикла; не пойму почему не получается? | |||
| 1
    
        YamEgor 16.11.20✎ 10:46 | 
        транспонированная матрица - это когда строки матрицы становятся столбцами     | |||
| 2
    
        YamEgor 16.11.20✎ 11:08 | 
        каждая строка у матрицы это массив из 5 элемнтов, и теперь каждый элемент в строке нужно поместить в новый массив и это сделать с каждой строкой, и потом 5 новых массивов добавить как строки новой транспонированной матрицы. Кто то может помочь это сделать?     | |||
| 3
    
        Mikeware 16.11.20✎ 11:24 | 
        (2) а зачем _нам_ это?     | |||
| 4
    
        D_E_S_131 16.11.20✎ 11:28 | 
        НовМатрица = Новый Массив ?? (5,5);// так же наверное должно быть?
 НовМатрица.Добавить(НовСтр);// а раньше было "Матрица[Инд][ИндКол] = Генератор.СлучайноеЧисло(1,100);" - почему так же не использовать? | |||
| 5
    
        D_E_S_131 16.11.20✎ 11:29 | 
        И еще, может не правильно понял написанный текст, но ИМХО (1) не сходится с (2).     | |||
| 6
    
        YamEgor 16.11.20✎ 11:39 | 
        (5) немного запарился я уже, плохо голова соображает..     | |||
| 7
    
        YamEgor 16.11.20✎ 11:40 | 
        (3) это на собеседовании задали решить.     | |||
| 8
    
        fisher 16.11.20✎ 11:45 | 
        (6) Отладчик? Бумажка с ручкой?     | |||
| 9
    
        YamEgor 16.11.20✎ 11:49 | 
        (5) Транспонирование матрицы - это операция над матрицей, когда ее строки становятся столбцами с теми же номерами. пояснения с сайта Webmath.ru     | |||
| 10
    
        HawkEye 16.11.20✎ 11:53 | 
        (7) зарплатой тоже будешь делиться? )))     | |||
| 11
    
        Креатив 16.11.20✎ 11:55 | 
        (0)В олдскульных языках программирования это делалось при помощи двух вложенных циклов.
 для i = 1 по n цикл для j = 1 по n цикл н[i, j] = c[j, i] конеццикла конеццикла | |||
| 12
    
        fisher 16.11.20✎ 11:56 | 
        Это элементарная ТРЕНИРОВОЧНАЯ задачка. Можно попросить кого-то сделать вместо тебя утреннюю зарядку, но польза от этого будет весьма сомнительная для тебя.     | |||
| 13
    
        Василий Алибабаевич 16.11.20✎ 11:56 | 
        (11) Для этого теорию алгоритмов учить нужно было. А не так как сейчас - гугление наше фсьо.     | |||
| 14
    
        ДенисЧ 16.11.20✎ 11:57 | 
        (13) ТКВ     | |||
| 15
    
        Irbis 16.11.20✎ 11:58 | 
        (11) А без второй матрицы? Нам за такое конечности могли клавиатурой поотбивать.     | |||
| 16
    
        Василий Алибабаевич 16.11.20✎ 12:00 | 
        (14) ТК ответ: Совсем недавно студенту 4-го курса писал алгоритмы поиска в массивах МИН, МАКС, частичной суммы. Буквально на прошлой неделе. Теория алгоритмов у них была во втором семестре 1-го курса. Сессию сдали и пипетц. Забыли все.     | |||
| 17
    
        Ботаник Гарден Меран 16.11.20✎ 12:01 | 
        Таблицу в источник данных в СКД.
 В настройках структуры таблицу, в которой строки - колонки, а колонки - строки. На выходе - транспонированная таблица. | |||
| 18
    
        YamEgor 16.11.20✎ 12:05 | 
        (12) так я же и стараюсь разобраться..     | |||
| 19
    
        Василий Алибабаевич 16.11.20✎ 12:07 | 
        (17) Можно еще выгрузить в SQL оттуда экспортировать в XML, а потом уже его и разбирать.     | |||
| 20
    
        Mikeware 16.11.20✎ 12:10 | 
        (16) "теорию алгоритмов проходили на втором семестре и мимо"     | |||
| 21
    
        Mikeware 16.11.20✎ 12:11 | 
        (19) можно нанять индуса, отправлять ему электронкой и получать обратно уже транспонированную     | |||
| 22
    
        acht 16.11.20✎ 12:15 | 
        (18) [Голосом Дроздова] 
 - А мы с вами пока проследим за рождением нового Ливингстара. Вот он выбрался из обломков своей скорлупы и сушит на солнце свой пушок... | |||
| 23
    
        fisher 16.11.20✎ 12:15 | 
        (18) Нет. Ты пришел за решением. От готового решения такой простой задачи со стороны тебе будет больше вреда чем пользы. Родив его сам - ты запомнишь навсегда.     | |||
| 24
    
        Mikeware 16.11.20✎ 12:20 | 
        (22) :-))) 
 Дроздов не говорит, где у них гнездо? | |||
| 25
    
        YamEgor 16.11.20✎ 12:24 | 
        (23)     
 ну тогда вот это наверно подойдет? //размерность массива, можно оперативно менять нн = 5; мм = 5; Генератор = 0;//для простоты проверки Матрица = Новый Массив(нн,мм);//(5,4); Для поз1 = 0 по нн - 1 Цикл Для поз2 = 0 По мм - 1 Цикл Генератор = Генератор + 1; Матрица[поз1][поз2] = Генератор;//.СлучайноеЧисло(1,100); КонецЦикла; КонецЦикла; Сообщить("Исходный массив:"); Для поз1 = 0 по нн - 1 Цикл Значения = ""; Для поз2 = 0 По мм - 1 Цикл Значения = Значения + Матрица[поз1][поз2] + ", "; КонецЦикла; Сообщить(Значения); КонецЦикла; НовМатрица =Новый Массив(нн, мм);//(4,5); Для поз1 = 0 по нн - 1 Цикл Для поз2 = 0 По мм - 1 Цикл НовМатрица[поз2][поз1] = Матрица[поз1][поз2]; КонецЦикла; КонецЦикла; //вывод матрицы 2 Сообщить("транспонированный массив:"); Для поз1 = 0 по нн - 1 Цикл Значения = ""; Для поз2 = 0 По мм - 1 Цикл Значения = Значения + НовМатрица[поз1][поз2] + ", "; КонецЦикла; Сообщить(Значения); КонецЦикла; (11) большое спасибо за помощь да мне уже 60 лет вот изучаю 1С ...Сори | |||
| 26
    
        Irbis 16.11.20✎ 12:29 | 
        (24) Хочешь добавить ещё один в Чёрную книгу?     | |||
| 27
    
        Irbis 16.11.20✎ 12:32 | 
        (25) Для квадратной матрицы, хоть и не оптимально (главная диагональ переставляется, чего можно не делать), прокатит а для произвольной >>НовМатрица =Новый Массив(нн, мм)//(4,5); индексы местами не поменял.     | |||
| 28
    
        YamEgor 16.11.20✎ 12:43 | 
        (27) да я уже потом увидел спасибо     | |||
| 29
    
        Креатив 16.11.20✎ 13:59 | 
        (15)Очень часто исходная матрица тоже нужна. А транспонирование внутри матрицы - задача ненамного сложней.     | 
| Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |