Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- Program Stergen;
- Uses Crt_ii, 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,Nl,Nt: Integer; MaxF,L,T,Hl,Ht: Real;
- Procedure Initialize; {Процедура инициализации графического режима}
- Var GraphDriver, GraphMode : Integer;
- Begin
- GraphDriver:=Detect;
- InitGraph(GraphDriver, GraphMode,'c:\bp\bgi');
- End;
- {Графическая иллюстрация решения}
- Procedure Postanovka (U : Mas2; Nt, Nl : Integer; Hl, 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 / Nl); Str(Shag, Ff);
- Col[0]:= 0; Col[1]:= 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[10]:= 5; Col[11]:= 12; Col[12]:= 4;
- For I:= 0 To M-1 Do {Номер временного промежутка}
- Begin
- For J := 0 To Nl-1 Do {Номер участка стержня}
- Begin
- Flag := False;
- For K := 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]) * K/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]) * K / Shag) : 5 : 3, Ff);
- OutTextXY(K+X_N+Shag * J, Y_N * (1+I) - 19, Ff);
- Flag := True
- End;
- {рисование точки}
- PutPixel(K+X_N+Shag * J, Y + Y_N * (1+I), Col[Color]);
- End;
- End
- End
- End;
- SetColor(White);
- SetTextStyle(1,0,2);
- OutTextXY(150, 420, 'нажмите любую клавишу');
- Repeat Until Keypressed;
- CloseGraph;
- End;
- Begin {OCHOBHAЯ ПРОГРАММА}
- L:= 4; T:= 10; Hl:= 1; Ht := 1;
- Nl := Trunc(L / Hl); Nt := Trunc(T / Ht); MaxF := 5;
- Postanovka (U, Nt, Nl, Hl, L, MaxF)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement