ВУЗ: Не указан
Категория: Не указан
Дисциплина: Не указана
Добавлен: 11.05.2024
Просмотров: 70
Скачиваний: 0
Результаты моделирования процесса теплопроводности, представим в виде таблицы:
Таблица
x t
|
0 |
1 |
2 |
3 |
4 |
0 |
3,000 |
3,667 |
4,333 |
5,000 |
3,000 |
1 |
3,000 |
3,628 |
4,128 |
3,952 |
3,000 |
2 |
3,000 |
3,514 |
3,783 |
3,593 |
3,000 |
3 |
3,000 |
3,377 |
3,546 |
3,396 |
3,000 |
4 |
3,000 |
3,267 |
3,381 |
3,272 |
3,000 |
5 |
3,000 |
3,187 |
3,266 |
3,188 |
3,000 |
6 |
3,000 |
3,131 |
3,185 |
3,131 |
3,000 |
7 |
3,000 |
3,091 |
3,129 |
3,091 |
3,000 |
8 |
3,000 |
3,064 |
3,090 |
3,064 |
3,000 |
9 |
3,000 |
3,044 |
3,063 |
3,044 |
3,000 |
10 |
3,000 |
3,031 |
3,044 |
3,031 |
3,000 |
Program Stergen;
Uses Crt, Graph
Type Mas2 = Array [0..10, 0..4] of Real;
Const {Двумерный массив распределения температуры в разные моменты времени – типизированная константа}
U : Mas2 =
((3.000, 3.667, 4.333, 5.000, 3.000), (3.000, 3.628, 4.128, 3.952, 3.000), (3.000, 3.514, 3.783, 3.593, 3.000), (3.000, 3.377, 3.546, 3.396, 3.000), (3.000, 3.267, 3.381, 3.272, 3.000), (3.000, 3.187, 3.266, 3.188, 3.000), (3.000, 3.131, 3.185, 3.131, 3.000), (3.000, 3.091, 3.129, 3.091, 3.000),
(3.000, 3.064. 3.090, 3.064, 3.000), (3.000, 3.044, 3.063, 3.044, 3.000), (3.000, 3.031, 3.044, 3.031, 3.000));
Var M, I, J, N1, Nt : Integer; MaxF, L, T, HI, Ht :Real;
Procedure Initialize; {Процедура инициализации графического режима}
Var GraphDriver, GraphMode : Integer;
Begin
DetectGraph(GraphDriver, GraphMode) ;
InitGraph(GraphDriver, GraphMode, '');
End;
{Графическая иллюстрация решения}
Procedure Postanovka (U : Mas2; Nt, N1 : Integer; HI, L, MaxF : Real);
Var X_N, Shag, Y_N, Shir, Dlin, Color, I, J, K, Y : Integer;
Flag .: Boolean; Ff : String; Col : Array [0..15] Of Byte;
Begin
Initialize; {Инициализация графического режима}
X_N := GetMaxX Div 6;
If Nt <= 6 Then M := Nt Else M := Nt Div 2;
Y_N := GetMaxY Div M - 20; Shir := Y_N Div 2;
Dlin := GetMaxX -2 * X_N; Shag := Trunc(Dlin / N1); Str(Shag,Ff) ;
Col[0] := 0; Col[l] := 8; Col[2] := 1; {Палитра цветов}
Col[3] := 9; Col[4] := 3; Col[5] := 11;
Col[6] := 2; Col[7] := 10; Col[8] := 14;
Col[9] := 13; Col[l0] := 5; Col[ll] := 12; Col [12] := 4;
For I :== 0 To M - 1 Do {номер временного промежутка}
Begin
For J := 0 To N1 - 1 Do {номер участка стержня}
Begin
Flag := False;
For К := 0 To Shag Do
Begin
For y:= 0 To Shir Do
Begin
Color := 1 + Round((U[I, J] +
{определение номера цвета}(U[I, J + 1] –
U[I, J]) * К / Shag - U[0, 0]) / 3 * 16);
If Random(64) > 32
Then If Random(64) > 32 Then Color :=
Color + 1 Else Color := Color - 1;
If Not Flag Then {вывод текущей температуры}
Begin
Str((U[I,J]+(U(I,J+l]-U[I,J])*K/Shag):5:3, Ff);
OutTextXY(K+X_N+Shag*J, Y_N*(1+1)-19, Ff) ;
Flag := True
End;
{рисование точки}
PutPixel(K+X_N+Shag*J, Y+Y_N*(1+I), Col[Color])
End
End
End
End;
SetColor(White); OutTextXY(150, 450, 'Нажмите
любую клавишу ');
Repeat Until KeyPressed; CloseGraph
End;
Begin {ОСНОВНАЯ ПРОГРАММА}
L := 4; Т := 10; Hi := 1; Ht := 1;
N1 := Trunc(L / HI); Nt := Trunc(T / Ht); MaxF := 5;
Postanovka (U, Nt, N1, HI, L, MaxF)
End.
Результатом выполнения данной программы будет следующая диаграмма:
Рисунок 4