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

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

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

 
 Ответить  Открыть новую тему 
> Упростить программу
Pautina
сообщение 24.05.2007 16:27
Сообщение #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 - 24.05.2007 17:40


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


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

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

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


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

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

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


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


Новичок
*

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

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


Lapp, я особо с физикой не дружу, поэтому не совсем понимаю, что требуется сделать, вот и пришлось искать хоть какой-то исходник. Прогу надо сдать на паскале. Очень надеюсь на твою помощь! буду рада даже алгоритму решения! Спасибо!
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
Lapp
сообщение 26.05.2007 4:35
Сообщение #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 
 К началу страницы 
+ Ответить 
Lapp
сообщение 26.05.2007 5:11
Сообщение #5


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

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

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


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

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


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


Новичок
*

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

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


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


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

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

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


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

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

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


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

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

 



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