Студопедия

КАТЕГОРИИ:


Архитектура-(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)

Примеры комбинации основных алгоритмических структур




Способы комбинации базовых управляющих структур (основных алгоритмических конструкций)

 

Структуры можно комбинировать одну с другой двумя путями:

следования структур друг за другом (рис. 9.19):

− создания суперпозиций – вложение одной структуры в другую (рис. 9.20).

 

Рис. 9.19. Последовательный способ соединения базовых управляющих структур алгоритмов: S1 и S2 − базовые управляющие структуры алгоритмов Рис. 9.20. Вложенный способ соединения базовых управляющих структур алгоритмов

 

Ветвящийся процесс, включающий в себя две ветви, называется простым (рис. 9.3). Если ветвь S 1 либо S 2 тоже представляет собой структуру «ВЕТВЛЕНИЕ », то ветвящийся процесс называют сложным. Сложный ветвящийся процесс содержит более двух ветвей.

 

Пример. Рассмотрим пример сложного ветвящегося вычислительного процесса.

Вычислить значение функции:

a x, если x < 1

Y (x)= x 2, если 1 ≤ x ≤ 3

, если x > 3

для x = 0,1, x = 2,5, x = 16, a = 1.

Схема алгоритма решения представлена на рисунке 9.21.

 

 

Рис. 9.21. Визуальное представление сложного ветвящегося алгоритма решения задачи в виде блок-схемы

 

Как видно из схемы алгоритма, здесь одна структура «Ветвление» вложена внутрь другой. При x < 1 блоки выполняются в следующей последовательности: 1, 2, 3, 7, 8, 9. Таким образом, если x < 1, в блоке 7 вычисляется . При 1 ≤ x ≤ 3 последовательность выполнения блоков: 1, 2, 3, 4, 6, 8, 9. Следовательно, если 1 ≤ x ≤ 3 в блоке 6 будет вычислено . Если x >3, блоки выполняются в следующей последовательности: 1,2, 3, 4, 5, 8, 9, т.е. при x > 3, в блоке 5 будет вычислено . Полученные результаты соответствуют условию задачи.

 

Циклы также могут быть вложены один в другой. Циклы, которые не содержат внутри себя других циклов, называются простыми. Сложный цикл с количеством вложений, равным двум, называют «цикл в цикле», внутренний цикл вложен внутрь внешнего цикла.

 

Пример. Фрагмент блок-схемы алгоритма, описывающий процесс «цикл в цикле», представлен на рисунке 9.23. Данный фрагмент описывает алгоритм вычисления таблицы Пифагора.

Таблица Пифагора.

1*1 1*2 1*3 1*4 1*5 1*6 1*7 1*8 1*9 1*10

2*1 2*2 2*3 2*4 2*5 2*6 2*7 2*8 2*9 2*10

3*1 3*2 3*3 3*4 3*5 3*6 3*7 3*8 3*9 3*10

4*1 4*2 4*3 4*4 4*5 4*6 4*7 4*8 4*9 4*10

5*1……………………………………………………………

6*1……………………………………………………………

7*1…………………………………………………………….

8*1…………………………………………………………….

9*1…………………………………………………………….

10*1 10*2 10*3 10*4 10*5 10*6 10*7 10*8 10*9 10*10

 

Обозначим строку – i, а столбец – j. Внутри внутреннего цикла элемент таблицы Пифагора равен i * j.

Чтобы вывести на экран монитора 1-ю строку, следует составить простой цикл, представленный на рисунке 9.22.

 

 

Рис. 9.22. Визуальное представление алгоритма, выводящего на экран 1-ю строку таблицы Пифагора

 

Выполним алгоритм последовательно.

  Блок 1. j=1.
цикл Блок 2. Вывод i * j =1*1. Блок 3. j = j +1=1+1=2. Блок 4. j ≤ 10?, 2≤ 10? Да, следовательно, после блока 4 выполняется блок 2.
цикл Блок 2. Вывод i * j =1*2. Блок 3. j = j +1=2+1=3. Блок 4. j ≤ 10?, 3≤ 10? Да, следовательно, после блока 4 выполняется блок 2.

Таким же образом последовательность блоков 2, 3 и 4 будет повторяться для j=3, 4, 5, 6, 7, 8, 9.

…………………………………………….

цикл Блок 2. Вывод i * j =1*10. Блок 3. j = j +1=10+1=11. Блок 4. j ≤ 10?, 11 ≤ 10? Нет, следовательно, после блока 4 произойдёт окончание простого цикла.

Чтобы вычислить все 10 строк, нужно менять строку i. Для этого данный простой цикл по параметру j (столбец) нужно вставить внутрь внешнего цикла по параметру i (строка) (рис. 9.23).

 

Рис. 9.23. Визуальное представление алгоритма сложного цикла

с количеством вложений, равным двум

 

Представим последовательное выполнение алгоритма в следующем наглядном виде:

i = 1 j =1 вывод i * j =1*1;

j =2 вывод i *j=1*2;

j =3 вывод i * j =1*3;

………………………..

j =10 вывод i * j =1*10.

j = j +1=10+1=11 11 ≤ 10? Нет, следовательно, после блока 5 выполняется блок 6, который увеличивает параметр i = i +1=1+1=2, переходим ко второй строке. Внутренний цикл по параметру j (столбец) повторяется для параметра i = 2, т.е. для второй строки.

i = 2 j = 1 вывод i * j = 2*1;

j =2 вывод i * j = 2*2;

J = 3 вывод i * j = 2*3;

…………………………

J = 10 вывод i * j = 2*10.

Таким же образом повторяется выполнение цикла для 3, 4, 5, 6, 7, 8, 9 и 10 строки.

После этого i принимает значение 11, проверяется условие 1 ≤ 10, условие не выполняется, и происходит окончание циклического процесса.

Визуальное представление алгоритма сложного цикла с количеством вложений, равным двум, можно представить с использованием символа «Подготовка» (рис. 9.24).

 

 

Рис. 9.24. Визуальное представление алгоритма сложного цикла с количеством вложений, равным двум, с использованием символа «Подготовка»

 




Поделиться с друзьями:


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


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



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




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