МОДЕЛЮВАННЯ БІЗНЕС-ПРОЦЕСІВ НА ПРИКЛАДІ СИСТЕМИ АДМІНІСТРУВАННЯ КОНФЕРЕНЦІЙ З ВИКОРИСТАННЯМ WINDOWS WORKFLOW FOUNDATION

Інформація про навчальний заклад

ВУЗ:
Херсонський державний університет
Інститут:
Не вказано
Факультет:
РТ
Кафедра:
Не вказано

Інформація про роботу

Рік:
2011
Тип роботи:
Магістерська робота
Предмет:
Інформатика інженер програміст

Частина тексту файла (без зображень, графіків і формул):

МІНІСТЕРСТВО ОСВІТИ І НАУКИ, МОЛОДІ ТА СПОРТУ УКРАЇНИ ХЕРСОНСЬКИЙ ДЕРЖАВНИЙ УНІВЕРСИТЕТ ФАКУЛЬТЕТ ФІЗИКИ, МАТЕМАТИКИ ТА ІНФОРМАТИКИ ЗАТВЕРДЖУЮ до захисту в ДЕК ПЕРШИЙ ПРОРЕКТОР УНІВЕРСИТЕТУ ___________професор О.В. Мішуков ГОНЧАРЕНКО ПАВЛО ОЛЕКСАНДРОВИЧ __________ РЕАЛІЗАЦІЯ РЕЖИМУ АВТОМАТИЧНОЇ ПІДТРИМКИ ПОШАГОВОГО РЕЖИМУ ТРИГОНОМЕТРИЧНИХ ЗАДАЧ У МАТЕМАТИЧНІЙ СИСТЕМІ НАВЧАЛЬНОГО ПРИЗНАЧЕННЯ 8.08.0201 ІНФОРМАТИКА, ІНЖЕНЕР ПРОГРАМІСТ Випускна робота освітньо-кваліфікаційного рівня «Магістр» ПОГОДЖЕНО Декан факультету Науковий керівник ________доцент В.І. Кузьмич ________професор М.С. Львов ________ 2011 р. _______ 2011 р. Завідувач кафедри інформатики Рецензенти: _______професор О.В. Співаковський ________доцент Г.М. Кравцов _______ 2011 р. ________ 2011 р. Херсон – 2011 ЗМІСТ ВСТУП 3 РОЗДІЛ 1. МЕТОДОЛОГІЧНІ ОСНОВИ ПРАКТИЧНОЇ МАТЕМАТИЧНОЇ ДІЯЛЬНОСТІ 5 1.1 Контроль знань як форма зворотного зв’язку в системі навчання 5 1.2 Концепція практичної математичної діяльності 6 1.3 Середовища підтримки практичної математичної діяльності 8 РОЗДІЛ 2. ТЕХНОЛОГІЇ АЛГЕБРАГІЧНОГО ПРОГРАМУВАННЯ 11 2.1 Рівності як правила переписування 11 2.2 Системи правил переписувань 14 2.3 Стратегії переписувань 16 2.4 Мова алгебрагічного програмування APLAN 20 РОЗДІЛ 3. ФУНКЦІОНАЛЬНІСТЬ ТА СКЛАД ІНФОРМАЦІЙНОЇ СИСТЕМИ ПІДТРИМКИ ВИВЧЕННЯ ТРИГОНОМЕТРІЇ 29 3.1 Програмний модуль “Довідник” 29 3.2 Відображення та математичне ядро довідок 34 3.3 Алгоритм виконання довідки 37 3.4 Структура довідок інформаційної системи підтримки вивчення тригонометрії 39 ВИСНОВКИ 60 СПИСОК ВИКОРИСТАНИХ ДЖЕРЕЛ 62 ДОДАТКИ …………………………………………………………………71 Додаток А. Структура файлу std.ap……………………………………….71 ВСТУП Розроблення алгоритмів алгебраїчних обчислень є однією з основних задач, що виникають при реалізації математичних систем, основаних на символьних перетвореннях. Математичною моделлю цієї задачі є багатосортні алгебраїчні системи. Реалізація навіть достатньо простих математичних систем навчального призначення потребує попереднього проектування багатосортної алгебраїчної системи та специфікації інтерпретаторів багатосортних алгебраїчних операторів, що використовують ефективні алгоритми комп’ютерної алгебри. Тригонометрія як математична дисципліна займає особливе місце. Тригонометрію вивчають як окремий розділ шкільної алгебри і широко використовують в інших математичних, фізичних та інженерних дисциплінах. Тому і математичні системи навчального призначення мають підтримувати тригонометричні обчислення. Для реалізації обчислень, основаних на символьних перетвореннях, використовується система алгебраїчного програмування APS. APS використовує технології алгебраїчного програмування, основані на використанні систем правил переписувань та стратегій переписувань. Актуальність цієї роботи полягає в тому, що математичні методи та технології, використанні у розв’язанні завдання – це методи комп’ютерної алгебри та технології алгебраїчних обчислень, вони можуть бути використані в розробці систем учбового призначення для інших предметних областей. Мета полягає у розробці структури елементарних тригонометричних перетворень, які використовуються при розв’язанні тригонометричних задач та створенні за цією структурою програмного модулю Довідник інформаційної системи підтримки вивчення тригонометрії. Об’єкт дослідження – Математичні методи та технологія розробки середовищ підтримки розв’язання навчальних задач в інформаційних системах навчального призначення. Предмет дослідження – Математичні методи та технологія розробки покрокового режиму підтримки розв’язання тригонометричних задач інформаційних системах навчального призначення. Структура роботи. Робота складається зі вступу, трьох розділів, висновків та списку використаних джерел. Перший розділ присвячений питанням необхідності правильної побудови концепції практичної математичної діяльності. Другий розділ оглядає технології алгебраїчного програмування. Присвячений стратегіям переписувань. У третьому розділі описується структура та алгоритм виконання довідок програмного модулю “Довідник”. РОЗДІЛ 1 МЕТОДОЛОГІЧНІ ОСНОВИ ПРАКТИЧНОЇ МАТЕМАТИЧНОЇ ДІЯЛЬНОСТІ Контроль знань як форма зворотного зв’язку в системі навчання Основним етапом процесу навчання є процес перевірки знань, засвоєних учнем (студентом) на етапах пояснення нового матеріалу та практичної роботи. Саме контроль знань є тією формою зворотного зв’язку в системі навчання, яка забезпечує якість набутих знань як основну мету функціонування системи навчання. В ідеалі зворотний зв’язок має здійснюватися постійно, тому контроль знань у різних формах входить до структури навчального заняття будь-якого типу. Наприклад, на уроці комбінованого типу можливі два типи контролю знань – перевірка домашнього завдання та перевірка знань, набутих на даному уроці. Не вдаючись детально в аналіз різних типів контролю, відзначимо необхідність контролю як декларативних знань, так і процедурних знань. Докомп’ютерні методики контролю декларативних знань – це вибіркові опитування або короткі контрольні роботи (1-2 питання) з теоретичного матеріалу. Ці методики є неефективними, оскільки вони або здійснюють лише вибірковий контроль, або потребують багато часу на перевірку. Сучасними технологіями контролю декларативних знань є комп’ютерні системи тестування. В стандарті SCORM [58-62] описані 20 типів тестових завдань, починаючи від найпростіших тестових питань з відповіддю (ТАК, НІ) і закінчуючи складеними запитаннями, відповіддю на які є хід розв’язання навчальної задачі або виконання лабораторної роботи. Однак складені тестові завдання є відкритими у стандарті та не підтримуються жодною з відомих систем тестування, оскільки їх реалізація має спиратися на знання конкретної предметної області і потребує спеціальних зусиль. Для дисциплін, основаних на математичних знаннях, особливої ваги набуває контроль процедурних знань, які отримують учні (студенти) в процесі розв’язання навчальних задач. Докомп’ютерні методики контролю процедурних знань – це поточні самостійні роботи, лабораторні роботи, тематичні (підсумкові) контрольні роботи. Ці методики є також неефективними, оскільки вони потребують багато часу на перевірку. Ще одним принципово важливим недоліком є несвоєчасність перевірки поточних самостійних робіт і домашніх завдань. Будь-яка помилка, допущена учнем (студентом) в розв’язанні задачі, виявляється перевіряючим лише після завершення учнем (студентом) всієї роботи. Зрозуміло, що з методичної точки зору правильно було б виявляти та виправляти помилки одразу, у той час і на тому кроці розв’язання, коли вони допущені. Те саме стосується, наприклад, і виконання лабораторних робіт з програмування. Для оцінки правильності програми, розробленої студентом, викладач має витрачати багато часу на її тестування або верифікацію. 1.2 Концепція практичної математичної діяльності Практична математична діяльність учня (студента) є основною формою навчальної діяльності при вивченні дисциплін, основаних на математичних моделях та методах. Вона полягає у розв’язанні навчальних математичних задач. Практична математична діяльність має певну специфіку. Її навчальною метою є побудова ходу розв’язання навчальної задачі, а не отримання відповіді. Тому предметно-орієнтовані інформаційні системи навчального призначення з математики мають підтримувати саме процес розв’язання математичної задачі [1-8] . З технологічної точки зору, інформаційна підтримка процесу розв’язання навчальної задачі можлива за умови, що її розв’язання відбувається у спеціалізованому програмному модулі - діяльнісному середовищі. Діяльнісні середовища є основними програмними модулями інформаційної системи навчального призначення. Один з найважливіших аспектів підтримки практичної математичної діяльності учня – перевірка правильності виконання його дій на різних етапах розв’язання задачі – починаючи від етапу побудови математичної моделі і закінчуючи етапом перевірки правильності ходу розв’язання або відповіді. Другий, важливий аспект підтримки – автоматизація рутинних дій, пов'язаних з обчисленнями. Третій аспект – надання учню зручної системи підказок на різних етапах розв’язання задачі у вигляді генерації математичної моделі задачі, ходу або кроку її розв’язання, відповіді. Практична математична діяльність викладача також має підтримуватись. Перший аспект такої підтримки - перевірка правильності ходу розв’язання задачі. Система має перевіряти правильність ходу розв’язання задачі, розв’язаної раніше учнем (режим перевірки контрольної роботи). Другий аспект підтримки вчителя – автоматизація тестування знань учнів. Спеціальне діяльнісне середовище має здійснювати перевірку знань основних математичних правил і формул (спеціальне тестування, що використовує математичні тести). Необхідною умовою ефективності системи підтримки практичної діяльності є можливість користування спланованої відповідно до вимог навчального плану системою навчальних матеріалів підтримки практичної роботи з можливістю його модифікації. Система також має забезпечувати ефективне ведення навчального процесу в цілому, підтримуючи взаємодію викладача й учня. Також має надавати користувачеві відповідний математичний інструментарій (калькулятор, засоби побудови графіків тощо). Дотримуючись вимог практичної математичної діяльності учня та викладача система буде найбільш ефективною. 1.3 Середовища підтримки практичної математичної діяльності Cередовище тестування Тестування є основною, найбільш розповсюдженою технологією контролю знань в системах навчального призначення. Однак на практиці системи тестування орієнтовані на перевірку декларативних знань. Проблема перевірки процедурних знань потребує свого вирішення. Системи тестування процедурних знань мають бути предметно-орієнтованими, а алгоритми перевірки правильності відповіді – основаними на знаннях предметної області. Отже, середовище тестування практичних математичних знань має підтримувати математичні тести. Характерною особливістю математичного тестового завдання є те, що відповідь має бути надана у вигляді математичного (логічного) виразу, а перевірка відповіді полягає у перевірці семантичної правильності цього виразу. Системні задачі перевірки тестів – задачі верифікації. Тестування процедурних математичних знань може бути включено до складу навчального заняття будь-якого типу – уроку, лекції, практичного заняття або лабораторної роботи. Особливо важливим є включення тестування до змісту електронного підручника з метою самоперевірки під час самостійної роботи. Середовище розв’язання Основною функцією середовища розв’язання є підтримка процесу розв’язання навчальної математичної задачі. Різні аспекти цієї підтримки, перелічені у попередньому пункті, визначають різні режими роботи середовища розв’язання. Основні функціональні вимоги до середовища розв’язання: Можливість експорту навчальної задачі з задачника або зошита. Можливість збереження ходу розв’язання частково або повністю розв’язаної задачі у зошиті. Можливість вводу з клавіатури умови навчальної задачі одного з стандартних типів з метою подальшого її розв’язання. Можливість вибору одного з режимів розв’язання навчальної задачі Можливість перегляду ходу розв’язання навчальної задачі. Важливу методичну роль при вивчення математики грають графічні побудування. В курсі алгебри середньої школи тема “Графіки функції” є однією з основних наскрізних тем всього курсу. Тому до складу системи мають бути включені середовища графічних побудувань – або як окремі програмні модулі, або як підмодулі середовища розв’язання. 6. Задача автоматичної підтримки ходу розв'язку навчальної задачі. Розв’язуючи навчальну задачу (Рис. 1.1.), користувач: 1) спочатку визначає, яке з елементарних перетворень потрібно здійснити на даному кроці розв'язку; 2) здійснює це перетворення; 3) переписує результат як наступний крок розв'язку.  Рис. 1.1. Діаграма об’єктів режиму автоматичний середовища розв’язання Етап визначення наступного кроку розв'язку є найбільш важливим. Саме він носить творчий характер. Режим автоматичної підтримки ходу розв'язку навчальної задачі надає користувачеві можливість вибрати одне з елементарних перетворень, а потім автоматично виконує етапи 2, 3. В результаті користувач зосереджений на пошуку ходу розв'язку задачі як логічної задачі, а не на виконанні часто рутинних обчислень, що віднімають багато часу та є джерелом помилок технічного характеру. Реалізація режиму автоматичної підтримки ходу розв'язку навчальної задачі (або автоматичного режиму) вимагає точних формулювань у визначенні середовища розв’язання, точного визначення поняття ходу розв'язку задачі як форми логічного висновку й, найголовніше, точного, повного й методично правильного визначення списку елементарних перетворень. РОЗДІЛ 2 ТЕХНОЛОГІЇ АЛГЕБРАЇЧНОГО ПРОГРАМУВАННЯ Рівності як правила переписування Відношення рівності в математиці використовується у формулюваннях тотожностей, співвідношень у визначеннях, рівнянь і т. ін. В алгебраїчному програмуванні знак рівності використовується у так званих правилах переписування для позначення припустимого перетворення математичного об'єкта. Приклад 2.1. Правило переписування: x + 0 = x Математичний об'єкт: 2*A + 0 Результат переписування: 2*A. Приклад 2.2. Правило переписування: (a*x = b) = (x = b/a) Математичний об'єкт: 2*y = a + 4 Результат переписування: y = (a + 4)/2. Правило переписування можуть бути застосовані до одних об'єктів і не застосовані до інших об'єктів. У випадку, коли правило не застосоване до об'єкта, у результаті його застосування об'єкт не перетвориться. Таким чином, незастосовність правила інтерпретується як тотожне перетворення об'єкта “на місці”. В обох випадках на застосування правила переписування витрачається час. Приклад 2.3. Правило переписування: x + 0 = x Математичний об'єкт: 0 + 2*A Результат переписування: 0 + 2*A. Приклад 2.4. Правило переписування: (a*x = b) = (x = b/a) Математичний об'єкт: -y = 4 Результат переписування: -y = 4. У системах програмування, що використовують технології переписувань, перетворення, визначене правилом переписування, виконується у два етапи: спочатку ліва частина правила переписування ) синтаксично порівняються із перетворюваним об'єктом. Якщо синтаксична структура об'єкта збігається із синтаксичною структурою зразка, виконується перетворення об'єкта, визначене його правою частиною. Процедура порівняння об'єкта зі зразком називається метчінгом (matching). Метчінг не тільки порівнює об'єкт зі зразком, але й знаходить фактичні значення змінних, імена яких зазначені у зразку. Ці значення є підвиразами перетворюваного об'єкта. Приклад 2.5. Правило переписування: x + 0 = x Зразок: x + 0 Математичний об'єкт: 2*A + 0 Результат порівняння позитивний: 2*A + 0 має вигляд x + 0 Фактичне значення x: 2*A Результат переписування: 2*A. Приклад 2.6. Правило переписування: (a*x = b) = (x = b/a) Зразок: a*x = b Результат порівняння позитивний: 2*y = a + 4 має вигляд a*x = b Фактичні значення параметрів: a: 2, x: y, b: a + 4. Математичний об'єкт: 2*y = a + 4 Результат переписування: y = (a + 4)/2. Для опису зразка – лівої частини правила переписування, крім змінних, які грають роль формальних параметрів, використовуються ще й константи, що позначають самі себе. У прикладі 2.5 такою константою є 0. Оскільки позначення констант потрібно відрізняти від позначення змінних – формальних параметрів, правило переписування потрібно доповнити відповідною інформацією. Приклад 2.7. Правило переписування: x: змінна, True: константа x & True = x Математичний об'єкт: (A ( B) & True Результат: (A ( B). Іноді зразок – ліва частина правила переписування містить кілька входжень однієї й тієї ж змінної. У цьому випадку відповідні підвирази – фактичні параметри перетворюваного виразу порівнюються синтаксично. Приклад 2.8. Правило переписування: x&y ( x&z = x&(y ( z) 1. Математичний об'єкт: A&B ( A&C Результат: A&(B ( C) 2. Математичний об'єкт: A&(B(C) ( A&(C(B) Результат: A&(B(C) ( A&(C(B) // правило незастосовне: (B(C) ( (C(B). Поряд з безумовними правилами переписування в алгебраїчному програмуванні використовуються й умовні правила переписування. Для позначення мовної конструкції Якщо А то В використовується стрілка (знак імплікації): А ( B. Умовне правило переписування, що визначає множення обох частин нерівності на додатне число запишеться у вигляді (c > 0) ( (A < B = c*A < c*B). Приклад 2.9. Правило переписування: (a>0) ( (a*x < b = x < b/a) 1. Математичний об'єкт: 5*y < 3 + x Результат: y < (3+x)/5 2. Математичний об'єкт: -5*y < 3 + x Результат: -5*y < 3+x // правило незастосовне. Приклад 2.10. Правило переписування: (GCD(a,b) == 1)->(a/b = a//b) Математичний об'єкт: 7/12 Результат: y < 7//12. Таким чином, при спробі застосування умовного правила переписування спочатку обчислюється логічне значення умови. Якщо умова приймає значення True, виконується мэтчинг, визначення фактичних параметрів, порівняння на рівність виразів, що відповідають різним входженням того самого формального параметра, і, нарешті, переписування. Системи правил переписувань Для того, щоб технології переписування стали ефективним інструментом алгебраїчного програмування, окремі правила переписування потрібно поєднувати в так звані системи правил переписувань (rewriting rules systems). Приклад 2.11. Система правил переписувань, що визначає властивості 0 і 1 для спрощення алгебраїчних виразів можна записати рядками певних правил: (x * 1 = x, 1 * x = x, х + 0 = x, 0 + x = x, х * 0 = 0, 0 * x = x); Застосувати систему правил переписувань до математичного об'єкта означає застосувати те із правил цієї системи, що призведе до результату. Більш точно, застосування системи переписувань до об'єкта полягає в повторенні спроб застосування окремих правил цієї системи в порядку їхнього розташування в системі, починаючи з першого: (x * 1 = x, (1) 1 * x = x, (2) x + 0 = x, (3) 0 + x = x, (4) х * 0 = 0, (5) 0 * x = x); (6) Повторення закінчується у випадку, коли Одне із правил системи застосовано до даного об'єкта. Результат застосування системи до даного об'єкта є результат застосування цього правила до об'єкта. Жодне із правил системи незастосовне. Результатом застосування системи до даного об'єкта у цьому випадку є даний об'єкт. Приклад 2.12. Правила множення ступенів з одною основою, оформлені у вигляді системи правил переписувань. (x^m * x^n = x^(m + n), x * x^n = x^(1 + n), x^m * x = x^(m + 1), x * x = x^2); Перше із цих правил описує загальну ситуацію, а інші - ті частинні її випадки, у яких зразок змінюється синтаксично. Семантика системи переписувань залежить, взагалі кажучи, від порядку розташування правил в системі. Наприклад, системи (a + b = b + a, a + 0 = a) і (a + 0 = a, a + b = b + a) що відрізняються тільки порядками розташування правил, застосовані до виразу X + 0 призведуть до різних результатів. 2.3 Стратегії переписувань Однієї тільки можливості об'єднання правил переписування у системи недостатньо для того, щоб зробити технологію переписувань ефективним інструментом алгебраїчного програмування. Справді, система переписувань прикладу 2.11 містить всі співвідношення, що спрощують вираз за властивостями нуля й одиниці. Однак для того, щоб спростити вираз, цю систему потрібно застосувати неодноразово, причому не тільки до всього виразу, але й до усіх його підвиразів. Приклад 2.13. До усього виразу x*y*1 + 0*x*y + 0 система переписувань прикладу 2.11 незастосовна, однак, якщо застосувати її кілька разів до підвиразів, результат буде досягнутий. Для того, щоб оцінити проблему, розставимо правильно дужки у прикладі 2.13: x*(y*1) + (0*(x*y) + 0) Розміщення дужок виявило структуру виразу, явно виділивши головні знаки й операнди усього виразу та його підвиразів. До усього виразу система переписувань незастосовна. Вона застосовна безпосередньо до: Другого операнда. Першого операнда другого операнда. Другого операнда першого операнда. Після того, як зазначені перетворення будуть виконані, вираз редукується до виду : x*y + 0 Систему переписувань можна застосувати до усього виразу, отримавши : x*y. У перетвореннях виразів можна виділити два способи визначення порядку обчислень: “зверху-униз” і “знизу-угору”. При обчисленнях “зверху-униз” система переписувань спочатку застосовується до всього виразу, а потім - до усіх його операндів (аргументів). При обчисленнях “знизу-угору” система переписувань спочатку застосовується до усіх його аргументів, а потім - до усього виразу. Відзначимо, що у прикладі 2.13 обчислення “зверху-униз” не дадуть правильного результату. Обчислення “ знизу-угору ” дадуть результат. І у тому, і у іншому випадках істотну роль грає порядок застосування системи переписувань до даного виразу. Саме, важливу роль грає той факт, чи застосовується система повторно до даного виразу, якщо попереднє застосування пройшло успішно? Наприклад, повторне застосування системи до виразу (1*a*1 + 0) + 0 призведе до результату a. Правило застосування системи переписувань до вираження називають стратегією переписувань. Позначимо через S систему переписувань, а через E - алгебраїчний вираз. Перелічимо ті стратегії переписувань, які були розглянуті: 1. Застосувати один раз S до E. 2. Застосовувати повторно S до E (доти, поки S застосовна). 3. Застосувати стратегію 1 із S до E та його підвиразів зверху-униз. 4. Застосувати стратегію 2 із S до E та його підвиразів зверху-униз. 5. Застосувати стратегію 1 із S до E та його підвиразів знизу-угору. 6. Застосувати стратегію 2 із S до E та його підвиразів знизу-угору. Зрозуміло, що цей список можна продовжити: 7. Застосовувати повторно стратегію 4 із S до E. 8. Застосовувати повторно стратегію 6 із S до E. Відзначимо наступні аспекти: 1. Будь-яка стратегія переписувань має два аргументи: систему правил переписувань S і вираз, що переписується. 2. Більш складні стратегії використовують більш прості стратегії. Так, базовими (елементарними) стратегіями даного списку стратегій є такі стратегії: Застосувати один раз. Застосовувати повторно. Застосовувати зверху-униз. Застосовувати знизу-угору. Стратегія 8 визначаться комбінацією базових стратегій: Застосовувати повторно. Застосовувати знизу-нагору. Застосовувати повторно S до E. Зрозуміло, список стратегій переписувань, наведений вище, не є повним. Крім того, не все зі стратегій, описаних вище, реалізовані у системі програмування APS. Однак ефективність алгебраїчних програм залежить не тільки від систем правил переписувань, але й від стратегій переписувань. Тому у системі APS, поряд з “вбудованими” стратегіями переписування, застосовується механізм визначення “своїх” стратегій, тобто стратегій користувача. Приклад 2.14. Додавання чисел. Вихідний вираз має вигляд E = a1 + a2 + … + an-1 + an, де ai – числа. Потрібно визначити систему правил переписування і стратегію переписувань, що додає усі ці числа. Скласти два числа a і b можна функцією Add(a, b). Розв’язок 1. Система правил переписування S: ((a, b, B) = (Add(a, b), B), // правило 1 (a, b) = Add(a, b) ); // правило 2 Стратегія: Застосовувати_ повторно S до E. Вхід: 1 + 2 + 3 + 4 + 5. Трасування застосувань стратегії до входу. 1 + (2 + (3 + (4 + 5))) // застосувалося правило 1. 3 + (3 + (4 + 5)) // застосувалося правило 1 6 + (4 + 5) // застосувалося правило 1 10 + 5 // застосувалося правило 2 15 // жодне із правил незастосовне Розв’язок 2. Система правил переписування S: ((a, b) = Add(a, b)); // правило 1 Стратегія 6: Застосовувати_ знизу-нагору(Застосовувати_ повторно S до E). Вхід: 1 + 2 + 3 + 4 + 5 Трасування застосувань стратегії до входу: 1 + (2 + (3 + (4 + 5))) // застосовуємо S до другого операнду. 1 + (2 + (3 + (4 + 5))) // застосовуємо S до другого операнду. 1 + (2 + (3 + (4 + 5))) // застосовуємо S до другого операнду. 1 + (2 + (3 + (4 + 5))) // застосувалося правило 1. 1 + (2 + (3 + 9)) // застосувалося повторно правило 1. 1 + (2 + 12) // застосувалося повторно правило 1. 1 + 14 // застосувалося повторно правило 1. 15 // система незастосовна. 2.4 Мова алгебраїчного програмування APLAN Алгебраїчна програма складається з декількох модулів, що “збираються” під час препроцесування за допомогою оператора INCLUDE. Файли алгебраїчних модулів мають розширення .ap. Синтаксичне визначення оператора INCLUDE: INCLUDE <ім'я ap-модуля> Оператор INCLUDE треба розташовувати у окремому рядку. При цьому, як правило, усі такі оператори групуються в перших рядках ар-модуля (Рис.2.1.).  Рис.2.1. Синтаксичне визначення оператора INCLUDE Для того, щоб алгебраїчна програма стала працездатною, до неї потрібно підключити стандартний ар -модуль std.ap (Додаток А), який містить описи стандартної множини операцій (арифметичних і логічних), арифметичних відносин, стандартних імен, і таке інше. Зокрема, приклади пункту 2.14 потрібно доповнити: у першому рядку модуля потрібно підключити модуль std.ap. Алгебраїчна програма виглядає таким чином (Рис.2.2.):  Рис. 2.2. Алгебраїчна програма у APLAN Імена у APLAN використовуються для позначення змінних, систем правил переписування, процедур та функцій. Синтаксис: NAME <ім'я або список імен через кому>; NAMES <ім'я або список імен через кому>; Зрозуміло, що службове слово NAME пропонується використовувати для оголошення одного імені, а NAMES - для оголошення списку імен. Однак цього правила можна і не дотримуватися, тому що обидва цих службових слова є синонімами. Всі змінні, оголошені в алгебраїчному модулі, є глобальними. Тому їх потрібно розташовувати поза описом процедур і функцій (Рис.2.3.). Механізм використання локальних змінних буде описаний пізніше. Областю видимості змінних, описаних у даному ар-модулі є цей модуль. При цьому, як звичайно, оголошення імен має передувати їхньому використанню.  Рис. 2.3. Використання імен APLAN Поняття алгебраїчного виразу в APS є основним та універсальним. Програма, написана мовою APLAN, є алгебраїчним виразом. По суті виконання алгебраїчної програми є обчисленням її значення як алгебраїчного виразу. Стандартні операції мови APLAN визначені у файлі std.ap. Для кожної стандартної операції засобами APS реалізований її інтерпретатор - функція, яка обчислює значення відповідної операції виходячи із значень її аргументів. Операція в APS визначається як відмітка (mark) вершини так званого клубка – структури даних типу “помічене дерево”, яка містить як власно алгебраїчні програми, так і дані, які опрацьовуються програмою. Об’ява відмітки операції здійснюється у розділі відміток APLAN-програми, який починається службовими словами MARK, MARKS. Фрагмент опису стандартних операцій з файлу std.ap (Додаток А). Інтерпретатори стандартних операцій, що об’явлені у std.ap реалізовані на нижньому рівні системи APS у вигляді С-функцій (системна бібліотека intlib.dll). Системна таблиця can_tbl.tbl визначає відповідність імен операцій та їх інтерпретаторів. Фрагмент цієї таблиці, що стосується арифметичних та алгебраїчних операцій, предикатів та логічних зв’язок (Рис.2.4.).  Рис. 2.4. Описання файлу can_tbl.tbl Ім’я відмітки. Інтерпретатор операцій у мові C++. Операція у мові APLAN. Поряд зі стандартними операціями, програміст має змогу визначати власні операції та реалізовувати їх інтерпретатори. По суті, програмування в APS можна характеризувати як процес визначення своїх операції та реалізацію їх інтерпретаторів. Визначення власної операції здійснюється у розділі MARK (Рис. 2.5.) відповідно до синтаксису <id операції>(<арність>,<пріоритет>{,<”інфіксне позначення”>}{,<спец.відмітка>})  Рис. 2.5. Розділ MARK Значення арності UNDEF означає операцію довільної арності. Інші значення арності мають бути невід’ємними цілими числами. Звичайно, інфіксна форма запису операції можлива лише для бінарних операцій. В інших випадках застосовують функціональну (префіксну) форму запису операцій. Наприклад: 4//8, Quot(1,2), Sin(Pi), LF(x,A,B), List(1,2,3,5); List(2009, 2010). Базові оператори імперативних засобів – оператор SET (оператор установки) та ASS (оператор присвоєння) зв’язують значення алгебраїчного виразу – правої частини з іменем лівої частини. Наведемо синтаксичні означення базових операторів з [40] (Рис.2.6.):  Рис. 2.6. Синтаксичне означення базових операторів Для запису цих операторів зручно використовувати інфіксну форму запису X --> E, X := E. Умовний оператор реалізовано операторами IF, ELSE. Запис скороченого і повного умовного операторів зручно здійснювати у формі U -> S, U -> S1 ELSE S2. Оператор циклу WHILE записують у вигляді WHILE(U, S) Програміст має змогу засобами мови визначати власні оператори циклів. Наприклад, у системі правил переписувань Compile визначення циклів здійснюються по суті як скорочення (Рис.2.7.).  Рис. 2.7. Визначення циклів Ця система правил переписувань призначена для препроцесування алгебраїчної програми. Вона описана у файлі gen_obj.ap і виконується кожного разу перед виконанням APS програми, якщо цей файл підключено. Опис Compile можна доповнювати своїми правилами переписувань, що дає змогу програмісту вносити свої доповнення у перелік правил скорочень для препроцесування. Нижче приведена частина структури файлу gen_obj.ap (Рис. 2.8.).  Рис. 2.8. Структура файлу gen_obj.ap Процедури APLAN визначені наступним чином (Рис.2.9.):  Рис. 2.9. Визначення процедур APLAN Ім’я у процедурах APLAN можна не використовувати. Таке явище частіше зустрічається у невеликих алгебраїчних програмах (Рис. 2.10.).  Рис. 2.10. Процедура APLAN без використання імені Ім’я процедури зв’язується з її визначенням за допомогою оператора присвоєння (Рис. 2.11.).  Рис. 2.11. Процедура APLAN з використанням імені Існує два способи визначення функцій – або через системи правил переписування, або через процедури, які повертають значення. Значення повертає оператор return, який можна використовувати у трьох формах: return, return A, return(A), де A – ім’я або алгебраїчний вираз (Рис.2.12.).  Рис. 2.12. Функція APLAN Програміст має змогу визначати власні операції шляхом об’яв відміток у розділі Mark (Рис. 2.13.). З кожною відміткою можна зв’язати її інтерпретатор за допомогою оператора процедури markcan (системний файл proc_tbl.tbl). Ця процедура має синтаксис markcan(<відмітка>,<система інтерпретуючих правил переписувань>);  Рис. 2.13. Використання відміток markcan(()#(), rsSymSub); - зв’язує операцію “#” з інтерпретатором rsSymSub markcan(()#(),can0); - робить операцію “#” неінтерпретованою markcan(()#(),sub_can); - зв’язує операцію “#” з інтерпретатором віднімання Систему алгебраїчного програмування APS розроблено у відділах 100,105 Інституту кібернетики НАН України під керівництвом акад. О.А. Летичевського. в 80-х роках ХХ сторіччя . На протязі багатьох років APS використовували для прототипування різноманітних алгебраїчних алгоритмів у наукових дослідженнях [5-9]. Для задач, що виникають при розробленні математичних систем навчального призначення, APS було використано вперше при розробці системи АІСТ - прототипу сучасних математичних систем навчального призначення [12-14]. Перехід до програмування систем під MS Windows поставив задачу реалізації APS як кросплатформеної системи, розвиненої спеціально для задач реалізації цих систем. Цю проблему було вирішено В.С.Песчаненко. РОЗДІЛ 3 ФУНКЦІОНАЛЬНІСТЬ ТА СКЛАД ІНФОРМАЦІЙНОЇ СИСТЕМИ ПІДТРИМКИ ВИВЧЕННЯ ТРИГОНОМЕТРІЇ Програмний модуль “Довідник” Програмний модуль “Довідник” являє собою набір функцій реалізованих у системі алгебраїчного програмування APS на мові програмування APLAN – мова цієї системи. Цей програмний модуль призначений для підтримки покрокового рішення задач з курсу тригонометрії. Зміст довідника являє собою набір команд (довідок), кожна з яких призначена для перетворення тригонометричних виразів. Структура довідника реалізована у вигляді xml-документів. Кожний такий документ описує деякий набір довідок для певного тригонометричного перетворення. Структура довідника тригонометрії має такий вигляд: 1. Перетворення чисел та числових виразів. 1.1. Форми запису чисел. Перетворити у звичайний/змішаний дріб. Перетворити у десяткове число/звичайний дріб. Привести дріб до стандартного вигляду. 1.2. Перетворення квадратних коренів. Добути квадратний корінь. Представити число у вигляді квадратного кореня. Звільнитися від ірраціональності у знаменнику дробу. Представити квадратний корінь як добуток / частку квадратних коренів. 1.3. Обчислення модуля. Обчислити модуль числа. 1.4. Обчислення значень тригонометричних функцій. 1.5. Обчислення значень обернених тригонометричних функцій. 1.6. Перетворення кута до радіанної/градусної міри. 2. Правила замін змінних. 2.1. Заміна виразу змінної . Позначити вираз змінною . Підставити вираз замість змінної . Надати змінній значення. Видалити з системи ті її члени, які залежать від даної змінної. 3. Алгебраїчні перетворення виразів.
Антиботан аватар за замовчуванням

19.06.2013 12:06-

Коментарі

Ви не можете залишити коментар. Для цього, будь ласка, увійдіть або зареєструйтесь.

Ділись своїми роботами та отримуй миттєві бонуси!

Маєш корисні навчальні матеріали, які припадають пилом на твоєму комп'ютері? Розрахункові, лабораторні, практичні чи контрольні роботи — завантажуй їх прямо зараз і одразу отримуй бали на свій рахунок! Заархівуй всі файли в один .zip (до 100 МБ) або завантажуй кожен файл окремо. Внесок у спільноту – це легкий спосіб допомогти іншим та отримати додаткові можливості на сайті. Твої старі роботи можуть приносити тобі нові нагороди!
Нічого не вибрано
0%

Оголошення від адміністратора

Антиботан аватар за замовчуванням

Подякувати Студентському архіву довільною сумою

Admin

26.02.2023 12:38

Дякуємо, що користуєтесь нашим архівом!