Купить Matlab  |  Mathematica  |  Mathcad  |  Maple  |  Statistica  |  Другие пакеты Поиск по сайту
Internet-класс  |  Примеры  |  Методики  |  Форум  |  Download
https://hub.exponenta.ru/


Система компьютерной алгебры GAP.
А.Б.Коновалов

В начало

 

Приложение

Язык программирования GAP
К предыдущему разделуК следующему разделу

2.1  Символы и категории слов в GAP

GAP воспринимает следующие символы: цифры, буквы (верхний и нижний регистры), пробел, символы табуляции и новой строки, а также специальные символы:

" ' ( ) * + , -
. / : ; < = > ~
{ \ ] ^ _ { } #

 Составленные из символов слова относятся к следующим категориям:

  • ключевые слова (зарезервированные последовательности букв нижнего регистра)
  • идентификаторы (последовательности цифр и букв, содержащая не менее одной буквы и не являющаяся ключевым словом)
  • строки (последовательности произвольных символов, заключенная в двойные кавычки)
  • целые числа (последовательности цифр)
  • операторы и ограничители в соответствии со следующим списком:
+ - * / ^ ~
= <> < <= > >=
:= . . . -> , ;
[ ] { } ( )

Следует заметить, что пробелы могут быть использованы для повышения удобочитаемости текста, так как любая последовательность пробелов воспринимается GAP как один пробел. Таким образом, команда

if i<0 then a:=-i;else a:=i;fi;

может быть записана следующим образом:

if  i < 0  then       # если i отрицательное
    a := -i;
else                 # иначе
    a := i;
fi;

2.2  Ключевые слова

Ключевыми словами GAP являются следующие слова:

and do elif else end fi
for function if in local mod
not od or repeat return then
until while quit

2.3  Идентификаторы

Идентификаторы состоят из букв, цифр, символов «_», и должны содержать не менее одной буквы или символа «_». При этом регистр является существенным. Примеры идентификаторов:

a foo LongIdentifier
hello Hello HELLO
x100 100x _100
underscores_case MixedCase

2.4   Выражения

Примерами выражений являются: переменные, обращения к функциям, целые числа, перестановки, строки, функции, списки, записи. С помощью операторов из них могут быть составлены  более сложные выражения. Операторы разбиты на три класса:

  •        операторы сравнения:                   =      <>    <=    in
  •        арифметические операторы:       +      -     *     /      mod   ^
  •        логические операторы:                                 not   and   or           

Пример 1:

gap>2*2;; #два знака ";" подавляют вывод на экран

gap>2*2+9=Fibonacci(7) and Fibonacci(13) in Prime;

true

Следует различать глобальные и локальные переменные, различия которых можно видеть из следующего примера:

Пример 2:

g := 0;            # глобальная переменная g
x := function ( a, b, c )
   local   y;
   g := c;  
  # c - аргумент функции x
   y := function ( y )
       local  d, e, f;
       d := y;
# y - аргумент функции y
       e := b; # b - аргумент функции x
       f := g; # g - глобальная переменная g
       return d + e + f;
   end;
   return y(a);
# y-локальная переменная функции x
end;

2.5  Обращения к функциям

Формат:

       function-var()

       function-var( arg-expr {, arg-expr} )

Пример:

    gap> Fibonacci( 11 );
    # обращение к функции "Fibonacci" с аргументом 11
    89
    gap> G.operations.RightCosets(G,Intersection(U,V));;

    #обращение к функции "G.operations.RightCosets",
    #в котором второй аргумент определяется
    #обращением к другой функции

2.6  Сравнение выражений

Формат:

       left-expr = right-expr

       left-expr <> right-expr

Примечание: любые объекты сравнимы между собой. Объекты различных типов всегда различны, т.е. = приведет к false, и <> — к true. Кроме того, для них определено отношение «меньше».

Операторы сравнения имеют больший приоритет по сравнению с логическими операторами, но меньший по сравнению с арифметическими. Например, a*b = c and d интерпретируется как ((a*b)=c) and d). Еще один пример (сравнение, левая часть которого является выражением ):

     gap> 2 * 2 + 9 = Fibonacci(7);
     true

2.7  Арифметические операторы

Формат:

     + right-expr

     - right-expr

     eft-expr + right-expr

     left-expr - right-expr

     left-expr * right-expr

     eft-expr / right-expr

     left-expr mod right-expr

     left-expr ^ right-expr

Значение, как правило, зависит от типа операндов.  Mod определен только для целых и рациональных чисел. Для элемента группы ^ означает возведение в степень, если правый операнд - целое число, а если он — также элемент группы, то сопряжение с его помощью. Приоритет операторов (по убыванию):

1) ^

2)  унарные + и -

3)  *,  /,  mod

4)  + и -

Пример:  -2 ^ -2 * 3 + 1 означает (-(2 ^ (-2)) * 3) + 1 .

Арифметические операторы имеют наивысший приоритет по сравнению с операторами сравнения и логическими операторами.

В начало страницы К предыдущему разделуК следующему разделу

Приложение

| На первую страницу | Поиск | Купить Matlab

Исправляем ошибки: Нашли опечатку? Выделите ее мышкой и нажмите Ctrl+Enter


Copyright © 1993-2024. Компания Softline. Все права защищены.

Дата последнего обновления информации на сайте: 04.03.17
Сайт начал работу 01.09.00