Добавлен: 25.10.2018
Просмотров: 2138
Скачиваний: 14
21
Приложение В
Разработка сценариев и реакций на события согласно сценариям.
Нажатие на кнопку “Решить”.
При нажатии на кнопку “Решить” происходит:
а) проверка правильности исходных данных, и если данные не соответствуют ти-
пу (или не введен какой либо из коэффициентов), то выводится сообщение «Все
коэффициенты системы должны быть числами», как показано на рисунке В.1;
Рисунок В.1
б) решение системы уравнений (после решения отбрасываются все ответы, где
0
x
);
в) вывод ответа в зависимости от количества найденных в пункте б решений. Ес-
ли найдено 2 решения, то выводятся
2
2
1
1
,
,
,
y
x
y
x
, если найдено одно решение -
1
1
, y
x
, если решений нет, то выводится сообщение «Система уравнений не имеет
решения !»
Текст сценария:
void __fastcall TMainForm::BtRasschetClick(TObject *Sender)
{
MResult->Clear();
double in_a = 0, in_b = 0, in_c = 0, in_d = 0;
try
{
in_a = StrToFloat(Eda->Text);
in_b = StrToFloat(Edb->Text);
in_c = StrToFloat(Edc->Text);
in_d = StrToFloat(Edd->Text);
}
catch (...)
{
ShowMessage ("Все коэффициенты системы уравнений должны быть числами
!");
MResult->Lines->Add("Все коэффициенты системы уравнений должны быть
числами !");
return;
}
long double resX1,resX2,resY1,resY2;
int reslt = solution_equation(in_a, in_b, in_c, in_d, resX1, resX2, resY1, resY2);
22
if (reslt == SQ_SUCCES_TWO_ROOT)
{
MResult->Lines->Add("Cистема имеет 2 решения:");
MResult->Lines->Add("x1 = " + FloatToStr(resX1) + "; y1 = "+ FloatToStr(resY1));
MResult->Lines->Add("x2 = " + FloatToStr(resX2) + "; y2 = "+ FloatToStr(resY2));
}
if (reslt == SQ_SUCCES_ALONE_ROOT)
{
MResult->Lines->Add("Cистема имеет 1 решение:");
MResult->Lines->Add("x = " + FloatToStr(resX1) + "; y = "+ FloatToStr(resY1));
}
if (reslt == SQ_ERROR_DIV_BY_ZERO) MResult->Lines->Add("Система урав-
нений не имеет решения из-за деления на 0!");
if (reslt == SQ_ERROR_NO_ROOT) MResult->Lines->Add("Система уравне-
ний не имеет решения !"); }
Массовая обработка данных.
При нажатии первой кнопки “Выбрать” открывается форма для выбора
файла с входными данными, как показано на рисунке В.2.
Рисунок В.2
Текст сценария:
void __fastcall TFormMas::SBInpClick(TObject *Sender)
{
if (OpenDialog1->Execute())
{
if(FileExists(OpenDialog1->FileName))
23
{
NameFileOpen = OpenDialog1->FileName;
}
else
ShowMessage("Такого файла не существует !");
}
}
При нажатии второй кнопки “выбрать” открывается форма для выбора фай-
ла с выходными данными, как показано на рисунке В.3.
Рисунок В.3
Текст сценария:
void __fastcall TFormMas::SBOutClick(TObject *Sender)
{
if (SaveDialog1->Execute())
{
NameFileSave = SaveDialog1->FileName;
}
}
При выборе кнопки решить происходит проверка входных данных, и если
они не соответствуют заданному типу, то выводится сообщение « Указаны непра-
вильные файлы данных !», как показано на рисунке В.4.
24
Рисунок В.4
Если не выбраны файл с исходными данными или файл для сохранения ре-
зультатов, то выводится сообщение «Указаны не все файлы данных !», как пока-
зано на рисунке В.5.
Рисунок В.5
Текст сценария.
void __fastcall TFormMas::SBRasschetClick(TObject *Sender)
{
try
{
if ((NameFileSave != "")&&(NameFileOpen != "")) solution_with_files();
else ShowMessage("Выбраны не все файлы данных !");
}
catch(...)
{
ShowMessage("Указаны неправильные файлы данных !");
return;
}
}
25
Приложение Г
Разработка алгоритма выполнения поставленной задачи
1) Формулировка задания
Вариант 5.
Умножение комплексных чисел.
3
3
2
2
1
1
ib
a
ib
a
ib
a
2) Математическая модель
Произведением комплексных чисел a+ bi и c+ di называется комплексное чис-
ло: ( ac – bd ) + ( ad + bc ) i . Это определение вытекает из двух требований:
- числа a+ bi и c+ di должны перемножаться, как алгебраические двучлены,
- число i обладает основным свойством: i
2
= –1.
П р и м е р . ( a+ bi )( a – bi )= a
2
+ b
2
. Следовательно, произведение
двух сопряжённых комплексных чисел равно действительному
положительному числу.
.
3) Информационная модель
Статус
данного
Содержание
Имя
данного
Тип данного
Имя
типа
Диапазон
Значение
по умол-
чанию
Входные
коэффициенты
первого числа
a
вещественный Real
5.0*10
-324
..
1.7*10
308
0
b
0
коэффициенты
второго числа
c
0
d
0
Выходные
коэффициенты
третьего числа
X
вещественный Real
5.0*10
-324
..
1.7*10
308
0
Y
0