Листинг программы на языке Pascal
program1;
const L=30;
type T2M = array[1.. L,1..L] of integer;
T1M = array[1.. L] of integer;
TF = file of integer;
Tname = string[4];
var P: T2M;
B, C: T1M;
s, s1, buf, max, min, imax,imin,jmax,jmin:integer;
sra1,Sra3 : real;
N,M,i,j,r, k, k1:byte;
F,G: file of integer;
// Процедура для ввода двухмерной матрицы
procedureVvodMx(var P:T2m; const N,M: byte; const name:Tname);
vari,j:byte;
begin
writeLn('Введитеэлементыматрицы ',name);
for i:=1 to N do
for j:=1 to M do
begin
write('P[',i,',',j,']=');
readLn(P[i,j]); end;end;
// Процедура для ввода двухмерной матрицы
procedureVivodMx(const P:T2m; const N,M: byte; const name:Tname);
vari,j:byte;
begin
writeLn('Матрица ',name,' послеформирования:');
for i:=1 to N do
begin
for j:=1 to M do
write(P[i,j]:4);
writeLn;end;end;
// Процедура для ввода матрицы
procedure VvodMx1(var B:T1m; const N: byte; const name:Tname);
var i:byte;
begin
writeLn('Введитеэлементыматрицы ',name);
for i:=1 to N do
begin
write('B[',i,']=');
readLn(B[i]); end;end;
// Процедура для ввода матрицы
procedure VivodMx1(const B:T1m; const N: byte; const name:Tname);
var i:byte;
begin
writeLn('Матрица ',name,' послеформирования:');
for i:=1 to N do
begin
write(B[i]:4);
writeLn; end;end;
// Функция нахождения среднего арифметического
functionsra(const B:T1m; const N:byte):real;
vari,k:byte;
Sra1:real;
s:integer;
begin
S:=0;
k:=0;
for i:=1 to N do
begin
k:=k+1;
S:=S+b[i];
end;
if k<>0 then
SrA:= S/k; end;
// Процедура для ввода файла
procedureVvodF(var F:TF; const name:Tname);
varbuf:integer;
begin
rewrite(F);
writeLn('Введите компоненты файла', name);
readLn(buf);
whilebuf<>999 do
begin
write(F,buf);
readLn(buf);end;end;
// Процедура для вывода файла
procedureVivodF(var F:TF; const name:Tname);
varbuf:integer;
begin
reset(F);
writeLn('Выводфайла ', name);
while not EOF(F) do
begin
read(F,buf);
write(buf:5);end;
writeLn;end;
// основная программа
begin
writeLn('введите символ');
readLn(ch);
casech of
'А'..'Г':
begin
VvodMx(p,5,5,'p');
VivodMx(P,5,5,'p');
begin
Imax :=1;
Jmax :=1;
Max := P[1,1];
Imin :=1;
Jmin :=1;
min := P[1,1];
for i:=1 to N do
for j:=1 to M do
ifi>=j then
begin
if P[i,j]>Max then
begin
Max := P[i,j];
IMax :=i;
JMax := j;end; end
else
begin
if P[i,j]<min then
begin
min := P[i,j];
Imin :=i;
Jmin := j;
end;end;
writeLn('Min: ', min );
writeLn('Max: ', max);
end;end;
'И'..'Л':
begin
VvodMx1(B,22,'b');
VivodMx1(b,22,'b'); begin
sra1:=SrA(b,22); begin
VvodMx1(c,21,'с');
VivodMx1(c,21,'с'); begin
sra1:=SrA(c,21);
writeLn('СреднеарифметическоеB[i]: ', SrA(b,22):8:2);
writeLn(' Среднеарифметическое C[i]: ', SrA(c,21):8:26);
end;end; end;
if SrA(c,21)>SrA(b,22) then
begin
writeLn(' Среднеарифметическое C[i] лучше чемB[i] ');
end
else
begin
writeLn('СреднеарифметическоеB[i] лучшечемC[i] ');
end;end;
'П'..'С':
begin
Assign(F,'F.dat');
rewrite(F);
VvodF(F,'F');
Assign(g,'g.dat');
rewrite(g);
reset(F);
while not EOF(F) do
begin
read(F,buf);
if buf<0 then
k:=k+1;
if buf<0 then
write(G,buf);
end;
VivodF(F,'F');
VivodF(g,'g');
writeLn('Кол-во чисел файлаG:',k);
end;
else
writeLn('символ находится вне допустимого диапазона'); end;end.
2 Задание
