Глава 7. программирование в среде «mathcad»
Возможность задания программных блоков появилась в версии «MathCAD PLUS 6.0» и в расширенном варианте имеется во всех последующих версиях. Несмотря на скромность набора программных средств, имеющихся в «MathCAD», они дают системе именно те возможности, которые ранее попросту отсутствовали:
─ задание специальных функций;
─ задание различных видов циклов (в том числе вложенных);
─ упрощение алгоритмов применением операций присваивания;
─ реализацию различных итерационных и рекурсивных процедур.
Операторы и элементы языка программирования сосредоточены на специальной рабочей панели «Программирование», подменю «Математика», которая вызывается из меню «Вид», подменю «Панели инструментов», а так же из окна «Математика». Кнопка в виде блок-схемы изображена на рис. 7.1.
Рис. 7.1 Подменю «Математика»
Данная панель содержит 10 операторов (или инструкций). Панель изображена на рис. 7.2.
Рис 7.2 Рабочая панель «Программирование»
Обзор инструкций
1 Add Line − создает и при необходимости удлиняет жирную вертикальную линию, справа от которой в местах ввода задается запись программного блока;
2 «←» − символ локального присваивания (в теле модуля или блока);
3 if (если) − условная инструкция;
4 for (для) − инструкция задания цикла с фиксированным числом повторения;
5 while (пока) − инструкция задания цикла, действующего до тех пор, пока выполняется некоторое условие;
6 otherwise (иначе) − инструкция иного выбора (обычно применяется с инструкцией if (если));
7 break (прерывание) − инструкция прерывания;
8 continue (продолжение) − инструкция продолжения;
9 return (возвратить) − инструкция возврата;
10 on error (обход ошибки) − инструкция обработки ошибок.
Инструкция Add line
Инструкция «Add Line» ( добавить линию) выполняет функции создания и расширения программного блока. Расширение фиксируется удлинением вертикальной черты программных блоков или их древовидным расширением. Благодаря этому можно создавать сколь угодно большие программы.
Оператор внутреннего присваивания
Для присвоения значений переменным, выражениям и константам в программах «MathCAD» используется специальный оператор «←» (локальное определение), расположенный на панели «Программирование», он также вводится сочетанием клавиш «Shift» + «[». Использовать оператор обычного присвоения «: = » в программах нельзя.
Оператор «←» выполняет функции внутреннего, локального присваивания. Например, выражение х ← 123 присваивает переменной х значение 123.
Локальный характер присваивания означает, что такое значение переменной х хранится только в теле программы. За пределами тела программы значение переменной х может быть неопределенным либо равным значению, которое задается вне программного блока операторами локального « := » или глобального « ≡ » присваивания.
Условная инструкция «if»
Инструкция «if» (если) позволяет строить условные выражения. Она задается в виде: «выражение» if «условие». Если условие выполняется, то возвращается (определяется) значение «выражения». Совместно с этой инструкцией часто используются инструкции прерывания «break» и иного выбора «otherwise».
Инструкция «for»
Данная инструкция служит для организации циклов с заданным числом повторений. Она записывается в виде:
for Var Nmin .. Nmax
Эта запись означает, что выражение, помещённое в расположенное ниже место ввода, будет выполнятся для значений Var, меняющихся от Nmin до Nmax с шагом +1. Переменную Var можно использовать в исполняемом выражении.
Инструкция «while»
Инструкция служит для организации циклов, действующих до тех пор, пока выполняется некоторое условие.
Она записывается в виде:
while «условие»
Выполняемое выражение записывается в расположенное ниже место ввода.
Инструкция «otherwise»
Инструкция иного выбора «otherwise» обычно используется совместно с инструкцией «if» (если). Это поясняет следующая программная конструкция:
То есть функция f(x) возвращает 1, если х > 0, и -1 во всех остальных случаях.
Инструкция «break»
Инструкция «break» вызывает прерывание выполнения программы всякий раз, как она встречается.
Чаще всего эта инструкция используется совместно с условной инструкцией «if» (если) и инструкциями циклов «while» (пока) и «for» (для), обеспечивая перехода в конец тела цикла.
Инструкция «continue»
Инструкция «continue» (продолжение) используется для продолжения работы после прерывания программы.
Она чаще всего используется совместно с инструкциями циклов «while» и «for», обеспечивая возвращение в точку прерывания и продолжение вычислений.
Инструкция «return»
Эта инструкция прерывает выполнение программы и возвращает значение операнда, стоящего следом за ней. Например, в приведенном ниже случае будет возвращаться значение 0 при х<0:
return 0 if х<0
Инструкция «on error»
Эта инструкция позволяет создать процедуры обработки ошибок. Она задается в виде:
«выражение 1on error выражение 2»
Если при выполнении выражения 1 возникла ошибка, то выполняется выражение 2.
Создание программ
Для того, что бы написать программу, прежде всего должен быть создан специальный обособленный от остального документа блок.
Выглядит он как черная вертикальная линия с маркерами, в которые заносятся те или иные выражения алгоритма.
Для того, чтобы построить единичный элемент программного блока, следует нажать кнопку команды «Add Line» (добавить линию) панели «Programming» (программирование). Можно воспользоваться «горячей» клавишей «]» (шрифт англ.).
В области курсора появится следующий объект:
Обычно программа содержит больше чем две строки, поэтому лучше сразу создать блок из 5-6 маркеров. Сделать это можно, последовательно нажав нужное количество раз соответствующую кнопку рабочей панели или «горячую» клавишу.
Программный блок можно создать и внутри уже заданного блока.
Для этого помещают курсор в маркер любого из операторов программирования и нажимают кнопку команды «Add Line».
Созданный таким образом блок выглядит как параллельная главному блоку линия:
Выражения, внесенные в него, будут обособленны от остальной программы, и выполнение соответствующих действий будет связано только с оператором, к которому относится внутренний блок.