Мова специфікації обчислювальних задач. Обчислювальна модель в TKS

Обчислювальна модель в TKS є сукупністю об’єктів і відношень між ними, вона описується мовою специфікації обчислювальних задач (МСО3). Кожний об’єкт ОМ повинен мати унікальне ім’я довжиною близько 200 символів, яке не повинно починатися з цифри. Малі і великі букви в імені загалом різняться, але для системних імен це обмеження не діє (вирази SIN та sin позначають одне і те саме). Тип змінної визначається виглядом її значення під час ініціалізації, характером використання змінної або зазначенням атрибутів у панелі об’яви змінних. Можна використовувати також структуровані типи даних – списки, що вже обговорювалися. Списки результатів розрахунку можна пов’язувати зі складнішими структурами – таблицями.

Числа зображуються в TKS в стандартній чи експоненційній формі в діапазоні від 1Е-307 до 1Е308 за абсолютною величиною і можуть мати до 16 значущих цифр. Приклади запису чисел:1.09092,18437560,6.672Е-11.

Арифметичні вирази будуються з імен змінних, звернень до функцій і списків, числових констант, круглих дужок за допомогою звичайних знаків арифметичних операцій. Зведення до ступеня позначається ^.До системи входить стандартний набір елементарних функцій. Число П можна отримати викликом Рі().Логічні вирази записуються з використанням знаків операцій порівняння, імен змінних, констант, викликів булевих функцій і набувають значення 1(істина) або 0 (хибність). Нерівність записується як <>.В системі TKS реалізовані функції not(X), eqv(X,Y), and(<список ЛВ>), or(<список ЛВ>), imply(X,Y)-імплікація. Оператори визначають послідовність обчислень і використовуються в середині процедур.

У лівій частині оператора присвоювання може використовуватися як проста змінна, так і елемент списку`X[i][ј]: =”Alpha”.Припускається знак << = >> замість <<:=>>.

Умовні оператори записуються стандартно за допомогою ключових слів if, then, else. У зв’язку з проблемою запису умовних операторів в TKS конструкції or та and є функціями логічних операцій. Оператори goto забезпечують перехід за символічними мітками. Оператор виходу з процедури записується як return.

Оператор циклу має вигляд:

for < ім’я_змінної_циклу > : = <вираз 1>

to <вираз 2> [ step < вираз 3 >]

<послідовність операторів циклу>

next[<ім’я_змінної_циклу>]

За відсутності step крок вважається одиничним.

В середині тіла циклу можна використовувати вкладені цикли. Тіла вкладених циклів можуть обмежуватися операторами продовження типу фортранівських:

Continue [<ім’я_змінної_циклу >]

Під час використання цього оператора управління передається оператору next, заданого в Continue охоплюючого циклу, а за відсутності посилання – на next поточного циклу. Аналогічно заданий оператор виходу exit передає управління оператору, розташованому за next охоплюваного або поточного циклу. Ці конструкції зручніше запропонованих у новітніх версіях Фортрану (де слід додатково полічити цикли і посилатися на ці мітки).

Рівняння. Арифметичні рівняння мають вигляд . Вони зберігаються в поточній обчислювальній моделі як однооператорні відношення. TKS дає змогу використати різні бібліотечні функції. Автоматичне розв’язання обернених задач знаходження аргументів забезпечується тільки для тих функцій, які мають обернені.

Приклад опису рівнянь:

1)

2) ,

3) ,

4) ,

5) .

Програмні відношення. Такими називаються відношення, які задаються за допомогою бібліотечних чи користувальних функцій, які зображуються в TKS у вигляді панелей Function Subsheet.Програмні відношення описуються звертаннями до функцій, оператор Call. У списку аргументів вхідні параметри слід відокремлювати від вихідних крапкою з комою. В TKS підтримуються функції-списки, які задають різні типи співвідношень між елементами двох списків, та процедури - функції, які містять описи алгоритмів розв’язку підзадач. Крім того, функції моделі задають описи обчислювальних моделей у форматі об’єктів та відношень між ними. При звертанні до такої функції в TKS виникає підзадача на множині фактичних параметрів функції. У тілі функції можуть бути звертання до інших обчислювальних моделей. Умовні речення обчислювальності задають умови застосування тих чи інших відношень і записуються як і в звичайних мовах програмування.

Списки. Список представляє собою послідовність значень, числових чи символічних, які називаються елементами списку. Фактично списки в TKS відповідають об’єктам типу масивів. Проте надалі ми збережемо термінологію розробників. Для звертання до елементу списку після його імені в квадратних дужках вказують індексний вираз, імені повинен передувати апостроф.

Списки в TKS використовуються для збереження вхідних даних задачі і отримання значення вихідних даних задачі в спусковому режимі вирішувача, а також для аргументів та результатів у спускових функціях. Списки застосовуються для організації зв’язку за даними між TKS та іншими системами через файли. Змінна задачі матиме тип „список”(list), якщо в об’явленні змінної панель Variable Sheet; у полі status вказати тип L. Ім’я нового списку автоматично заноситься в панель List Sheet, якщо:

1) для змінної на панелях Variable Sheet чи Variable Subsheet в полі St вказується тип L;

2) зазначається ім’я списку в полі Associated List на панелі Variable Subsheet;

3) зазначається ім’я списку в полі domain чи range на панелі List Function Subsheet;

4) зазначається ім’я списку на X-Axis,Y-Axis на панелі Plot Subsheet;

5) задано ім’я списку в полі List на панелі Table Subsheet.

Багатовимірний список зображується як список списків. Кожний індекс вміщується в окрему пару квадратних дужок.

Пари чисел та їх використання. Вирази типу (а, в) використовується для зображення прямокутних декартових чи полярних координат точки на площині, а також комплексних чисел у декартовому (rectangular) зображенні.

Приклади:

Опис еліпсу в параметричній формі має вигляд:

,

де а, b –довжини півосей еліпсу, t – кут в градусах.

У TKS є бібліотечні функції для перетворення полярних і декартових координат.

Точку Z на комплексній площині можна задати або в декартових координатах (x, y),або в полярних (r, theta).Комплексне число Z в полярній системі координат зображується у вигляді:

Змішувати комплексні числа з іншими в TKS не можна. Так, потроєння комплексної змінної записується у вигляді . Комплексні пари в TKS можна використовувати як аргументи тільки для функцій POWER((x,y),n) зведення до ступеня – дійсної величини з обчисленням уявної IM ((c,d)) та дійсної RE((a,b)) частин комплексної пари.

Опис функцій користувача. Розв’язання складної задачі потребує зведення її до сукупності підзадач з відомим розв’язком кожної із них. У TKS підзадачі описуються різними типами функцій. Якщо є алгоритм розв’язання, то його можна описати як процедуру-функцію. Декларативно поданий розв’язок як множина рівнянь та програмних відношень можна оформити у вигляді функцій –моделей –ВМ -функцій. Розв’язок, пов’язаний із задачею пошуку даних з потрібними властивостями, зображується табличними чи ітеративними функціями. Виклик підзадач в TKS здійснюється звертанням до функції через апарат формальних і фактичних параметрів.

Процедури-функції. Кожну процедуру-функцію (далі – процедуру) слід оголосити в панелі Function Sheet і зазначити в панелі Procedure Function Subsheet. Опис процедури вміщує виконувані оператори і оголошення:

6) параметрів-передаються безпосередньо з панелі Variables Sheet і описуються в полі Parameter Variables;

7) вхідних і вихідних змінних і передаються через список виклику процедури.

У процедурах цього типу можливе посилання на інші процедури і функції, можна використати також і рекурсію.

Змінні, оголошенні як вхідні (Input), мають бути відомі до виклику процедури. Проте значення вхідних змінних можна змінювати всередині процедури, в ВМ – функціях це призведе до помилки обчислень. Ці зміни не поширюються на відповідні фактичні змінні виклику процедури. Винятком є змінні типу списку: значення елементів списку можуть бути змінені в процедурі також тоді, коли ім’я списку передається як Input-змінна. Аналогічно в тілі процедури можна змінювати значення параметрів, а змінну – тільки в межах тіла процедури.

„Модельні” функції. У модельних (ВМ)- функціях можна використовувати вхідні та проміжні змінні, які є локальними і недоступними для обробки поза тілом процедур і функцій. Вхідні змінні можна передавати через виклик процедури чи безпосередньо з Variables Sheet,минаючи список виклику. Тип підстановки задається в описах процедур та ВМ- функцій. Кожну функцію, яка містить опис ВМ (тип функції Rule), треба оголосити в панелі Function Sheet і описати в панелі Rule Function Subsheet. Опис ВМ-функції містить у собі сукупність правил (умовних та безумовних речень обчислювальності) і оголошення її вхідних змінних:

1) параметрів ВМ-функції в полі Parameter Variable (значення змінних цього поля присвоюється безпосередньо з панелі Variable Sheet);

2) аргументів у полі Argument Variables( значення змінних передаються через список виклику ВМ-функції);

3) результатів знаходження значень функції у полі Result Variables (значення повертаються через список викликів).

Для ВМ – функцій вхідними вважають змінні, значення яких відомі до звертання до функції, а вихідними – потенційно обчислюванні змінні. У процесі виклику ВМ-функції список аргументів і результатів ВМ-функції має бути специфікований цілковито, і в тому разі, якщо завчасно відомо, що не всі вихідні дані означено і буде отримано не всі результати.

У ВМ-функціях спроба означити параметр змінну значенням, відмінним від заданого в панелі Variable Sheet, призводить до помилки, яка фіксується також тоді, коли обчислені за допомогою кількох співвідношень значення якої-небудь змінної не узгоджуються між собою. В тілі ВМ-функцій чи процедур рекурсивні звернення заборонені. Вирішував задач обробляє змінні і правила з панелі опису обчислювальної задачі Rule Sheet.

Невідомі змінні можуть міститися в лівих і правих частинах правил. Під час виклику ВМ-функції в обчисленнях беруть участь лише ті правила, для яких значення вхідних змінних задаються через множини параметрів, аргументів і результатів функції.

Функції-списки. Вони дають змогу задавати в панелі List Function Subsheet двомісні відношення між списками області визначення (domain) та області значень (range). Допускається такі типи відповідностей:

1) таблиці (тип функції table ,відповідність 1-1);

2) інтервали (тип функції step ,відповідність 1-);

3) лінійна інтерполяція(тип функції linear);

4) кубічна інтерполяція(тип функції cubic).

Для функцій-списків обов’язковою є еквівалентність типів формальних і фактичних параметрів. Список, який задає значення домену функції-списку, виявляється з першого елементу. Як результат видається перше рішення, що личить, всі функції-списки є одномісними і їх можна як викликати з використанням CALL, так і безпосередньо використовувати у виразах. Основні типи функцій-списків – це табличні та інтервальні функції, а також лінійна і кубічна інтерполяції.

Табличні функції – тип функції table в полі Mapping. Вони описують двостовпчикові таблиці. Елементами першого стовпчика таблиці (Domain) є значення елементів списку вказаного в полі Domain List, а другого (Range) – пов’язані із списком, вказаним у полі Range List. Елементи можуть набувати числових чи символічних значень.

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

Результатом обчислення значення функції буде значення елементу на лівій границі інтервалу.

Лінійна та кубічна інтерполяції. Функції даного типу визначають значення, отримані у вигляді лінійної(кубічної) інтерполяції між елементами списку-домену.

 








Дата добавления: 2015-04-01; просмотров: 1085;


Поиск по сайту:

При помощи поиска вы сможете найти нужную вам информацию.

Поделитесь с друзьями:

Если вам перенёс пользу информационный материал, или помог в учебе – поделитесь этим сайтом с друзьями и знакомыми.
helpiks.org - Хелпикс.Орг - 2014-2024 год. Материал сайта представляется для ознакомительного и учебного использования. | Поддержка
Генерация страницы за: 0.01 сек.