На Горох
Информатика, 11 класс

§ 9. Структурное программирование

"Информатика. Базовый уровень", Босова Л.Л., Босова А.Ю.

Объяснение темы В оглавлении: § 9. Структурное программирование

Кратко о теме

Структурное программирование помогает строить понятные программы из небольшого набора управляющих конструкций: следования, ветвления и циклов. Следование задаёт порядок команд, ветвление выбирает действия по условию, а цикл повторяет их. Эти конструкции можно сочетать и вкладывать друг в друга, чтобы решать сложные задачи без потери ясности. Такой подход облегчает чтение программы, поиск ошибок и проверку результата.

Объяснение темы

Текст подготовлен нейронной сетью по теме параграфа и не заменяет учебник — важные факты и формулировки сверяйте с ним.

Определения и обозначения

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

Базовая алгоритмическая конструкция — типовая схема управления действиями программы: следование, ветвление или повторение. Она показывает, как программа выбирает следующую команду или блок команд. Использование таких схем помогает описывать алгоритмы единообразно и не терять логику при усложнении задачи.

Следование — последовательное выполнение команд в порядке их записи. Каждая команда выполняется после предыдущей, если выполнение не прервано ошибкой или специальной командой. Следование подходит для действий, которые нужно выполнить один раз в заданном порядке, например для ввода данных и вычисления результата.

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

Как это устроено

Сложную программу удобно строить из небольших последовательных, условных и повторяющихся фрагментов, потому что каждый такой фрагмент решает ограниченную часть задачи. Его легче понять отдельно, чем сразу удерживать в памяти весь алгоритм. Затем фрагменты соединяют в нужном порядке и проверяют их взаимодействие. Так проще обнаружить, в каком именно блоке возникла ошибка.

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

Условие в ветвлении — логическое выражение, которое принимает значение «истина» или «ложь». В зависимости от результата выполняется соответствующая ветвь, поэтому программа может по-разному реагировать на разные данные. Полное ветвление предусматривает действия для обоих исходов: и когда условие истинно, и когда оно ложно. Неполное ветвление задаёт действие только для одного исхода; при другом выполнение просто продолжается дальше.

Чтобы организовать цикл, нужно определить начальные действия, условие продолжения и изменение параметров. Начальная часть задаёт отправное состояние, условие решает, нужно ли выполнять очередной шаг, а изменение параметров приближает цикл к завершению. В цикле с предусловием условие проверяется до тела, поэтому тело может не выполниться. В цикле с постусловием проверка стоит после тела, а цикл с параметром повторяет действия для заданного набора значений.

Вложение базовых конструкций позволяет собирать алгоритмы для задач с несколькими этапами. Например, внутри цикла можно поместить ветвление, чтобы проверять каждый очередной элемент и обрабатывать его только при выполнении условия. Вложенные блоки важно визуально и логически отделять: так понятно, какие команды относятся к циклу, а какие — к ветви. Чёткие границы облегчают проверку каждого блока и всего алгоритма.

Базовые конструкции структурного программирования

КонструкцияПорядок выполненияУсловие использованияТипичная запись или схемаПример задачи
СледованиеКоманды выполняются одна за другой в заданном порядке.Все действия нужны один раз, без выбора и повторения.Команда 1 → команда 2 → команда 3.Ввести два числа, вычислить сумму, вывести её.
ВетвлениеПроверяется условие, затем выполняется одна из ветвей.Действия зависят от данных или результата проверки.если условие, то действие; иначе другое действие.Проверить, является ли число положительным.
Цикл с предусловиемУсловие проверяется перед каждым выполнением тела.Повторять, пока условие истинно; тело может не выполниться.пока условие: тело цикла.Считывать значения, пока не встретится признак остановки.
Цикл с постусловиемСначала выполняется тело, затем проверяется условие продолжения.Тело должно выполниться хотя бы один раз.повторять: тело цикла; пока условие.Запрашивать ввод, пока пользователь не введёт допустимое значение.
Цикл с параметромПараметр принимает заданные значения, для каждого выполняется тело.Число повторений или диапазон значений известны заранее.для i от 1 до N: тело цикла.Обработать каждый из N элементов списка.
Вложенные конструкцииОдна конструкция выполняется внутри другой.Нужно сочетать повторение, выбор или последовательность действий.цикл, внутри которого находится ветвление.Для каждого числа проверить знак и отдельно обработать положительные.

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

Разбор задач

Вычислить значение выражения и вывести результат

Условие. Даны значения переменных, по ним нужно вычислить заданное выражение и вывести результат. Формула выражения зависит от условия задачи; здесь важен порядок организации решения. Нужно получить готовые значения до начала вычислений.

  1. Определить, какие переменные входят в выражение и какие из них нужно ввести.
  2. Считать значения переменных и сохранить их в соответствующих именованных ячейках.
  3. Вычислить выражение, используя введённые значения и соблюдая порядок операций.
  4. Вывести полученный результат.

Ответ. Алгоритм имеет вид: ввод данных → вычисление выражения → вывод результата. Такая последовательность подходит, потому что ни выбор условия, ни повторение действий в этой задаче не требуются. Если выражение сложное, его можно разбить на промежуточные вычисления, сохранив общий порядок.

Проверить существование треугольника и найти периметр

Условие. Даны три длины a, b и c. Нужно определить, можно ли построить треугольник с такими сторонами, и, если можно, найти его периметр. Периметр нельзя вычислять как ответ задачи, пока не проверено условие существования фигуры.

  1. Ввести значения a, b и c.
  2. Проверить одновременно три неравенства: a + b > c, a + c > b и b + c > a.
  3. Если все неравенства истинны, вычислить P = a + b + c и вывести его.
  4. Иначе сообщить, что треугольник с такими сторонами не существует.

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

Найти количество и сумму положительных чисел

Условие. Дана последовательность из N чисел. Требуется посчитать, сколько в ней положительных элементов, и найти их сумму. Одного просмотра последовательности достаточно, но проверку нужно повторить для каждого числа.

  1. Задать начальные значения счётчика и суммы: k = 0, s = 0.
  2. Организовать цикл на N повторений и на каждом шаге получить очередное число x.
  3. Внутри цикла проверить условие x > 0. Если оно истинно, увеличить k на 1 и прибавить x к s.
  4. После завершения цикла вывести k и s.

Ответ. Цикл обеспечивает обработку всех элементов, а вложенное ветвление отбирает только положительные. Нулевые и отрицательные числа не меняют ни счётчик, ни сумму. Если положительных элементов нет, результатом будут k = 0 и s = 0.

Типичные ошибки

Путают условие цикла с условием выхода. Из-за этого цикл может выполнить лишний шаг или не запуститься вовсе: смысл проверки зависит от того, означает ли она продолжение или остановку. Такая путаница часто возникает при переводе условия задачи в логическое выражение. Проверьте алгоритм на первом значении и на том, при котором цикл должен закончиться.

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

Записывают команды вне нужной ветви. Тогда действие может выполняться независимо от условия, хотя по смыслу задачи должно относиться только к одному исходу. Причина часто в неверно определённых границах ветви. Для проверки подставьте примеры, когда условие истинно и ложно, и отдельно проследите путь выполнения в каждом случае.

Неправильно задают границы цикла. Из-за ошибки в начальном или конечном значении можно пропустить первый либо последний элемент последовательности. Особенно легко ошибиться, если индексация начинается не с того числа или верхняя граница включается не так, как ожидалось. Проверьте вручную значения параметра на первой и последней итерациях и сравните число повторений с N.

Связь с другими темами

Для работы с конструкциями нужны знания об алгоритмах, исполнителе и командах, а также умение пользоваться переменными, условиями и логическими выражениями. Дальше структурный подход пригодится при создании программ с процедурами, функциями, массивами, строками и обработкой наборов данных. Те же конструкции помогают трассировать алгоритм — пошагово отслеживать его выполнение, тестировать программу и анализировать её поведение. Поэтому понимание структуры полезно и при поиске ошибок, и при оценке правильности решения.

Что запомнить

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

Частые вопросы по теме

Можно ли любую программу составить только из следования, ветвления и циклов?

В теории любую программу можно описать с помощью этих базовых управляющих конструкций и операций над данными. На практике используют также функции, процедуры и другие средства языка: они помогают удобнее организовать код, но не отменяют базовых конструкций.

Чем отличается цикл с предусловием от цикла с постусловием?

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

Как понять, какая часть алгоритма должна находиться внутри цикла?

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

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

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

Как проверить, что цикл обязательно завершится?

Найдите переменную или условие, от которого зависит продолжение цикла, и проследите, как они меняются на каждой итерации. Убедитесь, что изменение ведёт к нарушению условия продолжения за конечное число шагов.

Спросить по теме параграфа

§ 9. Структурное программирование

Эта же тема в других учебниках

Учебник

Оглавление →
Предмет
Информатика
Класс
11 класс
Учебник
"Информатика. Базовый уровень", Босова Л.Л., Босова А.Ю.