С Новым годом! Форум программистов, компьютерный форум, киберфорум
Turbo Pascal
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.87/15: Рейтинг темы: голосов - 15, средняя оценка - 4.87
1 / 1 / 0
Регистрация: 21.12.2013
Сообщений: 31
1

Составить программу, моделирующую абсолютно упругий центральный удар двух шаров с массами m1 и m2 движущихся со скоростями v1 и v2

13.01.2014, 07:30. Показов 3010. Ответов 2
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Здравствуйте! Помогите пожалуйста написать программу!
Вот условие: Составить программу, моделирующую абсолютно упругий центральный удар двух шаров с массами m1 и m2 движущихся со скоростями v1 и v2.

Добавлено через 2 минуты
Вот еще условия:m1=m2,v1=v2, шары движутся навтречу друг другу!

Помогите пожалуйста, мне сегодня уже сдавать

Заранее спасибо!!!
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
13.01.2014, 07:30
Ответы с готовыми решениями:

Абсолютно упругий удар двух подвижных частиц
Здравствуйте. Условие задачи: Две гладкие частицы сферической формы с массами m1 и m2, движущиеся...

Абсолютно упругий удар
Условие задачи: Две гладкие частицы сферической формы с массами m1 и m2, движущиеся со скоростями...

Абсолютно упругий удар в двумерном пространстве
Добрый день. Я программист и у меня появилась необходимость в реализации игры "Бильярд", раньше я...

Написать программу, реализующую абсолютно упругое столкновение двух шаров одинаковой массы
Написать программу, реализующую абсолютно упругое столкновение двух шаров одинаковой массы,...

2
Почетный модератор
64303 / 47600 / 32742
Регистрация: 18.05.2008
Сообщений: 115,181
13.01.2014, 10:11 2
Лучший ответ Сообщение было отмечено Не лодырь как решение

Решение

Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
uses crt, graph;
var t1,t2,y:integer;
    gd,gm:integer;
begin
initgraph(t1,t2,'');
t1:=25;
t2:=getmaxX-25;
y:=getmaxY div 2;
circle(t1,y,20);
circle(t2,y,20);
while t1<=getmaxX div 2-20 do
 begin
  delay(50);
  setcolor(black);
  circle(t1,y,20);
  circle(t2,y,20);
  t1:=t1+5;
  t2:=t2-5;
  setcolor(white);
  circle(t1,y,20);
  circle(t2,y,20);
 end;
while t1>=25 do
 begin
  delay(50);
  setcolor(black);
  circle(t1,y,20);
  circle(t2,y,20);
  t1:=t1-5;
  t2:=t2+5;
  setcolor(white);
  circle(t1,y,20);
  circle(t2,y,20);
 end;
outtextxy(250,460,'Press any key...');
readkey
end.
1
539 / 399 / 99
Регистрация: 18.08.2012
Сообщений: 1,024
13.01.2014, 13:42 3
Если нужно действительно смоделировать абсолютно упругий удар, а не просто нарисовать картинку, то так:
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
Uses Dos, Crt, Graph;
  Var
    gd, gm,
    Yc,
    ScrWidth, x10, x20, x1, x2, r: Integer;
    s,
    Color                        : Word;
    TStep, Scale,
    v10, v20,
    v1, v2, v11, v21, m1, m2, d  : Single;
    p1, p2, px                   : Pointer;
    KK                           : Char;
    impact                       : Boolean;
Begin
  gd:=detect;
  InitGraph(gd,gm,'d:\bp\bgi');
  ScrWidth:=GetMaxX;
  Yc:=GetMaxY shr 1;
 
  Color:=Yellow;
  SetColor(Color);
  SetFillStyle(1,Color);
  r:=12;
{массы, кг}
  m1:=12; m2:=8;
{начальные скорости, м/с}
  v10:=15; v20:=10;
 
  Line(4,Yc+r,ScrWidth,Yc+r);
  OutTextXY(30,Yc-120,'[a] - догонять; [b] - навстречу.');
  x10:=25; x20:=ScrWidth div 4;
 
 
  kk:=ReadKey;
  If kk='b' then
    begin
      x10:=25; x20:=ScrWidth - 25;
      v10:=15; v20:=-10;
    end;
 
  d:=ScrWidth*0.1;
  Scale:=ScrWidth/d;
 
  s:=ImageSize(0,0,2*r,2*r);
  GetMem(p1,s);
  GetMem(p2,s);
  GetMem(px,s);
 
  GetImage(x10-r,Yc-r,x10+r,Yc+r,px^);
  PieSlice(x10,Yc,0,360,r);
  GetImage(x10-r,Yc-r,x10+r,Yc+r,p1^);
 
  PieSlice(x20,Yc,0,360,r);
  GetImage(x20-r,Yc-r,x20+r,Yc+r,p2^);
  OutTextXY(30,Yc+120,'[1] - старт; [Esc] - выход.');
 
  TStep:=0.05;  {шаг по времени, сек}
  kk:=ReadKey;
  If kk='1' then
    Repeat
      x1:=x10; x2:=x20;
      v1:=v10; v2:=v20;
      impact:=false;
      kk:=#2;
      Repeat
        PutImage(x1-r,Yc-r,px^,CopyPut);
        PutImage(x2-r,Yc-r,px^,CopyPut);
        x1:=x1 + Round(v1*TStep*Scale);
        x2:=x2 + Round(v2*TStep*Scale);
        if not impact then
          if x1+r>=x2-r then  {момент удара. Здесь скорости изменятся в соответствии с законами сохранения}
            begin
              v11:=(2*m2*v2 + (m1-m2)*v1)/(m1+m2);
              v21:=(2*m1*v1 + (m2-m1)*v2)/(m1+m2);
              v1:=v11; v2:=v21;
              impact:=true;
            end;
        PutImage(x1-r,Yc-r,p1^,CopyPut);
        PutImage(x2-r,Yc-r,p2^,CopyPut);
        Delay(Round(TStep*1000));
        If KeyPressed then
          kk:=ReadKey;
      Until (kk=#27) or (x1+r>=ScrWidth) or (x2+r>=ScrWidth);
      if kk=#2 then kk:=ReadKey;
      PutImage(x1-r,Yc-r,px^,CopyPut);
      PutImage(x2-r,Yc-r,px^,CopyPut);
    Until kk<>'1';
  CloseGraph;
End.
1
13.01.2014, 13:42
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
13.01.2014, 13:42
Помогаю со студенческими работами здесь

Столкновения двух шаров, движущихся со скоростью V1 и V2
Помогите пожалуйста решить задачу по физике на Pascal! Очень нужно к диплому. столкновения двух...

Столкновение двух шаров (нецентральный удар)
Имеем маленький шарик массы m1 и радиуса r1 который сталкивается с большим шариком m2 r2. ...

Какое количество энергии пошло на деформацию двух столкнувшихся шаров массами по 4кг каждый
Какое количество энергии пошло на деформацию двух столкнувшихся шаров массами по 4кг каждый , если...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru