Програма з використанням процедур
Program Proverka_Proz;
uses Crt;
Const Len=100;
Type
mtr= array [1..Len,1..Len] of real; {Tip massiv-matriza}
mas= array [1..Len] of real; {Tip massiv-vector}
var i,j,k,m,n,l:integer;
a:mtr; { Imja peremennoi - matriza}
x:mas; { Imja peremennoi - vektor}
u:real; {Imja peremennoi -funzija}
c:real; { Rabochaja peremennaja}
Procedure Viv_M;
Begin
writeln;
writeln;
for i:=1 to m do {vnechnii zikl po strokam}
begin
for j:=1 to n do {vnutrenii zikl po stolbzam}
write ('a[',i,',',j,']=', a[i,j]:10:7,' '); {vivod elementa matrizi a[i,j] }
writeln; {operaator dlja perehoda na ocherednuju stroku}
end;
writeln;
End;
BEGIN
ClrScr;
{vvod elementov matrizi po strokam}
writeln ('vvedite razmernost matrizi A: chisla M i N');
write('m=');
read (m);
write('n=');
read(n);
{zapolnenie matrizi A -vvod elementov a[i,j]'}
for i:=1 to m do
for j:=1 to n do
a[i,j]:=(ABS(3.7-j)-2) *exp (((i-j)*ln(2)))*(i+j-7.3)*SIN(1.5+(Ln(i/j)/ln(2)));
ClrScr;
{vivod matrizi A po strokam}
writeln ( ' ishodnaja Matriza');
Viv_M; {operator proceduru }
{ transponirovannaie Matrizi A }
L:=1; { nachalnoe znachenie parametra zikla po stolbzam pri transponirovanii Matrizi A }
for i:=1 to m-1 do
begin
for j:=L to n do
begin
c:=a[i,j]; a[i,j]:=a[j,i]; a[j,i]:=c;
end;
L:=L+1
end;
writeln ( ' transponirovannaja Matriza');
{vivod transponirovannoi matrizi A po strokam }
Viv_M; {operator proceduru }
{formirovanie massiva X iz transponirovannoi matrizi A }
k:=1; {nachalnoe znachenie formirovatelja indexov massiva X}
for i:=1 to m do
for j:=1 to n do
if a[i,j]<2 then
begin
x[k]:=a[i,j];{formirovanie elementa x[k] massiva X }
k:=k+1;
end;
{vivod massiva X}
writeln(' Massiv X');
writeln;
for i:=1 to k-1 do
write ('x[',i,']=', x[i]:10:7,' ');{vivod elementa massiva X}
{vichislenie funkzii U}
U:=1; {nachalnoe znachenie funkzii U}
for i:=1 to k-1 do
U:=U*(x[i]+x[k-i]);
writeln;
writeln;
write ('Funkzija: u=',u:10:7);
Repeat Until KeyPressed
END.