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


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

В начало

 

Приложение

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

GAP позволяет не только производить вычисления в интерактивном режиме, но и сохранять программы для дальнейшего их применения. Файлы с программами, которые должны иметь расширение "g", создаются и редактируются с помощью любого текстового редактора.

Как правило, программа состоит из главной части и набора функций. При чтении программы (с помощью команды Read) команды, содержащиеся в главной части выполняются непосредственно, а функции только лишь определяются, и деляют возможным последующее обращение к ним.

При разработке программ в MS Windows удобно одновременно запускать:

  • GAP;
  • текстовый редактор, в котором открыта разрабатываемая программа;
  • средство просмотра html-файлов (например, Internet Explorer или Netscape Navigator) для чтения описания GAP в гипертекстовом формате (начальный файл — GAP\HTM\Chapters.html).

Кроме того, набор программ удобно осуществлять на базе файла протокола, создаваемого с помощью команды LogTo("file.log");.

Пример: составить программу, которая определяет, является ли группа G конечной р-группой для некоторого р, и возвращает список, первый элемент которого - true или false в зависимости от результата проверки, а второй - соответствующее значение р, если Gp-группа, и false — иначе.

 1. Создаем с помощью текстового редактора файл "prog.g" следующего содержания:

>    Print(" Loading IsFinitePGroup()", "\n");
    IsFinitePGroup:=function(G)
   local divisors; # список простых делителей
    if IsFinite(G)=false then
      return [false, false];
    else
      d i vi sors:=Set(Factors(Size(G)));
      if Length(divisors)=1 then
        return [true, d ivisors[1] ];
      else
        return [false, false];
      fi;
    fi;
    end;;

 2. Сохраняем этот файл в каталоге, выбранном с учетом рекомендаций параграфа 1.2.

 3. Запустим GAP и определим файл протокола log.txt:

>    gap> LogTo("log.txt");

Теперь зададим группу диэдра порядка 8:

    gap> G:=DihedralGroup(8);
    Group( (1,2,3,4), (2,4) )

Попробуем обратиться к функции из файла prog.g:

    gap> IsFinitePGroup(G);
    Error, Variable: 'IsFinitePGroup' must have a value

Ошибка вызвана тем, что для использования функции этот файл сначала необходимо прочитать. При этом, если он содержит синтаксические ошибки, то будут выданы сообщения о них. Чтение производится командой Read:

    gap> Read("prog.g");
    Loading IsFinitePGroup()

Ошибки обнаружены не были. Было выдано сообщение, включенное для удобства в файл prog.g.

Теперь проверим работу программы для группы диэдра порядка 8, а также для симметрической группы S8.

    gap> IsFinitePGroup(G);
    [ true, 2 ]
>    gap> H:=SymmetricGroup(8);
>    >Group( (1,8), (2,8), (3,8), (4,8), (5,8), (6,8), (7,8) )
    gap> IsFinitePGroup(H);
    [ false, false ]

Очевидно, что программа работает корректно.

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

Приложение

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

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


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

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