Напишите программку в программке турбо паскаль "Колебания маятника". Если можно с
Напишите программку в программке турбо паскаль "Колебания маятника". Если можно с разъяснением.
Задать свой вопрос1 ответ
Эвелина Птуха
Есть здесь один код на примете
Программка
СВОБОДНЫЕ КОЛЕБАНИЯ Радиального МАТЕМАТИЧЕСКОГО МАЯТНИКА
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 lt;gt; grOK Then Halt(1);
End;
Процедура исключения сияний изображений
Procedure Glimmer;
Begin
Repeat
Until Port[3da] And 8 lt;gt; 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.
Программка
СВОБОДНЫЕ КОЛЕБАНИЯ Радиального МАТЕМАТИЧЕСКОГО МАЯТНИКА
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 lt;gt; grOK Then Halt(1);
End;
Процедура исключения сияний изображений
Procedure Glimmer;
Begin
Repeat
Until Port[3da] And 8 lt;gt; 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.
Елена Купрехина
Пишите еще варианты. Программка прошла, но маятник не двигается.
, оставишь ответ?
Похожие вопросы
-
Вопросы ответы
Новое
NEW
Статьи
Информатика
Статьи
Последние вопросы
Игорь 14 лет назад был на 8 лет моложе, чем его
Математика.
Два тела массами m1 и m2 находящие на расстоянии R друг
Физика.
В сосуде 4целых одна пятая литр воды что бы заполнить сосуд
Математика.
Двум малярам Диме И Олегу поручили выкрасить фасад дома они разделили
Разные вопросы.
найти порядковый номер 41Э если в ядре 20 нейтронов
Разные вопросы.
в ряду натуральных чисел 3, 8, 10, 24, … 18 одно
Математика.
Предприятие по производству с/хоз продукции на производство затратило 3527000 руб Валовый
Разные вопросы.
Математика, задано на каникулы. ВАРИАНТ 1004
НОМЕР 1,2,3,4,5,6,7,8.
Математика.
Имеются три конденсатора емкостью С1=1мкФ, С2=2мкФ и С3=3мкФ. Какую наименьшую емкость
Физика.
Из точки м выходят 3 луча MP MN и MK причём
Геометрия.
Облако тегов