LINUX.ORG.RU
Ответ на: комментарий от gh0stwizard

> Если вы считаете, что гвозди удобнее забивать киянкой, вместо молотка - я вас поздравляю.

Да нет, это вы так считаете.

geekless ★★
()
Ответ на: комментарий от Terrens

>грамотно составленная БС всегда получается значительно компактнее и понятнее, чем исходник результата всего процесса разработки

ax^2 + bx + c = 0

x(1,2) = (-b +/- sqrt(D))/2a, если D >= 0;
нет вещественных корней, если D < 0;
где D = b^2-4ac

Жду грамотно составленной блок схемы:)


r ★★★★★
()
Ответ на: комментарий от ilias

>Вот именно. На бумаге вы вольны рисовать все, что вам заблагорассудится, лишь бы было понятно. А теперь попробуйте формализовать хотя бы половину ваших рисунков с подписями.

Зачем? Я не архитектор вселенских масштабов. Мне достаточно и БС. Все вопросы типизации в моем языке (Perl) решены и хорошо изучены. Если возникает сложность в чем хранить определенные данные в массиве или хэше, а может даже в наборе нулей и единиц, я всегда могу откинуться в кресле и подумать как мне будет удобно их описать, как манипулировать, наконец, в случае сомнения, посчитать сколько операций и какого вида придется выполнить, чтобы получить нужный результат. И выбрать подходящий тип.
И да, уже придуман UML, а также куча программ с помощью которых можно упростить себе жизнь в вопросах архитектуры программы.

gh0stwizard ★★★★★
()
Ответ на: комментарий от Manhunt

>Похоже, с незалежной смогут выслать только сало :D

При чем очень вкусное. Пиши адрес.

Однако Буран успешно слетал туда и назад.


Это потому чот там дракона не драконили.

r ★★★★★
()

Любителям блок-схем. Есть вот такой вот алгоритм, записываемый на ЯВУ Haskell:

hammings = 1 : unfoldr (\xss -> let x = minimum (map head xss) in Just (x, map (dropWhile (x==)) xss)) (map (\n -> map (n*) hammings) [2,3,5])
main = print (hammings !! 200)
Печатает 200-е число Хэмминга.

Очень хочу увидеть, как такой алгоритм может быть записан блок-схемой. Хотелось бы, чтобы: ключевые моменты были чётко видны, алгоритм был бы тот же, схема помещалась бы хотя бы на листе A4.

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

Miguel ★★★★★
()
Ответ на: комментарий от stevejobs

> обиделся?

Ты вместо того, чтобы предложить конкретную нотацию, продолжил хором с К.О. критиковать RUP. Какой смысл на это отвечать?

есть мега-нотация «как попало на доске маркером», с кружочками и стрелочками. Оно так же походит на UML, как и на что угодно еще =) Особенно круто рисовать так что-нибудь очень кривое, по своей сути противное строгим диаграммам классов.


Не имея под рукой автора такой диаграммы, фиг угадаешь, на что он пытался намекнуть, когда рисовал ее.

Manhunt ★★★★★
()
Ответ на: комментарий от Manhunt

> Ты вместо того, чтобы предложить конкретную нотацию

зачем нотация в отрыве от метода разработки?

ну вот допустим, начертил ты мега-крутую модель в UML, потратил на это тысячу сил и времени. А потом оказалось, что твоему процессу разработки она не нужна. Так зачем было потрачено столько времени и сил на создание формальной точной UML-модели?

а если модель всё равно ни разу не формальная и не точная, то к чему устраивать опрос про нотацию? Главно чтобы все поняли) Вон манагеры на своих флипчартах обычно такую херню рисуют, однако ж их все понимают..

Не имея под рукой автора такой диаграммы, фиг угадаешь, на что он пытался намекнуть, когда рисовал ее.


зачем нужна диаграмма, и зачем нужно ее понимать? эти вопросы имеют смысл только в контексте конкретной модели разработки. Если на оба вопроса ответ «не нужна» и «незачем», то и проблемы никакой нету.

stevejobs ★★★★☆
()
Ответ на: комментарий от Terrens

>/Ввод коэффициентов/

Ненене - в моем случае весь алгоритм вычисления полность специфицирован. Тут без сопроводиловки в виде моей специ вообще неясно о чем речь, а моя соповодиловка описывает все более чем - следовательно БС - лишняя сущьность.

Хотелось бы увидеть схему достаточную для реализации.

r ★★★★★
()
Ответ на: комментарий от Terrens

Не соглашусь.

Текст — это круто и удобно. Наскальные рисунки — не удобно и не понятно. Не согласные были съедены еще в доисторические времена.

geekless ★★
()
Ответ на: комментарий от r

> Квадратнострелочную. Что неустраивает?

По большому счету - устраивет. Я настаиваю на том, что представлять программы в виде рисунков с квадратиками и стрелочками - весьма полезно. Это удел не столько институтских преподавателей, сколько работников software индустрии. Даже если и не UML, то все равно что-то визуальное используют.

Авторы «дракона» попытались подход с рисованными диаграммами довести до логического предела. Идея очень привлекательная; ни они первые, ни они последние терпят на этом пути фиаско.

Manhunt ★★★★★
()
Ответ на: комментарий от stevejobs

> а если модель всё равно ни разу не формальная и не точная, то к чему устраивать опрос про нотацию?

Если русский язык не формальный и не точный, то к чему все эти правила грамматики, синтаксиса, пунктуации, и тд? Наверное, чтобы людям было легко понимать друг друга? ;)

Manhunt ★★★★★
()
Ответ на: комментарий от r

> схему достаточную для реализации.

Это и есть схема, достаточная для реализации =)
Хочешь, в квадратик, где написано «по формуле», впиши саму формулу =)

следовательно БС - лишняя сущьность.


Ты, наверное, хочешь сказать, что БС чаще всего востребованы там, где проще и быстрее нарисовать, чем напечатать, и маленькие проекты не нуждаются в глубоком аналитическом подходе при разработке? =)

Terrens
()
Ответ на: комментарий от Manhunt

как нарисовать диаграмму (любую, например классов) по вот этой фразе:

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

я знаю только как по этой фразе написать тест. Диаграмма как-то не складывается.

stevejobs ★★★★☆
()
Ответ на: комментарий от Terrens

>Ты, наверное, хочешь сказать, что БС чаще всего востребованы там, где проще и быстрее нарисовать, чем напечатать,

Нет - императивная по сути БС - хреновый способ спецификации алгоритмов - про что местные хаскелисты пытаются намекнуть.

r ★★★★★
()
Ответ на: комментарий от PolarFox

И да, я расписал именно решалку квадратных уравнений :3

PolarFox ★★★★★
()
Ответ на: комментарий от r

> теперь покажите мне где она «значительно компактнее и понятнее»

А мне объясните, зачем так подробно описывать алгоритм одной блоксхемой, если не для запоминания, какое обозначение чему соответствует =)

Terrens
()
Ответ на: комментарий от gh0stwizard

И офигенно ясно на хаскеле: http://progopedia.ru/example/quadratic-equation/140/

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

gh0stwizard ★★★★★
()
Ответ на: комментарий от Manhunt

>Бытует мнение, что на типичной диаграмме должно быть не больше 5-10 квадратиков. Никаких «огромных простыней».

Совершенно верно. Блоксхемы чертят для наглядности, когда схема перестает быть наглядной необходимость в ней отпадает.

fero ★★★★
() автор топика
Ответ на: комментарий от PolarFox

>Простите за мой дракон
Годно получилось. Это дракон? Получается, что посмотреть стоит. Cложная в освоении вещь?

fero ★★★★
() автор топика
Ответ на: комментарий от drull

о том, что такое детализация блок-схемы не слышал, не? хотя, с такими преподами, наверное и не слышал.

kyz
()
Ответ на: комментарий от gh0stwizard

Сами еште свой си.

roots a b c = if dt >= 0
                then Just( x (+), x (-) ) 
                else Nothing
        where 
            dt = b^2 - 4*a*c
            x pm = (pm (-b) $ sqrt dt) / 2 * a

r ★★★★★
()
Ответ на: комментарий от Manhunt

к чему все эти правила грамматики, синтаксиса, пунктуации, и тд?

Ты чо не понимаш всем все чотко и ясно бес никаких граматик и путкуаций иди личи моск

Miguel ★★★★★
()
Ответ на: комментарий от drull

забыл зацитировать

Ты себе представляешь подробную блок-схему на 10КК строк?

kyz
()
Ответ на: комментарий от gh0stwizard

>Вот как это выглядит на очень высокоуровневом языке:

То враги писали.

r ★★★★★
()
Ответ на: комментарий от kyz

интересно, как там в блок-схемах реализовано описание шаблонов и наследования блоксхем. «та же блок-схема, что и X, но с вот такими-то патчами»

stevejobs ★★★★☆
()
Ответ на: комментарий от gh0stwizard

>И офигенно ясно на хаскеле

Ох ты - почти дословно:)

r ★★★★★
()
Ответ на: комментарий от gh0stwizard

вычисления можно делать символьно, а можно нет)) собсно спросил, умеет ли Математика оператором reduce решать символьно, или только грязными численными хаками

stevejobs ★★★★☆
()
Ответ на: комментарий от stevejobs

> А еще здесь должно быть что-то для обработки статиститки. Может будет наследоваться от основной статистики, может нет если так проще. Главно чтобы на выход файлик был с результатами вот в таком формате. Конечно это еще зависит от того как будет реализована статистика.

как нарисовать диаграмму (любую, например классов) по вот этой фразе: я знаю только как по этой фразе написать тест. Диаграмма как-то не складывается.


Твое описание состоит из одних только «может быть если проще, а если не проще, то может и не быть, но в целом зависит от реализации».

Если ты не хочешь сейчас ничего уточнять, то и детальной диаграммы не будет: будет квадратик «статистика», квадратик «экземпляр файла», и квадратик «формат файла».

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

Наследование от «основной статистики» это не вопрос реализации, а вопрос аналитический: «как связаны эти две сущности? как они друг с другом соотносятся? будут ли они так же соотноситься в дальнейшем при наиболее ожидаемом развитии программы? выполнен ли LSP?».

Дальше, не квадратики должны определяться реализацией, а наоборот - реализация определяться квадратиками. Потому что когда ты рисуешь 5-10 квадратиков, ты видишь за деревьями лес, и можешь обеспечить консистентность своей программы. Когда вместо каждого из квадратиков будут тысячи строк кода, внимание будет приковано уже не к лесу, а к отдельным деревьям; в них будет гораздо проще заплутать и не найти удачной тропинки.

Manhunt ★★★★★
()
Ответ на: комментарий от fero

> Годно получилось. Это дракон? Получается, что посмотреть стоит. Cложная в освоении вещь?

Сами блоки запоминаются легко, да и в редакторе они все ещё раз подписаны. В книжке синтаксису уделена малая часть, остальная часть посвящена своего рода «HIGу». Например, рекомендуется располагать наиболее вероятный вариант развития событий поближе к основной — прямой, идущей вниз, ветке кода.

Да и сам ДРАКОН, в отличие от классических блок-схем, накладывает множество ограничений. Например направление ветвления по схеме — только вправо. Программы выполняются сверху вниз, за исключением стрелочек у циклов и большой стрелочки-рамки для перехода между различными частями алгоритма из нескольких колонок.

PolarFox ★★★★★
()
Ответ на: комментарий от stevejobs

>вычисления можно делать символьно, а можно нет)) собсно спросил, умеет ли Математика оператором reduce решать символьно, или только грязными численными хаками

Не знаю, я на Математика очень мало работал, да и то в университете один курс.

gh0stwizard ★★★★★
()
Ответ на: комментарий от Miguel

>Слегка заморочено, видно, что писал нуб, но всяко яснее, чем http://mk.semico.ru/pict/txt/bshema.gif

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

gh0stwizard ★★★★★
()
Ответ на: комментарий от Manhunt

ну вот видишь, это принцип подхода к разработке ))

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

stevejobs ★★★★☆
()
Ответ на: комментарий от stevejobs

> умеет ли Математика оператором reduce решать символьно

В Математике я только пробовал спектры сигналов рисовать, поэтому про reduce не в курсе, но в ней вполне можно решать уравнения и символьно :)

Terrens
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.