Школа программиста

Забыли пароль?
[задачи] [курсы] [олимпиады] [регистрация]
Логин:   Пароль:    
Скрыть меню
О школе
Правила
Олимпиады
Фотоальбом
Гостевая
Форум
Архив олимпиад
Архив задач
Состояние системы
Рейтинг
Курсы
Новичкам
Работа в системе
Алгоритмы
Курсы ККДП
Дистрибутивы
Ссылки

HotLog


 
Вернуться
Тема: В любой версии Паскаля непонятно работает вложенный цикл такого вида:
for a:=1 to a+1 do
Почему с каждым новым проходом внешнего цикла количество повторений этого внутреннего цикла увеличивается?

1
  1  Артур Альметьевск, 07 марта 2017 г. 15:13:10
      >>Конечное значение цикла вычисляется раньше, чем параметр принимает начальное значение.

Все верно.
  2  Пензов Сергей Константинович, 07 марта 2017 г. 13:11:27
      Кажется я понял.
Конечное значение цикла вычисляется раньше, чем параметр принимает начальное значение. Лучше таких конструкций не использовать.
  3  Пензов Сергей Константинович, 07 марта 2017 г. 12:22:03
      Но ведь А всегда начинается с 1. Почему он в конечное значение подставляет А из предыдущего прохода внешнего цикла?
  4  Артур Альметьевск, 07 марта 2017 г. 11:27:11
      При а>=0 тело цикла выполнится ровно а+1 раз. Так как конечное значение цикла FOR вычисляется всего 1 раз перед входом в цикл и в дальнейшем не изменяется. При а<0 не выполнится вход в цикл. По моему во всех версиях Паскаля так.
  5  Беляев Сергей Николаевич, 07 марта 2017 г. 9:56:22
      Потому что при увеличении a увеличивается a+1, т.к. цикл продолжается пока a<=a+1. Цикл закончится при переполнении a+1. Хотя, возможно, что еще это зависит от компилятора паскаля.
1

Чтобы оставить сообщение необходимо зарегистрироваться и авторизоваться!

Красноярский краевой Дворец пионеров, (c)2006 - 2017, ICQ: 151483