|
3687 / 964 / 114
Регистрация: 10.01.2010
Сообщений: 2,550
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Правила составления блок-схем для программ [C/C++;Pascal;Basic]12.04.2010, 22:20. Показов 235999. Ответов 20
Если вам нужно составить блок-схему для вашей программы написанной на [C/C++;Pascal;Basic] (именно для них будут приведены примеры), то прошу изучить данное руководство.
Составление блок-схемы - процесс составления графических блоков из блоков кода. Фактически вы будете смотреть на строчку и добавлять блок. Ещё строчка, блок и вниз вниз вниз. Очень просто, если освоить "строительные блоки". Рассмотрим их: Терминатор Подробнее
Любая программа\подпрограмма начинается и заканчивается данным блоком. Отличие в тексте внутри него. Для начального блока так и пишем "НАЧАЛО", а для завершающего "КОНЕЦ".
Обратите внимание: в блок-схеме должно быть только одно начало, и только один конец. В случаях когда работа программы завершается в разных ветвлениях, нужно не каждую из них завершать блоком терминатора, а с помощью блока "Соединитель" переводить управление на единый конец программы. Данные Подробнее
Если какие-то данные поступают в программу извне (например с клавиатуры), то отобразить это на блок-схеме, вам поможет именно этот блок. Взглянем на код, который отражает этот блок:
Процесс Подробнее
Предыдущий блок фактически дал нам возможность заявить что есть такие то переменные и мы можем уже с ними как то работать. Например, посчитать выражение a = (b * c) / d
В коде это может выглядеть так:
Предопределенный процесс Подробнее
В вашей программе могут быть функции и процедуры. Если вы их вызываете где-то (иначе тогда зачем они писались?), то данный вызов должен помещаться в данный блок. Т.е. если какая то строчка в программе вызывает функцию\процедуру, мы помещаем её в этот блок.
Вот как это может выглядеть в коде:
Решение Подробнее
Участки кода, которые разветвляют работу программы, по определённому условию необходимо выполнять данным блоком. При этом в блоке пишется само условие, а из блока выводят линии справа (для случая "условие не выполняется") и снизу (для случая "условие выполняется").
В коде, этот блок выглядит обычно оператором if
Это выглядит так: Вложение 30531 В сам блок записывается операнд switch'а, а над линиями, исходящими из блока - то с чем он сравнивается. Обратите внимание: линии, исходящие из блока, должны быть подписаны. Для if эта подпись "Да" и "Нет", для switch'а - соответствующие подписи case'ов Границы цикла Подробнее
Это составной блок, который отображает цикличные (повторяемые действия). Первый блок показывает где начинается цикл, а второй - где заканчивается.
...
Рассмотри ещё цикл do - while. Для него блок-схема будет выглядеть немного по другому, т.к. условие окончания проверяться будет в нижнем блоке, а не в верхнем.
Вместо блока в котором написано "тело цикла" может быть другой блок, а может много других блоков Это просто для того чтобы показать как распологаются блоки внутри циклаСоединитель Подробнее
О нет, блок-схема не влезает в лист (во громадина то). Что делать? Используем этот блок!
Цифра в блоке будет обозначать какой кружочек с цифрой искать на другом листе. Я имею ввиду что сначало мы добавим такой блок с цифрой 1. На следующем листе снова разместим кружочек с цифрой 1. А если добавим ещё блок в другое место и он будет соединять уже другие части программы то нужно будет писать цифру 2 и т.д. Документ Подробнее
Через этот блок я всегда выводил переменные. В общем если алгоритм печатает переменную d на экране то можно зарисовать это так:
Не забуде что блок "данные" который был описан выше тоже может обозначить вывод данных. Советы: 1. Блоки должны быть одной ширины. Это важно, к этому могут придраться. Насчет высоты не знаю Делал разную высоту и все было хорошо.2. Если текст не влезает в блок то можно сделать его повыше (но не надо делать его шире!) и разделить по нему текст так что все влезет. А ещё можно вынести "комментарий". Да, на блок схемах они тоже бывают. Все есть в ГОСТ. 3. Все блоки соединяются обычными линиями (БЕЗ стрелок). Стрелочка на конце линии добавляется только тогда когда одна линия входит в другую (при этом стрелка рисуется для той которая "входит") 4. Не заморачивайтесь, блок схема лишь отображает алгоритм. Можно не отображать на ней очень многое - то что не влияет на алгоритм работы программы. 5. Не полагайтесь полностью на это руководство. Оно лишь для быстрого старта. Если хотите сделать очень хорошо, лучше взгляните на ГОСТ ![]() ГОСТ 19.701-90. Схемы алгоритмов, программ, данных и систем. Условные обозначения и правила выполнения Спасибо кот Бегемот и taras atavin за замечания и предложения
51
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 12.04.2010, 22:20 | |
|
Ответы с готовыми решениями:
20
Про актуальность правил составления блок-схем программ
Правила составления блок-схем |
|
3687 / 964 / 114
Регистрация: 10.01.2010
Сообщений: 2,550
|
||||||||||||||||
| 13.04.2010, 15:59 [ТС] | ||||||||||||||||
|
Различные примеры:
КОД
Пока что открываю тему для ваших замечаний и предложений. Давайте вместе сделаем все лучше
6
|
||||||||||||||||
|
4226 / 1796 / 211
Регистрация: 24.11.2009
Сообщений: 27,562
|
|
| 14.04.2010, 11:30 | |
|
Цикл ваще-то шестиугольный, а не ввиде начала. И откуда в языково-независимых блок-схемах чисто сёвый инкремент? Заменить математической записью того же самого в порядке:
1. Начальное значение счётчика. 2. Условие завершения цикла. 3. Как менять значение счётчика после каждого выполнения тела цикла. Добавлено через 1 минуту И насколько мне известно, выход из тела цикла просто сразу в левый вход заголовка. Добавлено через 3 минуты Хотя, по ссылке два блока и сказано, что это стандарт. Но и там блоки не скруглены!
1
|
|
|
3687 / 964 / 114
Регистрация: 10.01.2010
Сообщений: 2,550
|
||||
| 14.04.2010, 16:25 [ТС] | ||||
|
Где то от кого то слышал что это устаревшее что то... но ладно, даже без этого в том ГОСТ что по ссылке есть блок "Подготовка" который выглядит именно так (разве чуть шире). Насчет языконезависимого... впринципе да, не очень хорошо. А насчет записи я согласен, вот только как это записать? Через запятую, на каждой строчке или ещё как. Стандарт молчит. И что за имя цикла понять трудно, вот было бы написано "тип" цикла.
Спасибо! ![]() Добавлено через 13 минут Исправил вид блока цикла, добавил пример цикла с пост-условием
3
|
||||
|
3 / 8 / 1
Регистрация: 12.07.2009
Сообщений: 361
|
|
| 15.04.2010, 16:39 | |
|
ofstream Z4("C:\\Kod.txt"); Какой мне блок применять когда я откриваю файл?
1
|
|
|
3687 / 964 / 114
Регистрация: 10.01.2010
Сообщений: 2,550
|
|
| 15.04.2010, 17:07 [ТС] | |
|
Фактически, как я понимаю, это ввод данных в программу, поэтому блок "Данные" думаю подойдет
Напишите в нем Z4...
2
|
|
|
49 / 25 / 2
Регистрация: 09.06.2008
Сообщений: 227
|
|
| 19.05.2010, 22:29 | |
|
А какой блок используется для switch - case ?..
1
|
|
|
2098 / 1263 / 173
Регистрация: 01.02.2009
Сообщений: 2,842
|
|
| 19.05.2010, 22:53 | |
|
5
|
|
|
cybermolex
|
|
| 30.05.2010, 10:18 | |
|
Здравствуйте, есть такой вопрос.
Алгоритм программы следующий: По нажатию кнопки старт, происходит считывание данных с файла, затем считывания данных с порта, после этого, идет сравнение в цикле, данных с порта и данных с файла, при обнаружении соответствия происходит выход из цикла, и вывод данных на экран, после этого цикл идет заново, если совпадений нет, цикл так же прерывается и на вывод идут другие данные, но в любом случае после этого цикл начинает работать снова. То есть алгоритм циклический. А теперь вопрос: Как на блок-схеме отобразить ручной выход из цикла? Есть кнопка стоп, по нажатию которой цикл прерывается, и программа прекращает свою деятельность. Заранее спасибо. |
|
|
3687 / 964 / 114
Регистрация: 10.01.2010
Сообщений: 2,550
|
|
| 30.05.2010, 20:38 [ТС] | |
|
Посмотрите в ГОСТе блок "Ручной ввод", считывается состояние клавиши в переменную допустим а потом блоком "решения" проверить переменную и решить прервать программу или нет. Если да - блок "соединитель" и его вторая копия уже идет к терминатору "КОНЕЦ"
0
|
|
|
1 / 1 / 0
Регистрация: 18.06.2010
Сообщений: 5
|
||
| 18.06.2010, 12:18 | ||
1
|
||
|
3687 / 964 / 114
Регистрация: 10.01.2010
Сообщений: 2,550
|
||
| 18.06.2010, 21:43 [ТС] | ||
|
Спасибо, а то всегда ограничивался как то этими правилами...
Вот лучше приведу полный список из ГОСТ 19.701-90:
0
|
||
|
0 / 0 / 0
Регистрация: 11.10.2009
Сообщений: 16
|
|
| 03.06.2011, 10:35 | |
|
Пример вложенных циклов FOR
В теле цикла FOR может быть еще один цикл FOR, получаются вложенные циклы, например: http://www.programmer.zp.ua/blsh/img/e3062.png
0
|
|
|
128 / 109 / 103
Регистрация: 16.05.2011
Сообщений: 340
|
|
| 13.02.2012, 14:32 | |
|
Цикл for нас учили через шестиугольник в которм идёт запсиь <параметр цикло>=начало,конец.
0
|
|
|
3687 / 964 / 114
Регистрация: 10.01.2010
Сообщений: 2,550
|
|
| 13.02.2012, 18:05 [ТС] | |
|
Владимир_ВМ, насколько я понял верны оба варианта, т.к. ГОСТ строго не регламентирует вид цикла. Естественно лучше делать именно так как вас учили, чтобы не иметь проблем с преподавателями. Я начертил достаточно много блок схем по учёбе, и разным преподавателям сдавалось все это. Прокатывали оба варианта, но иногда преподавателю нужно "именно так и никак иначе". Тут уж лучше сделать как говорит, а не так как правильно. Это касается не только циклов
0
|
|
|
Заблокирован
|
|||
| 16.02.2012, 20:59 | |||
|
insideone, немного критики, надеюсь, Вы не против
![]() 1.
2.
У меня есть сомненья, что блок "документ" правильно использовать для вывода. Читаем с ГОСТ(пусть даже по вашей ссылке) :
3.
Гост, ссылку на который вы привели вроде бы менее строгий чем более старый(который 19.003-80. ЕСПД). Если туда заглянуть - то можно обнаружить что блок "Данные" называется "ввод вывод" - что "как бы" более отражает суть.
4.
все по той же ссылке можно найти пропорции для блока "Пуск-останов"(у Вас это блок "Терминатор"). Этот блок представляет собой прямоугольник со скругленными правым и левым краями, но у вас нарисован прямоугольник со скругленными углами. Еще иногда вместо него рисуют овал(когда блок-схему в Word рисуют xD) - это тоже неверно.
напоследок
А так, все неплохо...вроде бы. добавил: А еще, не помешало бы почистить тему ИМХО.
0
|
|||
|
3687 / 964 / 114
Регистрация: 10.01.2010
Сообщений: 2,550
|
||||||
| 18.02.2012, 17:40 [ТС] | ||||||
|
rrrFer, спасибо! Материал изначально действительно не претендовал на какую-то академичность, т.к. я больше практик (в свое время пришлось много нарисовать блок-схем для студентов-сотоварищей). К сожалению и сами преподаватели часто не заворачивались и часто требовали рисовать даже не правильно (исходя из своего мировозрения).
Но критика действительно конструктивная, и пора бы немного проапдейтить мануал, займусь этим вскоре ![]() Кстати я уже упоминаю об этом в п.2, но лучше проиллюстрировать.
0
|
||||||
|
Заблокирован
|
||||
| 19.02.2012, 21:40 | ||||
|
Еще точнее тут: "& БЛОК-СХЕМА" Ссылку в ответе PandoraBox2007 я, конечно, ввиду не имел .
Там выше писалось что преподаватель часто требует не по стандарту, а выдвигает свои требования, я щитаю, надо не стесняясь тыкать его мордой в ГОСТ ) Можно заглянуть в соседнюю тему, там есть пост ув. Бурундука, че-то странно выглядит у него блок "терминатор"(походу, наоборот, проблем "с рисованием круглых блоков" нет) и очень странный "соединительный блок". При моем не угасающем уважении к Бурундуку, я бы выпилил статью полностью, ну или написал бы туда комментарий, но нет прав xD. Смотрим раздел "Алгоритм и его свойства", вижу в нем аж 4 предложения, сильно смахивающие на цитаты из энциклопедии(кавычки и ссылку кто-то забыл), но самое главное, про свойства там нет ни одного слова, а могло бы быть интересно .
Не по теме: Пишу тут, чтобы еще 1 пост не создавать(мне лень). Соседняя тема по блок-схемам очень даже интересная. Хотя, я прочитал через строчку по диагонали, но картинки понравились ) Не хватает описания возможностей по экпорту/импорту - например, могу ли я запихнуть в эту программу блок-схему, нарисованную в Dia или Visio (или наоборот, сохранить проект в формате Dia)?
0
|
||||
|
3687 / 964 / 114
Регистрация: 10.01.2010
Сообщений: 2,550
|
|||||
| 22.02.2012, 00:04 [ТС] | |||||
![]() DD интересна именно простотой, её даже устанавливать не обязательно (портабельность). По скорости работы шустра, и возможности вполне достаточны для сабжа.Холивар детектед :)
Некоторые личности могут не терпеть критики, поэтому такой подход может обернуться в будущем большими проблемами. Конечно стоит и ГОСТ показать, но я бы не стал настаивать если бы препод начал противиться этим доводам.
1
|
|||||
|
Заблокирован
|
|
| 04.03.2012, 09:26 | |
|
0
|
|
| 04.03.2012, 09:26 | |
|
Помогаю со студенческими работами здесь
20
Программа для составления блок схем Программа для составления блок-схем
Программа для составления блок схем Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
||||
|
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта
Симптом:
После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
|
Access
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
|
Новый ноутбук
volvo 07.12.2025
Всем привет.
По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне:
Ryzen 5 7533HS
64 Gb DDR5
1Tb NVMe
16" Full HD Display
Win11 Pro
|
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
|
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
|
|
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов
На странице:
https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/
нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
|
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов.
. . .
|
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
|
Мысли в слух
kumehtar 18.11.2025
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
|
Создание Single Page Application на фреймах
krapotkin 16.11.2025
Статья исключительно для начинающих. Подходы оригинальностью не блещут.
В век Веб все очень привыкли к дизайну Single-Page-Application .
Быстренько разберем подход "на фреймах".
Мы делаем одну. . .
|