Алгоритмический язык ДАЛВЯЗ 2. Силуэтное программирование

Вложение:dalvjaz2_part1.pdf[794.26 КБ]
Скачиваний: 820

Вложение:dalvjaz2_part2.pdf[919.45 КБ]
Скачиваний: 807

Вложение:dal2874.rar[639.35 КБ]
Скачиваний: 646


Введение

Наконец-то в  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 КБ | Просмотров: 11077 ]


Пример для КП
Из текста процедуры
## Код:
```
(* 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 КБ | Просмотров: 11077 ]
