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

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

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

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

Факультет 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) Q(I) V(I) расч.

         />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)

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

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

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

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

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

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

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

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

/>

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

Option Explicit

Dim I As Integer

Dim a(7) As Single

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

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

Dim V(7) AsSingle, 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 AsSingle

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

 IfMSFlexGrid1.TextMatrix(I, 4) < min Then min = MSFlexGrid1.TextMatrix(I, 4)

Next I

Текст4.Text = CSng(min)

max =MSFlexGrid1.TextMatrix(1, 4)

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

For I = 1 To 7

 IfMSFlexGrid1.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) AsSingle, 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 SubCommand7_Click()

Dim V(7) AsSingle, 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 AsSingle

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

 IfMSFlexGrid1.TextMatrix(I, 4) < min Then min = MSFlexGrid1.TextMatrix(I, 4)

Next I

Текст4.Text = CSng(min)

max =MSFlexGrid1.TextMatrix(1, 4)

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

For I = 1 To 7

 IfMSFlexGrid1.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) AsSingle, 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()

'ВКЛЮЧЕНИЕ КАЛЬКУЛЯТОРА

‘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) AsSingle, 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  'WindowsDefault

   Begin VB.ListBox Список2

      Height          =   1425

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

<p/>

      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.MSFlexGridMSFlexGrid1

      Height          =   2055

      Left            =   0

      TabIndex        =   0

<p/>

      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         =   "   MaxV(I), %"

      Height          =   255

      Left            =   5040

      TabIndex        =   21

      Top             =   2640

      Width           =   1095

   End

   Begin VB.Label Метка 5

      Caption         =   "   MinV(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, а закон наиболее точно дающий схожие результаты сданными опыта является закон Стефана.

еще рефераты
Еще работы по кибернетике