|
Создание программных продуктов для решения задачСоздание программных продуктов для решения задачСанкт-Петербургский государственный технологический институт ( Технический университет) Кафедра Математического моделирования и оптимизации химико-технологических процессов Факультет 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) расч. | [pic]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); относительную погрешность. [pic] (2) Для вычисления коэффициента A необходимо решить систему уравнений: [pic] (3) Для этого следует решить уравнения: [pic] (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) расчетные лучше согласуются с данными опыта. Проект. Рабочая форма 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) < min Then min = MSFlexGrid1.TextMatrix(I, 4) Next I Текст4.Text = CSng(min) max = MSFlexGrid1.TextMatrix(1, 4) ‘НАХОЖДЕНИЕ MAX 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) < min Then min = MSFlexGrid1.TextMatrix(I, 4) Next I Текст4.Text = CSng(min) max = MSFlexGrid1.TextMatrix(1, 4) ‘НАХОЖДЕНИЕ MAX 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() 'ВКЛЮЧЕНИЕ КАЛЬКУЛЯТОРА ‘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 Рабочая форма с данными: [pic] Решение задачи с помощью MathCad. [pic] Вычисление суммы элементов массивов: [pic] [pic] [pic] [pic] Относительная погрешность: [pic] [pic] [pic] [pic] [pic] [pic] [pic] [pic] Расчет скорости охлаждения по закону Стефана: V=kT^4 [pic] [pic] Постоянная Стефана-Больцмана: [pic] [pic] [pic] [pic] [pic] График №1 построен по данным, а №2- по расчетам. Решение задачи в Excel | | | V(I) расч | V(I), % | |V(I) |Q(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 | Графики зависимостей: [pic] [pic] Заключение: На основании полученных в программах данных: расчетов и графиков, можно сделать вывод, что наиболее прие-млемым языком программирования является Visual Basic, а закон наиболее точно дающий схожие результаты с данными опыта является закон Стефана. |
|
|||||||||||||||||||||||||||||
|
Рефераты бесплатно, реферат бесплатно, сочинения, курсовые работы, реферат, доклады, рефераты, рефераты скачать, рефераты на тему, курсовые, дипломы, научные работы и многое другое. |
||
При использовании материалов - ссылка на сайт обязательна. |