|   |   | 
| 
 | Заполнить двухмерный массив | ☑ | ||
|---|---|---|---|---|
| 0
    
        serg999 11.06.21✎ 10:22 | 
        Добрый день .
 Уже мозг сломал .. надо заполнить массив, есть кол.столбцов = Х и кол.строк = Y Пример для Х = 3, Y = 4 0 0 0 0 0 1 0 0 2 0 0 3 0 0 4 0 1 0 0 1 1 0 1 2 0 1 3 0 1 4 0 2 0 . . 4 4 4 | |||
| 1
    
        Beduin 11.06.21✎ 10:23 | 
        Цикл по Х
 Цикл по У ту-ту-ту | |||
| 2
    
        mikecool 11.06.21✎ 10:24 | 
        Новый масиив[Х][Y]     | |||
| 3
    
        Vadim_37 11.06.21✎ 10:27 | 
        Слова = Новый Массив(3, 2);
 Слова[0][0] = "Юрий"; Слова[0][1] = "Гагарин"; Слова[1][0] = "Герман"; Слова[1][1] = "Титов"; Слова[2][0] = "Валентина"; Слова[2][1] = "Терешкова"; | |||
| 4
    
        serg999 11.06.21✎ 10:28 | 
        Ну это понятно .. а дальше     | |||
| 5
    
        serg999 11.06.21✎ 10:29 | 
        Создать я его создал, а вот заполнить ...     | |||
| 6
    
        Beduin 11.06.21✎ 10:30 | 
        (4)(5) Ты нас троллишь или реально пишешь?     | |||
| 7
    
        serg999 11.06.21✎ 10:31 | 
        Да блин реально не получается ...     | |||
| 8
    
        Малыш Джон 11.06.21✎ 10:32 | 
        (7) Для А = 0 По 624 Цикл
 Массив[А][0] = А%5; А = Цел(А/5); Массив[А][1] = А%5; А = Цел(А/5); Массив[А][2] = А%5; А = Цел(А/5); КонецЦикла; | |||
| 9
    
        Малыш Джон 11.06.21✎ 10:33 | 
        +(8) Ну только не А в цикле делить конечно, а в какую нибудь временную копировать     | |||
| 10
    
        ДенисЧ 11.06.21✎ 10:35 | 
        Для сч1 = 1 по Х Цикл
 Для сч2 = 1 по У Цикл Й = сч1 + сч2; масс[Х][У] = Й; КонецЦикла; КонецЦИкла | |||
| 11
    
        Малыш Джон 11.06.21✎ 10:36 | 
        (10) Y - не количество строк массива     | |||
| 12
    
        Малыш Джон 11.06.21✎ 10:37 | 
        +(11) а , пардон, в описании именно так и написано, хотя в приведенном примере логика другая     | |||
| 13
    
        SeriyP 11.06.21✎ 10:46 | 
        (0) пример не соответствует описанию по количеству строк     | |||
| 14
    
        SeriyP 11.06.21✎ 10:48 | 
        У - это количество строк в "блоке"     | |||
| 15
    
        SeriyP 11.06.21✎ 10:48 | 
        1     | |||
| 16
    
        serg999 11.06.21✎ 10:58 | 
        Как правильно объяснить .. надо заполнить массив по всем возможным вариантам .. 
 Стобцов -3; Строк -4; 0 0 0 0 0 1 0 0 2 0 0 3 0 0 4 <- Тут переход на другой столбец, так как строк 4 0 1 0 0 1 1 0 1 2 0 1 3 0 1 4 <- Тут переход на другой столбец 0 2 0 0 2 1 ... ну и т.д. . . 4 4 4 - тут завершение .. | |||
| 17
    
        serg999 11.06.21✎ 11:00 | 
        (8) сейчас пробую     | |||
| 18
    
        acht 11.06.21✎ 11:03 | 
        (16) Представь себе хорошо изученную последователность чисел:
 000 001 002 003 004 005 006 007 008 009 010 011 012 ... 098 099 100 101 102 ... Понятно, как она формируется по разрядам? =) | |||
| 19
    
        SeriyP 11.06.21✎ 11:48 | 
        тут еще условие должно быть что У <= 9     | |||
| 20
    
        polosov 11.06.21✎ 12:21 | 
        У вас массив из какого языка программирования?
 Вроде 3 на 4 = 12 элементов, а у вас тут чисел что-то у всех многовато. | |||
| 21
    
        serg999 11.06.21✎ 12:23 | 
        (20) 1C ..
 Мне надо перебрать все возможные варианты .. | |||
| 22
    
        acht 11.06.21✎ 12:42 | 
        (20) У него "кол.строк" имеет особый смысл - это он так "основание системы счисления" называет.     | |||
| 23
    
        serg999 11.06.21✎ 13:24 | 
        Вот такой "крокодил" получился ..
 Процедура Команда1 (Команда) ВсегоСтолбцов = Столбцов; ВсегоСтрок = Pow (Строк+1, Столбцов); знч = 0; м = Новый массив (ВсегоСтолбцов+1, ВсегоСтрок+1); стл = ВсегоСтолбцов; Пока стл >= 1 Цикл Для стр = 0 По ВсегоСтрок Цикл Если стл = ВсегоСтолбцов Тогда //Первый столбец с края Если знч >= Строк ИЛИ стр = 0 Тогда знч = 0; Иначе знч = знч + 1; КонецЕсли; Иначе сумм = 0; Для яч = стл+1 По ВсегоСтолбцов Цикл сумм = сумм + м[яч][стр]; КонецЦикла; Если стр = 0 Тогда знч = 0; ИначеЕсли сумм = 0 Тогда знч = знч + 1; Если знч > Строк Тогда знч = 0; КонецЕсли; КонецЕсли; КонецЕсли; м[стл][стр] = знч; КонецЦикла; знч = 0; стл = стл - 1; КонецЦикла; КонецПроцедуры | |||
| 24
    
        Малыш Джон 11.06.21✎ 13:40 | 
        (23)  то есть вот так тебя не устроило:
 Х = 3; У = 4; МаксА = Pow(У+1,Х)-1; Массив = Новый Массив(МаксА+1,Х); Для А = 0 По МаксА Цикл temp = А; Массив[А][0] = temp%5; temp = Цел(temp/5); Массив[А][1] = temp%5; temp = Цел(temp/5); Массив[А][2] = temp%5; temp = Цел(temp/5); КонецЦикла; | |||
| 25
    
        Малыш Джон 11.06.21✎ 13:42 | 
        +(24) ну с учетом переменного Х:
 МаксА = Pow(У+1,Х)-1; Массив = Новый Массив(МаксА+1,Х); Для А = 0 По МаксА Цикл temp = А; Для В = 0 По Х-1 Цикл Массив[А][В] = temp%5; temp = Цел(temp/5); КонецЦикла; КонецЦикла; | |||
| 26
    
        Вафель 11.06.21✎ 14:00 | 
        Тут же просто 3 цикла нужно     | |||
| 27
    
        serg999 11.06.21✎ 14:08 | 
        (24) Ну, недопер .. (25) Малыш Джон, красиво!     | |||
| 28
    
        Cthulhu 11.06.21✎ 15:08 | 
        только не 5 а (Y+1) наверное...
 а вообще если глянуть внмательнее - в (0) каждая строка - это +1 от предыдущей строки в (Y+1)-ричной системе счисления. от 1 до (Y+1)^X-1 | |||
| 29
    
        Cthulhu 11.06.21✎ 15:12 | 
        ЗЫ: 444 это 5^3-1 = 124 в 5-ричной системе счисления (4*5^2 + 4*5^1 + 4*5^0)     | |||
| 30
    
        Кулибин 11.06.21✎ 16:44 | 
        Думаю, что этого будет достаточно:
 //Если шаблон "01", то перевод будет осуществлен в двоичную систему счисления, если "01234567", то в восьмиричную, если "0123456789ABCDEF", то в шестнадцатиричную Функция Из_Число_В_XСчисл(Знач Значение, Шаблон) Результат=""; Основание = СтрДлина(Шаблон); Пока Значение>0 цикл Остат = Значение%Основание; Результат1=Сред(Шаблон,Остат+1,1); Значение = (Значение-Остат)/Основание; Результат = Результат1 + Результат; КонецЦикла; Возврат Результат; КонецФункции | |||
| 31
    
        DES 11.06.21✎ 19:18 | 
        Это пятиричная система счистления.
 Есть стандартная функция перевода десятичной системы в любую по заданому основанию потом просто заносишь разряды в колонки до заполнения | 
 
 | Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |