Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Отчет по 2ой работе.docx
Скачиваний:
4
Добавлен:
01.03.2025
Размер:
204.23 Кб
Скачать

Алгоритмы расчетов.

  1. Р асчёт зависимости Z=Z(A):

  1. Р асчёт зависимости Z=Z(B):

  1. Р асчёт зависимости Z=Z(R):

  1. Р асчет зависимости R=R(T) для двух различных значений :

Программный код

unit Unit1;

interface

uses

Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,

Dialogs, StdCtrls;

type

TForm1 = class(TForm)

Button1: TButton;

Button2: TButton;

Button3: TButton;

Button4: TButton;

procedure Button1Click(Sender: TObject);

procedure Button2Click(Sender: TObject);

procedure Button3Click(Sender: TObject);

procedure Button4Click(Sender: TObject);

private

{ Private declarations }

public

{ Public declarations }

end;

var

Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject);

label l1,l2;

const B=0.01;

detT=0.01;

detA=9/400;

A1=9/40;

A2=1.5;

R=0.7;

var A,Vr1,Vr2,Vz1,Vz2,R1,R2,z1,z2:real;

Tx:TextFile;

begin

AssignFile(Tx,'Z(a).txt');

Rewrite(Tx);

A:=A1;

l1:

Vr1:=0;

Vz1:=1;

z1:=0;

R1:=1;

l2:

Vr2:=detT*(-B*R1+A*Vr1)+Vr1;

Vz2:=detT*(1-A*Vz1)+Vz1;

z2:=detT*Vz1+z1;

R2:=detT*Vr1+R1;

if R2<R then begin

Writeln(Tx,z2,A);

A:=A+detA;

if A<A2 then goto l1;

end

else begin

Vr1:=Vr2;

Vz1:=Vz2;

R1:=R2;

z1:=z2;

goto l2;

end;

CloseFile(Tx);

end;

procedure TForm1.Button2Click(Sender: TObject);

label l1,l2;

const A=9/40;

detT=0.01;

detB=0.01;

B1=0.01;

B2=0.5;

R=0.7;

var B,Vr1,Vr2,Vz1,Vz2,R1,R2,z1,z2:real;

Tx:TextFile;

begin

AssignFile(Tx,'Z(b).txt');

Rewrite(Tx);

B:=B1;

l1:

Vr1:=0;

Vz1:=1;

z1:=0;

R1:=1;

l2:

Vr2:=detT*(-B*R1+A*Vr1)+Vr1;

Vz2:=detT*(1-A*Vz1)+Vz1;

z2:=detT*Vz1+z1;

R2:=detT*Vr1+R1;

if R2<R then begin

Writeln(Tx,z2,B);

B:=B+detB;

if B<B2 then goto l1;

end

else begin

Vr1:=Vr2;

Vz1:=Vz2;

R1:=R2;

z1:=z2;

goto l2;

end;

CloseFile(Tx);

end;

procedure TForm1.Button3Click(Sender: TObject);

label l1;

var Vr1,Vr2,Vz1,Vz2,R1,R2,z1,z2,A,B,delT:real;

Tx:TextFile;

begin

AssignFile(Tx,'Z(r).txt');

Rewrite(Tx);

A:=1;

B:=0.25;

delT:=0.01;

R1:=1;

z1:=0;

Vr1:=0;

Vz1:=1;

l1:

Vr2:=delT*(-B*R1+A*Vr1)+Vr1;

Vz2:=delT*(1-A*Vz1)+Vz1;

z2:=delT*Vz1+z1;

R2:=delT*Vr1+R1;

Writeln(Tx,z2,R2);

if R2>sqrt(0.3) then begin

Vr1:=Vr2;

Vz1:=Vz2;

z1:=z2;

R1:=R2;

goto l1;

end;

CloseFile(Tx);

end;

procedure TForm1.Button4Click(Sender: TObject);

var

Tx:TextFile;

z0,Vr0,Vz0,R0,z1,Vr1,Vz1,R1,z2,Vr2,Vz2,R2,A,B,delT,T:real;

begin

z0:=0;

Vr0:=0;

Vz0:=1;

R0:=1;

A:=0;

B:=0.01;

delT:=0.01;

T:=0;

AssignFile(Tx,'R(T).txt');

rewrite(Tx);

Vr1:=Vr0+(A*Vr0-B*R0)*delT;

Vz1:=Vz0+(1-A*Vz0)*delT;

R1:=R0+Vr0*delT;

z1:=z0 + Vz0*delT;

T:=T+delT;

while R1>=sqrt(0.3) do

begin

Vr2:=Vr1;

Vz2:=Vz1;

R2:=R1;

z2:=Z1;

Writeln(Tx,T:8:3,' ',R1:8:5);

Vr1:=Vr2+(A*Vr2-B*R2)*delT;

Vz1:=Vz2+(1-A*Vz2)*delT;

R1:=R2+Vr2*delT;

z1:=Z2+Vz2*delT;

T:=T+delT;

end;

Writeln(Tx,' ');

T:=0;

delT:=delT*10;

Vr1:=Vr0+(A*Vr0-B*R0)*delT;

Vz1:=Vz0+(1-A*Vz0)*delT;

R1:=R0+Vr0*delT;

z1:=Z0+Vz0*delT;

T:=T+delT;

while R1 >=sqrt(0.3) do

begin

Vr2:=Vr1;

Vz2:=Vz1;

R2:=R1;

z2:=z1;

Writeln(Tx,T:8:3,' ',R1:8:5);

Vr1:=Vr2+(A*Vr2-B*R2)*delT;

Vz1:=Vz2+(1-A*Vz2)*delT;

R1:=R2+Vr2*delT;

z1:=Z2+Vz2*delT;

T:=T+delT;

end;

CloseFile(Tx);

end;

end.