Страница 2 из 2 ПерваяПервая 12
Показано с 11 по 16 из 16

Тема: не могу выйти из бесконечного цикла FOR

  1. #11

    По умолчанию

    Цитата Сообщение от Валенок Посмотреть сообщение
    Потаму что каждый раз
    т.е. Соunter каждый раз сбрасывается при выходе из цикла? все, теперь понял. спасибо.

  2. #12
    Пользователь
    Регистрация
    19.06.2009
    Адрес
    Киев
    Сообщений
    120

    По умолчанию

    Смотри, как работает for:
    1 перед первым выполнение цикла переменной Соunter присваивается значение 1
    2 выполняется первый раз тело цикла до END_FOR
    3 переменной Соunter присваивается значение +1(2)
    4 выполняется второй раз тело цикла до END_FOR
    5 переменной Соunter присваивается значение +1(3)
    6 выполняется третий раз тело цикла до END_FOR
    7 переменной Соunter присваивается значение +1(4)
    8 выполняется четвертый раз тело цикла до END_FOR
    9 переменной Соunter присваивается значение +1(5)
    10 выполняется пятый раз тело цикла до END_FOR
    11 переменной Соunter присваивается значение +1(6)
    12 поскольку Соunter больше 5 дальнейшая часть программы выполняется после END_FOR

  3. #13
    Пользователь
    Регистрация
    13.10.2011
    Адрес
    Златоуст
    Сообщений
    1,021

    По умолчанию

    «Раскроем скобки»:
    Код:
    (* Такт 0 *)
    FOR Counter := 1 TO 5 DO
    	Var1 := Var1 + 1;
    END_FOR;
    (* Var1 = 5 *)
    
    (* Такт 1 *)
    FOR Counter := 1 TO 5 DO
    	Var1 := Var1 + 1;
    END_FOR;
    (* Var1 = 10 *)
    
    (* Такт 2 *)
    FOR Counter := 1 TO 5 DO
    	Var1 := Var1 + 1;
    END_FOR;
    (* Var1 = 15 *)
    
    (* Такт 3 *)
    FOR Counter := 1 TO 5 DO
    	Var1 := Var1 + 1;
    END_FOR;
    (* Var1 = 20 *)
    
    (* Такт 4 *)
    FOR Counter := 1 TO 5 DO
    	Var1 := Var1 + 1;
    END_FOR;
    (* Var1 = 25 *)
    
    (* Такт 5 *)
    FOR Counter := 1 TO 5 DO
    	Var1 := Var1 + 1;
    END_FOR;
    (* Var1 = 30 *)
    
    (...)
    
    (* Такт 412380 *)
    FOR Counter := 1 TO 5 DO
    	Var1 := Var1 + 1;
    END_FOR;
    (* Var1 = 2061905 *)
    
    (* Такт 412381 *)
    FOR Counter := 1 TO 5 DO
    	Var1 := Var1 + 1;
    END_FOR;
    (* Var1 = 2061910 *)
    
    (...)
    Последний раз редактировалось Yegor; 24.01.2012 в 07:28.

  4. #14

    По умолчанию

    Цитата Сообщение от ksn33 Посмотреть сообщение
    Смотри, как работает for:
    1 перед первым выполнение цикла переменной Соunter присваивается значение 1
    2 выполняется первый раз тело цикла до END_FOR
    3 переменной Соunter присваивается значение +1(2)
    4 выполняется второй раз тело цикла до END_FOR
    5 переменной Соunter присваивается значение +1(3)
    6 выполняется третий раз тело цикла до END_FOR
    7 переменной Соunter присваивается значение +1(4)
    8 выполняется четвертый раз тело цикла до END_FOR
    9 переменной Соunter присваивается значение +1(5)
    10 выполняется пятый раз тело цикла до END_FOR
    11 переменной Соunter присваивается значение +1(6)
    12 поскольку Соunter больше 5 дальнейшая часть программы выполняется после END_FOR
    т.е. Counter'у при следующем вызове (текущее значение 6) присвоится 1, и Var1 продолжит инкрементироваться? а присваивая Var1:=0 перед циклом ,я фактически ограничиваю ее приращение в следуещем прогоне после того, как Сounter стал равен 6?.
    Последний раз редактировалось Kiselev; 24.01.2012 в 11:51.

  5. #15
    Пользователь Аватар для rovki
    Регистрация
    03.01.2010
    Адрес
    Чехов
    Сообщений
    12,127

    По умолчанию

    Все бесконечно зациклились на этой теме.Если долго обьяснять ,то и самому запутаться можно
    электронщик до мозга костей и не только

  6. #16

    По умолчанию

    а мне кажется что Kiselev просто прикалывается над учителями.

Страница 2 из 2 ПерваяПервая 12

Похожие темы

  1. Еще раз про время цикла ПЛК
    от Партизан в разделе ПЛК1хх
    Ответов: 3
    Последнее сообщение: 06.04.2011, 12:38
  2. не симметричный повтор цикла.
    от Artem в разделе ПЛК1хх
    Ответов: 2
    Последнее сообщение: 17.12.2010, 11:18
  3. Ответов: 3
    Последнее сообщение: 27.05.2009, 11:50
  4. ПЛК100 и время цикла
    от Радик в разделе ПЛК1хх
    Ответов: 15
    Последнее сообщение: 10.03.2009, 16:01

Ваши права

  • Вы не можете создавать новые темы
  • Вы не можете отвечать в темах
  • Вы не можете прикреплять вложения
  • Вы не можете редактировать свои сообщения
  •