1.24 Программирование в Математике 73
и возвращает f, если результат False.
If[condition, t, f, u]
возвращает t, если результатом вычисления condition будет True,
возвращает f, если результат False и возвращает u, если в результате
вычисления condition не будет получено ни True, ни False.
Примеры.
1. If [1 > 2, a, b] ⇒ b.
2. If [x == y, a, b] ⇒ If[x == y, a, b]. Если x,y не определены, то
уравнение x==y не есть высказывание, поэтому Математика непонят-
ные, но синтаксически правильные команды повторяет в своем выводе.
3.If[x == y, a, b, c] ⇒ c.
4. Определим функцию f[x ] := If[x > 0, x
2
, −x
2
] и построим ее
график Plot[f[x],{x,-2,2}].
5. Напомним, что тройное равенство p===q означает, что p и q
синтаксически тождественны. Определим функцию
g[x ] := If[Head[x] === P lus, x
2
, x
3
]
и найдем значения g[a+b]; g[a]. Аргументом функции g может быть
любое выражение. Если заголовок Head[x] выражения x есть Plus (это
так, если x=a+b), то g[a + b] = (a + b)
2
, а если заголовок x не Plus,
(Head[a]=Symbol), то g[a] = a
3
.
Множественное ветвление может быть организовано с помощью ко-
манд Which и Switch:
Which[test
1
, value
1
, test
2
, value
2
, ...] - команда проверяет, начиная
с первого, все высказывания test
i
. Если i-ое высказывание test
i
впер-
вые приняло значение True, то команда возвращает value
i
.
Switch[expr, form
1
, value
1
, form
2
, value
2
, ...] вычисляет expr, срав-
нивает его последовательно с каждым form
i
, затем вычисляет и воз-
вращает то value
i
, которое соответствует первому совпадению.
Примеры.
1. W hich[1 == 2, 1, 2 == 2, 2, 3 == 3, 3] ⇒ 2.
2. Определим функцию - модуль числа f[x] = |x| : f[x ] := W hich[x <
0, −x, x >= 0, x]. Построим ее график: Plot[f[x],{x,-3,3}]. Эти две коман-
ды можно объединить в одну:
P lot[W hich[x < 0, −x, x >= 0, x], {x, −3, 3}].
3. Определим функцию: f[x
] := Swtch[x, Integer, x
3
, Real, x
2
]. Фун-
кция проверяет тип числа x: f[3]=27,f[5.5]=30.25.
Задачи. 1). Функцию f[x ], определенную на промежутке [0,4] ра-
венствами: