logo
Информатика_ЗФ / 2013_Информатика УМО_легпром

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

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

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

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

ax, еслиx < 1

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

, еслиx > 3

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

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

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

Как видно из схемы алгоритма, здесь одна структура «Ветвление» вложена внутрь другой. При 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.39. Визуальное представление алгоритма, выводящего на экран 1-ю строку таблицы Пифагора

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

Блок 1. j=1.

1

цикл

Блок 2. Вывод i*j=1*1.

Блок 3. j=j+1=1+1=2.

Блок 4. j≤ 10?, 2≤ 10? Да, следовательно, после блока 4 выполняется блок 2.

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.

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

10

цикл

Блок 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.40. Визуальное представление алгоритма сложного цикла

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

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

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.41. Визуальное представление алгоритма сложного цикла с количеством вложений, равным двум, с использованием символа «Подготовка»