Курсовой проект по дисциплине Информатика на курсовую работу для студента «2» курса 221 группы icon

Курсовой проект по дисциплине Информатика на курсовую работу для студента «2» курса 221 группы


Скачать 43.29 Kb.
НазваниеКурсовой проект по дисциплине Информатика на курсовую работу для студента «2» курса 221 группы
Размер43.29 Kb.
ТипКурсовой проект

Министерство образования и науки Российской федерации

Государственное образовательное учреждение

высшего профессионального образования

«Южно-Российский государственный университет экономики и сервиса»

Волгодонский институт сервиса (филиал) государственного образовательного учреждения высшего профессионального образования

«Южно-Российский государственный университет экономики и сервиса»

(ВИС ГОУ ВПО «ЮРГУЭС»)


Факультет Сервиса

Кафедра Информационные технологии

Специальность 230200 «ИСиТ»




Работа допущена к защите

(подпись руководителя)

« » 20__ г.


К у р с о в а я р а б о т а


Тема Использование средств VBA для вычисления корня функционального

уравнения с помощью численных методов






По дисциплине Информатика


Разработал: Хохлова Д. А. (подпись, дата) (инициалы, фамилия)

группа 221




Руководитель: ст. преподаватель Ершова Е.А.

(должность, ученая степень, звание) (подпись, дата) (инициалы, фамилия)


ВОЛГОДОНСК 2013 г.

^ МИНОБРНАУКИ РОССИИ

Федеральное государственное

бюджетное образовательное учреждение высшего профессионального образования

«Южно-Российский государственный университет экономики и сервиса»

^ (ФГБОУ ВПО «ЮРГУЭС»)

Волгодонский институт сервиса (филиал)

(ВИС ФГБОУ ВПО «ЮРГУЭС»)


Факультет Сервиса

Кафедра Информационные технологии

Специальность230200 «ИСиТ»




З А Д А Н И Е


на курсовой проект по дисциплине Информатика

на курсовую работу для студента « 2 » курса 221 группы

Хохловой Дарьи Александровны

(фамилия, имя, отчество)

Тема Использование средств VBA для вычисления корня функционального

уравнения с помощью численных методов










Исходные данные










Объем проекта (работы)




Срок проектирования




Руководитель старший преподаватель Ершова Е.А

должность, ученая степень, звание подпись инициалы, фамилия


Задание к выполнению принял студент Хохлова Д. А.

подпись

Дата выдачи задания « »

Содержание


Введение…………………………………………………………4

1. Условие задачи……………………………………………….6

2. Описание заданного численного метода………………...…7

2.1 Программа процедуры вычисления корня………………..9

2.2 Главная программа………………………………………..11

3. Блок схема…………………………………………………..20

3.1 Аргументы процедуры Koren…………………………21

3.2 Результаты вычисления значения корня для

заданных пяти вариантов допустимой ошибки…………22

4. График функции………………………………………....23

Заключение………………………………………………….....24

Библиографический список…………………………………..25

Введение


Microsoft Excel имеет встроенный язык программирования - Visual Basic for Аpplications (VBA). Этот язык позволяет создавать приложения, выполняемые в среде Microsoft Office. Это могут быть разнообразные аналитические программы, финансовые системы, программы учета кадров, системы автоматического создания официальных писем/документов с помощью библиотеки готовых шаблонов и т.п. При этом интерфейс создаваемой программы может быть совершенно непохожим на интерфейс того приложения, в котором она написана.

VBA сочетает в себе практически неограниченные возможности с простотой изучения и использования. Теперь большинство функций можно описать, не прибегая к программированию. В том случае, если возможностей языка недостаточно, можно обратиться к API-функциям Windows. Пожалуй, самое главное достоинство VBA в том, что этот язык является единым для всех офисных приложений Microsoft и поэтому позволяет связывать их между собой. Уже сейчас из программы, написанной в Excel, можно обращаться к объектам Word для Windows, а также Microsoft Project. Это открывает заманчивые перспективы. Представьте, что пользователь на конкретном рабочем месте должен на основе некоторых данных, извлекаемых из базы, делать их анализ, строить диаграммы и проектировать деятельность организации, а также автоматически выполнять рассылку этих обработанных данных по некоторым адресам вместе с сопроводительным письмом. Все это можно сделать средствами офисных продуктов Microsoft, однако при этом пользователь должен в совершенстве овладеть каждым из них.

В случае если программа для решения этой задачи написана на VBA, пользователю придется изучить только ее.

Программа MS Excel, являясь лидером на рынке программ обработки электронных таблиц, определяет тенденции развития в этой области. Вплоть

до версии 4.0 программа Excel представляла собой фактический стандарт с точки зрения функциональных возможностей и удобства работы.

Одним из важнейших функциональных расширений программы, предназначенным для профессионалов, является встроенная в Excel Среда программирования Visual Basic (VBA) для решения прикладных задач. Благодаря VBA фирме Microsoft удалось не только расширить возможности языка макрокоманд Excel 4.0, но и ввести новый уровень прикладного программирования, поскольку VBA позволяет создавать полноценные прикладные пакеты, которые по своим функциям выходят далеко за рамки обработки электронных таблиц.
^



Условие задачи


При заданных пяти вариантах допустимой ошибки e заданным численным методом вычислить приближенное значение корня функционального уравнения вида f (x) = 0, если известно, что это уравнение имеет единственный корень на отрезке [a, b].

В работе должно быть предусмотрено:

проверка корректности введенных значений исходных данных (выполнение условия a < b, выполнение условия e > 0),

перехват и обработка ошибки времени выполнения, когда строку введенных символов невозможно интерпретировать как число, построение графика функции в книге Excelle с помощью процедуры VBA.

Условие заданного численного метода соответствует третьему варианту:

F(x) = 3x – 4ln x –5 при х є [ 2; 4]

Вариант допустимой ошибки (при n=5):

1e–1; 1e–2; 1e–3; 1e–4; 1e–5; Заданным численным методом считать метод Ньютона, согласно варианту.



2 ^ Описание заданного численного метода

Рисунок 1 поясняет метод Ньютона. Пусть имеется начальное приближение к корню, которое обозначим xn.



Рисунок 1 - Графическая иллюстрация метода Ньютона


Проведем касательную к графику y = f (x) в точке с координатами (xn, f (xn)). Новое приближение к корню, которое мы будем называть следующим приближением, xs получим как точку пересечения этой касательной с осью абсцисс. Это правило приводит к следующей расчетной формуле:



При соблюдении некоторых условий (они называются условиями сходимости), которые будут перечислены ниже, строго доказывается, что приближение xs находится ближе к корню, чем приближение xn.

Теперь заменим значение начального приближения xn на значение только что полученного приближения xs . Мы пришли к той же самой задаче, но теперь начальное приближение расположено ближе к корню, чем до его изменения на xs. Каждое такое улучшение приближения к корню за счет вычисления следующего приближения называется итерацией.

Сколько нужно выполнить итераций, чтобы нас могла устроить точность приближение xs к значению корня x*?

Обычно считают, что требуемая точность достигнута, если после вычисления xs при выполнении очередной итерации соблюдается условие

|xs - xn |< e . (2)

При выполнении неравенства (2) итерационный процесс уточнения корня следует прекратить и в качестве искомого приближенного значения корня взять

xw = xs . (3)

При выполнении первой итерации в качестве начального приближения xn можно взять любую точку отрезка [a, b], например его середину:

xn = (a+b)/2. (4)

Смысл условий сходимости метода Ньютона состоит в том, что начальное приближение xn, используемое при выполнении первой итерации, должно быть не слишком далеко от корня, а производная f(x) должна изменяется на отрезке [a, b] не очень быстро и не обращаться в ноль ни в одной точке отрезка [a, b]. Мы будем считать, что они выполняются.

Метод Ньютона является наиболее быстрым среди численных методов вычисления корня функционального уравнения. На практике необходимая точность достигается буквально после выполнения нескольких (не более 10) итераций.

Формулы (1) – (4) должны быть применены в алгоритме вычисления корня по методу Ньютона. Для вычисления входящей в формулу (1) производной f(x) следует найти ее аналитическое выражение, применить в программе функцию для вычисления значения производной.

  1. ^ Программа процедуры вычисления корня

На основе Блок-схемы была написана процедура Koren.

Private Sub koren(pred As Integer, a As Single, b As Single, eps As Single, xw As Single, it As Integer, Flag As Boolean)

Dim xn1 As Single, xn2 As Single, xs As Single

Dim fxn1 As Single, fxn2 As Single, fxs As Single

Dim d As Single, Bool As Boolean

xn1 = a

xn2 = b

it = 0

fxn1 = f(xn1) ' вызов функции f для расчета ее значения в точке xn1

fxn2 = f(xn2) ' вызов функции f для расчета ее значения в точке xn2

Do

xs = (xn1 + xn2) / 2 ' вычисление xs

fxs = f(xs)

it = it + 1

Bool = Sgn(fxs) = Sgn(fxn2)

' функция sgn() сравнивает значение арнумента с нулем

If Bool Then

' если знак fxs и fxn2 совпадают, то конец отрезка переносим в точку xs

d = xn2 - xs

xn2 = xs

fxn2 = fxs

Else

' если знак fxs и fxn2 не совпадают, то конец отрезка переносим в точку xs

d = xs - xn1

xn1 = xs

fxn1 = fxs

End If

Bool = Abs(d) < eps Or it > pred

Loop Until Bool

'если |d|< или превышено количество итераций, цикл заканчивается


If it <= pred Then

Flag = False

xw = xs

Else

Flag = True

End If

End Sub


  1. Главная программа

Процедура описания переменных.

Option Explicit

Dim Задано_a As Boolean

Dim Задано_b As Boolean

Dim Задано_eps As Boolean

Dim a As Single, b As Single

Dim eps As Single

При нажатии кнопки «Выход» происходит выход из программы.

Private Sub cmdВыход_Click()

End

End Sub




При открытии формы курсор устанавливается в поле для ввода переменной.

Private Sub UserForm_Activate()

Задано_a = False

Задано_b = False

Задано_eps = False

Txta.SetFocus

End Sub

Процедуры ввода начальных данных для выполнения расчетов.

Private Sub Txta_KeyDown(ByVal KeyCode As MSForms.ReturnInteger, ByVal Shift As Integer)

If KeyCode = 13 Then

a = Txta.Text

Задано_a = True

LblСообщ.Visible = False

Txtb.SetFocus

End If

End Sub

Private Sub Txtb_KeyDown(ByVal KeyCode As MSForms.ReturnInteger, ByVal Shift As Integer)

If KeyCode = 13 Then

b = Txtb.Text

Задано_b = True

LblСообщ.Visible = False

Txteps.SetFocus

End If

End Sub




Private Sub Txteps_KeyDown(ByVal KeyCode As MSForms.ReturnInteger, ByVal Shift As Integer)

If KeyCode = 13 Then

eps = Txteps.Text

Задано_eps = True

LblСообщ.Visible = False

CmdПуск.SetFocus

End If

End Sub


Private Sub txta_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger)

On Error GoTo L

LblСообщ.ForeColor = RGB(0, 0, 0)

LblСообщ.Caption = _

"Закончив ввод, нажмите клавишу Enter!"

LblСообщ.Visible = True

Txta.ForeColor = RGB(0, 0, 0)

Select Case KeyAscii

Case 0, 8, 44, 45, 48 To 57, 101

Case Else

KeyAscii = 0

End Select

Exit Sub

LblСообщ.ForeColor = RGB(255, 0, 0)

LblСообщ.Caption = _

"Это не число! Исправьте!"

L: LblСообщ.Visible = True

Txta.ForeColor = RGB(255, 0, 0)

End Sub




Private Sub txtb_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger)

On Error GoTo L

LblСообщ.ForeColor = RGB(0, 0, 0)

LblСообщ.Caption = _

"Закончив ввод, нажмите клавишу Enter!"

LblСообщ.Visible = True

Txtb.ForeColor = RGB(0, 0, 0)

Select Case KeyAscii

Case 0, 8, 44, 45, 48 To 57, 101

Case Else

KeyAscii = 0

End Select

Exit Sub

L: LblСообщ.ForeColor = RGB(255, 0, 0)

LblСообщ.Caption = _

"Это не число! Исправьте!"

LblСообщ.Visible = True

Txtb.ForeColor = RGB(255, 0, 0)

End Sub




Private Sub txteps_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger)

On Error GoTo L

LblСообщ.ForeColor = RGB(0, 0, 0)

LblСообщ.Caption = _

"Закончив ввод, нажмите клавишу Enter!"

LblСообщ.Visible = True

Txteps.ForeColor = RGB(0, 0, 0)

Select Case KeyAscii

Case 0, 8, 44, 45, 48 To 57, 101

Case Else

KeyAscii = 0

End Select

Exit Sub

L: LblСообщ.ForeColor = RGB(255, 0, 0)

LblСообщ.Caption = _

"Это не число! Исправьте!"

LblСообщ.Visible = True

Txteps.ForeColor = RGB(255, 0, 0)

End Sub

Функция вычисления значений функции f(x)=0.

Private Function f(x As Single) As Single

f = 3 * x - 4 * Log(x) - 5

End Function

Private Function p1(x As Single) As Single

p1 = 3 - 4 / x

End Function

Private Sub koren(pred As Integer, a As Single, b As Single, eps As Single, xw As Single, it As Integer, Flag As Boolean)

Dim xn As Single, xs As Single

Dim fxn As Single, fxs As Single

Dim p1xn As Single

Dim Bool As Boolean

xn = (a + b) / 2

it = 0

Do

p1xn = p1(xn)

fxn = f(xn) ' вызов функции f для расчета ее значения в точке xn

xs = xn - fxn / p1xn ' вычисление xs

fxs = f(xs)

it = it + 1

Bool = Abs(xs - xn) < eps Or it > pred

xn = xs

Loop Until Bool 'если |xs-xn|< или превышено количество итераций, то цикл заканчивается

If it <= pred Then

Flag = False

xw = xs

Else

Flag = True

End If

End Sub




Процедура вывода расчетов в книгу Excelle и построения графика.

Private Sub График()

Dim x As Single, h As Single

Dim n As Integer

h = 0.1

n = 2

Worksheets("Лист1").Range("A1").Value = "x"

Worksheets("Лист1").Range("B1").Value = "y"

For x = a To b + h / 2 Step h

Worksheets("Лист1").Range("A" & n) = x

Worksheets("Лист1").Range("B" & n) = f(x)

n = n + 1

Next

ActiveWorkbook.Charts.Add Worksheets("Лист2")

Charts(1).ChartWizard Worksheets("Лист1").Range("A2:B" & (n - 1)), xlLine, , , 1, , , "график функции", "x", "F(x)"

End Sub




Private Sub cmdПуск_Click()

Dim xw As Single, it As Single

Dim Flag As Boolean

'сделаем недоступным изменение полей и надписей в форме

LblСообщ.Visible = False

LblЗначКоР.Visible = False

LblРезультат.Visible = False

LblКолИт.Visible = False

Lblвып.Visible = False

LblИт.Visible = False

'Проверка задания значений исходных данных

If Not Задано_a Then

LblСообщ.ForeColor = RGB(255, 0, 0)

LblСообщ.Caption = "Не задан левый конец отрезка"

LblСообщ.Visible = True

Txta.SetFocus

Exit Sub

End If

If Not Задано_b Then

LblСообщ.ForeColor = RGB(255, 0, 0)

LblСообщ.Caption = "Не задан правый конец отрезка"

LblСообщ.Visible = True

Exit Sub

End If

If Not Задано_eps Then

LblСообщ.ForeColor = RGB(255, 0, 0)

LblСообщ.Caption = "Не задана допустимая ошибка"

LblСообщ.Visible = True

Exit Sub

End If

a = Txta.Text

b = Txtb.Text

eps = Txteps.Text

' Проверка корректности данных

If a >= b Then

LblСообщ.ForeColor = RGB(255, 0, 0)

LblСообщ.Caption = "Нарушено условие a < b?"

LblСообщ.Visible = True

Exit Sub

End If

If eps <= 0 Then

LblСообщ.ForeColor = RGB(255, 0, 0)

LblСообщ.Caption = "Допустимая ошибка eps не может быть < 0 "

LblСообщ.Visible = True

Exit Sub

End If

' Вычисление корня

it = 0

koren 100, a, b, eps, xw, it, Flag

' Вывод результатов вычислений

If Flag Then

LblСообщ.ForeColor = RGB(255, 0, 0)

LblСообщ.Caption = "Решение не получено!"

LblСообщ.Visible = True

Exit Sub

Else

LblСообщ.ForeColor = RGB(0, 0, 255)

LblСообщ.Font.Size = 12

LblСообщ.Caption = "Решение получено!"


LblСообщ.Visible = True

LblЗначКоР.Visible = True

LblРезультат.Caption = xw

LblРезультат.Visible = True

LblКолИт.Caption = it

LblКолИт.Visible = True

Lblвып.Visible = True

LblИт.Visible = True

End If

' вывод данных в книгу Excel

График

End Sub





Блок схема


3. 1 Аргументы процедуры Koren.

pred – предельное количество итераций (защита против зацикливания);

a, b – левая и правая границы отрезка, содержащего единственный корень;

eps – допустимая ошибка вычисления корня уравнения;

xw – полученное приближенное значение корня уравнения;

it – выполненное количество итераций;

flag – сигнал зацикливания, когда обращение к процедуре закончилось тем, что количество итераций превысило допустимую величину pred и приближенное значение корня не было получено.

^ Входные аргументы

pred – переменная целого типа (предельное количество итераций);

a, b – переменные с плавающей точкой (левая и соответственно правая граница заданного отрезка, на котором содержится единственный корень заданного уравнения);

eps – переменная с плавающей точкой (допустимая ошибка).

Выходные аргументы

xw – переменная с плавающей точкой (приближенное значение корня);

it – переменная целого типа (количество выполненных итераций);

flag – переменная логического типа (признак зацикливания).

^ Локальные данные

xn1, xn2- переменные с плавающей точкой (начальные приближения к корню);

xs - переменная с плавающей точкой (следующее приближение к корню);

fxn1, fxn2 и fxs - переменные с плавающей точкой (значения f(xn1), f(xn2) и f(xs) соответственно);

d - переменная вещественного типа (величина изменения начального приближения при выполнении очередной итерации);

bool - переменная логического типа (рабочая переменная).

^ 3.2 Результаты вычисления значения корня для заданных пяти вариантов допустимой ошибки


Таблица. Результаты выполнения расчета

a = 2 b = 4

№ значения допустимой ошибки

Допустимая ошибка

Значение корня

Выполнено итераций

1

2e–2

3,22546

2

2

8e–4

3,229959

2

3

8e–5

3,229959

3

4

1e–5

3,229959

4

5

1e–6

3,229959

4





4. График функции


На рисунке 3 изображен полученый график функции.

Рисунок 3 – График функции


Приложение А

Интерфейс программы






Рисунок А.1 - Интерфейс проекта




Заключение

Выполнение курсовой работы способствует закреплению и углублению знаний и практических навыков, полученных при изучении дисциплины «Информатика». В результате выполнения работы я получила следующие навыки:

  • применение на практике приемов и методов работы с VBA;

  • создания пользовательских форм;

  • отладки программ;

  • работы со специальной литературой;






^

Библиографический список


  1. Король В.И. Visual Basic Net, Visual Basic 6.0, Visual Basic for Applications 6.0. Языки программирования. Справочник с примерами.-М.: КУДИЦ ОБРАЗ, 2002- 496с

  2. Зиборов В. В. Visual Basic 2010 на примерах – СПб: БХВ- Петербург, 2010- 336с

  3. Самоучитель. Microsoft Visual Basic 5. Шаг за Шагом. Практическое пособие. М.: Издательство ЭКОНОМ , Издание второе, исправленное 1998 – 432с.

  4. Слепцова Л.Д. С47 программирование на Visual Basic в МО 2010 – М.: ООО «И. Д. Вильемс» 2010 – 432с.

  5. Назаров С. В., Мельников П. П.
    Н19 Программирование на Microsoft Visual Basic: Учебное пособие под редакцией С.В. Назарова – М.: Финансы и статистика, 2002 – 302 с.

Приложение Б

Примеры запуска программы

На рисунке Б.1 изображен запуск программы с незаданным левым концом отрезка.




Рисунок Б.1 - Запуск программы с незаданным левым концом отрезка

На рисунке Б.2 изображен запуск программы с незаданным правым концом отрезка.




Рисунок Б.2 - Запуск программы с незаданным правым концом отрезка.

На рисунке Б.3 изображен запуск программы с незаданной допустимой ошибкой.








Рисунок Б.3 - Запуск программы с незаданной допустимой ошибкой

На рисунке Б.4 изображен запуск программы с неверно заданными концами отрезка.





Рисунок Б.4 - Запуск программы с неверно заданными концами отрезка

На рисунке Б.5 изображен запуск программы с выполнением всех условий.


Рисунок Б.5 - Запуск программы с выполнением всех условий

Похожие:

Курсовой проект по дисциплине Информатика на курсовую работу для студента «2» курса 221 группы iconКурсовой проект по дисциплине Информатика на курсовую работу для студента «2» курса 221 группы
Волгодонский институт сервиса (филиал) государственного образовательного учреждения высшего профессионального образования
Курсовой проект по дисциплине Информатика на курсовую работу для студента «2» курса 221 группы iconМетодические рекомендации по выполнению курсового проекта 1 Общие указания
Курсовой проект по дисциплине “ Цифровые системы коммутации ” является одним из основных видов учебной деятельности и формой контроля...
Курсовой проект по дисциплине Информатика на курсовую работу для студента «2» курса 221 группы iconРостовский Государственный медицинский университет Стоматологический факультет Кафедра стоматологии №1 Дневник практической работы студента курса группы
Студента(ки) 4 курса группы,стоматологического факультета Ростгму
Курсовой проект по дисциплине Информатика на курсовую работу для студента «2» курса 221 группы iconМетодические указания к выполнению курсовой работы для студентов, обучающихся по специальностям 080502 «Экономика и управление на предприятии в машиностроении», 080507 «Менеджмент организации», 080105 «Финансы и кредит», 080505 «Управление персоналом»
Разработаны в помощь студентам, выполняющих курсовую работу по бухгалтерскому учету. В состав методических указаний входят требования...
Курсовой проект по дисциплине Информатика на курсовую работу для студента «2» курса 221 группы iconВопросы к экзамену по дисциплине «Языки и методы программирования» для студентов 3 курса направления фмо (информатика)
Структура проекта в среде Delphi. Типы и назначение файлов, составляющих проект на Delphi
Курсовой проект по дисциплине Информатика на курсовую работу для студента «2» курса 221 группы iconПоложение о курсовой работе по направлению 030500 «Юриспруденция»
Проблема, являющаяся темой курсовой работы, должна быть шире и обстоятельнее, нежели он освещается в учебниках и на занятиях. Студент,...
Курсовой проект по дисциплине Информатика на курсовую работу для студента «2» курса 221 группы iconДневник производственной практики (наименование вида производственной практики) 20 \20 учебный год Студента (ки) Курса группы Специальности Место прохождения практики Руководители
Студента (ки) Курса группы
Курсовой проект по дисциплине Информатика на курсовую работу для студента «2» курса 221 группы iconАндрей Викентьевич Коротков На 100 баллов. Как написать и защитить отличную курсовую работу, дипломный проект или магистерскую диссертацию в гуманитарном университете
...
Курсовой проект по дисциплине Информатика на курсовую работу для студента «2» курса 221 группы iconНа курсовую работу По дисциплине
Рассмотрено и одобрено цикловой комиссией по направлению подготовки «Экономика и управление»
Курсовой проект по дисциплине Информатика на курсовую работу для студента «2» курса 221 группы iconКурсовой проект по дисциплине «Гражданские и промышленные здания»
Прошу выдать задание на курсовой проект по дисциплине «Гражданские и промышленные здания»
Курсовой проект по дисциплине Информатика на курсовую работу для студента «2» курса 221 группы iconКак написать курсовую работу?
Материалы курсовой работы должны излагаться четко, ясно, последовательно, при соблюдении логичности перехода от одной главы к другой...
Вы можете разместить ссылку на наш сайт:
Документы


При копировании материала укажите ссылку ©ignorik.ru 2015

контакты
Документы