русс | укр

Языки программирования

ПаскальСиАссемблерJavaMatlabPhpHtmlJavaScriptCSSC#DelphiТурбо Пролог

Компьютерные сетиСистемное программное обеспечениеИнформационные технологииПрограммирование

Все о программировании


Linux Unix Алгоритмические языки Аналоговые и гибридные вычислительные устройства Архитектура микроконтроллеров Введение в разработку распределенных информационных систем Введение в численные методы Дискретная математика Информационное обслуживание пользователей Информация и моделирование в управлении производством Компьютерная графика Математическое и компьютерное моделирование Моделирование Нейрокомпьютеры Проектирование программ диагностики компьютерных систем и сетей Проектирование системных программ Системы счисления Теория статистики Теория оптимизации Уроки AutoCAD 3D Уроки базы данных Access Уроки Orcad Цифровые автоматы Шпаргалки по компьютеру Шпаргалки по программированию Экспертные системы Элементы теории информации

E - функция


Дата добавления: 2015-07-23; просмотров: 832; Нарушение авторских прав


Аргументы этой функции — три целых числа между 0 и 2 включительно. Она определяет, сколько раз необходимо сделать перестановку двух аргументов, чтобы вернуться к последовательности [0, 1, 2] из той последовательности [i, j, k], которая передана ей в качестве аргументов.

Конкретно: e(i, j, k) = 1, если [i, j, k]— четная перестановка [0, 1, 2], и e(i, j, k) = -1, если [i, j, k]- нечетная перестановка . Это объясняет, почему e(0, 1, 2) = 1.

Например, e(2, 0, 1) = 1, поскольку, чтобы перейти из [2, 0, 1] обратно к [0, 1, 2], требуется дважды менять аргументы местами. С другой стороны, e(0, 2, 1) = -1, поскольку чтобы перейти из [0, 2, 1] обратно к [0, 1, 2], необходимо менять аргументы местами один раз. Если два аргумента одинаковы, например e(0, 1, 1), нельзя вернуться к [0, 1, 2], поэтому функция возвращает 0.

Хотя эта функция используется не очень часто, она незаменима, когда нужно посчитать перестановки. Очень трудно выполнить эту замысловатую операцию, используя комбинации любых других функций Mathcad.

e (i, j, k) Полностью антисимметричный тензор ранга 3. i, j и k должны быть целыми числами между 0 и 2 включительно (или между ORIGIN и ORIGIN + 2 включительно, если ORIGIN 0). Результат 0, если любые два аргумента одинаковы, 1 для четных перестановок,-1 для нечетных перестановок.

 

 

Разделы  
· Создание программы Как написать простую программу. Локальный оператор присваивания.
· Условные операторы Выполнение операторов в зависимости от условий.
· Циклы Использование циклов “while” и “for” для повторяющихся вычислений.
· Программы в программах Использование подпрограмм и рекурсии в программе.
· Примеры программ Примеры программ, иллюстрирующие полезные приемы программирования и показывающие мощь программного аппарата Mathcad.

 



 

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

Главным различием между программой и выражением является способ задания вычислений. При использовании выражения алгоритм получения ответа должен быть описан одним оператором. В программе может быть использовано столько операторов, сколько нужно. Можно рассматривать программу как “составное выражение.”

Следующий пример показывает, как написать простую программу для вычисления функции

Хотя этот пример настолько прост, что, может быть, и программа в этом случае не нужна, он позволяет показать, как нужно отделять друг от друга операторы, и как использовать локальный оператор присваивания “ ”.

· Введите левую часть определения функции и знак равенства “:=” и удостоверьтесь в том, что появилось поле ввода.

· Теперь нужно открыть панель программирования, щёлкнув по кнопке программирования в панели управления. Затем нужно нажать на панели кнопку“Add Line” или на клавиатуре клавишу ]. Появится вертикальный столбец с двумя полями ввода для занесения операторов, образующих программу. Поля ввода для дополнительных операторов открываются с помощью щелчка по кнопке “Add Line”.

· Перейдите в верхнее поле ввода, нажав клавишу [Tab]. Напечатайте z и нажмите кнопку “ ” на панели программирования или клавишу для того, чтобы ввести “ ”.

· В поле ввода справа от “ ” введите x/w.

· Последнее поле ввода предназначено для задания возвращаемого функцией значения log(z).

Теперь эту функцию можно использовать точно так же, как любую другую функцию. На Рисунке 1 эта функция показана вместе с функцией, ей эквивалентной, но определенной на одной строке вместо двух. Отметим, что переменная z не определена вне программы. Определение z внутри программы является локальным и действительно только внутри этой программы.

Программа может состоять из любого числа операторов. Чтобы прибавить оператор, нужно щёлкнуть по кнопке “Add Line” на панели программирования. Mathcad добавляет поле ввода внизу выделенного к этому моменту оператора. Чтобы исключить позицию ввода, ее нужно выделить, заключив в выделяющую рамку, и нажать клавишу [Del].

Рисунок 1: Определение одной и той же функции с помощью программы и через выражение.

На Рисунке 2 приведен несколько более сложный пример с формулой для корня квадратного уравнения. Хотя вычисление этого корня может быть описано одной формулой, как это показано в верхней половине рисунка, однако удобнее вычислять его с помощью последовательности простых операторов, как показано в нижней половине рисунка. Это позволяет избежать редактирования громоздких формул.

Рисунок 2: Определение более сложной функции в виде выражения и в виде программы.

Таким образом, программа Mathcad есть выражение, состоящее из последовательности операторов, каждый из которых является, в свою очередь, выражением. Как и любое другое выражение, программа Mathcad возвращает значение. Этим значением является значение последнего выражения, выполненного программой. Возвращаться может просто число, как на Рисунках 1 и 2, или массив чисел, как на Рисунке 6, или даже их комбинация, описанная в разделе “Составные массивы” .

Нижеследующие разделы описывают использование условных операторов и различных конструкций операторов цикла для управления ходом выполнения программы.

 

 

Обычно Mathcad выполняет операторы программы в порядке сверху вниз. Могут встретиться случаи, в которых какой-нибудь оператор нужно выполнить только в случае выполнения некоего условия. Этого можно добиться с помощью оператора “if”. Ниже приводится пример определения функции, задаваемой разными аналитическими соотношениями на разных участках области определения:

· Введите левую часть определения функции и знак равенства “:=” и удостоверьтесь в том, что появилось поле ввода.

· Нажмите кнопку “Add Line” на панели программирования или клавишу ]. Появится вертикальный столбец с полями ввода для операторов программы.

· Перейдите в верхнее поле ввода и щёлкните по кнопке “if” на панели программирования, либо нажмите клавишу }.

· Правое поле ввода предназначено для булевого выражения. Левое поле ввода предназначено для значения, которое будет иметь выражение, если логическое выражение в правом поле истинно.

· Выделите оставшееся поле ввода и нажмите кнопку “otherwise” на панели программирования.

· Введите в оставшееся поле значение, которое программа должна возвратить в случае, если логическое выражение ложно.

На Рисунке 3 показан график этой функции. Она имеет только два варианта возвращаемого значения и поэтому легко может быть определена с помощью встроенной функции if, как на Рисунке 3. Если же число вариантов больше двух, то использование встроенной функции if быстро становится обременительным, пример чего приведен на Рисунке 4.

Рисунок 3: Использование оператора “if” для задания кусочно-непрерывной функции.

Рисунок 4: Сравнение программного оператора “if” со встроенной функцией “if”.

 

 

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

· Если заранее точно известно необходимое число выполнений цикла, то целесообразно использовать цикл типа for.

· Если цикл должен завершиться по выполнении некоторого условия, причем момент выполнения этого условия заранее не известен, то целесообразно использовать цикл типа while.

Циклы “while”

Цикл типа while управляется истинностью некоторого условия, вследствие чего нет необходимости знать заранее число выполнений цикла. Важно только, чтобы где-нибудь внутри цикла или в другом выполняемом участке программы присутствовал оператор, делающий условие цикла ложным. В противном случае цикл будет выполняться бесконечно. Если выполняемая программа зациклилась, то ее можно остановить нажатием клавиши[Esc].

Чтобы записать цикл типа while, нужно:

· Щёлкнуть по кнопке “while” в панели программирования.

· Напечатать условие выполнения в верхнем поле ввода. Обычно это — логическое выражение, подобное показанному.

· Записать в оставшемся поле ввода выражение, подлежащее повторяющемуся вычислению. Введение дополнительных полей ввода осуществляется путем нажатия кнопки “Add Line” на панели программирования.

На Рисунке 5 показана чуть более объемная программа, включающая цикл типа while. Обнаружив заголовок цикла типа while, Mathcad проверяет условие цикла. Если оно истинно, то Mathcad выполняет тело цикла и снова проверяет условие. Если оно ложно, то Mathcad заканчивает выполнение цикла.

Рисунок 5: Использование цикла типа “while” для отыскания первого вхождения заданного числа в матрицу.

Оператор “break”

Часто удобно выйти из цикла или остановить исполнение программы при выполнении некоторого условия. Например, для программы на Рисунке 5 существует возможность зацикливания. Если каждый элемент из v меньше, чем thresh, то условие никогда не станет ложным и поиск выйдет за пределы вектора, что приведет к сообщению об ошибке “индекс вне границ”. Чтобы это не случилось, можно использовать оператор break, как показано на Рисунке 6.

Программа на Рисунке 6 возвратит 0 в случае, если не будет найдено ни одного элемента, превосходящего thresh. В противном случае она возвращает индекс и значение первого элемента, превосходящего thresh.

Чтобы ввести оператор break, нужно щёлкнуть по кнопке “break” на панели программирования. Подчеркнем, что в примере на Рисунке 6 нужно сначала щёлкнуть по кнопке “break” и только потом по кнопке “if”.

Рисунок 6: Пример из Рисунка 5, измененный таким образом, чтобы возвращались индекс и значение элемента массива. Оператор “break” использован для предотвращения ошибки в тех случаях, когда величина thresh оказывается слишком большой.

Циклы “for”

Цикл типа for является циклом, число выполнений которого определено заранее. Число выполнений определятся переменной цикла, задаваемой в его начале.
Для создания цикла типа for:looping;for loopfor loop

· Щёлкните по кнопке “for” на панели программирования.

· Напечатайте в поле ввода слева от знака Î имя переменной цикла.

· Введите в поле справа от знака Î диапазон значений, в котором должна изменяться переменная цикла. Форма задания диапазона в точности такая же, как и для дискретного аргумента. Подробности см. в Главе “Дискретные аргументы”

· В оставшееся поле ввода впечатайте выражение, подлежащее повторяющимся вычислениям. Обычно оно включает в себя переменную цикла. Дополнительные поля ввода можно создать щелчком по кнопке “Add Line” в панели программирования.

В верхней половине Рисунка 7 показан цикл типа for, используемый для сложения последовательности целых чисел. Неопределенная переменная на Рисунке 7 напоминает о том, что определение переменной цикла является локальным для программы, ее содержащей, и не видно нигде вне программы.

В нижней половине рисунка приведен пример, в котором переменная цикла определена не с помощью диапазона, а через элементы вектора. Хотя выражение справа от символа Î является обычно диапазоном, оно может быть также вектором или списком скаляров, диапазонов и векторов, разделенных запятыми.

Рисунок 7: Использование цикла типа “for” с переменными цикла двух различных видов.

 

 

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

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

· Один из операторов программы можно сделать, в свою очередь, программой.

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

· Можно определить функцию рекурсивным образом.

Остальная часть этого раздела поясняет эти методы на примерах.



<== предыдущая лекция | следующая лекция ==>
Импульсные и ступенчатые функции | Подпрограммы


Карта сайта Карта сайта укр


Уроки php mysql Программирование

Онлайн система счисления Калькулятор онлайн обычный Инженерный калькулятор онлайн Замена русских букв на английские для вебмастеров Замена русских букв на английские

Аппаратное и программное обеспечение Графика и компьютерная сфера Интегрированная геоинформационная система Интернет Компьютер Комплектующие компьютера Лекции Методы и средства измерений неэлектрических величин Обслуживание компьютерных и периферийных устройств Операционные системы Параллельное программирование Проектирование электронных средств Периферийные устройства Полезные ресурсы для программистов Программы для программистов Статьи для программистов Cтруктура и организация данных


 


Не нашли то, что искали? Google вам в помощь!

 
 

© life-prog.ru При использовании материалов прямая ссылка на сайт обязательна.

Генерация страницы за: 0.089 сек.