Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Turbo Pascal / Stud_1_1 / Metlab / LABOR3 / LABOR3B

.PAS
Скачиваний:
91
Добавлен:
03.03.2016
Размер:
2.92 Кб
Скачать
Program Labor3b;
Uses Crt;
Const Nmax = 100;
eps = 0.001;
Type Ar = array[1..Nmax] of real;
Var
Sy,Sz : shortint; { §­ ЄЁ н«Ґ¬Ґ­в®ў y[i] Ё z[i] }
i, { Ї а ¬Ґва жЁЄ«  }
n, { Є®«ЁзҐбвў® н«Ґ¬Ґ­в®ў ¬ ббЁў  }
m : byte; { Є®«-ў® б®ўЇ ¤ ойЁе Ї® §­ Єг н«Ґ¬Ґ­в®ў }
Ly,Lz : real; { ¤«Ё­л ўҐЄв®а®ў }
X,Y,Z : Ar; { ¬ ббЁўл }
F : text; { Ёб室­л© д ©« }
{ -------------------------------------------------------- }
Procedure WaitEscape;
{ ЏаЁ®бв ­®ўЄ  Їа®Ја ¬¬л ¤® ­ ¦ вЁп Є« ўЁиЁ Esc }
Var ch : char;
Begin
Repeat
ch:=ReadKey;
Until ord(ch)=27;
End { WaitEscape };
{ -------------------------------------------------------- }
Procedure ReadArray(Var X:Ar; Var n:byte);
{ ‚ў®¤ ®¤­®¬Ґа­®Ј® ¬ ббЁў  }
Begin
Reset(F);
n:=0;
While not SeekEof(F) do
Begin
Inc(n);
Read(F,x[n]);
End;
Close(F);
End { ReadArray };
{ -------------------------------------------------------- }
Procedure WriteArray(S:string; Var X:Ar; n:byte);
{ ‚лў®¤ ­  нЄа ­ ®¤­®¬Ґа­®Ј® ¬ ббЁў  }
Var i,k : byte;
Begin
Writeln(S,' n = ',n);
k:=0;
For i:=1 to n do
Begin
k:=k+1;
If k<5 then
Write(x[i]:8:2,' ')
Else
Begin
k:=0;
Writeln(x[i]:8:2);
End
End;
If k>0 then
Writeln;
End { WriteArray };
{ -------------------------------------------------------- }
Function Sign(x:real):shortint;
{ ‚лзЁб«Ґ­ЁҐ дг­ЄжЁЁ §­ Є }
Begin
If abs(x)<=eps then
Sign:=0
Else
If x>eps then
Sign:=1
Else
Sign:=-1;
End { Sign };
{ -------------------------------------------------------- }
Function Len(Var U:Ar; n:byte):real;
{ ‚лзЁб«Ґ­ЁҐ ¤«Ё­л ўҐЄв®а  U }
Var i : byte;
L : real;
Begin
L:=0;
For i:=1 to n do
L:=L+sqr(u[i]);
L:=sqrt(L);
Len:=L;
End { Len };
{ -------------------------------------------------------- }
Begin

{ ‚ў®¤ Ё ЇҐз вм Ёб室­ле ¤ ­­ле }
ClrScr;
Assign(F,'X.dat');
ReadArray(X,n);
WriteArray('Њ ббЁў X',X,n);

{ ‚лзЁб«Ґ­ЁҐ н«Ґ¬Ґ­в®ў ¬ ббЁў®ў Y Ё Z }
For i:=1 to n do
Begin
y[i]:=2*sqr(sin(pi*x[i]))-cos(sqr(x[i]));
If (y[i]-1)>eps then
z[i]:=((x[i]+2)*x[i]+1)*x[i]-1
Else
z[i]:=1-sqr(x[i]);
End;

{ ЏҐз вм н«Ґ¬Ґ­в®ў ¬ ббЁў®ў Y Ё Z }
WriteArray('Њ ббЁў Y',Y,n);
WriteArray('Њ ббЁў Z',Z,n);

{ ЋЇаҐ¤Ґ«Ґ­ЁҐ ¤«Ё­ ўҐЄв®а®ў Y Ё Z }
Ly:=Len(Y,n);
Writeln('Ly= ',Ly:8:2);
Lz:=Len(Z,n);
Writeln('Lz= ',Lz:8:2);

{ ЋЇаҐ¤Ґ«Ґ­ЁҐ Є®«ЁзҐбвў  б®ўЇ ¤ ойЁе Ї® §­ Єг н«Ґ¬Ґ­в®ў Y Ё Z }
m:=0;
For i:=1 to n do
Begin
Sy:=Sign(y[i]);
Sz:=Sign(z[i]);
If Sy=Sz then
Inc(m);
End;
Writeln('Љ®«-ў® б®ўЇ ¤ ойЁе Ї® §­ Єг н«-в®ў m = ',m);

{ ЏаЁ®бв ­®ўЄ  а Ў®вл Їа®Ја ¬¬л }
WaitEscape;

End.
Соседние файлы в папке LABOR3