Документ взят из кэша поисковой машины. Адрес оригинального документа : http://www.students.chemport.ru/materials/pascal/p4.pas
Дата изменения: Thu Jan 15 18:04:42 2009
Дата индексирования: Mon Oct 1 21:05:41 2012
Кодировка: Windows-1251
{Программа по теме 3, задание 2 "Теплопроводность"
В программе при заданном t вычисляется и выводится на экран
распределение температуры по длине стержня(от 0.2 до 2.8 с шагом 0.2).
Критерием сходимости является значение экспоненты, которая в программе
обозначена именем r:=exp((-2*s*s*n*n*t)/9*k)}
uses wincrt;
const
s=pi; k=100;eps=0.0001;
var
p,l,t,r,n,u,w:real;
begin
writeln(' L t (time)');
writeln(' 1 2 3 4 5 6 7 8 9 10');
l:=0.2;
{Начало цикла по длине}
while l<3 {условие выхода из цикла} do
begin
write((l):4:1);
t:=1;
{Начало цикла по времени}
while t<=10 {условие выхода из цикла} do begin
{Начало малого цикла для вычисления суммы.
В цикле: r-текущее значение экспоненты, w-текущее значение суммы,
u-текущее слагаемое суммы, n-счетчик}
r:=1;n:=1;w:=0;
while r>EPS {условие выхода из цикла} do begin
w:=w+u;{Приплюсовывание к сумме очередного слагаемого}
u:=(30/(s*n))*exp((-2*n*n*s*s*t)/(9*k))*(cos(s*n)-1)*(sin((n*s*l)/3));
{Вычисление текущего слагаемого суммы}
r:=exp((-2*n*n*s*s*t)/900);{Вычисление экспоненты}
n:=n+1;{Увеличение счетчика на единицу}
end;{Конец малого цикла}
p:=10*l+w+10;{Вычисление текущего значения температуры}
write((p):7:3);{Вывод на экран полученного текущего значения температуры}
t:=t+1;{Увеличение текущего значения времени t на 1 единицу}
end;{Конец цикла по времени}
l:=l+0.2;{Увеличение текущего значения длины l на 0.2}
writeln;{Символ новой строки}
end;{Конец цикла по длине}
end.{Конец программы}