Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Паскаль, Turbo Pascal, PascalABC.NET
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 09.12.2011, 10:16   #1
Shab
 
Регистрация: 24.11.2010
Сообщений: 3
Восклицание Проблема за моделировать.

Есть задача по моделированию:
катятся 2 шара на встречу друг другу, известны их скорость и масса, необходимо определить их скорость и направление движения после столкновения, и всё это дело надо нарисовать. у меня проблема во 2ом цикле. код выглядит так:

Код:
Uses crt,graph;
var v1,v2,m1,m2,gd,gm:integer;
s11,s22:string;
s,ds1,ds2,l1,l2,l,t,dt,s1,s2,v11,v22,l11,l22:real;
begin
clrscr;
writeln('введите массу первого шара*');
readln(m1);
writeln('Введите массу второго шара*');
readln(m2);
writeln('Введите скорость первого шара*');
readln(v1);
writeln('Введите скорость второго шара*');
readln(v2);
str(m1,s11);
str(m2,s22);
dt:=0.1;
gd:=detect;
initgraph(gm,gd,'C:\FPC2.2.0\units\ivin32');
line(20,100,800,100);
repeat
ds1:=v1*dt;
s1:=s1+ds1;
ds2:=v2*dt;
s2:=s2+ds2;
setcolor(15);
circle(20+round(s1),79,20);
outtextxy(round(s1)+10,79,s11);
circle(377-round(s2),79,20);
outtextxy(365-round(s2),79,s22);
setcolor(0);
circle(20+round(s1),79,20);
outtextxy(round(s1)+10,79,s11);
circle(377-round(s2),79,20);
outtextxy(365-round(s2),79,s22);
l1:=20+s1;
l2:=334-s2;
until l1>=l2;
setcolor(15);
circle(20+round(s1),79,20);
outtextxy(round(s1)+10,79,s11);
circle(377-round(s2),79,20);
outtextxy(365-round(s2),79,s22);

v11:=((m1-m2)/(m1+m2))*v1;
v22:=((2*m1)/(m1+m2))*v1;
repeat
ds1:=v11*dt;
s1:=s1+ds1;
ds2:=v22*dt;
s2:=s2+ds2;
setcolor(15);
circle((round(l)-20)-round(s1),79,20);
circle((round(l)+20)-round(s2),79,20);
setcolor(0);
circle((round(l)-20)-round(s1),79,20);
circle((round(l)+20)-round(s2),79,20);
l11:=l-s1;
l22:=l+s2;

until  {вот здесь проблема не могу поставить условие, но хотя может и ещё где косяки есть}

setcolor(15);
circle((round(l)-20)-round(s1),79,20);
circle((round(l)+20)-round(s2),79,20);
readkey;
end.
заранее спасибо.



___________
Код нужно оформлять по правилам:
тегом [CODE]..[/СODE] (это кнопочка с решёточкой #)
Не забывайте об этом!
Модератор.

Последний раз редактировалось Serge_Bliznykov; 09.12.2011 в 10:27.
Shab вне форума Ответить с цитированием
Старый 09.12.2011, 10:18   #2
Shab
 
Регистрация: 24.11.2010
Сообщений: 3
По умолчанию

надеюсь код читабелен
Shab вне форума Ответить с цитированием
Старый 09.12.2011, 10:24   #3
TinMan
Форумчанин
 
Аватар для TinMan
 
Регистрация: 05.09.2011
Сообщений: 869
По умолчанию

Цитата:
Сообщение от Shab Посмотреть сообщение
надеюсь код читабелен
И на чем зиждятся такие надежды?
Кликнуть пару раз и поставить теги code тебе в лом, а надежды - они кликов не просят?
Предпочитаю на "ты".
TinMan вне форума Ответить с цитированием
Старый 09.12.2011, 10:32   #4
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

давайте так.
Распишите формулами решение физической задачи.
Дано два шара с массами M1 и M2
и скоростями движения V1 и V2
найти скорости и направление движения каждого из шаров ПОСЛЕ их лобового столкновения.

тогда уже можно будет говорить о каком-то там моделировании...
Serge_Bliznykov вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Кто умеет рисовать и моделировать: Пердлагаю совместный проект Maksitron Фриланс 5 14.02.2009 18:31
Проблема с рамами/Проблема с ЖД DRAGGER Компьютерное железо 6 04.01.2009 23:37