"Информатика (в 2 частях)", Нателаури Н.К., Маранин С.С.
Алгоритм можно представить не только в виде готовой программы. Его записывают словами, изображают блок-схемой или оформляют псевдокодом — так последовательность действий становится понятной человеку и удобной для проверки. Каждый способ подходит для своей цели: словесная запись объясняет шаги, блок-схема показывает порядок переходов, а псевдокод помогает заранее спланировать программу. Главное — точно указать действия, условия и повторения.
Текст подготовлен нейронной сетью по теме параграфа и не заменяет учебник — важные факты и формулировки сверяйте с ним.
Способ записи алгоритма — форма представления последовательности действий, выбранная для понимания, проверки или выполнения алгоритма. Один и тот же порядок команд можно записать словами, схемой или специальными обозначениями. Выбор формы зависит от того, кто будет читать или выполнять алгоритм.
Словесная запись алгоритма — описание действий исполнителя на естественном языке в порядке их выполнения. Каждый шаг формулируют ясно и обычно нумеруют. Такая запись нужна, чтобы человек мог последовательно выполнить команды и проверить, не пропущено ли действие.
Блок-схема — графическое представление алгоритма с помощью стандартных геометрических блоков и стрелок. Фигуры показывают действия, условия, ввод и вывод данных. Схема помогает быстро увидеть структуру алгоритма, особенно его ветви и повторения.
Псевдокод — условная запись алгоритма, похожая на программу, но не привязанная к конкретному языку программирования. В нём используют понятные команды вроде «ввести», «если», «повторять». Он нужен для планирования решения, когда точный синтаксис будущей программы ещё не выбран.
Один алгоритм записывают разными способами, потому что у читателей и исполнителей разные задачи. Человеку, который только изучает решение, удобнее подробное описание или схема, а программисту — псевдокод и затем программа. Если алгоритм должен выполнить компьютер, одной словесной записи недостаточно: её переводят на язык, правила которого понимает машина. Поэтому форма записи выбирается не по красоте, а по назначению.
Словесная запись передаёт последовательность действий от первого шага к последнему. Точность нужна потому, что исполнитель не должен угадывать смысл команды: «обработать данные» хуже, чем «сложить два введённых числа». Однозначность исключает разные толкования, а нумерация позволяет сослаться на конкретный шаг и проверить порядок выполнения. Если действие повторяется или зависит от условия, это также нужно явно указать словами.
В блок-схеме начало и конец обычно обозначают овалом, действие — прямоугольником, условие — ромбом, а ввод или вывод данных — параллелограммом. Разные фигуры нужны, чтобы сразу отличать команду от проверки. Внутри блока пишут краткое содержание операции, например «сложить a и b» или «a > b?». Такое единообразие делает схемы понятными разным людям.
Стрелки соединяют блоки и задают направление выполнения алгоритма. После обычного действия переходят к блоку, на который указывает следующая стрелка, а из ромба обычно выходят две ветви: при выполнении условия и при его невыполнении. По выбранной ветви исполнитель продолжает движение, пока не дойдёт до конца или нового условия. Без стрелок нельзя надёжно определить порядок шагов.
Псевдокод отличается от обычного текста тем, что его команды имеют алгоритмическую структуру: ввод, присваивание, условие и цикл. От настоящей программы он отличается отсутствием строгой привязки к синтаксису конкретного языка и компьютеру, который мог бы его выполнить. Псевдокод используют заранее, чтобы сосредоточиться на логике решения, а не на точках, скобках и служебных словах языка. После проверки такой план легче превратить в программу.
| Свойство | Словесная запись | Блок-схема | Псевдокод | Программа |
|---|---|---|---|---|
| Форма представления | Текст с командами | Фигуры и стрелки | Условный структурированный текст | Код на языке программирования |
| Основной читатель | Человек, исполнитель | Человек, изучающий алгоритм | Разработчик и программист | Компьютер и программист |
| Как показывается порядок действий | Нумерацией и порядком строк | Стрелками между блоками | Порядком команд и отступами | Порядком выполнения команд |
| Как записывается условие | Фразой «если... то...» | В ромбе с выходами | Командой «если» | Синтаксисом языка |
| Как обозначаются повторяющиеся действия | Описанием повторения | Возвратной стрелкой | Командой цикла | Оператором цикла |
| Преимущества | Простота и доступность | Наглядность | Близость к программе | Непосредственное выполнение |
| Ограничения | Может быть длинной или неточной | Большая схема занимает место | Не запускается напрямую | Требует знания языка |
| Возможность непосредственного выполнения компьютером | Нет | Нет | Обычно нет | Да |
Таблицу удобно использовать, когда нужно выбрать форму записи под задачу. Сначала определите, кто будет читать алгоритм и требуется ли наглядность, а затем сравните преимущества и ограничения способов. Для создания работающей программы в итоге нужен код на конкретном языке.
Условие: записать словесно алгоритм нахождения суммы чисел a и b, которые вводит пользователь. Нужно выделить получение данных, вычисление и сообщение результата. Каждый этап оформим отдельным шагом.
Решение по шагам:
Ответ: словесная запись содержит последовательность от ввода к выводу. Если поменять местами вычисление и ввод второго числа, команда сложения окажется невыполнимой, потому что значение b ещё неизвестно.
Условие: построить блок-схему для чисел a и b. После ввода нужно сравнить их и сообщить большее значение. В схеме понадобятся блоки начала и конца, ввод, условие, два возможных вывода и стрелки.
Решение по шагам:
Ответ: ромб разделяет выполнение на две ветви. Для равных чисел условие также даст ответ «нет», поэтому для задачи, где требуется отдельно сообщать о равенстве, понадобится дополнительная проверка.
Условие: представить псевдокод алгоритма нахождения суммы всех целых чисел от 1 до n. Нужны начальные значения суммы и счётчика, проверка продолжения цикла и изменение счётчика. Если последний шаг забыть, повторение может стать бесконечным.
Решение по шагам:
Ответ: псевдокод можно записать так: «ввести n; s = 0; i = 1; пока i ≤ n: s = s + i, i = i + 1; вывести s». При n = 3 последовательно получаются суммы 1, 3 и 6.
Смешение действия и условия в одном блоке. Например, запись «увеличить i и проверить i ≤ n» объединяет команду и проверку. Её допускают, желая сделать схему короче; проверьте себя, задав вопрос: блок выполняет действие или только принимает решение?
Отсутствие стрелок, начала или конца. Без этих элементов непонятно, откуда запускать алгоритм и куда переходить после блока. Ошибку часто допускают при переносе схемы на бумагу; проверьте, что есть один вход в начало, понятные переходы и завершение всех ветвей.
Неоднозначное условие. Фраза «если число подходит» не сообщает, какое свойство нужно проверить. Причина ошибки — попытка заменить точное сравнение бытовым выражением; сформулируйте условие так, чтобы на него можно было ответить только «да» или «нет».
Пропуск изменения счётчика в цикле. Если значение i не меняется, условие может оставаться истинным бесконечно долго. После записи цикла проследите хотя бы два повторения и убедитесь, что управляющая величина приближается к завершению.
До изучения способов записи нужно понимать, что такое алгоритм, исполнитель, команда и последовательность действий. Эти понятия помогают отличать отдельную операцию от всего плана решения. Без них трудно правильно сформулировать шаги.
Тема пригодится при составлении программ, проверке готовых алгоритмов и переводе блок-схем или псевдокода на язык программирования. Сначала проверяют логику решения, а затем записывают её с точным синтаксисом. Это уменьшает число ошибок в коде.
Условные обозначения блок-схем связаны с ветвлениями, циклами и трассировкой алгоритмов. По схеме можно проследить, какие команды выполняются при разных исходных данных. Так находят пропущенные переходы и неверные условия.
Какой способ записи алгоритма выбрать для конкретной задачи?
Для простого объяснения подойдёт словесная запись. Если нужно наглядно показать ветвления и циклы, удобнее использовать блок-схему, а перед программированием — псевдокод.
Чем блок-схема отличается от обычного рисунка?
Блок-схема строится по установленным правилам: фигуры имеют определённые значения, а стрелки показывают переходы. Обычный рисунок может быть понятным, но его элементы не обязаны обозначать команды или условия.
Почему в блок-схеме для условия используют ромб?
Ромб показывает проверку, у которой обычно есть два результата: да или нет. Из него выходят разные стрелки, поэтому легко увидеть возможные ветви алгоритма.
Можно ли считать псевдокод программой?
Нет, псевдокод не является готовой программой для компьютера. Он похож на программу по структуре, но не обязан соблюдать правила конкретного языка.
Как проверить, что записанный алгоритм не содержит пропущенных шагов?
Нужно пройти по нему от начала до конца, выполняя команды по порядку с конкретными исходными данными. Отдельно проверьте все ветви условия и убедитесь, что в цикле меняется счётчик или другое управляющее значение.
Способы записи алгоритмов