Как заменить строку в матрице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 |