8(495)909-90-01
8(964)644-46-00
pro@sio.su
Главная
Системы видеонаблюдения
Охранная сигнализация
Пожарная сигнализация
Система пожаротушения
Система контроля удаленного доступа
Оповещение и эвакуация
Контроль периметра
Система домофонии
Парковочные системы
Проектирование слаботочных сетей
Аварийный
контроль
Раздел: Документация

0 ... 38 39 40 41 42 43 44 ... 177

разделах (так. мы самостоятельно реализуем несколько ключевых численных методов).

4.1. Создание программ

Первым делом, приступая х разговору о создании алгоритмов в среде Mathcad. откроем специальную панель, содержащую все операторы и элементы языка программирования. Панель эта называется Programming (Программирование) и относится она к панели Math (Математические) (кнопка в виде блок-схемы).

Открыв указанную панель (рис 4.1). вы обнаружите, что язык программирования Mathcad имеет предельна малое количество операторов — всего в. Впрочем, это никоим образом Не сказывается на эффективности создаваемых алгоритмов.

В + [т]

while on error

ureal

otnerwlse continue

J

Рис, 4.1. Панель Programming {Программирование)

Чтобы написать программу, прежде всего для нее должен быть создан специальный обособленный от остального документа блок. Выглядит он как черная вертикальная линия с маркерами, в которые заносятся те или иные выражения алгоритма. Чтобы построить единичный элемент программного блока, нажмите кнопку команды Add Line (Добавить линию) панели Programming (Программирование). Или, лучше, воспользуйтесь «горячей» клавишей «]►. При этом в области курсора появится следующий объект

Обычно программа содержит больше чем две строки, поэтому лучше сразу задать блок из 5-6 маркеров. Сделать это можно, последовательно нажав нужное количество раз соответствующую кнопку панели Programming или «горячую» клавишу. Программный блок можно создать и внутри уже заданного блока Для этого используйте один из стандартных способов, поставив курсор в маркер любого из" операторов программирования:

for I е I

Созданный таким образом блок выглядит как параллельная главному блоку линия. Выражения, внесенные в него, будут обособлены от остальной программы, и выполне-


пне соответствующих им действии будет связано только с оператором, к которому относится внутренний блок.

Иногда прн написании программы бывает нужным добавить строку к уже созданному блоку. Чтобы это сделать, поставьте курсор в ту строку блока, выше или ниже которой должна быть введена строка, и нажмите клавишу Пробел. При этом строка будет выделена и можно будет произвести добавление одним из стандартных способов. Положение вставляемого маркера определяется положением вертикальной черты курсора. Если ока находится слева от выделенного выражения, то маркер будет добавлен выше выделенной строки, если справа — то ниже. Чтобы развернуть курсор в нуж>гую сторону, нажмите клавишу Insert Чтобы добавить строку к целому блоку, его следует выделить, дважды нажав клавишу Пробел. В том случае, если программа содержит блоки различных уровней, то для добавления строки, например, к первому блоку, нажмите клавишу Пробел несколько раз: при каждом нажатии будут выделяться блоки более низкого уровня.

Для присвоения значений переменным н функциям в программах Mathcad используется специальный оператор: (Local Definition — Локальное присваивание), расположенный на панели Programming (Программирование) (также вводится сочетанием клавиш Shift+«[»). Использовать оператор обычного присваивания <:-» в программах нельзя. Однако вид уже введенного оператора присваивания может быть сменен с ««—» на «-►, Для этого нужно щелкнуть на соответствующей строке программы правой кнопкой мышн и в появившемся контекстном меню открыть меню View Definition As (Видеть присваивание как). В данном меню нужно выбрать пункт Equal (Равенство) (по умолчанию выбран пункт Left Arrow (Левая стрелка)).

Присваивание значений в программах имеет ряд особенностей. Важнейшим из них является то, что присвоение величин используемым алгоритмом функциям и переменным может быть произведено как в самой программе, так и выше нее. Данные два подхода весьма существенно разнятся. Если значение переменной или функции присваивается в программе посредством оператора **-*. то такая переменная или функция будет являться локальной, То есть она будет видимой только в рамках программы. Как-то повлиять на объекты вне программы ока не сможет (равно как извне к ней нельзя будет получить доступ). Если переменная или функция задается выше программы с помощью оператора то она будет обладать глобальной видимостью. То есть такая переменная или функция будет доступна любому нижележащему объекту, в том числе и коду программ. Однако программа может только прочитать значение глобальной переменной или вызвать глобальную функцию. Как-то изменить значение глобальной переменной или функции программа не может. Это очень важно учитывать при написании алгоритмов. Если программа должна осуществлять какую-то модификацию объекта (например, возводить все элементы массива в квадрат), то результат своей работы ока должна возвращать (см. пример 4.2),

Пример 4.2. Использование значения внешней переменной а программе

Массив, элементы которого нужно возвести В квадрат:

2

М г-

4

5

6

8

9)


Программа, перебирающая все элементы М и заменяющая первоначальные значения элементов их квадратами. Полученный результат программа возвращает.

for i s 0.. 2

for j е 0.. 2

(у 4 м\

16 25 36 149 64 Ы)

М.

В результате выполнения программы массив М изменен не был. Это означает, что при обращении из программы к глобальной переменной копированием создается аналогичная локальная переменная. Именно с хранимой ею величиной работают команды программы. Как-то изменить глобальную переменную программа не может.

(\ г з\

м =

4 5 6 \1 8 9J

Локальные переменные и функции имеют приоритет над глобальными в рамках «родной» программы. Это означает, что если имеется локальная и глобальная переменные (или функции) с одним именем, то обращение по этому имени будет адресоваться к локальной переменной (или функции).

Пример 4.3. Одноименные локальная и глобальная переменные

а.4- 3 - 3 а

а = 2

Возможность создания локальных функций появилась только в Mathcad J2. До этого попытка объявить функцию в тгрограмме вызывала ошибку. Создаются локальные функции точно так же, как обычные (только в качестве оператора присваивания используется «*—»)- Вызвать локальную функцию можно только из нижележащих строк программы. Вне программы она не доступна.

Пример 4.4. Задание в программе локальной функции

f(x,y,z) «- stn(x) + sin(y) + sin(i)= 4.287

value

Локальные функции нужно создавать тогда, когда определенное выражение должно вычисляться сразу в нескольких местах программы. Это позволяет избежать дублирования выражения, а следовательно, способствует уменьшению длины программы



0 ... 38 39 40 41 42 43 44 ... 177