Как сделать подпрограмму в блок схеме

Лабораторный практикум по основам языка C/С++

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

В блок-схемах нельзя использовать элементы языка программирования.

  • в качестве оператора присваивания в блок-схемах используется двухсимвольный знак «: больше или равно» («меньше или равно») в блок-схемах используется одинарный символ » ≥ » ( » ≤ » )
  • в качестве логических операторов используются слова AND , OR
  • индексы у элементов массива указываются также, как в математических выражениях: aij .
  • математические выражения записываются согласно всем правилам математики. Особенно это касается выражений с дробями, то есть формула должна записываться следующим образом , а не x1=(-b-sqrt(b*b-4*a*c))/(2*a).

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

Наименование Обозначение Функция
Терминатор Элемент отображает выход во внешнюю среду и вход из внешней среды (наиболее частое применение − начало и конец программы). Внутри фигуры записывается соответствующее действие.
Процесс Выполнение одной или нескольких операций, обработка данных любого вида (изменение значения данных, формы представления, расположения). Внутри фигуры записывают непосредственно сами операции, например, операцию: a := 10 b + c

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

  1. Описать переменные, которые будут использоваться для хранения текущего значения суммы, текущего значения счетчика элементов цикла, а также общего количества суммируемых элементов.
    Примечание: это действие необходимо только для определения количества переменных, которые потребуются алгоритму и потому в блок-схеме эти действия никак не учитываются.
  2. Получить у пользователя число элементов ряда, которые следует просуммировать, то есть ввести данные в программу.
  3. Обнулить переменную, которая будет хранить сумму ряда.
  4. Инициализировать счетчик цикла начальным значением.
  5. Рассчитать значение элемента ряда с номером, равным текущему значению счетчика и прибавить получившееся значение к значению переменной-суммы.
  6. увеличить значение счетчика на единицу.
  7. Если значение счетчика меньше количества суммируемых элементов, которое задано пользователем, то перейти к выполнению пункта 5.
  8. Вывести значение суммы.

Это текстовая запись алгоритма. Теперь реализуем ее в виде графической схемы (блок-схемы).

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

Правила составления блок-схем для программ [C/C++;Pascal;Basic]

Если вам нужно составить блок-схему для вашей программы написанной на [C/C++;Pascal;Basic] (именно для них будут приведены примеры), то прошу изучить данное руководство.
Составление блок-схемы — процесс составления графических блоков из блоков кода. Фактически вы будете смотреть на строчку и добавлять блок. Ещё строчка, блок и вниз вниз вниз. Очень просто, если освоить "строительные блоки". Рассмотрим их:

Любая программа\подпрограмма начинается и заканчивается данным блоком. Отличие в тексте внутри него. Для начального блока так и пишем "НАЧАЛО", а для завершающего "КОНЕЦ".

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

Предыдущий блок фактически дал нам возможность заявить что есть такие то переменные и мы можем уже с ними как то работать. Например, посчитать выражение a = (b * c) / d

В коде это может выглядеть так:

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

Вот как это может выглядеть в коде:

Участки кода, которые разветвляют работу программы, по определённому условию необходимо выполнять данным блоком. При этом в блоке пишется само условие, а из блока выводят линии справа (для случая "условие не выполняется") и снизу (для случая "условие выполняется").

В коде, этот блок выглядит обычно оператором if

Однако, если вам встретился switch, то его вам нужно изобразить тоже через этот блок.
Это выглядит так: Вложение 30531
В сам блок записывается операнд switch’а, а над линиями, исходящими из блока — то с чем он сравнивается.

Обратите внимание: линии, исходящие из блока, должны быть подписаны. Для if эта подпись "Да" и "Нет", для switch’а — соответствующие подписи case’ов

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

Условие в таком случае проверятся в конце каждой итерации а не в её начале. На блок схеме это отобразится так:

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

О нет, блок-схема не влезает в лист (во громадина то). Что делать? Используем этот блок!

Цифра в блоке будет обозначать какой кружочек с цифрой искать на другом листе. Я имею ввиду что сначало мы добавим такой блок с цифрой 1. На следующем листе снова разместим кружочек с цифрой 1. А если добавим ещё блок в другое место и он будет соединять уже другие части программы то нужно будет писать цифру 2 и т.д.

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

Не забуде что блок "данные" который был описан выше тоже может обозначить вывод данных.

Советы:
1. Блоки должны быть одной ширины. Это важно, к этому могут придраться. Насчет высоты не знаю Делал разную высоту и все было хорошо.
2. Если текст не влезает в блок то можно сделать его повыше (но не надо делать его шире!) и разделить по нему текст так что все влезет. А ещё можно вынести "комментарий". Да, на блок схемах они тоже бывают. Все есть в ГОСТ.
3. Все блоки соединяются обычными линиями (БЕЗ стрелок). Стрелочка на конце линии добавляется только тогда когда одна линия входит в другую (при этом стрелка рисуется для той которая "входит")
4. Не заморачивайтесь, блок схема лишь отображает алгоритм. Можно не отображать на ней очень многое — то что не влияет на алгоритм работы программы.
5. Не полагайтесь полностью на это руководство. Оно лишь для быстрого старта. Если хотите сделать очень хорошо, лучше взгляните на ГОСТ

Спасибо кот Бегемот и taras atavin за замечания и предложения

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

Алгоритм составления блок схем на основании кода
Выбираю тему для дипломки, и одна из предложенных — Алгоритм составления блок схем на основании.

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

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

Цикл (for) с прерыванием (break) по условию (if)

Пока что открываю тему для ваших замечаний и предложений. Давайте вместе сделаем все лучше

Цикл ваще-то шестиугольный, а не ввиде начала. И откуда в языково-независимых блок-схемах чисто сёвый инкремент? Заменить математической записью того же самого в порядке:
1. Начальное значение счётчика.
2. Условие завершения цикла.
3. Как менять значение счётчика после каждого выполнения тела цикла.

Добавлено через 1 минуту
И насколько мне известно, выход из тела цикла просто сразу в левый вход заголовка.

Добавлено через 3 минуты
Хотя, по ссылке два блока и сказано, что это стандарт. Но и там блоки не скруглены!

Сообщение от taras atavin

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

Где то от кого то слышал что это устаревшее что то. но ладно, даже без этого в том ГОСТ что по ссылке есть блок "Подготовка" который выглядит именно так (разве чуть шире). Насчет языконезависимого. впринципе да, не очень хорошо. А насчет записи я согласен, вот только как это записать? Через запятую, на каждой строчке или ещё как. Стандарт молчит. И что за имя цикла понять трудно, вот было бы написано "тип" цикла.

В шестиугольнике выход был справа (по аналогии с блоком "Решение" для оператора IF). Вроде того что условие цикла выдало FALSE. Но что уж теперь. С тем блоком цикла который в ГОСТе никакие влево-вправо не нужно.

Мой косяк, в Diagram Designer такого блока фактически и не было, сам рисовал. А в ГОСТе качество не очень вот как то и не заметилось. Сейчас сделаю прямоугольник со срезанными углами сверху \ снизу для блоков цикла.

Добавлено через 13 минут

Исправил вид блока цикла, добавил пример цикла с пост-условием

Сообщение от prosto_lynx

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

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

Сообщение от insideone

4.2. Правила выполнения соединений

4.2.1. Потоки данных или потоки управления в схемах показываются линиями. Направление потока слева направо и сверху вниз считается стандартным.

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

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

4.2.3. Две или более входящие линии могут объединяться в одну исходящую линию. Если две или более линии объединяются в одну линию, место объединения должно быть смещено.

4.2.4. Линии в схемах должны подходить к символу либо слева, либо сверху, а исходить либо справа, либо снизу. Линии должны быть направлены к центру символа.

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

4.2.6. Ссылки к страницам могут быть приведены совместно с символом комментария для их соединителей.

Урок 4. Блок-схема

Блок-схема

Итак, опустив долгие и нудные восхваления Паскаля, которые так любят публиковать в своих статьях редакторы многих сайтов, приступим непосредственно к самому основному – к программированию.

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

Блок-схема — графическое представление алгоритма. Она состоит из функциональных блоков, которые выполняют различные назначения (ввод/вывод, начало/конец, вызов функции и т.д.).

Существует несколько основных видов блоков, которые нетрудно запомнить:

Некоторые виды блоков

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

Задача №1: «Рассчитать площадь и периметр прямоугольника по двум известным сторонам».

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

Составим алгоритм решения подобных задач:

1) Прочитать задачу.
2) Выписать известные и неизвестные нам переменные в «дано». (В задаче №1 к известным переменным относятся стороны: a, b ;к неизвестным — площадь S и периметр P)
3) Вспомнить либо составить необходимые формулы. (У нас: S=a*b; P=2*(a+b))
4) Составить блок-схему.
5) Записать решение на языке программирования Pascal.

Запишем условие в более кратком виде.

alt=»Решение задачи №1. Блок-схема» width=»105″ height=»300″ /> Решение задачи №1

Структура программы, решающей данную задачу, тоже проста:

  • 1) Описание переменных;
  • 2) Ввод значений сторон прямоугольника;
  • 3) Расчет площади прямоугольника;
  • 4) Расчет периметра прямоугольника;
  • 5) Вывод значений площади и периметра;
  • 6) Конец.

А вот и решение:

Задача №2: Скорость первого автомобиля — V1 км/ч, второго – V2 км/ч, расстояние между ними S км. Какое расстояние будет между ними через T часов, если автомобили движутся в разные стороны? Значения V1, V2, T и S задаются с клавиатуры.

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

Дано: V1, V2, S, Т
Найти: S1

Далее идет самая главная и в то же время самая интересная часть нашего решения – составление нужных нам формул. Как правило, на начальных стадиях обучения все необходимые формулы хорошо нам известны и взяты из других технических дисциплин (например, на нахождение площади различных фигур, на нахождение скорости, расстояния и т.п.).

Формула, используемая для решения нашей задачи, выглядит следующим образом:

Следующий пункт алгоритма – блок-схема:

alt=»Решение задачи №2.Блок-схема» width=»127″ height=»300″ />Решение задачи №2.

А также решение, записанное в Pascal :

Вам может показаться, что две эти программы правильны, но это не так. Ведь сторона треугольника может быть 4.5, а не 4, а скорость машины не обязательно круглое число! А Integer — это только целые числа. Поэтому при попытке написать во второй программе другие числа выскакивает ошибка:

Ошибка!

Обратите внимание в Паскале, как и в любом другом языке программирования десятичная дробь вводится с точкой, а не с запятой!

Чтобы решить эту проблему вам надо вспомнить какой тип в Pascal отвечает за нецелые числа. В этом уроке мы рассматривали основные типы. Итак, это вещественный тип — Real. Вот, как выглядит исправленная программа:

Снимок экрана 2013 12 15 в 20.00.24 1024x545

Как видите, эта статья полезна для прочтения как новичкам, так и уже более опытными пользователям Pascal, так как составление блок-схем не только очень простое и быстрое, но и весьма увлекательное занятие.

Здесь понятней чем в школе.

мля… прикиньте, я узнал про этот сайт только ПОСЛЕ того как сделал программу с условием, узнавая все в инструкции

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

Взять строку введенную пользователем, заменить «,» на «.».
Если совсем гуглить не умеете, то вам сюда — http://www.cyberforum.ru/pascal/thread190664.html

>> скорость машины не обязательно круглое число!

Нет такого понятия, как «круглое число».

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

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

Большинство программистов так не считает. Кроме того, попробуйте поспрашивать у программистов «когда они последний раз составляли блок-схему?» — окажется что в ВУЗе (когда с них зачем-то сдирали знание ГОСТа).

>> так как составление блок-схем не только очень простое и быстрое, но и весьма увлекательное занятие.

Очень сложное, долгое и бесполезное занятие. Для хоть сколько-нибудь большой программы (в тысячу строк хотя бы, как курсак) блок-схемы будут огромные и их будут десятки. А что делать если они перестают соответствовать коду? — вот даже в вашей первой задаче надо будет добавить проверку, что юзер не ввел отрицательные значения сторон, что делать? — исправления кода займут 1 минуту, а исправление блок-схем 10 минут, и зачем тогда этим заниматься?

Программист не должен писать блок-схемы (он их должен читать и понимать и при необходимости исправлять). Блок-схемы это графический язык общения, который понимает как программист, так и не программист. Чтобы пользователь не общался с программистом своими «хотелками», типа я хочу, чтобы вот это правильно считалось, и это число складывалось с этим, а потом выводилось сюда (или вообще говорил — хочу что бы работало), а рисовал все в виде блок-схем с четким алгоритмом. Тогда по идее у программиста будет понимание того, что от него хотят (и он через пять минут не забудет все что ему сказали). Либо, когда общаются два программиста пишущих на разных языках программирования (LISP и Java) и одному нужно объяснить как работает его код, что бы другой переписал его на другом языке.
Как объяснить преподавателю как работает программа, если преподаватель не знает языка программирования на котором написана ваша программа? Или как преподавателю объяснить алгоритм задачи студентам пишущим и реализующим этот алгоритм или программу на разных языках программирования? Нужен какой-то универсальный язык общения и обычно это просто текст «что нужно сделать» на русском языке, а не намного облегчающая жизнь программиста блок-схема.
Вам могут сказать — сделай модуль авторизации (ты же знаешь как, ну как всегда и как везде), а могут нарисовать блок-схему модуля авторизации с учетом всех пожеланий, типа того, что пароль должен содержать не менее 6 символов и что нужно делать в противном случае т.д. То есть блок схему должен уметь рисовать тот кто ставит задачу, а не программист. Либо программист (архитектор либо менеджер проекта), который ставит задачу другим программистам.

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

Блок схемы всей программы могут не понадобиться. Это же тонны бумаги и много времени. И да, они устаревают и актуализировать их трудоёмко.
Но при обсуждении новых вариантов решения задачи с другими программистами удобно оперировать блоками с криво-косо нарисованными краями и линиями. Начертил на бумаге или доске и все понятно.
На практике я встречал фотографии доски с блок-схемами, прикреплённые к задачам в Jira.
Не по ГОСТу ��

Спасибо, теперь я напишу программу, которая делает код по блок схеме и наоборот

program Logarifm;
Var
X,y,z:real;
function Lgrfm(A,B:Real):Real;
var
Osn:Real;
begin
Osn:=ln(A)/ln(B);
Lgrfm:=Osn;
end;
begin
Write(‘Введите X = ‘);
ReadLn(X);
Write(‘Введите Y = ‘);
ReadLn(Y);
Z:=Lgrfm(X,2)+Lgrfm(Y,3);
WriteLn(‘Z = ‘,Z:10:3);
ReadLn;
end.

Отличный сайт, мне все нравится все понятно и четко, нашел нужные программы.

В блок-схемах начало и конец алгоритма обозначаются не прямоугольником со скруглёнными краями, а овалом!

Ребята, что сделали сайт молодцы)) Оч полезная инфа, что нужно поправить, чтобы сайт стал еще лучше:
1) мне не хватает структуры уроков порядковой (или хотябы под уроками чтобы была ссылка на следующий), поэтому приходится на другие уроки искать ссылки по сайту и в контексте уроков;
2)нет описания функций используемых в примерах (по крайней мере, возможно по причине отсутствия структуры, я их не нашел), поэтому беру на сторонних ресурсах описания таких функций как dec() inc() sqr() odd().
А вообще как я понял сайт составлялся школьниками «на коленках», поэтому я не придираюсь, а просто говорю им спасибо за их труд. Желаю успехов.

Как создать блок-схему с помощью нашего онлайн редактора

Превью к инструкции редактора блок-схем

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

Основные типы блоков

Чаще всего к основным блокам относят следующие:

  • Обычный блок — содержит вычисления выражений и присваивания переменным
  • Условный оператор — разделяет действия на две ветки в зависимости от истинности условия
  • Начало-конец — является начальным блоком основной программы или завершающим различных подпрограмм
  • Подпрограмма — с данного блока начинается описание работы подпрограммы
  • Оператор цикла for — используется для цикла с известным количеством повторений
  • Ввод/вывод — используется для ввода или вывода данных на экран/файл или любое другое место
  • Дисплей — используется для вывода данных на экран

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

Интерфейс редактора

Стартовый интерфейс редактора блок-схем

При открытии редактора, пользователю отображается меню и поле для построения блок-схем. Поле имеет сетку (при желании её можно отключить с помощью сочетания клавиш Ctrl+G), позволяющую избегать свойственной Visio проблемы со сверхмалым смещением блоков друг относительно друга и кривых стрелок. Меню (можно свернуть с помощью сочетания Ctrl+M) позволяет добавлять блоки на поле, выполнять загрузку и сохранение блок-схемы, а также изменять цветовую тему.

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

Редактор хранит историю действий, так что в случае ошибки можно отменить последние действия с помощью сочетания клавиш Ctrl+Z. Чтобы повторить отменённое действие, достаточно нажать сочетание Ctrl+Y.

Добавление блока

Добавление блока на поле

Добавить новый блок на поле можно двумя способами:

  • выбрать блок в меню и, зажав кнопку мыши, перетащить его в нужное место
  • нажать цифровую клавишу, соответствующую номеру блока

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

Также блок можно скопировать и вставить с помощью сочетаний клавиш Ctrl+C и Ctrl+V соответственно.

Редактирование текста и форматирование блоков

Редактирование текста и форматирование блоков

Для ввода блока в режим редактирования достаточно дважды кликнуть по блоку или же нажать клавишу F2 при имеющемся активном блоке. Блоки поддерживают как обычное добавление символов, так и основные сочетания клавиш, свойственные обычному текстовому полю:

  • Перемещение курсора: стрелки, Home, End
  • Перемещение курсора на очередное слово: Ctrl+Left, Ctrl+Right
  • Удаление до очередного слова: Ctrl+Delete, Ctrl+Backspace
  • Выделение текста: Shift+Arrows, Shift+Home, Shift+End, Ctrl+A
  • Вставка из буфера обмена: Ctrl+V
  • Копирование в буфер обмена: Ctrl+C
  • Жирный и курсивный шрифт: Ctrl+B и Ctrl+I соответственно
  • Изменение размера шрифта: Ctrl+Plus и Ctrl+Minus соответственно

Добавление стрелок, соединение блоков

Добавление стрелки

У каждого блока (кроме текстового) есть четыре коннектора. Чтобы соединить блоки стрелкой, необходимо навести мышь на один из коннекторов начального блока и нажать левую кнопку мыши. После этого стрелка будет перемещаться вместе с мышью до тех пор, пока не будет произведён клик на другой коннектор. Также в процессе добавления стрелки можно кликнуть по пустому пространству. Данное действие приведёт к добавлению промежуточного узла в стрелку, и новые сегменты будут строиться уже от неё. Если решение начать строить данную стрелку оказалось ошибочным, для отмены действия достаточно нажать клавишу Esc.

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

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

Масштабирование и перемещение блоков

Изменение размера и перемещение блоков

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

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

Изменение стрелок и их частей

Изменение стрелки

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

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

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

Масштабирование и перемещение

Масштабирование и перемещение поля

Для того, чтобы передвигаться по полю вверх и вниз используйте обычную прокрутку мыши. Для горизонтального перемещения используйте ту же прокрутку мыши, но с зажатой клавишей Shift. Также перемещение по полю возможно путём перемещения мыши с зажатыми левой клавишей и клавишей Ctrl.

Для изменения текущего масштаба поля используйте прокрутку колёсика мыши с зажатой клавишей Alt. Также масштабирование возможно с использованием сочетаний клавиш Ctrl+Plus и Ctrl+Minus или иконки лупы в правой нижней части экрана для увеличения и уменьшения масштаба соответственно.

Переключение между блоками и поиск ближайшего блока

Переключение между блоками

Чтобы сделать активным очередной блок и переместить поле так, чтобы он оказался в центре, достаточно нажать клавишу Tab. А для того чтобы перейти не на следующий, а на предыдущий блок, нужно нажать сочетание клавиш Ctrl+Tab.

Для перемещения поля таким образом, чтобы в центре оказался ближайший блок, нужно нажать сочетание клавиш Ctrl+F.

Выделение и действия с ним

Действия с выделением

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

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

Чтобы скопировать активное выделение, используйте сочетание клавиш Ctrl+C. Для вставки скопированного выделения нажмите Ctrl+V. Удалить выделение можно с помощью нажатия клавиши Delete.

Смена меток блоков, смена направления стрелки и её перестроение

Метки блоков и направление стрелки

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

  • Блок начала/конца: циклическое изменение текста «начало» — «конец» — «вернуть»
  • Блок ввода/вывода: циклическое изменение текста «ввод» — «вывод»
  • Блок условного оператора: смена положений меток да/нет или их полное отключение
  • Блок ссылки: увеличение на 1 цифры текущей метки (уменьшение на 1, если нажать Ctrl+R)

При нажатии клавиши R и наличии активной стрелки, её направление изменится на противоположное без перестроения сегментов.

Нажатие Ctrl+P при наличии активной стрелки приведёт к автоматическому перестроению всех сегментов.

Вставка шаблонов блок-схем

Добавление шаблонов блок-схем

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

  • Цикл for — сочетание Ctrl+1
  • Цикл while — сочетание Ctrl+2
  • Вложенный цикл for — сочетание Ctrl+3
  • Условный оператор с двумя ветвями — сочетание Ctrl+4
  • Оператор выбора — сочетание Ctrl+5
  • Основная программа — сочетание Ctrl+6

Сохранение и загрузка блок-схем

Сохранение и загрузка схемы

Для сохранения доступна не одна, а сразу три кнопки в меню, причём каждая делает своё действие, а именно:

  • Сохранить схему (.json) — сохраняет блок-схему в виде json файла, который затем можно открыть в редакторе для изменения (сочетание клавиш — Ctrl+S)
  • Сохранить схему (.png) — сохраняет блок-схему в виде единого изображения без сетки и меню в том масштабе, в котором сейчас находится редактор (сочетание клавиш — Ctrl+Shift+S)
  • Сохранить области (.png) — находит связанные области (два и более блоков, соединённых стрелкой) и сохраняет каждую в виде изображения по отдельности (сочетание клавиш — Ctrl+Alt+S)

С загрузкой всё гораздо проще: одна кнопка, клик по которой позволяет выбрать json файл с блок-схемой (сочетание клавиш — Ctrl+O). При успешном открытии, текущая блок-схема будет заменена на новую, в противном случае останется прошлая схема, однако история изменений будет утеряна.

Фото Перминова Андрея и Кудиновой Светланы, авторов этой статьи

Программист, сооснователь programforyou.ru, в постоянном поиске новых задач и алгоритмов

Выпускник МГУ им. М.В. Ломоносова

Программист, соосновательница programforyou.ru, рукодельница, всегда готова придти на помощь и помочь во всём разобраться

Выпускница МГТУ им. Н.Э. Баумана

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

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *