Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Зачем нужны блок-схемы? 
:(
    Опции темы
 
Зачем нужны блок-схемы?
Для объяснения алгоритма программы заказчику [ 13 ]  [19.70%]
Схема выполняется перед написанием псевдо-кода и программного кода [ 17 ]  [25.76%]
Для сдачи зачетов в универе [ 36 ]  [54.55%]
Всего проголосовавших: 47
В этом опросе возможны множественные ответы
Гости не могут голосовать 
Mastodont
Дата 20.1.2010, 15:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 347
Регистрация: 18.3.2007

Репутация: нет
Всего: 1



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

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

Какое ваше мнение?
PM MAIL   Вверх
kemiisto
Дата 20.1.2010, 15:51 (ссылка)  | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Дикий Кот. =^.^=
****
Награды: 1



Профиль
Группа: Участник Клуба
Сообщений: 3292
Регистрация: 29.7.2007

Репутация: нет
Всего: 160



Блок-схемы - пережиток прошлого, доструктурной эпохи. Исходный код программы, записанный на любом (почти smile) языке высокого уровня куда более нагляден. smile 

Так что только:
Цитата
Для сдачи зачетов в универе





--------------------
PM MAIL WWW GTalk Jabber   Вверх
_Y_
Дата 20.1.2010, 20:13 (ссылка) |  (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1651
Регистрация: 27.11.2006

Репутация: 8
Всего: 34



Цитата(kemiisto @ 20.1.2010,  15:51)
код программы...куда более нагляден

Гы! насмешил smile  И самые наглядные коды - коды графических языков, т.е. коды, представляющие собой блок-схемы smile 


--------------------
Я вот в этом поучаствовал: http://sbor-nik.appspot.com/kick.jsp?id=sbor5737960678883328 (на правах саморекламы:)
PM MAIL WWW   Вверх
FraiDex
Дата 20.1.2010, 21:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 12
Регистрация: 4.3.2008

Репутация: нет
Всего: нет



Если разобраться в блок-схеме, становиться понятен общий принцип работы программы, не зависимо от того на каком она языке написана. сейчас используются в основном в учебных целях.
Существует язык, который в принципе и основан на блок-схемах. Называется ДРАКОН. Если кто заинтересуется, у мя есть учебник...
PM MAIL WWW ICQ   Вверх
Pavia
Дата 20.1.2010, 22:31 (ссылка) |    (голосов:3) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 418
Регистрация: 6.12.2008

Репутация: 11
Всего: 12



Блок схемы нужны для наглядности.  Нужны для объяснения структуры крупной программы при этом на них выделяют главные интерфейсы и блоки. 

Если использовать UML или Блок схемы согласно Госту то пользы от них никакой.  Так как с таким же успехом используется представление на языке программирования, а если учесть что у языков программирования больше выразительных средств. Такие средства это классы и шаблоны, регулярные выражения. 


Цитата(Mastodont @  20.1.2010,  15:38 Найти цитируемый пост)
А по-моему, блок-схема - это первый шаг на пути разработки программы, помогающий получить начальное представление о том, какой будет программа.
 Нет. Начальное представление, а вернее парадигма  программирования выбирается волевым усилием начальства(главным архитектором). А вот что-бы объяснить взаимодействие и рисуется схема.  Но все начальное прорабатывается мысленно. Хотя не столько прорабатывается сколько выбирается случайным образом.

Цитата(Mastodont @  20.1.2010,  15:38 Найти цитируемый пост)
Далее схема уточняется написанием псевдо-кода, по которому уже пишется программный код.

Так тем более не делают лишняя трата времени. 

Это сообщение отредактировал(а) Pavia - 20.1.2010, 22:56
PM MAIL   Вверх
~FoX~
Дата 21.1.2010, 10:25 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


НЕ рыжий!!!
****


Профиль
Группа: Участник Клуба
Сообщений: 2819
Регистрация: 8.10.2003
Где: Зеленоград

Репутация: 2
Всего: 68



Цитата

Для объяснения алгоритма программы заказчику

Заказчику, за частую, в лучшем случае либо откровенно наплевать на квадратики и стрелочки, в худшем он тупой и просто не поймет что к чему... Возможности не исключают друг друга )))))
Цитата

Схема выполняется перед написанием псевдо-кода и программного кода

Откровенно говоря мне совершенно не удобно писать код/псевдокод по блоксхеме, особенно если схема не маленькая, то скорее в ней запутаешься, чем непосредственно в коде...
Цитата

Для сдачи зачетов в универе

Если мне не изменяет память лицензирование ПО и ЕСПД требуют наличия блоксхемы главного алгоритма...


--------------------
user posted image
…множественность никогда не следует полагать без необходимости…
PM MAIL WWW ICQ Jabber   Вверх
SoWa
Дата 21.1.2010, 10:57 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Харекришна
****


Профиль
Группа: Комодератор
Сообщений: 2422
Регистрация: 18.10.2004

Репутация: 6
Всего: 74



Цитата
Для объяснения алгоритма программы заказчику

Аха, так он и поймет, если Вы в блок-схеме пару тысяч строк кода нарисуете...  smile 

Вместо того, чтобы возюкаться с квадратиками и стрелочками я сперва черкаю на доске поверхностную схему пробежки данных туда-сюда(так уж повелось, клиент-серверные приложения делаю), а потом уже по надобности дописываю какие-то важные моменты, которые надо реализовать завтра, потому что сегодня оказывается уже 10 вечера и пора бы пойти домой smile

Поэтому- только для сдачи зачетов в универе.

ИМХО. Пинайте меня в зубы, всего вон два осталось  smile 


--------------------
Всем добра smile
PM MAIL ICQ   Вверх
Mastodont
Дата 21.1.2010, 11:30 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 347
Регистрация: 18.3.2007

Репутация: нет
Всего: 1



Цитата

потому что сегодня оказывается уже 10 вечера

Это где ты столько работаешь?  smile 
PM MAIL   Вверх
SoWa
Дата 21.1.2010, 11:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Харекришна
****


Профиль
Группа: Комодератор
Сообщений: 2422
Регистрация: 18.10.2004

Репутация: 6
Всего: 74



Цитата(Mastodont @  21.1.2010,  11:30 Найти цитируемый пост)
Это где ты столько работаешь?   

Там, где мне очень нравится smile
А до дома идти всего минут семь, поэтому позволяю иногда себе такое счастье- посидеть и поработать smile
Офтоп, в общем.
По блок-схемам есть еще мысли? )


--------------------
Всем добра smile
PM MAIL ICQ   Вверх
Фантом
Дата 21.1.2010, 22:11 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Вы это прекратите!
***


Профиль
Группа: Участник Клуба
Сообщений: 1516
Регистрация: 23.3.2008

Репутация: 2
Всего: 49



Вариант №3, но с поправкой - для сдачи зачетов в плохом универе.
PM   Вверх
GoldFinch
Дата 22.1.2010, 13:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата



****


Профиль
Группа: Завсегдатай
Сообщений: 2141
Регистрация: 30.11.2008

Репутация: нет
Всего: 26



в любом случае, двумерное представление алгоритма нагляднее чем одномерное представление
кто реверсил большие функции в IDA - тот знает)
PM MAIL ICQ   Вверх
Фантом
Дата 22.1.2010, 14:51 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Вы это прекратите!
***


Профиль
Группа: Участник Клуба
Сообщений: 1516
Регистрация: 23.3.2008

Репутация: 2
Всего: 49



Цитата(GoldFinch @  22.1.2010,  13:58 Найти цитируемый пост)
в любом случае, двумерное представление алгоритма нагляднее чем одномерное представление

Во-первых, это. 

Во-вторых, далеко не всегда написание программы - это запись алгоритма решения. Не всякий язык программирования является императивным.  smile 
PM   Вверх
_Y_
Дата 23.1.2010, 12:04 (ссылка) |   (голосов:3) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1651
Регистрация: 27.11.2006

Репутация: 8
Всего: 34



Прямо даже и не знаю. Ваши аргументы против блоксхем показывают что вы либо гении, либо просто не умеете пользоваться тем, чему в универе учили. Извините, но 
Цитата
в блок-схеме пару тысяч строк
 указывает именно на это. А потом в теме "Aлгоритмы" возникают посты типа "Дайте, пожалуйста, пример на C++, Java, или-еще-каком-конкретном-языке-известном-именно-вопрошающему".

Код это не алгоритм, это програмный продукт, алгоритм использующий. Алгоритм же это последовательность ключевых действий, записанная в виде обычного текста или (что гораздо лучше) в виде схемы. Вот пример чтения текстового файла в список текстовых переменных. Пример на Java, но это не важно:
Код

ArrayList<String> dataArray = new ArrayList<String>();
try {
    BufferedReader in = new BufferedReader(new FileReader("c:/path1/path2/infilename.txt"));
    String str;
    while ((str = in.readLine()) != null) {
        dataArray .add(str);
    }
    in.close();
} catch (IOException e) {
}

Здесь куча информации, к алгоритму отношения не имеющей: это и декларирование списка dataArray  и служебной переменной str, и путь к файлу, и способ чтения именно с помощью FileReader и BufferedReader, и способ выхода из цикла, и метод обработки ошибок. В общем, куча общеизвестных операций, затрудняющих восприятие. Алгоритм же должен сообщать только Ввести данные или Прочитать файл в dataArray - не больше. Максимум что нужно на схеме:
Код

  ----------
 /  файл ->  \
 \ dataArray /
  -----------

Это совсем другой уровень абстракции. Грамотно представленный алгоритм позволяет увидеть именно алгоритм, а не все и вся. 

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

Имеется, кстати, незаслуженно пнутый в этой ветке, язык UML. В нем куча вариантов схематических представлений. Ни один человек, видимо, не пользуется всеми. Каждый пользуется только парой-тройкой, но выбор этой пары-тройки разнится. Мы, например, широко пользуемся диаграммами классов. Нужны они для того, чтобы делить задания внутри команды разработчиков, а потом без проблем собирать код воедино. Наши менеджеры используют диаграммы взаимодействий - для работы с клиентами. Ну и т.д. Но это ОФФ поскольку обсуждаем именно блок-схемы.



--------------------
Я вот в этом поучаствовал: http://sbor-nik.appspot.com/kick.jsp?id=sbor5737960678883328 (на правах саморекламы:)
PM MAIL WWW   Вверх
Фантом
Дата 23.1.2010, 15:02 (ссылка) |    (голосов:3) Загрузка ... Загрузка ... Быстрая цитата Цитата


Вы это прекратите!
***


Профиль
Группа: Участник Клуба
Сообщений: 1516
Регистрация: 23.3.2008

Репутация: 2
Всего: 49



Цитата(_Y_ @  23.1.2010,  12:04 Найти цитируемый пост)

Это совсем другой уровень абстракции. Грамотно представленный алгоритм позволяет увидеть именно алгоритм, а не все и вся. 

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

Конечно, во многих случаях при обсуждении алгоритмов рисуется что-то, отдаленно напоминающее блок-схему. Но при этом 99% рисующих используют это только для очень простых случаев, к тому же не соблюдая правила оформления. Попытки же использовать блок-схемы всерьез, как правило, приводят к тому, что большая часть усилий тратится на красивое рисование, а не на обдумывание смысла рисуемого.
PM   Вверх
ruX
Дата 23.1.2010, 16:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 203
Регистрация: 8.9.2006
Где: г.Гатчина

Репутация: нет
Всего: 3



По моему только блок схемы - действительно пережитки прошлого, в универе заставляют рисовать. Причём кто рисовал в университете, тот знает, что нужно обозначать буквально каждую строчку кода в квадратик. От такого "кода" никакой наглядности. Уходит время и в конце концов запутываешься. Эти гиганские схемы вряд ли чему научат - сколько раз я видел ситуацию, когда человек при мне за считаные минуты рисовал что то внятное, а переложить на язык не мог. Не только потому что плохо владеет языком, а из за того что мало чего-то реального в этом.
Уж не говоря о том, что невозможно отразить некоторые вещи, как уже упомянули например шаблоны. А если и получиться - опять же километровые связи между фигурами, смотря на которые врядли поймёшь сразу что имелось ввиду.

НО
Рисовать условные схемы(а не программный код) - это совсем другое. Например связи между компонентами, их зависимостями. Также просто идеально чтоб скомпоновать мысли на коленке(грубо - прямоугольники со стрелочками). В таком формате удобно с коллегами обсуждать опять же общий вид какой либо проблеммы.

Я никогда не рисовал код фигурами и не знал как,  пока не заставили в универе. Но от этого я ничуть не чувствую себя ущемлённым - на оборот. Часто говорят, что блоксхемы устанавливают алгоритмическое мышление - имхо бред, оглядываясь на других.

+ добавление например пары условий приводит к сильному изменению внешнего вида блок-схемы. Код же при этом остаётся такой же читаемый
--------------------
Случайность - внезапно наступившая неизбежность.
PM MAIL WWW ICQ   Вверх
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Алгоритмы"

maxim1000

Форум "Алгоритмы" предназначен для обсуждения вопросов, связанных только с алгоритмами и структурами данных, без привязки к конкретному языку программирования и/или программному продукту.


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, maxim1000.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Алгоритмы | Следующая тема »


 




[ Время генерации скрипта: 0.1356 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.