Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
правильное.docx
Скачиваний:
8
Добавлен:
26.09.2019
Размер:
621.71 Кб
Скачать
    1. Листинг программы на языке 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 Задание