|   |   | 
| 
 | как применить метод пузырька в 1с | ☑ | ||
|---|---|---|---|---|
| 0
    
        СлоникЗеленый 06.10.23✎ 10:52 | 
        у  меня задача создать форму .
 1. вывести кнопку в командной панели 2. под кнопкой 2 строки 3. в первую строку ввести числа не по порядку 4. нажать кнопку 5. и во второй строке числа должны встать по порядку 6. нужно включить маску что бы можно было вводить только числа. 7. применить метод Пузырька я новичок не могу сообразить как сделать что бы все работало Что я сделал из списка Создал форму, вывел кнопку и 2 строки помогите пожалуйста ребят ) | |||
| 1
    
        Волшебник 06.10.23✎ 10:53 | 
        не используйте метод Пузырька     | |||
| 2
    
        СлоникЗеленый 06.10.23✎ 11:05 | 
        одно из условий этот метод.(((     | |||
| 3
    
        Волшебник 06.10.23✎ 11:06 | 
        (2) Мы отвергаем Ваши условия     | |||
| 4
    
        majkk 06.10.23✎ 11:08 | 
        (0) Да запросто. Что такое метод "пузырька"?     | |||
| 5
    
        Гена гуру 06.10.23✎ 11:08 | 
        (1) А почему? В том же экселе нормально работает такая сортировка.     | |||
| 6
    
        Гена гуру 06.10.23✎ 11:09 | 
        (4) маленькие (лёгкие) вверху, большие (тяжёлые) внизу. Как в "кровавой Мэри".     | |||
| 7
    
        boozin 06.10.23✎ 11:09 | 
        (5) Потому что в 1С полно возможностей делать подобные вещи без извращений... :)     | |||
| 8
    
        majkk 06.10.23✎ 11:10 | 
        (6) Ну ты даешь! Думаешь, я не знаю?     | |||
| 9
    
        Волшебник 06.10.23✎ 11:11 | 
        (5) в 1С есть нормальные методы сортировки. Метод пузырька придуман для того, чтобы показать студентам, как сортировать НЕ НАДО. Это самый медленный сортировки
 wiki:Сортировка_пузырьком Алгоритм считается учебным и практически не применяется вне учебной литературы, вместо него на практике применяются более эффективные алгоритмы сортировки. | |||
| 10
    
        Гена гуру 06.10.23✎ 11:12 | 
        (9) Ясно. Тормоз. Спасибо. 
 в смысле - сортировка тормоз, не я ) | |||
| 11
    
        Stepashkin 06.10.23✎ 11:18 | 
        (0) 
 Функция СортировкаПузырьком(Знач Массив) Для i = 0 По Массив.ВГраница() Цикл Для j = 0 ПО Массив.Вграница() - i - 1 Цикл Если Массив[j] > Массив[j + 1] Тогда Замена = Массив[j]; Массив[j] = Массив[j + 1]; Массив[j + 1] = Замена; КонецЕсли; КонецЦикла; КонецЦикла; Возврат Массив; КонецФункции | |||
| 12
    
        Stepashkin 06.10.23✎ 11:18 | 
        (0) А вообще лучше использовать стандартные механизмы платформы     | |||
| 13
    
        Stepashkin 06.10.23✎ 11:20 | 
        (0) Функция СортировкаСпискомЗначений(Знач Массив)
 СпЗнч = Новый СписокЗначений; СпЗнч.ЗагрузитьЗначения(Массив); СпЗнч.СортироватьПоЗначению(НаправлениеСортировки.Возр); Возврат СпЗнч.ВыгрузитьЗначения(); КонецФункции | |||
| 14
    
        Волшебник 06.10.23✎ 11:20 | 
        (11) Не стоит думать, что Знач поможет. Исходный массив будет испорчен (отсортирован)     | |||
| 15
    
        Волшебник 06.10.23✎ 11:20 | 
        (13) Здесь Знач лишнее, но по крайней мере исходный массив не портится.     | |||
| 16
    
        Stepashkin 06.10.23✎ 11:23 | 
        (15) согласен     | |||
| 17
    
        СлоникЗеленый 06.10.23✎ 11:37 | 
        скажите 
 я создаю 2 процедуры в модуле в первую нужно написать команду? (а какую команду не пойму???) что бы она вызывала метод Пузырька а во вторую сам метод Пузырьком ? | |||
| 18
    
        АгентБезопасной Нацио 06.10.23✎ 11:40 | 
        (4) 
 "Когда клеишь обои - главное, чтоб не было пузырей... А то мы как-то собрались с Васькой клеить обои, и взяли два пузыря..."© | |||
| 19
    
        Волшебник 06.10.23✎ 11:42 | 
        (17) Функцию для пузырька привели выше.     | |||
| 20
    
        Stepashkin 06.10.23✎ 11:57 | 
        (18) ВеселаяИстория()     | |||
| 21
    
        Волшебник 06.10.23✎ 11:58 | ||||
| 22
    
        АгентБезопасной Нацио 06.10.23✎ 12:04 | 
        (21) тут свои "светы" были... "Таня-две полоски", например,  да и прочие аналогичные.. Эх, были времена...     | |||
| 23
    
        Irbis 06.10.23✎ 12:06 | 
        (18) Ещё нужен шприц, чтобы удалить все пузыри после использования основных пузырей.     | |||
| 24
    
        Stepashkin 06.10.23✎ 12:16 | 
        (17) А зачем оно вам вообще? Учитесь?     | |||
| 25
    
        Stepashkin 06.10.23✎ 12:20 | 
        (21) Жаль, что я выпал в то время из жизни на 18 лет     | |||
| 26
    
        Волшебник 06.10.23✎ 12:26 | 
        (25) Кома?     | |||
| 27
    
        Stepashkin 06.10.23✎ 12:31 | 
        (26) хуже. ВС РФ     | |||
| 28
    
        Злопчинский 06.10.23✎ 12:40 | 
        (18) Первая статья конституции Молдавии: "Обои клеить без пузырей!"     | |||
| 29
    
        СлоникЗеленый 06.10.23✎ 13:06 | 
        &НаКлиенте
 Процедура ЧислоПоПорядку(Команда) ?????? КонецПроцедуры Функция СортировкаСпискомЗначений(Знач Массив) СпЗнч = Новый СписокЗначений; СпЗнч.ЗагрузитьЗначения(Массив); СпЗнч.СортироватьПоЗначению(НаправлениеСортировки.Возр); Возврат СпЗнч.ВыгрузитьЗначения(); КонецФункции Функция СортировкаПузырьком(Знач Массив) Для i = 0 По Массив.ВГраница() Цикл Для j = 0 ПО Массив.Вграница() - i - 1 Цикл Если Массив[j] > Массив[j + 1] Тогда Замена = Массив[j]; Массив[j] = Массив[j + 1]; Массив[j + 1] = Замена; КонецЕсли; КонецЦикла; КонецЦикла; Возврат Массив; КонецФункции что нужно прописать ,что бы сработала кнопка? ребят | |||
| 30
    
        Волшебник 06.10.23✎ 13:09 | 
        (29) 
 Напишите так: Процедура ЧислоПоПорядку(Команда)
      МассивИсходный = Новый Массив;
      МассивИсходный.Добавить(3);
      МассивИсходный.Добавить(2);
      МассивИсходный.Добавить(1);
      МассивОтсортированный = СортировкаПузырьком(МассивИсходный);
      Для Каждого а ИЗ МассивОтсортированный Цикл
           Сообщить(а);
      КонецЦикла;     
КонецПроцедуры | |||
| 31
    
        Stepashkin 06.10.23✎ 13:13 | 
        (29) В параметрах функций уберите Знач. Говорилось выше.     | |||
| 32
    
        Злопчинский 06.10.23✎ 13:14 | 
        можно еще напрячь препода (пятерка обеспечена будет!), произведя перестановку двух элементов без использования промежуточного буфера-переменной     | |||
| 33
    
        Donkey_hot 06.10.23✎ 13:15 | 
        (29) Что-нибудь типа:
 МассивДляСортировки = Новый Массив; Для Каждого Подстрока из СтрРазделить(ИсходнаяСтрока, " ") Цикл МассивДляСортировки.Добавить(Число(Подстрока)); КонецЦикла; ОтсортированныйМассив = СортировкаПузырьком(МассивДляСортировки); СтрокаРезультат = СтрСоединить(ОтсортированныйМассив, " "); //где ИсходнаяСтрока и СтрокаРезультат - имена строковых реквизитов на форме | |||
| 34
    
        Волшебник 06.10.23✎ 13:16 | 
        (32) Это только для чисел сработает. В 1С нет конструкций типа: 
 [a, b] = [b, a] | |||
| 35
    
        Donkey_hot 06.10.23✎ 13:17 | 
        (29) Функцию СортировкаСпискомЗначений можно грохнуть, а вот для СортировкиПузырьком желательно указать все-таки в явном виде директиву компиляции (и лучше наверное &НаСервереБезКонтекста, т.к. массив может быть достаточно большим)     | |||
| 36
    
        Donkey_hot 06.10.23✎ 13:18 | 
        (34) Так вроде про чиселки и речь...     | 
| Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |