* Данный текст распознан в автоматическом режиме, поэтому может содержать ошибки
1080
Программирование в системах компьютерной алгебры
Вся программа с циклом является содержанием одной ячейки, и ее листинг охвачен квадратной скобкой. Для иллюстрации вывода здесь использована ко манда Print в теле цикла. Нетрудно заметить, что управляющая переменная цик ла может иметь как целочисленные, так и вещественные значения. Возможность организации цикла в цикле иллюстрируется следующим примером:
Do[Do[Print[i," 1 1 2 1 2 3 1 3 4 2 1 3 2 2 4 2 3 5 3 1 4 3 2 5 3 3 6 ",j," ",i+j],{j,1,3}],{i,1,3}];
Здесь используются два цикла с управляющими переменными i и j. Командой Print выводятся значения переменных i и j, а также их суммы i+j. Следующий пример показывает применение цикла Do для задания функции, вычисляющей n ое число Фибоначчи:
fibonacci[(n_Integer)?Positive] := Module[{fn1 = 1, fn2 = 0}, Do[{fn1, fn2} = {fn1 + fn2, fn1}, {n – 1}]; fn1] fibonacci[10] 55 fibonacci[100] 354224848179261915075 fibonacci[-10] fibonacci[-10]
Обратите внимание на применение в этом примере функции Module. Она со здает программный модуль с локальными переменными (в нашем случае fn1 и fn2), в котором организовано рекуррентное вычисление чисел Фибоначчи. Наконец, последний пример показывает применение цикла Do для создания цепной дроби:
x = y; Do[x = 1/(1 + k x), k, 2, 8, 2]; x
Другой вид цикла For реализуется функцией:
For[start, test, incr, body]
В ней внутренняя управляющая переменная вначале приобретает значение start, затем циклически меняется от этого значения до значения body с шагом из менения incr – и так до тех пор, пока условие test не перестанет давать логическое значение True. Когда это случится, то есть test даст False, цикл заканчивается.