Как составить блок схему алгоритма онлайн. Блок-схемы алгоритмов - учебная и научная деятельность анисимова владимира викторовича
В наше время с построением различного рода диаграмм и блок-схем сталкивается каждый дизайнер и программист. Когда информационные технологии еще не занимали такую важную часть нашей жизни, рисование этих конструкций приходилось производить на листе бумаги. К счастью, теперь все эти действия выполняются с помощью автоматизированного программного обеспечения, устанавливаемого на компьютер пользователя.
В интернете довольно легко найти огромное количество редакторов, предоставляющих возможность создания, редактирования и экспорта алгоритмической и деловой графики. Однако не всегда легко разобраться в том, какое именно приложение необходимо в конкретном случае.
В силу своей многофункциональности, продукт от компании 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, к сожалению, представлено намного меньше функций и удобств для пользователей. Полностью отсутствует автоматизация процесса в любом виде. В БлокСхеме пользователь должен вручную рисовать фигуры, а после объединять их. Данный редактор скорее относится к графическим, нежели к объектным, предназначенным для создания схем.
Библиотека фигур, к сожалению, в этой программе крайне бедна.
Как видите, существует большой выбор софта, предназначенного для построения блок-схем. Причем различаются приложения не только количеством функций — некоторые из них предполагают фундаментально другой принцип работы, отличимый от аналогов. Поэтому сложно посоветовать, каким редактором пользоваться — каждый может подобрать именно тот продукт, который ему необходим.
На этом уроке мы на практике разберём: как составлять алгоритмы различных типов , а также как «читать» алгоритм по готовой блок-схеме .
Возможны следующие ситуации: в тот момент, когда мы подошли к дороге горел красный или зелёный свет. Если горел зелёный свет, то можно переходить дорогу. Если же горел красный свет, то необходимо дождаться зелёного - и уже тогда переходить дорогу.
Таким образом, алгоритм имеет следующий вид:
- Подойти к светофору.
- Посмотреть на его свет.
- Если горит зелёный, то перейти дорогу.
- Если горит красный, то подождать, пока загорится зелёный, и уже тогда перейти дорогу.
Блок-схема данного алгоритма имеет вид:
Рис. 3. Блок-схема к примеру 2.
Составление циклических алгоритмов
Рассмотрим пример на составление циклического алгоритма. Мы уже несколько раз обсуждали перевод чисел из десятичной системы в двоичную. Теперь пришло время чётко сформулировать этот алгоритм.
Напомним, что его принцип состоит в делении числа на 2 и записей остатков, получающихся при делении.
Пример 3. Составить алгоритм перевода чисел из десятичной системы в двоичную.
То есть, алгоритм будет выглядеть так:
- Если число равно 0 или 1, то это и будет его двоичное представление.
- Если число больше 1, то мы делим его на 2.
- Полученный остаток от деления записываем в последний разряд двоичного представления числа.
- Если полученное частное равно 1, то его дописываем в первый разряд двоичного представления числа и прекращаем вычисления.
- Если же полученное частное больше 1, то мы заменяем исходное число на него и возвращаемся в пункт 2).
Блок-схема этого алгоритма выглядит следующим образом:
Рис. 4. Блок-схема к примеру 3.
Примечание: подумайте, можно ли как-то упростить приведенную блок-схему.
«Чтение» алгоритмов
Пример 4. По заданной блок-схеме выполнить действия алгоритма для числа 23.
Рис. 5. Блок-схема к примеру 4.
На этом уроке мы разобрали примеры составления алгоритмов, а также пример «чтения алгоритма» по готовой блок-схеме.
На следующем уроке мы обсудим игры и выигрышные стратегии.
Как убить Кощея?
Наверное, все помнят из детства сказку, в которой рассказывается о местонахождении смерти Кощея Бессмертного: «Смерть моя - на конце иглы, которая в яйце, яйцо - в утке, утка - в зайце, заяц в сундуке сидит, сундук на крепкий замок закрыт и закопан под самым большим дубом на острове Буяне, посреди моря-океяна …»
Рис. 6. Кощей Бессмертный и Василиса Премудрая ().
Предположим, вместо Ивана-царевича бороться с Кощеем был брошен Иван-дурак. Давайте поможем Василисе Премудрой составить такой алгоритм, чтобы даже Иван-дурак смог убить Кощея.
- Конечно же, сначала необходимо разыскать остров Буян (на такие вещи, будем считать, Иван-дурак способен).
- Поскольку сундук закопан под самым большим дубом, то сначала необходимо найти самый большой дуб на острове.
- Затем нужно выкопать сам сундук.
- Прежде чем доставать зайца, необходимо сломать крепкий замок.
- Теперь уже можно достать зайца.
- Из зайца нужно достать утку.
- Из утки достать яйцо.
- Разбить яйцо и достать иголку.
- Иголку поломать.
Это тоже линейный алгоритм, хотя и более длинный, чем алгоритм запуска программы Paint.
Его блок-схема выглядит так:
Рис. 7. Блок-схема.
На распутье…
И снова обратимся к сказочным персонажам в поисках примеров различных алгоритмов. Когда речь идёт об алгоритмах с ветвлениями, то, конечно, нельзя не вспомнить о богатыре, стоящем на распутье возле камня.
Рис. 8. Богатырь на распутье ().
На камне написано:
«Направо пойдёшь - коня потеряешь, себя спасёшь; налево пойдёшь - себя потеряешь, коня спасёшь; прямо пойдёшь - и себя и коня потеряешь».
Попробуем составить алгоритм действий, который составил автор надписи на камне для путников?
- Если мы пойдём направо, то потеряем коня. Если же мы не пойдём направо, то у нас остаётся два варианта (мы считаем, что назад возвращаться путник не будет): пойти прямо и налево.
- В случае, если мы пойдём налево, то потеряем себя, а коня спасём.
- Если же мы пойдём прямо, то потеряем и себя, и коня.
Блок-схема этого алгоритма выглядит так:
Рис. 9. Блок-схема.
Репка
Русские народные сказки не оставили нас и без циклического алгоритма. И, как ни странно, спрятался он в одной из самых незамысловатых сказок - «Репке».
Рис. 10. Репка.
Вспомним сюжет сказки: дед тянет-потянет - вытянуть не может. Затем на помощь к деду по очереди подходят новые персонажи - и так до тех пор, пока не приходит мышка.
Попытаемся составить алгоритм действий всех персонажей сказки для того, чтобы они всё-таки смогли вытянуть Репку.
- Изначально к Репке подошёл дед и попытался вытянуть.
- Поскольку вытянуть Репку не получилось, то понадобилась помощь следующего персонажа.
- И так происходит до тех пор, пока не появилась мышка (или, другими словами, до тех пор, пока Репку не вытащили).
В виде блок-схемы этот алгоритм выглядит следующим образом:
Рис. 11. Блок-схема.
- Босова Л.Л. Информатика и ИКТ: Учебник для 6 класса. - М.: БИНОМ. Лаборатория знаний, 2012
- Босова Л.Л. Информатика: Рабочая тетрадь для 6 класса. - М.: БИНОМ. Лаборатория знаний, 2010.
- Босова Л.Л., Босова А.Ю. Уроки информатики в 5-6 классах: Методическое пособие. - М.: БИНОМ. Лаборатория знаний, 2010.
- Интернет портал «Сообщество взаимопомощи учителей» ().
- Интернет портал «Nsportal.ru» ().
- Интернет портал «Фестиваль педагогических идей» ().
- §3.3, 3.4 (Босова Л.Л. Информатика и ИКТ: Учебник для 6 класса);
- Постарайся самостоятельно составить линейный алгоритм из 5-6 фигур;
- Составь блок-схему циклического алгоритма выполнения домашнего задания;
Блок-схема является вариантом формализованной записи алгоритма или процесса. Каждый шаг алгоритма в данном представлении изображается в виде блоков различной формы, которые соединены между собой линиями. В блок-схеме можно отобразить все этапы решения любой задачи, начиная с ввода исходных данных, обработки операторами, выполнения цикличных и условных функций, и заканчивая операциями вывода результирующих значений.
Инструкция
Как правило, вначале алгоритма производится ввод исходных данных для решения поставленной задачи. Нарисуйте параллелограмм ниже линии так, чтобы он непрерывным продолжением схемы. В параллелограмме напишите производимое действие, обычно это операции данных с экрана (Read nInp) или других устройств. Важно, что введенные вами переменных в данном шаге будут использоваться в дальнейшем во всем теле блок-схемы.
Выполнение одной или группы операций, любая обработка данных (изменение значения или формы представления) обозначается в виде прямоугольника. Нарисуйте данную фигуру в нужном месте алгоритма при составлении блок-схемы. Внутри прямоугольника запишите производимые действия , например, операция присваивания записывается следующим образом: mOut = 10*nInp b + 5. Далее также для продолжения блок-схемы нарисуйте линию вниз.
Важной составляющей любого алгоритма и соответственно блок-схемы являются условные и цикличные операторы. У данных операторов один вход и два и или более альтернативных выхода. После вычисления условия, заданного оператором, дальнейший переход осуществляется лишь по одному пути. Нарисуйте вход в элемент в виде линии входящей в верхнюю вершину элемента.
Для задания оператора условия нарисуйте от данной линии ромб. Внутри фигуры укажите само условие и проведите линии, указывающие дальнейший переход в зависимости от его выполнения. Условие задается в общем случае операциями сравнения (>, <, =). Переход по линии вниз осуществляется при истинном условии, назад – при ложном. Укажите около выходных линий фигуры результаты условия (true, false). Невыполнение условия (false) возвращает к определенному шагу выше по телу алгоритма. Проведите линии под прямым углом от выхода с условия и до нужного оператора.
Если не очень хочется неаккуратно чиркать в тетрадке, а рисовать заставляют. Конечно, мы рассматриваем только бесплатные варианты:)
- 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 . Уникальный отечественный сервис для преобразования программок на Паскале в блок-схемы:)
При описании алгоритмов давно и успешно используются блок-схемы (Basic Flowchart). Построение блок-схем алгоритмов регламентируется ГОСТ 19.701-90 (ИСО 5807-85) "Единая система программной документации. Схемы алгоритмов программ, данных и систем. Условные обозначения и правила выполнения" . Данный государственный стандарт составлен на основе международного стандарта "ISO 5807-85. Information processing – Documentation symbols and conventions for data, program and system flowcharts, program network charts and system resources charts".
Согласно ГОСТ 19.701-90 под схемой понимается графическое представление определения, анализа или метода решения задачи. С помощью схем можно отобразить как статические, так и динамические аспекты системы. Символы, приведенные в государственном стандарте, могут использоваться в следующих типах схем :
Схемы данных – определяют последовательность обработки данных и их носители;
Схемы программ – отображают последовательность операций в программе (по сути, это и есть блок-схемы алгоритмов в традиционном понимании);
Схемы работы системы – отображают управление операциями и потоки данных в системе;
Схемы взаимодействия программ – отображают путь активации программ (модулей) и их взаимодействие с соответствующими данными;
Схемы ресурсов системы – отображают конфигурацию блоков данных и обрабатывающих блоков.
Как видно из приведенных выше типов схем, они могут использоваться не только для моделирования поведенческого аспекта, но и для задач функционального, информационного и компонентного проектирования.
При построении поведенческой модели системы используются основные принципы структурного подхода – принципы декомпозиции и иерархического упорядочения. Поведенческая модель представляет собой набор взаимосвязанных схем (диаграмм) с разным уровнем детализации, причем с каждым новым уровнем детализации система приобретает все более законченные очертания.
На схемах могут присутствовать следующие элементы графической нотации :
Символы данных – указывают на наличие данных, вид носителя или способ ввода-вывода данных;
Символы процесса – указывают операции, которые следует выполнить над данными;
Символы линий – указывают потоки данных между процессами и/или носителями данных, а также потоки управления между процессами;
Специальные символы – используются для облегчения написания и чтения схем.
Кроме деления по смысловому содержанию, каждую категорию символов (кроме специальных) делят на основные и специфические символы. Основной символ используется в тех случаях, когда точный вид процесса или носителя данных неизвестен или отсутствует необходимость в описании фактического носителя данных (процесса). Специфический символ используется в тех случаях, когда известен точный вид процесса или носителя данных и это необходимо отобразить на схеме. В следующей таблице приводятся элементы графической нотации блок-схем.
Таблица 8.1. Условные обозначения на блок-схемах
№ п/п | Символ | Наименование | Примечания | |
1. СИМВОЛЫ ДАННЫХ
Основные |
||||
1.1 | Данные | Данные, носитель которых не определен | ||
1.2 | Запоминающее устройство (ЗУ) | Данные, хранимые в виде, пригодном для автоматической обработки, носитель не определен | ||
Специфические | ||||
1.3 | ОЗУ | Данные, хранящиеся в ОЗУ (оперативная память) | ||
1.4 | ЗУ с последовательным доступом | Данные, хранящиеся на магнитной ленте (магнитная лента, магнитофонная кассета) | ||
1.5 | ЗУ с прямым доступом | Данные, хранящиеся на жестких или гибких магнитных дисках, CD, DVD, ZIP и т.д. | ||
1.6 | Документ | Данные, представляемые не в компьютерном виде (на бумаге, на пленках и т.д.) | ||
1.7 | Ручной ввод | Данные, вводимые вручную с помощью клавиатуры, мыши, светового пера и т. д. | ||
1.8 | Карта | Данные на перфокартах, магнитных картах, картах со считываемыми метками и т.д. | ||
1.9 | Бумажная лента | Данные на бумажной ленте | ||
1.10 | Дисплей | Данные, отображаемые на экране монитора, сигнальные индикаторы и т.д. | ||
2. СИМВОЛЫ ПРОЦЕССА
Основной |
||||
2.1 | Процесс | Элементарная (атомарная) операция по обработке данных (например, n:=n+1) | ||
Специфические | ||||
2.2 | Предопределенный процесс (процедура) | Процесс, состоящий из операций, описанных в другом месте (на другой схеме) | ||
2.3 | Ручная операция | Операция, выполняемая вручную | ||
2.4 | Подготовка | Подготовительные операции, выполняемые с целью модификации последующих операций (цикл с параметром ) | ||
2.5 | Решение | Операция с одним входом и несколькими альтернативными выходами, один из которых активизируется после проверки условия, записываемого внутри символа (операторы If-Then-Else или Case) | ||
2.6 | Параллельные действия | Параллельное выполнения двух и более операций | ||
2.7 | Границы цикла | Начало и конец цикла. Особенности работы цикла (инициализация, приращение, условие) записывается в начале или конце, в зависимости от того, где осуществляется его проверка (циклы с пред- или постусловием) | ||
3. СИМВОЛЫ ЛИНИЙ
Основной |
||||
3.1 | Линия | Поток данных или управления | ||
Специфические | ||||
3.2 | Канал связи | Передача данных по каналу связи | ||
3.3 | Пунктирная линия | Альтернативная связь между двумя и более символами или для обводки комментируемого участка схемы | ||
4. СПЕЦИАЛЬНЫЕ СИМВОЛЫ | ||||
4.1 | ГОСТ | Соединитель | Используется для обрыва линий и их продолжения в другом месте. Обычно используется для обозначения взаимосвязанных частей схемы на разных листах. Внутри соединителя пишется номер соединения |
|
ИСО | ||||
4.2 | Терминатор | Выход во внешнюю среду или вход из внешней среды (начало и конец процесса обработки данных [в этом случае внутри пишут "начало" или "конец"], источник или пункт назначения данных, начало и конец работы предопределенного процесса) | ||
4.3 | Получатель – отправитель | По функциональному назначению аналогичен символу "Терминатор" | ||
4.4 |