"Информатика. Учебное пособие для учреждений общего среднего образования с русским языком обучения", В. М. Котов, А. И. Лапо и Ю.А. Быкадоров, Е.Н. Войтехович
Алгоритмические конструкции — готовые способы организовать команды в алгоритме. Их используют, чтобы действия исполнителя шли понятно и без пропусков: последовательно, по условию или с повторением. Основные конструкции — следование, ветвление и цикл. Из них можно составить алгоритм практически любой сложности, соединяя конструкции между собой и точно определяя порядок выполнения команд.
Текст подготовлен нейронной сетью по теме параграфа и не заменяет учебник — важные факты и формулировки сверяйте с ним.
Алгоритмическая конструкция — типовой способ организации команд алгоритма. Она помогает не придумывать порядок действий заново для каждой задачи, а использовать понятную схему. Благодаря конструкциям алгоритм легче читать, проверять и переводить в программу.
Следование — конструкция, в которой команды выполняются одна за другой в записанном порядке. Каждая следующая команда начинает работу после завершения предыдущей. Такая форма нужна, когда выбор и повторение действий не требуются.
Ветвление — конструкция, в которой дальнейший ход алгоритма зависит от проверки условия. Условие имеет значение «истина» или «ложь», и по результату выбирается подходящая последовательность команд. Ветвление позволяет алгоритму реагировать на разные исходные данные.
Цикл — конструкция, в которой одна или несколько команд выполняются повторно. Повторение продолжается, пока выполняется условие, или ограничивается заранее заданным числом повторений. Цикл сокращает запись алгоритма, когда похожие действия нужно сделать много раз.
Даже сложную задачу обычно можно представить как сочетание небольшого числа базовых конструкций. Сначала выделяют отдельные действия, затем определяют, какие из них должны идти подряд, где нужен выбор, а где — повторение. Такой подход уменьшает количество ошибок: каждый фрагмент алгоритма можно проверить отдельно, а затем соединить с другими.
В следовании команда выполняется после предыдущей, поэтому порядок записи имеет значение. Например, нельзя вычислить периметр, пока не введены длина и ширина, а вывести результат — пока сам периметр не найден. Результат одной команды становится исходными данными для следующей, и так постепенно получается общий результат.
Ветвление начинается с проверки условия, например «число больше нуля?». Если ответ «истина», выполняется одна предусмотренная последовательность команд, а если «ложь» — другая или алгоритм сразу переходит к следующему шагу. В полной форме есть действия для обоих результатов, а в неполной — только для одного, поэтому при втором результате ничего специально не выполняется.
Цикл нужен, когда одинаковые или похожие действия повторяются. Повторение по условию продолжается до тех пор, пока условие имеет нужное значение, а цикл с заданным числом повторений выполняет команды заранее определённое количество раз. В обоих случаях нужно заранее понять, какие данные меняются при каждом проходе и когда работа должна остановиться.
Чтобы распознать конструкцию, спросите себя: команды просто идут по порядку, выбирается ли путь по условию или действие повторяется. После этого конструкции можно вкладывать друг в друга: например, в цикле проверять условие и выполнять разные команды. Ясный порядок начала, переходов и завершения помогает проследить весь алгоритм от исходных данных до результата.
| Характеристика | Следование | Ветвление | Цикл |
|---|---|---|---|
| Как выполняются команды | Одна за другой | По выбранной ветви | Повторяются |
| Что определяет дальнейший ход алгоритма | Порядок команд | Результат проверки условия | Условие или число повторений |
| Есть ли повторение команд | Нет | Нет, выбирается один путь | Да |
| Как изображается на блок-схеме | Последовательные блоки, соединённые стрелками | Ромб с условием и выходами | Возврат стрелки к повторяемым действиям |
| Пример применения | Вычисление периметра | Проверка знака числа | Сумма чисел от 1 до N |
Таблица помогает быстро определить конструкцию по её главному признаку. Если действия выполняются по очереди, это следование; если выбирается один из путей, это ветвление; если действия возвращаются и выполняются снова, это цикл. При разборе сложного алгоритма каждую его часть можно сопоставить с отдельной строкой таблицы.
Условие: даны длина a и ширина b прямоугольника, нужно найти его периметр. Выбор пути и повторение здесь не нужны, поэтому используется следование. Команды должны идти от ввода данных к вычислению и затем к выводу.
Ответ: алгоритм состоит из последовательных команд, а периметр равен 2 · (a + b). Если сначала вывести результат, вычисление окажется невозможным. Значит, порядок действий является частью решения.
Условие: введено число x, нужно определить, является ли оно положительным. Здесь результат зависит от условия x > 0, поэтому используется ветвление. Удобно предусмотреть сообщение для каждого из двух вариантов.
Ответ: при x > 0 выполняется первая ветвь, а при x ≤ 0 — вторая. Обе ветви не выполняются одновременно. Условие должно быть записано явно, иначе алгоритм не знает, какой результат выбрать.
Условие: дано натуральное число N, требуется найти сумму 1 + 2 + … + N. Одинаковое действие — прибавление очередного числа — повторяется, поэтому нужен цикл. Для управления циклом введём сумму S и счётчик i.
Ответ: после завершения цикла переменная S содержит сумму чисел от 1 до N. Счётчик проходит значения от 1 до N, поэтому каждое число учитывается ровно один раз. Изменение i гарантирует, что условие остановки будет достигнуто.
Ветвление выполняет обе ветви. Так считают, потому что видят в схеме два направления и принимают их за последовательные шаги. Проверьте себя: после проверки должен выполняться только путь, соответствующий одному результату условия.
Ветви записаны без условия. Без условия непонятно, когда выбирать первую последовательность команд, а когда вторую. Проверьте алгоритм вопросом «по какому признаку делается выбор?» и запишите этот признак явно.
В цикле не изменяется счётчик или условие. Ошибка возникает, когда повторяемые команды записаны, а переход к следующему шагу забыли. Проверьте, меняется ли величина, участвующая в условии, и может ли условие завершения стать истинным.
Число повторений путают с условием завершения. Заданное количество шагов говорит, сколько раз выполнить команды, а условие определяет, когда продолжать или остановиться. Проверьте первый и последний проход цикла и точно укажите, при каком значении повторение прекращается.
До изучения конструкций нужно понимать, что такое алгоритм, команда, исполнитель и допустимая последовательность действий. Эти понятия объясняют, кто выполняет команды и какие действия вообще возможны. Без них трудно правильно определить порядок шагов.
Для чтения блок-схем понадобятся знания об условии и логических значениях «истина» и «ложь». Условие показывает, какой выход выбрать в ветвлении или когда остановить цикл. Поэтому его нужно уметь формулировать однозначно.
Следование, ветвление и циклы используются при составлении программ, обработке наборов данных и решении задач с повторяющимися действиями. Освоив их, легче разбивать большую задачу на небольшие понятные части. Те же конструкции встречаются в большинстве языков программирования.
Чем алгоритмическая конструкция отличается от отдельной команды?
Команда — это одно указание исполнителю, например «ввести число». Алгоритмическая конструкция задаёт общий порядок выполнения одной или нескольких команд: по очереди, с выбором или с повторением.
Как понять, что в алгоритме нужно использовать ветвление?
Ветвление нужно, если дальнейшие действия зависят от некоторого условия. Например, разные действия выполняются при положительном и отрицательном значении числа.
Чем полное ветвление отличается от неполного?
В полном ветвлении предусмотрены действия и при истинном, и при ложном условии. В неполном ветвлении команды записаны только для одного результата, а при другом алгоритм продолжает работу дальше.
Почему цикл может выполняться бесконечно?
Это происходит, если условие завершения никогда не становится истинным или счётчик не изменяется. Чтобы избежать ошибки, нужно проверить начальное значение, изменение счётчика и условие остановки.
Можно ли использовать несколько конструкций в одном алгоритме?
Да, конструкции можно вкладывать и соединять. Например, внутри цикла может находиться ветвление, а перед циклом — последовательность подготовительных команд.
§ 13. Основные алгоритмические конструкции