Показать сообщение отдельно

  #5012  
Старый 24.11.2009, 18:36
P.A.U.L
Познающий
Регистрация: 12.08.2009
Сообщений: 32
С нами: 8815306

Репутация: 0
По умолчанию

[Pascal]
Помогите доделать программу:

Задание звучит так:

Упорядочить строки целочисленной прямоугольной матрицы по возрастанию количества одинаковых элементов каждой строке.

Препод сказал, что там надо вконце написать какое то условие и присовить и уже вывести отсортированную матрицу, а я хз как сделать

Код:
program matr1;
uses crt;
 const n=5;
 const m=10;
 type s=array[1..n,1..m] of integer;
 const a:s=((1,1,1,1,1,6,7,8,9,10),
	  (1,2,2,2,5,6,7,8,9,10),
	  (1,2,3,3,5,6,7,8,9,10),
	  (1,7,7,7,7,7,7,7,7,10),
	  (1,2,3,7,7,7,7,7,7,10));
 var i,j,gl,loc,r,x,k:integer;
      b: array[1..n] of integer;
   begin
   clrscr;
    writeln('Исходная матрица:');
for i:=1 to n do
 begin
  for j:=1 to m do
   begin
    write(a[i,j]:3);
   end;
 writeln;
end;
{Подсчет количества одинаковых элементов}
for i:=1 to n do begin
  gl:=0;
  for j:=1 to m-1 do begin
    loc:=1;
    for r:=j+1 to m do
      if a[i,j]=a[i,r] then loc:=loc+1;
    if loc>gl then begin gl:=loc; loc:=0 end;
  end;
  b[i]:=gl;
end;
for i:=1 to n do write(b[i],' ');
writeln;
for i:=1 to n-1 do begin
  x:=b[i]; k:=i;
  for j:=i+1 to n do
   if b[j]<x then begin x:=b[j]; k:=j end;
   b[k]:=b[i]; b[i]:=x;

(Вот здесь чего то нехватает)

end;
    for i:=1 to n do write(b[i],' ');
writeln;
readkey;
end.
 
Ответить с цитированием