Карта сайта Kansoftware
НОВОСТИУСЛУГИРЕШЕНИЯКОНТАКТЫ
KANSoftWare

Как заменить строку в матрице

Delphi , Синтаксис , Массивы

Как заменить строку в матрице

Автор: http://www.lmc-mediaagentur.de/dpool

program Matrices;

{$APPTYPE CONSOLE}

uses
  SysUtils;

type
  TMatrixRow = array of Double; {preferrable to Real}
  TMatrix = array of TMatrixRow;

procedure MatrixExchangeRows(M: TMatrix; First, Second: Integer);
var
  Help: TMatrixRow;
begin
  if (First < 0) or (First > High(M)) or (Second < 0) or (Second > High(M)) then
    Exit; {or whatever you like.}
  {Only pointers are exchanged!}
  Help := M[First];
  M[First] := M[Second];
  M[Second] := Help;
end;

procedure MatrixWrite(M: TMatrix);
var
  Row, Col: Integer;
begin
  for Row := 0 to High(M) do
  begin
    for Col := 0 to High(M[Row]) do
      Write(M[Row, Col]: 10: 2);
    Writeln;
  end;
  Writeln;
end;

var
  Matrix: TMatrix;
  Row, Column: Integer;

begin
  Randomize;
  SetLength(Matrix, 4, 4);
  for Row := 0 to High(Matrix) do
    for Column := 0 to High(Matrix[Row]) do
      Matrix[Row, Column] := Random * 1000.0;
  MatrixWrite(Matrix);
  MatrixExchangeRows(Matrix, 1, 2);
  MatrixWrite(Matrix);
  Readln;
end.

Программа Matrices:

{$APPTYPE CONSOLE}

uses SysUtils;

type TMatrixRow = array of Double; {предпочтительно использовать Real} TMatrix = array of TMatrixRow;

procedure MatrixExchangeRows(M: TMatrix; First, Second: Integer); var Help: TMatrixRow; begin if (First < 0) or (First > High(M)) or (Second < 0) or (Second > High(M)) then Exit; {или что-то другое} Help := M[First]; M[First] := M[Second]; M[Second] := Help; end;

procedure MatrixWrite(M: TMatrix); var Row, Col: Integer; begin for Row := 0 to High(M) do begin for Col := 0 to High(M[Row]) do Write(M[Row][Col]: 10: 2); {печатает значение double в формате 10.##} Writeln; end; Writeln; end;

var Matrix: TMatrix; Row, Column: Integer; begin Randomize; {инициализирует генератор случайных чисел} SetLength(Matrix, 4, 4); {устанавливает размер матрицы в 4x4} for Row := 0 to High(Matrix) do for Column := 0 to High(Matrix[Row]) do Matrix[Row][Column] := Random * 1000.0; {заполняет матрицу случайными значениями} MatrixWrite(Matrix); {печатает оригинальную матрицу} MatrixExchangeRows(Matrix, 1, 2); {меняет первую и вторую строки} MatrixWrite(Matrix); {печатает полученную матрицу} Readln; end.

В статье описано алгоритмическое решение задачи замены строки в матрице с помощью процедуры MatrixExchangeRows на языке программирования Delphi.


Комментарии и вопросы

Получайте свежие новости и обновления по Object Pascal, Delphi и Lazarus прямо в свой смартфон. Подпишитесь на наш Telegram-канал delphi_kansoftware и будьте в курсе последних тенденций в разработке под Linux, Windows, Android и iOS




Материалы статей собраны из открытых источников, владелец сайта не претендует на авторство. Там где авторство установить не удалось, материал подаётся без имени автора. В случае если Вы считаете, что Ваши права нарушены, пожалуйста, свяжитесь с владельцем сайта.


:: Главная :: Массивы ::


реклама


©KANSoftWare (разработка программного обеспечения, создание программ, создание интерактивных сайтов), 2007
Top.Mail.Ru

Время компиляции файла: 2024-08-19 13:29:56
2024-11-21 11:42:31/0.0053460597991943/1