Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Комп'ютерна алгебра.Навчально-методичний посібн...doc
Скачиваний:
24
Добавлен:
24.08.2019
Размер:
683.01 Кб
Скачать

2.7 Арифметичні оператори

Формат:

+ right-expr - right-expr left-expr + right-expr left-expr - right-expr left-expr * right-expr left-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

Арифметичні оператори мають найвищий пріоритет в порівнянні з операторами порівняння і логічними операторами.

2.8 Привласнення

Командами в GAP називаються: привласнення, виклики процедур, структури if, while, repeat, for, а також команда return. Всі команди закінчуються крапкою з комою ";".

Привласнення мають формат

var := expr;

Приклад:

gap> data:= rec( numbers:= [ 1, 2, 3 ] ); rec( numbers := [ 1, 2, 3 ] ) gap> data.string:= "string";; data; rec( numbers := [ 1, 2, 3 ], string := "string" ) gap> data.numbers[2]:= 4;; data; rec( numbers := [ 1, 4, 3 ], string := "string" )

2.9 Виклик процедури

Формат:

procedure-var(); procedure-var( arg-expr {, arg-expr} );

Відмінність між процедурами і функціями введена для зручності, GAP же їх не розрізняє. Функція повертає значення, але не справляє побічних вражень. Процедура не повертає ніякого значення, але проводить яку-небудь дію (наприклад, процедури Print, Append, Sort).

2.10 Команда if

Формат:

if bool-expr1 then statements1 { elif bool-expr2 then statements2 } [ else statements3 ] fi;

При цьому частин elif може бути довільна кількість або жодній. Частина else також може бути відсутньою.

Приклад 1: у командах

if expr1 then if expr2 then stats1 else stats2 fi; fi;

else відноситься до другого if, тоді як в командах

if expr1 then if expr2 then stats1 fi; else stats2 fi;

else відноситься до першого if.

Приклад 2:

gap> i := 10;; gap> if 0 < i then > s := 1; > elif i < 0 then > s := -1; > else > s := 0; > fi; gap> s; 1 # знак i

2.11 Цикл while

Формат:

while bool-expr do statements od;

Послідовність команд statements виконується, поки істинна умова bool-expr. При цьому спочатку перевіряється умова, а потім, якщо воно істинне, виконуються команди. Якщо вже при першому зверненні умова помилкова, то послідовність команд statements не виконається жодного разу.

Приклад:

gap> i := 0;; s := 0;; gap> while s <= 200 do > i := i + 1; s := s + i^2; > od; gap> s; 204