Говорухин В., Цибулин Б. Компьютер в математическом исследовании (1185927), страница 83
Текст из файла (страница 83)
В данном примере использован компплятор Вог!апс! С. В результате выполнения этой команды получается ехефайл, который вызывает ядро МАТ!.АВ, формирующиеся при вызове графическое и текстовое окна совмещены на рис. 16.5. 449 Глава 16. Программирование в МАТГАВ Рис. 16.а. окна программы не Ц использующей ядро МАТГАВ программирование интерфейса ю организация диалога Элементарный интерфейс Команды для реализации простого ввода, приостановки вычислений и организа- ции несложных меню представлены в табл. 16.10.
Таблица 16.10, Команды элементарного интерфейса Имя Назначение Интерактивный ввод Запрос на ввод с клавиатуры Пауза Печать сообщения и выход из ю-файла Меню диалогового ввода 1прот Кеуооего ренее еггог Для организации пауз или приостановки выполнения пз-файла используется команда аизе. Команда раизе без параметра вызывает ожидание нажатия какой-ни- Для взаимодействия с программой необходим интерфейс, чтобы вводить парамет- ры задачи и управлять процессом вычислений.
МАТ1АВ имеет простые средства для создания элементов интерактивных приложений и позволяет создавать гра- фический интерфейс, используя стандартные графические окна. програннироаание интерфейса и организация диалога 441 будь клавиши, а команда раозе(И) организует задержку на И секунд. Команда рамзе отт выключает режим пауз, а команда раозе оп восстанавливает этот режим. Элементарный интерфейс с использованием клавиатуры можно создать при помощи команды 1п рот.
Например: > 1-Шрот("?") ? 51п(1) 0.781 При вводе производится синтаксический анализ введенного текста. Подавить анализ позволяет дополнительный параметр "з", с использованием которого можно организовывать ввод чего-либо по умолчанию. Например, наберем следующую команду и на появившийся запрос просто нажмем клавишу Ептег: » 1И-1прот("Новый расчет? Да/Нет (Да]:", "в") Новый расчет? Да/Нет (Да]: 1И- Теперь можно проанализировать содержимое переменной ! И. Если команда т В нарту(! И ) выведет «!», то это соответствует утвердительному ответу. Для иного ответа можно ввести что угодно: » (И-торов("Новый расчет? Да/Нет (Да]:", "в") Новый расчет? Да/Нет (Да]: Вряд лн [И Вряд лн Простое меню можно организовать при помощи команды вепш Приведем пример и заодтЮ ПрОдЕМОНСтрнрУем, как цри помощи команды хеуЬоагб организовать доступ к данным в процессе выполнения программы.
В текстовом редакторе создадим файл бешо глепшрк и-О: Мп1е и-З, ючяело("Выбор".'Конанда басе'.'Иоланда КеуЬоагб'.'Выход' ); вн1(сл 5 саве 1, Саба?-бате саве 2. 'хеуооагб епб епб Запустим на выполнение файл бегло глена.ш » бсею аепы В результате появится меню: Рнв. ЗЕ Е. создание няню зе42 Глава зб. Программирование в МАТСАВ При выборе первого пункта будет выведена текущая дата, при выборе второго пункта появится приглашение К» вводить команды с клавиатуры. Здесь можно посмотреть, что является текущим значением переменной ж Для выхода нз режима клавиатуры наберем гегыгп и нажмем 201ег Управление снова передастся в окно с меню: К» и и 2 К» гетогг Интерфейс графических окон Средствами МАТ1АВ можно создавать программы, где расчет сопровождается визуализацией и для управления используется графическое меню.
Для этого непосредственно в стандартном графическом окне размещаются мешо и графические элементы управления, позволяющие вводить и выводить числа н текст, получать справочную информацию, производцть выбор, нажатием кнопки запускать выполнение функций и т.д. Команды для создания обычного и контекстного мешо, а также различных элементов управления даны в табл. 16.11. Таблица 16.11. Команды создания графического интерфейса Назначение Имя Создание элемента управления Создание меню Создание контекстного меню изсоптго1 сд кепи озсоптехтиепо При помощи этих команд определяются объекты н задаются некоторые их свойства. Отсутствующие свойства берутся по умолчанию.
Рассмотрим создание элементов управления при помсипи команды цзсоптго1, Вначале нужно создать графическое окно и получить его дескриптор ЬГ10-Мооге; Затем подготавливаются различные элементы управления (объекты щсопгго1), создаваемые при помощи конструктора (команды) 01сопгго1. Первым параметром команды ц1 сопЬго1 идет дескриптор родительского окна, а далее в произвольном порядке перечисляются свойства, задаваемые парой: имя и значение. Например, чтобы организовать кнопку, при нажатии которой будет вызываться функция Гоп (файл Гып.ш), достаточно ввести команду Пзит Ш сопзго1(ПР10,'5СУ1е','Розпооттоп'. "5згзпв",'Кнопка'. "Роззтзоп",[20 20 ЗО 40),...
"Са11ЬасК",'топ'); Ключевое слово 5су)е определяет тип управляющего элемента, здесь это кнопка рцзЬЬы11оп, а свойство 51ппц задает надпись на кнопке, Значением свойства Роз)1)оп будет вектор-строка из четырех чисел; первые два числа устанавливают положение кнопки относительно левого нижнего угла графического окна, третье число Программирование интерфейса и организация диалога 443 задает ширину кнопки, а четвертое — ее высоту. Свойство Са((Ьаск определяет имя функции Тцп, которая будет вызвана при нажатии ланной кнопки.
Файл $цп. ю должен быть подготовлен заранее. Свойство 5гу(е также может принимать следующие значения: О Тех( — для вывода текстовой информации; (3 ЫЬ вЂ” для ввода чисел и текста; (3 СЬескЬох — для пометки; (3 ()з(Ьох — для выбора из списка; (3 Гайд(еЬцгтоп — для реализации переключателя; О та(((оЬцтсоп — для выбора нескольких вариантов из списка; (3 зИет — для реализации ползунка; с) Ваше — для взятия нескольких элементов в рамку. Элементы управления могут иметь особенности, Например, элемент Тгаюе должен быть создан прежде элементов, которые заключаются в рамку.
Для элемента з((бет должны быть указаны минимальное (слева) и максимальное (справа) значения, и дополнительно можно определить значение параметра, управляюп(его перемещением ползунка. При значении рорцрюепц появляется раскрывающееся меню. Чтобы получить список свойств элемента управления с дескриптором ЬВЬЬ, достаточно выполнить команду цет(ЬВцт). Для задания нового значения свойства Ртор следует использовать команду 5ЕЬ( ЬВЬЬ, ' Р гор ' .
' ча1 ' ), где ча1 — значение свойства. Приведем пример интерфейса из документации по МАТ].АВ. Чтобы создать кнопку в центре окна и передать управление новому объекту, введем команду » ь-шсон(го1("5(у1е", 'рнзньиьюл'.'0лчсз','лотща)ыеб'... "Роз)тюп",[.б .б .3 .2], 'Болта!зе',12.'5(гчлй', 'Кнопка'); Дополнительно установим всплывающую подсказку, которая будет появляться при наведении курсора на кнопку » зеь(Ь.' тос1ь!р5тг(лр','Блуияаещая') Теперь приготовим команду, которая будет выполняться при нажатии кнопки » з-'зе((Ь ''Рьз1(юл'' Д .В*галс .9*галс .3 .2])' Выполнение следующей команды приводит к случайному перемещению кнопки » еча1(з) Наконец, запустим подготовленную программу.
При каждом нажатии кнопки происходит ее перемещение на новую позицию: » зег(Ь.'Са11Ьаси',з) На рис, 16.7 приведено окно с кнопкой и всплывающей подсказкой. Заметим, что в данном примере описание дескриптора окна отсутствует, а при помощи свойства СайЬасй вместо функции успешно вызывается строковая переменная. Применение различных элементов управления рассмотрено в примере главы 10 «Примеры решения задач». 44ае Глава 16. Программирование в МАТ(АВ Рмс.
16ЛЦ Кнопка — припер элемента графичесного интерфейса Для пополнения стандартнОго меню графического окна применяется команда ц=ц(мепц('Ргор1' Ча! 1. 'Ргор2'.Ча!2...) Здесь 0 — лескриптор создаваемого меню, Ргор1, Ргор2, ... — свойства, а На!1, Ча!2, ...— присваиваемые значения. Список свойств можно получить, выполнив команпу 9ет(щвепц), При вызове 01 щ вепщ О, ...) созлается дочернее меню, причем дескриптор 0 используется для определения характера создаваемого меню. Если 0 — дескриптор окна, то будет организован пункт основного меню, если 0 — дескриптор меню, то создастся полпункт в выпадающем меню, также могут создаваться полпункты лальнейшей вложенности и пункты контекстного меню.