* Данный текст распознан в автоматическом режиме, поэтому может содержать ошибки
1084
Программирование в системах компьютерной алгебры
Следующий пример поясняет задание программной процедуры с циклом Do, выход из которой задается с помощью функции If и директивы прерывания Aborted[ ]:
x:=1;Print["i x"]; Do[{If [i==5,Abort[],None], i+=1;x+=2*i;Print[i," ",N[x]]}, {i,1,100}] i x 2 5. 3 11. 4 19. 5 29. $Aborted Return[x] Return[29]
Тот же пример, но с применением директивы выхода из цикла Break[] в функ ции If показан ниже:
x:=1;Print["i x"]; Do[{If [i==5,Break[],None], i+=1;x+=2*i;Print[i," ",N[x]]}, {i,1,100}] i x 2 5. 3 11. 4 19. 5 29. Return[x] Return[29]
В данном случае никаких специальных сообщений о выходе из цикла не дается. Функция If обеспечивает ветвление максимум по двум ветвям программы. Для ветвления по многим направлениям можно использовать древовидные структуры программ с множеством функций If. Однако это усложняет программы.
14.3.11. Функции переключатели
Для организации ветвления по многим направлениям в современных языках про граммирования используются операторы переключатели. В системе Mathe matica множественное ветвление организовано с помощью функций Which и Switch: • Which[test1, value1, test2, value2, ...] – вычисляет в порядке следования каждый из testi, сразу возвращая именно ту величину из valuei, которая относится к первому testi, давшему True. • Switch[expr, form1, value1, form2, value2, ...] – вычисляет expr, затем срав нивает его последовательно с каждым formi, вычисляя и возвращая то valuei, которое соответствует первому совпадению.