Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Паскаль, Turbo Pascal, PascalABC.NET
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 13.12.2012, 12:56   #1
fratriecz
Пользователь
 
Регистрация: 13.10.2012
Сообщений: 18
По умолчанию перестановка строк матрицы

дана матрица,переставить строки в порядке увеличения сумм в строке,я написал программу,подскажите как ее переделать чтобы она содержала функцию или процедуру?
Код:
  uses crt;
const
  max=10;
 
var
  i,j,n,m,s,t,q: integer;
  a: array[1..max,1..max] of integer;
  b: array[1..max] of integer;
begin
  randomize;
  readln(n,m);
  writeln;
  for i:=1 to n do
  begin
    s:=0;
    for j:=1 to m do
    begin
      a[i,j]:=random(9)+1;
      write(a[i,j]:4);
      s:=s+a[i,j];
    end;
    b[i]:=s;
 writeln;
  end;
  writeln;
for i:=2 to n do
    for j:=n downto i do
      if b[j-1]>b[j] then
      begin
        for q:=1 to m do
        begin
          t:=a[j-1,q];
          a[j-1,q]:=a[j,q];
          a[j,q]:=t;
        end;
        t:=b[j-1];
        b[j-1]:=b[j];
        b[j]:=t;
      end;
  writeln;
  for i:=1 to n do
  begin
    for j:=1 to m do
      write(a[i,j]:4);
    writeln;
  end;

  readln;
end.

Последний раз редактировалось fratriecz; 13.12.2012 в 13:28.
fratriecz вне форума Ответить с цитированием
Старый 14.12.2012, 19:18   #2
Aranea tela telam
Пользователь
 
Аватар для Aranea tela telam
 
Регистрация: 11.01.2012
Сообщений: 51
По умолчанию

Можно и так )

Код:
uses crt;
  function finc(n,m:integer):integer;
const
  max=10;
var
  i,j,s,t,q: integer;
  a: array[1..max,1..max] of integer;
  b: array[1..max] of integer;
  begin
  for i:=1 to n do
  begin
    s:=0;
    for j:=1 to m do
    begin
      a[i,j]:=random(9)+1;
      write(a[i,j]:4);
      s:=s+a[i,j];
    end;
    b[i]:=s;
 writeln;
  end;
  writeln;
for i:=2 to n do
    for j:=n downto i do
      if b[j-1]>b[j] then
      begin
        for q:=1 to m do
        begin
          t:=a[j-1,q];
          a[j-1,q]:=a[j,q];
          a[j,q]:=t;
        end;
        t:=b[j-1];
        b[j-1]:=b[j];
        b[j]:=t;
      end;
  writeln;
  for i:=1 to n do
  begin
    for j:=1 to m do
      write(a[i,j]:4);
    writeln;
  end;
end;
var
n,m:integer;
begin
  randomize;
  readln(n,m);
  writeln;
finc(n,m);
  readln;
end.
Я учусь на своих ошибках, но порой их слишком много
Aranea tela telam вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Перестановка строк матрицы head2wall Паскаль, Turbo Pascal, PascalABC.NET 0 05.12.2011 11:59
Перестановка элементов матрицы andreysss Помощь студентам 1 13.12.2010 20:51
[ C/C++ ] Перестановка строк и столбцов zord Помощь студентам 2 18.11.2009 12:20
Перестановка столбцов матрицы и строки. MaGWaY_minsk Помощь студентам 3 06.02.2009 00:55
Перестановка строк матрице gotex Помощь студентам 1 24.11.2008 20:40