Форум программистов, компьютерный форум, киберфорум
Алгоритмы
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск  
 
 
Рейтинг 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. Показов 238793. Ответов 20

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



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

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

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





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

Размер: 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
Просмотров: 80244

Размер: 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
Просмотров: 80417

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

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





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

Размер: 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
Просмотров: 63962

Размер: 2.4 Кб

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

...

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

Размер: 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
Просмотров: 63650

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







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

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





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

Размер: 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
Закрытая тема Создать тему
Новые блоги и статьи
Hyper-V: Компьютер должен поддерживать доверенный платформенный модуль 2.0.
Maks 31.08.2026
При установке Windows 11 на виртуальную машину Hyper-V 2-го поколения вылезла такая ошибка: Решение: в параметрах виртуальной машины, в разделе "Безопасность" (Security) активировать флаг. . .
Архитектура биовида Стива в Майнкрафте: Зачем бонобо кубический каннибализм
anaschu 30.08.2026
Кубический Вагинокапитализм в Minecraft: Математический инвариант ОДУ и рок Стивов-бонобо Главная задача разработанной «Модели Всего» — наглядно продемонстрировать наличие системной «судьбы». . .
Оттачиваю умение писать js программы.
russiannick 30.08.2026
Проектом выходного дня стало написание Книги шифров Виженера. Итогом стала версия 200, синий туман. Синий туман назван так, потому что замораживает текст под собой. Нажатие синих кнопок управляют. . .
мат медиц модель 30. презентация проекта
anaschu 27.08.2026
хоп хоп хоп хидахоп, а я кладую))
Как у меня протекала болезнь
zorxor 27.08.2026
Здравствуйте, друзья! Эта запись блога предназначена именно для вас - для моих дорогих друзей, которые знали меня лично. Чтобы ответить на вопрос - а что же со мной произошло на самом деле? Я учился. . .
Нашел вот забавное видео о измерениях. Лучшее что я видел на эту тему
kumehtar 26.08.2026
ILETXiw9bMQ Основная суть и тезисы по измерениям: 0D (Нулевое измерение): точка, не имеющая длины, ширины, высоты или объема. Объект не может перемещаться в 0D. 1D (Первое измерение):. . .
[EasyBuilder Pro] Памятка по разработке для панелей Weintek
ФедосеевПавел 26.08.2026
Памятка по разработке для панелей Weintek ВВЕДЕНИЕ Ранее, при реализации проектов основное внимание уделял разработке управляющей программы для контроллера, а панели оператора доставалось время. . .
Модель по догадкам
anaschu 25.08.2026
Прошло две недели. Я уже рассказывал, как разговаривал с сотрудниками у сортировки и как понял, что главная ветка — не про приёмку, а про отбор. Но тогда я думал, что понял механику. На этой неделе я. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru