Другие языки программирования и технологии

как решить это задание в Паскале_1??

1) упорядочить строки целочисленной прямоугольной матрицы по возрастанию количества одинаковых элементов в каждой строке (оформить в виде процедуры).
program aaa;
Type mas=array[1..5] of integer;
Var a: array[1..5, 1..5] of integer;
s, d:mas; {массив элементов одной строки и массив количеств одинаковых элементов в строках}
j,k,w, min, m :integer;

procedure kolich(b:mas; Var kol: integer); {кол-во одинаковых элементов с строке}
Var j, k, max :integer;
c:mas;
begin
for j:=1 to 5 do
begin
c[j]:=0;
for k:=1 to 5 do
if b[k]= b[j] then c[j]:=c[j]+1;
end;
max:=c[1];
for j:=2 to 5 do
if c[j]> max then max:=c[j];
kol:=max;
end; {конец процедуры}

Procedure obmen(Var x,y:integer); {для обмена местами элементов}
Var prom:integer;
begin
prom:=x;
x:=y;
y:=prom;
end; {конец процедуры}

begin
writeln('Исходный массив ');
for j:=1 to 5 do
begin
for k:=1 to 5 do
begin
a [j, k ] := Random(10);
write( a [ j,k ]:3,' ');
end;
writeln;
end;

for j:=1 to 5 do
begin
for k:=1 to 5 do
s [ k] := a [ j,k ]; {формирование матрицы из элементов строки};
kolich(s, d[j]);
writeln('Количество одинаковых элементов в ', j, ' строке= ', d[j]);
end;

{сортировка массива d и перестановка строк}
for j:=1 to 4 do
begin
min:=d[j]; m:=j;
for k:=j+1 to 5 do
if d[k]< min then begin min:=d[k]; m:=k end;
obmen(d[j],d[m]);
for w:=1 to 5 do {перестановка строк}
obmen(a[j,w],a[m,w]);
end;

writeln('матрица с переставленными строками в соответствии с ростом количества одинаковых элементов в строке: ');
for j:=1 to 5 do
begin
for k:=1 to 5 do
write( a[j,k]:3,' ');
writeln;
end;
end.
Бекарыс Габитулы
Бекарыс Габитулы
56 353
Лучший ответ
в чём проблема? Нужно организовать поиск одинаковых элементов по строкам, потом, в соотвествии с результатами (их тоже удобно положить в массив) переписать исходный массив в другой.