|
Найти количество различных элементов в массиве. | ☑ | ||
---|---|---|---|---|
0
Нач программист
05.09.16
✎
14:38
|
Найти количество различных элементов в массиве.
МассивЧиселВСтроку=""; КоличествоСхожихЭлементов=0; а=0; МассивЧисел=Новый Массив(20); ГСЧ=Новый ГенераторСлучайныхЧисел(20); Для Счетчик=0 По 19 Цикл СлучайноеЧисло=ГСЧ.СлучайноеЧисло(1,40); МассивЧисел[Счетчик]=СлучайноеЧисло; МассивЧиселВСтроку=МассивЧиселВСтроку+МассивЧисел[Счетчик]+" "; КонецЦикла; Сообщить("Массив Чисел: "+МассивЧиселВСтроку); Для Счетчик=0 По 19 Цикл Для СчетчикПроверкиКаждогоЭлемента=0 По 19 Цикл Если Счетчик<>СчетчикПроверкиКаждогоЭлемента И МассивЧисел[Счетчик]=МассивЧисел[СчетчикПроверкиКаждогоЭлемента] Тогда КоличествоСхожихЭлементов=КоличествоСхожихЭлементов+1; КонецЕсли; КонецЦикла; КонецЦикла; Сообщить("Количество схожих элементов: "+КоличествоСхожихЭлементов); Сообщить("Количество различных элементов: "+(20-КоличествоСхожихЭлементов)); |
|||
1
Нач программист
05.09.16
✎
14:40
|
Неправильно считает цикл когда в массиве схожие элементы 3, 4, 5,. . . . .
|
|||
2
DTX 4th
05.09.16
✎
14:42
|
КолРазличных = 0;
Соответствие = Новый Соответсвие; Для Счетчик=0 По 19 Цикл Число = МассивЧисел[Счетчик]; Если Соответсвие[Число] = Неопределено Тогда КолРазличных = КолРазличных + 1; Соответсвие[Число] = КолРазличных; КонецЕсли; КонецЦикла; Сообщить(КолРазличных); |
|||
3
orefkov
05.09.16
✎
14:45
|
Соответствие = Новый Соответсвие;
Для Счетчик=0 По 19 Цикл Соответсвие[Число] = 1; КонецЦикла; Сообщить(Соответствие.Количество()); |
|||
4
Нач программист
05.09.16
✎
14:45
|
Соответствие - это массив да?
|
|||
5
PR
05.09.16
✎
14:47
|
(4) Нет
Массив да — это
|
|||
6
DTX 4th
05.09.16
✎
14:47
|
(3) Так и знал, что нужно в СП заглянуть)
|
|||
7
orefkov
05.09.16
✎
14:48
|
числа = Новый Массив;
... Ключи = Новый Соответствие; Для Каждого э Из числа Цикл Ключи[э] = 1; КонецЦикла; Сообщить(Ключи.Количество()); |
|||
8
Нач программист
05.09.16
✎
14:52
|
(2) Выдает такую ошибку
{Форма.Форма.Форма(105,15)}: Переменная не определена (Соответсвие) Если <<?>>Соответсвие[Число] = Неопределено Тогда (Проверка: Тонкий клиент) {Форма.Форма.Форма(107,14)}: Переменная не определена (Соответсвие) <<?>>Соответсвие[Число] = КолРазличных; (Проверка: Тонкий клиент) |
|||
9
orefkov
05.09.16
✎
14:52
|
Вот так точно будет
числа = Новый Массив; Ключи = Новый Соответствие; Для Каждого э Из числа Цикл Ключи.Вставить(э, 1); КонецЦикла; Сообщить(Ключи.Количество()); |
|||
10
palpetrovich
05.09.16
✎
14:53
|
вставлю 5 копеек :)
ТЗ = Новый ТаблицаЗначений; ТЗ.Колонки.Добавить("Числа"); ТЗ.ЗагрузитьКолонку(МассивЧисел, "Числа"); ТЗ.Свернуть("Числа",); сообщить("разных "+ТЗ.КоличествоСтрок()); |
|||
11
PR
05.09.16
✎
14:54
|
(8) Один безграмотный, другой слепой
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |