Pascal 为同一数组传递两个差数组

Pascal 为同一数组传递两个差数组,pascal,Pascal,我尝试对两种类型的阵列使用相同的打印过程(第一个阵列长度为10,第二个阵列长度为15) 我在网上找不到任何解决办法。有谁能解决这个问题吗 这是两个数组 program pp1; const m=10; n=15; type matrix1=array[1..m] of integer; matrix2=array[1..n] of integer; var m1:matrix1; m2:matrix2; 这是它尝试过的方法。在方法“x”中,表示数组的长度 procedure

我尝试对两种类型的阵列使用相同的打印过程(第一个阵列长度为10,第二个阵列长度为15)

我在网上找不到任何解决办法。有谁能解决这个问题吗

这是两个数组

program pp1;
const 
  m=10;
  n=15;
type
  matrix1=array[1..m] of integer;
  matrix2=array[1..n] of integer;
var
m1:matrix1;
m2:matrix2;
这是它尝试过的方法。在方法“x”中,表示数组的长度

procedure writeMatrix(var data: array of integer ;x:integer);
var
  j:integer;
begin
   for j:=1 to x do
   begin
     write(data[j]:3);
   end;

end;
我的主要方法

    begin
    writeMatrix(m1,10);
    writeMatrix(m2,10);
    end.

如何使用相同的this writeMatrix方法打印这两个数组。。有没有什么办法可以做到这一点。

正如我在之前的评论中所说的,您的实现很好,但在打印之前,您必须在矩阵中放入一些内容,否则您将在屏幕上看到一堆零(最好)

试试这个:

program pp1;
const 
  m=10;
  n=15;
type
  matrix1=array[1..m] of integer;
  matrix2=array[1..n] of integer;
var
m1:matrix1;
m2:matrix2;

procedure fillMatrix(var data:array of integer; x:integer);
var
j:integer;
begin
for j:= 1 to x do begin
  data[j]:=j;
end;
end;


procedure writeMatrix(var data: array of integer; x:integer);
var
  j:integer;
begin
   for j:=1 to x do
   begin
     write(data[j]:3);
   end;    
end;

begin
  fillMatrix(m1,10);
  fillMatrix(m2,10);
  writeMatrix(m1,10);
  writeMatrix(m2,10);
  readln;
  readln;
end.

提示:考虑避免使用全局变量,<代码> M1和<代码> M2<代码>在主程序中应该声明。< /P>你到底有什么问题?编译器抱怨某些事情,或者输出不是您所期望的?我之所以这样问是因为

writeMatrix()
实现很好,只需确保先填充矩阵即可。而且,当你调用
writeMatrix(a,7)a至少在本文中没有声明,这应该会给您一个编译错误。您提供的writeMatrix代码是正确的。请详细说明您希望实现的目标以及您的错误。还可以考虑使用<代码>长度>代码>代码>高> /COD>和<代码> Low < /代码>函数来分别了解数组的长度和高/低MimeBER的索引。它在main方法的第一行显示“无效函数参数”。填充矩阵(m1,10);现在的问题是
fillmatrix()
需要和
整数数组
参数,但我们正在发送
matrix1
matrix2
类型参数。将
m1
声明为整数的
array[1..m]和
m2
声明为整数的
array[1..n],这样就不会使用类型
matrix1
matrix2
。我猜这种类型会使编写“更泛型”的过程变得更加困难。