Форум программистов, компьютерный форум, киберфорум
Алгоритмы
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск  
 
 
Рейтинг 4.71/1154: Рейтинг темы: голосов - 1154, средняя оценка - 4.71
Автор FAQ
 Аватар для insideone
3687 / 964 / 114
Регистрация: 10.01.2010
Сообщений: 2,550

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

12.04.2010, 22:20. Показов 239099. Ответов 20

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



Терминатор
Название: terminator.png
Просмотров: 68927

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

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





Данные
Название: input.png
Просмотров: 68855

Размер: 1.7 Кб
Подробнее
Если какие-то данные поступают в программу извне (например с клавиатуры), то отобразить это на блок-схеме, вам поможет именно этот блок. Взглянем на код, который отражает этот блок:
C++
1
cin >> a >> b >> c >> d;
Pascal
1
read(a); read(b); read(c); read(d);
PureBasic
1
2
3
4
Input a
Input b
Input c
Input d
Обратите внимание: В ГОСТе указываются и другие блоки ввода информации, например блок "Ручной ввод" в виде трапеции. Этот же блок можно использовать для обозначения вывода информации, однако как и в случае с вводом в ГОСТе указываются отдельные блоки для вывода информации, например блок "Дисплей" (см. ниже)





Процесс
Название: process_block.png
Просмотров: 80248

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

В коде это может выглядеть так:
C++
1
a = (b * c) / d;
Pascal
1
a := (b * c) / d;
PureBasic
1
a = (b * c) / d
Обратите внимание: стоит избегать "языковых" особенностей. Например, инкремент (i++) в блоке лучше записать как i = i + 1, т.к. блок-схемы должны избегать зависимостей от конкретной реализации и отражать алгоритм, логику работы.





Предопределенный процесс
Название: preprocess.png
Просмотров: 80421

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

Вот как это может выглядеть в коде:
C++
1
SomeFunction(a, b);
Pascal
1
SomeFunction(a, b);
PureBasic
1
Call SomeFunction(a, b)
Обратите внимание: "Внутренности" вызываемой функции должны быть отображены на отдельной блок-схеме. Другими словами, если у вас программа с 10 функциями, то у вас будет 1 + 10 блок схем.





Решение
Название: solution.png
Просмотров: 63920

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

В коде, этот блок выглядит обычно оператором if
C++
1
if ( a > b && c < d )
Pascal
1
if (( a > b ) and ( c < d )) then
PureBasic
1
If (( a > b ) and ( c < d )) Then
Однако, если вам встретился switch, то его вам нужно изобразить тоже через этот блок.
Это выглядит так: Вложение 30531
В сам блок записывается операнд switch'а, а над линиями, исходящими из блока - то с чем он сравнивается.

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





Границы цикла
Название: loop_new.png
Просмотров: 63966

Размер: 2.4 Кб

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

...

Название: loop_new.png
Просмотров: 63966

Размер: 2.4 Кб
C++
1
for (int i = 0; i < n; i++)
Pascal
1
for i:=0 to n - 1 do
PureBasic
1
For i = 0 to n
Первой строкой идет название цикла. Ну for цикл.. так и пишем. Был бы while цикл написали while. А дальше собственно какую то информацию о нем, но главное - условие его окончания. Второй блок закрывает границы цикла. Все что расположено между этими двумя блоками - будет выполняться в цикле.
Рассмотри ещё цикл do - while. Для него блок-схема будет выглядеть немного по другому, т.к. условие окончания проверяться будет в нижнем блоке, а не в верхнем.
C++
1
2
3
do {
   // тело цикла
} while (x > 10);
Pascal
1
2
3
repeat
  { тело цикла }
until (x <= 10);
PureBasic
1
2
3
Do
   ' тело цикла
Loop While (x > 10)
Условие в таком случае проверятся в конце каждой итерации а не в её начале. На блок схеме это отобразится так:
Название: loop_do_while.png
Просмотров: 63654

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







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

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





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

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





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

ГОСТ 19.701-90. Схемы алгоритмов, программ, данных и систем. Условные обозначения и правила выполнения

Спасибо кот Бегемот и taras atavin за замечания и предложения
Изображения
   
51
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
12.04.2010, 22:20
Ответы с готовыми решениями:

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

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

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

20
 Аватар для cpp_developer
20124 / 5691 / 417
Регистрация: 09.04.2010
Сообщений: 22,546
Записей в блоге: 1
23.04.2012, 18:18
Студворк — интернет-сервис помощи студентам
Правила оформления алгоритмов по ГОСТУ
2
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
23.04.2012, 18:18

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

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

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

Программа для составления блок-схем
подскажите программу которая из програмного кода делала блок схему?

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


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
21
Закрытая тема Создать тему
Новые блоги и статьи
Особенности gif сгенерированных в Си
russiannick 21.10.2026
Рассмотрим генерацию gif файлов, которые в Си имеют свои особенности. Gif представляет собой графический формат популярный в интернете. Посмотрим на палитру. Gif файл сгенерированный в си отличается. . .
FPS контроллер с анимированными Y-Bot и 3D-звуком miniaudio (Box3D, Recast, BehaviorTree.CPP, ozz-animation, ImGui, OpenGL и SDL3)
8Observer8 18.10.2026
Содержание блога | English Version Полное мультиплатформенное руководство по стартовому проекту с FPS-контроллером игрока, анимированными роботами Y-Bot с 4-слойным блендингом, 3D-физикой Box3D,. . .
Локальный http сервер
Argus19 17.10.2026
Локальный http сервер На работе, на двух локальных компьютерах круглосуточно работают программы опроса приборов с записью в книги Excel,которые раз в сутки записываются на сервер компании. Т. к. . . .
Копировать Windows на новый диск на UEFI
damix 17.10.2026
https:/ / uriesk. wordpress. com/ 2016/ 11/ 01/ move-window-10-to-ssd-on-a-uefi-dualboot-system-with-basic-linux-tools/ TL DR Вставляем диск, а старый подключаем через переходник, грузимся с лайва. . .
ИИ не может найти нужный язык в списке
Supersumestria 05.10.2026
Я ему даю вот такое изображение и прошу найти и подчеркнуть немецкий язык. Возвращает он вот это: https:/ / i. **********/ vqBWLe2. png Нужную строчку в 3й колонке просто выдумал. . Это. . .
Новая последняя моя музыка в SUNO
zorxor 05.10.2026
Здравствуйте, дорогие мои друзья! С большой радостью я хотел бы представить вам свою новую последнею музыку, которую сгенерировала мне по моей просьбе нейросеть SUNO. С уважением, zorxor. Это. . .
Программный домашний кинотеатр
russiannick 27.09.2026
Сподобился на программный домашний кинотеатр. В качестве ЯВУ по традиции выбрал js. В помощники взял Яндекс-Алису. Было создано три зала на разные интересы. исторические и ретро сериал Хичкок. . .
Беседа с ИИ о программистах, недопускающих к созданию и правке кода генеративные ИИ и причины этого
zorxor 21.09.2026
Раньше я радовался или получал некоторые эмоции, пусть небольшие, но всё же, от самого процесса написания кода, рекомпиляции и запуска, видя постепенное развитие программы и прочее. А теперь лень. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru