Информатика, 6 классБлок-схемы4 минуты чтения
Блок-схема алгоритма
Блок-схема это чертёж алгоритма. Он показывает порядок действий и все развилки, не отвлекаясь на то, каким языком это будет записано.
6классФормы блоков
У каждой формы своё значение, и договорились об этом давно. Овал означает начало или конец, прямоугольник действие, ромб проверку условия.
Есть и блок ввода-вывода в форме скошенного прямоугольника. В нём пишут «прочитать число» или «вывести ответ».
Стрелки задают порядок. Идут они сверху вниз, а вбок отходят только от ромба.
Что означает форма
- Овалначало или конец
- Прямоугольникдействие
- Ромбпроверка условия
- Скошенный прямоугольникввод или вывод
- Стрелкапереход к следующему блоку
Линейный алгоритм
Самая простая схема идёт сверху вниз без единой развилки. Такой алгоритм называют линейным.
Он годится там, где порядок действий известен заранее и не зависит от данных.
Большинство расчётов по формулам именно такие: прочитать числа, посчитать, вывести ответ.
Площадь прямоугольника
Начало
Прочитай длину a
Прочитай ширину b
Посчитай S равно a умножить на b
Выведи S
Конец
Правила хорошей схемы
Начало и конец по одному. Из каждого блока действия выходит ровно одна стрелка.
Из ромба выходят две и обе подписаны: «да» и «нет». Неподписанная ветка это ошибка, читатель не догадается, какая из них какая.
Стрелки не должны пересекаться без нужды. Если схема превратилась в клубок, её пора делить на части.
Правильно
Ошибка
Один овал начала
Начал с прямоугольника
Ветки ромба подписаны
Подписей нет
Одна стрелка из действия
Две стрелки из действия
Схема помещается на лист
Стрелки уходят за край
Схема и ввод данных
Откуда алгоритм берёт исходные числа, тоже показывают на схеме. Для этого и придуман отдельный блок ввода.
Без него схема выглядит так, будто данные появились сами. При переводе в программу этот блок превращается в чтение с клавиатуры или из файла.
Тем же блоком, только со словом «вывести», заканчивают почти каждый алгоритм.
Проверка по схеме
Готовую схему проверяют прогонкой: берут конкретные числа и идут пальцем от начала до конца, записывая, что получается на каждом шаге.
Такую проверку называют трассировкой. Она находит ошибку раньше, чем ты потратишь час на набор программы.
Особенно полезно прогонять крайние случаи: ноль, единицу, самое большое значение.
Трассировка на примере
- 1Выпиши в столбик все величины алгоритма
- 2Задай им начальные значения
- 3Иди по схеме и после каждого блока обновляй значения
- 4Дойдя до конца, сравни ответ с ожидаемым
- 5Если сошлось, повтори на другом наборе чисел
От схемы к программе
Каждый блок превращается в строку кода почти дословно. Действие в присваивание, ромб в условие, стрелка возврата в цикл.
Поэтому нарисованная схема экономит время. Остаётся перевести её на язык программирования.
Обратный путь тоже полезен: чужую программу проще понять, набросав по ней схему.
Три основные конструкции
Любой алгоритм собирается всего из трёх кирпичей. Первый это следование: действия идут одно за другим.
Второй это ветвление: путь расходится по проверке. Третий это цикл: часть пути повторяется.
Учёные доказали, что этих трёх достаточно для любой задачи. Никаких особых конструкций больше не понадобится, как бы сложна ни была программа.
Схема с повтором
Цикл на схеме выглядит стрелкой, уходящей назад. Она возвращает нас к блоку, который уже был пройден.
Чтобы схема не превратилась в клубок, обратную стрелку рисуют слева, вдоль края. Тогда сразу видно, какая часть алгоритма повторяется.
Проверять такие схемы нужно особенно внимательно: именно здесь прячется бесконечный повтор.
Подписи и понятность
В блоках пишут коротко, но по делу. «Обработать данные» ничего не говорит, а «посчитать среднее по столбцу» говорит всё.
Хорошая схема читается человеком, который видит задачу впервые. Это и есть главная проверка.
Если приходится объяснять свою схему словами, значит, надписи в блоках стоит переписать.
Когда схема не нужна
Для трёх строк схема лишняя. Она выручает там, где есть развилки, повторы и легко запутаться.
Взрослые программисты рисуют схемы редко, зато охотно рисуют другие картинки: как части программы связаны между собой.
Смысл один и тот же. Сложное лучше видно на рисунке.
Про развилку читай урок «Ветвление». Про первые схемы есть урок «Блок-схема».
Проверь себя: На схеме из ромба выходит одна стрелка. Что не так?
Ромб задаёт вопрос, и у вопроса два ответа. Обе ветки должны быть нарисованы и подписаны, иначе непонятно, что делать при ответе «нет».
Короткие ответы
- Зачем рисовать схему, если можно сразу писать программу?
- Схема показывает замысел без мелочей языка. Ошибку в замысле дешевле найти на бумаге, чем в готовом коде.
- Обязательно ли соблюдать формы блоков?
- Для себя можно рисовать как угодно. Но общие правила существуют затем, чтобы твою схему понял любой другой человек.