Имя: Пароль:
1C
1С v8
Массив генератор случайных чисел
0 EEC
 
25.04.22
20:56
Добрый вечер,
подскажите, по вопросу составления кода:
составлен массив генератор случайных чисел, и есть определенное поле1 в котором указывается  число N, нужно чтобы  количество случайных чисел было N (указанному в поле1)
Не могу понять, где его нужно отразить:
    ГСЧ = Новый ГенераторСлучайныхЧисел();
    МассивСлучЧисла= Новый Массив(ГСЧ.СлучайноеЧисло(0, 26));
    Для Инд = 0 По МассивСлучЧисла.ВГраница() Цикл
        МассивСлучЧисла[Инд] = ГСЧ.СлучайноеЧисло(0, 26);        
    КонецЦикла;
    Размер = ГСЧ.Количество();
1 Лефмихалыч
 
25.04.22
22:09
а вопрос-то какой?
2 b_ru
 
25.04.22
22:47
Вместо МассивСлучЧисла= Новый Массив(ГСЧ.СлучайноеЧисло(0, 26));
нужно МассивСлучЧисла= Новый Массив(N);
3 EEC
 
26.04.22
08:52
Спасибо большое, сейчас поменяю.
4 Serg_1960
 
26.04.22
08:59
Не отходя от кассы, сразу поменяй "Размер = ГСЧ.Количество();" :)
5 EEC
 
26.04.22
10:20
Спасибо.
но, в случае замены на МассивСлучЧисла= Новый Массив(N); где тогда указывается поиск случайных чисел в границе от 0 до 26?
6 1Сергей
 
26.04.22
10:22
(5) внутри цикла
7 hhhh
 
26.04.22
10:25
(5) и генератор

ГСЧ = Новый ГенераторСлучайныхЧисел();

тоже перенеси внутрь цикла, иначе у тебя будет не генератор, а туфта.
8 EEC
 
26.04.22
10:27
Спасибо, работает:
    ГСЧ = Новый ГенераторСлучайныхЧисел();
    N=Поле2;
    МассивСлучЧисла= Новый Массив(N);
    Для Инд = 0 По МассивСлучЧисла.ВГраница() Цикл
        МассивСлучЧисла[Инд] = ГСЧ.СлучайноеЧисло(0, 26);        
    КонецЦикла;
    СуммаМ=СуммаМассива(МассивСлучЧисла);
    КоличествоМ= МаксимумМассива(МассивСлучЧисла);
    //РазницаСПолем1= РасчетРазницыСПолем1(МассивСлучЧисла);
    Поле3=(СтрСоединить(МассивСлучЧисла, " ")+СтрШаблон("   Сумма чисел в строке: %1/%2",СуммаМ,КоличествоМ));
9 EEC
 
26.04.22
10:29
Теперь строки (количество их от Поля1) нужно добавить, не подскажите как?
10 Said_We
 
26.04.22
10:43
11 1Сергей
 
26.04.22
10:44
(9) Для начала определиться куда надо строки добавить
12 Said_We
 
26.04.22
10:47
13 EEC
 
26.04.22
11:25
Спасибо всем,
Для добавления Строк уже создано Поле3, в котором пока показывается только одна строка.
14 1Сергей
 
26.04.22
12:13
(13) НоваяСтрока = Поле.Добавить();
15 EEC
 
26.04.22
12:31
нет, что-то не так:
Значение не является значением объектного типа (Добавить)
{ОбщаяФорма.Форма.Форма(20)}:    НоваяСтрока = Поле3.Добавить();
{ОбщаяФорма.Форма.Форма(4)}:    Данные();
16 hhhh
 
26.04.22
12:37
(15) значит Поле3 у вас не ТабличноеПоле, а что-то другое.
17 EEC
 
26.04.22
12:53
Поле3 Строка Многострочный режим, нужно перевести в ?
18 hhhh
 
26.04.22
13:22
(17) тогда

СтрСоединить(МассивСлучЧисла, " ")

явно не пробел должен быть. Откуда вдруг пробел взялся? Вы же всё в одну строку лепите.
19 EEC
 
26.04.22
14:57
Этот вывод результата, косметику буду позже делать, сейчас нужно решить как массив перевести в матрицу и выводить несколько строк ГСЧ в зависимости от заданного параметром Поле1(число).
Здесь можно обсудить любую тему при этом оставаясь на форуме для 1Сников, который нужен для работы. Ymryn