4 Программирование в системе Maxima

Язык Maxima содержит все необходимые средства для разработки программ: условные инструкции, циклы, массивы.

Вывод данных

Зачастую удобно, чтобы на экран выводился не весь результат работы программы, а только некоторые значения. Для этого необходимо:

1. Отключить вывод на экран результата вычисления выражения, для чего необходимо заменить завершающий символ ; на символ $.

2. Для вывода на экран значения переменной или какой-нибудь другого выражения используется функция print, например, print(i) для вывода значения переменной i.

Блоки команд

Для того, чтобы в теле условной инструкции или цикла выполнить несколько инструкций, необходимо их записать в круглых скобках через запятую, например, блок инструкций для обмена местами переменных a и b может выглядеть так: (t:a, a:b, b:t).

Условная инструкция if

Условная инструкция if имеет следующий синтаксис:

if условие then выражение1 else выражение2

При этом инструкция if возвращает значение одного из двух выражений. Например, присвоить переменной m максимума из двух переменных a и b можно двумя способами:

if a>b then m:a else m:b

или

m: if a>b then a else b

Вместо одной инструкции можно использовать блок инструкций, как указано выше. Слово else и инструкцию после него можно опустить.

Цикл for

Синтаксис цикла for следующий:

for переменная: начальное_значение step шаг thru конечное значение do выражение

Примеры:

for i:2 step 2 thru 100 do print(i)$

Любые части этой конструкции (step, thru) можно опускать.

При необходимости выполнить несколько инструкций необходимо объединить их в блок.

Цикл while

Синтаксис цикла while следующий:

while условие do выражение

В качестве условий можно использовать операторы сравнения <, >, <=, >=, =, # и логические операторы and, or, not

Упражнения

  1. Если числа n и n+2 являются простыми, то они называются простыми числами-близнецами. Найдите все простые близнецы, не превосходящие 100. Подсчитайте количество пар простых близнецов, не превосходящих 1000.
  2. Рассмотрим четверки простых чисел, различающихся только последней цифрой (очевидно, это будут числа вида 10n+1, 10n+3, 10n+7, 10n+9). Найдите все такие четверки, не превосходящие 10000.
  3. Число называется совершенным, если сумма всех его делителей, кроме самого числа, равна этому числу, то есть divsum(n)=2n. Найдите первые 4 совершенных числа.
  4. Два числа называются дружественными, если сумма всех делителей каждого из них (кроме самих этих чисел) равна другому числу, например, 220 и 284. Найдите все пары дружественных чисел, не превосходящих 10000.
  5. Гипотеза Гольдбаха (не доказанная и не опровергнутая до сих пор) гласит, что любое четное число (кроме 2) можно представить в виде суммы двух простых чисел. Проверьте гипотезу Гольдбаха для всех чисел, не превосходящих 105.