Добавил:
Upload
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз:
Предмет:
Файл:Turbo Pascal / Stud_1_1 / Metlab / LABOR3 / LABOR3B
.PAS 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.
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