Студопедия

КАТЕГОРИИ:


Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748)

Вложенные циклы. Операторы, которые входят в состав циклов всех видов, сами также могут быть циклами

Операторы, которые входят в состав циклов всех видов, сами также могут быть циклами. Такие циклы называют вложенными. Наиболее часто используют арифметические вложенные циклы.

Программирование вложенных циклов начинается с самого внешнего в порядке убывания их вложенности. В тело внешнего цикла включается внутренний цикл, в которой может включаться еще один цикл, по отношению к которому предыдущий внутренний цикл становится уже внешним и так далее.

Проверка окончания циклов начинается с самого внутреннего и идет в порядке возрастания их вложенности.

При использовании вложенных арифметических циклов в случае изменения значения параметра внешнего цикла необходимо восстанавливать начальные значения параметров всех внутренних циклов.

Пример 1 использования арифметических вложенных циклов. Необходимо задать работу электронных часов, начиная с момента времени 0 часов, 0 минут, 0 секунд при условии, что время экспозиции каждого набора значений равно одной секунде.

Решение. Обозначая часы через h, минуты - m, секуды – s и учитывая, что в сутках 24 часа, в одном часе 60 минут, а в одной минуте 60 секунд, автоматическую индикацию можно обеспечить при помощи следующего вложенного цикла:

For h:=0 to 23 do
For m:=0 to 59 do
For s:=0 to 59 do
Writeln(h,’:’,m,’:’,s);

Как видно из структуры алгоритма, программа в примере 1 выведет все возможные сочетания величин (h, m, s). Такая процедура называется полным перебором. Применение полного перебора упрощает решение многих задач, но зачастую требует выполнение слишком большого числа вычислений. Поэтому желательно по возможности сокращать его. Для этого можно, в частности, можно использовать “подвижные” границы изменения параметров вложенных циклов, зависящие от параметров внешних циклов либо от других величин, рассчитываемых в них.

Пример 2. Заданы три целочисленные величины 1 ≤ а ≤ 4; 0 ≤ b ≤ 5; 2 ≤ c ≤ 6. Необходимо вывести на экран все сочетания (а, b, c), удовлетворяющие условию нестрогого неравенства: аbc. Цифры внутри сочетания разделять пробелами.

Решение. Простейшее решение основано на полном переборе всех вариантов значений (а, b, c) и использовании условного оператора, имеет вид:

For a:=1 to 4 do
For b:=0 to 5 do
For c:=2 to 6 do
if a<=b then if b<=c then Writeln(a,’ ’,b,’ ’,c);

Однако более быстрым и простым по структуре будет решение, основанное на сокращенном переборе за счет выбора границ изменения параметров (а, b, c):

For a:=1 to 4 do
For b:=a to 5 do
For c:=b to 6 do
Writeln(a,’ ’,b,’ ’,c);

Вложенные арифметические циклы обычно используют для перебора значений в многомерных массивах. Данная операция будет рассмотрена ниже в Главе 8 по структурированным данным.

<== предыдущая лекция | следующая лекция ==>
Вопросы для проверки знаний. Группа операторов между словами repeat и | Операторы завершения цикла
Поделиться с друзьями:


Дата добавления: 2014-01-06; Просмотров: 578; Нарушение авторских прав?; Мы поможем в написании вашей работы!


Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет



studopedia.su - Студопедия (2013 - 2024) год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! Последнее добавление




Генерация страницы за: 0.009 сек.