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

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

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

> Помогите решить задачу, Написал программу для расчета температурной зависимости угольной части
Александр89
сообщение 7.05.2012 18:42
Сообщение #1





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

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


Здравствуйте прошу помочь изменить код программы. Постановка задачи такова: Частица угля (шар) начинает прогреваться на границе действует лучистый и конвективный теплообмен. Решается методом сеток. По мере нагревания с температуры 400 градусов происходит реакция разложения. Проблема в том что программа вводит значения температуры от радиуса и степень разложения в конечный момент времени. А нужно что бы в каждый момент времени при выполнении условия 400 градусов считалась степень разложения и выводилась в файл( тоесть надо получить график изменение степени разложения от температуры) при этом на каждом промежутке степень разложения суммировалась. Вот код:


uses crt;

const mf=1000;
sigma=5.669e-8;
eps=1e-5;
R=8.31;


type
vector=array[1..mf] of real;
var
i, j, N : integer;
T, Tn,Tr: vector;
alfa, beta,v: vector;
ai, bi, ci, fi, d: real;
lamda, ro, c, E, k0 : real;
kapa, Te, eps1: real;
h, tau, t_end, time : real;
T0, R1, qxim : real;
f, g : text;
begin
clrscr;
Writeln(' , N');
Readln(N);
Writeln(' , t_end');
Readln(t_end);
Writeln(' , R1');
Readln(R1);
Writeln(' , lamda');
Readln(lamda);
Writeln(' , ro');
Readln(ro);
Writeln(' , c');
Readln©;
Writeln(' , kapa');
Readln(kapa);
Writeln(' , Te');
Readln(Te);
Writeln(' , eps1');
Readln(eps1);
Writeln(' , T0');
Readln(T0);
Writeln(' , k0');
Readln(k0);
Writeln(' , qxim');
Readln(qxim);
Writeln(' , E');
Readln(E);
h:=R1/(N-1);
tau:=t_end/1000.0;
for i:= 1 to N do
T[i]:=T0;
time:=0;

while time<t_end do
begin
time:=time+tau;
for i:=1 to N do
if T[i]<=373 then
v[i]:=0
else
v[i]:=(exp(-k0*exp(-E/(R*T[i]))*tau));
{ for i:=1 to N do

writeln(v[i]); }

begin
for i:=1 to N do
alfa[1]:=1.0;
beta[1]:=0.0;
for i:= 2 to N-1 do
begin
ai:=(lamda/(h*h))+(lamda/((i-1)*h*h));
ci:=(lamda/(h*h))-lamda/((i-1)*h*h);
bi:=ai+ci+ro*c/tau;
fi:=(-ro*c*T[i]/tau)-qxim*v[i];
alfa[i]:=ai/(bi-ci*alfa[i-1]);
beta[i]:=(ci*beta[i-1]-fi)/(bi-ci*alfa[i-1]);
end;
repeat
d:=T[N];
T[N]:=(lamda*beta[N-1]+h*kapa*Te+eps1*sigma*h*((sqr(sqr(Te)))-(sqr(sqr(d)))))/(h*kapa+lamda*(1-alfa[N-1]));
until abs(d-T[N])<=eps;
for i:= N-1 downto 1 do
T[i]:=alfa[i]*T[i+1]+beta[i];
end;
end;

Assign(f,'res.txt');
Rewrite(f);
Writeln(f,' R1 = ',R1:6:4);
Writeln(f,' N = ',N);
Writeln(f,' lamda = ',lamda:6:4);
Writeln(f,' ro = ',ro:6:4);
Writeln(f,' c = ',c:6:4);
Writeln(f,' T0 = ',T0:6:4);
Writeln(f,' kapa = ',kapa:6:4);
Writeln(f,' Te = ',Te:6:4);
Writeln(f,' eps = ',eps:6:4);
Writeln(f,' xh = ',h:6:4);
Writeln(f,' tau = ',tau:6:4);
Writeln(f,' t = ',t_end:6:4);
close(f);
Assign(g,'tempr.txt');
Rewrite(g);
for i:=1 to N do
writeln(g,' ',h*(i-1)10.gif8,' ',T[i]:8:5, ' ', v[i]:10:10);
close(g);
end.



Прикрепленные файлы
Прикрепленный файл  izluchenie111.pas ( 2.32 килобайт ) Кол-во скачиваний: 174
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
 
 Ответить  Открыть новую тему 
Ответов
Федосеев Павел
сообщение 7.05.2012 19:55
Сообщение #2


Бывалый
***

Группа: Пользователи
Сообщений: 298
Пол: Мужской
Реальное имя: Федосеев Павел

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


Здесь какая-то пугающая меня мат.модель физического явления.

Но раз в одном из циклов всё и так расчитывается, то
1) инициализацию файла вынеси в начало программы
2) в нужное место цикла добавь проверку на температуру и при выполнении условия выводи в файл

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

Сообщений в этой теме


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

 



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