Напишите программу в программе турбо паскаль "Колебания маятника". Если можно с объяснением.

Напишите программу в программе турбо паскаль "Колебания маятника". Если можно с объяснением.
Гость
Ответ(ы) на вопрос:
Гость
Есть тут один код на примете {Программа СВОБОДНЫЕ КОЛЕБАНИЯ КРУГОВОГО МАТЕМАТИЧЕСКОГО МАЯТНИКА} Program Math_01; {Подключение модулей подпрограмм} Uses Crt, Graph; {Описание констант} Const phi0=30; // Начальный угол наклона маятника w0=0; // Начальная угловая скорость маятника l=400; // Длина нити r=8; // Радиус груза light=2; // Радиус блика k=0.02; // Коэффициент сопротивления m=1; // Масса груза xp=320; // Координата x точки подвеса yp=10; // Координата y точки подвеса g=9.8; // Ускорение свободного падения tau=0.4; // Шаг по времени {Описание переменных} Var x, y, xx, yy, w, eps, phi: Real; {Процедура инициализации графического режима 640x480} Procedure OpenGraph; Var Driver, Mode, ErrorCode: Integer; Begin Driver:=Detect; InitGraph(Driver, Mode, 'c:\bp\bgi'); ErrorCode:=GraphResult; If ErrorCode <> grOK Then Halt(1); End; {Процедура исключения мерцаний изображений} Procedure Glimmer; Begin Repeat Until Port[$3da] And 8 <> 0; End; {Процедура вывода изображения маятника на экран} Procedure Display; Begin Glimmer; SetColor(Black); SetFillStyle(SolidFill, Black); Line(xp, yp, Round(xx), Round(yy)); FillEllipse(Round(xx), Round(yy), r, r); SetLineStyle(SolidLn, 0, NormWidth); SetColor(DarkGray); Line(xp, yp, Round(x), Round(y)); SetLineStyle(SolidLn, 0, NormWidth); SetColor(DarkGray); SetFillStyle(SolidFill, DarkGray); FillEllipse(Round(x), Round(y), r, r); SetColor(LightGray); SetFillStyle(SolidFill, White); FillEllipse(Round(x)-3, Round(y)-3, light, light); End; {Основная часть программы} Begin OpenGraph; SetFillStyle(SolidFill, DarkGray); Bar(xp-20, yp-5, xp+20, yp-1); phi:=phi0*Pi/180; w:=w0; x:=xp+l*sin(phi); y:=yp+l*cos(phi); Repeat Begin xx:=x; yy:=y; eps:=-k*w/m-g*sin(phi)/l; w:=w+eps*tau; phi:=phi+w*tau; x:=xp+l*sin(phi); y:=yp+l*cos(phi); Display; End; Until KeyPressed; CloseGraph; End.
Не нашли ответ?
Ответить на вопрос
Похожие вопросы