Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
СРС.doc
Скачиваний:
0
Добавлен:
01.07.2025
Размер:
929 Кб
Скачать
☆

Використання послідовностей

1. Якщо цей тип даних передається в якості параметра функції Maple, то кожний елемент розглядається як відповідний параметр функції.

2. Використання послідовності в якості одного з операндів приводить до виконання цією операцією для кожного її елемента в якості відповідного операнда і формування нової послідовності.

3. Використання послідовності змінних в лівій частині операції присвоєння і послідовності значень в правій призводить до множинного присвоєння за допомогою одної операції.

Створення послідовностей.

Для створення довгих послідовностей, елементи яких містять певну закономірність, можна використати команду seq( ) і операцію повторення $.

1) Команда seq( ) має дві форми: seq(f,i=m..n) seq(f,i=X) В них f - вираз, що залежить від змінної, ім’я якої визначається параметром i, m і n -числа, що визначають діапазон зміни змінної i з кроком 1, X може бути списком, множиною, сумою, добутком чи рядком.

2) Операція повторення $ може бути унарною і бінарною. В першому випадку вона застосовується до діапазону m..n, де m і n - числа; а в другому випадку першим операндом є вираз, що залежить від змінної, яка вказана в другому операнді, що також містить операцію діапазон.

Список - впорядкована послідовність виразів, що береться у квадратні дужки. Множина - невпорядкована послідовність виразів, що береться у фігурні дужки.

Властивості списку:

  • В списку всі елементи, що повторюються є дійсними; тобто список може містити елементи, що повторюються і стоять на різних місцях.

  • Списки зберігають порядок своїх елементів, тому за допомогою індекса можна отримати значення будь-якого елемента списку.

  • Індексній формі елемента списку МОЖНА присвоїти нове значення, змінивши ,таким чином, значення цього елемента.

Властивості множини:

  • В множині всі елементи, що повторюються – ігноруються; тобто елементам, що повторюються в множині буде відповідати один елемент.

  • При створенні множини порядок її елементів визначається системою Maple і може змінюватися від сеансу до сеансу при роботі з тим самим робочим листом. Але за допомогою індекса можна отримати значення будь-якого елемента списку, якщо "зловити" цей елемент відразу після виводу множини в область виводу.

  • Індексній формі елемента списку НЕМОЖНА присвоїти нове значення. Щоб змінити елемент множини, його потрібно забрати з допомогою операції minus, а потім додати новий елемент операцією union.

При виборі декількох елементів списку чи множини і за допомогою індекса можна використати об’єкт діапазон, причому додаткові значення індекса відповідають відліку елементів зліва направо, а від’ємні -справа наліво. Всі елементи списку чи множини можна вивести, вказуючи в якості індекса діапазон [1..-1]. (Значення індекса -1 відповідає останньому елементу списку чи множини.)

Команди для структурної обробки списків і множин

Часто виникає необхідність виконати певну команду чи обчислити функцію до кожного елемента списку чи множини; виділити елементи, що задовільняють певні умови і т.д.

Команди map( ) і map2( ) дозволяють застосувати функцію чи команду, задану першим параметром, до усіх елементім списку чи множини, повертаючи, відповідно, список чи множину.

Синтаксис цих команд: map(функція, список|множина, [пар2, пар3,..., парN]); map2(функція, пар1,список|множина, [ пар3,..., парN]);

Якщо для виконання функції, заданої першим параметром команди map ( ), необхідні додаткові параметри, то їх необхідно задати після списку чи множини. В команді map2( ) елементи списку чи множини передаються у якості другого параметра функції, що визначена першим параметром.

Команда формування послідовності seq( ) може також поелементно обробляти список чи множину, формуючи при цьому (в залежності від виду дужок чи їх присутності/відсутності) список, множину або послідовність.

Команда add( ) формує суму елементів списку або множини, команда mul( ) - добуток елементів списку або множини.

Maple дозволяє вибирати з списку чи множини елементы, що задовільняють певні умови. Для цього перш за все необхідно визначити функцію-умову, результатом роботи якої буде булеве значення true чи false. А далі можна скористатися команодою select(функція-умова, список|множина) Дія команди remove(функція-умова, список|множина) протилежна до дії команди select( ).

Вона повертає список/множину, що складається з елементів, які не задовільняють умову булевої функції.

Виконати обидві операції одночасно дозволяє команда selectremove( ), яка повертає послідовність двох списків, перший з яких є результатом виконання команди select( ), а другий – команди remove( ).

Лінійне об’єднання двох списків можна реалізувати за допомогою команди op(вираз|список|множина). Ця команда призначена для виділення операндів виразу у вигляді послідовності. Оскільки операндами списку чи множини є його елементи, то результатом роботи цієї команди зі списком|множиною буде послідовність, яку можна "оформить" за допомогою дужок у вигляді множини чи списку.

Більш складні об’єднання списків реалізуються командою zip( ), що має такий синтаксис: zip(бінарна функція, список1, список2); zip(бінарна функція, список1, список2, значення);

Перша з команд працює так: бінарна (двох аргументів) функція виконується, послідовно використовуючи у якості своїх параметрів елементи двох списків, формуючи новий список з обчислених значень. Довжина отриманого списку буде такою як довжина найменшого з переданих (список1 і список2).