![]() |
1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code].
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!
![]() ![]() |
![]() |
Александр89 |
![]()
Сообщение
#1
|
Группа: Пользователи Сообщений: 4 Пол: Мужской Репутация: ![]() ![]() ![]() |
Здравствуйте прошу помочь изменить код программы. Постановка задачи такова: Частица угля (шар) начинает прогреваться на границе действует лучистый и конвективный теплообмен. Решается методом сеток. По мере нагревания с температуры 400 градусов происходит реакция разложения. Проблема в том что программа вводит значения температуры от радиуса и степень разложения в конечный момент времени. А нужно что бы в каждый момент времени при выполнении условия 400 градусов считалась степень разложения и выводилась в файл( тоесть надо получить график изменение степени разложения от температуры) при этом на каждом промежутке степень разложения суммировалась. Вот код:
Прикрепленные файлы ![]() |
Федосеев Павел |
![]()
Сообщение
#2
|
Бывалый ![]() ![]() ![]() Группа: Пользователи Сообщений: 298 Пол: Мужской Реальное имя: Федосеев Павел Репутация: ![]() ![]() ![]() |
Здесь какая-то пугающая меня мат.модель физического явления.
Но раз в одном из циклов всё и так расчитывается, то 1) инициализацию файла вынеси в начало программы 2) в нужное место цикла добавь проверку на температуру и при выполнении условия выводи в файл Пожалуй, больше ничего не могу посоветовать, иначе прийдется самому вникать в физику происходящего, разбираться с хитросплетением 20 переменных. |
Александр89 |
![]()
Сообщение
#3
|
Группа: Пользователи Сообщений: 4 Пол: Мужской Репутация: ![]() ![]() ![]() |
Здесь какая-то пугающая меня мат.модель физического явления. Но раз в одном из циклов всё и так расчитывается, то 1) инициализацию файла вынеси в начало программы 2) в нужное место цикла добавь проверку на температуру и при выполнении условия выводи в файл Пожалуй, больше ничего не могу посоветовать, иначе прийдется самому вникать в физику происходящего, разбираться с хитросплетением 20 переменных. Программу писал сам методом проб и ошибок а паскалем пользуюсь от силы неделю. Вот я и не могу свои мысли в код записать. Здесь дело в том программа считает все что нужно. необходимо вывести время процесса с шагом по времени в файл. и при каждом промежутке времени считать v[i] при условии которое уже записано. на следующем временном промежутке так же посчитать v[i] но в результат выводить сумму значений ряда в каждой точке. то есть физически выглядит так в каждой точке происходит реакция разложения при одной температуре разложится столько при другой в этой же точке разложится еще больше но они должны сложится. что бы процесс завершился |
Федосеев Павел |
![]()
Сообщение
#4
|
Бывалый ![]() ![]() ![]() Группа: Пользователи Сообщений: 298 Пол: Мужской Реальное имя: Федосеев Павел Репутация: ![]() ![]() ![]() |
Прогнал текст через ptop (из FPC) для читабельности
Тогда, может быть
Тебуется чтобы на каждом временном шаге для всех i выполнялось v[i]:=v[i] +0 или +(exp(-k0*exp(-E/(R*T[i]))*tau))? Ну тогда и запиши For i:=1 To N Do И ещё, просто совет. На время отладки избавься от ввода значений с клавиатуры: Если ты в TP7 то добавь в начале программы строку {$define Debug}, а ввод параметров оформи {$ifdef Debug} Потом для нормальной программы уберёшь верхнюю строку и перекомпилируешь. Сообщение отредактировано: Федосеев Павел - 7.05.2012 21:35 |
Александр89 |
![]()
Сообщение
#5
|
Группа: Пользователи Сообщений: 4 Пол: Мужской Репутация: ![]() ![]() ![]() |
Да я реализовал то о чем говорили выше. получается что значение v[i] складывается с предыдущем при выполнении условия. Это то же хорошо но мне в общем нужна на каждом интервале времени сумма значений v[1]+v[2]+v[3]....v[i] при тех же условиях что бы считала после 374 градуса так и получится график v[i](time)
Добавлено через 2 мин. For i:=1 To N Do If T[i]<=373 Then <-------------- это 400 градусов? v[i] := v[i]+0 Else v[i] := v[i]+(exp(-k0*exp(-E/(R*T[i]))*tau)); сделал так же только дальше изменил выражение для fi так как оно не должно зависеть от предыдущих. |
Федосеев Павел |
![]()
Сообщение
#6
|
Бывалый ![]() ![]() ![]() Группа: Пользователи Сообщений: 298 Пол: Мужской Реальное имя: Федосеев Павел Репутация: ![]() ![]() ![]() |
Цитата мне в общем нужна на каждом интервале времени сумма значений v[1]+v[2]+v[3]....v[i] SumV:=0; |
Александр89 |
![]()
Сообщение
#7
|
Группа: Пользователи Сообщений: 4 Пол: Мужской Репутация: ![]() ![]() ![]() |
Благодарю за помощь!Очень помогло!
|
![]() ![]() |
![]() |
Текстовая версия | 20.07.2025 18:31 |