|
Заполнить двухмерный массив | ☑ | ||
---|---|---|---|---|
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
|
Это пятиричная система счистления.
Есть стандартная функция перевода десятичной системы в любую по заданому основанию потом просто заносишь разряды в колонки до заполнения |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |