Основные элементы блок-схемы. Типы блок-схем

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

Чтобы упростить процесс объяснения и разработки очень удобно использовать блок-схемы. Блок-схема – один из типов схем, который позволяет описать алгоритмы или процессы. Они часто используются для работы со сложными задачами, состоящими из множества пунктов. Мы сделали подборку из 6 инструментов, которые помогут вам создать такие схемы. Для работы с большинством из них оплата не потребуется.

6 инструментов для работы с блок-схемами:

draw.io

Этот сервис позволит создавать не только блок-схемы, но и UML, диаграммы сущность-связь, сетевые диаграммы, электрические схемы, каркасные схемы и модели. Интуитивный интерфейс и большая библиотека элементов позволят работать легко и комфортно. Важно также и то, что над одним проектом могут работать сразу несколько человек. Результат можно сохранить в форматах PNG/JPG/XML/SVG/PDF. Имеется интеграция с Google Drive.

gliffy.com

Gliffy предоставляет схожий набор инструментов и возможностей: большая библиотека элементов, удобный интерфейс, возможность коллективной работы, интеграция с Google Drive, работа с документами Visio, готовые цветовые темы для проектов.

gomockingbird.com

Программа имеет простой и понятный UI, работает в браузере, есть возможность работы в команде. Также, добавив ссылки, можно объединять несколько проектов в один.

lucidchart.com

Онлайн-сервис, который облегчит создание скетчей и диаграмм. Совместим с G Suite и документами Microsoft Visio. После окончания работы можно экспортировать файл в различных форматах, либо отправить на публикацию.

Balsamiq mockups

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

Если не очень хочется неаккуратно чиркать в тетрадке, а рисовать заставляют. Конечно, мы рассматриваем только бесплатные варианты:)

  • draw.io . Отличный бесплатный сервис для онлайн-рисования бизнес-схем и блок-схем. Сохраняет файл в формате.xml, но можно и заскриншотить, отключив показ сетки (Grid). Интегрируется с Google Drive.
  • Google Drawing . Авторизуйтесь в своём гугль-профиле, скажите в меню страницы Файл - Создать - Рисунок и получите удобную рисовалку, после которой можно скачать в pdf или популярных графических форматах.

Пожалуй, эти сервисы - лучшие, хотя есть и немало альтернатив:

  • lucidchart . После секундной регистрации и выбора Start Free Account получаем удобные и легко масштабируемые схемы, которые затем можно опубликовать и скачать в нужном формате.
  • creatly . "Try creatly now" - и можно рисовать сразу же. Правда, нужно разрешить загрузку флешки и экспорт файлов доступен только для зарегистрированных пользователей. Но ведь скриншоты никто не отменял:)
  • iyopro.com . Бесплатный проект, правда, он на Silverlight и запустится не у всех (например, будет работать в Internet Explorer).
  • gliffy . После короткой регистрации, не требующей подтверждения, можно сразу начать рисовать схемы.
  • cacoo . Позиционирует себя как "Cloud-based diagrams, the easy way".
  • Violet . Оффлайн-редактор UML-диаграмм, для продвинутых:)
  • Блок-схема от paslab . Уникальный отечественный сервис для преобразования программок на Паскале в блок-схемы:)

Алгоритм - описанная на некотором языке точная конечная система правил, определяющая содержание и порядок действий над некоторыми объектами, строгое выполнение которых дает решение поставленной задачи.Понятие алгоритма, являющееся фундаментальным в математике и информатике, возникло задолго до появления средств вычислительной техники. Слово «алгоритм» появилось в средние века, когда европейцы познакомились со способами выполнения арифметических действий в десятичной системе счисления, описанными узбекским математиком Муххамедом бен Аль-Хорезми.Слово алгоритм - есть результат европейского произношения слов Аль-Хорезми.Первоначально под алгоритмом понимали способ выполнения арифметических действий над десятичными числами. В дальнейшем это понятие стали использовать для обозначения любой последовательности действий, приводящей к решению поставленной задачи.Любой алгоритм существует не сам по себе, а предназначен для определенного исполнителя (человека, робота, компьютера, языка программирования и т.д.).Значение слова «алгоритм» очень схоже со значениями слов «рецепт», «метод», «процесс». Однако, в отличие от рецепта или процесса, алгоритм характеризуется следующими свойствами:

дискретностью, массовостью, определенностью, результативностью, формальностью.

Дискретность (разрывность) - это свойство алгоритма, характеризующее его структуру: каждый алгоритм состоит из отдельных законченных действий, говорят «Делится на шаги».

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

Определенность (детерминированность, точность) - свойство алгоритма, указывающее на то, что каждый шаг алгоритма должен быть строго определен и не допускать различных толкований. Также строго должен быть определен порядок выполнения отдельных шагов.

Результативность - свойство, состоящее в том, что любой алгоритм должен завершаться за конечное (может быть очень большое) число шагов. Формальность - это свойство указывает на то, что любой исполнитель, способный воспринимать и выполнять инструкции алгоритма, действует формально, т.е. отвлекается от содержания поставленной задачи и лишь строго выполняет инструкции. Рассуждать «что, как и почему?» должен разработчик алгоритма, а исполнитель формально (не думая) поочередно исполняет предложенные команды и получает необходимый результат.

1.2.Способы описания (виды) алгоритмов.

Рассмотрим следующие способы описания алгоритма: словесное описание, псевдокод, блок-схема, программа.

Словесное описание представляет структуру алгоритма на естественном языке. Например, любой прибор бытовой техники (утюг,электропила, дрель и т.п.) имеет инструкцию по эксплуатации, т.е.словесное описания алгоритма, в соответствии которому данный прибор должен использоваться. Никаких правил составления словесного описания не существует. Запись алгоритма осуществляется в произвольной форме на естественном, например, русском языке. Этот способ описания не имеет широкого распространения, так как строго не формализуем (под «формальным» понимается то, что описание абсолютно полное и учитывает все возможные ситуации, которые могут возникнуть в ходе решения); допускает неоднозначность толкования при описании некоторых действий; страдает многословностью.

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

Блок-схема - описание структуры алгоритма с помощью геометрических фигур с линиями-связями, показывающими порядок выполнения отдельных инструкций. Этот способ имеет ряд преимуществ. Благодаря наглядности, он обеспечивает «читаемость»алгоритма и явно отображает порядок выполнения отдельных команд. В блок-схеме каждой формальной конструкции соответствует определенная геометрическая фигура или связанная линиями совокупность фигур.

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

Программа - описание структуры алгоритма на языке алгоритмического программирования.

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

Блок-схема алгоритма - графическое изображение алгоритма в виде связанных между собой с помощью стрелок (линий перехода) и блоков - графических символов, каждый из которых соответствует одному шагу алгоритма. Внутри блока дается описание соответствующего действия.

В таблице приведены наиболее часто употребляемые символы.

Название символа

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

Пояснение

Вычислительное действие или последовательность действий

Проверка условий

Модификация

Начало цикла

Предопределенный процесс

Вычисления по подпрограмме, стандартной подпрограмме

Ввод-вывод

Ввод-вывод в общем виде

Пуск-остановка

Начало, конец алгоритма, вход и выход в подпрограмму

Документ

Вывод результатов

Символы блок-схемы

Блок «процесс » применяется для обозначения действия или последовательности действий, изменяющих значение, форму представления или размещения данных. Для улучшения наглядности схемы несколько отдельных блоков обработки можно объединять в один блок. Представление отдельных операций достаточно свободно.

Блок «решение » используется для обозначения переходов управления по условию. В каждом блоке «решение» должны быть указаны вопрос, условие или сравнение, которые он определяет.

Блок «модификация » используется для организации циклических конструкций. (Слово «модификация» означает «видоизменение, преобразование»). Внутри блока записывается параметр цикла, для которого указываются его начальное значение, граничное условие и шаг изменения значения параметра для каждого повторения.

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

Для примера приведем блок-схемы алгоритма нахождения максимального из двух значений:

Блок-схемой будем называть такое графическое представление алгоритма, когда отдельные действия (или команды) представляются в виде геометрических фигур – блоков . Внутри блоков указывается информация о действиях, подлежащих выполнению. Связь между блоками изображают с помощью линий, называемых линиями связи , обозначающих передачу управления.

Существует Государственный стандарт, определяющий правила создания блок-схем. Конфигурация блоков, а также порядок графического оформления блок-схем регламентированы ГОСТ 19.701-90 "Схемы алгоритмов и программ". В табл. 2.1 приведены обозначения некоторых элементов, которых будет вполне достаточно для изображения алгоритмов при выполнении студенческих работ.

Правила составления блок-схем:

    Каждая блок-схема должна иметь блок «Начало » и один блок «Конец ».

    «Начало » должно быть соединено с блоком «Конец » линиями потока по каждой из имеющихся на блок-схеме ветвей.

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

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

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

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

    От блока «Начало » в отличие от всех остальных блоков линия потока только выходит, так как этот блок – первый в блок-схеме.

    Блок «Конец » имеет только вход, так как это последний блок в блок-схеме.

    Для простоты чтения желательно, чтобы линия потока входила в блок «Процесс» сверху, а выходила снизу.

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

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

Название блока

Обозначение блока

Назначение блока

Терминатор

Начало/Конец программы или подпрограммы

Обработка данных (вычислительное действие или последовательность вычислительных действий)

Ветвление, выбор, проверка условия. В блоке указывается условие или вопрос, который определяет дальнейшее направление выполнения алгоритма

Подготовка

Заголовок счетного цикла

Предопределенный процесс

Обращение к процедуре

Ввод/Вывод данных


Типы алгоритмов

Тип алгоритма определяется характером решаемой в соответствии с его командами задачи. Различают три типа алгоритмов: линейные, разветвляющиеся, циклические.

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

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

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

Каждое из возможных направлений дальнейших действий называется ветвью .

В блок-схемах разветвление реализуется специальным блоком «Решение» . Этот блок предусматривает возможность двух выходов. В самом блоке «Решение» записывается логическое условие, от выполнения которого зависят дальнейшие действия.

Различают несколько видов разветвляющихся алгоритмов.

1. «Обход» – такое разветвление, когда одна из ветвей не содержит ни одного оператора, т.е. как бы обходит несколько действий другой ветви.

2. «Разветвление» – такой тип разветвления, когда в каждой из ветвей содержится некоторый набор действий.

3. «Множественный выбор» – особый тип разветвления, когда каждая из нескольких ветвей содержит некоторый набор действий. Выбор направления зависит от значения некоторого выражения.

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

Различают:

      циклы с известным числом повторений (или со счетчиком);

      циклы с неизвестным числом повторений (циклы с предусловием и циклы с постусловием).

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

Последовательность действий, которая должна выполняться на каждом шаге цикла (т.е. при каждом повторении цикла), называется телом цикла или рабочей частью цикла .

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

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

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

Как и любая другая программа из серии Microsoft Office, Visio имеет все необходимые для комфортной работы инструменты: создание, редактирование, соединение и изменение дополнительных свойств фигур. Реализован и специальный анализ уже построенной системы.

Dia

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

Огромная стандартная библиотека форм и связей, а также уникальные возможности, не предлагаемые современными аналогами — это ждет пользователя при обращении к Диа.

Flying Logic

Если вы ищете софт, с помощью которого можно быстро и легко построить необходимую схему, то программа Flying Logic — это именно то, что вам нужно. Здесь отсутствует громоздкий сложный интерфейс и огромное количество визуальных настроек диаграмм. Один клик — добавление нового объекта, второй — создание объединения с другими блоками. Еще можно объединять элементы схемы в группы.

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

BreezeTree Software FlowBreeze

FlowBreeze — это не отдельная программа, а подключаемый к самостоятельный модуль, в разы облегчающий разработку диаграмм, блок-схем и прочих инфографик.

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

Edraw MAX

Как и предыдущий редактор, Edraw MAX — это продукт для продвинутых пользователей, профессионально занимающихся подобной деятельностью. Однако, в отличие от FlowBreeze, он является самостоятельным программным обеспечением с несчетным количеством возможностей.

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

AFCE Редактор Блок-Схем (Algorithm Flowcharts Editor)

Данный редактор является одним из наименее распространенных среди представленных в данной статье. Вызвано это тем, что его разработчик — обычный преподаватель из России — полностью забросил разработку. Но его продукт все-равно пользуется некоторым спросом на сегодняшний день, поскольку отлично подходит любому школьнику или студенту, который изучает основы программирования.

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

FCEditor

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

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

BlockShem

В программе BlockShem, к сожалению, представлено намного меньше функций и удобств для пользователей. Полностью отсутствует автоматизация процесса в любом виде. В БлокСхеме пользователь должен вручную рисовать фигуры, а после объединять их. Данный редактор скорее относится к графическим, нежели к объектным, предназначенным для создания схем.

Библиотека фигур, к сожалению, в этой программе крайне бедна.

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