IPB
ЛогинПароль:

> Прочтите прежде чем задавать вопрос!

1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code].
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!

> Полёт снаряда
Virus
сообщение 19.01.2006 18:09
Сообщение #1


Гость






Надо расчитать полёт снаряда, вылетевшего из пушки, методом Рунге-Кутты 4-го порядка. В расчетах надо учитывать силу сопротивления, равную C*V*V*V, где С-постоянный коэффициент. Заранее спасибо!
 К началу страницы 
+ Ответить 
 
 Ответить  Открыть новую тему 
Ответов(1 - 6)
Дож
сообщение 19.01.2006 19:16
Сообщение #2


Бывалый
***

Группа: Пользователи
Сообщений: 179
Пол: Мужской

Репутация: -  1  +


Вот здесь посмотри FAQ

А здесь решение твоей задачи летящий камень (правда на C)

Сообщение отредактировано: Дож - 19.01.2006 19:19


--------------------
Доброго времени суток.
:nnn:
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
Altair
сообщение 19.01.2006 19:21
Сообщение #3


Ищущий истину
******

Группа: Модераторы
Сообщений: 4 824
Пол: Мужской
Реальное имя: Олег

Репутация: -  45  +



Дож,
Цитата
4. Не предлагайте свои решения на других языках, кроме Паскаля. (Исключение только с согласия модератора.)

...
модератор предупрежден ? wink.gif


--------------------
Помогая друг другу, мы справимся с любыми трудностями!
"Не опускать крылья!" (С)
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
volvo
сообщение 19.01.2006 20:10
Сообщение #4


Гость






Цитата
А здесь решение твоей задачи "летящий камень" (правда на C)
Ты думаешь, оно на паскале сильно будет отличаться? Сравни:
{$mode objfpc}
type
tvector = object
public
x, y, vx, vy: double;

constructor init(ax: double = 0; ay: double = 0;
avx: double = 0; avy: double = 0);
end;

constructor tvector.init(ax: double = 0; ay: double = 0;
avx: double = 0; avy: double = 0);
begin
x := ax; vx := avx;
y := ay; vy := avy;
end;

operator + (const a, b: tvector) v: tvector;
begin
v.init();
v.x := a.x + b.x;
v.y := a.y + b.y;
v.vx := a.vx + b.vx;
v.vy := a.vy + b.vy;
end;
operator - (const a, b: tvector) v: tvector;
begin
v.init();
v.x := a.x - b.x;
v.y := a.y - b.y;
v.vx := a.vx - b.vx;
v.vy := a.vy - b.vy;
end;
operator * (const a: tvector; const f: double) v: tvector;
begin
v.init();
v.x := a.x * f;
v.y := a.y * f;
v.vx := a.vx * f;
v.vy := a.vy * f;
end;
operator * (const f: double; const a: tvector) v: tvector;
begin
v.init();
v := a * f;
end;


function F(const U: tvector; T: double): tvector;
var
res: tvector;
const
g = 9.81;
begin
res.init(U.vx, U.vy, 0, - g);
result := res;
end;

var
T: double = 0; dT: double = 0.05;
x: double = 0; vx: double = 1;
y: double = 0; vy: double = 2;

U, k1, k2, k3, k4: tvector;

begin
U.init(x, y, vx, vy);
while U.y >= 0 do begin
k1 := F(U, t) * dt;
k2 := F(U + 0.5*k1, t+0.5*dt)*dt;
k3 := F(U + 0.5*k2, t+0.5*dt)*dt;
k4 := F(U + k3, T+dT)*dT;
U := U + 1.0 / 6.0 * (k1 + 2*k2 + 2*k3 + k4);
T := T + dT;
writeln('t=', T:10:6, ' x=', U.x:10:6, ' y=', U.y:10:6);
end;
end.


Называется "найди 10 отличий..." Кстати, вполне работоспособная программа, только что проверил.
 К началу страницы 
+ Ответить 
Дож
сообщение 19.01.2006 20:18
Сообщение #5


Бывалый
***

Группа: Пользователи
Сообщений: 179
Пол: Мужской

Репутация: -  1  +


Это какой паскаль?
Цитата

operator * (const a: tvector; const f: double) v: tvector;

shok.gif

Free?


--------------------
Доброго времени суток.
:nnn:
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
klem4
сообщение 19.01.2006 20:57
Сообщение #6


Perl. Just code it!
******

Группа: Модераторы
Сообщений: 4 100
Пол: Мужской
Реальное имя: Андрей

Репутация: -  44  +


Цитата(Дож @ 19.01.2006 20:18) *

Это какой паскаль?

shok.gif

Free?


yes2.gif

А ты наверное думал что Паскаль, увидев код на C по твоей ссылке, встанет в сторонку и будет нервно курить ?) blum.gif


--------------------
perl -e 'print for (map{chr(hex)}("4861707079204E6577205965617221"=~/(.{2})/g)), "\n";'
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
Дож
сообщение 20.01.2006 18:16
Сообщение #7


Бывалый
***

Группа: Пользователи
Сообщений: 179
Пол: Мужской

Репутация: -  1  +


Цитата

А ты наверное думал что Паскаль, увидев код на C по твоей ссылке, встанет в сторонку и будет нервно курить ?)

Нет, тот код простой, я б скорее удивился бы если бы в паскале не было бы средств его переписать.

Но по поводу определения функций +,- (и т.п.) я и вправду думал, что паскаль стоит в стронке и нервно курит. rolleyes.gif


--------------------
Доброго времени суток.
:nnn:
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

 Ответить  Открыть новую тему 
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 



- Текстовая версия 25.07.2025 22:14
Хостинг предоставлен компанией "Веб Сервис Центр" при поддержке компании "ДокЛаб"