Другое: Много неразобранного материала
Описание
Характеристики учебной работы
Список файлов
- Много неразобранного материала
- Sems
- Project3.bdsproj 7,7 Kb
- Project3.bdsproj.local 319 b
- Project3.cfg 494 b
- Project3.dpr 887 b
- Project3.exe 45 Kb
- Project3.identcache 50 b
- __history
- Project3.bdsproj.~1~ 8,17 Kb
- Project3.bdsproj.~2~ 7,7 Kb
- Project3.bdsproj.~3~ 7,7 Kb
- Project3.bdsproj.~4~ 7,7 Kb
- Project3.dpr.~1~ 262 b
- Project3.dpr.~2~ 673 b
- Project3.dpr.~3~ 710 b
- Project3.dpr.~4~ 803 b
- mmto_soft_dz
- ._Shema.bmp 4 Kb
- Proga.jpg 141,17 Kb
- Project2.bdsproj 8,17 Kb
- Project2.bdsproj.local 902 b
- Project2.cfg 498 b
- Project2.dpr 188 b
- Project2.exe 454 Kb
- Project2.identcache 79 b
- Project2.res 4,29 Kb
- Shema.bmp 219,78 Kb
- Unit1.dcu 11,84 Kb
- Unit1.ddp 51 b
- Unit1.dfm 5,73 Kb
- Unit1.pas 7,11 Kb
- Unit1.txt 7,1 Kb
- Unit1.~ddp 51 b
- Unit1.~dfm 5,73 Kb
- Unit1.~pas 7,11 Kb
- Домашнее задание 2.doc 443 Kb
- Кейс № 02 (ПУЗ).doc 964 Kb
- Прога
- FYI.JPG 51,74 Kb
- FYI_FYJ.JPG 51,62 Kb
- MZI_MZJ.JPG 54,9 Kb
- ferma.BCS 2,08 Kb
- ferma.PVTS 67 b
- ferma.db 1,31 Mb
- ferma.emat 64 Kb
- ferma.esav 64 Kb
- ferma.full 64 Kb
- ferma.mntr 732 b
- ferma.rst 64 Kb
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, Grids, ExtCtrls;
type
TForm1 = class(TForm)
Button1: TButton;
StringGrid1: TStringGrid;
Edit1: TEdit;
Edit2: TEdit;
Edit3: TEdit;
Edit4: TEdit;
Edit5: TEdit;
Label1: TLabel;
Label2: TLabel;
Label3: TLabel;
Label4: TLabel;
Label5: TLabel;
Label6: TLabel;
Label7: TLabel;
Label8: TLabel;
Label9: TLabel;
Label10: TLabel;
Edit6: TEdit;
Label11: TLabel;
Label12: TLabel;
Image1: TImage;
Edit7: TEdit;
Label13: TLabel;
Label14: TLabel;
Image2: TImage;
Image3: TImage;
Image4: TImage;
Image5: TImage;
Label16: TLabel;
Label15: TLabel;
Label17: TLabel;
Label18: TLabel;
Bevel1: TBevel;
Bevel2: TBevel;
Bevel3: TBevel;
Bevel5: TBevel;
Bevel6: TBevel;
Bevel4: TBevel;
Label19: TLabel;
procedure Button1Click(Sender: TObject);
procedure FormCreate(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
const
n=200;
var
Form1: TForm1;
E,C1,L3,R1,R2,R3:real;//значения ЭДС, емкости, индуктивности и рзеисторов
delta:extended; //шаг дискретизации
a,b,c,d,R0:extended; //коэффициенты уравнения
ResCurrentL: array [1..n] of extended; //массив значений тока на индуктивности
ResVoltageL: array [1..n] of extended; //массив значений напряжения на индуктивности
ResCurrentC: array [1..n] of extended; //массив значений тока на емкости
ResVoltageC: array [1..n] of extended; //массив значений напряжения на емкости
implementation
{$R *.dfm}
function CurrentL(I1:extended;I2:extended):extend ed; //вычисление тока на индуктивности
begin
result:=((2*a+b-delta*c)*I2-a*I1-delta*d )/(a+b);
end;
function VoltageL(I1:extended;I2:extended):extend ed; //вычисление напряжения на индуктивности
begin
result:=L3*(I2-I1)/delta;
end;
function VoltageC(I1:extended;I2:extended):extend ed; //вычисление тока на емкости
begin
result:=E-L3*(I2-I1)/delta;
end;
function CurrentC(V1:extended;V2:extended):extend ed; //вычисление напряжения на емкости
begin
result:=C1*(V2-V1)/delta;
end;
procedure GrafikImage2; //график зависимотси тока на индуктивности от времени
var
ymin,ymax,y,my,mx:extended;
i,x0,y0:integer;
begin
i:=1;
ymin:=ResCurrentL[i+2];
ymax:=ResCurrentL[i+2];
repeat
y:=ResCurrentL[i];
if y<ymin then ymin:=y;
if y>ymax then ymax:=y;
inc(i);
until i=n;
my:=105/abs(ymax-ymin);
mx:=705/n;
x0:=0;
y0:=105-abs(Round(ymin*my));
i:=1;
with Form1.Image2.Canvas do
begin
MoveTo(x0,y0);
repeat
y:=ResCurrentL[i+2];
LineTo(x0+Round(i*mx),y0-Round(y*my));
inc(i);
until i+2=n;
end;
end;
procedure GrafikImage3; //график зависимости наряжения на индуктивности от времени
var
ymin,ymax,y,my,mx:extended;
i,x0,y0:integer;
begin
i:=1;
ymin:=ResVoltageL[i+2];
ymax:=ResVoltageL[i+2];
repeat
y:=ResVoltageL[i];
if y<ymin then ymin:=y;
if y>ymax then ymax:=y;
inc(i);
until i=n;
my:=105/abs(ymax-ymin);
mx:=705/n;
x0:=0;
y0:=105-abs(Round(ymin*my));
i:=1;
with Form1.Image3.Canvas do
begin
MoveTo(x0,y0);
repeat
y:=ResVoltageL[i+2];
LineTo(x0+Round(i*mx),y0-Round(y*my));
inc(i);
until i+2=n;
end;
end;
procedure GrafikImage4; //график зависимости тока на емкости от времени
var
ymin,ymax,y,my,mx:extended;
i,x0,y0:integer;
begin
i:=1;
ymin:=ResCurrentC[i+2];
ymax:=ResCurrentC[i+2];
repeat
y:=ResCurrentC[i];
if y<ymin then ymin:=y;
if y>ymax then ymax:=y;
inc(i);
until i=n;
my:=105/abs(ymax-ymin);
mx:=705/n;
x0:=0;
y0:=105-abs(Round(ymin*my));
i:=1;
with Form1.Image4.Canvas do
begin
MoveTo(x0,y0);
repeat
y:=ResCurrentC[i+2];
LineTo(x0+Round(i*mx),y0-Round(y*my));
inc(i);
until i+2=n;
end;
end;
procedure GrafikImage5; //график зависимости напряжения на емкости от времени
var
ymin,ymax,y,my,mx:extended;
i,x0,y0:integer;
begin
i:=1;
ymin:=ResVoltageC[i+2];
ymax:=ResVoltageC[i+2];
repeat
y:=ResVoltageC[i];
if y<ymin then ymin:=y;
if y>ymax then ymax:=y;
inc(i);
until i=n;
my:=105/abs(ymax-ymin);
mx:=705/n;
x0:=0;
y0:=105-abs(Round(ymin*my));
i:=1;
with Form1.Image5.Canvas do
begin
MoveTo(x0,y0);
repeat
y:=ResVoltageC[i+2];
LineTo(x0+Round(i*mx),y0-Round(y*my));
inc(i);
until i+2=n;
end;
end;
procedure TForm1.Button1Click(Sender: TObject); //кнопка "Расчет"
var
i,j:integer;
begin
E:=StrToFloat(Edit6.Text); //получение значений из полей Edit
C1:=StrToFloat(Edit5.Text)/1000000000; //
L3:=StrToFloat(Edit2.Text)/1000000; //
R1:=StrToFloat(Edit1.Text)*1000; //
R2:=StrToFloat(Edit3.Text)*1000; //
R3:=StrToFloat(Edit4.Text)*1000; //
delta:=StrToFloat(Edit7.Text)/1000000; //шаг дискретизации
R0:=R1+R2; // вычисление коэффициентов
a:=C1*L3; //
b:=L3*(R0+R3)/(R0*R3); //
c:=1; //
d:=-E/R0;
Form1.Image2.Canvas.FillRect(Rect(0,0,75 0,105)); //стирание графиков
Form1.Image3.Canvas.FillRect(Rect(0,0,75 0,105)); //
Form1.Image4.Canvas.FillRect(Rect(0,0,75 0,105)); //
Form1.Image5.Canvas.FillRect(Rect(0,0,75 0,105)); //
for i:=1 to n do ResCurrentL[i]:= 0; i:=2;j:=3;//расчет тока на индуктивности
repeat
ResCurrentL[i+1]:=CurrentL(ResCurrentL[i -1],ResCurrentL[i]);
inc(i);
until i=n ;
repeat //вывод значений в таблицу
StringGrid1.Cells[0,j-2]:=FloatToStrF(Re sCurrentL[j],ffGeneral,5,5);
inc(j);
until j=n;
for i:=1 to n do ResVoltageL[i]:= 0; i:=2;j:=3;//расчет наряжения на индуктивности
repeat
ResVoltageL[i+1]:=VoltageL(ResCurrentL[i -1],ResCurrentL[i]);
inc(i);
until i=n ;
repeat //вывод значений в таблицу
StringGrid1.Cells[1,j-2]:=FloatToStrF(Re sVoltageL[j],ffGeneral,5,5);
inc(j);
until j=n;
for i:=1 to n do ResVoltageC[i]:= 0; i:=2;j:=3;//расчет тока на емкости
repeat
ResVoltageC[i+1]:=VoltageC(ResCurrentL[i -1],ResCurrentL[i]);
inc(i);
until i=n ;
repeat //вывод значений в таблицу
StringGrid1.Cells[3,j-2]:=FloatToStrF(Re sVoltageC[j],ffGeneral,5,5);
inc(j);
until j=n;
for i:=1 to n do ResCurrentC[i]:= 0; i:=2;j:=3; //расчет наряжения на индуктивности
Начать зарабатывать