ПРОГРАММА DAL_2_HTML v.0.84
Вложение:
dal2_084.rar [720.39 КБ]
Скачиваний: 398
Среда разработки: Delphi 4, проект может быть загружен в Delphi 2009
и выше и собран там без ошибок.
Общий размер файлов исходного кода - чуть меньше 6800 строк исходного
кода и чуть больше 221 Кбайт.
Для запуска программы кроме исполняемого файла dalvjaz2.exe и
задаваемых в конфигурации текстовых файлов нужны файлы dal2htm.cfg и
styles.cfg.
В архиве dal2_084.rar находятся исполняемый файл программы dal2html,
файлы исходного кода, файлы проекта, файлы конфигурации программы
dal2html и каталоги с jpg-файлами.
Сначала несколько рисунков, а пояснения будут ниже.
схема в классическом стиле "черные линии на белом фоне":
Вложение:
51_8.jpg [ 34.42 КБ | Просмотров: 10378 ]
__коэф_выравн_блоков = 85 :
Вложение:
1_23.jpg [ 347.2 КБ | Просмотров: 10378 ]
Вложение:
51_10.jpg [ 156.36 КБ | Просмотров: 10378 ]
__коэф_выравн_блоков = 100, отключена цветность и задан вывод для блоков
их начальных номеров строк в текстовом файле:
Вложение:
1_23_2.jpg [ 274.63 КБ | Просмотров: 10378 ]
Вложение:
51_10_2.jpg [ 126.13 КБ | Просмотров: 10378 ]
Краткое описание работы с программой dal2html
После запуска программы dal2html окно схемы на экране не появляется,
а отображаются список заданных в конфигурации файлов, 2 кнопки -
"создать html-файл" и "о программе" - и строка состояния в нижней
части окна программы.
Чтение конфигурации сразу после запуска программы занимает несколько
секунд.
Чтобы сгенерировать htm-файл, нужно выбрать в окне программы один из
списка заданных в конфигурации файлов исходного кода или документации,
после чего нажать кнопку "создать htm-файл".
htm-файл и вызываемые при его просмотре jpg-изображения будут созданы
(jpg-файлы структурных блок-схем создаются из комментариев в исходном
коде программы или из текста псевдокода в файле документации) и
помещены в рабочий каталог программы, после чего этот htm-файл можно
будет просматривать любым интернет-браузером.
Для отображения в окне браузера внесеных в текстовый файл изменений
нужно заново сгенерировать htm-файл для этого текстового файла, после
чего нажать кнопку "обновить" в окне браузера.
Логика работы программы dal2html
Программа начинает формировать htm-файл с создания его заголовка с
параметрами просмотра нижеследующего текста <tt><pre>, что обеспечивает
просмотр текста в том виде, как он был набран в текстовом редакторе.
После этого программа автоматически генерирует первую запись htm-файла
001 со ссылками на остальные записи файла. На эту запись можно будет
ссылаться из других htm-файлов при совместном просмотре в браузере
нескольких файлов.
Пример 1-й записи сгенерированного htm-файла:
Код:
001 - список записей
ТЕКСТ.01
--------
СХЕМА.1. u_ls.52 - создание htm-файла
-------------------------------------
СХЕМА.2. u_ls.57 - получение html-ссылки
----------------------------------------
СХЕМА.3. u_files.56 - запись ссылочной карты в htm-файл
-------------------------------------------------------
СХЕМА.8. простой цикл-силуэт
----------------------------
СХЕМА.10. пробная процедура РИС . .2
---------------------------------------
ТЕКСТ.01 вторая запись htm-файла
это ссылки на первые записи других файлов
формат
ДАЛВЯЗ 2 полученная html-ссылка
_>1.001 1.001
-----
_>2.001 2.001
-----
_>3.001 3.001
-----
_>4.001 4.001
-----
В процессе генерации htm-файла программа переводит гипертекстовые ссылки
из формата ДАЛВЯЗ 2 в формат HTML, генерирует из текстов программных
записей jpg-файлы и привязывает к блокам созданных структурных блок-схем
ссылки на другие записи htm-файла при помощи ссылочной карты map. Для
каждого блока карты формируется своя строка area со следующими
параметрами:
- coords: задание координат блока на схеме
- href: гипертекстовая ссылка
- title: задание текста для всплывающего окна блока
Т.к. ссылочная карта при просмотре в браузере не отображается, то сразу
после схемы следует некоторое количество пустых строк, ограниченных
сверху и снизу строками "ссылки cхемы:" и "конец ссылок схемы".
Главные улучшения по сравнению с версией 0.83 программы dalvjaz2
* Переход к html-формату, являющемуся одним из общепризнанных
стандартов документирования программ.
* Проделана значительная работа по оптимизации построения схемы, в
том числе с учетом замечаний Алексея Донского по выравниванию левых
границ блоков действий вертикали. В конфигурации введен параметр
"__коэф_выравн_блоков" - коэффициент выравнивания блоков вертикали по
по левой границе, допустимые значения: 0 и от 65 до 100.
Если __коэф_выравн_блоков = 0, то блоки не выравниваются, у каждого из
них свой размер и все они центрированы по отношению к своей вертикали.
Если __коэф_выравн_блоков >= 65, то блоки выравнимаются по левому краю,
при этом если размер блока < "__коэф_выравн_блоков" процентов от ширины
максимального блока вертикали, то размер блока по ширине задается
равным значению "0.__коэф_выравн_блоков" от размера самого широкого
блока вертикали.
Когда __коэф_выравн_блоков = 100, то все блоки вертикали, кроме блоков
условий и переходов к другим веткам, становятся одинаковыми по ширине
и центрированными по отношению к вертикали.
* Введен файл стилей, позволяющий по желанию пользователя создавать
как традиционные схемы с черными линиями на белом фоне, так и схемы в
стиле "оттенки серого" и цветные схемы со вставкой в блоки пиктограмм,
полноценных jpg-изображений и с возможностью менять цвета и фонты для
всей схемы в целом или для каждого ее блока по отдельности.
Более подробное описание настройки конфигурации программы dal2html
см. в файлах dal2htm.cfg и styles.cfg.
Текст, формирующий приведенный выше цветастый рисунок:
Код:
СХЕМА.10. пробная процедура РИС . .2
* начало РИС .11
* если (условие 1 = 10) РИС .12
* если (условие 2 = 20) РИС .13
* действие 1 РИС .14
* иначе если (условие 3 = 30) РИС .15 .3
* действие 2 РИС .002
* иначе если (условие 4 = 40) РИС .16
* действие 3 РИС .004 [-]
* конец
* конец
* выход
* КОНЕЦ СХЕМЫ
И в заключение небольшое рассуждение на отвлеченную тему.
В чем разница между автоматным и силуэтным программированием ?
У них практически одинаковый логический аппарат, т.к. switch - это
(если не использовать фокусы с отсутствием break в конце вариантов
switch) всего лишь альтернативный вариант сложного условия:
* если
* иначе если
...
* иначе если
* иначе
* конец
Разница в целях.
В автоматном программировании ставится задача - логика программного
кода должна описывать логику работы автомата, и эта задача может
решаться либо путем использования switch, либо путем использования
сложного условия.
В силуэтном программировании правилу структурного текстового
программирования "текст процедуры должен целиком умещаться в экран"
соответствует правило "ветка силуэта должна целиком умещаться в экран".
Использование горизонтальной полосы прокрутки позволяет с бОльшим
комфортом для глаз, чем при использовании вертикальной полосы
прокрутки, просматривать схему алгоритма процедуры.
К тому же, в отличие от текстового структурного программирования,
просматривается не сам текст процедуры, а комментарии к нему,
обведенные в рамки, соединенные линиями логических переходов, что
позволяет уменьшить информационное давление на программиста.
При необходимости текст процедуры может быть быстро просмотрен во
всплывающем окне выбранного блока схемы, или путем перехода к нему
по щелчку левой кнопки мыши на выбранном блоке схемы.
В силуэтном программировании ветки силуэта могут:
- либо соответствовать состояниям автомата в случае решения задачи
автоматного программирования;
- либо являться средством деления логики процедуры на размещаемые по
горизонтали и умещающиеся по высоте в окно просмотра логические
фрагменты с целью сделать отображение схемы алгоритма более удобным
для восприятия, чем при вертикальной логике отображения алгоритма.
Т.е силуэтное программирование кроме решения задачи автоматного
программирования может решать и другую задачу, которая и является
главной задачей силуэтного программирования - обеспечить удобный
для программиса визуальный контроль за развитием логики процедуры в
процессе написания процедуры вне зависимости от того, описывает ли эта
процедура логику работы автомата или нет.
Если процедура не является автоматом, то для ДАЛВЯЗ 2 выравнивать
ветки по высоте можно просто перенося в текстовом редакторе фрагменты
исходного кода из одной ветки в другую.