Наименование
данных
|
ИдентифиКатор
|
Тип данных
|
Расчетный
уровень акустического сигнала Lc2 (i)
|
Lc2
|
Числовой
вещественный
|
Октавный уровни
звукоизоляции Qi
|
Q
|
Числовой
вещественный
|
Величина
напряжения шума
|
USHokt
|
Числовой
вещественный
|
Величена
напряжения тест-сигнала
|
Uc
|
Числовой
вещественный
|
Расчетное
значение отношения сигнал/шум
|
Del
|
Числовой
вещественный
|
Напряженность
электро магнитного поля
|
Ec
|
Числовой
вещественный
|
Требуемый
радиус
|
R
|
Числовой
вещественный
|
2.1.5
Математическая модель задачи
Математическая модель задачи описана в приложении 1
2.1.6.
Логическая модель задачи
2.1.7
Требования к программе
2.1.7.1 Функциональные требования к программе
Функциональными требованиями к программе являются:
- Расчет выходных данных
Вывод решения виде отчета
Возможность ввода данных вручную
2.1.7.2 Требования к надёжности программы
Требованиями к надежности программы являются:
осуществление контроля ввода корректных данных;
осуществление перехвата ошибок при выполнении
программы.
.1.7.3 Требование к информативности Требованиями
к информативности являются:
наличие справочной системы;
.1.7.4 Требования к удобству эксплуатации
Требованиями к удобству эксплуатации:
наличие меню;
интуитивно понятный интерфейс.
2.2
Логическая модель программы
2.2.1
Структурная диаграмма
Структурная диаграмма приложения представлена на рисунке 1
Рис. 1
Главный модуль приложения содержит в своем составе следующие
модули:
· Ввод исходных данных вручную, позволяет ввести
вручную исходные данные;
· Решение, позволяет выполнить и просмотреть
решение методики;
· Отчет, позволяет распечатать результат решения;
· О программе - позволяет получить
информацию о программе;
· Выход, позволяет завершить работу с программой;
2.2.2
Логическая структура программы
Логическая структура программы представлена на рисунке 4.
Рис 2
2.3 Текст
программы
FMain
unit UnMain;
interface, Messages, SysUtils, Variants, Classes,
Graphics, Controls, Forms,, Menus, XPMan, ComCtrls;= class (TForm)
MainMenu1: TMainMenu;: TMenuItem;: TMenuItem;:
TMenuItem;: TMenuItem;: TXPManifest;: TMenuItem;
N5: TMenuItem;: TMenuItem;N2Click (Sender:
TObject);N11Click (Sender: TObject);N4Click (Sender: TObject);N5Click (Sender:
TObject);N6Click (Sender: TObject);FormCreate (Sender: TObject);
{ Private declarations }
{ Public declarations };: TFMain;UnRechUtech,
UnElectPreob, UnTexSred, UnKonfInfo;
{$R *. dfm}TFMain. N2Click (Sender: TObject);.
close;;TFMain. N11Click (Sender: TObject);. showmodal;;TFMain. N4Click (Sender:
TObject);. showmodal;;TFMain. N5Click (Sender: TObject);. showmodal;;TFMain.
N6Click (Sender: TObject);. ShowModal;;.
FTexSred
unit UnTexSred;, Messages, SysUtils, Variants,
Classes, Graphics, Controls, Forms,, Grids, StdCtrls, ExtCtrls,math, OleServer,
WordXP;= class (TForm): TStringGrid;: TRadioGroup;: TButton;: TEdit;: TLabel;:
TButton;: TWordApplication;FormCreate (Sender: TObject);btRasClick (Sender:
TObject);BtPrintClick (Sender: TObject);
{ Private declarations }
{ Public declarations };: TFTexSred;:
real;,Eo,EoMK,Ec,EcMK,Esh,EshMK,L,L2,Muy,R,R2,R3,R4,Rkon: array [0.4] of
real;,PodKor,PodKor2,PodKorkon,E1,Epr,Ld,Ed,E2: array [0.4] of real;,
i,P1,P2,P3: integer;: real;
{$R *. dfm}TFTexSred. FormCreate (Sender:
TObject);. Enabled: =false;
// f, МГц. cells [0,0]: ='f, МГц';. cells [0,1]:
='54';. cells [0,2]: ='161,8';. cells [0,3]: ='162';. cells [0,4]: ='162,12';.
cells [0,5]: ='486';
// Eo. cells [1,0]: ='Eo, дБ';. cells [1,1]:
='52,42';. cells [1,2]: ='21,15';. cells [1,3]: ='29,64';. cells [1,4]:
='21,54';. cells [1,5]: ='19,55';
// E (ш). cells [2,0]: ='E (ш), дБ';. cells
[2,1]: ='44,06';. cells [2,2]: ='15,9';. cells [2,3]: ='15,91';. cells [2,4]:
='16,36';. cells [2,5]: ='13,89';;TFTexSred. btRasClick (Sender:
TObject);EdRasto. text<>'' then: =strtofloat (EdRasto. text);:
=sdTexSred. RowCount-1;RadioGroup1. ItemIndex=0 then: =0.6;: =1.3;;i: =0 to n-1
do[i]: =strtofloat (sdTexSred. Cells [0, i+1]);i: =0 to n-1 do[i]: =strtofloat
(sdTexSred. Cells [1, i+1]);i: =0 to n-1 do[i]: =strtofloat (sdTexSred. Cells
[2, i+1]);
// преобразование в мкВ/м
for i: =0 to n-1 do
begin[i]: =power (10,Eo [i] /20);[i]: =power
(10,Esh [i] /20);;
// ----------------------------
// расчет L1 и L2i: =0 to n-1 do[i]: =150/
(3.14*f [i]);[i]: =1800/f [i];;
// ----------------
// Ec и его вывод на экран
tryi: =0 to n-1 do[i]: =sqrt (sqr (EoMK [i]) -
sqr (EshMK [i]));. ColCount: =4;. Cells [3,0]: ='Ec';. Cells [3,1+i]:
=floattostr (roundto (ec [i],-2));;
except
ShowMessage ('Получилось отриательное Ес');
end;
// -----------------------------
// "мю"i: =0 to n-1 do[i]: =300/f [i];;
// --------
// ближняя зонаi: =0 to n-1 do[i]: = (k*EshMK
[i]) /Ec [i];
R [i]: =R0/ (power (PodKor [i],1/3));
sdTexSred. ColCount: =5;. Cells [4,0]: ='Ri (бз)
';. Cells [4,1+i]: =floattostr (roundto (R [i],-2));;
// -------------------
// считаем расстояние для пром зоны
for i: =0 to n-1 doR0<L [i] then[i]: =L
[i][i]: =R0;;
// ---------------------------------
// считаем Ei для пром зоны
for i: =0 to n-1 do
beginR0>=L [i] then[i]: =Ec [i]
E1 [i]: = (power ( (R0/L [i]),3)) *Ec [i];
Epr [i]: =E1 [i];;;
// ---------------------------------
// пром зонаi: =0 to n-1 doL [i] <R [i]
then[i]: =Lpr [i] / (power ( ( (k*EshMK [i]) /Epr [i]),1/2));. ColCount: =6;.
Cells [5,0]: ='Ri (пз) ';. Cells [5,1+i]: =floattostr (roundto (R2 [i],-2));.
ColCount: =6;.
Cells [5,1+i]: ='Считать не нужно';
end;
end;
// ---------------------------------
// Подсчет растояния для дальней зоны
for i: =0 to n-1 doL2 [i] >R0 then[i]: =L2
[i][i]: =R0;;
// ---------------------------------
// подсчет E2 для дальней зоныi: =0 to n-1
do
if L [i] >R0 then[i]: =E1 [i] * (power (L [i]
/L2 [i],2))[i]: =Ec [i] * (power (R0/L2 [i],2));;
// ----------------------------
// подсчет Ei для дальней зоны
for i: =0 to n-1 do
beginR0<L2 [i] then[i]: =E2 [i][i]: =Ec [i];;
// ---------------------------
// дальняя зонаi: =0 to n-1 doR2 [i] <L2 [i]
then. ColCount: =7;. Width: =470;. Cells [6,0]: ='R (дз) ';. Cells [6,1+i]: ='Считать не нужно';
end[i]: =Ld [i] / ( ( (k*EshMK [i]) /Ed [i]));.
ColCount: =7;. Width: =470;. Cells [6,0]: ='Ri (дз) ';. Cells [6,1+i]:
=floattostr (roundto (R3 [i],-2));;;
// ------------. Enabled: =True;('Введите
расстояние');;('Введите верные данные');;;TFTexSred. BtPrintClick (Sender:
TObject);. Connect;. visible: =true;. documents. add
(emptyparam,emptyparam,emptyparam,emptyparam);. Selection. TypeText ('Временная методика
оценки защищенности ');
wordapplication1. Selection. TypeText ('основных технических
средств и систем, ');
wordapplication1. Selection. TypeText ('предназначенных для
обработки, хранения и');
wordapplication1. Selection. TypeText (' (или)
передачи по линиям связи ');. Selection. TypeText (' конфиденциальной
информации. ');. Selection. ParagraphFormat. Alignment:
=wdAlignParagraphCenter;. selection. Tables. Add (wordapplication1. selection.
Range,6,7,EmptyParam,EmptyParam);. Selection. Tables. Item (1). Borders.
InsideLineStyle: =wdBlack;. Selection. Tables. Item (1). Borders.
OutsideLineStyle: =wdBlack;. ActiveDocument. Tables. Item (1). Cell (1,1). Range.
Text: ='fi, МГц';. ActiveDocument. Tables. Item (1). Cell (1,2). Range. Text:
='Eo, дБ';. ActiveDocument. Tables. Item (1). Cell (1,3). Range. Text: ='Eш,
дБ';. ActiveDocument. Tables. Item (1). Cell (1,4). Range. Text: ='Ec, мкВ';.
ActiveDocument. Tables. Item (1). Cell (1,5). Range. Text: ='Ri (бз) ';.
ActiveDocument. Tables. Item (1). Cell (1,6). Range. Text: ='Ri (пр. з) ';.
ActiveDocument. Tables. Item (1). Cell (1,7). Range. Text: ='Ri (дз) ';i: =0 to
n-1 do. ActiveDocument. Tables. Item (1). Cell (2+i,1). Range. Text:
=FloatToStr (f [i]);. ActiveDocument. Tables. Item (1). Cell (2+i,2). Range.
Text: =FloatToStr (Eo [i]);. ActiveDocument. Tables. Item (1). Cell (2+i,3).
Range. Text: =FloatToStr (Esh [i]);. ActiveDocument. Tables. Item (1). Cell (2+i,4).
Range. Text: =FloatToStr (roundto (Ec [i],-2));. ActiveDocument. Tables. Item
(1). Cell (2+i,5). Range. Text: =FloatToStr (roundto (R [i],-2));.
ActiveDocument. Tables. Item (1). Cell (2+i,6). Range. Text: =FloatToStr
(roundto (R2 [i],-2));. ActiveDocument. Tables. Item (1). Cell (2+i,7). Range.
Text: =FloatToStr (roundto (R3 [i],-2));;;.
FElecktPreob
unit UnElectPreob;, Messages, SysUtils, Variants,
Classes, Graphics, Controls, Forms,, Grids, StdCtrls, ExtCtrls, OleServer,
WordXP,math;= class (TForm): TStringGrid;: TButton;: TRadioGroup;:
TWordApplication;: TButton;FormCreate (Sender: TObject);BtRaschClick (Sender:
TObject);btPrintClick (Sender: TObject);
{ Private declarations }
{ Public declarations };: TFElecktPreob;:
real;,USsh,USHokt,Uc,Del: array [0.4] of real;,Fokt,Buf: array [0.4] of
integer;: array [0.50] of string;, i: integer;
{$R *. dfm}TFElecktPreob. FormCreate (Sender:
TObject);. Enabled: =false;
// частоты. cells [0,0]: ='Частоты';. cells
[0,1]: ='250';. cells [0,2]: ='500';. cells [0,3]: ='1000';. cells [0,4]:
='2000';. cells [0,5]: ='4000';
// U (ш. пр). cells [1,0]: ='U (ш. пр) ';. cells
[1,1]: ='0,1';. cells [1,2]: ='0,1';. cells [1,3]: ='0,3';. cells [1,4]:
='0,2';. cells [1,5]: ='0,5';
// U (с+ш). cells [2,0]: ='U (с+ш) ';. cells
[2,1]: ='0,6';. cells [2,2]: ='0,7';. cells [2,3]: ='0,6';. cells [2,4]:
='0,4';. cells [2,5]: ='0,7';
// F (окт). cells [3,0]: ='F (окт) ';. cells
[3,1]: ='175';. cells [3,2]: ='350';. cells [3,3]: ='700';. cells [3,4]:
='1400';. cells [3,5]: ='2800';;TFElecktPreob. BtRaschClick (Sender: TObject);:
=sgElekt. RowCount-1;RadioGroup1. ItemIndex<>-1 thenRadioGroup1.
ItemIndex=0 then: =0.3: =0.5;i: =0 to n-1 do[i]: =strtoint (sgElekt. Cells [0,
i+1]);i: =0 to n-1 do[i]: =strtofloat (sgElekt. Cells [1, i+1]);i: =0 to n-1
do[i]: =strtofloat (sgElekt. Cells [2, i+1]);i: =0 to n-1 do[i]: =strtoint
(sgElekt. Cells [3, i+1]);
// расчетi: =0 to n-1 doFpr [i] <=Fokt [i]
then[i]: =Fpr [i][i]: =Fokt [i];;i: =0 to n-1 do[i]: =Uzp [i] * (sqr (Fokt [i]
/Fpr [i]));[i]: = (sqr (sqrt (USsh [i])) - (sqrt (Uzp [i])));[i]: =Uc [i]
/USHokt [i];. colcount: =8;. Width: =535;. cells [4,0]: ='Uш. окт';. cells
[5,0]: ='Uc';. cells [6,0]: ='Delta';. cells [7,0]: ='Сравнение';. cells
[4,1+i]: =floattostr (roundto (USHokt [i],-2));. cells [5,1+i]: =floattostr
(roundto (Uc [i],-2));. cells [6,1+i]: =floattostr (roundto (Del [i],-2));;i:
=0 to n-1 doDel [i] <=W then. cells [7,1+i]: =floattostr (roundto (Del
[i],-2)) +'<='+floattostr (W). cells [7,1+i]: =floattostr (roundto (Del [i],-2))
+'>'+floattostr (W);;. Enabled: =true('Выберите условие');('Введите верные
данные');;;TFElecktPreob. btPrintClick (Sender: TObject);: =sgElekt.
RowCount-1;. Connect;. visible: =true;. documents. add
(emptyparam,emptyparam,emptyparam,emptyparam);. Selection. TypeText ('Временная
методика по каналам ');. Selection. TypeText ('электроакустических преобразований и ');
wordapplication1. Selection. TypeText ('вспомогательных
технических средствах ');
wordapplication1. Selection. TypeText ('и
системах. ');. Selection. ParagraphFormat. Alignment: =wdAlignParagraphCenter;.
selection. Tables. Add (wordapplication1. selection.
Range,6,5,EmptyParam,EmptyParam);. Selection. Tables. Item (1). Borders.
InsideLineStyle: =wdBlack;. Selection. Tables. Item (1). Borders.
OutsideLineStyle: =wdBlack;. ActiveDocument. Tables. Item (1). Cell (1,1).
Range. Text: ='Частоты';. ActiveDocument. Tables. Item (1). Cell (1,2). Range.
Text: ='Uш. окт';. ActiveDocument. Tables. Item (1). Cell (1,3). Range. Text:
='Uc';. ActiveDocument. Tables. Item (1). Cell (1,4). Range. Text: ='Delta';.
ActiveDocument. Tables. Item (1). Cell (1,5). Range. Text: ='Сравнение';i: =0
to n-1 do. ActiveDocument. Tables. Item (1). Cell (2+i,1). Range. Text:
=inttostr (Fpr [i]);. ActiveDocument. Tables. Item (1). Cell (2+i,2). Range.
Text: =floattostr (USHokt [i]);. ActiveDocument. Tables. Item (1). Cell
(2+i,3). Range. Text: =floattostr (roundto (Uc [i],-2));. ActiveDocument.
Tables. Item (1). Cell (2+i,4). Range. Text: =floattostr (roundto (Del
[i],-2));. ActiveDocument. Tables. Item (1). Cell (2+i,5). Range. Text:
=sgElekt. cells [7,1+i];;;.
FTexSred
unit UnTexSred;, Messages, SysUtils, Variants,
Classes, Graphics, Controls, Forms,, Grids, StdCtrls, ExtCtrls,math, OleServer,
WordXP;= class (TForm): TStringGrid;: TRadioGroup;: TButton;: TEdit;: TLabel;:
TButton;: TWordApplication;FormCreate (Sender: TObject);btRasClick (Sender:
TObject);BtPrintClick (Sender: TObject);
{ Private declarations }
{ Public declarations };: TFTexSred;:
real;,Eo,EoMK,Ec,EcMK,Esh,EshMK,L,L2,Muy,R,R2,R3,R4,Rkon: array [0.4] of
real;,PodKor,PodKor2,PodKorkon,E1,Epr,Ld,Ed,E2: array [0.4] of real;,
i,P1,P2,P3: integer;: real;
{$R *. dfm}TFTexSred. FormCreate (Sender:
TObject);. Enabled: =false;
// Eo. cells [1,0]: ='Eo, дБ';. cells [1,1]:
='52,42';. cells [1,2]: ='21,15';. cells [1,3]: ='29,64';. cells [1,4]:
='21,54';. cells [1,5]: ='19,55';
// E (ш). cells [2,0]: ='E (ш), дБ';. cells
[2,1]: ='44,06';. cells [2,2]: ='15,9';. cells [2,3]: ='15,91';. cells [2,4]:
='16,36';. cells [2,5]: ='13,89';;TFTexSred. btRasClick (Sender:
TObject);EdRasto. text<>'' then: =strtofloat (EdRasto. text);: =sdTexSred.
RowCount-1;RadioGroup1. ItemIndex=0 then: =0.6;: =1.3;;i: =0 to n-1 do[i]:
=strtofloat (sdTexSred. Cells [0, i+1]);i: =0 to n-1 do[i]: =strtofloat
(sdTexSred. Cells [1, i+1]);i: =0 to n-1 do[i]: =strtofloat (sdTexSred. Cells
[2, i+1]);
// преобразование в мкВ/м
for i: =0 to n-1 do
begin[i]: =power (10,Eo [i] /20);[i]: =power
(10,Esh [i] /20);;
// ----------------------------
// расчет L1 и L2i: =0 to n-1 do[i]: =150/
(3.14*f [i]);[i]: =1800/f [i];;
// ----------------
// Ec и его вывод на экран
tryi: =0 to n-1 do[i]: =sqrt (sqr (EoMK [i]) -
sqr (EshMK [i]));. ColCount: =4;. Cells [3,0]: ='Ec';. Cells [3,1+i]:
=floattostr (roundto (ec [i],-2));;
except
ShowMessage ('Получилось отриательное Ес');
end;
// -----------------------------
// "мю"i: =0 to n-1 do[i]: =300/f [i];;
// --------
// ближняя зонаi: =0 to n-1 do[i]: = (k*EshMK
[i]) /Ec [i];
R [i]: =R0/ (power (PodKor [i],1/3));
sdTexSred. ColCount: =5;. Cells [4,0]: ='Ri (бз)
';. Cells [4,1+i]: =floattostr (roundto (R [i],-2));;
// -------------------
// считаем расстояние для пром зоны
for i: =0 to n-1 doR0<L [i] then[i]: =L
[i][i]: =R0;;
// ---------------------------------
// считаем Ei для пром зоны
for i: =0 to n-1 do
beginR0>=L [i] then[i]: =Ec [i]
E1 [i]: = (power ( (R0/L [i]),3)) *Ec [i];
Epr [i]: =E1 [i];;;
// ---------------------------------
// пром зонаi: =0 to n-1 doL [i] <R [i]
then[i]: =Lpr [i] / (power ( ( (k*EshMK [i]) /Epr [i]),1/2));. ColCount: =6;.
Cells [5,0]: ='Ri (пз) ';. Cells [5,1+i]: =floattostr (roundto (R2 [i],-2));.
ColCount: =6;.
Cells [5,1+i]: ='Считать не нужно';
end;
end;
// ---------------------------------
// Подсчет растояния для дальней зоны
for i: =0 to n-1 doL2 [i] >R0 then[i]: =L2
[i][i]: =R0;;
// ---------------------------------
// подсчет E2 для дальней зоныi: =0 to n-1
do
if L [i] >R0 then[i]: =E1 [i] * (power (L [i]
/L2 [i],2))[i]: =Ec [i] * (power (R0/L2 [i],2));;
// ----------------------------
// подсчет Ei для дальней зоны
for i: =0 to n-1 do
beginR0<L2 [i] then[i]: =E2 [i][i]: =Ec [i];;
// ---------------------------
// дальняя зонаi: =0 to n-1 doR2 [i] <L2 [i]
then. ColCount: =7;. Width: =470;. Cells [6,0]: ='R (дз) ';. Cells [6,1+i]: ='Считать не нужно';
end[i]: =Ld [i] / ( ( (k*EshMK [i]) /Ed [i]));.
ColCount: =7;. Width: =470;. Cells [6,0]: ='Ri (дз) ';. Cells [6,1+i]:
=floattostr (roundto (R3 [i],-2));;;
// ------------. Enabled: =True;('Введите
расстояние');;('Введите верные данные');;;TFTexSred. BtPrintClick (Sender:
TObject);. Connect;. visible: =true;. documents. add (emptyparam,emptyparam,emptyparam,emptyparam);.
Selection. TypeText ('Временная методика
оценки защищенности ');
wordapplication1. Selection. TypeText ('основных технических
средств и систем, ');
wordapplication1. Selection. TypeText ('предназначенных для
обработки, хранения и');
wordapplication1. Selection. TypeText (' (или)
передачи по линиям связи ');. Selection. TypeText (' конфиденциальной
информации. ');. Selection. ParagraphFormat. Alignment:
=wdAlignParagraphCenter;. selection. Tables. Add (wordapplication1. selection.
Range,6,7,EmptyParam,EmptyParam);. Selection. Tables. Item (1). Borders.
InsideLineStyle: =wdBlack;. Selection. Tables. Item (1). Borders.
OutsideLineStyle: =wdBlack;. ActiveDocument. Tables. Item (1). Cell (1,1).
Range. Text: ='fi, МГц';. ActiveDocument. Tables. Item (1). Cell (1,2). Range.
Text: ='Eo, дБ';. ActiveDocument. Tables. Item (1). Cell (1,3). Range. Text:
='Eш, дБ';. ActiveDocument. Tables. Item (1). Cell (1,4). Range. Text: ='Ec,
мкВ';. ActiveDocument. Tables. Item (1). Cell (1,5). Range. Text: ='Ri (бз) ';.
ActiveDocument. Tables. Item (1). Cell (1,6). Range. Text: ='Ri (пр. з) ';.
ActiveDocument. Tables. Item (1). Cell (1,7). Range. Text: ='Ri (дз) ';i: =0 to
n-1 do. ActiveDocument. Tables. Item (1). Cell (2+i,1). Range. Text: =FloatToStr
(f [i]);. ActiveDocument. Tables. Item (1). Cell (2+i,2). Range. Text:
=FloatToStr (Eo [i]);. ActiveDocument. Tables. Item (1). Cell (2+i,3). Range.
Text: =FloatToStr (Esh [i]);. ActiveDocument. Tables. Item (1). Cell (2+i,4).
Range. Text: =FloatToStr (roundto (Ec [i],-2));. ActiveDocument. Tables. Item
(1). Cell (2+i,5). Range. Text: =FloatToStr (roundto (R [i],-2));.
ActiveDocument. Tables. Item (1). Cell (2+i,6). Range. Text: =FloatToStr
(roundto (R2 [i],-2));. ActiveDocument. Tables. Item (1). Cell (2+i,7). Range.
Text: =FloatToStr (roundto (R3 [i],-2));;;.
FKonfInfo
unit UnKonfInfo;, Messages, SysUtils, Variants,
Classes, Graphics, Controls, Forms,, StdCtrls, ExtCtrls, Grids,math,
OleServer,WordXP;= class (TForm): TStringGrid;: TButton;: TRadioGroup;: TEdit;:
TLabel;: TWordApplication;: TButton;FormCreate (Sender: TObject);btRaschClick
(Sender: TObject);BtPrintClick (Sender: TObject);
{ Private declarations }
{ Public declarations };:
TFKonfInfo;,Ush,U1,U2,Uc,P,Kp,R: array [0.4] of real;: array [0.4] of real;,n:
integer;
l: real;
{$R *. dfm}
procedure TFKonfInfo. FormCreate (Sender:
TObject);. Enabled: =false;
// f, МГц. cells [0,0]: ='f, МГц';. cells [0,1]:
='30';. cells [0,2]: ='50';. cells [0,3]: ='70';. cells [0,4]: ='90';. cells
[0,5]: ='110';
// U (c+ш). cells [1,0]: ='U (c+ш) ';. cells
[1,1]: ='60';. cells [1,2]: ='40';. cells [1,3]: ='50';. cells [1,4]: ='60';.
cells [1,5]: ='80';
// U (ш). cells [2,0]: ='U (ш) ';. cells [2,1]:
='10';. cells [2,2]: ='20';. cells [2,3]: ='10';. cells [2,4]: ='20';. cells
[2,5]: ='10';
// U1 (изм). cells [3,0]: ='U1 (изм) ';. cells
[3,1]: ='75';. cells [3,2]: ='75';. cells [3,3]: ='80';. cells [3,4]: ='70';.
cells [3,5]: ='68';
// U2 (изм). cells [4,0]: ='U2 (изм) ';. cells
[4,1]: ='45';. cells [4,2]: ='42';. cells [4,3]: ='49';. cells [4,4]: ='50';.
cells [4,5]: ='44';;TFKonfInfo. btRaschClick (Sender: TObject);RGVibor.
ItemIndex<>-1 thenEdDlin. text<>'' then: =sgKonfInfo. RowCount-1;i:
=0 to n-1 do[i]: =strtofloat (sgKonfInfo. Cells [1, i+1]);i: =0 to n-1 do[i]: =strtofloat
(sgKonfInfo. Cells [2, i+1]);i: =0 to n-1 do[i]: =strtofloat (sgKonfInfo. Cells
[3, i+1]);i: =0 to n-1 do[i]: =strtofloat (sgKonfInfo. Cells [4, i+1]);i: =0 to
n-1 do[i]: =sqrt ( (power (10,USsh [i] /10)) - (power (10,Ush [i] /10)));[i]:
=20* ( (ln (Buf [i])) /ln (10));;
except
ShowMessage ('Не возможно подсчитать Uc');
end;i: =0 to n-1 do[i]: =Uc [i] - Ush [i];i: =0
to n-1 do: =strtofloat (EdDlin. text);[i]: = (20* (ln (U1 [i] /U2 [i])) /ln
(10)) /l;;RGVibor. ItemIndex=0 theni: =0 to n-1 do[i]: = (P [i] +10) /Kp [i];i:
=0 to n-1 do[i]: = (P [i]) /Kp [i];;i: =0 to n-1 do. ColCount: =9;. Width:
=600;. Cells [5,0]: ='Uc';. Cells [6,0]: ='П';. Cells [7,0]: ='Кп';. Cells
[8,0]: ='R';. Cells [5, i+1]: =floattostr (roundto (Uc [i],-2));. Cells [6, i+1]:
=floattostr (roundto (P [i],-2));. Cells [7, i+1]: =floattostr (roundto (Kp
[i],-2));. Cells [8, i+1]: =floattostr (roundto (R [i],-2));;. Enabled:
=true;('Введите длину');('Выберите условие');
ShowMessage ('Введите верные данные');
end;;TFKonfInfo. BtPrintClick (Sender: TObject);.
Connect;. visible: =true;. documents. add
(emptyparam,emptyparam,emptyparam,emptyparam);. Selection. TypeText ('Временная методика
оценки защищенности конф. информ. обрабатываемой основными техническими');
wordapplication1. Selection. TypeText ('средствами и
системами, от утечки за счет наводок на вспомогательные тех. средства и сис. и
их коммуникации');
wordapplication1. Selection. ParagraphFormat.
Alignment: =wdAlignParagraphCenter;. selection. Tables. Add (wordapplication1.
selection. Range,6,8,EmptyParam,EmptyParam);. Selection. Tables. Item (1).
Borders. InsideLineStyle: =wdBlack;. Selection. Tables. Item (1). Borders.
OutsideLineStyle: =wdBlack;. ActiveDocument. Tables. Item (1). Cell (1,1).
Range. Text: ='f (i), МГц';. ActiveDocument. Tables. Item (1). Cell (1,2).
Range. Text: ='U (c+ш), дБ';. ActiveDocument. Tables. Item (1). Cell (1,3).
Range. Text: ='Uш, дБ';. ActiveDocument. Tables. Item (1). Cell (1,4). Range.
Text: ='Uc, дБ';. ActiveDocument. Tables. Item (1). Cell (1,5). Range. Text:
='U1 (изм), мкВ';. ActiveDocument. Tables. Item (1). Cell (1,6). Range. Text:
='U2 (изм), мкВ';. ActiveDocument. Tables. Item (1). Cell (1,7). Range. Text:
='Кп, дБ/м';. ActiveDocument. Tables. Item (1). Cell (1,8). Range. Text: ='R
(i), м';i: =0 to n-1 do. ActiveDocument. Tables. Item (1). Cell (2+i,1). Range.
Text: =sgKonfInfo. cells [0,1+i];. ActiveDocument. Tables. Item (1). Cell
(2+i,2). Range. Text: =FloatToStr (USsh [i]);. ActiveDocument. Tables. Item
(1). Cell (2+i,3). Range. Text: =FloatToStr (Ush [i]);. ActiveDocument. Tables.
Item (1). Cell (2+i,4). Range. Text: =FloatToStr (roundto (Uc [i],-2));.
ActiveDocument. Tables. Item (1). Cell (2+i,5). Range. Text: =FloatToStr (U1
[i]);. ActiveDocument. Tables. Item (1). Cell (2+i,6). Range. Text: =FloatToStr
(U2 [i]);. ActiveDocument. Tables. Item (1). Cell (2+i,7). Range. Text:
=FloatToStr (roundto (Kp [i],-2));. ActiveDocument. Tables. Item (1). Cell
(2+i,8). Range. Text: =FloatToStr (roundto (R [i],-2));;
end;
end.
2.4 Тестовые
данные программы
Тестовые данные программы представлены в таблице 5
Таблица 5 - Тестовые данные на интерактивный ввод исходных
данных
№ теста
|
Входные данные
|
Реакция
программы
|
1
|
|
Решение задачи
|
2
|
|
Введите верные
данные
|
2.5
Результаты работы программы
Результаты работы программы представлены на рисунках 3 - 5
Рис. 3
Рис. 4
Рис. 5
3.
Руководство по использованию программы
3.1
Руководство системного программиста
Программа "Временные методики оценки защищенности
помещения" предназначена для нахождения оценки защищенности помещения.
Программа выполняет следующие функции:
ввод исходных данных вручную;
контроль вводимых данных;
Технические и программные средства, необходимые для
нормального функционирования программы:
процессор Intel;
принтер;
оперативная память 128 Кб;
свободное пространство на жестком диске 5 Мб;
операционная система Windows XP/Vista;
Для установки программы необходимо вставить диск в cd-дисковод, запустить
значок с именем "TimeMethod. exe".
3.2
Руководство программиста
Программа "Распределение операций между станками на
предприятии" предназначена для распределения операций между станками при
минимальных затратах времени. Для запуска программы необходимо запустить файл
"Задача распределения. exe".
Для организации работы программы необходимы следующие
компоненты ПК:
системный блок;
монитор;
клавиатура;
мышь;
необходимо около 5 Мб свободного места на диске
Требования к программному обеспечению:
операционная система Windows XP/Vista;
Enternet Explorer;
В процессе работы могут выдаваться сообщения, представлены на
рисунках 5-9.
При попытке не выбрать условие:
Рис 5
При попытке не ввести требуемое расстояние:
Рис 6
При попытки ввести не верные данные
Рис 7
Структура файла проекта представлена на рисунке 8
Структура файла проекта
Рис 8
"Дерево" проекта представлено на рисунке 9.
"Дерево" проекта
Рис 9
Описание модулей представлено в таблице 5.
Таблица 5 - Описание модулей программы.
Форма
|
Процедура
|
Описание
|
FMain
|
procedure
TFMain. N2Click (Sender: TObject);
|
Выход из программы
|
|
procedure
TFMain. N11Click (Sender: TObject);
|
Открытие формы
FRechUtech
|
|
procedure
TFMain. N4Click (Sender: TObject);
|
Открытие формы
FElecktPreob
|
|
procedure
TFMain. N5Click (Sender: TObject);
|
Открытие формы
FTexSred
|
|
procedure
TFMain. N6Click (Sender: TObject);
|
Открытие формы
FKonfInfo
|
FElecktPreob
|
procedure
TFElecktPreob. BtRaschClick (Sender: TObject);
|
Расчет первой
методики
|
|
procedure
TFElecktPreob. btPrintClick (Sender: TObject);
|
Отчет в Word
|
FKonfInfo
|
procedure
TFKonfInfo. btRaschClick (Sender: TObject);
|
Расчет второй
методики
|
|
procedure
TFKonfInfo. BtPrintClick (Sender: TObject);
|
Отчет в Word
|
FRechUtech
|
procedure
TFRechUtech. BtRaschetClick (Sender: TObject);
|
Расчет третей
методики
|
|
procedure
TFRechUtech. btPrintClick (Sender: TObject);
|
Отчет в Word
|
FTexSred
|
procedure
TFTexSred. btRasClick (Sender: TObject);
|
Расчет
четвертой методики
|
|
procedure
TFTexSred. BtPrintClick (Sender: TObject);
|
Отчет в Word
|
3.3
Руководство оператора
При запуске программы на экране появится форма. В меня
выбрать "Методы" и в списке выбрать нужный метод. Для решения нужно в
ввести в поля необходимые данные. После заполнения данных необходимо нажать на
кнопку "Расчет". После челго выполниться расчет данных и отобразиться
на экран. После нажатия кнопки "расчет" станет доступна кнопка
"Печать в Word".
Для вывода отчета и результата работы программы необходимо
нажать кнопку "Печать в WORD".
Заключение
Данная программам может применяться для вычисления и проверки
решения временных методик оценки защищенности помещений.
Данная программа позволяет быстро и точно найти требуемые
значения для каждого из методов.
Достоинством данной программы являются:
корректный ввод данных
- понятный и удобный интерфейс
Список
литературы
1. С.И.
Бобровский, Delphi 7 - Учебный курс. Санкт-Петербург, 2004
2. A.Я.
Архангельский, 100 компонентов общего назначения библиотеки Delphi 5.2002.
. С.И.
Бобровский, Delphi 7. Учебный курс.1-е издание. 2004
. О.О.
Замков, Ю.А. Черемных, А.В. Тостопятенко, Математические методы в экономике.
Москва, 2004.