Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Мet_MVE.doc
Скачиваний:
0
Добавлен:
01.07.2025
Размер:
583.68 Кб
Скачать

1.4. Программирование

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

Для организации в программе ветвления используется функция If. Она имеет три основные формы:

- If [условие, выражение_1];

- If [условие, выражение_1, выражение_2];

- If [условие, выражение_1, выражение_2, выражение_3].

При выполнении условия (TRUE – ИСТИНА) осуществляется переход к выражению 1, при невыполнении (FALSE – ЛОЖЬ) – к выражению 2. Если же при проверке условия не было получено ни TRUE, ни FALSE, осуществляется переход к выражению 3. Выражения могут быть достаточно сложными, т. е. содержать несколько строк текста программы, разделенные символом точка с запятой (;). Допускаются вложения условных операторов друг в друга, т. е. структуры вида If[…, If[…], If[…]].

Циклы выполняются операторами Do, For, While. Циклы Do:

Do [expr, {imax}] – выполняет imax раз вычисление expr;

Do [expr, {i, imax}] – вычисляет expr с переменной i, последовательно принимающей значения от 1 до imax (с шагом 1);

Do [expr, {i, imin, imax}] – вычисляет expr с переменной i, последовательно принимающей значения от imin до imax с шагом 1;

Do [expr, {i, imin, imax, di}] – вычисляет expr с переменной i, последовательно принимающей значения от imin до imax с шагом di;

Do [expr, {i, imin, imax}, {j, jmin, jmax}, …] – вычисляет expr, организуя ряд вложенных циклов с управляющими переменными j ,i и т. д. Например, цикл Do [ Print[“hello”], { 5 }]; печатает текст “hello” 5 раз.

Другой вид цикла, цикл For, реализуется одноименной функцией:

For[start, test, incr, body];

В ней сначала один раз вычисляется выражение start, а затем поочередно вычисляются выражения body и incr до тех пор, пока условие test не перестанет давать логическое значение True. Когда это случится, т. е. когда test даст False, цикл заканчивается.

Пример обнуления 10 элементов массива:

For [ i = 1, i 10, i + +, a[[ i ]] = 0];

Цикл While имеет достаточно простую конструкцию:

While [ test, expr ];

8

Такой цикл выполняет expr до тех пор, пока test не перестанет давать логическое значение True.

В некоторых случаях удобно использовать условные и безусловные переходы. Безусловный переход выполняется функцией Goto[metka], а метка, на которую выполняется переход, определяется функцией Label[metka]. Условный переход обеспечивает функция Goto вместе с функцией If.

Функция пользователя создается следующим образом:

name[x_, y_, …] = expr;

где x_, y_, … – локальные в теле функции переменные. Например, функция расчета суммы квадратов двух чисел создается в начале программы, а используется везде, где следует получить возвращаемый ею результат:

fun[x_, y_ ] = x^2 + y^2;

.

.

.

z1 = fun[xb, yb];

Если функция содержит несколько выражений, их следует разделить символом точка с запятой (;) и заключить в круглые скобки:

f[x_ ] = ( t = (1+x)^2; t = Expand[ t ]);

Здесь x – локальная переменная, t – глобальная переменная, определенная вне функции.