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