- •Глава 2: «Методика разработки обучающей программы.»
- •2.1. Структура обучающей программы.
- •2.2. Библиотека графических функций.
- •2.3. Генератор графических интерфейсов.
- •2.4. Библиотека математических функций.
- •2.5. Библиотека функций мыши.
- •2.6. Используемые стандартные библиотеки.
- •2.7. Нестандартные приемы.
- •2.8. Работа с программой Depos.
- •2.8.1. Микроморфология аэс.
- •2.8.2. Термодинамический анализ системы
- •2.8.3. Автолегирование.
- •2.8.4. Локальная эпитаксия.
- •Выводы.
2.4. Библиотека математических функций.
Как было сказано выше, язык программирования Borland Pascal во многом несовершенен и для решения действительно сложных задач приходится расширять его возможности при помощи написания соответствующих библиотек. Borland Pascal является общеинженерным языком и не содержит многих математических функций, которые были необходимы для написания программы Depos, поэтому сформирована библиотека необходимых математических функций.
Расширением математических возможностей Borland Pascal стала библиотека математических функций math.pas, которая включает следующие функции:
Функция Arch(x) - гиперболический арккосинус (в ВР его нет);
Функция Range(число, степень) - возводит дробное число в дробную степень (аналогично);
Функция Lg(x) - десятичный логарифм от x (В Borland Pascal’е есть только натуральный логарифм);
Функция Ch(x) - гиперболический косинус (нет);
Функция Erf(x) - Функция ошибок от x (приводится в специальных таблицах, что неудобно для машинного счета);
Функция Factorial(x) - Факториал дробного числа x (отсутствует).
Любая из этих функций может быть использована в любой программе, предварительно подключив эту библиотеку, и не описывая функции заново. Достоинством этой библиотеки также является ее универсальность, она может быть использована в будущих проектах и открытость к расширению и занесению новых функций.
Однако недостатки Pascal’я заключаются не только в отсутствии нужных библиотек по рисованию графических объектов и математике.
2.5. Библиотека функций мыши.
Наиболее сложной в исполнении частью работы стала библиотека работы с манипулятором «мышь» (мышь). Библиотека под названием mouse.pas обрабатывает движения мыши, нажатие ее кнопок и т.д. Она включает в себя следующие функции:
Функция MsInit - инициализация курсора мыши;
Процедура MsShow - Вывод указателя мыши на экран;
Процедура MsHide - Убрать указатель мыши с экрана;
Процедура MsReadmotion - рассчитать относительное горизонтальное и вертикальное перемещение мыши по сравнению с предыдущим положением;
Процедура MsRead - снять показания мыши (горизонтальное и вертикальное положение курсора, отследить нажатые клавиши);
Процедура MsSetPos - установить указатель мыши в определенное положение на экране;
Процедура MslightpenOn - включить отображение хвоста мыши;
Процедура MslightpenOff - выключить отображение хвоста мыши;
Функция MsGetB - отследить нажатие клавиши мыши;
Функция MsGetBRelease - отследить отжатие клавиш мыши;
Процедура MsSetHMinMax - установить размер рабочей области мыши по горизонтали;
Процедура MsSetVMinMax - установить размер рабочей области мыши по вертикали;
Процедура MsSetGraphPointer - изменить форму курсора мыши;
Процедура MsSetTextPointer - то же самое для текстового режима;
Процедура MsSetMPP - изменить размер курсора мыши;
Процедура MsCondOff - установить область, где курсор мыши пропадает;
Процедура MsSet2speed - установить двойную скорость перемещения указателя мыши;
Процедура MsSetRoutine - процедура установки параметров мыши ;
Процедура MsSwapRoutine - процедура установки виртуальной памяти для мыши;
Процедура MsGetState - получить состояние мыши;
Процедура MsSetState - установить состояние мыши;
Процедура MsSetVpage - установить видеостраницу действия мыши;
Функция MsGetVpage - узнать видеостраницу действия мыши;
Эта библиотека содержит практически все, если не более того, что потребуется для разработки серьезной программы. При подключении этой библиотеки можно заменять большие части кода на Ассемблере (!) на одну функцию, заранее не описывая ее. Достоинствами этой библиотеки являются ее универсальность и открытость к расширению.