Program LaboratoryWork2;
uses
crt;
const
nmax=5;
type
mas=array[1..nmax] of integer;
matr=array[1..nmax,1..nmax]of integer;
procedure Task;
begin
writeln('Лабораторная работа №2.Вашуркина Вероника,группа 6102,вариант №5.');
writeln('Получить одномерный массив,состоящий из сумм элементов, не превосходящих по значению заданное пользователем число в соответствующих строках матрицы.');
writeln('В полученном векторе решить задачу поиска номера первого положительного элемента.');
writeln('Отсортировать в матрице строки по неубыванию значений элементов в первом столбце.');
end;
procedure InputMatr(var a:matr; n,m:integer);
var
i,j:integer;
begin
for i:=1 to n do
for j:=1 to m do begin
gotoxy (5*j,17+(2*i));
readln(a[i,j]);
end;
writeln ('');
writeln ('');
writeln ('');
end;
Procedure MatrtoMas(var a:matr;n,m,d:integer;var b: mas);
var
i,j:integer;
begin
for i:=1 to n do
begin
b[i]:=0;
for j:=1 to m do
if a[i,j]<=d then
b[i]:=b[i]+a[i,j];
end;
end;
Function Alg(var b:mas;n : integer):integer;
var
i: integer;
begin
i:=1;
while (i<=n) and (b[i]<=0) do
i:=i+1;
if i<=n then
writeln(i)
else
writeln('Нет таких элементов');
end;
Procedure ShellMathNStr(var a:matr;n,m: integer);
const
t = 5;
Sh:array[1..t] of integer=(9,5,3,2,1);
var
i,v,j,g,k,NStr: integer;
begin
for g:=1 to t do
begin
k:=Sh[g];
for i:=1 to n-k do
if a[i,NStr]>=a[i+k,NStr] then
begin
for j:=1 to m do
begin
v:=a[i,j];
a[i,j]:=a[i+k,j];
a[i+k,j]:=v;
end;
end;
end;
end;
procedure OutputVector (var b:mas;n,m:integer);
var
i:integer;
begin
for i:=1 to n do
begin
gotoxy ((m+13)+(3*m), 17+(i*2));
writeln (b[i]);
end;
end;
procedure OutputMatr (var a:matr;n,m:integer);
var
i,j:integer;
begin
for i:=1 to n do
for j:=1 to m do
begin
gotoxy ((m+32)+(4*j),17+(i*2));
writeln (a[i,j]);
end;
writeln ();
writeln ();
writeln ();
end;
var
i,d,n,m,k:integer;
a:matr;
b:mas;
begin
Task;
writeln ('Введите количество строк. Максимальное количество строк: 5');
writeln ('Введите количество столбцов. Максимальное количество столбцов: 5');
readln(n);
readln (m);
InputMatr (a,n,m);
writeln ('Введите значение ');
readln(d);
MatrtoMas (a,n,m,d,b);
OutputVector (b,n,m);
ShellMathNStr(a,n,m);
OutputMatr (a,n,m);
writeln ('Номер первого положительного элемента ',i);
writeln ();
end.