Реферат: Расчёт статически определяемых стержневых систем неравного сечения на растяжение-сжатие

Название: Расчёт статически определяемых стержневых систем неравного сечения на растяжение-сжатие
Раздел: Рефераты по информатике
Тип: реферат

ЗАКЛЮЧЕНИЕ


В рамках подготовки настоящей курсовой работы были реализованы следующие требования:

определение внутренних силовых факторов и деформации, возникающих в стержневой системе, при приложении продольных нагрузок;

построение эпюры продольных сил;

построение эпюры нормального напряжения;

построение эпюры абсолютной деформации;

разработаны тесты для программного продукта.

Данная курсовая работа позволяет применить ранее полученные знания для разработки и создания программного продукта, закрепления основных команд и приемов среды программирования Delphi таких, как автомасштабирование и построение графиков эпюр, зашита программы от ввода недопустимых значений и блокировка ввода недопустимых символов, изменение цвета рабочего интерфейса программы, работа с меню и т.д. Так же данная работа позволяет применить на практике знание Delphi для расчёта статически определяемых стержневых систем неравного сечения на растяжение-сжатие методами сопромата.

На основе достигнутых результатов, можно дать следящие рекомендации по усовершенствованию программы:

решение статически неопределяемой системы;

реализация возможности введения с клавиатуры значения модуля упругости Е;

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






КР.4.О.2.142.





Изм Лист № докумен. Подпись Дата
Разраб. Калякин А.Н.

ЗАКЛЮЧЕНИЕ Литера Лист Листов
Проверил Бояркин Р.А.

У

25 1
Руковод. Бояркин Р.А.

МФ СПГУВК
Н. конт Величко И.П.

Утвердил Сергеева Н.А.




ВВЕДЕНИЕ

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

Цель данной работы – выполнить расчет стержневой системы методами сопротивления материалов на растяжение-сжатие (рассмотреть случаи статически определяемой системы).

Для реализации поставленной цели в работе необходимо решить следующие задачи:

разработать сценарий работы приложения;

разработать макеты экранных форм;

разработать приложение, реализующее следующие функции:


ввод данных;

расчет и вывод результатов;

построение эпюр;

вывод справочной информации о приложении;

возможность изменения интерфейса рабочей области.

Предмет исследования в данной курсовой работе - возможность реализации расчёта статически определяемых стержневых систем неравного сечения на растяжение-сжатие в среде программирования Borland Delphi 7, а объектом среда программирования Delphi.

Теоретической основой для данной курсовой работы послужили труды следующих учёных: М. Кенту, Я. Бернулли.

Результаты данной работы могут использоваться в создании программного обеспечения, его отдельных компонентов, а также программного приложения, в виде помощи для расчёта отдельных статически определяемых стержневых систем неравного сечения на растяжение-сжатие. Следовательно, результаты настоящего исследования могут представлять интерес для студентов и преподавателей при изучении дисциплине «Сопротивление материалов».






КР.4.О.2.142.





Изм Лист № докумен. Подпись Дата
Разраб. Калякин А.Н.

ВВЕДЕНИЕ Литера Лист Листов
Проверил Бояркин Р.А.

У

5 2
Руковод. Бояркин Р.А.

МФ СПГУВК
Н. конт Величко И.П.

Утвердил Сергеева Н.А



ПРИЛОЖЕНИЕ А ИСХОДНЫЙ ТЕКСТ ПРОГРАМНОГО ПРОДУКТА


unit Unit1;


interface


uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, ExtCtrls, StdCtrls, Menus;


type TForm1 = class(TForm)

Label1: TLabel;

Image1: TImage;

Button1: TButton;

Label2: TLabel;

Label3: TLabel;

Label8: TLabel;

Label9: TLabel;

Label10: TLabel;

Edit1: TEdit;

Edit2: TEdit;

Edit3: TEdit;

Edit4: TEdit;

Edit5: TEdit;

Edit6: TEdit;

ComboBox1: TComboBox;

ComboBox2: TComboBox;

Label11: TLabel;

Edit7: TEdit;

Edit8: TEdit;

Edit9: TEdit;

ComboBox3: TComboBox;

ComboBox4: TComboBox;

ComboBox5: TComboBox;

Label12: TLabel;

Label13: TLabel;

Label14: TLabel;

Label15: TLabel;

Label18: TLabel;

ComboBox6: TComboBox;

Label19: TLabel;

Label4: TLabel;

Edit10: TEdit;

Edit11: TEdit;

Edit12: TEdit;

Label5: TLabel;

MainMenu1: TMainMenu;

N1: TMenuItem;

N2: TMenuItem;

N3: TMenuItem;

N4: TMenuItem;

N5: TMenuItem;

N6: TMenuItem;

N7: TMenuItem;

OpenDialog1: TOpenDialog;

SaveDialog1: TSaveDialog;

N8: TMenuItem;

N9: TMenuItem;

Label6: TLabel;

Label7: TLabel;

Label16: TLabel;

Memo1: TMemo;

Image2: TImage;

N10: TMenuItem;


procedure FormActivate(Sender: TObject);

procedure Button1Click(Sender: TObject);

procedure ComboBox1Change(Sender: TObject);

procedure ComboBox2Change(Sender: TObject);

procedure ComboBox3Change(Sender: TObject);

procedure ComboBox4Change(Sender: TObject);

procedure ComboBox5Change(Sender: TObject);

procedure ComboBox6Change(Sender: TObject);

procedure N2Click(Sender: TObject);

procedure N5Click(Sender: TObject);

procedure N3Click(Sender: TObject);

procedure N4Click(Sender: TObject);

procedure Edit1KeyPress(Sender: TObject; var Key: Char);

procedure Edit10KeyPress(Sender: TObject; var Key: Char);

procedure Edit11KeyPress(Sender: TObject; var Key: Char);

procedure Edit12KeyPress(Sender: TObject; var Key: Char);

procedure Edit2KeyPress(Sender: TObject; var Key: Char);

procedure Edit3KeyPress(Sender: TObject; var Key: Char);

procedure Edit4KeyPress(Sender: TObject; var Key: Char);

procedure Edit5KeyPress(Sender: TObject; var Key: Char);

procedure Edit6KeyPress(Sender: TObject; var Key: Char);

procedure Edit7KeyPress(Sender: TObject; var Key: Char);

procedure Edit8KeyPress(Sender: TObject; var Key: Char);

procedure Edit9KeyPress(Sender: TObject; var Key: Char);

procedure N9Click(Sender: TObject);

procedure N8Click(Sender: TObject);

procedure ComboBox1KeyPress(Sender: TObject; var Key: Char);

procedure ComboBox2KeyPress(Sender: TObject; var Key: Char);

procedure ComboBox3KeyPress(Sender: TObject; var Key: Char);

procedure ComboBox4KeyPress(Sender: TObject; var Key: Char);

procedure ComboBox5KeyPress(Sender: TObject; var Key: Char);

procedure ComboBox6KeyPress(Sender: TObject; var Key: Char);

procedure N10Click(Sender: TObject);


private

{ Private declarations } public

{ Public declarations } end;


var Form1: TForm1;


masif9:array[1..6] of real; masi9:array[1..6] of real; ep91:array[1..6] of real; ep92:array[1..6] of real; ep93:array[1..6] of real; pos9:array[1..6] of real; sil9:array[1..3] of real; chis9:array[1..6] of real;


masif8:array[1..5] of real; masi8:array[1..5] of real; ep81:array[1..5] of real; ep82:array[1..5] of real; ep83:array[1..5] of real; pos8:array[1..5] of real; sil8:array[1..3] of real; chis8:array[1..5] of real;


masif7:array[1..4] of real; masi7:array[1..4] of real; ep71:array[1..4] of real; ep72:array[1..4] of real; ep73:array[1..4] of real; pos7:array[1..4] of real; chis7:array[1..4] of real;


masif6:array[1..5] of real; masi6:array[1..5] of real; ep61:array[1..5] of real; ep62:array[1..5] of real; ep63:array[1..5] of real; pos6:array[1..5] of real; chis6:array[1..5] of real;


masif5:array[1..4] of real; masi5:array[1..4] of real; ep51:array[1..4] of real; ep52:array[1..4] of real; ep53:array[1..4] of real; pos5:array[1..4] of real; chis5:array[1..4] of real;


masif4:array[1..3] of real; masi4:array[1..3] of real; ep41:array[1..3] of real; ep42:array[1..3] of real; ep43:array[1..3] of real; pos4:array[1..3] of real; chis4:array[1..3] of real;


masif3:array[1..4] of real; masi3:array[1..4] of real; ep31:array[1..4] of real; ep32:array[1..4] of real; ep33:array[1..4] of real; pos3:array[1..4] of real; chis3:array[1..4] of real;


masif2:array[1..3] of real; masi2:array[1..3] of real; ep21:array[1..3] of real; ep22:array[1..3] of real; ep23:array[1..3] of real; pos2:array[1..3] of real; chis2:array[1..3] of real;


masif1:array[1..2] of real; masi1:array[1..2] of real; ep11:array[1..2] of real; ep12:array[1..2] of real; ep13:array[1..2] of real; pos1:array[1..2] of real; chis1:array[1..2] of real;


okr:integer; i1,i2,i3,i4,i5,i6,z1,z2,z3,p1,p2,p3,r11,r21,r31,r12,r22,r32,d12,d22,d32,a,b,s1,s2,s3,u1,u2,u3,u4,u5,u6,f1,f2,f3,m,sil7:real;


implementation


uses Unit2, Unit3, Unit4;


{$R *.dfm}


procedure TForm1.FormActivate(Sender: TObject); begin image2.Canvas.Brush.Color:=clWhite; image2.Canvas.Brush.Style:=bsSolid; image2.Canvas.Rectangle(0,0,600,667); Form1.Memo1.Clear; image1.Canvas.Brush.Color:=clWhite; image1.Canvas.Brush.Style:=bsSolid; image1.Canvas.Rectangle(0,0,600,667); a:=1; b:=1; Form2.Canvas.MoveTo(0,0); Form2.Canvas.LineTo(260,0); if ComboBox3.Text='Влево' then s1:=-1

else s1:=1; if ComboBox4.Text='Влево' then s2:=-1

else s2:=1; if ComboBox5.Text='Влево' then s3:=-1

else s3:=1; m:=0.001; if ComboBox6.Text='м' then m:=0.001; if ComboBox6.Text='см' then m:=0.0000001; if ComboBox6.Text='мм' then m:=0.000000001;


if ComboBox6.Text='м' then begin Form1.Label7.Caption:='метрах'; Form1.Label16.Left:=672; end;


if ComboBox6.Text='см' then begin Form1.Label7.Caption:='сантиметрах'; Form1.Label16.Left:=704; end;


if ComboBox6.Text='мм' then begin Form1.Label7.Caption:='миллиметрах'; Form1.Label16.Left:=704; end;


end;


procedure TForm1.ComboBox1Change(Sender: TObject); begin if combobox1.Text='1' then begin

a:=1;

Edit2.Visible:=false;

Edit3.Visible:=false;

Edit5.Visible:=false;

Edit6.Visible:=false;

Form1.Label9.Visible:=false;

Form1.Label10.Visible:=false;

Edit1.Text:='';

Edit2.Text:='1';

Edit3.Text:='1';

Edit4.Text:='';

Edit5.Text:='0';

Edit6.Text:='1';

end; if combobox1.Text='2' then begin

a:=2;

Edit2.Visible:=true;

Edit3.Visible:=false;

Edit5.Visible:=true;

Edit6.Visible:=false;

Form1.Label9.Visible:=true;

Form1.Label10.Visible:=false;

Edit1.Text:='';

Edit2.Text:='';

Edit3.Text:='1';

Edit4.Text:='';

Edit5.Text:='';

Edit6.Text:='0';

end; if combobox1.Text='3' then begin

a:=3;

Edit2.Visible:=true;

Edit3.Visible:=true;

Edit5.Visible:=true;

Edit6.Visible:=true;

Form1.Label9.Visible:=true;

Form1.Label10.Visible:=true;

Edit1.Text:='';

Edit2.Text:='';

Edit3.Text:='';

Edit4.Text:='';

Edit5.Text:='';

Edit6.Text:='';

end; end;


procedure TForm1.ComboBox2Change(Sender: TObject); begin if combobox2.Text='1' then begin

b:=1;

Edit8.Visible:=false;

Edit9.Visible:=false;

Edit11.Visible:=false;

Edit12.Visible:=false;

ComboBox3.Visible:=true;

ComboBox4.Visible:=false;

ComboBox5.Visible:=false;

Edit7.Text:='';

Edit8.Text:='1';

Edit9.Text:='1';

Edit10.Text:='';

Edit11.Text:='1';

Edit12.Text:='1';

end; if combobox2.Text='2' then begin

b:=2;

Edit8.Visible:=true;

Edit9.Visible:=false;

Edit11.Visible:=true;

Edit12.Visible:=false;

ComboBox3.Visible:=true;

ComboBox4.Visible:=true;

ComboBox5.Visible:=false;

Edit7.Text:='';

Edit8.Text:='';

Edit9.Text:='1';

Edit10.Text:='';

Edit11.Text:='';

Edit12.Text:='1';

end; if combobox2.Text='3' then begin

b:=3;

Edit8.Visible:=true;

Edit9.Visible:=true;

Edit11.Visible:=true;

Edit12.Visible:=true;

ComboBox3.Visible:=true;

ComboBox4.Visible:=true;

ComboBox5.Visible:=true;

Edit7.Text:='';

Edit8.Text:='';

Edit9.Text:='';

Edit10.Text:='';

Edit11.Text:='';

Edit12.Text:='';

end; end;


procedure TForm1.ComboBox3Change(Sender: TObject); begin if ComboBox3.Text='Влево' then s1:=-1

else s1:=1; end;


procedure TForm1.ComboBox4Change(Sender: TObject); begin if ComboBox4.Text='Влево' then s2:=-1

else s2:=1; end;


procedure TForm1.ComboBox5Change(Sender: TObject); begin if ComboBox5.Text='Влево' then s3:=-1

else s3:=1; end;


procedure TForm1.ComboBox6Change(Sender: TObject); begin m:=0.001; if ComboBox6.Text='м' then m:=0.001; if ComboBox6.Text='см' then m:=0.0000001; if ComboBox6.Text='мм' then m:=0.000000001;


if ComboBox6.Text='м' then begin Form1.Label7.Caption:='метрах'; Form1.Label16.Left:=672; end;


if ComboBox6.Text='см' then begin Form1.Label7.Caption:='сантиметрах'; Form1.Label16.Left:=704; end;


if ComboBox6.Text='мм' then begin Form1.Label7.Caption:='миллиметрах'; Form1.Label16.Left:=704; end;


end;


procedure ed1; var l,gor:real; begin l:=strtoint(form1.Edit1.Text); gor:=(440/l); d12:=(gor*l); end;


procedure ed2; var d1,d2,gor,l,l1,l2,l4,l5:real; begin l1:=strtoint(form1.Edit1.Text); l2:=strtoint(form1.Edit2.Text); l4:=strtoint(form1.Edit4.Text); l5:=strtoint(form1.Edit5.Text); if l4>l5 then begin

d1:=50;

d2:=(50/l4)*l5;

end; if l4<l5 then begin

d1:=(50/l5)*l4;

d2:=50;

end; l:=l1+l2; gor:=(440/l); d12:=(gor*l1); d22:=(gor*l); r11:=(55-d1/2); r12:=(55+d1/2); r21:=(55-d2/2); r22:=(55+d2/2)


end;


procedure ed3; var d1,d2,d3,l,l1,l2,l3,l4,l5,l6,gor:real; begin l1:=strtoint(form1.Edit1.Text); l2:=strtoint(form1.Edit2.Text); l3:=strtoint(form1.Edit3.Text); l4:=strtoint(form1.Edit4.Text); l5:=strtoint(form1.Edit5.Text); l6:=strtoint(form1.Edit6.Text); if (l4>l5) and (l4>l6) then begin

d1:=50;

d2:=((50/l4)*l5);

d3:=((50/l4)*l6);

end; if (l4<l5) and (l5>l6) then begin

d1:=((50/l5)*l4);

d2:=50;

d3:=((50/l5)*l6);

end; if (l4<l6) and (l5<l6) then begin

d1:=((50/l6)*l4);

d2:=((50/l6)*l5);

d3:=50;

end; l:=l1+l2+l3; gor:=(440/l); d12:=(gor*l1); d22:=(gor*l2)+d12; d32:=(gor*l); r11:=(55-d1/2); r12:=(55+d1/2); r21:=(55-d2/2); r22:=(55+d2/2); r31:=(55-d3/2); r32:=(55+d3/2);


end;


procedure si1; var l,l1,l2,l3,l7:real; begin l1:=(strtofloat(Form1.Edit1.Text)); l7:=(strtofloat(Form1.Edit7.Text)); if a=1 then l:=l1; if a=2 then begin

l2:=(strtofloat(Form1.Edit2.Text));

l:=l1+l2;

end; if a=3 then begin

l2:=(strtofloat(Form1.Edit2.Text));

l3:=(strtofloat(Form1.Edit3.Text));

l:=l1+l2+l3;

end; p1:=((440/l)*l7);


f1:=strtofloat(Form1.Edit10.Text)*s1;


sil7:=abs(f1);


sil7:=(70/sil7)*f1;


end;


procedure si2; var l,l1,l2,l3,l7,l8,l10,l11,gor:real; begin l1:=(strtofloat(Form1.Edit1.Text)); l7:=(strtofloat(Form1.Edit7.Text)); l8:=(strtofloat(Form1.Edit8.Text)); l10:=(strtofloat(Form1.Edit10.Text)); l11:=(strtofloat(Form1.Edit11.Text)); if l10>l11 then begin

z1:=70;

z2:=((70/l10)*l11);

end; if l10=l11 then begin

z1:=70;

z2:=70;

end; if l10<l11 then begin

z1:=((70/l11)*l10);

z2:=70;

end; if a=1 then l:=l1; if a=2 then begin

l2:=(strtofloat(Form1.Edit2.Text));

l:=l1+l2;

end; if a=3 then begin

l2:=(strtofloat(Form1.Edit2.Text));

l3:=(strtofloat(Form1.Edit3.Text));

l:=l1+l2+l3;

end;


gor:=(440/l); p1:=(gor*l7); p2:=(gor*l8);


end;


procedure si3; var mas:array[1..3] of real; per,l,l1,l2,l3,l7,l8,l9,l10,l11,l12,gor:real; i,ii:integer; begin l1:=(strtofloat(Form1.Edit1.Text)); l7:=(strtofloat(Form1.Edit7.Text)); l8:=(strtofloat(Form1.Edit8.Text)); l9:=(strtofloat(Form1.Edit9.Text)); l10:=(strtofloat(Form1.Edit10.Text)); l11:=(strtofloat(Form1.Edit11.Text)); l12:=(strtofloat(Form1.Edit12.Text));


mas[1]:=l10; mas[2]:=l11; mas[3]:=l12;

for ii:=1 to 3 do

for i:=1 to 2 do

if mas[i]<>0 then

if mas[i]>mas[i+1] then

begin

per:=mas[i];

mas[i]:=mas[i+1];

mas[i+1]:=per;

end; z1:=((70/mas[3])*l10); z2:=((70/mas[3])*l11); z3:=((70/mas[3])*l12);


if a=1 then l:=l1; if a=2 then begin

l2:=(strtofloat(Form1.Edit2.Text));

l:=l1+l2;

end; if a=3 then begin

l2:=(strtofloat(Form1.Edit2.Text));

l3:=(strtofloat(Form1.Edit3.Text));

l:=l1+l2+l3;

end;


gor:=(440/l); p1:=(gor*l7); p2:=(gor*l8); p3:=(gor*l9); end;


procedure obr2; var sil:array[1..2] of real; i,ii:integer; per:real; begin if b=2 then begin

si2;

i1:=469;

if p1>p2 then begin

i2:=29+p1;

i3:=29+p2;

end;

if p1<p2 then begin

i2:=29+p2;

i3:=29+p1;

end;

if p1=p2 then begin

i2:=29+p1;

i3:=29+p2;

end;

end;


f1:=(strtofloat(Form1.Edit11.Text)*s2+strtofloat(Form1.Edit10.Text)*s1); f2:=strtofloat(Form1.Edit11.Text)*s2;


sil[1]:=abs(f1); sil[2]:=abs(f2);


for ii:=1 to 2 do

for i:=1 to 1 do

if sil[i]<>0 then

if sil[i]>sil[i+1] then

begin

per:=sil[i];

sil[i]:=sil[i+1];

sil[i+1]:=per;

end;


sil8[1]:=(70/sil[2])*f1; sil8[2]:=(70/sil[2])*f2; end;


procedure obr3; var mas:array[1..3] of real; sil:array[1..3] of real; per:real; i,ii:integer; begin if b=3 then begin si3; mas[1]:=29+p1; mas[2]:=29+p2; mas[3]:=29+p3;

for ii:=1 to 3 do

for i:=1 to 2 do

if mas[i]<>0 then

if mas[i]>mas[i+1] then

begin

per:=mas[i];

mas[i]:=mas[i+1];

mas[i+1]:=per;

end; i1:=469; i2:=(mas[3]); i3:=(mas[2]); i4:=(mas[1]); f1:=(strtofloat(Form1.Edit12.Text)*s3+strtofloat(Form1.Edit11.Text)*s2+strtofloat(Form1.Edit10.Text)*s1); f2:=(strtofloat(Form1.Edit12.Text)*s3+strtofloat(Form1.Edit11.Text)*s2); f3:=(strtofloat(Form1.Edit12.Text)*s3); sil[1]:=abs(f1); sil[2]:=abs(f2); sil[3]:=abs(f3);


for ii:=1 to 3 do

for i:=1 to 2 do

if sil[i]<>0 then

if sil[i]>sil[i+1] then

begin

per:=sil[i];

sil[i]:=sil[i+1];

sil[i+1]:=per;

end;


sil9[1]:=(70/sil[3])*f1; sil9[2]:=(70/sil[3])*f2; sil9[3]:=(70/sil[3])*f3;


end; end;


procedure obr4; begin if (a=2) and (b=1) then begin

ed2;

si1;

i1:=29+d22;

if p1>d12 then begin

i2:=29+p1;

i3:=29+d12;

end;

if p1<d12 then begin

i2:=29+d12;

i3:=29+p1;

end;

if p1=d12 then begin

i2:=29+p1;

i3:=29+d12;

end;

end; end;


procedure obr5; var mas:array[1..3] of real; per:real; i,ii:integer; begin if (a=2) and (b=2) then begin ed2; si2; mas[1]:=29+p1; mas[2]:=29+p2; mas[3]:=29+d12;

for ii:=1 to 3 do

for i:=1 to 2 do

if mas[i]<>0 then

if mas[i]>mas[i+1] then

begin

per:=mas[i];

mas[i]:=mas[i+1];

mas[i+1]:=per;

end; i1:=29+d22; i2:=mas[3]; i3:=mas[2]; i4:=mas[1];


end; end;


procedure obr6; var mas:array[1..4] of real; per:real; i,ii:integer; begin if (a=2) and (b=3) then begin si3; ed2; i1:=29+d22; mas[1]:=29+p1; mas[2]:=29+p2; mas[3]:=29+p3; mas[4]:=29+d12;

for ii:=1 to 4 do

for i:=1 to 3 do

if mas[i]<>0 then

if mas[i]>mas[i+1] then

begin

per:=mas[i];

mas[i]:=mas[i+1];

mas[i+1]:=per;

end; i2:=mas[4]; i3:=mas[3]; i4:=mas[2]; i5:=mas[1]; end; end;


procedure obr7; var mas:array[1..3] of real; per:real; i,ii:integer; begin if (a=3) and (b=1) then begin ed3; si1; i1:=29+d32; mas[1]:=29+d12; mas[2]:=29+d22; mas[3]:=29+p1;

for ii:=1 to 3 do

for i:=1 to 2 do

if mas[ii]<>0 then

if mas[ii]>mas[ii+1] then

begin

per:=mas[i];

mas[i]:=mas[i+1];

mas[i+1]:=per;

end; i2:=mas[3]; i3:=mas[2]; i4:=mas[1];


end; end;


procedure obr8; var mas:array[1..4] of real; per:real; i,ii:integer; begin if (a=3) and (b=2) then begin ed3; si2; i1:=29+d32; mas[1]:=29+d12; mas[2]:=29+d22; mas[3]:=29+p1; mas[4]:=29+p2;

for ii:=1 to 4 do

for i:=1 to 3 do

if mas[i]<>0 then

if mas[i]>mas[i+1] then

begin

per:=mas[i];

mas[i]:=mas[i+1];

mas[i+1]:=per;

end; i2:=mas[4]; i3:=mas[3]; i4:=mas[2]; i5:=mas[1]; end; end;


procedure obr9; var mas:array[1..5] of real; per:real; i,ii:integer; begin if (a=3) and (b=3) then begin ed3; si3; i1:=d32+29; mas[1]:=29+p1; mas[2]:=29+p2; mas[3]:=29+p3; mas[4]:=29+d12; mas[5]:=29+d22;

for ii:=1 to 5 do

for i:=1 to 4 do

if mas[i]<>0 then

if mas[i]>mas[i+1] then

begin

per:=mas[i];

mas[i]:=mas[i+1];

mas[i+1]:=per;

end; i2:=mas[5]; i3:=mas[4]; i4:=mas[3]; i5:=mas[2]; i6:=mas[1];


end; end;


procedure epi1; var mash:array[1..2] of real; mas:real; per,l10:real; i,ii:integer; begin


ep11[1]:=strtofloat(Form1.Edit1.Text); ep11[2]:=strtofloat(Form1.Edit7.Text);


l10:=strtofloat(Form1.Edit10.Text);


u1:=strtofloat(Form1.Edit4.Text);


if ep11[2]>ep11[1] then u2:=0; if ep11[2]<=ep11[1] then u2:=strtofloat(Form1.Edit4.Text);


for i:=1 to 2 do ep12[i]:=59+(440/ep11[1])*ep11[i];


if ep11[1]>ep11[2] then mas:=0; if ep11[2]>=ep11[1] then mas:=(l10*s1)/u2;


mash[1]:=abs((l10*s1)/u1); mash[2]:=abs(mas);


for ii:=1 to 2 do

for i:=1 to 1 do

if mash[i]<>0 then

if mash[i]>mash[i+1] then

begin

per:=mash[i];

mash[i]:=mash[i+1];

mash[i+1]:=per; end;


ep13[1]:=(70/mash[2])*mas; ep13[2]:=(70/mash[2])*((l10*s1)/u2);


pos1[1]:=abs(mas); pos1[2]:=abs((l10*s1)/u2);


masif1[1]:=(mas); masif1[2]:=((l10*s1)/u2);


for ii:=1 to 2 do

for i:=1 to 1 do

if ep11[i]<>0 then

if ep11[i]>ep11[i+1] then

begin

per:=ep11[i];

ep11[i]:=ep11[i+1];

ep11[i+1]:=per;

per:=ep12[i];

ep12[i]:=ep12[i+1];

ep12[i+1]:=per;

per:=ep13[i];

ep13[i]:=ep13[i+1];

ep13[i+1]:=per;

per:=masif1[i];

masif1[i]:=masif1[i+1];

masif1[i+1]:=per;

per:=pos1[i];

pos1[i]:=pos1[i+1];

pos1[i+1]:=per;

end;


masif1[1]:=masif1[1]*ep11[1]; masif1[2]:=masif1[1]+(masif1[2]*(ep11[2]-ep11[1]));


for i:=1 to 2 do chis1[i]:=masif1[i];


for i:=1 to 2 do mash[i]:=abs(masif1[i]);


for ii:=1 to 2 do

for i:=1 to 1 do

if mash[i]<>0 then

if mash[i]>mash[i+1] then

begin

per:=mash[i];

mash[i]:=mash[i+1];

mash[i+1]:=per; end;


for i:=1 to 2 do masif1[i]:=((70/mash[2])*masif1[i]); end;


procedure epi2; var mash:array[1..3] of real; mas:real; per,l10,l11:real; i,ii:integer; begin


ep21[1]:=strtofloat(Form1.Edit1.Text); ep21[2]:=strtofloat(Form1.Edit7.Text); ep21[3]:=strtofloat(Form1.Edit8.Text);


l11:=strtofloat(Form1.Edit11.Text); l10:=strtofloat(Form1.Edit10.Text);


u1:=strtofloat(Form1.Edit4.Text);


if ep21[2]>ep21[1] then u2:=0; if ep21[2]<=ep21[1] then u2:=strtofloat(Form1.Edit4.Text); if ep21[3]>ep21[1] then u3:=0; if ep21[3]<=ep21[1] then u3:=strtofloat(Form1.Edit4.Text);


for i:=1 to 3 do ep22[i]:=59+(440/ep21[1])*ep21[i];


if ep21[1]>ep21[3] then mas:=0; if (ep21[3]>=ep21[1]) and (ep21[2]<ep21[1]) then mas:=(l11*s2)/u1;


mash[1]:=abs((l10*s1)+(l11*s2))/u2; mash[2]:=abs((l11*s2)/u3); mash[3]:=abs(mas);


for ii:=1 to 3 do

for i:=1 to 2 do

if mash[i]<>0 then

if mash[i]>mash[i+1] then

begin

per:=mash[i];

mash[i]:=mash[i+1];

mash[i+1]:=per; end;


ep23[1]:=(70/mash[3])*mas; ep23[2]:=(70/mash[3])*(((l10*s1)+(l11*s2))/u2); ep23[3]:=(70/mash[3])*((l11*s2)/u3);


pos2[1]:=abs(mas); pos2[2]:=abs(((l10*s1)+(l11*s2))/u2); pos2[3]:=abs((l11*s2)/u3);


masif2[1]:=(mas); masif2[2]:=(((l10*s1)+(l11*s2))/u2); masif2[3]:=((l11*s2)/u3);


for ii:=1 to 3 do

for i:=1 to 2 do

if ep21[i]<>0 then

if ep21[i]>ep21[i+1] then

begin

per:=ep21[i];

ep21[i]:=ep21[i+1];

ep21[i+1]:=per;

per:=ep22[i];

ep22[i]:=ep22[i+1];

ep22[i+1]:=per;

per:=ep23[i];

ep23[i]:=ep23[i+1];

ep23[i+1]:=per;

per:=masif2[i];

masif2[i]:=masif2[i+1];

masif2[i+1]:=per;

per:=pos2[i];

pos2[i]:=pos2[i+1];

pos2[i+1]:=per;

end;


masif2[1]:=masif2[1]*ep21[1]; masif2[2]:=masif2[1]+(masif2[2]*(ep21[2]-ep21[1])); masif2[3]:=masif2[2]+(masif2[3]*(ep21[3]-ep21[2]));


for i:=1 to 3 do chis2[i]:=masif2[i];


for i:=1 to 3 do mash[i]:=abs(masif2[i]);


for ii:=1 to 3 do

for i:=1 to 2 do

if mash[i]<>0 then

if mash[i]>mash[i+1] then

begin

per:=mash[i];

mash[i]:=mash[i+1];

mash[i+1]:=per; end;


for i:=1 to 3 do masif2[i]:=((70/mash[3])*masif2[i]); end;


procedure epi3; var mash:array[1..4] of real; mas:real; per,l10,l11,l12:real; i,ii:integer; begin


ep31[1]:=strtofloat(Form1.Edit1.Text); ep31[2]:=strtofloat(Form1.Edit7.Text); ep31[3]:=strtofloat(Form1.Edit8.Text); ep31[4]:=strtofloat(Form1.Edit9.Text);


l10:=strtofloat(Form1.Edit10.Text); l11:=strtofloat(Form1.Edit11.Text); l12:=strtofloat(Form1.Edit12.Text);


u1:=strtofloat(Form1.Edit4.Text);


if ep31[2]<=ep31[1] then u2:=strtofloat(Form1.Edit4.Text); if ep31[3]<=ep31[1] then u3:=strtofloat(Form1.Edit4.Text); if ep31[4]<=ep31[1] then u4:=strtofloat(Form1.Edit4.Text);


for i:=1 to 4 do ep32[i]:=59+(440/ep31[1])*ep31[i];


if ep31[1]<ep31[4] then mas:=0 else mas:=(l12*s3)/u1;


mash[1]:=abs((l11*s2)+(l12*s3))/u3; mash[2]:=abs((l12*s3)/u4); mash[3]:=abs(mas); mash[4]:=abs(((l10*s1)+(l11*s2)+(l12*s3))/u2);


for ii:=1 to 4 do

for i:=1 to 3 do

if mash[i]<>0 then

if mash[i]>mash[i+1] then

begin

per:=mash[i];

mash[i]:=mash[i+1];

mash[i+1]:=per; end;


ep33[1]:=(70/mash[4])*mas; ep33[2]:=(70/mash[4])*(((l10*s1)+(l11*s2)+(l12*s3))/u2); ep33[3]:=(70/mash[4])*(((l11*s2)+(l12*s3))/u3); ep33[4]:=(70/mash[4])*((l12*s3)/u4);


pos3[1]:=abs(mas); pos3[2]:=abs(((l10*s1)+(l11*s2)+(l12*s3))/u2); pos3[3]:=abs(((l11*s2)+(l12*s3))/u3); pos3[4]:=abs((l12*s3)/u4);


masif3[1]:=(mas); masif3[2]:=(((l10*s1)+(l11*s2)+(l12*s3))/u2); masif3[3]:=(((l11*s2)+(l12*s3))/u3); masif3[4]:=((l12*s3)/u4);


for ii:=1 to 4 do

for i:=1 to 3 do

if ep31[i]<>0 then

if ep31[i]>ep31[i+1] then

begin

per:=ep31[i];

ep31[i]:=ep31[i+1];

ep31[i+1]:=per;

per:=ep32[i];

ep32[i]:=ep32[i+1];

ep32[i+1]:=per;

per:=ep33[i];

ep33[i]:=ep33[i+1];

ep33[i+1]:=per;

per:=masif3[i];

masif3[i]:=masif3[i+1];

masif3[i+1]:=per;

per:=pos3[i];

pos3[i]:=pos3[i+1];

pos3[i+1]:=per;

end;


masif3[1]:=masif3[1]*ep31[1]; masif3[2]:=masif3[1]+(masif3[2]*(ep31[2]-ep31[1])); masif3[3]:=masif3[2]+(masif3[3]*(ep31[3]-ep31[2])); masif3[4]:=masif3[3]+(masif3[4]*(ep31[4]-ep31[3]));


for i:=1 to 4 do chis3[i]:=masif3[i];


for i:=1 to 4 do mash[i]:=abs(masif3[i]);


for ii:=1 to 4 do

for i:=1 to 3 do

if mash[i]<>0 then

if mash[i]>mash[i+1] then

begin

per:=mash[i];

mash[i]:=mash[i+1];

mash[i+1]:=per; end;


for i:=1 to 4 do masif3[i]:=((70/mash[4])*masif3[i]); end;


procedure epi4; var mash:array[1..3] of real; mas:array[1..2] of real; per,l10,l11:real; i,ii:integer; begin


ep41[1]:=strtofloat(Form1.Edit1.Text); ep41[2]:=strtofloat(Form1.Edit1.Text)+strtofloat(Form1.Edit2.Text); ep41[3]:=strtofloat(Form1.Edit7.Text);


l10:=strtofloat(Form1.Edit10.Text);


u1:=strtofloat(Form1.Edit4.Text); u2:=strtofloat(Form1.Edit5.Text);


if (ep41[3]>ep41[1]) and (ep41[3]<=ep41[2]) then u3:=strtofloat(Form1.Edit5.Text); if ep41[3]<=ep41[1] then u3:=strtofloat(Form1.Edit4.Text);


for i:=1 to 3 do ep42[i]:=59+(440/ep41[2])*ep41[i];


if ep41[1]>ep41[3] then mas[1]:=0; if ep41[1]<=ep41[3] then mas[1]:=(l10*s1)/u1; if ep41[2]>ep41[3] then mas[2]:=0; if ep41[2]<=ep41[3] then mas[2]:=(l10*s1)/u2;


mash[1]:=abs((l10*s1)/u3); mash[2]:=abs(mas[1]); mash[3]:=abs(mas[2]);


for ii:=1 to 3 do

for i:=1 to 2 do

if mash[i]<>0 then

if mash[i]>mash[i+1] then

begin

per:=mash[i];

mash[i]:=mash[i+1];

mash[i+1]:=per; end;


ep43[1]:=(70/mash[3])*mas[1]; ep43[2]:=(70/mash[3])*mas[2]; ep43[3]:=(70/mash[3])*((l10*s1)/u3);


pos4[1]:=abs(mas[1]); pos4[2]:=abs(mas[2]); pos4[3]:=abs((l10*s1)/u3);


masif4[1]:=(mas[1]); masif4[2]:=(mas[2]); masif4[3]:=((l10*s1)/u3);


for ii:=1 to 3 do

for i:=1 to 2 do

if ep41[i]<>0 then

if ep41[i]>ep41[i+1] then

begin

per:=ep41[i];

ep41[i]:=ep41[i+1];

ep41[i+1]:=per;

per:=ep42[i];

ep42[i]:=ep42[i+1];

ep42[i+1]:=per;

per:=ep43[i];

ep43[i]:=ep43[i+1];

ep43[i+1]:=per;

per:=masif4[i];

masif4[i]:=masif4[i+1];

masif4[i+1]:=per;

per:=pos4[i];

pos4[i]:=pos4[i+1];

pos4[i+1]:=per;

end;


masif4[1]:=masif4[1]*ep41[1]; masif4[2]:=masif4[1]+(masif4[2]*(ep41[2]-ep41[1])); masif4[3]:=masif4[2]+(masif4[3]*(ep41[3]-ep41[2]));


for i:=1 to 3 do chis4[i]:=masif4[i];


for i:=1 to 3 do mash[i]:=abs(masif4[i]);


for ii:=1 to 3 do

for i:=1 to 2 do

if mash[i]<>0 then

if mash[i]>mash[i+1] then

begin

per:=mash[i];

mash[i]:=mash[i+1];

mash[i+1]:=per; end;


for i:=1 to 3 do masif4[i]:=((70/mash[3])*masif4[i]); end;


procedure epi5; var mash:array[1..4] of real; mas:array[1..2] of real; per,l10,l11:real; i,ii:integer; begin


ep51[1]:=strtofloat(Form1.Edit1.Text); ep51[2]:=strtofloat(Form1.Edit1.Text)+strtofloat(Form1.Edit2.Text); ep51[3]:=strtofloat(Form1.Edit7.Text); ep51[4]:=strtofloat(Form1.Edit8.Text);


l10:=strtofloat(Form1.Edit10.Text); l11:=strtofloat(Form1.Edit11.Text);


u1:=strtofloat(Form1.Edit4.Text); u2:=strtofloat(Form1.Edit5.Text);


if (ep51[3]>ep51[1]) and (ep51[3]<=ep51[2]) then u3:=strtofloat(Form1.Edit5.Text); if ep51[3]<=ep51[1] then u3:=strtofloat(Form1.Edit4.Text); if (ep51[4]>ep51[1]) and (ep51[4]<=ep51[2]) then u4:=strtofloat(Form1.Edit5.Text); if ep51[4]<=ep51[1] then u4:=strtofloat(Form1.Edit4.Text);


for i:=1 to 4 do ep52[i]:=59+(440/ep51[2])*ep51[i];


if ep51[1]>ep51[4] then mas[1]:=0; if (ep51[4]>=ep51[1]) and (ep51[1]>ep51[3]) then mas[1]:=(l11*s2)/u1; if (ep51[3]>=ep51[1]) then mas[1]:=((l10*s1)+(l11*s2))/u1; if ep51[2]>ep51[4] then mas[2]:=0; if (ep51[4]>=ep51[2]) and (ep51[2]>ep51[3]) then mas[2]:=(l11*s2)/u2; if (ep51[3]>=ep51[2]) then mas[2]:=((l10*s1)+(l11*s2))/u2;


mash[1]:=abs((l10*s1)+(l11*s2)/u3); mash[2]:=abs((l11*s2)/u4); mash[3]:=abs(mas[1]); mash[4]:=abs(mas[2]);


for ii:=1 to 4 do

for i:=1 to 3 do

if mash[i]<>0 then

if mash[i]>mash[i+1] then

begin

per:=mash[i];

mash[i]:=mash[i+1];

mash[i+1]:=per; end;


ep53[1]:=(70/mash[4])*mas[1]; ep53[2]:=(70/mash[4])*mas[2]; ep53[3]:=(70/mash[4])*(((l10*s1)+(l11*s2))/u3); ep53[4]:=(70/mash[4])*((l11*s2)/u4);


pos5[1]:=abs(mas[1]); pos5[2]:=abs(mas[2]); pos5[3]:=abs(((l10*s1)+(l11*s2))/u3); pos5[4]:=abs((l11*s2)/u4);


masif5[1]:=(mas[1]); masif5[2]:=(mas[2]); masif5[3]:=(((l10*s1)+(l11*s2))/u3); masif5[4]:=((l11*s2)/u4);


for ii:=1 to 4 do

for i:=1 to 3 do

if ep51[i]<>0 then

if ep51[i]>ep51[i+1] then

begin

per:=ep51[i];

ep51[i]:=ep51[i+1];

ep51[i+1]:=per;

per:=ep52[i];

ep52[i]:=ep52[i+1];

ep52[i+1]:=per;

per:=ep53[i];

ep53[i]:=ep53[i+1];

ep53[i+1]:=per;

per:=masif5[i];

masif5[i]:=masif5[i+1];

masif5[i+1]:=per;

per:=pos5[i];

pos5[i]:=pos5[i+1];

pos5[i+1]:=per;

end;


masif5[1]:=masif5[1]*ep51[1]; masif5[2]:=masif5[1]+(masif5[2]*(ep51[2]-ep51[1])); masif5[3]:=masif5[2]+(masif5[3]*(ep51[3]-ep51[2])); masif5[4]:=masif5[3]+(masif5[4]*(ep51[4]-ep51[3]));


for i:=1 to 4 do chis5[i]:=masif5[i];


for i:=1 to 4 do mash[i]:=abs(masif5[i]);


for ii:=1 to 4 do

for i:=1 to 3 do

if mash[i]<>0 then

if mash[i]>mash[i+1] then

begin

per:=mash[i];

mash[i]:=mash[i+1];

mash[i+1]:=per; end;


for i:=1 to 4 do masif5[i]:=((70/mash[4])*masif5[i]); end;


procedure epi6; var mash:array[1..5] of real; mas:array[1..2] of real; per,l10,l11,l12:real; i,ii:integer; begin


ep61[1]:=strtofloat(Form1.Edit1.Text); ep61[2]:=strtofloat(Form1.Edit1.Text)+strtofloat(Form1.Edit2.Text); ep61[3]:=strtofloat(Form1.Edit7.Text); ep61[4]:=strtofloat(Form1.Edit8.Text); ep61[5]:=strtofloat(Form1.Edit9.Text);


l10:=strtofloat(Form1.Edit10.Text); l11:=strtofloat(Form1.Edit11.Text); l12:=strtofloat(Form1.Edit12.Text);


u1:=strtofloat(Form1.Edit4.Text); u2:=strtofloat(Form1.Edit5.Text);


if (ep61[3]>ep61[1]) and (ep61[3]<=ep61[2]) then u3:=strtofloat(Form1.Edit5.Text); if ep61[3]<=ep61[1] then u3:=strtofloat(Form1.Edit4.Text); if (ep61[4]>ep61[1]) and (ep61[4]<=ep61[2]) then u4:=strtofloat(Form1.Edit5.Text); if ep61[4]<=ep61[1] then u4:=strtofloat(Form1.Edit4.Text); if (ep61[5]>ep61[1]) and (ep61[5]<=ep61[2]) then u5:=strtofloat(Form1.Edit5.Text); if ep61[5]<=ep61[1] then u5:=strtofloat(Form1.Edit4.Text);


for i:=1 to 5 do ep62[i]:=59+(440/ep61[2])*ep61[i];


if ep61[1]>ep61[5] then mas[1]:=0; if (ep61[5]>=ep61[1]) and (ep61[1]>ep61[4]) then mas[1]:=(l12*s3)/u1; if (ep61[4]>=ep61[1]) and (ep61[1]>ep61[3]) then mas[1]:=((l11*s2)+(l12*s3))/u1; if ep61[1]<=ep61[3] then mas[1]:=((l10*s1)+(l11*s2)+(l12*s3))/u1; if ep61[2]>ep61[5] then mas[2]:=0; if (ep61[5]>=ep61[2]) and (ep61[2]>ep61[4]) then mas[2]:=(l12*s3)/u2; if (ep61[4]>=ep61[2]) and (ep61[2]>ep61[3]) then mas[2]:=((l11*s2)+(l12*s3))/u2; if ep61[2]<=ep61[3] then mas[2]:=((l10*s1)+(l11*s2)+(l12*s3))/u2;


mash[1]:=abs(((l10*s1)+(l11*s2)+(l12*s3))/u3); mash[2]:=abs(((l11*s2)+(l12*s3))/u4); mash[3]:=abs((l12*s3)/u5); mash[4]:=abs(mas[1]); mash[5]:=abs(mas[2]);


for ii:=1 to 5 do

for i:=1 to 4 do

if mash[i]<>0 then

if mash[i]>mash[i+1] then

begin

per:=mash[i];

mash[i]:=mash[i+1];

mash[i+1]:=per; end;


ep63[1]:=(70/mash[5])*mas[1]; ep63[2]:=(70/mash[5])*mas[2]; ep63[3]:=(70/mash[5])*(((l10*s1)+(l11*s2)+(l12*s3))/u3); ep63[4]:=(70/mash[5])*(((l11*s2)+(l12*s3))/u4); ep63[5]:=(70/mash[5])*((l12*s3)/u5);


pos6[1]:=abs(mas[1]); pos6[2]:=abs(mas[2]); pos6[3]:=abs(((l10*s1)+(l11*s2)+(l12*s3))/u3); pos6[4]:=abs(((l11*s2)+(l12*s3))/u4); pos6[5]:=abs((l12*s3)/u5);


masif6[1]:=(mas[1]); masif6[2]:=(mas[2]); masif6[3]:=(((l10*s1)+(l11*s2)+(l12*s3))/u3); masif6[4]:=(((l11*s2)+(l12*s3))/u4); masif6[5]:=((l12*s3)/u5);


for ii:=1 to 5 do

for i:=1 to 4 do

if ep61[i]<>0 then

if ep61[i]>ep61[i+1] then

begin

per:=ep61[i];

ep61[i]:=ep61[i+1];

ep61[i+1]:=per;

per:=ep62[i];

ep62[i]:=ep62[i+1];

ep62[i+1]:=per;

per:=ep63[i];

ep63[i]:=ep63[i+1];

ep63[i+1]:=per;

per:=masif6[i];

masif6[i]:=masif6[i+1];

masif6[i+1]:=per;

per:=pos6[i];

pos6[i]:=pos6[i+1];

pos6[i+1]:=per;

end;


masif6[1]:=masif6[1]*ep61[1]; masif6[2]:=masif6[1]+(masif6[2]*(ep61[2]-ep61[1])); masif6[3]:=masif6[2]+(masif6[3]*(ep61[3]-ep61[2])); masif6[4]:=masif6[3]+(masif6[4]*(ep61[4]-ep61[3])); masif6[5]:=masif6[4]+(masif6[5]*(ep61[5]-ep61[4]));


for i:=1 to 5 do chis6[i]:=masif6[i];


for i:=1 to 5 do mash[i]:=abs(masif6[i]);


for ii:=1 to 5 do

for i:=1 to 4 do

if mash[i]<>0 then

if mash[i]>mash[i+1] then

begin

per:=mash[i];

mash[i]:=mash[i+1];

mash[i+1]:=per; end;


for i:=1 to 5 do masif6[i]:=((70/mash[5])*masif6[i]);


end;


procedure epi7; var mash:array[1..4] of real; mas:array[1..3] of real; per,l10,l11:real; i,ii:integer; begin


ep71[1]:=strtofloat(Form1.Edit1.Text); ep71[2]:=strtofloat(Form1.Edit1.Text)+strtofloat(Form1.Edit2.Text); ep71[3]:=strtofloat(Form1.Edit1.Text)+strtofloat(Form1.Edit2.Text)+strtofloat(Form1.Edit3.Text); ep71[4]:=strtofloat(Form1.Edit7.Text);


l10:=strtofloat(Form1.Edit10.Text);


u1:=strtofloat(Form1.Edit4.Text); u2:=strtofloat(Form1.Edit5.Text); u3:=strtofloat(Form1.Edit6.Text);


if ep71[4]>ep71[2] then u4:=strtofloat(Form1.Edit6.Text); if (ep71[4]>ep71[1]) and (ep71[4]<=ep71[2]) then u4:=strtofloat(Form1.Edit5.Text); if ep71[4]<=ep71[1] then u4:=strtofloat(Form1.Edit4.Text);


for i:=1 to 4 do ep72[i]:=59+(440/ep71[3])*ep71[i];


if ep71[1]>ep71[4] then mas[1]:=0; if ep71[1]<=ep71[4] then mas[1]:=(l10*s1)/u1; if ep71[2]>ep71[4] then mas[2]:=0; if ep71[2]<=ep71[4] then mas[2]:=(l10*s1)/u2; if ep71[3]=ep71[4] then mas[3]:=(l10*s1)/u3;


mash[1]:=abs((l10*s1)/u4); mash[2]:=abs(mas[1]); mash[3]:=abs(mas[2]); mash[4]:=abs(mas[3]);


for ii:=1 to 4 do

for i:=1 to 3 do

if mash[i]<>0 then

if mash[i]>mash[i+1] then

begin

per:=mash[i];

mash[i]:=mash[i+1];

mash[i+1]:=per; end;


ep73[1]:=(70/mash[4])*mas[1]; ep73[2]:=(70/mash[4])*mas[2]; ep73[3]:=(70/mash[4])*mas[3]; ep73[4]:=(70/mash[4])*((l10*s1)/u4);


pos7[1]:=abs(mas[1]); pos7[2]:=abs(mas[2]); pos7[3]:=abs(mas[3]); pos7[4]:=abs((l10*s1)/u4);


masif7[1]:=(mas[1]); masif7[2]:=(mas[2]); masif7[3]:=(mas[3]); masif7[4]:=((l10*s1)/u4);


for ii:=1 to 4 do

for i:=1 to 3 do

if ep71[i]<>0 then

if ep71[i]>ep71[i+1] then

begin

per:=ep71[i];

ep71[i]:=ep71[i+1];

ep71[i+1]:=per;

per:=ep72[i];

ep72[i]:=ep72[i+1];

ep72[i+1]:=per;

per:=ep73[i];

ep73[i]:=ep73[i+1];

ep73[i+1]:=per;

per:=masif7[i];

masif7[i]:=masif7[i+1];

masif7[i+1]:=per;

per:=pos7[i];

pos7[i]:=pos7[i+1];

pos7[i+1]:=per;

end;


masif7[1]:=masif7[1]*ep71[1]; masif7[2]:=masif7[1]+(masif7[2]*(ep71[2]-ep71[1])); masif7[3]:=masif7[2]+(masif7[3]*(ep71[3]-ep71[2])); masif7[4]:=masif7[3]+(masif7[4]*(ep71[4]-ep71[3]));


for i:=1 to 4 do chis7[i]:=masif7[i];


for i:=1 to 4 do mash[i]:=abs(masif7[i]);


for ii:=1 to 4 do

for i:=1 to 3 do

if mash[i]<>0 then

if mash[i]>mash[i+1] then

begin

per:=mash[i];

mash[i]:=mash[i+1];

mash[i+1]:=per; end;


for i:=1 to 4 do masif7[i]:=((70/mash[4])*masif7[i]);


end;


procedure epi8; var mash:array[1..5] of real; mas:array[1..3] of real; per,l10,l11:real; i,ii:integer; begin


ep81[1]:=strtofloat(Form1.Edit1.Text); ep81[2]:=strtofloat(Form1.Edit1.Text)+strtofloat(Form1.Edit2.Text); ep81[3]:=strtofloat(Form1.Edit1.Text)+strtofloat(Form1.Edit2.Text)+strtofloat(Form1.Edit3.Text); ep81[4]:=strtofloat(Form1.Edit7.Text); ep81[5]:=strtofloat(Form1.Edit8.Text);


l10:=strtofloat(Form1.Edit10.Text); l11:=strtofloat(Form1.Edit11.Text);


u1:=strtofloat(Form1.Edit4.Text); u2:=strtofloat(Form1.Edit5.Text); u3:=strtofloat(Form1.Edit6.Text);


if ep81[4]>ep81[2] then u4:=strtofloat(Form1.Edit6.Text); if (ep81[4]>ep81[1]) and (ep81[4]<=ep81[2]) then u4:=strtofloat(Form1.Edit5.Text); if ep81[4]<=ep81[1] then u4:=strtofloat(Form1.Edit4.Text); if ep81[5]>ep81[2] then u5:=strtofloat(Form1.Edit6.Text); if (ep81[5]>ep81[1]) and (ep81[5]<=ep81[2]) then u5:=strtofloat(Form1.Edit5.Text); if ep81[5]<=ep81[1] then u5:=strtofloat(Form1.Edit4.Text);


for i:=1 to 5 do ep82[i]:=59+(440/ep81[3])*ep81[i];


if ep81[1]>ep81[5] then mas[1]:=0; if (ep81[5]>=ep81[1]) and (ep81[1]>ep81[4]) then mas[1]:=(l11*s2)/u1; if ep81[1]<=ep81[4] then mas[1]:=((l10*s1)+(l11*s2))/u1; if ep81[2]>ep81[5] then mas[2]:=0; if (ep81[5]>=ep81[2]) and (ep81[2]>ep81[4]) then mas[2]:=(l11*s2)/u2; if ep81[2]<=ep81[4] then mas[2]:=((l10*s1)+(l11*s2))/u2; if ep81[3]=ep81[5] then mas[3]:=(l11*s2)/u3;


mash[1]:=abs(((l10*s1)+(l11*s2))/u4); mash[2]:=abs((l11*s2)/u5); mash[4]:=abs(mas[1]); mash[4]:=abs(mas[2]); mash[5]:=abs(mas[3]);


for ii:=1 to 5 do

for i:=1 to 4 do

if mash[i]<>0 then

if mash[i]>mash[i+1] then

begin

per:=mash[i];

mash[i]:=mash[i+1];

mash[i+1]:=per; end;


ep83[1]:=(70/mash[5])*mas[1]; ep83[2]:=(70/mash[5])*mas[2]; ep83[3]:=(70/mash[5])*mas[3]; ep83[4]:=(70/mash[5])*(((l10*s1)+(l11*s2))/u4); ep83[5]:=(70/mash[5])*((l11*s2)/u5);


pos8[1]:=abs(mas[1]); pos8[2]:=abs(mas[2]); pos8[3]:=abs(mas[3]); pos8[4]:=abs(((l10*s1)+(l11*s2))/u4); pos8[5]:=abs((l11*s2)/u5);


masif8[1]:=(mas[1]); masif8[2]:=(mas[2]); masif8[3]:=(mas[3]); masif8[4]:=(((l10*s1)+(l11*s2))/u4); masif8[5]:=((l11*s2)/u5);


for ii:=1 to 5 do

for i:=1 to 4 do

if ep81[i]<>0 then

if ep81[i]>ep81[i+1] then

begin

per:=ep81[i];

ep81[i]:=ep81[i+1];

ep81[i+1]:=per;

per:=ep82[i];

ep82[i]:=ep82[i+1];

ep82[i+1]:=per;

per:=ep83[i];

ep83[i]:=ep83[i+1];

ep83[i+1]:=per;

per:=masif8[i];

masif8[i]:=masif8[i+1];

masif8[i+1]:=per;

per:=pos8[i];

pos8[i]:=pos8[i+1];

pos8[i+1]:=per;

end;


masif8[1]:=masif8[1]*ep81[1]; masif8[2]:=masif8[1]+(masif8[2]*(ep81[2]-ep81[1])); masif8[3]:=masif8[2]+(masif8[3]*(ep81[3]-ep81[2])); masif8[4]:=masif8[3]+(masif8[4]*(ep81[4]-ep81[3])); masif8[5]:=masif8[4]+(masif8[5]*(ep81[5]-ep81[4]));


for i:=1 to 5 do chis8[i]:=masif8[i];


for i:=1 to 5 do mash[i]:=abs(masif8[i]);


for ii:=1 to 5 do

for i:=1 to 4 do

if mash[i]<>0 then

if mash[i]>mash[i+1] then

begin

per:=mash[i];

mash[i]:=mash[i+1];

mash[i+1]:=per; end;


for i:=1 to 5 do masif8[i]:=((70/mash[5])*masif8[i]);


end;


procedure epi9; var mash:array[1..6] of real; mas:array[1..3] of real; per,l10,l11,l12:real; i,ii:integer; begin


ep91[1]:=strtofloat(Form1.Edit1.Text); ep91[2]:=strtofloat(Form1.Edit1.Text)+strtofloat(Form1.Edit2.Text); ep91[3]:=strtofloat(Form1.Edit1.Text)+strtofloat(Form1.Edit2.Text)+strtofloat(Form1.Edit3.Text); ep91[4]:=strtofloat(Form1.Edit7.Text); ep91[5]:=strtofloat(Form1.Edit8.Text); ep91[6]:=strtofloat(Form1.Edit9.Text);


l10:=strtofloat(Form1.Edit10.Text); l11:=strtofloat(Form1.Edit11.Text); l12:=strtofloat(Form1.Edit12.Text);


u1:=strtofloat(Form1.Edit4.Text); u2:=strtofloat(Form1.Edit5.Text); u3:=strtofloat(Form1.Edit6.Text);


if ep91[4]>ep91[2] then u4:=strtofloat(Form1.Edit6.Text); if (ep91[4]>ep91[1]) and (ep91[4]<=ep91[2]) then u4:=strtofloat(Form1.Edit5.Text); if ep91[4]<=ep91[1] then u4:=strtofloat(Form1.Edit4.Text); if ep91[5]>ep91[2] then u5:=strtofloat(Form1.Edit6.Text); if (ep91[5]>ep91[1]) and (ep91[5]<=ep91[2]) then u5:=strtofloat(Form1.Edit5.Text); if ep91[5]<=ep91[1] then u5:=strtofloat(Form1.Edit4.Text); if ep91[6]>ep91[2] then u6:=strtofloat(Form1.Edit6.Text); if (ep91[6]>ep91[1]) and (ep91[6]<=ep91[2]) then u6:=strtofloat(Form1.Edit5.Text); if ep91[6]<=ep91[1] then u6:=strtofloat(Form1.Edit4.Text);


for i:=1 to 6 do ep92[i]:=59+(440/ep91[3])*ep91[i];


if ep91[1]>ep91[6] then mas[1]:=0; if (ep91[6]>=ep91[1]) and (ep91[1]>ep91[5]) then mas[1]:=(l12*s3)/u1; if (ep91[5]>=ep91[1]) and (ep91[1]>ep91[4]) then mas[1]:=((l11*s2)+(l12*s3))/u1; if ep91[1]<=ep91[4] then mas[1]:=((l10*s1)+(l11*s2)+(l12*s3))/u1; if ep91[2]>ep91[6] then mas[2]:=0; if (ep91[6]>=ep91[2]) and (ep91[2]>ep91[5]) then mas[2]:=(l12*s3)/u2; if (ep91[5]>=ep91[2]) and (ep91[2]>ep91[4]) then mas[2]:=((l11*s2)+(l12*s3))/u2; if ep91[2]<=ep91[4] then mas[2]:=((l10*s1)+(l11*s2)+(l12*s3))/u2; if ep91[3]<ep91[6] then mas[3]:=(l12*s3)/u3;; if ep91[3]>=ep91[6] then mas[3]:=(l12*s3)/u3;


mash[1]:=abs(((l10*s1)+(l11*s2)+(l12*s3))/u4); mash[2]:=abs(((l11*s2)+(l12*s3))/u5); mash[3]:=abs((l12*s3)/u6); mash[4]:=abs(mas[1]); mash[5]:=abs(mas[2]); mash[6]:=abs(mas[3]);


for ii:=1 to 6 do

for i:=1 to 5 do

if mash[i]<>0 then

if mash[i]>mash[i+1] then

begin

per:=mash[i];

mash[i]:=mash[i+1];

mash[i+1]:=per; end;


ep93[1]:=(70/mash[6])*mas[1]; ep93[2]:=(70/mash[6])*mas[2]; ep93[3]:=(70/mash[6])*mas[3]; ep93[4]:=(70/mash[6])*(((l10*s1)+(l11*s2)+(l12*s3))/u4); ep93[5]:=(70/mash[6])*(((l11*s2)+(l12*s3))/u5); ep93[6]:=(70/mash[6])*((l12*s3)/u6);


pos9[1]:=abs(mas[1]); pos9[2]:=abs(mas[2]); pos9[3]:=abs(mas[3]); pos9[4]:=abs(((l10*s1)+(l11*s2)+(l12*s3))/u4); pos9[5]:=abs(((l11*s2)+(l12*s3))/u5); pos9[6]:=abs((l12*s3)/u6);


masif9[1]:=(mas[1]); masif9[2]:=(mas[2]); masif9[3]:=(mas[3]); masif9[4]:=(((l10*s1)+(l11*s2)+(l12*s3))/u4); masif9[5]:=(((l11*s2)+(l12*s3))/u5); masif9[6]:=((l12*s3)/u6);


for ii:=1 to 6 do

for i:=1 to 5 do

if ep91[i]<>0 then

if ep91[i]>ep91[i+1] then

begin

per:=ep91[i];

ep91[i]:=ep91[i+1];

ep91[i+1]:=per;

per:=ep92[i];

ep92[i]:=ep92[i+1];

ep92[i+1]:=per;

per:=ep93[i];

ep93[i]:=ep93[i+1];

ep93[i+1]:=per;

per:=masif9[i];

masif9[i]:=masif9[i+1];

masif9[i+1]:=per;

per:=pos9[i];

pos9[i]:=pos9[i+1];

pos9[i+1]:=per;

end;


masif9[1]:=masif9[1]*ep91[1]; masif9[2]:=masif9[1]+(masif9[2]*(ep91[2]-ep91[1])); masif9[3]:=masif9[2]+(masif9[3]*(ep91[3]-ep91[2])); masif9[4]:=masif9[3]+(masif9[4]*(ep91[4]-ep91[3])); masif9[5]:=masif9[4]+(masif9[5]*(ep91[5]-ep91[4])); masif9[6]:=masif9[5]+(masif9[6]*(ep91[6]-ep91[5]));


for i:=1 to 6 do chis9[i]:=masif9[i];


for i:=1 to 6 do mash[i]:=abs(masif9[i]);


for ii:=1 to 6 do

for i:=1 to 5 do

if mash[i]<>0 then

if mash[i]>mash[i+1] then

begin

per:=mash[i];

mash[i]:=mash[i+1];

mash[i+1]:=per; end;


for i:=1 to 6 do masif9[i]:=((70/mash[6])*masif9[i]);


end;


procedure TForm1.Button1Click(Sender: TObject); var Pic: TBitmap; i,prover:integer; dlin,kol:real; begin


if Form1.Edit1.Text<>'' then begin if Form1.Edit4.Text<>'' then begin if Form1.Edit2.Text<>'' then begin if Form1.Edit5.Text<>'' then begin if Form1.Edit3.Text<>'' then begin if Form1.Edit6.Text<>'' then begin if Form1.Edit7.Text<>'' then begin if Form1.Edit10.Text<>'' then begin if Form1.Edit8.Text<>'' then begin if Form1.Edit11.Text<>'' then begin if Form1.Edit9.Text<>'' then begin if Form1.Edit12.Text<>'' then begin


if (strtofloat(Form1.Edit4.Text)<>strtofloat(Form1.Edit5.Text)) and (strtofloat(Form1.Edit5.Text)<>strtofloat(Form1.Edit6.Text)) then begin if (Form1.Edit1.Text<>'0') and (Form1.Edit2.Text<>'0') and (Form1.Edit3.Text<>'0') then begin if (Form1.Edit7.Text<>'0') and (Form1.Edit8.Text<>'0') and (Form1.Edit9.Text<>'0') then begin if (Form1.Edit10.Text<>'0') and (Form1.Edit11.Text<>'0') and (Form1.Edit12.Text<>'0') then begin if Form1.Edit10.Text<>'0' then begin


if a=1 then dlin:=strtofloat(Form1.Edit1.Text); if a=2 then dlin:=strtofloat(Form1.Edit1.Text)+strtofloat(Form1.Edit2.Text); if a=3 then dlin:=strtofloat(Form1.Edit1.Text)+strtofloat(Form1.Edit2.Text)+strtofloat(Form1.Edit3.Text);


if b=1 then kol:=strtofloat(Form1.Edit7.Text); if b=2 then kol:=strtofloat(Form1.Edit8.Text); if b=3 then kol:=strtofloat(Form1.Edit9.Text);


prover:=0; if b=1 then prover:=1; if b=2 then begin

if strtofloat(Form1.Edit7.Text)<=strtofloat(Form1.Edit8.Text) then prover:=1;

end; if b=3 then begin

if (strtofloat(Form1.Edit7.Text)<=strtofloat(Form1.Edit8.Text)) and (strtofloat(Form1.Edit8.Text)<=strtofloat(Form1.Edit9.Text)) then prover:=1;

end;


if prover=1 then begin if dlin>=kol then begin


if Form4.ComboBox1.Text='Неограниченно' then else okr:=strtoint(Form4.ComboBox1.Text);


if a=1 then begin

ed1;

image2.Canvas.Brush.Color:=clWhite;

image2.Canvas.Brush.Style:=bsSolid;

image2.Canvas.Rectangle(0,0,600,667);

Form1.Memo1.Clear;

image1.Canvas.Brush.Color:=clWhite;

image1.Canvas.Brush.Style:=bsSolid;

image1.Canvas.Rectangle(0,0,630,667);

Pic:=Tbitmap.Create;

Pic.LoadFromFile('Fon.bmp');

Form1.image1.Canvas.Draw(60,105,Pic);

image1.Canvas.Brush.Color:=clBackground;

image1.Canvas.Brush.Style:=bsFDiagonal;

Form1.Image1.Canvas.Pen.Width:=2;

image1.Canvas.MoveTo(59,190);

image1.Canvas.LineTo(round(d12+58),190);

image1.Canvas.MoveTo(59,580);

image1.Canvas.LineTo(round(d12+58),580);

image1.Canvas.MoveTo(59,380);

image1.Canvas.LineTo(round(d12+58),380);

image1.Canvas.Rectangle(35,5,60,105);

image1.Canvas.Brush.Color:=clWindow;

image1.Canvas.Brush.Style:=bsClear;

image1.Canvas.Rectangle(59,30,round(d12+59),80);

Form1.Image1.Canvas.Pen.Width:=1;

Form1.Image1.Canvas.Pen.Style:=psDashDot;

image1.Canvas.MoveTo(59,5);

image1.Canvas.LineTo(59,667);

image1.Canvas.MoveTo(round(d12+58),30);

image1.Canvas.LineTo(round(d12+58),667);

Form1.Image1.Canvas.Pen.Style:=psSolid;

end; if a=2 then begin

ed2;

image2.Canvas.Brush.Color:=clWhite;

image2.Canvas.Brush.Style:=bsSolid;

image2.Canvas.Rectangle(0,0,600,667);

Form1.Memo1.Clear;

image1.Canvas.Brush.Color:=clWhite;

image1.Canvas.Brush.Style:=bsSolid;

image1.Canvas.Rectangle(0,0,630,667);

Pic:=Tbitmap.Create;

Pic.LoadFromFile('Fon.bmp');

Form1.image1.Canvas.Draw(60,105,Pic);

image1.Canvas.Brush.Color:=clBackground;

image1.Canvas.Brush.Style:=bsFDiagonal;

Form1.Image1.Canvas.Pen.Width:=2;

image1.Canvas.MoveTo(60,190);

image1.Canvas.LineTo(round(d22+58),190);

image1.Canvas.MoveTo(60,580);

image1.Canvas.LineTo(round(d22+58),580);

image1.Canvas.MoveTo(60,380);

image1.Canvas.LineTo(round(d22+58),380);

image1.Canvas.Rectangle(35,5,60,105);

image1.Canvas.Brush.Color:=clWindow;

image1.Canvas.Brush.Style:=bsClear;

image1.Canvas.Rectangle(59,round(r11),round(d12+60),round(r12));

image1.Canvas.Rectangle(round(d12+59),round(r21),round(d22+59),round(r22));

Form1.Image1.Canvas.Pen.Width:=1;

Form1.Image1.Canvas.Pen.Style:=psDashDot;

image1.Canvas.MoveTo(59,5);

image1.Canvas.LineTo(59,667);

image1.Canvas.MoveTo(round(d12+58),55);

image1.Canvas.LineTo(round(d12+58),667);

image1.Canvas.MoveTo(round(d22+58),55);

image1.Canvas.LineTo(round(d22+58),667);

Form1.Image1.Canvas.Pen.Style:=psSolid;

end; if a=3 then begin

ed3;

image2.Canvas.Brush.Color:=clWhite;

image2.Canvas.Brush.Style:=bsSolid;

image2.Canvas.Rectangle(0,0,600,667);

Form1.Memo1.Clear;

image1.Canvas.Brush.Color:=clWhite;

image1.Canvas.Brush.Style:=bsSolid;

image1.Canvas.Rectangle(0,0,630,667);

Pic:=Tbitmap.Create;

Pic.LoadFromFile('Fon.bmp');

Form1.image1.Canvas.Draw(60,105,Pic);

image1.Canvas.Brush.Color:=clBackground;

image1.Canvas.Brush.Style:=bsFDiagonal;

Form1.Image1.Canvas.Pen.Width:=2;

image1.Canvas.MoveTo(59,190);

image1.Canvas.LineTo(round(d32+58),190);

image1.Canvas.MoveTo(59,380);

image1.Canvas.LineTo(round(d32+58),380);

image1.Canvas.MoveTo(59,580);

image1.Canvas.LineTo(round(d32+58),580);

image1.Canvas.Rectangle(35,5,60,105);

image1.Canvas.Brush.Color:=clWindow;

image1.Canvas.Brush.Style:=bsClear;

image1.Canvas.Rectangle(59,round(r11),round(d12+59),round(r12));

image1.Canvas.Rectangle(round(d12+58),round(r21),round(d22+59),round(r22));

image1.Canvas.Rectangle(round(d22+58),round(r31),round(d32+59),round(r32));

Form1.Image1.Canvas.Pen.Width:=1;

Form1.Image1.Canvas.Pen.Style:=psDashDot;

image1.Canvas.MoveTo(59,5);

image1.Canvas.LineTo(59,667);

image1.Canvas.MoveTo(round(d32+58),55);

image1.Canvas.LineTo(round(d32+58),667);

image1.Canvas.MoveTo(round(d12+58),55);

image1.Canvas.LineTo(round(d12+58),667);

image1.Canvas.MoveTo(round(d22+58),55);

image1.Canvas.LineTo(round(d22+58),667);

Form1.Image1.Canvas.Pen.Style:=psSolid;

end;


Form1.Image1.Canvas.Pen.Style:=psDashDot; image1.Canvas.MoveTo(20,54); image1.Canvas.LineTo(585,54); Form1.Image1.Canvas.Pen.Style:=psSolid;


if s1=1 then begin

Pic:=Tbitmap.Create;

Pic.LoadFromFile('str2.bmp');

Form1.image1.Canvas.Draw(4,50,Pic);

end

else

begin

Pic:=Tbitmap.Create;

Pic.LoadFromFile('str1.bmp');

Form1.image1.Canvas.Draw(4,50,Pic);

end;


if b=1 then begin

si1;

if s1=1 then begin

image1.Canvas.MoveTo(round(58+p1),20);

image1.Canvas.LineTo(round(118+p1),20);

image1.Canvas.MoveTo(round(118+p1),20);

image1.Canvas.LineTo(round(113+p1),16);

image1.Canvas.MoveTo(round(118+p1),20);

image1.Canvas.LineTo(round(113+p1),24);

image1.Canvas.MoveTo(round(58+p1),20);

Form1.Image1.Canvas.Pen.Style:=psDashDot;

image1.Canvas.LineTo(round(58+p1),760);

Form1.Image1.Canvas.Pen.Style:=psSolid;

image1.Canvas.Rectangle(round(57+p1),19,round(60+p1),22);

Pic:=Tbitmap.Create;

Pic.LoadFromFile('F1.bmp');

Form1.image1.Canvas.Draw(round(48+p1),17,Pic);

end

else begin

image1.Canvas.MoveTo(round(58+p1),20);

image1.Canvas.LineTo(round(p1-10),20);

image1.Canvas.MoveTo(round(p1-10),20);

image1.Canvas.LineTo(round(p1-5),16);

image1.Canvas.MoveTo(round(p1-10),20);

image1.Canvas.LineTo(round(p1-5),24);

image1.Canvas.MoveTo(round(58+p1),20);

Form1.Image1.Canvas.Pen.Style:=psDashDot;

image1.Canvas.LineTo(round(58+p1),760);

Form1.Image1.Canvas.Pen.Style:=psSolid;

image1.Canvas.Rectangle(round(57+p1),19,round(60+p1),22);

Pic:=Tbitmap.Create;

Pic.LoadFromFile('F1.bmp');

Form1.image1.Canvas.Draw(round(62+p1),17,Pic);

end;


end;


if b=2 then begin

si2;

if s1=1 then begin

image1.Canvas.MoveTo(round(58+p1),11);

image1.Canvas.LineTo(round(58+p1+z1),11);

image1.Canvas.MoveTo(round(58+p1+z1),11);

image1.Canvas.LineTo(round(53+p1+z1),7);

image1.Canvas.MoveTo(round(58+p1+z1),11);

image1.Canvas.LineTo(round(53+p1+z1),15);

image1.Canvas.MoveTo(round(58+p1),11);

Form1.Image1.Canvas.Pen.Style:=psDashDot;

image1.Canvas.LineTo(round(58+p1),760);

Form1.Image1.Canvas.Pen.Style:=psSolid;

image1.Canvas.Rectangle(round(57+p1),10,round(60+p1),13);

Pic:=Tbitmap.Create;

Pic.LoadFromFile('F1.bmp');

Form1.image1.Canvas.Draw(round(48+p1),8,Pic);

end

else begin

image1.Canvas.MoveTo(round(58+p1),11);

image1.Canvas.LineTo(round(p1-z1+58),11);

image1.Canvas.MoveTo(round(p1-z1+58),11);

image1.Canvas.LineTo(round(p1-z1+64),7);

image1.Canvas.MoveTo(round(p1-z1+58),11);

image1.Canvas.LineTo(round(p1-z1+64),15);

image1.Canvas.MoveTo(round(58+p1),11);

Form1.Image1.Canvas.Pen.Style:=psDashDot;

image1.Canvas.LineTo(round(58+p1),760);

Form1.Image1.Canvas.Pen.Style:=psSolid;

image1.Canvas.Rectangle(round(57+p1),10,round(60+p1),13);

Pic:=Tbitmap.Create;

Pic.LoadFromFile('F1.bmp');

Form1.image1.Canvas.Draw(round(62+p1),8,Pic);

end;

if s2=1 then begin

image1.Canvas.MoveTo(round(58+p2),22);

image1.Canvas.LineTo(round(58+p2+z2),22);

image1.Canvas.MoveTo(round(58+p2+z2),22);

image1.Canvas.LineTo(round(53+p2+z2),18);

image1.Canvas.MoveTo(round(58+p2+z2),22);

image1.Canvas.LineTo(round(53+p2+z2),26);

image1.Canvas.MoveTo(round(58+p2),22);

Form1.Image1.Canvas.Pen.Style:=psDashDot;

image1.Canvas.LineTo(round(58+p2),760);

Form1.Image1.Canvas.Pen.Style:=psSolid;

image1.Canvas.Rectangle(round(57+p2),21,round(60+p2),24);

Pic:=Tbitmap.Create;

Pic.LoadFromFile('F2.bmp');

Form1.image1.Canvas.Draw(round(47+p2),19,Pic);

end

else begin

image1.Canvas.MoveTo(round(58+p2),22);

image1.Canvas.LineTo(round(p2-z2+58),22);

image1.Canvas.MoveTo(round(p2-z2+58),22);

image1.Canvas.LineTo(round(p2-z2+64),18);

image1.Canvas.MoveTo(round(p2-z2+58),22);

image1.Canvas.LineTo(round(p2-z2+64),26);

image1.Canvas.MoveTo(round(58+p2),22);

Form1.Image1.Canvas.Pen.Style:=psDashDot;

image1.Canvas.LineTo(round(58+p2),760);

Form1.Image1.Canvas.Pen.Style:=psSolid;

image1.Canvas.Rectangle(round(57+p2),21,round(60+p2),24);

Pic:=Tbitmap.Create;

Pic.LoadFromFile('F2.bmp');

Form1.image1.Canvas.Draw(round(62+p2),19,Pic);

end;

end;


if b=3 then begin

si3;

if s1=1 then begin

image1.Canvas.MoveTo(round(58+p1),5);

image1.Canvas.LineTo(round(58+p1+z1),5);

image1.Canvas.MoveTo(round(58+p1+z1),5);

image1.Canvas.LineTo(round(53+p1+z1),1);

image1.Canvas.MoveTo(round(58+p1+z1),5);

image1.Canvas.LineTo(round(53+p1+z1),9);

image1.Canvas.MoveTo(round(58+p1),5);

Form1.Image1.Canvas.Pen.Style:=psDashDot;

image1.Canvas.LineTo(round(58+p1),760);

Form1.Image1.Canvas.Pen.Style:=psSolid;

image1.Canvas.Rectangle(round(57+p1),4,round(60+p1),7);

Pic:=Tbitmap.Create;

Pic.LoadFromFile('F1.bmp');

Form1.image1.Canvas.Draw(round(48+p1),2,Pic);

end

else begin

image1.Canvas.MoveTo(round(58+p1),5);

image1.Canvas.LineTo(round(p1-z1+58),5);

image1.Canvas.MoveTo(round(p1-z1+58),5);

image1.Canvas.LineTo(round(p1-z1+64),1);

image1.Canvas.MoveTo(round(p1-z1+58),5);

image1.Canvas.LineTo(round(p1-z1+64),9);

image1.Canvas.MoveTo(round(58+p1),5);

Form1.Image1.Canvas.Pen.Style:=psDashDot;

image1.Canvas.LineTo(round(58+p1),760);

Form1.Image1.Canvas.Pen.Style:=psSolid;

image1.Canvas.Rectangle(round(57+p1),4,round(60+p1),7);

Pic:=Tbitmap.Create;

Pic.LoadFromFile('F1.bmp');

Form1.image1.Canvas.Draw(round(62+p1),2,Pic);

end;

if s2=1 then begin

image1.Canvas.MoveTo(round(58+p2),14);

image1.Canvas.LineTo(round(58+p2+z2),14);

image1.Canvas.MoveTo(round(58+p2+z2),14);

image1.Canvas.LineTo(round(53+p2+z2),18);

image1.Canvas.MoveTo(round(58+p2+z2),14);

image1.Canvas.LineTo(round(53+p2+z2),10);

image1.Canvas.MoveTo(round(58+p2),14);

Form1.Image1.Canvas.Pen.Style:=psDashDot;

image1.Canvas.LineTo(round(58+p2),760);

Form1.Image1.Canvas.Pen.Style:=psSolid;

image1.Canvas.Rectangle(round(57+p2),13,round(60+p2),16);

Pic:=Tbitmap.Create;

Pic.LoadFromFile('F2.bmp');

Form1.image1.Canvas.Draw(round(47+p2),11,Pic);

end

else begin

image1.Canvas.MoveTo(round(58+p2),14);

image1.Canvas.LineTo(round(p2-z2+58),14);

image1.Canvas.MoveTo(round(p2-z2+58),14);

image1.Canvas.LineTo(round(p2-z2+64),18);

image1.Canvas.MoveTo(round(p2-z2+58),14);

image1.Canvas.LineTo(round(p2-z2+64),10);

image1.Canvas.MoveTo(round(58+p2),14);

Form1.Image1.Canvas.Pen.Style:=psDashDot;

image1.Canvas.LineTo(round(58+p2),760);

Form1.Image1.Canvas.Pen.Style:=psSolid;

image1.Canvas.Rectangle(round(57+p2),13,round(60+p2),16);

Pic:=Tbitmap.Create;

Pic.LoadFromFile('F2.bmp');

Form1.image1.Canvas.Draw(round(62+p2),11,Pic);

end;

if s3=1 then begin

image1.Canvas.MoveTo(round(58+p3),23);

image1.Canvas.LineTo(round(58+p3+z3),23);

image1.Canvas.MoveTo(round(58+p3+z3),23);

image1.Canvas.LineTo(round(53+p3+z3),19);

image1.Canvas.MoveTo(round(58+p3+z3),23);

image1.Canvas.LineTo(round(53+p3+z3),27);

image1.Canvas.MoveTo(round(58+p3),23);

Form1.Image1.Canvas.Pen.Style:=psDashDot;

image1.Canvas.LineTo(round(58+p3),760);

Form1.Image1.Canvas.Pen.Style:=psSolid;

image1.Canvas.Rectangle(round(57+p3),22,round(60+p3),25);

Pic:=Tbitmap.Create;

Pic.LoadFromFile('F3.bmp');

Form1.image1.Canvas.Draw(round(47+p3),20,Pic);

end

else begin

image1.Canvas.MoveTo(round(58+p3),23);

image1.Canvas.LineTo(round(p3-z3+58),23);

image1.Canvas.MoveTo(round(p3-z3+58),23);

image1.Canvas.LineTo(round(p3-z3+64),19);

image1.Canvas.MoveTo(round(p3-z3+58),23);

image1.Canvas.LineTo(round(p3-z3+64),27);

image1.Canvas.MoveTo(round(58+p3),23);

Form1.Image1.Canvas.Pen.Style:=psDashDot;

image1.Canvas.LineTo(round(58+p3),760);

Form1.Image1.Canvas.Pen.Style:=psSolid;

image1.Canvas.Rectangle(round(57+p3),22,round(60+p3),25);

Pic:=Tbitmap.Create;

Pic.LoadFromFile('F3.bmp');

Form1.image1.Canvas.Draw(round(62+p3),20,Pic);

end;

end;


if b=1 then begin

si1;

Form1.Image1.Canvas.Pen.Width:=2;

Form1.Image1.Canvas.Pen.Color:=clRed;

Form1.Image1.Canvas.MoveTo(60,190);

Form1.Image1.Canvas.LineTo(60,190-round(sil7));

Form1.Image1.Canvas.LineTo(round(59+p1),190-round(sil7));

Form1.Image1.Canvas.LineTo(round(58+p1),190);

Form1.Image1.Canvas.Pen.Width:=1;

Form1.Image1.Canvas.Pen.Color:=clBlack;

Pic:=Tbitmap.Create;

Pic.LoadFromFile('N1.bmp');


Form1.Image1.Canvas.MoveTo(68,102);

Form1.Image1.Canvas.LineTo(60,190-round(sil7));


Form1.image1.Canvas.Draw(65,90,Pic);

if Form4.ComboBox1.Text='Неограниченно' then

Form1.Memo1.Lines.Add('= '+Floattostr(abs(f1))+' кН')

else Form1.Memo1.Lines.Add('= '+FloattostrF(abs(f1),ffFixed,15,okr)+' кН');


Pic:=Tbitmap.Create;

Pic.LoadFromFile('N1.bmp');

Form1.image2.Canvas.Draw(4,2,Pic);

end; if b=2 then begin

obr2;

Form1.Image1.Canvas.Pen.Width:=2;

Form1.Image1.Canvas.Pen.Color:=clRed;

Form1.Image1.Canvas.MoveTo(60,190);

Form1.Image1.Canvas.LineTo(60,190-round(sil8[1]));

Form1.Image1.Canvas.LineTo(round(i3+29),190-round(sil8[1]));

Form1.Image1.Canvas.LineTo(round(i3+30),190-round(sil8[2]));

Form1.Image1.Canvas.LineTo(round(i2+29),190-round(sil8[2]));

Form1.Image1.Canvas.LineTo(round(i2+30),190);

Form1.Image1.Canvas.Pen.Width:=1;

Form1.Image1.Canvas.Pen.Color:=clBlack;

Pic:=Tbitmap.Create;

Pic.LoadFromFile('N2.bmp');

Form1.image1.Canvas.Draw(65,90,Pic);

Pic:=Tbitmap.Create;

Pic.LoadFromFile('N1.bmp');

Form1.image1.Canvas.Draw(round(i3+35),90,Pic);


Form1.Image1.Canvas.MoveTo(68,102);

Form1.Image1.Canvas.LineTo(60,190-round(sil8[1]));

Form1.Image1.Canvas.MoveTo(round(i3+38),102);

Form1.Image1.Canvas.LineTo(round(i3+30),190-round(sil8[2]));


if Form4.ComboBox1.Text='Неограниченно' then begin

Form1.Memo1.Lines.Add('= '+Floattostr(abs(f1))+' кН');

Form1.Memo1.Lines.Add('= '+Floattostr(abs(f2))+' кН');

end

else begin

Form1.Memo1.Lines.Add('= '+FloattostrF(abs(f1),ffFixed,15,okr)+' кН');

Form1.Memo1.Lines.Add('= '+FloattostrF(abs(f2),ffFixed,15,okr)+' кН');

end;


Pic.LoadFromFile('N2.bmp');

Form1.image2.Canvas.Draw(4,2,Pic);

Pic:=Tbitmap.Create;

Pic.LoadFromFile('N1.bmp');

Form1.image2.Canvas.Draw(4,15,Pic);

end; if b=3 then begin

obr3;

Form1.Image1.Canvas.Pen.Width:=2;

Form1.Image1.Canvas.Pen.Color:=clRed;

Form1.Image1.Canvas.MoveTo(60,190);

Form1.Image1.Canvas.LineTo(60,190-round(sil9[1]));

Form1.Image1.Canvas.LineTo(round(i4+30),190-round(sil9[1]));

Form1.Image1.Canvas.LineTo(round(i4+29),190-round(sil9[2]));

Form1.Image1.Canvas.LineTo(round(i3+30),190-round(sil9[2]));

Form1.Image1.Canvas.LineTo(round(i3+29),190-round(sil9[3]));

Form1.Image1.Canvas.LineTo(round(i2+30),190-round(sil9[3]));

Form1.Image1.Canvas.LineTo(round(i2+29),190);

Form1.Image1.Canvas.Pen.Width:=1;

Form1.Image1.Canvas.Pen.Color:=clBlack;

Pic:=Tbitmap.Create;

Pic.LoadFromFile('N3.bmp');

Form1.image1.Canvas.Draw(65,90,Pic);

Pic:=Tbitmap.Create;

Pic.LoadFromFile('N2.bmp');

Form1.image1.Canvas.Draw(round(i4+35),90,Pic);

Pic:=Tbitmap.Create;

Pic.LoadFromFile('N1.bmp');

Form1.image1.Canvas.Draw(round(i3+35),90,Pic);


Form1.Image1.Canvas.MoveTo(68,102);

Form1.Image1.Canvas.LineTo(60,190-round(sil9[1]));

Form1.Image1.Canvas.MoveTo(round(i4+38),102);

Form1.Image1.Canvas.LineTo(round(i4+29),190-round(sil9[2]));

Form1.Image1.Canvas.MoveTo(round(i3+38),102);

Form1.Image1.Canvas.LineTo(round(i3+29),190-round(sil9[3]));


if Form4.ComboBox1.Text='Неограниченно' then begin

Form1.Memo1.Lines.Add('= '+Floattostr(abs(f1))+' кН');

Form1.Memo1.Lines.Add('= '+Floattostr(abs(f2))+' кН');

Form1.Memo1.Lines.Add('= '+Floattostr(abs(f3))+' кН');

end

else begin

Form1.Memo1.Lines.Add('= '+FloattostrF(abs(f1),ffFixed,15,okr)+' кН');

Form1.Memo1.Lines.Add('= '+FloattostrF(abs(f2),ffFixed,15,okr)+' кН');

Form1.Memo1.Lines.Add('= '+FloattostrF(abs(f3),ffFixed,15,okr)+' кН');

end;


Pic:=Tbitmap.Create;

Pic.LoadFromFile('N3.bmp');

Form1.image2.Canvas.Draw(4,2,Pic);

Pic:=Tbitmap.Create;

Pic.LoadFromFile('N2.bmp');

Form1.image2.Canvas.Draw(4,15,Pic);

Pic:=Tbitmap.Create;

Pic.LoadFromFile('N1.bmp');

Form1.image2.Canvas.Draw(4,29,Pic);


end;


if (a=1) and (b=1) then begin


epi1; Form1.Image1.Canvas.Pen.Width:=2; Form1.Image1.Canvas.Pen.Color:=clRed; Form1.Image1.Canvas.MoveTo(60,380); Form1.Image1.Canvas.LineTo(60,380-round(ep13[1])); Form1.Image1.Canvas.LineTo(round(ep12[1]),380-round(ep13[1])); Form1.Image1.Canvas.LineTo(round(ep12[1]),380); Form1.Image1.Canvas.Pen.Width:=1; Form1.Image1.Canvas.Pen.Color:=clBlack; Form1.Memo1.Lines.Add(''); if Form4.ComboBox1.Text='Неограниченно' then Form1.Memo1.Lines.Add('= '+Floattostr(abs(pos1[1]/m))+' Па') else Form1.Memo1.Lines.Add('= '+FloattostrF(abs(pos1[1]/m),ffFixed,15,okr)+' Па'); Form1.Memo1.Lines.Add('');


Form1.Image1.Canvas.MoveTo(round(ep12[1])-15,495); Form1.Image1.Canvas.LineTo(round(ep12[1]),580-round(masif1[1]));


Form1.Image1.Canvas.MoveTo(70,295); Form1.Image1.Canvas.LineTo(60,380-round(ep13[1]));


Pic:=Tbitmap.Create;

Pic.LoadFromFile('o1.bmp');

Form1.image1.Canvas.Draw(65,285,Pic);


Pic:=Tbitmap.Create;

Pic.LoadFromFile('l1.bmp');

Form1.image1.Canvas.Draw(round(ep12[1])-20,485,Pic);


Pic:=Tbitmap.Create;

Pic.LoadFromFile('o1.bmp');

Form1.image2.Canvas.Draw(2,31,Pic);


Pic:=Tbitmap.Create;

Pic.LoadFromFile('l1.bmp');

Form1.image2.Canvas.Draw(2,57,Pic);


end;


if (a=1) and (b=2) then begin


epi2; Form1.Image1.Canvas.Pen.Width:=2; Form1.Image1.Canvas.Pen.Color:=clRed; Form1.Image1.Canvas.MoveTo(60,380); Form1.Image1.Canvas.LineTo(60,380-round(ep23[1])); Form1.Image1.Canvas.LineTo(round(ep22[1]),380-round(ep23[1])); Form1.Image1.Canvas.LineTo(round(ep22[1]),380-round(ep23[2])); Form1.Image1.Canvas.LineTo(round(ep22[2]),380-round(ep23[2])); Form1.Image1.Canvas.LineTo(round(ep22[2]),380); Form1.Image1.Canvas.Pen.Width:=1; Form1.Image1.Canvas.Pen.Color:=clBlack; Form1.Memo1.Lines.Add(''); if Form4.ComboBox1.Text='Неограниченно' then begin Form1.Memo1.Lines.Add('= '+Floattostr(abs(pos2[1]/m))+' Па'); Form1.Memo1.Lines.Add('= '+Floattostr(abs(pos2[2]/m))+' Па'); end else begin Form1.Memo1.Lines.Add('= '+FloattostrF(abs(pos2[1]/m),ffFixed,15,okr)+' Па'); Form1.Memo1.Lines.Add('= '+FloattostrF(abs(pos2[2]/m),ffFixed,15,okr)+' Па'); end; Form1.Memo1.Lines.Add('');


Form1.Image1.Canvas.MoveTo(round(ep22[1])-15,495); Form1.Image1.Canvas.LineTo(round(ep22[1]),580-round(masif2[1])); Form1.Image1.Canvas.MoveTo(round(ep22[2])-15,495); Form1.Image1.Canvas.LineTo(round(ep22[2]),580-round(masif2[2]));


Form1.Image1.Canvas.MoveTo(70,295); Form1.Image1.Canvas.LineTo(60,380-round(ep23[1])); Form1.Image1.Canvas.MoveTo(20+round(ep22[1]),295); Form1.Image1.Canvas.LineTo(round(ep22[1]),380-round(ep23[2]));


Pic:=Tbitmap.Create;

Pic.LoadFromFile('o2.bmp');

Form1.image1.Canvas.Draw(65,285,Pic);

Pic:=Tbitmap.Create;

Pic.LoadFromFile('o1.bmp');

Form1.image1.Canvas.Draw(15+round(ep22[1]),285,Pic);


Pic:=Tbitmap.Create;

Pic.LoadFromFile('l1.bmp');

Form1.image1.Canvas.Draw(round(ep22[1])-20,485,Pic);

Pic:=Tbitmap.Create;

Pic.LoadFromFile('l2.bmp');

Form1.image1.Canvas.Draw(round(ep22[2])-20,485,Pic);


Pic:=Tbitmap.Create;

Pic.LoadFromFile('o2.bmp');

Form1.image2.Canvas.Draw(2,44,Pic);

Pic:=Tbitmap.Create;

Pic.LoadFromFile('o1.bmp');

Form1.image2.Canvas.Draw(2,57,Pic);


Pic:=Tbitmap.Create;

Pic.LoadFromFile('l1.bmp');

Form1.image2.Canvas.Draw(2,83,Pic);

Pic:=Tbitmap.Create;

Pic.LoadFromFile('l2.bmp');

Form1.image2.Canvas.Draw(2,96,Pic); end;


if (a=1) and (b=3) then begin


epi3; Form1.Image1.Canvas.Pen.Width:=2; Form1.Image1.Canvas.Pen.Color:=clRed; Form1.Image1.Canvas.MoveTo(60,380); Form1.Image1.Canvas.LineTo(60,380-round(ep33[1])); Form1.Image1.Canvas.LineTo(round(ep32[1]),380-round(ep33[1])); Form1.Image1.Canvas.LineTo(round(ep32[1]),380-round(ep33[2])); Form1.Image1.Canvas.LineTo(round(ep32[2]),380-round(ep33[2])); Form1.Image1.Canvas.LineTo(round(ep32[2]),380-round(ep33[3])); Form1.Image1.Canvas.LineTo(round(ep32[3]),380-round(ep33[3])); Form1.Image1.Canvas.LineTo(round(ep32[3]),380); Form1.Image1.Canvas.Pen.Width:=1; Form1.Image1.Canvas.Pen.Color:=clBlack; Form1.Memo1.Lines.Add(''); if Form4.ComboBox1.Text='Неограниченно' then begin Form1.Memo1.Lines.Add('= '+Floattostr(abs(pos3[1]/m))+' Па'); Form1.Memo1.Lines.Add('= '+Floattostr(abs(pos3[2]/m))+' Па'); Form1.Memo1.Lines.Add('= '+Floattostr(abs(pos3[3]/m))+' Па'); end else begin Form1.Memo1.Lines.Add('= '+FloattostrF(abs(pos3[1]/m),ffFixed,15,okr)+' Па'); Form1.Memo1.Lines.Add('= '+FloattostrF(abs(pos3[2]/m),ffFixed,15,okr)+' Па'); Form1.Memo1.Lines.Add('= '+FloattostrF(abs(pos3[3]/m),ffFixed,15,okr)+' Па'); end; Form1.Memo1.Lines.Add('');


Form1.Image1.Canvas.MoveTo(round(ep32[1])-15,495); Form1.Image1.Canvas.LineTo(round(ep32[1]),580-round(masif3[1])); Form1.Image1.Canvas.MoveTo(round(ep32[2])-15,495); Form1.Image1.Canvas.LineTo(round(ep32[2]),580-round(masif3[2])); Form1.Image1.Canvas.MoveTo(round(ep32[3])-15,495); Form1.Image1.Canvas.LineTo(round(ep32[3]),580-round(masif3[3]));


Form1.Image1.Canvas.MoveTo(70,295); Form1.Image1.Canvas.LineTo(60,380-round(ep33[1])); Form1.Image1.Canvas.MoveTo(20+round(ep32[1]),295); Form1.Image1.Canvas.LineTo(round(ep32[1]),380-round(ep33[2])); Form1.Image1.Canvas.MoveTo(20+round(ep32[2]),295); Form1.Image1.Canvas.LineTo(round(ep32[2]),380-round(ep33[3]));


Pic:=Tbitmap.Create;

Pic.LoadFromFile('o3.bmp');

Form1.image1.Canvas.Draw(65,285,Pic);

Pic:=Tbitmap.Create;

Pic.LoadFromFile('o2.bmp');

Form1.image1.Canvas.Draw(15+round(ep32[1]),285,Pic);

Pic:=Tbitmap.Create;

Pic.LoadFromFile('o1.bmp');

Form1.image1.Canvas.Draw(15+round(ep32[2]),285,Pic);


Pic:=Tbitmap.Create;

Pic.LoadFromFile('l1.bmp');

Form1.image1.Canvas.Draw(round(ep32[1])-20,485,Pic);

Pic:=Tbitmap.Create;

Pic.LoadFromFile('l2.bmp');

Form1.image1.Canvas.Draw(round(ep32[2])-20,485,Pic);

Pic:=Tbitmap.Create;

Pic.LoadFromFile('l3.bmp');

Form1.image1.Canvas.Draw(round(ep32[3])-20,485,Pic);


Pic:=Tbitmap.Create;

Pic.LoadFromFile('o3.bmp');

Form1.image2.Canvas.Draw(2,57,Pic);

Pic:=Tbitmap.Create;

Pic.LoadFromFile('o2.bmp');

Form1.image2.Canvas.Draw(2,70,Pic);

Pic:=Tbitmap.Create;

Pic.LoadFromFile('o1.bmp');

Form1.image2.Canvas.Draw(2,83,Pic);


Pic:=Tbitmap.Create;

Pic.LoadFromFile('l1.bmp');

Form1.image2.Canvas.Draw(2,109,Pic);

Pic:=Tbitmap.Create;

Pic.LoadFromFile('l2.bmp');

Form1.image2.Canvas.Draw(2,122,Pic);

Pic:=Tbitmap.Create;

Pic.LoadFromFile('l3.bmp');

Form1.image2.Canvas.Draw(2,135,Pic);


end;


if (a=2) and (b=1) then begin


epi4; Form1.Image1.Canvas.Pen.Width:=2; Form1.Image1.Canvas.Pen.Color:=clRed; Form1.Image1.Canvas.MoveTo(60,380); Form1.Image1.Canvas.LineTo(60,380-round(ep43[1])); Form1.Image1.Canvas.LineTo(round(ep42[1]),380-round(ep43[1])); Form1.Image1.Canvas.LineTo(round(ep42[1]),380-round(ep43[2])); Form1.Image1.Canvas.LineTo(round(ep42[2]),380-round(ep43[2])); Form1.Image1.Canvas.LineTo(round(ep42[2]),380-round(ep43[3])); Form1.Image1.Canvas.LineTo(round(ep42[3]),380-round(ep43[3])); Form1.Image1.Canvas.LineTo(round(ep42[3]),380); Form1.Image1.Canvas.Pen.Width:=1; Form1.Image1.Canvas.Pen.Color:=clBlack; Form1.Memo1.Lines.Add(''); if Form4.ComboBox1.Text='Неограниченно' then begin Form1.Memo1.Lines.Add('= '+Floattostr(abs(pos4[1]/m))+' Па'); Form1.Memo1.Lines.Add('= '+Floattostr(abs(pos4[2]/m))+' Па'); end else begin Form1.Memo1.Lines.Add('= '+FloattostrF(abs(pos4[1]/m),ffFixed,15,okr)+' Па'); Form1.Memo1.Lines.Add('= '+FloattostrF(abs(pos4[2]/m),ffFixed,15,okr)+' Па'); end; Form1.Memo1.Lines.Add('');


Form1.Image1.Canvas.MoveTo(round(ep42[1])-15,495); Form1.Image1.Canvas.LineTo(round(ep42[1]),580-round(masif4[1])); Form1.Image1.Canvas.MoveTo(round(ep42[2])-15,495); Form1.Image1.Canvas.LineTo(round(ep42[2]),580-round(masif4[2]));


Form1.Image1.Canvas.MoveTo(70,295); Form1.Image1.Canvas.LineTo(60,380-round(ep43[1])); Form1.Image1.Canvas.MoveTo(20+round(ep42[1]),295); Form1.Image1.Canvas.LineTo(round(ep42[1]),380-round(ep43[2]));


Pic:=Tbitmap.Create;

Pic.LoadFromFile('o3.bmp');

Form1.image1.Canvas.Draw(65,285,Pic);

Pic:=Tbitmap.Create;

Pic.LoadFromFile('o2.bmp');

Form1.image1.Canvas.Draw(15+round(ep42[1]),285,Pic);


Pic:=Tbitmap.Create;

Pic.LoadFromFile('l1.bmp');

Form1.image1.Canvas.Draw(round(ep42[1])-20,485,Pic);

Pic:=Tbitmap.Create;

Pic.LoadFromFile('l2.bmp');

Form1.image1.Canvas.Draw(round(ep42[2])-20,485,Pic);


Pic:=Tbitmap.Create;

Pic.LoadFromFile('o2.bmp');

Form1.image2.Canvas.Draw(2,31,Pic);

Pic:=Tbitmap.Create;

Pic.LoadFromFile('o1.bmp');

Form1.image2.Canvas.Draw(2,44,Pic);


Pic:=Tbitmap.Create;

Pic.LoadFromFile('l1.bmp');

Form1.image2.Canvas.Draw(2,70,Pic);

Pic:=Tbitmap.Create;

Pic.LoadFromFile('l2.bmp');

Form1.image2.Canvas.Draw(2,83,Pic);


end; if (a=2) and (b=2) then begin


epi5; Form1.Image1.Canvas.Pen.Width:=2; Form1.Image1.Canvas.Pen.Color:=clRed; Form1.Image1.Canvas.MoveTo(60,380); Form1.Image1.Canvas.LineTo(60,380-round(ep53[1])); Form1.Image1.Canvas.LineTo(round(ep52[1]),380-round(ep53[1])); Form1.Image1.Canvas.LineTo(round(ep52[1]),380-round(ep53[2])); Form1.Image1.Canvas.LineTo(round(ep52[2]),380-round(ep53[2])); Form1.Image1.Canvas.LineTo(round(ep52[2]),380-round(ep53[3])); Form1.Image1.Canvas.LineTo(round(ep52[3]),380-round(ep53[3])); Form1.Image1.Canvas.LineTo(round(ep52[3]),380); Form1.Image1.Canvas.Pen.Width:=1; Form1.Image1.Canvas.Pen.Color:=clBlack; Form1.Memo1.Lines.Add(''); if Form4.ComboBox1.Text='Неограниченно' then begin Form1.Memo1.Lines.Add('= '+Floattostr(abs(pos5[1]/m))+' Па'); Form1.Memo1.Lines.Add('= '+Floattostr(abs(pos5[2]/m))+' Па'); Form1.Memo1.Lines.Add('= '+Floattostr(abs(pos5[3]/m))+' Па'); end else begin Form1.Memo1.Lines.Add('= '+FloattostrF(abs(pos5[1]/m),ffFixed,15,okr)+' Па'); Form1.Memo1.Lines.Add('= '+FloattostrF(abs(pos5[2]/m),ffFixed,15,okr)+' Па'); Form1.Memo1.Lines.Add('= '+FloattostrF(abs(pos5[3]/m),ffFixed,15,okr)+' Па'); end; Form1.Memo1.Lines.Add('');


Form1.Image1.Canvas.MoveTo(round(ep52[1])-15,495); Form1.Image1.Canvas.LineTo(round(ep52[1]),580-round(masif5[1])); Form1.Image1.Canvas.MoveTo(round(ep52[2])-15,495); Form1.Image1.Canvas.LineTo(round(ep52[2]),580-round(masif5[2])); Form1.Image1.Canvas.MoveTo(round(ep52[3])-15,495); Form1.Image1.Canvas.LineTo(round(ep52[3]),580-round(masif5[3]));


Form1.Image1.Canvas.MoveTo(70,295); Form1.Image1.Canvas.LineTo(60,380-round(ep53[1])); Form1.Image1.Canvas.MoveTo(20+round(ep52[1]),295); Form1.Image1.Canvas.LineTo(round(ep52[1]),380-round(ep53[2])); Form1.Image1.Canvas.MoveTo(20+round(ep52[2]),295); Form1.Image1.Canvas.LineTo(round(ep52[2]),380-round(ep53[3]));


Pic:=Tbitmap.Create;

Pic.LoadFromFile('o3.bmp');

Form1.image1.Canvas.Draw(65,285,Pic);

Pic:=Tbitmap.Create;

Pic.LoadFromFile('o2.bmp');

Form1.image1.Canvas.Draw(15+round(ep52[1]),285,Pic);

Pic:=Tbitmap.Create;

Pic.LoadFromFile('o1.bmp');

Form1.image1.Canvas.Draw(15+round(ep52[2]),285,Pic);


Pic:=Tbitmap.Create;

Pic.LoadFromFile('l1.bmp');

Form1.image1.Canvas.Draw(round(ep52[1])-20,485,Pic);

Pic:=Tbitmap.Create;

Pic.LoadFromFile('l2.bmp');

Form1.image1.Canvas.Draw(round(ep52[2])-20,485,Pic);

Pic:=Tbitmap.Create;

Pic.LoadFromFile('l3.bmp');

Form1.image1.Canvas.Draw(round(ep52[3])-20,485,Pic);


Pic:=Tbitmap.Create;

Pic.LoadFromFile('o3.bmp');

Form1.image2.Canvas.Draw(2,44,Pic);

Pic:=Tbitmap.Create;

Pic.LoadFromFile('o2.bmp');

Form1.image2.Canvas.Draw(2,57,Pic);

Pic:=Tbitmap.Create;

Pic.LoadFromFile('o1.bmp');

Form1.image2.Canvas.Draw(2,70,Pic);


Pic:=Tbitmap.Create;

Pic.LoadFromFile('l1.bmp');

Form1.image2.Canvas.Draw(2,96,Pic);

Pic:=Tbitmap.Create;

Pic.LoadFromFile('l2.bmp');

Form1.image2.Canvas.Draw(2,109,Pic);

Pic:=Tbitmap.Create;

Pic.LoadFromFile('l3.bmp');

Form1.image2.Canvas.Draw(2,122,Pic);


end; if (a=2) and (b=3) then begin epi6; Form1.Image1.Canvas.Pen.Width:=2; Form1.Image1.Canvas.Pen.Color:=clRed; Form1.Image1.Canvas.MoveTo(60,380); Form1.Image1.Canvas.LineTo(60,380-round(ep63[1])); Form1.Image1.Canvas.LineTo(round(ep62[1]),380-round(ep63[1])); Form1.Image1.Canvas.LineTo(round(ep62[1]),380-round(ep63[2])); Form1.Image1.Canvas.LineTo(round(ep62[2]),380-round(ep63[2])); Form1.Image1.Canvas.LineTo(round(ep62[2]),380-round(ep63[3])); Form1.Image1.Canvas.LineTo(round(ep62[3]),380-round(ep63[3])); Form1.Image1.Canvas.LineTo(round(ep62[3]),380-round(ep63[4])); Form1.Image1.Canvas.LineTo(round(ep62[4]),380-round(ep63[4])); Form1.Image1.Canvas.LineTo(round(ep62[4]),380); Form1.Image1.Canvas.Pen.Width:=1; Form1.Image1.Canvas.Pen.Color:=clBlack; Form1.Memo1.Lines.Add(''); if Form4.ComboBox1.Text='Неограниченно' then begin Form1.Memo1.Lines.Add('= '+Floattostr(abs(pos6[1]/m))+' Па'); Form1.Memo1.Lines.Add('= '+Floattostr(abs(pos6[2]/m))+' Па'); Form1.Memo1.Lines.Add('= '+Floattostr(abs(pos6[3]/m))+' Па'); Form1.Memo1.Lines.Add('= '+Floattostr(abs(pos6[4]/m))+' Па'); end else begin Form1.Memo1.Lines.Add('= '+FloattostrF(abs(pos6[1]/m),ffFixed,15,okr)+' Па'); Form1.Memo1.Lines.Add('= '+FloattostrF(abs(pos6[2]/m),ffFixed,15,okr)+' Па'); Form1.Memo1.Lines.Add('= '+FloattostrF(abs(pos6[3]/m),ffFixed,15,okr)+' Па'); Form1.Memo1.Lines.Add('= '+FloattostrF(abs(pos6[4]/m),ffFixed,15,okr)+' Па'); end; Form1.Memo1.Lines.Add('');


Form1.Image1.Canvas.MoveTo(round(ep62[1])-15,495); Form1.Image1.Canvas.LineTo(round(ep62[1]),580-round(masif6[1])); Form1.Image1.Canvas.MoveTo(round(ep62[2])-15,495); Form1.Image1.Canvas.LineTo(round(ep62[2]),580-round(masif6[2])); Form1.Image1.Canvas.MoveTo(round(ep62[3])-15,495); Form1.Image1.Canvas.LineTo(round(ep62[3]),580-round(masif6[3])); Form1.Image1.Canvas.MoveTo(round(ep62[4])-15,495); Form1.Image1.Canvas.LineTo(round(ep62[4]),580-round(masif6[4]));


Form1.Image1.Canvas.MoveTo(70,295); Form1.Image1.Canvas.LineTo(60,380-round(ep63[1])); Form1.Image1.Canvas.MoveTo(20+round(ep62[1]),295); Form1.Image1.Canvas.LineTo(round(ep62[1]),380-round(ep63[2])); Form1.Image1.Canvas.MoveTo(20+round(ep62[2]),295); Form1.Image1.Canvas.LineTo(round(ep62[2]),380-round(ep63[3])); Form1.Image1.Canvas.MoveTo(20+round(ep62[3]),295); Form1.Image1.Canvas.LineTo(round(ep62[3]),380-round(ep63[4]));


Pic:=Tbitmap.Create;

Pic.LoadFromFile('o4.bmp');

Form1.image1.Canvas.Draw(65,285,Pic);

Pic:=Tbitmap.Create;

Pic.LoadFromFile('o3.bmp');

Form1.image1.Canvas.Draw(15+round(ep62[1]),285,Pic);

Pic:=Tbitmap.Create;

Pic.LoadFromFile('o2.bmp');

Form1.image1.Canvas.Draw(15+round(ep62[2]),285,Pic);

Pic:=Tbitmap.Create;

Pic.LoadFromFile('o1.bmp');

Form1.image1.Canvas.Draw(15+round(ep62[3]),285,Pic);


Pic:=Tbitmap.Create;

Pic.LoadFromFile('l1.bmp');

Form1.image1.Canvas.Draw(round(ep62[1])-20,485,Pic);

Pic:=Tbitmap.Create;

Pic.LoadFromFile('l2.bmp');

Form1.image1.Canvas.Draw(round(ep62[2])-20,485,Pic);

Pic:=Tbitmap.Create;

Pic.LoadFromFile('l3.bmp');

Form1.image1.Canvas.Draw(round(ep62[3])-20,485,Pic);

Pic:=Tbitmap.Create;

Pic.LoadFromFile('l4.bmp');

Form1.image1.Canvas.Draw(round(ep62[4])-20,485,Pic);


Pic:=Tbitmap.Create;

Pic.LoadFromFile('o4.bmp');

Form1.image2.Canvas.Draw(2,57,Pic);

Pic:=Tbitmap.Create;

Pic.LoadFromFile('o3.bmp');

Form1.image2.Canvas.Draw(2,70,Pic);

Pic:=Tbitmap.Create;

Pic.LoadFromFile('o2.bmp');

Form1.image2.Canvas.Draw(2,83,Pic);

Pic:=Tbitmap.Create;

Pic.LoadFromFile('o1.bmp');

Form1.image2.Canvas.Draw(2,96,Pic);


Pic:=Tbitmap.Create;

Pic.LoadFromFile('l1.bmp');

Form1.image2.Canvas.Draw(2,122,Pic);

Pic:=Tbitmap.Create;

Pic.LoadFromFile('l2.bmp');

Form1.image2.Canvas.Draw(2,135,Pic);

Pic:=Tbitmap.Create;

Pic.LoadFromFile('l3.bmp');

Form1.image2.Canvas.Draw(2,148,Pic);

Pic:=Tbitmap.Create;

Pic.LoadFromFile('l4.bmp');

Form1.image2.Canvas.Draw(2,161,Pic);


end; if (a=3) and (b=1) then begin


epi7; Form1.Image1.Canvas.Pen.Width:=2; Form1.Image1.Canvas.Pen.Color:=clRed; Form1.Image1.Canvas.MoveTo(60,380); Form1.Image1.Canvas.LineTo(60,380-round(ep73[1])); Form1.Image1.Canvas.LineTo(round(ep72[1]),380-round(ep73[1])); Form1.Image1.Canvas.LineTo(round(ep72[1]),380-round(ep73[2])); Form1.Image1.Canvas.LineTo(round(ep72[2]),380-round(ep73[2])); Form1.Image1.Canvas.LineTo(round(ep72[2]),380-round(ep73[3])); Form1.Image1.Canvas.LineTo(round(ep72[3]),380-round(ep73[3])); Form1.Image1.Canvas.LineTo(round(ep72[3]),380-round(ep73[4])); Form1.Image1.Canvas.LineTo(round(ep72[4]),380-round(ep73[4])); Form1.Image1.Canvas.LineTo(round(ep72[4]),380); Form1.Image1.Canvas.Pen.Width:=1; Form1.Image1.Canvas.Pen.Color:=clBlack; Form1.Memo1.Lines.Add(''); if Form4.ComboBox1.Text='Неограниченно' then begin Form1.Memo1.Lines.Add('= '+Floattostr(abs(pos7[1]/m))+' Па'); Form1.Memo1.Lines.Add('= '+Floattostr(abs(pos7[2]/m))+' Па'); Form1.Memo1.Lines.Add('= '+Floattostr(abs(pos7[3]/m))+' Па'); end else begin Form1.Memo1.Lines.Add('= '+FloattostrF(abs(pos7[1]/m),ffFixed,15,okr)+' Па'); Form1.Memo1.Lines.Add('= '+FloattostrF(abs(pos7[2]/m),ffFixed,15,okr)+' Па'); Form1.Memo1.Lines.Add('= '+FloattostrF(abs(pos7[3]/m),ffFixed,15,okr)+' Па'); end; Form1.Memo1.Lines.Add('');


Form1.Image1.Canvas.MoveTo(round(ep72[1])-15,495); Form1.Image1.Canvas.LineTo(round(ep72[1]),580-round(masif7[1])); Form1.Image1.Canvas.MoveTo(round(ep72[2])-15,495); Form1.Image1.Canvas.LineTo(round(ep72[2]),580-round(masif7[2])); Form1.Image1.Canvas.MoveTo(round(ep72[3])-15,495); Form1.Image1.Canvas.LineTo(round(ep72[3]),580-round(masif7[3]));


Form1.Image1.Canvas.MoveTo(70,295); Form1.Image1.Canvas.LineTo(60,380-round(ep73[1])); Form1.Image1.Canvas.MoveTo(20+round(ep72[1]),295); Form1.Image1.Canvas.LineTo(round(ep72[1]),380-round(ep73[2])); Form1.Image1.Canvas.MoveTo(20+round(ep72[2]),295); Form1.Image1.Canvas.LineTo(round(ep72[2]),380-round(ep73[3]));


Pic:=Tbitmap.Create;

Pic.LoadFromFile('o3.bmp');

Form1.image1.Canvas.Draw(65,285,Pic);

Pic:=Tbitmap.Create;

Pic.LoadFromFile('o2.bmp');

Form1.image1.Canvas.Draw(15+round(ep72[1]),285,Pic);

Pic:=Tbitmap.Create;

Pic.LoadFromFile('o1.bmp');

Form1.image1.Canvas.Draw(15+round(ep72[2]),285,Pic);


Pic:=Tbitmap.Create;

Pic.LoadFromFile('l3.bmp');

Form1.image1.Canvas.Draw(round(ep72[1])-20,485,Pic);

Pic:=Tbitmap.Create;

Pic.LoadFromFile('l2.bmp');

Form1.image1.Canvas.Draw(round(ep72[2])-20,485,Pic);

Pic:=Tbitmap.Create;

Pic.LoadFromFile('l1.bmp');

Form1.image1.Canvas.Draw(round(ep72[3])-20,485,Pic);


Pic:=Tbitmap.Create;

Pic.LoadFromFile('o3.bmp');

Form1.image2.Canvas.Draw(2,30,Pic);

Pic:=Tbitmap.Create;

Pic.LoadFromFile('o2.bmp');

Form1.image2.Canvas.Draw(2,44,Pic);

Pic:=Tbitmap.Create;

Pic.LoadFromFile('o1.bmp');

Form1.image2.Canvas.Draw(2,58,Pic);


Pic:=Tbitmap.Create;

Pic.LoadFromFile('l1.bmp');

Form1.image2.Canvas.Draw(2,82,Pic);

Pic:=Tbitmap.Create;

Pic.LoadFromFile('l2.bmp');

Form1.image2.Canvas.Draw(2,96,Pic);

Pic:=Tbitmap.Create;

Pic.LoadFromFile('l3.bmp');

Form1.image2.Canvas.Draw(2,110,Pic);


end; if (a=3) and (b=2) then begin epi8; Form1.Image1.Canvas.Pen.Width:=2; Form1.Image1.Canvas.Pen.Color:=clRed; Form1.Image1.Canvas.MoveTo(60,380); Form1.Image1.Canvas.LineTo(60,380-round(ep83[1])); Form1.Image1.Canvas.LineTo(round(ep82[1]),380-round(ep83[1])); Form1.Image1.Canvas.LineTo(round(ep82[1]),380-round(ep83[2])); Form1.Image1.Canvas.LineTo(round(ep82[2]),380-round(ep83[2])); Form1.Image1.Canvas.LineTo(round(ep82[2]),380-round(ep83[3])); Form1.Image1.Canvas.LineTo(round(ep82[3]),380-round(ep83[3])); Form1.Image1.Canvas.LineTo(round(ep82[3]),380-round(ep83[4])); Form1.Image1.Canvas.LineTo(round(ep82[4]),380-round(ep83[4])); Form1.Image1.Canvas.LineTo(round(ep82[4]),380); Form1.Image1.Canvas.Pen.Width:=1; Form1.Image1.Canvas.Pen.Color:=clBlack; Form1.Memo1.Lines.Add(''); if Form4.ComboBox1.Text='Неограниченно' then begin Form1.Memo1.Lines.Add('= '+Floattostr(abs(pos8[1]/m))+' Па'); Form1.Memo1.Lines.Add('= '+Floattostr(abs(pos8[2]/m))+' Па'); Form1.Memo1.Lines.Add('= '+Floattostr(abs(pos8[3]/m))+' Па'); Form1.Memo1.Lines.Add('= '+Floattostr(abs(pos8[4]/m))+' Па'); end else begin Form1.Memo1.Lines.Add('= '+FloattostrF(abs(pos8[1]/m),ffFixed,15,okr)+' Па'); Form1.Memo1.Lines.Add('= '+FloattostrF(abs(pos8[2]/m),ffFixed,15,okr)+' Па'); Form1.Memo1.Lines.Add('= '+FloattostrF(abs(pos8[3]/m),ffFixed,15,okr)+' Па'); Form1.Memo1.Lines.Add('= '+FloattostrF(abs(pos8[4]/m),ffFixed,15,okr)+' Па'); end; Form1.Memo1.Lines.Add('');


Form1.Image1.Canvas.MoveTo(round(ep82[1])-15,495); Form1.Image1.Canvas.LineTo(round(ep82[1]),580-round(masif8[1])); Form1.Image1.Canvas.MoveTo(round(ep82[2])-15,495); Form1.Image1.Canvas.LineTo(round(ep82[2]),580-round(masif8[2])); Form1.Image1.Canvas.MoveTo(round(ep82[3])-15,495); Form1.Image1.Canvas.LineTo(round(ep82[3]),580-round(masif8[3])); Form1.Image1.Canvas.MoveTo(round(ep82[4])-15,495); Form1.Image1.Canvas.LineTo(round(ep82[4]),580-round(masif8[4]));


Form1.Image1.Canvas.MoveTo(70,295); Form1.Image1.Canvas.LineTo(60,380-round(ep83[1])); Form1.Image1.Canvas.MoveTo(20+round(ep82[1]),295); Form1.Image1.Canvas.LineTo(round(ep82[1]),380-round(ep83[2])); Form1.Image1.Canvas.MoveTo(20+round(ep82[2]),295); Form1.Image1.Canvas.LineTo(round(ep82[2]),380-round(ep83[3])); Form1.Image1.Canvas.MoveTo(20+round(ep82[3]),295); Form1.Image1.Canvas.LineTo(round(ep82[3]),380-round(ep83[4]));


Pic:=Tbitmap.Create;

Pic.LoadFromFile('o4.bmp');

Form1.image1.Canvas.Draw(65,285,Pic);

Pic:=Tbitmap.Create;

Pic.LoadFromFile('o3.bmp');

Form1.image1.Canvas.Draw(15+round(ep82[1]),285,Pic);

Pic:=Tbitmap.Create;

Pic.LoadFromFile('o2.bmp');

Form1.image1.Canvas.Draw(15+round(ep82[2]),285,Pic);

Pic:=Tbitmap.Create;

Pic.LoadFromFile('o1.bmp');

Form1.image1.Canvas.Draw(15+round(ep82[3]),285,Pic);


Pic:=Tbitmap.Create;

Pic.LoadFromFile('l1.bmp');

Form1.image1.Canvas.Draw(round(ep82[1])-20,485,Pic);

Pic:=Tbitmap.Create;

Pic.LoadFromFile('l2.bmp');

Form1.image1.Canvas.Draw(round(ep82[2])-20,485,Pic);

Pic:=Tbitmap.Create;

Pic.LoadFromFile('l3.bmp');

Form1.image1.Canvas.Draw(round(ep82[3])-20,485,Pic);

Pic:=Tbitmap.Create;

Pic.LoadFromFile('l4.bmp');

Form1.image1.Canvas.Draw(round(ep82[4])-20,485,Pic);


Pic:=Tbitmap.Create;

Pic.LoadFromFile('o4.bmp');

Form1.image2.Canvas.Draw(2,44,Pic);

Pic:=Tbitmap.Create;

Pic.LoadFromFile('o3.bmp');

Form1.image2.Canvas.Draw(2,57,Pic);

Pic:=Tbitmap.Create;

Pic.LoadFromFile('o2.bmp');

Form1.image2.Canvas.Draw(2,70,Pic);

Pic:=Tbitmap.Create;

Pic.LoadFromFile('o1.bmp');

Form1.image2.Canvas.Draw(2,83,Pic);


Pic:=Tbitmap.Create;

Pic.LoadFromFile('l1.bmp');

Form1.image2.Canvas.Draw(2,109,Pic);

Pic:=Tbitmap.Create;

Pic.LoadFromFile('l2.bmp');

Form1.image2.Canvas.Draw(2,122,Pic);

Pic:=Tbitmap.Create;

Pic.LoadFromFile('l3.bmp');

Form1.image2.Canvas.Draw(2,135,Pic);

Pic:=Tbitmap.Create;

Pic.LoadFromFile('l4.bmp');

Form1.image2.Canvas.Draw(2,148,Pic);


end;


if (a=3) and (b=3) then begin epi9; Form1.Image1.Canvas.Pen.Width:=2; Form1.Image1.Canvas.Pen.Color:=clRed; Form1.Image1.Canvas.MoveTo(60,380); Form1.Image1.Canvas.LineTo(60,380-round(ep93[1])); Form1.Image1.Canvas.LineTo(round(ep92[1]),380-round(ep93[1])); Form1.Image1.Canvas.LineTo(round(ep92[1]),380-round(ep93[2])); Form1.Image1.Canvas.LineTo(round(ep92[2]),380-round(ep93[2])); Form1.Image1.Canvas.LineTo(round(ep92[2]),380-round(ep93[3])); Form1.Image1.Canvas.LineTo(round(ep92[3]),380-round(ep93[3])); Form1.Image1.Canvas.LineTo(round(ep92[3]),380-round(ep93[4])); Form1.Image1.Canvas.LineTo(round(ep92[4]),380-round(ep93[4])); Form1.Image1.Canvas.LineTo(round(ep92[4]),380-round(ep93[5])); Form1.Image1.Canvas.LineTo(round(ep92[5]),380-round(ep93[5])); Form1.Image1.Canvas.LineTo(round(ep92[5]),380); Form1.Image1.Canvas.Pen.Width:=1; Form1.Image1.Canvas.Pen.Color:=clBlack; Form1.Memo1.Lines.Add(''); if Form4.ComboBox1.Text='Неограниченно' then begin Form1.Memo1.Lines.Add('= '+Floattostr(abs(pos9[1]/m))+' Па'); Form1.Memo1.Lines.Add('= '+Floattostr(abs(pos9[2]/m))+' Па'); Form1.Memo1.Lines.Add('= '+Floattostr(abs(pos9[3]/m))+' Па'); Form1.Memo1.Lines.Add('= '+Floattostr(abs(pos9[4]/m))+' Па'); Form1.Memo1.Lines.Add('= '+Floattostr(abs(pos9[5]/m))+' Па'); end else begin Form1.Memo1.Lines.Add('= '+FloattostrF(abs(pos9[1]/m),ffFixed,15,okr)+' Па'); Form1.Memo1.Lines.Add('= '+FloattostrF(abs(pos9[2]/m),ffFixed,15,okr)+' Па'); Form1.Memo1.Lines.Add('= '+FloattostrF(abs(pos9[3]/m),ffFixed,15,okr)+' Па'); Form1.Memo1.Lines.Add('= '+FloattostrF(abs(pos9[4]/m),ffFixed,15,okr)+' Па'); Form1.Memo1.Lines.Add('= '+FloattostrF(abs(pos9[5]/m),ffFixed,15,okr)+' Па'); end; Form1.Memo1.Lines.Add('');


Form1.Image1.Canvas.MoveTo(round(ep92[1])-15,495); Form1.Image1.Canvas.LineTo(round(ep92[1]),580-round(masif9[1])); Form1.Image1.Canvas.MoveTo(round(ep92[2])-15,495); Form1.Image1.Canvas.LineTo(round(ep92[2]),580-round(masif9[2])); Form1.Image1.Canvas.MoveTo(round(ep92[3])-15,495); Form1.Image1.Canvas.LineTo(round(ep92[3]),580-round(masif9[3])); Form1.Image1.Canvas.MoveTo(round(ep92[4])-15,495); Form1.Image1.Canvas.LineTo(round(ep92[4]),580-round(masif9[4])); Form1.Image1.Canvas.MoveTo(round(ep92[5])-15,495); Form1.Image1.Canvas.LineTo(round(ep92[5]),580-round(masif9[5]));


Form1.Image1.Canvas.MoveTo(70,295); Form1.Image1.Canvas.LineTo(60,380-round(ep93[1])); Form1.Image1.Canvas.MoveTo(20+round(ep92[1]),295); Form1.Image1.Canvas.LineTo(round(ep92[1]),380-round(ep93[2])); Form1.Image1.Canvas.MoveTo(20+round(ep92[2]),295); Form1.Image1.Canvas.LineTo(round(ep92[2]),380-round(ep93[3])); Form1.Image1.Canvas.MoveTo(20+round(ep92[3]),295); Form1.Image1.Canvas.LineTo(round(ep92[3]),380-round(ep93[4])); Form1.Image1.Canvas.MoveTo(20+round(ep92[4]),295); Form1.Image1.Canvas.LineTo(round(ep92[4]),380-round(ep93[5]));


Pic:=Tbitmap.Create;

Pic.LoadFromFile('o5.bmp');

Form1.image1.Canvas.Draw(65,285,Pic);

Pic:=Tbitmap.Create;

Pic.LoadFromFile('o4.bmp');

Form1.image1.Canvas.Draw(15+round(ep92[1]),285,Pic);

Pic:=Tbitmap.Create;

Pic.LoadFromFile('o3.bmp');

Form1.image1.Canvas.Draw(15+round(ep92[2]),285,Pic);

Pic:=Tbitmap.Create;

Pic.LoadFromFile('o2.bmp');

Form1.image1.Canvas.Draw(15+round(ep92[3]),285,Pic);

Pic:=Tbitmap.Create;

Pic.LoadFromFile('o1.bmp');

Form1.image1.Canvas.Draw(15+round(ep92[4]),285,Pic);


Pic:=Tbitmap.Create;

Pic.LoadFromFile('l1.bmp');

Form1.image1.Canvas.Draw(round(ep92[1])-20,485,Pic);

Pic:=Tbitmap.Create;

Pic.LoadFromFile('l2.bmp');

Form1.image1.Canvas.Draw(round(ep92[2])-20,485,Pic);

Pic:=Tbitmap.Create;

Pic.LoadFromFile('l3.bmp');

Form1.image1.Canvas.Draw(round(ep92[3])-20,485,Pic);

Pic:=Tbitmap.Create;

Pic.LoadFromFile('l4.bmp');

Form1.image1.Canvas.Draw(round(ep92[4])-20,485,Pic);

Pic:=Tbitmap.Create;

Pic.LoadFromFile('l5.bmp');

Form1.image1.Canvas.Draw(round(ep92[5])-20,485,Pic);


Pic:=Tbitmap.Create;

Pic.LoadFromFile('o5.bmp');

Form1.image2.Canvas.Draw(2,56,Pic);

Pic:=Tbitmap.Create;

Pic.LoadFromFile('o4.bmp');

Form1.image2.Canvas.Draw(2,69,Pic);

Pic:=Tbitmap.Create;

Pic.LoadFromFile('o3.bmp');

Form1.image2.Canvas.Draw(2,83,Pic);

Pic:=Tbitmap.Create;

Pic.LoadFromFile('o2.bmp');

Form1.image2.Canvas.Draw(2,96,Pic);

Pic:=Tbitmap.Create;

Pic.LoadFromFile('o1.bmp');

Form1.image2.Canvas.Draw(2,109,Pic);


Pic:=Tbitmap.Create;

Pic.LoadFromFile('l1.bmp');

Form1.image2.Canvas.Draw(2,136,Pic);

Pic:=Tbitmap.Create;

Pic.LoadFromFile('l2.bmp');

Form1.image2.Canvas.Draw(2,149,Pic);

Pic:=Tbitmap.Create;

Pic.LoadFromFile('l3.bmp');

Form1.image2.Canvas.Draw(2,162,Pic);

Pic:=Tbitmap.Create;

Pic.LoadFromFile('l4.bmp');

Form1.image2.Canvas.Draw(2,175,Pic);

Pic:=Tbitmap.Create;

Pic.LoadFromFile('l5.bmp');

Form1.image2.Canvas.Draw(2,188,Pic);

end;


if (a=1) and (b=1) then begin


epi1; Form1.Image1.Canvas.Pen.Width:=2; Form1.Image1.Canvas.Pen.Color:=clRed;


Form1.Image1.Canvas.MoveTo(60,580); Form1.Image1.Canvas.LineTo(round(ep12[1]),580-round(masif1[1])); Form1.Image1.Canvas.LineTo(round(ep12[2]),580-round(masif1[2])); Form1.Image1.Canvas.LineTo(round(ep12[2]),580);


Form1.Image1.Canvas.Pen.Width:=1; Form1.Image1.Canvas.Pen.Color:=clBlack;


if ComboBox6.Text='м' then begin for i:=1 to 1 do if Form4.ComboBox1.Text='Неограниченно' then Form1.Memo1.Lines.Add('= '+Floattostr(abs(chis1[i])/m)+' кН/м * E') else Form1.Memo1.Lines.Add('= '+FloattostrF(abs(chis1[i])/m,ffFixed,15,okr)+' кН/м * E') end;


if ComboBox6.Text='см' then begin for i:=1 to 1 do if Form4.ComboBox1.Text='Неограниченно' then Form1.Memo1.Lines.Add('= '+Floattostr(abs(chis1[i])/m)+' кН/м * E') else Form1.Memo1.Lines.Add('= '+FloattostrF(abs(chis1[i])/m,ffFixed,15,okr)+' кН/см * E') end;


if ComboBox6.Text='мм' then begin for i:=1 to 1 do if Form4.ComboBox1.Text='Неограниченно' then Form1.Memo1.Lines.Add('= '+Floattostr(abs(chis1[i])/m)+' кН/м * E') else Form1.Memo1.Lines.Add('= '+FloattostrF(abs(chis1[i])/m,ffFixed,15,okr)+' кН/мм * E')


end;


end;


if (a=1) and (b=2) then begin


epi2; Form1.Image1.Canvas.Pen.Width:=2; Form1.Image1.Canvas.Pen.Color:=clRed;


Form1.Image1.Canvas.MoveTo(60,580); Form1.Image1.Canvas.LineTo(round(ep22[1]),580-round(masif2[1])); Form1.Image1.Canvas.LineTo(round(ep22[2]),580-round(masif2[2])); Form1.Image1.Canvas.LineTo(round(ep22[3]),580-round(masif2[2])); Form1.Image1.Canvas.LineTo(round(ep22[3]),580);


Form1.Image1.Canvas.Pen.Width:=1; Form1.Image1.Canvas.Pen.Color:=clBlack;


if ComboBox6.Text='м' then begin for i:=1 to 2 do if Form4.ComboBox1.Text='Неограниченно' then Form1.Memo1.Lines.Add('= '+Floattostr(abs(chis2[i])/m)+' кН/м * E') else Form1.Memo1.Lines.Add('= '+FloattostrF(abs(chis2[i])/m,ffFixed,15,okr)+' кН/м * E') end;


if ComboBox6.Text='см' then begin for i:=1 to 2 do if Form4.ComboBox1.Text='Неограниченно' then Form1.Memo1.Lines.Add('= '+Floattostr(abs(chis2[i])/m)+' кН/см * E') else Form1.Memo1.Lines.Add('= '+FloattostrF(abs(chis2[i])/m,ffFixed,15,okr)+' кН/см * E') end;


if ComboBox6.Text='мм' then begin for i:=1 to 2 do if Form4.ComboBox1.Text='Неограниченно' then Form1.Memo1.Lines.Add('= '+Floattostr(abs(chis2[i])/m)+' кН/мм * E') else Form1.Memo1.Lines.Add('= '+FloattostrF(abs(chis2[i])/m,ffFixed,15,okr)+' кН/мм * E')


end; end;


if (a=1) and (b=3) then begin


epi3; Form1.Image1.Canvas.Pen.Width:=2; Form1.Image1.Canvas.Pen.Color:=clRed;


Form1.Image1.Canvas.MoveTo(60,580); Form1.Image1.Canvas.LineTo(round(ep32[1]),580-round(masif3[1])); Form1.Image1.Canvas.LineTo(round(ep32[2]),580-round(masif3[2])); Form1.Image1.Canvas.LineTo(round(ep32[3]),580-round(masif3[3])); Form1.Image1.Canvas.LineTo(round(ep32[4]),580-round(masif3[3])); Form1.Image1.Canvas.LineTo(round(ep32[4]),580);


Form1.Image1.Canvas.Pen.Width:=1; Form1.Image1.Canvas.Pen.Color:=clBlack;


if ComboBox6.Text='м' then begin for i:=1 to 3 do if Form4.ComboBox1.Text='Неограниченно' then Form1.Memo1.Lines.Add('= '+Floattostr(abs(chis3[i])/m)+' кН/м * E') else Form1.Memo1.Lines.Add('= '+FloattostrF(abs(chis3[i])/m,ffFixed,15,okr)+' кН/м * E') end;


if ComboBox6.Text='см' then begin for i:=1 to 3 do if Form4.ComboBox1.Text='Неограниченно' then Form1.Memo1.Lines.Add('= '+Floattostr(abs(chis3[i])/m)+' кН/см * E') else Form1.Memo1.Lines.Add('= '+FloattostrF(abs(chis3[i])/m,ffFixed,15,okr)+' кН/см * E') end;


if ComboBox6.Text='мм' then begin for i:=1 to 3 do if Form4.ComboBox1.Text='Неограниченно' then Form1.Memo1.Lines.Add('= '+Floattostr(abs(chis3[i])/m)+' кН/мм * E') else Form1.Memo1.Lines.Add('= '+FloattostrF(abs(chis3[i])/m,ffFixed,15,okr)+' кН/мм * E')


end; end;


if (a=2) and (b=1) then begin


epi4; Form1.Image1.Canvas.Pen.Width:=2; Form1.Image1.Canvas.Pen.Color:=clRed;


Form1.Image1.Canvas.MoveTo(60,580); Form1.Image1.Canvas.LineTo(round(ep42[1]),580-round(masif4[1])); Form1.Image1.Canvas.LineTo(round(ep42[2]),580-round(masif4[2])); Form1.Image1.Canvas.LineTo(round(ep42[3]),580-round(masif4[2])); Form1.Image1.Canvas.LineTo(round(ep42[3]),580);


Form1.Image1.Canvas.Pen.Width:=1; Form1.Image1.Canvas.Pen.Color:=clBlack;


if ComboBox6.Text='м' then begin for i:=1 to 2 do if Form4.ComboBox1.Text='Неограниченно' then Form1.Memo1.Lines.Add('= '+Floattostr(abs(chis4[i])/m)+' кН/м * E') else Form1.Memo1.Lines.Add('= '+FloattostrF(abs(chis4[i])/m,ffFixed,15,okr)+' кН/м * E') end;


if ComboBox6.Text='см' then begin for i:=1 to 2 do if Form4.ComboBox1.Text='Неограниченно' then Form1.Memo1.Lines.Add('= '+Floattostr(abs(chis4[i])/m)+' кН/см * E') else Form1.Memo1.Lines.Add('= '+FloattostrF(abs(chis4[i])/m,ffFixed,15,okr)+' кН/см * E') end;


if ComboBox6.Text='мм' then begin for i:=1 to 2 do if Form4.ComboBox1.Text='Неограниченно' then Form1.Memo1.Lines.Add('= '+Floattostr(abs(chis4[i])/m)+' кН/мм * E') else Form1.Memo1.Lines.Add('= '+FloattostrF(abs(chis4[i])/m,ffFixed,15,okr)+' кН/мм * E')


end;


end; if (a=2) and (b=2) then begin


epi5; Form1.Image1.Canvas.Pen.Width:=2; Form1.Image1.Canvas.Pen.Color:=clRed;


Form1.Image1.Canvas.MoveTo(60,580); Form1.Image1.Canvas.LineTo(round(ep52[1]),580-round(masif5[1])); Form1.Image1.Canvas.LineTo(round(ep52[2]),580-round(masif5[2])); Form1.Image1.Canvas.LineTo(round(ep52[3]),580-round(masif5[3])); Form1.Image1.Canvas.LineTo(round(ep52[4]),580-round(masif5[3])); Form1.Image1.Canvas.LineTo(round(ep52[4]),580);


Form1.Image1.Canvas.Pen.Width:=1; Form1.Image1.Canvas.Pen.Color:=clBlack;


if ComboBox6.Text='м' then begin for i:=1 to 3 do if Form4.ComboBox1.Text='Неограниченно' then Form1.Memo1.Lines.Add('= '+Floattostr(abs(chis5[i])/m)+' кН/м * E') else Form1.Memo1.Lines.Add('= '+FloattostrF(abs(chis5[i])/m,ffFixed,15,okr)+' кН/м * E') end;


if ComboBox6.Text='см' then begin for i:=1 to 3 do if Form4.ComboBox1.Text='Неограниченно' then Form1.Memo1.Lines.Add('= '+Floattostr(abs(chis5[i])/m)+' кН/см * E') else Form1.Memo1.Lines.Add('= '+FloattostrF(abs(chis5[i])/m,ffFixed,15,okr)+' кН/см * E') end;


if ComboBox6.Text='мм' then begin for i:=1 to 3 do if Form4.ComboBox1.Text='Неограниченно' then Form1.Memo1.Lines.Add('= '+Floattostr(abs(chis5[i])/m)+' кН/мм * E') else Form1.Memo1.Lines.Add('= '+FloattostrF(abs(chis5[i])/m,ffFixed,15,okr)+' кН/мм * E')


end;


end; if (a=2) and (b=3) then begin


epi6; Form1.Image1.Canvas.Pen.Width:=2; Form1.Image1.Canvas.Pen.Color:=clRed;


Form1.Image1.Canvas.MoveTo(60,580); Form1.Image1.Canvas.LineTo(round(ep62[1]),580-round(masif6[1])); Form1.Image1.Canvas.LineTo(round(ep62[2]),580-round(masif6[2])); Form1.Image1.Canvas.LineTo(round(ep62[3]),580-round(masif6[3])); Form1.Image1.Canvas.LineTo(round(ep62[4]),580-round(masif6[4])); Form1.Image1.Canvas.LineTo(round(ep62[5]),580-round(masif6[4]));; Form1.Image1.Canvas.LineTo(round(ep62[5]),580);


Form1.Image1.Canvas.Pen.Width:=1; Form1.Image1.Canvas.Pen.Color:=clBlack;


if ComboBox6.Text='м' then begin for i:=1 to 4 do if Form4.ComboBox1.Text='Неограниченно' then Form1.Memo1.Lines.Add('= '+Floattostr(abs(chis6[i])/m)+' кН/м * E') else Form1.Memo1.Lines.Add('= '+FloattostrF(abs(chis6[i])/m,ffFixed,15,okr)+' кН/м * E') end;


if ComboBox6.Text='см' then begin for i:=1 to 4 do if Form4.ComboBox1.Text='Неограниченно' then Form1.Memo1.Lines.Add('= '+Floattostr(abs(chis6[i])/m)+' кН/см * E') else Form1.Memo1.Lines.Add('= '+FloattostrF(abs(chis6[i])/m,ffFixed,15,okr)+' кН/см * E') end;


if ComboBox6.Text='мм' then begin for i:=1 to 4 do if Form4.ComboBox1.Text='Неограниченно' then Form1.Memo1.Lines.Add('= '+Floattostr(abs(chis6[i])/m)+' кН/мм * E') else Form1.Memo1.Lines.Add('= '+FloattostrF(abs(chis6[i])/m,ffFixed,15,okr)+' кН/мм * E')


end;

end; if (a=3) and (b=1) then begin epi7; Form1.Image1.Canvas.Pen.Width:=2; Form1.Image1.Canvas.Pen.Color:=clRed;


Form1.Image1.Canvas.MoveTo(60,580); Form1.Image1.Canvas.LineTo(round(ep72[1]),580-round(masif7[1])); Form1.Image1.Canvas.LineTo(round(ep72[2]),580-round(masif7[2])); Form1.Image1.Canvas.LineTo(round(ep72[3]),580-round(masif7[3])); Form1.Image1.Canvas.LineTo(round(ep72[4]),580-round(masif7[4])); Form1.Image1.Canvas.LineTo(round(ep72[4]),580);


Form1.Image1.Canvas.Pen.Width:=1; Form1.Image1.Canvas.Pen.Color:=clBlack;


if ComboBox6.Text='м' then begin for i:=1 to 3 do if Form4.ComboBox1.Text='Неограниченно' then Form1.Memo1.Lines.Add('= '+Floattostr(abs(chis7[i])/m)+' кН/м * E') else Form1.Memo1.Lines.Add('= '+FloattostrF(abs(chis7[i])/m,ffFixed,15,okr)+' кН/м * E') end;


if ComboBox6.Text='см' then begin for i:=1 to 3 do if Form4.ComboBox1.Text='Неограниченно' then Form1.Memo1.Lines.Add('= '+Floattostr(abs(chis7[i])/m)+' кН/см * E') else Form1.Memo1.Lines.Add('= '+FloattostrF(abs(chis7[i])/m,ffFixed,15,okr)+' кН/см * E') end;


if ComboBox6.Text='мм' then begin for i:=1 to 3 do if Form4.ComboBox1.Text='Неограниченно' then Form1.Memo1.Lines.Add('= '+Floattostr(abs(chis7[i])/m)+' кН/мм * E') else Form1.Memo1.Lines.Add('= '+FloattostrF(abs(chis7[i])/m,ffFixed,15,okr)+' кН/мм * E') end;

end; if (a=3) and (b=2) then begin epi8; Form1.Image1.Canvas.Pen.Width:=2; Form1.Image1.Canvas.Pen.Color:=clRed;


Form1.Image1.Canvas.MoveTo(60,580); Form1.Image1.Canvas.LineTo(round(ep82[1]),580-round(masif8[1])); Form1.Image1.Canvas.LineTo(round(ep82[2]),580-round(masif8[2])); Form1.Image1.Canvas.LineTo(round(ep82[3]),580-round(masif8[3])); Form1.Image1.Canvas.LineTo(round(ep82[4]),580-round(masif8[4])); Form1.Image1.Canvas.LineTo(round(ep82[5]),580-round(masif8[5]));; Form1.Image1.Canvas.LineTo(round(ep82[5]),580);


Form1.Image1.Canvas.Pen.Width:=1; Form1.Image1.Canvas.Pen.Color:=clBlack;


if ComboBox6.Text='м' then begin for i:=1 to 4 do if Form4.ComboBox1.Text='Неограниченно' then Form1.Memo1.Lines.Add('= '+Floattostr(abs(chis8[i])/m)+' кН/м * E') else Form1.Memo1.Lines.Add('= '+FloattostrF(abs(chis8[i])/m,ffFixed,15,okr)+' кН/м * E') end;


if ComboBox6.Text='см' then begin for i:=1 to 4 do if Form4.ComboBox1.Text='Неограниченно' then Form1.Memo1.Lines.Add('= '+Floattostr(abs(chis8[i])/m)+' кН/см * E') else Form1.Memo1.Lines.Add('= '+FloattostrF(abs(chis8[i])/m,ffFixed,15,okr)+' кН/см * E') end;


if ComboBox6.Text='мм' then begin for i:=1 to 4 do if Form4.ComboBox1.Text='Неограниченно' then Form1.Memo1.Lines.Add('= '+Floattostr(abs(chis8[i])/m)+' кН/мм * E') else Form1.Memo1.Lines.Add('= '+FloattostrF(abs(chis8[i])/m,ffFixed,15,okr)+' кН/мм * E') end;


end;


if (a=3) and (b=3) then begin epi9; Form1.Image1.Canvas.Pen.Width:=2; Form1.Image1.Canvas.Pen.Color:=clRed;


Form1.Image1.Canvas.MoveTo(60,580); Form1.Image1.Canvas.LineTo(round(ep92[1]),580-round(masif9[1])); Form1.Image1.Canvas.LineTo(round(ep92[2]),580-round(masif9[2])); Form1.Image1.Canvas.LineTo(round(ep92[3]),580-round(masif9[3])); Form1.Image1.Canvas.LineTo(round(ep92[4]),580-round(masif9[4])); Form1.Image1.Canvas.LineTo(round(ep92[5]),580-round(masif9[5]));; Form1.Image1.Canvas.LineTo(round(ep92[6]),580-round(masif9[5]));; Form1.Image1.Canvas.LineTo(round(ep92[6]),580);


Form1.Image1.Canvas.Pen.Width:=1; Form1.Image1.Canvas.Pen.Color:=clBlack;


if ComboBox6.Text='м' then begin for i:=1 to 5 do if Form4.ComboBox1.Text='Неограниченно' then Form1.Memo1.Lines.Add('= '+Floattostr(abs(chis9[i])/m)+' кН/м * E') else Form1.Memo1.Lines.Add('= '+FloattostrF(abs(chis9[i])/m,ffFixed,15,okr)+' кН/м * E') end;


if ComboBox6.Text='см' then begin for i:=1 to 5 do if Form4.ComboBox1.Text='Неограниченно' then Form1.Memo1.Lines.Add('= '+Floattostr(abs(chis9[i])/m)+' кН/см * E') else Form1.Memo1.Lines.Add('= '+FloattostrF(abs(chis9[i])/m,ffFixed,15,okr)+' кН/см * E') end;


if ComboBox6.Text='мм' then begin for i:=1 to 5 do if Form4.ComboBox1.Text='Неограниченно' then Form1.Memo1.Lines.Add('= '+Floattostr(abs(chis9[i])/m)+' кН/мм * E') else Form1.Memo1.Lines.Add('= '+FloattostrF(abs(chis9[i])/m,ffFixed,15,okr)+' кН/мм * E') end;


end;


end else MessageDlg('Точки приложения сил, недолжны выходить за пределы бруса.',mtInformation,[mbOK],0); end else MessageDlg('Силы должны вводиться по порядку.',mtInformation,[mbOK],0); end else MessageDlg('Ошибка. Проверьте поля площадей.',mtInformation,[mbOK],0); end else MessageDlg('Ошибка. Проверьте поля значений сил.',mtInformation,[mbOK],0); end else MessageDlg('Ошибка. Проверьте поля точек приложения сил.',mtInformation,[mbOK],0); end else MessageDlg('Ошибка. Проверьте поля длин участков.',mtInformation,[mbOK],0); end else MessageDlg('Ошибка. Проверьте поля площадей.',mtInformation,[mbOK],0); end else MessageDlg('Не заданно значение третей силы',mtInformation,[mbOK],0); end else MessageDlg('Не заданна точка приложения третей силы',mtInformation,[mbOK],0); end else MessageDlg('Не заданно значение второй силы',mtInformation,[mbOK],0); end else MessageDlg('Не заданна точка приложения второй силы',mtInformation,[mbOK],0); end else MessageDlg('Не заданно значение первой силы',mtInformation,[mbOK],0); end else MessageDlg('Не заданна точка приложения первой силы',mtInformation,[mbOK],0); end else MessageDlg('Не заданна площадь третьего участка',mtInformation,[mbOK],0); end else MessageDlg('Не заданна длина третьего участка',mtInformation,[mbOK],0); end else MessageDlg('Не заданна площадь второго участка',mtInformation,[mbOK],0); end else MessageDlg('Не заданна длина второго участка',mtInformation,[mbOK],0); end else MessageDlg('Не заданна площадь первого участка',mtInformation,[mbOK],0); end else MessageDlg('Не заданна длина первого участка',mtInformation,[mbOK],0);


end;


procedure TForm1.N2Click(Sender: TObject); begin


image2.Canvas.Brush.Color:=clWhite; image2.Canvas.Brush.Style:=bsSolid; image2.Canvas.Rectangle(0,0,600,667); Form1.Memo1.Clear; image1.Canvas.Brush.Color:=clWhite; image1.Canvas.Brush.Style:=bsSolid; image1.Canvas.Rectangle(0,0,600,667); a:=1; b:=1; Edit2.Visible:=false; Edit3.Visible:=false; Edit5.Visible:=false; Edit6.Visible:=false; Edit8.Visible:=false; Edit9.Visible:=false; Edit11.Visible:=false; Edit12.Visible:=false; Combobox4.Visible:=false; Combobox5.Visible:=false; Edit1.Text:=''; Edit2.Text:='1'; Edit3.Text:='1'; Edit4.Text:=''; Edit5.Text:='0'; Edit6.Text:='1'; Edit7.Text:=''; Edit8.Text:='1'; Edit9.Text:='1'; Edit10.Text:=''; Edit11.Text:='1'; Edit12.Text:='1'; ComboBox1.Text:='1'; ComboBox2.Text:='1'; ComboBox3.Text:='Влево'; ComboBox4.Text:='Влево'; ComboBox5.Text:='Влево'; ComboBox6.Text:='м'; Form1.Memo1.Clear; if ComboBox3.Text='Влево' then s1:=-1

else s1:=1; if ComboBox4.Text='Влево' then s2:=-1

else s2:=1; if ComboBox5.Text='Влево' then s3:=-1

else s3:=1; m:=0.001; if ComboBox6.Text='м' then m:=0.001; if ComboBox6.Text='см' then m:=0.0000001; if ComboBox6.Text='мм' then m:=0.000000001; if ComboBox6.Text='м' then begin

Form1.Label7.Caption:='метрах';

Form1.Label16.Left:=672;

end;


if ComboBox6.Text='см' then begin

Form1.Label7.Caption:='сантиметрах';

Form1.Label16.Left:=704;

end;


if ComboBox6.Text='мм' then begin

Form1.Label7.Caption:='миллиметрах';

Form1.Label16.Left:=704;

end;


image2.Canvas.Brush.Color:=clWhite; image2.Canvas.Brush.Style:=bsSolid; image2.Canvas.Rectangle(0,0,600,667); end;


procedure TForm1.N5Click(Sender: TObject); begin close; end;


procedure TForm1.N3Click(Sender: TObject); var f:TextFile; p:string; begin if OpenDialog1.Execute then

begin

N2.Click;

AssignFile(f,OpenDialog1.FileName);

Reset(f);

ReadLn(f,p);

edit1.Text:=p;

ReadLn(f,p);

edit2.Text:=p;

ReadLn(f,p);

edit3.Text:=p;

ReadLn(f,p);

edit4.Text:=p;

ReadLn(f,p);

edit5.Text:=p;

ReadLn(f,p);

edit6.Text:=p;

ReadLn(f,p);

edit7.Text:=p;

ReadLn(f,p);

edit8.Text:=p;

ReadLn(f,p);

edit9.Text:=p;

ReadLn(f,p);

edit10.Text:=p;

ReadLn(f,p);

edit11.Text:=p;

ReadLn(f,p);

edit12.Text:=p;

ReadLn(f,p);

ComboBox1.Text:=p;

ReadLn(f,p);

ComboBox2.Text:=p;

ReadLn(f,p);

ComboBox3.Text:=p;

ReadLn(f,p);

ComboBox4.Text:=p;

ReadLn(f,p);

ComboBox5.Text:=p;

ReadLn(f,p);

ComboBox6.Text:=p;


if combobox1.Text='1' then begin

a:=1;

Edit2.Visible:=false;

Edit3.Visible:=false;

Edit5.Visible:=false;

Edit6.Visible:=false;

Form1.Label9.Visible:=false;

Form1.Label10.Visible:=false;

Edit2.Text:='1';

Edit3.Text:='1';

Edit5.Text:='0';

Edit6.Text:='1';

end;

if combobox1.Text='2' then begin

a:=2;

Edit2.Visible:=true;

Edit3.Visible:=false;

Edit5.Visible:=true;

Edit6.Visible:=false;

Form1.Label9.Visible:=true;

Form1.Label10.Visible:=false;

Edit3.Text:='1';

Edit6.Text:='0';

end;

if combobox1.Text='3' then begin

a:=3;

Edit2.Visible:=true;

Edit3.Visible:=true;

Edit5.Visible:=true;

Edit6.Visible:=true;

Form1.Label9.Visible:=true;

Form1.Label10.Visible:=true;

end;

if combobox2.Text='1' then begin

b:=1;

Edit8.Visible:=false;

Edit9.Visible:=false;

Edit11.Visible:=false;

Edit12.Visible:=false;

ComboBox3.Visible:=true;

ComboBox4.Visible:=false;

ComboBox5.Visible:=false;

Combobox4.text:='';

Combobox5.text:='';

Edit8.Text:='1';

Edit9.Text:='1';

Edit11.Text:='1';

Edit12.Text:='1';

end;

if combobox2.Text='2' then begin

b:=2;

Edit8.Visible:=true;

Edit9.Visible:=false;

Edit11.Visible:=true;

Edit12.Visible:=false;

ComboBox3.Visible:=true;

ComboBox4.Visible:=true;

ComboBox5.Visible:=false;

Combobox5.text:='';

Edit9.Text:='1';

Edit12.Text:='1';

end;

if combobox2.Text='3' then begin

b:=3;

Edit8.Visible:=true;

Edit9.Visible:=true;

Edit11.Visible:=true;

Edit12.Visible:=true;

ComboBox3.Visible:=true;

ComboBox4.Visible:=true;

ComboBox5.Visible:=true;

end;

if ComboBox3.Text='Влево' then s1:=-1

else s1:=1;

if ComboBox4.Text='Влево' then s2:=-1

else s2:=1;

if ComboBox5.Text='Влево' then s3:=-1

else s3:=1;

m:=0.001;

if ComboBox6.Text='м' then m:=0.001;

if ComboBox6.Text='см' then m:=0.0000001;

if ComboBox6.Text='мм' then m:=0.000000001;

if ComboBox6.Text='м' then begin

Form1.Label7.Caption:='метрах';

Form1.Label16.Left:=672;

end;


if ComboBox6.Text='см' then begin

Form1.Label7.Caption:='сантиметрах ';

Form1.Label16.Left:=704;

end;


if ComboBox6.Text='мм' then begin

Form1.Label7.Caption:='миллиметрах ';

Form1.Label16.Left:=704;

end;


CloseFile(f);

end;


image2.Canvas.Brush.Color:=clWhite; image2.Canvas.Brush.Style:=bsSolid; image2.Canvas.Rectangle(0,0,600,667); Form1.Memo1.Clear;


Button1.Click;


end;


procedure TForm1.N4Click(Sender: TObject); var f:TextFile; p:string; begin if SaveDialog1.Execute then begin

if ExtractFileExt(SaveDialog1.FileName)='' then

AssignFile(f,SaveDialog1.FileName+'.txt')

else

AssignFile(f,SaveDialog1.FileName);

Rewrite(f);

p:=edit1.Text;

WriteLn(f,p);

p:=edit2.Text;

WriteLn(f,p);

p:=edit3.Text;

WriteLn(f,p);

p:=edit4.Text;

WriteLn(f,p);

p:=edit5.Text;

WriteLn(f,p);

p:=edit6.Text;

WriteLn(f,p);

p:=edit7.Text;

WriteLn(f,p);

p:=edit8.Text;

WriteLn(f,p);

p:=edit9.Text;

WriteLn(f,p);

p:=edit10.Text;

WriteLn(f,p);

p:=edit11.Text;

WriteLn(f,p);

p:=edit12.Text;

WriteLn(f,p);

p:=ComboBox1.Text;

WriteLn(f,p);

p:=ComboBox2.Text;

WriteLn(f,p);

p:=ComboBox3.Text;

WriteLn(f,p);

p:=ComboBox4.Text;

WriteLn(f,p);

p:=ComboBox5.Text;

WriteLn(f,p);

p:=ComboBox6.Text;

WriteLn(f,p);

CloseFile(f); end; end;


procedure TForm1.N8Click(Sender: TObject); begin form2.ShowModal; end;


procedure TForm1.N9Click(Sender: TObject); begin form3.ShowModal; end;


procedure TForm1.N10Click(Sender: TObject); begin form4.ShowModal; end;


procedure TForm1.Edit1KeyPress(Sender: TObject; var Key: Char); begin case key of

'0'..'9': ;

#8: ;

'.', ',': Key := #44;

else

key := #0; end;

end;


procedure TForm1.Edit10KeyPress(Sender: TObject; var Key: Char); begin case key of

'0'..'9': ;

#8: ;

'.', ',': Key := #44;

else

key := #0; end; end;


procedure TForm1.Edit9KeyPress(Sender: TObject; var Key: Char); begin case key of

'0'..'9': ;

#8: ;

'.', ',': Key := #44;

else

key := #0; end; end;


procedure TForm1.Edit8KeyPress(Sender: TObject; var Key: Char); begin case key of

'0'..'9': ;

#8: ;

'.', ',': Key := #44;

else

key := #0; end; end;


procedure TForm1.Edit7KeyPress(Sender: TObject; var Key: Char); begin case key of

'0'..'9': ;

#8: ;

'.', ',': Key := #44;

else

key := #0; end; end;


procedure TForm1.Edit5KeyPress(Sender: TObject; var Key: Char); begin case key of

'0'..'9': ;

#8: ;

'.', ',': Key := #44;

else

key := #0; end; end;


procedure TForm1.Edit4KeyPress(Sender: TObject; var Key: Char); begin case key of

'0'..'9': ;

#8: ;

'.', ',': Key := #44;

else

key := #0; end; end;


procedure TForm1.Edit6KeyPress(Sender: TObject; var Key: Char); begin case key of

'0'..'9': ;

#8: ;

'.', ',': Key := #44;

else

key := #0; end; end;


procedure TForm1.Edit3KeyPress(Sender: TObject; var Key: Char); begin case key of

'0'..'9': ;

#8: ;

'.', ',': Key := #44;

else

key := #0; end; end;


procedure TForm1.Edit12KeyPress(Sender: TObject; var Key: Char); begin case key of

'0'..'9': ;

#8: ;

'.', ',': Key := #44;

else

key := #0; end; end;


procedure TForm1.Edit11KeyPress(Sender: TObject; var Key: Char); begin case key of

'0'..'9': ;

#8: ;

'.', ',': Key := #44;

else

key := #0; end; end;


procedure TForm1.Edit2KeyPress(Sender: TObject; var Key: Char); begin case key of

'0'..'9': ;

#8: ;

'.', ',': Key := #44;

else

key := #0; end; end;


procedure TForm1.ComboBox1KeyPress(Sender: TObject; var Key: Char); begin if key <> '' then key:=#0; end;


procedure TForm1.ComboBox2KeyPress(Sender: TObject; var Key: Char); begin if key <> '' then key:=#0; end;


procedure TForm1.ComboBox3KeyPress(Sender: TObject; var Key: Char); begin if key <> '' then key:=#0; end;


procedure TForm1.ComboBox4KeyPress(Sender: TObject; var Key: Char); begin if key <> '' then key:=#0; end;


procedure TForm1.ComboBox5KeyPress(Sender: TObject; var Key: Char); begin if key <> '' then key:=#0; end;


procedure TForm1.ComboBox6KeyPress(Sender: TObject; var Key: Char); begin if key <> '' then key:=#0; end;


end.


unit Unit2;


interface


uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, ExtCtrls, Menus;


type TForm2 = class(TForm)

MainMenu1: TMainMenu;

N1: TMenuItem;

N2: TMenuItem;

N3: TMenuItem;

N4: TMenuItem;

Label1: TLabel;

Label2: TLabel;

Label3: TLabel;

Label4: TLabel;

Label5: TLabel;

Label6: TLabel;

Button1: TButton;

Button3: TButton;

Button4: TButton;

Button5: TButton;

Button6: TButton;

Button7: TButton;

ColorBox1: TColorBox;

ColorBox2: TColorBox;

ColorBox3: TColorBox;

ColorBox4: TColorBox;

ColorBox5: TColorBox;

ColorBox6: TColorBox;

Button2: TButton;

Label7: TLabel;

procedure N2Click(Sender: TObject);

procedure N3Click(Sender: TObject);

procedure N4Click(Sender: TObject);

procedure FormActivate(Sender: TObject);

procedure Button4Click(Sender: TObject);

procedure Button5Click(Sender: TObject);

procedure Button6Click(Sender: TObject);

procedure Button1Click(Sender: TObject);

procedure Button2Click(Sender: TObject);

procedure Button3Click(Sender: TObject);

procedure Button7Click(Sender: TObject);


private

{ Private declarations } public

{ Public declarations } end;


var Form2: TForm2;


implementation


uses Unit1, Unit3;


{$R *.dfm}


procedure TForm2.N2Click(Sender: TObject); begin Form2.Label1.Visible:=true; Form2.Label4.Visible:=true; Form2.ColorBox1.Visible:=true; Form2.ColorBox4.Visible:=true; Form2.Button1.Visible:=true; Form2.Button4.Visible:=true; Form2.Label2.Visible:=false; Form2.Label5.Visible:=false; Form2.ColorBox2.Visible:=false; Form2.ColorBox5.Visible:=false; Form2.Button2.Visible:=false; Form2.Button5.Visible:=false; Form2.Label3.Visible:=false; Form2.Label6.Visible:=false; Form2.ColorBox3.Visible:=false; Form2.ColorBox6.Visible:=false; Form2.Button3.Visible:=false; Form2.Button6.Visible:=false; Form2.Button7.Visible:=true; Form2.Label7.Visible:=false; end;


procedure TForm2.N3Click(Sender: TObject); begin Form2.Label1.Visible:=false; Form2.Label4.Visible:=false; Form2.ColorBox1.Visible:=false; Form2.ColorBox4.Visible:=false; Form2.Button1.Visible:=false; Form2.Button4.Visible:=false; Form2.Label2.Visible:=true; Form2.Label5.Visible:=true; Form2.ColorBox2.Visible:=true; Form2.ColorBox5.Visible:=true; Form2.Button2.Visible:=true; Form2.Button5.Visible:=true; Form2.Label3.Visible:=false; Form2.Label6.Visible:=false; Form2.ColorBox3.Visible:=false; Form2.ColorBox6.Visible:=false; Form2.Button3.Visible:=false; Form2.Button6.Visible:=false; Form2.Button7.Visible:=true; Form2.Label7.Visible:=false; end;


procedure TForm2.N4Click(Sender: TObject); begin Form2.Label1.Visible:=false; Form2.Label4.Visible:=false; Form2.ColorBox1.Visible:=false; Form2.ColorBox4.Visible:=false; Form2.Button1.Visible:=false; Form2.Button4.Visible:=false; Form2.Label2.Visible:=false; Form2.Label5.Visible:=false; Form2.ColorBox2.Visible:=false; Form2.ColorBox5.Visible:=false; Form2.Button2.Visible:=false; Form2.Button5.Visible:=false; Form2.Label3.Visible:=true; Form2.Label6.Visible:=true; Form2.ColorBox3.Visible:=true; Form2.ColorBox6.Visible:=true; Form2.Button3.Visible:=true; Form2.Button6.Visible:=true; Form2.Button7.Visible:=true; Form2.Label7.Visible:=false; end;


procedure TForm2.FormActivate(Sender: TObject); begin Form2.Label1.Visible:=false; Form2.Label4.Visible:=false; Form2.ColorBox1.Visible:=false; Form2.ColorBox4.Visible:=false; Form2.Button1.Visible:=false; Form2.Button4.Visible:=false; Form2.Label2.Visible:=false; Form2.Label5.Visible:=false; Form2.ColorBox2.Visible:=false; Form2.ColorBox5.Visible:=false; Form2.Button2.Visible:=false; Form2.Button5.Visible:=false; Form2.Label3.Visible:=false; Form2.Label6.Visible:=false; Form2.ColorBox3.Visible:=false; Form2.ColorBox6.Visible:=false; Form2.Button3.Visible:=false; Form2.Button6.Visible:=false; Form2.Button7.Visible:=false; Form2.Canvas.MoveTo(0,0); Form2.Canvas.LineTo(260,0); Form2.Label7.Visible:=true; Form2.ColorBox1.Selected:=Form1.Color; Form2.ColorBox2.Selected:=Form1.Edit1.Color; Form2.ColorBox3.Selected:=Form1.Memo1.Color; Form2.ColorBox4.Selected:=Form1.Label1.Font.Color; Form2.ColorBox5.Selected:=Form1.Edit1.Font.Color; Form2.ColorBox6.Selected:=Form1.Memo1.Font.Color; end;


procedure TForm2.Button4Click(Sender: TObject); begin Form2.ColorBox1.Selected:=clBtnFace; Form2.ColorBox4.Selected:=clBlack; Button1.Click; end;


procedure TForm2.Button5Click(Sender: TObject); begin Form2.ColorBox2.Selected:=clWhite; Form2.ColorBox5.Selected:=clBlack; Button2.Click; end;


procedure TForm2.Button6Click(Sender: TObject); begin Form2.ColorBox3.Selected:=clWhite; Form2.ColorBox6.Selected:=clBlack; Button3.Click; end;


procedure TForm2.Button1Click(Sender: TObject); begin if Form2.ColorBox1.Selected = Form2.ColorBox4.Selected then MessageDlg('Цвет фона и текста одинаковы и будут сливаться. Сделайте другой выбор',mtError,[mbOK],0) else begin Form1.Color:=Form2.ColorBox1.Selected; Form1.Label1.Color:=Form2.ColorBox1.Selected; Form1.Label2.Color:=Form2.ColorBox1.Selected; Form1.Label3.Color:=Form2.ColorBox1.Selected; Form1.Label4.Color:=Form2.ColorBox1.Selected; Form1.Label5.Color:=Form2.ColorBox1.Selected; Form1.Label8.Color:=Form2.ColorBox1.Selected; Form1.Label9.Color:=Form2.ColorBox1.Selected; Form1.Label10.Color:=Form2.ColorBox1.Selected; Form1.Label11.Color:=Form2.ColorBox1.Selected; Form1.Label12.Color:=Form2.ColorBox1.Selected; Form1.Label13.Color:=Form2.ColorBox1.Selected; Form1.Label14.Color:=Form2.ColorBox1.Selected; Form1.Label15.Color:=Form2.ColorBox1.Selected; Form1.Label18.Color:=Form2.ColorBox1.Selected; Form1.Label19.Color:=Form2.ColorBox1.Selected; Form2.Color:=Form2.ColorBox1.Selected; Form2.Label1.Color:=Form2.ColorBox1.Selected; Form2.Label2.Color:=Form2.ColorBox1.Selected; Form2.Label3.Color:=Form2.ColorBox1.Selected; Form2.Label4.Color:=Form2.ColorBox1.Selected; Form2.Label5.Color:=Form2.ColorBox1.Selected; Form2.Label6.Color:=Form2.ColorBox1.Selected; Form2.Label7.Color:=Form2.ColorBox1.Selected; Form3.Color:=Form2.ColorBox1.Selected; Form1.Label1.Font.Color:=Form2.ColorBox4.Selected; Form1.Label2.Font.Color:=Form2.ColorBox4.Selected; Form1.Label3.Font.Color:=Form2.ColorBox4.Selected; Form1.Label4.Font.Color:=Form2.ColorBox4.Selected; Form1.Label5.Font.Color:=Form2.ColorBox4.Selected; Form1.Label8.Font.Color:=Form2.ColorBox4.Selected; Form1.Label9.Font.Color:=Form2.ColorBox4.Selected; Form1.Label10.Font.Color:=Form2.ColorBox4.Selected; Form1.Label11.Font.Color:=Form2.ColorBox4.Selected; Form1.Label12.Font.Color:=Form2.ColorBox4.Selected; Form1.Label13.Font.Color:=Form2.ColorBox4.Selected; Form1.Label14.Font.Color:=Form2.ColorBox4.Selected; Form1.Label15.Font.Color:=Form2.ColorBox4.Selected; Form1.Label18.Font.Color:=Form2.ColorBox4.Selected; Form1.Label19.Font.Color:=Form2.ColorBox4.Selected; Form1.Button1.Font.Color:=Form2.ColorBox4.Selected; Form2.Label1.Font.Color:=Form2.ColorBox4.Selected; Form2.Label2.Font.Color:=Form2.ColorBox4.Selected; Form2.Label3.Font.Color:=Form2.ColorBox4.Selected; Form2.Label4.Font.Color:=Form2.ColorBox4.Selected; Form2.Label5.Font.Color:=Form2.ColorBox4.Selected; Form2.Label6.Font.Color:=Form2.ColorBox4.Selected; Form2.Label7.Font.Color:=Form2.ColorBox4.Selected; Form2.Button1.Font.Color:=Form2.ColorBox4.Selected; Form2.Button4.Font.Color:=Form2.ColorBox4.Selected; Form3.Color:=Form2.ColorBox1.Selected; end; end;


procedure TForm2.Button2Click(Sender: TObject); begin if Form2.ColorBox2.Selected = Form2.ColorBox5.Selected then MessageDlg('Цвета полей и текста одинаковы и будут сливаться. Сделайте другой выбор',mtError,[mbOK],0) else begin Form1.Edit1.Color:=Form2.ColorBox2.Selected; Form1.Edit2.Color:=Form2.ColorBox2.Selected; Form1.Edit3.Color:=Form2.ColorBox2.Selected; Form1.Edit4.Color:=Form2.ColorBox2.Selected; Form1.Edit5.Color:=Form2.ColorBox2.Selected; Form1.Edit6.Color:=Form2.ColorBox2.Selected; Form1.Edit7.Color:=Form2.ColorBox2.Selected; Form1.Edit8.Color:=Form2.ColorBox2.Selected; Form1.Edit9.Color:=Form2.ColorBox2.Selected; Form1.Edit10.Color:=Form2.ColorBox2.Selected; Form1.Edit11.Color:=Form2.ColorBox2.Selected; Form1.Edit12.Color:=Form2.ColorBox2.Selected; Form1.Edit1.Font.Color:=Form2.ColorBox5.Selected; Form1.Edit2.Font.Color:=Form2.ColorBox5.Selected; Form1.Edit3.Font.Color:=Form2.ColorBox5.Selected; Form1.Edit4.Font.Color:=Form2.ColorBox5.Selected; Form1.Edit5.Font.Color:=Form2.ColorBox5.Selected; Form1.Edit6.Font.Color:=Form2.ColorBox5.Selected; Form1.Edit7.Font.Color:=Form2.ColorBox5.Selected; Form1.Edit8.Font.Color:=Form2.ColorBox5.Selected; Form1.Edit9.Font.Color:=Form2.ColorBox5.Selected; Form1.Edit10.Font.Color:=Form2.ColorBox5.Selected; Form1.Edit11.Font.Color:=Form2.ColorBox5.Selected; Form1.Edit12.Font.Color:=Form2.ColorBox5.Selected; Form1.ComboBox1.Color:=Form2.ColorBox2.Selected; Form1.ComboBox2.Color:=Form2.ColorBox2.Selected; Form1.ComboBox3.Color:=Form2.ColorBox2.Selected; Form1.ComboBox4.Color:=Form2.ColorBox2.Selected; Form1.ComboBox5.Color:=Form2.ColorBox2.Selected; Form1.ComboBox6.Color:=Form2.ColorBox2.Selected; Form1.ComboBox1.Font.Color:=Form2.ColorBox5.Selected; Form1.ComboBox2.Font.Color:=Form2.ColorBox5.Selected; Form1.ComboBox3.Font.Color:=Form2.ColorBox5.Selected; Form1.ComboBox4.Font.Color:=Form2.ColorBox5.Selected; Form1.ComboBox5.Font.Color:=Form2.ColorBox5.Selected; Form1.ComboBox6.Font.Color:=Form2.ColorBox5.Selected; end; end;


procedure TForm2.Button3Click(Sender: TObject); begin if Form2.ColorBox3.Selected = Form2.ColorBox6.Selected then MessageDlg('Цвета полея и текста одинаковы и будут сливаться. Сделайте другой выбор',mtError,[mbOK],0) else begin Form1.Memo1.Color:=Form2.ColorBox3.Selected; Form1.Memo1.Font.Color:= Form2.ColorBox6.Selected end end;


procedure TForm2.Button7Click(Sender: TObject); begin ColorBox1.Selected:=clBtnFace; ColorBox2.Selected:=clWhite; ColorBox3.Selected:=clWhite; ColorBox4.Selected:=clBlack; ColorBox5.Selected:=clBlack; ColorBox6.Selected:=clBlack; Form1.Color:=clBtnFace; Form1.Label1.Color:=clBtnFace; Form1.Label2.Color:=clBtnFace; Form1.Label3.Color:=clBtnFace; Form1.Label4.Color:=clBtnFace; Form1.Label5.Color:=clBtnFace; Form1.Label8.Color:=clBtnFace; Form1.Label9.Color:=clBtnFace; Form1.Label10.Color:=clBtnFace; Form1.Label11.Color:=clBtnFace; Form1.Label12.Color:=clBtnFace; Form1.Label13.Color:=clBtnFace; Form1.Label14.Color:=clBtnFace; Form1.Label15.Color:=clBtnFace; Form1.Label18.Color:=clBtnFace; Form1.Label19.Color:=clBtnFace; Form1.Label1.Font.Color:=clBlack; Form1.Label2.Font.Color:=clBlack; Form1.Label3.Font.Color:=clBlack; Form1.Label4.Font.Color:=clBlack; Form1.Label5.Font.Color:=clBlack; Form1.Label8.Font.Color:=clBlack; Form1.Label9.Font.Color:=clBlack; Form1.Label10.Font.Color:=clBlack; Form1.Label11.Font.Color:=clBlack; Form1.Label12.Font.Color:=clBlack; Form1.Label13.Font.Color:=clBlack; Form1.Label14.Font.Color:=clBlack; Form1.Label15.Font.Color:=clBlack; Form1.Label18.Font.Color:=clBlack; Form1.Label19.Font.Color:=clBlack; Form1.Edit1.Color:=clWhite; Form1.Edit2.Color:=clWhite; Form1.Edit3.Color:=clWhite; Form1.Edit4.Color:=clWhite; Form1.Edit5.Color:=clWhite; Form1.Edit6.Color:=clWhite; Form1.Edit7.Color:=clWhite; Form1.Edit8.Color:=clWhite; Form1.Edit9.Color:=clWhite; Form1.Edit10.Color:=clWhite; Form1.Edit11.Color:=clWhite; Form1.Edit12.Color:=clWhite; Form1.Edit1.Font.Color:=clBlack; Form1.Edit2.Font.Color:=clBlack; Form1.Edit3.Font.Color:=clBlack; Form1.Edit4.Font.Color:=clBlack; Form1.Edit5.Font.Color:=clBlack; Form1.Edit6.Font.Color:=clBlack; Form1.Edit7.Font.Color:=clBlack; Form1.Edit8.Font.Color:=clBlack; Form1.Edit9.Font.Color:=clBlack; Form1.Edit10.Font.Color:=clBlack; Form1.Edit11.Font.Color:=clBlack; Form1.Edit12.Font.Color:=clBlack; Form1.ComboBox1.Color:=clWhite; Form1.ComboBox2.Color:=clWhite; Form1.ComboBox3.Color:=clWhite; Form1.ComboBox4.Color:=clWhite; Form1.ComboBox5.Color:=clWhite; Form1.ComboBox6.Color:=clWhite; Form1.ComboBox1.Font.Color:=clBlack; Form1.ComboBox2.Font.Color:=clBlack; Form1.ComboBox3.Font.Color:=clBlack; Form1.ComboBox4.Font.Color:=clBlack; Form1.ComboBox5.Font.Color:=clBlack; Form1.ComboBox6.Font.Color:=clBlack; Form1.Button1.Font.Color:=clBlack; Form1.Memo1.Color:=clWhite; Form1.Memo1.Font.Color:=clBlack; Form2.Color:=clBtnFace; Form2.Label1.Color:=clBtnFace; Form2.Label2.Color:=clBtnFace; Form2.Label3.Color:=clBtnFace; Form2.Label4.Color:=clBtnFace; Form2.Label5.Color:=clBtnFace; Form2.Label6.Color:=clBtnFace; Form2.Label7.Color:=clBtnFace; Form2.Label1.Font.Color:=clBlack; Form2.Label2.Font.Color:=clBlack; Form2.Label3.Font.Color:=clBlack; Form2.Label4.Font.Color:=clBlack; Form2.Label5.Font.Color:=clBlack; Form2.Label6.Font.Color:=clBlack; Form2.Label7.Font.Color:=clBlack; Form2.Button1.Font.Color:=clBlack; Form2.Button2.Font.Color:=clBlack; Form2.Button3.Font.Color:=clBlack; Form2.Button4.Font.Color:=clBlack; Form2.Button5.Font.Color:=clBlack; Form2.Button6.Font.Color:=clBlack; Form2.Button7.Font.Color:=clBlack; Form3.Color:=clBtnFace; end;


end.


unit Unit3;


interface


uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls;


type TForm3 = class(TForm)

Memo1: TMemo; private

{ Private declarations } public

{ Public declarations } end;


var Form3: TForm3;


implementation


{$R *.dfm}


end.


unit Unit4;


interface


uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls;


type TForm4 = class(TForm)

ComboBox1: TComboBox;

Label1: TLabel;

Label2: TLabel;

procedure ComboBox1KeyPress(Sender: TObject; var Key: Char); private

{ Private declarations } public

{ Public declarations } end;


var Form4: TForm4;


implementation


{$R *.dfm}


procedure TForm4.ComboBox1KeyPress(Sender: TObject; var Key: Char); begin if key <> '' then key:=#0; end; end.


ПРИЛОЖЕНИЕ Б

РУКОВОДСТВО ПОЛЬЗОВАТЕЛЯ


Данный программный продукт предназначен для расчёта статически определяемых стержневых систем неравного сечения на растяжение-сжатие.

Для выполнения расчета пользователю необходимо выполнить следующие действия:

ввести данные в поля ввода (рисунок Б.1);

нажать кнопку «Рассчитать» (рисунок Б.2).

Рисунок Б.1 – Ввод данных


Рисунок Б.2 – Нажатие на кнопку «Рассчитать»


После выполнения всех пунктов на экран будет выведен результат вычисления (Рисунок Б.3).

Рисунок Б.3 – Вывод результата вычисления


Пользователь может также настроить цвета формы, полей ввода данных и поле вывода расчётов. Для этого необходимо нажать на кнопку «Цвет» находящейся на вкладке «Настройки» главного меню (Рисунок Б.4).

Рисунок Б.4 – Нажатие на кнопку «Цвет»


После этого ему необходимо выбрать один из трёх, предложенных для настройки, элементов (Рисунок Б.5).

Рисунок Б.5 – Выбор настраиваемого элемента


Затем производиться необходимые настройки. Для того, что бы настройки вступили в силу, необходимо нажать кнопку «Принять». Для придания элементу стандартных настроек, необходимо нажать кнопку «По умолчанию». Для придания всем элементам стандартных настроек, необходимо нажать кнопку «Всё по умолчанию».

Рисунок Б.6 – Окна настроек цвета


Пользователь так же может настроить количество знаков после запятой для выводимых данных. Для этого необходимо нажать на подпункт «Точность» находящейся в пункте «Настройки» главного меню (Рисунок Б.7).

Рисунок Б.6 – Окна настроек точности


Также пользователь может вызвать справку о программном продукте и его разработчике. Для этого необходимо нажать на подпункт «О разработчике» находящейся в пункте «О программе» главного меню (Рисунок Б.8).

Рисунок Б.8 – Окно справки


Федеральное агентство морского и речного транспорта РФ

Федеральное государственное образовательное учреждение

высшего профессионального образования

САНКТ-ПЕТЕРБУРГСКИЙ ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ

ВОДНЫХ КОММУНИКАЦИЙ

Мурманский филиал



Кафедра Естественно научных и математических дисциплин


КУРСОВАЯ РАБОТА


Дисциплина: «Высокоуровневые методы информатики и программирования»

На тему: «Расчёт статически определяемых стержневых

систем неравного сечения на растяжение-сжатие»


ПОЯСНИТЕЛЬНАЯ ЗАПИСКА


Разработал студент: Калякин Андрей Николаевич

Группа: 241

Проверилпреподаватель: Бояркин Роман Алексеевич


«К защите допускаю»

Заведующий кафедрой ______________

(подпись)

Н.А. Сергеева

(ф.и.о.)

«____» _____________ 200__ г.


МУРМАНСК

2007

Федеральное агентство морского и речного транспорта РФ

Федеральное государственное образовательное учреждение

высшего профессионального образования

САНКТ-ПЕТЕРБУРГСКИЙ ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ

ВОДНЫХ КОММУНИКАЦИЙ

Мурманский филиал


Кафедра Естественно научных и математических дисциплин


Рассмотрено и одобрено

кафедрой ППТТ и ГС

Зав. кафедрой _________

______________________

«_____» ______________г.


ТЕХНИЧЕСКОЕ ЗАДАНИЕ

для курсовой работы студенту

Калякину Андрею Николаевичу


группа: 241


специальность: 080801.65 Прикладная информатика (в экономике)


Тема: «Расчёт статически определяемых стержневых систем неравного сечения, на растяжение-сжатие»


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


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

определение внутренних силовых факторов и деформации, возникающих в стержневой системе, при приложении продольных нагрузок;

построение эпюры продольных сил;

построение эпюры нормального напряжения;

построение эпюры абсолютной деформации;

реализация ввод данных и вывода расчетов;

обеспечение вывода справочной информации о программном продукте и его разработчике.


Содержание

Разработать сценарий работы приложения;

разработать макеты экранных форм;

разработать приложение, реализующее следующие функции:

ввод данных;

расчет и вывод результатов;

построение эпюр по полученным результатам;

вывод справочной информации о приложении.


Форма отчетности

Приложение, инсталлированное на ПК;

расчетно-пояснительная записка к курсовой работе.


Расчетно-пояснительная записка включает:

спецификацию используемого ПО;

сценарий работы приложения;

развернутое описание экранных форм;

описание алгоритмов формирования приложения (дерево вызова функций, требования к аппаратной платформе и т.п.);

текст приложения.


Руководитель работы:

Бояркин Р.А._________________

Дата выдачи задания:

01.10.2007г.

Дата сдачи работы:

17.12.2007г.

Задание получил_____________



СОДЕРЖАНИЕ


3 Разработка основных методов и алгоритмов программного продукта 12

4 Разработка функциональной схемы программного продукта 12

4.1 Схема процедуры построения графика функции 13

4.2 Схема процедуры решения 14

4.3 Схема процедуры «Применить» в функции «Настройки окна» 15

5 Разработка структурной схемы программного продукта 16


6.1 Построение графа диалога 18

6.2 Разработка форм ввода-вывода информации 19

7 Разработка тестов для программного продукта 21

Заключение 22

Библиографический список 23

ПРИЛОЖЕНИЕ Б – Руководство пользователя 40

Введение


Проблема справедливого распределения доходов стояла перед человечеством во все времена. На почве разделения прибылей вспыхивали конфликты и войны. Однако мы живём в цивилизованном обществе и вопросы дифференциации доходов для всех нас более чем важны.

Наша страна идёт очень сложным путём перестраивания собственной структуры экономики и рыночных отношений. Это неизбежно сопряжено с многочисленными трудностями и проблемами. Одной из них является увеличивающееся расслоение общества. Этому есть объективные причины:

После распада СССР, где все мы были в более менее равных условиях (а если не в равных, то это всеми силами скрывалось), большое количество населения попало в новые условия хозяйствования. И в результате «всеобщего передела” 1991-1993 годов большое количество предприятий перешло из государственных в частные руки. За этот период прослойка «успевших и сориентировавшихся» создала существенные причины для дальнейшего роста расслоения. В настоящий момент ситуация не является удовлетворительной, так как за последние 10 лет, помимо периодических скачков инфляции и нестабильной стоимости национальной валюты, население довольно значительно разделилось на очень бедных и очень богатых.

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



1 Понятие доходы населения, их классификация. Виды доходов


Итак, рассмотрим структуру доходов населения. В экономической науке понятие доход (income) включает в себя все денежные поступления конкретного человека или домохозяйства за определенный промежуток времени (месяц, год). Доход отдельного домохозяйства, как правило, подразделяют на три группы:

доход, получаемый владельцем фактора производства – труда;

доход, получаемый за счет использования иных факторов производства (капитала, земли, предпринимательских способностей);

так называемые трансфертные платежи.

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

Следует отличать доход от богатства (wealth); оно представляет собой стоимость всех средств, принадлежащих домохозяйству в конкретный момент времени. Богатство состоит из материальных объектов – дома, земля, автомобили, мебель, книги и т.д., а также финансовых средств – наличные деньги, сберегательные счета в банках, облигации, акции. Под залог богатства (а не дохода) можно получить кредиты в банке, богатство служит источником дохода.

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

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

Под экономической рентой понимается сумма, получаемая владельцем экономического ресурса сверх трансфертного вознаграждения. Экономическую ренту могут получать владельцы и земли, и труда, и капитала. Однако надо отметить, что экономическое содержание термина «рента» меняется в зависимости от уровня агрегативности. В макроэкономике, где рассматриваются составные части национального дохода, под «рентой» понимаются только рентные вознаграждения, получаемые владельцами земли и других натуральных ресурсов, имеющих жестко фиксированное суммарное предложение.

Очевидно, что при равном распределении доходов, какими бы благими намерениями оно не оправдывалось, в обществе не будут производиться так называемые предметы «роскоши», так как их некому будет купить. Сошлемся на высказывание экономиста И. Бентама: «При подведении всех частных богатств под один уровень общество должно лишиться всех тех предметов потребления, которые иначе иначе не могут существовать, как образуя ценность, превышающую установленный уровень». С другой стороны, столь же очевидно, что в обществе с неравным распределением доходов выпускаемая продукция и оказываемые услуги будут значительно разнообразнее, а структура потребления разных доходных групп будет существенно различаться. И то, что для одних будет предметом первой необходимости, для других может оказаться предметом роскоши.

3 Разработка основных методов и алгоритмов программного продукта 4 Разработка функциональной схемы программного продукта
4.1 Схема процедуры построения графика функции 4.2 Схема процедуры решения 4.3 Схема процедуры «Применить» в функции «Настройки окна» 5 Разработка структурной схемы программного продукта

6 Проектирование интерфейса пользователя


6.1 Построение графа диалога 6.2 Разработка форм ввода-вывода информации 7 Разработка тестов для программного продукта Заключение Библиографический список

ПРИЛОЖЕНИЕ А – Исходный текст программного продукта

ПРИЛОЖЕНИЕ Б – Руководство пользователя





КР.4.О.2.142.





Изм Лист № докумен. Подпись Дата
Разраб. Калякин А.Н.

СОДЕРЖАНИЕ


Литера Лист Листов
Проверил Шебанова Н.Н.

У

4 80
Руковод. Шебанова Н.Н.

МФ СПГУВК
Н. конт Величко И.П.

Утвердил ДикаревВ.И.




БИБЛИОГРАФИЧЕСКИЙ СПИСОК


1 Ицкович Г.М. Сопротивление материалов: Учеб. для сред. спец. учеб. заведений. – 9-е изд., стер. - М.: Высш. Шк., 2001. – 368с.

2 Фаронов В. Delphi 6 учебный курс. – СПб.: Питер, 2002. – 512с.

3 Культин Н.Б. Delphi 6. Программирование на Object Pascal. – СПб.: БХВ-Петербург, 2002. – 528с.

4 Хомоненко А.Д. и др. Delphi 7. Под общ. ред. А.Д.Хомоненко. – СПб.: БХВ-Петербург, 2003. – 1216с.







КР.4.О.2.142.





Изм Лист № докумен. Подпись Дата
Разраб. Калякин А.Н.

БИБЛИОГРАФИЧЕСКИЙ СПИСОК Литера Лист Листов
Проверил Бояркин

У

26 1
Руковод. Бояркин

МФ СПГУВК
Н. конт Величко

Утвердил Сергеева




7 РАЗРАБОТКА ТЕСТОВ ДЛЯ ПРОГРАММНОГО ПРОДУКТА


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

В нашем случае проводятся тест на правильность расчёта статически определяемой стержневой системы неравного сечения на растяжение-сжатие. Для проверки правильности выполнения программой операций расчета, необходимо проверить работу программы три раза. Для первой проверки необходимо ввести следующие данные: количество участков 3, длинна первого участка 10, длинна второго участка 10, длинна третьего участка 5 площадь первого участка 3, площадь второго участка 1, площадь третьего участка 2, количество действующих сил 3, точка приложения первой силы 5, точка приложения второй силы 15, точка приложения третьей силы 25, направление действия первой силы «Вправо», направление действия второй силы «Влево», направление действия третьей силы «Вправо», значение первой силы 4, значение второй силы 2, значение третьей силы 1, единицы измерения расстояний «м». Результат должен получиться следующий:

N1=3 кН;

N2=1 кН;

N3=1 кН;

σ1= 500 Па; λ1= 5000 кН/м * E;

σ2= 1000 Па; λ2= 3333,33333333333 кН/м * E;

σ3= 1000 Па; λ3= 1666,66666666667 кН/м * E;

σ4= 333,333333333333 Па; λ4= 3333,33333333333 кН/м * E;

σ5= 1000 Па; λ5= 5833,33333333333 кН/м * E;

Рисунок 7.1 – Пример построения эпюр


Для второй проверки необходимо ввести следующие данные: количество участков 3, длинна первого участка 8, длинна второго участка 10, длинна третьего участка 8, площадь первого участка 10, площадь второго участка 8, площадь третьего участка 5, количество действующих сил 3, точка приложения первой силы 5, точка приложения второй силы 14, точка приложения третьей силы 26, направление действия первой силы «Влево», направление действия второй силы «Вправо», направление действия третьей силы «Вправо», значение первой силы 190, значение второй силы 40, значение третьей силы 80, единицы измерения расстояний «см». Результат должен получиться следующий:

N1=70 кН;

N2=120 кН;

N3=80 кН;

σ1= 70000000 Па; λ1= 350000000 кН/см * E;

σ2= 120000000 Па; λ2= 10000000 кН/см * E;

σ3= 150000000 Па; λ3= 910000000 кН/см * E;

σ4= 100000000 Па; λ4= 1310000000 кН/см * E;

σ5= 160000000 Па; λ5= 2590000000 кН/см * E;

Рисунок 7.1 – Пример построения эпюр


Для третьей проверки необходимо ввести следующие данные: количество участков 3, длинна первого участка 80, длинна второго участка 50, длинна третьего участка 120, площадь первого участка 60, площадь второго участка 20, площадь третьего участка 40, количество действующих сил 3, точка приложения первой силы 40, точка приложения второй силы 100, точка приложения третьей силы 250, направление действия первой силы «Влево», направление действия второй силы «Влево», направление действия третьей силы «Вправо», значение первой силы 0.15, значение второй силы 0.11, значение третьей силы 0.05, единицы измерения расстояний «мм». Результат должен получиться следующий:

N1= 0,21 кН;

N2= 0,06 кН;

N3= 0,05 кН;

σ 1= 3500000 Па; λ1= 140000000 кН/мм * E;

σ2= 1000000 Па; λ2= 180000000 кН/мм * E;

σ3= 3000000 Па; λ3= 240000000 кН/мм * E;

σ4= 2500000 Па; λ4= 165000000 кН/мм * E;

σ5= 1250000 Па; λ5= 15000000 кН/мм * E;

Рисунок 7.1 – Пример построения эпюр






КР.4.О.2.142.





Изм Лист № докумен. Подпись Дата
Разраб. Калякин А.Н.

7 РАЗРАБОТКА ТЕСТОВ ДЛЯ ПРОГРАММНОГО ПРОДУКТА Литера Лист Листов
Проверил Бояркин Р.А.

У

21 1
Руковод. Бояркин Р.А.

МФ СПГУВК
Н. конт Величко И.П.

Утвердил Сергеева Н.А.




3 ПРОЕКТИРОВАНИЕ БАЗ ДАННЫХ


Проектирование БД заключается в ее многоступенчатом описа­нии с различной степенью детализации и формализации, в ходе ко­торого производится уточнение и оптимизация структуры БД. Про­ектирование начинается с описания предметной области и задач ИС, идет к более абстрактному уровню логического описания дан­ных и далее — к схеме физической (внутренней) модели БД. Трем основным уровням моделирования системы — концептуальному, ло­гическому и физическому соответствуют три последовательных этапа детализации описания объектов БД и их взаимосвязей.

. На концептуальном уровне проектирования производится смы­словое описание информации предметной области, определяются 6е границы, производится абстрагирование от несущественных де­талей. В результате определяются моделируемые объекты, их свой­ства и связи. Выполняется структуризация знаний о предметной об­ласти, стандартизируется терминология. Затем строится концепту­альная модель, описываемая на естественном языке. Для описания свойств и связей объектов применяют различные диаграммы.

На следующем шаге принимается решение о том, в какой кон­кретно СУБД будет реализована БД. Выбор СУБД является сложной задачей и должен основываться на потребностях с точки зрения ИС и пользователей. Определяющими здесь являются вид программно­го продукта и категория пользователей (профессиональные программисты или конечные пользователи).

Другими показателями, влияющими на выбор СУБД, являются:

удобство и простота использования;

качество средств разработки, защиты и контроля БД;

уровень коммуникационных средств (в случае применения ее в сетях);

фирма-разработчик;

стоимость.

Каждая конкретная СУБД работает с определенной моделью данных. Под моделью данных понимается способ их взаимосвязи: в виде иерархического дерева, сложной сетевой структуры или свя­занных таблиц. В настоящее время большинство СУБД использует табличную модель данных, называемую реляционной.

На логическом уровне производится отображение данных кон­цептуальной модели в логическую модель в рамках той структуры данных, которая поддерживается выбранной СУБД. Логическая мо­дель не зависит от конкретной СУБД и может быть реализована на любой СУБД реляционного типа.

На физическом уровне производится выбор рациональной струк­туры хранения данных и методов доступа к ним, которые обеспечива­ет выбранная СУБД. На этом уровне решаются вопросы эффектив­ного выполнения запросов к БД, для чего строятся дополнительные структуры, например индексы. В физической модели содержится информация обо всех объектах БД (таблицах, индексах, процедурах и др.) и используемых типах данных. Физическая модель зависит от конкретной СУБД. Одной и той же логической модели может соот­ветствовать несколько разных физических моделей. Физическое Проектирование является начальным этапом реализации БД.

На следующем шаге принимается решение о том, в какой кон­кретно СУБД будет реализована БД.







КР.4.О.2.142.





Изм Лист № докумен. Подпись Дата
Разраб. Калякин А.Н.

3 РАЗРАБОТКА ОСНОВНЫХ

МЕТОДОВ И АЛГОРИТМОВ
ПРОГРАММНОГО ПРОДУКТА

Литера Лист Листов
Проверил Бояркин Р.А.

У

10 3
Руковод. Бояркин Р.А.

МФ СПГУВК
Н. конт Величко И.П.

Утвердил Сергеева Н.А.




3 НОрмолизация отношений


Нормализация отношений — это итерационный обратный процесс декомпозиции начального отношения на несколько более простых отношений меньшей размерности. Под возвратностью процесса понимают то, что операция объединения отношений, полученных в результате декомпозиции, должна дать начальное отношение. В результате нормализации состав атрибутов отношений БД должны отвечать таким требованиям:

между атрибутами должны исключаться нежелательные функциональные зависимости;

группирование атрибутов не должно иметь убыточного дублирования данных;

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

Аппарат нормализации был разработан американским ученым Э.Ф. Коддом. Каждая нормальная форма ограничивает тип допустимых зависимостей между атрибутами. Кодд выделил три нормальных формы (сокращенное название 1НФ, 2НФ и ЗНФ). Совершеннейшая из них - это ЗНФ. Теперь уже известные и определенные 4НФ, 5НФ. Нормализация отношений выполняется за несколько шагов:

построение отношений согласно требованиям;

изъятие неполных функциональных зависимостей;

изъятие транзитивных зависимостей;

изъятие многозначных зависимостей;

обеспечение общей декомпозиции.






ОП.4.О.2.142.





Изм Лист № докумен. Подпись Дата
Разраб. Калякин А.Н.

3 нормолизация отношений Литера Лист Листов
Проверил


У

9 1
Руковод.


МФ СПГУВК
Н. конт


Утвердил





4 РАЗРАБОТКА СТРУКТУРНЫХ СХЕМ ПРОГРАММНОГО

ПРОДУКТА


В данном разделе мы рассмотрим три функциональных схем программного продукта, а именно:

схема процедуры «Сохранить» в главном меню (рисунок 4.1);

схема процедуры расчёта (рисунок 4.2);

схема процедуры «Загрузить» в главном меню (рисунок 4.3).

4.1 Схема процедуры «Сохранить» в главном меню

При выборе в главном меню пункта «Файл» и подпункта «Сохранить» в нем, появляться окно диалога выбора имени файла. После его выбора, происходит сохранение с полей ввода данных, в текстовый файл формата «txt», при этом выбор формата происходит независимо от того, был ли он указан.

Сохранение

файла

Вызов окна диалога


Создание файла


Сохранение из

полей




нет да


нет да

Присвоение файлу формата «tхt»





Рисунок 4.1 – Схема процедуры «Сохранить» в главном меню

4.2 Схема процедуры расчёта

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



Ввод данных


Блокировка ввода недопустимых символов



Расчёт статически определяемой стержневой системы, неравного сечения, на растяжение-сжатие


нет да



Вывод результатов


Вывод ошибки




Построение эпюр







Рисунок 4.2 – Схема процедуры решения


4.3 Схема процедуры «Загрузить» в главном меню


При выборе в главном меню пункта «Файл» и подпункта «Сохранить» в нем, появляться окно диалога выбора файла. Если он не был выбран, то процедура начинает работу заново, если был выбран, то происходит открытие файла. После чего происходит чтение данных, и их загрузка в поля ввода на форме, затем происходит вывод расчётов и построение эпюр.

Вызов окна диалога


Загрузка данных в поля


Открытие файла







Чтение файла


да нет







Расчёт статически определяемых стержневых систем неравного сечения на растяжение-сжатие


Сохранение цвета формы



Сохранение цвета текста


Вывод результатов


Построение эпюр







Рисунок 4.3 – Схема процедуры «Загрузить» в главном меню






КР.4.О.2.142.





Изм Лист № докумен. Подпись Дата
Разраб. Калякин А.Н.

4 РАЗРАБОТКА
ФУНКЦИОНАЛЬНЫХ СХЕМ
ПРОГРАММНОГО ПРОДУКТА

Литера Лист Листов
Проверил Бояркин Р.А.

У

13 3
Руковод. Бояркин Р.А.

МФ СПГУВК
Н. конт Величко И.П.

Утвердил Сергеева Н.А.




5 РАЗРАБОТКА ФУНКЦИОНАЛЬНОЙ СХЕМЫ ПРОГРАММНОГО ПРОДУКТА

Ниже представлена функциональная схема программного продукта.

Разработчик

Настройки цвета

Настройки точности




Расчёт статически определяемых стержневых систем неравного сечения,

на растяжение-сжатие










Рисунок 5.1 – Функциональная схема программного продукта


Рассмотрим далее основные процедуры программы. В процедуре «Расчёты» программа после ввода данных рассчитывает статически определяемые стержневые системы неравного сечения на растяжение-сжатие и строит эпюры по полученным данным.

В программе есть функция «Меню», в которую входят несколько процедур:

процедура «Новый» (отвечает за сброс введённых данных);

процедура «Сохранить» (сохраняет данные в файл);

процедура «Загрузить» (загружает раннее сохраненные данные из файла);

процедура «Выход» (завершает работу с программой);

процедура «Цвет» (позволяет изменять цветовую схему интерфейса программы);

процедура «Точность» (позволяет выбрать количество знаков после запятой для выводимых данных);

процедура «О разработчике» (показывает окно с информацией о программном продукте и его разработчике).






КР.4.О.2.142.





Изм Лист № докумен. Подпись Дата
Разраб. Калякин А.Н.

5 РАЗРАБОТКА ФУНКЦИОНАЛЬНОЙ СХЕМЫ ПРОГРАММНОГО ПРОДУКТА Литера Лист Листов
Проверил Бояркин Р.А.

У

16 2
Руковод. Бояркин Р.А.

МФ СПГУВК
Н. конт Величко И.П.

Утвердил Сергеева Н.А.




6 ПРОЕКТИРОВАНИЕ ИНТЕРФЕЙСА ПОЛЬЗОВАТЕЛЯ


6.1 Построение графа диалога

Интерфейс программного продукта, разработанного в ходе выполнения курсовой работы, представляет собой окно, состоящее из трех частей (Рисунок 6.1):

поля ввода данных;

поле вывода расчетов;

поле построения эпюр.

В программе также реализовано меню (Рисунок 6.3), состоящее из следующих разделов (Рисунок 6.1):


Меню


файл настройки о программе


новый цвет о разработчике

загрузить точность

сохранить

выход

Рисунок 6.1 – Граф диалог


Сведение о разработчике и настройка цветовой схемы интерфейса выводятся в отдельных окнах.

Поле построения эпюр остается пустым до тех пор, пока пользователь не введет правильные данные и не нажмет кнопку «Построить».

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


6.2 Разработка форм ввода-вывода информации

На основном окне программы находиться несколько полей ввода данных, поле построения эпюр и поле вывода расчётов (Рисунок 6.2).

Рисунок 6.2 – Окно программы


Рисунок 6.3 – Функция «меню»


При вводе недопустимых значений, или при наличии пустых окон ввода данных, на экран выводиться сообщение об ошибке и её причина (Рисунок 6.4).

Рисунок 6.4 – Вывод предупреждения


Пользователь также может изменять по своему усмотрению цветовую схему интерфейса (Рисунок 6.5).

Рисунок 6.5 – Окно настроек цветовой схемы интерфейса


Меню настроек также имеет защиту от неверных действий пользователя (Рисунок 6.6).

Рисунок 6.6 – Вывод ошибки настроек цвета


Так же предусмотрен вывод справочной информации о программном продукте и его разработчике (Рисунок 6.7).

Рисунок 6.7 ­­– Информация о разработчике







КР.4.О.2.142.





Изм Лист № докумен. Подпись Дата
Разраб. Калякин А.Н.

6 ПРОЕКТИРОВАНИЕ
ИНТЕРФЕЙСА ПОЛЬЗОВАТЕЛЯ

Литера Лист Листов
Проверил Бояркин Р.А.

У

18 3
Руковод. Бояркин Р.А.

МФ СПГУВК
Н. конт Величко И.П.

Утвердил Сергеева Н.А.




6 ПРОЕКТИРОВАНИЕ ИНТЕРФЕЙСА ПОЛЬЗОВАТЕЛЯ


6.1 Построение графа диалога

Интерфейс программного продукта, разработанного в ходе выполнения курсовой работы, представляет собой окно, состоящее из трех частей (Рисунок 6.1):

поля ввода данных;

поле вывода расчетов;

поле построения эпюр.

В программе также реализовано меню, состоящее из следующих разделов (Рисунок 6.2):

файл (основное меню программы):

новый (очищение всех полей);

загрузить (загрузка сохраненных ранее данных);

сохранить (сохранение данных);

выход (завершение работы программы);

настройки (меню настроек):

цвет (настройки цветовой схемы интерфейса);

точность (выбор количества знаков после запятой для выводимых данных);

о программе (меню информации о программном продукте):

о разработчике (вывод справочной информации о программном продукте и его разработчике);

Сведение о разработчике и настройка цветовой схемы интерфейса выводятся в отдельных окнах.

Поле построения эпюр остается пустым до тех пор, пока пользователь не введет правильные данные и не нажмет кнопку «Построить».

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


6.2 Разработка форм ввода-вывода информации

На основном окне программы находиться несколько полей ввода данных, поле построения эпюр и поле вывода расчётов (Рисунок 6.1).

Рисунок 6.1 – Окно программы


Рисунок 6.2 – Функция «меню»


При вводе недопустимых значений, или при наличии пустых окон ввода данных, на экран выводиться сообщение об ошибке и её причина (Рисунок 6.3).

Рисунок 6.3 – Вывод предупреждения


Пользователь также может изменять по своему усмотрению цветовую схему интерфейса (Рисунок 6.4).

Рисунок 6.4 – Окно настроек цветовой схемы интерфейса


Меню настроек также имеет защиту от неверных действий пользователя (Рисунок 6.5).

Рисунок 6.5 – Вывод ошибки настроек цвета


Так же предусмотрен вывод справочной информации о программном продукте и его разработчике (Рисунок 6.6).

Рисунок 6.6 ­­– Информация о разработчике







КР.4.О.2.142.





Изм Лист № докумен. Подпись Дата
Разраб. Калякин А.Н.

6 ПРОЕКТИРОВАНИЕ
ИНТЕРФЕЙСА ПОЛЬЗОВАТЕЛЯ

Литера Лист Листов
Проверил Бояркин Р.А.

У

18 3
Руковод. Бояркин Р.А.

МФ СПГУВК
Н. конт Величко И.П.

Утвердил Сергеева Н.А.




1 ВЫБОР ЯЗЫКА И СРЕДЫ ПРОГРАММИРОВАНИЯ


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

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

Delphi – среда программирования, основанная на языке Turbo Pascal, относящаяся к классу RAD – (Rapid Application Development – «Средство быстрой разработки приложений») средств CASE – технологии. Delphi сделала разработку мощных приложений Windows быстрым процессом, доставляющим удовольствие. Приложения Windows, для создания которых требовалось большое количество человеческих усилий, например в С++, теперь могут быть написаны одним человеком, использующим Delphi.

Размещение объектов в Delphi связано с более тесными отношениями между объектами и реальным программным кодом. Объекты помещаются на форму, при этом код, отвечающий объектам, автоматически записывается в исходный файл. Этот код компилируется, обеспечивая существенно более высокую производительность, чем визуальная среда, которая интерпретирует информацию лишь в ходе исполнения программы.

Благодаря этим преимуществам, среда программирования Delphi является оптимальным выбором для написания сложных программ с большим количеством графических объектов на несложном языке Turbo Pascal.






КР.4.О.2.142.





Изм Лист № докумен. Подпись Дата
Разраб. Калякин А.Н.

1 ВЫБОР ЯЗЫКА И СРЕДЫ
ПРОГРАММИРОВАНИЯ

Литера Лист Листов
Проверил Бояркин Р.А.

У

7 2
Руковод. Бояркин Р.А.

МФ СПГУВК
Н. конт Величко И.П.

Утвердил Сергеева Н.А.