Визуализация алгоритмов и программного кода (общие вопросы программирования) Блок-схема как инструмент программирования. [b]На конкретном примере часто используемого VBA-фрагмента показал несколько методов визуализации. [/b] Конкретный пример программного кода Блок циклического переключения цвета . При многократном нажатии кнопки, цвет фона циклически изменяется. Это позволяет сделать обычную кнопку «многопозиционной». Предлагаю сравнить стандартный код с возможностями программ его визуализации. Вот фрагмент из стандартного редактора VBA: Не слишком понятно? Тогда смотрите дальше… Методы машинного анализа и визуализации кода сильно облегчают труд программистов. Без наглядной схемки иногда почти невозможно сообразить, чего не хватает в программе. Полезна не только готовая диаграмма, но и сам процесс её построения: При создании визуального образа программного кода становятся заметны его трудноразличимые ньюансы, а сама картинка как опорный сигнал надёжно впечатывается в память. Select Case [с_фон_b-fp-Режим].BackColor GoTo Exit_b_fp_Режим_Click ' - если _ 'Me![с_фон_b-fp-Режим].BackColor = (голубой), то _ 'никаких действий в b_fp_Режим_Click выполнять не нужно. _ 'Переключение в этот режим означает предупреждение, что _ 'вместо "[f_id]" будет подключена другая спецформа. End Select В этом примере были использованы: Code Visual to Flowchart – построитель блок-схем по готовому коду Умеет работать с кодом любых языков программирования. Графический курсор в блок-схеме перемещается синхронно с перемещением текстового курсора в соседнем окне кода. Умеет скрывать излишние подробности в отдельных блоках. Такие блоки содержат в себе несколько программных инструкций (то есть, сразу несколько отдельных строк). Использую две взаимодополняющие версии: одну – «триал», другую – коряво взломанную. Notepad++ – заменитель стандартного блокнота . (безплатная) Позволяет автоматически маркировать цветом любой код, причем, предустановленные настройки стиля можно менять: цвет, фон и размер шрифта задаются и хранятся отдельно для каждой группы элементов синтаксиса. Цветной текст через буфер обмена доступен для вставки в любой текстовый документ, в том числе, в MS Word. После вставки можно изменять оформление отдельных элементов кода. - Как дополнение к вышеприведённой схеме кода предлагаю диаграмку, составленную при помощи Access. То есть, СУРБД от Microsoft ( при творческом подходе)) - это ещё один весьма полезный инструмент для составления блок-схем и визуализации кода. Любая спецф орма при своём подкл ючени и может устано вить в Универсальной форме особый цвет фона кнопки [с_фон_b-fp-Режим]. Особый цвет означает какое-то специфическое действие, которое должна выполнять эта подключенная подчинённая форма.. Для создания алгоритмов я сейчас графическими блок-схемами не пользуюсь, хотя уже лет пять, как знаком с программированием на Ассемблере, а там без чёткой алгоритмизации вообще делать нечего: очень неудобно вести отладку больших программ, так как в готовых изделиях (программируемых контроллерах) отсутствует нормальная операционная система. До сих пор в сложных случаях выручал обыкновенный текстовый процессор. Печатаю вслепую (спасибо В.Шахиджаняну и его «Соло на клавиатуре»). Поэтому наиболее простой и быстрый способ алгоритмизации для меня – в обычном Word-документе создавать текстовые абзацы. Абзац – это тот же блок. А для взаимной и наглядной увязки и компоновки блоков теперь можно использовать MSA. (Word + Access) = «Быстрый и удобный редактор блок-схем» Ещё работа в MS Word удобна тем, что кроме профессионально оформленного текста можно вставлять в документ небольшие графические образы (привязанные к размерам страницы). И только изредка теперь понадобится работа в профессиональном графическом построителе диаграмм. Для профессиональных пользователей схемотехнических программ подойдёт метод создания диаграмм при помощи редактора принципиальных и монтажных электронных схем. Диапазон возможностей этих программ намного шире их начальной сферы применения. Например, можно быстро расставить мебель в большом и неоднородном помещении. Почти не придётся что-либо многократно передвигать. Все перемещения – на экране монитора. Такой способ работы с графикой имеет особый смысл, когда нужно оперировать не только с логической субстанцией информационного блока, но и с его размерами и формой. А также, с размерами, цветом и формой множественных информационных связей. Другая особенность подобных программ – работа с любым количеством взаимосвязанных слоёв (лишнюю информацию можно убирать с экрана). В заключение скажу ещё об одной векторно-растровой программке, которая полезна скорее для проработки алгоритмов, а не для визуализации кода. Она имеет большое количество готовых элементов, и очень умно автоматизирует рутинные операции. Освобождая человека для творчества. Творчество заключается не только в создании выразительной блок-схемы (которая позволяет передать знания), но и в том, чтобы при помощи неё понять что-то новое в конкретной сфере её применения. Например, с её помощью я визуализировал один из алгоритмов функционирования частной платёжной системы: Для полного понимания алгоритмов электронных платежей одной схемки недостаточно, и пояснения тоже нужны. Но для эксперта - достаточно взглянуть на неё, чтобы увидеть всю систему в целом. В современном быстром мире успех любого дела очень зависит от умения находить сторонников и объяснить людям суть вещей и действий. Здесь язык образов является предпочтительным.