|
v7: Как в цикле выполнять действие через определенное количество шаков цикла ?? | ☑ | ||
---|---|---|---|---|
0
raykom
03.11.14
✎
11:46
|
Не отпускает. Гон продолжается ...
Сижу вот, кубатурю. Как красиво выполнить действие через заданное количество шагов цикла. Но счетчиков нафигачить - понятно. Может кто что красивое подкинет ? |
|||
1
Скай
03.11.14
✎
11:49
|
остаток от деления = 0
|
|||
2
raykom
03.11.14
✎
11:50
|
(1)А не четное количество ?
|
|||
3
Скай
03.11.14
✎
11:51
|
Сч%Шаг = 0
|
|||
4
Мимохожий Однако
03.11.14
✎
11:53
|
(0)Сразу задай нужное количество циклов
|
|||
5
raykom
03.11.14
✎
11:55
|
(3)Не соображу пока - что это )
(4)Ты смеешься ? )) |
|||
6
Мимохожий Однако
03.11.14
✎
11:57
|
Я абсолютно серьёзен. Из СП:
Для <?> = <?> По <?> Цикл КонецЦикла; Синтаксис: Для <Имя_переменной>=<Выражение1> По <Выражение2> Цикл <операторы> КонецЦикла; Назначение: оператор цикла с шагом. Параметры: <Имя_переменной> - идентификатор переменной (счетчик цикла); <Выражение1> - начальное значение счетчика цикла; <Выражение2> - конечное значение счетчика цикла; <операторы> - последовательность исполняемых операторов. Подробнее см. в документации, глава ''Управляющие операторы'' |
|||
7
Мимохожий Однако
03.11.14
✎
11:57
|
Смотри Выражение2
|
|||
8
Абыр
03.11.14
✎
11:58
|
ответ в (3)
|
|||
9
raykom
03.11.14
✎
12:00
|
(7)Ну так поставлю Выражение2=три и что ? А у меня в выборке 33 элемента и все их надо пройти одним циклом.
А через 3 или любое указанное количество шагов выполнять действо. (8)Верю, просто не догоняю - как ... |
|||
10
raykom
03.11.14
✎
12:02
|
Отойду.
|
|||
11
Мимохожий Однако
03.11.14
✎
12:04
|
(9)Что за выборка? По выходным телепатдлл выключен ))
|
|||
12
raykom
03.11.14
✎
12:05
|
(11)Извини. НУ цикл обхода по выборке ))
|
|||
13
Мимохожий Однако
03.11.14
✎
12:09
|
Да ладно...Если при обходе твоей выборки есть условие, не зависящая от счетчиков. Например, какое-то поле выборки. То после сравнения этого условия вставляй Прервать и всё.
ИМХО, возможно, я не все твои определения угадываю. Но помочь очень хочется. )) |
|||
14
raykom
03.11.14
✎
12:12
|
Условие одно - определенное количество шагов цикла.
Но без кучи счетчиков как реализовать Втыкаю вот в (8) Там понятно что процент от количества. Тока тихо думаю, пока не соображу, как написать то по русски ... |
|||
15
Мимохожий Однако
03.11.14
✎
12:13
|
(14)Только один счетчик. Откуда куча-то?
|
|||
16
raykom
03.11.14
✎
12:14
|
Ну СчетчикЦикла - раз.
А как следить да заданным количеством шагов СчетчикЦикла ? |
|||
17
raykom
03.11.14
✎
12:15
|
да=за
|
|||
18
Мимохожий Однако
03.11.14
✎
12:17
|
(16)если перевести Сч%Шаг = 0
На твой пример: Шаг = 17 при достижении СчетчикЦикла = 17 выражение Если СчетчикЦикла%Шаг = 0 Тогда Прервать://к чертовой матери КонецЦикла; .. |
|||
19
raykom
03.11.14
✎
12:25
|
(18)Блят ...
Я тупой, понятно )) Но в СчетчикЦикла%Шаг - что такое % ?? Это процент или логическое выражение ?? |
|||
20
Мигало
03.11.14
✎
12:26
|
Остаток от деления
|
|||
21
raykom
03.11.14
✎
12:27
|
Ага. А в СП его нет. Может это от ДенисЧа СП ?
|
|||
22
Мимохожий Однако
03.11.14
✎
12:28
|
В ЖЖК есть в самом начале.
|
|||
23
raykom
03.11.14
✎
12:29
|
:DD
Ну, напрашивается вопрос - где ЖЖК |
|||
24
raykom
03.11.14
✎
12:30
|
Ну вот тогда решение. Всем спасибо. МимохожийОднако за командную поддержку особенно ))
|
|||
25
Мигало
03.11.14
✎
12:30
|
(23) В английской палате мер и весов ;)
|
|||
26
Мимохожий Однако
03.11.14
✎
12:32
|
(23)В любой бухгалтерии в желтой коробке есть "ненужные" книжки. Забери у них
|
|||
27
raykom
03.11.14
✎
12:34
|
Понял.
|
|||
28
raykom
03.11.14
✎
12:34
|
Поехал в Англию :DD
|
|||
29
raykom
03.11.14
✎
13:37
|
Какая то мазафака все равно.
СчЦикл = 0; Пока Запрос.Группировка(1) = 1 Цикл СчЦикл = СчЦикл+1; Если СчЦикл%Шаг = 0 Тогда Сообщить(СчЦикл); КонецЕсли; В целом работает, но если ШАг = 2, то первые две строки сообщения пустые, при чем, одна со значком сообщения (синенький треугольничек слева на табло), а вторая просто пустая. А если Шаг = 3 то первая строка в сообщении - 129.36 Если Шаг = 4 то 313.90 Какие то нпонятные остатки от деления. И почему сообщение выдается, если СчЦикл = 313.90 о_О ?? |
|||
30
alle68
03.11.14
✎
15:09
|
(29) А ниже по коду что делаешь с "СчЦикл" и зачем?
|
|||
31
Злопчинский
03.11.14
✎
15:11
|
(1) бяка решение. остаток от деления веьсма тормозная операция. при больших циклах - будет небольшая, но всетаки лишняя нагрузка. вариант со счетчиком гораздо быстрее.
|
|||
32
Злопчинский
03.11.14
✎
15:14
|
Граница = 30;
Шаг = 1; сч = 0; Цикл чегототам сч = сч + Шаг; Если сч > Граница Тогда //чтотоделаем сч = 0; КонецЕсли; КонецЦикла |
|||
33
raykom
03.11.14
✎
15:37
|
(30)Это не суть. Главое - определить момент для действия.
(32)Да я вот тоже, решил забить и навертеть счетчиков. Так примерно и запилил. В самом то начале (0) спрашивал как без лишних счетчиков сделать. Хрен с ними. Пусть будут |
|||
34
ivsher
04.11.14
✎
11:35
|
Можно как то так пробовать.
Шаг=ЖелаемыйШаг-1 Для сч=Начало до Конца Цикл Сч=Сч+Шаг; Если Сч>Конца Тогда Прервать; КонецЕсли; Сообщить(Сч); КонецЦикла |
|||
35
ivsher
04.11.14
✎
11:39
|
Кстати подумав можно и условие убрать.
Шаг=ЖелаемыйШаг-1 Для сч=Начало до Конца-Шаг Цикл Сч=Сч+Шаг; Сообщить(Сч); КонецЦикла |
|||
36
ivsher
04.11.14
✎
11:45
|
в 35 можем потерять последнее значение :) Недодумал слегка. Надо проверить на кратность Конца/Шаг. Если делтся без остатка то Цикл дл Конца иначе до Конца-Шаг. Вроде так должно быть правильно и условия в теле цикла исключаем.
|
|||
37
raykom
04.11.14
✎
15:59
|
(36)Ну это уже высшая математика с прогрессией получается ...
|
|||
38
herfis
04.11.14
✎
16:24
|
% - удобнее и нагляднее всего. Экономить на нем имеет смысл только при десятках тысяч итераций, если не больше, и то если внутри чистая арифметика. В противном случае - бессмысленно.
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |