Форум программистов, компьютерный форум, киберфорум
Алгоритмы
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск  
Результаты опроса: Зачем нужны блок-схемы?
Для объяснения алгоритма программы заказчику 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. Показов 37167. Ответов 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
21281 / 8305 / 637
Регистрация: 30.03.2009
Сообщений: 22,660
Записей в блоге: 30
22.09.2016, 14:10
Для станка блок-схема будет выглядеть несколько иначе - она в более крупную клетку, чем блок-схемы, о которых идёт речь в данной теме. К тому же для нормального понимания блок-схемы любого вида абсолютно побоку, квадратом, обозначен элемент схемы, овалом, треугольником или чем-то ещё. В то время как в блок-схемах из данной темы, насколько я знаю, есть строгие требования о том, какой элемент какой фигурой надо рисовать
0
Модератор
Эксперт функциональных языков программирования
3138 / 2286 / 469
Регистрация: 26.03.2015
Сообщений: 8,898
22.09.2016, 16:22
Цитата Сообщение от SmittWesson Посмотреть сообщение
Попробуйте без блок-схемы создать алгоритм работы вот этого станка.
Не вижу никаких проблем.
И не вижу большой разницы, в каком виде записан алгоритм работы.
0
Evg
Эксперт CАвтор FAQ
 Аватар для Evg
21281 / 8305 / 637
Регистрация: 30.03.2009
Сообщений: 22,660
Записей в блоге: 30
22.09.2016, 19:17
Разница есть в том, насколько быстро и по простому читатель поймёт принцип работы. Можно вообще на китайском языке написать (иероглифами), принципиальной разницы нет, но понимать это будет намного сложнее (больше времени уйдёт на вникание)
0
Модератор
Эксперт функциональных языков программирования
3138 / 2286 / 469
Регистрация: 26.03.2015
Сообщений: 8,898
22.09.2016, 19:52
Поэтому внешний вид должен зависеть от решаемой задачи, а не сводиться к стандартному языку блок-схем. Для каких-то задач это может быть таблица, для каких-то простой список действий/требований по пунктам, а для каких-то, может быть, и схема со стрелочками.
0
Evg
Эксперт CАвтор FAQ
 Аватар для Evg
21281 / 8305 / 637
Регистрация: 30.03.2009
Сообщений: 22,660
Записей в блоге: 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 / 3327 / 926
Регистрация: 25.03.2012
Сообщений: 12,538
Записей в блоге: 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
Модератор
Эксперт функциональных языков программирования
3138 / 2286 / 469
Регистрация: 26.03.2015
Сообщений: 8,898
02.05.2019, 13:37
Цитата Сообщение от tvitaly1 Посмотреть сообщение
Так что не надо ля-ля о том, что переходов(стрелочек переходов и т.п.) в современной программе нет.
Вы цитируете "ни одной метки перехода", а отвечаете на придуманное Вами же "ни одного перехода".
0
82 / 5 / 2
Регистрация: 29.04.2015
Сообщений: 136
02.05.2019, 14:21
Увы, вы ничего не поняли из того, что я объяснял. Я и не говорил про метки перехода, я говорил, что часть алгоритма (часть операторов) мы пропускаем на определенных операторах при определенных условиях, а фактически переходим в иную точку программы, или строку. Может по рисунку будет понятней. На операторе условия в полной форме может возникнуть одна из двух ситуаций, представленная на картинки.
Миниатюры
Зачем нужны блок-схемы?  
0
 Аватар для Kuzia domovenok
4268 / 3327 / 926
Регистрация: 25.03.2012
Сообщений: 12,538
Записей в блоге: 1
02.05.2019, 16:34
Цитата Сообщение от tvitaly1 Посмотреть сообщение
Так что не надо ля-ля о том, что переходов(стрелочек переходов и т.п.) в современной программе нет.
Ключевое слово в структурном стиле
в современной программе нет бызымянных недокументированных переходов вникуда на метку в клиническом случае вне пределов одного блока текста.
GOTO нарушает все какие только возможно заповеди хорошего структурного программирования и без блок-схемы в программах с ними действительно невозможно разобраться.
И напротив, красиво вложенные друг в друга блоки циклов и условий, с отступами, не слишком большой величины - просто лишают блок-схемы всякого смысла. Ты и так от одного взгляда на код будешь видеть все эти "БЛОКИ" у себя в голове.
0
Модератор
Эксперт функциональных языков программирования
3138 / 2286 / 469
Регистрация: 26.03.2015
Сообщений: 8,898
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
Ответ Создать тему
Новые блоги и статьи
Алиса нашла кучу ошибок компиляции и запуска в проекте, который без проблем компилировался и запускался)))
anaschu 30.06.2026
Я пока посмеюся, но завтра проверю. А вообще интерсно. Дал алисе файл, в котором точно нет ошибок компиляции и запуска, и попросил их найти. Нашла кучу))) Критические ошибки, мешающие компиляции и. . .
сукцессия 16. Общий обзор, в основном что бы другие ии поняли
anaschu 29.06.2026
# Передаточный документ: модель микоризной сукцессии (для нового чата) Этот документ предназначен для того, чтобы новый чат Claude мог продолжить работу без необходимости заново разбираться в. . .
сукцессия 15 неявная схема
anaschu 29.06.2026
Алиса Калибровка параметров симбиотической модели: технический обзор Содержание: Введение Постановка проблемы Технические аспекты реализации Процесс внедрения изменений
сукцессия 14. Обновленная схема модели
anaschu 28.06.2026
ГЛОБАЛЬНАЯ ОПИСАТЕЛЬНАЯ СПЕЦИФИКАЦИЯ ЭКОСИСТЕМНОЙ МОДЕЛИ «SOIL CHEMISTRY & MYCORRHIZA 2. 0» https:/ / ibb. co/ NnkGpfMd Представленная интегрированная схема описывает непрерывную нелинейную. . .
сукцессия 13. Питон модель трехзонного мицелия, пока что в основном арбускулярного
anaschu 28.06.2026
## Разработка агентной модели микоризной сукцессии: от выявления артефактов к созданию комплексной системы ### Аннотация Представлено исследование по разработке агентной модели микоризной. . .
сукцессия 12. краткий список проверок модели перед запуском.
anaschu 27.06.2026
Скрытые отказы в моделях систем динамики (SD-models) экологических систем: два случая из практики Контекст Разбирался прототип модели систем динамики (SD-модели) микоризной сукцессии: пять. . .
Сукцессия 11. Проверка орудий перед войной: разработка через тестирование
anaschu 27.06.2026
Как не дать модели соврать самой себе: проверки для симуляции микоризной сукцессии Введение Когда вы строите математическую модель живой системы — грибов, растений, почвы — главная опасность. . .
10 сукцессия. Питон код войны грибов и растений
anaschu 27.06.2026
import numpy as np class PlantAgent: def __init__(self, name, strategy, initial_biomass): self. name = name self. strategy = strategy # "greedy" (широколиственные) или. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru