.

Создание программных продуктов для решения задач

Язык: русский
Формат: курсова
Тип документа: Word Doc
0 558
Скачать документ

Санкт-Петербургский государственный технологический институт

( Технический университет)

Кафедра Математического моделирования и оптимизации
химико-технологических процессов

Факультет 5

Курс I

Группа 517

Дисциплина: информатика.

КУРСОВАЯ РАБОТА

Тема: Создание программных продуктов для решения задач.

Студент: Хохленко Сергей Дмитриевич

Научный руководитель:

Гайков Андрей Владимирович

Санкт-Петербург

2002

Содержание

Введение…………………………………………………………………………3

Задание на работу……………………………………………………………….4

Описание метода…………………………………………………………………5

Алгоритм построения решения задачи…………………………………………6

Глава I…………………………………………………………………………….7

Проект. Рабочая форма Visual Basic…………………………………………8

Программный код……………………………………………………………..9

Свойства объектов……………………………………………………………10

Рабочая форма с данными……………………………………………………11

Глава II…………………………………………………………………………….12

Решение в MathCad’е…………………………………………………………13

Графики №1 и
№2…………………………………………………………….
…………………..14

Глава
III……………………………………………………………
………………………………………15

Решение задачи в
Excei’е………………………………………………………..
…………….16

Графики
зависимостей……………………………………………………
……………………..17

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

Аннотация………………………………………………………
………………………………………..19

Аннотация

В данной курсовой работе рассмотрен Метод наименьших квадратов,
позволяющий вести расчеты в различных физико-химических задачах.

Главными законами, необходимыми для решения поставленной задачи,
являются: Закон Ньютона и Закон Стефана-Больцмана.

Работа выполнена в трех программных средах: Visual Basic, Excel и
Math-Cad. Программный код, написанный на языке программирования Visual
Basic, читается с легкостью и прост в понимании. Построенные графики
позволяют выбрать наиболее подходящий закон для расчета скорости
охлаждения.

Введение

Современное программирование развивается и широко используется для
решения таких задач, как программирование баз данных, реализация обмена
между приложениями, использование сетевых технологий и т.д.;
современ-ные системы программирования обеспечивают генерацию кода.

Большинство компьютеров в рамках всего мира работают под управлением
операционной системы Windows корпорации Microsoft. Каждый пользователь
хотя бы раз в жизни работал с приложениями Word, Excel или Access.
Практические задачи иногда требуют обмена данными между прило-жениями;
пусть, например, имеется база данных, нужно сделать запрос к ней, а
затем – математическую обработку результатов запроса, которую, можно
выполнить только с использованием Excel; здесь следует передать
резуль-таты запроса в приложение Excel и для этого нужно использовать
язык про-граммирования.

Базовым языком программирования корпорации Microsoft является Visual
Basic. Современные его версии позволяют, и реализовать в программе
SQL-запрос к базе данных и выполнить вышеупомянутую передачу данных.
Особенность языка Visual Basic заключается в репликации и синхронизации
баз данных.

Курсовая работа включает в себя три различных варианта ввода данных
значений: автоматический (наиболее простой) и два ручных: открытие файла
и самостоятельный ввод каждого отдельного числа (значения). Кроме этого,
работа включает в себя универсальный инженерный калькулятор,
необходи-мый для каких либо вычислений. Построенные графики зависимостей
в про-граммах позволяют выбрать наиболее приемлемый закон, а также сам
язык программирования.

Задание №7

Закон Ньютона имеет вид: V=AQ (1)

где V- скорость охлаждения, а Q- избыток температуры.

По данным наблюдений, представляемым в таблице:

V(I)

1 8.81 220

2 7.40 200

3 6.10 180

4 4.89 160

5 3.88 140

6 3.02 120

7 2.30 100

Найти значения коэффициента A; скорость охлаждения, вычисляемую по
формуле (1); относительную погрешность.

(2)

Для вычисления коэффициента A необходимо решить систему уравнений:

(3)

Для этого следует решить уравнения:

(4)

Если максимальная относительная погрешность (2) окажется больше 5%,

проверить, согласуется ли с данными опыта закон Стефана:
V=k((Q+273)^4-273^4) (5).

Обозначив Z=k((Q+273)^4-273^4), где k=5,67*10^(-9), подобрать
коэффи-циент A, скорость охлаждения, относительную погрешность, решить
сле-дующую систему уравнений:

V=AZ (6)

План решения задачи

Составить алгоритм и программу вычисления коэффициента А,

V(I) расчетного и относительную погрешность.

Вычисление А оформить в виде подпрограммы общего вида.

Напечатать таблицы.

Построить графики зависимостей V(I) расчетного и V(I) от Q(I).

Выбрать закон, по которому расчетные значения V(I) расчетные лучше
согласуются с данными опыта.

Проект. Рабочая форма Visual Basic:

Программный код в среде Visual Basic:

Option Explicit

Dim I As Integer

Dim a(7) As Single

‘ВВОД ЭЛЕМЕНТОВ МАССИВОВ

Private Sub Комманда1_Click()

Dim V(7) As Single, Q(7) As Single

MSFlexGrid1.TextMatrix(0, 0) = “№ Опыта”

MSFlexGrid1.TextMatrix(0, 1) = “ V(I) “

MSFlexGrid1.TextMatrix(0, 2) = “ Q(I) “

MSFlexGrid1.TextMatrix(0, 3) = “ V(I)расч.”

MSFlexGrid1.TextMatrix(0, 4) = “V(I), %”

For I = 1 To 7

MSFlexGrid1.TextMatrix(I, 0) = I

Next I

‘АВТОМАТИЧЕСКИЙ ВВОД

If Проверка1.Value = 1 Then

Open “A:\Данные.txt” For Input As #1

For I = 1 To 7

Input #1, V(I), Q(I)

MSFlexGrid1.TextMatrix(I, 1) = V(I)

MSFlexGrid1.TextMatrix(I, 2) = Q(I)

Next I

Close #1

End If

‘ВВОД ЭЛЕМЕНТОВ МАССИВОВ ВРУЧНУЮ

If Проверка1.Value = 0 Then

For I = 1 To 7

MSFlexGrid1.TextMatrix(I, 1) = InputBox(“ВВЕДИТЕ ЭЛЕМЕНТ МАССИВА
V(I)”)

Next I

For I = 1 To 7

MSFlexGrid1.TextMatrix(I, 2) = InputBox(“ВВЕДИТЕ ЭЛЕМЕНТ МАССИВА
Q(I)”)

Next I

End If

End Sub

‘РЕШЕНИЕ A=V/Q, НАХОЖДЕНИЕ MIN (MAX),СУММЫ ЭЛЕМЕНТОВ МАССИВОВ

Private Sub Комманда2_Click()

Список1.Clear

For I = 1 To 7

Список1.AddItem (CCur(MSFlexGrid1.TextMatrix(I, 1) /
MSFlexGrid1.TextMatrix(I, 2)))

Next I

Dim Summ As Single

Summ = 0

For I = 1 To 7

Summ = Summ + MSFlexGrid1.TextMatrix(I, 1)

Next I

Текст1.Text = CSng(Summ)

Dim Summa As Single

For I = 1 To 7

Summa = Summa + MSFlexGrid1.TextMatrix(I, 2)

Next I

Текст2.Text = CSng(Summa)

‘РАСЧЕТ КОЭФФИЦИЕНТА “А”

Dim a As Single

a = Текст1.Text / Текст2.Text

Текст3.Text = CSng(a)

End Sub

‘V(I)РАСЧЕТНАЯ

Private Sub Комманда3_Click()

For I = 1 To 7

MSFlexGrid1.TextMatrix(I, 3) = Текст3.Text * MSFlexGrid1.TextMatrix(I,
2)

Next I

End Sub

‘ПОГРЕШНОСТЬ

Private Sub Комманда4_Click()

For I = 1 To 7

MSFlexGrid1.TextMatrix(I, 4) = Ccur(Sqr((((MSFlexGrid1.TextMatrix(I, 3)
– MSFlexGrid1.TextMatrix(I, 1)) / MSFlexGrid1.TextMatrix(I, 1)) * 100) ^
2))

Next I

‘СОРТИРОВКА

Dim min As Single

Dim max As Single

min = MSFlexGrid1.TextMatrix(7, 4)

‘НАХОЖДЕНИЕ MIN

For I = 1 To 7

If MSFlexGrid1.TextMatrix(I, 4) max Then max =
MSFlexGrid1.TextMatrix(I, 4)

Next I

Текст6.Text = CSng(max)

End Sub

Private Sub Комманда5_Click()

‘ЗАКОН СТЕФАНА-БОЛЬЦМАНА

‘V=k*Q^4, где k-постоянная Стефана-Больцмана: k = 5.67 * 10 ^ -8

Dim z(7) As Single, V(7) As Single

For I = 1 To 7

z(I) = 0.0000000567 * ((MSFlexGrid1.TextMatrix(I, 2) + 273) ^ 4 – 273 ^
4)

‘V=AZ

V(I) = 0.1 * Текст3.Text * z(I)

‘ВЫВОД СКОРОСТИ ОХЛАЖДЕНИЯ

Список2.AddItem (Ccur(V(I)))

Next I

End Sub

Private Sub Комманда6_Click()

End

End Sub

Private Sub Command7_Click()

Dim V(7) As Single, Q(7) As Single

MSFlexGrid1.TextMatrix(0, 0) = “№ Опыта”

MSFlexGrid1.TextMatrix(0, 1) = “ V(I) “

MSFlexGrid1.TextMatrix(0, 2) = “ Q(I) “

MSFlexGrid1.TextMatrix(0, 3) = “ V(I)расч.”

MSFlexGrid1.TextMatrix(0, 4) = “V(I), %”

For I = 1 To 7

MSFlexGrid1.TextMatrix(I, 0) = I

Next I

‘АВТОМАТИЧЕСКИЙ ВВОД

If Проверка1.Value = 1 Then

Open “A:\Данные.txt” For Input As #1

For I = 1 To 7

Input #1, V(I), Q(I)

MSFlexGrid1.TextMatrix(I, 1) = V(I)

MSFlexGrid1.TextMatrix(I, 2) = Q(I)

Next I

Close #1

End If

‘ВВОД ЭЛЕМЕНТОВ МАССИВОВ ВРУЧНУЮ

If Проверка1.Value = 0 Then

For I = 1 To 7

MSFlexGrid1.TextMatrix(I, 1) = InputBox(“ВВЕДИТЕ ЭЛЕМЕНТ МАССИВА
V(I)”)

Next I

For I = 1 To 7

MSFlexGrid1.TextMatrix(I, 2) = InputBox(“ВВЕДИТЕ ЭЛЕМЕНТ МАССИВА
Q(I)”)

Next I

End If

Список1.Clear

For I = 1 To 7

Список1.AddItem (Ccur(MSFlexGrid1.TextMatrix(I, 1) /
MSFlexGrid1.TextMatrix(I, 2)))

Next I

Dim Summ As Single

Summ = 0

For I = 1 To 7

Summ = Summ + MSFlexGrid1.TextMatrix(I, 1)

Next I

Текст1.Text = CSng(Summ)

Dim Summa As Single

For I = 1 To 7

Summa = Summa + MSFlexGrid1.TextMatrix(I, 2)

Next I

Текст2.Text = CSng(Summa)

‘РАСЧЕТ КОЭФФИЦИЕНТА “А”

Dim a As Single

a = Текст1.Text / Текст2.Text

Текст3.Text = CSng(a)

For I = 1 To 7

MSFlexGrid1.TextMatrix(I, 3) = Текст3.Text * MSFlexGrid1.TextMatrix(I,
2)

Next I

For I = 1 To 7

MSFlexGrid1.TextMatrix(I, 4) = Ccur(Sqr((((MSFlexGrid1.TextMatrix(I, 3)
– MSFlexGrid1.TextMatrix(I, 1)) / MSFlexGrid1.TextMatrix(I, 1)) * 100) ^
2))

Next I

‘СОРТИРОВКА

Dim min As Single

Dim max As Single

min = MSFlexGrid1.TextMatrix(7, 4)

‘НАХОЖДЕНИЕ MIN

For I = 1 To 7

If MSFlexGrid1.TextMatrix(I, 4) max Then max =
MSFlexGrid1.TextMatrix(I, 4)

Next I

Текст6.Text = CSng(max)

‘ЗАКОН СТЕФАНА-БОЛЬЦМАНА

‘V=k*Q^4, где k-постоянная Стефана-Больцмана: k = 5.67 * 10 ^ -8

Dim z(7) As Single, W(7) As Single

For I = 1 To 7

z(I) = 0.0000000567 * ((MSFlexGrid1.TextMatrix(I, 2) + 273) ^ 4 – 273 ^
4)

‘V=AZ

W(I) = 0.1 * Текст3.Text * z(I)

‘ВЫВОД СКОРОСТИ ОХЛАЖДЕНИЯ

Список2.AddItem (Ccur(W(I)))

Next I

End Sub

Private Sub mnuВключить_Click()

&

(

^

d

f

h

?

?

¬

o

oe

o

c

¤

®

jY

????КАЛЬКУЛЯТОРА

‘OLE1.SourceDoc = “C:\WINDOWS\CALC.EXE”

OLE1.Action = 7

End Sub

Private Sub mnuВыход_Click()

End

End Sub

Private Sub mnuОткрыть_Click()

Dim V(7) As Single, Q(7) As Single

MSFlexGrid1.TextMatrix(0, 0) = “№ Опыта”

MSFlexGrid1.TextMatrix(0, 1) = “ V(I) “

MSFlexGrid1.TextMatrix(0, 2) = « Q(I) «

MSFlexGrid1.TextMatrix(0, 3) = “ V(I)расч.”

MSFlexGrid1.TextMatrix(0, 4) = «V(I), %»

For I = 1 To 7

MSFlexGrid1.TextMatrix(I, 0) = I

Next I

‘АВТОМАТИЧЕСКИЙ ВВОД

Open “A:\Данные.txt” For Input As #1

For I = 1 To 7

Input #1, V(I), Q(I)

MSFlexGrid1.TextMatrix(I, 1) = V(I)

MSFlexGrid1.TextMatrix(I, 2) = Q(I)

Next I

Close #1

End Sub

Private Sub mnuСкрыть_Click()

‘СКРЫТЬ ВРЕМЯ

Часы1.Enabled = False

Текст5.Text = “”

End Sub

Private Sub mnuПоказать_Click()

‘ПОКАЗАТЬ ВРЕМЯ

Часы1.Enabled = True

Часы1.Interval = 250

End Sub

Private Sub Часы1_Timer()

‘ВЫВОД ВРЕМЕНИ

Текст5.Text = CStr(Time)

End Sub

Значения свойств объектов:

VERSION 5.00

Object = “{5E9E78A0-531B-11CF-91F6-C2863C385E30}#1.0#0”; “MSFLXGRD.OCX”

Begin VB.Form Форма1

Caption = “КУРСОВАЯ РАБОТА”

ClientHeight = 4905

ClientLeft = 165

ClientTop = 735

ClientWidth = 6660

LinkTopic = “Form1”

ScaleHeight = 4905

ScaleWidth = 6660

StartUpPosition = 3 ‘Windows Default

Begin VB.ListBox Список2

Height = 1425

ItemData = “КУРСОВАЯ РАБОТА.frx”:0000

Left = 3600

List = “КУРСОВАЯ РАБОТА.frx”:0002

TabIndex = 16

Top = 3240

Width = 1095

End

Begin VB.ListBox Список1

Height = 1425

ItemData = “КУРСОВАЯ РАБОТА.frx”:0004

Left = 2400

List = “КУРСОВАЯ РАБОТА.frx”:0006

TabIndex = 15

Top = 3240

Width = 1095

End

Begin VB.TextBox Текст6

Height = 285

Left = 5040

TabIndex = 14

Top = 3480

Width = 1095

End

Begin VB.TextBox Текст5

Height = 285

Left = 5280

TabIndex = 13

Top = 360

Width = 855

End

Begin VB.TextBox Текст 4

Height = 285

Left = 5040

TabIndex = 12

Top = 2880

Width = 1095

End

Begin VB.TextBox Текст 3

Height = 285

Left = 5040

TabIndex = 11

Top = 2280

Width = 1095

End

Begin VB.TextBox Текст 2

Height = 285

Left = 5040

TabIndex = 10

Top = 1680

Width = 1095

End

Begin VB.TextBox Текст 1

Height = 285

Left = 5040

TabIndex = 9

Top = 1080

Width = 1095

End

Begin VB.Timer Часы1

Interval = 250

Left = 4800

Top = 3840

End

Begin VB.CommandButton Комманда6

Caption = “ВЫХОД”

Height = 195

Left = 240

TabIndex = 7

Top = 4440

Width = 1575

End

Begin VB.CommandButton Комманда 5

Caption = “ПРОВЕРКА”

Height = 195

Left = 240

TabIndex = 6

Top = 4200

Width = 1575

End

Begin VB.CommandButton Комманда 4

Caption = “ПОГРЕШНОСТЬ”

Height = 195

Left = 240

TabIndex = 5

Top = 3960

Width = 1575

End

Begin VB.CommandButton Комманда 3

Caption = “Vрасч.=AQ”

Height = 195

Left = 240

TabIndex = 4

Top = 3720

Width = 1575

End

Begin VB.CommandButton Комманда 2

Caption = “РЕШЕНИЕ”

Height = 195

Left = 240

TabIndex = 3

Top = 3480

Width = 1575

End

Begin VB.CommandButton Комманда 1

Caption = “ВВЕСТИ”

Height = 195

Left = 240

TabIndex = 2

Top = 3240

Width = 1575

End

Begin VB.CheckBox Проверка1

Caption = ” АВТОМАТИЧЕСКИЙ ВВОД”

Height = 375

Left = 120

TabIndex = 1

Top = 240

Width = 2775

End

Begin MSFlexGridLib.MSFlexGrid MSFlexGrid1

Height = 2055

Left = 0

TabIndex = 0

Top = 840

Width = 4935

_ExtentX = 8705

_ExtentY = 3625

_Version = 393216

Rows = 8

Cols = 5

End

Begin VB.OLE OLE1

Class = “Package”

Height = 495

Left = 5280

OleObjectBlob = “КУРСОВАЯ РАБОТА.frx”:0008

SourceDoc = “C:\WINDOWS\CALC.EXE”

TabIndex = 24

Top = 3840

Width = 855

End

Begin VB.Label Метка8

Caption = ” ПРОВЕРКА”

Height = 255

Left = 3600

TabIndex = 23

Top = 3000

Width = 1095

End

Begin VB.Label Метка 7

Caption = ” A=V/Q”

Height = 255

Left = 2280

TabIndex = 22

Top = 3000

Width = 1095

End

Begin VB.Label Метка 6

Caption = ” Max V(I), %”

Height = 255

Left = 5040

TabIndex = 21

Top = 2640

Width = 1095

End

Begin VB.Label Метка 5

Caption = ” Min V(I), %”

Height = 255

Left = 5040

TabIndex = 20

Top = 3240

Width = 1095

End

Begin VB.Label Метка 4

Caption = ” Коэфф-нт А”

Height = 255

Left = 5040

TabIndex = 19

Top = 2040

Width = 1095

End

Begin VB.Label Метка 3

Caption = ” Сумма Q(I)”

Height = 255

Left = 5040

TabIndex = 18

Top = 1440

Width = 1095

End

Begin VB.Label Метка 2

Caption = ” Сумма V(I)”

Height = 255

Left = 5040

TabIndex = 17

Top = 840

Width = 1095

End

Begin VB.Label Метка 1

Caption = “ТЕКУЩЕЕ ВРЕМЯ”

Height = 255

Left = 3720

TabIndex = 8

Top = 360

Width = 1575

End

Begin VB.Menu mnuФайл

Caption = “Файл”

Begin VB.Menu mnuОткрыть

Caption = “Открыть”

End

Begin VB.Menu mnuВыход

Caption = “Выход”

End

End

Begin VB.Menu mnuВремя

Caption = “Время”

Begin VB.Menu mnuПоказать

Caption = “Показать”

End

Begin VB.Menu mnuСкрыть

Caption = “Скрыть”

End

End

Begin VB.Menu mnuКалькулятор

Caption = “Калькулятор”

Begin VB.Menu mnuВключить

Caption = “Включить”

End

End

End

Attribute VB_Name = “Форма1”

Attribute VB_GlobalNameSpace = False

Attribute VB_Creatable = False

Attribute VB_PredeclaredId = True

Attribute VB_Exposed = False

Рабочая форма с данными:

Решение задачи с помощью MathCad.

Вычисление суммы элементов массивов:

Относительная погрешность:

Расчет скорости охлаждения по закону Стефана: V=kT^4

Постоянная Стефана-Больцмана:

График №1 построен по данным, а №2- по расчетам.

Решение задачи в Excel

V(I) Q(I) V(I) расч V(I), %

8,81 220 7,15 18,84222

7,4 200 6,5 12,16216

6,1 180 5,85 4,098361

4,89 160 5,2 6,339468

3,88 140 4,55 17,26804

3,02 120 3,9 29,13907

2,3 100 3,25 41,30435

36,4 1120

A=V/Q КОЭФ. А Z СТЕФАНА

0,040045 0,0325 303,4484467 9,862075

0,037

252,3155307 8,200255

0,033889

207,2734376 6,736387

0,030563

167,8181271 5,454089

0,027714

133,4673316 4,337688

0,025167

103,7605564 3,372218

0,023

78,25907956 2,54342

Графики зависимостей:

Заключение:

На основании полученных в программах данных:

расчетов и графиков, можно сделать вывод, что наиболее прие-млемым
языком программирования является Visual Basic, а закон наиболее точно
дающий схожие результаты с данными опыта является закон Стефана.

Нашли опечатку? Выделите и нажмите CTRL+Enter

Похожие документы
Обсуждение

Оставить комментарий

avatar
  Подписаться  
Уведомление о
Заказать реферат!
UkrReferat.com. Всі права захищені. 2000-2020