diff:=gam[i,2]/(0.5*ycv[2])+small;[i,2]:=beta*diff;[i,1]:=ajm[i,2];[i,2]:=ajm[i,2]*area;[i,1]:=(beta-1)*ajp[i,2]/(rv[3]*xcv[i]);[i,2]:=ajp[i,2]+ajm[i,1]*area;(kbcj1[i]=1) then[i,2]:=sc[i,2]+ajm[i,2]*f[i,1,nf][i,1]:=ajp[i,1]-flxpj1[i];[i,1]:=flxcj1[i];:=ajm[i,2]/sp[i,1];[i,2]:=sp[i,2]-ajp[i,1]*temp;[i,2]:=ajp[i,2]-ajm[i,1]*temp;[i,2]:=sc[i,2]+sc[i,1]*temp;;[i,2]:=sp[i,2]+ajm[i,2];
ajm[i,2]:=0.;
//Рассматривается граница j=M1
area:=rv[M1]*xcv[i];:=gam[i,M2]/(0.5*ycv[M2])+small;[i,M2]:=beta*diff;[i,M1]:=ajp[i,M2];[i,M2]:=ajp[i,M2]*area;[i,M1]:=(beta-1)*ajm[i,M2]/(rv[M2]*xcv[i]);[i,M2]:=ajm[i,M2]+ajp[i,M1]*area;(kbcM1[i]=1) then[i,M2]:=sc[i,M2]+ajp[i,M2]*f[i,M1,2][i,M1]:=ajm[i,M1]-flxpM1[i];[i,M1]:=flxcM1[i];:=ajp[i,M2]/sp[i,M1];[i,M2]:=sp[i,M2]-ajm[i,M1]*temp;[i,M2]:=ajm[i,M2]-ajp[i,M1]*temp;[i,M2]:=sc[i,M2]+sc[i,M1]*temp;;[i,M2]:=sp[i,M2]+ajp[i,M2];[i,M2]:=0.;;
//Построение массивов sp[i,j] и sc[i,j]j:=2 to M2 doi:=2 to L2 do:=aip[i,j]+aim[i,j]+ajp[i,j]+ajm[i,j]; //сумма соседних коэф-тов:=anb*rlx; //инерция I[i,j]:=sp[i,j]+anb+ainr; //коэф-т aP[i,j]:=sc[i,j]+ainr*f[i,j,1]; //коэф-т b
end;
//Вызов процедуры Solve для получения решения дискретных аналогов
end;;;::=time+dt;:=iter+1;(iter>=last) then kstop:=1;;
TForm1.Button1Click(Sender: TObject);;not TryStrToFloat(Form1.Edit1.Text, t1) or not TryStrT(Form1.Edit2.Text, t2)(StrToFloat(Form1.Edit2.Text) < 0) or (StrTFloat(Form1.Edit1.Text) < 0) then(handle, PChar('Введите корректные температуры!'), PChar('Ошибка'), MB_OK+MB_ICONWARNING)t1 >= t2 then
begin(handle, PChar(' Температура на границах внутренней трубы должна ' + #10 + 'быть не равной и меньше температуры на участке нагрева!'), PChar('Ошибка'), MB_OK+MB_ICONSTOP)
endStrToFloat(Form1.Edit3.Text) >= StrToFloat(Form1.Edit1.Text) then(handle, PChar('Температура жидкости должна быть меньше температуры стенки канала!'), PChar('Ошибка'), MB_OK+MB_ICONSTOP)(StrToFloat(Form1.Edit2.Text) - StrToFloat(Form1.Edit1.Text) < 10) then.Label4.Caption := 'Выбран материал кожуха: ' + material + #10 + 'На внутренней границе ' + Form1.Edit1.Text + ' C' + #176 + #10 + 'По каналу течет жидкость ' + Form1.Edit3.Text + ' C' + #176 + #10 + 'Нагрев идет с нижней части трубы ' + Form1.Edit2.Text + ' C' + #176;(Form1.RadioGroup1.ItemIndex = 2) then.Label1.Caption := 'Материал кожуха: ' + material + '.';.Caption := 'Нагрев кожуха ';;(Form1.RadioGroup1.ItemIndex = 1) then.Label1.Caption := 'Выбрана жидкость:' + gidkost + '.';.Caption := 'Нагрев жидкости';;;;;;:;(kstop<>0) then:= 0;.Button3.Click;;;;Lab1;;;;;;
TForm1.Button2Click(Sender: TObject);
// нажатие на кнопку строит графическую иллюстрацию
var, j: integer;Form3.StringGrid2.Cells[1,1] = '' then(handle, PChar('Сначала необходимо произвести расчет! !'), PChar('Ошибка'), MB_OK+MB_ICONERROR).N1.Click;.Show();;;
TForm3.Button1Click(Sender: TObject);
// сохранение значений в excel файл
var
znac : double;(Form1.RadioGroup1.ItemIndex = 2) then(Form3.stringGrid2.Cells[49,17] = '') then(handle, PChar('Таблица пустая! ' + #10 + 'Вы точно хотите сохранить?'), PChar('Сохранение'), MB_OK+MB_ICONWARNING)
elseSaveAsExcelFile(Form3.stringGrid2, 'Значения нагрева кожуха', 'c:\teplo.xls') then
ShowMessage('Данные успешно сохранены!');
end;(Form1.RadioGroup1.ItemIndex = 1) then(Form3.stringGrid1.Cells[1,17] = '') then(handle, PChar('Таблица пустая! ' + #10 + 'Вы точно хотите сохранить?'), PChar('Сохранение'), MB_OK+MB_ICONWARNING)
elseSaveAsExcelFile(Form3.stringGrid1, 'Значения нагрева жидкости', 'c:\teplo1.xls') then
ShowMessage('Данные успешно сохранены!');
end
;
TForm4.Button1Click(Sender: TObject);
// построение графической иллюстрации
var
i,j1,l,l1,mass,mass1 :integer;
temp, tem1,znach : double;
// задается стиль пера.image1.Canvas.Brush.Style := bsDiagCross;
// задается цвет карандаша.image1.Canvas.Pen.Color := clBlack;
// строиться прямоугольник.image1.Canvas.Rectangle(0,0,800,650);
// очищается стиль.image1.Canvas.Brush.Style := bsClear;:= (temperGraf+2)/210;:= 38;:= l; := 7;
// строиться сам рисунок, для каждой четверти круга свой цикл
// левый верхнийmass:=26 to ncvlx+2 do:= j;:=75 - mass;i:= ncvly+2 downto 1 do
// сравнивается код цвета со значением и красится в определеннй
// цвет.image1.Canvas.Brush.Color := color_schema[round(StrToFloat(Form3.StringGrid2.Cells[mass1,i])/tem1)];.image1.Canvas.Pen.Color := clBlack;Form4.N2.Checked = false then.image1.Canvas.Pen.Color := color_schema[round(StrToFloat(Form3.StringGrid2.Cells[mass1,i])/tem1)];.image1.Canvas.Pie(j1,j1,650-j1,650-j1,massI[mass+1],massJ[mass+1],massI[mass],massJ[mass]);:= j1+j;;;
// левый нижнийmass:=1 to 24 do:= j;:= mass + 1;i:=17 downto 1 do.image1.Canvas.Brush.Color := color_schema[round(StrToFloat(Form3.StringGrid2.Cells[25-mass,i])/tem1)];.image1.Canvas.Pen.Color := clBlack;Form4.N2.Checked = false then.image1.Canvas.Pen.Color := color_schema[round(StrToFloat(Form3.StringGrid2.Cells[25-mass,i])/tem1)];.image1.Canvas.Pie(j1,j1,650-j1,650-j1,massI[mass+1],massJ[mass+1],massI[mass],massJ[mass]);:= j1+j;;;
// правый верхнийmass:=1 to 24 do:= j;:= 25 - mass;i:=17 downto 1 do.image1.Canvas.Brush.Color := color_schema[round(StrToFloat(Form3.StringGrid2.Cells[mass1,i])/tem1)];.image1.Canvas.Pen.Color := clBlack;Form4.N2.Checked = false then.image1.Canvas.Pen.Color := color_schema[round(StrToFloat(Form3.StringGrid2.Cells[mass1,i])/tem1)];.image1.Canvas.Pie(j1,j1,650-j1,650-j1,massI1[mass],massJ1[mass],massI1[mass+1],massJ1[mass+1]);:= j1+j;;;
// правый нижнийmass:=26 to 49 do:= j;:= 75 - mass;i:=17 downto 1 do.image1.Canvas.Brush.Color := color_schema[round(StrToFloat(Form3.StringGrid2.Cells[mass1,i])/tem1)];.image1.Canvas.Pen.Color := clBlack;Form4.N2.Checked = false then.image1.Canvas.Pen.Color := color_schema[round(StrToFloat(Form3.StringGrid2.Cells[mass1,i])/tem1)];.image1.Canvas.Pie(j1,j1,650-j1,650-j1,massI1[mass],massJ1[mass],massI1[mass+1],massJ1[mass+1]);:= j1+j;;;
.image1.Canvas.Brush.Style := bsClear;.image1.Canvas.Brush.Style := bsSolid;.image1.Canvas.Brush.Color := clWhite;.image1.Canvas.Pen.Color := clBlack;.image1.Canvas.Ellipse(130,130,520,520);.image1.Canvas.Brush.Style := bsClear;
end;