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, где С-постоянный коэффициент. Заранее спасибо!
 К началу страницы 
+ Ответить 
Дож
сообщение 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

 

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