Программный комплекс для определения константы скорости химической реакции

  • Вид работы:
    Курсовая работа (т)
  • Предмет:
    Информационное обеспечение, программирование
  • Язык:
    Русский
    ,
    Формат файла:
    MS Word
    87,17 Кб
  • Опубликовано:
    2017-01-28
Вы можете узнать стоимость помощи в написании студенческой работы.
Помощь в написании работы, которую точно примут!

Программный комплекс для определения константы скорости химической реакции















Курсовой проект

По Программированию

«Программный комплекс для определения константы скорости химической реакции»

ОГЛАВЛЕНИЕ

Введение

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

. Цель и задачи курсового проекта

. Функциональная структура программного комплекса

. Структура данных

. Алгоритм определения порядка химической реакции и константы скорости химической реакции

. Описание пользовательского интерфейса

. Проверка адекватности математической модели кинетики

. Примеры тестирования работоспособности программного обеспечения

Заключение

Список использованной литературы

Приложение

Введение


Языки программирования высокого уровня разработаны для быстроты и удобства использования программистом. Основная черта таких языков - это абстракция, то есть введение смысловых конструкций, которые кратко описывают такие структуры данных и операции над ними, описания которых очень длинные и сложные для понимания на машинном коде (или другом низкоуровневом языке программирования). Наиболее распространёнными языками программирования подобного типа являются C++, Visual Basic, Java, Python, Ruby, Perl, Pascal, PHP. Языкам высокого уровня свойственно умение работать с комплексными структурами данных. В большинство из них встроена поддержка строковых типов, объектов, операций файлового ввода-вывода и т. п.

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

Объектно-ориентированное программирование (ООП) - парадигма программирования, в которой основными концепциями являются понятия объектов и классов. ООП в настоящее время является абсолютным лидером в области прикладного программирования.

Одним из наиболее распространенных объектно-ориентированных языков высокого уровня является С++, созданный Бьерном Страуструпом в начале 1980-х годов. Язык С++ полностью унаследовал и расширил возможности языка Си, который используется в задачах системного программирования. К достоинствам языка С++ можно отнести кроссплатформенность; возможность работы на низком уровне с памятью, адресами, портами; возможность создания обобщенных алгоритмов для разных типов данных, их специализация, и вычисления на этапе компиляции, используя шаблоны.

Тема курсового проекта «Программный комплекс для определения константы скорости химической реакции».

Многое удается узнать о химических реакциях, изучая скорость их протекания и факторы, от которых она зависит. Этим занимается раздел химии, называемый химической кинетикой.

Одной из задач, стоящих перед химической кинетикой, является определение состава реакционной смеси (т.е. концентраций всех реагентов) в любой момент времени, для чего необходимо знать зависимость скорости реакции от концентраций. В общем случае, чем больше концентрации реагирующих веществ, тем больше скорость химической реакции.

1. Аналитический обзор по выбору инструментальных средств для синтеза программного обеспечения


Для реализации алгоритма решения обратной задачи кинетики разработано программное обеспечение, включающее графический пользовательский интерфейс. В качестве интегрированной среды разработки программного обеспечения (Integrated Development Environment, IDE) используется С++ Builder.++ Builder - среда быстрой разработки (RAD), выпускаемый компанией Codegear, дочерней фирмой компании Embarcadero (ранее Borland). Предназначена для написания программ на языке программирования C ++. C ++ Builder объединяет Библиотеку визуальных компонентов и среда программирования (IDE), написанное на Delphi с компилятором C ++.

Цикл разработки аналогичный Delphi, но с существенными улучшениями, добавленными в C ++ Builder. Большинство компонентов, разработанных в Delphi, можно использовать и в C ++ Builder без модификации, но, к сожалению, обратное утверждение не верно.

Компоненты, используемые при разработке в C ++ Builder, встроенные в среду разработки приложений и представляют из себя набор типов объектов, которые используются в качестве фундамента при строительстве приложения.

Этот комплекс компонент называется Visual Component Library (VCL). В VCL есть такие стандартные элементы управления, как строки редактирования, статические элементы управления, строки редактирования со списками, списки объектов.

Еще есть такие компоненты, которые ранее были доступны только в библиотеках третьих фирм: табличные элементы управления, закладки, многостраничные записные книжки. Все объекты разбиты на страницы по своей функциональности и представлены в палитре компонент.содержит специальный объект предоставляет интерфейс графических устройств Windows, и позволяет разработчикам рисовать, не заботясь об обычных для программирования в среде Windows деталях.

Ключевой особенностью C ++ Builder есть возможность не только использовать визуальные компоненты для строительства приложений, но и создание новых компонент. Такая возможность позволяет разработчикам не переходить в другую среду разработки, а наоборот, встраивать новые инструменты в существующую среду. Кроме того, можно улучшить или полностью заменить существующие по умолчанию в C ++ Builder компоненты.

Классы объектов построены в виде иерархии, состоящей из абстрактных, промежуточных и готовых компонент. Разработчик может пользоваться готовыми компонентами, создавать собственные на основе абстрактных или промежуточных, а также создавать собственные объекты.++ Builder содержит инструменты, которые позволяют осуществлять настоящую визуальную разработку Windows-программ методом drag-and-drop, упрощая программирование благодаря WYSIWYG редакторе интерфейса, встроенного в его среду разработки.++ Builder изначально создавалась только для платформы Microsoft Windows. Поздние версии, содержащие компонентную библиотеку Borland, основанную на Qt, поддерживают и Windows и Linux.

В 2003 Borland выпустила C ++ BUILDERX (CBX), написанный с помощью той же инфраструктуры, и Jbuilder, который при этом был мало похож на C ++ Builder или Delphi. Этот продукт предназначался для разработки больших программ для крупных предприятий, но коммерческого успеха не достиг. В конце 2004 года Borland объявила, что продолжит развитие классического C ++ Builder и объединит его со средой разработки Delphi, прекратив, таким образом, разработку C ++ BUILDERX.

После примерно год после этого объявления, Borland выпустила Borland Developer Studio 2006, который включал Borland C ++ Builder 2006, предлагавший улучшенное управление конфигурацией и отладкой. Borland Developer Studio 2006 - единственный полноценный комплект, Delphi, содержащий C ++ builder и C # builder.

В 2007 Codegear выпустила C ++ Builder 2007, в котором реализовала полную поддержку API Microsoft Windows Vista, увеличила полноту соответствия стандарту ANSI C ++, ускорила разработку до 500%, включила поддержку Msbuild, архитектуры баз данных Dbx4 и «VCL для Web», поддерживающий AJAX. Поддержка API Microsoft Windows Vista включила приложения, сначала оформлены в стиле Vista, и естественную поддержку VCL для Aero и Vista Desktop. Codegear RAD Studio 2007 содержит C ++ Builder 2007 и Delphi. Также в 2007 Codegear «воскресила» марку «Turbo» и выпустила две «Turbo» версии C ++ Builder: Turbo C ++ Professional и Turbo C ++ Explorer (бесплатный), основанных на Borland C ++ Builder 2006.

В конце 2008 года компания CodeGear выпустила новую версию RAD Studio, в которую вошли Delphi 2009 и C ++ Builder 2009. В 2009 году в составе RAD Studio вышел C ++ Builder 2010 года.

Ранее сообщалось, что следующая версия, CodeGear C ++ Builder (кодовое имя «Commodore»), будет иметь поддержку x86-64 и возможностью создавать машинный x86-64 код. Однако в 2010 году в состав RAD Studio XE включена версия C ++ Builder XE без этой функциональности.

В 2012 году Embarcadero выпустила C ++ Builder XE3, совместимый с Windows 8. В 2013 году был выпущен C ++ Builder XE4.

2. Цель и задачи курсового проекта


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

Перечень подлежащих разработке вопросов:

.Ознакомиться с теорией по синтезу и анализу математических моделей (ММ) кинетики химических реакций.

.Выполнить постановку задачи по исследованию кинетики химической реакции.

.Составить формализованное описание задачи. Разработать структуру входных (экспериментальных данных по изменению концентрации компонентов во времени) и выходных данных (порядок реакции, константа скорости реакции).

.Уточнить методы решения математической задачи.

.Разработать алгоритм (блок-схему) для определения порядка химической реакции и константы скорости химической реакции.

.Спроектировать структуру программы.

.Разработать пользовательский интерфейс.

.Выполнить предварительную оценку кинетических констант с использованием метода регрессионного анализа.

.Провести статистический анализ результатов.

.Составить программу, реализующую поставленную задачу.

.Протестировать работоспособность программного обеспечения.

3. Характеристика программного комплекса

программный обеспечение химический реакция

Формализованное описание задачи определения констант скоростей химической реакции, как объекта программирования, позволяет создать программный комплекс, обладающий следующими характеристиками:

. Операционная система, ОС (англ. operating system) - базовый комплекс компьютерных программ, обеспечивающий управление аппаратными средствами компьютера, работу с файлами, ввод и вывод данных, а также выполнение прикладных программ и утилит: Microsoft Windows.

. Язык программирования: С++ - компилируемый строго типизированный язык программирования общего назначения.

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

. Количество потоков выполнения команд (нитей, threads) - одна последовательность хода управления внутри программы: 1.

. Распределенность приложения: локальное.

. Инструментальная среда разработки: С++ Builder 6.

. Количество исходных файлов программы: 5 (Project1.cpp, Unit1.h, Unit1.cpp, Unit2.h, Unit2.cpp).

4. Структура данных


Входные экспериментальные данные по изменению концентрации компонентов во времени представлены далее.

Начальная концентрация CВ = 0,1 моль/л; СС = 0,01 моль/л, СD = 0,002 моль/л.

Распределение концентрации CА(t) во времени t приведено в таблице 1.

Таблица 1 - Распределение концентрации компонента А во времени t, CА(t)

Концентрация CА, моль/л

Время t, c

5

0

4

1

2

2

3

0,8

4

0,5

5


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

 

. Алгоритм определения порядка химической реакции и константы скорости химической реакции


Уравнение химической реакции дано в общем виде для реакции разложения: 3А2В+С+5D. Алгоритм для определения константы скорости реакции представлен на рисунке 1.

Алгоритм позволяет на основании исходных данных определить k - константы скорости реакции, n - порядок реакции, r - коэффициент корреляции и d - дисперсии. Исходными данными являются:

·   изменение концентрации исходного компонента СА(t) во времени,

·   начальные концентрации компонентов СВCCи CD,

·   количество экспериментальных точек N.

Рисунок 1 - Алгоритм определения константы скорости реакции

6. Описание пользовательского интерфейса


Программа состоит из двух форм (окон), представленных на рисунках 2 и 3 соответственно и позволяющих вводить начальные данные и отображать результаты расчета. Программа включает пять исходных файлов программы: Project1.cpp, Unit1.h, Unit1.cpp, Unit2.h, Unit2.cpp. Ниже приведен состав файлов с подробными комментариями. Графический интерфейс включает следующие классы визуальных компонентов: формы TForm, изображения TImage, панели TPanel, группы элементов TGroupBox, метки TLabel, однострочный редактор текста с меткой TLabeledEdit, график TChart, кнопки TButton, компонент для ввода и изменения числовых значений TUpDown, таблица TStringGrid, и.т.д.

7. Проверка адекватности математической модели кинетики


Полученное значение коэффициента корреляцииr = 0,873 говорит о том, что связь между экспериментальными данными и расчетами, выполненными в математической модели существенная.

Полученное значение дисперсии d = 0,8265 - невелико что также свидетельствует о малом разбросе данных, полученных при использовании математической модели, относительно данных, полученных в результате эксперимента.

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

8. Примеры тестирования работоспособности программного обеспечения


Тестирование разработанного в среде C++ Builder программного обеспечения проводилось при входных данных, которые были определены ранее.

Рисунок 2 - Форма ввода исходных данных, отображения экспериментальных значений и расчетных кривых концентраций

Рисунок 3 - Форма отображения результатов расчета

Результаты расчета:

Порядок реакции n = 1

Константа скорости реакции k = 0,32 1/c

Дисперсия d = 0,8265 (моль / л)2

Коэффициент корреляции r = 0,873

Заключение


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

Был разработан алгоритм, который позволяет на основании исходных данных определить k - константы скорости реакции, n - порядок реакции, r - коэффициент корреляции и d - дисперсии. Исходными данными являются:

·   изменение концентрации исходного компонента СА(t) во времени,

·   начальные концентрации компонентов СВCCи CD,

·   количество экспериментальных точек N.

Для реализации алгоритма решения обратной задачи кинетики было разработано программное обеспечение, включающее графический пользовательский интерфейс. В качестве интегрированной среды разработки программного обеспечения (Integrated Development Environment, IDE) используется С++ Builder.

Программа состоит из двух форм, позволяющих вводить начальные данные и отображать результаты расчета. Программа включает пять исходных файлов программы: Project1.cpp, Unit1.h, Unit1.cpp, Unit2.h, Unit2.cpp.

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

Список использованной литературы


1. Архангельский, А. Я. Программирование в C++Builder 6 и 2006: разработка программ для Windows: методические и справочные материалы по C++Builder. - Москва: БИНОМ, 2007. - 1181 с.

.Страуструп, Бьерн. Язык программирования C++ / Бьерн Страуструп; Пер. с англ. С. Анисимова, М. Кононова; Под ред. Ф. Андреева, А. Ушакова. - Спец. изд. - М.: Бином; СПб.: Нев. диалект, 2001. - 1098 с.

.Эккель, Брюс. Философия C++: Практ. программирование / БрюсЭккель, Чак Эллисон; [Пер. с англ. Е. Матвеев]. - М.: Питер, 2004. - 608 с.

.Липпман, Стенли Б. Язык программирования С++: вводный курс /Стенли Б. Липпман, Жози Лажойе, Барбара Му; 4-е изд. - М.: Вильямс, 2007. - 889 с.

. Астахова, И. Ф. Язык C++ / И. Ф. Астахова, С. В. Власов, В. В. Фертиков, А. В. Ларин. - Минск: Новое знание, 2003. - 200 с.

. Иванова, Г. С. Основы программирования / Г. С. Иванова. - Изд. 4-е, стер. - М.: Изд-во МГТУ, 2007. - 415 с.

. Иванова, Г. С. Объектно-ориентированное программирование / Г. С. Иванова, Т. Н. Ничушкина, Е. К. Пугачев; под ред. Г. С. Ивановой. -Изд. 3-е, стер. - М.: Изд-во МГТУ, 2007. - 366 с.

. Чистякова, Т. Б. Программирование на языках высокого уровня. Базовый курс: учебное пособие для студентов заочной формы обучения/ Т. Б. Чистякова, Р. В. Антипин, И. В. Новожилова. - СПб.: СПбГТИ (ТУ), 2008. - 227 с.

. Чистякова, Т. Б. Синтез и анализ математических моделей кинетики-химических реакций: учебное пособие / Т. Б. Чистякова, Л. В. Гольцева, А. М. Островская, Ю. В. Островский. - СПб.: СПбГТИ (ТУ), 2002. - 70 с.

. Гартман, Т. Н. Основы компьютерного моделирования химико-технологических процессов: учебное пособие / Т. Н. Гартман, Д. В. Клушин. - Москва: Академкнига, 2008. - 415 с.

Приложение


Unit1.cpp

#include <vcl.h>

#pragma hdrstop

#include "Unit1.h"

#include "Unit2.h"

#include "math.h"

#pragma package(smart_init)

#pragma resource "*.dfm"*Form1;

__fastcall TForm1::TForm1(TComponent* Owner)

: TForm(Owner)

{

}__fastcall TForm1::FormCreate(TObject *Sender)

{

//Задание загаловка таблицы

StringGrid1->Cells[0][0] = "C";

StringGrid1->Cells[1][0] = "t";

float qqq[6]={0,1,2,3,4,5};

float rrr[6]={5,4,3,2,1,0.5};(int i=1;i<6+1;i++)

{

StringGrid1->Cells[1][i]=qqq[i-1];

StringGrid1->Cells[0][i]=rrr[i-1];

}

}__fastcall TForm1::UpDown1Click(TObject *Sender, TUDBtnType Button)

{ //опред. обработчика для изменения кол-ва строк таблицы

StringGrid1->RowCount = UpDown1->Position + 1;

{ //Инициализация переменных для решения задачи кинетики

d = 0.0;

int i, reg_up(0), reg_down(0);

double *y, *x, s1(UpDown1->Position - 1),

s2(0.0), s3(0.0), s4(0.0), s5(0.0), s6(0.0), ca, cb, cc,cd, t;

//Очистка графиков после предыдущего расчета

Series1->Clear();

Series2->Clear();

Series3->Clear();

Series4->Clear();

Series5->Clear();

try

{

//создание в динамической памяти массива для хранения экспериментальных данных

y = new double[UpDown1->Position - 1];

x = new double[UpDown1->Position - 1];

if(!y || !x) throw "НЕТ свободной памяти";

//Задание начальных значений концентраций

ca = StringGrid1->Cells[0][1].ToDouble();

cb = LabeledEdit1->Text.ToDouble();= LabeledEdit2->Text.ToDouble();

cd= LabeledEdit4->Text.ToDouble();

//Проверка входных данных на допустимость значений

if(!ca || cb < 0.0 || cc < 0.0 || cd < 0.0)  "Начальные концентрации компонентов должны быть больше 0";

for(i = 0; i < UpDown1->Position - 1; i++)

{

if(StringGrid1->Cells[0][i + 1].ToDouble() > StringGrid1->Cells[0][i + 2].ToDouble())

reg_down++;

else reg_up++;

if(StringGrid1->Cells[0][i + 1].ToDouble() == StringGrid1->Cells[0][i + 2].ToDouble()) "Концентрация в соседних точках должна быть различна";

if(StringGrid1->Cells[1][i + 1].ToDouble() >= StringGrid1->Cells[1][i + 2].ToDouble()) "Нарушение последовательности ввода времени";

if(StringGrid1->Cells[1][i+1].ToDouble()< 0||StringGrid1->Cells[0][i + 1].ToDouble()<0) "Время и концентрация не могут быть отрицательными";

}

//Расчет значений локальных переменных, необходимых для решения задачи

double t1,t2,t3,t4,t5,t6,b1,b0;

for(i = 0; i < UpDown1->Position - 1; i++)

{

t1= StringGrid1->Cells[0][i + 2].ToDouble();

t2= StringGrid1->Cells[0][i + 1].ToDouble();

t3= StringGrid1->Cells[1][i + 2].ToDouble();

t4=StringGrid1->Cells[1][i + 1].ToDouble();

t5=t1-t2;

t6=t3-t4;

y[i] = log(fabs(t5) /t6);

x[i] = log(StringGrid1->Cells[0][i + 1].ToDouble());

s2 += x[i];

s3 += y[i];

s4 += x[i] * x[i];

s5 += x[i] * y[i];

s6 += y[i] * y[i];

}

//Расчет константы скорости реакции, порядка реакции, коэффициента корреляции

k = exp((s3 * s4 - s2 * s5) / (s1 * s4 - s2 * s2));

n = (s1 * s5 - s2 * s3) / (s1 * s4 - s2 * s2);

r = (s1 * s5 - s2 * s3) / sqrt((s1 * s4 - s2 * s2) * (s1 * s6 - s3 * s3));

//Построение графиков и расчет концентраций компонентов реакции

for(int i = 1; i <= UpDown1->Position; i++)

{

Series1->AddXY(StringGrid1->Cells[1][i].ToDouble(),StringGrid1->Cells[0][i].ToDouble());

if(ca< 0) throw "Модель невозможно описать линейной регрессией";

if(i == 1)

{

Series2->AddXY(StringGrid1->Cells[1][i].ToDouble(), ca );

Series3->AddXY(StringGrid1->Cells[1][i].ToDouble(), cb );

Series4->AddXY(StringGrid1->Cells[1][i].ToDouble(), cc );

Series5->AddXY(StringGrid1->Cells[1][i].ToDouble(), cd );

{

t = StringGrid1->Cells[1][i].ToDouble() - StringGrid1->Cells[1][i - 1].ToDouble();

Series3->AddXY(StringGrid1->Cells[1][i].ToDouble(), cb = cb + k *pow(ca, n) * t*2/3);

Series4->AddXY(StringGrid1->Cells[1][i].ToDouble(), cc = cc + k * pow(ca, n)*t/3);

Series5->AddXY(StringGrid1->Cells[1][i].ToDouble(), cd = cd + k * pow(ca, n)*t*5/3);

Series2->AddXY(StringGrid1->Cells[1][i].ToDouble(), ca =ca-k*pow(ca, n) * t);

else

Series2->AddXY(StringGrid1->Cells[1][i].ToDouble(), ca =ca+k*pow(ca, n) * t);

}

//расчет дисперсии

d += pow(StringGrid1->Cells[0][i].ToDouble() - ca, 2);

}

//Создание формы отображения результатов

Application->CreateForm(__classid(TForm2), &Form2);

//Отображение формы

Form2->ShowModal();

delete[]y;

delete[]x;

}

catch(char*str)

{

Series1->Clear();

Series2->Clear();

Series3->Clear();

Series4->Clear();

Series5->Clear();

// Вывод сообщения об ошибке

Application->MessageBox(str, "Ошибка", MB_ICONERROR | MB_OK);

}

catch(EConvertError&)

{

// ?Вывод сообщения об ошибке

Application->MessageBox("Не правильный тип данных", "Ошибка",

MB_ICONERROR | MB_OK);

delete[]y;

delete[]x;

}(...)

{

//Выводсообщенияобошибке>MessageBox("НЕ известная ошибка", "Ошибка", _ICONERROR | MB_OK);

}

}__fastcall TForm1::Button2Click(TObject *Sender)

{->Close();

}.h

#ifndef Unit1H

#define Unit1H

#include <Classes.hpp>

#include <Controls.hpp>

#include <StdCtrls.hpp>

#include <Forms.hpp>

#include <Chart.hpp>

#include <ComCtrls.hpp>

#include <ExtCtrls.hpp>

#include <Grids.hpp>

#include <TeEngine.hpp>

#include <TeeProcs.hpp>

#include <Series.hpp>TForm1 : public TForm

{

__published:// IDE-managed Components

TPanel *Panel1;

TGroupBox *GroupBox1;

TLabeledEdit *LabeledEdit1;

TLabeledEdit *LabeledEdit2;

TChart *Chart1;

TUpDown *UpDown1;

TLabeledEdit *LabeledEdit3;

TStringGrid *StringGrid1;

TButton *Button1;

TButton *Button2;

TPointSeries *Series1;

TLabeledEdit *LabeledEdit4;

TLineSeries *Series5;

TLineSeries *Series4;

TLineSeries *Series3;

TLineSeries *Series2;

TPointSeries *Series6;

void __fastcall UpDown1Click(TObject *Sender, TUDBtnType Button);

void __fastcall Button1Click(TObject *Sender);

void __fastcall Button2Click(TObject *Sender);:// User declarations:// User declarations

double k, n, d, r;

__fastcall TForm1(TComponent* Owner);

};PACKAGE TForm1 *Form1;

#endif.cpp

#include <vcl.h>

#pragma hdrstop

#include "Unit2.h"

#include "Unit1.h"

#pragma package(smart_init)

#pragma resource "*.dfm"*Form2;

__fastcall TForm2::TForm2(TComponent* Owner)

: TForm(Owner)

{

}__fastcall TForm2::FormShow(TObject *Sender)

{

LabeledEdit2->Text = FloatToStrF(Form1->n, ffGeneral, 4, 4);

LabeledEdit3->Text = FloatToStrF(Form1->k, ffGeneral, 4, 4);

LabeledEdit1->Text = FloatToStrF(Form1->d, ffGeneral, 4, 4);

LabeledEdit4->Text = FloatToStrF(Form1->r, ffGeneral, 4, 4);

}__fastcall TForm2::Button1Click(TObject *Sender)

{->Close();

}.h

#ifndef Unit2H

#define Unit2H

#include <Classes.hpp>

#include <Controls.hpp>

#include <StdCtrls.hpp>

#include <Forms.hpp>

#include <ExtCtrls.hpp>TForm2 : public TForm

{

__published:// IDE-managed Components

TGroupBox *GroupBox1;

TLabeledEdit *LabeledEdit1;

TLabeledEdit *LabeledEdit2;

TLabeledEdit *LabeledEdit3;

TLabeledEdit *LabeledEdit4;

TButton *Button1;

void __fastcall FormShow(TObject *Sender);

void __fastcall Button1Click(TObject *Sender);:// User declarations:// User declarations

__fastcall TForm2(TComponent* Owner);

};PACKAGE TForm2 *Form2;

#endif

.cpp

#include <vcl.h>

#pragma hdrstop("Unit1.cpp", Form1);("Unit2.cpp", Form2);WinMain(HINSTANCE, HINSTANCE, LPSTR, int)

{

try

{

Application->Initialize();

Application->CreateForm(__classid(TForm1), &Form1);

Application->CreateForm(__classid(TForm2), &Form2);

Application->Run();

}

catch (Exception &exception)

{

Application->ShowException(&exception);

}

catch (...)

{

try

{

throw Exception("");

}

catch (Exception &exception)

{

Application->ShowException(&exception);

}

return 0;

}

Похожие работы на - Программный комплекс для определения константы скорости химической реакции

 

Не нашли материал для своей работы?
Поможем написать уникальную работу
Без плагиата!