Хелпикс

Главная

Контакты

Случайная статья





SSS, <Elgolz1.800>,CPEC_FL,0, CPEC_FLN,0, <E1_menu.txt >, CPEC_FLN+1,0, CPEC_FLS,0,<количество байт>,<файл >, CPEC_FL+1,0, EOT



 

Организация обучающих программ (в том состоянии, что есть на моём ноутбуке)

В директории \BIBL\ должны находиться библиотечные блоки. Это файлы SSS-термов(форматированный текст в своей собственной кодировке символов минуя UNICOD), содержащий спецсимволы  cм.Таблицу1. Скрин1 показывает пока ещё пустые библиотечные блоки(их должна создавать другая программа) и как они организованы в меню (menuBIBL.txt),который создаётся пользователем и помещается в директориию \BIBL\. В программе есть соглашение, что расширения библиотечных файлов равны идентификаторам в меню, которые запускают их. Н-р: разделу «Дифф.уравнения» соответствует файл Elgolz1.800.

Скрин 1.

Спецсимволы, далее обозначены как CPEC_XX, содержатся только в SSS-термах, имеют также как и визуальные символы 8байт=2 int. Старший int=код символа, младший=параметры или 0, если параметров нет. CPEC_XX может иметь свою пару CPEC_XX+1, обозначающий конец действия этого спецсимвола, он может иметь ненулевой младший int, если есть возвращаемое значение(как функция).

Спецсимволы могут быть вложенными, т.е. имеющие смысл только внутри области действия внешнего по отношению к ним спецсимвола.

Из библиотечных блоков запускаются внешние программы, исполняемый код которых содержится внутри блока, их область данных тоже внутри блока. Для чего это нужно? Чтобы не возлагать большие надежды на ИИ в плане формального вывода формул, а использовать то, в чём он действительно хорош: организация и визуализация мыслительной деятельности человека. Эти внешние программы м.б.любыми, но они должны иметь обратную связь со своим библиотечным блоком, знать где там их область данных (ОД), для этого они запускаются с двумя параметрами: файл блока, номер раздела в блоке. Это делает главная программа, для которой задана директория BIBL.

 Пример командной строки:  \\myprog.exe Elgolz1.800 5

 

Таблица1 Спецсимволы для запуска внешних программ

Аббревиатура Назначение Старший int Младший int Пара  есть? Уровень вложенности
CPEC_FL Открывает раздел внешней программы A100 0000 Номер раздела Да
CPEC_FLN Имя файла внешн.программы A200 0000 Да
CPEC_FLD Открывает область данных внеш.прог. A300 0000 Да
CPEC_FLDB В каком биб.блоке расположена ОД A400 0000 Да
CPEC_FLDS Размер в байтах ОД+сама ОД A500 0000 -
CPEC_FLS Размер в байтах файла+сам файл A600 0000 -

 Заполнение библиотечного блока начинается с создания его файла-оглавления, например для Elgolz1.800 создан E1_menu.txt. В этом меню идентификаторы – это номера разделов(внешних программ). 0-раздел соответствует, по соглашению, файлу оглавления. Без 0-раздела блок не имеет смысла, как и книга без оглавления, что там и где искать.

 Запуск  0920_BIBL.exe Elgolz1.800 E1_menu.txtзапишет оглавление в 0-раздел.

Запуск  0920_BIBL.exe Elgolz1.800 -режим создания других разделов блока Elgolz1.800

Первый запуск запишет Elgolz1.800 какSSS-терм ,схематически покажу его так:

 SSS, <Elgolz1.800>,CPEC_FL,0, CPEC_FLN,0, <E1_menu.txt >, CPEC_FLN+1,0, CPEC_FLS,0,<количество байт>,<файл >, CPEC_FL+1,0, EOT    

<Elgolz1.800>=104,0,141,0,136,0,144,0,141,0,155,0,2,0,24,0,9,0,1,0,1,0 и занимает   11*8=88 байт. Латиница в ASCI и в UNICOD имеет одинаковые 7-битные коды. Кириллица имеет 5+6 бит,старшие биты заполняются согласно UTF-8 и получается 16-битный код. Это для справки. Моя «сиММатика» имеет свою таблицу кодов, в которой символ занимает 8 байт=2int. Старший int=код, младший int=вариант. Коды печатных символов положительные, пробелы – отрицательные в диапазоне. Остальные отрицательные коды это спецсимволы для SSS-термов. Простая печатная строка это SSS-терм, но есть спецсимволы форматирования: перевод строки, разбиение на страницы,ссылки, рисование.  Чтобы не усложнять, будем пользоваться только латиницей в именах биб.блоков и их внешних файлов.

Это скрин E1_menu.txt

Он составлен по оглавлению книги, но распределён по уровням, идентификаторы=номера страниц. Номера разделов внешних программ библ.блока м.б. любыми, главное чтобы следовали по возрастанию. Например: “0.4”, “Задачи к главе 5”, 278 – означает, что если вы выберете меню Дифференциальные уравнения -> Глава5.Уравнения в частных производных первого порядка , то произойдёт запуск внешней программы «Задачи к главе 5» по её номеру 278 в библ.блоке.

 



  

© helpiks.su При использовании или копировании материалов прямая ссылка на сайт обязательна.