
- •Р.М.Літнарович, ю.Г.Лотюк комп’ютерна алгебра навчально-методичний посібник
- •© Літнарович р.М., Лотюк ю.Г.,2010 р.
- •1. Програма нормативної дисципліни
- •2. Мета та завдання дисципліни,
- •3. Формування практичних навичків
- •4. Зміст дисципліни
- •4.1.Лекції, найменування тем за їх змістом
- •6.Перелік питань до заліку
- •7.Науково-дослідна робота студентів
- •8. Літературні джерела
- •9.Розподіл балів за один змістовий модуль, присвоюваних студентам
- •10.Шкала оцінювання:
- •11.Зміни та доповнення ,внесені в робочу програму на 201__ рік
- •12.Оцінка навчальної діяльності студента
- •2. Лекційний курс Лекція 1. (2 год.)
- •1.1 Коротка характеристика gap
- •1.2 Можливості для роботи з різними видами об'єктів алгебри
- •1.3 Приклади простих обчислень
- •2 Мова програмування gap
- •2.1 Символи і категорії слів в gap
- •2.2 Ключові слова
- •2.3 Ідентифікатори
- •2.4 Вирази
- •2.5 Звернення до функцій
- •2.6 Порівняння виразів
- •2.7 Арифметичні оператори
- •2.8 Привласнення
- •2.9 Виклик процедури
- •2.10 Команда if
- •2.11 Цикл while
- •2.12 Цикл repeat
- •2.13 Цикл for
- •2.14 Функції
- •3 Структури даних
- •3.1 Константи і оператори
- •3.2 Змінні і привласнення
- •3.3 Функції
- •3.4 Списки
- •3.5 Тотожність і рівність списків
- •3.6 Множини
- •3.7 Вектори і матриці
- •3.8 Записи
- •3.9 Арифметичні прогресії
- •3.10 Використання циклів
- •3.11 Подальші операції із списками
- •3.12 Функції
- •4 Операції над групами і їх елементами
- •4.1 Завдання групи підстановок
- •4.2 Завдання підгрупи групи підстановок
- •4.3 Прості властивості групи. Силовськие підгрупи.
- •4.4 Інші види підгруп
- •4.5 Факторгруппи
- •Список літератури, що рекомендується
- •Додаток а Рекомендації по створенню і запуску програм в системі gap
- •1. Створюємо за допомогою текстового редактора файл "prog.G" наступного змісту:
- •2. Зберігаємо цей файл в каталозі, вибраному з урахуванням рекомендацій параграфа 1.2.
- •3. Запустимо gap і визначимо файл протоколу log.Txt:
- •Лабораторна робота № 1. Основи роботи з системою gap в Windows
- •Лабораторна робота № 2 Списки. Цілі числа
- •Завдання для лабораторної роботи № 2
- •Лабораторна робота № 3. Лінійні програми. Вектори і матриці
- •Завдання для лабораторної роботи № 3
- •Лабораторна робота № 4. Програми, що гілкуються. Многочлени
- •Лабораторна робота № 5. Циклічні програми (цикл for). Бінарні відносини
- •Лабораторна робота № 6. Циклічні програми (цикл while). Підстановки
- •Лабораторна робота № 7. Циклічні програми (цикл repeat). Групи підстановок
- •Завдання для лабораторної роботи № 7
- •Лабораторна робота № 8. Вивчення властивостей елементів групи
- •Завдання для лабораторної роботи № 7
- •Лабораторна робота № 9. Вивчення властивостей підгруп групи.
- •Завдання для лабораторної роботи № 9.
- •Лабораторна робота № 10. Робота з бібліотекою кінцевих груп
- •Додаткові завдання
- •33027 Рівне , Україна
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