{ процедуру с параметрами, обеспечивающую перестановку двух заданных строк матрицы написан на PascalABC.NET но должно работать в TurboPascal }
PROGRAM A5; const rows = 5; cols = 8;
type matrix = array [1..rows,1..cols] of integer;
var AR : matrix;// рабочая матрица i,j:byte;// счетчики k1,k2:byte;// номера строк
// обмен строк матрицы местами procedure SwapRows(row1:byte; row2:byte; var m:matrix); var i,j:byte; ax:integer; begin for i:=1 to cols do begin ax := m[row1,i]; m[row1,i] := m[row2,i]; m[row2,i] := ax; end; end;
// выравнивание по правому краю - пробелы перед числом function trailSpace(num:byte; len:byte):string; var s:string; i:byte; begin s := ''+num; i := s.Length; while (i<len) do begin s := ' ' + s; i := i+1; end; trailSpace := s; end;
// вывод матрицы на экран procedure displayMatrix(var m:matrix); var i,j:byte; begin for i:=1 to rows do begin write('Строка ', i, ': '); for j:=1 to cols do begin write(); write(trailSpace(AR[i,j], 4) ); end; writeln(' '); end; end;
BEGIN // заполнение массива и вывод его на экран randomize(); for i:=1 to rows do for j:=1 to cols do AR[i,j] := random(256); writeln('Начальный массив'); displayMatrix(AR);
// ввод данных writeln(' '); write('введите номер строк которые следует поменять местами: '); readln(k1, k2);
if (k1<=rows) and (k2<=rows) then begin SwapRows(k1, k2, AR); writeln('Результат'); displayMatrix(AR); end else writeln('Номера строк должны быть меньше ', rows); END.
0,0(0 оценок)
Полный доступ
Позволит учиться лучше и быстрее. Неограниченный доступ к базе и ответам от экспертов и ai-bota
Оформи подписку