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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 12.04.2012, 18:45   #11
BDA
МегаМодератор
СуперМодератор
 
Аватар для BDA
 
Регистрация: 09.11.2010
Сообщений: 7,291
По умолчанию

Код:
uses
  CRT;

const
  T1 = 100;
  T2 = 100;

type
  arr = array[1..T1, 1..T2] of real;

var
  a: arr;
  n, m: integer;

function checkrow(var a: arr; m, row: integer): boolean;
var
  i: integer;
  t: boolean;
begin
  i := 1;
  t := true;
  while (i < m) and not t do
  begin
    if a[2, i] < a[2, i + 1] then
      t := false;
    inc(i);
  end;
  checkrow := t;
end;

function searchrowwithmax(var a: arr; n, m: integer): integer;
var
  i, j, posx, posy: integer;
begin
  posx := 1;
  posy := 1;
  for i := 1 to n do
    for j := 1 to m do
      if a[i, j] > a[posy, posx] then
      begin
        posx := j;
        posy := i;
      end;
  searchrowwithmax := posy;
end;

procedure inputarray(var a: arr; n, m: integer);
var
  i, j: integer;
begin
  for i := 1 to n do
    for j := 1 to m do
    begin
      write('a[', i, ',', j, ']: ');
      readln(a[i, j]);
    end;
end;

procedure sortcolumns(var a: arr; n, m: integer);
var
  i, j, q: integer;
  tmp: real;
begin
  for i := 1 to m do
    for j := 1 to n - 1 do
      for q := j + 1 to n do
        if a[j, i] > a[q, i] then
        begin
          tmp := a[j, i];
          a[j, i] := a[q, i];
          a[q, i] := tmp;		
        end;
end;


procedure outputarray(var a: arr; n, m: integer);
var
  i, j: integer;
begin
  for i := 1 to n do
  begin
    for j := 1 to m do
      write(a[i, j]:5:2, ' ');
    writeln;
  end;
end;

begin
  writeln('Input n*m:');
  readln(n, m);
  inputarray(a, n, m);
  writeln;
  outputarray(a, n, m);
  writeln;
  if (searchrowwithmax(a, n, m) = 2) and checkrow(a, m, 2) then
    sortcolumns(a, n, m);    
  outputarray(a, n, m);
  readln;
end.
Пишите язык программирования - это форум программистов, а не экстрасенсов. (<= это подпись )
BDA на форуме Ответить с цитированием
Старый 13.04.2012, 08:02   #12
SVing
Ээээ
Пользователь
 
Аватар для SVing
 
Регистрация: 13.09.2011
Сообщений: 99
По умолчанию

она выдаёт исходную матрицу?
SVing вне форума Ответить с цитированием
Старый 13.04.2012, 09:08   #13
BDA
МегаМодератор
СуперМодератор
 
Аватар для BDA
 
Регистрация: 09.11.2010
Сообщений: 7,291
По умолчанию

Она выдает исходную матрицу, а через пустую строку получившуюся матрицу (если условия не выполняются, то 2 раза одну и ту же).
Если не нужно выдавать исходную, то уберите строчки writeln;outputarray(a, n, m); после inputarray(a, n, m);.
Пишите язык программирования - это форум программистов, а не экстрасенсов. (<= это подпись )
BDA на форуме Ответить с цитированием
Старый 13.04.2012, 15:21   #14
SVing
Ээээ
Пользователь
 
Аватар для SVing
 
Регистрация: 13.09.2011
Сообщений: 99
По умолчанию

ок , понял . Спасибо большое!
SVing вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
метод сортировки масивов Хитман Помощь студентам 5 10.04.2011 13:29
Метод быстрой сортировки Nord18 Паскаль, Turbo Pascal, PascalABC.NET 1 05.06.2010 11:24
метод шейкерной сортировки ai\ekcah^p Помощь студентам 0 22.11.2009 20:22
Метод сортировки Шелла SVadiks Помощь студентам 2 03.11.2009 20:17
Задача на Метод сортировки Smotritel89 Общие вопросы C/C++ 4 19.12.2008 18:17