Алгоритмический язык ДАЛВЯЗ 2. Силуэтное программирование
Вложение:
dalvjaz2_part1.pdf [794.26 КБ]
Скачиваний: 657
Вложение:
dalvjaz2_part2.pdf [919.45 КБ]
Скачиваний: 653
Вложение:
dal2874.rar [639.35 КБ]
Скачиваний: 520
Введение
Наконец-то в 2016, без малого через четыре года после того, как я
выложил на форуме
http://forum.oberoncore.ru описание алгоритмического
языка ДАЛВЯЗ 2 (файл dalvjaz2_description.pdf), я смог сформулировать,
какой смысл применительно к языку ДАЛВЯЗ 2 имеет термин "силуэтное
программирование".
Силуэтное программирование на языке ДАЛВЯЗ 2 - это совокупность приемов
визуального программирования, применяемая для разработки в графическом
редакторе ДАЛВЯЗ 2 в формате структурных блок-схем процедур с циклом
сложного условия и обеспечивающая программисту более комфортные с точки
зрения эргономики, чем при вводе в текстовом редакторе, условия ввода
исходного кода процедуры.
Ну, такое утверждение хорошо бы доказать, а еще лучше проверить на
практике. А то уже вон сколько графических систем программирования с
редактированием исходного кода в формате блок-схем понапридумывали, а
они у программистов широкого признания не завоевали, говорят - неудобно.
Почему неудобно и как удобно ?
Рассуждения на эту тему и составляют основное содержание этого материала,
в котором я объединил в одно целое уже имевшиеся у меня разные варианты
описания языка ДАЛВЯЗ 2, задуманного мной как сильно упрощенное и удобное
для практического программирования на языках семейств Pascal и С/С++
подобие алгоритмического языка ДРАКОН.
Содержание
ЧАСТЬ 1. ТЕОРИЯ
1.1. Почему неудобны стандартные блок-схемы
1.2. Что такое силуэт
1.3. Алгоритмический язык ДАЛВЯЗ 2
1.4. Формирование в ДАЛВЯЗ 2 блок-схемы на основе исходного
кода процедуры
1.5. Программирование на ДАЛВЯЗ 2 с циклом сложного условия
1.6. Конкретный пример схемы
1.7. Панель инструментов для работы со схемой
1.8. Редактирование схемы в ДАЛВЯЗ 2
1.9. Работа с русифицированной программной логикой верхнего
уровня в ДАЛВЯЗ 2
ЧАСТЬ 2. ПРАКТИКА
2.1. Файл конфигурации программы dal2.cfg
2.2. Файл стилей отображения схемы styles.cfg
2.3. Возможные варианты служебных комментариев
2.4. Шаблоны редактирования процедуры
2.5. Редактирование структурных блок-схем произвольного вида
2.6. Использование пиктограмм и рисунков при создании схем
2.7. Всплывающие окна для элементов схемы
2.8. Создание схемы для псевдокода
2.9. Описание логики программы на над-процедурном уровне
2.10. Создание текущей версии процедуры вывод_схемы, начало
2.11. Создание схемы с точки зрения программиста
2.12. Создание текущей версии процедуры вывод_схемы, окончание
Заключение
ЛИТЕРАТУРА И ССЫЛКИ В СЕТИ ИНТЕРНЕТ
<readme.txt>
Программа dal_vjaz_2, v.0.87.4
Очередная версия программы dal_vjaz_2 v.0.87.4 является приложением
к выкладываемому вместе с ней материалу "Алгоритмический язык ДАЛВЯЗ 2.
Силуэтное программирование", в котором приведено достаточно подробное
описание работы с этой программой. Но некоторые вопросы остались за
рамками вышеуказанного материала, а потому поясняются ниже.
Программа dal_vjaz_2 0.87.4 является свободно распространяемым ПО c
открытым кодом и выкладывается "как есть", с возможностью дальнейшего
развития и совершенствования всеми желающими.
Конечно программа dal_vjaz_2 развивается уже достаточно долгое время и
я успел за это время выловить и исправить изрядное количество ошибок, но
dal_vjaz_2 пока что развивается как демонстрационный макет (в который с
каждой новой версией вносятся новые изменения, что чревато внесением
новых ошибок), а значит и тестирования с целью получения стабильной
версии у dal_vjaz_2 еще не было.
файлы конфигурации: dal2.cfg, styles.cfg
файл, задающий размеры основной формы: formsize.dat
пробные файлы: proc2.txt, proc3.txt, proc_bb.txt
Описание подключения dll, сгенерированной в среде КП, приведено
в теме "КП + Delphi".
Описание концепции логики верхнего уровня, использованной для
разработки dll в среде КП, приведено в теме "программная логика
верхнего уровня".
Что касается проекта pasdll (информация для тех, кто захочет вносить
изменения в проект dal2874), то его надо перетранслировать каждый раз
после внесения изменений в определения форм проекта dal2874.
Для считывания текста процедуры со служебными комментариями нужно нажать
кнопку "Счит.", после чего откроется форма с окном ввода текста
процедуры, в которое по Shift + Ins нужно вставить этот текст, после
чего нажать кнопку "Сохранить".
Если при чтении служебных комментариев возникнут ошибки, то на экране
вместо схемы процедуры появится сообщение об ошибке и текст процедуры с
предполагаемым местом ошибки, обозначенным строкой "?>".
Нужно учитывать, что строкой "?>" часто обозначается не само место
ошибки, а место, где программа столкнулась с проблемой при считывании
служебных комментариев процедуры. Например, при возникновении сообщения
"нет ЕСЛИ для КОНЕЦ" с пометкой в тексте процедуры "?> КОНЕЦ" только
сам программист сможет разобраться, забыл ли он про ЕСЛИ, или добавил
лишний КОНЕЦ. ну и так далее.
После исправления ошибки в тексте процедуры нужно считать этот текст
снова.
Для сохранения текста отредактированной процедуры нужно нажать кнопку
"Сохр.", после чего текст отредактированной процедуры будет скопирован в
клипборд Windows, откуда этот текст по Shift + Ins можно вставить в
любой текстовый файл.
Кроме того, текст отредактированной процедуры записывается в файл
proc.txt в рабочем каталоге программы, а предыдущая версия файла
proc.txt сохраняется под именем proc.__o .
Для сохранения схемы в jpg-файле нужно нажать кнопку "JPG", после чего
схема будет сохранена в подкаталоге \rk рабочего каталога программы с
именем shema.jpg.
Если схема очень большая (больше схемы "Морозко"), то на экране может
появиться сообщение "недостаточно памяти для выполнения операции".
При работе с минимизированной схемой, когда идет массированная вставка
новых элементов, то мышь снует туда-сюда между панелью редактирования
схемы и самой схемой. В этом случае механизм подавления всплывающих окон
путем нажатия и удержания клавиши Shift является неудобным. Тогда для
отключения всплывающих окон следует сбросить флажок "вспл. окна".
Если кажется, что для минимизированной схемы перетаскивание мышью с
нажатой правой кнопкой слишком медленное, то нужно уменьшить параметр
"диапазон прокрутки", например до 150.
</readme.txt>
А в заключение 2 примера
Фрагмент схемы процедуры "вывод_схемы" для русифицированного КП:
Вложение:
dal_vjaz_2.jpg [ 156.14 КБ | Просмотров: 9504 ]
Пример для КП
Из текста процедуры
Код:
(* i.1 proc *)
PROCEDURE WndHandler (wnd, msg, wParam, lParam: INTEGER): INTEGER;
VAR res: INTEGER; ps: WinApi.PAINTSTRUCT; dc: WinApi.HDC;
BEGIN
IF msg = WinApi.WM_DESTROY THEN
(**) WinApi.PostQuitMessage(0)
ELSIF msg = WinApi.WM_PAINT THEN
dc := WinApi.BeginPaint(wnd, ps);
res :=WinApi.TextOut(dc, 50, 50, message, LEN(message));
res :=WinApi.EndPaint(wnd, ps)
ELSIF msg = WinApi.WM_CHAR THEN
res := WinApi.Beep(800, 200)
ELSE
(**) RETURN WinApi.DefWindowProc(wnd, msg, wParam, lParam)
END;
(** ВЫХОД *)
RETURN 0
END WndHandler;
(** КОНЕЦ ПРОЦЕДУРЫ *)
получаем следующую схему:
Вложение:
shema.jpg [ 95.79 КБ | Просмотров: 9504 ]