Реферат по предмету "Информатика, программирование"


Математическая программа "Производная"

Кафедра электронно-вычислительнойаппаратуры
Математическая программа «Производная»
Москва 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+2sinx и нажатии кнопки«Производная» программа:
– вставляетсимвол «*» между 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 с.


Не сдавайте скачаную работу преподавателю!
Данный реферат Вы можете использовать для подготовки курсовых проектов.

Поделись с друзьями, за репост + 100 мильонов к студенческой карме :

Пишем реферат самостоятельно:
! Как писать рефераты
Практические рекомендации по написанию студенческих рефератов.
! План реферата Краткий список разделов, отражающий структура и порядок работы над будующим рефератом.
! Введение реферата Вводная часть работы, в которой отражается цель и обозначается список задач.
! Заключение реферата В заключении подводятся итоги, описывается была ли достигнута поставленная цель, каковы результаты.
! Оформление рефератов Методические рекомендации по грамотному оформлению работы по ГОСТ.

Читайте также:
Виды рефератов Какими бывают рефераты по своему назначению и структуре.