Имя: Пароль:
1C
 
Итерация, обьясните.
0 мистер игрек
 
11.11.09
11:21
1. Первый 0% (0)
2. Второй 0% (0)
3. Оба 0% (0)
4. Ни один 0% (0)
5. Свой вариант 0% (0)
Всего мнений: 0

1.

а=0;
Для б=1 По 10 Цикл
  а=а+б;
КонецЕсли;

2.

Для Каждого СтрокаТЗ Из ТЗ Цикл
  А = СтрокаТЗ.Значение;
КонецЦикла

Вопрос: Какой из этих двух кодов относится к итерации? Если относится или не относится почему? Только сильно не ругайте :)
1 H A D G E H O G s
 
11.11.09
11:22
1)
2 Ненавижу 1С
 
гуру
11.11.09
11:22
(0) собеседование?
Итерация — это организация обработки данных, при которой действия повторяются многократно, не приводя при этом к вызовам самих себя.
Так что оба
3 Mort
 
11.11.09
11:23
Интересно кто тебе такой вопрос задал.
4 Живой Ископаемый
 
11.11.09
11:23
оба!
5 Ненавижу 1С
 
гуру
11.11.09
11:23
голосовалку прикрутите
6 Живой Ископаемый
 
11.11.09
11:23
В первом Итератор - переменная б, во втором - СтрокаТЗ
7 H A D G E H O G s
 
11.11.09
11:24
8 мистер игрек
 
11.11.09
11:24
(3) Сынишку в детсаде спросили
9 Невский Александр
 
11.11.09
11:24
(0) вопрос глупый ... Итерация - это цикл
10 мистер игрек
 
11.11.09
11:24
(9) Любой цикл?
11 Господин ПЖ
 
11.11.09
11:24
(0) тупой вопрос какой-то... ну выдумал задающий себе определение (или в педовокии прочитал) - всем сидеть угадывать? Какое это отношение к работе имеет
12 Ненавижу 1С
 
гуру
11.11.09
11:24
(6) итератора может и не быть согласно определения в (2), а итерация есть
13 Mort
 
11.11.09
11:25
(9) Не точно. Один проход цикла.
14 Живой Ископаемый
 
11.11.09
11:25
(12) в данном-то случае есть...
15 Господин ПЖ
 
11.11.09
11:25
если по ссылке от Ежова то №1. Второе порсто перебор коллекции
16 мистер игрек
 
11.11.09
11:26
(11) еще как имеет, я сегодня в УПП наткнулся на итерацию
17 Ненавижу 1С
 
гуру
11.11.09
11:26
(15) я в (2) дал определение оттуда же, так что оба
18 ЗлобнийМальчик
 
11.11.09
11:26
(0) если требуется выбрать то выбирайте первое
19 Невский Александр
 
11.11.09
11:26
(16) а до этого что никогда циклов не видел ???
20 Ненавижу 1С
 
гуру
11.11.09
11:26
(16) и что? рукоблудство это тоже итерации
21 Господин ПЖ
 
11.11.09
11:26
(16) ппц... не кури больше
22 Живой Ископаемый
 
11.11.09
11:27
2(15) Второе тоже, потому что мы не пишем столько раз сколкьо строк в коллекции
А = ТЗ[0].Значение;
А = ТЗ[1].Значение;
.
.
А = ТЗ[N].Значение;
23 Artful Den
 
11.11.09
11:27
(8) Детсад с углубленным изучением 1С? )))
24 Ненавижу 1С
 
гуру
11.11.09
11:27
(23) может у них C++ или Java
25 Живой Ископаемый
 
11.11.09
11:27
толстый троллинг... :)
26 skunk
 
11.11.09
11:28
блин по-русски ... итерация это просто повторение
27 Господин ПЖ
 
11.11.09
11:28
(17) тогда надо спрашивающего поразить в самое сердце встречным вопросом - "вам итерация вообще, или в программировании?"
28 Ненавижу 1С
 
гуру
11.11.09
11:29
(27) ну это да, я по дефолту считал в программировании
29 skunk
 
11.11.09
11:30
(20)как тонко ... но более правильно рукоблудие это несколько итераций
30 Ненавижу 1С
 
гуру
11.11.09
11:30
(29) там же множественное число написано
31 мистер игрек
 
11.11.09
11:35
(19) Циклов видел, но в УПП каментах явно написали, что это итерация. Если Цикл и итерация одно и то же, тогда нафига явно написали?
32 Ненавижу 1С
 
гуру
11.11.09
11:36
(31) покажи где? модуль и процедура
и это тебя испугало?
33 Живой Ископаемый
 
11.11.09
11:36
2(31) приведи-ка фрагмент с этой надписью.. а то мы сейчас навоображаем что там написано
34 мистер игрек
 
11.11.09
11:38
(33)
   ШагИтерации = 0;    
   МаксимальноеЧислоШагов = 100;
   
   Пока Не РезультатПолучен И (ШагИтерации < МаксимальноеЧислоШагов) Цикл
       
       ШагИтерации = ШагИтерации + 1;
       РезультатПолучен = Истина;        
       
       // Вычисляем вспомогательные переменные
       РезультирующийПроцентОПВ = ПроцентОПВ * ПризнакИсчисленияОПВ * (1 - ПризнакПрименятьОграничениеПоДоходамОПВ);
       
       ФиксЧастьОПВ             = ПризнакИсчисленияОПВ * (БазаДляИсчисленияОПВ * ПроцентОПВ * (1 - ПризнакПрименятьОграничениеПоДоходамОПВ) +
                                                          ПризнакПрименятьОграничениеПоДоходамОПВ * МаксСуммаОПВ);
       РезультирующийПроцентИПНиОПВ = ПризнакРасчетаИПН * ПроцентИПН * (1 - РезультирующийПроцентОПВ);
                                           
       ФиксЧастьИПН            = ПризнакРасчетаИПН * ПроцентИПН * (БазаДляИсчисленияИПН - ОстатокЛьготы - ФиксЧастьОПВ - ОстатокВычета);
       
       КоэффициентИПН = КомпенсироватьИПН - КомпенсироватьУдержания * (ПроцентКомпенсируемыхУдержанийБезИПН + ПроцентКомпенсируемыхУдержанийБезИПНиОПВ);
       КоэффициентОПВ = КомпенсироватьОПВ - КомпенсироватьУдержания * (ПроцентКомпенсируемыхУдержанийБезОПВ + ПроцентКомпенсируемыхУдержанийБезИПНиОПВ);
       ПроцентКомпенсируемыхУдержаний = ПроцентКомпенсируемыхУдержанийБезИПН + ПроцентКомпенсируемыхУдержанийБезОПВ +
                                           ПроцентКомпенсируемыхУдержанийБезИПНиОПВ + ПроцентПрочихКомпенсируемыхУдержаний;
                                         
       Числитель = (ИскомаяСуммаНачислений +
                   КоэффициентИПН * ФиксЧастьИПН +
                   КоэффициентОПВ * ФиксЧастьОПВ +
                   КомпенсироватьУдержания * СуммаКомпенсируемыхУдержаний);
                   
       Знаменатель = (1 -
                       КоэффициентИПН * РезультирующийПроцентИПНиОПВ -
                         КоэффициентОПВ * РезультирующийПроцентОПВ -
                       КомпенсироватьУдержания * ПроцентКомпенсируемыхУдержаний);
                                         
       Результат = ?(Знаменатель <> 0, Числитель / Знаменатель, 0);
       Результат = ОбщегоНазначения.ОкруглитьЧисло(Результат, ИсходныеДанные.ПорядокОкругления, ИсходныеДанные.МетодОкругления);
       
       // Проверим граничные условия, при которых делали расчет
       РезультатОПВ = ПризнакИсчисленияОПВ * ПроцентОПВ * (БазаДляИсчисленияОПВ + Результат);

       Если ИсходныеДанные.ОтОбратногоУчитыватьОПВ Тогда
           // Наличие облагаемых ОПВ доходов
           Если РезультатПолучен Тогда
               Если ИсходныеДанные.ПризнакИсчисленияОПВ И ИсходныеДанные.ОблагаетсяОПВ <> НеОблагаетсяЦеликом Тогда
                   // для данного работнику и с данного вида начисления ОПВ исчисляются
                   
                   Если БазаДляИсчисленияОПВ + Результат > 0 Тогда
                       Если ПризнакИсчисленияОПВ <> 1 Тогда
                           РезультатПолучен = Ложь;
                       КонецЕсли;
                       ПризнакИсчисленияОПВ = 1;
                   Иначе
                       Если ПризнакИсчисленияОПВ <> 0 Тогда
                           РезультатПолучен = Ложь;
                       КонецЕсли;
                       ПризнакИсчисленияОПВ = 0;
                   КонецЕсли;
                                       
               КонецЕсли;
           КонецЕсли;
       
           // Макс сумма облагаемых ОПВ доходов
           Если РезультатПолучен Тогда
               Если РезультатОПВ > МаксСуммаОПВ Тогда
                   Если ПризнакПрименятьОграничениеПоДоходамОПВ <> 1 Тогда
                       РезультатПолучен = Ложь;
                   КонецЕсли;
                   ПризнакПрименятьОграничениеПоДоходамОПВ = 1;
               Иначе
                   Если ПризнакПрименятьОграничениеПоДоходамОПВ <> 0 Тогда
                       РезультатПолучен = Ложь;
                   КонецЕсли;
                   ПризнакПрименятьОграничениеПоДоходамОПВ = 0;
               КонецЕсли;
           КонецЕсли;
           
       КонецЕсли;
       
       Если ИсходныеДанные.ОтОбратногоКомпенсироватьИПН Тогда
           // Учтем граничные условия, возникающие при расчете ИПН
           
           // проверка на то, чтобы ИПН не был отрицательным, если обл. доходы за месяц < 0
           Если РезультатПолучен Тогда
               ОблагаемаяИПНСумма = БазаДляИсчисленияИПН + Результат - РезультатОПВ - ОстатокЛьготы - ОстатокВычета;

               Если ОблагаемаяИПНСумма < 0 Тогда
                   // ранее налог считался, но облагаемая сумма за месяц < 0 - на следующем шаге не считаем
                   Если ПризнакРасчетаИПН <> 0 Тогда
                       РезультатПолучен = Ложь;
                   КонецЕсли;
                   ПризнакРасчетаИПН = 0;
               Иначе
                   // ранее налог не считался, но теперь облагаемая сумма > 0 и налог есть с чего считать
                   Если ПризнакРасчетаИПН <> 1 Тогда
                       РезультатПолучен = Ложь;
                   КонецЕсли;
                   ПризнакРасчетаИПН = 1;
               КонецЕсли;
           КонецЕсли;
           
       КонецЕсли;
       
   КонецЦикла;
   
   Если Не РезультатПолучен Тогда
       // вышли из цикла по превышению макс допустимого числа шагов
       Сообщить(""+СтрокаДвижений.Физлицо + "; " + ВидРасчета + ": Превышено допустимо число шагов итерации ", СтатусСообщения.Важное);
   Иначе
       // Из-за округления могут получиться лишние тиынки
       ИсчисленныйИПН = ОбщегоНазначения.ОкруглитьЧисло(Результат * РезультирующийПроцентИПНиОПВ + ФиксЧастьИПН, ИсходныеДанные.ПорядокОкругления, ИсходныеДанные.МетодОкругления);
       ИсчисленныеОПВ = ОбщегоНазначения.ОкруглитьЧисло(Результат * РезультирующийПроцентОПВ + ФиксЧастьОПВ, ИсходныеДанные.ПорядокОкругления, ИсходныеДанные.МетодОкругления);
       ИсчисленныеУдержания = ОбщегоНазначения.ОкруглитьЧисло(КомпенсироватьУдержания * (Результат * ПроцентПрочихКомпенсируемыхУдержаний +
                                               (Результат - ИсчисленныеОПВ) * ПроцентКомпенсируемыхУдержанийБезОПВ +
                                               (Результат - ИсчисленныйИПН) * ПроцентКомпенсируемыхУдержанийБезИПН +
                                               (Результат - ИсчисленныйИПН - ИсчисленныеОПВ) * ПроцентКомпенсируемыхУдержанийБезИПНиОПВ +
                                               СуммаКомпенсируемыхУдержаний), ИсходныеДанные.ПорядокОкругления, ИсходныеДанные.МетодОкругления);
       
       ОбщаяСуммаКомпенсируемыхУдержаний = ИсчисленныйИПН + ИсчисленныеОПВ + ИсчисленныеУдержания;
       Разность = ИскомаяСуммаНачислений - (Результат - ОбщаяСуммаКомпенсируемыхУдержаний);
       
       Если Разность > -1 И Разность < 1 Тогда
           Результат = Результат + Разность;
       КонецЕсли;
       
       Если Не ОсновноеНачисление Тогда
           Результат = Результат - ИсходныеДанные.ОбщаяСуммаНачислений;
       КонецЕсли;
       
   КонецЕсли;
35 Живой Ископаемый
 
11.11.09
11:39
и что? Почему он переменную назвал ШагИтерации а не ШагЦикла?
36 мистер игрек
 
11.11.09
11:41
(35) почему?
37 Лефмихалыч
 
11.11.09
11:42
тупая ветка

Оба
38 Ненавижу 1С
 
гуру
11.11.09
11:43
(36) шаг итерации это как бы более по научному, грамотнее термины использовать
например в математике в школе - многочлены, в университете - полиномы
39 Ненавижу 1С
 
гуру
11.11.09
11:43
+(37)

Оба
40 Живой Ископаемый
 
11.11.09
11:43
2(35) потому что так захотел... знал слово итерация, и применил его

Оба
41 Лефмихалыч
 
11.11.09
11:44
ОФФ: почему нет секции "Тупняк"?
42 мистер игрек
 
11.11.09
11:44
"Итерация — это организация обработки данных, при которой действия повторяются многократно" - действие это есть операция, где есть операнды (сложение, присвоение и т.д.)? Или пустой цикл тоже относится к этому ?
43 Ненавижу 1С
 
гуру
11.11.09
11:46
(42) формально тоже, переход же есть, это тоже действие
44 Ненавижу 1С
 
гуру
11.11.09
11:46
почему в форуме не прикрутят ограничение на 1 голос одного ника?

Оба
45 Ненавижу 1С
 
гуру
11.11.09
11:46
и еще раз

Оба
46 Ненавижу 1С
 
гуру
11.11.09
11:46
и вот так

Оба
47 Ненавижу 1С
 
гуру
11.11.09
11:47
извините за флуд, просто выразил недоумение из (44)
48 мистер игрек
 
11.11.09
11:47
Все понятно. Значить итерация=цикл. Вопрос закрыть.
49 Лефмихалыч
 
11.11.09
12:00
(44) а почему свое мнение обязательно аргументировать? А почему принимаются не все мнения, а только идеологически верные? в принципе эта совалка - фуфлятина позорная
50 мистер игрек
 
11.11.09
12:03
(49) обоснуй
51 skunk
 
11.11.09
12:03
(48)цикл это последовательность итераций... если про рукоблудие... то рукой туда-сюда это и есть одна итерация...
52 Ненавижу 1С
 
гуру
11.11.09
12:07
(50) для кого то это аргумент, а для кого то нет