Математична програма Похідна 2

[ виправити ] текст може містити помилки, будь ласка перевіряйте перш ніж використовувати.

скачати

Кафедра електронно-обчислювальної апаратури
Математична програма "Похідна"
Москва 2009

Анотація

Робота являє собою програму (реалізовану на мові Microsoft Visual Basic 6), основною функцією якої є знаходження формули похідної на підставі введеної користувачем вихідної формули, що представляє собою суперпозицію (довільне поєднання) елементарних функцій (передбачені програмою sin, cos, tg, ctg, arcsin, arccos, arctg, arcctg, ln, exp, +, -, *, /, ^, константи).
Для зручності програма володіє додатковими функціями: перебування значення формули при даних аргументах, наближене знаходження інтеграла, робота зі змінними (зміна аргументів), виклик довідки.
Програма використовує стандартні бібліотеки Microsoft Windows (98, XP, 2000), тому для коректної роботи програми необхідно використовувати цю операційну систему.

Технічне завдання

Основне вікно програми в робочому режимі показано на рис 1.

Рис. 1
Компоненти зображення:
o меню команд у верхній частині екрану;
o поле для введення формули, що включає
o список змінних,
o поле для введення рядка;
o список завдань, що включає:
o три кнопки «Похідна», «Інтеграл», «Значення»;
o два текстових поля для введення кордонів інтегрування;
o текстове поле для виведення формули;
o список допустимих функцій (об'єкт класу ListBox);
o таблиця змінних, що включає:
o таблицю класу MSHFlexGrid бібліотеки «MSHFLXGD.OCX»,
o три кнопки управління таблицею «Значення», «Нова змінна», «Скидання».

Вибір команди
· Для вибору команди використовується однорівневе горизонтальне меню.
· Для переміщення по меню використовуються клавіші навігації та / або мишу.
· Для вибору пункту використовується клавіша Enter і / або права клавіші миші.
Команди меню
Файл -> Вихід
При виході програма закінчує свою роботу.
Дії -> Похідна
Програма аналізує введену формулу і у відповідному полі виводить формулу похідної. (При введенні невірної формули виводиться помилка).
Дії -> Інтеграл
Програма аналізує введену формулу і у відповідному полі виводить значення часткових сум під графіком функції. (При введенні невірної формули виводиться помилка).
Дії -> Значення
Програма аналізує введену формулу і у відповідному полі виводить значення функції при аргументах, зазначених користувачем. (При введенні невірної формули виводиться помилка).

Довідка -> Мені потрібна допомога
На екрані з'являється вікно, що містить керівництво користувача.
Довідка -> Про автора
На екрані з'являється вікно, що містить інформацію про автора.
Поле для введення формули
Текст з цього поля використовується в якості вихідної функції користувача.
Список завдань
Команди аналогічні командам меню.
Поле для виведення функції
Це поле служить для виведення кінцевого результату.
Список допустимих функцій
Служить підказкою користувачеві як правильно написати функцію.
Подвійний клацання на елементі додає його в поле для введення формули.
Таблиця змінних
Служить підказкою користувачеві, які змінні можна використовувати;
Подвійний клацання на елементі дозволяє змінити значення змінної.
Таблиця пов'язана з трьома кнопками.
Значення змінної
Змінити значення обраної змінної на зазначеній користувачем.

Нова змінна
Додає в таблицю нову змінну, ім'я якій вказав користувач.
Скидання змінних
Очищує таблицю змінних і створює змінні за замовчуванням (x = 0, y = 0, z = 0, t = 0).

Введення

Алгоритм програми заснований на теорії математичного аналізу. Зокрема, в основу покладені два твердження:
- Всі елементарні функції диференційовні на області визначення. (Sin, cos, tg, ctg, arcsin, arccos, arctg, arcctg, ln, exp, +, -, *, /, ^, константи і т.д.)
- Суперпозиція диференційовних функцій диференційовна: (f (g (x )))'= g '(x) f' (g (x)).
З цих тверджень випливає, що будь-яка суперпозиція елементарних функцій диференційовна.
В основу обчислення похідної вирішено покласти таблицю елементарних функцій, тому що будь-який суперпозиції елементарних функцій відповідає список послідовних елементарних функцій. Робота програми (тобто виконання необхідних процедур) зводиться до складання та аналізу цієї таблиці, а також перевірки вхідних даних.
Наприклад, при введенні функції y (x) = 2 ^ 2 +2 sinx і натисканні кнопки «Похідна» програма:
- Вставляє символ «*» між 2 і sin x;
- Бере x після sin в дужки;
- Перевіряє формулу на наявність синтаксичних помилок;
- Складає таблицю функції, яка виглядає наступним чином:
& F1 = sin (x);
& F2 = 2 ^ 2;
& F3 = 2 * &F1;
& F0 = & F2 + & F3.
(& F0 аналогічна функції main в С, тобто з неї починається обчислення)
- Спрощує таблицю функції:
& F1 = sin (x);
& F3 = 2 * &F1;
& F0 = 4 + & F3.
- За таблицею рекурсивно (зводячи до випадків x '= 1 і const' = 0) обчислює похідну за правилами диференціювання:
y '(x) = (4 +2 * sin (x ))'=( 4)' + (2 * sin (x)) '= 0 + (2' * sin (x) +2 * (sin (x ))')= 0 + (0 * sin (x) +2 * (x '* cos (x))) = 0 + (0 * sin (x) +2 * (1 * cos (x)))
Ця функція є похідною, але має важко читається вигляд. Тому до алгоритму включений наступний пункт:
- Спрощення функції:
y '(x) = 0 +0 * sin (x) +2 * (1 * cos (x)) = 0 +0 +2 * cos (x) = 2 * cos (x).

1. Функціональна структура програми

На основі технічного завдання складена функціональна структура програми, яка відображає ієрархію основних функцій і відповідає на питання «Що повинна робити програма?». Порядок виконання функцій, способи їх оформлення у вигляді підпрограм і модулів, способи реалізації функціональна структура не відображає.


2. Принципи побудови програми

При побудові програми вирішені наступні проблеми.
2.1 Управління обробкою вхідних подій
Вхідними подіями можуть бути події натискання клавіш і кнопок ручного маніпулятора типу «миша».
У об'єктах програми реалізований цикл введення і обробки подій.
2.2 Висновок об'єктів на екран
Передбачена робота програми в середовищі Windows на графічному адаптері VGA і в режимі монітора 800х600 пікселів (і вище). У програмі явно вказані координати видимих ​​об'єктів відносно лівого верхнього кута вікна додатка.
На малюнку показані координати основних видимих ​​об'єктів.


3. Основні структури даних і алгоритми

3.1 Основний алгоритм

Початок
Ініціалізувати об'єкти
Цикл
Обробити події
КЦікл
Кінець
Ініціалізувати об'єкти
Ініціалізувати Командна меню і додати його елементи.
Ініціалізувати Кнопки «Похідна», «Інтеграл», «Значення функції», «Значення змінної», «Нова змінна», «Скидання змінних».
Ініціалізувати Список Допустимих Функцій і додати його елементи
Ініціалізувати Таблицю Змінних
Встановити Таблицю Змінних за замовчуванням
Ініціалізувати Таблицю Елементарних Функцій
Ініціалізувати Поле вводу Функції, Поле Висновку Результату
Ініціалізувати Список змінних
Оновити Список змінних
Кінець
Алгоритм Обробити події
Якщо розгорнути Список змінних
Оновити Список змінних
Кеслі
Якщо Натиснуто кнопка «Похідна»
Знайти похідну
Кеслі
Якщо Натиснуто кнопка «Інтеграл»
Знайти Інтеграл
Кеслі
Якщо Натиснуто кнопка «Значення функції»
Знайти Значення функції
Кеслі
Якщо Натиснуто кнопка «Значення змінної»
Змінити Значення поточної змінної
Кеслі
Якщо Натиснуто кнопка «Нова змінна»
Створити нову змінну користувача
Кеслі
Якщо Натиснуто кнопка «Скидання змінних»
Скинути змінні
Кеслі
Якщо Команда меню «Похідна»
Знайти похідну
Кеслі
Якщо Команда меню «Інтеграл»
Знайти Інтеграл
Кеслі
Якщо Команда меню «Значення функції»
Знайти Значення функції
Кеслі
Якщо Команда меню «Вихід»
Завершити програму
Кеслі
Якщо Команда меню «Довідка»
Показати довідку
Кеслі
Якщо Команда меню «Про автора»
Показати Вікно Про автора
Кеслі
Кінець
Алгоритм Встановити Таблицю Змінних за замовчуванням
Стерти таблицю змінних
Оголосити нову змінну користувача («x»)
Оголосити нову змінну користувача («y»)
Оголосити нову змінну користувача («z»)
Оголосити нову змінну користувача («t»)
Кінець
Алгоритм Створити нову змінну користувача
Рядок = Ввести рядок
Якщо Гарне Ім'я змінної (рядок)
Оголосити нову змінну користувача (рядок)
Кеслі
Кінець

3.2 Реалізація алгоритму розпізнавання функції

Реалізація алгоритму розпізнавання функції знаходження похідної, інтеграла та значення функції описана нижче:
Розпізнавання функції
· Створення таблиці пов'язаних елементарних (містять одну дію) функцій, послідовне обчислення яких призводить до обчислення складної функції.
o Створення розміченій рядки: виділення чисел у службові символи []; змінних в {}; функцій в <>. (Контекстно, тобто у рядку «exp» не буде виділена змінна «x»).
o Створення на підставі розміченій рядка карти функції, тобто виділення з неї тільки символів () [] {} <> і визначення їх позицій у розміченій рядку.
o Аналіз карти функції і вставка в розмічену рядок відповідних замін (наприклад, знака множення між числом і змінної), а також пошук синтаксичних помилок (наприклад, якщо рядок починається зі знака «/»)
o Оброблена таким чином рядок, в якій не були знайдені синтаксичні помилки, підлягає розкладанню на елементарні функції, яке полягає в наступному:
§ пошук самої внутрішньої дужки
§ знаходження першого оператора і його операндів у порядку важливості (^,*, /, +, -)
§ Якщо у скобці більше немає операторів, замінити всю дужку, інакше замінити лише цей оператор з операндами на нову змінну (виду & F #) і записати це в таблицю.
§ Якщо у всьому рядку ще є оператори, повторити інакше створити останню змінну & F0
o Доповнити таблицю змінними користувача.
Знаходження значення функції в точці (x, y, z, t, ...)
o Знайти змінну (елементарну функцію) в таблиці.
o Вважати оператор і операнди; якщо операнди - змінні, то
o Якщо операнд змінна не диференціюється, то знайти рекурсивно (цієї ж функцією).
o Якщо операнд мінлива дифференцируемая, то повернути поточне значення диференційовною змінної.
o Виконати дію над операндами в залежності від оператора і повернути значення.
Знаходження часткових сум площ під графіком функції (~ інтеграла)
· Встановити поточну змінну інтегрування / диференціювання (на підставі відомостей отриманих від користувача).
· Підсумувати добутку значень функції на зміни аргументу (на підставі відомостей отриманих від користувача і користуючись визначенням часткових сум).
· Повернути результат
Знаходження формули похідної
o Знайти змінну (елементарну функцію) в таблиці.
o Вважати оператор і операнди; якщо операнди - змінні, то
o Якщо операнд змінна не диференціюється, то знайти рекурсивно (цієї ж функцією).
o Якщо операнд мінлива дифференцируемая, то повернути «1».
o Знайти похідну за правилами диференціювання і повернути значення.


Висновок

В результаті проектування створена повністю працездатна програма відповідно до технічного завдання. Програма оформлена у вигляді структурних записів. Написання програми «Похідна» на Visual Basic 6.0 є прикладом використання об'єктно-орієнтованих засобів мови Visual Basic.
Програма може мати практичне застосування при математичних обчисленнях.


Список літератури

1. Microsoft Visual Basic для професіоналів. Крок за кроком: Практ. посіб. / Пер. з англ. - М: Видавництво ЕКОМ, 1999. - 720 с.
Додати в блог або на сайт

Цей текст може містити помилки.

Програмування, комп'ютери, інформатика і кібернетика | Контрольна робота
27.4кб. | скачати


Схожі роботи:
Математична програма Похідна
Похідна Фреше та похідна Гато
Програма Txtprintcom - резидентна програма для швидкого і зручного друкування виборчого тексту
Похідна 5
ОС Windows XP програма Провідник програма Total Commander
Похідна диференціал і інтеграл
Марш і похідна охорона
Похідна за напрямом Градієнт
Марш і похідна охорона 2
© Усі права захищені
написати до нас