ТЕХНОЛОГИЯ РАБОТЫ С ТАБЛИЦЕЙ-СИЛУЭТОМ

Выкладываю обещанный просмотрщик полной формы визуальной схемы для
языка ДАЛВЯЗ 2, версия 0.8, в архиве dal2v08.rar находятся
исполняемый файл с примерами и исходный код, размер исходного кода
примерно 190К и чуть меньше 6000 строк.
Вроде работает, хотя особо сильно я его не гонял.
Выложено для дальнейшего развития всеми желающими.

Можно работать с языками семейств Pascal и C/C++ и с псевдокодом.
В файле dalvjaz.cfg - настройки для паскаля
В файле dalvjaz.cf1 - настройки для псевдокода
В файле dalvjaz.cf2 - настройки для C/C++

Кстати, перед запуском не забудьте правильно настроить каталоги в
файле dalvjaz.cfg.

Просмотрщик запускается, а затем Файл исходного кода со служебными
комментариями ДАЛВЯЗ 2 (подробнее см. тему на форуме сайта oberoncore.ru,
тема ДРАКОН -> Инструменты ДРАКОН-схем -> программы AB_VJAZ и DAL_VJAZ,
начиная с ноября 2011 г.) редактируется в текстовом редакторе.
После нажатия клавиши "Сохранить" изменения сразу же отображаются в
просмотрщике. При возникновении проблем с чтением ошибка указывается
в строке состояния.
Краткий перечень наиболее важных ошибок:

'Нет ЕС для ИЕ' - нет ЕСЛИ для ИНАЧЕ ЕСЛИ;

'Нет ЕС для ИН' - нет ЕСЛИ для ИНАЧЕ;

'Нет ЕС для К' - нет ЕСЛИ для конца блока ЕСЛИ;

'Нет НЦ для КЦ' - нет начала цикла для конца цикла;

'Незакрытый ЕС для КЦ' - незакрытый ЕСЛИ для конца цикла;

'Незакрытый ИЕ для КЦ' - незакрытый ИНАЧЕ ЕСЛИ для конца цикла;

'Незакрытый ИН для КЦ' - незакрытый ИНАЧЕ для конца цикла;

'Незакрытый НЦ для ИЕ' - незакрытый цикл для ИНАЧЕ ЕСЛИ;

'Незакрытый НЦ для ИН' - незакрытый цикл для ИНАЧЕ;

'Незакрытый НЦ для К' - незакрытый цикл для конца блока ЕСЛИ;

'Повтор ИН' - повтор ИНАЧЕ;

'Незакрытый ИН для ИЕ' - незакрытый ИНАЧЕ для ИНАЧЕ ЕСЛИ.

В текущей версии просмотрщика недоступны вставка в блоки визуальной
схемы пиктограмм и комментариев из файла сокращений, поэтому
пишите комментарии прямо в исходном коде.
Фактически сейчас определитель рисунка и сокращения используется
только для задания блока переключателей с использованием конструкции
вида (*рис . . ДN *).

Выяснилось, что для таблицы-силуэта удобно объединять несколько
веток в одну строку при помощи блока ЕСЛИ, например:

(*i*)  if (wetka = 1) then begin
(*i*)  k := 1;
n := 1;     //_>.1
(*i*)  wetka := 2;
(*i*)  end else if (wetka = 2) then begin
(*i*)  // вход в основной режим
(*i*)  wetka := 61;
(*i*)  end;

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

Почему у блоков условий на схеме нет надписей ДА и НЕТ ?
Потому что в ДАЛВЯЗ 2 принято правило, что ДА - это всегда вниз,
а НЕТ - всегда вправо.

При наведении мышки на блок схемы всплывает окошко, в верхней строке
которого в скобках указана строка файла исходного кода, соответствующая
началу блока, а ниже следует содержание блока. Если в блоке есть
гиперссылки (см. dalvjaz.cfg), то во всплывающем окне они будут
доступны, надо только БЫСТРО передвинуть указатель мыши на всплывающее
окно, чтобы оно до этого не закрылось. Возврат из внутренней
гиперссылки по кнопке "<".

При нажатии на кнопку BMP схема будет сохранена в рабочем каталоге
программы в файле shema.bmp, а затем ее можно для экономии места
сохранить как .jpg-файл. Даже если на экране вся схема не помещается,
сохранена она будет вся целиком.

Вот вкратце и все о просмотрщике. Теперь о таблице-силуэте.


Предлагается следующая технология работы с таблицей-силуэтом.

Предметник на бумаге или его секретарша в графическом редакторе Paint
рисует алгоритм, используя предоставленные разработчиком шаблоны -
файлы со схемами ранее сгенерированных алгоритмов. Кстати тут уместно
дать полезный совет - перед тем, как вводить текст блоков в схему,
его нужно сначала набрать в обычном текстовом редакторе, а уже потом
переносить внутрь блоков. Этот же текстовый файл с содержанием блоков
схемы будет затем использован программистом для ввода комментариев к
процедуре.
После получения схемы процедуры программист, пользуясь регулярностью
исходного кода таблицы-силуэта, быстренько лепит шаблон процедуры и
заполняет его в соответствии с полученным рисунком. Затем на основе
полученной процедуры генерится схема и сравнивается с первоисточником.
Если расхождений нет, то можно считать, что задача в первом приближении
запрограммирована - теперь нужно отлаживаться.
Я считаю, что при внесении достаточно значительных изменений в алгоритм
проще и менее чревато ошибками быстренько повторить весь процесс
заново, имея перед глазами схему предыдущего варианта алгоритма.
Ну или, если уж лень рисовать, пусть программист внесет нужные
изменения в процедуру, сгенерит схему и отнесет заказчику для
обсуждения и согласования.

Вот как-то так получается.

dal2v08.rar - 24 скачивания, новую версию см. в теме AB_VJAZ и DAL_VJAZ, сообщение от 4.12.2012

Вложение:
shema.JPG [ 210.16 КБ | Просмотров: 21053 ]
