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

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

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль

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

Ответ
 
Опции темы Поиск в этой теме
Старый 23.10.2011, 14:24   #1
topside
 
Регистрация: 29.09.2011
Сообщений: 8
По умолчанию Матрица, Delphi

Добрый день, нужна помощь по программе с матрицей. (Точнее с ее частью, остальное задание у меня затруднений не вызывает). Нужно в заданной матрице вычеркнуть строку, содержащую максимальный элемент. FAQ по матрицам читал, но он мне не особо помог, т.к. все что там написано я вроде бы знаю, а код я написал и не понимаю честно говоря, что в нем не правильно. Прошу помочь.
Код:
program Matrix2;

{$APPTYPE CONSOLE}

uses
  SysUtils;

const
  MAX_NS = 20;
  MAX_NK = 12;

var
  T: array of array of Real;
  K: array of Integer;
  I, J, L: Integer;
  NK, NS: Integer;
  Max: Real;
  IMax, JMax: Integer;
  C: Real;

begin
  NS := 21;
  NK := 13;
  while (NS > 20) and (NK > 12) do
  begin
    WriteLn('Введите кол-во строк матрицы, не большее ', MAX_NS);
    ReadLn(NS);
    WriteLn('Введите кол-во столбцов матрицы, не большее ', MAX_NK);
    ReadLn(NK);
  end;
  WriteLn('Введите матрицу ', NS, '*', NK);
  SetLength(T,NS,NK);
  for I := 0 to High(T) do
    for J := 0 to High(T[I]) do
      Read(T[I,J]);

  WriteLn;
  WriteLn('Исходная матрица: ');
  for I := 0 to High(T) do
  begin
    for J := 0 to High(T[I]) do
      Write(' ':2, T[I,J]:5:3, ' ');
      WriteLn;
  end;

  Max := T[0,0];
  IMax := 0;
  JMax := 0;
  for I := 0 to High(T) do
    for J := 0 to High(T[I]) do
      if T[I,J] > Max then
      begin
        Max := T[I,J];
        IMax := I;
        JMax := J;
      end;

  for J := 0 to High(T[I]) do
    for I := 0 to High(T) do
      if I = IMax then
        for L := I to High(T) do
        begin
          C := T[L,J];
          T[L,J] := T[L+1,J];
          T[L+1,J] := C;
        end;
  SetLength(T,NS-1,NK);

  WriteLn;
  WriteLn('Преобразованная матрица: ');
  for I := 0 to High(T) do
  begin
    for J := 0 to High(T[I]) do
      Write(' ':2, T[I,J]:5:3, ' ');
      WriteLn;
  end;
      

  ReadLn;
  ReadLn;
end.

Последний раз редактировалось topside; 23.10.2011 в 14:27. Причина: 1
topside вне форума Ответить с цитированием
Старый 23.10.2011, 14:58   #2
topside
 
Регистрация: 29.09.2011
Сообщений: 8
По умолчанию

Додумался, тред можно закрывать
topside вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
матрица в delphi otmarozok87 Помощь студентам 2 07.05.2010 08:25
Матрица Delphi 7 Mihail09 Помощь студентам 4 16.12.2009 17:30
Матрица в delphi Hegel Помощь студентам 11 10.01.2009 16:59
Матрица. Delphi manhunt Помощь студентам 0 29.05.2008 00:32