Предыдущая: task3, Вверх: Top


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

Язык Maple содержит все необходимые средства для разработки программ: условные инструкции, циклы, массивы. Программы набираются в рабочем листе и исполняются после нажатия клавиши <Enter>. Чтобы выполнить программу еще раз необходимо поставить курсор на строку с программой и нажать клавишу <Enter> еще раз.

Как и в языке C++, в программах на Maple не важны пробелы, переводы строк и отступы в программах, но для повышения читаемости программы длинные строки рекомендуется разбивать на несколько строк, для этого используется комбинация <Shift>+<Enter>.

Вывод данных

Значение любого выражения, заканчивающегося символом ';' будет выведено на экран, а заканчивающегося символом ':– не будет выведено. Но внутри инструкций if, for, while символы ';' и ':' эквивалентны: если инструкция if ... end if заканчивается символом ';', то значения всех выражений внутри инструкции if будут напечатаны, независимо от того, какими символами ';' или ':' они разделены. Аналогично и в случае разделителя ':'.

Поэтому чтобы избежать вывода большого количества информации внутри циклов, обычно циклы завершают разделителем ':', а для вывода информации используют функцию print, которая выводит на экран все свои аргументы. Пример:

     > a:=5:
     > print("a=",a);
     
"a=", 5

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

Синтаксис условной инструкции if такой:

     > if условие then инструкции end if

где условие может содержать операторы сравнения =, <, >, <=, >=, <>, логические операторы and, or, not, константы true и false.

инструкции – одна или несколько инструкций Maple, разделенных ';' или ':'. После инструкции end if также должен следовать разделитель.

Внутри инструкции if также может встречаться блок else в виде:

     > if условие
     then инструкции
     else инструкции
     end if

а также одна или несколько инструкций множественного ветвления

     elif условие then инструкции

Итак, в наиболее общем виде инструкция if выглядит так:

     > if условие then инструкции
     elif условие then инструкции
     elif условие then инструкции
     ...
     else инструкции
     end if

Цикл for

Синтаксис цикла for такой:

     > for переменная from значение to значение by значение do инструкции end do

где переменная – имя переменной, меняющейся в цикле, from значение – начальное значение переменной, to значение – конечное значение, by значение – величина, на которую изменяется значение переменной с каждой итерацией.

Если опустить параметр from, то начальное значение переменной будет установлено в 1, если опустить параметр to, то цикл будет бесконечным, если опустить параметр by, то переменная будет увеличиваться на 1.

Примеры:

     > for i from 1 to 10 do print(i); end do:
     > for i from 0 to -10 by -1 do print(i); end do:

Цикл while

Синтаксис цикла while такой:

     > while условие do инструкции end do

где условие – проверяемое логическое условие. Цикл будет выполняться, пока условие верно. Пример:

     > i:=1; while i<10 do i:=i*2; end do;

Для прерывания цикла for и while используется инструкция break. Для продолжения цикла со следующей итерации (аналог инструкции continue в С++) используется инструкция next.

Циклов с постусловием в Maple нет.

Упражнения

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