Форум программистов, компьютерный форум, киберфорум
Алгоритмы
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск  
Результаты опроса: Зачем нужны блок-схемы?
Для объяснения алгоритма программы заказчику 8 17.02%
Схема выполняется перед написанием псевдо-кода и программного кода 14 29.79%
Для сдачи зачетов в универе 31 65.96%
Опрос с выбором нескольких вариантов ответа. Голосовавшие: 47. Вы ещё не голосовали в этом опросе

 
 
Рейтинг 4.57/173: Рейтинг темы: голосов - 173, средняя оценка - 4.57
9 / 13 / 3
Регистрация: 18.08.2009
Сообщений: 487

Зачем нужны блок-схемы?

20.01.2010, 15:36. Показов 37344. Ответов 49
Метки нет (Все метки)

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

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

Какое ваше мнение?
1
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
20.01.2010, 15:36
Ответы с готовыми решениями:

Зачем нужны объекты?
Зачем нужны объекты?

Зачем нужны хеш таблицы?
Подскажите, пожалуйста, зачем нужны хеш таблицы? Я так подозреваю, что они могут помочь найти образец в тексте, но тогда как их построить,...

Зачем в начале файла utf-16 нужны байты 0XFF и 0XFE?
Друзья! Хоть убей не пойму, зачем перед строкой нужны байты 0xFF 0xFE. Везде можно прочесть, что они нужны, чтобы указать считывающему...

49
 Аватар для SmittWesson
236 / 196 / 21
Регистрация: 04.06.2014
Сообщений: 1,309
22.09.2016, 10:18
Студворк — интернет-сервис помощи студентам
Да, к стати. Я не рисую блок-схемы на бумажке. У меня для этого есть специальный стенд с магнитными фигурками.
Миниатюры
Зачем нужны блок-схемы?  
0
 Аватар для SmittWesson
236 / 196 / 21
Регистрация: 04.06.2014
Сообщений: 1,309
22.09.2016, 10:25
Чуть не забыл. Ещё два магнитных датчика положения иглы. Итого 9 датчиков.
0
Evg
Эксперт CАвтор FAQ
 Аватар для Evg
21285 / 8310 / 637
Регистрация: 30.03.2009
Сообщений: 22,671
Записей в блоге: 30
22.09.2016, 14:10
Для станка блок-схема будет выглядеть несколько иначе - она в более крупную клетку, чем блок-схемы, о которых идёт речь в данной теме. К тому же для нормального понимания блок-схемы любого вида абсолютно побоку, квадратом, обозначен элемент схемы, овалом, треугольником или чем-то ещё. В то время как в блок-схемах из данной темы, насколько я знаю, есть строгие требования о том, какой элемент какой фигурой надо рисовать
0
Модератор
Эксперт функциональных языков программирования
3141 / 2289 / 469
Регистрация: 26.03.2015
Сообщений: 8,912
22.09.2016, 16:22
Цитата Сообщение от SmittWesson Посмотреть сообщение
Попробуйте без блок-схемы создать алгоритм работы вот этого станка.
Не вижу никаких проблем.
И не вижу большой разницы, в каком виде записан алгоритм работы.
0
Evg
Эксперт CАвтор FAQ
 Аватар для Evg
21285 / 8310 / 637
Регистрация: 30.03.2009
Сообщений: 22,671
Записей в блоге: 30
22.09.2016, 19:17
Разница есть в том, насколько быстро и по простому читатель поймёт принцип работы. Можно вообще на китайском языке написать (иероглифами), принципиальной разницы нет, но понимать это будет намного сложнее (больше времени уйдёт на вникание)
0
Модератор
Эксперт функциональных языков программирования
3141 / 2289 / 469
Регистрация: 26.03.2015
Сообщений: 8,912
22.09.2016, 19:52
Поэтому внешний вид должен зависеть от решаемой задачи, а не сводиться к стандартному языку блок-схем. Для каких-то задач это может быть таблица, для каких-то простой список действий/требований по пунктам, а для каких-то, может быть, и схема со стрелочками.
0
Evg
Эксперт CАвтор FAQ
 Аватар для Evg
21285 / 8310 / 637
Регистрация: 30.03.2009
Сообщений: 22,671
Записей в блоге: 30
22.09.2016, 20:35
Цитата Сообщение от Shamil1 Посмотреть сообщение
Поэтому внешний вид должен зависеть от решаемой задачи, а не сводиться к стандартному языку блок-схем
А кто-то обратное утверждал?
0
1472 / 827 / 140
Регистрация: 12.10.2013
Сообщений: 5,456
23.09.2016, 09:46
Тема будет бесконечный холивар с весомыми аргументами между большинством “Для сдачи зачетов в универе” и другими. Для посещаемости хороша т.к. тема знакома от школьника до кодера с 20 летним стажем… поэтому ее не закроют =).
0
14 / 14 / 6
Регистрация: 11.07.2015
Сообщений: 147
05.07.2017, 00:43
Блок-схемы нужны только в том случае, если программа пишется на ассемблере. Что касается языка высокого уровня, то здесь блок-схемы абсолютно не нужны. Говорят, что программу, написанную на блок-схеме, можно написать на разных языках. Тогда представим, что алгоритм использует стандартную функцию какого-то языка программирования, которая также есть в других языках, но по другому называется, и, возможно, немного по-другому используется. Ярким примером является функция, которая возвращает случайное число. В разных языках она записывается по-разному - rand(), random(), mt_rand(), Math.random(), а в некоторых вообще нужно создавать объект класса Random. Вопрос: как это реализовать в блок-схеме? Мне в голову приходит только или словестное описание в блоке, или использование названия функции одного из языков, но опять же, программист, который пишет код по блок-схеме, может не знать языка, с которого названия этой функции было взято, а если и догадается по названию, то может не знать, какое именно случайное число получает эта программа: от 0 до 1, от 0 до 65536 и т.д. Как по мне, для универсальности описания алгоритма лучше использовать какой-то из существующих языков программирования, например C++, и чтоб он был стандартом (но это не точно).
Еще момент, если в моем коде присутствует такая строчка:
C++
1
if( a==b && func(a) == 1 || a==c ) {
то как это будет описано в блок-схеме? Нужно ли для каждого условия писать отдельный ромбик, или можно все условия написать в одном ромбике, и где будет вызыватся функция - в ромбике или другом блоке (в последнем случае еще придется ввести дополнительную переменную)? Если все писать в одном ромбике, то все просто не поместиться в один ромбик, а если писать в нескольких блоках, то это приведет к избыточности.
Что касается наглядности, то программный код является более наглядными, чем блок-схемы, так как в программе не только четко видно, что за чем идет, но еще и то, что находиться в условном блоке, цикле (конечно же при наличии отступов), чего не скажешь про блок-схемы, так как там, посмотрев на отдельный блок, нельзя сразу ответить на вопрос, находиться ли он, например, в условном операторе, а в программном коде достаточно пролистать вверх, и посмотреть, где начинается отступ, независимо от количества строк в условном операторе.
Это далеко не единственные нюансы блок-схем.
0
133 / 148 / 64
Регистрация: 27.06.2013
Сообщений: 536
13.07.2017, 13:28
Из воспоминаний советского программиста. Надеюсь, что прочитают мои оппоненты. Давным давно, еще в докомпьютерную эру (с двадцатых годов) применялись для изображения последовательных процессов или алгоритмов блок-схемы (flowcharts). На них отдельные элементарные (на данном уровне абстракции) шаги изображались прямоугольничками, последовательность шагов – стрелочками, а ветвления (проверки условий) ромбиками. В самом-самом начале, когда языков программирования еще не было, а программы непосредственно кодировались числовыми кодами или, в лучшем случае, писались в «содержательных обозначениях», как рекомендовал патриарх нашего ремесла Александр Львович Брудно, блок-схемы были важным подспорьем. В таковом качестве во время оно их и застандартизировали.
Прошли десятилетия, то есть минули целые эпохи. А от программистов по-прежнему требовали чертить эти чертовы стрелочки и ромбики. Смысла в этом было аж никакого. Во-первых, теоретически доказано, что любой алгоритм, записанный на языке высокого уровня (на любом языке) имеет эквивалентное графическое представление в виде блок-схемы и почти наоборот, любая правильная блок-схема (фишка тут в слове «правильная») эквивалентна некоторому тексту на том или ином языке программирования. Но текст программы завсегда лучше блок-схемы, хотя бы потому, что последней можно только любоваться, а первый – это реальный кусок программы, который компилируется и выполняется на машине. Есть разница? Во-вторых, блок схема может показать только синхронный, строго последовательный процесс вычислений, а в жизни такое наблюдается разве что в небольших несложных программах. Реальные же системы – это не однопоточные алгоритмы, а целые искусственные миры, где множество населяющих их объектов-персонажей (как программных, так и аппаратных) взаимодействуют друг с другом, посылая в непредсказуемые моменты времени сигналы и возбуждая прерывания, и где множество потоков вычислений исполняются одновременно и ассинхронно, порой еще и на множестве процессоров и машин. Получается, что блок-схемами можно проиллюстрировать только маленькие кирпичики, но никак не всю систему, но зачем дополнительно иллюстрировать то, что и так внятно и понятно (с комментариями) записывается в текстовом виде?
Казалось бы, не нужны, так не пользуйтесь. А действительно не нужны – любой программист, хоть разработчик, хоть представитель заказчика предпочтет посмотреть исходный текст программы, а не эти картинки. Непрограммисту они – тем более до лампочки. И только ГОСТу, в лице его полномочного представителя – нормоконтролера, они нужны. Дороги как произведения изобразительного искусства. Он их проверяет на соответствие требованием оформления – такая-то ширина линий, столько-то миллиметров длина стрелочки, такой-то отступ квадратика от ромбика... Смысл схемы контролеру совершенно недоступен. Можете себе представить, какая халтура там процветала? В нашей конторе (как и в сотнях и тысячах таких же контор по всему Союзу) сидели тетки-чертежницы и тушью на кальках рисовали никому не нужные стрелочки и ромбики. Зато безработицы не было! Уже Союз загибался, но в девяностом году, если не ошибаюсь, успели под занавес выпустить новый ГОСТ все на ту же тему рисования блок-схем. Какая-то навязчивая, неотвратимая мания. Ну да ладно...
5
90 / 109 / 15
Регистрация: 26.01.2014
Сообщений: 710
26.07.2017, 08:27
По личному опыту на языках высокого уровня думаешь над алгоритмом сразу в терминах языка. Блок схемы рисовал, со всеми ромбиками и прочими прибамбахами если нужно было объяснить что там делается или не специалисту, или просто человеку с каким другим языком. Кстати, в реальной программе почти все делается не через IF, а через циклы. На блок схемах циклы только запутывают разумное объяснение. Рисовал ромбики.
Для Assembler-а блоки полезны, но не доводилось сочинять столь сложных модулей Assembler-а.
Всегда Ваш - Etien

Добавлено через 28 минут
В реальном времени блоки иногда помогают. Там легко проставить временную последовательность и необходимые задержки.
Всегда Ваш - Etien
1
82 / 5 / 2
Регистрация: 29.04.2015
Сообщений: 136
09.10.2018, 09:34
Если изображать цикл на блок-схеме по ГОСТ-у, там вообще нет никакой понятности для начинающего, с большим трудом можно найти пример для цикла с постусловием, у которого постусловие в блоке условия расположено так, как и любят его располагать на блок-схеме с использованием, так называемого, блока условия. Цикла с предусловием с использованием блока условия вообще нет в примерах в ГОСТ-е, как и нет примера изображения цикла с параметром. Все это, по-видимому, придумано позже, внезависимости от ГОСТ-а (или ГОСТ сделан весьма халтурно). Но это придумывание разумно, именно из-за этого придумывания появились программы переводящие элементы блок-схемы в программный код (примеры редкие, видел программу под DOS, ну и современную AFCE) Именно из-за этого придумывания появились программы составляющие блок-схему по коду (как мне кажется, это менее практично чем первое). Вы говорите на начальном этапе полезна для освоения языка блок-схема, согласен. Но мало кто вообще объясняя блок-схемы ученикам(не по ГОСТу, а в том виде, как это общепринято) и делает акцент на то, что это графический способ изображения алгоритмов, между прочим более близкий к языку программирования, чем просто описания алгоритма по пунктам, правда при этом весьма громоздкий. Мои студенты, которым преподаю технологию программирования, и которым явно давали блоку-схемы явно не понимали, что блок-схема это тоже алгоритм, по которому можно написать программу. Первые задания у них были весьма простые, но они начали с написания программы, и продолжили с постановкой задачи и составлением блок-схемы. Я от них, конечно, требовал выполнить задание в другой последовательности. Получилось, что они могут написать программу, но не могут нормально написать постановку задачи (определить входные и другие переменные, написать формулы для вычислений и др.), а блок-схемы у них, в большинстве случаев были сами по себе, а программный код сам по себе, код не вязался с блок-схемой. За исключением того, когда блок-схема была составлена автоматически, по коду. При этом они не понимали, что задача наших блок-схем показать именно алгоритм, они не понимали, зачем я настаиваю на том, что-бы удалить блок описания переменных. Попались студенты которые вообще не понимали почему элементы блок-схемы имеют различную форму. Когда я им показал, что в программа AFCE при установке элемента сразу прописывается соответствующий код, до них наконец дошло, что элементы блок-схемы и операторы близки по смыслу.
0
 Аватар для Ethereal
6773 / 2741 / 385
Регистрация: 17.02.2013
Сообщений: 4,048
16.10.2018, 13:13
Блок схемы нужны когда надо показать самую общую логику работы или протокол.
На самом начальном этапе обучения программированию нужны до тех пор пока обучаемый не научился представлять циклы в уме.
А больше нигде не нужны.
Цитата Сообщение от tvitaly1 Посмотреть сообщение
Если изображать цикл на блок-схеме по ГОСТ-у
Ну, ГОСТ он для документации, а учить всегда надо как будет понятнее обучаемому, не глядя на ГОСТ, который не для этого создавался.

А вообще где-то на просторах Интернета есть более продвинутые блок-схемы под названием языка Дракон. Автор только у этого языка очень смешной. Пытается куда-нибудь свой Дракон пристроить и что-нибудь с этого поиметь. И реально считает его новым словом в программировании, но это видимо уже старческий маразм пошел. Хотя если смотреть на Дракон как на более богатые по выразительным возможностям блок-схемы, то он вполне так ничего.
0
 Аватар для Kuzia domovenok
4268 / 3328 / 926
Регистрация: 25.03.2012
Сообщений: 12,545
Записей в блоге: 1
29.04.2019, 17:27
блок-схемы были нужны в языках из 70х годов типа раннего диалекта Бейсика, Фокала, Кобола.
Ну знаете, когда программа обязана была писаться с нумерацией строчек метками перехода и GOTO между ними были обычным явлением.
Code
1
2
3
4
5
6
7
8
9
 1.1 T " Решаем квадратное уравнение вида: A*X^2 + B*X + C = 0 "!
 1.2 T "Введите коэффициенты A B C"!
 1.3 A " A=",A, " B=",B, " C=",C
 1.4 S D=B*B-4*A*C; Т "дискриминант D=",D," "; I (D)1.9,1.8
 1.5 T !,"Корни уравнения: X1=", (-B+FSQRT(D))/(2*A) !
 1.6 T "                   X2=", (-B-FSQRT(D))/(2*A) !
 1.7 T "Всё"! ; Q
 1.8 T " - нулевой"! "Поэтому корень только один: " (-B)/(2*A) ! ; G 1.7
 1.9 T " - отрицательный"!"Поэтому у этого уравнения корней нет"!; Q
ну и как в таком коде без предварительного рисунка со стрелочками?

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

А потом прошло время и преподы совершенно забыли, а зачем они вообще блок-схемы рисовали в юности в первую очередь. И стали их требовать "шоб було"
1
Evg
29.04.2019, 21:24

Не по теме:

Увидел код на Focal'е - чуть не расплакался

0
82 / 5 / 2
Регистрация: 29.04.2015
Сообщений: 136
01.05.2019, 10:24
Цитата Сообщение от Kuzia domovenok Посмотреть сообщение
перехода и GOTO между ними были обычным явлением.
..... ни одной метки перехода и.т.д.....
Современные языки программирования позволяют обходится без перехода на метку, тем не менее, переходы в алгоритме имеются, например,
оператор условия в неполной форме, - мы либо выполняем часть операторов по условию, либо пропускаем(обходим, переходим на строку за телом оператора условия в неполной форме) их,
оператор условия в полной форме, - мы либо выполняем часть операторов по условию, а часть других обходим, либо обходим операторы для который условие выполнение ложно, и выполняем другие операторы, для которых логическое отрицания условия истинно.
Оператор выбора, тут вообще переход осуществляется на подобие меток, в которых указывается условие перехода.
Оператор цикла с постусловием, мы можем возвратится к началу тела цикла в котором находится группа операторов для повторения, либо продолжить программу.
Так что не надо ля-ля о том, что переходов(стрелочек переходов и т.п.) в современной программе нет.
0
Модератор
Эксперт функциональных языков программирования
3141 / 2289 / 469
Регистрация: 26.03.2015
Сообщений: 8,912
02.05.2019, 13:37
Цитата Сообщение от tvitaly1 Посмотреть сообщение
Так что не надо ля-ля о том, что переходов(стрелочек переходов и т.п.) в современной программе нет.
Вы цитируете "ни одной метки перехода", а отвечаете на придуманное Вами же "ни одного перехода".
0
82 / 5 / 2
Регистрация: 29.04.2015
Сообщений: 136
02.05.2019, 14:21
Увы, вы ничего не поняли из того, что я объяснял. Я и не говорил про метки перехода, я говорил, что часть алгоритма (часть операторов) мы пропускаем на определенных операторах при определенных условиях, а фактически переходим в иную точку программы, или строку. Может по рисунку будет понятней. На операторе условия в полной форме может возникнуть одна из двух ситуаций, представленная на картинки.
Миниатюры
Зачем нужны блок-схемы?  
0
 Аватар для Kuzia domovenok
4268 / 3328 / 926
Регистрация: 25.03.2012
Сообщений: 12,545
Записей в блоге: 1
02.05.2019, 16:34
Цитата Сообщение от tvitaly1 Посмотреть сообщение
Так что не надо ля-ля о том, что переходов(стрелочек переходов и т.п.) в современной программе нет.
Ключевое слово в структурном стиле
в современной программе нет бызымянных недокументированных переходов вникуда на метку в клиническом случае вне пределов одного блока текста.
GOTO нарушает все какие только возможно заповеди хорошего структурного программирования и без блок-схемы в программах с ними действительно невозможно разобраться.
И напротив, красиво вложенные друг в друга блоки циклов и условий, с отступами, не слишком большой величины - просто лишают блок-схемы всякого смысла. Ты и так от одного взгляда на код будешь видеть все эти "БЛОКИ" у себя в голове.
0
Модератор
Эксперт функциональных языков программирования
3141 / 2289 / 469
Регистрация: 26.03.2015
Сообщений: 8,912
03.05.2019, 12:17
Цитата Сообщение от tvitaly1 Посмотреть сообщение
Я и не говорил про метки перехода, я говорил, что часть алгоритма (часть операторов) мы пропускаем
Зачем же тогда цитировали про метки перехода? Вам надо было цитировать вот это:
Цитата Сообщение от Kuzia domovenok Посмотреть сообщение
Один вход - один выход, все вложенные условия и циклы написаны через отступ, ни одной метки перехода и.т.д. Зачем же нам рисовать стрелочки поверх кода?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
03.05.2019, 12:17

Нужны различные блок-схемы, функциональные схемы жестких дисков и их работы.
Срочно нужны различные блок-схемы, функциональные схемы жестких дисков и их работы. Заранее большое спасибо!

блок схемы нужны))
привет помощь мне требуется)) нужно блок схемы на две задачки: №1 Данны два символьных массива. В массиве,который содержит наибольшее...

Нужны блок-схемы
Здраствуйте. Нужны блок-схемы. Так как у меня нет возможности их сделать(отсуствует MS Visio). Зарание благодарен. Задание 1: ...

Нужны блок-схемы
Приветствую. нужны помощь построении блок схем.... program z2; var s:string; i,n,m:integer; a: string; begin ...

Нужны блок схемы
Нужны блок схемы: расширенного алгоритма евклида, теста миллера-рабина, бинарного возведения в степерь. Спасибо за помощь!


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

Или воспользуйтесь поиском по форуму:
40
Ответ Создать тему
Новые блоги и статьи
Программа опроса у.з. расходомера SLS-720F
Argus19 02.09.2026
Программа опроса у. з. расходомера SLS-720F Программа опрашивает один раз в минуту три ультразвуковых расходомера SLS-720F через интерфейс RS-485 по протоколу Modbus RTU. Опрашиваются регистры. . .
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 ВВЕДЕНИЕ Ранее, при реализации проектов основное внимание уделял разработке управляющей программы для контроллера, а панели оператора доставалось время. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru