Слайд 1Алгоритмы решения задач стереометрии в системе GAP
Слайд 3
GAP - свободно распространяемая, открытая и расширяемая система компьютерной
алгебры, название которой означает "Groups, Algorithms and Programming".
В настоящее
время GAP является уникальным всемирным совместным научным проектом, объединяющим специалистов в области алгебры, теории чисел, математической логики, информатики и др. наук из различных стран мира. Разработка системы была начата в 1986 г.
Слайд 4
Основные особенности GAP:
язык программирования, внешне напоминающий Паскаль;
стандартные типы основных
алгебраических объектов;
удобные типы переменных;
более 4 тысяч библиотечных функций;
обширная библиотека данных;
прикладные
программы охватывают многие разделы алгебры;
подробное и удобное описание в формате «гипертекст»
Слайд 5Основные особенности GAP:
бесплатное получение по сети Internet вместе с исходными
текстами, являющимися незаменимым наглядным пособием для освоения GAP;
работа в операционных
системах DOS, Windows, Unix, Linux, MacOS;
работа с процессором типа 386 и выше с ОЗУ от 8 Mb;
занимаемое место на диске - от 10 до 100 Mb в зависимости от объема инсталляции;
способность работать с ОЗУ до 128 Mb и файлом подкачки до 128 Mb.
Слайд 6
Язык программирования GAP
Ключевыми словами GAP:
Примерами выражений являются: переменные,
обращения к функциям, целые числа, перестановки, строки, функции, списки, записи.
С помощью операторов из них могут быть составлены более сложные выражения. Операторы разбиты на три класса:
операторы сравнения: =, <>, <, <=, >, >=, in;
арифметические операторы: +, -, *, /, mod, ^;
логические операторы: not, and, or.
Слайд 7
Пример 1:
gap>2*2;; #два знака ";" подавляют вывод на
экран gap>2*2+9=Fibonacci(7) and Fibonacci(13) in Prime; true
Сравнения выражений
Формат: left-expr =
right-expr left-expr<>right-expr
Примечание: любые объекты сравнимы между собой. Объекты различных типов всегда различны, т.е. = приведет к false, и <> — к true. Кроме того, для них определено отношение «меньше».
Слайд 9Команда присваивания.
Формат: var := expr;
Команда вызова процедуры.
Формат: procedure-var();
procedure-var(arg-expr {, arg-expr}
);
Команда IF.
Формат:
if bool-expr1 then statements1
{ elif bool-expr2 then statements2 }
[ else statements3 ]
fi;
Функции.
Формат: function ( [ arg-ident {, arg-ident} ] ) [ localloc-ident {, loc-ident} ;
Слайд 10
>VectorAlgebra[Nagle]:=proc(R,a,n,c) local
M,i,MN,Ma,MNa,ab,t,k,gab:
M:=(i)->[R*cos(2*Pi*i/n),R*sin(2*Pi*i/n),0]:
Ma:=(i)->[R*cos(2*Pi*i/n)+a[1],
R*sin(2*Pi*i/n)+a[2],a[3]]:
MN:=plots[polygonplot3d]([seq(Ma(i),i=1..n)],style
=WIREFRAME,color=c):MNa:=plots[polygon-
plot3d]([seq(M(i),i=1..n)]
,style=WIREFRAME,color=c):
ab:=(i,t)->[seq(M(i)[k]+a[k]*t,k=1..3)]:
gab:=(i)-
>plots[spacecurve](ab(i,t),t=0..1,color=c):
plots[display](MN,MNa,seq(gab(i),i=1..n)):end
proc:
Результат исполнения этой процедуры показан на
Рис.1:
VectorAlgebra[Nagle]:=proc(R,a,n,c)
Слайд 11
Рисунок 1 – Графическая иллюстрация призмы VectorAlgebra[Nagle](2,[1,2,3],5,red)
Слайд 12Пользовательская библиотека программных процедур "Vector-Algebra" содержит следующие процедуры:
Reper(A,a,b,c,g,c1,c2,c3)
Reper_name(A,a,b,c,g,c1,c2,c3,p,t,r,d)
Reper_pr
(A,a,b,c,g,x1,y1,z1,x2,y2,z2,c1,c2, c3,c4,c5,p,t,r,d)
parallelogram(A,a,b)
paralleiepiped_ABCD](A,a,b,c) и pyramid_ABCDE](A,a,b,c)
Слайд 13
Рисунок 2 – Исполнение графической иллюстрации сложения векторов
S_vec ([1,2,1],[1,1,1],[2,3,2]);
Слайд 14
Рисунок 3 – Исполнение процедуры векторного произведения
Prod_vec
([1,2,1], [1,1,-1],[2,3,2]);
Слайд 15
Рисунок 4 – Исполнение графической иллюстрации параллельной и
перпендикулярной составляющих вектора Vec_Pr([0,0,0],[10,10,10],[2,4,3])