
- •5 Mathematica. Назначение Ядра пакета. Понятие сессии.
- •6 Mathematica. Главный цикл пакета.
- •Mathematica. Формы представления выражения.
- •Mathematica. Структура выражения. Функции, ее определяющие
- •Mathematica. Назовите не менее пяти видов выходных форматов выражения.
- •Mathematica. Атомарные объекты, входной формат и полная форма каждого вида
- •Mathematica. Функции-конверторы, позволяющие преобразовывать тип атомарных объектов.
- •Mathematica. Функции, определяющие свойства атомарных объектов.
- •Mathematica. Встроенные константы и предопределенные переменные пакета.
- •Mathematica. Оператор Apply и семейство операторов Map.
- •Mathematica. Укажите четыре формы записи функций.
- •Mathematica. Чистые и анонимные функции.
- •Mathematica. Построение функции пользователя.
- •Mathematica. Что такое образцы и где они используются. Проверка на соответствие образцу
- •Mathematica. Семейство Set функций.
- •Mathematica. Организация справочной системы
- •Mathematica. Именование образца и его части. Примеры
- •Mathematica. Образцы, соответствующие условию. Примеры
- •Mathematica. Образцы, содержащие альтернативу. Примеры
- •Mathematica. Функции добавления, извлечения, удаления элементов из списков
- •Mathematica. Операции над списками как над множествами.
- •Mathematica. Изменение структуры списка
- •Mathematica. Функции Inner и Outer работы со списками
- •Mathematica. Стандартныей порядок вычисления выражения
- •Mathematica. Как можно изменить стандартный порядок вычисления выражения
- •Mathematica. Конструкции, управляющие ходом вычисления
- •Mathematica. Управляющие структуры выбора
- •Mathematica. Управляющие структуры повторения
- •Mathematica. Обработка аварийного (намеренного) выхода из упарвляющих конструкций
- •Mathematica. Двумерные графический примитивы
- •Mathematica. Трехмерные графические примитивы
- •Mathematica. Построение матриц и операции над ними, особенности.
- •Mathematica. Преобразование алгебраических выражений.
- •Mathematica. Решение уравнений и систем.
- •Mathematica. Функции двумерной графики, их опции.
- •Mathematica. Функции трехмерной графики, их опции.
Mathematica. Управляющие структуры повторения
Цикл (loop) - управляющая структура, которая вызывает повторяющееся выполнение некоторой последовательности инструкций. Повторяющиеся действия определяют тело цикла (loop body).
Всякая конструкция повторения имеет общие компоненты:
Момент, когда поток управления передается первому выражению внутри цикла, называют точкой входа данного цикла,
Очередной проход через цикл, реализующий повторяющиеся действия, называют итерацией,
Точка, в которой повторение тела цикла завершается и управление передается инструкции, следующей за структурой повторения, называют точкой выхода из цикла.
При моделировании явлений мы встречаемся с двумя основными типами циклических процессов:
Цикл, управляемый счетчиком (count-controlled),
Цикл, управляемый событием (event-controlled)
Цикл, управляемый счетчиком, выполняется заданное число раз. Цикл, управляемый событием, завершается, когда внутри него происхо¬дит событие, дающее сигнал к прекращению работы.
Циклы, управляемые счетчиком, используют переменную управле¬ния циклом (loop control variable). Перед входом в цикл эта переменная инициализируется, а в теле цикла она должна получать приращение. На выходе из цикла переменная имеет значение, отличное от значения при входе в цикл. Такое состояние переменной цикла не совсем естественно. Удобнее, чтобы переменная цикла изменяла свои значения только внут¬ри цикла, то есть была локальной. Для этого существует механизм лока¬лизации переменных, который используется в конструкциях повторения Do, Table, Sum, Product. Одним из аргументов этих функций является итератор, или список итераторов, которые, являясь локальными пере¬менными, управляют количеством повторений вычислений.
Циклы, управляемые событием, делятся на две группы:
• Цикл с предусловием,
• Цикл с постусловием
Конструкция повторения While [test, loop body] является циклом с предусловием. При этом простое или составное выра¬жение loop body вычисляется до тех пор, пока условие test истинно. Пе¬ред каждой итерацией проверяется условие test. В случае, когда условие test становится ложным, управление передается инструкции, следующей за оператором While в потоке управления. Конструкция повторения
For [start, test, increment, loop body]
вычисляет выражение start, затем - выражение test. В случае, когда test имеет значение True, выполняется loop body и increment с целью измене¬ния счетчика, и снова вычисляется test. В случае, когда значением test является False, цикл завершает работу.
Тело цикла может содержать управляющую структуру - так созда¬ются вложенные циклы или более сложные управляющие структуры. При этом циклы и условные операторы вкладываются друг в друга пол¬ностью, они не могут частично пересекаться.
Mathematica. Обработка аварийного (намеренного) выхода из упарвляющих конструкций
Для выхода из управляющих структур до завершения их естественного выполнения используются операторы Break, Continue, Return, Throw, Abort, Interrupt. Оператор Break [ ] требует немедленного выхода из самой внутренней структуры, но не покидая внешнюю. Управление при этом передается в точку выхода внутренней структуры. Оператор Continue [ ] прерывает только текущую итерацию, но не весь цикл в целом. Он перемещает управление, минуя последующие выражения итерации, на этап приготовления к новой итерации. Оператор Return [expression] прерывает выполнение управляющей структуры, позволяя при этом вернуть вычисленное выражение expression.
Для аварийного или управляемого выхода из процесса вычислений Mathematica предлагает пару объектов, представляющих одну структуру. Простейший вид этой конструкции
Catch [expression [Throw [ value ] ] ] Catch-оператор образует конструкцию, согласно которой при встрече внутри нее выражения Throw [value ] производится вычисление выражения value и его результат «выбрасывается» Catch. В этом случае вычисления внутри конструкции прекращаются, результат выполнения оператора Catch - значение value.
Catch[Do[If[i>3,Throw[i]],{i,10}]] Конструкция Catch может не иметь onepaTopaThrow, в этом случае она возвращает значение вычисленного выражения expression, содержащегося внутри нее. Catch[NestList[l/(#+1)&,-2.5,б]] {-2.5, -0.666667, 3., 0.25, 0.8, 0.555556, 0.642857 } Catch[NestList[If[#>1,Throw[#],l/(#+l)]&,-2.5,6]] 3. Оператор Throw [value] может содержаться в другом выражении, которое, будучи вызванным функцией Catch, обеспечит передачу вычисленного выражения value.