Ветвящийся процесс, включающий в себя две ветви, называется простым (рис. 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. Визуальное представление алгоритма сложного цикла с количеством вложений, равным двум, с использованием символа «Подготовка»
Вопросы и тестовые задания для самоконтроля
1. Выберите правильную последовательность этапов решения задач на компьютере:
A. выбор и обоснование метода решения;
B. постановка задачи;
C. отладка программы;
D. математическое описание задачи;
E. решение задачи на компьютере и анализ результатов;
F. алгоритмизация вычислительного процесса;
G. составление программы.
Ответы:
1) 1 – B, 2 – D, 3 – A, 4 – F, 5 –- G, 6 – C, 7 – E;
2) 1 – А, 2 – B, 3 – C, 4 - D, 5 – E, 6 – F, 7 – G;
3) 1 – D, 2 – B, 3 – A, 4 – G, 5 – F, 6 – C, 7 – E;
4) 1 – B, 2 – D, 3 – A, 4 – G, 5 – F, 6 – C, 7 – E;
2. На этапе отладки программы:
1) проверяется корректность работы программы.
2) формулируется цель решения задачи;
3) соотношения между величинами, определяющими результат, выражаются посредством математических формул;
4) составляется алгоритм решения задачи согласно действиям, задаваемым выбранным методом решения;
5) алгоритм решения задачи переводится на конкретный язык программирования;
6) определяется состав входных данных.
3. Является ли отсутствие синтаксических ошибок свидетельством правильности программы?
1) Нет, после устранения синтаксических ошибок должна быть проверена логика работы программы в процессе её выполнения с конкретными исходными данными.
2) Да, отсутствие синтаксических ошибок является свидетельством правильности программы.
4. На этапе алгоритмизации вычислительного процесса:
1) выполняется проектирование алгоритма решения задачи согласно действиям, задаваемым выбранным методом решения;
2) соотношения между величинами, определяющими результат, выражаются посредством математических формул;
3) проверяется корректность работы программы;
4) алгоритм решения задачи переводится на конкретный язык программирования;
5) формулируется цель решения задачи;
6) определяется состав входных данных.
5. На этапе составления программы:
1) алгоритм решения задачи переводится на конкретный язык программирования;
2) определяется состав входных данных;
3) соотношения между величинами, определяющими результат, выражаются посредством математических формул;
4) выполняется проектирование алгоритма решения задачи согласно действиям, задаваемым выбранным методом решения;
5) формулируется цель решения задачи;
6) проверяется корректность работы программы.
6. Деятельность, направленная на выявление ошибок в программе, называется:
1) тестирование;
2) отладка;
3) композиция;
4) программирование.
7. Деятельность, направленная на устранение ошибок в программе, называется:
1) отладка;
2) тестирование;
3) композиция;
4) программирование.
8. Язык программирования, допускающий непосредственное исполнение программы, написанной с помощью данного языка, называется:
1) машинным;
2) функциональным;
3) процедурным;
4) логическим.
9. Выявленное на этапе отладки программы нарушение формы записи программы приводит к сообщению об ошибке:
1) синтаксической;
2) орфографической;
3) грамматической;
4) логической.
10. Алгоритм – это:
1) понятное и точное предписание исполнителю совершить последовательность действий, направленных на достижение поставленной цели;
2) правила выполнения определённых действий;
3) указание на выполнение действий;
4) набор команд для компьютера;
5) протокол вычислительной сети.
11. Какой из документов является алгоритмом?
1) инструкция по получению денег в банкомате;
2) правила техники безопасности;
3) список группы;
4) расписание занятий.
12. К свойствам алгоритма относятся:
A. дискретность;
B. уникальность;
C. неопределённость;
D. массовость;
E. детерминированность (определённость);
F. результативность;
G. стохастичность;
H. формальность.
Ответы:
1) A, D, E, F, H;
2) D, A, B, F, H;
3) A, B, C, D, E;
4) A, B, C, D, E, F;
5) A, B, C, D, E, F, H;
6) A, B, C, D, E, F, G, H.
13. Свойство алгоритма − дискретность – заключается в том, что:
1) алгоритм всегда состоит из последовательности дискретных шагов;
2) при точном исполнении всех команд алгоритма процесс должен прекратиться за конечное число шагов и привести к определённому результату;
3) алгоритм обеспечивает решение не одной конкретной задачи, а некоторого класса задач;
4) алгоритм должен состоять из команд, не допускающих произвола в толковании;
5) любой исполнитель, строго выполняя инструкции, получает необходимый результат.
14. Свойство алгоритма − массовость – заключается в том, что:
1) алгоритм обеспечивает решение не одной конкретной задачи, а некоторого класса задач;
2) алгоритм всегда состоит из последовательности дискретных шагов;
3) любой исполнитель, строго выполняя инструкции, получает необходимый результат;
4) при точном исполнении всех команд алгоритма процесс должен прекратиться за конечное число шагов и привести к определённому результату;
5) алгоритм должен состоять из команд, не допускающих произвола в толковании.
15. Свойство алгоритма − определённость (детерминированность, точность) – заключается в том, что:
1) алгоритм должен состоять из команд, не допускающих произвола в толковании;
2) алгоритм всегда состоит из последовательности дискретных шагов;
3) любой исполнитель, строго выполняя инструкции, получает необходимый результат;
4) алгоритм обеспечивает решение не одной конкретной задачи, а некоторого класса задач;
5) при точном исполнении всех команд алгоритма процесс должен прекратиться за конечное число шагов и привести к определённому результату.
16. Свойство алгоритма − результативность – заключается в том, что:
1) при точном исполнении всех команд алгоритма процесс должен прекратиться за конечное число шагов и привести к определённому результату;
2) алгоритм всегда состоит из последовательности дискретных шагов;
3) любой исполнитель, строго выполняя инструкции, получает необходимый результат;
4) алгоритм обеспечивает решение не одной конкретной задачи, а некоторого класса задач;
5) алгоритм должен состоять из команд, не допускающих произвола в толковании.
17. Свойство алгоритма − формальность – заключается в том, что:
1) любой исполнитель, строго выполняя инструкции, получает необходимый результат;
2) алгоритм должен состоять из команд, не допускающих произвола в толковании;
3) алгоритм всегда состоит из последовательности дискретных шагов;
4) алгоритм обеспечивает решение не одной конкретной задачи, а некоторого класса задач;
5) при точном исполнении всех команд алгоритма процесс должен прекратиться за конечное число шагов и привести к определённому результату.
18. Укажите наиболее полный перечень способов записи алгоритмов:
1) словесный, графический, псевдокод, программный, табличный;
2) словесный, псевдокод;
3) графический, табличный, программный;
4) словесный, программный.
19. Средством записи алгоритмов не являются:
1) блок-схемы;
2) псевдокоды;
3) языки программирования;
4) словесно-формульная запись;
5) компиляторы.
20. Как называется графическое представление алгоритма:
1) блок-схема;
2) последовательность формул;
3) таблица;
4) словесное описание;
5) псевдокод?
21. На рисунках представлены части блок-схемы. В каком порядке они расположены?
1) 1 − предикатная; 2 − объединяющая; 3 − функциональная;
2) 1 − объединяющая; 2 − предикатная; 3 − функциональная;
3) 1 − функциональная; 2 − объединяющая; 3 − предикатная;
4) 1 −объединяющая; 2 − функциональная; 3 − предикатная;
5) 1 − предикатная; 2 − функциональная; 3 − объединяющая;
6) 1 − функциональная; 2 − предикатная; 3 − объединяющая.
22. Сколько выходов содержит данный блок:
23. Сколько выходов содержит данный блок:
24. При использовании метода структурной алгоритмизации используются понятия:
A. Следование;
B. Альтернатива (ветвление);
C. Итерация (цикл);
D. Подготовка.
Ответы:
1) A, B, C;
2) A, B, D;
3) A, B;
4) B, C, D;
5) C, D.
25. На рисунках представлены базовые управляющие алгоритмические структуры. В каком порядке они расположены?
1) 1 − «Следование»; 2 − «Ветвление»; 3 − «Цикл с постусловием»; 4 − «Цикл с предусловием»;
2) 1 − «Следование»; 2 − «Цикл с постусловием»; 3 − «Ветвление»; 4 − «Цикл с предусловием»;
3) 1 − «Следование»; 2 − «Ветвление»; 3 − «Цикл с предусловием»; 4 − «Цикл с постусловием»;
4) 1 − «Ветвление»; 2 − «Следование»; 3 − «Цикл с постусловием»; 4 − «Цикл с предусловием»;
5) 1 − «Цикл с постусловием»; 2 − «Ветвление»; 3 − «Следование»; 4 − «Цикл с предусловием».
26. Алгоритм линейной структуры:
1) содержит линейную последовательность связанных друг с другом блоков;
2) содержит блок «решение»;
3) содержит структуру «ветвление»;
4) содержит предикатную вершину.
27. Назовите базовую управляющую структуру, реализующую линейный вычислительный процесс:
28. Назовите базовую управляющую структуру, реализующую разветвляющийся вычислительный процесс:
29. Определите значение переменной Y после выполнения фрагмента алгоритма в каждом из следующих случаев: если 1) a = 3 и b = 9; 2) a = 4 и b = 3. 3) a = 7 и b = 7.
30. Назовите базовую управляющую структуру, реализующую циклический вычислительный процесс:
31. Утверждение, что операция в теле цикла будет выполнена хотя бы один раз, относится к циклу:
1) с постусловием;
2) с предусловием;
3) с параметром;
4) табулирования функции.
32. В тестовом задании 9.3 представлен фрагмент циклического алгоритма, записанный в словесно-формульном виде. Представьте данный алгоритм в графической форме. Какая разновидность базовой циклической структуры реализована в данном алгоритме:
1) с постусловием;
2) с предусловием;
3) с параметром;
4) табулирования функции?
33. В тестовом задании 9.5 представлен фрагмент циклического алгоритма, записанный в словесно-формульном виде. Представьте данный алгоритм в графической форме. Какая разновидность базовой циклической структуры реализована в данном алгоритме:
1) с предусловием
2) с постусловием;
3) с параметром;
4) табулирования функции?
34. Укажите, какие результаты будут выведены на экран при выполнении следующего фрагмента алгоритма (при выполнении данного тестового задания желательно изучить решение тестового задания 9.10):
35. Укажите, какие результаты будут выведены на экран монитора при выполнении следующего фрагмента алгоритма:
36. Укажите ответ, который получится в результате выполнения следующего алгоритма в каждом из следующих случаев:
1) x = 0.5; 2) x = 1.5; 3) x = 3; 4) x = 5:
37. Укажите ответ, который получится в результате выполнения следующего алгоритма:
Тот же алгоритм, представленный с помощью символа «подготовка»: 1) 1 2 3 2 4 6 3 6 9 4 8 12; 2) 1 2 3 3 6 9 2 4 6 4 8 12; 3) 1 2 3 4 3 6 9 2 4 6 8 12; 4) 1 2 3 4 2 4 6 8 3 6 9 12; 5) 1 2 3 3 6 9 2 6 8 4 9 12. |
38. Определите результат выполнения фрагмента алгоритма
вернуться к содержанию