|   |   | 
| 
 | Найти количество различных элементов в массиве. | ☑ | ||
|---|---|---|---|---|
| 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) Один безграмотный, другой слепой     | 
| Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |