Создание програмних продуктів на вирішення задач
ВВОД ЕЛЕМЕНТІВ МАСИВІВ 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… Читати ще >
Создание програмних продуктів на вирішення задач (реферат, курсова, диплом, контрольна)
Санкт-Петербурзький державний технологічний институт.
(Технічний университет).
Кафедра Математичного моделювання й оптимізації хіміко-технологічних процессов.
Факультет 5.
Курс I.
Група 517.
Дисциплина: информатика.
КУРСОВА РАБОТА.
Тема: Створення програмних продуктів на вирішення задач.
Студент: Хохленко Сергій Дмитриевич.
Науковий руководитель:
Гайков Андрій Владимирович.
Санкт-Петербург.
Содержание Введение…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- 2734) (5).
Обозначив Z=k ((Q+273)^4−2734), де 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*Q4, де k-постоянная Стефана-Больцмана: k = 5.67 * 10 ^ -8 Dim z (7) As Single, V (7) As Single For I = 1 To 7 z (I) = 0.567 * ((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*Q4, де k-постоянная Стефана-Больцмана: k = 5.67 * 10 ^ -8 Dim z (7) As Single, W (7) As Single For I = 1 To 7 z (I) = 0.567 * ((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:WINDOWSCALC.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 = 393 216.
Rows = 8.
Cols = 5.
End.
Begin VB. OLE OLE1.
Class = «Package «.
Height = 495.
Left = 5280.
OleObjectBlob = «КУРСОВА РАБОТА. frx » :0008.
SourceDoc = «C:WINDOWSCALC.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=kT4.
[pic] [pic] Постійна Стефана-Больцмана:
[pic].
[pic] [pic].
[pic] [pic].
График № 1 побудований за даним, а № 2- по расчетам.
Рішення завдання у Excel.
| | | V (I) расч | V (I), % | |V (I) |Q (I) | | | |8,81 |220 |7,15 |18,84 222 | |7,4 |200 |6,5 |12,16 216 | |6,1 |180 |5,85 |4,98 361 | |4,89 |160 |5,2 |6,339 468 | |3,88 |140 |4,55 |17,26 804 | |3,02 |120 |3,9 |29,13 907 | |2,3 |100 |3,25 |41,30 435 | |36,4 |1120 | | | | | | | | | A=V/Q | КОЭФ. А | Z |СТЕФАНА | |0,40 045 |0,0325 |303,4 484 467 |9,862 075 | |0,037 | |252,3 155 307 |8,200 255 | |0,33 889 | |207,2 734 376 |6,736 387 | |0,30 563 | |167,8 181 271 |5,454 089 | |0,27 714 | |133,4 673 316 |4,337 688 | |0,25 167 | |103,7 605 564 |3,372 218 | |0,023 | |78,25 907 956 |2,54 342 |.
Графіки зависимостей:
[pic].
[pic].
Заключение
:
На підставі отримані програмах даних: розрахунків й графіків, можна дійти невтішного висновку, що прие-млемым мовою програмування є Visual Basic, а закон найточніше дає схожі результати з цими досвіду є закон Стефана.