Алгоритмический язык ДАЛВЯЗ 2. Силуэтное программирование
Вложение:
			
				 dalvjaz2_part1.pdf [794.26 КБ]
			
			Скачиваний: 964
 
				dalvjaz2_part1.pdf [794.26 КБ]
			
			Скачиваний: 964
		
		
	 Вложение:
			
				 dalvjaz2_part2.pdf [919.45 КБ]
			
			Скачиваний: 972
 
				dalvjaz2_part2.pdf [919.45 КБ]
			
			Скачиваний: 972
		
		
	 Вложение:
			
				 dal2874.rar [639.35 КБ]
			
			Скачиваний: 692
 
				dal2874.rar [639.35 КБ]
			
			Скачиваний: 692
		
		
	 Введение	
Наконец-то в  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 КБ | Просмотров: 12738 ]
			dal_vjaz_2.jpg [ 156.14 КБ | Просмотров: 12738 ]
		
		
	 Пример для КП
Из текста процедуры
Код:
(* 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 КБ | Просмотров: 12738 ]
			shema.jpg [ 95.79 КБ | Просмотров: 12738 ]