Помогите составить блок - схему
unit Unit1;interfaceuses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, ExtCtrls, StdCtrls;type TForm1 = class(TForm) Button1: TButton; Timer1: TTimer; procedure Button1Click(Sender: TObject); procedure FormCreate(Sender: TObject); procedure Timer1Timer(Sender: TObject); private { Private declarations } public { Public declarations } end;const ro=1000.0; //плотность воды dc=100.0; //диаметр цилиндра xc=300.0; //начало цилиндра sc=pi*dc*dc/4; //площадь цилиндра lc=300.0; //длина цилиндра Rh=150.0; //радиус шара t=1.0; //толщина стенок шара dotv=1.0; //диаметр отверстия sotv=pi*dotv*dotv/4*100; //площадь отверстия Votv=sotv*t; //объем воды в отверстии motv=Votv*ro; //масса воды в отверстии g=9.8; //ускорение свободного падения dt=0.01; fdp=10000000000.0; //сила давления на поршень kot=20; //кол-во отверстий kk=30000;var Form1: TForm1; xp:real; xk,yk,vxk,vyk:array[1..kk] of real; lk:array[1..kk] of boolean; kadr:tbitmap;implementation{$R *.dfm}//При запуске проги создаём в памяти kadr)procedure TForm1.FormCreate(Sender: TObject);begin kadr:=tbitmap.Create; kadr.Width:=1000; kadr.Height:=600;end;//При нажатии кнопки все капли делаем нелетящими) //и запускаем таймер) procedure TForm1.Button1Click(Sender: TObject);var i:integer;begin for i:=1 to 1000 do lk:=false; xp:=xc; form1.Timer1.Enabled:=true;end;// При работе таймера все капли сдвигаются) // а новая вылетает из шара) procedure TForm1.Timer1Timer(Sender: TObject);var p,f,a,v,l,vk,vv,xotv,yotv,alf,dl:real; i,j:integer;begin //нарисуем очередной кадр и покажем его kadr.Canvas.Brush.Color:=clWhite; kadr.Canvas.FillRect(rect(0,0,1000,600)); kadr.Canvas.Pen.Width:=10; kadr.Canvas.Pen.Color:=rgb(100,100,120); kadr.Canvas.Brush.Color:=clblue; kadr.Canvas.Ellipse(600,150,900,450); kadr.Canvas.Rectangle(300,250,600,350); kadr.Canvas.FillRect(rect(295,255,620,345)); kadr.Canvas.Pen.Width:=1; kadr.Canvas.Pen.Color:=clblue; for i:=0 to kot-1 do begin alf:=1/3+(2*pi-2/3)/19*i; xotv:=750-150*cos(alf); yotv:=300+150*sin(alf); kadr.Canvas.Ellipse(round(xotv-6),round(600-yotv-6), round(xotv+6),round(600-yotv+6)); end; kadr.Canvas.Brush.Color:=clwhite; kadr.Canvas.FillRect(rect(295,255,round(xp),345)); kadr.Canvas.brush.Color:=clblack; kadr.Canvas.FillRect(rect(round(xp-10),255,round(xp),345)); kadr.Canvas.FillRect(rect(round(xp-310),270,round(xp-300),330)); kadr.Canvas.FillRect(rect(round(xp-300),295,round(xp-10),305)); for i:=1 to kk do if lk then kadr.Canvas.Pixels[round(xk),round(600-yk)]:=clblue; form1.Canvas.Draw(0,0,kadr); for i:=1 to kk do if lk then begin //переместим все капли с текущей скоростью за время dt xk:=xk+vxk*dt; yk:=yk+vyk*dt; //если капля упала то убираем ее if yk<0 then lk:=false; //учитываем действие силы тяжести vyk:=vyk-g*dt; end; //если поршень еще не дошел до правого края, то //рассмотрим движение воды в отверстиях //при этом вычислив объем выдавливаемой воды if xp<600 then begin p:=fdp/sc; //давление на воду со стороны поршня f:=p*sotv; //сила, выталкивающая воду из отверстия a:=f/motv; //ускорение воды в отверстии v:=sqrt(2*a*t); //скорость выхода воды из отверстий l:=v*dt; //длина цилиндрика воды, выливающегося за //время dt из отверстия vk:=sotv*l; // обьем капли vv:=vk*kot; //нашли обьем воды вытекающей из всех отверстий dl:=vv/sc; //сдвиг поршня xp:=xp+dl; //новое положение поршня //из всех отверстий должны вылиться капли
что, прости?
чёёёё*???