Страница 1 из 1

Pascal. Программный код есть, разбор полетов.

Добавлено: 24 апр 2012, 21:51
maliyusha

Код: Выделить всё

uses 
crt, graph;
const
 m=0.3; r=0.4; k=0.001; dt=0.001; q=300; N=51;
var
 teta, F, t, y : real;
 i, xx, vv, aa, FF, tt, Gd, Gm : integer;
 eta, ksi : array [0..N] of real;

Procedure Graph_Init;
Begin
 Gd:= Detect;
 InitGraph(Gd, Gm,'c:\bp\bgi');
end;

Procedure Soliton;
Begin
  F:=q*(ksi[i-1]-ksi[i])+q*(ksi[i+1]-ksi[i]);
  teta:=(F-r*eta[i]-k*ksi[i])/m;
  eta[i]:=eta[i]+teta*dt;
  ksi[i]:=ksi[i]+eta[i]*dt;
end;
BEGIN Graph_Init;
Repeat
 begin
  t:=t+dt;
   For i:=1 to N do
    begin
     y:=ksi[i];
     Soliton;

if 10*t<3.142 then ksi[1]:=20*sin(5*t)
  else ksi[1]:=0;

ksi[N]:=0; 
setcolor(8);
circle(12*i, 240-round(y*10),3);
setcolor(15);
circle(12*i, 240-round(ksi[i]*10),3);
end;
end;
 SetColor(10);
  OutTextXY(627, 230, 'x');
  OutTextXY(330, 10, 'U');
 SetColor(DarkGray);
  MoveTo(0, 240);
  LineTo(640, 240);
  LineTo(630, 238);
  LineTo(630, 242);
  LineTo(640, 240);
  MoveTo(320, 480);
  LineTo(320, 0);
  LineTo(318, 10);
  LineTo(322, 10);
  LineTo(320,0);
until KeyPressed;
CloseGraph;
END.

Ребят, помогите, пожалуйста, убрать продольные полоски, т.е. чтобы колебались только белые окружности. Или подскажите как осуществить задумку. Программный код, к сожалению, написан не мной.
И если можно, объясните за счет чего осуществляется колебание против оси х (какая команда отвечает).