Блок-схемы алгоритмов. ГОСТ. Примеры. Составить программу по блок схеме


Написать код программы по блок-схеме

Вопрос: Легкий путь к созданию блок-схем: Diagram Designer

«Основы работы в Diagram Designer»

О программе: Diagram Designer является приложением для создания блок-схем. В целом приложение способно соединять любые «блоки» поэтому в качестве блоков может выступать даже элементы электрической принципиальной схемы. Элементы-блоки можно составлять пользователю (т.е. вам самому). Так же заявлены возможность построения графиков, слайд-шоу и встроенный калькулятор.О руководстве: целью данного руководства является объяснение базовых возможностей программы – расположение, соединение, правка блоков, а так же советы, связанные с удобством работы в программе. Мы рассмотрим лишь ту функциональность, которая необходима для реализации простейших алгоритмов.Откуда взять: На официальной страничке http://logicnet.dk/DiagramDesigner/ указано несколько ссылок для получения последней версии (ниже надписи «Download with installer» в квадратных [ ] скобках). Ссылка на языковое дополнение (включает русский) http://d16912502.u227.surftown.dk/Di...nguagePack.exe - «Download Language Pack (186 kb)». (дополнительная ссылка двумя постами ниже)

Установка

Установка программы: Запускаем DiagramDesignerSetup.exe → Accept → Browse → Укажите путь к папке в которую хотите установить Diagram Designer → Install → Дождаться окончания установки → ОК (выбираем язык) → ОК (выбираем ассоциации файлов).Установка русификации: Запускаем LanguagePack.exe → Browse → Укажите путь к папке в которую хотите установить Diagram Designer → Install → Дождаться окончания установки → ОК (выбираем язык) → ОК (выбираем ассоциации файлов). Если язык не сменился, заходим в директорию программы: Запускаем DiagramDesigner.exe → File → Options → Set program language → Выбрать в списке «Русский» → ОК → Хорошо → ОК → Закрыть программу.

Руководство

Для того чтобы освоить работу программы, попробуем создать простую блок-схему. Это гораздо эффективнее чем описывать, как сделать то, или иное действие. Предполагается, что вы установили пакет русификации, если этого ещё не сделано, то можете обратиться к разделу «Установка» данного приложения. Чтобы нам было проще понимать друг друга, давайте условиться называть колонку слева рабочей областью, а колонку справа – палитрой шаблонов. То что находится над ними – панель инструментов и панель документа, самая верхняя строка – панель программы. Все это продемонстрировано на изображении 1.

Изображение 1. Основные элементы интерфейса программы.

Выберем шаблон, который был специально создан для этого руководства:ПКМ в «Палитре шаблонов» → Загрузить палитру шаблонов → simple

Изображение 2. Процесс загрузки шаблона «simple».

Примечание: на скриншоте красная стрелочка – куда передвигать мышь, красный заполненный кружок – ПКМ, красный пустой кружок – ЛКМ. Создадим блок схему, показывающую действия человека делающего себе чай. После выполнения упражнения рекомендуется проверить алгоритм . Начнем с помещения прямоугольного блока, являющегося блоком «действия».Зажать ЛКМ на блоке «действия» → Перетащить на рабочую область (левая колонка) → Отпустить ЛКМ.

Изображение 3. Добавление нового блока «действия» на рабочую область.

Примечание: на скриншоте синие пустые кружочки – зажать ЛКМ если она не зажата или отпустить если уже зажата. Мы добавили первый блок в нашу блок схему. Более того, теперь мы умеем добавлять блоки в принципе – в основном мы будем добавлять блоки перемещением с «Палитры шаблонов» и расположении его в «Рабочей области». Теперь уточним, что же за действие мы выполняем, ведь иначе блок не имеет смысла:2хЛКМ → ЛКМ в области ввода → Ввести текст «Поставить чайник на газ» → Хорошо

Изображение 4. Изменение описания блока «действие» на нужный нам.

Примечание: желтый пустой кружочек – 2xЛКМ (двойное нажатие левой кнопкой мыши), черная стрелочка – означает, то, что нужно обратить на что-либо внимание, а не перевести туда курсор мыши. Результат – текст внутри блока изменится на то, что мы ввели редактор. Как и со способом добавления нового блока, изменение описания блока так же однообразно – нажав на блоке который поддерживает описание 2хЛКМ вы сможете изменить его. Допустим, изменить описание блока условного оператора и записать внутрь его необходимое условие или условия. Продолжим! После установки чайника на газ (электричество выключили) мы начнем подготавливать чашку. Добавим блок действия и изменим его описание на «Достать чашку». После, добавим ещё один блок действия с описанием «Засыпать заварку». И наконец, последний блок действия «Добавить сахар по вкусу». Результаты моих стараний можно наблюдать на изображении 5, сравните их со своими.

Изображение 5. Добавляем новые блоки действий.

Блоки раскиданы как попало, и это мало напоминает блок-схему. Конечно, можно расставить их более-менее в «столбец», но это тяжело и нудно. Поэтому сейчас мы научимся косвенному методу позволяющим сделать это – соединение блоков:ЛКМ на элементе «линия» панели инструментов → зажать ЛКМ на центр нижней рамки блока «Поставить чайник на газ» (там изображено красное перекрестие) → Навести на центр верхней рамки блока «Достать чашку» → Убедиться что крестик на который мы привели поменял красный цвет на зеленый → Отпустить ЛКМ.

Изображение 6. Соединяем блоки.

Теперь эти два блока соединены, если конечно вы зажимали и отпускали в верных местах. Поначалу бывает трудно «прицелиться», хотя поработав с программой привыкаешь. Чтобы убедиться, что блоки были действительно соединены, выделите то пространство где хотите сделать такую проверку. В этой области все соединения будут подсвечены «зеленым», т.е. крестики будут вместо красных – зеленые. Ах, и конечно так соединяются не только блоки действий, а все блоки. Важно лишь, что можно соединять их только за те места (обозначены красными крестами) которые предусмотрены блоком. К тому же правее на панели инструментов есть и другие соединительные линии – линия со стрелкой, коннектор, кривая. Предлагаю разобраться с ними на досуге. Не лишним будет заметить, что соединять можно не только блоки, но и линии друг с другом. А ещё – связь не обязательно должна быть двухсторонней. И вообще – линия может «болтаться в воздухе». Теперь про выравнивание блоков. Схватимся за блок «Достать чашку» и посмотрим, что будет. Полная инструкция:Зажать ЛКМ на блоке «Достать чашку» → Передвигать блок левее пока стрелочка соединяющая блоки не выровняется → Отпустить блок.

Изображение 7. Выравниваем соединенные блоки.

Вот, уже начинает получаться что-то похожее на блок-схему. Не останавливаясь на этом, мы соединим и выровняем все остальные блоки. А потом добавим блок нового типа – блок «условия». Он обеспечит нам логику – развилку в пути, называйте, как хотите. Итак:зажать ЛКМ на блоке «условия» → Перетащить на «рабочую область» → Отпустить ЛКМ.

Изображение 8. Добавляем блок «условия».

Как видите, добавление блока «условия» ничем не отличается от добавления блока «действия». Но закрепление материала… куда без него. А теперь, предлагаю соединить блок действия «Добавить сахар по вкусу» и новоиспеченный блок условия. Как только у вас это получится, стоит изменить описание блока условия с стандартного на «Чайник вскипел». Условие «Чайник не кипит» может быть «ДА» или «НЕТ» (TRUE и FALSE) – поэтому оно подходит. Все, что внутри блока условия преобразуется к «ДА» и «НЕТ» чтобы получить разветвление пути программы. Но как же изобразить эти альтернативные варианты событий «ДА» и «НЕТ»? Принято путь выполнения «ДА» изображать под блоком условия, а путь выполнения «НЕТ» справа от него, но не на том же уровне, а ниже (это показывается, что программа продолжается, а не на том же уровне). Чтобы провести связи от блока «условия» (куда их?) создадим те блоки, что будут идти в пути «ДА» и в пути «НЕТ». Добавьте блоки действий «Ждать минуту» - под блоком условия, а блок «Залить чай» справа от него. Вот что должно получиться:

Изображение 9. Добавляем блоки действий для пути «ДА» и пути «НЕТ».

Можно задаться вопросом: а что мешает нам соединить их прямо сейчас? В принципе – ничего. Но тут следует понять то, что для пути «ДА» (тот, что идет вниз) легко будет соединить обычной линией, в то время как для соединения блока действия «Залить чай» с блоком условия «Чайник не кипит» необходимо либо две линии, либо коннектор. В блок-схемах не допускаются линии «наискосок», поэтому одной линией не обойтись. Пример ошибочного соединения через одну линию представлен на изображении 10, а правильные варианты – на изображениях 11.а (через две линии) и 11.б (через коннектор). Коннектор есть на палитре шаблонов, и более того – для лучшего понимания он как раз и соединяет блок условия с путем «НЕТ». На рисунке 11.б, обратите внимание на синий кружочек с цифрой «1» слева вверху от него. Он показывает, откуда брать коннектор. А сам синий кружочек как мы помним, означает «зажать ЛКМ»

Изображение 10. Ошибочное соединение блока условия с блоком пути «НЕТ».

а) б)

Изображение 11. Правильное соединение блока условия с блоком пути «НЕТ»: а) с помощью двух линий; б) с помощью коннектора.

В результате мы имеем разветвление работы алгоритма (так же будет и с блок-схемами программ), но все же стоит указать где «ДА» и «НЕТ» тем более вначале это не совсем очевидно. Сделайте это так как показано на изображении 12.

Изображение 12. Добавление описаний к развилке от блока условия.

Теперь прекрасно видно, что когда происходит. Осталось только подумать что будет после действия «Ждать минуту» и после действия «Залить чай» и добавить это. После «Ждать минуту» очевидно, нужно снова проверить чайник. Т.е. мы возвращаемся в место перед блоком условия «Чайник не кипит». Сделайте небольшую линию вниз от блока «Ждать минуту», к ней присоедините ещё одну линию, идущую на несколько сантиметров влево (так чтобы выйти левее блока «Ждать минуту»), потом – линия вверх, на уровень середины линии между блоками «Добавить сахар по вкусу» и «Чайник не кипит». Должно выйти, что-то вроде этого:

Изображение 13. Добавления пути назад. Часть первая.

Теперь остается «вернуться» в линию, которая идет между блоками «Добавить сахар по вкусу» и «Чайник не кипит». Если это будет обычная линия, подумайте – не будет ли двусмысленности от того что от блока «Добавить сахар по вкусу» идут две линии, и не понятно куда направлять программе. Чтобы этого избежать продолжим наш путь из трёх линий четвертой, но со стрелкой на конце:

Изображение 14. Добавления пути назад. Часть вторая, заключительная.

Примечание: То, что мы сейчас организовали, в программировании называется цикл. Возможно, вы уже знаете, что это такое, а сейчас мы увидели как они выглядят. На самом деле есть специальные блоки для циклов, но нагляднее изобразить их так. Важно же в блок-схеме, то, что мы можем создать принцип работы нашей программы, и лучше осознать как сделать её. И блок-схемы дают сделать это нагляднее всего! Не забывая и про блок «Залить чай» продолжим его путь. Для этого стрелочками образуем дорогу вниз, а потом влево, так чтобы оказаться снова на «осевой линии» блок-схемы. Таковы правила, они делают блок-схемы более наглядными. После этого добавим блок «Пить чай» и, соединив его с последней линией, закончим блок-схему: (в следующем посте...сюда не влезло) Зная эти основы, вы легко можете освоить построение любой блок-схемы в этой программе. Экспериментируйте, ищите новые возможности.

Приятные мелочи

В Diagram Designer много удобных «способностей» которые не сразу можно обнаружить, чтобы вам было легче, я расскажу о некоторых из них: 1. Если при соединении блоков (или просто когда проводите линию от куда либо) зажать на клавиатуре кнопку Ctrl, то проводимая линия будет горизонтальна или вертикальна листу (в зависимости от того куда вы эту линию ведете). Этим удобно пользоваться, чтобы не выпрямлять «немного кривоватые» линии. 2. Кнопка F5 доставит много приятных минут после обнаружения. Дело в том, что она заменяет нудное «кликанье» на панель инструментов. Нажатие на F5 аналогично клику на последний использовавшийся инструмент на панели инструментов! Для примера попробуйте нарисовать треугольник. ЛКМ по инструменту «линия» → Нарисовать линию → F5 → Зажать ЛКМ на одном из концов линии и вести в новую точку → Отпустить → F5 → Зажать ЛКМ на одном из концов второй линии и вести в начало первой линии → Отпустить. Мы нарисовали три линии, но нажимали по инструменту линии только один раз, в остальных случаях она вызывалась кнопкой F5, а ведь кнопку нажать быстрее чем вести мышкой по экрану и кликать . 3. Ctrl+A → Ctrl+C. В результате в буфере обмена окажется картинка. Более простыми словами – вы можете вставить рисунок своей блок-схемы в документ Word нажатием Ctrl-V (или ПКМ → Вставить). Если вам нужно сохранить изображение «на долгую память», то присмотритесь к Файл → Экспортировать страницу… 4. Чтобы изменить масштаб листа блок-схемы удобно воспользоваться такими действиями: Зажать Ctrl → Крутить колесиком мыши 5. Зажав колесико мыши, вы можете перемещать лист. Попробуйте, чтобы понять, какой здесь толк. 6. Программа поддерживает слои и многостраничность в пределах одной блок-схемы. Присмотритесь к нижней панели (она находится под «рабочей областью» и «палитрой шаблонов») 7. Вы можете более точно перемещать любые выделенные элементы, если зажмете клавишу Ctrl и будете нажимать клавиши стрелок (←, →, ↑, ↓). Точность перемещения устанавливается в Файл → Опции → Сетка.

forundex.ru

Написать программу по блок схеме

Вопрос: Легкий путь к созданию блок-схем: Diagram Designer

«Основы работы в Diagram Designer»

О программе: Diagram Designer является приложением для создания блок-схем. В целом приложение способно соединять любые «блоки» поэтому в качестве блоков может выступать даже элементы электрической принципиальной схемы. Элементы-блоки можно составлять пользователю (т.е. вам самому). Так же заявлены возможность построения графиков, слайд-шоу и встроенный калькулятор.О руководстве: целью данного руководства является объяснение базовых возможностей программы – расположение, соединение, правка блоков, а так же советы, связанные с удобством работы в программе. Мы рассмотрим лишь ту функциональность, которая необходима для реализации простейших алгоритмов.Откуда взять: На официальной страничке http://logicnet.dk/DiagramDesigner/ указано несколько ссылок для получения последней версии (ниже надписи «Download with installer» в квадратных [ ] скобках). Ссылка на языковое дополнение (включает русский) http://d16912502.u227.surftown.dk/Di...nguagePack.exe - «Download Language Pack (186 kb)». (дополнительная ссылка двумя постами ниже)

Установка

Установка программы: Запускаем DiagramDesignerSetup.exe → Accept → Browse → Укажите путь к папке в которую хотите установить Diagram Designer → Install → Дождаться окончания установки → ОК (выбираем язык) → ОК (выбираем ассоциации файлов).Установка русификации: Запускаем LanguagePack.exe → Browse → Укажите путь к папке в которую хотите установить Diagram Designer → Install → Дождаться окончания установки → ОК (выбираем язык) → ОК (выбираем ассоциации файлов). Если язык не сменился, заходим в директорию программы: Запускаем DiagramDesigner.exe → File → Options → Set program language → Выбрать в списке «Русский» → ОК → Хорошо → ОК → Закрыть программу.

Руководство

Для того чтобы освоить работу программы, попробуем создать простую блок-схему. Это гораздо эффективнее чем описывать, как сделать то, или иное действие. Предполагается, что вы установили пакет русификации, если этого ещё не сделано, то можете обратиться к разделу «Установка» данного приложения. Чтобы нам было проще понимать друг друга, давайте условиться называть колонку слева рабочей областью, а колонку справа – палитрой шаблонов. То что находится над ними – панель инструментов и панель документа, самая верхняя строка – панель программы. Все это продемонстрировано на изображении 1.

Изображение 1. Основные элементы интерфейса программы.

Выберем шаблон, который был специально создан для этого руководства:ПКМ в «Палитре шаблонов» → Загрузить палитру шаблонов → simple

Изображение 2. Процесс загрузки шаблона «simple».

Примечание: на скриншоте красная стрелочка – куда передвигать мышь, красный заполненный кружок – ПКМ, красный пустой кружок – ЛКМ. Создадим блок схему, показывающую действия человека делающего себе чай. После выполнения упражнения рекомендуется проверить алгоритм . Начнем с помещения прямоугольного блока, являющегося блоком «действия».Зажать ЛКМ на блоке «действия» → Перетащить на рабочую область (левая колонка) → Отпустить ЛКМ.

Изображение 3. Добавление нового блока «действия» на рабочую область.

Примечание: на скриншоте синие пустые кружочки – зажать ЛКМ если она не зажата или отпустить если уже зажата. Мы добавили первый блок в нашу блок схему. Более того, теперь мы умеем добавлять блоки в принципе – в основном мы будем добавлять блоки перемещением с «Палитры шаблонов» и расположении его в «Рабочей области». Теперь уточним, что же за действие мы выполняем, ведь иначе блок не имеет смысла:2хЛКМ → ЛКМ в области ввода → Ввести текст «Поставить чайник на газ» → Хорошо

Изображение 4. Изменение описания блока «действие» на нужный нам.

Примечание: желтый пустой кружочек – 2xЛКМ (двойное нажатие левой кнопкой мыши), черная стрелочка – означает, то, что нужно обратить на что-либо внимание, а не перевести туда курсор мыши. Результат – текст внутри блока изменится на то, что мы ввели редактор. Как и со способом добавления нового блока, изменение описания блока так же однообразно – нажав на блоке который поддерживает описание 2хЛКМ вы сможете изменить его. Допустим, изменить описание блока условного оператора и записать внутрь его необходимое условие или условия. Продолжим! После установки чайника на газ (электричество выключили) мы начнем подготавливать чашку. Добавим блок действия и изменим его описание на «Достать чашку». После, добавим ещё один блок действия с описанием «Засыпать заварку». И наконец, последний блок действия «Добавить сахар по вкусу». Результаты моих стараний можно наблюдать на изображении 5, сравните их со своими.

Изображение 5. Добавляем новые блоки действий.

Блоки раскиданы как попало, и это мало напоминает блок-схему. Конечно, можно расставить их более-менее в «столбец», но это тяжело и нудно. Поэтому сейчас мы научимся косвенному методу позволяющим сделать это – соединение блоков:ЛКМ на элементе «линия» панели инструментов → зажать ЛКМ на центр нижней рамки блока «Поставить чайник на газ» (там изображено красное перекрестие) → Навести на центр верхней рамки блока «Достать чашку» → Убедиться что крестик на который мы привели поменял красный цвет на зеленый → Отпустить ЛКМ.

Изображение 6. Соединяем блоки.

Теперь эти два блока соединены, если конечно вы зажимали и отпускали в верных местах. Поначалу бывает трудно «прицелиться», хотя поработав с программой привыкаешь. Чтобы убедиться, что блоки были действительно соединены, выделите то пространство где хотите сделать такую проверку. В этой области все соединения будут подсвечены «зеленым», т.е. крестики будут вместо красных – зеленые. Ах, и конечно так соединяются не только блоки действий, а все блоки. Важно лишь, что можно соединять их только за те места (обозначены красными крестами) которые предусмотрены блоком. К тому же правее на панели инструментов есть и другие соединительные линии – линия со стрелкой, коннектор, кривая. Предлагаю разобраться с ними на досуге. Не лишним будет заметить, что соединять можно не только блоки, но и линии друг с другом. А ещё – связь не обязательно должна быть двухсторонней. И вообще – линия может «болтаться в воздухе». Теперь про выравнивание блоков. Схватимся за блок «Достать чашку» и посмотрим, что будет. Полная инструкция:Зажать ЛКМ на блоке «Достать чашку» → Передвигать блок левее пока стрелочка соединяющая блоки не выровняется → Отпустить блок.

Изображение 7. Выравниваем соединенные блоки.

Вот, уже начинает получаться что-то похожее на блок-схему. Не останавливаясь на этом, мы соединим и выровняем все остальные блоки. А потом добавим блок нового типа – блок «условия». Он обеспечит нам логику – развилку в пути, называйте, как хотите. Итак:зажать ЛКМ на блоке «условия» → Перетащить на «рабочую область» → Отпустить ЛКМ.

Изображение 8. Добавляем блок «условия».

Как видите, добавление блока «условия» ничем не отличается от добавления блока «действия». Но закрепление материала… куда без него. А теперь, предлагаю соединить блок действия «Добавить сахар по вкусу» и новоиспеченный блок условия. Как только у вас это получится, стоит изменить описание блока условия с стандартного на «Чайник вскипел». Условие «Чайник не кипит» может быть «ДА» или «НЕТ» (TRUE и FALSE) – поэтому оно подходит. Все, что внутри блока условия преобразуется к «ДА» и «НЕТ» чтобы получить разветвление пути программы. Но как же изобразить эти альтернативные варианты событий «ДА» и «НЕТ»? Принято путь выполнения «ДА» изображать под блоком условия, а путь выполнения «НЕТ» справа от него, но не на том же уровне, а ниже (это показывается, что программа продолжается, а не на том же уровне). Чтобы провести связи от блока «условия» (куда их?) создадим те блоки, что будут идти в пути «ДА» и в пути «НЕТ». Добавьте блоки действий «Ждать минуту» - под блоком условия, а блок «Залить чай» справа от него. Вот что должно получиться:

Изображение 9. Добавляем блоки действий для пути «ДА» и пути «НЕТ».

Можно задаться вопросом: а что мешает нам соединить их прямо сейчас? В принципе – ничего. Но тут следует понять то, что для пути «ДА» (тот, что идет вниз) легко будет соединить обычной линией, в то время как для соединения блока действия «Залить чай» с блоком условия «Чайник не кипит» необходимо либо две линии, либо коннектор. В блок-схемах не допускаются линии «наискосок», поэтому одной линией не обойтись. Пример ошибочного соединения через одну линию представлен на изображении 10, а правильные варианты – на изображениях 11.а (через две линии) и 11.б (через коннектор). Коннектор есть на палитре шаблонов, и более того – для лучшего понимания он как раз и соединяет блок условия с путем «НЕТ». На рисунке 11.б, обратите внимание на синий кружочек с цифрой «1» слева вверху от него. Он показывает, откуда брать коннектор. А сам синий кружочек как мы помним, означает «зажать ЛКМ»

Изображение 10. Ошибочное соединение блока условия с блоком пути «НЕТ».

а) б)

Изображение 11. Правильное соединение блока условия с блоком пути «НЕТ»: а) с помощью двух линий; б) с помощью коннектора.

В результате мы имеем разветвление работы алгоритма (так же будет и с блок-схемами программ), но все же стоит указать где «ДА» и «НЕТ» тем более вначале это не совсем очевидно. Сделайте это так как показано на изображении 12.

Изображение 12. Добавление описаний к развилке от блока условия.

Теперь прекрасно видно, что когда происходит. Осталось только подумать что будет после действия «Ждать минуту» и после действия «Залить чай» и добавить это. После «Ждать минуту» очевидно, нужно снова проверить чайник. Т.е. мы возвращаемся в место перед блоком условия «Чайник не кипит». Сделайте небольшую линию вниз от блока «Ждать минуту», к ней присоедините ещё одну линию, идущую на несколько сантиметров влево (так чтобы выйти левее блока «Ждать минуту»), потом – линия вверх, на уровень середины линии между блоками «Добавить сахар по вкусу» и «Чайник не кипит». Должно выйти, что-то вроде этого:

Изображение 13. Добавления пути назад. Часть первая.

Теперь остается «вернуться» в линию, которая идет между блоками «Добавить сахар по вкусу» и «Чайник не кипит». Если это будет обычная линия, подумайте – не будет ли двусмысленности от того что от блока «Добавить сахар по вкусу» идут две линии, и не понятно куда направлять программе. Чтобы этого избежать продолжим наш путь из трёх линий четвертой, но со стрелкой на конце:

Изображение 14. Добавления пути назад. Часть вторая, заключительная.

Примечание: То, что мы сейчас организовали, в программировании называется цикл. Возможно, вы уже знаете, что это такое, а сейчас мы увидели как они выглядят. На самом деле есть специальные блоки для циклов, но нагляднее изобразить их так. Важно же в блок-схеме, то, что мы можем создать принцип работы нашей программы, и лучше осознать как сделать её. И блок-схемы дают сделать это нагляднее всего! Не забывая и про блок «Залить чай» продолжим его путь. Для этого стрелочками образуем дорогу вниз, а потом влево, так чтобы оказаться снова на «осевой линии» блок-схемы. Таковы правила, они делают блок-схемы более наглядными. После этого добавим блок «Пить чай» и, соединив его с последней линией, закончим блок-схему: (в следующем посте...сюда не влезло) Зная эти основы, вы легко можете освоить построение любой блок-схемы в этой программе. Экспериментируйте, ищите новые возможности.

Приятные мелочи

В Diagram Designer много удобных «способностей» которые не сразу можно обнаружить, чтобы вам было легче, я расскажу о некоторых из них: 1. Если при соединении блоков (или просто когда проводите линию от куда либо) зажать на клавиатуре кнопку Ctrl, то проводимая линия будет горизонтальна или вертикальна листу (в зависимости от того куда вы эту линию ведете). Этим удобно пользоваться, чтобы не выпрямлять «немного кривоватые» линии. 2. Кнопка F5 доставит много приятных минут после обнаружения. Дело в том, что она заменяет нудное «кликанье» на панель инструментов. Нажатие на F5 аналогично клику на последний использовавшийся инструмент на панели инструментов! Для примера попробуйте нарисовать треугольник. ЛКМ по инструменту «линия» → Нарисовать линию → F5 → Зажать ЛКМ на одном из концов линии и вести в новую точку → Отпустить → F5 → Зажать ЛКМ на одном из концов второй линии и вести в начало первой линии → Отпустить. Мы нарисовали три линии, но нажимали по инструменту линии только один раз, в остальных случаях она вызывалась кнопкой F5, а ведь кнопку нажать быстрее чем вести мышкой по экрану и кликать . 3. Ctrl+A → Ctrl+C. В результате в буфере обмена окажется картинка. Более простыми словами – вы можете вставить рисунок своей блок-схемы в документ Word нажатием Ctrl-V (или ПКМ → Вставить). Если вам нужно сохранить изображение «на долгую память», то присмотритесь к Файл → Экспортировать страницу… 4. Чтобы изменить масштаб листа блок-схемы удобно воспользоваться такими действиями: Зажать Ctrl → Крутить колесиком мыши 5. Зажав колесико мыши, вы можете перемещать лист. Попробуйте, чтобы понять, какой здесь толк. 6. Программа поддерживает слои и многостраничность в пределах одной блок-схемы. Присмотритесь к нижней панели (она находится под «рабочей областью» и «палитрой шаблонов») 7. Вы можете более точно перемещать любые выделенные элементы, если зажмете клавишу Ctrl и будете нажимать клавиши стрелок (←, →, ↑, ↓). Точность перемещения устанавливается в Файл → Опции → Сетка.

forundex.ru

Блок-схемы алгоритмов. ГОСТ. Примеры — Блог программиста

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

На территории Российской Федерации действует единая система программной документации (ЕСПД), частью которой является Государственный стандарт — ГОСТ 19.701-90 «Схемы алгоритмов программ, данных и систем» [1]. Не смотря на то, что описанные в стандарте обозначения могут использоваться для изображения схем ресурсов системы, схем взаимодействия программ и т.п., в настоящей статье описана лишь разработка схем алгоритмов программ.

Рассматриваемый ГОСТ практически полностью соответствует международному стандарту ISO 5807:1985.

Элементы блок-схем алгоритмов

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

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

Терминатор начала и конца работы функции

Терминатором начинается и заканчивается любая функция. Тип возвращаемого значения и аргументов функции обычно указывается в комментариях к блоку терминатора.

Операции ввода и вывода данных

В ГОСТ определено множество символов ввода/вывода, например вывод на магнитные ленты, дисплеи и т.п. Если источник данных не принципиален, обычно используется символ параллелограмма. Подробности ввода/вывода могут быть указаны в комментариях.

Выполнение операций над данными

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

Блок, иллюстрирующий ветвление алгоритма

Блок в виде ромба имеет один вход и несколько подписанных выходов. В случае, если блок имеет 2 выхода (соответствует оператору ветвления), на них подписывается результат сравнения — «да/нет». Если из блока выходит большее число линий (оператор выбора), внутри него записывается имя переменной, а на выходящих дугах — значения этой переменной.

Вызов внешней процедуры

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

Начало и конец цикла

Символы начала и конца цикла содержат имя и условие. Условие может отсутствовать в одном из символов пары. Расположение условия, определяет тип оператора, соответствующего символам на языке высокого уровня — оператор с предусловием (while) или постусловием (do … while).

Подготовка данных

Символ «подготовка данных» в произвольной форме (в ГОСТ нет ни пояснений, ни примеров), задает входные значения. Используется обычно для задания циклов со счетчиком.

Соединитель

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

Комментарий

Комментарий может быть соединен как с одним блоком, так и группой. Группа блоков выделяется на схеме пунктирной линией.

Примеры блок-схем

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

Сортировка вставками

Массив в алгоритме сортировки вставками разделяется на отсортированную и еще не обработанную части. Изначально отсортированная часть состоит из одного элемента, и постепенно увеличивается.

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

Блок-схема алгоритма сортировки вставками

В приведенной блок-схеме для организации цикла используется символ ветвления. В главном цикле (i < n) перебираются элементы необработанной части массива. Если все элементы обработаны — алгоритм завершает работу, в противном случае выполняется поиск позиции для вставки i-того элемента. Искомая позиция будет сохранена в переменной j в результате выполнения внутреннего цикла, осуществляющем сдвиг элементов до тех пор, пока не будет найден элемент, значение которого меньше i-того.

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

Сортировка пузырьком

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

Блок-схема алгоритма сортировки пузырьком

На блок-схеме показано использование символов начала и конца цикла. Условие внешнего цикла (А) проверяется в конце (с постусловием), он работает до тех пор, пока переменная hasSwapped имеет значение true. Внутренний цикл использует предусловие для перебора пар сравниваемых элементов. В случае, если элементы расположены в неправильном порядке, выполняется их перестановка посредством вызова внешней процедуры (swap). Для того, чтобы было понятно назначение внешней процедуры и порядок следования ее аргументов, необходимо писать комментарии. В случае, если функция возвращает значение, комментарий может быть написан к символу терминатору конца.

Сортировка выбором

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

Блок-схема сортировки выбором

На блок-схеме приведен пример использования блока «подготовка», а также показано, что в ряде случаев можно описывать алгоритм более «укрупнённо» (не вдаваясь в детали). К сортировке выбором не имеют отношения детали реализации поиска индекса минимального элемента массива, поэтому они могут быть описаны символом вызова внешней процедуры. Если блок-схема алгоритма внешней процедуры отсутствует, не помешает написать к символу вызова комментарий, исключением могут быть функции с говорящими названиями типа swap, sort, … .

На блоге можно найти другие примеры блок-схем:

Часть студентов традиционно пытается рисовать блок-схемы в Microsoft Word, но это оказывается сложно и не удобно. Например, в MS Word нет стандартного блока для терминатора начала и конца алгоритма (прямоугольник со скругленными краями, а не овал). Наиболее удобными, на мой взгляд, являются утилиты MS Visio и yEd [5], обе они позволяют гораздо больше, чем строить блок-схемы (например рисовать диаграммы UML), но первая является платной и работает только под Windows, вторая бесплатная и кроссплатфомренная. Все блок-схемы в этой статье выполнены с использованием yEd.

Нужны ли блок-схемы? Альтернативы

Частные конторы никакие блок-схемы не используют, в книжках по алгоритмам [6] вместо них применяют словесное описание (псевдокод) как более краткую форму. Возможно блок-схемы применяют на государственных предприятиях, которые должны оформлять документацию согласно требованиям ЕСПД, но есть сомнения — даже для регистрации программы в Государственном реестре программ для ЭВМ никаких блок-схем не требуется.

Тем не менее, рисовать блок-схемы заставляют школьников (примеры из учебников ГОСТ не соответствуют) — выносят вопросы на государственные экзамены (ГИА и ЕГЭ), студентов — перед защитой диплом сдается на нормоконтроль, где проверяется соответствие схем стандартам.

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

Появляются подозрения, что система образования прогнила и отстала лет на 20, однако аналогичная проблема наблюдается и за рубежом. Международный стандарт ISO 5807:1985 мало чем отличается от ГОСТ 19.701-90, более нового стандарта за рубежом нет. Там же производится множество программ для выполнения этих самых схем — Dia, MS Visio, yEd, …, а значит списывать их не собираются. Вместо блок-схем иногда применяют диаграммы деятельности UML [6], однако удобнее они оказываются, разве что при изображении параллельных алгоритмов.

Периодически поднимается вопрос о том, что ни блок-схемы, ни UML не нужны, да и документация тоже не нужна. Об этом твердят программисты, придерживающиеся методологии экстремального программирования (XP) [7], ходя даже в их кругу нет единого мнения.

В ряде случаев, программирование невозможно без рисования блок-схем, т.к. это один процесс — существуют визуальные языки программирования, такие как ДРАКОН [8], кроме того, блок-схемы используются для верификации алгоритмов (формального доказательства их корректности) методом индуктивных утверждений Флойда [9].

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

Список использованных источников:

  1. ГОСТ 19.701–90 (ИСО 5807–85) «Единая система программной документа­ции».
  2. Алгоритм. Свойства алгоритма \ https://pro-prof.com/archives/578
  3. Алгоритмы сортировки слиянием и быстрой сортировки \ https://pro-prof.com/archives/813
  4. yEd Graph Editor \ http://www.yworks.com/products/yed
  5. Книги: алгоритмы \ https://pro-prof.com/books/algorithms
  6. Рамбо Дж., Якобсон А., Буч Г. UML: специальный справочник. -СПб.: Питер, 2002. -656 с.
  7. Кент Бек Экстремальное программирование: разработка через тестирование – СПб.: Питер – 2003
  8. Визуальный язык ДРАКОН \ http://drakon.su/
  9. Шилов Н.В. Верификация шаблонов алгоритмов для метода отката и метода ветвей и границ. Моделирование и анализ информационных систем, ISSN 1818 – 1015, т.18, №4, 2011
  10. Брукс Ф., Мифический человеко — месяц или как создаются программные системы. СПб. Символ Плюс, 1999 — 304 с. ил.

pro-prof.com

Блок схемы онлайн: как структурно представить информацию?

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

Это универсальный и наглядный способ представления логики работы программы или процесса, доступный для понимания даже неспециалистам.

Содержание:

Часто к составлению блок-схем прибегают именно программисты.

Для чего нужна блок-схема программисту?

Язык блок-схем (UML, flowchart) – это уникальный способ общения программиста с заинтересованными непрограммистами, а также элемент документации на продукт программного типа.

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

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

вернуться к меню ↑

Программы и онлайн-сервисы для построения блок-схем

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

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

Ввиду специфики, встречающиеся в сети наскоро собранные сервисы очень часто не соответствуют минимальным требованиям:

  • не поддерживают ряд операторов языка программирования и в результате неправильно строят схему;
  • построенные схемы не выдерживают критики в отношении аккуратности прорисовки;
  • невозможность сохранить построенную схему в требуемом формате и т.д.

Намного эффективней искать программные приложения с требуемой функциональностью. Что касается онлайн-сервисов.

То внимания достойны универсальные оболочки для построения блок-схем и уникальная пока библиотека Google charts.

FCeditor

FCeditor – это простая и симпатичная программа, которая позволяет создавать программный код из файлов .pas (Паскаль, Delfi) и .cs (С#).

Для преобразования имеющегося файла с кодом достаточно импортировать его в программу («Файл – Импортировать»…).

По завершении анализа файла в левой части появится дерево классов, в панели вкладок – вкладка файла, во вкладке файла – вкладки схем каждого из методов и схемы всей программы, а также вкладка кода.

Обратите внимание! Аккуратную блок-схему можно экспортировать в один из популярных графических форматов (jpg, bmp, png, gif и tiff).

К преимуществам программы можно отнести русский интерфейс.

Autoflowchart

Программа Autoflowchart, при своем минималистичном оформлении, предоставляет удобный и информативный интерфейс.

Главное окно разделено на три части: древовидное представление кода, текст кода и в правой части — большое поле, в котором отображается блок-схема.

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

Доступен экспорт не только файлы графических форматов, но и в популярные офисные приложения – документ Word, Visio, а также в виде файла SVG или XML.

К тому же, код можно редактировать непосредственно в программе с моментальным отображением изменений в схеме.

Поддерживает множество языков программирования: Pascal, Delphi, C++.

Code Visual to Flowchart v6.0

Впечатляющей функциональностью отличается программа Code Visual to Flowchart v6.0.

Интерфейс представлен окном с тремя полями.

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

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

Схема может быть экспортирована в форматы продуктов пакета MS Office, в графический формат bmp или png.

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

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

Программист сначала продумывает и фиксирует логику работы будущего программного кода с помощью блок-схемы.

После этого с опорой на схему пишется непосредственно программный код.

Для удобного построения блок-схем существуют онлайн-сервисы. Давайте подробнее остановимся на draw.io и google charts.

Draw.io

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

Любой блок может быть отформатирован и видоизменен, можно создавать собственные виды блоков и использовать внешние картинки из файлов.

Готовую схему можно импортировать в виде документа офисного приложения (pdf), графического растрового (png, gif и jpg) или векторного (svg) файла.

Сохранить схему можно на жесткий диск компьютера или в одно из онлайн-хранилищ (гугл диск, dropbox).

Этот сервис с обширными функциональными возможностями не требует оплаты за использование – он бесплатный.

Google chart

Своеобразный и богатый инструмент для создания диаграмм, схем и визуализаций – Google chart API.

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

Библиотека Google charts поддерживает большое количество типов диаграмм и схем, которые можно использовать при создании сайтов, документов и программных продуктов.

Гугл подготовил полный пакет документации по использованию своих charts-библиотек.

Обладания минимальными навыками объектно-ориентированного программирования достаточно для эффективного применения широких возможностей Google charts API.

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

Библиотека orgchat предоставляет интерфейс для создания – набор классов, свойств, методов и обработчиков событий, которые встраиваются в код страницы или программы.

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

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

Блок схемы онлайн: как структурно представить информацию?

Проголосовать

geek-nose.com