Pascal 求矩阵A(5,8)每行负元素的最大绝对值,并将它们重新排列到第一列

Pascal 求矩阵A(5,8)每行负元素的最大绝对值,并将它们重新排列到第一列,pascal,freepascal,turbo-pascal,Pascal,Freepascal,Turbo Pascal,求矩阵A(5,8)每行负元素的最大绝对值,并将它们重新排列到第一列。 不知道下一步是什么!这段代码的下一步是什么?请帮帮我)提示:您可以用一种稍微不同的方式声明矩阵: program test (input,output); var a:array[1..5, 1..8] of integer; n,max,i,j:integer begin writeln('enter massive 5*8'); for i:=1 to 5 do for j:=1 to 8 do

求矩阵A(5,8)每行负元素的最大绝对值,并将它们重新排列到第一列。
不知道下一步是什么!这段代码的下一步是什么?请帮帮我)

提示:您可以用一种稍微不同的方式声明矩阵:

program test (input,output);
var
  a:array[1..5, 1..8] of integer;
  n,max,i,j:integer
begin
   writeln('enter massive 5*8');
   for i:=1 to 5 do
   for j:=1 to 8 do
   readln(a[i,j]);
然后创建根据需要重新排列行值的过程:

type
  TMatrixRow = array[1..8] of Iteger;
  TMatrix = array[1..5] of TMatrixRow;
var
  a: TMatrix;
最后,为每行调用以下过程:

procedure RearrangeRow(var r: TMatrixRow);
begin
  // Your code here
end;

请注意,您仍然能够以通常的方式访问矩阵元素,如
a[row,column]

这显然是一项家庭作业,不幸的是,这不是一项家庭作业服务。Yuur下一步是重新思考您正在做的事情:您希望用户键入40个整数值,但是您永远无法调试代码中不可避免的错误,除非您能够重现它们,并且要做到这一点,您需要矩阵内容的记录。因此,您的第一个编码任务应该是通过从文本文件中读取40个矩阵值来填充矩阵。祝你好运@MartynA实际上,只需调用
test.exe
就可以做到这一点,而无需更改代码…@Abelisto:这是一个公平的评论,但我非常确定,在OP目前的能力水平下,通过输入/输出重定向来分散OP的注意力是没有帮助的,因此我认为这是一种转移注意力的做法,坦白地说…@MartynA:ISTM说,如果他使用文件重定向,他可以保留他已有的代码,这样就不会那么混乱了。您要求他打开一个文件,从中读取值,然后再次关闭它,可能还会处理任何I/O错误。在他的能力水平上,这并不是一件小事,而且可能会比简单地键入
test.exe
分散更多的注意力。特别是因为初学者倾向于在一次大的运行中完成所有事情,即没有子程序。
for i := 1 to 5 do
  RearrangeRow(a[i]);