![]() |
Модераторы: LSD |
![]() ![]() ![]() |
|
||
|
Nastya |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 1287 Регистрация: 27.3.2002 Где: Мариуполь |
Нужно ли людям, начинающим изучать программирование изучать блок-схемы?
-------------------- Что бы понять рекурсию, надо понять рекурсию "Профессионал - это человек сделавший все возможные ошибки в очень узкой области". Н.Бор |
|||
|
||||
TwoK |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 259 Регистрация: 25.3.2002 |
Начинающим, я думаю, - да. Чтобы алгоритм был нагляден.
Людям, которые уже три года программируют - нет. [По мотивам обучения на четвертом курсе] ![]() -------------------- Говорят, что население в стране все меньше и меньше. А народу по утрам в метро почему-то все больше и больше... |
|||
|
||||
Alex101 |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 891 Регистрация: 8.4.2002 Где: Москва |
Думаю, они только усложнят переход на настоящий язык программирования. Лучше объяснять алгоритмы на каком-нибудь формальном языке, приближенном к реальному... -------------------- С уважением, А. Фролов. |
|||
|
||||
Chingachguk |
|
|||
Эксперт ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1232 Регистрация: 25.3.2002 Где: Москва |
Нет, ибо существуют алгоритмы, которые не выразить в блок-схемах. Например, события по прерываниям. -------------------- I don't like the drugs (but the drugs like me). M.Manson. |
|||
|
||||
Wowa |
|
|||
Эксперт ![]() Профиль Группа: Админ Сообщений: 15017 Регистрация: 14.9.2000 Где: Винград |
Самым начинающим - нужны. Но только не надо на них долго останавливаться.
Их просто надо изучуть и составить с ними несколько программ. Не более. |
|||
|
||||
podval |
|
||||||
![]() Где я? Кто я? ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 3094 Регистрация: 25.3.2002 Где: СПб |
Как бы не так! С точки зрения программера-одиночки оно, конечно, может быть и так. Но у ГОСТа другое мнение ![]() Т.н. "блок-схемы" (название не стандартизированное, в ГОСТе называется по-другому) являются неотъемлемой частью программной документации, поясняющей работу программы/программного комплекса. Блок-схемы обязаны присутствовать в пояснительной записке к проекту (см. ГОСТ 19-й серии - единая система программной документации).
Такое впечатление создается, потому что в школе и вузах учат рисовать только один тип "блок-схем". На самом деле их множество. Ссылаюсь на ту же серию ГОСТ. Там найдете, что бывают схемы данных, схемы взаимодействия программ и т.д. Эх, господа программирующие 3 года и более! ![]() ![]() |
||||||
|
|||||||
Vit |
|
|||
![]() Vitaly Nevzorov ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 10964 Регистрация: 25.3.2002 Где: Chicago |
Нет я категорически не согласен, что опытным программистам они не нужны. В них нет необходимости если ты пишешь пасьянс или Notapad, а если разрабатывается серьезный проект включающий в себя десяток серверов, десяток баз данных, сотню разных exe, тысячи объектов и т.п. и разрабатывать это должен коллектив из десятка (сотни) программистов, то без блок-схемы всего проекта и каждой части через неделю после начала разработки будет полный хаос - половина программистов будет делать не то что надо, 90% модулей будет иметь несопоставимые интерфейсы, 50% состыкованных модулей будут иметь противоречивую лолгику работы и т.д. Через несколько месяцев разработки 95% времени програмистов будет тратится на согласование действий, логики, интерфейсов, а не на программирование. Я не знаю как в России, но в США 95% проектов именно такого свойства, и перед тем как написать первую строчку кода зачастую тратится 2-3 месяца на написание блок схемы всего проекта и каждого модуля, описание интерфейсов всех классов, описание что должен делать каждый метод и процедура и их внутренняя логика, после этого от программистов требуется только следовать документации - это позволяет легко распределить работу между любым колличеством программистов и на несколько порядков уменьшает вероятность появления несогласованности в работе разных модулей. А тестеры такого проекта смогут быстро локализовать модуль, в котором есть ошибка.
-------------------- With the best wishes, Vit I have done so much with so little for so long that I am now qualified to do anything with nothing Самый большой Delphi FAQ на русском языке здесь: www.drkb.ru |
|||
|
||||
TwoK |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 259 Регистрация: 25.3.2002 |
Как вы все меня не так поняли
![]() Я имел в виду именно то, что после трех лет обучения С нам буквально начинали заново вдалбливать блок-схемы. Не требовать их рисовать. Не требовать прилагать их к программе на С - это все понятно, это действительно надо. Ровно 2 семестра мы, с позволения сказать, дружили с ларьком, потому что не могли это слушать. Нам снова и снова рассказывали, как пишется "начало" или почему нельзя написать i++ и так далее. ЕЩЕ РАЗ. ТО ЖЕ САМОЕ. Понимаете, это именно "дыра" в схеме образования или в программе образования или в чем там еще. Когда по второму разу начинают рассказывать то же самое. В общем, обобщив все что я тут написал: не нужно рассказывать, что такое блок-схема человеку, который уже умеет писать программы. Ибо он через это уже прошел. -------------------- Говорят, что население в стране все меньше и меньше. А народу по утрам в метро почему-то все больше и больше... |
|||
|
||||
Vit |
|
|||
![]() Vitaly Nevzorov ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 10964 Регистрация: 25.3.2002 Где: Chicago |
Это точно, судя по эмоциональному накалу, тебя ими здорово достали! Но в общем схемы то на то и схемы, что изучить их легко и просто не могу представить что там можно учить дольше 1-2 часов... -------------------- With the best wishes, Vit I have done so much with so little for so long that I am now qualified to do anything with nothing Самый большой Delphi FAQ на русском языке здесь: www.drkb.ru |
|||
|
||||
Fantasist |
|
|||
![]() Лентяй ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1517 Регистрация: 24.3.2002 |
Так, господа, а что UML никто не пользуется?
Правильно Vit сказал, в больших проектах, да еще и со множеством участников без выразительного плана проекта будет очень много кусочков у которых непонятно откуда растет голова. -------------------- Волны гасят ветер... |
|||
|
||||
Vit |
|
|||
![]() Vitaly Nevzorov ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 10964 Регистрация: 25.3.2002 Где: Chicago |
Пользуются, правда в основном серьёзные дяди с зарплатой в $150-$200 тыс. год... А мы так, на уровне пользователей... ![]() ![]() ![]() ![]() ![]() -------------------- With the best wishes, Vit I have done so much with so little for so long that I am now qualified to do anything with nothing Самый большой Delphi FAQ на русском языке здесь: www.drkb.ru |
|||
|
||||
podval |
|
|||
![]() Где я? Кто я? ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 3094 Регистрация: 25.3.2002 Где: СПб |
Вряд ли обычные программеры ("кодировщики", как их называют некоторые боссы) пользуются UML. Если и пользуются, то это, скроее, исключение из правила. Это совсем другой уровень, это разработка идеологии всей системы. И занимаются этим т.н. проект-менеджеры (Project Manager) или как минимум руководители групп пограммистов (Team Leader) или, не знаю как назвать, системные аналитики, что ли. Или, по крайней мере, должны заниматься. У нас на фирме пока только говорят о том, как мы хорошо можем жить, если использовать UML. Хотя, если мне не изменяет мой склероз, ISO рекомендует это делать.
|
|||
|
||||
TwoK |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 259 Регистрация: 25.3.2002 |
Хотел тут написать... и даже написал... но потом подумал, что лучше промолчу.
ЗЫ. Это по поводу "мы на уровне пользователей" ![]() -------------------- Говорят, что население в стране все меньше и меньше. А народу по утрам в метро почему-то все больше и больше... |
|||
|
||||
Devos |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 294 Регистрация: 28.7.2002 Где: Владимир |
а что такое блок-схемы?
-------------------- Не надо спорить о достоинствах, а нужно всё достойно сочитать =) |
|||
|
||||
Vit |
|
|||
![]() Vitaly Nevzorov ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 10964 Регистрация: 25.3.2002 Где: Chicago |
Не совсем они, скорее Software Architect Engeneers, System Analysts, Software Engineering Managers потому что Project Manager отвечает за весь проект в целом, т.е. большую часть его времени занимает администрирование, а Team Leader - это просто главный программист проекта, во многих случаях он со своей командой начинает работать когда архитектура и дизайн проекта уже разработаны полностью. Здесь можно посмотреть описание должностей в США: http://swz-yahoo.salary.com/salaryw....0000071 -------------------- With the best wishes, Vit I have done so much with so little for so long that I am now qualified to do anything with nothing Самый большой Delphi FAQ на русском языке здесь: www.drkb.ru |
|||
|
||||
podval |
|
|||
![]() Где я? Кто я? ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 3094 Регистрация: 25.3.2002 Где: СПб |
А таких у нас и в помине нет ![]() А может и ![]() Системные аналитики (System Analysts) встречались. А Team Leader' ов у нас заставляют работать на UML, именно архитектуру системы придумывать. |
|||
|
||||
podval |
|
|||
![]() Где я? Кто я? ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 3094 Регистрация: 25.3.2002 Где: СПб |
Это схемы, "...используемые для отображения различных видов задач обработки данных и средств их решения". (см. ЕСПД ГОСТ 19.701-90). В интерпретации автора темы имеются в виду, скорее всего, схемы алгоритмов. А вообще различают схемы данных, схемы программ, схемы работы системы, схемы взаимодействия программ, схемы ресурсов системы. Это если опираться на тот же ГОСТ. Вообще полезно иногда заглядывать в ГОСТ http://www.nist.ru/hr/doc/gost/gost19.htm |
|||
|
||||
Vex |
|
|||
![]() кацапосрачмученiкъ ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 3103 Регистрация: 28.3.2002 Где: strawberry fields |
Меня тоже эти блок-схемы так достали !!! В школе одно и тоже, каждый алгоритм заставляли выражать блок-схемами, мне намного проще код написать, а учитель знал это и специально меня заставлял рисовать эти схемы, от зараза. Поступил в универ, а на первой паре по информатике опять те-же мои любимые схемы. Так что меня тоже достали повторением и повторением блок-схем. Интерестная особенность: когда кто-то из преподов (в школе, универе и т.д) пытается объяснить блок-схемы, то фантазия у них не доходит дальше чем до квадратного уравнения, абсолютно все рисовали схему алг. кв. уравнения.
![]() -------------------- Слава Україні. |
|||
|
||||
Devos |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 294 Регистрация: 28.7.2002 Где: Владимир |
значит это меня тоже ждет...........
а кто линку знает по блок-схемам? -------------------- Не надо спорить о достоинствах, а нужно всё достойно сочитать =) |
|||
|
||||
Devos |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 294 Регистрация: 28.7.2002 Где: Владимир |
кроме гостов, конечно......
-------------------- Не надо спорить о достоинствах, а нужно всё достойно сочитать =) |
|||
|
||||
simanyay |
|
|||
![]() Антон Ковалёв ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 2053 Регистрация: 22.8.2002 |
Хотел бы спросить у крутых программеров с 3 летнем стажем на уровне пользователей, смогли бы они написать ОС без точного анализа и рисования блок-схем? Да и ещё - можно долго мучаться пытаясь найти алгоритм (самый оптимальный и краткий) для нахождения кратчайшего пути авиа перелётов (А такие проги стоят немало), а можно использовать алгоритм Дейкстры и ему подобные.
Короче, если собрался серьёзно заниматься программированием (Поясняю: написание Hello World'а не является серьёзным программированием ![]() -------------------- «It's better to be a pirate than to join the Navy» — Steve Jobs. |
|||
|
||||
Chingachguk |
|
|||
Эксперт ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1232 Регистрация: 25.3.2002 Где: Москва |
Почему ты так считаешь ? Ты сам писал ОСь или какой-нибудь крупный проект и при этом выяснилось, что без блок-схем - никак ? -------------------- I don't like the drugs (but the drugs like me). M.Manson. |
|||
|
||||
simanyay |
|
|||
![]() Антон Ковалёв ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 2053 Регистрация: 22.8.2002 |
Я не писал, я ещё учусь, но мой близкий друг (программер с 8 летним стажем) писал оболочку под Юникс для расчитывания кратчайших путей авиа перелётов из Ташкента и наоборот (Для сдешнеё авиа компании) Так вот после двух месяцев "кодинга" (когда абсолютно ничего не получилось) они сели и за полтора месяца нарисовали полную блок схему, для каждого модуля. Здесь то как раз и нашлись почти все их ошибки. После этого всё пошло как по маслу и программа была написана.(Хотя её хотели уже передать другой группе) Так, что уменя есть некий жизненный опыт, чтобы утверждать правильность блок-схем.
-------------------- «It's better to be a pirate than to join the Navy» — Steve Jobs. |
|||
|
||||
simanyay |
|
|||
![]() Антон Ковалёв ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 2053 Регистрация: 22.8.2002 |
Извините за ошибку (не "сдешнеё"
![]() ![]() -------------------- «It's better to be a pirate than to join the Navy» — Steve Jobs. |
|||
|
||||
Chingachguk |
|
|||
Эксперт ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1232 Регистрация: 25.3.2002 Где: Москва |
Ну, может ты и прав... Хотя могло быть и просто написание документации (а это не блок-схемы)...что приводит к рассеиванию тумана в голове...
ЗЫ: не "сде", а "зде" ;) -------------------- I don't like the drugs (but the drugs like me). M.Manson. |
|||
|
||||
Kesh |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Эксперт Сообщений: 2488 Регистрация: 31.7.2002 Где: Германия, Saarbrü cken |
Ну, блин, не знаю я кто крутой программер, а кто нет... Но лично я перед тем как сесть за компьютер задачку обязательно рисую... не составляю блок схему, а именно рисую... Вот такая дурная привычка... :0)
-------------------- ![]() |
|||
|
||||
Vit |
|
|||
![]() Vitaly Nevzorov ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 10964 Регистрация: 25.3.2002 Где: Chicago |
Я тоже довольно часто, но иногда мне лень, начинаю писать без блок схемы, а потом себя очень грязно ругаю - примерно так через неделю другую, когда количество процедур, модулей и классов переваливает за вторую сотню.... -------------------- With the best wishes, Vit I have done so much with so little for so long that I am now qualified to do anything with nothing Самый большой Delphi FAQ на русском языке здесь: www.drkb.ru |
|||
|
||||
Grey |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 91 Регистрация: 25.3.2002 |
Я уже ответил и повторю еще раз, по моему мнению блок-схемы не нужны. Но это совсем не значит что программу не нужно проектировать, это нужно делать обязательно. Просто мне UML больше нравится, вот и все. При чем иногда намного важнее отобразить связи между классами, чем их поведение, иногда наоборот.
|
|||
|
||||
cosmic |
|
|||
Новичок Профиль Группа: Участник Сообщений: 19 Регистрация: 28.9.2002 |
подскажите, UML - это программа "перевода" блок-схем в код?
|
|||
|
||||
Vex |
|
|||
![]() кацапосрачмученiкъ ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 3103 Регистрация: 28.3.2002 Где: strawberry fields |
UML - это язык, который предназначен для проектирования програмного обеспечения, позволяет спроектировать объекты, а также связи между ними. -------------------- Слава Україні. |
|||
|
||||
cosmic |
|
|||
Новичок Профиль Группа: Участник Сообщений: 19 Регистрация: 28.9.2002 |
а есть прграммы для перевода блок-схем в код?
|
|||
|
||||
Vit |
|
|||
![]() Vitaly Nevzorov ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 10964 Регистрация: 25.3.2002 Где: Chicago |
Есть - программист называется ![]() Вообще-то это сделать по-моему по определению нельзя, такие штуки пытались разработать - например тот же PowerBuilder, но они с треском развалились. Но есть программы переводящие схемы баз данных в реальные базы данных - ты рисуешь схему базы данных со всеми зависимостями, а потом нажимаешь кнопку и база данных строится автоматично - создаются таблицы, ключи, индексы... -------------------- With the best wishes, Vit I have done so much with so little for so long that I am now qualified to do anything with nothing Самый большой Delphi FAQ на русском языке здесь: www.drkb.ru |
|||
|
||||
cosmic |
|
|||
Новичок Профиль Группа: Участник Сообщений: 19 Регистрация: 28.9.2002 |
а каковы причины неуспеха? и почему это, "по определению нельзя"? очень интересно. казалось бы, совсем наоборот... такой замечательный "челендж"... ведь и блок-схема и язык служат для описания алгоритма (я вообще-то не очень хорошо с этой темой знаком), так почему из языка получается executable, а из блок-схемы один "треск"?
|
|||
|
||||
Vit |
|
|||
![]() Vitaly Nevzorov ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 10964 Регистрация: 25.3.2002 Где: Chicago |
Да потому что от чертежа до конкретной реализации очень и очень далеко. Конечно, если ты каждый if в схему вставишь и каждую переменную, тогда да, но обычно схема даёт некоторый уровень обстрагирования от реалий. Например я могу написать(с UML я не знаком, а квадратики писать в текстовом режиме геморройно, поэтому напишу просто по пунктам):
1) достаём данные из таблицы Х по критерию Y 2) на основе этих данных делаем репорт 3) репорт посылаем по факсу Для блок схемы этого достаточно - здесь никаких ветвлений, всё прямо. А конкретная реализация? Пункт первый - как коннектимся к базе?, а база локальная или нет? А выборка 10 записей или 10000? Пункт второй - делаем репорт чем? Пункт третий - посылаем по факсу как? В зависимости от конкретных обстоятельств реализация этого алгоритма может занять от часа до полугода работы. -------------------- With the best wishes, Vit I have done so much with so little for so long that I am now qualified to do anything with nothing Самый большой Delphi FAQ на русском языке здесь: www.drkb.ru |
|||
|
||||
neutrino |
|
|||
![]() Gothic soul ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 3041 Регистрация: 25.3.2002 Где: Верхняя Галилея, Кармиэль |
Здравствуйте.
Мое мнение по теме таково: для трудных задач, таких как транспортная задача (тут господин simanyay приводил пример), это нужно. Ну а для того, чтобы решить квадратное уравнение - нет. А про перевод в программный код, скажу, что это возможно для математических задач, т.к. в них нет надобности в каких-нибудь функциях типа установить_соединение(). Ну а тот пример, что Vit привел, конечно не реально перевести. -------------------- The truth comes from within ... Покойся с миром, Vit |
|||
|
||||
Wowa |
|
|||
Эксперт ![]() Профиль Группа: Админ Сообщений: 15017 Регистрация: 14.9.2000 Где: Винград |
А для простых задач тоже нужны. При решении любой задачи блок-схемы строятся в голове у человека, а при решении сложных задач в голове все держать трудно, поэтому и рисуют где-нибудь.
|
|||
|
||||
Grey |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 91 Регистрация: 25.3.2002 |
Подобные программы есть для UML, напримар та же RationalRose, но о качестве перевода сказать ничего не могу это надо посмотреть. |
|||
|
||||
simanyay |
|
|||
![]() Антон Ковалёв ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 2053 Регистрация: 22.8.2002 |
Я считаю, что для решения уравнения не нужно и программировать ведь, его так решить легче. А если используешь его в программе, то вероятно это не маленькая програмка, а хоть средняя. И в этом случае блок-схема нужна.
-------------------- «It's better to be a pirate than to join the Navy» — Steve Jobs. |
|||
|
||||
Grey |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 91 Регистрация: 25.3.2002 |
Есть уравнения которые можно решить только численными методами, то есть программно. Изначально программисты только этим и занимались. Решение уравнения это некий алгоритм вот его как раз и можно и нужно выразить блок-схемой или как-то еще. Вот ты приводил пример задачи нахождения оптимального пути. Это по сути задача линейного программирования и формулируется она грубо говоря одним уравнением. |
|||
|
||||
neutrino |
|
|||
![]() Gothic soul ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 3041 Регистрация: 25.3.2002 Где: Верхняя Галилея, Кармиэль |
Под "квадратным уравнением" я пытался выразить элементарную задачу, наверное это у меня не получилось. Конечно для решений некоторых уравнений нужно составлять блок схемы, а затем и программы. Уж весь этот симплекс то точно на бумаге, больше 10 условий по 10 переменных в каждом, без программы не решишь.
Кстати, я сейчас как раз занимаюсь написанием компонента для построения блок-схем на Delphi. -------------------- The truth comes from within ... Покойся с миром, Vit |
|||
|
||||
![]() ![]() ![]() |
Правила раздела «Флейм» | |
|
Добро пожаловать в «Флейм». В разделе не действуют многие правила:
Строго запрещено:
Напоминаем о существовании волшебной кнопочки "Репорт". Если вы увидели сообщение, несовместимое с жизнью, просьба подвести на нее курсор и клацнуть левой клавишей мышки. Тем самым вы сможете призвать злого, но жутко справедливого джина-модератора, который нашлет порчу на злостного нарушителя. Кстати - счётчик сообщений здесь не растёт. Глас Винграда:
Глас Философии:
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Sneg0k |
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | Флейм | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |