- •Содержание
- •Введение
- •1 Описание поставленной задачи
- •1.1 Краткая характеристика численного метода
- •1.2 Анализ литературы и программ, патентный список
- •1.3 Формирование требований к программе
- •2 Проектирование схем алгоритмов
- •2.1 Разработка алгоритма головной программы
- •2.2 Проектирование алгоритма ввода исходных данных
- •2.3 Проектирование алгоритма вывода результатов
- •2.4 Проектирование алгоритма численного метода
- •3 Кодирование программы в среде программирования
- •3.1 Разработка структуры программы
- •3.2 Разработка интерфейса пользователя
- •3.2.1 Разработка интерфейса главной формы
- •3.3 Программирование ввода-вывода данных
- •4 Тестирование работоспособности программы
- •4.1 Описание аппаратной конфигурации для тестирования
- •4.2 Тестирование разработанной программы
- •4.3 Решение задачи в математической системе Mathcad
- •4.4 Решение задачи в математической системе matlab
- •4.5 Анализ результатов тестирования
- •5 Разработка гипертекстового варианта документа работы
- •Заключение
- •Список использованных источников
- •Приложение а
- •Продолжение приложения а
- •Продолжение приложения а
- •Продолжение приложения а
- •Продолжение приложения а
- •Продолжение приложения а
- •Продолжение приложения а
- •Продолжение приложения а
- •Продолжение приложения а
- •Продолжение приложения а
- •Приложение б
- •Приложение в
- •Приложение г
- •Приложение д
- •Приложение е
Продолжение приложения а
ProgressBar->Visible = true;
Task_DrawGraph->Enabled = true;
Task_ShowResult->Enabled = true;
}
//---------------------------------------------------------------------------
void __fastcall TFormMain::Task_ShowResultClick(TObject *Sender){
FormResult->ShowModal();
}
//---------------------------------------------------------------------------
void __fastcall TFormMain::Task_DrawGraphClick(TObject *Sender){
FormGraph->ShowModal();
}
//---------------------------------------------------------------------------
void __fastcall TFormMain::N3Click(TObject *Sender)
{
Form1->Show();
}
//---------------------------------------------------------------------------
FormDataUnit:
//---------------------------------------------------------------------------
#include <vcl.h>
#pragma hdrstop
#include "FormDataUnit.h"
#include "stdio.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TFormData *FormData;
extern float X[100], Y[100], H;
extern int Num;
//---------------------------------------------------------------------------
__fastcall TFormData::TFormData(TComponent* Owner)
: TForm(Owner)
{
}
//---------------------------------------------------------------------------
void __fastcall TFormData::ButtonLoadClick(TObject *Sender){
FILE* fr;
char* Name;
char s[80];
if (OpenDialog->Execute()){
Name = OpenDialog->FileName.c_str();
if((fr=fopen(Name,"r"))==NULL) ShowMessage("Невозможно открыть файл!!!");
else{
fscanf(fr,"%s%s%s%s%s%s%s%s%s%s%s%s",&s,&s,&s,&s,&s,&s,&s,&s,&s,&s,&s,&s);
fscanf(fr,"%s",&s); fscanf(fr,"%s",&s); EditX0->Text = s;
fscanf(fr,"%s",&s); fscanf(fr,"%s",&s); EditY0->Text = s;
fscanf(fr,"%s",&s); fscanf(fr,"%s",&s); EditXk->Text = s;
fscanf(fr,"%s",&s); fscanf(fr,"%s",&s); EditH->Text = s;
}
}
}
Продолжение приложения а
//---------------------------------------------------------------------------
void __fastcall TFormData::ButtonSaveClick(TObject *Sender){
FILE* fr;
char* Name;
if (EditX0->Text==""||EditY0->Text==""){
ShowMessage("Требуется ввести начальные условия");
return;
}
if (EditH->Text==""){
ShowMessage("Требуется ввести шаг интегрирования");
return;
}
if (EditXk->Text==""){
ShowMessage("Требуется ввести конец интервала");
return;
}
if (SaveDialog->Execute()){
Name=SaveDialog->FileName.c_str();
if((fr=fopen(Name,"w+t"))==NULL) ShowMessage("Невозможно создать файл!!!");
else {
fprintf(fr,"файл данных для решения уравнения явным многошаговым методом Нистрема третьего порядка точности");
fprintf(fr,"\nX0= %s Y0= %s", EditX0->Text, EditY0->Text);
fprintf(fr,"\nXk= %s", EditXk->Text);
fprintf(fr,"\nH= %s", EditH->Text);
fclose(fr);
}
}
}
//---------------------------------------------------------------------------
void __fastcall TFormData::ButtonApplyClick(TObject *Sender){
float xk;
if (EditX0->Text==""||EditY0->Text==""){
ShowMessage("Требуется ввести начальные условия");
return;
}
if (EditH->Text==""){
ShowMessage("Требуется ввести шаг интегрирования");
return;
}
if (EditXk->Text==""){
ShowMessage("Требуется ввести конец интервала");
return;
}
xk = StrToFloat(EditXk->Text);
if (!xk>StrToFloat(EditX0->Text)){
ShowMessage("Конечное значение интервала должно быть больше начального");
return;
}
H = StrToFloat(EditH->Text);
X[0] = StrToFloat(EditX0->Text);
Y[0] = StrToFloat(EditY0->Text);
Num = (xk - X[0])/H+1;
Close();