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

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

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

 
 Ответить  Открыть новую тему 
> Упростить программу
сообщение
Сообщение #1


Новичок
*

Группа: Пользователи
Сообщений: 40
Пол: Женский
Реальное имя: Nataly

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


Нас интересует, сколько времени будет падать парашютист с высоты H (например, H=1000м), если у него не раскроется парашют?
Экспериментально установлено, что сила сопротивления воздуха пропорциональна квадрату скорости, а коэффициент зависит от формы тела. Поэтому ускорение падающего тела имеет вид a=g-k*v2, здесь k – зависящий от массы и формы тела коэффициент (пусть k=0.004). Т.к. мы не знаем формулы, выражающей время падения от массы и формы, применим метод дискретизации непрерывных процессов. При дискретизации обычно время разбивается на небольшие интервалы времени. Считается, что на протяжении одного интервала ничего не происходит, зато по истечении этого интервала параметры, используемые в модели, скачком изменяются (в данном случае уменьшается высота и увеличивается скорость парашютиста), затем все повторяется. Плавно уменьшающаяся высота парашютиста, например, при этом оказывается замененной на последовательность значений высот в моменты времени t=0, t=0.01, t=0.02, … , если интервал дискретизации Δt=0.01. При моделировании таких дискретных процессов на ЭВМ компьютерная модель описывает состояние процесса в один из моментов времени, а состояние в следующий момент времени рассчитывается по реккурентным соотношениям.
Пусть g=10, для некоторого момента времени t известны высота h и скорость тела v. Тогда ускорение a=g-k*v2.
Высота и скорость тела через промежуток времени Δt равны:
Ht+ Δt=Ht-Vt* Δt (считаем, что v не меняется)
Vt+ Δt=Vt+at* Δt (считаем, что a не меняется)
Очевидно, что оба эти равенства тем точнее, чем меньше Δt. Приведенные соотношения и являются реккурентными, выражающими следующее состояние через предыдущее. Необходимо составить программу для проведения экспериментов с ней.


Дана программа на Delphi, а нужно упростить для Pascal. Помогите, пожалуйста!

Сообщение отредактировано: Pautina -


Прикрепленные файлы
Прикрепленный файл  Parachute.rar ( 175.03 килобайт ) Кол-во скачиваний: 217
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #2


Уникум
*******

Группа: Пользователи
Сообщений: 6 823
Пол: Мужской
Реальное имя: Лопáрь (Андрей)

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


Цитата(Pautina @ 24.05.2007 17:27) *

Дана программа на Delphi, а нужно упростить для Pascal. Помогите, пожалуйста!

Pautina, я не совсем понимаю - из-за пары строк арифметических действий нужно брать всю программу и переделывать?? Переделывать придется практически все - и ввод данных, и графику, и классы... Не проще ли сделать с нуля? Неужели так трудно запрограммировать умножение и сложение? blink.gif
Неужели велосипед нельзя собрать просто так, а обязательно нужно переделывать из атомобиля?
Если согласна с начала - я помогу.
Если нужно обязательно переделывать - я пас..


--------------------
я - ветер, я северный холодный ветер
я час расставанья, я год возвращенья домой
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #3


Новичок
*

Группа: Пользователи
Сообщений: 40
Пол: Женский
Реальное имя: Nataly

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


Lapp, я особо с физикой не дружу, поэтому не совсем понимаю, что требуется сделать, вот и пришлось искать хоть какой-то исходник. Прогу надо сдать на паскале. Очень надеюсь на твою помощь! буду рада даже алгоритму решения! Спасибо!
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #4


Уникум
*******

Группа: Пользователи
Сообщений: 6 823
Пол: Мужской
Реальное имя: Лопáрь (Андрей)

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


Цитата(Pautina @ 26.05.2007 0:03) *

Lapp, я особо с физикой не дружу, поэтому не совсем понимаю, что требуется сделать,

Я понимаю, что ты не понимаешь smile.gif.
Но на самом деле все очень просто!
Посмотри, вот минимальная прога, которая моделирует движение тела на основании описанного у тебя итерационного процесса. Разберись с ней, пожалуйста, задавай вопросы, если непонятно.
Впоследствии в эту программу можно вставить графику..
{simulating of a free falling in air}
{by Lapp for Pautina}
const
g=9.8;
var
t,h,v,dt,k:real;

begin
WriteLn('Введите данные:');
Write('высота падения в метрах, h = ');
ReadLn(h);
Write('коэффициент сопротивления воздуха, k = ');
ReadLn(k);
Write('шаг по времени, dt = ');
ReadLn(dt);
v:=0;
t:=0;
WriteLn('Полетели..');
while h>0 do begin
h:=h-v*dt;
v:=v+(g-k*Sqrt(v))*dt;
t:=t+dt;
{раскомментировать следующую строку для вывода промежуточных результатов}
{WriteLn('t=',t:8:4,'h=',h:8:4,'v=',v:8:4);}
end;
WriteLn('Ваш полет продолжался ',t:8:4,' секунд');
v:=v*3.6;
WriteLn('Скорость приземления равна ',v:8:4,' км/ч');
WriteLn('Приятных переломов!');
ReadLn
end.



--------------------
я - ветер, я северный холодный ветер
я час расставанья, я год возвращенья домой
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #5


Уникум
*******

Группа: Пользователи
Сообщений: 6 823
Пол: Мужской
Реальное имя: Лопáрь (Андрей)

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


Pautina, у меня к тебе просьба:
М
исправь, пожалуйста, название темы

- сделай что-то типа "Моделирование свободного падения в воздухе" - ладно?
И постарайся не переделывать программы, а писать их - уверяю тебя, это намного проще и интереснее smile.gif


--------------------
я - ветер, я северный холодный ветер
я час расставанья, я год возвращенья домой
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #6


Новичок
*

Группа: Пользователи
Сообщений: 40
Пол: Женский
Реальное имя: Nataly

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


Спасибо огромное! ты мне очень помог! а как я могу изменить тему? что-то не выходит..
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #7


Уникум
*******

Группа: Пользователи
Сообщений: 6 823
Пол: Мужской
Реальное имя: Лопáрь (Андрей)

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


Цитата(Pautina @ 27.05.2007 16:33) *

как я могу изменить тему? что-то не выходит..

Редактируй первый пост. Там увидишь


--------------------
я - ветер, я северный холодный ветер
я час расставанья, я год возвращенья домой
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

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

 





- Текстовая версия 29.03.2024 14:10
500Gb HDD, 6Gb RAM, 2 Cores, 7 EUR в месяц — такие хостинги правда бывают
Связь с администрацией: bu_gen в домене octagram.name